@gusto/embedded-react-sdk 0.21.0 → 0.23.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 (282) hide show
  1. package/CHANGELOG.md +62 -0
  2. package/README.md +32 -17
  3. package/dist/assets/icons/eye.svg.js +10 -0
  4. package/dist/assets/icons/eye.svg.js.map +1 -0
  5. package/dist/assets/icons/icon-file-outline.svg.js +10 -0
  6. package/dist/assets/icons/icon-file-outline.svg.js.map +1 -0
  7. package/dist/assets/icons/icon-receipt-outline.svg.js +10 -0
  8. package/dist/assets/icons/icon-receipt-outline.svg.js.map +1 -0
  9. package/dist/components/Base/Base.js.map +1 -1
  10. package/dist/components/Base/index.d.ts +1 -1
  11. package/dist/components/Common/Fields/CheckboxField/CheckboxField.js.map +1 -1
  12. package/dist/components/Common/Fields/CheckboxGroupField/CheckboxGroupField.js.map +1 -1
  13. package/dist/components/Common/Fields/ComboBoxField/ComboBoxField.js.map +1 -1
  14. package/dist/components/Common/Fields/DatePickerField/DatePickerField.js.map +1 -1
  15. package/dist/components/Common/Fields/NumberInputField/NumberInputField.js.map +1 -1
  16. package/dist/components/Common/Fields/RadioGroupField/RadioGroupField.js.map +1 -1
  17. package/dist/components/Common/Fields/SelectField/SelectField.js.map +1 -1
  18. package/dist/components/Common/Fields/SwitchField/SwitchField.js.map +1 -1
  19. package/dist/components/Common/Fields/TextAreaField/TextAreaField.js.map +1 -1
  20. package/dist/components/Common/Fields/TextInputField/TextInputField.js.map +1 -1
  21. package/dist/components/Common/Fieldset/Fieldset.js.map +1 -1
  22. package/dist/components/Common/FlowBreadcrumbs/breadcrumbTransitionHelpers.d.ts +1 -0
  23. package/dist/components/Common/FlowBreadcrumbs/breadcrumbTransitionHelpers.js +14 -0
  24. package/dist/components/Common/FlowBreadcrumbs/breadcrumbTransitionHelpers.js.map +1 -0
  25. package/dist/components/Common/FlowBreadcrumbs/index.d.ts +1 -0
  26. package/dist/components/Common/PaginationControl/PaginationControlTypes.d.ts +1 -1
  27. package/dist/components/Common/ReorderableList/ReorderableItem.d.ts +1 -1
  28. package/dist/components/Common/ReorderableList/ReorderableItem.js.map +1 -1
  29. package/dist/components/Common/ReorderableList/ReorderableList.js +7 -7
  30. package/dist/components/Common/ReorderableList/ReorderableList.js.map +1 -1
  31. package/dist/components/Common/SignatureForm/SignatureFormActions.js +1 -1
  32. package/dist/components/Common/SignatureForm/SignatureFormFields.js +1 -1
  33. package/dist/components/Common/UI/Badge/BadgeTypes.js.map +1 -1
  34. package/dist/components/Common/UI/Banner/BannerTypes.js.map +1 -1
  35. package/dist/components/Common/UI/Button/ButtonIcon.d.ts +1 -1
  36. package/dist/components/Common/UI/Button/ButtonIcon.js +10 -7
  37. package/dist/components/Common/UI/Button/ButtonIcon.js.map +1 -1
  38. package/dist/components/Common/UI/Button/ButtonTypes.js.map +1 -1
  39. package/dist/components/Common/UI/Checkbox/CheckboxTypes.js.map +1 -1
  40. package/dist/components/Common/UI/CheckboxGroup/CheckboxGroupTypes.js.map +1 -1
  41. package/dist/components/Common/UI/ComboBox/ComboBox.module.scss.js +1 -1
  42. package/dist/components/Common/UI/DatePicker/DatePicker.module.scss.js +7 -7
  43. package/dist/components/Common/UI/Input/InputTypes.js.map +1 -1
  44. package/dist/components/Common/UI/LoadingSpinner/LoadingSpinnerTypes.js.map +1 -1
  45. package/dist/components/Common/UI/Radio/RadioTypes.js.map +1 -1
  46. package/dist/components/Common/UI/RadioGroup/RadioGroupTypes.js.map +1 -1
  47. package/dist/components/Common/UI/Select/Select.module.scss.js +6 -6
  48. package/dist/components/Common/UI/Switch/SwitchTypes.js.map +1 -1
  49. package/dist/components/Common/UI/Table/Table.module.scss.js +1 -1
  50. package/dist/components/Common/UI/Table/TableTypes.js.map +1 -1
  51. package/dist/components/Common/UI/Tabs/Tabs.module.scss.js +5 -5
  52. package/dist/components/Common/UI/TextArea/TextAreaTypes.js.map +1 -1
  53. package/dist/components/Common/UI/TextInput/TextInputTypes.js.map +1 -1
  54. package/dist/components/Company/AssignSignatory/CreateSignatory/CreateSignatoryForm.js +6 -5
  55. package/dist/components/Company/AssignSignatory/CreateSignatory/CreateSignatoryForm.js.map +1 -1
  56. package/dist/components/Company/AssignSignatory/CreateSignatory/useCreateSignatory.js +3 -4
  57. package/dist/components/Company/AssignSignatory/CreateSignatory/useCreateSignatory.js.map +1 -1
  58. package/dist/components/Company/AssignSignatory/InviteSignatory/InviteSignatoryForm.js +5 -4
  59. package/dist/components/Company/AssignSignatory/InviteSignatory/InviteSignatoryForm.js.map +1 -1
  60. package/dist/components/Company/AssignSignatory/InviteSignatory/useInviteSignatory.js +3 -4
  61. package/dist/components/Company/AssignSignatory/InviteSignatory/useInviteSignatory.js.map +1 -1
  62. package/dist/components/Company/AssignSignatory/useAssignSignatory.js +5 -6
  63. package/dist/components/Company/AssignSignatory/useAssignSignatory.js.map +1 -1
  64. package/dist/components/Company/BankAccount/BankAccountForm/context.js +3 -4
  65. package/dist/components/Company/BankAccount/BankAccountForm/context.js.map +1 -1
  66. package/dist/components/Company/DocumentSigner/DocumentList/useDocumentList.js +3 -4
  67. package/dist/components/Company/DocumentSigner/DocumentList/useDocumentList.js.map +1 -1
  68. package/dist/components/Company/DocumentSigner/SignatureForm/useSignatureForm.js +3 -4
  69. package/dist/components/Company/DocumentSigner/SignatureForm/useSignatureForm.js.map +1 -1
  70. package/dist/components/Company/FederalTaxes/useFederalTaxes.js +5 -6
  71. package/dist/components/Company/FederalTaxes/useFederalTaxes.js.map +1 -1
  72. package/dist/components/Company/Industry/Context.js +6 -7
  73. package/dist/components/Company/Industry/Context.js.map +1 -1
  74. package/dist/components/Company/Locations/LocationForm/Form.js +5 -4
  75. package/dist/components/Company/Locations/LocationForm/Form.js.map +1 -1
  76. package/dist/components/Company/Locations/LocationForm/useLocationForm.js +3 -4
  77. package/dist/components/Company/Locations/LocationForm/useLocationForm.js.map +1 -1
  78. package/dist/components/Company/Locations/LocationsList/useLocationsList.js +3 -4
  79. package/dist/components/Company/Locations/LocationsList/useLocationsList.js.map +1 -1
  80. package/dist/components/Company/OnboardingOverview/context.js +3 -4
  81. package/dist/components/Company/OnboardingOverview/context.js.map +1 -1
  82. package/dist/components/Company/PaySchedule/PaySchedule.js.map +1 -1
  83. package/dist/components/Company/PaySchedule/_parts/Edit.js +10 -9
  84. package/dist/components/Company/PaySchedule/_parts/Edit.js.map +1 -1
  85. package/dist/components/Company/PaySchedule/usePaySchedule.js +5 -6
  86. package/dist/components/Company/PaySchedule/usePaySchedule.js.map +1 -1
  87. package/dist/components/Company/StateTaxes/StateTaxesForm/context.js +3 -4
  88. package/dist/components/Company/StateTaxes/StateTaxesForm/context.js.map +1 -1
  89. package/dist/components/Company/StateTaxes/StateTaxesList/context.js +3 -4
  90. package/dist/components/Company/StateTaxes/StateTaxesList/context.js.map +1 -1
  91. package/dist/components/Company/index.d.ts +2 -0
  92. package/dist/components/Company/index.js +20 -16
  93. package/dist/components/Company/index.js.map +1 -1
  94. package/dist/components/Contractor/Address/Form.js +7 -6
  95. package/dist/components/Contractor/Address/Form.js.map +1 -1
  96. package/dist/components/Contractor/Address/useAddress.js +5 -6
  97. package/dist/components/Contractor/Address/useAddress.js.map +1 -1
  98. package/dist/components/Contractor/Payments/CreatePayment/CreatePayment.d.ts +7 -0
  99. package/dist/components/Contractor/Payments/CreatePayment/CreatePayment.js +204 -0
  100. package/dist/components/Contractor/Payments/CreatePayment/CreatePayment.js.map +1 -0
  101. package/dist/components/Contractor/Payments/CreatePayment/CreatePaymentPresentation.d.ts +15 -9
  102. package/dist/components/Contractor/Payments/CreatePayment/CreatePaymentPresentation.js +140 -0
  103. package/dist/components/Contractor/Payments/CreatePayment/CreatePaymentPresentation.js.map +1 -0
  104. package/dist/components/Contractor/Payments/CreatePayment/EditContractorPaymentPresentation.d.ts +39 -0
  105. package/dist/components/Contractor/Payments/CreatePayment/EditContractorPaymentPresentation.js +132 -0
  106. package/dist/components/Contractor/Payments/CreatePayment/EditContractorPaymentPresentation.js.map +1 -0
  107. package/dist/components/Contractor/Payments/CreatePayment/PreviewPresentation.d.ts +11 -0
  108. package/dist/components/Contractor/Payments/CreatePayment/PreviewPresentation.js +139 -0
  109. package/dist/components/Contractor/Payments/CreatePayment/PreviewPresentation.js.map +1 -0
  110. package/dist/components/Contractor/Payments/CreatePayment/helpers.d.ts +2 -0
  111. package/dist/components/Contractor/Payments/CreatePayment/helpers.js +6 -0
  112. package/dist/components/Contractor/Payments/CreatePayment/helpers.js.map +1 -0
  113. package/dist/components/Contractor/Payments/PaymentFlow/PaymentFlow.d.ts +2 -0
  114. package/dist/components/Contractor/Payments/PaymentFlow/PaymentFlow.js +26 -0
  115. package/dist/components/Contractor/Payments/PaymentFlow/PaymentFlow.js.map +1 -0
  116. package/dist/components/Contractor/Payments/PaymentFlow/PaymentFlowComponents.d.ts +16 -0
  117. package/dist/components/Contractor/Payments/PaymentFlow/PaymentFlowComponents.js +31 -0
  118. package/dist/components/Contractor/Payments/PaymentFlow/PaymentFlowComponents.js.map +1 -0
  119. package/dist/components/Contractor/Payments/PaymentFlow/index.d.ts +3 -0
  120. package/dist/components/Contractor/Payments/PaymentFlow/paymentStateMachine.d.ts +7 -0
  121. package/dist/components/Contractor/Payments/PaymentFlow/paymentStateMachine.js +122 -0
  122. package/dist/components/Contractor/Payments/PaymentFlow/paymentStateMachine.js.map +1 -0
  123. package/dist/components/Contractor/Payments/PaymentHistory/PaymentHistory.d.ts +8 -0
  124. package/dist/components/Contractor/Payments/PaymentHistory/PaymentHistory.js +26 -0
  125. package/dist/components/Contractor/Payments/PaymentHistory/PaymentHistory.js.map +1 -0
  126. package/dist/components/Contractor/Payments/PaymentHistory/PaymentHistoryPresentation.d.ts +17 -15
  127. package/dist/components/Contractor/Payments/PaymentHistory/PaymentHistoryPresentation.js +114 -0
  128. package/dist/components/Contractor/Payments/PaymentHistory/PaymentHistoryPresentation.js.map +1 -0
  129. package/dist/components/Contractor/Payments/PaymentsList/PaymentsList.d.ts +9 -0
  130. package/dist/components/Contractor/Payments/PaymentsList/PaymentsList.js +49 -0
  131. package/dist/components/Contractor/Payments/PaymentsList/PaymentsList.js.map +1 -0
  132. package/dist/components/Contractor/Payments/PaymentsList/PaymentsListPresentation.d.ts +12 -0
  133. package/dist/components/Contractor/Payments/PaymentsList/PaymentsListPresentation.js +116 -0
  134. package/dist/components/Contractor/Payments/PaymentsList/PaymentsListPresentation.js.map +1 -0
  135. package/dist/components/Contractor/Payments/PaymentsList/PaymentsListPresentation.module.scss.js +10 -0
  136. package/dist/components/Contractor/Payments/PaymentsList/PaymentsListPresentation.module.scss.js.map +1 -0
  137. package/dist/components/Contractor/Payments/types.d.ts +8 -0
  138. package/dist/components/Contractor/Profile/useContractorProfile.d.ts +26 -26
  139. package/dist/components/Contractor/Submit/Submit.js.map +1 -1
  140. package/dist/components/Contractor/index.d.ts +1 -0
  141. package/dist/components/Contractor/index.js +4 -2
  142. package/dist/components/Contractor/index.js.map +1 -1
  143. package/dist/components/Employee/Deductions/DeductionsForm/ChildSupportForm.js +2 -3
  144. package/dist/components/Employee/Deductions/DeductionsForm/ChildSupportForm.js.map +1 -1
  145. package/dist/components/Employee/Deductions/DeductionsForm/CustomDeductionForm.d.ts +0 -3
  146. package/dist/components/Employee/Deductions/DeductionsForm/CustomDeductionForm.js +62 -77
  147. package/dist/components/Employee/Deductions/DeductionsForm/CustomDeductionForm.js.map +1 -1
  148. package/dist/components/Employee/Deductions/DeductionsForm/DeductionsForm.js +83 -50
  149. package/dist/components/Employee/Deductions/DeductionsForm/DeductionsForm.js.map +1 -1
  150. package/dist/components/Employee/Deductions/DeductionsForm/GarnishmentForm.d.ts +56 -0
  151. package/dist/components/Employee/Deductions/DeductionsForm/GarnishmentForm.js +159 -0
  152. package/dist/components/Employee/Deductions/DeductionsForm/GarnishmentForm.js.map +1 -0
  153. package/dist/components/Employee/Deductions/IncludeDeductions/IncludeDeductions.js +3 -2
  154. package/dist/components/Employee/Deductions/IncludeDeductions/IncludeDeductions.js.map +1 -1
  155. package/dist/components/Employee/DocumentSigner/DocumentList/useDocumentList.js +3 -4
  156. package/dist/components/Employee/DocumentSigner/DocumentList/useDocumentList.js.map +1 -1
  157. package/dist/components/Employee/DocumentSigner/SignatureForm/useSignatureForm.js +3 -4
  158. package/dist/components/Employee/DocumentSigner/SignatureForm/useSignatureForm.js.map +1 -1
  159. package/dist/components/Employee/EmployeeList/useEmployeeList.js +3 -4
  160. package/dist/components/Employee/EmployeeList/useEmployeeList.js.map +1 -1
  161. package/dist/components/Employee/FederalTaxes/FederalForm.d.ts +22 -7
  162. package/dist/components/Employee/FederalTaxes/FederalForm.js +86 -32
  163. package/dist/components/Employee/FederalTaxes/FederalForm.js.map +1 -1
  164. package/dist/components/Employee/FederalTaxes/FederalTaxes.js +62 -46
  165. package/dist/components/Employee/FederalTaxes/FederalTaxes.js.map +1 -1
  166. package/dist/components/Employee/FederalTaxes/useFederalTaxes.js +3 -4
  167. package/dist/components/Employee/FederalTaxes/useFederalTaxes.js.map +1 -1
  168. package/dist/components/Employee/PaymentMethod/BankAccountsList.js +25 -23
  169. package/dist/components/Employee/PaymentMethod/BankAccountsList.js.map +1 -1
  170. package/dist/components/Employee/PaymentMethod/PaymentMethod.js +116 -106
  171. package/dist/components/Employee/PaymentMethod/PaymentMethod.js.map +1 -1
  172. package/dist/components/Employee/PaymentMethod/Split.js.map +1 -1
  173. package/dist/components/Employee/PaymentMethod/usePaymentMethod.js +5 -6
  174. package/dist/components/Employee/PaymentMethod/usePaymentMethod.js.map +1 -1
  175. package/dist/components/Employee/Profile/AdminPersonalDetails.d.ts +6 -6
  176. package/dist/components/Employee/Profile/HomeAddress.js +9 -8
  177. package/dist/components/Employee/Profile/HomeAddress.js.map +1 -1
  178. package/dist/components/Employee/Profile/PersonalDetailsInputs.d.ts +2 -2
  179. package/dist/components/Employee/Profile/PersonalDetailsInputs.js +9 -8
  180. package/dist/components/Employee/Profile/PersonalDetailsInputs.js.map +1 -1
  181. package/dist/components/Employee/Profile/useProfile.js +3 -4
  182. package/dist/components/Employee/Profile/useProfile.js.map +1 -1
  183. package/dist/components/Employee/StateTaxes/useStateTaxes.js +3 -4
  184. package/dist/components/Employee/StateTaxes/useStateTaxes.js.map +1 -1
  185. package/dist/components/Employee/Taxes/FederalForm.d.ts +22 -7
  186. package/dist/components/Employee/Taxes/FederalForm.js +86 -32
  187. package/dist/components/Employee/Taxes/FederalForm.js.map +1 -1
  188. package/dist/components/Employee/Taxes/Taxes.js +97 -81
  189. package/dist/components/Employee/Taxes/Taxes.js.map +1 -1
  190. package/dist/components/Employee/Taxes/useTaxes.js +3 -4
  191. package/dist/components/Employee/Taxes/useTaxes.js.map +1 -1
  192. package/dist/components/Flow/Flow.d.ts +3 -3
  193. package/dist/components/Flow/Flow.js +35 -31
  194. package/dist/components/Flow/Flow.js.map +1 -1
  195. package/dist/components/Payroll/ConfirmWireDetails/ConfirmWireDetails.js +46 -39
  196. package/dist/components/Payroll/ConfirmWireDetails/ConfirmWireDetails.js.map +1 -1
  197. package/dist/components/Payroll/ConfirmWireDetails/ConfirmWireDetails.module.scss.js +8 -0
  198. package/dist/components/Payroll/ConfirmWireDetails/ConfirmWireDetails.module.scss.js.map +1 -0
  199. package/dist/components/Payroll/ConfirmWireDetails/ConfirmWireDetailsBanner/ConfirmWireDetailsBanner.js.map +1 -1
  200. package/dist/components/Payroll/ConfirmWireDetails/ConfirmWireDetailsComponents.js.map +1 -1
  201. package/dist/components/Payroll/ConfirmWireDetails/ConfirmWireDetailsForm/ConfirmWireDetailsForm.js +71 -72
  202. package/dist/components/Payroll/ConfirmWireDetails/ConfirmWireDetailsForm/ConfirmWireDetailsForm.js.map +1 -1
  203. package/dist/components/Payroll/ConfirmWireDetails/WireInstructions/WireInstructions.js +21 -22
  204. package/dist/components/Payroll/ConfirmWireDetails/WireInstructions/WireInstructions.js.map +1 -1
  205. package/dist/components/Payroll/ConfirmWireDetails/confirmWireDetailsStateMachine.d.ts +2 -2
  206. package/dist/components/Payroll/ConfirmWireDetails/confirmWireDetailsStateMachine.js +19 -19
  207. package/dist/components/Payroll/ConfirmWireDetails/confirmWireDetailsStateMachine.js.map +1 -1
  208. package/dist/components/Payroll/PayrollConfiguration/PayrollConfigurationPresentation.js +17 -16
  209. package/dist/components/Payroll/PayrollConfiguration/PayrollConfigurationPresentation.js.map +1 -1
  210. package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployeePresentation.js +36 -35
  211. package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployeePresentation.js.map +1 -1
  212. package/dist/components/Payroll/PayrollFlow/PayrollFlowComponents.d.ts +1 -0
  213. package/dist/components/Payroll/PayrollFlow/PayrollFlowComponents.js.map +1 -1
  214. package/dist/components/Payroll/PayrollFlow/payrollStateMachine.js +75 -68
  215. package/dist/components/Payroll/PayrollFlow/payrollStateMachine.js.map +1 -1
  216. package/dist/components/Payroll/PayrollHistory/PayrollHistoryPresentation.js +66 -65
  217. package/dist/components/Payroll/PayrollHistory/PayrollHistoryPresentation.js.map +1 -1
  218. package/dist/components/Payroll/PayrollOverview/PayrollOverview.js +127 -103
  219. package/dist/components/Payroll/PayrollOverview/PayrollOverview.js.map +1 -1
  220. package/dist/components/Payroll/PayrollOverview/PayrollOverviewPresentation.js +254 -185
  221. package/dist/components/Payroll/PayrollOverview/PayrollOverviewPresentation.js.map +1 -1
  222. package/dist/components/Payroll/PayrollOverview/SubmissionBlockers/{FastAchThresholdExceeded.d.ts → FastAchSubmissionBlockerBanner.d.ts} +2 -2
  223. package/dist/components/Payroll/PayrollOverview/SubmissionBlockers/FastAchSubmissionBlockerBanner.js +55 -0
  224. package/dist/components/Payroll/PayrollOverview/SubmissionBlockers/FastAchSubmissionBlockerBanner.js.map +1 -0
  225. package/dist/components/Payroll/PayrollOverview/SubmissionBlockers/index.d.ts +1 -1
  226. package/dist/components/Payroll/PayrollReceipts/PayrollReceiptsPresentation.module.scss.js +1 -1
  227. package/dist/components/Payroll/PayrollStatusBadges/payrollStatusConfig.js +1 -1
  228. package/dist/components/Payroll/PayrollStatusBadges/payrollStatusConfig.js.map +1 -1
  229. package/dist/components/Payroll/index.d.ts +1 -1
  230. package/dist/components/Payroll/index.js +8 -6
  231. package/dist/components/Payroll/index.js.map +1 -1
  232. package/dist/components/Payroll/usePreparedPayrollData.js +6 -7
  233. package/dist/components/Payroll/usePreparedPayrollData.js.map +1 -1
  234. package/dist/contexts/ComponentAdapter/componentAdapterTypes.d.ts +4 -1
  235. package/dist/contexts/GustoProvider/GustoProviderCustomUIAdapter.js +9 -11
  236. package/dist/contexts/GustoProvider/GustoProviderCustomUIAdapter.js.map +1 -1
  237. package/dist/contexts/LocaleProvider/useLocale.d.ts +6 -3
  238. package/dist/contexts/LocaleProvider/useLocale.js +12 -9
  239. package/dist/contexts/LocaleProvider/useLocale.js.map +1 -1
  240. package/dist/helpers/currencyHelpers.d.ts +2 -0
  241. package/dist/helpers/currencyHelpers.js +6 -0
  242. package/dist/helpers/currencyHelpers.js.map +1 -0
  243. package/dist/helpers/formattedStrings.js +11 -12
  244. package/dist/helpers/formattedStrings.js.map +1 -1
  245. package/dist/i18n/I18n.js +10 -10
  246. package/dist/i18n/I18n.js.map +1 -1
  247. package/dist/i18n/en/Contractor.Payments.CreatePayment.json.js +40 -0
  248. package/dist/i18n/en/Contractor.Payments.CreatePayment.json.js.map +1 -0
  249. package/dist/i18n/en/Contractor.Payments.PaymentHistory.json.js +24 -0
  250. package/dist/i18n/en/Contractor.Payments.PaymentHistory.json.js.map +1 -0
  251. package/dist/i18n/en/Contractor.Payments.PaymentsList.json.js +36 -0
  252. package/dist/i18n/en/Contractor.Payments.PaymentsList.json.js.map +1 -0
  253. package/dist/i18n/en/Employee.Deductions.json.js +58 -46
  254. package/dist/i18n/en/Employee.Deductions.json.js.map +1 -1
  255. package/dist/i18n/en/Employee.FederalTaxes.json.js +49 -41
  256. package/dist/i18n/en/Employee.FederalTaxes.json.js.map +1 -1
  257. package/dist/i18n/en/Employee.Taxes.json.js +53 -45
  258. package/dist/i18n/en/Employee.Taxes.json.js.map +1 -1
  259. package/dist/i18n/en/Payroll.ConfirmWireDetailsForm.json.js +5 -5
  260. package/dist/i18n/en/Payroll.PayrollConfiguration.json.js +1 -1
  261. package/dist/i18n/en/Payroll.PayrollList.json.js +5 -5
  262. package/dist/i18n/en/Payroll.PayrollOverview.json.js +35 -31
  263. package/dist/i18n/en/Payroll.PayrollOverview.json.js.map +1 -1
  264. package/dist/shared/constants.d.ts +18 -0
  265. package/dist/shared/constants.js +73 -59
  266. package/dist/shared/constants.js.map +1 -1
  267. package/dist/style.css +1 -1
  268. package/dist/types/i18next.d.ts +182 -125
  269. package/package.json +18 -18
  270. package/dist/components/Contractor/Payments/Detail/DetailPresentation.d.ts +0 -19
  271. package/dist/components/Contractor/Payments/Overview/OverviewPresentation.d.ts +0 -18
  272. package/dist/components/Contractor/Payments/PaymentEdit/PaymentEditPresentation.d.ts +0 -6
  273. package/dist/components/Payroll/PayrollOverview/SubmissionBlockers/FastAchThresholdExceeded.js +0 -52
  274. package/dist/components/Payroll/PayrollOverview/SubmissionBlockers/FastAchThresholdExceeded.js.map +0 -1
  275. package/dist/i18n/en/ContractorPayment.ContractorPaymentCreatePayment.json.js +0 -32
  276. package/dist/i18n/en/ContractorPayment.ContractorPaymentCreatePayment.json.js.map +0 -1
  277. package/dist/i18n/en/ContractorPayment.ContractorPaymentDetail.json.js +0 -24
  278. package/dist/i18n/en/ContractorPayment.ContractorPaymentDetail.json.js.map +0 -1
  279. package/dist/i18n/en/ContractorPayment.ContractorPaymentOverview.json.js +0 -32
  280. package/dist/i18n/en/ContractorPayment.ContractorPaymentOverview.json.js.map +0 -1
  281. package/dist/i18n/en/ContractorPayment.ContractorPaymentPaymentHistory.json.js +0 -32
  282. package/dist/i18n/en/ContractorPayment.ContractorPaymentPaymentHistory.json.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"ConfirmWireDetails.js","sources":["../../../../src/components/Payroll/ConfirmWireDetails/ConfirmWireDetails.tsx"],"sourcesContent":["import { createMachine } from 'robot3'\nimport { useMachine } from 'react-robot'\nimport { useMemo, useRef, useState } from 'react'\nimport { useWireInRequestsListSuspense } from '@gusto/embedded-api/react-query/wireInRequestsList'\nimport { ConfirmWireDetailsBanner } from './ConfirmWireDetailsBanner'\nimport { confirmWireDetailsMachine } from './confirmWireDetailsStateMachine'\nimport { type ConfirmWireDetailsContextInterface } from './ConfirmWireDetailsComponents'\nimport { BaseComponent, type BaseComponentInterface } from '@/components/Base'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { FlowContext } from '@/components/Flow/useFlow'\nimport { payrollWireEvents, type EventType } from '@/shared/constants'\n\nexport interface ConfirmWireDetailsProps extends BaseComponentInterface {\n companyId: string\n wireInId?: string\n}\n\nexport function ConfirmWireDetails(props: ConfirmWireDetailsProps) {\n return (\n <BaseComponent {...props}>\n <Root {...props} />\n </BaseComponent>\n )\n}\n\nfunction Root({ companyId, wireInId, onEvent }: ConfirmWireDetailsProps) {\n const { Modal } = useComponentContext()\n const [isModalOpen, setIsModalOpen] = useState(false)\n const modalContainerRef = useRef<HTMLDivElement>(null)\n\n const { data: wireInRequestsData } = useWireInRequestsListSuspense({\n companyUuid: companyId,\n })\n\n const activeWireInRequests = (wireInRequestsData.wireInRequestList || []).filter(\n r => r.status === 'awaiting_funds',\n )\n\n const selectedWireInId = useMemo(() => {\n if (wireInId) {\n return wireInId\n }\n\n return activeWireInRequests[0]?.uuid\n }, [wireInId, activeWireInRequests[0]?.uuid])\n\n const confirmWireDetailsMachineInstance = useMemo(\n () =>\n createMachine(\n 'banner',\n confirmWireDetailsMachine,\n (): ConfirmWireDetailsContextInterface => ({\n component: null,\n companyId,\n wireInId,\n selectedWireInId,\n onEvent: handleEvent,\n modalContainerRef,\n }),\n ),\n [companyId, wireInId, selectedWireInId],\n )\n const [current, send] = useMachine(confirmWireDetailsMachineInstance)\n\n function handleEvent(type: EventType, data?: unknown) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call\n send({ type, payload: data })\n\n if (type === payrollWireEvents.PAYROLL_WIRE_START_TRANSFER) {\n setIsModalOpen(true)\n }\n\n if (\n type === payrollWireEvents.PAYROLL_WIRE_INSTRUCTIONS_CANCEL ||\n type === payrollWireEvents.PAYROLL_WIRE_FORM_CANCEL ||\n type === payrollWireEvents.PAYROLL_WIRE_FORM_DONE\n ) {\n setIsModalOpen(false)\n }\n\n onEvent(type, data)\n }\n\n const handleStartWireTransfer = () => {\n handleEvent(payrollWireEvents.PAYROLL_WIRE_START_TRANSFER)\n }\n\n const handleCloseModal = () => {\n setIsModalOpen(false)\n }\n\n const CurrentComponent = current.context.component\n const Footer = CurrentComponent?.Footer || undefined\n\n return (\n <FlowContext.Provider\n value={{\n ...current.context,\n onEvent: handleEvent,\n }}\n >\n <ConfirmWireDetailsBanner\n companyId={companyId}\n wireInId={wireInId}\n onStartWireTransfer={handleStartWireTransfer}\n onEvent={onEvent}\n confirmationAlert={current.context.confirmationAlert}\n />\n <Modal\n isOpen={isModalOpen}\n onClose={handleCloseModal}\n containerRef={modalContainerRef}\n footer={Footer && <Footer onEvent={handleEvent} />}\n >\n {CurrentComponent && <CurrentComponent />}\n </Modal>\n </FlowContext.Provider>\n )\n}\n"],"names":["ConfirmWireDetails","props","jsx","BaseComponent","Root","companyId","wireInId","onEvent","Modal","useComponentContext","isModalOpen","setIsModalOpen","useState","modalContainerRef","useRef","wireInRequestsData","useWireInRequestsListSuspense","activeWireInRequests","r","selectedWireInId","useMemo","confirmWireDetailsMachineInstance","createMachine","confirmWireDetailsMachine","handleEvent","current","send","useMachine","type","data","payrollWireEvents","handleStartWireTransfer","handleCloseModal","CurrentComponent","Footer","jsxs","FlowContext","ConfirmWireDetailsBanner"],"mappings":";;;;;;;;;;;;AAiBO,SAASA,EAAmBC,GAAgC;AACjE,SACE,gBAAAC,EAACC,KAAe,GAAGF,GACjB,4BAACG,GAAA,EAAM,GAAGH,GAAO,EAAA,CACnB;AAEJ;AAEA,SAASG,EAAK,EAAE,WAAAC,GAAW,UAAAC,GAAU,SAAAC,KAAoC;AACvE,QAAM,EAAE,OAAAC,EAAA,IAAUC,EAAA,GACZ,CAACC,GAAaC,CAAc,IAAIC,EAAS,EAAK,GAC9CC,IAAoBC,EAAuB,IAAI,GAE/C,EAAE,MAAMC,EAAA,IAAuBC,EAA8B;AAAA,IACjE,aAAaX;AAAA,EAAA,CACd,GAEKY,KAAwBF,EAAmB,qBAAqB,CAAA,GAAI;AAAA,IACxE,CAAAG,MAAKA,EAAE,WAAW;AAAA,EAAA,GAGdC,IAAmBC,EAAQ,MAC3Bd,KAIGW,EAAqB,CAAC,GAAG,MAC/B,CAACX,GAAUW,EAAqB,CAAC,GAAG,IAAI,CAAC,GAEtCI,IAAoCD;AAAA,IACxC,MACEE;AAAA,MACE;AAAA,MACAC;AAAA,MACA,OAA2C;AAAA,QACzC,WAAW;AAAA,QACX,WAAAlB;AAAA,QACA,UAAAC;AAAA,QACA,kBAAAa;AAAA,QACA,SAASK;AAAA,QACT,mBAAAX;AAAA,MAAA;AAAA,IACF;AAAA,IAEJ,CAACR,GAAWC,GAAUa,CAAgB;AAAA,EAAA,GAElC,CAACM,GAASC,CAAI,IAAIC,EAAWN,CAAiC;AAEpE,WAASG,EAAYI,GAAiBC,GAAgB;AAEpD,IAAAH,EAAK,EAAE,MAAAE,GAAM,SAASC,EAAA,CAAM,GAExBD,MAASE,EAAkB,+BAC7BnB,EAAe,EAAI,IAInBiB,MAASE,EAAkB,oCAC3BF,MAASE,EAAkB,4BAC3BF,MAASE,EAAkB,2BAE3BnB,EAAe,EAAK,GAGtBJ,EAAQqB,GAAMC,CAAI;AAAA,EACpB;AAEA,QAAME,IAA0B,MAAM;AACpC,IAAAP,EAAYM,EAAkB,2BAA2B;AAAA,EAC3D,GAEME,IAAmB,MAAM;AAC7B,IAAArB,EAAe,EAAK;AAAA,EACtB,GAEMsB,IAAmBR,EAAQ,QAAQ,WACnCS,IAASD,GAAkB,UAAU;AAE3C,SACE,gBAAAE;AAAA,IAACC,EAAY;AAAA,IAAZ;AAAA,MACC,OAAO;AAAA,QACL,GAAGX,EAAQ;AAAA,QACX,SAASD;AAAA,MAAA;AAAA,MAGX,UAAA;AAAA,QAAA,gBAAAtB;AAAA,UAACmC;AAAA,UAAA;AAAA,YACC,WAAAhC;AAAA,YACA,UAAAC;AAAA,YACA,qBAAqByB;AAAA,YACrB,SAAAxB;AAAA,YACA,mBAAmBkB,EAAQ,QAAQ;AAAA,UAAA;AAAA,QAAA;AAAA,QAErC,gBAAAvB;AAAA,UAACM;AAAA,UAAA;AAAA,YACC,QAAQE;AAAA,YACR,SAASsB;AAAA,YACT,cAAcnB;AAAA,YACd,QAAQqB,KAAU,gBAAAhC,EAACgC,GAAA,EAAO,SAASV,GAAa;AAAA,YAE/C,UAAAS,uBAAqBA,GAAA,CAAA,CAAiB;AAAA,UAAA;AAAA,QAAA;AAAA,MACzC;AAAA,IAAA;AAAA,EAAA;AAGN;"}
1
+ {"version":3,"file":"ConfirmWireDetails.js","sources":["../../../../src/components/Payroll/ConfirmWireDetails/ConfirmWireDetails.tsx"],"sourcesContent":["import { createMachine } from 'robot3'\nimport { useMachine } from 'react-robot'\nimport { useMemo, useRef, useState } from 'react'\nimport { useWireInRequestsListSuspense } from '@gusto/embedded-api/react-query/wireInRequestsList'\nimport { ConfirmWireDetailsBanner } from './ConfirmWireDetailsBanner'\nimport { confirmWireDetailsMachine } from './confirmWireDetailsStateMachine'\nimport { type ConfirmWireDetailsContextInterface } from './ConfirmWireDetailsComponents'\nimport styles from './ConfirmWireDetails.module.scss'\nimport { BaseComponent, BaseBoundaries, type BaseComponentInterface } from '@/components/Base'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { FlowContext } from '@/components/Flow/useFlow'\nimport { payrollWireEvents, type EventType } from '@/shared/constants'\n\nexport interface ConfirmWireDetailsProps extends BaseComponentInterface {\n companyId: string\n wireInId?: string\n}\n\nexport function ConfirmWireDetails(props: ConfirmWireDetailsProps) {\n return (\n <BaseComponent {...props}>\n <Root {...props} />\n </BaseComponent>\n )\n}\n\nfunction Root({ companyId, wireInId, onEvent }: ConfirmWireDetailsProps) {\n const { Modal, LoadingSpinner } = useComponentContext()\n const [isModalOpen, setIsModalOpen] = useState(false)\n const modalContainerRef = useRef<HTMLDivElement>(null)\n\n const { data: wireInRequestsData } = useWireInRequestsListSuspense({\n companyUuid: companyId,\n })\n\n const activeWireInRequests = (wireInRequestsData.wireInRequestList || []).filter(\n r => r.status === 'awaiting_funds',\n )\n\n const selectedWireInId = useMemo(() => {\n if (wireInId) {\n return wireInId\n }\n\n return activeWireInRequests[0]?.uuid\n }, [wireInId, activeWireInRequests[0]?.uuid])\n\n const confirmWireDetailsMachineInstance = useMemo(\n () =>\n createMachine(\n 'banner',\n confirmWireDetailsMachine,\n (): ConfirmWireDetailsContextInterface => ({\n component: null,\n companyId,\n wireInId,\n selectedWireInId,\n onEvent: handleEvent,\n modalContainerRef,\n }),\n ),\n [companyId, wireInId],\n )\n const [current, send] = useMachine(confirmWireDetailsMachineInstance)\n\n function handleEvent(type: EventType, data?: unknown) {\n send({ type, payload: data })\n\n if (type === payrollWireEvents.PAYROLL_WIRE_START_TRANSFER) {\n setIsModalOpen(true)\n }\n\n if (\n type === payrollWireEvents.PAYROLL_WIRE_INSTRUCTIONS_CANCEL ||\n type === payrollWireEvents.PAYROLL_WIRE_FORM_CANCEL ||\n type === payrollWireEvents.PAYROLL_WIRE_FORM_DONE\n ) {\n setIsModalOpen(false)\n }\n\n onEvent(type, data)\n }\n\n const handleStartWireTransfer = () => {\n handleEvent(payrollWireEvents.PAYROLL_WIRE_START_TRANSFER)\n }\n\n const handleCloseModal = () => {\n setIsModalOpen(false)\n }\n\n const CurrentComponent = current.context.component\n const Footer = CurrentComponent?.Footer || undefined\n\n return (\n <FlowContext.Provider\n value={{\n ...current.context,\n onEvent: handleEvent,\n }}\n >\n <ConfirmWireDetailsBanner\n companyId={companyId}\n wireInId={wireInId}\n onStartWireTransfer={handleStartWireTransfer}\n onEvent={onEvent}\n confirmationAlert={current.context.confirmationAlert}\n />\n <Modal\n isOpen={isModalOpen}\n onClose={handleCloseModal}\n containerRef={modalContainerRef}\n footer={\n Footer && (\n <BaseBoundaries\n LoaderComponent={() => (\n <div className={styles.footer}>\n <LoadingSpinner size=\"sm\" />\n </div>\n )}\n >\n <Footer onEvent={handleEvent} />\n </BaseBoundaries>\n )\n }\n >\n {CurrentComponent && <CurrentComponent />}\n </Modal>\n </FlowContext.Provider>\n )\n}\n"],"names":["ConfirmWireDetails","props","jsx","BaseComponent","Root","companyId","wireInId","onEvent","Modal","LoadingSpinner","useComponentContext","isModalOpen","setIsModalOpen","useState","modalContainerRef","useRef","wireInRequestsData","useWireInRequestsListSuspense","activeWireInRequests","r","selectedWireInId","useMemo","confirmWireDetailsMachineInstance","createMachine","confirmWireDetailsMachine","handleEvent","current","send","useMachine","type","data","payrollWireEvents","handleStartWireTransfer","handleCloseModal","CurrentComponent","Footer","jsxs","FlowContext","ConfirmWireDetailsBanner","BaseBoundaries","styles"],"mappings":";;;;;;;;;;;;;AAkBO,SAASA,EAAmBC,GAAgC;AACjE,SACE,gBAAAC,EAACC,KAAe,GAAGF,GACjB,4BAACG,GAAA,EAAM,GAAGH,GAAO,EAAA,CACnB;AAEJ;AAEA,SAASG,EAAK,EAAE,WAAAC,GAAW,UAAAC,GAAU,SAAAC,KAAoC;AACvE,QAAM,EAAE,OAAAC,GAAO,gBAAAC,EAAA,IAAmBC,EAAA,GAC5B,CAACC,GAAaC,CAAc,IAAIC,EAAS,EAAK,GAC9CC,IAAoBC,EAAuB,IAAI,GAE/C,EAAE,MAAMC,EAAA,IAAuBC,EAA8B;AAAA,IACjE,aAAaZ;AAAA,EAAA,CACd,GAEKa,KAAwBF,EAAmB,qBAAqB,CAAA,GAAI;AAAA,IACxE,CAAAG,MAAKA,EAAE,WAAW;AAAA,EAAA,GAGdC,IAAmBC,EAAQ,MAC3Bf,KAIGY,EAAqB,CAAC,GAAG,MAC/B,CAACZ,GAAUY,EAAqB,CAAC,GAAG,IAAI,CAAC,GAEtCI,IAAoCD;AAAA,IACxC,MACEE;AAAA,MACE;AAAA,MACAC;AAAA,MACA,OAA2C;AAAA,QACzC,WAAW;AAAA,QACX,WAAAnB;AAAA,QACA,UAAAC;AAAA,QACA,kBAAAc;AAAA,QACA,SAASK;AAAA,QACT,mBAAAX;AAAA,MAAA;AAAA,IACF;AAAA,IAEJ,CAACT,GAAWC,CAAQ;AAAA,EAAA,GAEhB,CAACoB,GAASC,CAAI,IAAIC,EAAWN,CAAiC;AAEpE,WAASG,EAAYI,GAAiBC,GAAgB;AACpD,IAAAH,EAAK,EAAE,MAAAE,GAAM,SAASC,EAAA,CAAM,GAExBD,MAASE,EAAkB,+BAC7BnB,EAAe,EAAI,IAInBiB,MAASE,EAAkB,oCAC3BF,MAASE,EAAkB,4BAC3BF,MAASE,EAAkB,2BAE3BnB,EAAe,EAAK,GAGtBL,EAAQsB,GAAMC,CAAI;AAAA,EACpB;AAEA,QAAME,IAA0B,MAAM;AACpC,IAAAP,EAAYM,EAAkB,2BAA2B;AAAA,EAC3D,GAEME,IAAmB,MAAM;AAC7B,IAAArB,EAAe,EAAK;AAAA,EACtB,GAEMsB,IAAmBR,EAAQ,QAAQ,WACnCS,IAASD,GAAkB,UAAU;AAE3C,SACE,gBAAAE;AAAA,IAACC,EAAY;AAAA,IAAZ;AAAA,MACC,OAAO;AAAA,QACL,GAAGX,EAAQ;AAAA,QACX,SAASD;AAAA,MAAA;AAAA,MAGX,UAAA;AAAA,QAAA,gBAAAvB;AAAA,UAACoC;AAAA,UAAA;AAAA,YACC,WAAAjC;AAAA,YACA,UAAAC;AAAA,YACA,qBAAqB0B;AAAA,YACrB,SAAAzB;AAAA,YACA,mBAAmBmB,EAAQ,QAAQ;AAAA,UAAA;AAAA,QAAA;AAAA,QAErC,gBAAAxB;AAAA,UAACM;AAAA,UAAA;AAAA,YACC,QAAQG;AAAA,YACR,SAASsB;AAAA,YACT,cAAcnB;AAAA,YACd,QACEqB,KACE,gBAAAjC;AAAA,cAACqC;AAAA,cAAA;AAAA,gBACC,iBAAiB,MACf,gBAAArC,EAAC,OAAA,EAAI,WAAWsC,EAAO,QACrB,UAAA,gBAAAtC,EAACO,GAAA,EAAe,MAAK,KAAA,CAAK,EAAA,CAC5B;AAAA,gBAGF,UAAA,gBAAAP,EAACiC,GAAA,EAAO,SAASV,EAAA,CAAa;AAAA,cAAA;AAAA,YAAA;AAAA,YAKnC,UAAAS,uBAAqBA,GAAA,CAAA,CAAiB;AAAA,UAAA;AAAA,QAAA;AAAA,MACzC;AAAA,IAAA;AAAA,EAAA;AAGN;"}
@@ -0,0 +1,8 @@
1
+ const o = "_footer_1evu5_1", t = {
2
+ footer: o
3
+ };
4
+ export {
5
+ t as default,
6
+ o as footer
7
+ };
8
+ //# sourceMappingURL=ConfirmWireDetails.module.scss.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConfirmWireDetails.module.scss.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"ConfirmWireDetailsBanner.js","sources":["../../../../../src/components/Payroll/ConfirmWireDetails/ConfirmWireDetailsBanner/ConfirmWireDetailsBanner.tsx"],"sourcesContent":["import { useTranslation } from 'react-i18next'\nimport { useWireInRequestsListSuspense } from '@gusto/embedded-api/react-query/wireInRequestsList'\nimport { usePayrollsListSuspense } from '@gusto/embedded-api/react-query/payrollsList'\nimport { useState, useEffect } from 'react'\nimport type { ConfirmationAlert } from '../types'\nimport { BaseComponent, type BaseComponentInterface } from '@/components/Base'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { useComponentDictionary, useI18n } from '@/i18n'\nimport { Flex } from '@/components/Common/Flex/Flex'\nimport { useDateFormatter } from '@/hooks/useDateFormatter'\n\ninterface ConfirmWireDetailsBannerProps\n extends BaseComponentInterface<'Payroll.ConfirmWireDetailsBanner'> {\n wireInId?: string\n companyId: string\n confirmationAlert?: ConfirmationAlert\n onStartWireTransfer: () => void\n}\n\nexport function ConfirmWireDetailsBanner(props: ConfirmWireDetailsBannerProps) {\n return (\n <BaseComponent {...props}>\n <Root {...props}>{props.children}</Root>\n </BaseComponent>\n )\n}\n\nconst Root = ({\n wireInId,\n companyId,\n dictionary,\n confirmationAlert,\n onStartWireTransfer,\n}: ConfirmWireDetailsBannerProps) => {\n useComponentDictionary('Payroll.ConfirmWireDetailsBanner', dictionary)\n useI18n('Payroll.ConfirmWireDetailsBanner')\n const { t } = useTranslation('Payroll.ConfirmWireDetailsBanner')\n const { Alert, Banner, Button, UnorderedList, Text } = useComponentContext()\n const dateFormatter = useDateFormatter()\n const [isConfirmationAlertDismissed, setIsConfirmationAlertDismissed] = useState<boolean>(false)\n\n useEffect(() => {\n if (confirmationAlert) {\n setIsConfirmationAlertDismissed(false)\n }\n }, [confirmationAlert])\n\n const { data: wireInRequestsData } = useWireInRequestsListSuspense({\n companyUuid: companyId,\n })\n\n const { data: payrollsData } = usePayrollsListSuspense({\n companyId,\n processed: true,\n })\n\n const activeWireInRequests = (wireInRequestsData.wireInRequestList || []).filter(\n request => request.status === 'awaiting_funds',\n )\n const wireInRequests = wireInId\n ? activeWireInRequests.filter(request => request.uuid === wireInId)\n : activeWireInRequests\n\n const payrolls = payrollsData.payrollList || []\n\n const wireInRequestsWithPayrolls = wireInRequests.map(wireInRequest => {\n const payroll = payrolls.find(p => p.payrollUuid === wireInRequest.paymentUuid)\n const payrollRange = payroll?.payPeriod\n ? dateFormatter.formatPayPeriodRange(payroll.payPeriod.startDate, payroll.payPeriod.endDate)\n : ''\n return {\n wireInRequest,\n payroll,\n payrollRange,\n }\n })\n\n const shouldShowBanner =\n wireInRequestsWithPayrolls.length > 0 &&\n (wireInRequestsWithPayrolls.length > 1 || wireInRequestsWithPayrolls[0]?.wireInRequest)\n\n const shouldShowConfirmationAlert = !isConfirmationAlertDismissed && confirmationAlert\n\n if (!shouldShowBanner && !shouldShowConfirmationAlert) {\n return null\n }\n\n const formatDeadline = (deadline: string) => {\n const date = new Date(deadline)\n\n const timeRaw = date.toLocaleTimeString('en-US', {\n hour: 'numeric',\n minute: date.getMinutes() === 0 ? undefined : '2-digit',\n hour12: true,\n timeZone: 'America/Los_Angeles',\n timeZoneName: 'short',\n })\n\n const time = timeRaw.replace(/\\s?(AM|PM)/i, match => match.trim().toLowerCase())\n\n const dateString = date.toLocaleDateString('en-US', {\n month: 'long',\n day: 'numeric',\n year: 'numeric',\n timeZone: 'America/Los_Angeles',\n })\n\n return { time, date: dateString }\n }\n\n const getBannerTitle = () => {\n const isSingleWireInRequest = wireInRequestsWithPayrolls.length === 1\n const { wireInRequest, payrollRange } = wireInRequestsWithPayrolls[0] || {}\n\n if (isSingleWireInRequest) {\n if (wireInId && wireInRequest?.wireInDeadline) {\n const { time, date } = formatDeadline(wireInRequest.wireInDeadline)\n return t('banner.title', { time, date })\n }\n return t('banner.titleWithPayroll', { payrollRange })\n }\n return t('banner.titleMultiple', { count: wireInRequestsWithPayrolls.length })\n }\n\n return (\n <Flex flexDirection=\"column\" gap={16}>\n {shouldShowConfirmationAlert && (\n <Alert\n status=\"success\"\n label={confirmationAlert.title}\n onDismiss={() => {\n setIsConfirmationAlertDismissed(true)\n }}\n >\n {confirmationAlert.content}\n </Alert>\n )}\n {shouldShowBanner && (\n <Banner status=\"warning\" title={getBannerTitle()}>\n <Flex flexDirection=\"column\" gap={16} alignItems=\"flex-start\">\n <div>{t('banner.description')}</div>\n {wireInRequestsWithPayrolls.length > 1 && (\n <UnorderedList\n items={wireInRequestsWithPayrolls.map(({ payrollRange }, index) => (\n <Text key={index}>{payrollRange}</Text>\n ))}\n />\n )}\n <Button variant=\"secondary\" onClick={onStartWireTransfer}>\n {t('cta.startWireTransfer')}\n </Button>\n </Flex>\n </Banner>\n )}\n </Flex>\n )\n}\n"],"names":["ConfirmWireDetailsBanner","props","jsx","BaseComponent","Root","wireInId","companyId","dictionary","confirmationAlert","onStartWireTransfer","useComponentDictionary","useI18n","t","useTranslation","Alert","Banner","Button","UnorderedList","Text","useComponentContext","dateFormatter","useDateFormatter","isConfirmationAlertDismissed","setIsConfirmationAlertDismissed","useState","useEffect","wireInRequestsData","useWireInRequestsListSuspense","payrollsData","usePayrollsListSuspense","activeWireInRequests","request","wireInRequests","payrolls","wireInRequestsWithPayrolls","wireInRequest","payroll","p","payrollRange","shouldShowBanner","shouldShowConfirmationAlert","formatDeadline","deadline","date","time","match","dateString","getBannerTitle","isSingleWireInRequest","jsxs","Flex","index"],"mappings":"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"}
1
+ {"version":3,"file":"ConfirmWireDetailsBanner.js","sources":["../../../../../src/components/Payroll/ConfirmWireDetails/ConfirmWireDetailsBanner/ConfirmWireDetailsBanner.tsx"],"sourcesContent":["import { useTranslation } from 'react-i18next'\nimport { useWireInRequestsListSuspense } from '@gusto/embedded-api/react-query/wireInRequestsList'\nimport { usePayrollsListSuspense } from '@gusto/embedded-api/react-query/payrollsList'\nimport { useState, useEffect } from 'react'\nimport type { ConfirmationAlert } from '../types'\nimport { BaseComponent, type BaseComponentInterface } from '@/components/Base'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { useComponentDictionary, useI18n } from '@/i18n'\nimport { Flex } from '@/components/Common/Flex/Flex'\nimport { useDateFormatter } from '@/hooks/useDateFormatter'\n\ninterface ConfirmWireDetailsBannerProps extends BaseComponentInterface<'Payroll.ConfirmWireDetailsBanner'> {\n wireInId?: string\n companyId: string\n confirmationAlert?: ConfirmationAlert\n onStartWireTransfer: () => void\n}\n\nexport function ConfirmWireDetailsBanner(props: ConfirmWireDetailsBannerProps) {\n return (\n <BaseComponent {...props}>\n <Root {...props}>{props.children}</Root>\n </BaseComponent>\n )\n}\n\nconst Root = ({\n wireInId,\n companyId,\n dictionary,\n confirmationAlert,\n onStartWireTransfer,\n}: ConfirmWireDetailsBannerProps) => {\n useComponentDictionary('Payroll.ConfirmWireDetailsBanner', dictionary)\n useI18n('Payroll.ConfirmWireDetailsBanner')\n const { t } = useTranslation('Payroll.ConfirmWireDetailsBanner')\n const { Alert, Banner, Button, UnorderedList, Text } = useComponentContext()\n const dateFormatter = useDateFormatter()\n const [isConfirmationAlertDismissed, setIsConfirmationAlertDismissed] = useState<boolean>(false)\n\n useEffect(() => {\n if (confirmationAlert) {\n setIsConfirmationAlertDismissed(false)\n }\n }, [confirmationAlert])\n\n const { data: wireInRequestsData } = useWireInRequestsListSuspense({\n companyUuid: companyId,\n })\n\n const { data: payrollsData } = usePayrollsListSuspense({\n companyId,\n processed: true,\n })\n\n const activeWireInRequests = (wireInRequestsData.wireInRequestList || []).filter(\n request => request.status === 'awaiting_funds',\n )\n const wireInRequests = wireInId\n ? activeWireInRequests.filter(request => request.uuid === wireInId)\n : activeWireInRequests\n\n const payrolls = payrollsData.payrollList || []\n\n const wireInRequestsWithPayrolls = wireInRequests.map(wireInRequest => {\n const payroll = payrolls.find(p => p.payrollUuid === wireInRequest.paymentUuid)\n const payrollRange = payroll?.payPeriod\n ? dateFormatter.formatPayPeriodRange(payroll.payPeriod.startDate, payroll.payPeriod.endDate)\n : ''\n return {\n wireInRequest,\n payroll,\n payrollRange,\n }\n })\n\n const shouldShowBanner =\n wireInRequestsWithPayrolls.length > 0 &&\n (wireInRequestsWithPayrolls.length > 1 || wireInRequestsWithPayrolls[0]?.wireInRequest)\n\n const shouldShowConfirmationAlert = !isConfirmationAlertDismissed && confirmationAlert\n\n if (!shouldShowBanner && !shouldShowConfirmationAlert) {\n return null\n }\n\n const formatDeadline = (deadline: string) => {\n const date = new Date(deadline)\n\n const timeRaw = date.toLocaleTimeString('en-US', {\n hour: 'numeric',\n minute: date.getMinutes() === 0 ? undefined : '2-digit',\n hour12: true,\n timeZone: 'America/Los_Angeles',\n timeZoneName: 'short',\n })\n\n const time = timeRaw.replace(/\\s?(AM|PM)/i, match => match.trim().toLowerCase())\n\n const dateString = date.toLocaleDateString('en-US', {\n month: 'long',\n day: 'numeric',\n year: 'numeric',\n timeZone: 'America/Los_Angeles',\n })\n\n return { time, date: dateString }\n }\n\n const getBannerTitle = () => {\n const isSingleWireInRequest = wireInRequestsWithPayrolls.length === 1\n const { wireInRequest, payrollRange } = wireInRequestsWithPayrolls[0] || {}\n\n if (isSingleWireInRequest) {\n if (wireInId && wireInRequest?.wireInDeadline) {\n const { time, date } = formatDeadline(wireInRequest.wireInDeadline)\n return t('banner.title', { time, date })\n }\n return t('banner.titleWithPayroll', { payrollRange })\n }\n return t('banner.titleMultiple', { count: wireInRequestsWithPayrolls.length })\n }\n\n return (\n <Flex flexDirection=\"column\" gap={16}>\n {shouldShowConfirmationAlert && (\n <Alert\n status=\"success\"\n label={confirmationAlert.title}\n onDismiss={() => {\n setIsConfirmationAlertDismissed(true)\n }}\n >\n {confirmationAlert.content}\n </Alert>\n )}\n {shouldShowBanner && (\n <Banner status=\"warning\" title={getBannerTitle()}>\n <Flex flexDirection=\"column\" gap={16} alignItems=\"flex-start\">\n <div>{t('banner.description')}</div>\n {wireInRequestsWithPayrolls.length > 1 && (\n <UnorderedList\n items={wireInRequestsWithPayrolls.map(({ payrollRange }, index) => (\n <Text key={index}>{payrollRange}</Text>\n ))}\n />\n )}\n <Button variant=\"secondary\" onClick={onStartWireTransfer}>\n {t('cta.startWireTransfer')}\n </Button>\n </Flex>\n </Banner>\n )}\n </Flex>\n )\n}\n"],"names":["ConfirmWireDetailsBanner","props","jsx","BaseComponent","Root","wireInId","companyId","dictionary","confirmationAlert","onStartWireTransfer","useComponentDictionary","useI18n","t","useTranslation","Alert","Banner","Button","UnorderedList","Text","useComponentContext","dateFormatter","useDateFormatter","isConfirmationAlertDismissed","setIsConfirmationAlertDismissed","useState","useEffect","wireInRequestsData","useWireInRequestsListSuspense","payrollsData","usePayrollsListSuspense","activeWireInRequests","request","wireInRequests","payrolls","wireInRequestsWithPayrolls","wireInRequest","payroll","p","payrollRange","shouldShowBanner","shouldShowConfirmationAlert","formatDeadline","deadline","date","time","match","dateString","getBannerTitle","isSingleWireInRequest","jsxs","Flex","index"],"mappings":";;;;;;;;;;;AAkBO,SAASA,GAAyBC,GAAsC;AAC7E,SACE,gBAAAC,EAACC,GAAA,EAAe,GAAGF,GACjB,UAAA,gBAAAC,EAACE,KAAM,GAAGH,GAAQ,UAAAA,EAAM,SAAA,CAAS,EAAA,CACnC;AAEJ;AAEA,MAAMG,IAAO,CAAC;AAAA,EACZ,UAAAC;AAAA,EACA,WAAAC;AAAA,EACA,YAAAC;AAAA,EACA,mBAAAC;AAAA,EACA,qBAAAC;AACF,MAAqC;AACnC,EAAAC,EAAuB,oCAAoCH,CAAU,GACrEI,EAAQ,kCAAkC;AAC1C,QAAM,EAAE,GAAAC,EAAA,IAAMC,EAAe,kCAAkC,GACzD,EAAE,OAAAC,GAAO,QAAAC,GAAQ,QAAAC,GAAQ,eAAAC,GAAe,MAAAC,EAAA,IAASC,EAAA,GACjDC,IAAgBC,EAAA,GAChB,CAACC,GAA8BC,CAA+B,IAAIC,EAAkB,EAAK;AAE/F,EAAAC,EAAU,MAAM;AACd,IAAIjB,KACFe,EAAgC,EAAK;AAAA,EAEzC,GAAG,CAACf,CAAiB,CAAC;AAEtB,QAAM,EAAE,MAAMkB,EAAA,IAAuBC,EAA8B;AAAA,IACjE,aAAarB;AAAA,EAAA,CACd,GAEK,EAAE,MAAMsB,EAAA,IAAiBC,EAAwB;AAAA,IACrD,WAAAvB;AAAA,IACA,WAAW;AAAA,EAAA,CACZ,GAEKwB,KAAwBJ,EAAmB,qBAAqB,CAAA,GAAI;AAAA,IACxE,CAAAK,MAAWA,EAAQ,WAAW;AAAA,EAAA,GAE1BC,IAAiB3B,IACnByB,EAAqB,OAAO,OAAWC,EAAQ,SAAS1B,CAAQ,IAChEyB,GAEEG,IAAWL,EAAa,eAAe,CAAA,GAEvCM,IAA6BF,EAAe,IAAI,CAAAG,MAAiB;AACrE,UAAMC,IAAUH,EAAS,KAAK,OAAKI,EAAE,gBAAgBF,EAAc,WAAW,GACxEG,IAAeF,GAAS,YAC1BhB,EAAc,qBAAqBgB,EAAQ,UAAU,WAAWA,EAAQ,UAAU,OAAO,IACzF;AACJ,WAAO;AAAA,MACL,eAAAD;AAAA,MACA,SAAAC;AAAA,MACA,cAAAE;AAAA,IAAA;AAAA,EAEJ,CAAC,GAEKC,IACJL,EAA2B,SAAS,MACnCA,EAA2B,SAAS,KAAKA,EAA2B,CAAC,GAAG,gBAErEM,IAA8B,CAAClB,KAAgCd;AAErE,MAAI,CAAC+B,KAAoB,CAACC;AACxB,WAAO;AAGT,QAAMC,IAAiB,CAACC,MAAqB;AAC3C,UAAMC,IAAO,IAAI,KAAKD,CAAQ,GAUxBE,IARUD,EAAK,mBAAmB,SAAS;AAAA,MAC/C,MAAM;AAAA,MACN,QAAQA,EAAK,WAAA,MAAiB,IAAI,SAAY;AAAA,MAC9C,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,cAAc;AAAA,IAAA,CACf,EAEoB,QAAQ,eAAe,OAASE,EAAM,OAAO,aAAa,GAEzEC,IAAaH,EAAK,mBAAmB,SAAS;AAAA,MAClD,OAAO;AAAA,MACP,KAAK;AAAA,MACL,MAAM;AAAA,MACN,UAAU;AAAA,IAAA,CACX;AAED,WAAO,EAAE,MAAAC,GAAM,MAAME,EAAA;AAAA,EACvB,GAEMC,IAAiB,MAAM;AAC3B,UAAMC,IAAwBd,EAA2B,WAAW,GAC9D,EAAE,eAAAC,GAAe,cAAAG,EAAA,IAAiBJ,EAA2B,CAAC,KAAK,CAAA;AAEzE,QAAIc,GAAuB;AACzB,UAAI3C,KAAY8B,GAAe,gBAAgB;AAC7C,cAAM,EAAE,MAAAS,GAAM,MAAAD,EAAA,IAASF,EAAeN,EAAc,cAAc;AAClE,eAAOvB,EAAE,gBAAgB,EAAE,MAAAgC,GAAM,MAAAD,GAAM;AAAA,MACzC;AACA,aAAO/B,EAAE,2BAA2B,EAAE,cAAA0B,GAAc;AAAA,IACtD;AACA,WAAO1B,EAAE,wBAAwB,EAAE,OAAOsB,EAA2B,QAAQ;AAAA,EAC/E;AAEA,SACE,gBAAAe,EAACC,GAAA,EAAK,eAAc,UAAS,KAAK,IAC/B,UAAA;AAAA,IAAAV,KACC,gBAAAtC;AAAA,MAACY;AAAA,MAAA;AAAA,QACC,QAAO;AAAA,QACP,OAAON,EAAkB;AAAA,QACzB,WAAW,MAAM;AACf,UAAAe,EAAgC,EAAI;AAAA,QACtC;AAAA,QAEC,UAAAf,EAAkB;AAAA,MAAA;AAAA,IAAA;AAAA,IAGtB+B,KACC,gBAAArC,EAACa,GAAA,EAAO,QAAO,WAAU,OAAOgC,EAAA,GAC9B,UAAA,gBAAAE,EAACC,KAAK,eAAc,UAAS,KAAK,IAAI,YAAW,cAC/C,UAAA;AAAA,MAAA,gBAAAhD,EAAC,OAAA,EAAK,UAAAU,EAAE,oBAAoB,EAAA,CAAE;AAAA,MAC7BsB,EAA2B,SAAS,KACnC,gBAAAhC;AAAA,QAACe;AAAA,QAAA;AAAA,UACC,OAAOiB,EAA2B,IAAI,CAAC,EAAE,cAAAI,EAAA,GAAgBa,MACvD,gBAAAjD,EAACgB,GAAA,EAAkB,UAAAoB,EAAA,GAARa,CAAqB,CACjC;AAAA,QAAA;AAAA,MAAA;AAAA,MAGL,gBAAAjD,EAACc,KAAO,SAAQ,aAAY,SAASP,GAClC,UAAAG,EAAE,uBAAuB,EAAA,CAC5B;AAAA,IAAA,EAAA,CACF,EAAA,CACF;AAAA,EAAA,GAEJ;AAEJ;"}
@@ -1 +1 @@
1
- {"version":3,"file":"ConfirmWireDetailsComponents.js","sources":["../../../../src/components/Payroll/ConfirmWireDetails/ConfirmWireDetailsComponents.tsx"],"sourcesContent":["import type { ConfirmationAlert } from './types'\nimport { WireInstructions } from './WireInstructions'\nimport { ConfirmWireDetailsForm } from './ConfirmWireDetailsForm'\nimport { useFlow } from '@/components/Flow/useFlow'\nimport { ensureRequired } from '@/helpers/ensureRequired'\nimport type { FlowContextInterface } from '@/components/Flow/useFlow'\nimport type { CommonComponentInterface } from '@/components/Base'\nimport type { EventType } from '@/types/Helpers'\nimport type { OnEventType } from '@/components/Base/useBase'\n\nexport interface ConfirmWireDetailsContextInterface extends FlowContextInterface {\n companyId: string\n wireInId?: string\n selectedWireInId?: string\n modalContainerRef?: React.RefObject<HTMLDivElement | null>\n showOnlyCloseButton?: boolean\n confirmationAlert?: ConfirmationAlert\n component:\n | (React.ComponentType<CommonComponentInterface> & {\n Footer?: React.ComponentType<{\n onEvent: OnEventType<EventType, unknown>\n }>\n })\n | null\n}\n\nexport function WireInstructionsContextual() {\n const { companyId, wireInId, selectedWireInId, onEvent, modalContainerRef } =\n useFlow<ConfirmWireDetailsContextInterface>()\n\n return (\n <WireInstructions\n companyId={ensureRequired(companyId)}\n wireInId={wireInId}\n selectedWireInId={selectedWireInId}\n onEvent={onEvent}\n modalContainerRef={modalContainerRef}\n />\n )\n}\n\nWireInstructionsContextual.Footer = WireInstructions.Footer\n\nexport function ConfirmWireDetailsFormContextual() {\n const { selectedWireInId, companyId, onEvent, modalContainerRef } =\n useFlow<ConfirmWireDetailsContextInterface>()\n return (\n <ConfirmWireDetailsForm\n wireInId={ensureRequired(selectedWireInId)}\n companyId={ensureRequired(companyId)}\n onEvent={onEvent}\n modalContainerRef={modalContainerRef}\n />\n )\n}\n\nConfirmWireDetailsFormContextual.Footer = ConfirmWireDetailsForm.Footer\n"],"names":["WireInstructionsContextual","companyId","wireInId","selectedWireInId","onEvent","modalContainerRef","useFlow","jsx","WireInstructions","ensureRequired","ConfirmWireDetailsFormContextual","ConfirmWireDetailsForm"],"mappings":";;;;;AA0BO,SAASA,IAA6B;AAC3C,QAAM,EAAE,WAAAC,GAAW,UAAAC,GAAU,kBAAAC,GAAkB,SAAAC,GAAS,mBAAAC,EAAA,IACtDC,EAAA;AAEF,SACE,gBAAAC;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,WAAWC,EAAeR,CAAS;AAAA,MACnC,UAAAC;AAAA,MACA,kBAAAC;AAAA,MACA,SAAAC;AAAA,MACA,mBAAAC;AAAA,IAAA;AAAA,EAAA;AAGN;AAEAL,EAA2B,SAASQ,EAAiB;AAE9C,SAASE,IAAmC;AACjD,QAAM,EAAE,kBAAAP,GAAkB,WAAAF,GAAW,SAAAG,GAAS,mBAAAC,EAAA,IAC5CC,EAAA;AACF,SACE,gBAAAC;AAAA,IAACI;AAAA,IAAA;AAAA,MACC,UAAUF,EAAeN,CAAgB;AAAA,MACzC,WAAWM,EAAeR,CAAS;AAAA,MACnC,SAAAG;AAAA,MACA,mBAAAC;AAAA,IAAA;AAAA,EAAA;AAGN;AAEAK,EAAiC,SAASC,EAAuB;"}
1
+ {"version":3,"file":"ConfirmWireDetailsComponents.js","sources":["../../../../src/components/Payroll/ConfirmWireDetails/ConfirmWireDetailsComponents.tsx"],"sourcesContent":["import type { ConfirmationAlert } from './types'\nimport { WireInstructions } from './WireInstructions'\nimport { ConfirmWireDetailsForm } from './ConfirmWireDetailsForm'\nimport { useFlow } from '@/components/Flow/useFlow'\nimport { ensureRequired } from '@/helpers/ensureRequired'\nimport type { FlowContextInterface } from '@/components/Flow/useFlow'\nimport type { CommonComponentInterface } from '@/components/Base'\nimport type { EventType } from '@/types/Helpers'\nimport type { OnEventType } from '@/components/Base/useBase'\n\nexport interface ConfirmWireDetailsContextInterface extends FlowContextInterface {\n companyId: string\n wireInId?: string\n selectedWireInId?: string\n modalContainerRef?: React.RefObject<HTMLDivElement | null>\n showOnlyCloseButton?: boolean\n confirmationAlert?: ConfirmationAlert\n component:\n | (React.ComponentType<CommonComponentInterface> & {\n Footer?: React.ComponentType<{\n onEvent: OnEventType<EventType, unknown>\n }>\n })\n | null\n}\n\nexport function WireInstructionsContextual() {\n const { companyId, wireInId, selectedWireInId, onEvent, modalContainerRef } =\n useFlow<ConfirmWireDetailsContextInterface>()\n\n return (\n <WireInstructions\n companyId={ensureRequired(companyId)}\n wireInId={wireInId}\n selectedWireInId={selectedWireInId}\n onEvent={onEvent}\n modalContainerRef={modalContainerRef}\n />\n )\n}\n\nWireInstructionsContextual.Footer = WireInstructions.Footer\n\nexport function ConfirmWireDetailsFormContextual() {\n const { selectedWireInId, companyId, onEvent, modalContainerRef } =\n useFlow<ConfirmWireDetailsContextInterface>()\n\n return (\n <ConfirmWireDetailsForm\n wireInId={ensureRequired(selectedWireInId)}\n companyId={ensureRequired(companyId)}\n onEvent={onEvent}\n modalContainerRef={modalContainerRef}\n />\n )\n}\n\nConfirmWireDetailsFormContextual.Footer = ConfirmWireDetailsForm.Footer\n"],"names":["WireInstructionsContextual","companyId","wireInId","selectedWireInId","onEvent","modalContainerRef","useFlow","jsx","WireInstructions","ensureRequired","ConfirmWireDetailsFormContextual","ConfirmWireDetailsForm"],"mappings":";;;;;AA0BO,SAASA,IAA6B;AAC3C,QAAM,EAAE,WAAAC,GAAW,UAAAC,GAAU,kBAAAC,GAAkB,SAAAC,GAAS,mBAAAC,EAAA,IACtDC,EAAA;AAEF,SACE,gBAAAC;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,WAAWC,EAAeR,CAAS;AAAA,MACnC,UAAAC;AAAA,MACA,kBAAAC;AAAA,MACA,SAAAC;AAAA,MACA,mBAAAC;AAAA,IAAA;AAAA,EAAA;AAGN;AAEAL,EAA2B,SAASQ,EAAiB;AAE9C,SAASE,IAAmC;AACjD,QAAM,EAAE,kBAAAP,GAAkB,WAAAF,GAAW,SAAAG,GAAS,mBAAAC,EAAA,IAC5CC,EAAA;AAEF,SACE,gBAAAC;AAAA,IAACI;AAAA,IAAA;AAAA,MACC,UAAUF,EAAeN,CAAgB;AAAA,MACzC,WAAWM,EAAeR,CAAS;AAAA,MACnC,SAAAG;AAAA,MACA,mBAAAC;AAAA,IAAA;AAAA,EAAA;AAGN;AAEAK,EAAiC,SAASC,EAAuB;"}
@@ -1,20 +1,20 @@
1
- import { jsx as e, jsxs as s } from "react/jsx-runtime";
2
- import { useTranslation as h, Trans as _ } from "react-i18next";
1
+ import { jsx as e, jsxs as m } from "react/jsx-runtime";
2
+ import { useTranslation as F, Trans as A } from "react-i18next";
3
3
  import r from "zod";
4
- import { useForm as A, FormProvider as O } from "react-hook-form";
5
- import { zodResolver as E } from "@hookform/resolvers/zod";
6
- import { useIsMutating as T } from "@tanstack/react-query";
4
+ import { useForm as _, FormProvider as O } from "react-hook-form";
5
+ import { zodResolver as T } from "@hookform/resolvers/zod";
6
+ import { useIsMutating as E } from "@tanstack/react-query";
7
7
  import { useWireInRequestsSubmitMutation as j, mutationKeyWireInRequestsSubmit as B } from "@gusto/embedded-api/react-query/wireInRequestsSubmit";
8
- import { useWireInRequestsGetSuspense as G } from "@gusto/embedded-api/react-query/wireInRequestsGet";
9
- import { usePayrollsGetSuspense as H } from "@gusto/embedded-api/react-query/payrollsGet";
10
- import m from "./ConfirmWireDetailsForm.module.scss.js";
11
- import { Form as K } from "../../../Common/Form/Form.js";
12
- import { BaseComponent as U } from "../../../Base/Base.js";
8
+ import { useWireInRequestsGetSuspense as U } from "@gusto/embedded-api/react-query/wireInRequestsGet";
9
+ import { usePayrollsListSuspense as G } from "@gusto/embedded-api/react-query/payrollsList";
10
+ import d from "./ConfirmWireDetailsForm.module.scss.js";
11
+ import { Form as H } from "../../../Common/Form/Form.js";
12
+ import { BaseComponent as K } from "../../../Base/Base.js";
13
13
  import { useBase as Y } from "../../../Base/useBase.js";
14
- import { useComponentContext as F } from "../../../../contexts/ComponentAdapter/useComponentContext.js";
15
- import { useComponentDictionary as z, useI18n as D } from "../../../../i18n/I18n.js";
16
- import { Flex as l, FlexItem as c } from "../../../Common/Flex/Flex.js";
17
- import { payrollWireEvents as S } from "../../../../shared/constants.js";
14
+ import { useComponentContext as S } from "../../../../contexts/ComponentAdapter/useComponentContext.js";
15
+ import { useComponentDictionary as z, useI18n as g } from "../../../../i18n/I18n.js";
16
+ import { Flex as p, FlexItem as f } from "../../../Common/Flex/Flex.js";
17
+ import { payrollWireEvents as N } from "../../../../shared/constants.js";
18
18
  import "classnames";
19
19
  import { TextInputField as V } from "../../../Common/Fields/TextInputField/TextInputField.js";
20
20
  import { DatePickerField as J } from "../../../Common/Fields/DatePickerField/DatePickerField.js";
@@ -27,126 +27,125 @@ const $ = r.object({
27
27
  dateSent: r.date(),
28
28
  bankName: r.string().nonempty(),
29
29
  additionalNotes: r.string().optional()
30
- }), g = "confirm-wire-details-form", ee = (t) => ({
31
- amountSent: String(t.amountSent),
32
- dateSent: t.dateSent.toISOString().split("T")[0] || "",
33
- bankName: t.bankName,
34
- additionalNotes: t.additionalNotes || void 0
30
+ }), C = "confirm-wire-details-form", ee = (o) => ({
31
+ amountSent: String(o.amountSent),
32
+ dateSent: o.dateSent.toISOString().split("T")[0] || "",
33
+ bankName: o.bankName,
34
+ additionalNotes: o.additionalNotes || void 0
35
35
  });
36
- function te(t) {
37
- return /* @__PURE__ */ e(U, { ...t, children: /* @__PURE__ */ e(oe, { ...t, children: t.children }) });
36
+ function te(o) {
37
+ return /* @__PURE__ */ e(K, { ...o, children: /* @__PURE__ */ e(oe, { ...o, children: o.children }) });
38
38
  }
39
39
  const oe = ({
40
- wireInId: t,
40
+ wireInId: o,
41
41
  companyId: n,
42
42
  dictionary: i,
43
- modalContainerRef: u
43
+ modalContainerRef: y
44
44
  }) => {
45
- z("Payroll.ConfirmWireDetailsForm", i), D("Payroll.ConfirmWireDetailsForm");
46
- const { onEvent: a, baseSubmitHandler: I } = Y(), { t: o } = h("Payroll.ConfirmWireDetailsForm"), { Heading: N, Text: d } = F(), p = Z(), { data: C } = G({
47
- wireInRequestUuid: t
48
- }), P = C.wireInRequest, { data: W } = H({
45
+ z("Payroll.ConfirmWireDetailsForm", i), g("Payroll.ConfirmWireDetailsForm");
46
+ const { onEvent: a, baseSubmitHandler: I } = Y(), { t } = F("Payroll.ConfirmWireDetailsForm"), { Heading: v, Text: b } = S(), R = Z(), { data: P } = U({
47
+ wireInRequestUuid: o
48
+ }), W = P.wireInRequest, { data: q } = G({
49
49
  companyId: n,
50
- payrollId: P.paymentUuid
51
- }), f = W.payrollShow, y = f.payPeriod, b = p.formatPayPeriodRange(
52
- y?.startDate,
53
- y?.endDate
54
- ), q = p.formatShortWithYear(f.checkDate), R = A({
55
- resolver: E($),
50
+ processed: !0
51
+ }), l = q.payrollList?.find(
52
+ (u) => u.payrollUuid === W?.paymentUuid
53
+ ), s = l?.payPeriod, c = s?.startDate && s.endDate ? R.formatPayPeriodRange(s.startDate, s.endDate) : void 0, h = l ? R.formatShortWithYear(l.checkDate) : void 0, D = _({
54
+ resolver: T($),
56
55
  defaultValues: {
57
56
  bankName: ""
58
57
  }
59
- }), { mutateAsync: v } = j(), k = async (x) => {
60
- await I(x, async (w) => {
61
- const M = ee(w), L = await v({
58
+ }), { mutateAsync: k } = j(), x = async (u) => {
59
+ await I(u, async (L) => {
60
+ const w = ee(L), M = await k({
62
61
  request: {
63
- wireInRequestUuid: t,
64
- requestBody: M
62
+ wireInRequestUuid: o,
63
+ requestBody: w
65
64
  }
66
65
  });
67
- a(S.PAYROLL_WIRE_FORM_DONE, {
68
- wireInRequest: L.wireInRequest,
66
+ a(N.PAYROLL_WIRE_FORM_DONE, {
67
+ wireInRequest: M.wireInRequest,
69
68
  confirmationAlert: {
70
- title: o("confirmationAlert.title", { payrollRange: b }),
71
- content: /* @__PURE__ */ e(d, { children: o("confirmationAlert.content", { checkDate: q }) })
69
+ title: c ? t("confirmationAlert.title", { payrollRange: c }) : t("confirmationAlert.emptyTitle"),
70
+ content: h ? /* @__PURE__ */ e(b, { children: t("confirmationAlert.content", { checkDate: h }) }) : void 0
72
71
  }
73
72
  });
74
73
  });
75
74
  };
76
- return /* @__PURE__ */ s(l, { flexDirection: "column", gap: 24, children: [
77
- /* @__PURE__ */ s(c, { children: [
78
- /* @__PURE__ */ e(N, { as: "h2", children: /* @__PURE__ */ e(_, { i18nKey: "title", t: o, values: { payrollRange: b } }) }),
79
- /* @__PURE__ */ e(d, { children: o("description") })
75
+ return /* @__PURE__ */ m(p, { flexDirection: "column", gap: 24, children: [
76
+ /* @__PURE__ */ m(f, { children: [
77
+ /* @__PURE__ */ e(v, { as: "h2", children: /* @__PURE__ */ e(A, { i18nKey: "title", t, values: { payrollRange: c } }) }),
78
+ /* @__PURE__ */ e(b, { children: t("description") })
80
79
  ] }),
81
- /* @__PURE__ */ e(O, { ...R, children: /* @__PURE__ */ e(
82
- K,
80
+ /* @__PURE__ */ e(O, { ...D, children: /* @__PURE__ */ e(
81
+ H,
83
82
  {
84
- id: g,
85
- onSubmit: R.handleSubmit(k),
86
- className: m.form,
87
- children: /* @__PURE__ */ s(l, { flexDirection: "column", gap: 20, children: [
83
+ id: C,
84
+ onSubmit: D.handleSubmit(x),
85
+ className: d.form,
86
+ children: /* @__PURE__ */ m(p, { flexDirection: "column", gap: 20, children: [
88
87
  /* @__PURE__ */ e(
89
88
  Q,
90
89
  {
91
90
  name: "amountSent",
92
- label: o("amountLabel"),
91
+ label: t("amountLabel"),
93
92
  isRequired: !0,
94
93
  format: "currency",
95
- errorMessage: o("validations.amount")
94
+ errorMessage: t("validations.amount")
96
95
  }
97
96
  ),
98
97
  /* @__PURE__ */ e(
99
98
  J,
100
99
  {
101
100
  name: "dateSent",
102
- label: o("dateLabel"),
101
+ label: t("dateLabel"),
103
102
  isRequired: !0,
104
- errorMessage: o("validations.date"),
105
- portalContainer: u?.current || void 0
103
+ errorMessage: t("validations.date"),
104
+ portalContainer: y?.current || void 0
106
105
  }
107
106
  ),
108
107
  /* @__PURE__ */ e(
109
108
  V,
110
109
  {
111
110
  name: "bankName",
112
- label: o("bankNameLabel"),
111
+ label: t("bankNameLabel"),
113
112
  isRequired: !0,
114
- description: o("bankNameDescription"),
115
- placeholder: o("bankNamePlaceholder"),
116
- errorMessage: o("validations.bankName")
113
+ description: t("bankNameDescription"),
114
+ placeholder: t("bankNamePlaceholder"),
115
+ errorMessage: t("validations.bankName")
117
116
  }
118
117
  ),
119
- /* @__PURE__ */ e(X, { name: "additionalNotes", label: o("notesLabel"), rows: 3 })
118
+ /* @__PURE__ */ e(X, { name: "additionalNotes", label: t("notesLabel"), rows: 3 })
120
119
  ] })
121
120
  }
122
121
  ) })
123
122
  ] });
124
- }, re = ({ onEvent: t }) => {
125
- D("Payroll.ConfirmWireDetailsForm");
126
- const { t: n } = h("Payroll.ConfirmWireDetailsForm"), { Button: i } = F(), a = T({
123
+ }, re = ({ onEvent: o }) => {
124
+ g("Payroll.ConfirmWireDetailsForm");
125
+ const { t: n } = F("Payroll.ConfirmWireDetailsForm"), { Button: i } = S(), a = E({
127
126
  mutationKey: B()
128
127
  }) > 0;
129
- return /* @__PURE__ */ s(l, { gap: 12, justifyContent: "space-evenly", children: [
130
- /* @__PURE__ */ e(c, { flexGrow: 1, children: /* @__PURE__ */ e(
128
+ return /* @__PURE__ */ m(p, { gap: 12, justifyContent: "space-evenly", children: [
129
+ /* @__PURE__ */ e(f, { flexGrow: 1, children: /* @__PURE__ */ e(
131
130
  i,
132
131
  {
133
132
  variant: "secondary",
134
133
  onClick: () => {
135
- t(S.PAYROLL_WIRE_FORM_CANCEL);
134
+ o(N.PAYROLL_WIRE_FORM_CANCEL);
136
135
  },
137
136
  isDisabled: a,
138
- className: m.button,
137
+ className: d.button,
139
138
  children: n("cancelCta")
140
139
  }
141
140
  ) }),
142
- /* @__PURE__ */ e(c, { flexGrow: 1, children: /* @__PURE__ */ e(
141
+ /* @__PURE__ */ e(f, { flexGrow: 1, children: /* @__PURE__ */ e(
143
142
  i,
144
143
  {
145
144
  variant: "primary",
146
145
  type: "submit",
147
- form: g,
146
+ form: C,
148
147
  isLoading: a,
149
- className: m.button,
148
+ className: d.button,
150
149
  children: n("submitCta")
151
150
  }
152
151
  ) })
@@ -1 +1 @@
1
- {"version":3,"file":"ConfirmWireDetailsForm.js","sources":["../../../../../src/components/Payroll/ConfirmWireDetails/ConfirmWireDetailsForm/ConfirmWireDetailsForm.tsx"],"sourcesContent":["import { Trans, useTranslation } from 'react-i18next'\nimport z from 'zod'\nimport { FormProvider, useForm } from 'react-hook-form'\nimport { zodResolver } from '@hookform/resolvers/zod'\nimport { useIsMutating } from '@tanstack/react-query'\nimport {\n useWireInRequestsSubmitMutation,\n mutationKeyWireInRequestsSubmit,\n} from '@gusto/embedded-api/react-query/wireInRequestsSubmit'\nimport { useWireInRequestsGetSuspense } from '@gusto/embedded-api/react-query/wireInRequestsGet'\nimport type { PutWireInRequestsWireInRequestUuidRequest } from '@gusto/embedded-api/models/operations/putwireinrequestswireinrequestuuid'\nimport { usePayrollsGetSuspense } from '@gusto/embedded-api/react-query/payrollsGet'\nimport styles from './ConfirmWireDetailsForm.module.scss'\nimport { Form as HtmlForm } from '@/components/Common/Form'\nimport { BaseComponent, useBase, type BaseComponentInterface } from '@/components/Base'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { useComponentDictionary, useI18n } from '@/i18n'\nimport { Flex, FlexItem } from '@/components/Common/Flex/Flex'\nimport { payrollWireEvents, type EventType } from '@/shared/constants'\nimport { DatePickerField, NumberInputField, TextInputField } from '@/components/Common'\nimport { TextAreaField } from '@/components/Common/Fields/TextAreaField'\nimport type { OnEventType } from '@/components/Base/useBase'\nimport { useDateFormatter } from '@/hooks/useDateFormatter'\n\ninterface ConfirmWireDetailsFormProps\n extends BaseComponentInterface<'Payroll.ConfirmWireDetailsForm'> {\n wireInId: string\n companyId: string\n modalContainerRef?: React.RefObject<HTMLDivElement | null>\n}\n\nexport const ConfirmWireDetailsFormSchema = z.object({\n amountSent: z.number().positive(),\n dateSent: z.date(),\n bankName: z.string().nonempty(),\n additionalNotes: z.string().optional(),\n})\n\nexport type ConfirmWireDetailsFormValues = z.infer<typeof ConfirmWireDetailsFormSchema>\n\nconst CONFIRM_WIRE_FORM_ID = 'confirm-wire-details-form'\n\nconst transformFormDataToPayload = (\n data: ConfirmWireDetailsFormValues,\n): PutWireInRequestsWireInRequestUuidRequest['requestBody'] => {\n return {\n amountSent: String(data.amountSent),\n dateSent: data.dateSent.toISOString().split('T')[0] || '',\n bankName: data.bankName,\n additionalNotes: data.additionalNotes || undefined,\n }\n}\n\nexport function ConfirmWireDetailsForm(props: ConfirmWireDetailsFormProps) {\n return (\n <BaseComponent {...props}>\n <Root {...props}>{props.children}</Root>\n </BaseComponent>\n )\n}\n\nconst Root = ({\n wireInId,\n companyId,\n dictionary,\n modalContainerRef,\n}: ConfirmWireDetailsFormProps) => {\n useComponentDictionary('Payroll.ConfirmWireDetailsForm', dictionary)\n useI18n('Payroll.ConfirmWireDetailsForm')\n const { onEvent, baseSubmitHandler } = useBase()\n const { t } = useTranslation('Payroll.ConfirmWireDetailsForm')\n const { Heading, Text } = useComponentContext()\n const dateFormatter = useDateFormatter()\n const { data } = useWireInRequestsGetSuspense({\n wireInRequestUuid: wireInId,\n })\n const wireInRequest = data.wireInRequest!\n const { data: payroll } = usePayrollsGetSuspense({\n companyId: companyId,\n payrollId: wireInRequest.paymentUuid!,\n })\n const payrollData = payroll.payrollShow!\n const payPeriod = payrollData.payPeriod\n const payPeriodRange = dateFormatter.formatPayPeriodRange(\n payPeriod?.startDate,\n payPeriod?.endDate,\n )\n const checkDate = dateFormatter.formatShortWithYear(payrollData.checkDate)\n const formHandlers = useForm<ConfirmWireDetailsFormValues>({\n resolver: zodResolver(ConfirmWireDetailsFormSchema),\n defaultValues: {\n bankName: '',\n },\n })\n\n const { mutateAsync: submitWireInRequest } = useWireInRequestsSubmitMutation()\n\n const onSubmit = async (data: ConfirmWireDetailsFormValues) => {\n await baseSubmitHandler(data, async innerData => {\n const payload = transformFormDataToPayload(innerData)\n const response = await submitWireInRequest({\n request: {\n wireInRequestUuid: wireInId,\n requestBody: payload,\n },\n })\n onEvent(payrollWireEvents.PAYROLL_WIRE_FORM_DONE, {\n wireInRequest: response.wireInRequest,\n confirmationAlert: {\n title: t('confirmationAlert.title', { payrollRange: payPeriodRange }),\n content: <Text>{t('confirmationAlert.content', { checkDate })}</Text>,\n },\n })\n })\n }\n\n return (\n <Flex flexDirection=\"column\" gap={24}>\n <FlexItem>\n <Heading as=\"h2\">\n <Trans i18nKey=\"title\" t={t} values={{ payrollRange: payPeriodRange }} />\n </Heading>\n <Text>{t('description')}</Text>\n </FlexItem>\n\n <FormProvider {...formHandlers}>\n <HtmlForm\n id={CONFIRM_WIRE_FORM_ID}\n onSubmit={formHandlers.handleSubmit(onSubmit)}\n className={styles.form}\n >\n <Flex flexDirection=\"column\" gap={20}>\n <NumberInputField\n name=\"amountSent\"\n label={t('amountLabel')}\n isRequired\n format=\"currency\"\n errorMessage={t('validations.amount')}\n />\n <DatePickerField\n name=\"dateSent\"\n label={t('dateLabel')}\n isRequired\n errorMessage={t('validations.date')}\n portalContainer={modalContainerRef?.current || undefined}\n />\n <TextInputField\n name=\"bankName\"\n label={t('bankNameLabel')}\n isRequired\n description={t('bankNameDescription')}\n placeholder={t('bankNamePlaceholder')}\n errorMessage={t('validations.bankName')}\n />\n <TextAreaField name=\"additionalNotes\" label={t('notesLabel')} rows={3} />\n </Flex>\n </HtmlForm>\n </FormProvider>\n </Flex>\n )\n}\n\nconst Footer = ({ onEvent }: { onEvent: OnEventType<EventType, unknown> }) => {\n useI18n('Payroll.ConfirmWireDetailsForm')\n const { t } = useTranslation('Payroll.ConfirmWireDetailsForm')\n const { Button } = useComponentContext()\n const isMutating = useIsMutating({\n mutationKey: mutationKeyWireInRequestsSubmit(),\n })\n const isPending = isMutating > 0\n\n return (\n <Flex gap={12} justifyContent=\"space-evenly\">\n <FlexItem flexGrow={1}>\n <Button\n variant=\"secondary\"\n onClick={() => {\n onEvent(payrollWireEvents.PAYROLL_WIRE_FORM_CANCEL)\n }}\n isDisabled={isPending}\n className={styles.button}\n >\n {t('cancelCta')}\n </Button>\n </FlexItem>\n <FlexItem flexGrow={1}>\n <Button\n variant=\"primary\"\n type=\"submit\"\n form={CONFIRM_WIRE_FORM_ID}\n isLoading={isPending}\n className={styles.button}\n >\n {t('submitCta')}\n </Button>\n </FlexItem>\n </Flex>\n )\n}\nConfirmWireDetailsForm.Footer = Footer\n"],"names":["ConfirmWireDetailsFormSchema","z","CONFIRM_WIRE_FORM_ID","transformFormDataToPayload","data","ConfirmWireDetailsForm","props","jsx","BaseComponent","Root","wireInId","companyId","dictionary","modalContainerRef","useComponentDictionary","useI18n","onEvent","baseSubmitHandler","useBase","t","useTranslation","Heading","Text","useComponentContext","dateFormatter","useDateFormatter","useWireInRequestsGetSuspense","wireInRequest","payroll","usePayrollsGetSuspense","payrollData","payPeriod","payPeriodRange","checkDate","formHandlers","useForm","zodResolver","submitWireInRequest","useWireInRequestsSubmitMutation","onSubmit","innerData","payload","response","payrollWireEvents","jsxs","Flex","FlexItem","Trans","FormProvider","HtmlForm","styles","NumberInputField","DatePickerField","TextInputField","TextAreaField","Footer","Button","isPending","useIsMutating","mutationKeyWireInRequestsSubmit"],"mappings":"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"}
1
+ {"version":3,"file":"ConfirmWireDetailsForm.js","sources":["../../../../../src/components/Payroll/ConfirmWireDetails/ConfirmWireDetailsForm/ConfirmWireDetailsForm.tsx"],"sourcesContent":["import { Trans, useTranslation } from 'react-i18next'\nimport z from 'zod'\nimport { FormProvider, useForm } from 'react-hook-form'\nimport { zodResolver } from '@hookform/resolvers/zod'\nimport { useIsMutating } from '@tanstack/react-query'\nimport {\n useWireInRequestsSubmitMutation,\n mutationKeyWireInRequestsSubmit,\n} from '@gusto/embedded-api/react-query/wireInRequestsSubmit'\nimport { useWireInRequestsGetSuspense } from '@gusto/embedded-api/react-query/wireInRequestsGet'\nimport type { PutWireInRequestsWireInRequestUuidRequest } from '@gusto/embedded-api/models/operations/putwireinrequestswireinrequestuuid'\nimport { usePayrollsListSuspense } from '@gusto/embedded-api/react-query/payrollsList'\nimport styles from './ConfirmWireDetailsForm.module.scss'\nimport { Form as HtmlForm } from '@/components/Common/Form'\nimport { BaseComponent, useBase, type BaseComponentInterface } from '@/components/Base'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { useComponentDictionary, useI18n } from '@/i18n'\nimport { Flex, FlexItem } from '@/components/Common/Flex/Flex'\nimport { payrollWireEvents, type EventType } from '@/shared/constants'\nimport { DatePickerField, NumberInputField, TextInputField } from '@/components/Common'\nimport { TextAreaField } from '@/components/Common/Fields/TextAreaField'\nimport type { OnEventType } from '@/components/Base/useBase'\nimport { useDateFormatter } from '@/hooks/useDateFormatter'\n\ninterface ConfirmWireDetailsFormProps extends BaseComponentInterface<'Payroll.ConfirmWireDetailsForm'> {\n wireInId: string\n companyId: string\n modalContainerRef?: React.RefObject<HTMLDivElement | null>\n}\n\nexport const ConfirmWireDetailsFormSchema = z.object({\n amountSent: z.number().positive(),\n dateSent: z.date(),\n bankName: z.string().nonempty(),\n additionalNotes: z.string().optional(),\n})\n\nexport type ConfirmWireDetailsFormValues = z.infer<typeof ConfirmWireDetailsFormSchema>\n\nconst CONFIRM_WIRE_FORM_ID = 'confirm-wire-details-form'\n\nconst transformFormDataToPayload = (\n data: ConfirmWireDetailsFormValues,\n): PutWireInRequestsWireInRequestUuidRequest['requestBody'] => {\n return {\n amountSent: String(data.amountSent),\n dateSent: data.dateSent.toISOString().split('T')[0] || '',\n bankName: data.bankName,\n additionalNotes: data.additionalNotes || undefined,\n }\n}\n\nexport function ConfirmWireDetailsForm(props: ConfirmWireDetailsFormProps) {\n return (\n <BaseComponent {...props}>\n <Root {...props}>{props.children}</Root>\n </BaseComponent>\n )\n}\n\nconst Root = ({\n wireInId,\n companyId,\n dictionary,\n modalContainerRef,\n}: ConfirmWireDetailsFormProps) => {\n useComponentDictionary('Payroll.ConfirmWireDetailsForm', dictionary)\n useI18n('Payroll.ConfirmWireDetailsForm')\n const { onEvent, baseSubmitHandler } = useBase()\n const { t } = useTranslation('Payroll.ConfirmWireDetailsForm')\n const { Heading, Text } = useComponentContext()\n const dateFormatter = useDateFormatter()\n const { data } = useWireInRequestsGetSuspense({\n wireInRequestUuid: wireInId,\n })\n const wireInRequest = data.wireInRequest\n\n const { data: payrollsData } = usePayrollsListSuspense({\n companyId,\n processed: true,\n })\n\n const payrollData = payrollsData.payrollList?.find(\n payroll => payroll.payrollUuid === wireInRequest?.paymentUuid,\n )\n const payPeriod = payrollData?.payPeriod\n const payPeriodRange =\n payPeriod?.startDate && payPeriod.endDate\n ? dateFormatter.formatPayPeriodRange(payPeriod.startDate, payPeriod.endDate)\n : undefined\n\n const checkDate = payrollData\n ? dateFormatter.formatShortWithYear(payrollData.checkDate)\n : undefined\n\n const formHandlers = useForm<ConfirmWireDetailsFormValues>({\n resolver: zodResolver(ConfirmWireDetailsFormSchema),\n defaultValues: {\n bankName: '',\n },\n })\n\n const { mutateAsync: submitWireInRequest } = useWireInRequestsSubmitMutation()\n\n const onSubmit = async (data: ConfirmWireDetailsFormValues) => {\n await baseSubmitHandler(data, async innerData => {\n const payload = transformFormDataToPayload(innerData)\n const response = await submitWireInRequest({\n request: {\n wireInRequestUuid: wireInId,\n requestBody: payload,\n },\n })\n onEvent(payrollWireEvents.PAYROLL_WIRE_FORM_DONE, {\n wireInRequest: response.wireInRequest,\n confirmationAlert: {\n title: payPeriodRange\n ? t('confirmationAlert.title', { payrollRange: payPeriodRange })\n : t('confirmationAlert.emptyTitle'),\n content: checkDate ? (\n <Text>{t('confirmationAlert.content', { checkDate })}</Text>\n ) : undefined,\n },\n })\n })\n }\n\n return (\n <Flex flexDirection=\"column\" gap={24}>\n <FlexItem>\n <Heading as=\"h2\">\n <Trans i18nKey=\"title\" t={t} values={{ payrollRange: payPeriodRange }} />\n </Heading>\n <Text>{t('description')}</Text>\n </FlexItem>\n\n <FormProvider {...formHandlers}>\n <HtmlForm\n id={CONFIRM_WIRE_FORM_ID}\n onSubmit={formHandlers.handleSubmit(onSubmit)}\n className={styles.form}\n >\n <Flex flexDirection=\"column\" gap={20}>\n <NumberInputField\n name=\"amountSent\"\n label={t('amountLabel')}\n isRequired\n format=\"currency\"\n errorMessage={t('validations.amount')}\n />\n <DatePickerField\n name=\"dateSent\"\n label={t('dateLabel')}\n isRequired\n errorMessage={t('validations.date')}\n portalContainer={modalContainerRef?.current || undefined}\n />\n <TextInputField\n name=\"bankName\"\n label={t('bankNameLabel')}\n isRequired\n description={t('bankNameDescription')}\n placeholder={t('bankNamePlaceholder')}\n errorMessage={t('validations.bankName')}\n />\n <TextAreaField name=\"additionalNotes\" label={t('notesLabel')} rows={3} />\n </Flex>\n </HtmlForm>\n </FormProvider>\n </Flex>\n )\n}\n\nconst Footer = ({ onEvent }: { onEvent: OnEventType<EventType, unknown> }) => {\n useI18n('Payroll.ConfirmWireDetailsForm')\n const { t } = useTranslation('Payroll.ConfirmWireDetailsForm')\n const { Button } = useComponentContext()\n const isMutating = useIsMutating({\n mutationKey: mutationKeyWireInRequestsSubmit(),\n })\n const isPending = isMutating > 0\n\n return (\n <Flex gap={12} justifyContent=\"space-evenly\">\n <FlexItem flexGrow={1}>\n <Button\n variant=\"secondary\"\n onClick={() => {\n onEvent(payrollWireEvents.PAYROLL_WIRE_FORM_CANCEL)\n }}\n isDisabled={isPending}\n className={styles.button}\n >\n {t('cancelCta')}\n </Button>\n </FlexItem>\n <FlexItem flexGrow={1}>\n <Button\n variant=\"primary\"\n type=\"submit\"\n form={CONFIRM_WIRE_FORM_ID}\n isLoading={isPending}\n className={styles.button}\n >\n {t('submitCta')}\n </Button>\n </FlexItem>\n </Flex>\n )\n}\nConfirmWireDetailsForm.Footer = Footer\n"],"names":["ConfirmWireDetailsFormSchema","z","CONFIRM_WIRE_FORM_ID","transformFormDataToPayload","data","ConfirmWireDetailsForm","props","jsx","BaseComponent","Root","wireInId","companyId","dictionary","modalContainerRef","useComponentDictionary","useI18n","onEvent","baseSubmitHandler","useBase","useTranslation","Heading","Text","useComponentContext","dateFormatter","useDateFormatter","useWireInRequestsGetSuspense","wireInRequest","payrollsData","usePayrollsListSuspense","payrollData","payroll","payPeriod","payPeriodRange","checkDate","formHandlers","useForm","zodResolver","submitWireInRequest","useWireInRequestsSubmitMutation","onSubmit","innerData","payload","response","payrollWireEvents","jsxs","Flex","FlexItem","Trans","FormProvider","HtmlForm","styles","NumberInputField","DatePickerField","TextInputField","TextAreaField","Footer","t","Button","isPending","useIsMutating","mutationKeyWireInRequestsSubmit"],"mappings":"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"}
@@ -1,19 +1,19 @@
1
- import { jsx as e, jsxs as p } from "react/jsx-runtime";
2
- import { useMemo as v } from "react";
3
- import { useTranslation as A } from "react-i18next";
1
+ import { jsx as e, jsxs as m } from "react/jsx-runtime";
2
+ import { useMemo as W } from "react";
3
+ import { useTranslation as v } from "react-i18next";
4
4
  import { useWireInRequestsListSuspense as T } from "@gusto/embedded-api/react-query/wireInRequestsList";
5
5
  import { usePayrollsListSuspense as x } from "@gusto/embedded-api/react-query/payrollsList";
6
6
  import u from "./WireInstructions.module.scss.js";
7
7
  import { BaseComponent as F } from "../../../Base/Base.js";
8
8
  import "../../../Base/useBase.js";
9
- import { Flex as f } from "../../../Common/Flex/Flex.js";
9
+ import { Flex as p } from "../../../Common/Flex/Flex.js";
10
10
  import { useComponentContext as g } from "../../../../contexts/ComponentAdapter/useComponentContext.js";
11
- import { useComponentDictionary as _, useI18n as k } from "../../../../i18n/I18n.js";
11
+ import { useComponentDictionary as _, useI18n as A } from "../../../../i18n/I18n.js";
12
12
  import { payrollWireEvents as C } from "../../../../shared/constants.js";
13
13
  import { useDateFormatter as w } from "../../../../hooks/useDateFormatter.js";
14
14
  import E from "../../../../hooks/useNumberFormatter.js";
15
15
  import { useFlow as O } from "../../../Flow/useFlow.js";
16
- function W(n, a) {
16
+ function k(n, a) {
17
17
  const { data: i } = T({
18
18
  companyUuid: n
19
19
  }), { data: d } = x({
@@ -21,7 +21,7 @@ function W(n, a) {
21
21
  processed: !0
22
22
  }), l = (i.wireInRequestList || []).filter(
23
23
  (o) => o.status === "awaiting_funds"
24
- ), r = l.find((o) => o.uuid === a), t = d.payrollList || [], m = v(
24
+ ), r = l.find((o) => o.uuid === a), t = d.payrollList || [], f = W(
25
25
  () => l.map((o) => {
26
26
  const h = t.find((b) => b.payrollUuid === o.paymentUuid);
27
27
  return {
@@ -32,7 +32,7 @@ function W(n, a) {
32
32
  [l, t]
33
33
  );
34
34
  return {
35
- selectedInstruction: v(() => r ? {
35
+ selectedInstruction: W(() => r ? {
36
36
  id: r.uuid || "",
37
37
  trackingCode: r.uniqueTrackingCode || "",
38
38
  amount: parseFloat(r.requestedAmount || "0"),
@@ -43,12 +43,12 @@ function W(n, a) {
43
43
  recipientAccountNumber: r.recipientAccountNumber || "",
44
44
  recipientRoutingNumber: r.recipientRoutingNumber || ""
45
45
  } : null, [r]),
46
- activeWireInRequestsWithPayrolls: m
46
+ activeWireInRequestsWithPayrolls: f
47
47
  };
48
48
  }
49
49
  function c({ label: n, value: a }) {
50
50
  const { Text: i } = g();
51
- return /* @__PURE__ */ p(f, { flexDirection: "column", gap: 8, children: [
51
+ return /* @__PURE__ */ m(p, { flexDirection: "column", gap: 8, children: [
52
52
  /* @__PURE__ */ e(i, { className: u.fieldLabel, children: n }),
53
53
  /* @__PURE__ */ e(i, { className: u.fieldValue, children: a })
54
54
  ] });
@@ -64,22 +64,22 @@ const B = ({
64
64
  onEvent: l,
65
65
  modalContainerRef: r
66
66
  }) => {
67
- _("Payroll.WireInstructions", d), k("Payroll.WireInstructions");
68
- const { t } = A("Payroll.WireInstructions"), { Select: m, Card: R, Text: o, UnorderedList: h, Heading: b, Alert: L } = g(), P = w(), q = E("currency"), { selectedInstruction: s, activeWireInRequestsWithPayrolls: I } = W(
67
+ _("Payroll.WireInstructions", d), A("Payroll.WireInstructions");
68
+ const { t } = v("Payroll.WireInstructions"), { Select: f, Card: R, Text: o, UnorderedList: h, Heading: b, Alert: L } = g(), P = w(), q = E("currency"), { selectedInstruction: s, activeWireInRequestsWithPayrolls: I } = k(
69
69
  n,
70
70
  i
71
71
  ), S = !a && I.length > 1, D = (N) => {
72
72
  l(C.PAYROLL_WIRE_INSTRUCTIONS_SELECT, {
73
- selectedId: N
73
+ selectedWireInId: N
74
74
  });
75
75
  };
76
- return I.length === 0 || i && !s ? /* @__PURE__ */ e(f, { flexDirection: "column", gap: 24, children: /* @__PURE__ */ e(o, { children: t("messages.noInstructions") }) }) : /* @__PURE__ */ p(f, { flexDirection: "column", gap: 24, children: [
77
- /* @__PURE__ */ p("div", { children: [
76
+ return I.length === 0 || i && !s ? /* @__PURE__ */ e(p, { flexDirection: "column", gap: 24, children: /* @__PURE__ */ e(o, { children: t("messages.noInstructions") }) }) : /* @__PURE__ */ m(p, { flexDirection: "column", gap: 24, children: [
77
+ /* @__PURE__ */ m("div", { children: [
78
78
  /* @__PURE__ */ e(b, { as: "h2", styledAs: "h3", children: t("title") }),
79
79
  /* @__PURE__ */ e(o, { className: u.subtitle, children: t("subtitle") })
80
80
  ] }),
81
81
  S && /* @__PURE__ */ e(
82
- m,
82
+ f,
83
83
  {
84
84
  isRequired: !0,
85
85
  portalContainer: r?.current || void 0,
@@ -107,7 +107,7 @@ const B = ({
107
107
  ]
108
108
  }
109
109
  ) }),
110
- s && /* @__PURE__ */ e(f, { flexDirection: "column", gap: 16, children: /* @__PURE__ */ p(R, { className: u.requirementsCard, children: [
110
+ s && /* @__PURE__ */ e(p, { flexDirection: "column", gap: 16, children: /* @__PURE__ */ m(R, { className: u.requirementsCard, children: [
111
111
  /* @__PURE__ */ e(
112
112
  c,
113
113
  {
@@ -174,14 +174,13 @@ const B = ({
174
174
  ] }) })
175
175
  ] });
176
176
  }, Y = ({ onEvent: n }) => {
177
- k("Payroll.WireInstructions");
178
- const { t: a } = A("Payroll.WireInstructions"), { Button: i } = g(), { companyId: d, wireInId: l } = O(), { selectedInstruction: r } = W(d, l), t = () => {
179
- const m = l || r?.id;
177
+ A("Payroll.WireInstructions");
178
+ const { t: a } = v("Payroll.WireInstructions"), { Button: i } = g(), { companyId: d, selectedWireInId: l } = O(), { selectedInstruction: r } = k(d, l), t = () => {
180
179
  n(C.PAYROLL_WIRE_INSTRUCTIONS_DONE, {
181
- selectedId: m
180
+ selectedWireInId: l
182
181
  });
183
182
  };
184
- return /* @__PURE__ */ p("div", { className: u.footer, children: [
183
+ return /* @__PURE__ */ m("div", { className: u.footer, children: [
185
184
  /* @__PURE__ */ e(
186
185
  i,
187
186
  {
@@ -1 +1 @@
1
- {"version":3,"file":"WireInstructions.js","sources":["../../../../../src/components/Payroll/ConfirmWireDetails/WireInstructions/WireInstructions.tsx"],"sourcesContent":["import { useMemo } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport { useWireInRequestsListSuspense } from '@gusto/embedded-api/react-query/wireInRequestsList'\nimport { usePayrollsListSuspense } from '@gusto/embedded-api/react-query/payrollsList'\nimport type { ConfirmWireDetailsContextInterface } from '../ConfirmWireDetailsComponents'\nimport styles from './WireInstructions.module.scss'\nimport { BaseComponent, type BaseComponentInterface } from '@/components/Base'\nimport type { OnEventType } from '@/components/Base/useBase'\nimport { Flex } from '@/components/Common/Flex/Flex'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { useComponentDictionary, useI18n } from '@/i18n'\nimport { payrollWireEvents, type EventType } from '@/shared/constants'\nimport { useDateFormatter } from '@/hooks/useDateFormatter'\nimport useNumberFormatter from '@/hooks/useNumberFormatter'\nimport { useFlow } from '@/components/Flow/useFlow'\n\ninterface WireInstructionsProps extends BaseComponentInterface<'Payroll.WireInstructions'> {\n companyId: string\n wireInId?: string\n selectedWireInId?: string\n onEvent: OnEventType<EventType, unknown>\n modalContainerRef?: React.RefObject<HTMLDivElement | null>\n}\n\ninterface WireInstructionFieldProps {\n label: string\n value: string\n onCopy?: () => void\n copyAriaLabel?: string\n showCopiedMessage?: boolean\n copiedMessage?: string\n}\n\nfunction useWireInstructionsState(companyId: string, selectedWireInId?: string) {\n const { data: wireInRequestsData } = useWireInRequestsListSuspense({\n companyUuid: companyId,\n })\n\n const { data: payrollsData } = usePayrollsListSuspense({\n companyId,\n processed: true,\n })\n\n const activeWireInRequests = (wireInRequestsData.wireInRequestList || []).filter(\n r => r.status === 'awaiting_funds',\n )\n\n const wireInInformation = activeWireInRequests.find(r => r.uuid === selectedWireInId)\n\n const payrolls = payrollsData.payrollList || []\n\n const activeWireInRequestsWithPayrolls = useMemo(\n () =>\n activeWireInRequests.map(wireInRequest => {\n const payroll = payrolls.find(p => p.payrollUuid === wireInRequest.paymentUuid)\n return {\n wireInRequest,\n payroll,\n }\n }),\n [activeWireInRequests, payrolls],\n )\n\n const selectedInstruction = useMemo(() => {\n if (!wireInInformation) return null\n\n const instruction = {\n id: wireInInformation.uuid || '',\n trackingCode: wireInInformation.uniqueTrackingCode || '',\n amount: parseFloat(wireInInformation.requestedAmount || '0'),\n bankName: wireInInformation.originationBank || '',\n bankAddress: wireInInformation.originationBankAddress || '',\n recipientName: wireInInformation.recipientName || '',\n recipientAddress: wireInInformation.recipientAddress || '',\n recipientAccountNumber: wireInInformation.recipientAccountNumber || '',\n recipientRoutingNumber: wireInInformation.recipientRoutingNumber || '',\n }\n return instruction\n }, [wireInInformation])\n\n return {\n selectedInstruction,\n activeWireInRequestsWithPayrolls,\n }\n}\n\nfunction WireInstructionField({ label, value }: WireInstructionFieldProps) {\n const { Text } = useComponentContext()\n\n return (\n <Flex flexDirection=\"column\" gap={8}>\n <Text className={styles.fieldLabel}>{label}</Text>\n <Text className={styles.fieldValue}>{value}</Text>\n </Flex>\n )\n}\n\nexport function WireInstructions(props: WireInstructionsProps) {\n return (\n <BaseComponent {...props}>\n <Root {...props}>{props.children}</Root>\n </BaseComponent>\n )\n}\n\nexport const Root = ({\n companyId,\n wireInId,\n selectedWireInId,\n dictionary,\n onEvent,\n modalContainerRef,\n}: WireInstructionsProps) => {\n useComponentDictionary('Payroll.WireInstructions', dictionary)\n useI18n('Payroll.WireInstructions')\n const { t } = useTranslation('Payroll.WireInstructions')\n const { Select, Card, Text, UnorderedList, Heading, Alert } = useComponentContext()\n const dateFormatter = useDateFormatter()\n const formatCurrency = useNumberFormatter('currency')\n\n const { selectedInstruction, activeWireInRequestsWithPayrolls } = useWireInstructionsState(\n companyId,\n selectedWireInId,\n )\n\n const shouldShowDropdown = !wireInId && activeWireInRequestsWithPayrolls.length > 1\n\n const handleWireInSelection = (selectedId: string) => {\n onEvent(payrollWireEvents.PAYROLL_WIRE_INSTRUCTIONS_SELECT, {\n selectedId,\n })\n }\n\n if (activeWireInRequestsWithPayrolls.length === 0 || (selectedWireInId && !selectedInstruction)) {\n return (\n <Flex flexDirection=\"column\" gap={24}>\n <Text>{t('messages.noInstructions')}</Text>\n </Flex>\n )\n }\n\n return (\n <Flex flexDirection=\"column\" gap={24}>\n <div>\n <Heading as=\"h2\" styledAs=\"h3\">\n {t('title')}\n </Heading>\n <Text className={styles.subtitle}>{t('subtitle')}</Text>\n </div>\n\n {shouldShowDropdown && (\n <Select\n isRequired\n portalContainer={modalContainerRef?.current || undefined}\n label={t('selectLabel')}\n value={selectedWireInId || ''}\n options={activeWireInRequestsWithPayrolls.map(({ wireInRequest, payroll }) => ({\n label: payroll?.payPeriod\n ? dateFormatter.formatPayPeriodRange(\n payroll.payPeriod.startDate,\n payroll.payPeriod.endDate,\n )\n : t('selectFallback'),\n value: wireInRequest.uuid || '',\n }))}\n onChange={handleWireInSelection}\n />\n )}\n\n <Alert label={t('requirementsTitle')} disableScrollIntoView>\n <UnorderedList\n className={styles.requirementsList}\n items={[\n t('requirements.trackingCode'),\n t('requirements.amountMatch'),\n t('requirements.usBank'),\n t('requirements.authorized'),\n ]}\n />\n </Alert>\n\n {selectedInstruction && (\n <Flex flexDirection=\"column\" gap={16}>\n <Card className={styles.requirementsCard}>\n <WireInstructionField\n label={t('fields.trackingCode')}\n value={selectedInstruction.trackingCode}\n />\n\n <hr />\n\n <WireInstructionField\n label={t('fields.amount')}\n value={formatCurrency(selectedInstruction.amount)}\n />\n\n <hr />\n\n <WireInstructionField\n label={t('fields.bankName')}\n value={selectedInstruction.bankName}\n />\n\n <hr />\n\n <WireInstructionField\n label={t('fields.bankAddress')}\n value={selectedInstruction.bankAddress}\n />\n\n <hr />\n\n <WireInstructionField\n label={t('fields.recipientName')}\n value={selectedInstruction.recipientName}\n />\n\n <hr />\n\n <WireInstructionField\n label={t('fields.recipientAddress')}\n value={selectedInstruction.recipientAddress}\n />\n\n <hr />\n\n <WireInstructionField\n label={t('fields.accountNumber')}\n value={selectedInstruction.recipientAccountNumber}\n />\n\n <hr />\n\n <WireInstructionField\n label={t('fields.routingNumber')}\n value={selectedInstruction.recipientRoutingNumber}\n />\n </Card>\n </Flex>\n )}\n </Flex>\n )\n}\n\nconst Footer = ({ onEvent }: { onEvent: OnEventType<EventType, unknown> }) => {\n useI18n('Payroll.WireInstructions')\n const { t } = useTranslation('Payroll.WireInstructions')\n const { Button } = useComponentContext()\n const { companyId, wireInId } = useFlow<ConfirmWireDetailsContextInterface>()\n const { selectedInstruction } = useWireInstructionsState(companyId, wireInId)\n\n const handleConfirm = () => {\n const selectedId = wireInId || selectedInstruction?.id\n onEvent(payrollWireEvents.PAYROLL_WIRE_INSTRUCTIONS_DONE, {\n selectedId,\n })\n }\n\n return (\n <div className={styles.footer}>\n <Button\n variant=\"secondary\"\n onClick={() => {\n onEvent(payrollWireEvents.PAYROLL_WIRE_INSTRUCTIONS_CANCEL)\n }}\n >\n {t('cta.close')}\n </Button>\n <Button variant=\"primary\" onClick={handleConfirm} isDisabled={!selectedInstruction}>\n {t('cta.confirm')}\n </Button>\n </div>\n )\n}\n\nWireInstructions.Footer = Footer\n"],"names":["useWireInstructionsState","companyId","selectedWireInId","wireInRequestsData","useWireInRequestsListSuspense","payrollsData","usePayrollsListSuspense","activeWireInRequests","r","wireInInformation","payrolls","activeWireInRequestsWithPayrolls","useMemo","wireInRequest","payroll","p","WireInstructionField","label","value","Text","useComponentContext","jsxs","Flex","jsx","styles","WireInstructions","props","BaseComponent","Root","wireInId","dictionary","onEvent","modalContainerRef","useComponentDictionary","useI18n","useTranslation","Select","Card","UnorderedList","Heading","Alert","dateFormatter","useDateFormatter","formatCurrency","useNumberFormatter","selectedInstruction","shouldShowDropdown","handleWireInSelection","selectedId","payrollWireEvents","Footer","t","Button","useFlow","handleConfirm"],"mappings":"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"}
1
+ {"version":3,"file":"WireInstructions.js","sources":["../../../../../src/components/Payroll/ConfirmWireDetails/WireInstructions/WireInstructions.tsx"],"sourcesContent":["import { useMemo } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport { useWireInRequestsListSuspense } from '@gusto/embedded-api/react-query/wireInRequestsList'\nimport { usePayrollsListSuspense } from '@gusto/embedded-api/react-query/payrollsList'\nimport type { ConfirmWireDetailsContextInterface } from '../ConfirmWireDetailsComponents'\nimport styles from './WireInstructions.module.scss'\nimport { BaseComponent, type BaseComponentInterface } from '@/components/Base'\nimport type { OnEventType } from '@/components/Base/useBase'\nimport { Flex } from '@/components/Common/Flex/Flex'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { useComponentDictionary, useI18n } from '@/i18n'\nimport { payrollWireEvents, type EventType } from '@/shared/constants'\nimport { useDateFormatter } from '@/hooks/useDateFormatter'\nimport useNumberFormatter from '@/hooks/useNumberFormatter'\nimport { useFlow } from '@/components/Flow/useFlow'\n\ninterface WireInstructionsProps extends BaseComponentInterface<'Payroll.WireInstructions'> {\n companyId: string\n wireInId?: string\n selectedWireInId?: string\n onEvent: OnEventType<EventType, unknown>\n modalContainerRef?: React.RefObject<HTMLDivElement | null>\n}\n\ninterface WireInstructionFieldProps {\n label: string\n value: string\n onCopy?: () => void\n copyAriaLabel?: string\n showCopiedMessage?: boolean\n copiedMessage?: string\n}\n\nfunction useWireInstructionsState(companyId: string, selectedWireInId?: string) {\n const { data: wireInRequestsData } = useWireInRequestsListSuspense({\n companyUuid: companyId,\n })\n\n const { data: payrollsData } = usePayrollsListSuspense({\n companyId,\n processed: true,\n })\n\n const activeWireInRequests = (wireInRequestsData.wireInRequestList || []).filter(\n r => r.status === 'awaiting_funds',\n )\n\n const wireInInformation = activeWireInRequests.find(r => r.uuid === selectedWireInId)\n\n const payrolls = payrollsData.payrollList || []\n\n const activeWireInRequestsWithPayrolls = useMemo(\n () =>\n activeWireInRequests.map(wireInRequest => {\n const payroll = payrolls.find(p => p.payrollUuid === wireInRequest.paymentUuid)\n return {\n wireInRequest,\n payroll,\n }\n }),\n [activeWireInRequests, payrolls],\n )\n\n const selectedInstruction = useMemo(() => {\n if (!wireInInformation) return null\n\n const instruction = {\n id: wireInInformation.uuid || '',\n trackingCode: wireInInformation.uniqueTrackingCode || '',\n amount: parseFloat(wireInInformation.requestedAmount || '0'),\n bankName: wireInInformation.originationBank || '',\n bankAddress: wireInInformation.originationBankAddress || '',\n recipientName: wireInInformation.recipientName || '',\n recipientAddress: wireInInformation.recipientAddress || '',\n recipientAccountNumber: wireInInformation.recipientAccountNumber || '',\n recipientRoutingNumber: wireInInformation.recipientRoutingNumber || '',\n }\n return instruction\n }, [wireInInformation])\n\n return {\n selectedInstruction,\n activeWireInRequestsWithPayrolls,\n }\n}\n\nfunction WireInstructionField({ label, value }: WireInstructionFieldProps) {\n const { Text } = useComponentContext()\n\n return (\n <Flex flexDirection=\"column\" gap={8}>\n <Text className={styles.fieldLabel}>{label}</Text>\n <Text className={styles.fieldValue}>{value}</Text>\n </Flex>\n )\n}\n\nexport function WireInstructions(props: WireInstructionsProps) {\n return (\n <BaseComponent {...props}>\n <Root {...props}>{props.children}</Root>\n </BaseComponent>\n )\n}\n\nexport const Root = ({\n companyId,\n wireInId,\n selectedWireInId,\n dictionary,\n onEvent,\n modalContainerRef,\n}: WireInstructionsProps) => {\n useComponentDictionary('Payroll.WireInstructions', dictionary)\n useI18n('Payroll.WireInstructions')\n const { t } = useTranslation('Payroll.WireInstructions')\n const { Select, Card, Text, UnorderedList, Heading, Alert } = useComponentContext()\n const dateFormatter = useDateFormatter()\n const formatCurrency = useNumberFormatter('currency')\n\n const { selectedInstruction, activeWireInRequestsWithPayrolls } = useWireInstructionsState(\n companyId,\n selectedWireInId,\n )\n\n const shouldShowDropdown = !wireInId && activeWireInRequestsWithPayrolls.length > 1\n\n const handleWireInSelection = (updatedSelectedWireInId: string) => {\n onEvent(payrollWireEvents.PAYROLL_WIRE_INSTRUCTIONS_SELECT, {\n selectedWireInId: updatedSelectedWireInId,\n })\n }\n\n if (activeWireInRequestsWithPayrolls.length === 0 || (selectedWireInId && !selectedInstruction)) {\n return (\n <Flex flexDirection=\"column\" gap={24}>\n <Text>{t('messages.noInstructions')}</Text>\n </Flex>\n )\n }\n\n return (\n <Flex flexDirection=\"column\" gap={24}>\n <div>\n <Heading as=\"h2\" styledAs=\"h3\">\n {t('title')}\n </Heading>\n <Text className={styles.subtitle}>{t('subtitle')}</Text>\n </div>\n\n {shouldShowDropdown && (\n <Select\n isRequired\n portalContainer={modalContainerRef?.current || undefined}\n label={t('selectLabel')}\n value={selectedWireInId || ''}\n options={activeWireInRequestsWithPayrolls.map(({ wireInRequest, payroll }) => ({\n label: payroll?.payPeriod\n ? dateFormatter.formatPayPeriodRange(\n payroll.payPeriod.startDate,\n payroll.payPeriod.endDate,\n )\n : t('selectFallback'),\n value: wireInRequest.uuid || '',\n }))}\n onChange={handleWireInSelection}\n />\n )}\n\n <Alert label={t('requirementsTitle')} disableScrollIntoView>\n <UnorderedList\n className={styles.requirementsList}\n items={[\n t('requirements.trackingCode'),\n t('requirements.amountMatch'),\n t('requirements.usBank'),\n t('requirements.authorized'),\n ]}\n />\n </Alert>\n\n {selectedInstruction && (\n <Flex flexDirection=\"column\" gap={16}>\n <Card className={styles.requirementsCard}>\n <WireInstructionField\n label={t('fields.trackingCode')}\n value={selectedInstruction.trackingCode}\n />\n\n <hr />\n\n <WireInstructionField\n label={t('fields.amount')}\n value={formatCurrency(selectedInstruction.amount)}\n />\n\n <hr />\n\n <WireInstructionField\n label={t('fields.bankName')}\n value={selectedInstruction.bankName}\n />\n\n <hr />\n\n <WireInstructionField\n label={t('fields.bankAddress')}\n value={selectedInstruction.bankAddress}\n />\n\n <hr />\n\n <WireInstructionField\n label={t('fields.recipientName')}\n value={selectedInstruction.recipientName}\n />\n\n <hr />\n\n <WireInstructionField\n label={t('fields.recipientAddress')}\n value={selectedInstruction.recipientAddress}\n />\n\n <hr />\n\n <WireInstructionField\n label={t('fields.accountNumber')}\n value={selectedInstruction.recipientAccountNumber}\n />\n\n <hr />\n\n <WireInstructionField\n label={t('fields.routingNumber')}\n value={selectedInstruction.recipientRoutingNumber}\n />\n </Card>\n </Flex>\n )}\n </Flex>\n )\n}\n\nconst Footer = ({ onEvent }: { onEvent: OnEventType<EventType, unknown> }) => {\n useI18n('Payroll.WireInstructions')\n const { t } = useTranslation('Payroll.WireInstructions')\n const { Button } = useComponentContext()\n const { companyId, selectedWireInId } = useFlow<ConfirmWireDetailsContextInterface>()\n const { selectedInstruction } = useWireInstructionsState(companyId, selectedWireInId)\n\n const handleConfirm = () => {\n onEvent(payrollWireEvents.PAYROLL_WIRE_INSTRUCTIONS_DONE, {\n selectedWireInId,\n })\n }\n\n return (\n <div className={styles.footer}>\n <Button\n variant=\"secondary\"\n onClick={() => {\n onEvent(payrollWireEvents.PAYROLL_WIRE_INSTRUCTIONS_CANCEL)\n }}\n >\n {t('cta.close')}\n </Button>\n <Button variant=\"primary\" onClick={handleConfirm} isDisabled={!selectedInstruction}>\n {t('cta.confirm')}\n </Button>\n </div>\n )\n}\n\nWireInstructions.Footer = Footer\n"],"names":["useWireInstructionsState","companyId","selectedWireInId","wireInRequestsData","useWireInRequestsListSuspense","payrollsData","usePayrollsListSuspense","activeWireInRequests","r","wireInInformation","payrolls","activeWireInRequestsWithPayrolls","useMemo","wireInRequest","payroll","p","WireInstructionField","label","value","Text","useComponentContext","jsxs","Flex","jsx","styles","WireInstructions","props","BaseComponent","Root","wireInId","dictionary","onEvent","modalContainerRef","useComponentDictionary","useI18n","useTranslation","Select","Card","UnorderedList","Heading","Alert","dateFormatter","useDateFormatter","formatCurrency","useNumberFormatter","selectedInstruction","shouldShowDropdown","handleWireInSelection","updatedSelectedWireInId","payrollWireEvents","Footer","t","Button","useFlow","handleConfirm"],"mappings":"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"}