@gusto/embedded-react-sdk 0.55.7 → 0.55.8

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 (336) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/dist/components/Common/FadeIn/FadeIn.module.scss.js +4 -4
  3. package/dist/components/Common/FieldCaption/FieldCaption.js +22 -18
  4. package/dist/components/Common/FieldCaption/FieldCaption.js.map +1 -1
  5. package/dist/components/Common/Flex/Flex.js +17 -15
  6. package/dist/components/Common/Flex/Flex.js.map +1 -1
  7. package/dist/components/Common/UI/Breadcrumbs/Breadcrumbs.js +1 -1
  8. package/dist/components/Common/UI/FileInput/FileInput.js +1 -1
  9. package/dist/components/Common/UI/Heading/Heading.module.scss.js +7 -7
  10. package/dist/components/Common/UI/ProgressBar/ProgressBar.js +4 -4
  11. package/dist/components/Company/AssignSignatory/CreateSignatory/useCreateSignatory.js +5 -4
  12. package/dist/components/Company/AssignSignatory/CreateSignatory/useCreateSignatory.js.map +1 -1
  13. package/dist/components/Company/AssignSignatory/InviteSignatory/useInviteSignatory.js +5 -4
  14. package/dist/components/Company/AssignSignatory/InviteSignatory/useInviteSignatory.js.map +1 -1
  15. package/dist/components/Company/AssignSignatory/useAssignSignatory.js +7 -6
  16. package/dist/components/Company/AssignSignatory/useAssignSignatory.js.map +1 -1
  17. package/dist/components/Company/BankAccount/BankAccountForm/context.js +5 -4
  18. package/dist/components/Company/BankAccount/BankAccountForm/context.js.map +1 -1
  19. package/dist/components/Company/DocumentSigner/DocumentList/useDocumentList.js +5 -4
  20. package/dist/components/Company/DocumentSigner/DocumentList/useDocumentList.js.map +1 -1
  21. package/dist/components/Company/DocumentSigner/SignatureForm/SignatureForm.js +27 -27
  22. package/dist/components/Company/DocumentSigner/SignatureForm/SignatureForm.js.map +1 -1
  23. package/dist/components/Company/FederalTaxes/useFederalTaxes.js +10 -9
  24. package/dist/components/Company/FederalTaxes/useFederalTaxes.js.map +1 -1
  25. package/dist/components/Company/Industry/Context.js +8 -7
  26. package/dist/components/Company/Industry/Context.js.map +1 -1
  27. package/dist/components/Company/Locations/LocationForm/useLocationForm.js +5 -4
  28. package/dist/components/Company/Locations/LocationForm/useLocationForm.js.map +1 -1
  29. package/dist/components/Company/Locations/LocationsList/useLocationsList.js +5 -4
  30. package/dist/components/Company/Locations/LocationsList/useLocationsList.js.map +1 -1
  31. package/dist/components/Company/OnboardingOverview/context.js +5 -4
  32. package/dist/components/Company/OnboardingOverview/context.js.map +1 -1
  33. package/dist/components/Company/PaySchedule/PaySchedule.js +45 -30
  34. package/dist/components/Company/PaySchedule/PaySchedule.js.map +1 -1
  35. package/dist/components/Company/PaySchedule/PayScheduleComponents.js +12 -11
  36. package/dist/components/Company/PaySchedule/PayScheduleComponents.js.map +1 -1
  37. package/dist/components/Company/PaySchedule/PayScheduleForm.js +72 -55
  38. package/dist/components/Company/PaySchedule/PayScheduleForm.js.map +1 -1
  39. package/dist/components/Company/PaySchedule/shared/usePayScheduleForm/fields.js +24 -20
  40. package/dist/components/Company/PaySchedule/shared/usePayScheduleForm/fields.js.map +1 -1
  41. package/dist/components/Company/PaySchedule/shared/usePayScheduleForm/payScheduleSchema.js +33 -29
  42. package/dist/components/Company/PaySchedule/shared/usePayScheduleForm/payScheduleSchema.js.map +1 -1
  43. package/dist/components/Company/PaySchedule/shared/usePayScheduleForm/usePayScheduleForm.js +131 -115
  44. package/dist/components/Company/PaySchedule/shared/usePayScheduleForm/usePayScheduleForm.js.map +1 -1
  45. package/dist/components/Company/StateTaxes/StateTaxesForm/context.js +5 -4
  46. package/dist/components/Company/StateTaxes/StateTaxesForm/context.js.map +1 -1
  47. package/dist/components/Company/StateTaxes/StateTaxesList/context.js +5 -4
  48. package/dist/components/Company/StateTaxes/StateTaxesList/context.js.map +1 -1
  49. package/dist/components/Company/StateTaxes/TaxRateManagement/context.js +5 -4
  50. package/dist/components/Company/StateTaxes/TaxRateManagement/context.js.map +1 -1
  51. package/dist/components/Contractor/ContractorList/management/ManagementContractorList.js +31 -29
  52. package/dist/components/Contractor/ContractorList/management/ManagementContractorList.js.map +1 -1
  53. package/dist/components/Contractor/ContractorList/management/ManagementContractorListView.js +110 -109
  54. package/dist/components/Contractor/ContractorList/management/ManagementContractorListView.js.map +1 -1
  55. package/dist/components/Contractor/ContractorList/onboarding/ContractorList.js +21 -19
  56. package/dist/components/Contractor/ContractorList/onboarding/ContractorList.js.map +1 -1
  57. package/dist/components/Contractor/ContractorList/onboarding/ContractorListView.js +56 -55
  58. package/dist/components/Contractor/ContractorList/onboarding/ContractorListView.js.map +1 -1
  59. package/dist/components/Contractor/Dashboard/Dashboard.js +34 -33
  60. package/dist/components/Contractor/Dashboard/Dashboard.js.map +1 -1
  61. package/dist/components/Contractor/Payments/CreateHistoricalPayment/CreateHistoricalPayment.js +117 -115
  62. package/dist/components/Contractor/Payments/CreateHistoricalPayment/CreateHistoricalPayment.js.map +1 -1
  63. package/dist/components/Contractor/Payments/CreatePayment/CreatePayment.js +77 -75
  64. package/dist/components/Contractor/Payments/CreatePayment/CreatePayment.js.map +1 -1
  65. package/dist/components/Contractor/Payments/CreatePayment/CreatePaymentPresentation.js +44 -43
  66. package/dist/components/Contractor/Payments/CreatePayment/CreatePaymentPresentation.js.map +1 -1
  67. package/dist/components/Contractor/Payments/CreatePayment/PreviewPresentation.js +40 -39
  68. package/dist/components/Contractor/Payments/CreatePayment/PreviewPresentation.js.map +1 -1
  69. package/dist/components/Contractor/Payments/HistoricalPaymentSummary/HistoricalPaymentSummary.js +35 -29
  70. package/dist/components/Contractor/Payments/HistoricalPaymentSummary/HistoricalPaymentSummary.js.map +1 -1
  71. package/dist/components/Contractor/Payments/PaymentHistory/PaymentHistory.js +21 -20
  72. package/dist/components/Contractor/Payments/PaymentHistory/PaymentHistory.js.map +1 -1
  73. package/dist/components/Contractor/Payments/PaymentHistory/PaymentHistoryPresentation.js +41 -40
  74. package/dist/components/Contractor/Payments/PaymentHistory/PaymentHistoryPresentation.js.map +1 -1
  75. package/dist/components/Contractor/Payments/PaymentStatement/PaymentStatement.js +21 -20
  76. package/dist/components/Contractor/Payments/PaymentStatement/PaymentStatement.js.map +1 -1
  77. package/dist/components/Contractor/Payments/PaymentStatement/PaymentStatementPresentation.js +33 -32
  78. package/dist/components/Contractor/Payments/PaymentStatement/PaymentStatementPresentation.js.map +1 -1
  79. package/dist/components/Contractor/Payments/PaymentsList/PaymentsList.js +80 -78
  80. package/dist/components/Contractor/Payments/PaymentsList/PaymentsList.js.map +1 -1
  81. package/dist/components/Contractor/Payments/PaymentsList/PaymentsListPresentation.js +44 -43
  82. package/dist/components/Contractor/Payments/PaymentsList/PaymentsListPresentation.js.map +1 -1
  83. package/dist/components/Contractor/Submit/Submit.js +113 -105
  84. package/dist/components/Contractor/Submit/Submit.js.map +1 -1
  85. package/dist/components/Contractor/Submit/SubmitDone.js +11 -11
  86. package/dist/components/Contractor/Submit/SubmitDone.js.map +1 -1
  87. package/dist/components/Employee/Compensation/management/CompensationAddJobForm/CompensationAddJobForm.js +20 -18
  88. package/dist/components/Employee/Compensation/management/CompensationAddJobForm/CompensationAddJobForm.js.map +1 -1
  89. package/dist/components/Employee/Compensation/management/CompensationEditForm/CompensationEditForm.js +18 -15
  90. package/dist/components/Employee/Compensation/management/CompensationEditForm/CompensationEditForm.js.map +1 -1
  91. package/dist/components/Employee/Dashboard/Dashboard.js +33 -32
  92. package/dist/components/Employee/Dashboard/Dashboard.js.map +1 -1
  93. package/dist/components/Employee/Deductions/management/DeductionsEditForm/DeductionsEditForm.js +21 -19
  94. package/dist/components/Employee/Deductions/management/DeductionsEditForm/DeductionsEditForm.js.map +1 -1
  95. package/dist/components/Employee/Documents/management/DocumentManager.js +34 -26
  96. package/dist/components/Employee/Documents/management/DocumentManager.js.map +1 -1
  97. package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/useDocumentList.js +5 -4
  98. package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/useDocumentList.js.map +1 -1
  99. package/dist/components/Employee/Documents/onboarding/DocumentSigner/EmploymentEligibility/EmploymentEligibility.js +30 -29
  100. package/dist/components/Employee/Documents/onboarding/DocumentSigner/EmploymentEligibility/EmploymentEligibility.js.map +1 -1
  101. package/dist/components/Employee/Documents/onboarding/DocumentSigner/EmploymentEligibility/EmploymentEligibilityPresentation.js +54 -53
  102. package/dist/components/Employee/Documents/onboarding/DocumentSigner/EmploymentEligibility/EmploymentEligibilityPresentation.js.map +1 -1
  103. package/dist/components/Employee/Documents/onboarding/EmployeeDocuments/EmployeeDocuments.js +29 -28
  104. package/dist/components/Employee/Documents/onboarding/EmployeeDocuments/EmployeeDocuments.js.map +1 -1
  105. package/dist/components/Employee/Documents/onboarding/EmployeeDocuments/EmployeeDocumentsPresentation.js +16 -15
  106. package/dist/components/Employee/Documents/onboarding/EmployeeDocuments/EmployeeDocumentsPresentation.js.map +1 -1
  107. package/dist/components/Employee/EmployeeList/management/ManagementEmployeeList.js +27 -25
  108. package/dist/components/Employee/EmployeeList/management/ManagementEmployeeList.js.map +1 -1
  109. package/dist/components/Employee/EmployeeList/management/ManagementEmployeeListView.js +89 -80
  110. package/dist/components/Employee/EmployeeList/management/ManagementEmployeeListView.js.map +1 -1
  111. package/dist/components/Employee/EmployeeList/onboarding/EmployeeList.js +22 -20
  112. package/dist/components/Employee/EmployeeList/onboarding/EmployeeList.js.map +1 -1
  113. package/dist/components/Employee/EmployeeList/onboarding/EmployeeListView.js +25 -24
  114. package/dist/components/Employee/EmployeeList/onboarding/EmployeeListView.js.map +1 -1
  115. package/dist/components/Employee/EmployeeList/shared/useEmployeeList.js +1 -1
  116. package/dist/components/Employee/EmployeeList/shared/useEmployeeList.js.map +1 -1
  117. package/dist/components/Employee/FederalTaxes/shared/FederalTaxesView.js +1 -1
  118. package/dist/components/Employee/HomeAddress/management/HomeAddressEditForm.js +19 -17
  119. package/dist/components/Employee/HomeAddress/management/HomeAddressEditForm.js.map +1 -1
  120. package/dist/components/Employee/HomeAddress/management/HomeAddressView.js +80 -79
  121. package/dist/components/Employee/HomeAddress/management/HomeAddressView.js.map +1 -1
  122. package/dist/components/Employee/PaymentMethod/management/PaymentMethodBankForm.js +4 -4
  123. package/dist/components/Employee/PaymentMethod/onboarding/BankForm.js +4 -4
  124. package/dist/components/Employee/Terminations/TerminateEmployee/TerminateEmployee.js +40 -39
  125. package/dist/components/Employee/Terminations/TerminateEmployee/TerminateEmployee.js.map +1 -1
  126. package/dist/components/Employee/Terminations/TerminateEmployee/TerminateEmployeePresentation.js +34 -33
  127. package/dist/components/Employee/Terminations/TerminateEmployee/TerminateEmployeePresentation.js.map +1 -1
  128. package/dist/components/Employee/Terminations/TerminationSummary/TerminationSummary.js +43 -41
  129. package/dist/components/Employee/Terminations/TerminationSummary/TerminationSummary.js.map +1 -1
  130. package/dist/components/Employee/Terminations/TerminationSummary/TerminationSummaryPresentation.js +22 -21
  131. package/dist/components/Employee/Terminations/TerminationSummary/TerminationSummaryPresentation.js.map +1 -1
  132. package/dist/components/Employee/WorkAddress/management/WorkAddressEditForm.js +19 -17
  133. package/dist/components/Employee/WorkAddress/management/WorkAddressEditForm.js.map +1 -1
  134. package/dist/components/Employee/WorkAddress/management/WorkAddressView.js +120 -116
  135. package/dist/components/Employee/WorkAddress/management/WorkAddressView.js.map +1 -1
  136. package/dist/components/Flow/Flow.js +1 -1
  137. package/dist/components/InformationRequests/InformationRequestList/InformationRequestList.js +29 -29
  138. package/dist/components/InformationRequests/InformationRequestList/InformationRequestList.js.map +1 -1
  139. package/dist/components/Payroll/ConfirmWireDetails/ConfirmWireDetails.js +37 -36
  140. package/dist/components/Payroll/ConfirmWireDetails/ConfirmWireDetails.js.map +1 -1
  141. package/dist/components/Payroll/ConfirmWireDetails/ConfirmWireDetailsBanner/ConfirmWireDetailsBanner.js +37 -36
  142. package/dist/components/Payroll/ConfirmWireDetails/ConfirmWireDetailsBanner/ConfirmWireDetailsBanner.js.map +1 -1
  143. package/dist/components/Payroll/Dismissal/DismissalPayPeriodSelection/DismissalPayPeriodSelection.js +35 -28
  144. package/dist/components/Payroll/Dismissal/DismissalPayPeriodSelection/DismissalPayPeriodSelection.js.map +1 -1
  145. package/dist/components/Payroll/Dismissal/DismissalPayPeriodSelection/DismissalPayPeriodSelectionPresentation.js +27 -26
  146. package/dist/components/Payroll/Dismissal/DismissalPayPeriodSelection/DismissalPayPeriodSelectionPresentation.js.map +1 -1
  147. package/dist/components/Payroll/GrossUpModal/GrossUpModal.js +2 -3
  148. package/dist/components/Payroll/GrossUpModal/GrossUpModal.js.map +1 -1
  149. package/dist/components/Payroll/OffCycleCreation/OffCycleCreation.js +52 -51
  150. package/dist/components/Payroll/OffCycleCreation/OffCycleCreation.js.map +1 -1
  151. package/dist/components/Payroll/OffCycleCreation/OffCycleCreationPresentation.js +34 -33
  152. package/dist/components/Payroll/OffCycleCreation/OffCycleCreationPresentation.js.map +1 -1
  153. package/dist/components/Payroll/OffCycleDeductionsSetting/OffCycleDeductionsSetting.js +23 -21
  154. package/dist/components/Payroll/OffCycleDeductionsSetting/OffCycleDeductionsSetting.js.map +1 -1
  155. package/dist/components/Payroll/OffCycleReasonSelection/OffCycleReasonSelection.js +26 -19
  156. package/dist/components/Payroll/OffCycleReasonSelection/OffCycleReasonSelection.js.map +1 -1
  157. package/dist/components/Payroll/OffCycleReasonSelection/OffCycleReasonSelectionPresentation.js +14 -12
  158. package/dist/components/Payroll/OffCycleReasonSelection/OffCycleReasonSelectionPresentation.js.map +1 -1
  159. package/dist/components/Payroll/PayrollConfiguration/PayrollConfiguration.js +112 -109
  160. package/dist/components/Payroll/PayrollConfiguration/PayrollConfiguration.js.map +1 -1
  161. package/dist/components/Payroll/PayrollConfiguration/PayrollConfigurationPresentation.js +67 -65
  162. package/dist/components/Payroll/PayrollConfiguration/PayrollConfigurationPresentation.js.map +1 -1
  163. package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployee.js +43 -41
  164. package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployee.js.map +1 -1
  165. package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployeePresentation.js +225 -223
  166. package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployeePresentation.js.map +1 -1
  167. package/dist/components/Payroll/PayrollEditEmployee/shared/usePayrollEditEmployeeForm/fields.js +78 -75
  168. package/dist/components/Payroll/PayrollEditEmployee/shared/usePayrollEditEmployeeForm/fields.js.map +1 -1
  169. package/dist/components/Payroll/PayrollEditEmployee/shared/usePayrollEditEmployeeForm/payrollEditEmployeeHelpers.js +27 -27
  170. package/dist/components/Payroll/PayrollEditEmployee/shared/usePayrollEditEmployeeForm/payrollEditEmployeeHelpers.js.map +1 -1
  171. package/dist/components/Payroll/PayrollEditEmployee/shared/usePayrollEditEmployeeForm/payrollEditEmployeeSchema.js +19 -19
  172. package/dist/components/Payroll/PayrollEditEmployee/shared/usePayrollEditEmployeeForm/payrollEditEmployeeSchema.js.map +1 -1
  173. package/dist/components/Payroll/PayrollEditEmployee/shared/usePayrollEditEmployeeForm/usePayrollEditEmployeeForm.js +51 -48
  174. package/dist/components/Payroll/PayrollEditEmployee/shared/usePayrollEditEmployeeForm/usePayrollEditEmployeeForm.js.map +1 -1
  175. package/dist/components/Payroll/PayrollHistory/PayrollHistory.js +58 -48
  176. package/dist/components/Payroll/PayrollHistory/PayrollHistory.js.map +1 -1
  177. package/dist/components/Payroll/PayrollHistory/PayrollHistoryPresentation.js +58 -57
  178. package/dist/components/Payroll/PayrollHistory/PayrollHistoryPresentation.js.map +1 -1
  179. package/dist/components/Payroll/PayrollLanding/PayrollLandingFlowComponents.js +83 -69
  180. package/dist/components/Payroll/PayrollLanding/PayrollLandingFlowComponents.js.map +1 -1
  181. package/dist/components/Payroll/PayrollList/PayrollList.js +62 -60
  182. package/dist/components/Payroll/PayrollList/PayrollList.js.map +1 -1
  183. package/dist/components/Payroll/PayrollList/PayrollListPresentation.js +119 -117
  184. package/dist/components/Payroll/PayrollList/PayrollListPresentation.js.map +1 -1
  185. package/dist/components/Payroll/PayrollOverview/PayrollOverview.js +101 -99
  186. package/dist/components/Payroll/PayrollOverview/PayrollOverview.js.map +1 -1
  187. package/dist/components/Payroll/PayrollOverview/PayrollOverviewPresentation.js +120 -110
  188. package/dist/components/Payroll/PayrollOverview/PayrollOverviewPresentation.js.map +1 -1
  189. package/dist/components/Payroll/PayrollReceipts/PayrollReceipts.js +20 -14
  190. package/dist/components/Payroll/PayrollReceipts/PayrollReceipts.js.map +1 -1
  191. package/dist/components/Payroll/PayrollReceipts/PayrollReceiptsPresentation.js +39 -38
  192. package/dist/components/Payroll/PayrollReceipts/PayrollReceiptsPresentation.js.map +1 -1
  193. package/dist/components/Payroll/PrintChecks/PrintChecksBanner/PrintChecksBanner.js +24 -17
  194. package/dist/components/Payroll/PrintChecks/PrintChecksBanner/PrintChecksBanner.js.map +1 -1
  195. package/dist/components/Payroll/PrintChecks/PrintChecksFailure/PrintChecksFailure.js +17 -17
  196. package/dist/components/Payroll/PrintChecks/PrintChecksFailure/PrintChecksFailure.js.map +1 -1
  197. package/dist/components/Payroll/PrintChecks/PrintChecksForm/PrintChecksForm.js +88 -80
  198. package/dist/components/Payroll/PrintChecks/PrintChecksForm/PrintChecksForm.js.map +1 -1
  199. package/dist/components/Payroll/PrintChecks/PrintChecksSummary/PrintChecksSummary.js +26 -26
  200. package/dist/components/Payroll/PrintChecks/PrintChecksSummary/PrintChecksSummary.js.map +1 -1
  201. package/dist/components/Payroll/RecoveryCases/RecoveryCasesResubmit/RecoveryCasesResubmit.js +32 -32
  202. package/dist/components/Payroll/RecoveryCases/RecoveryCasesResubmit/RecoveryCasesResubmit.js.map +1 -1
  203. package/dist/components/Payroll/TransitionCreation/TransitionCreation.js +50 -48
  204. package/dist/components/Payroll/TransitionCreation/TransitionCreation.js.map +1 -1
  205. package/dist/components/Payroll/TransitionCreation/TransitionCreationPresentation.js +34 -33
  206. package/dist/components/Payroll/TransitionCreation/TransitionCreationPresentation.js.map +1 -1
  207. package/dist/components/Payroll/TransitionCreation/TransitionCreationTypes.js.map +1 -1
  208. package/dist/components/Payroll/TransitionPayrollAlert/TransitionPayrollAlert.js +28 -24
  209. package/dist/components/Payroll/TransitionPayrollAlert/TransitionPayrollAlert.js.map +1 -1
  210. package/dist/components/Payroll/UNSTABLE_PayrollEditEmployee/UNSTABLE_PayrollEditEmployee.js +255 -228
  211. package/dist/components/Payroll/UNSTABLE_PayrollEditEmployee/UNSTABLE_PayrollEditEmployee.js.map +1 -1
  212. package/dist/components/Payroll/UNSTABLE_PayrollEditEmployee/UNSTABLE_PayrollEditEmployee.module.scss.js +8 -4
  213. package/dist/components/Payroll/UNSTABLE_PayrollEditEmployee/UNSTABLE_PayrollEditEmployee.module.scss.js.map +1 -1
  214. package/dist/components/Payroll/usePreparedPayrollData.js +4 -3
  215. package/dist/components/Payroll/usePreparedPayrollData.js.map +1 -1
  216. package/dist/components/TimeOff/AddEmployeesHoliday/AddEmployeesHoliday.js +5 -5
  217. package/dist/components/TimeOff/AddEmployeesHoliday/AddEmployeesHoliday.js.map +1 -1
  218. package/dist/components/TimeOff/AddEmployeesToPolicy/AddEmployeesToPolicy.js +8 -7
  219. package/dist/components/TimeOff/AddEmployeesToPolicy/AddEmployeesToPolicy.js.map +1 -1
  220. package/dist/components/TimeOff/HolidayPolicyDetail/HolidayPolicyDetail.js +51 -50
  221. package/dist/components/TimeOff/HolidayPolicyDetail/HolidayPolicyDetail.js.map +1 -1
  222. package/dist/components/TimeOff/HolidayPolicyDetail/HolidayPolicyDetailPresentation.js +20 -18
  223. package/dist/components/TimeOff/HolidayPolicyDetail/HolidayPolicyDetailPresentation.js.map +1 -1
  224. package/dist/components/TimeOff/HolidaySelectionForm/HolidaySelectionForm.js +51 -49
  225. package/dist/components/TimeOff/HolidaySelectionForm/HolidaySelectionForm.js.map +1 -1
  226. package/dist/components/TimeOff/HolidaySelectionForm/HolidaySelectionFormPresentation.js +20 -20
  227. package/dist/components/TimeOff/HolidaySelectionForm/HolidaySelectionFormPresentation.js.map +1 -1
  228. package/dist/components/TimeOff/PolicyList/PolicyList.js +50 -49
  229. package/dist/components/TimeOff/PolicyList/PolicyList.js.map +1 -1
  230. package/dist/components/TimeOff/PolicyList/PolicyListPresentation.js +34 -33
  231. package/dist/components/TimeOff/PolicyList/PolicyListPresentation.js.map +1 -1
  232. package/dist/components/TimeOff/PolicySettings/PolicySettings.js +46 -45
  233. package/dist/components/TimeOff/PolicySettings/PolicySettings.js.map +1 -1
  234. package/dist/components/TimeOff/PolicySettings/PolicySettingsPresentation.js +152 -143
  235. package/dist/components/TimeOff/PolicySettings/PolicySettingsPresentation.js.map +1 -1
  236. package/dist/components/TimeOff/PolicyTypeSelector/PolicyTypeSelector.js +14 -13
  237. package/dist/components/TimeOff/PolicyTypeSelector/PolicyTypeSelector.js.map +1 -1
  238. package/dist/components/TimeOff/PolicyTypeSelector/PolicyTypeSelectorPresentation.js +44 -35
  239. package/dist/components/TimeOff/PolicyTypeSelector/PolicyTypeSelectorPresentation.js.map +1 -1
  240. package/dist/components/TimeOff/TimeOffManagement/PolicyConfigurationForm/PolicyConfigurationForm.js +88 -71
  241. package/dist/components/TimeOff/TimeOffManagement/PolicyConfigurationForm/PolicyConfigurationForm.js.map +1 -1
  242. package/dist/components/TimeOff/TimeOffManagement/PolicyConfigurationForm/PolicyConfigurationFormPresentation.js +164 -155
  243. package/dist/components/TimeOff/TimeOffManagement/PolicyConfigurationForm/PolicyConfigurationFormPresentation.js.map +1 -1
  244. package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/SelectEmployeesHoliday.js +57 -55
  245. package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/SelectEmployeesHoliday.js.map +1 -1
  246. package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/SelectEmployeesPresentation.js +25 -24
  247. package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/SelectEmployeesPresentation.js.map +1 -1
  248. package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/SelectEmployeesTimeOff.js +94 -92
  249. package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/SelectEmployeesTimeOff.js.map +1 -1
  250. package/dist/components/TimeOff/TimeOffPolicyDetail/TimeOffPolicyDetail.js +156 -155
  251. package/dist/components/TimeOff/TimeOffPolicyDetail/TimeOffPolicyDetail.js.map +1 -1
  252. package/dist/components/TimeOff/TimeOffPolicyDetail/TimeOffPolicyDetailPresentation.js +21 -19
  253. package/dist/components/TimeOff/TimeOffPolicyDetail/TimeOffPolicyDetailPresentation.js.map +1 -1
  254. package/dist/components/TimeOff/shared/PolicyDetailLayout/PolicyDetailLayout.js +28 -26
  255. package/dist/components/TimeOff/shared/PolicyDetailLayout/PolicyDetailLayout.js.map +1 -1
  256. package/dist/contexts/ComponentAdapter/useComponentContext.js.map +1 -1
  257. package/dist/contexts/UnstableFeaturesProvider/useUnstableFeature.js.map +1 -1
  258. package/dist/i18n/en/Company.PaySchedule.json.js +22 -20
  259. package/dist/i18n/en/Company.PaySchedule.json.js.map +1 -1
  260. package/dist/i18n/en/Payroll.UNSTABLE_PayrollEditEmployee.json.js +62 -58
  261. package/dist/i18n/en/Payroll.UNSTABLE_PayrollEditEmployee.json.js.map +1 -1
  262. package/dist/package.json.js +1 -1
  263. package/dist/src/components/Common/FieldCaption/FieldCaption.d.ts +2 -16
  264. package/dist/src/components/Common/FieldCaption/FieldCaptionTypes.d.ts +22 -0
  265. package/dist/src/components/Common/FieldCaption/index.d.ts +1 -0
  266. package/dist/src/components/Common/Flex/Flex.d.ts +3 -1
  267. package/dist/src/components/Company/PaySchedule/PaySchedule.d.ts +10 -2
  268. package/dist/src/components/Company/PaySchedule/PayScheduleComponents.d.ts +1 -0
  269. package/dist/src/components/Company/PaySchedule/shared/usePayScheduleForm/fields.d.ts +9 -1
  270. package/dist/src/components/Company/PaySchedule/shared/usePayScheduleForm/index.d.ts +2 -2
  271. package/dist/src/components/Company/PaySchedule/shared/usePayScheduleForm/payScheduleSchema.d.ts +21 -5
  272. package/dist/src/components/Company/PaySchedule/shared/usePayScheduleForm/usePayScheduleForm.d.ts +21 -3
  273. package/dist/src/components/Contractor/ContractorList/management/ManagementContractorListView.d.ts +3 -1
  274. package/dist/src/components/Contractor/ContractorList/onboarding/ContractorListView.d.ts +3 -1
  275. package/dist/src/components/Contractor/Payments/CreatePayment/CreatePaymentPresentation.d.ts +3 -1
  276. package/dist/src/components/Contractor/Payments/CreatePayment/PreviewPresentation.d.ts +3 -1
  277. package/dist/src/components/Contractor/Payments/PaymentHistory/PaymentHistoryPresentation.d.ts +3 -1
  278. package/dist/src/components/Contractor/Payments/PaymentStatement/PaymentStatementPresentation.d.ts +3 -1
  279. package/dist/src/components/Contractor/Payments/PaymentsList/PaymentsListPresentation.d.ts +3 -1
  280. package/dist/src/components/Contractor/Submit/SubmitDone.d.ts +3 -1
  281. package/dist/src/components/Employee/Compensation/management/CompensationEditForm/CompensationEditForm.d.ts +1 -1
  282. package/dist/src/components/Employee/Documents/onboarding/DocumentSigner/EmploymentEligibility/EmploymentEligibilityPresentation.d.ts +3 -1
  283. package/dist/src/components/Employee/Documents/onboarding/EmployeeDocuments/EmployeeDocumentsPresentation.d.ts +3 -1
  284. package/dist/src/components/Employee/EmployeeList/management/ManagementEmployeeListView.d.ts +3 -1
  285. package/dist/src/components/Employee/EmployeeList/onboarding/EmployeeListView.d.ts +3 -1
  286. package/dist/src/components/Employee/EmployeeList/shared/useEmployeeList.d.ts +4 -0
  287. package/dist/src/components/Employee/HomeAddress/management/HomeAddressView.d.ts +3 -1
  288. package/dist/src/components/Employee/Terminations/TerminateEmployee/TerminateEmployeePresentation.d.ts +3 -1
  289. package/dist/src/components/Employee/Terminations/TerminationSummary/TerminationSummaryPresentation.d.ts +3 -1
  290. package/dist/src/components/Employee/WorkAddress/management/WorkAddressView.d.ts +3 -1
  291. package/dist/src/components/Payroll/Dismissal/DismissalPayPeriodSelection/DismissalPayPeriodSelectionPresentation.d.ts +3 -1
  292. package/dist/src/components/Payroll/OffCycleCreation/OffCycleCreationPresentation.d.ts +1 -1
  293. package/dist/src/components/Payroll/OffCycleCreation/OffCycleCreationTypes.d.ts +2 -0
  294. package/dist/src/components/Payroll/OffCycleReasonSelection/OffCycleReasonSelectionPresentation.d.ts +3 -1
  295. package/dist/src/components/Payroll/PayrollConfiguration/PayrollConfigurationPresentation.d.ts +3 -1
  296. package/dist/src/components/Payroll/PayrollEditEmployee/PayrollEditEmployeePresentation.d.ts +3 -1
  297. package/dist/src/components/Payroll/PayrollEditEmployee/shared/usePayrollEditEmployeeForm/fields.d.ts +9 -9
  298. package/dist/src/components/Payroll/PayrollEditEmployee/shared/usePayrollEditEmployeeForm/payrollEditEmployeeHelpers.d.ts +2 -2
  299. package/dist/src/components/Payroll/PayrollEditEmployee/shared/usePayrollEditEmployeeForm/payrollEditEmployeeSchema.d.ts +4 -4
  300. package/dist/src/components/Payroll/PayrollHistory/PayrollHistoryPresentation.d.ts +3 -1
  301. package/dist/src/components/Payroll/PayrollList/PayrollListPresentation.d.ts +3 -1
  302. package/dist/src/components/Payroll/PayrollOverview/PayrollOverviewPresentation.d.ts +2 -1
  303. package/dist/src/components/Payroll/PayrollReceipts/PayrollReceiptsPresentation.d.ts +2 -1
  304. package/dist/src/components/Payroll/TransitionCreation/TransitionCreationPresentation.d.ts +1 -1
  305. package/dist/src/components/Payroll/TransitionCreation/TransitionCreationTypes.d.ts +2 -0
  306. package/dist/src/components/Payroll/TransitionPayrollAlert/TransitionPayrollAlert.d.ts +3 -1
  307. package/dist/src/components/Payroll/UNSTABLE_PayrollEditEmployee/UNSTABLE_PayrollEditEmployee.d.ts +1 -1
  308. package/dist/src/components/TimeOff/AddEmployeesHoliday/AddEmployeesHoliday.d.ts +1 -1
  309. package/dist/src/components/TimeOff/AddEmployeesToPolicy/AddEmployeesToPolicy.d.ts +1 -1
  310. package/dist/src/components/TimeOff/HolidayPolicyDetail/HolidayPolicyDetailPresentation.d.ts +1 -1
  311. package/dist/src/components/TimeOff/HolidayPolicyDetail/HolidayPolicyDetailTypes.d.ts +2 -0
  312. package/dist/src/components/TimeOff/HolidaySelectionForm/HolidaySelectionFormTypes.d.ts +2 -0
  313. package/dist/src/components/TimeOff/PolicyList/PolicyListPresentation.d.ts +1 -1
  314. package/dist/src/components/TimeOff/PolicyList/PolicyListTypes.d.ts +2 -0
  315. package/dist/src/components/TimeOff/PolicySettings/PolicySettingsPresentation.d.ts +1 -1
  316. package/dist/src/components/TimeOff/PolicySettings/PolicySettingsTypes.d.ts +2 -0
  317. package/dist/src/components/TimeOff/PolicyTypeSelector/PolicyTypeSelectorPresentation.d.ts +1 -1
  318. package/dist/src/components/TimeOff/PolicyTypeSelector/PolicyTypeSelectorTypes.d.ts +2 -0
  319. package/dist/src/components/TimeOff/TimeOffManagement/PolicyConfigurationForm/PolicyConfigurationFormPresentation.d.ts +1 -1
  320. package/dist/src/components/TimeOff/TimeOffManagement/PolicyConfigurationForm/PolicyConfigurationFormTypes.d.ts +2 -0
  321. package/dist/src/components/TimeOff/TimeOffManagement/SelectEmployees/SelectEmployeesHoliday.d.ts +2 -0
  322. package/dist/src/components/TimeOff/TimeOffManagement/SelectEmployees/SelectEmployeesPresentation.d.ts +1 -1
  323. package/dist/src/components/TimeOff/TimeOffManagement/SelectEmployees/SelectEmployeesPresentationTypes.d.ts +2 -0
  324. package/dist/src/components/TimeOff/TimeOffManagement/SelectEmployees/SelectEmployeesTimeOff.d.ts +2 -0
  325. package/dist/src/components/TimeOff/TimeOffPolicyDetail/TimeOffPolicyDetailPresentation.d.ts +1 -1
  326. package/dist/src/components/TimeOff/TimeOffPolicyDetail/TimeOffPolicyDetailTypes.d.ts +3 -0
  327. package/dist/src/components/TimeOff/shared/PolicyDetailLayout/PolicyDetailLayout.d.ts +1 -1
  328. package/dist/src/components/TimeOff/shared/PolicyDetailLayout/PolicyDetailLayoutTypes.d.ts +2 -0
  329. package/dist/src/contexts/ComponentAdapter/componentAdapterTypes.d.ts +1 -0
  330. package/dist/src/contexts/ComponentAdapter/useComponentContext.d.ts +4 -1
  331. package/dist/src/contexts/UnstableFeaturesProvider/useUnstableFeature.d.ts +4 -1
  332. package/dist/src/i18n/types.d.ts +28 -2
  333. package/dist/src/index.d.ts +1 -1
  334. package/dist/src/models/external.d.ts +1 -0
  335. package/dist/style.css +1 -1
  336. package/package.json +16 -15
@@ -1,188 +1,204 @@
1
- import { useMemo as te, useEffect as ae } from "react";
2
- import { useForm as ne, useWatch as i } from "react-hook-form";
3
- import { zodResolver as re } from "@hookform/resolvers/zod";
4
- import { usePaySchedulesGet as ce } from "@gusto/embedded-api/react-query/paySchedulesGet";
5
- import { usePaySchedulesGetPreview as ie } from "@gusto/embedded-api/react-query/paySchedulesGetPreview";
6
- import { usePaySchedulesCreateMutation as se } from "@gusto/embedded-api/react-query/paySchedulesCreate";
7
- import { usePaySchedulesUpdateMutation as de } from "@gusto/embedded-api/react-query/paySchedulesUpdate";
8
- import { usePaymentConfigsGet as ue } from "@gusto/embedded-api/react-query/paymentConfigsGet";
1
+ import { useMemo as ne, useEffect as ce } from "react";
2
+ import { useForm as ie, useWatch as i } from "react-hook-form";
3
+ import { zodResolver as se } from "@hookform/resolvers/zod";
4
+ import { WorkweekStartDay as de } from "@gusto/embedded-api/models/components/payschedulecreaterequest";
5
+ import { usePaySchedulesGet as ue } from "@gusto/embedded-api/react-query/paySchedulesGet";
6
+ import { usePaySchedulesGetPreview as me } from "@gusto/embedded-api/react-query/paySchedulesGetPreview";
7
+ import { usePaySchedulesCreateMutation as ye } from "@gusto/embedded-api/react-query/paySchedulesCreate";
8
+ import { usePaySchedulesUpdateMutation as le } from "@gusto/embedded-api/react-query/paySchedulesUpdate";
9
+ import { usePaymentConfigsGet as he } from "@gusto/embedded-api/react-query/paymentConfigsGet";
9
10
  import { RFCDate as s } from "@gusto/embedded-api/types/rfcdate";
10
- import { createPayScheduleSchema as me } from "./payScheduleSchema.js";
11
- import { Day2Field as ye, Day1Field as he, AnchorEndOfPayPeriodField as le, AnchorPayDateField as Pe, CustomTwicePerMonthField as fe, FrequencyField as we, CustomNameField as pe } from "./fields.js";
12
- import { useDeriveFieldsMetadata as Se } from "../../../../../partner-hook-utils/form/useDeriveFieldsMetadata.js";
13
- import { useHookFormInternals as Ee } from "../../../../../partner-hook-utils/form/useHookFormInternals.js";
14
- import { createGetFormSubmissionValues as ve } from "../../../../../partner-hook-utils/form/getFormSubmissionValues.js";
15
- import { withOptions as g } from "../../../../../partner-hook-utils/form/withOptions.js";
16
- import { composeErrorHandler as De } from "../../../../../partner-hook-utils/composeErrorHandler.js";
17
- import { useBaseSubmit as Me } from "../../../../Base/useBaseSubmit.js";
18
- import { parsePaymentSpeedDays as Te } from "../../../../../hooks/useCompanyPaymentSpeed.js";
19
- import { formatDateToStringDate as Ne } from "../../../../../helpers/dateFormatting.js";
20
- const C = [
11
+ import { createPayScheduleSchema as Pe } from "./payScheduleSchema.js";
12
+ import { WorkweekStartDayField as fe, Day2Field as we, Day1Field as Se, AnchorEndOfPayPeriodField as Ee, AnchorPayDateField as pe, CustomTwicePerMonthField as De, FrequencyField as ve, CustomNameField as ke } from "./fields.js";
13
+ import { useDeriveFieldsMetadata as Te } from "../../../../../partner-hook-utils/form/useDeriveFieldsMetadata.js";
14
+ import { useHookFormInternals as Oe } from "../../../../../partner-hook-utils/form/useHookFormInternals.js";
15
+ import { createGetFormSubmissionValues as Fe } from "../../../../../partner-hook-utils/form/getFormSubmissionValues.js";
16
+ import { withOptions as S } from "../../../../../partner-hook-utils/form/withOptions.js";
17
+ import { withFlags as Me } from "../../../../../partner-hook-utils/form/withFlags.js";
18
+ import { composeErrorHandler as Ne } from "../../../../../partner-hook-utils/composeErrorHandler.js";
19
+ import { useBaseSubmit as ge } from "../../../../Base/useBaseSubmit.js";
20
+ import { parsePaymentSpeedDays as qe } from "../../../../../hooks/useCompanyPaymentSpeed.js";
21
+ import { formatDateToStringDate as be } from "../../../../../helpers/dateFormatting.js";
22
+ import { useUnstableFeature as Ce } from "../../../../../contexts/UnstableFeaturesProvider/useUnstableFeature.js";
23
+ const b = [
21
24
  { value: "Every week", label: "Every week" },
22
25
  { value: "Every other week", label: "Every other week" },
23
26
  { value: "Twice per month", label: "Twice per month" },
24
27
  { value: "Monthly", label: "Monthly" }
25
- ], Oe = C.map((e) => e.value), b = [
28
+ ], Re = b.map((e) => e.value), C = [
26
29
  { value: "1st15th", label: "15th and Last day of the month" },
27
30
  { value: "custom", label: "Custom" }
28
- ], Fe = b.map((e) => e.value);
31
+ ], Ae = C.map((e) => e.value), R = Object.values(de), _e = R.map((e) => ({ value: e, label: e }));
29
32
  function q(e) {
30
- return e instanceof Date ? Ne(e) || "" : typeof e == "string" && e ? e : "";
33
+ return e instanceof Date ? be(e) || "" : typeof e == "string" && e ? e : "";
31
34
  }
32
- function ge(e, r, d) {
33
- return e !== "Twice per month" ? "" : r === 15 && d === 31 ? "1st15th" : r != null && d != null ? "custom" : "";
35
+ function We(e, n, d) {
36
+ return e !== "Twice per month" ? "" : n === 15 && d === 31 ? "1st15th" : n != null && d != null ? "custom" : "";
34
37
  }
35
- function qe(e) {
38
+ function Le(e, n) {
36
39
  return {
37
40
  customName: e.customName,
38
- frequency: g(
41
+ frequency: S(
39
42
  e.frequency,
40
- C,
41
- Oe
43
+ b,
44
+ Re
42
45
  ),
43
- customTwicePerMonth: g(
46
+ customTwicePerMonth: S(
44
47
  e.customTwicePerMonth,
45
- b,
46
- Fe
48
+ C,
49
+ Ae
47
50
  ),
48
51
  anchorPayDate: e.anchorPayDate,
49
52
  anchorEndOfPayPeriod: e.anchorEndOfPayPeriod,
50
53
  day1: e.day1,
51
- day2: e.day2
54
+ day2: e.day2,
55
+ workweekStartDay: S(
56
+ Me(e.workweekStartDay, { isDisabled: n }),
57
+ _e,
58
+ R
59
+ )
52
60
  };
53
61
  }
54
- function Xe({
62
+ function st({
55
63
  companyId: e,
56
- payScheduleId: r,
64
+ payScheduleId: n,
57
65
  optionalFieldsToRequire: d,
58
- defaultValues: n,
66
+ defaultValues: r,
59
67
  validationMode: A = "onSubmit",
60
- shouldFocusError: R = !0
68
+ shouldFocusError: _ = !0,
69
+ disableWorkweekStartDayEditing: W = !1
61
70
  }) {
62
- const y = ce(
63
- { companyId: e, payScheduleId: r ?? "" },
64
- { enabled: !!r }
65
- ), u = ue({ companyUuid: e }), o = y.data?.payScheduleShow ?? null, L = u.data?.paymentConfigs?.paymentSpeed, k = Te(L), h = !o, w = h ? "create" : "update", [p, V] = te(
66
- () => me({ mode: w, optionalFieldsToRequire: d }),
67
- [w, d]
68
- ), S = {
69
- customName: o?.customName ?? n?.customName ?? "",
70
- frequency: o?.frequency ?? n?.frequency ?? "Every week",
71
- customTwicePerMonth: ge(
72
- o?.frequency ?? n?.frequency,
73
- o?.day1 ?? n?.day1 ?? void 0,
74
- o?.day2 ?? n?.day2 ?? void 0
71
+ const y = Ce("payrollRegularRateOfPay"), l = ue(
72
+ { companyId: e, payScheduleId: n ?? "" },
73
+ { enabled: !!n }
74
+ ), u = he({ companyUuid: e }), t = l.data?.payScheduleShow ?? null, L = u.data?.paymentConfigs?.paymentSpeed, V = qe(L), h = !t, E = h ? "create" : "update", [p, H] = ne(
75
+ () => Pe({ mode: E, optionalFieldsToRequire: d }),
76
+ [E, d]
77
+ ), D = {
78
+ customName: t?.customName ?? r?.customName ?? "",
79
+ frequency: t?.frequency ?? r?.frequency ?? "Every week",
80
+ customTwicePerMonth: We(
81
+ t?.frequency ?? r?.frequency,
82
+ t?.day1 ?? r?.day1 ?? void 0,
83
+ t?.day2 ?? r?.day2 ?? void 0
75
84
  ),
76
- anchorPayDate: o?.anchorPayDate?.toString() ?? n?.anchorPayDate ?? null,
77
- anchorEndOfPayPeriod: o?.anchorEndOfPayPeriod?.toString() ?? n?.anchorEndOfPayPeriod ?? null,
78
- day1: o?.day1 ?? n?.day1 ?? NaN,
79
- day2: o?.day2 ?? n?.day2 ?? NaN
80
- }, t = ne({
81
- resolver: re(p),
85
+ anchorPayDate: t?.anchorPayDate?.toString() ?? r?.anchorPayDate ?? null,
86
+ anchorEndOfPayPeriod: t?.anchorEndOfPayPeriod?.toString() ?? r?.anchorEndOfPayPeriod ?? null,
87
+ day1: t?.day1 ?? r?.day1 ?? NaN,
88
+ day2: t?.day2 ?? r?.day2 ?? NaN,
89
+ workweekStartDay: t?.workweekStartDay ?? r?.workweekStartDay ?? null
90
+ }, o = ie({
91
+ resolver: se(p),
82
92
  mode: A,
83
- shouldFocusError: R,
84
- defaultValues: S,
85
- values: S,
93
+ shouldFocusError: _,
94
+ defaultValues: D,
95
+ values: D,
86
96
  resetOptions: { keepDirtyValues: !0 }
87
- }), c = i({ control: t.control, name: "frequency" }), m = i({
88
- control: t.control,
97
+ }), c = i({ control: o.control, name: "frequency" }), m = i({
98
+ control: o.control,
89
99
  name: "customTwicePerMonth"
90
- }), _ = i({ control: t.control, name: "anchorPayDate" }), H = i({
91
- control: t.control,
100
+ }), U = i({ control: o.control, name: "anchorPayDate" }), I = i({
101
+ control: o.control,
92
102
  name: "anchorEndOfPayPeriod"
93
- }), Q = i({ control: t.control, name: "day1" }), U = i({ control: t.control, name: "day2" });
94
- ae(() => {
95
- c === "Twice per month" && m === "1st15th" && (t.setValue("day1", 15), t.setValue("day2", 31));
96
- }, [c, m, t.setValue]);
97
- const l = q(_), P = q(H), E = !!(l && P), v = ie(
103
+ }), Q = i({ control: o.control, name: "day1" }), G = i({ control: o.control, name: "day2" });
104
+ ce(() => {
105
+ c === "Twice per month" && m === "1st15th" && (o.setValue("day1", 15), o.setValue("day2", 31));
106
+ }, [c, m, o.setValue]);
107
+ const P = q(U), f = q(I), v = !!(P && f), k = me(
98
108
  {
99
109
  companyId: e,
100
110
  frequency: c,
101
- ...l && { anchorPayDate: new s(l) },
102
- ...P && {
103
- anchorEndOfPayPeriod: new s(P)
111
+ ...P && { anchorPayDate: new s(P) },
112
+ ...f && {
113
+ anchorEndOfPayPeriod: new s(f)
104
114
  },
105
115
  day1: Q || void 0,
106
- day2: U || void 0
116
+ day2: G || void 0
107
117
  },
108
- { enabled: E }
109
- ), G = v.data?.paySchedulePreview?.payPeriods, W = v.isLoading && E, D = se(), M = de(), I = D.isPending || M.isPending, {
110
- baseSubmitHandler: B,
111
- error: Y,
112
- setError: x
113
- } = Me("PayScheduleForm"), T = De(r ? [y, u] : [u], { submitError: Y, setSubmitError: x }), z = c === "Twice per month", j = c === "Monthly" || c === "Twice per month" && m === "custom", J = c === "Twice per month" && m === "custom", K = Se(V, t.control), X = qe(K), Z = async () => {
114
- let f;
115
- return await new Promise((N) => {
116
- t.handleSubmit(
117
- async (ee) => {
118
- await B(ee, async (a) => {
119
- const O = a.anchorPayDate ?? "", F = a.anchorEndOfPayPeriod ?? "";
120
- h ? f = { mode: "create", data: (await D.mutateAsync({
118
+ { enabled: v }
119
+ ), K = k.data?.paySchedulePreview?.payPeriods, Y = k.isLoading && v, T = ye(), O = le(), B = T.isPending || O.isPending, {
120
+ baseSubmitHandler: j,
121
+ error: x,
122
+ setError: z
123
+ } = ge("PayScheduleForm"), F = Ne(n ? [l, u] : [u], { submitError: x, setSubmitError: z }), J = c === "Twice per month", X = c === "Monthly" || c === "Twice per month" && m === "custom", Z = c === "Twice per month" && m === "custom", $ = Te(H, o.control), ee = Le(
124
+ $,
125
+ W
126
+ ), te = async () => {
127
+ let w;
128
+ return await new Promise((M) => {
129
+ o.handleSubmit(
130
+ async (ae) => {
131
+ await j(ae, async (a) => {
132
+ const N = a.anchorPayDate ?? "", g = a.anchorEndOfPayPeriod ?? "";
133
+ h ? w = { mode: "create", data: (await T.mutateAsync({
121
134
  request: {
122
135
  companyId: e,
123
136
  payScheduleCreateRequest: {
124
137
  frequency: a.frequency,
125
- anchorPayDate: new s(O),
126
- anchorEndOfPayPeriod: new s(F),
138
+ anchorPayDate: new s(N),
139
+ anchorEndOfPayPeriod: new s(g),
127
140
  customName: a.customName,
128
141
  day1: a.day1 || void 0,
129
- day2: a.day2 || void 0
142
+ day2: a.day2 || void 0,
143
+ workweekStartDay: y ? a.workweekStartDay ?? void 0 : void 0
130
144
  }
131
145
  }
132
- })).payScheduleShow } : f = { mode: "update", data: (await M.mutateAsync({
146
+ })).payScheduleShow } : w = { mode: "update", data: (await O.mutateAsync({
133
147
  request: {
134
- payScheduleId: o.uuid,
148
+ payScheduleId: t.uuid,
135
149
  companyId: e,
136
150
  payScheduleUpdateRequest: {
137
151
  frequency: a.frequency,
138
- anchorPayDate: new s(O),
139
- anchorEndOfPayPeriod: new s(F),
152
+ anchorPayDate: new s(N),
153
+ anchorEndOfPayPeriod: new s(g),
140
154
  customName: a.customName,
141
155
  day1: a.day1 || void 0,
142
156
  day2: a.day2 || void 0,
143
- version: o.version
157
+ workweekStartDay: y ? a.workweekStartDay ?? void 0 : void 0,
158
+ version: t.version
144
159
  }
145
160
  }
146
161
  })).payScheduleShow };
147
- }), N();
162
+ }), M();
148
163
  },
149
164
  () => {
150
- N();
165
+ M();
151
166
  }
152
167
  )();
153
- }), f;
154
- }, $ = Ee(t);
155
- return u.isLoading || (r ? y.isLoading : !1) ? { isLoading: !0, errorHandling: T } : {
168
+ }), w;
169
+ }, oe = Oe(o);
170
+ return u.isLoading || (n ? l.isLoading : !1) ? { isLoading: !0, errorHandling: F } : {
156
171
  isLoading: !1,
157
172
  data: {
158
- paySchedule: o,
159
- payPeriodPreview: G ?? null,
160
- payPreviewLoading: W,
161
- paymentSpeedDays: k
173
+ paySchedule: t,
174
+ payPeriodPreview: K ?? null,
175
+ payPreviewLoading: Y,
176
+ paymentSpeedDays: V
162
177
  },
163
178
  status: {
164
- isPending: I,
179
+ isPending: B,
165
180
  mode: h ? "create" : "update"
166
181
  },
167
- actions: { onSubmit: Z },
168
- errorHandling: T,
182
+ actions: { onSubmit: te },
183
+ errorHandling: F,
169
184
  form: {
170
185
  Fields: {
171
- CustomName: pe,
172
- Frequency: we,
173
- CustomTwicePerMonth: z ? fe : void 0,
174
- AnchorPayDate: Pe,
175
- AnchorEndOfPayPeriod: le,
176
- Day1: j ? he : void 0,
177
- Day2: J ? ye : void 0
186
+ CustomName: ke,
187
+ Frequency: ve,
188
+ CustomTwicePerMonth: J ? De : void 0,
189
+ AnchorPayDate: pe,
190
+ AnchorEndOfPayPeriod: Ee,
191
+ Day1: X ? Se : void 0,
192
+ Day2: Z ? we : void 0,
193
+ WorkweekStartDay: y ? fe : void 0
178
194
  },
179
- fieldsMetadata: X,
180
- hookFormInternals: $,
181
- getFormSubmissionValues: ve(t, p)
195
+ fieldsMetadata: ee,
196
+ hookFormInternals: oe,
197
+ getFormSubmissionValues: Fe(o, p)
182
198
  }
183
199
  };
184
200
  }
185
201
  export {
186
- Xe as usePayScheduleForm
202
+ st as usePayScheduleForm
187
203
  };
188
204
  //# sourceMappingURL=usePayScheduleForm.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"usePayScheduleForm.js","sources":["../../../../../../src/components/Company/PaySchedule/shared/usePayScheduleForm/usePayScheduleForm.tsx"],"sourcesContent":["import { useEffect, useMemo } from 'react'\nimport type { ComponentType } from 'react'\nimport { useForm, useWatch } from 'react-hook-form'\nimport type { UseFormProps } from 'react-hook-form'\nimport { zodResolver } from '@hookform/resolvers/zod'\nimport type { PayScheduleShow } from '@gusto/embedded-api/models/components/payscheduleshow'\nimport type { PaySchedulePreviewPayPeriod } from '@gusto/embedded-api/models/components/payschedulepreviewpayperiod'\nimport { usePaySchedulesGet } from '@gusto/embedded-api/react-query/paySchedulesGet'\nimport { usePaySchedulesGetPreview } from '@gusto/embedded-api/react-query/paySchedulesGetPreview'\nimport { usePaySchedulesCreateMutation } from '@gusto/embedded-api/react-query/paySchedulesCreate'\nimport { usePaySchedulesUpdateMutation } from '@gusto/embedded-api/react-query/paySchedulesUpdate'\nimport { usePaymentConfigsGet } from '@gusto/embedded-api/react-query/paymentConfigsGet'\nimport { RFCDate } from '@gusto/embedded-api/types/rfcdate'\nimport {\n createPayScheduleSchema,\n type PayScheduleOptionalFieldsToRequire,\n type PayScheduleFormData,\n type PayScheduleFormOutputs,\n type PayScheduleFrequency,\n} from './payScheduleSchema'\nimport {\n CustomNameField,\n FrequencyField,\n CustomTwicePerMonthField,\n AnchorPayDateField,\n AnchorEndOfPayPeriodField,\n Day1Field,\n Day2Field,\n} from './fields'\nimport type {\n CustomNameFieldProps,\n FrequencyFieldProps,\n CustomTwicePerMonthFieldProps,\n AnchorPayDateFieldProps,\n AnchorEndOfPayPeriodFieldProps,\n Day1FieldProps,\n Day2FieldProps,\n} from './fields'\nimport { useDeriveFieldsMetadata } from '@/partner-hook-utils/form/useDeriveFieldsMetadata'\nimport { useHookFormInternals } from '@/partner-hook-utils/form/useHookFormInternals'\nimport { createGetFormSubmissionValues } from '@/partner-hook-utils/form/getFormSubmissionValues'\nimport { withOptions } from '@/partner-hook-utils/form/withOptions'\nimport { composeErrorHandler } from '@/partner-hook-utils/composeErrorHandler'\nimport type {\n BaseFormHookReady,\n FieldMetadata,\n FieldsMetadata,\n HookLoadingResult,\n HookSubmitResult,\n} from '@/partner-hook-utils/types'\nimport { useBaseSubmit } from '@/components/Base/useBaseSubmit'\nimport { parsePaymentSpeedDays } from '@/hooks/useCompanyPaymentSpeed'\nimport { formatDateToStringDate } from '@/helpers/dateFormatting'\n\nexport type { PayScheduleOptionalFieldsToRequire } from './payScheduleSchema'\n\n/**\n * Configuration options for {@link usePayScheduleForm}.\n *\n * @remarks\n * Presence or absence of `payScheduleId` selects between update and create mode.\n *\n * @public\n */\nexport interface UsePayScheduleFormProps {\n /** UUID of the company that owns the pay schedule. */\n companyId: string\n /**\n * When set, loads that pay schedule and updates it on submit. When omitted,\n * the form is in create mode and creates a new schedule on submit.\n */\n payScheduleId?: string\n /** Override fields that are optional on a given mode to be required. See `PayScheduleOptionalFieldsToRequire`. */\n optionalFieldsToRequire?: PayScheduleOptionalFieldsToRequire\n /** Pre-fill form values. Server data takes precedence on update. */\n defaultValues?: Partial<PayScheduleFormData>\n /** Passed through to react-hook-form. Defaults to `'onSubmit'`. */\n validationMode?: UseFormProps['mode']\n /** Auto-focus the first invalid field on submit. Set to `false` when using `composeSubmitHandler` so submit-time focus is coordinated across multiple forms. Defaults to `true`. */\n shouldFocusError?: boolean\n}\n\n/**\n * Pre-bound field components exposed on `usePayScheduleForm().form.Fields`.\n *\n * @remarks\n * `CustomTwicePerMonth`, `Day1`, and `Day2` are conditionally `undefined` based\n * on the selected frequency and twice-per-month strategy — always null-check them\n * before rendering.\n *\n * @public\n */\nexport interface PayScheduleFormFields {\n /** Bound to `customName`. Display name text input. Always available. */\n CustomName: ComponentType<CustomNameFieldProps>\n /** Bound to `frequency`. Frequency selector. Always available. */\n Frequency: ComponentType<FrequencyFieldProps>\n /** Bound to `customTwicePerMonth`. Twice-per-month strategy radio group. Only available when frequency is `'Twice per month'`. */\n CustomTwicePerMonth: ComponentType<CustomTwicePerMonthFieldProps> | undefined\n /** Bound to `anchorPayDate`. First pay date picker. Always available. */\n AnchorPayDate: ComponentType<AnchorPayDateFieldProps>\n /** Bound to `anchorEndOfPayPeriod`. First pay period end date picker. Always available. */\n AnchorEndOfPayPeriod: ComponentType<AnchorEndOfPayPeriodFieldProps>\n /** Bound to `day1`. First-pay-day-of-month number input. Available when frequency is `'Monthly'`, or `'Twice per month'` with `'custom'` strategy. */\n Day1: ComponentType<Day1FieldProps> | undefined\n /** Bound to `day2`. Last-pay-day-of-month number input. Available when frequency is `'Twice per month'` with `'custom'` strategy. */\n Day2: ComponentType<Day2FieldProps> | undefined\n}\n\n/**\n * Ready-state shape returned by {@link usePayScheduleForm} once data has loaded.\n *\n * @remarks\n * Discriminated by `isLoading: false`. Extends {@link BaseFormHookReady} with the\n * pay-schedule-specific `data`, `status`, `actions`, and `form.Fields` shape.\n *\n * @public\n */\nexport interface UsePayScheduleFormReady extends BaseFormHookReady<\n PayScheduleFieldsMetadata,\n PayScheduleFormData,\n PayScheduleFormFields\n> {\n /** Static entity data resolved from the API. */\n data: {\n /** The pay schedule loaded for update; `null` in create mode. */\n paySchedule: PayScheduleShow | null\n /** Upcoming pay periods previewed from current form values; `null` until the anchor date fields are complete. */\n payPeriodPreview: PaySchedulePreviewPayPeriod[] | null\n /** `true` while the pay period preview request is in flight. */\n payPreviewLoading: boolean\n /** Business days the company needs to process payroll, derived from payment configs; `null` if unavailable. */\n paymentSpeedDays: number | null\n }\n /** Reactive status flags. */\n status: {\n /** `true` while the create or update mutation is in flight. */\n isPending: boolean\n /** Whether the form is creating a new schedule or updating an existing one. */\n mode: 'create' | 'update'\n }\n /** Available actions. */\n actions: {\n /** Validates the form and dispatches the create or update mutation. Returns the saved schedule, or `undefined` if validation failed. */\n onSubmit: () => Promise<HookSubmitResult<PayScheduleShow> | undefined>\n }\n}\n\nconst FREQUENCY_OPTIONS: Array<{ value: PayScheduleFrequency; label: string }> = [\n { value: 'Every week', label: 'Every week' },\n { value: 'Every other week', label: 'Every other week' },\n { value: 'Twice per month', label: 'Twice per month' },\n { value: 'Monthly', label: 'Monthly' },\n]\n\nconst FREQUENCY_ENTRIES: PayScheduleFrequency[] = FREQUENCY_OPTIONS.map(o => o.value)\n\nconst TWICE_PER_MONTH_OPTIONS = [\n { value: '1st15th', label: '15th and Last day of the month' },\n { value: 'custom', label: 'Custom' },\n]\n\nconst TWICE_PER_MONTH_ENTRIES = TWICE_PER_MONTH_OPTIONS.map(o => o.value)\n\nfunction formatWatchedDate(value: unknown): string {\n if (value instanceof Date) return formatDateToStringDate(value) || ''\n if (typeof value === 'string' && value) return value\n return ''\n}\n\nfunction deriveCustomTwicePerMonth(\n frequency: string | undefined,\n day1: number | undefined,\n day2: number | undefined,\n): string {\n if (frequency !== 'Twice per month') return ''\n if (day1 === 15 && day2 === 31) return '1st15th'\n // Only pre-select 'custom' when there are real day values to represent (e.g.\n // editing an existing custom schedule). With no day basis, leave the radio\n // unselected so its required validation prompts an explicit choice rather\n // than silently forcing empty day1/day2 fields into a required state.\n if (day1 != null && day2 != null) return 'custom'\n return ''\n}\n\n/** @internal */\nfunction buildPayScheduleFieldsMetadata(base: Record<keyof PayScheduleFormData, FieldMetadata>) {\n return {\n customName: base.customName,\n frequency: withOptions<PayScheduleFrequency>(\n base.frequency,\n FREQUENCY_OPTIONS,\n FREQUENCY_ENTRIES,\n ),\n customTwicePerMonth: withOptions<string>(\n base.customTwicePerMonth,\n TWICE_PER_MONTH_OPTIONS,\n TWICE_PER_MONTH_ENTRIES,\n ),\n anchorPayDate: base.anchorPayDate,\n anchorEndOfPayPeriod: base.anchorEndOfPayPeriod,\n day1: base.day1,\n day2: base.day2,\n } satisfies FieldsMetadata\n}\n\n/**\n * Form hook for creating or updating a company pay schedule.\n *\n * @remarks\n * When `payScheduleId` is supplied the hook loads that schedule and issues an\n * update on submit; when omitted it operates in create mode. While both anchor\n * date fields are filled in, the hook fetches a live pay period calendar\n * preview exposed on `data.payPeriodPreview`. `data.paymentSpeedDays` reflects\n * the company's payment configuration and is useful for surfacing UI hints\n * about how far ahead the first pay date must be.\n *\n * @param props - See {@link UsePayScheduleFormProps}.\n * @returns A {@link HookLoadingResult} while loading, or a {@link UsePayScheduleFormReady} once ready.\n * @public\n *\n * @example\n * ```tsx\n * import {\n * usePayScheduleForm,\n * SDKFormProvider,\n * type UsePayScheduleFormReady,\n * } from '@gusto/embedded-react-sdk'\n *\n * function PaySchedulePage({ companyId }: { companyId: string }) {\n * const paySchedule = usePayScheduleForm({ companyId })\n *\n * if (paySchedule.isLoading) return <div>Loading...</div>\n *\n * return <PayScheduleFormReady paySchedule={paySchedule} />\n * }\n *\n * function PayScheduleFormReady({ paySchedule }: { paySchedule: UsePayScheduleFormReady }) {\n * const { Fields } = paySchedule.form\n *\n * return (\n * <SDKFormProvider formHookResult={paySchedule}>\n * <form\n * onSubmit={e => {\n * e.preventDefault()\n * void paySchedule.actions.onSubmit()\n * }}\n * >\n * <Fields.CustomName label=\"Name\" validationMessages={{ REQUIRED: 'Name is required' }} />\n * <Fields.Frequency label=\"Frequency\" validationMessages={{ REQUIRED: 'Frequency is required' }} />\n * {Fields.CustomTwicePerMonth && <Fields.CustomTwicePerMonth label=\"Frequency Options\" />}\n * <Fields.AnchorPayDate label=\"First pay date\" validationMessages={{ REQUIRED: 'Required' }} />\n * <Fields.AnchorEndOfPayPeriod label=\"First pay period end\" validationMessages={{ REQUIRED: 'Required' }} />\n * {Fields.Day1 && (\n * <Fields.Day1\n * label=\"First pay day of the month\"\n * validationMessages={{ REQUIRED: 'Required', DAY_RANGE: 'Must be 1–31' }}\n * />\n * )}\n * {Fields.Day2 && (\n * <Fields.Day2\n * label=\"Last pay day of the month\"\n * validationMessages={{ REQUIRED: 'Required', DAY_RANGE: 'Must be 1–31' }}\n * />\n * )}\n * <button type=\"submit\" disabled={paySchedule.status.isPending}>Save</button>\n * </form>\n * </SDKFormProvider>\n * )\n * }\n * ```\n */\nexport function usePayScheduleForm({\n companyId,\n payScheduleId,\n optionalFieldsToRequire,\n defaultValues: partnerDefaults,\n validationMode = 'onSubmit',\n shouldFocusError = true,\n}: UsePayScheduleFormProps): HookLoadingResult | UsePayScheduleFormReady {\n const payScheduleQuery = usePaySchedulesGet(\n { companyId, payScheduleId: payScheduleId ?? '' },\n { enabled: !!payScheduleId },\n )\n\n const paymentConfigsQuery = usePaymentConfigsGet({ companyUuid: companyId })\n\n const currentPaySchedule = payScheduleQuery.data?.payScheduleShow ?? null\n const paymentSpeed = paymentConfigsQuery.data?.paymentConfigs?.paymentSpeed\n const paymentSpeedDays = parsePaymentSpeedDays(paymentSpeed)\n\n const isCreateMode = !currentPaySchedule\n const mode = isCreateMode ? 'create' : 'update'\n\n const [schema, metadataConfig] = useMemo(\n () => createPayScheduleSchema({ mode, optionalFieldsToRequire }),\n [mode, optionalFieldsToRequire],\n )\n\n const resolvedDefaults: PayScheduleFormData = {\n customName: currentPaySchedule?.customName ?? partnerDefaults?.customName ?? '',\n frequency: (currentPaySchedule?.frequency ??\n partnerDefaults?.frequency ??\n 'Every week') as PayScheduleFrequency,\n customTwicePerMonth: deriveCustomTwicePerMonth(\n currentPaySchedule?.frequency ?? partnerDefaults?.frequency,\n currentPaySchedule?.day1 ?? partnerDefaults?.day1 ?? undefined,\n currentPaySchedule?.day2 ?? partnerDefaults?.day2 ?? undefined,\n ),\n anchorPayDate:\n currentPaySchedule?.anchorPayDate?.toString() ?? partnerDefaults?.anchorPayDate ?? null,\n anchorEndOfPayPeriod:\n currentPaySchedule?.anchorEndOfPayPeriod?.toString() ??\n partnerDefaults?.anchorEndOfPayPeriod ??\n null,\n day1: currentPaySchedule?.day1 ?? partnerDefaults?.day1 ?? NaN,\n day2: currentPaySchedule?.day2 ?? partnerDefaults?.day2 ?? NaN,\n }\n\n const formMethods = useForm<PayScheduleFormData, unknown, PayScheduleFormOutputs>({\n resolver: zodResolver(schema),\n mode: validationMode,\n shouldFocusError,\n defaultValues: resolvedDefaults,\n values: resolvedDefaults,\n resetOptions: { keepDirtyValues: true },\n })\n\n const watchedFrequency = useWatch({ control: formMethods.control, name: 'frequency' })\n const watchedCustomTwicePerMonth = useWatch({\n control: formMethods.control,\n name: 'customTwicePerMonth',\n })\n const watchedAnchorPayDate = useWatch({ control: formMethods.control, name: 'anchorPayDate' })\n const watchedAnchorEndOfPayPeriod = useWatch({\n control: formMethods.control,\n name: 'anchorEndOfPayPeriod',\n })\n const watchedDay1 = useWatch({ control: formMethods.control, name: 'day1' })\n const watchedDay2 = useWatch({ control: formMethods.control, name: 'day2' })\n\n useEffect(() => {\n if (watchedFrequency === 'Twice per month' && watchedCustomTwicePerMonth === '1st15th') {\n formMethods.setValue('day1', 15)\n formMethods.setValue('day2', 31)\n }\n }, [watchedFrequency, watchedCustomTwicePerMonth, formMethods.setValue])\n\n const formattedAnchorPayDate = formatWatchedDate(watchedAnchorPayDate)\n const formattedAnchorEndOfPayPeriod = formatWatchedDate(watchedAnchorEndOfPayPeriod)\n\n const previewEnabled = Boolean(formattedAnchorPayDate && formattedAnchorEndOfPayPeriod)\n\n const previewQuery = usePaySchedulesGetPreview(\n {\n companyId,\n frequency: watchedFrequency,\n ...(formattedAnchorPayDate && { anchorPayDate: new RFCDate(formattedAnchorPayDate) }),\n ...(formattedAnchorEndOfPayPeriod && {\n anchorEndOfPayPeriod: new RFCDate(formattedAnchorEndOfPayPeriod),\n }),\n day1: watchedDay1 || undefined,\n day2: watchedDay2 || undefined,\n } as Parameters<typeof usePaySchedulesGetPreview>[0],\n { enabled: previewEnabled },\n )\n\n const payPeriodPreview: PaySchedulePreviewPayPeriod[] | undefined =\n previewQuery.data?.paySchedulePreview?.payPeriods\n const payPreviewLoading = previewQuery.isLoading && previewEnabled\n\n const createPayScheduleMutation = usePaySchedulesCreateMutation()\n const updatePayScheduleMutation = usePaySchedulesUpdateMutation()\n\n const isPending = createPayScheduleMutation.isPending || updatePayScheduleMutation.isPending\n\n const {\n baseSubmitHandler,\n error: submitError,\n setError: setSubmitError,\n } = useBaseSubmit('PayScheduleForm')\n\n const queries = payScheduleId ? [payScheduleQuery, paymentConfigsQuery] : [paymentConfigsQuery]\n const errorHandling = composeErrorHandler(queries, { submitError, setSubmitError })\n\n const showCustomTwicePerMonth = watchedFrequency === 'Twice per month'\n const showDay1 =\n watchedFrequency === 'Monthly' ||\n (watchedFrequency === 'Twice per month' && watchedCustomTwicePerMonth === 'custom')\n const showDay2 = watchedFrequency === 'Twice per month' && watchedCustomTwicePerMonth === 'custom'\n\n const baseMetadata = useDeriveFieldsMetadata(metadataConfig, formMethods.control)\n const fieldsMetadata = buildPayScheduleFieldsMetadata(baseMetadata)\n\n const onSubmit = async (): Promise<HookSubmitResult<PayScheduleShow> | undefined> => {\n let submitResult: HookSubmitResult<PayScheduleShow> | undefined\n\n await new Promise<void>(resolve => {\n void formMethods.handleSubmit(\n async (data: PayScheduleFormOutputs) => {\n await baseSubmitHandler(data, async payload => {\n const anchorPayDate = payload.anchorPayDate ?? ''\n const anchorEndOfPayPeriod = payload.anchorEndOfPayPeriod ?? ''\n\n if (isCreateMode) {\n const result = await createPayScheduleMutation.mutateAsync({\n request: {\n companyId,\n payScheduleCreateRequest: {\n frequency: payload.frequency,\n anchorPayDate: new RFCDate(anchorPayDate),\n anchorEndOfPayPeriod: new RFCDate(anchorEndOfPayPeriod),\n customName: payload.customName,\n day1: payload.day1 || undefined,\n day2: payload.day2 || undefined,\n },\n },\n })\n\n submitResult = { mode: 'create', data: result.payScheduleShow! }\n } else {\n const result = await updatePayScheduleMutation.mutateAsync({\n request: {\n payScheduleId: currentPaySchedule.uuid,\n companyId,\n payScheduleUpdateRequest: {\n frequency: payload.frequency,\n anchorPayDate: new RFCDate(anchorPayDate),\n anchorEndOfPayPeriod: new RFCDate(anchorEndOfPayPeriod),\n customName: payload.customName,\n day1: payload.day1 || undefined,\n day2: payload.day2 || undefined,\n version: currentPaySchedule.version!,\n },\n },\n })\n\n submitResult = { mode: 'update', data: result.payScheduleShow! }\n }\n })\n resolve()\n },\n () => {\n resolve()\n },\n )()\n })\n\n return submitResult\n }\n\n const hookFormInternals = useHookFormInternals(formMethods)\n\n const isDataLoading =\n paymentConfigsQuery.isLoading || (payScheduleId ? payScheduleQuery.isLoading : false)\n\n if (isDataLoading) {\n return { isLoading: true as const, errorHandling }\n }\n\n return {\n isLoading: false as const,\n data: {\n paySchedule: currentPaySchedule,\n payPeriodPreview: payPeriodPreview ?? null,\n payPreviewLoading,\n paymentSpeedDays,\n },\n status: {\n isPending,\n mode: isCreateMode ? ('create' as const) : ('update' as const),\n },\n actions: { onSubmit },\n errorHandling,\n form: {\n Fields: {\n CustomName: CustomNameField,\n Frequency: FrequencyField,\n CustomTwicePerMonth: showCustomTwicePerMonth ? CustomTwicePerMonthField : undefined,\n AnchorPayDate: AnchorPayDateField,\n AnchorEndOfPayPeriod: AnchorEndOfPayPeriodField,\n Day1: showDay1 ? Day1Field : undefined,\n Day2: showDay2 ? Day2Field : undefined,\n },\n fieldsMetadata,\n hookFormInternals,\n getFormSubmissionValues: createGetFormSubmissionValues(formMethods, schema),\n },\n }\n}\n\n/**\n * Discriminated union returned by {@link usePayScheduleForm}.\n *\n * @public\n */\nexport type UsePayScheduleFormResult = HookLoadingResult | UsePayScheduleFormReady\n/**\n * Type of `form.fieldsMetadata` returned by {@link usePayScheduleForm}.\n *\n * @public\n */\nexport type PayScheduleFieldsMetadata = ReturnType<typeof buildPayScheduleFieldsMetadata>\n"],"names":["FREQUENCY_OPTIONS","FREQUENCY_ENTRIES","o","TWICE_PER_MONTH_OPTIONS","TWICE_PER_MONTH_ENTRIES","formatWatchedDate","value","formatDateToStringDate","deriveCustomTwicePerMonth","frequency","day1","day2","buildPayScheduleFieldsMetadata","base","withOptions","usePayScheduleForm","companyId","payScheduleId","optionalFieldsToRequire","partnerDefaults","validationMode","shouldFocusError","payScheduleQuery","usePaySchedulesGet","paymentConfigsQuery","usePaymentConfigsGet","currentPaySchedule","paymentSpeed","paymentSpeedDays","parsePaymentSpeedDays","isCreateMode","mode","schema","metadataConfig","useMemo","createPayScheduleSchema","resolvedDefaults","formMethods","useForm","zodResolver","watchedFrequency","useWatch","watchedCustomTwicePerMonth","watchedAnchorPayDate","watchedAnchorEndOfPayPeriod","watchedDay1","watchedDay2","useEffect","formattedAnchorPayDate","formattedAnchorEndOfPayPeriod","previewEnabled","previewQuery","usePaySchedulesGetPreview","RFCDate","payPeriodPreview","payPreviewLoading","createPayScheduleMutation","usePaySchedulesCreateMutation","updatePayScheduleMutation","usePaySchedulesUpdateMutation","isPending","baseSubmitHandler","submitError","setSubmitError","useBaseSubmit","errorHandling","composeErrorHandler","showCustomTwicePerMonth","showDay1","showDay2","baseMetadata","useDeriveFieldsMetadata","fieldsMetadata","onSubmit","submitResult","resolve","data","payload","anchorPayDate","anchorEndOfPayPeriod","hookFormInternals","useHookFormInternals","CustomNameField","FrequencyField","CustomTwicePerMonthField","AnchorPayDateField","AnchorEndOfPayPeriodField","Day1Field","Day2Field","createGetFormSubmissionValues"],"mappings":";;;;;;;;;;;;;;;;;;;AAoJA,MAAMA,IAA2E;AAAA,EAC/E,EAAE,OAAO,cAAc,OAAO,aAAA;AAAA,EAC9B,EAAE,OAAO,oBAAoB,OAAO,mBAAA;AAAA,EACpC,EAAE,OAAO,mBAAmB,OAAO,kBAAA;AAAA,EACnC,EAAE,OAAO,WAAW,OAAO,UAAA;AAC7B,GAEMC,KAA4CD,EAAkB,IAAI,CAAAE,MAAKA,EAAE,KAAK,GAE9EC,IAA0B;AAAA,EAC9B,EAAE,OAAO,WAAW,OAAO,iCAAA;AAAA,EAC3B,EAAE,OAAO,UAAU,OAAO,SAAA;AAC5B,GAEMC,KAA0BD,EAAwB,IAAI,CAAAD,MAAKA,EAAE,KAAK;AAExE,SAASG,EAAkBC,GAAwB;AACjD,SAAIA,aAAiB,OAAaC,GAAuBD,CAAK,KAAK,KAC/D,OAAOA,KAAU,YAAYA,IAAcA,IACxC;AACT;AAEA,SAASE,GACPC,GACAC,GACAC,GACQ;AACR,SAAIF,MAAc,oBAA0B,KACxCC,MAAS,MAAMC,MAAS,KAAW,YAKnCD,KAAQ,QAAQC,KAAQ,OAAa,WAClC;AACT;AAGA,SAASC,GAA+BC,GAAwD;AAC9F,SAAO;AAAA,IACL,YAAYA,EAAK;AAAA,IACjB,WAAWC;AAAA,MACTD,EAAK;AAAA,MACLb;AAAA,MACAC;AAAA,IAAA;AAAA,IAEF,qBAAqBa;AAAA,MACnBD,EAAK;AAAA,MACLV;AAAA,MACAC;AAAA,IAAA;AAAA,IAEF,eAAeS,EAAK;AAAA,IACpB,sBAAsBA,EAAK;AAAA,IAC3B,MAAMA,EAAK;AAAA,IACX,MAAMA,EAAK;AAAA,EAAA;AAEf;AAoEO,SAASE,GAAmB;AAAA,EACjC,WAAAC;AAAA,EACA,eAAAC;AAAA,EACA,yBAAAC;AAAA,EACA,eAAeC;AAAA,EACf,gBAAAC,IAAiB;AAAA,EACjB,kBAAAC,IAAmB;AACrB,GAAyE;AACvE,QAAMC,IAAmBC;AAAA,IACvB,EAAE,WAAAP,GAAW,eAAeC,KAAiB,GAAA;AAAA,IAC7C,EAAE,SAAS,CAAC,CAACA,EAAA;AAAA,EAAc,GAGvBO,IAAsBC,GAAqB,EAAE,aAAaT,GAAW,GAErEU,IAAqBJ,EAAiB,MAAM,mBAAmB,MAC/DK,IAAeH,EAAoB,MAAM,gBAAgB,cACzDI,IAAmBC,GAAsBF,CAAY,GAErDG,IAAe,CAACJ,GAChBK,IAAOD,IAAe,WAAW,UAEjC,CAACE,GAAQC,CAAc,IAAIC;AAAA,IAC/B,MAAMC,GAAwB,EAAE,MAAAJ,GAAM,yBAAAb,GAAyB;AAAA,IAC/D,CAACa,GAAMb,CAAuB;AAAA,EAAA,GAG1BkB,IAAwC;AAAA,IAC5C,YAAYV,GAAoB,cAAcP,GAAiB,cAAc;AAAA,IAC7E,WAAYO,GAAoB,aAC9BP,GAAiB,aACjB;AAAA,IACF,qBAAqBX;AAAA,MACnBkB,GAAoB,aAAaP,GAAiB;AAAA,MAClDO,GAAoB,QAAQP,GAAiB,QAAQ;AAAA,MACrDO,GAAoB,QAAQP,GAAiB,QAAQ;AAAA,IAAA;AAAA,IAEvD,eACEO,GAAoB,eAAe,SAAA,KAAcP,GAAiB,iBAAiB;AAAA,IACrF,sBACEO,GAAoB,sBAAsB,SAAA,KAC1CP,GAAiB,wBACjB;AAAA,IACF,MAAMO,GAAoB,QAAQP,GAAiB,QAAQ;AAAA,IAC3D,MAAMO,GAAoB,QAAQP,GAAiB,QAAQ;AAAA,EAAA,GAGvDkB,IAAcC,GAA8D;AAAA,IAChF,UAAUC,GAAYP,CAAM;AAAA,IAC5B,MAAMZ;AAAA,IACN,kBAAAC;AAAA,IACA,eAAee;AAAA,IACf,QAAQA;AAAA,IACR,cAAc,EAAE,iBAAiB,GAAA;AAAA,EAAK,CACvC,GAEKI,IAAmBC,EAAS,EAAE,SAASJ,EAAY,SAAS,MAAM,aAAa,GAC/EK,IAA6BD,EAAS;AAAA,IAC1C,SAASJ,EAAY;AAAA,IACrB,MAAM;AAAA,EAAA,CACP,GACKM,IAAuBF,EAAS,EAAE,SAASJ,EAAY,SAAS,MAAM,iBAAiB,GACvFO,IAA8BH,EAAS;AAAA,IAC3C,SAASJ,EAAY;AAAA,IACrB,MAAM;AAAA,EAAA,CACP,GACKQ,IAAcJ,EAAS,EAAE,SAASJ,EAAY,SAAS,MAAM,QAAQ,GACrES,IAAcL,EAAS,EAAE,SAASJ,EAAY,SAAS,MAAM,QAAQ;AAE3E,EAAAU,GAAU,MAAM;AACd,IAAIP,MAAqB,qBAAqBE,MAA+B,cAC3EL,EAAY,SAAS,QAAQ,EAAE,GAC/BA,EAAY,SAAS,QAAQ,EAAE;AAAA,EAEnC,GAAG,CAACG,GAAkBE,GAA4BL,EAAY,QAAQ,CAAC;AAEvE,QAAMW,IAAyB3C,EAAkBsC,CAAoB,GAC/DM,IAAgC5C,EAAkBuC,CAA2B,GAE7EM,IAAiB,GAAQF,KAA0BC,IAEnDE,IAAeC;AAAA,IACnB;AAAA,MACE,WAAApC;AAAA,MACA,WAAWwB;AAAA,MACX,GAAIQ,KAA0B,EAAE,eAAe,IAAIK,EAAQL,CAAsB,EAAA;AAAA,MACjF,GAAIC,KAAiC;AAAA,QACnC,sBAAsB,IAAII,EAAQJ,CAA6B;AAAA,MAAA;AAAA,MAEjE,MAAMJ,KAAe;AAAA,MACrB,MAAMC,KAAe;AAAA,IAAA;AAAA,IAEvB,EAAE,SAASI,EAAA;AAAA,EAAe,GAGtBI,IACJH,EAAa,MAAM,oBAAoB,YACnCI,IAAoBJ,EAAa,aAAaD,GAE9CM,IAA4BC,GAAA,GAC5BC,IAA4BC,GAAA,GAE5BC,IAAYJ,EAA0B,aAAaE,EAA0B,WAE7E;AAAA,IACJ,mBAAAG;AAAA,IACA,OAAOC;AAAA,IACP,UAAUC;AAAA,EAAA,IACRC,GAAc,iBAAiB,GAG7BC,IAAgBC,GADNjD,IAAgB,CAACK,GAAkBE,CAAmB,IAAI,CAACA,CAAmB,GAC3C,EAAE,aAAAsC,GAAa,gBAAAC,GAAgB,GAE5EI,IAA0B3B,MAAqB,mBAC/C4B,IACJ5B,MAAqB,aACpBA,MAAqB,qBAAqBE,MAA+B,UACtE2B,IAAW7B,MAAqB,qBAAqBE,MAA+B,UAEpF4B,IAAeC,GAAwBtC,GAAgBI,EAAY,OAAO,GAC1EmC,IAAiB5D,GAA+B0D,CAAY,GAE5DG,IAAW,YAAoE;AACnF,QAAIC;AAEJ,iBAAM,IAAI,QAAc,CAAAC,MAAW;AACjC,MAAKtC,EAAY;AAAA,QACf,OAAOuC,OAAiC;AACtC,gBAAMf,EAAkBe,IAAM,OAAMC,MAAW;AAC7C,kBAAMC,IAAgBD,EAAQ,iBAAiB,IACzCE,IAAuBF,EAAQ,wBAAwB;AAE7D,YAAI/C,IAeF4C,IAAe,EAAE,MAAM,UAAU,OAdlB,MAAMlB,EAA0B,YAAY;AAAA,cACzD,SAAS;AAAA,gBACP,WAAAxC;AAAA,gBACA,0BAA0B;AAAA,kBACxB,WAAW6D,EAAQ;AAAA,kBACnB,eAAe,IAAIxB,EAAQyB,CAAa;AAAA,kBACxC,sBAAsB,IAAIzB,EAAQ0B,CAAoB;AAAA,kBACtD,YAAYF,EAAQ;AAAA,kBACpB,MAAMA,EAAQ,QAAQ;AAAA,kBACtB,MAAMA,EAAQ,QAAQ;AAAA,gBAAA;AAAA,cACxB;AAAA,YACF,CACD,GAE6C,gBAAA,IAkB9CH,IAAe,EAAE,MAAM,UAAU,OAhBlB,MAAMhB,EAA0B,YAAY;AAAA,cACzD,SAAS;AAAA,gBACP,eAAehC,EAAmB;AAAA,gBAClC,WAAAV;AAAA,gBACA,0BAA0B;AAAA,kBACxB,WAAW6D,EAAQ;AAAA,kBACnB,eAAe,IAAIxB,EAAQyB,CAAa;AAAA,kBACxC,sBAAsB,IAAIzB,EAAQ0B,CAAoB;AAAA,kBACtD,YAAYF,EAAQ;AAAA,kBACpB,MAAMA,EAAQ,QAAQ;AAAA,kBACtB,MAAMA,EAAQ,QAAQ;AAAA,kBACtB,SAASnD,EAAmB;AAAA,gBAAA;AAAA,cAC9B;AAAA,YACF,CACD,GAE6C,gBAAA;AAAA,UAElD,CAAC,GACDiD,EAAA;AAAA,QACF;AAAA,QACA,MAAM;AACJ,UAAAA,EAAA;AAAA,QACF;AAAA,MAAA,EACF;AAAA,IACF,CAAC,GAEMD;AAAA,EACT,GAEMM,IAAoBC,GAAqB5C,CAAW;AAK1D,SAFEb,EAAoB,cAAcP,IAAgBK,EAAiB,YAAY,MAGxE,EAAE,WAAW,IAAe,eAAA2C,EAAA,IAG9B;AAAA,IACL,WAAW;AAAA,IACX,MAAM;AAAA,MACJ,aAAavC;AAAA,MACb,kBAAkB4B,KAAoB;AAAA,MACtC,mBAAAC;AAAA,MACA,kBAAA3B;AAAA,IAAA;AAAA,IAEF,QAAQ;AAAA,MACN,WAAAgC;AAAA,MACA,MAAM9B,IAAgB,WAAsB;AAAA,IAAA;AAAA,IAE9C,SAAS,EAAE,UAAA2C,EAAA;AAAA,IACX,eAAAR;AAAA,IACA,MAAM;AAAA,MACJ,QAAQ;AAAA,QACN,YAAYiB;AAAA,QACZ,WAAWC;AAAA,QACX,qBAAqBhB,IAA0BiB,KAA2B;AAAA,QAC1E,eAAeC;AAAA,QACf,sBAAsBC;AAAA,QACtB,MAAMlB,IAAWmB,KAAY;AAAA,QAC7B,MAAMlB,IAAWmB,KAAY;AAAA,MAAA;AAAA,MAE/B,gBAAAhB;AAAA,MACA,mBAAAQ;AAAA,MACA,yBAAyBS,GAA8BpD,GAAaL,CAAM;AAAA,IAAA;AAAA,EAC5E;AAEJ;"}
1
+ {"version":3,"file":"usePayScheduleForm.js","sources":["../../../../../../src/components/Company/PaySchedule/shared/usePayScheduleForm/usePayScheduleForm.tsx"],"sourcesContent":["import { useEffect, useMemo } from 'react'\nimport type { ComponentType } from 'react'\nimport { useForm, useWatch } from 'react-hook-form'\nimport type { UseFormProps } from 'react-hook-form'\nimport { zodResolver } from '@hookform/resolvers/zod'\nimport type { PayScheduleShow } from '@gusto/embedded-api/models/components/payscheduleshow'\nimport type { PaySchedulePreviewPayPeriod } from '@gusto/embedded-api/models/components/payschedulepreviewpayperiod'\nimport { WorkweekStartDay } from '@gusto/embedded-api/models/components/payschedulecreaterequest'\nimport { usePaySchedulesGet } from '@gusto/embedded-api/react-query/paySchedulesGet'\nimport { usePaySchedulesGetPreview } from '@gusto/embedded-api/react-query/paySchedulesGetPreview'\nimport { usePaySchedulesCreateMutation } from '@gusto/embedded-api/react-query/paySchedulesCreate'\nimport { usePaySchedulesUpdateMutation } from '@gusto/embedded-api/react-query/paySchedulesUpdate'\nimport { usePaymentConfigsGet } from '@gusto/embedded-api/react-query/paymentConfigsGet'\nimport { RFCDate } from '@gusto/embedded-api/types/rfcdate'\nimport {\n createPayScheduleSchema,\n type PayScheduleOptionalFieldsToRequire,\n type PayScheduleFormData,\n type PayScheduleFormOutputs,\n type PayScheduleFrequency,\n type PayScheduleWorkweekStartDay,\n} from './payScheduleSchema'\nimport {\n CustomNameField,\n FrequencyField,\n CustomTwicePerMonthField,\n AnchorPayDateField,\n AnchorEndOfPayPeriodField,\n Day1Field,\n Day2Field,\n WorkweekStartDayField,\n} from './fields'\nimport type {\n CustomNameFieldProps,\n FrequencyFieldProps,\n CustomTwicePerMonthFieldProps,\n AnchorPayDateFieldProps,\n AnchorEndOfPayPeriodFieldProps,\n Day1FieldProps,\n Day2FieldProps,\n WorkweekStartDayFieldProps,\n} from './fields'\nimport { useDeriveFieldsMetadata } from '@/partner-hook-utils/form/useDeriveFieldsMetadata'\nimport { useHookFormInternals } from '@/partner-hook-utils/form/useHookFormInternals'\nimport { createGetFormSubmissionValues } from '@/partner-hook-utils/form/getFormSubmissionValues'\nimport { withOptions } from '@/partner-hook-utils/form/withOptions'\nimport { withFlags } from '@/partner-hook-utils/form/withFlags'\nimport { composeErrorHandler } from '@/partner-hook-utils/composeErrorHandler'\nimport type {\n BaseFormHookReady,\n FieldMetadata,\n FieldsMetadata,\n HookLoadingResult,\n HookSubmitResult,\n} from '@/partner-hook-utils/types'\nimport { useBaseSubmit } from '@/components/Base/useBaseSubmit'\nimport { parsePaymentSpeedDays } from '@/hooks/useCompanyPaymentSpeed'\nimport { formatDateToStringDate } from '@/helpers/dateFormatting'\nimport { useUnstableFeature } from '@/contexts/UnstableFeaturesProvider/useUnstableFeature'\n\nexport type { PayScheduleOptionalFieldsToRequire } from './payScheduleSchema'\n\n/**\n * Configuration options for {@link usePayScheduleForm}.\n *\n * @remarks\n * Presence or absence of `payScheduleId` selects between update and create mode.\n *\n * @public\n */\nexport interface UsePayScheduleFormProps {\n /** UUID of the company that owns the pay schedule. */\n companyId: string\n /**\n * When set, loads that pay schedule and updates it on submit. When omitted,\n * the form is in create mode and creates a new schedule on submit.\n */\n payScheduleId?: string\n /** Override fields that are optional on a given mode to be required. See `PayScheduleOptionalFieldsToRequire`. */\n optionalFieldsToRequire?: PayScheduleOptionalFieldsToRequire\n /** Pre-fill form values. Server data takes precedence on update. */\n defaultValues?: Partial<PayScheduleFormData>\n /** Passed through to react-hook-form. Defaults to `'onSubmit'`. */\n validationMode?: UseFormProps['mode']\n /** Auto-focus the first invalid field on submit. Set to `false` when using `composeSubmitHandler` so submit-time focus is coordinated across multiple forms. Defaults to `true`. */\n shouldFocusError?: boolean\n /**\n * Renders `Fields.WorkweekStartDay` disabled while still submitting its current value,\n * for partners that compute the workweek start day themselves and don't want end users\n * editing it directly. Defaults to `false`. Has no effect unless the `payrollRegularRateOfPay`\n * unstable feature is enabled.\n *\n * @alpha\n */\n disableWorkweekStartDayEditing?: boolean\n}\n\n/**\n * Pre-bound field components exposed on `usePayScheduleForm().form.Fields`.\n *\n * @remarks\n * `CustomTwicePerMonth`, `Day1`, and `Day2` are conditionally `undefined` based\n * on the selected frequency and twice-per-month strategy — always null-check them\n * before rendering.\n *\n * @public\n */\nexport interface PayScheduleFormFields {\n /** Bound to `customName`. Display name text input. Always available. */\n CustomName: ComponentType<CustomNameFieldProps>\n /** Bound to `frequency`. Frequency selector. Always available. */\n Frequency: ComponentType<FrequencyFieldProps>\n /** Bound to `customTwicePerMonth`. Twice-per-month strategy radio group. Only available when frequency is `'Twice per month'`. */\n CustomTwicePerMonth: ComponentType<CustomTwicePerMonthFieldProps> | undefined\n /** Bound to `anchorPayDate`. First pay date picker. Always available. */\n AnchorPayDate: ComponentType<AnchorPayDateFieldProps>\n /** Bound to `anchorEndOfPayPeriod`. First pay period end date picker. Always available. */\n AnchorEndOfPayPeriod: ComponentType<AnchorEndOfPayPeriodFieldProps>\n /** Bound to `day1`. First-pay-day-of-month number input. Available when frequency is `'Monthly'`, or `'Twice per month'` with `'custom'` strategy. */\n Day1: ComponentType<Day1FieldProps> | undefined\n /** Bound to `day2`. Last-pay-day-of-month number input. Available when frequency is `'Twice per month'` with `'custom'` strategy. */\n Day2: ComponentType<Day2FieldProps> | undefined\n /**\n * Bound to `workweekStartDay`. Workweek start day selector, used for regular rate of pay\n * overtime calculations. `undefined` unless the `payrollRegularRateOfPay` unstable feature\n * is enabled.\n *\n * @alpha\n */\n WorkweekStartDay: ComponentType<WorkweekStartDayFieldProps> | undefined\n}\n\n/**\n * Ready-state shape returned by {@link usePayScheduleForm} once data has loaded.\n *\n * @remarks\n * Discriminated by `isLoading: false`. Extends {@link BaseFormHookReady} with the\n * pay-schedule-specific `data`, `status`, `actions`, and `form.Fields` shape.\n *\n * @public\n */\nexport interface UsePayScheduleFormReady extends BaseFormHookReady<\n PayScheduleFieldsMetadata,\n PayScheduleFormData,\n PayScheduleFormFields\n> {\n /** Static entity data resolved from the API. */\n data: {\n /** The pay schedule loaded for update; `null` in create mode. */\n paySchedule: PayScheduleShow | null\n /** Upcoming pay periods previewed from current form values; `null` until the anchor date fields are complete. */\n payPeriodPreview: PaySchedulePreviewPayPeriod[] | null\n /** `true` while the pay period preview request is in flight. */\n payPreviewLoading: boolean\n /** Business days the company needs to process payroll, derived from payment configs; `null` if unavailable. */\n paymentSpeedDays: number | null\n }\n /** Reactive status flags. */\n status: {\n /** `true` while the create or update mutation is in flight. */\n isPending: boolean\n /** Whether the form is creating a new schedule or updating an existing one. */\n mode: 'create' | 'update'\n }\n /** Available actions. */\n actions: {\n /** Validates the form and dispatches the create or update mutation. Returns the saved schedule, or `undefined` if validation failed. */\n onSubmit: () => Promise<HookSubmitResult<PayScheduleShow> | undefined>\n }\n}\n\nconst FREQUENCY_OPTIONS: Array<{ value: PayScheduleFrequency; label: string }> = [\n { value: 'Every week', label: 'Every week' },\n { value: 'Every other week', label: 'Every other week' },\n { value: 'Twice per month', label: 'Twice per month' },\n { value: 'Monthly', label: 'Monthly' },\n]\n\nconst FREQUENCY_ENTRIES: PayScheduleFrequency[] = FREQUENCY_OPTIONS.map(o => o.value)\n\nconst TWICE_PER_MONTH_OPTIONS = [\n { value: '1st15th', label: '15th and Last day of the month' },\n { value: 'custom', label: 'Custom' },\n]\n\nconst TWICE_PER_MONTH_ENTRIES = TWICE_PER_MONTH_OPTIONS.map(o => o.value)\n\nconst WORKWEEK_START_DAY_ENTRIES: PayScheduleWorkweekStartDay[] = Object.values(WorkweekStartDay)\n\nconst WORKWEEK_START_DAY_OPTIONS: Array<{ value: PayScheduleWorkweekStartDay; label: string }> =\n WORKWEEK_START_DAY_ENTRIES.map(value => ({ value, label: value }))\n\nfunction formatWatchedDate(value: unknown): string {\n if (value instanceof Date) return formatDateToStringDate(value) || ''\n if (typeof value === 'string' && value) return value\n return ''\n}\n\nfunction deriveCustomTwicePerMonth(\n frequency: string | undefined,\n day1: number | undefined,\n day2: number | undefined,\n): string {\n if (frequency !== 'Twice per month') return ''\n if (day1 === 15 && day2 === 31) return '1st15th'\n // Only pre-select 'custom' when there are real day values to represent (e.g.\n // editing an existing custom schedule). With no day basis, leave the radio\n // unselected so its required validation prompts an explicit choice rather\n // than silently forcing empty day1/day2 fields into a required state.\n if (day1 != null && day2 != null) return 'custom'\n return ''\n}\n\n/** @internal */\nfunction buildPayScheduleFieldsMetadata(\n base: Record<keyof PayScheduleFormData, FieldMetadata>,\n disableWorkweekStartDayEditing: boolean,\n) {\n return {\n customName: base.customName,\n frequency: withOptions<PayScheduleFrequency>(\n base.frequency,\n FREQUENCY_OPTIONS,\n FREQUENCY_ENTRIES,\n ),\n customTwicePerMonth: withOptions<string>(\n base.customTwicePerMonth,\n TWICE_PER_MONTH_OPTIONS,\n TWICE_PER_MONTH_ENTRIES,\n ),\n anchorPayDate: base.anchorPayDate,\n anchorEndOfPayPeriod: base.anchorEndOfPayPeriod,\n day1: base.day1,\n day2: base.day2,\n workweekStartDay: withOptions<PayScheduleWorkweekStartDay>(\n withFlags(base.workweekStartDay, { isDisabled: disableWorkweekStartDayEditing }),\n WORKWEEK_START_DAY_OPTIONS,\n WORKWEEK_START_DAY_ENTRIES,\n ),\n } satisfies FieldsMetadata\n}\n\n/**\n * Form hook for creating or updating a company pay schedule.\n *\n * @remarks\n * When `payScheduleId` is supplied the hook loads that schedule and issues an\n * update on submit; when omitted it operates in create mode. While both anchor\n * date fields are filled in, the hook fetches a live pay period calendar\n * preview exposed on `data.payPeriodPreview`. `data.paymentSpeedDays` reflects\n * the company's payment configuration and is useful for surfacing UI hints\n * about how far ahead the first pay date must be.\n *\n * @param props - See {@link UsePayScheduleFormProps}.\n * @returns A {@link HookLoadingResult} while loading, or a {@link UsePayScheduleFormReady} once ready.\n * @public\n *\n * @example\n * ```tsx\n * import {\n * usePayScheduleForm,\n * SDKFormProvider,\n * type UsePayScheduleFormReady,\n * } from '@gusto/embedded-react-sdk'\n *\n * function PaySchedulePage({ companyId }: { companyId: string }) {\n * const paySchedule = usePayScheduleForm({ companyId })\n *\n * if (paySchedule.isLoading) return <div>Loading...</div>\n *\n * return <PayScheduleFormReady paySchedule={paySchedule} />\n * }\n *\n * function PayScheduleFormReady({ paySchedule }: { paySchedule: UsePayScheduleFormReady }) {\n * const { Fields } = paySchedule.form\n *\n * return (\n * <SDKFormProvider formHookResult={paySchedule}>\n * <form\n * onSubmit={e => {\n * e.preventDefault()\n * void paySchedule.actions.onSubmit()\n * }}\n * >\n * <Fields.CustomName label=\"Name\" validationMessages={{ REQUIRED: 'Name is required' }} />\n * <Fields.Frequency label=\"Frequency\" validationMessages={{ REQUIRED: 'Frequency is required' }} />\n * {Fields.CustomTwicePerMonth && <Fields.CustomTwicePerMonth label=\"Frequency Options\" />}\n * <Fields.AnchorPayDate label=\"First pay date\" validationMessages={{ REQUIRED: 'Required' }} />\n * <Fields.AnchorEndOfPayPeriod label=\"First pay period end\" validationMessages={{ REQUIRED: 'Required' }} />\n * {Fields.Day1 && (\n * <Fields.Day1\n * label=\"First pay day of the month\"\n * validationMessages={{ REQUIRED: 'Required', DAY_RANGE: 'Must be 1–31' }}\n * />\n * )}\n * {Fields.Day2 && (\n * <Fields.Day2\n * label=\"Last pay day of the month\"\n * validationMessages={{ REQUIRED: 'Required', DAY_RANGE: 'Must be 1–31' }}\n * />\n * )}\n * <button type=\"submit\" disabled={paySchedule.status.isPending}>Save</button>\n * </form>\n * </SDKFormProvider>\n * )\n * }\n * ```\n */\nexport function usePayScheduleForm({\n companyId,\n payScheduleId,\n optionalFieldsToRequire,\n defaultValues: partnerDefaults,\n validationMode = 'onSubmit',\n shouldFocusError = true,\n disableWorkweekStartDayEditing = false,\n}: UsePayScheduleFormProps): HookLoadingResult | UsePayScheduleFormReady {\n const isWorkweekStartDayEnabled = useUnstableFeature('payrollRegularRateOfPay')\n const payScheduleQuery = usePaySchedulesGet(\n { companyId, payScheduleId: payScheduleId ?? '' },\n { enabled: !!payScheduleId },\n )\n\n const paymentConfigsQuery = usePaymentConfigsGet({ companyUuid: companyId })\n\n const currentPaySchedule = payScheduleQuery.data?.payScheduleShow ?? null\n const paymentSpeed = paymentConfigsQuery.data?.paymentConfigs?.paymentSpeed\n const paymentSpeedDays = parsePaymentSpeedDays(paymentSpeed)\n\n const isCreateMode = !currentPaySchedule\n const mode = isCreateMode ? 'create' : 'update'\n\n const [schema, metadataConfig] = useMemo(\n () => createPayScheduleSchema({ mode, optionalFieldsToRequire }),\n [mode, optionalFieldsToRequire],\n )\n\n const resolvedDefaults: PayScheduleFormData = {\n customName: currentPaySchedule?.customName ?? partnerDefaults?.customName ?? '',\n frequency: (currentPaySchedule?.frequency ??\n partnerDefaults?.frequency ??\n 'Every week') as PayScheduleFrequency,\n customTwicePerMonth: deriveCustomTwicePerMonth(\n currentPaySchedule?.frequency ?? partnerDefaults?.frequency,\n currentPaySchedule?.day1 ?? partnerDefaults?.day1 ?? undefined,\n currentPaySchedule?.day2 ?? partnerDefaults?.day2 ?? undefined,\n ),\n anchorPayDate:\n currentPaySchedule?.anchorPayDate?.toString() ?? partnerDefaults?.anchorPayDate ?? null,\n anchorEndOfPayPeriod:\n currentPaySchedule?.anchorEndOfPayPeriod?.toString() ??\n partnerDefaults?.anchorEndOfPayPeriod ??\n null,\n day1: currentPaySchedule?.day1 ?? partnerDefaults?.day1 ?? NaN,\n day2: currentPaySchedule?.day2 ?? partnerDefaults?.day2 ?? NaN,\n workweekStartDay:\n currentPaySchedule?.workweekStartDay ?? partnerDefaults?.workweekStartDay ?? null,\n }\n\n const formMethods = useForm<PayScheduleFormData, unknown, PayScheduleFormOutputs>({\n resolver: zodResolver(schema),\n mode: validationMode,\n shouldFocusError,\n defaultValues: resolvedDefaults,\n values: resolvedDefaults,\n resetOptions: { keepDirtyValues: true },\n })\n\n const watchedFrequency = useWatch({ control: formMethods.control, name: 'frequency' })\n const watchedCustomTwicePerMonth = useWatch({\n control: formMethods.control,\n name: 'customTwicePerMonth',\n })\n const watchedAnchorPayDate = useWatch({ control: formMethods.control, name: 'anchorPayDate' })\n const watchedAnchorEndOfPayPeriod = useWatch({\n control: formMethods.control,\n name: 'anchorEndOfPayPeriod',\n })\n const watchedDay1 = useWatch({ control: formMethods.control, name: 'day1' })\n const watchedDay2 = useWatch({ control: formMethods.control, name: 'day2' })\n\n useEffect(() => {\n if (watchedFrequency === 'Twice per month' && watchedCustomTwicePerMonth === '1st15th') {\n formMethods.setValue('day1', 15)\n formMethods.setValue('day2', 31)\n }\n }, [watchedFrequency, watchedCustomTwicePerMonth, formMethods.setValue])\n\n const formattedAnchorPayDate = formatWatchedDate(watchedAnchorPayDate)\n const formattedAnchorEndOfPayPeriod = formatWatchedDate(watchedAnchorEndOfPayPeriod)\n\n const previewEnabled = Boolean(formattedAnchorPayDate && formattedAnchorEndOfPayPeriod)\n\n const previewQuery = usePaySchedulesGetPreview(\n {\n companyId,\n frequency: watchedFrequency,\n ...(formattedAnchorPayDate && { anchorPayDate: new RFCDate(formattedAnchorPayDate) }),\n ...(formattedAnchorEndOfPayPeriod && {\n anchorEndOfPayPeriod: new RFCDate(formattedAnchorEndOfPayPeriod),\n }),\n day1: watchedDay1 || undefined,\n day2: watchedDay2 || undefined,\n } as Parameters<typeof usePaySchedulesGetPreview>[0],\n { enabled: previewEnabled },\n )\n\n const payPeriodPreview: PaySchedulePreviewPayPeriod[] | undefined =\n previewQuery.data?.paySchedulePreview?.payPeriods\n const payPreviewLoading = previewQuery.isLoading && previewEnabled\n\n const createPayScheduleMutation = usePaySchedulesCreateMutation()\n const updatePayScheduleMutation = usePaySchedulesUpdateMutation()\n\n const isPending = createPayScheduleMutation.isPending || updatePayScheduleMutation.isPending\n\n const {\n baseSubmitHandler,\n error: submitError,\n setError: setSubmitError,\n } = useBaseSubmit('PayScheduleForm')\n\n const queries = payScheduleId ? [payScheduleQuery, paymentConfigsQuery] : [paymentConfigsQuery]\n const errorHandling = composeErrorHandler(queries, { submitError, setSubmitError })\n\n const showCustomTwicePerMonth = watchedFrequency === 'Twice per month'\n const showDay1 =\n watchedFrequency === 'Monthly' ||\n (watchedFrequency === 'Twice per month' && watchedCustomTwicePerMonth === 'custom')\n const showDay2 = watchedFrequency === 'Twice per month' && watchedCustomTwicePerMonth === 'custom'\n\n const baseMetadata = useDeriveFieldsMetadata(metadataConfig, formMethods.control)\n const fieldsMetadata = buildPayScheduleFieldsMetadata(\n baseMetadata,\n disableWorkweekStartDayEditing,\n )\n\n const onSubmit = async (): Promise<HookSubmitResult<PayScheduleShow> | undefined> => {\n let submitResult: HookSubmitResult<PayScheduleShow> | undefined\n\n await new Promise<void>(resolve => {\n void formMethods.handleSubmit(\n async (data: PayScheduleFormOutputs) => {\n await baseSubmitHandler(data, async payload => {\n const anchorPayDate = payload.anchorPayDate ?? ''\n const anchorEndOfPayPeriod = payload.anchorEndOfPayPeriod ?? ''\n\n if (isCreateMode) {\n const result = await createPayScheduleMutation.mutateAsync({\n request: {\n companyId,\n payScheduleCreateRequest: {\n frequency: payload.frequency,\n anchorPayDate: new RFCDate(anchorPayDate),\n anchorEndOfPayPeriod: new RFCDate(anchorEndOfPayPeriod),\n customName: payload.customName,\n day1: payload.day1 || undefined,\n day2: payload.day2 || undefined,\n workweekStartDay: isWorkweekStartDayEnabled\n ? (payload.workweekStartDay ?? undefined)\n : undefined,\n },\n },\n })\n\n submitResult = { mode: 'create', data: result.payScheduleShow! }\n } else {\n const result = await updatePayScheduleMutation.mutateAsync({\n request: {\n payScheduleId: currentPaySchedule.uuid,\n companyId,\n payScheduleUpdateRequest: {\n frequency: payload.frequency,\n anchorPayDate: new RFCDate(anchorPayDate),\n anchorEndOfPayPeriod: new RFCDate(anchorEndOfPayPeriod),\n customName: payload.customName,\n day1: payload.day1 || undefined,\n day2: payload.day2 || undefined,\n workweekStartDay: isWorkweekStartDayEnabled\n ? (payload.workweekStartDay ?? undefined)\n : undefined,\n version: currentPaySchedule.version!,\n },\n },\n })\n\n submitResult = { mode: 'update', data: result.payScheduleShow! }\n }\n })\n resolve()\n },\n () => {\n resolve()\n },\n )()\n })\n\n return submitResult\n }\n\n const hookFormInternals = useHookFormInternals(formMethods)\n\n const isDataLoading =\n paymentConfigsQuery.isLoading || (payScheduleId ? payScheduleQuery.isLoading : false)\n\n if (isDataLoading) {\n return { isLoading: true as const, errorHandling }\n }\n\n return {\n isLoading: false as const,\n data: {\n paySchedule: currentPaySchedule,\n payPeriodPreview: payPeriodPreview ?? null,\n payPreviewLoading,\n paymentSpeedDays,\n },\n status: {\n isPending,\n mode: isCreateMode ? ('create' as const) : ('update' as const),\n },\n actions: { onSubmit },\n errorHandling,\n form: {\n Fields: {\n CustomName: CustomNameField,\n Frequency: FrequencyField,\n CustomTwicePerMonth: showCustomTwicePerMonth ? CustomTwicePerMonthField : undefined,\n AnchorPayDate: AnchorPayDateField,\n AnchorEndOfPayPeriod: AnchorEndOfPayPeriodField,\n Day1: showDay1 ? Day1Field : undefined,\n Day2: showDay2 ? Day2Field : undefined,\n WorkweekStartDay: isWorkweekStartDayEnabled ? WorkweekStartDayField : undefined,\n },\n fieldsMetadata,\n hookFormInternals,\n getFormSubmissionValues: createGetFormSubmissionValues(formMethods, schema),\n },\n }\n}\n\n/**\n * Discriminated union returned by {@link usePayScheduleForm}.\n *\n * @public\n */\nexport type UsePayScheduleFormResult = HookLoadingResult | UsePayScheduleFormReady\n/**\n * Type of `form.fieldsMetadata` returned by {@link usePayScheduleForm}.\n *\n * @public\n */\nexport type PayScheduleFieldsMetadata = ReturnType<typeof buildPayScheduleFieldsMetadata>\n"],"names":["FREQUENCY_OPTIONS","FREQUENCY_ENTRIES","o","TWICE_PER_MONTH_OPTIONS","TWICE_PER_MONTH_ENTRIES","WORKWEEK_START_DAY_ENTRIES","WorkweekStartDay","WORKWEEK_START_DAY_OPTIONS","value","formatWatchedDate","formatDateToStringDate","deriveCustomTwicePerMonth","frequency","day1","day2","buildPayScheduleFieldsMetadata","base","disableWorkweekStartDayEditing","withOptions","withFlags","usePayScheduleForm","companyId","payScheduleId","optionalFieldsToRequire","partnerDefaults","validationMode","shouldFocusError","isWorkweekStartDayEnabled","useUnstableFeature","payScheduleQuery","usePaySchedulesGet","paymentConfigsQuery","usePaymentConfigsGet","currentPaySchedule","paymentSpeed","paymentSpeedDays","parsePaymentSpeedDays","isCreateMode","mode","schema","metadataConfig","useMemo","createPayScheduleSchema","resolvedDefaults","formMethods","useForm","zodResolver","watchedFrequency","useWatch","watchedCustomTwicePerMonth","watchedAnchorPayDate","watchedAnchorEndOfPayPeriod","watchedDay1","watchedDay2","useEffect","formattedAnchorPayDate","formattedAnchorEndOfPayPeriod","previewEnabled","previewQuery","usePaySchedulesGetPreview","RFCDate","payPeriodPreview","payPreviewLoading","createPayScheduleMutation","usePaySchedulesCreateMutation","updatePayScheduleMutation","usePaySchedulesUpdateMutation","isPending","baseSubmitHandler","submitError","setSubmitError","useBaseSubmit","errorHandling","composeErrorHandler","showCustomTwicePerMonth","showDay1","showDay2","baseMetadata","useDeriveFieldsMetadata","fieldsMetadata","onSubmit","submitResult","resolve","data","payload","anchorPayDate","anchorEndOfPayPeriod","hookFormInternals","useHookFormInternals","CustomNameField","FrequencyField","CustomTwicePerMonthField","AnchorPayDateField","AnchorEndOfPayPeriodField","Day1Field","Day2Field","WorkweekStartDayField","createGetFormSubmissionValues"],"mappings":"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"}
@@ -9,13 +9,14 @@ import "@gusto/embedded-api/models/errors/gustoembeddederror";
9
9
  import "@gusto/embedded-api/models/errors/sdkvalidationerror";
10
10
  import "@gusto/embedded-api/models/errors/unprocessableentityerror";
11
11
  import "@gusto/embedded-api/models/errors/httpclienterrors";
12
+ import "dompurify";
13
+ import "../../../../contexts/LocaleProvider/useLocale.js";
12
14
  import "../../../../shared/constants.js";
13
15
  import "../../../../contexts/ComponentAdapter/useComponentContext.js";
14
- import "../../../../contexts/LoadingIndicatorProvider/useLoadingIndicator.js";
15
16
  import { createCompoundContext as t } from "../../../Base/createCompoundContext.js";
16
- const [d, u] = t("StateTaxesFormContext");
17
+ const [u, f] = t("StateTaxesFormContext");
17
18
  export {
18
- u as StateTaxesFormProvider,
19
- d as useStateTaxesForm
19
+ f as StateTaxesFormProvider,
20
+ u as useStateTaxesForm
20
21
  };
21
22
  //# sourceMappingURL=context.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","sources":["../../../../../src/components/Company/StateTaxes/StateTaxesForm/context.ts"],"sourcesContent":["import type { TaxRequirementsState } from '@gusto/embedded-api/models/components/taxrequirementsstate'\nimport { createCompoundContext } from '@/components/Base'\n\ninterface StateTaxFormContext {\n isPending: boolean\n state: string\n stateTaxRequirements: TaxRequirementsState\n handleCancel: () => void\n}\n\nconst [useStateTaxesForm, StateTaxesFormProvider] =\n createCompoundContext<StateTaxFormContext>('StateTaxesFormContext')\n\nexport { useStateTaxesForm, StateTaxesFormProvider }\n"],"names":["useStateTaxesForm","StateTaxesFormProvider","createCompoundContext"],"mappings":";;;;;;;;;;;;;;;AAUA,MAAM,CAACA,GAAmBC,CAAsB,IAC9CC,EAA2C,uBAAuB;"}
1
+ {"version":3,"file":"context.js","sources":["../../../../../src/components/Company/StateTaxes/StateTaxesForm/context.ts"],"sourcesContent":["import type { TaxRequirementsState } from '@gusto/embedded-api/models/components/taxrequirementsstate'\nimport { createCompoundContext } from '@/components/Base'\n\ninterface StateTaxFormContext {\n isPending: boolean\n state: string\n stateTaxRequirements: TaxRequirementsState\n handleCancel: () => void\n}\n\nconst [useStateTaxesForm, StateTaxesFormProvider] =\n createCompoundContext<StateTaxFormContext>('StateTaxesFormContext')\n\nexport { useStateTaxesForm, StateTaxesFormProvider }\n"],"names":["useStateTaxesForm","StateTaxesFormProvider","createCompoundContext"],"mappings":";;;;;;;;;;;;;;;;AAUA,MAAM,CAACA,GAAmBC,CAAsB,IAC9CC,EAA2C,uBAAuB;"}
@@ -9,13 +9,14 @@ import "@gusto/embedded-api/models/errors/gustoembeddederror";
9
9
  import "@gusto/embedded-api/models/errors/sdkvalidationerror";
10
10
  import "@gusto/embedded-api/models/errors/unprocessableentityerror";
11
11
  import "@gusto/embedded-api/models/errors/httpclienterrors";
12
+ import "dompurify";
13
+ import "../../../../contexts/LocaleProvider/useLocale.js";
12
14
  import "../../../../shared/constants.js";
13
15
  import "../../../../contexts/ComponentAdapter/useComponentContext.js";
14
- import "../../../../contexts/LoadingIndicatorProvider/useLoadingIndicator.js";
15
16
  import { createCompoundContext as t } from "../../../Base/createCompoundContext.js";
16
- const [d, u] = t("StateTaxesListContext");
17
+ const [u, f] = t("StateTaxesListContext");
17
18
  export {
18
- u as StateTaxesListProvider,
19
- d as useStateTaxesList
19
+ f as StateTaxesListProvider,
20
+ u as useStateTaxesList
20
21
  };
21
22
  //# sourceMappingURL=context.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","sources":["../../../../../src/components/Company/StateTaxes/StateTaxesList/context.ts"],"sourcesContent":["import type { TaxRequirementStatesList } from '@gusto/embedded-api/models/components/taxrequirementstateslist'\nimport { createCompoundContext } from '@/components/Base'\n\ntype StateTaxesListContextType = {\n isPending: boolean\n stateTaxRequirements: TaxRequirementStatesList[]\n handleContinue: () => void\n handleChange: (state: string) => void\n handleManageRates: (state: string) => void\n}\n\nconst [useStateTaxesList, StateTaxesListProvider] =\n createCompoundContext<StateTaxesListContextType>('StateTaxesListContext')\n\nexport { useStateTaxesList, StateTaxesListProvider }\n"],"names":["useStateTaxesList","StateTaxesListProvider","createCompoundContext"],"mappings":";;;;;;;;;;;;;;;AAWA,MAAM,CAACA,GAAmBC,CAAsB,IAC9CC,EAAiD,uBAAuB;"}
1
+ {"version":3,"file":"context.js","sources":["../../../../../src/components/Company/StateTaxes/StateTaxesList/context.ts"],"sourcesContent":["import type { TaxRequirementStatesList } from '@gusto/embedded-api/models/components/taxrequirementstateslist'\nimport { createCompoundContext } from '@/components/Base'\n\ntype StateTaxesListContextType = {\n isPending: boolean\n stateTaxRequirements: TaxRequirementStatesList[]\n handleContinue: () => void\n handleChange: (state: string) => void\n handleManageRates: (state: string) => void\n}\n\nconst [useStateTaxesList, StateTaxesListProvider] =\n createCompoundContext<StateTaxesListContextType>('StateTaxesListContext')\n\nexport { useStateTaxesList, StateTaxesListProvider }\n"],"names":["useStateTaxesList","StateTaxesListProvider","createCompoundContext"],"mappings":";;;;;;;;;;;;;;;;AAWA,MAAM,CAACA,GAAmBC,CAAsB,IAC9CC,EAAiD,uBAAuB;"}
@@ -9,13 +9,14 @@ import "@gusto/embedded-api/models/errors/gustoembeddederror";
9
9
  import "@gusto/embedded-api/models/errors/sdkvalidationerror";
10
10
  import "@gusto/embedded-api/models/errors/unprocessableentityerror";
11
11
  import "@gusto/embedded-api/models/errors/httpclienterrors";
12
+ import "dompurify";
13
+ import "../../../../contexts/LocaleProvider/useLocale.js";
12
14
  import "../../../../shared/constants.js";
13
15
  import "../../../../contexts/ComponentAdapter/useComponentContext.js";
14
- import "../../../../contexts/LoadingIndicatorProvider/useLoadingIndicator.js";
15
16
  import { createCompoundContext as t } from "../../../Base/createCompoundContext.js";
16
- const [d, s] = t("TaxRateManagementContext");
17
+ const [s, u] = t("TaxRateManagementContext");
17
18
  export {
18
- s as TaxRateManagementProvider,
19
- d as useTaxRateManagement
19
+ u as TaxRateManagementProvider,
20
+ s as useTaxRateManagement
20
21
  };
21
22
  //# sourceMappingURL=context.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","sources":["../../../../../src/components/Company/StateTaxes/TaxRateManagement/context.ts"],"sourcesContent":["import type { TaxRequirementSet } from '@gusto/embedded-api/models/components/taxrequirementset'\nimport { createCompoundContext } from '@/components/Base'\n\n/**\n * A state's effective-dated requirement sets for a single key, grouped for history display,\n * plus any future-dated candidate sets available to schedule against.\n *\n * @internal\n */\nexport interface TaxRateKeyGroup {\n key: string\n label?: string\n sets: TaxRequirementSet[]\n candidateSets: TaxRequirementSet[]\n}\n\ninterface TaxRateManagementContextType {\n state: string\n groups: TaxRateKeyGroup[]\n isPendingUpdate: boolean\n handleCancel: () => void\n handleAddRate: (\n key: string,\n effectiveFrom: string,\n requirements: { key: string; value: string }[],\n ) => Promise<boolean>\n}\n\nconst [useTaxRateManagement, TaxRateManagementProvider] =\n createCompoundContext<TaxRateManagementContextType>('TaxRateManagementContext')\n\nexport { useTaxRateManagement, TaxRateManagementProvider }\n"],"names":["useTaxRateManagement","TaxRateManagementProvider","createCompoundContext"],"mappings":";;;;;;;;;;;;;;;AA4BA,MAAM,CAACA,GAAsBC,CAAyB,IACpDC,EAAoD,0BAA0B;"}
1
+ {"version":3,"file":"context.js","sources":["../../../../../src/components/Company/StateTaxes/TaxRateManagement/context.ts"],"sourcesContent":["import type { TaxRequirementSet } from '@gusto/embedded-api/models/components/taxrequirementset'\nimport { createCompoundContext } from '@/components/Base'\n\n/**\n * A state's effective-dated requirement sets for a single key, grouped for history display,\n * plus any future-dated candidate sets available to schedule against.\n *\n * @internal\n */\nexport interface TaxRateKeyGroup {\n key: string\n label?: string\n sets: TaxRequirementSet[]\n candidateSets: TaxRequirementSet[]\n}\n\ninterface TaxRateManagementContextType {\n state: string\n groups: TaxRateKeyGroup[]\n isPendingUpdate: boolean\n handleCancel: () => void\n handleAddRate: (\n key: string,\n effectiveFrom: string,\n requirements: { key: string; value: string }[],\n ) => Promise<boolean>\n}\n\nconst [useTaxRateManagement, TaxRateManagementProvider] =\n createCompoundContext<TaxRateManagementContextType>('TaxRateManagementContext')\n\nexport { useTaxRateManagement, TaxRateManagementProvider }\n"],"names":["useTaxRateManagement","TaxRateManagementProvider","createCompoundContext"],"mappings":";;;;;;;;;;;;;;;;AA4BA,MAAM,CAACA,GAAsBC,CAAyB,IACpDC,EAAoD,0BAA0B;"}