@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
@@ -1,15 +1,13 @@
1
1
  'use strict';
2
2
 
3
- var styles$1 = require('../../utilities/styles.cjs');
3
+ var styles$1 = require('../../../utilities/styles.cjs');
4
4
 
5
5
  const styles = styles$1.createStyles({
6
6
  errorContainer: theme => ({
7
7
  alignItems: "center",
8
- backgroundColor: styles$1.scopeTheme(theme).palette.gray.ultraLight,
8
+ backgroundColor: styles$1.scopeTheme(theme).palette.error.light,
9
9
  display: "flex",
10
10
  flexDirection: "column",
11
- paddingBottom: styles$1.scopeTheme(theme).spacing(2),
12
- paddingTop: styles$1.scopeTheme(theme).spacing(2),
13
11
  rowGap: styles$1.scopeTheme(theme).spacing(1)
14
12
  }),
15
13
  errorCTA: theme => ({
@@ -19,6 +17,12 @@ const styles = styles$1.createStyles({
19
17
  }),
20
18
  errorHeading: theme => ({
21
19
  fontSize: styles$1.scopeTheme(theme).typography.fontSize.S
20
+ }),
21
+ errorContent: theme => ({
22
+ display: "flex",
23
+ alignItems: "center",
24
+ gap: styles$1.scopeTheme(theme).spacing(),
25
+ color: styles$1.scopeTheme(theme).palette.error.main
22
26
  })
23
27
  });
24
28
 
@@ -0,0 +1,7 @@
1
+ 'use strict';
2
+
3
+ var errorBanner = require('./error-banner.cjs');
4
+
5
+
6
+
7
+ exports.ErrorBanner = errorBanner.ErrorBanner;
@@ -2,9 +2,14 @@
2
2
 
3
3
  var jsxRuntime = require('@emotion/react/jsx-runtime');
4
4
  var giger = require('@shipengine/giger');
5
+ var gigerTheme = require('@shipengine/giger-theme');
5
6
  var React = require('react');
7
+ var reactI18next = require('react-i18next');
6
8
  var gridController_styles = require('./grid-controller.styles.cjs');
9
+ var errorBanner = require('./error-banner/error-banner.cjs');
7
10
 
11
+ const LIMIT_GRID_ITEMS_EXPORT = 10000;
12
+ const ERROR_DISPLAY_DURATION = 7000;
8
13
  /**
9
14
  * @internal
10
15
  *
@@ -22,10 +27,23 @@ const GridController = ({
22
27
  isLoading = false,
23
28
  useCheckboxes = false,
24
29
  filters,
25
- emptyContent
30
+ emptyContent,
31
+ showExportCSV = false,
32
+ onClickExportCSV,
33
+ totalAmountGridItems,
34
+ hasTrackingStatusFilter,
35
+ hasExportCSVError = false,
36
+ isExportCSVLoading = false,
37
+ onExportErrorDurationEnd
26
38
  }) => {
27
39
  var _a, _b, _c;
28
40
  const [isChecked, setIsChecked] = React.useState((_a = data === null || data === void 0 ? void 0 : data.map(() => false)) !== null && _a !== void 0 ? _a : []);
41
+ const {
42
+ t
43
+ } = reactI18next.useTranslation(["common", "grid-controller"]);
44
+ const dataAvailable = !!data.length;
45
+ const isItemsOverExportLimit = !!((totalAmountGridItems !== null && totalAmountGridItems !== void 0 ? totalAmountGridItems : 0) > LIMIT_GRID_ITEMS_EXPORT);
46
+ const isDisableExportButton = isItemsOverExportLimit || !dataAvailable;
29
47
  const columnHeaderContents = React.useMemo(() => columns.map(column => column.headerContent), [columns]);
30
48
  const loadingRows = React.useMemo(() => {
31
49
  const items = [];
@@ -65,8 +83,36 @@ const GridController = ({
65
83
  css: gridController_styles.styles.wrapper,
66
84
  children: [filters && jsxRuntime.jsx("div", {
67
85
  css: gridController_styles.styles.filters,
68
- children: filters
69
- }), data.length === 0 && emptyContent ? emptyContent : jsxRuntime.jsx(giger.Table, {
86
+ children: jsxRuntime.jsxs(jsxRuntime.Fragment, {
87
+ children: [filters, showExportCSV && !hasTrackingStatusFilter && jsxRuntime.jsxs(giger.Button, {
88
+ bold: false,
89
+ css: gridController_styles.styles.button,
90
+ disabled: isItemsOverExportLimit || !dataAvailable || hasExportCSVError,
91
+ isLoading: isExportCSVLoading && !isDisableExportButton,
92
+ onClick: onClickExportCSV,
93
+ type: "button",
94
+ variant: giger.ButtonVariant.FILLED,
95
+ children: [isItemsOverExportLimit ? jsxRuntime.jsx(giger.IconTooltip, {
96
+ css: gridController_styles.styles.iconTooltip,
97
+ icon: gigerTheme.IconNames.DOWNLOAD,
98
+ size: giger.IconSize.SIZE_MEDIUM,
99
+ children: jsxRuntime.jsx("div", {
100
+ children: t("grid-controller:showExportCSV.limit-error", {
101
+ LIMIT_GRID_ITEMS_EXPORT: new Intl.NumberFormat().format(LIMIT_GRID_ITEMS_EXPORT)
102
+ })
103
+ })
104
+ }) : jsxRuntime.jsx(giger.Icon, {
105
+ css: gridController_styles.styles.iconTooltip,
106
+ name: gigerTheme.IconNames.UPLOAD,
107
+ size: giger.IconSize.SIZE_MEDIUM
108
+ }), t("grid-controller:showExportCSV.button")]
109
+ })]
110
+ })
111
+ }), hasExportCSVError && !isDisableExportButton && jsxRuntime.jsx(errorBanner.ErrorBanner, {
112
+ duration: ERROR_DISPLAY_DURATION,
113
+ linkTitle: t("grid-controller:showExportCSV.generic-error-message"),
114
+ onDurationEnd: onExportErrorDurationEnd
115
+ }), !dataAvailable && emptyContent ? emptyContent : jsxRuntime.jsx(giger.Table, {
70
116
  "data-testid": "grid",
71
117
  footer: footerContent && !isLoading && jsxRuntime.jsx(giger.TableFooter, {
72
118
  css: gridController_styles.styles.tableFooter,
@@ -7,10 +7,17 @@ const styles = styles$1.createStyles({
7
7
  width: styles$1.scopeTheme(theme).spacing(6)
8
8
  }),
9
9
  filters: theme => ({
10
+ display: "flex",
10
11
  backgroundColor: styles$1.scopeTheme(theme).palette.white,
11
12
  borderBottom: `1px solid ${styles$1.scopeTheme(theme).palette.gray[200]}`,
12
13
  padding: styles$1.scopeTheme(theme).spacing()
13
14
  }),
15
+ button: () => ({
16
+ marginLeft: "auto"
17
+ }),
18
+ iconTooltip: theme => ({
19
+ marginRight: styles$1.scopeTheme(theme).spacing()
20
+ }),
14
21
  skeletonTableRow: () => ({
15
22
  height: "68px"
16
23
  }),
@@ -30,7 +37,10 @@ const styles = styles$1.createStyles({
30
37
  wrapper: theme => Object.assign({
31
38
  height: "auto",
32
39
  overflow: "hidden"
33
- }, styles$1.scopeTheme(theme).getComponentOverride("Table"))
40
+ }, styles$1.scopeTheme(theme).getComponentOverride("Table")),
41
+ filtersWrapper: () => ({
42
+ display: "flex"
43
+ })
34
44
  });
35
45
 
36
46
  exports.styles = styles;
@@ -8,8 +8,8 @@ var React = require('react');
8
8
  var reactI18next = require('react-i18next');
9
9
  var funding = require('../../../assets/funding.svg.cjs');
10
10
  var historyCard_styles = require('./history-card.styles.cjs');
11
- var label = require('./label/label.cjs');
12
11
  var elementsContextProvider = require('../../../elements-provider/elements-context-provider.cjs');
12
+ var label = require('./label/label.cjs');
13
13
 
14
14
  const HistoryCard = ({
15
15
  transaction,
@@ -31,7 +31,6 @@ var spacer = require('../../spacer/spacer.cjs');
31
31
  // </div>
32
32
  // );
33
33
  //
34
- // const ErrorState = () => <ErrorDisplay />;
35
34
  //
36
35
  // // replace type call with its se version - lmnt-936
37
36
  // const SuccessState = ({ adjustment }: { adjustment: WalletAdjustment }) => {
@@ -66,7 +66,7 @@ const ServiceCardHeader = ({
66
66
  children: line1
67
67
  }), line2 && jsxRuntime.jsx(giger.Typography, {
68
68
  children: line2
69
- }), line3 && jsxRuntime.jsx(giger.Typography, {
69
+ }), line3 && jsxRuntime.jsx("div", {
70
70
  children: line3
71
71
  })]
72
72
  }), jsxRuntime.jsx("div", {
@@ -81,15 +81,15 @@ const ServiceCardHeader = ({
81
81
  };
82
82
  const ServiceCardFooter = ({
83
83
  children,
84
- messages
84
+ messages = []
85
85
  }) => {
86
86
  return jsxRuntime.jsxs("div", {
87
87
  "data-testid": "service-card-footer",
88
88
  children: [jsxRuntime.jsx(giger.Divider, {
89
89
  css: serviceCard_styles.styles.divider
90
90
  }), jsxRuntime.jsxs("section", {
91
- css: serviceCard_styles.styles.footer,
92
- children: [messages && jsxRuntime.jsx("ul", {
91
+ css: serviceCard_styles.styles.footerStyles,
92
+ children: [messages.length > 0 && jsxRuntime.jsx("ul", {
93
93
  css: [serviceCard_styles.styles.footerList, messages.length > 1 && serviceCard_styles.styles.footerListWithMultipleMessages],
94
94
  children: messages.map((m, index) => jsxRuntime.jsxs("li", {
95
95
  css: serviceCard_styles.styles.footerListItem,
@@ -16,8 +16,11 @@ const styles = styles$1.createStyles({
16
16
  opacity: 0.3,
17
17
  width: `calc(100% - ${styles$1.scopeTheme(theme).spacing(4)}px)`
18
18
  }),
19
- footer: theme => ({
20
- padding: styles$1.scopeTheme(theme).spacing(2)
19
+ footerStyles: theme => ({
20
+ padding: styles$1.scopeTheme(theme).spacing(2),
21
+ display: "flex",
22
+ flexDirection: "column",
23
+ gap: styles$1.scopeTheme(theme).spacing(2)
21
24
  }),
22
25
  footerList: {
23
26
  listStyle: "none"
@@ -2,18 +2,10 @@
2
2
 
3
3
  var jsxRuntime = require('@emotion/react/jsx-runtime');
4
4
  var giger = require('@shipengine/giger');
5
- var gigerTheme = require('@shipengine/giger-theme');
6
- var React = require('react');
7
5
  var reactI18next = require('react-i18next');
8
6
  var operatingHours = require('./operating-hours.cjs');
9
7
  var servicePointDisplay_styles = require('./service-point-display.styles.cjs');
10
8
 
11
- /* https://auctane.atlassian.net/browse/ENGINE-7329
12
- * 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)
13
- * carriersWithPaperless and servicesWithPaperless are hardcoded for iteration one
14
- */
15
- const carriersWithPaperless = "hermes";
16
- const servicesWithPaperless = ["hermes_domestic_parcelshop_dropoff", "hermes_domestic_parcelshop_dropoff_next_day", "hermes_postable", "hermes_postable_next_day"];
17
9
  const formatDistance = meters => {
18
10
  return meters < 1000 ? "< 1 km" : `${parseFloat((meters / 1000).toFixed(1))} km`;
19
11
  };
@@ -27,36 +19,9 @@ const ServicePointDisplay = ({
27
19
  const {
28
20
  t
29
21
  } = reactI18next.useTranslation("purchase-label");
30
- const [isFilteredServicesWithPaperless, setIsFilteredServicesWithPaperless] = React.useState(false);
31
- /* https://auctane.atlassian.net/browse/ENGINE-7329
32
- * 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)
33
- */
34
- React.useEffect(() => {
35
- if (carriersWithPaperless === servicePoint.carrierCode) {
36
- const filteredServicesWithPaperless = servicePoint.serviceCodes.map(serviceCode => {
37
- return servicesWithPaperless.filter(service => service === serviceCode);
38
- }).length > 0;
39
- setIsFilteredServicesWithPaperless(filteredServicesWithPaperless);
40
- }
41
- }, [servicePoint.carrierCode, servicePoint.serviceCodes]);
42
22
  return jsxRuntime.jsxs("div", {
43
23
  css: servicePointDisplay_styles.styles.container,
44
- children: [isFilteredServicesWithPaperless && jsxRuntime.jsxs("section", {
45
- css: servicePointDisplay_styles.styles.paperlessWrapper,
46
- children: [jsxRuntime.jsx(giger.Icon, {
47
- css: servicePointDisplay_styles.styles.paperlessIcon,
48
- name: gigerTheme.IconNames.PRINTER,
49
- size: giger.IconSize.SIZE_MEDIUM
50
- }), jsxRuntime.jsx(giger.Icon, {
51
- css: servicePointDisplay_styles.styles.paperlessIcon,
52
- name: gigerTheme.IconNames.SCAN_QR,
53
- size: giger.IconSize.SIZE_MEDIUM
54
- }), jsxRuntime.jsx(giger.Typography, {
55
- css: servicePointDisplay_styles.styles.paperlessText,
56
- variant: "small",
57
- children: t("servicePoints.paperless")
58
- })]
59
- }), jsxRuntime.jsx("div", {
24
+ children: [jsxRuntime.jsx("div", {
60
25
  css: servicePointDisplay_styles.styles.getSelectedStyles(),
61
26
  children: jsxRuntime.jsx(giger.Typography, {
62
27
  bold: true,
@@ -19,18 +19,6 @@ const styles = styles$1.createStyles({
19
19
  gap: styles$1.scopeTheme(theme).spacing(1),
20
20
  justifyContent: "space-between"
21
21
  }),
22
- paperlessIcon: theme => ({
23
- color: styles$1.scopeTheme(theme).palette.gray[600],
24
- paddingRight: "4px"
25
- }),
26
- paperlessText: theme => ({
27
- color: styles$1.scopeTheme(theme).palette.gray[600],
28
- paddingLeft: styles$1.scopeTheme(theme).spacing(0.5)
29
- }),
30
- paperlessWrapper: () => ({
31
- display: "flex",
32
- marginBottom: "12px"
33
- }),
34
22
  selectButton: theme => ({
35
23
  backgroundColor: styles$1.scopeTheme(theme).palette.primary.main,
36
24
  borderRadius: styles$1.scopeTheme(theme).borderRadius.S,
@@ -0,0 +1,7 @@
1
+ 'use strict';
2
+
3
+ var shipmentNotFoundError = require('./shipment-not-found-error.cjs');
4
+
5
+
6
+
7
+ exports.ShipmentNotFoundError = shipmentNotFoundError.ShipmentNotFoundError;
@@ -0,0 +1,40 @@
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 shipmentNotFoundError_styles = require('./shipment-not-found-error.styles.cjs');
8
+
9
+ const ShipmentNotFoundError = ({
10
+ shipmentId,
11
+ onCreateNewShipment
12
+ }) => {
13
+ const {
14
+ t
15
+ } = reactI18next.useTranslation(["common", "purchase-label"]);
16
+ return jsxRuntime.jsxs("div", {
17
+ css: shipmentNotFoundError_styles.styles.container,
18
+ children: [jsxRuntime.jsx("div", {
19
+ css: shipmentNotFoundError_styles.styles.iconContainer,
20
+ children: jsxRuntime.jsx(giger.Icon, {
21
+ name: gigerTheme.IconNames.CANCEL,
22
+ size: giger.IconSize.SIZE_LARGE
23
+ })
24
+ }), jsxRuntime.jsx("div", {
25
+ css: shipmentNotFoundError_styles.styles.message,
26
+ children: t("common:errorMessages.shipmentNotFound", {
27
+ id: shipmentId
28
+ })
29
+ }), jsxRuntime.jsx(giger.Button, {
30
+ "data-testid": "create-new-shipment",
31
+ onClick: () => {
32
+ void (onCreateNewShipment === null || onCreateNewShipment === void 0 ? void 0 : onCreateNewShipment());
33
+ },
34
+ type: "button",
35
+ children: t("purchase-label:actions.createNewShipment")
36
+ })]
37
+ });
38
+ };
39
+
40
+ exports.ShipmentNotFoundError = ShipmentNotFoundError;
@@ -0,0 +1,24 @@
1
+ 'use strict';
2
+
3
+ var styles$1 = require('../../utilities/styles.cjs');
4
+
5
+ const styles = styles$1.createStyles({
6
+ container: {
7
+ alignItems: "center",
8
+ display: "flex",
9
+ flexDirection: "column",
10
+ height: "100%",
11
+ justifyContent: "center",
12
+ textAlign: "center",
13
+ width: "100%"
14
+ },
15
+ iconContainer: theme => ({
16
+ color: styles$1.scopeTheme(theme).palette.error.main,
17
+ marginBottom: styles$1.scopeTheme(theme).spacing(2)
18
+ }),
19
+ message: theme => ({
20
+ marginBottom: styles$1.scopeTheme(theme).spacing(2)
21
+ })
22
+ });
23
+
24
+ exports.styles = styles;
@@ -2,13 +2,16 @@
2
2
 
3
3
  var jsxRuntime = require('@emotion/react/jsx-runtime');
4
4
  var reactI18next = require('react-i18next');
5
+ var shipmentNotFoundError = require('../shipment-not-found-error/shipment-not-found-error.cjs');
5
6
  var loader = require('../loader/loader.cjs');
6
7
 
7
8
  const SuspendPurchase = ({
8
9
  children,
9
10
  errors,
10
11
  isLoading,
11
- data
12
+ data,
13
+ onCreateNewShipment,
14
+ shipmentId
12
15
  }) => {
13
16
  const {
14
17
  t
@@ -17,7 +20,7 @@ const SuspendPurchase = ({
17
20
  message: t("loading.shipment")
18
21
  });
19
22
  if (errors) {
20
- errors.forEach(error => {
23
+ for (const error of errors) {
21
24
  switch (error.message) {
22
25
  case "no_carriers":
23
26
  throw new Error(t("common:errorMessages.incompleteLabelPurchaseRequirements", {
@@ -33,8 +36,13 @@ const SuspendPurchase = ({
33
36
  }));
34
37
  case "label_purchased":
35
38
  throw new Error(t("common:errorMessages.labelHasBeenPurchased"));
39
+ case "shipment_not_found":
40
+ return jsxRuntime.jsx(shipmentNotFoundError.ShipmentNotFoundError, {
41
+ onCreateNewShipment: onCreateNewShipment,
42
+ shipmentId: shipmentId
43
+ });
36
44
  }
37
- });
45
+ }
38
46
  throw new Error(errors.map(e => e.message).join(", "));
39
47
  }
40
48
  if (!data) throw new Error("errorMessages.unableToLoad.shipment");
@@ -0,0 +1,7 @@
1
+ 'use strict';
2
+
3
+ var upsTermsDisclosure = require('./ups-terms-disclosure.cjs');
4
+
5
+
6
+
7
+ exports.UPSTermsDisclosure = upsTermsDisclosure.UPSTermsDisclosure;
@@ -0,0 +1,35 @@
1
+ 'use strict';
2
+
3
+ var jsxRuntime = require('@emotion/react/jsx-runtime');
4
+ var giger = require('@shipengine/giger');
5
+ var styles$1 = require('../../utilities/styles.cjs');
6
+ var reactI18next = require('react-i18next');
7
+
8
+ const styles = styles$1.createStyles({
9
+ upsDisclosure: theme => ({
10
+ display: "flex",
11
+ flexDirection: "column",
12
+ gap: styles$1.scopeTheme(theme).spacing(1)
13
+ })
14
+ });
15
+ const UPSTermsDisclosure = () => {
16
+ const {
17
+ t
18
+ } = reactI18next.useTranslation();
19
+ return jsxRuntime.jsxs("div", {
20
+ css: styles.upsDisclosure,
21
+ children: [jsxRuntime.jsx(giger.Typography, {
22
+ bold: true,
23
+ variant: "body1",
24
+ children: t("onboarding:upsDisclosure.title")
25
+ }), jsxRuntime.jsx(giger.Typography, {
26
+ variant: "body1",
27
+ children: t("onboarding:upsDisclosure.line1")
28
+ }), jsxRuntime.jsx(giger.Typography, {
29
+ variant: "body1",
30
+ children: t("onboarding:upsDisclosure.line2")
31
+ })]
32
+ });
33
+ };
34
+
35
+ exports.UPSTermsDisclosure = UPSTermsDisclosure;
@@ -3,6 +3,7 @@
3
3
  var react = require('@emotion/react');
4
4
  var useGetServiceName = require('../../../hooks/use-get-service-name.cjs');
5
5
  var reactApi = require('@shipengine/react-api');
6
+ var files = require('../../../utilities/files.cjs');
6
7
  var styles = require('../../../utilities/styles.cjs');
7
8
  var React = require('react');
8
9
  var useTrackingStatusFilter = require('./use-tracking-status-filter.cjs');
@@ -16,9 +17,10 @@ const useLabelsGrid = ({
16
17
  showStatusFilter,
17
18
  showTrackingStatusFilter,
18
19
  fetchShipments,
19
- sortDir
20
+ sortDir,
21
+ columns
20
22
  }) => {
21
- var _a, _b, _c, _d, _e, _f, _g, _h;
23
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
22
24
  const initialFilters = {
23
25
  labelId: {
24
26
  enabled: !!showLabelIdFilter,
@@ -47,6 +49,7 @@ const useLabelsGrid = ({
47
49
  pagerProps
48
50
  } = usePager.usePager(PAGE_SIZE);
49
51
  const [filters, setFilters] = React.useState(initialFilters);
52
+ const [enabledLabelsExport, setEnabledLabelsExport] = React.useState(false);
50
53
  const clearAllFilters = () => {
51
54
  setFilters(initialFilters);
52
55
  };
@@ -134,6 +137,39 @@ const useLabelsGrid = ({
134
137
  sortDir: sortDir !== null && sortDir !== void 0 ? sortDir : "desc"
135
138
  }
136
139
  });
140
+ const {
141
+ data: exportLabelsData,
142
+ isInitialLoading: isExportLabelsinitialLoading,
143
+ isRefetching,
144
+ isError: isExportLabelsError
145
+ } = reactApi.useExportLabels({
146
+ enabled: enabledLabelsExport,
147
+ queryFnParams: {
148
+ labelStatus: ((_g = filters.status) === null || _g === void 0 ? void 0 : _g.value) || labelStatus,
149
+ labelId: ((_h = filters.labelId) === null || _h === void 0 ? void 0 : _h.value) || undefined,
150
+ shipmentId: filters.shipmentId.value || undefined,
151
+ sortDir: sortDir !== null && sortDir !== void 0 ? sortDir : "desc",
152
+ columns
153
+ }
154
+ });
155
+ React.useEffect(() => {
156
+ if (exportLabelsData && !isExportLabelsinitialLoading && !isRefetching) {
157
+ files.createLocalFileFromBlobResponse("label", exportLabelsData);
158
+ setEnabledLabelsExport(false);
159
+ }
160
+ }, [isExportLabelsinitialLoading, isRefetching, exportLabelsData]);
161
+ // This function will be called when the error display duration ends
162
+ const onExportErrorDurationEnd = () => {
163
+ setEnabledLabelsExport(false);
164
+ };
165
+ const onClickExportLabelsCSV = () => {
166
+ if (exportLabelsData) {
167
+ files.createLocalFileFromBlobResponse("label", exportLabelsData);
168
+ setEnabledLabelsExport(false);
169
+ } else {
170
+ setEnabledLabelsExport(true);
171
+ }
172
+ };
137
173
  const labels = React.useMemo(() => {
138
174
  // If tracking status filter is active, use the filtered labels from the hook
139
175
  if (isTrackingStatusFilterActive) {
@@ -169,8 +205,8 @@ const useLabelsGrid = ({
169
205
  data: labelFilterData,
170
206
  isError: isLabelFilterError,
171
207
  isInitialLoading: isLabelFilterLoading
172
- } = reactApi.useGetLabel(((_g = filters.labelId) === null || _g === void 0 ? void 0 : _g.value) || undefined);
173
- const isLabelFilterActive = (_h = filters.labelId) === null || _h === void 0 ? void 0 : _h.value;
208
+ } = reactApi.useGetLabel(((_j = filters.labelId) === null || _j === void 0 ? void 0 : _j.value) || undefined);
209
+ const isLabelFilterActive = (_k = filters.labelId) === null || _k === void 0 ? void 0 : _k.value;
174
210
  const isStatusFilteredOut = (status, filter) => {
175
211
  return (filter === null || filter === void 0 ? void 0 : filter.length) && !filter.includes(status);
176
212
  };
@@ -227,13 +263,16 @@ const useLabelsGrid = ({
227
263
  return [];
228
264
  };
229
265
  return {
266
+ onClickExportLabelsCSV,
230
267
  clearAllFilters,
231
268
  filters,
232
269
  getGridData,
233
270
  hasMoreUnfetchedResults: isTrackingStatusFilterActive ? hasMoreUnfetchedResults : false,
234
271
  isAnyFilterActive,
272
+ isExportLabelsError,
235
273
  isError: isListLabelsError || isListShipmentsError && fetchShipments,
236
274
  isFetchingNextPage: isTrackingStatusFilterActive ? isFetchingNextPage : false,
275
+ onExportErrorDurationEnd,
237
276
  // Calculate isLoading based on which query should be active
238
277
  isLoading:
239
278
  // Always include label filter loading when label ID filter is active
@@ -251,7 +290,8 @@ const useLabelsGrid = ({
251
290
  totalElements: labelFilteredById ? 1 : isTrackingStatusFilterActive ? (statusFilteredPaginationInfo === null || statusFilteredPaginationInfo === void 0 ? void 0 : statusFilteredPaginationInfo.totalCount) || 0 : (listLabelsData === null || listLabelsData === void 0 ? void 0 : listLabelsData.total) || 0
252
291
  },
253
292
  setFilters: onSetFilters,
254
- shouldShowFilters: isAnyFilterEnabled
293
+ shouldShowFilters: isAnyFilterEnabled,
294
+ isExportLabelsLoading: isExportLabelsinitialLoading || isRefetching
255
295
  };
256
296
  };
257
297
 
@@ -3,6 +3,7 @@
3
3
  var jsxRuntime = require('@emotion/react/jsx-runtime');
4
4
  var useSortableQuery = require('../../hooks/use-sortable-query.cjs');
5
5
  var giger = require('@shipengine/giger');
6
+ var formatString = require('../../utilities/formatString.cjs');
6
7
  var React = require('react');
7
8
  var reactI18next = require('react-i18next');
8
9
  var useLabelsGrid = require('./hooks/use-labels-grid.cjs');
@@ -32,9 +33,10 @@ const Component = ({
32
33
  onRowClick,
33
34
  onClickExternalOrderId,
34
35
  onClickExternalShipmentId,
35
- onClickShipmentNumber
36
+ onClickShipmentNumber,
37
+ onLabelsCSVExportClick
36
38
  }) => {
37
- var _a, _b, _c;
39
+ var _a, _b, _c, _d;
38
40
  const {
39
41
  t
40
42
  } = reactI18next.useTranslation(["common", "list-labels"]);
@@ -76,6 +78,7 @@ const Component = ({
76
78
  const showShipmentIdFilter = shipmentIdColumn && ((_b = shipmentIdColumn.allowFilter) !== null && _b !== void 0 ? _b : true);
77
79
  const showStatusFilter = statusColumn && ((_c = statusColumn.allowFilter) !== null && _c !== void 0 ? _c : true);
78
80
  const showTrackingStatusFilter = trackingStatusColumn && !!trackingStatusColumn.allowFilter;
81
+ const columnsArray = (_d = features === null || features === void 0 ? void 0 : features.columns) === null || _d === void 0 ? void 0 : _d.map(column => formatString.toSnakeCase(column.name));
79
82
  const {
80
83
  labels,
81
84
  getGridData,
@@ -88,7 +91,11 @@ const Component = ({
88
91
  pageConfig,
89
92
  isAnyFilterActive,
90
93
  shouldShowFilters,
91
- clearAllFilters
94
+ clearAllFilters,
95
+ onClickExportLabelsCSV,
96
+ isExportLabelsError,
97
+ isExportLabelsLoading,
98
+ onExportErrorDurationEnd
92
99
  } = useLabelsGrid.useLabelsGrid({
93
100
  fetchShipments: !!shipmentNumberColumn,
94
101
  labelStatus,
@@ -96,7 +103,8 @@ const Component = ({
96
103
  showShipmentIdFilter,
97
104
  showStatusFilter,
98
105
  showTrackingStatusFilter,
99
- sortDir: sortState.dir
106
+ sortDir: sortState.dir,
107
+ columns: columnsArray
100
108
  });
101
109
  React.useEffect(() => {
102
110
  if (prevStatus.current !== labelStatus) {
@@ -383,7 +391,7 @@ const Component = ({
383
391
  });
384
392
  }
385
393
  return cols;
386
- }, [t, toggleCreatedDateSort, sortState.createdAtDir, features === null || features === void 0 ? void 0 : features.columns, features === null || features === void 0 ? void 0 : features.showActions, labels, onClickExternalOrderId, onClickExternalShipmentId, onClickShipmentNumber, onClickVoidLabel, onClickViewDetails, onClickPrintLabel, onClickPrintForms]);
394
+ }, [t, toggleCreatedDateSort, sortState.createdAtDir, features === null || features === void 0 ? void 0 : features.columns, features === null || features === void 0 ? void 0 : features.showActions, labels, onClickExternalOrderId, onClickExternalShipmentId, onClickShipmentNumber, onClickTrackingNumber, onClickVoidLabel, onClickViewDetails, onClickPrintLabel, onClickPrintForms]);
387
395
  const emptyContentComponent = React.useMemo(() => {
388
396
  if (isLoading) {
389
397
  return undefined;
@@ -434,8 +442,18 @@ const Component = ({
434
442
  showPagination: pageConfig.showPagination,
435
443
  total: pageConfig.totalElements
436
444
  }),
445
+ hasExportCSVError: isExportLabelsError,
446
+ hasTrackingStatusFilter: showTrackingStatusFilter,
447
+ isExportCSVLoading: isExportLabelsLoading,
437
448
  isLoading: isLoading,
438
- onRowClick: onRowClick
449
+ onClickExportCSV: () => {
450
+ onClickExportLabelsCSV();
451
+ onLabelsCSVExportClick === null || onLabelsCSVExportClick === void 0 ? void 0 : onLabelsCSVExportClick();
452
+ },
453
+ onExportErrorDurationEnd: onExportErrorDurationEnd,
454
+ onRowClick: onRowClick,
455
+ showExportCSV: features === null || features === void 0 ? void 0 : features.showExportCSVButton,
456
+ totalAmountGridItems: pageConfig.totalElements
439
457
  }), globalFeatures.poweredByShipEngine && jsxRuntime.jsxs(jsxRuntime.Fragment, {
440
458
  children: [jsxRuntime.jsx(spacer.Spacer, {}), jsxRuntime.jsx(poweredByShipengine.PoweredByShipEngine, {})]
441
459
  })]