@gusto/embedded-react-sdk 0.48.0 → 0.48.2

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 (451) hide show
  1. package/CHANGELOG.md +34 -0
  2. package/dist/components/Common/DocumentList/DocumentList.js +12 -12
  3. package/dist/components/Common/DocumentList/DocumentList.js.map +1 -1
  4. package/dist/components/Common/DocumentList/DocumentList.module.scss.js +3 -5
  5. package/dist/components/Common/DocumentList/DocumentList.module.scss.js.map +1 -1
  6. package/dist/components/Common/EmptyData/EmptyData.d.ts +1 -1
  7. package/dist/components/Common/EmptyData/EmptyData.js +10 -12
  8. package/dist/components/Common/EmptyData/EmptyData.js.map +1 -1
  9. package/dist/components/Common/EmptyData/EmptyData.module.scss.js +6 -10
  10. package/dist/components/Common/EmptyData/EmptyData.module.scss.js.map +1 -1
  11. package/dist/components/Common/Form/Form.d.ts +1 -1
  12. package/dist/components/Common/Form/Form.js +8 -7
  13. package/dist/components/Common/Form/Form.js.map +1 -1
  14. package/dist/components/Common/HorizontalFieldLayout/HorizontalFieldLayoutTypes.d.ts +1 -0
  15. package/dist/components/Common/PaginationControl/PaginationControlTypes.d.ts +7 -3
  16. package/dist/components/Common/PayrollLoading/PayrollLoadingTypes.d.ts +1 -0
  17. package/dist/components/Common/UI/Alert/AlertTypes.d.ts +1 -0
  18. package/dist/components/Common/UI/Alert/AlertTypes.js.map +1 -1
  19. package/dist/components/Common/UI/Badge/BadgeTypes.d.ts +1 -0
  20. package/dist/components/Common/UI/Badge/BadgeTypes.js.map +1 -1
  21. package/dist/components/Common/UI/Banner/BannerTypes.d.ts +1 -0
  22. package/dist/components/Common/UI/Banner/BannerTypes.js.map +1 -1
  23. package/dist/components/Common/UI/Box/BoxTypes.d.ts +1 -0
  24. package/dist/components/Common/UI/BoxHeader/BoxHeaderTypes.d.ts +1 -0
  25. package/dist/components/Common/UI/BoxHeader/BoxHeaderTypes.js.map +1 -1
  26. package/dist/components/Common/UI/Breadcrumbs/BreadcrumbsTypes.d.ts +2 -0
  27. package/dist/components/Common/UI/Breadcrumbs/BreadcrumbsTypes.js.map +1 -1
  28. package/dist/components/Common/UI/Button/ButtonTypes.d.ts +4 -2
  29. package/dist/components/Common/UI/Button/ButtonTypes.js.map +1 -1
  30. package/dist/components/Common/UI/CalendarPreview/CalendarPreviewTypes.d.ts +3 -2
  31. package/dist/components/Common/UI/Card/Card.js +8 -8
  32. package/dist/components/Common/UI/Card/Card.js.map +1 -1
  33. package/dist/components/Common/UI/Card/Card.module.scss.js +5 -3
  34. package/dist/components/Common/UI/Card/Card.module.scss.js.map +1 -1
  35. package/dist/components/Common/UI/Card/CardTypes.d.ts +1 -0
  36. package/dist/components/Common/UI/Checkbox/CheckboxTypes.d.ts +1 -0
  37. package/dist/components/Common/UI/Checkbox/CheckboxTypes.js.map +1 -1
  38. package/dist/components/Common/UI/CheckboxGroup/CheckboxGroupTypes.d.ts +2 -0
  39. package/dist/components/Common/UI/CheckboxGroup/CheckboxGroupTypes.js.map +1 -1
  40. package/dist/components/Common/UI/ComboBox/ComboBoxTypes.d.ts +2 -0
  41. package/dist/components/Common/UI/DatePicker/DatePickerTypes.d.ts +1 -0
  42. package/dist/components/Common/UI/DateRangePicker/DateRangePickerTypes.d.ts +2 -0
  43. package/dist/components/Common/UI/DescriptionList/DescriptionListTypes.d.ts +2 -0
  44. package/dist/components/Common/UI/DescriptionList/DescriptionListTypes.js.map +1 -1
  45. package/dist/components/Common/UI/Dialog/DialogTypes.d.ts +1 -0
  46. package/dist/components/Common/UI/Dialog/DialogTypes.js.map +1 -1
  47. package/dist/components/Common/UI/FileInput/FileInputTypes.d.ts +1 -0
  48. package/dist/components/Common/UI/FileInput/FileInputTypes.js.map +1 -1
  49. package/dist/components/Common/UI/Heading/HeadingTypes.d.ts +1 -0
  50. package/dist/components/Common/UI/Link/LinkTypes.d.ts +4 -3
  51. package/dist/components/Common/UI/List/ListTypes.d.ts +13 -4
  52. package/dist/components/Common/UI/LoadingSpinner/LoadingSpinnerTypes.d.ts +1 -0
  53. package/dist/components/Common/UI/LoadingSpinner/LoadingSpinnerTypes.js.map +1 -1
  54. package/dist/components/Common/UI/Menu/MenuTypes.d.ts +2 -0
  55. package/dist/components/Common/UI/Menu/MenuTypes.js.map +1 -1
  56. package/dist/components/Common/UI/Modal/ModalTypes.d.ts +1 -0
  57. package/dist/components/Common/UI/Modal/ModalTypes.js.map +1 -1
  58. package/dist/components/Common/UI/MultiSelectComboBox/MultiSelectComboBoxTypes.d.ts +2 -0
  59. package/dist/components/Common/UI/NumberInput/NumberInputTypes.d.ts +1 -0
  60. package/dist/components/Common/UI/ProgressBar/ProgressBarTypes.d.ts +1 -0
  61. package/dist/components/Common/UI/Radio/RadioTypes.d.ts +1 -0
  62. package/dist/components/Common/UI/Radio/RadioTypes.js.map +1 -1
  63. package/dist/components/Common/UI/RadioGroup/RadioGroupTypes.d.ts +2 -0
  64. package/dist/components/Common/UI/RadioGroup/RadioGroupTypes.js.map +1 -1
  65. package/dist/components/Common/UI/Select/SelectTypes.d.ts +2 -0
  66. package/dist/components/Common/UI/Switch/SwitchTypes.d.ts +1 -0
  67. package/dist/components/Common/UI/Switch/SwitchTypes.js.map +1 -1
  68. package/dist/components/Common/UI/Table/TableTypes.d.ts +3 -0
  69. package/dist/components/Common/UI/Table/TableTypes.js.map +1 -1
  70. package/dist/components/Common/UI/Tabs/TabsTypes.d.ts +2 -0
  71. package/dist/components/Common/UI/Text/TextTypes.d.ts +1 -0
  72. package/dist/components/Common/UI/Text/TextTypes.js.map +1 -1
  73. package/dist/components/Common/UI/TextArea/TextAreaTypes.d.ts +1 -0
  74. package/dist/components/Common/UI/TextArea/TextAreaTypes.js.map +1 -1
  75. package/dist/components/Common/UI/TextInput/TextInputTypes.d.ts +1 -0
  76. package/dist/components/Common/UI/TextInput/TextInputTypes.js.map +1 -1
  77. package/dist/components/Company/AssignSignatory/CreateSignatory/useCreateSignatory.js +5 -4
  78. package/dist/components/Company/AssignSignatory/CreateSignatory/useCreateSignatory.js.map +1 -1
  79. package/dist/components/Company/AssignSignatory/InviteSignatory/useInviteSignatory.js +5 -4
  80. package/dist/components/Company/AssignSignatory/InviteSignatory/useInviteSignatory.js.map +1 -1
  81. package/dist/components/Company/AssignSignatory/useAssignSignatory.js +7 -6
  82. package/dist/components/Company/AssignSignatory/useAssignSignatory.js.map +1 -1
  83. package/dist/components/Company/BankAccount/BankAccountForm/context.js +5 -4
  84. package/dist/components/Company/BankAccount/BankAccountForm/context.js.map +1 -1
  85. package/dist/components/Company/DocumentSigner/DocumentList/useDocumentList.js +5 -4
  86. package/dist/components/Company/DocumentSigner/DocumentList/useDocumentList.js.map +1 -1
  87. package/dist/components/Company/DocumentSigner/shared/useSignCompanyForm/fields.js +4 -4
  88. package/dist/components/Company/FederalTaxes/useFederalTaxes.js +10 -9
  89. package/dist/components/Company/FederalTaxes/useFederalTaxes.js.map +1 -1
  90. package/dist/components/Company/Industry/Context.js +8 -7
  91. package/dist/components/Company/Industry/Context.js.map +1 -1
  92. package/dist/components/Company/Industry/IndustrySelect.js +6 -8
  93. package/dist/components/Company/Industry/IndustrySelect.js.map +1 -1
  94. package/dist/components/Company/Locations/LocationForm/useLocationForm.js +5 -4
  95. package/dist/components/Company/Locations/LocationForm/useLocationForm.js.map +1 -1
  96. package/dist/components/Company/Locations/LocationsList/useLocationsList.js +5 -4
  97. package/dist/components/Company/Locations/LocationsList/useLocationsList.js.map +1 -1
  98. package/dist/components/Company/OnboardingOverview/context.js +5 -4
  99. package/dist/components/Company/OnboardingOverview/context.js.map +1 -1
  100. package/dist/components/Company/PaySchedule/PayScheduleForm.js +3 -1
  101. package/dist/components/Company/PaySchedule/PayScheduleForm.js.map +1 -1
  102. package/dist/components/Company/PaySchedule/shared/usePayScheduleForm/fields.js +5 -5
  103. package/dist/components/Company/StateTaxes/StateTaxesForm/context.js +5 -4
  104. package/dist/components/Company/StateTaxes/StateTaxesForm/context.js.map +1 -1
  105. package/dist/components/Company/StateTaxes/StateTaxesList/context.js +5 -4
  106. package/dist/components/Company/StateTaxes/StateTaxesList/context.js.map +1 -1
  107. package/dist/components/Contractor/Address/useAddress.js +7 -6
  108. package/dist/components/Contractor/Address/useAddress.js.map +1 -1
  109. package/dist/components/Contractor/Profile/useContractorProfile.js +26 -27
  110. package/dist/components/Contractor/Profile/useContractorProfile.js.map +1 -1
  111. package/dist/components/Employee/Compensation/shared/useCompensationForm/fields.js +6 -6
  112. package/dist/components/Employee/Compensation/shared/useJobForm/fields.js +10 -10
  113. package/dist/components/Employee/Deductions/shared/useChildSupportGarnishmentForm/fields.js +1 -1
  114. package/dist/components/Employee/Deductions/shared/useDeductionForm/fields.js +2 -2
  115. package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/DocumentList.d.ts +25 -5
  116. package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/DocumentList.js.map +1 -1
  117. package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/index.d.ts +3 -0
  118. package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/useDocumentList.js +5 -4
  119. package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/useDocumentList.js.map +1 -1
  120. package/dist/components/Employee/Documents/onboarding/DocumentSigner/I9SignatureForm/I9SignatureForm.d.ts +28 -5
  121. package/dist/components/Employee/Documents/onboarding/DocumentSigner/I9SignatureForm/I9SignatureForm.js +3 -1
  122. package/dist/components/Employee/Documents/onboarding/DocumentSigner/I9SignatureForm/I9SignatureForm.js.map +1 -1
  123. package/dist/components/Employee/Documents/onboarding/DocumentSigner/I9SignatureForm/index.d.ts +3 -0
  124. package/dist/components/Employee/Documents/shared/SignatureForm/SignatureForm.d.ts +26 -5
  125. package/dist/components/Employee/Documents/shared/SignatureForm/SignatureForm.js +3 -1
  126. package/dist/components/Employee/Documents/shared/SignatureForm/SignatureForm.js.map +1 -1
  127. package/dist/components/Employee/Documents/shared/SignatureForm/index.d.ts +3 -0
  128. package/dist/components/Employee/Documents/shared/useSignEmployeeForm/fields.js +2 -2
  129. package/dist/components/Employee/FederalTaxes/shared/useFederalTaxesForm/fields.js +1 -1
  130. package/dist/components/Employee/PaymentMethod/shared/useSplitPaymentsForm/splitFieldFactory.js +4 -4
  131. package/dist/components/Employee/Profile/shared/useEmployeeDetailsForm/fields.js +8 -8
  132. package/dist/components/Employee/Profile/shared/useHomeAddressForm/fields.js +6 -6
  133. package/dist/components/Employee/Profile/shared/useWorkAddressForm/fields.js +4 -4
  134. package/dist/components/Employee/StateTaxes/shared/useEmployeeStateTaxesForm/fieldComponents.js +8 -8
  135. package/dist/components/Employee/exports/employeeOnboarding.d.ts +3 -0
  136. package/dist/components/Employee/exports/employeeOnboarding.js +28 -22
  137. package/dist/components/Employee/exports/employeeOnboarding.js.map +1 -1
  138. package/dist/components/InformationRequests/InformationRequestForm/InformationRequestForm.d.ts +36 -2
  139. package/dist/components/InformationRequests/InformationRequestForm/InformationRequestForm.js.map +1 -1
  140. package/dist/components/InformationRequests/InformationRequestForm/index.d.ts +1 -1
  141. package/dist/components/InformationRequests/InformationRequestList/InformationRequestList.d.ts +22 -2
  142. package/dist/components/InformationRequests/InformationRequestList/InformationRequestList.js.map +1 -1
  143. package/dist/components/InformationRequests/InformationRequestList/index.d.ts +1 -1
  144. package/dist/components/InformationRequests/InformationRequests.d.ts +29 -2
  145. package/dist/components/InformationRequests/InformationRequests.js.map +1 -1
  146. package/dist/components/InformationRequests/InformationRequestsComponents.d.ts +2 -0
  147. package/dist/components/InformationRequests/InformationRequestsComponents.js.map +1 -1
  148. package/dist/components/InformationRequests/index.d.ts +3 -3
  149. package/dist/components/InformationRequests/informationRequestsStateMachine.d.ts +2 -0
  150. package/dist/components/InformationRequests/informationRequestsStateMachine.js.map +1 -1
  151. package/dist/components/Payroll/ConfirmWireDetails/ConfirmWireDetails.d.ts +36 -3
  152. package/dist/components/Payroll/ConfirmWireDetails/ConfirmWireDetails.js +6 -2
  153. package/dist/components/Payroll/ConfirmWireDetails/ConfirmWireDetails.js.map +1 -1
  154. package/dist/components/Payroll/ConfirmWireDetails/ConfirmWireDetailsBanner/ConfirmWireDetailsBanner.d.ts +1 -0
  155. package/dist/components/Payroll/ConfirmWireDetails/ConfirmWireDetailsBanner/ConfirmWireDetailsBanner.js.map +1 -1
  156. package/dist/components/Payroll/ConfirmWireDetails/ConfirmWireDetailsComponents.d.ts +14 -0
  157. package/dist/components/Payroll/ConfirmWireDetails/ConfirmWireDetailsComponents.js.map +1 -1
  158. package/dist/components/Payroll/ConfirmWireDetails/ConfirmWireDetailsForm/ConfirmWireDetailsForm.d.ts +1 -8
  159. package/dist/components/Payroll/ConfirmWireDetails/ConfirmWireDetailsForm/ConfirmWireDetailsForm.js +1 -2
  160. package/dist/components/Payroll/ConfirmWireDetails/ConfirmWireDetailsForm/ConfirmWireDetailsForm.js.map +1 -1
  161. package/dist/components/Payroll/ConfirmWireDetails/WireInstructions/WireInstructions.d.ts +1 -1
  162. package/dist/components/Payroll/ConfirmWireDetails/WireInstructions/WireInstructions.js +0 -1
  163. package/dist/components/Payroll/ConfirmWireDetails/WireInstructions/WireInstructions.js.map +1 -1
  164. package/dist/components/Payroll/ConfirmWireDetails/confirmWireDetailsStateMachine.d.ts +11 -0
  165. package/dist/components/Payroll/ConfirmWireDetails/confirmWireDetailsStateMachine.js.map +1 -1
  166. package/dist/components/Payroll/ConfirmWireDetails/index.d.ts +1 -2
  167. package/dist/components/Payroll/ConfirmWireDetails/types.d.ts +23 -0
  168. package/dist/components/Payroll/Dismissal/DismissalFlow.d.ts +18 -0
  169. package/dist/components/Payroll/Dismissal/DismissalFlow.js.map +1 -1
  170. package/dist/components/Payroll/Dismissal/DismissalFlowComponents.d.ts +15 -0
  171. package/dist/components/Payroll/Dismissal/DismissalFlowComponents.js.map +1 -1
  172. package/dist/components/Payroll/Dismissal/DismissalPayPeriodSelection/DismissalPayPeriodSelection.d.ts +24 -0
  173. package/dist/components/Payroll/Dismissal/DismissalPayPeriodSelection/DismissalPayPeriodSelection.js.map +1 -1
  174. package/dist/components/Payroll/Dismissal/DismissalPayPeriodSelection/DismissalPayPeriodSelectionPresentation.d.ts +7 -0
  175. package/dist/components/Payroll/Dismissal/DismissalPayPeriodSelection/DismissalPayPeriodSelectionPresentation.js.map +1 -1
  176. package/dist/components/Payroll/Dismissal/dismissalStateMachine.d.ts +2 -0
  177. package/dist/components/Payroll/Dismissal/dismissalStateMachine.js.map +1 -1
  178. package/dist/components/Payroll/Dismissal/index.d.ts +1 -1
  179. package/dist/components/Payroll/GrossUpModal/GrossUpModal.d.ts +1 -0
  180. package/dist/components/Payroll/GrossUpModal/GrossUpModal.js +2 -3
  181. package/dist/components/Payroll/GrossUpModal/GrossUpModal.js.map +1 -1
  182. package/dist/components/Payroll/GrossUpModal/GrossUpModalTypes.d.ts +5 -0
  183. package/dist/components/Payroll/GrossUpModal/index.d.ts +0 -1
  184. package/dist/components/Payroll/OffCycle/OffCycleFlow.d.ts +31 -0
  185. package/dist/components/Payroll/OffCycle/OffCycleFlow.js.map +1 -1
  186. package/dist/components/Payroll/OffCycle/OffCycleFlowComponents.d.ts +20 -0
  187. package/dist/components/Payroll/OffCycle/OffCycleFlowComponents.js.map +1 -1
  188. package/dist/components/Payroll/OffCycle/offCycleStateMachine.d.ts +2 -0
  189. package/dist/components/Payroll/OffCycle/offCycleStateMachine.js.map +1 -1
  190. package/dist/components/Payroll/OffCycleCreation/OffCycleCreation.d.ts +20 -0
  191. package/dist/components/Payroll/OffCycleCreation/OffCycleCreation.js.map +1 -1
  192. package/dist/components/Payroll/OffCycleCreation/OffCycleCreationPresentation.d.ts +1 -0
  193. package/dist/components/Payroll/OffCycleCreation/OffCycleCreationPresentation.js.map +1 -1
  194. package/dist/components/Payroll/OffCycleCreation/OffCycleCreationTypes.d.ts +24 -0
  195. package/dist/components/Payroll/OffCycleCreation/index.d.ts +1 -1
  196. package/dist/components/Payroll/OffCycleDeductionsSetting/OffCycleDeductionsSetting.d.ts +16 -0
  197. package/dist/components/Payroll/OffCycleDeductionsSetting/OffCycleDeductionsSetting.js.map +1 -1
  198. package/dist/components/Payroll/OffCycleDeductionsSetting/types.d.ts +13 -0
  199. package/dist/components/Payroll/OffCyclePayPeriodDateForm/OffCyclePayPeriodDateFormPresentation.d.ts +1 -0
  200. package/dist/components/Payroll/OffCyclePayPeriodDateForm/OffCyclePayPeriodDateFormPresentation.js.map +1 -1
  201. package/dist/components/Payroll/OffCyclePayPeriodDateForm/OffCyclePayPeriodDateFormTypes.d.ts +18 -1
  202. package/dist/components/Payroll/OffCyclePayPeriodDateForm/OffCyclePayPeriodDateFormTypes.js.map +1 -1
  203. package/dist/components/Payroll/OffCyclePayPeriodDateForm/useOffCyclePayPeriodDateValidation.d.ts +1 -1
  204. package/dist/components/Payroll/OffCyclePayPeriodDateForm/useOffCyclePayPeriodDateValidation.js +0 -1
  205. package/dist/components/Payroll/OffCyclePayPeriodDateForm/useOffCyclePayPeriodDateValidation.js.map +1 -1
  206. package/dist/components/Payroll/OffCycleReasonSelection/OffCycleReasonSelection.d.ts +15 -0
  207. package/dist/components/Payroll/OffCycleReasonSelection/OffCycleReasonSelection.js.map +1 -1
  208. package/dist/components/Payroll/OffCycleReasonSelection/OffCycleReasonSelectionPresentation.d.ts +1 -0
  209. package/dist/components/Payroll/OffCycleReasonSelection/OffCycleReasonSelectionPresentation.js.map +1 -1
  210. package/dist/components/Payroll/OffCycleReasonSelection/types.d.ts +43 -0
  211. package/dist/components/Payroll/OffCycleReasonSelection/types.js.map +1 -1
  212. package/dist/components/Payroll/OffCycleTaxWithholdingModal/OffCycleTaxWithholdingModal.d.ts +1 -0
  213. package/dist/components/Payroll/OffCycleTaxWithholdingModal/OffCycleTaxWithholdingModal.js.map +1 -1
  214. package/dist/components/Payroll/OffCycleTaxWithholdingModal/OffCycleTaxWithholdingModalTypes.d.ts +5 -1
  215. package/dist/components/Payroll/OffCycleTaxWithholdingModal/index.d.ts +0 -1
  216. package/dist/components/Payroll/OffCycleTaxWithholdingTable/OffCycleTaxWithholdingTable.d.ts +1 -0
  217. package/dist/components/Payroll/OffCycleTaxWithholdingTable/OffCycleTaxWithholdingTable.js.map +1 -1
  218. package/dist/components/Payroll/OffCycleTaxWithholdingTable/OffCycleTaxWithholdingTableTypes.d.ts +14 -0
  219. package/dist/components/Payroll/OffCycleTaxWithholdingTable/OffCycleTaxWithholdingTableTypes.js.map +1 -1
  220. package/dist/components/Payroll/OffCycleTaxWithholdingTable/index.d.ts +0 -2
  221. package/dist/components/Payroll/PayrollBlocker/components/PayrollBlockerAlerts.d.ts +3 -0
  222. package/dist/components/Payroll/PayrollBlocker/components/PayrollBlockerAlerts.js.map +1 -1
  223. package/dist/components/Payroll/PayrollBlocker/components/PayrollBlockerList.d.ts +19 -5
  224. package/dist/components/Payroll/PayrollBlocker/components/PayrollBlockerList.js.map +1 -1
  225. package/dist/components/Payroll/PayrollBlocker/index.d.ts +0 -1
  226. package/dist/components/Payroll/PayrollBlocker/payrollHelpers.d.ts +17 -11
  227. package/dist/components/Payroll/PayrollBlocker/payrollHelpers.js +0 -2
  228. package/dist/components/Payroll/PayrollBlocker/payrollHelpers.js.map +1 -1
  229. package/dist/components/Payroll/PayrollConfiguration/PayrollConfiguration.d.ts +31 -3
  230. package/dist/components/Payroll/PayrollConfiguration/PayrollConfiguration.js +1 -2
  231. package/dist/components/Payroll/PayrollConfiguration/PayrollConfiguration.js.map +1 -1
  232. package/dist/components/Payroll/PayrollConfiguration/PayrollConfigurationPresentation.d.ts +1 -0
  233. package/dist/components/Payroll/PayrollConfiguration/PayrollConfigurationPresentation.js.map +1 -1
  234. package/dist/components/Payroll/PayrollConfiguration/grossUpHelpers.d.ts +2 -0
  235. package/dist/components/Payroll/PayrollConfiguration/grossUpHelpers.js.map +1 -1
  236. package/dist/components/Payroll/PayrollConfiguration/usePayrollConfigurationData.d.ts +2 -0
  237. package/dist/components/Payroll/PayrollConfiguration/usePayrollConfigurationData.js.map +1 -1
  238. package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployee.d.ts +42 -3
  239. package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployee.js +1 -2
  240. package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployee.js.map +1 -1
  241. package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployeePresentation.d.ts +3 -1
  242. package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployeePresentation.js +0 -1
  243. package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployeePresentation.js.map +1 -1
  244. package/dist/components/Payroll/PayrollEditEmployee/TimeOffField.d.ts +8 -6
  245. package/dist/components/Payroll/PayrollEditEmployee/TimeOffField.js +0 -1
  246. package/dist/components/Payroll/PayrollEditEmployee/TimeOffField.js.map +1 -1
  247. package/dist/components/Payroll/PayrollExecutionFlow/PayrollExecutionFlow.d.ts +65 -0
  248. package/dist/components/Payroll/PayrollExecutionFlow/PayrollExecutionFlow.js.map +1 -1
  249. package/dist/components/Payroll/PayrollExecutionFlow/index.d.ts +0 -1
  250. package/dist/components/Payroll/PayrollExecutionFlow/payrollExecutionMachine.d.ts +2 -0
  251. package/dist/components/Payroll/PayrollExecutionFlow/payrollExecutionMachine.js.map +1 -1
  252. package/dist/components/Payroll/PayrollFlow/OffCycleFlowContextual.d.ts +1 -0
  253. package/dist/components/Payroll/PayrollFlow/OffCycleFlowContextual.js.map +1 -1
  254. package/dist/components/Payroll/PayrollFlow/PayrollExecutionFlowContextual.d.ts +1 -0
  255. package/dist/components/Payroll/PayrollFlow/PayrollExecutionFlowContextual.js.map +1 -1
  256. package/dist/components/Payroll/PayrollFlow/PayrollFlow.d.ts +38 -0
  257. package/dist/components/Payroll/PayrollFlow/PayrollFlow.js.map +1 -1
  258. package/dist/components/Payroll/PayrollFlow/PayrollFlowComponents.d.ts +27 -0
  259. package/dist/components/Payroll/PayrollFlow/PayrollFlowComponents.js.map +1 -1
  260. package/dist/components/Payroll/PayrollFlow/TransitionFlowContextual.d.ts +1 -0
  261. package/dist/components/Payroll/PayrollFlow/TransitionFlowContextual.js.map +1 -1
  262. package/dist/components/Payroll/PayrollFlow/payrollStateMachine.d.ts +2 -0
  263. package/dist/components/Payroll/PayrollFlow/payrollStateMachine.js.map +1 -1
  264. package/dist/components/Payroll/PayrollHistory/PayrollHistory.d.ts +25 -1
  265. package/dist/components/Payroll/PayrollHistory/PayrollHistory.js +1 -2
  266. package/dist/components/Payroll/PayrollHistory/PayrollHistory.js.map +1 -1
  267. package/dist/components/Payroll/PayrollHistory/PayrollHistoryPresentation.d.ts +1 -0
  268. package/dist/components/Payroll/PayrollHistory/PayrollHistoryPresentation.js.map +1 -1
  269. package/dist/components/Payroll/PayrollLanding/PayrollLanding.d.ts +33 -4
  270. package/dist/components/Payroll/PayrollLanding/PayrollLanding.js +1 -2
  271. package/dist/components/Payroll/PayrollLanding/PayrollLanding.js.map +1 -1
  272. package/dist/components/Payroll/PayrollLanding/PayrollLandingFlowComponents.d.ts +19 -0
  273. package/dist/components/Payroll/PayrollLanding/PayrollLandingFlowComponents.js.map +1 -1
  274. package/dist/components/Payroll/PayrollLanding/payrollLandingStateMachine.d.ts +2 -0
  275. package/dist/components/Payroll/PayrollLanding/payrollLandingStateMachine.js.map +1 -1
  276. package/dist/components/Payroll/PayrollList/PayrollList.d.ts +32 -13
  277. package/dist/components/Payroll/PayrollList/PayrollList.js.map +1 -1
  278. package/dist/components/Payroll/PayrollList/PayrollListPresentation.d.ts +1 -0
  279. package/dist/components/Payroll/PayrollList/PayrollListPresentation.js +65 -68
  280. package/dist/components/Payroll/PayrollList/PayrollListPresentation.js.map +1 -1
  281. package/dist/components/Payroll/PayrollList/types.d.ts +1 -0
  282. package/dist/components/Payroll/PayrollOverview/PayrollOverview.d.ts +39 -3
  283. package/dist/components/Payroll/PayrollOverview/PayrollOverview.js +1 -2
  284. package/dist/components/Payroll/PayrollOverview/PayrollOverview.js.map +1 -1
  285. package/dist/components/Payroll/PayrollOverview/PayrollOverviewPresentation.d.ts +1 -0
  286. package/dist/components/Payroll/PayrollOverview/PayrollOverviewPresentation.js.map +1 -1
  287. package/dist/components/Payroll/PayrollOverview/PayrollOverviewTypes.d.ts +1 -0
  288. package/dist/components/Payroll/PayrollOverview/PayrollOverviewTypes.js.map +1 -1
  289. package/dist/components/Payroll/PayrollOverview/SubmissionBlockers/FastAchSubmissionBlockerBanner.d.ts +1 -0
  290. package/dist/components/Payroll/PayrollOverview/SubmissionBlockers/FastAchSubmissionBlockerBanner.js.map +1 -1
  291. package/dist/components/Payroll/PayrollOverview/SubmissionBlockers/GenericBlocker.d.ts +1 -0
  292. package/dist/components/Payroll/PayrollOverview/SubmissionBlockers/GenericBlocker.js.map +1 -1
  293. package/dist/components/Payroll/PayrollReceipts/PayrollReceipts.d.ts +26 -3
  294. package/dist/components/Payroll/PayrollReceipts/PayrollReceipts.js +2 -7
  295. package/dist/components/Payroll/PayrollReceipts/PayrollReceipts.js.map +1 -1
  296. package/dist/components/Payroll/PayrollReceipts/PayrollReceiptsPresentation.d.ts +1 -0
  297. package/dist/components/Payroll/PayrollReceipts/PayrollReceiptsPresentation.js.map +1 -1
  298. package/dist/components/Payroll/PayrollStatusBadges/PayrollStatusBadges.d.ts +1 -0
  299. package/dist/components/Payroll/PayrollStatusBadges/PayrollStatusBadges.js.map +1 -1
  300. package/dist/components/Payroll/PayrollStatusBadges/index.d.ts +0 -2
  301. package/dist/components/Payroll/PayrollStatusBadges/payrollStatusConfig.d.ts +26 -0
  302. package/dist/components/Payroll/PayrollStatusBadges/payrollStatusConfig.js.map +1 -1
  303. package/dist/components/Payroll/PayrollStatusBadges/usePayrollStatusBadges.d.ts +2 -0
  304. package/dist/components/Payroll/PayrollStatusBadges/usePayrollStatusBadges.js.map +1 -1
  305. package/dist/components/Payroll/RecoveryCases/RecoveryCases.d.ts +21 -1
  306. package/dist/components/Payroll/RecoveryCases/RecoveryCases.js.map +1 -1
  307. package/dist/components/Payroll/RecoveryCases/RecoveryCasesComponents.d.ts +5 -0
  308. package/dist/components/Payroll/RecoveryCases/RecoveryCasesComponents.js.map +1 -1
  309. package/dist/components/Payroll/RecoveryCases/RecoveryCasesList/RecoveryCasesList.d.ts +1 -0
  310. package/dist/components/Payroll/RecoveryCases/RecoveryCasesList/RecoveryCasesList.js.map +1 -1
  311. package/dist/components/Payroll/RecoveryCases/RecoveryCasesResubmit/RecoveryCasesResubmit.d.ts +1 -0
  312. package/dist/components/Payroll/RecoveryCases/RecoveryCasesResubmit/RecoveryCasesResubmit.js.map +1 -1
  313. package/dist/components/Payroll/RecoveryCases/index.d.ts +0 -1
  314. package/dist/components/Payroll/RecoveryCases/recoveryCasesStateMachine.d.ts +5 -0
  315. package/dist/components/Payroll/RecoveryCases/recoveryCasesStateMachine.js.map +1 -1
  316. package/dist/components/Payroll/RecoveryCases/useRecoveryCaseErrorCode.d.ts +5 -0
  317. package/dist/components/Payroll/RecoveryCases/useRecoveryCaseErrorCode.js.map +1 -1
  318. package/dist/components/Payroll/Transition/TransitionFlow.d.ts +21 -0
  319. package/dist/components/Payroll/Transition/TransitionFlow.js.map +1 -1
  320. package/dist/components/Payroll/Transition/TransitionFlowComponents.d.ts +23 -0
  321. package/dist/components/Payroll/Transition/TransitionFlowComponents.js.map +1 -1
  322. package/dist/components/Payroll/Transition/transitionStateMachine.d.ts +2 -0
  323. package/dist/components/Payroll/Transition/transitionStateMachine.js.map +1 -1
  324. package/dist/components/Payroll/TransitionCreation/TransitionCreation.d.ts +20 -0
  325. package/dist/components/Payroll/TransitionCreation/TransitionCreation.js.map +1 -1
  326. package/dist/components/Payroll/TransitionCreation/TransitionCreationPresentation.d.ts +7 -0
  327. package/dist/components/Payroll/TransitionCreation/TransitionCreationPresentation.js.map +1 -1
  328. package/dist/components/Payroll/TransitionCreation/TransitionCreationTypes.d.ts +27 -0
  329. package/dist/components/Payroll/TransitionCreation/TransitionCreationTypes.js.map +1 -1
  330. package/dist/components/Payroll/TransitionPayrollAlert/TransitionPayrollAlert.d.ts +1 -0
  331. package/dist/components/Payroll/TransitionPayrollAlert/TransitionPayrollAlert.js.map +1 -1
  332. package/dist/components/Payroll/TransitionPayrollAlert/TransitionPayrollAlertPresentation.d.ts +5 -0
  333. package/dist/components/Payroll/TransitionPayrollAlert/TransitionPayrollAlertPresentation.js.map +1 -1
  334. package/dist/components/Payroll/helpers.d.ts +157 -26
  335. package/dist/components/Payroll/helpers.js +0 -1
  336. package/dist/components/Payroll/helpers.js.map +1 -1
  337. package/dist/components/Payroll/index.d.ts +11 -2
  338. package/dist/components/Payroll/payrollTypes.d.ts +24 -0
  339. package/dist/components/Payroll/payrollTypes.js.map +1 -1
  340. package/dist/components/Payroll/usePreparedPayrollData.d.ts +12 -0
  341. package/dist/components/Payroll/usePreparedPayrollData.js +4 -3
  342. package/dist/components/Payroll/usePreparedPayrollData.js.map +1 -1
  343. package/dist/components/Payroll/useUnprocessedTransitionPayPeriods.d.ts +7 -0
  344. package/dist/components/Payroll/useUnprocessedTransitionPayPeriods.js.map +1 -1
  345. package/dist/components/TimeOff/AddEmployeesHoliday/AddEmployeesHoliday.d.ts +19 -0
  346. package/dist/components/TimeOff/AddEmployeesHoliday/AddEmployeesHoliday.js.map +1 -1
  347. package/dist/components/TimeOff/AddEmployeesToPolicy/AddEmployeesToPolicy.d.ts +44 -0
  348. package/dist/components/TimeOff/AddEmployeesToPolicy/AddEmployeesToPolicy.js.map +1 -1
  349. package/dist/components/TimeOff/HolidayPolicyDetail/HolidayPolicyDetail.d.ts +4 -0
  350. package/dist/components/TimeOff/HolidayPolicyDetail/HolidayPolicyDetail.js.map +1 -1
  351. package/dist/components/TimeOff/HolidayPolicyDetail/HolidayPolicyDetailPresentation.d.ts +1 -0
  352. package/dist/components/TimeOff/HolidayPolicyDetail/HolidayPolicyDetailPresentation.js.map +1 -1
  353. package/dist/components/TimeOff/HolidayPolicyDetail/HolidayPolicyDetailTypes.d.ts +28 -2
  354. package/dist/components/TimeOff/HolidayPolicyDetail/index.d.ts +0 -2
  355. package/dist/components/TimeOff/HolidaySelectionForm/HolidaySelectionForm.d.ts +26 -0
  356. package/dist/components/TimeOff/HolidaySelectionForm/HolidaySelectionForm.js.map +1 -1
  357. package/dist/components/TimeOff/HolidaySelectionForm/HolidaySelectionFormPresentation.d.ts +1 -0
  358. package/dist/components/TimeOff/HolidaySelectionForm/HolidaySelectionFormPresentation.js.map +1 -1
  359. package/dist/components/TimeOff/HolidaySelectionForm/HolidaySelectionFormTypes.d.ts +10 -0
  360. package/dist/components/TimeOff/PolicyList/PolicyList.d.ts +25 -0
  361. package/dist/components/TimeOff/PolicyList/PolicyList.js.map +1 -1
  362. package/dist/components/TimeOff/PolicyList/PolicyListPresentation.d.ts +1 -0
  363. package/dist/components/TimeOff/PolicyList/PolicyListPresentation.js.map +1 -1
  364. package/dist/components/TimeOff/PolicyList/PolicyListTypes.d.ts +17 -0
  365. package/dist/components/TimeOff/PolicySettings/PolicySettings.d.ts +22 -0
  366. package/dist/components/TimeOff/PolicySettings/PolicySettings.js.map +1 -1
  367. package/dist/components/TimeOff/PolicySettings/PolicySettingsPresentation.d.ts +14 -0
  368. package/dist/components/TimeOff/PolicySettings/PolicySettingsPresentation.js.map +1 -1
  369. package/dist/components/TimeOff/PolicySettings/PolicySettingsTypes.d.ts +31 -0
  370. package/dist/components/TimeOff/PolicyTypeSelector/PolicyTypeSelector.d.ts +23 -0
  371. package/dist/components/TimeOff/PolicyTypeSelector/PolicyTypeSelector.js.map +1 -1
  372. package/dist/components/TimeOff/PolicyTypeSelector/PolicyTypeSelectorPresentation.d.ts +1 -0
  373. package/dist/components/TimeOff/PolicyTypeSelector/PolicyTypeSelectorPresentation.js.map +1 -1
  374. package/dist/components/TimeOff/PolicyTypeSelector/PolicyTypeSelectorTypes.d.ts +10 -0
  375. package/dist/components/TimeOff/TimeOffFlow/TimeOffFlow.d.ts +42 -0
  376. package/dist/components/TimeOff/TimeOffFlow/TimeOffFlow.js.map +1 -1
  377. package/dist/components/TimeOff/TimeOffFlow/TimeOffFlowComponents.d.ts +26 -0
  378. package/dist/components/TimeOff/TimeOffFlow/TimeOffFlowComponents.js.map +1 -1
  379. package/dist/components/TimeOff/TimeOffFlow/timeOffPolicyTypes.d.ts +15 -2
  380. package/dist/components/TimeOff/TimeOffFlow/timeOffPolicyTypes.js +1 -6
  381. package/dist/components/TimeOff/TimeOffFlow/timeOffPolicyTypes.js.map +1 -1
  382. package/dist/components/TimeOff/TimeOffFlow/timeOffStateMachine.d.ts +1 -0
  383. package/dist/components/TimeOff/TimeOffFlow/timeOffStateMachine.js.map +1 -1
  384. package/dist/components/TimeOff/TimeOffManagement/PolicyConfigurationForm/PolicyConfigurationForm.d.ts +29 -0
  385. package/dist/components/TimeOff/TimeOffManagement/PolicyConfigurationForm/PolicyConfigurationForm.js.map +1 -1
  386. package/dist/components/TimeOff/TimeOffManagement/PolicyConfigurationForm/PolicyConfigurationFormPresentation.d.ts +1 -0
  387. package/dist/components/TimeOff/TimeOffManagement/PolicyConfigurationForm/PolicyConfigurationFormPresentation.js.map +1 -1
  388. package/dist/components/TimeOff/TimeOffManagement/PolicyConfigurationForm/PolicyConfigurationFormTypes.d.ts +59 -1
  389. package/dist/components/TimeOff/TimeOffManagement/PolicyConfigurationForm/index.d.ts +0 -3
  390. package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/SelectEmployeesHoliday.d.ts +1 -0
  391. package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/SelectEmployeesHoliday.js.map +1 -1
  392. package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/SelectEmployeesPresentation.d.ts +1 -0
  393. package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/SelectEmployeesPresentation.js +43 -42
  394. package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/SelectEmployeesPresentation.js.map +1 -1
  395. package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/SelectEmployeesPresentationTypes.d.ts +2 -0
  396. package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/SelectEmployeesTimeOff.d.ts +1 -0
  397. package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/SelectEmployeesTimeOff.js.map +1 -1
  398. package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/useSelectEmployeesData.d.ts +3 -0
  399. package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/useSelectEmployeesData.js.map +1 -1
  400. package/dist/components/TimeOff/TimeOffPolicyDetail/EditEmployeeBalanceModal.d.ts +9 -0
  401. package/dist/components/TimeOff/TimeOffPolicyDetail/EditEmployeeBalanceModal.js.map +1 -1
  402. package/dist/components/TimeOff/TimeOffPolicyDetail/TimeOffPolicyDetail.d.ts +25 -0
  403. package/dist/components/TimeOff/TimeOffPolicyDetail/TimeOffPolicyDetail.js.map +1 -1
  404. package/dist/components/TimeOff/TimeOffPolicyDetail/TimeOffPolicyDetailPresentation.d.ts +14 -0
  405. package/dist/components/TimeOff/TimeOffPolicyDetail/TimeOffPolicyDetailPresentation.js.map +1 -1
  406. package/dist/components/TimeOff/TimeOffPolicyDetail/TimeOffPolicyDetailTypes.d.ts +97 -6
  407. package/dist/components/TimeOff/TimeOffPolicyDetail/index.d.ts +1 -5
  408. package/dist/components/TimeOff/ViewHolidayEmployees/ViewHolidayEmployees.d.ts +23 -0
  409. package/dist/components/TimeOff/ViewHolidayEmployees/ViewHolidayEmployees.js.map +1 -1
  410. package/dist/components/TimeOff/ViewHolidayPolicyDetails/ViewHolidayPolicyDetails.d.ts +22 -0
  411. package/dist/components/TimeOff/ViewHolidayPolicyDetails/ViewHolidayPolicyDetails.js.map +1 -1
  412. package/dist/components/TimeOff/ViewHolidaySchedule/ViewHolidaySchedule.d.ts +22 -0
  413. package/dist/components/TimeOff/ViewHolidaySchedule/ViewHolidaySchedule.js.map +1 -1
  414. package/dist/components/TimeOff/index.d.ts +8 -2
  415. package/dist/components/TimeOff/shared/EmployeeTable/EmployeeTable.d.ts +1 -0
  416. package/dist/components/TimeOff/shared/EmployeeTable/EmployeeTable.js +48 -49
  417. package/dist/components/TimeOff/shared/EmployeeTable/EmployeeTable.js.map +1 -1
  418. package/dist/components/TimeOff/shared/EmployeeTable/EmployeeTableTypes.d.ts +66 -0
  419. package/dist/components/TimeOff/shared/PolicyDetailLayout/PolicyDetailLayout.d.ts +1 -0
  420. package/dist/components/TimeOff/shared/PolicyDetailLayout/PolicyDetailLayout.js.map +1 -1
  421. package/dist/components/TimeOff/shared/PolicyDetailLayout/PolicyDetailLayoutTypes.d.ts +28 -0
  422. package/dist/components/TimeOff/shared/PolicyDetailLayout/index.d.ts +0 -1
  423. package/dist/components/TimeOff/shared/holidayHelpers.d.ts +5 -0
  424. package/dist/components/TimeOff/shared/holidayHelpers.js.map +1 -1
  425. package/dist/contexts/ComponentAdapter/componentAdapterTypes.d.ts +4 -4
  426. package/dist/contexts/ComponentAdapter/createComponentsWithDefaults.d.ts +39 -39
  427. package/dist/contexts/ComponentAdapter/createComponentsWithDefaults.js.map +1 -1
  428. package/dist/contexts/ComponentAdapter/useComponentContext.d.ts +42 -42
  429. package/dist/contexts/ComponentAdapter/useComponentContext.js.map +1 -1
  430. package/dist/i18n/en/common.json.d.ts +0 -1
  431. package/dist/i18n/en/common.json.js +2 -2
  432. package/dist/index.d.ts +1 -1
  433. package/dist/index.js +206 -205
  434. package/dist/node_modules/react-dnd/dist/core/DndProvider.js +1 -1
  435. package/dist/node_modules/react-dnd/dist/core/DndProvider.js.map +1 -1
  436. package/dist/partner-hook-utils/composeErrorHandler.js +3 -1
  437. package/dist/partner-hook-utils/composeErrorHandler.js.map +1 -1
  438. package/dist/shared/constants.d.ts +12 -1
  439. package/dist/shared/constants.js.map +1 -1
  440. package/dist/style.css +1 -1
  441. package/dist/types/i18next.d.ts +0 -1
  442. package/docs/reference/endpoint-inventory.json +55 -0
  443. package/package.json +24 -11
  444. package/dist/assets/icons/feature-icon-check.svg.js +0 -10
  445. package/dist/assets/icons/feature-icon-check.svg.js.map +0 -1
  446. package/dist/assets/icons/magnifyingGlass.png.js +0 -5
  447. package/dist/assets/icons/magnifyingGlass.png.js.map +0 -1
  448. package/dist/components/Payroll/PayrollEditEmployee/index.d.ts +0 -4
  449. package/dist/components/Payroll/PayrollFlow/index.d.ts +0 -3
  450. package/dist/components/TimeOff/TimeOffFlow/index.d.ts +0 -3
  451. package/dist/components/TimeOff/shared/EmployeeTable/index.d.ts +0 -4
@@ -1 +1 @@
1
- {"version":3,"file":"timeOffPolicyTypes.js","sources":["../../../../src/components/TimeOff/TimeOffFlow/timeOffPolicyTypes.ts"],"sourcesContent":["import type { PolicyType } from '@gusto/embedded-api-v-2025-11-15/models/components/timeoffpolicy'\n\n// SDK exposes more PolicyType values (bereavement, custom, etc.) but only\n// vacation and sick are creatable through the time-off policy endpoint.\n// Holiday is a distinct concept routed through @gusto/embedded-api-v-2025-11-15's\n// holidayPayPolicies* hooks against a different endpoint family.\nexport type CreatableTimeOffPolicyType = Extract<PolicyType, 'sick' | 'vacation'>\nexport type TimeOffPolicyType = PolicyType | 'holiday'\n\nexport const EDITABLE_TIME_OFF_POLICY_TYPES = ['sick', 'vacation', 'holiday'] as const\n\nexport type EditableTimeOffPolicyType = (typeof EDITABLE_TIME_OFF_POLICY_TYPES)[number]\n\nexport function isEditableTimeOffPolicyType(\n policyType: string | null | undefined,\n): policyType is EditableTimeOffPolicyType {\n return EDITABLE_TIME_OFF_POLICY_TYPES.includes(policyType as EditableTimeOffPolicyType)\n}\n\n// Subset of types the SDK surfaces from the time_off_policies endpoint.\n// Holiday lives on a separate endpoint and is merged into the list by the caller.\nexport const LISTED_TIME_OFF_POLICY_TYPES = [\n 'sick',\n 'vacation',\n] as const satisfies readonly PolicyType[]\n\nexport function isListedTimeOffPolicyType(\n policyType: PolicyType | null | undefined,\n): policyType is CreatableTimeOffPolicyType {\n return LISTED_TIME_OFF_POLICY_TYPES.includes(policyType as CreatableTimeOffPolicyType)\n}\n\nexport function assertCreatablePolicyType(\n policyType: TimeOffPolicyType,\n): asserts policyType is CreatableTimeOffPolicyType {\n if (policyType !== 'sick' && policyType !== 'vacation') {\n throw new Error(\n `Expected creatable time-off policy type ('sick' or 'vacation'), got '${policyType}'`,\n )\n }\n}\n"],"names":["EDITABLE_TIME_OFF_POLICY_TYPES","isEditableTimeOffPolicyType","policyType","LISTED_TIME_OFF_POLICY_TYPES","isListedTimeOffPolicyType","assertCreatablePolicyType"],"mappings":"AASO,MAAMA,IAAiC,CAAC,QAAQ,YAAY,SAAS;AAIrE,SAASC,EACdC,GACyC;AACzC,SAAOF,EAA+B,SAASE,CAAuC;AACxF;AAIO,MAAMC,IAA+B;AAAA,EAC1C;AAAA,EACA;AACF;AAEO,SAASC,EACdF,GAC0C;AAC1C,SAAOC,EAA6B,SAASD,CAAwC;AACvF;AAEO,SAASG,EACdH,GACkD;AAClD,MAAIA,MAAe,UAAUA,MAAe;AAC1C,UAAM,IAAI;AAAA,MACR,wEAAwEA,CAAU;AAAA,IAAA;AAGxF;"}
1
+ {"version":3,"file":"timeOffPolicyTypes.js","sources":["../../../../src/components/TimeOff/TimeOffFlow/timeOffPolicyTypes.ts"],"sourcesContent":["import type { PolicyType } from '@gusto/embedded-api-v-2025-11-15/models/components/timeoffpolicy'\n\n/**\n * Time off policy types that can be created through the time off policy management workflow.\n *\n * @remarks\n * Only `sick` and `vacation` are creatable through the time off policy endpoint. Holiday policies are a separate concept managed through the holiday pay policy endpoint family.\n *\n * @public\n */\nexport type CreatableTimeOffPolicyType = Extract<PolicyType, 'sick' | 'vacation'>\n\n/** @internal */\nexport type TimeOffPolicyType = PolicyType | 'holiday'\n\nconst EDITABLE_TIME_OFF_POLICY_TYPES = ['sick', 'vacation', 'holiday'] as const\n\n/** @internal */\nexport type EditableTimeOffPolicyType = (typeof EDITABLE_TIME_OFF_POLICY_TYPES)[number]\n\n/** @internal */\nexport function isEditableTimeOffPolicyType(\n policyType: string | null | undefined,\n): policyType is EditableTimeOffPolicyType {\n return EDITABLE_TIME_OFF_POLICY_TYPES.includes(policyType as EditableTimeOffPolicyType)\n}\n\n// Subset of types the SDK surfaces from the time_off_policies endpoint.\n// Holiday lives on a separate endpoint and is merged into the list by the caller.\nconst LISTED_TIME_OFF_POLICY_TYPES = ['sick', 'vacation'] as const satisfies readonly PolicyType[]\n\n/** @internal */\nexport function isListedTimeOffPolicyType(\n policyType: PolicyType | null | undefined,\n): policyType is CreatableTimeOffPolicyType {\n return LISTED_TIME_OFF_POLICY_TYPES.includes(policyType as CreatableTimeOffPolicyType)\n}\n\n/** @internal */\nexport function assertCreatablePolicyType(\n policyType: TimeOffPolicyType,\n): asserts policyType is CreatableTimeOffPolicyType {\n if (policyType !== 'sick' && policyType !== 'vacation') {\n throw new Error(\n `Expected creatable time-off policy type ('sick' or 'vacation'), got '${policyType}'`,\n )\n }\n}\n"],"names":["EDITABLE_TIME_OFF_POLICY_TYPES","isEditableTimeOffPolicyType","policyType","LISTED_TIME_OFF_POLICY_TYPES","isListedTimeOffPolicyType","assertCreatablePolicyType"],"mappings":"AAeA,MAAMA,IAAiC,CAAC,QAAQ,YAAY,SAAS;AAM9D,SAASC,EACdC,GACyC;AACzC,SAAOF,EAA+B,SAASE,CAAuC;AACxF;AAIA,MAAMC,IAA+B,CAAC,QAAQ,UAAU;AAGjD,SAASC,EACdF,GAC0C;AAC1C,SAAOC,EAA6B,SAASD,CAAwC;AACvF;AAGO,SAASG,EACdH,GACkD;AAClD,MAAIA,MAAe,UAAUA,MAAe;AAC1C,UAAM,IAAI;AAAA,MACR,wEAAwEA,CAAU;AAAA,IAAA;AAGxF;"}
@@ -1,3 +1,4 @@
1
+ /** @internal */
1
2
  export declare const timeOffMachine: {
2
3
  policyList: import('robot3').MachineState<any>;
3
4
  policyTypeSelector: import('robot3').MachineState<any>;
@@ -1 +1 @@
1
- {"version":3,"file":"timeOffStateMachine.js","sources":["../../../../src/components/TimeOff/TimeOffFlow/timeOffStateMachine.ts"],"sourcesContent":["import { transition, reduce, state, guard } from 'robot3'\nimport {\n PolicyListContextual,\n SelectPolicyTypeContextual,\n PolicyDetailsFormContextual,\n PolicySettingsContextual,\n EditPolicySettingsContextual,\n AddEmployeesToPolicyContextual,\n TimeOffPolicyDetailContextual,\n HolidaySelectionFormContextual,\n EditHolidaySelectionFormContextual,\n AddEmployeesHolidayContextual,\n ViewHolidayEmployeesContextual,\n ViewHolidayScheduleContextual,\n type TimeOffFlowContextInterface,\n type TimeOffFlowAlert,\n type AddEmployeesSource,\n} from './TimeOffFlowComponents'\nimport type { TimeOffPolicyType } from './timeOffPolicyTypes'\nimport { componentEvents } from '@/shared/constants'\nimport type { MachineTransition } from '@/types/Helpers'\n\ntype PolicyTypePayload = { policyType: 'sick' | 'vacation' | 'holiday' }\ntype PolicyCreatedPayload = { policyId: string; accrualMethod?: string }\ntype ErrorPayload = { alert?: TimeOffFlowAlert }\ntype ViewPolicyPayload = { policyId: string; policyType: TimeOffPolicyType }\ntype PolicyIdPayload = { policyId: string }\n\nfunction isSickOrVacation(_ctx: TimeOffFlowContextInterface, ev: { payload: PolicyTypePayload }) {\n return ev.payload.policyType === 'sick' || ev.payload.policyType === 'vacation'\n}\n\nfunction isHoliday(_ctx: TimeOffFlowContextInterface, ev: { payload: PolicyTypePayload }) {\n return ev.payload.policyType === 'holiday'\n}\n\nfunction isNonHolidayView(_ctx: TimeOffFlowContextInterface, ev: { payload: ViewPolicyPayload }) {\n return ev.payload.policyType !== 'holiday'\n}\n\nfunction isHolidayView(_ctx: TimeOffFlowContextInterface, ev: { payload: ViewPolicyPayload }) {\n return ev.payload.policyType === 'holiday'\n}\n\nfunction isUnlimitedPolicy(\n _ctx: TimeOffFlowContextInterface,\n ev: { payload: PolicyCreatedPayload },\n) {\n return ev.payload.accrualMethod === 'unlimited'\n}\n\nfunction addEmployeesSourceIs(source: AddEmployeesSource) {\n return (ctx: TimeOffFlowContextInterface) => ctx.addEmployeesSource === source\n}\n\nconst cancelToPolicyList = transition(\n componentEvents.CANCEL,\n 'policyList',\n reduce(\n (ctx: TimeOffFlowContextInterface): TimeOffFlowContextInterface => ({\n ...ctx,\n component: PolicyListContextual,\n policyId: undefined,\n policyType: undefined,\n alerts: undefined,\n }),\n ),\n)\n\nconst backToListTransition = transition(\n componentEvents.TIME_OFF_BACK_TO_LIST,\n 'policyList',\n reduce(\n (ctx: TimeOffFlowContextInterface): TimeOffFlowContextInterface => ({\n ...ctx,\n component: PolicyListContextual,\n policyId: undefined,\n policyType: undefined,\n alerts: undefined,\n }),\n ),\n)\n\nexport const timeOffMachine = {\n policyList: state<MachineTransition>(\n transition(\n componentEvents.TIME_OFF_CREATE_POLICY,\n 'policyTypeSelector',\n reduce(\n (ctx: TimeOffFlowContextInterface): TimeOffFlowContextInterface => ({\n ...ctx,\n component: SelectPolicyTypeContextual,\n policyId: undefined,\n policyType: undefined,\n alerts: undefined,\n }),\n ),\n ),\n transition(\n componentEvents.TIME_OFF_VIEW_POLICY,\n 'viewTimeOffPolicyDetail',\n guard(isNonHolidayView),\n reduce(\n (\n ctx: TimeOffFlowContextInterface,\n ev: { payload: ViewPolicyPayload },\n ): TimeOffFlowContextInterface => ({\n ...ctx,\n component: TimeOffPolicyDetailContextual,\n policyId: ev.payload.policyId,\n policyType: ev.payload.policyType,\n alerts: undefined,\n }),\n ),\n ),\n transition(\n componentEvents.TIME_OFF_VIEW_POLICY,\n 'viewHolidayEmployees',\n guard(isHolidayView),\n reduce(\n (\n ctx: TimeOffFlowContextInterface,\n ev: { payload: ViewPolicyPayload },\n ): TimeOffFlowContextInterface => ({\n ...ctx,\n component: ViewHolidayEmployeesContextual,\n policyId: ev.payload.policyId,\n policyType: ev.payload.policyType,\n alerts: undefined,\n }),\n ),\n ),\n ),\n\n policyTypeSelector: state<MachineTransition>(\n transition(\n componentEvents.TIME_OFF_POLICY_TYPE_SELECTED,\n 'policyDetailsForm',\n guard(isSickOrVacation),\n reduce(\n (\n ctx: TimeOffFlowContextInterface,\n ev: { payload: PolicyTypePayload },\n ): TimeOffFlowContextInterface => ({\n ...ctx,\n component: PolicyDetailsFormContextual,\n policyType: ev.payload.policyType,\n alerts: undefined,\n }),\n ),\n ),\n transition(\n componentEvents.TIME_OFF_POLICY_TYPE_SELECTED,\n 'holidaySelectionForm',\n guard(isHoliday),\n reduce(\n (\n ctx: TimeOffFlowContextInterface,\n ev: { payload: PolicyTypePayload },\n ): TimeOffFlowContextInterface => ({\n ...ctx,\n component: HolidaySelectionFormContextual,\n policyType: ev.payload.policyType,\n alerts: undefined,\n }),\n ),\n ),\n cancelToPolicyList,\n ),\n\n policyDetailsForm: state<MachineTransition>(\n transition(\n componentEvents.TIME_OFF_POLICY_DETAILS_DONE,\n 'addEmployeesToPolicy',\n guard(isUnlimitedPolicy),\n reduce(\n (\n ctx: TimeOffFlowContextInterface,\n ev: { payload: PolicyCreatedPayload },\n ): TimeOffFlowContextInterface => ({\n ...ctx,\n component: AddEmployeesToPolicyContextual,\n policyId: ev.payload.policyId,\n alerts: undefined,\n addEmployeesSource: 'policyDetailsForm',\n }),\n ),\n ),\n transition(\n componentEvents.TIME_OFF_POLICY_DETAILS_DONE,\n 'policySettings',\n reduce(\n (\n ctx: TimeOffFlowContextInterface,\n ev: { payload: PolicyCreatedPayload },\n ): TimeOffFlowContextInterface => ({\n ...ctx,\n component: PolicySettingsContextual,\n policyId: ev.payload.policyId,\n alerts: undefined,\n }),\n ),\n ),\n transition(\n componentEvents.TIME_OFF_POLICY_CREATE_ERROR,\n 'policyTypeSelector',\n reduce(\n (\n ctx: TimeOffFlowContextInterface,\n ev: { payload: ErrorPayload },\n ): TimeOffFlowContextInterface => ({\n ...ctx,\n component: SelectPolicyTypeContextual,\n alerts: ev.payload.alert ? [ev.payload.alert] : undefined,\n }),\n ),\n ),\n cancelToPolicyList,\n ),\n\n policySettings: state<MachineTransition>(\n transition(\n componentEvents.TIME_OFF_POLICY_SETTINGS_DONE,\n 'addEmployeesToPolicy',\n reduce(\n (ctx: TimeOffFlowContextInterface): TimeOffFlowContextInterface => ({\n ...ctx,\n component: AddEmployeesToPolicyContextual,\n alerts: undefined,\n addEmployeesSource: 'policySettings',\n }),\n ),\n ),\n transition(\n componentEvents.TIME_OFF_POLICY_SETTINGS_BACK,\n 'policyDetailsForm',\n reduce(\n (ctx: TimeOffFlowContextInterface): TimeOffFlowContextInterface => ({\n ...ctx,\n component: PolicyDetailsFormContextual,\n alerts: undefined,\n }),\n ),\n ),\n transition(\n componentEvents.TIME_OFF_POLICY_SETTINGS_ERROR,\n 'policyDetailsForm',\n reduce(\n (\n ctx: TimeOffFlowContextInterface,\n ev: { payload: ErrorPayload },\n ): TimeOffFlowContextInterface => ({\n ...ctx,\n component: PolicyDetailsFormContextual,\n alerts: ev.payload.alert ? [ev.payload.alert] : undefined,\n }),\n ),\n ),\n cancelToPolicyList,\n ),\n\n addEmployeesToPolicy: state<MachineTransition>(\n transition(\n componentEvents.TIME_OFF_ADD_EMPLOYEES_DONE,\n 'viewTimeOffPolicyDetail',\n reduce(\n (ctx: TimeOffFlowContextInterface): TimeOffFlowContextInterface => ({\n ...ctx,\n component: TimeOffPolicyDetailContextual,\n alerts: undefined,\n addEmployeesSource: undefined,\n }),\n ),\n ),\n transition(\n componentEvents.TIME_OFF_ADD_EMPLOYEES_BACK,\n 'viewTimeOffPolicyDetail',\n guard(addEmployeesSourceIs('viewTimeOffPolicyDetail')),\n reduce(\n (ctx: TimeOffFlowContextInterface): TimeOffFlowContextInterface => ({\n ...ctx,\n component: TimeOffPolicyDetailContextual,\n alerts: undefined,\n addEmployeesSource: undefined,\n }),\n ),\n ),\n transition(\n componentEvents.TIME_OFF_ADD_EMPLOYEES_BACK,\n 'policyDetailsForm',\n guard(addEmployeesSourceIs('policyDetailsForm')),\n reduce(\n (ctx: TimeOffFlowContextInterface): TimeOffFlowContextInterface => ({\n ...ctx,\n component: PolicyDetailsFormContextual,\n alerts: undefined,\n addEmployeesSource: undefined,\n }),\n ),\n ),\n transition(\n componentEvents.TIME_OFF_ADD_EMPLOYEES_BACK,\n 'policySettings',\n reduce(\n (ctx: TimeOffFlowContextInterface): TimeOffFlowContextInterface => ({\n ...ctx,\n component: PolicySettingsContextual,\n alerts: undefined,\n addEmployeesSource: undefined,\n }),\n ),\n ),\n transition(\n componentEvents.TIME_OFF_ADD_EMPLOYEES_ERROR,\n 'policyDetailsForm',\n guard(addEmployeesSourceIs('policyDetailsForm')),\n reduce(\n (\n ctx: TimeOffFlowContextInterface,\n ev: { payload: ErrorPayload },\n ): TimeOffFlowContextInterface => ({\n ...ctx,\n component: PolicyDetailsFormContextual,\n alerts: ev.payload.alert ? [ev.payload.alert] : undefined,\n }),\n ),\n ),\n transition(\n componentEvents.TIME_OFF_ADD_EMPLOYEES_ERROR,\n 'policySettings',\n reduce(\n (\n ctx: TimeOffFlowContextInterface,\n ev: { payload: ErrorPayload },\n ): TimeOffFlowContextInterface => ({\n ...ctx,\n component: PolicySettingsContextual,\n alerts: ev.payload.alert ? [ev.payload.alert] : undefined,\n }),\n ),\n ),\n cancelToPolicyList,\n ),\n\n viewTimeOffPolicyDetail: state<MachineTransition>(\n transition(\n componentEvents.TIME_OFF_ADD_EMPLOYEES_TO_POLICY,\n 'addEmployeesToPolicy',\n reduce(\n (\n ctx: TimeOffFlowContextInterface,\n ev: { payload: PolicyIdPayload },\n ): TimeOffFlowContextInterface => ({\n ...ctx,\n component: AddEmployeesToPolicyContextual,\n policyId: ev.payload.policyId,\n alerts: undefined,\n addEmployeesSource: 'viewTimeOffPolicyDetail',\n }),\n ),\n ),\n transition(\n componentEvents.TIME_OFF_EDIT_POLICY,\n 'editPolicyDetailsForm',\n reduce(\n (\n ctx: TimeOffFlowContextInterface,\n ev: { payload: PolicyIdPayload },\n ): TimeOffFlowContextInterface => ({\n ...ctx,\n component: PolicyDetailsFormContextual,\n policyId: ev.payload.policyId,\n alerts: undefined,\n }),\n ),\n ),\n transition(\n componentEvents.TIME_OFF_CHANGE_SETTINGS,\n 'editPolicySettings',\n reduce(\n (\n ctx: TimeOffFlowContextInterface,\n ev: { payload: PolicyIdPayload },\n ): TimeOffFlowContextInterface => ({\n ...ctx,\n component: EditPolicySettingsContextual,\n policyId: ev.payload.policyId,\n alerts: undefined,\n }),\n ),\n ),\n backToListTransition,\n ),\n\n // Distinct from `policyDetailsForm` (the create-flow step) so that DONE\n // returns to the policy detail view rather than continuing into the\n // create flow's settings step.\n editPolicyDetailsForm: state<MachineTransition>(\n transition(\n componentEvents.TIME_OFF_POLICY_DETAILS_DONE,\n 'viewTimeOffPolicyDetail',\n reduce(\n (\n ctx: TimeOffFlowContextInterface,\n ev: { payload: PolicyCreatedPayload },\n ): TimeOffFlowContextInterface => ({\n ...ctx,\n component: TimeOffPolicyDetailContextual,\n policyId: ev.payload.policyId,\n alerts: undefined,\n }),\n ),\n ),\n transition(\n componentEvents.CANCEL,\n 'viewTimeOffPolicyDetail',\n reduce(\n (ctx: TimeOffFlowContextInterface): TimeOffFlowContextInterface => ({\n ...ctx,\n component: TimeOffPolicyDetailContextual,\n alerts: undefined,\n }),\n ),\n ),\n ),\n\n // Distinct from `policySettings` (the create-flow step) so that DONE/BACK\n // return to the policy detail view instead of routing into the create\n // flow's add-employees / details-form steps.\n editPolicySettings: state<MachineTransition>(\n transition(\n componentEvents.TIME_OFF_POLICY_SETTINGS_DONE,\n 'viewTimeOffPolicyDetail',\n reduce(\n (ctx: TimeOffFlowContextInterface): TimeOffFlowContextInterface => ({\n ...ctx,\n component: TimeOffPolicyDetailContextual,\n alerts: undefined,\n }),\n ),\n ),\n transition(\n componentEvents.TIME_OFF_POLICY_SETTINGS_BACK,\n 'viewTimeOffPolicyDetail',\n reduce(\n (ctx: TimeOffFlowContextInterface): TimeOffFlowContextInterface => ({\n ...ctx,\n component: TimeOffPolicyDetailContextual,\n alerts: undefined,\n }),\n ),\n ),\n cancelToPolicyList,\n ),\n\n holidaySelectionForm: state<MachineTransition>(\n transition(\n componentEvents.TIME_OFF_HOLIDAY_SELECTION_DONE,\n 'addEmployeesHoliday',\n reduce(\n (ctx: TimeOffFlowContextInterface): TimeOffFlowContextInterface => ({\n ...ctx,\n component: AddEmployeesHolidayContextual,\n alerts: undefined,\n }),\n ),\n ),\n transition(\n componentEvents.TIME_OFF_HOLIDAY_CREATE_ERROR,\n 'policyTypeSelector',\n reduce(\n (\n ctx: TimeOffFlowContextInterface,\n ev: { payload: ErrorPayload },\n ): TimeOffFlowContextInterface => ({\n ...ctx,\n component: SelectPolicyTypeContextual,\n alerts: ev.payload.alert ? [ev.payload.alert] : undefined,\n }),\n ),\n ),\n cancelToPolicyList,\n ),\n\n addEmployeesHoliday: state<MachineTransition>(\n transition(\n componentEvents.TIME_OFF_HOLIDAY_ADD_EMPLOYEES_DONE,\n 'viewHolidayEmployees',\n reduce(\n (ctx: TimeOffFlowContextInterface): TimeOffFlowContextInterface => ({\n ...ctx,\n component: ViewHolidayEmployeesContextual,\n alerts: undefined,\n addEmployeesSource: undefined,\n }),\n ),\n ),\n transition(\n componentEvents.TIME_OFF_HOLIDAY_ADD_EMPLOYEES_ERROR,\n 'holidaySelectionForm',\n reduce(\n (\n ctx: TimeOffFlowContextInterface,\n ev: { payload: ErrorPayload },\n ): TimeOffFlowContextInterface => ({\n ...ctx,\n component: HolidaySelectionFormContextual,\n alerts: ev.payload.alert ? [ev.payload.alert] : undefined,\n addEmployeesSource: undefined,\n }),\n ),\n ),\n transition(\n componentEvents.CANCEL,\n 'viewHolidayEmployees',\n guard(addEmployeesSourceIs('viewHolidayEmployees')),\n reduce(\n (ctx: TimeOffFlowContextInterface): TimeOffFlowContextInterface => ({\n ...ctx,\n component: ViewHolidayEmployeesContextual,\n alerts: undefined,\n addEmployeesSource: undefined,\n }),\n ),\n ),\n cancelToPolicyList,\n ),\n\n viewHolidayEmployees: state<MachineTransition>(\n transition(\n componentEvents.TIME_OFF_HOLIDAY_ADD_EMPLOYEES,\n 'addEmployeesHoliday',\n reduce(\n (ctx: TimeOffFlowContextInterface): TimeOffFlowContextInterface => ({\n ...ctx,\n component: AddEmployeesHolidayContextual,\n alerts: undefined,\n addEmployeesSource: 'viewHolidayEmployees',\n }),\n ),\n ),\n transition(\n componentEvents.TIME_OFF_VIEW_HOLIDAY_SCHEDULE,\n 'viewHolidaySchedule',\n reduce(\n (ctx: TimeOffFlowContextInterface): TimeOffFlowContextInterface => ({\n ...ctx,\n component: ViewHolidayScheduleContextual,\n }),\n ),\n ),\n transition(\n componentEvents.TIME_OFF_EDIT_HOLIDAY_POLICY,\n 'editHolidaySelectionForm',\n reduce(\n (ctx: TimeOffFlowContextInterface): TimeOffFlowContextInterface => ({\n ...ctx,\n component: EditHolidaySelectionFormContextual,\n alerts: undefined,\n }),\n ),\n ),\n backToListTransition,\n ),\n\n viewHolidaySchedule: state<MachineTransition>(\n transition(\n componentEvents.TIME_OFF_VIEW_HOLIDAY_EMPLOYEES,\n 'viewHolidayEmployees',\n reduce(\n (ctx: TimeOffFlowContextInterface): TimeOffFlowContextInterface => ({\n ...ctx,\n component: ViewHolidayEmployeesContextual,\n }),\n ),\n ),\n transition(\n componentEvents.TIME_OFF_HOLIDAY_ADD_EMPLOYEES,\n 'addEmployeesHoliday',\n reduce(\n (ctx: TimeOffFlowContextInterface): TimeOffFlowContextInterface => ({\n ...ctx,\n component: AddEmployeesHolidayContextual,\n alerts: undefined,\n addEmployeesSource: 'viewHolidayEmployees',\n }),\n ),\n ),\n transition(\n componentEvents.TIME_OFF_EDIT_HOLIDAY_POLICY,\n 'editHolidaySelectionForm',\n reduce(\n (ctx: TimeOffFlowContextInterface): TimeOffFlowContextInterface => ({\n ...ctx,\n component: EditHolidaySelectionFormContextual,\n alerts: undefined,\n }),\n ),\n ),\n backToListTransition,\n ),\n\n // Distinct from `holidaySelectionForm` (the create-flow step) so that\n // DONE returns to the holiday detail view instead of routing into\n // `addEmployeesHoliday`.\n editHolidaySelectionForm: state<MachineTransition>(\n transition(\n componentEvents.TIME_OFF_HOLIDAY_SELECTION_EDIT_DONE,\n 'viewHolidayEmployees',\n reduce(\n (ctx: TimeOffFlowContextInterface): TimeOffFlowContextInterface => ({\n ...ctx,\n component: ViewHolidayEmployeesContextual,\n alerts: undefined,\n }),\n ),\n ),\n transition(\n componentEvents.TIME_OFF_HOLIDAY_CREATE_ERROR,\n 'viewHolidayEmployees',\n reduce(\n (\n ctx: TimeOffFlowContextInterface,\n ev: { payload: ErrorPayload },\n ): TimeOffFlowContextInterface => ({\n ...ctx,\n component: ViewHolidayEmployeesContextual,\n alerts: ev.payload.alert ? [ev.payload.alert] : undefined,\n }),\n ),\n ),\n transition(\n componentEvents.CANCEL,\n 'viewHolidayEmployees',\n reduce(\n (ctx: TimeOffFlowContextInterface): TimeOffFlowContextInterface => ({\n ...ctx,\n component: ViewHolidayEmployeesContextual,\n alerts: undefined,\n }),\n ),\n ),\n ),\n\n final: state<MachineTransition>(),\n}\n"],"names":["isSickOrVacation","_ctx","ev","isHoliday","isNonHolidayView","isHolidayView","isUnlimitedPolicy","addEmployeesSourceIs","source","ctx","cancelToPolicyList","transition","componentEvents","reduce","PolicyListContextual","backToListTransition","timeOffMachine","state","SelectPolicyTypeContextual","guard","TimeOffPolicyDetailContextual","ViewHolidayEmployeesContextual","PolicyDetailsFormContextual","HolidaySelectionFormContextual","AddEmployeesToPolicyContextual","PolicySettingsContextual","EditPolicySettingsContextual","AddEmployeesHolidayContextual","ViewHolidayScheduleContextual","EditHolidaySelectionFormContextual"],"mappings":"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"}
1
+ {"version":3,"file":"timeOffStateMachine.js","sources":["../../../../src/components/TimeOff/TimeOffFlow/timeOffStateMachine.ts"],"sourcesContent":["import { transition, reduce, state, guard } from 'robot3'\nimport {\n PolicyListContextual,\n SelectPolicyTypeContextual,\n PolicyDetailsFormContextual,\n PolicySettingsContextual,\n EditPolicySettingsContextual,\n AddEmployeesToPolicyContextual,\n TimeOffPolicyDetailContextual,\n HolidaySelectionFormContextual,\n EditHolidaySelectionFormContextual,\n AddEmployeesHolidayContextual,\n ViewHolidayEmployeesContextual,\n ViewHolidayScheduleContextual,\n type TimeOffFlowContextInterface,\n type TimeOffFlowAlert,\n type AddEmployeesSource,\n} from './TimeOffFlowComponents'\nimport type { TimeOffPolicyType } from './timeOffPolicyTypes'\nimport { componentEvents } from '@/shared/constants'\nimport type { MachineTransition } from '@/types/Helpers'\n\ntype PolicyTypePayload = { policyType: 'sick' | 'vacation' | 'holiday' }\ntype PolicyCreatedPayload = { policyId: string; accrualMethod?: string }\ntype ErrorPayload = { alert?: TimeOffFlowAlert }\ntype ViewPolicyPayload = { policyId: string; policyType: TimeOffPolicyType }\ntype PolicyIdPayload = { policyId: string }\n\nfunction isSickOrVacation(_ctx: TimeOffFlowContextInterface, ev: { payload: PolicyTypePayload }) {\n return ev.payload.policyType === 'sick' || ev.payload.policyType === 'vacation'\n}\n\nfunction isHoliday(_ctx: TimeOffFlowContextInterface, ev: { payload: PolicyTypePayload }) {\n return ev.payload.policyType === 'holiday'\n}\n\nfunction isNonHolidayView(_ctx: TimeOffFlowContextInterface, ev: { payload: ViewPolicyPayload }) {\n return ev.payload.policyType !== 'holiday'\n}\n\nfunction isHolidayView(_ctx: TimeOffFlowContextInterface, ev: { payload: ViewPolicyPayload }) {\n return ev.payload.policyType === 'holiday'\n}\n\nfunction isUnlimitedPolicy(\n _ctx: TimeOffFlowContextInterface,\n ev: { payload: PolicyCreatedPayload },\n) {\n return ev.payload.accrualMethod === 'unlimited'\n}\n\nfunction addEmployeesSourceIs(source: AddEmployeesSource) {\n return (ctx: TimeOffFlowContextInterface) => ctx.addEmployeesSource === source\n}\n\nconst cancelToPolicyList = transition(\n componentEvents.CANCEL,\n 'policyList',\n reduce(\n (ctx: TimeOffFlowContextInterface): TimeOffFlowContextInterface => ({\n ...ctx,\n component: PolicyListContextual,\n policyId: undefined,\n policyType: undefined,\n alerts: undefined,\n }),\n ),\n)\n\nconst backToListTransition = transition(\n componentEvents.TIME_OFF_BACK_TO_LIST,\n 'policyList',\n reduce(\n (ctx: TimeOffFlowContextInterface): TimeOffFlowContextInterface => ({\n ...ctx,\n component: PolicyListContextual,\n policyId: undefined,\n policyType: undefined,\n alerts: undefined,\n }),\n ),\n)\n\n/** @internal */\nexport const timeOffMachine = {\n policyList: state<MachineTransition>(\n transition(\n componentEvents.TIME_OFF_CREATE_POLICY,\n 'policyTypeSelector',\n reduce(\n (ctx: TimeOffFlowContextInterface): TimeOffFlowContextInterface => ({\n ...ctx,\n component: SelectPolicyTypeContextual,\n policyId: undefined,\n policyType: undefined,\n alerts: undefined,\n }),\n ),\n ),\n transition(\n componentEvents.TIME_OFF_VIEW_POLICY,\n 'viewTimeOffPolicyDetail',\n guard(isNonHolidayView),\n reduce(\n (\n ctx: TimeOffFlowContextInterface,\n ev: { payload: ViewPolicyPayload },\n ): TimeOffFlowContextInterface => ({\n ...ctx,\n component: TimeOffPolicyDetailContextual,\n policyId: ev.payload.policyId,\n policyType: ev.payload.policyType,\n alerts: undefined,\n }),\n ),\n ),\n transition(\n componentEvents.TIME_OFF_VIEW_POLICY,\n 'viewHolidayEmployees',\n guard(isHolidayView),\n reduce(\n (\n ctx: TimeOffFlowContextInterface,\n ev: { payload: ViewPolicyPayload },\n ): TimeOffFlowContextInterface => ({\n ...ctx,\n component: ViewHolidayEmployeesContextual,\n policyId: ev.payload.policyId,\n policyType: ev.payload.policyType,\n alerts: undefined,\n }),\n ),\n ),\n ),\n\n policyTypeSelector: state<MachineTransition>(\n transition(\n componentEvents.TIME_OFF_POLICY_TYPE_SELECTED,\n 'policyDetailsForm',\n guard(isSickOrVacation),\n reduce(\n (\n ctx: TimeOffFlowContextInterface,\n ev: { payload: PolicyTypePayload },\n ): TimeOffFlowContextInterface => ({\n ...ctx,\n component: PolicyDetailsFormContextual,\n policyType: ev.payload.policyType,\n alerts: undefined,\n }),\n ),\n ),\n transition(\n componentEvents.TIME_OFF_POLICY_TYPE_SELECTED,\n 'holidaySelectionForm',\n guard(isHoliday),\n reduce(\n (\n ctx: TimeOffFlowContextInterface,\n ev: { payload: PolicyTypePayload },\n ): TimeOffFlowContextInterface => ({\n ...ctx,\n component: HolidaySelectionFormContextual,\n policyType: ev.payload.policyType,\n alerts: undefined,\n }),\n ),\n ),\n cancelToPolicyList,\n ),\n\n policyDetailsForm: state<MachineTransition>(\n transition(\n componentEvents.TIME_OFF_POLICY_DETAILS_DONE,\n 'addEmployeesToPolicy',\n guard(isUnlimitedPolicy),\n reduce(\n (\n ctx: TimeOffFlowContextInterface,\n ev: { payload: PolicyCreatedPayload },\n ): TimeOffFlowContextInterface => ({\n ...ctx,\n component: AddEmployeesToPolicyContextual,\n policyId: ev.payload.policyId,\n alerts: undefined,\n addEmployeesSource: 'policyDetailsForm',\n }),\n ),\n ),\n transition(\n componentEvents.TIME_OFF_POLICY_DETAILS_DONE,\n 'policySettings',\n reduce(\n (\n ctx: TimeOffFlowContextInterface,\n ev: { payload: PolicyCreatedPayload },\n ): TimeOffFlowContextInterface => ({\n ...ctx,\n component: PolicySettingsContextual,\n policyId: ev.payload.policyId,\n alerts: undefined,\n }),\n ),\n ),\n transition(\n componentEvents.TIME_OFF_POLICY_CREATE_ERROR,\n 'policyTypeSelector',\n reduce(\n (\n ctx: TimeOffFlowContextInterface,\n ev: { payload: ErrorPayload },\n ): TimeOffFlowContextInterface => ({\n ...ctx,\n component: SelectPolicyTypeContextual,\n alerts: ev.payload.alert ? [ev.payload.alert] : undefined,\n }),\n ),\n ),\n cancelToPolicyList,\n ),\n\n policySettings: state<MachineTransition>(\n transition(\n componentEvents.TIME_OFF_POLICY_SETTINGS_DONE,\n 'addEmployeesToPolicy',\n reduce(\n (ctx: TimeOffFlowContextInterface): TimeOffFlowContextInterface => ({\n ...ctx,\n component: AddEmployeesToPolicyContextual,\n alerts: undefined,\n addEmployeesSource: 'policySettings',\n }),\n ),\n ),\n transition(\n componentEvents.TIME_OFF_POLICY_SETTINGS_BACK,\n 'policyDetailsForm',\n reduce(\n (ctx: TimeOffFlowContextInterface): TimeOffFlowContextInterface => ({\n ...ctx,\n component: PolicyDetailsFormContextual,\n alerts: undefined,\n }),\n ),\n ),\n transition(\n componentEvents.TIME_OFF_POLICY_SETTINGS_ERROR,\n 'policyDetailsForm',\n reduce(\n (\n ctx: TimeOffFlowContextInterface,\n ev: { payload: ErrorPayload },\n ): TimeOffFlowContextInterface => ({\n ...ctx,\n component: PolicyDetailsFormContextual,\n alerts: ev.payload.alert ? [ev.payload.alert] : undefined,\n }),\n ),\n ),\n cancelToPolicyList,\n ),\n\n addEmployeesToPolicy: state<MachineTransition>(\n transition(\n componentEvents.TIME_OFF_ADD_EMPLOYEES_DONE,\n 'viewTimeOffPolicyDetail',\n reduce(\n (ctx: TimeOffFlowContextInterface): TimeOffFlowContextInterface => ({\n ...ctx,\n component: TimeOffPolicyDetailContextual,\n alerts: undefined,\n addEmployeesSource: undefined,\n }),\n ),\n ),\n transition(\n componentEvents.TIME_OFF_ADD_EMPLOYEES_BACK,\n 'viewTimeOffPolicyDetail',\n guard(addEmployeesSourceIs('viewTimeOffPolicyDetail')),\n reduce(\n (ctx: TimeOffFlowContextInterface): TimeOffFlowContextInterface => ({\n ...ctx,\n component: TimeOffPolicyDetailContextual,\n alerts: undefined,\n addEmployeesSource: undefined,\n }),\n ),\n ),\n transition(\n componentEvents.TIME_OFF_ADD_EMPLOYEES_BACK,\n 'policyDetailsForm',\n guard(addEmployeesSourceIs('policyDetailsForm')),\n reduce(\n (ctx: TimeOffFlowContextInterface): TimeOffFlowContextInterface => ({\n ...ctx,\n component: PolicyDetailsFormContextual,\n alerts: undefined,\n addEmployeesSource: undefined,\n }),\n ),\n ),\n transition(\n componentEvents.TIME_OFF_ADD_EMPLOYEES_BACK,\n 'policySettings',\n reduce(\n (ctx: TimeOffFlowContextInterface): TimeOffFlowContextInterface => ({\n ...ctx,\n component: PolicySettingsContextual,\n alerts: undefined,\n addEmployeesSource: undefined,\n }),\n ),\n ),\n transition(\n componentEvents.TIME_OFF_ADD_EMPLOYEES_ERROR,\n 'policyDetailsForm',\n guard(addEmployeesSourceIs('policyDetailsForm')),\n reduce(\n (\n ctx: TimeOffFlowContextInterface,\n ev: { payload: ErrorPayload },\n ): TimeOffFlowContextInterface => ({\n ...ctx,\n component: PolicyDetailsFormContextual,\n alerts: ev.payload.alert ? [ev.payload.alert] : undefined,\n }),\n ),\n ),\n transition(\n componentEvents.TIME_OFF_ADD_EMPLOYEES_ERROR,\n 'policySettings',\n reduce(\n (\n ctx: TimeOffFlowContextInterface,\n ev: { payload: ErrorPayload },\n ): TimeOffFlowContextInterface => ({\n ...ctx,\n component: PolicySettingsContextual,\n alerts: ev.payload.alert ? [ev.payload.alert] : undefined,\n }),\n ),\n ),\n cancelToPolicyList,\n ),\n\n viewTimeOffPolicyDetail: state<MachineTransition>(\n transition(\n componentEvents.TIME_OFF_ADD_EMPLOYEES_TO_POLICY,\n 'addEmployeesToPolicy',\n reduce(\n (\n ctx: TimeOffFlowContextInterface,\n ev: { payload: PolicyIdPayload },\n ): TimeOffFlowContextInterface => ({\n ...ctx,\n component: AddEmployeesToPolicyContextual,\n policyId: ev.payload.policyId,\n alerts: undefined,\n addEmployeesSource: 'viewTimeOffPolicyDetail',\n }),\n ),\n ),\n transition(\n componentEvents.TIME_OFF_EDIT_POLICY,\n 'editPolicyDetailsForm',\n reduce(\n (\n ctx: TimeOffFlowContextInterface,\n ev: { payload: PolicyIdPayload },\n ): TimeOffFlowContextInterface => ({\n ...ctx,\n component: PolicyDetailsFormContextual,\n policyId: ev.payload.policyId,\n alerts: undefined,\n }),\n ),\n ),\n transition(\n componentEvents.TIME_OFF_CHANGE_SETTINGS,\n 'editPolicySettings',\n reduce(\n (\n ctx: TimeOffFlowContextInterface,\n ev: { payload: PolicyIdPayload },\n ): TimeOffFlowContextInterface => ({\n ...ctx,\n component: EditPolicySettingsContextual,\n policyId: ev.payload.policyId,\n alerts: undefined,\n }),\n ),\n ),\n backToListTransition,\n ),\n\n // Distinct from `policyDetailsForm` (the create-flow step) so that DONE\n // returns to the policy detail view rather than continuing into the\n // create flow's settings step.\n editPolicyDetailsForm: state<MachineTransition>(\n transition(\n componentEvents.TIME_OFF_POLICY_DETAILS_DONE,\n 'viewTimeOffPolicyDetail',\n reduce(\n (\n ctx: TimeOffFlowContextInterface,\n ev: { payload: PolicyCreatedPayload },\n ): TimeOffFlowContextInterface => ({\n ...ctx,\n component: TimeOffPolicyDetailContextual,\n policyId: ev.payload.policyId,\n alerts: undefined,\n }),\n ),\n ),\n transition(\n componentEvents.CANCEL,\n 'viewTimeOffPolicyDetail',\n reduce(\n (ctx: TimeOffFlowContextInterface): TimeOffFlowContextInterface => ({\n ...ctx,\n component: TimeOffPolicyDetailContextual,\n alerts: undefined,\n }),\n ),\n ),\n ),\n\n // Distinct from `policySettings` (the create-flow step) so that DONE/BACK\n // return to the policy detail view instead of routing into the create\n // flow's add-employees / details-form steps.\n editPolicySettings: state<MachineTransition>(\n transition(\n componentEvents.TIME_OFF_POLICY_SETTINGS_DONE,\n 'viewTimeOffPolicyDetail',\n reduce(\n (ctx: TimeOffFlowContextInterface): TimeOffFlowContextInterface => ({\n ...ctx,\n component: TimeOffPolicyDetailContextual,\n alerts: undefined,\n }),\n ),\n ),\n transition(\n componentEvents.TIME_OFF_POLICY_SETTINGS_BACK,\n 'viewTimeOffPolicyDetail',\n reduce(\n (ctx: TimeOffFlowContextInterface): TimeOffFlowContextInterface => ({\n ...ctx,\n component: TimeOffPolicyDetailContextual,\n alerts: undefined,\n }),\n ),\n ),\n cancelToPolicyList,\n ),\n\n holidaySelectionForm: state<MachineTransition>(\n transition(\n componentEvents.TIME_OFF_HOLIDAY_SELECTION_DONE,\n 'addEmployeesHoliday',\n reduce(\n (ctx: TimeOffFlowContextInterface): TimeOffFlowContextInterface => ({\n ...ctx,\n component: AddEmployeesHolidayContextual,\n alerts: undefined,\n }),\n ),\n ),\n transition(\n componentEvents.TIME_OFF_HOLIDAY_CREATE_ERROR,\n 'policyTypeSelector',\n reduce(\n (\n ctx: TimeOffFlowContextInterface,\n ev: { payload: ErrorPayload },\n ): TimeOffFlowContextInterface => ({\n ...ctx,\n component: SelectPolicyTypeContextual,\n alerts: ev.payload.alert ? [ev.payload.alert] : undefined,\n }),\n ),\n ),\n cancelToPolicyList,\n ),\n\n addEmployeesHoliday: state<MachineTransition>(\n transition(\n componentEvents.TIME_OFF_HOLIDAY_ADD_EMPLOYEES_DONE,\n 'viewHolidayEmployees',\n reduce(\n (ctx: TimeOffFlowContextInterface): TimeOffFlowContextInterface => ({\n ...ctx,\n component: ViewHolidayEmployeesContextual,\n alerts: undefined,\n addEmployeesSource: undefined,\n }),\n ),\n ),\n transition(\n componentEvents.TIME_OFF_HOLIDAY_ADD_EMPLOYEES_ERROR,\n 'holidaySelectionForm',\n reduce(\n (\n ctx: TimeOffFlowContextInterface,\n ev: { payload: ErrorPayload },\n ): TimeOffFlowContextInterface => ({\n ...ctx,\n component: HolidaySelectionFormContextual,\n alerts: ev.payload.alert ? [ev.payload.alert] : undefined,\n addEmployeesSource: undefined,\n }),\n ),\n ),\n transition(\n componentEvents.CANCEL,\n 'viewHolidayEmployees',\n guard(addEmployeesSourceIs('viewHolidayEmployees')),\n reduce(\n (ctx: TimeOffFlowContextInterface): TimeOffFlowContextInterface => ({\n ...ctx,\n component: ViewHolidayEmployeesContextual,\n alerts: undefined,\n addEmployeesSource: undefined,\n }),\n ),\n ),\n cancelToPolicyList,\n ),\n\n viewHolidayEmployees: state<MachineTransition>(\n transition(\n componentEvents.TIME_OFF_HOLIDAY_ADD_EMPLOYEES,\n 'addEmployeesHoliday',\n reduce(\n (ctx: TimeOffFlowContextInterface): TimeOffFlowContextInterface => ({\n ...ctx,\n component: AddEmployeesHolidayContextual,\n alerts: undefined,\n addEmployeesSource: 'viewHolidayEmployees',\n }),\n ),\n ),\n transition(\n componentEvents.TIME_OFF_VIEW_HOLIDAY_SCHEDULE,\n 'viewHolidaySchedule',\n reduce(\n (ctx: TimeOffFlowContextInterface): TimeOffFlowContextInterface => ({\n ...ctx,\n component: ViewHolidayScheduleContextual,\n }),\n ),\n ),\n transition(\n componentEvents.TIME_OFF_EDIT_HOLIDAY_POLICY,\n 'editHolidaySelectionForm',\n reduce(\n (ctx: TimeOffFlowContextInterface): TimeOffFlowContextInterface => ({\n ...ctx,\n component: EditHolidaySelectionFormContextual,\n alerts: undefined,\n }),\n ),\n ),\n backToListTransition,\n ),\n\n viewHolidaySchedule: state<MachineTransition>(\n transition(\n componentEvents.TIME_OFF_VIEW_HOLIDAY_EMPLOYEES,\n 'viewHolidayEmployees',\n reduce(\n (ctx: TimeOffFlowContextInterface): TimeOffFlowContextInterface => ({\n ...ctx,\n component: ViewHolidayEmployeesContextual,\n }),\n ),\n ),\n transition(\n componentEvents.TIME_OFF_HOLIDAY_ADD_EMPLOYEES,\n 'addEmployeesHoliday',\n reduce(\n (ctx: TimeOffFlowContextInterface): TimeOffFlowContextInterface => ({\n ...ctx,\n component: AddEmployeesHolidayContextual,\n alerts: undefined,\n addEmployeesSource: 'viewHolidayEmployees',\n }),\n ),\n ),\n transition(\n componentEvents.TIME_OFF_EDIT_HOLIDAY_POLICY,\n 'editHolidaySelectionForm',\n reduce(\n (ctx: TimeOffFlowContextInterface): TimeOffFlowContextInterface => ({\n ...ctx,\n component: EditHolidaySelectionFormContextual,\n alerts: undefined,\n }),\n ),\n ),\n backToListTransition,\n ),\n\n // Distinct from `holidaySelectionForm` (the create-flow step) so that\n // DONE returns to the holiday detail view instead of routing into\n // `addEmployeesHoliday`.\n editHolidaySelectionForm: state<MachineTransition>(\n transition(\n componentEvents.TIME_OFF_HOLIDAY_SELECTION_EDIT_DONE,\n 'viewHolidayEmployees',\n reduce(\n (ctx: TimeOffFlowContextInterface): TimeOffFlowContextInterface => ({\n ...ctx,\n component: ViewHolidayEmployeesContextual,\n alerts: undefined,\n }),\n ),\n ),\n transition(\n componentEvents.TIME_OFF_HOLIDAY_CREATE_ERROR,\n 'viewHolidayEmployees',\n reduce(\n (\n ctx: TimeOffFlowContextInterface,\n ev: { payload: ErrorPayload },\n ): TimeOffFlowContextInterface => ({\n ...ctx,\n component: ViewHolidayEmployeesContextual,\n alerts: ev.payload.alert ? [ev.payload.alert] : undefined,\n }),\n ),\n ),\n transition(\n componentEvents.CANCEL,\n 'viewHolidayEmployees',\n reduce(\n (ctx: TimeOffFlowContextInterface): TimeOffFlowContextInterface => ({\n ...ctx,\n component: ViewHolidayEmployeesContextual,\n alerts: undefined,\n }),\n ),\n ),\n ),\n\n final: state<MachineTransition>(),\n}\n"],"names":["isSickOrVacation","_ctx","ev","isHoliday","isNonHolidayView","isHolidayView","isUnlimitedPolicy","addEmployeesSourceIs","source","ctx","cancelToPolicyList","transition","componentEvents","reduce","PolicyListContextual","backToListTransition","timeOffMachine","state","SelectPolicyTypeContextual","guard","TimeOffPolicyDetailContextual","ViewHolidayEmployeesContextual","PolicyDetailsFormContextual","HolidaySelectionFormContextual","AddEmployeesToPolicyContextual","PolicySettingsContextual","EditPolicySettingsContextual","AddEmployeesHolidayContextual","ViewHolidayScheduleContextual","EditHolidaySelectionFormContextual"],"mappings":"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"}
@@ -1,9 +1,38 @@
1
1
  import { PolicyConfigurationFormData } from './PolicyConfigurationFormTypes';
2
2
  import { BaseComponentInterface } from '../../../Base';
3
+ /**
4
+ * Props for {@link PolicyConfigurationForm}.
5
+ *
6
+ * @public
7
+ */
3
8
  export interface PolicyConfigurationFormProps extends BaseComponentInterface<'Company.TimeOff.CreateTimeOffPolicy'> {
9
+ /** Company that owns the policy being created or edited. */
4
10
  companyId: string;
11
+ /** Type of policy being configured. */
5
12
  policyType: 'sick' | 'vacation';
13
+ /** When set, the form loads the existing policy and submits an update. */
6
14
  policyId?: string;
15
+ /** Pre-populated values to merge into the form's defaults. */
7
16
  defaultValues?: Partial<PolicyConfigurationFormData>;
8
17
  }
18
+ /**
19
+ * Form for creating or editing the details of a sick or vacation time off policy — its name and accrual configuration.
20
+ *
21
+ * @remarks
22
+ * Omit `policyId` to create a new policy; pass `policyId` to edit an existing
23
+ * one. In edit mode, the form fetches the policy via Suspense and merges the
24
+ * derived defaults with any `defaultValues` you supply (your overrides win).
25
+ * When editing a policy whose configuration is already complete, the accrual
26
+ * method selector is restricted to the matching category (unlimited vs.
27
+ * accrual-based).
28
+ *
29
+ * | Event | Description | Data |
30
+ * | ----- | ----------- | ---- |
31
+ * | `timeOff/policyDetails/done` | Fired after the policy is successfully created or updated | `{ policyId: string, accrualMethod: string }` |
32
+ * | `CANCEL` | Fired when the user clicks the cancel button | — |
33
+ *
34
+ * @param props - See {@link PolicyConfigurationFormProps}.
35
+ * @returns The rendered policy configuration form.
36
+ * @public
37
+ */
9
38
  export declare function PolicyConfigurationForm(props: PolicyConfigurationFormProps): import("react").JSX.Element;
@@ -1 +1 @@
1
- {"version":3,"file":"PolicyConfigurationForm.js","sources":["../../../../../src/components/TimeOff/TimeOffManagement/PolicyConfigurationForm/PolicyConfigurationForm.tsx"],"sourcesContent":["import { useCallback } from 'react'\nimport { useTimeOffPoliciesCreateMutation } from '@gusto/embedded-api-v-2025-11-15/react-query/timeOffPoliciesCreate'\nimport { useTimeOffPoliciesUpdateMutation } from '@gusto/embedded-api-v-2025-11-15/react-query/timeOffPoliciesUpdate'\nimport { useTimeOffPoliciesGetSuspense } from '@gusto/embedded-api-v-2025-11-15/react-query/timeOffPoliciesGet'\nimport type { TimeOffPolicyRequest } from '@gusto/embedded-api-v-2025-11-15/models/components/timeoffpolicyrequest'\nimport type { TimeOffPolicy } from '@gusto/embedded-api-v-2025-11-15/models/components/timeoffpolicy'\nimport type { PutV1TimeOffPoliciesTimeOffPolicyUuidRequestBody } from '@gusto/embedded-api-v-2025-11-15/models/operations/putv1timeoffpoliciestimeoffpolicyuuid'\nimport { useQueryClient } from '@tanstack/react-query'\nimport { PolicyConfigurationFormPresentation } from './PolicyConfigurationFormPresentation'\nimport type { PolicyConfigurationFormData } from './PolicyConfigurationFormTypes'\nimport { BaseComponent, type BaseComponentInterface } from '@/components/Base'\nimport { useBase } from '@/components/Base/useBase'\nimport { componentEvents } from '@/shared/constants'\nimport { formatMonthDay } from '@/helpers/dateFormatting'\n\nexport interface PolicyConfigurationFormProps extends BaseComponentInterface<'Company.TimeOff.CreateTimeOffPolicy'> {\n companyId: string\n policyType: 'sick' | 'vacation'\n policyId?: string\n defaultValues?: Partial<PolicyConfigurationFormData>\n}\n\nexport function PolicyConfigurationForm(props: PolicyConfigurationFormProps) {\n return (\n <BaseComponent {...props}>\n <Root {...props} />\n </BaseComponent>\n )\n}\n\nfunction resolveApiAccrualMethod(\n data: PolicyConfigurationFormData,\n): TimeOffPolicyRequest['accrualMethod'] {\n switch (data.accrualMethod) {\n case 'unlimited':\n return 'unlimited'\n\n case 'per_hour_paid': {\n const paid = data.allPaidHours ?? false\n const overtime = data.includeOvertime ?? false\n\n if (paid && overtime) return 'per_hour_paid'\n if (paid && !overtime) return 'per_hour_paid_no_overtime'\n if (!paid && overtime) return 'per_hour_worked'\n return 'per_hour_worked_no_overtime'\n }\n\n case 'per_calendar_year': {\n if (data.accrualMethodFixed === 'per_pay_period') return 'per_pay_period'\n\n return data.resetDateType === 'per_anniversary_year'\n ? 'per_anniversary_year'\n : 'per_calendar_year'\n }\n }\n}\n\nconst HOURLY_API_METHODS = [\n 'per_hour_paid',\n 'per_hour_paid_no_overtime',\n 'per_hour_worked',\n 'per_hour_worked_no_overtime',\n]\n\nfunction deriveFormDefaults(policy: TimeOffPolicy): Partial<PolicyConfigurationFormData> {\n const defaults: Partial<PolicyConfigurationFormData> = { name: policy.name }\n const apiMethod = policy.accrualMethod\n\n if (apiMethod === 'unlimited') {\n defaults.accrualMethod = 'unlimited'\n } else if (HOURLY_API_METHODS.includes(apiMethod)) {\n defaults.accrualMethod = 'per_hour_paid'\n defaults.allPaidHours =\n apiMethod === 'per_hour_paid' || apiMethod === 'per_hour_paid_no_overtime'\n defaults.includeOvertime = apiMethod === 'per_hour_paid' || apiMethod === 'per_hour_worked'\n\n if (policy.accrualRate != null) defaults.accrualRate = Number(policy.accrualRate)\n if (policy.accrualRateUnit != null) defaults.accrualRateUnit = Number(policy.accrualRateUnit)\n\n if (policy.policyResetDate) {\n defaults.resetDateType = 'per_calendar_year'\n }\n } else {\n defaults.accrualMethod = 'per_calendar_year'\n\n if (apiMethod === 'per_pay_period') {\n defaults.accrualMethodFixed = 'per_pay_period'\n defaults.resetDateType = policy.policyResetDate ? 'per_calendar_year' : 'per_anniversary_year'\n } else {\n defaults.accrualMethodFixed = 'all_at_once'\n defaults.resetDateType =\n apiMethod === 'per_anniversary_year' ? 'per_anniversary_year' : 'per_calendar_year'\n }\n\n if (policy.accrualRate != null) defaults.accrualRate = Number(policy.accrualRate)\n }\n\n if (policy.policyResetDate) {\n const [month, day] = policy.policyResetDate.split('-').map(Number)\n if (month) defaults.resetMonth = month\n if (day) defaults.resetDay = day\n }\n\n return defaults\n}\n\nfunction buildCreateRequestBody(\n data: PolicyConfigurationFormData,\n policyType: 'sick' | 'vacation',\n): TimeOffPolicyRequest {\n const accrualMethod = resolveApiAccrualMethod(data)\n\n const base: TimeOffPolicyRequest = { name: data.name, policyType, accrualMethod }\n\n if (accrualMethod === 'unlimited') {\n return { ...base, complete: true }\n }\n\n const isHourly =\n accrualMethod === 'per_hour_paid' ||\n accrualMethod === 'per_hour_paid_no_overtime' ||\n accrualMethod === 'per_hour_worked' ||\n accrualMethod === 'per_hour_worked_no_overtime'\n\n const policyResetDate =\n data.resetDateType === 'per_calendar_year'\n ? formatMonthDay(data.resetMonth, data.resetDay)\n : null\n\n if (isHourly) {\n return {\n ...base,\n accrualRate: data.accrualRate != null ? String(data.accrualRate) : undefined,\n accrualRateUnit: data.accrualRateUnit != null ? String(data.accrualRateUnit) : undefined,\n policyResetDate,\n complete: false,\n }\n }\n\n return {\n ...base,\n accrualRate: data.accrualRate != null ? String(data.accrualRate) : undefined,\n accrualRateUnit: null,\n policyResetDate,\n complete: false,\n }\n}\n\nfunction buildUpdateRequestBody(\n data: PolicyConfigurationFormData,\n policyType: 'sick' | 'vacation',\n version: string,\n): PutV1TimeOffPoliciesTimeOffPolicyUuidRequestBody {\n const accrualMethod = resolveApiAccrualMethod(data)\n\n const base: PutV1TimeOffPoliciesTimeOffPolicyUuidRequestBody = {\n name: data.name,\n policyType,\n accrualMethod,\n version,\n }\n\n if (accrualMethod === 'unlimited') {\n return {\n ...base,\n accrualRate: null,\n accrualRateUnit: null,\n policyResetDate: null,\n }\n }\n\n const isHourly =\n accrualMethod === 'per_hour_paid' ||\n accrualMethod === 'per_hour_paid_no_overtime' ||\n accrualMethod === 'per_hour_worked' ||\n accrualMethod === 'per_hour_worked_no_overtime'\n\n const policyResetDate =\n data.resetDateType === 'per_calendar_year'\n ? formatMonthDay(data.resetMonth, data.resetDay)\n : null\n\n if (isHourly) {\n return {\n ...base,\n accrualRate: data.accrualRate != null ? String(data.accrualRate) : undefined,\n accrualRateUnit: data.accrualRateUnit != null ? String(data.accrualRateUnit) : undefined,\n policyResetDate,\n }\n }\n\n return {\n ...base,\n accrualRate: data.accrualRate != null ? String(data.accrualRate) : undefined,\n accrualRateUnit: null,\n policyResetDate,\n }\n}\n\nfunction Root({ companyId, policyType, defaultValues, policyId }: PolicyConfigurationFormProps) {\n if (policyId) {\n return (\n <EditRoot\n companyId={companyId}\n policyType={policyType}\n policyId={policyId}\n defaultValues={defaultValues}\n />\n )\n }\n return <CreateRoot companyId={companyId} policyType={policyType} defaultValues={defaultValues} />\n}\n\ninterface CreateRootProps {\n companyId: string\n policyType: 'sick' | 'vacation'\n defaultValues?: Partial<PolicyConfigurationFormData>\n}\n\nfunction CreateRoot({ companyId, policyType, defaultValues }: CreateRootProps) {\n const { onEvent, baseSubmitHandler } = useBase()\n\n const { mutateAsync: createTimeOffPolicy, isPending } = useTimeOffPoliciesCreateMutation()\n\n const handleContinue = useCallback(\n async (data: PolicyConfigurationFormData) => {\n await baseSubmitHandler(data, async () => {\n const requestBody = buildCreateRequestBody(data, policyType)\n\n const response = await createTimeOffPolicy({\n request: {\n companyUuid: companyId,\n timeOffPolicyRequest: requestBody,\n },\n })\n\n onEvent(componentEvents.TIME_OFF_POLICY_DETAILS_DONE, {\n policyId: response.timeOffPolicy!.uuid,\n accrualMethod: requestBody.accrualMethod,\n })\n })\n },\n [baseSubmitHandler, companyId, createTimeOffPolicy, onEvent, policyType],\n )\n\n const handleCancel = useCallback(() => {\n onEvent(componentEvents.CANCEL)\n }, [onEvent])\n\n return (\n <PolicyConfigurationFormPresentation\n onContinue={handleContinue}\n onCancel={handleCancel}\n defaultValues={defaultValues}\n isPending={isPending}\n />\n )\n}\n\ninterface EditRootProps {\n companyId: string\n policyType: 'sick' | 'vacation'\n policyId: string\n defaultValues?: Partial<PolicyConfigurationFormData>\n}\n\nfunction EditRoot({ companyId, policyType, policyId, defaultValues }: EditRootProps) {\n const { onEvent, baseSubmitHandler } = useBase()\n const queryClient = useQueryClient()\n\n const { data: policyResponse } = useTimeOffPoliciesGetSuspense({\n timeOffPolicyUuid: policyId,\n })\n\n const { mutateAsync: updateTimeOffPolicy, isPending } = useTimeOffPoliciesUpdateMutation()\n\n const policy = policyResponse.timeOffPolicy\n if (!policy) throw new Error('Unexpected response: missing timeOffPolicy')\n\n const version = policy.version ?? ''\n const fetchedDefaults = deriveFormDefaults(policy)\n const mergedDefaults = { ...fetchedDefaults, ...defaultValues }\n\n const lockedAccrualCategory = policy.complete\n ? fetchedDefaults.accrualMethod === 'unlimited'\n ? ('unlimited' as const)\n : ('accrual_based' as const)\n : undefined\n\n const handleContinue = useCallback(\n async (data: PolicyConfigurationFormData) => {\n await baseSubmitHandler(data, async () => {\n const requestBody = buildUpdateRequestBody(data, policyType, version)\n\n await updateTimeOffPolicy({\n request: {\n timeOffPolicyUuid: policyId,\n requestBody,\n },\n })\n\n void queryClient.invalidateQueries({\n queryKey: ['@gusto/embedded-api-v-2025-11-15', 'timeOffPolicies', 'get'],\n })\n\n onEvent(componentEvents.TIME_OFF_POLICY_DETAILS_DONE, {\n policyId,\n accrualMethod: requestBody.accrualMethod,\n })\n })\n },\n [baseSubmitHandler, policyId, policyType, version, updateTimeOffPolicy, queryClient, onEvent],\n )\n\n const handleCancel = useCallback(() => {\n onEvent(componentEvents.CANCEL)\n }, [onEvent])\n\n return (\n <PolicyConfigurationFormPresentation\n onContinue={handleContinue}\n onCancel={handleCancel}\n defaultValues={mergedDefaults}\n editingPolicyName={policy.name}\n isPending={isPending}\n lockedAccrualCategory={lockedAccrualCategory}\n />\n )\n}\n"],"names":["PolicyConfigurationForm","props","jsx","BaseComponent","Root","resolveApiAccrualMethod","data","paid","overtime","HOURLY_API_METHODS","deriveFormDefaults","policy","defaults","apiMethod","month","day","buildCreateRequestBody","policyType","accrualMethod","base","isHourly","policyResetDate","formatMonthDay","buildUpdateRequestBody","version","companyId","defaultValues","policyId","EditRoot","CreateRoot","onEvent","baseSubmitHandler","useBase","createTimeOffPolicy","isPending","useTimeOffPoliciesCreateMutation","handleContinue","useCallback","requestBody","response","componentEvents","handleCancel","PolicyConfigurationFormPresentation","queryClient","useQueryClient","policyResponse","useTimeOffPoliciesGetSuspense","updateTimeOffPolicy","useTimeOffPoliciesUpdateMutation","fetchedDefaults","mergedDefaults","lockedAccrualCategory"],"mappings":";;;;;;;;;;;AAsBO,SAASA,EAAwBC,GAAqC;AAC3E,SACE,gBAAAC,EAACC,KAAe,GAAGF,GACjB,4BAACG,GAAA,EAAM,GAAGH,GAAO,EAAA,CACnB;AAEJ;AAEA,SAASI,EACPC,GACuC;AACvC,UAAQA,EAAK,eAAA;AAAA,IACX,KAAK;AACH,aAAO;AAAA,IAET,KAAK,iBAAiB;AACpB,YAAMC,IAAOD,EAAK,gBAAgB,IAC5BE,IAAWF,EAAK,mBAAmB;AAEzC,aAAIC,KAAQC,IAAiB,kBACzBD,KAAQ,CAACC,IAAiB,8BAC1B,CAACD,KAAQC,IAAiB,oBACvB;AAAA,IACT;AAAA,IAEA,KAAK;AACH,aAAIF,EAAK,uBAAuB,mBAAyB,mBAElDA,EAAK,kBAAkB,yBAC1B,yBACA;AAAA,EACN;AAEJ;AAEA,MAAMG,IAAqB;AAAA,EACzB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAEA,SAASC,EAAmBC,GAA6D;AACvF,QAAMC,IAAiD,EAAE,MAAMD,EAAO,KAAA,GAChEE,IAAYF,EAAO;AA+BzB,MA7BIE,MAAc,cAChBD,EAAS,gBAAgB,cAChBH,EAAmB,SAASI,CAAS,KAC9CD,EAAS,gBAAgB,iBACzBA,EAAS,eACPC,MAAc,mBAAmBA,MAAc,6BACjDD,EAAS,kBAAkBC,MAAc,mBAAmBA,MAAc,mBAEtEF,EAAO,eAAe,WAAe,cAAc,OAAOA,EAAO,WAAW,IAC5EA,EAAO,mBAAmB,WAAe,kBAAkB,OAAOA,EAAO,eAAe,IAExFA,EAAO,oBACTC,EAAS,gBAAgB,yBAG3BA,EAAS,gBAAgB,qBAErBC,MAAc,oBAChBD,EAAS,qBAAqB,kBAC9BA,EAAS,gBAAgBD,EAAO,kBAAkB,sBAAsB,2BAExEC,EAAS,qBAAqB,eAC9BA,EAAS,gBACPC,MAAc,yBAAyB,yBAAyB,sBAGhEF,EAAO,eAAe,WAAe,cAAc,OAAOA,EAAO,WAAW,KAG9EA,EAAO,iBAAiB;AAC1B,UAAM,CAACG,GAAOC,CAAG,IAAIJ,EAAO,gBAAgB,MAAM,GAAG,EAAE,IAAI,MAAM;AACjE,IAAIG,QAAgB,aAAaA,IAC7BC,QAAc,WAAWA;AAAA,EAC/B;AAEA,SAAOH;AACT;AAEA,SAASI,EACPV,GACAW,GACsB;AACtB,QAAMC,IAAgBb,EAAwBC,CAAI,GAE5Ca,IAA6B,EAAE,MAAMb,EAAK,MAAM,YAAAW,GAAY,eAAAC,EAAA;AAElE,MAAIA,MAAkB;AACpB,WAAO,EAAE,GAAGC,GAAM,UAAU,GAAA;AAG9B,QAAMC,IACJF,MAAkB,mBAClBA,MAAkB,+BAClBA,MAAkB,qBAClBA,MAAkB,+BAEdG,IACJf,EAAK,kBAAkB,sBACnBgB,EAAehB,EAAK,YAAYA,EAAK,QAAQ,IAC7C;AAEN,SAAIc,IACK;AAAA,IACL,GAAGD;AAAA,IACH,aAAab,EAAK,eAAe,OAAO,OAAOA,EAAK,WAAW,IAAI;AAAA,IACnE,iBAAiBA,EAAK,mBAAmB,OAAO,OAAOA,EAAK,eAAe,IAAI;AAAA,IAC/E,iBAAAe;AAAA,IACA,UAAU;AAAA,EAAA,IAIP;AAAA,IACL,GAAGF;AAAA,IACH,aAAab,EAAK,eAAe,OAAO,OAAOA,EAAK,WAAW,IAAI;AAAA,IACnE,iBAAiB;AAAA,IACjB,iBAAAe;AAAA,IACA,UAAU;AAAA,EAAA;AAEd;AAEA,SAASE,EACPjB,GACAW,GACAO,GACkD;AAClD,QAAMN,IAAgBb,EAAwBC,CAAI,GAE5Ca,IAAyD;AAAA,IAC7D,MAAMb,EAAK;AAAA,IACX,YAAAW;AAAA,IACA,eAAAC;AAAA,IACA,SAAAM;AAAA,EAAA;AAGF,MAAIN,MAAkB;AACpB,WAAO;AAAA,MACL,GAAGC;AAAA,MACH,aAAa;AAAA,MACb,iBAAiB;AAAA,MACjB,iBAAiB;AAAA,IAAA;AAIrB,QAAMC,IACJF,MAAkB,mBAClBA,MAAkB,+BAClBA,MAAkB,qBAClBA,MAAkB,+BAEdG,IACJf,EAAK,kBAAkB,sBACnBgB,EAAehB,EAAK,YAAYA,EAAK,QAAQ,IAC7C;AAEN,SAAIc,IACK;AAAA,IACL,GAAGD;AAAA,IACH,aAAab,EAAK,eAAe,OAAO,OAAOA,EAAK,WAAW,IAAI;AAAA,IACnE,iBAAiBA,EAAK,mBAAmB,OAAO,OAAOA,EAAK,eAAe,IAAI;AAAA,IAC/E,iBAAAe;AAAA,EAAA,IAIG;AAAA,IACL,GAAGF;AAAA,IACH,aAAab,EAAK,eAAe,OAAO,OAAOA,EAAK,WAAW,IAAI;AAAA,IACnE,iBAAiB;AAAA,IACjB,iBAAAe;AAAA,EAAA;AAEJ;AAEA,SAASjB,EAAK,EAAE,WAAAqB,GAAW,YAAAR,GAAY,eAAAS,GAAe,UAAAC,KAA0C;AAC9F,SAAIA,IAEA,gBAAAzB;AAAA,IAAC0B;AAAA,IAAA;AAAA,MACC,WAAAH;AAAA,MACA,YAAAR;AAAA,MACA,UAAAU;AAAA,MACA,eAAAD;AAAA,IAAA;AAAA,EAAA,IAIC,gBAAAxB,EAAC2B,GAAA,EAAW,WAAAJ,GAAsB,YAAAR,GAAwB,eAAAS,EAAA,CAA8B;AACjG;AAQA,SAASG,EAAW,EAAE,WAAAJ,GAAW,YAAAR,GAAY,eAAAS,KAAkC;AAC7E,QAAM,EAAE,SAAAI,GAAS,mBAAAC,EAAA,IAAsBC,EAAA,GAEjC,EAAE,aAAaC,GAAqB,WAAAC,EAAA,IAAcC,EAAA,GAElDC,IAAiBC;AAAA,IACrB,OAAO/B,MAAsC;AAC3C,YAAMyB,EAAkBzB,GAAM,YAAY;AACxC,cAAMgC,IAActB,EAAuBV,GAAMW,CAAU,GAErDsB,IAAW,MAAMN,EAAoB;AAAA,UACzC,SAAS;AAAA,YACP,aAAaR;AAAA,YACb,sBAAsBa;AAAA,UAAA;AAAA,QACxB,CACD;AAED,QAAAR,EAAQU,EAAgB,8BAA8B;AAAA,UACpD,UAAUD,EAAS,cAAe;AAAA,UAClC,eAAeD,EAAY;AAAA,QAAA,CAC5B;AAAA,MACH,CAAC;AAAA,IACH;AAAA,IACA,CAACP,GAAmBN,GAAWQ,GAAqBH,GAASb,CAAU;AAAA,EAAA,GAGnEwB,IAAeJ,EAAY,MAAM;AACrC,IAAAP,EAAQU,EAAgB,MAAM;AAAA,EAChC,GAAG,CAACV,CAAO,CAAC;AAEZ,SACE,gBAAA5B;AAAA,IAACwC;AAAA,IAAA;AAAA,MACC,YAAYN;AAAA,MACZ,UAAUK;AAAA,MACV,eAAAf;AAAA,MACA,WAAAQ;AAAA,IAAA;AAAA,EAAA;AAGN;AASA,SAASN,EAAS,EAAE,WAAAH,GAAW,YAAAR,GAAY,UAAAU,GAAU,eAAAD,KAAgC;AACnF,QAAM,EAAE,SAAAI,GAAS,mBAAAC,EAAA,IAAsBC,EAAA,GACjCW,IAAcC,EAAA,GAEd,EAAE,MAAMC,EAAA,IAAmBC,EAA8B;AAAA,IAC7D,mBAAmBnB;AAAA,EAAA,CACpB,GAEK,EAAE,aAAaoB,GAAqB,WAAAb,EAAA,IAAcc,EAAA,GAElDrC,IAASkC,EAAe;AAC9B,MAAI,CAAClC,EAAQ,OAAM,IAAI,MAAM,4CAA4C;AAEzE,QAAMa,IAAUb,EAAO,WAAW,IAC5BsC,IAAkBvC,EAAmBC,CAAM,GAC3CuC,IAAiB,EAAE,GAAGD,GAAiB,GAAGvB,EAAA,GAE1CyB,IAAwBxC,EAAO,WACjCsC,EAAgB,kBAAkB,cAC/B,cACA,kBACH,QAEEb,IAAiBC;AAAA,IACrB,OAAO/B,MAAsC;AAC3C,YAAMyB,EAAkBzB,GAAM,YAAY;AACxC,cAAMgC,IAAcf,EAAuBjB,GAAMW,GAAYO,CAAO;AAEpE,cAAMuB,EAAoB;AAAA,UACxB,SAAS;AAAA,YACP,mBAAmBpB;AAAA,YACnB,aAAAW;AAAA,UAAA;AAAA,QACF,CACD,GAEIK,EAAY,kBAAkB;AAAA,UACjC,UAAU,CAAC,oCAAoC,mBAAmB,KAAK;AAAA,QAAA,CACxE,GAEDb,EAAQU,EAAgB,8BAA8B;AAAA,UACpD,UAAAb;AAAA,UACA,eAAeW,EAAY;AAAA,QAAA,CAC5B;AAAA,MACH,CAAC;AAAA,IACH;AAAA,IACA,CAACP,GAAmBJ,GAAUV,GAAYO,GAASuB,GAAqBJ,GAAab,CAAO;AAAA,EAAA,GAGxFW,IAAeJ,EAAY,MAAM;AACrC,IAAAP,EAAQU,EAAgB,MAAM;AAAA,EAChC,GAAG,CAACV,CAAO,CAAC;AAEZ,SACE,gBAAA5B;AAAA,IAACwC;AAAA,IAAA;AAAA,MACC,YAAYN;AAAA,MACZ,UAAUK;AAAA,MACV,eAAeS;AAAA,MACf,mBAAmBvC,EAAO;AAAA,MAC1B,WAAAuB;AAAA,MACA,uBAAAiB;AAAA,IAAA;AAAA,EAAA;AAGN;"}
1
+ {"version":3,"file":"PolicyConfigurationForm.js","sources":["../../../../../src/components/TimeOff/TimeOffManagement/PolicyConfigurationForm/PolicyConfigurationForm.tsx"],"sourcesContent":["import { useCallback } from 'react'\nimport { useTimeOffPoliciesCreateMutation } from '@gusto/embedded-api-v-2025-11-15/react-query/timeOffPoliciesCreate'\nimport { useTimeOffPoliciesUpdateMutation } from '@gusto/embedded-api-v-2025-11-15/react-query/timeOffPoliciesUpdate'\nimport { useTimeOffPoliciesGetSuspense } from '@gusto/embedded-api-v-2025-11-15/react-query/timeOffPoliciesGet'\nimport type { TimeOffPolicyRequest } from '@gusto/embedded-api-v-2025-11-15/models/components/timeoffpolicyrequest'\nimport type { TimeOffPolicy } from '@gusto/embedded-api-v-2025-11-15/models/components/timeoffpolicy'\nimport type { PutV1TimeOffPoliciesTimeOffPolicyUuidRequestBody } from '@gusto/embedded-api-v-2025-11-15/models/operations/putv1timeoffpoliciestimeoffpolicyuuid'\nimport { useQueryClient } from '@tanstack/react-query'\nimport { PolicyConfigurationFormPresentation } from './PolicyConfigurationFormPresentation'\nimport type { PolicyConfigurationFormData } from './PolicyConfigurationFormTypes'\nimport { BaseComponent, type BaseComponentInterface } from '@/components/Base'\nimport { useBase } from '@/components/Base/useBase'\nimport { componentEvents } from '@/shared/constants'\nimport { formatMonthDay } from '@/helpers/dateFormatting'\n\n/**\n * Props for {@link PolicyConfigurationForm}.\n *\n * @public\n */\nexport interface PolicyConfigurationFormProps extends BaseComponentInterface<'Company.TimeOff.CreateTimeOffPolicy'> {\n /** Company that owns the policy being created or edited. */\n companyId: string\n /** Type of policy being configured. */\n policyType: 'sick' | 'vacation'\n /** When set, the form loads the existing policy and submits an update. */\n policyId?: string\n /** Pre-populated values to merge into the form's defaults. */\n defaultValues?: Partial<PolicyConfigurationFormData>\n}\n\n/**\n * Form for creating or editing the details of a sick or vacation time off policy — its name and accrual configuration.\n *\n * @remarks\n * Omit `policyId` to create a new policy; pass `policyId` to edit an existing\n * one. In edit mode, the form fetches the policy via Suspense and merges the\n * derived defaults with any `defaultValues` you supply (your overrides win).\n * When editing a policy whose configuration is already complete, the accrual\n * method selector is restricted to the matching category (unlimited vs.\n * accrual-based).\n *\n * | Event | Description | Data |\n * | ----- | ----------- | ---- |\n * | `timeOff/policyDetails/done` | Fired after the policy is successfully created or updated | `{ policyId: string, accrualMethod: string }` |\n * | `CANCEL` | Fired when the user clicks the cancel button | — |\n *\n * @param props - See {@link PolicyConfigurationFormProps}.\n * @returns The rendered policy configuration form.\n * @public\n */\nexport function PolicyConfigurationForm(props: PolicyConfigurationFormProps) {\n return (\n <BaseComponent {...props}>\n <Root {...props} />\n </BaseComponent>\n )\n}\n\nfunction resolveApiAccrualMethod(\n data: PolicyConfigurationFormData,\n): TimeOffPolicyRequest['accrualMethod'] {\n switch (data.accrualMethod) {\n case 'unlimited':\n return 'unlimited'\n\n case 'per_hour_paid': {\n const paid = data.allPaidHours ?? false\n const overtime = data.includeOvertime ?? false\n\n if (paid && overtime) return 'per_hour_paid'\n if (paid && !overtime) return 'per_hour_paid_no_overtime'\n if (!paid && overtime) return 'per_hour_worked'\n return 'per_hour_worked_no_overtime'\n }\n\n case 'per_calendar_year': {\n if (data.accrualMethodFixed === 'per_pay_period') return 'per_pay_period'\n\n return data.resetDateType === 'per_anniversary_year'\n ? 'per_anniversary_year'\n : 'per_calendar_year'\n }\n }\n}\n\nconst HOURLY_API_METHODS = [\n 'per_hour_paid',\n 'per_hour_paid_no_overtime',\n 'per_hour_worked',\n 'per_hour_worked_no_overtime',\n]\n\nfunction deriveFormDefaults(policy: TimeOffPolicy): Partial<PolicyConfigurationFormData> {\n const defaults: Partial<PolicyConfigurationFormData> = { name: policy.name }\n const apiMethod = policy.accrualMethod\n\n if (apiMethod === 'unlimited') {\n defaults.accrualMethod = 'unlimited'\n } else if (HOURLY_API_METHODS.includes(apiMethod)) {\n defaults.accrualMethod = 'per_hour_paid'\n defaults.allPaidHours =\n apiMethod === 'per_hour_paid' || apiMethod === 'per_hour_paid_no_overtime'\n defaults.includeOvertime = apiMethod === 'per_hour_paid' || apiMethod === 'per_hour_worked'\n\n if (policy.accrualRate != null) defaults.accrualRate = Number(policy.accrualRate)\n if (policy.accrualRateUnit != null) defaults.accrualRateUnit = Number(policy.accrualRateUnit)\n\n if (policy.policyResetDate) {\n defaults.resetDateType = 'per_calendar_year'\n }\n } else {\n defaults.accrualMethod = 'per_calendar_year'\n\n if (apiMethod === 'per_pay_period') {\n defaults.accrualMethodFixed = 'per_pay_period'\n defaults.resetDateType = policy.policyResetDate ? 'per_calendar_year' : 'per_anniversary_year'\n } else {\n defaults.accrualMethodFixed = 'all_at_once'\n defaults.resetDateType =\n apiMethod === 'per_anniversary_year' ? 'per_anniversary_year' : 'per_calendar_year'\n }\n\n if (policy.accrualRate != null) defaults.accrualRate = Number(policy.accrualRate)\n }\n\n if (policy.policyResetDate) {\n const [month, day] = policy.policyResetDate.split('-').map(Number)\n if (month) defaults.resetMonth = month\n if (day) defaults.resetDay = day\n }\n\n return defaults\n}\n\nfunction buildCreateRequestBody(\n data: PolicyConfigurationFormData,\n policyType: 'sick' | 'vacation',\n): TimeOffPolicyRequest {\n const accrualMethod = resolveApiAccrualMethod(data)\n\n const base: TimeOffPolicyRequest = { name: data.name, policyType, accrualMethod }\n\n if (accrualMethod === 'unlimited') {\n return { ...base, complete: true }\n }\n\n const isHourly =\n accrualMethod === 'per_hour_paid' ||\n accrualMethod === 'per_hour_paid_no_overtime' ||\n accrualMethod === 'per_hour_worked' ||\n accrualMethod === 'per_hour_worked_no_overtime'\n\n const policyResetDate =\n data.resetDateType === 'per_calendar_year'\n ? formatMonthDay(data.resetMonth, data.resetDay)\n : null\n\n if (isHourly) {\n return {\n ...base,\n accrualRate: data.accrualRate != null ? String(data.accrualRate) : undefined,\n accrualRateUnit: data.accrualRateUnit != null ? String(data.accrualRateUnit) : undefined,\n policyResetDate,\n complete: false,\n }\n }\n\n return {\n ...base,\n accrualRate: data.accrualRate != null ? String(data.accrualRate) : undefined,\n accrualRateUnit: null,\n policyResetDate,\n complete: false,\n }\n}\n\nfunction buildUpdateRequestBody(\n data: PolicyConfigurationFormData,\n policyType: 'sick' | 'vacation',\n version: string,\n): PutV1TimeOffPoliciesTimeOffPolicyUuidRequestBody {\n const accrualMethod = resolveApiAccrualMethod(data)\n\n const base: PutV1TimeOffPoliciesTimeOffPolicyUuidRequestBody = {\n name: data.name,\n policyType,\n accrualMethod,\n version,\n }\n\n if (accrualMethod === 'unlimited') {\n return {\n ...base,\n accrualRate: null,\n accrualRateUnit: null,\n policyResetDate: null,\n }\n }\n\n const isHourly =\n accrualMethod === 'per_hour_paid' ||\n accrualMethod === 'per_hour_paid_no_overtime' ||\n accrualMethod === 'per_hour_worked' ||\n accrualMethod === 'per_hour_worked_no_overtime'\n\n const policyResetDate =\n data.resetDateType === 'per_calendar_year'\n ? formatMonthDay(data.resetMonth, data.resetDay)\n : null\n\n if (isHourly) {\n return {\n ...base,\n accrualRate: data.accrualRate != null ? String(data.accrualRate) : undefined,\n accrualRateUnit: data.accrualRateUnit != null ? String(data.accrualRateUnit) : undefined,\n policyResetDate,\n }\n }\n\n return {\n ...base,\n accrualRate: data.accrualRate != null ? String(data.accrualRate) : undefined,\n accrualRateUnit: null,\n policyResetDate,\n }\n}\n\nfunction Root({ companyId, policyType, defaultValues, policyId }: PolicyConfigurationFormProps) {\n if (policyId) {\n return (\n <EditRoot\n companyId={companyId}\n policyType={policyType}\n policyId={policyId}\n defaultValues={defaultValues}\n />\n )\n }\n return <CreateRoot companyId={companyId} policyType={policyType} defaultValues={defaultValues} />\n}\n\ninterface CreateRootProps {\n companyId: string\n policyType: 'sick' | 'vacation'\n defaultValues?: Partial<PolicyConfigurationFormData>\n}\n\nfunction CreateRoot({ companyId, policyType, defaultValues }: CreateRootProps) {\n const { onEvent, baseSubmitHandler } = useBase()\n\n const { mutateAsync: createTimeOffPolicy, isPending } = useTimeOffPoliciesCreateMutation()\n\n const handleContinue = useCallback(\n async (data: PolicyConfigurationFormData) => {\n await baseSubmitHandler(data, async () => {\n const requestBody = buildCreateRequestBody(data, policyType)\n\n const response = await createTimeOffPolicy({\n request: {\n companyUuid: companyId,\n timeOffPolicyRequest: requestBody,\n },\n })\n\n onEvent(componentEvents.TIME_OFF_POLICY_DETAILS_DONE, {\n policyId: response.timeOffPolicy!.uuid,\n accrualMethod: requestBody.accrualMethod,\n })\n })\n },\n [baseSubmitHandler, companyId, createTimeOffPolicy, onEvent, policyType],\n )\n\n const handleCancel = useCallback(() => {\n onEvent(componentEvents.CANCEL)\n }, [onEvent])\n\n return (\n <PolicyConfigurationFormPresentation\n onContinue={handleContinue}\n onCancel={handleCancel}\n defaultValues={defaultValues}\n isPending={isPending}\n />\n )\n}\n\ninterface EditRootProps {\n companyId: string\n policyType: 'sick' | 'vacation'\n policyId: string\n defaultValues?: Partial<PolicyConfigurationFormData>\n}\n\nfunction EditRoot({ companyId, policyType, policyId, defaultValues }: EditRootProps) {\n const { onEvent, baseSubmitHandler } = useBase()\n const queryClient = useQueryClient()\n\n const { data: policyResponse } = useTimeOffPoliciesGetSuspense({\n timeOffPolicyUuid: policyId,\n })\n\n const { mutateAsync: updateTimeOffPolicy, isPending } = useTimeOffPoliciesUpdateMutation()\n\n const policy = policyResponse.timeOffPolicy\n if (!policy) throw new Error('Unexpected response: missing timeOffPolicy')\n\n const version = policy.version ?? ''\n const fetchedDefaults = deriveFormDefaults(policy)\n const mergedDefaults = { ...fetchedDefaults, ...defaultValues }\n\n const lockedAccrualCategory = policy.complete\n ? fetchedDefaults.accrualMethod === 'unlimited'\n ? ('unlimited' as const)\n : ('accrual_based' as const)\n : undefined\n\n const handleContinue = useCallback(\n async (data: PolicyConfigurationFormData) => {\n await baseSubmitHandler(data, async () => {\n const requestBody = buildUpdateRequestBody(data, policyType, version)\n\n await updateTimeOffPolicy({\n request: {\n timeOffPolicyUuid: policyId,\n requestBody,\n },\n })\n\n void queryClient.invalidateQueries({\n queryKey: ['@gusto/embedded-api-v-2025-11-15', 'timeOffPolicies', 'get'],\n })\n\n onEvent(componentEvents.TIME_OFF_POLICY_DETAILS_DONE, {\n policyId,\n accrualMethod: requestBody.accrualMethod,\n })\n })\n },\n [baseSubmitHandler, policyId, policyType, version, updateTimeOffPolicy, queryClient, onEvent],\n )\n\n const handleCancel = useCallback(() => {\n onEvent(componentEvents.CANCEL)\n }, [onEvent])\n\n return (\n <PolicyConfigurationFormPresentation\n onContinue={handleContinue}\n onCancel={handleCancel}\n defaultValues={mergedDefaults}\n editingPolicyName={policy.name}\n isPending={isPending}\n lockedAccrualCategory={lockedAccrualCategory}\n />\n )\n}\n"],"names":["PolicyConfigurationForm","props","jsx","BaseComponent","Root","resolveApiAccrualMethod","data","paid","overtime","HOURLY_API_METHODS","deriveFormDefaults","policy","defaults","apiMethod","month","day","buildCreateRequestBody","policyType","accrualMethod","base","isHourly","policyResetDate","formatMonthDay","buildUpdateRequestBody","version","companyId","defaultValues","policyId","EditRoot","CreateRoot","onEvent","baseSubmitHandler","useBase","createTimeOffPolicy","isPending","useTimeOffPoliciesCreateMutation","handleContinue","useCallback","requestBody","response","componentEvents","handleCancel","PolicyConfigurationFormPresentation","queryClient","useQueryClient","policyResponse","useTimeOffPoliciesGetSuspense","updateTimeOffPolicy","useTimeOffPoliciesUpdateMutation","fetchedDefaults","mergedDefaults","lockedAccrualCategory"],"mappings":"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"}
@@ -1,2 +1,3 @@
1
1
  import { PolicyConfigurationFormPresentationProps } from './PolicyConfigurationFormTypes';
2
+ /** @internal */
2
3
  export declare function PolicyConfigurationFormPresentation({ onContinue, onCancel, defaultValues, editingPolicyName, isPending, lockedAccrualCategory, }: PolicyConfigurationFormPresentationProps): import("react").JSX.Element;
@@ -1 +1 @@
1
- {"version":3,"file":"PolicyConfigurationFormPresentation.js","sources":["../../../../../src/components/TimeOff/TimeOffManagement/PolicyConfigurationForm/PolicyConfigurationFormPresentation.tsx"],"sourcesContent":["import { useCallback, useEffect, useId, useMemo } from 'react'\nimport { FormProvider, useForm, useWatch } from 'react-hook-form'\nimport { useTranslation } from 'react-i18next'\nimport type {\n AccrualMethod,\n AccrualMethodFixed,\n PolicyConfigurationFormData,\n PolicyConfigurationFormPresentationProps,\n ResetDateType,\n} from './PolicyConfigurationFormTypes'\nimport styles from './PolicyConfigurationForm.module.scss'\nimport {\n Flex,\n ActionsLayout,\n RadioGroupField,\n NumberInputField,\n CheckboxField,\n SelectField,\n TextInputField,\n} from '@/components/Common'\nimport { Form as HtmlForm } from '@/components/Common/Form'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { useLocale } from '@/contexts/LocaleProvider/useLocale'\nimport { useI18n } from '@/i18n'\nimport { getDaysInMonth } from '@/helpers/dateFormatting'\n\nexport function PolicyConfigurationFormPresentation({\n onContinue,\n onCancel,\n defaultValues,\n editingPolicyName,\n isPending = false,\n lockedAccrualCategory,\n}: PolicyConfigurationFormPresentationProps) {\n useI18n('Company.TimeOff.CreateTimeOffPolicy')\n const { t } = useTranslation('Company.TimeOff.CreateTimeOffPolicy')\n const { Heading, Text, Button } = useComponentContext()\n const { locale } = useLocale()\n const headingId = useId()\n\n const monthOptions = useMemo(() => {\n const formatter = new Intl.DateTimeFormat(locale, { month: 'long' })\n return Array.from({ length: 12 }, (_, i) => ({\n value: i + 1,\n label: formatter.format(new Date(2024, i)),\n }))\n }, [locale])\n\n const formMethods = useForm<PolicyConfigurationFormData>({\n defaultValues: {\n name: '',\n resetMonth: 1,\n resetDay: 1,\n ...defaultValues,\n },\n })\n\n const { control, setValue, getValues } = formMethods\n const name = useWatch({ control, name: 'name' })\n const accrualMethod = useWatch({ control, name: 'accrualMethod' })\n const resetDateType = useWatch({ control, name: 'resetDateType' })\n const resetMonth = useWatch({ control, name: 'resetMonth' })\n const isContinueDisabled = !name.trim() || !accrualMethod\n\n const dayOptions = useMemo(() => {\n const days = getDaysInMonth(resetMonth ?? 1)\n return Array.from({ length: days }, (_, i) => ({\n value: i + 1,\n label: String(i + 1),\n }))\n }, [resetMonth])\n\n useEffect(() => {\n const maxDay = getDaysInMonth(resetMonth ?? 1)\n const currentDay = getValues('resetDay')\n if (currentDay != null && currentDay > maxDay) {\n setValue('resetDay', maxDay)\n }\n }, [resetMonth, getValues, setValue])\n\n useEffect(() => {\n if (accrualMethod === 'unlimited') {\n return\n }\n if (accrualMethod !== 'per_hour_paid') {\n setValue('accrualRateUnit', undefined)\n setValue('includeOvertime', undefined)\n setValue('allPaidHours', undefined)\n }\n if (accrualMethod !== 'per_calendar_year') {\n setValue('accrualMethodFixed', undefined)\n }\n }, [accrualMethod, setValue])\n\n const handleResetDateTypeChange = useCallback(\n (value: ResetDateType) => {\n if (value === 'per_anniversary_year') {\n setValue('resetMonth', 1)\n setValue('resetDay', 1)\n }\n },\n [setValue],\n )\n\n const accrualMethodOptions = useMemo(() => {\n const allOptions = [\n {\n value: 'per_hour_paid' as AccrualMethod,\n label: t('policyDetails.perHourPaidLabel'),\n description: t('policyDetails.perHourPaidHint'),\n },\n {\n value: 'per_calendar_year' as AccrualMethod,\n label: t('policyDetails.perYearLabel'),\n description: t('policyDetails.perYearHint'),\n },\n {\n value: 'unlimited' as AccrualMethod,\n label: t('policyDetails.unlimitedLabel'),\n description: t('policyDetails.unlimitedHint'),\n },\n ]\n if (lockedAccrualCategory === 'unlimited') {\n return allOptions.filter(option => option.value === 'unlimited')\n }\n if (lockedAccrualCategory === 'accrual_based') {\n return allOptions.filter(option => option.value !== 'unlimited')\n }\n return allOptions\n }, [t, lockedAccrualCategory])\n\n const accrualMethodFixedOptions = useMemo(\n () => [\n {\n value: 'per_pay_period' as AccrualMethodFixed,\n label: t('policyDetails.perPayPeriodLabel'),\n description: t('policyDetails.perPayPeriodHint'),\n },\n {\n value: 'all_at_once' as AccrualMethodFixed,\n label: t('policyDetails.allAtOnceLabel'),\n description: t('policyDetails.allAtOnceHint'),\n },\n ],\n [t],\n )\n\n const resetDateTypeOptions = useMemo(\n () => [\n {\n value: 'per_anniversary_year' as ResetDateType,\n label: t('policyDetails.perAnniversaryYearLabel'),\n },\n {\n value: 'per_calendar_year' as ResetDateType,\n label: t('policyDetails.perCalendarYearLabel'),\n },\n ],\n [t],\n )\n\n const handleSubmit = (data: PolicyConfigurationFormData) => {\n onContinue(data)\n }\n\n const isHourlyMethod = accrualMethod === 'per_hour_paid'\n const isFixedMethod = accrualMethod === 'per_calendar_year'\n const showResetDate = isHourlyMethod || isFixedMethod\n const showCustomDateFields = resetDateType === 'per_calendar_year'\n\n return (\n <FormProvider {...formMethods}>\n <HtmlForm aria-labelledby={headingId} onSubmit={formMethods.handleSubmit(handleSubmit)}>\n <Flex flexDirection=\"column\" gap={32}>\n <Heading as=\"h2\" id={headingId}>\n {editingPolicyName\n ? t('policyDetails.editTitle', { name: editingPolicyName })\n : t('policyDetails.createTitle')}\n </Heading>\n\n <Flex flexDirection=\"column\" gap={20}>\n <TextInputField\n name=\"name\"\n label={t('policyDetails.policyNameLabel')}\n isRequired\n errorMessage={t('policyDetails.validations.policyName')}\n />\n\n {accrualMethodOptions.length === 1 ? (\n <Flex flexDirection=\"column\" gap={4}>\n <Text weight=\"medium\">{t('policyDetails.accrualMethodLabel')}</Text>\n <Text>{accrualMethodOptions[0]!.label}</Text>\n </Flex>\n ) : (\n <RadioGroupField<AccrualMethod>\n name=\"accrualMethod\"\n label={t('policyDetails.accrualMethodLabel')}\n description={t('policyDetails.accrualMethodHint')}\n options={accrualMethodOptions}\n isRequired\n errorMessage={t('policyDetails.validations.accrualMethod')}\n />\n )}\n\n {isHourlyMethod && (\n <>\n <hr className={styles.divider} />\n\n <NumberInputField\n className={styles.narrowInput}\n name=\"accrualRate\"\n label={t('policyDetails.employeesWillAccrueLabel')}\n adornmentEnd={t('policyDetails.hoursUnit')}\n isRequired\n errorMessage={t('policyDetails.validations.accrualRate')}\n min={0}\n />\n\n <NumberInputField\n className={styles.narrowInput}\n name=\"accrualRateUnit\"\n label={t('policyDetails.forEveryLabel')}\n adornmentEnd={t('policyDetails.hoursWorkedUnit')}\n isRequired\n errorMessage={t('policyDetails.validations.accrualRateUnit')}\n min={1}\n />\n\n <Flex flexDirection=\"column\" gap={8}>\n <Text>{t('policyDetails.additionalOptionsLabel')}</Text>\n <CheckboxField\n name=\"includeOvertime\"\n label={t('policyDetails.includeOvertimeLabel')}\n />\n <CheckboxField name=\"allPaidHours\" label={t('policyDetails.allPaidHoursLabel')} />\n </Flex>\n </>\n )}\n\n {isFixedMethod && (\n <>\n <hr className={styles.divider} />\n\n <NumberInputField\n className={styles.narrowInput}\n name=\"accrualRate\"\n label={t('policyDetails.fixedAccrualRateLabel')}\n description={t('policyDetails.fixedAccrualRateHint')}\n adornmentEnd={t('policyDetails.hoursUnit')}\n isRequired\n errorMessage={t('policyDetails.validations.accrualRate')}\n min={0}\n />\n\n <RadioGroupField<AccrualMethodFixed>\n name=\"accrualMethodFixed\"\n label={t('policyDetails.accrualMethodFixed')}\n description={t('policyDetails.accrualMethodFixedHint')}\n options={accrualMethodFixedOptions}\n isRequired\n errorMessage={t('policyDetails.validations.accrualMethodFixed')}\n />\n </>\n )}\n\n {showResetDate && (\n <>\n <hr className={styles.divider} />\n\n <RadioGroupField<ResetDateType>\n name=\"resetDateType\"\n label={t('policyDetails.policyResetDateType')}\n description={t('policyDetails.policyResetDateTypeHint')}\n options={resetDateTypeOptions}\n isRequired={!isHourlyMethod}\n errorMessage={t('policyDetails.validations.resetDateType')}\n onChange={handleResetDateTypeChange}\n />\n\n {showCustomDateFields && (\n <Flex gap={8}>\n <SelectField<number>\n className={styles.dateSelect}\n name=\"resetMonth\"\n label={t('policyDetails.monthLabel')}\n options={monthOptions}\n />\n <SelectField<number>\n className={styles.dateSelect}\n name=\"resetDay\"\n label={t('policyDetails.dayLabel')}\n options={dayOptions}\n />\n </Flex>\n )}\n </>\n )}\n\n <ActionsLayout>\n <Button variant=\"secondary\" onClick={onCancel} isDisabled={isPending}>\n {t('cancelCta')}\n </Button>\n <Button\n variant=\"primary\"\n type=\"submit\"\n isLoading={isPending}\n isDisabled={isContinueDisabled}\n >\n {t('continueCta')}\n </Button>\n </ActionsLayout>\n </Flex>\n </Flex>\n </HtmlForm>\n </FormProvider>\n )\n}\n"],"names":["PolicyConfigurationFormPresentation","onContinue","onCancel","defaultValues","editingPolicyName","isPending","lockedAccrualCategory","useI18n","t","useTranslation","Heading","Text","Button","useComponentContext","locale","useLocale","headingId","useId","monthOptions","useMemo","formatter","_","i","formMethods","useForm","control","setValue","getValues","name","useWatch","accrualMethod","resetDateType","resetMonth","isContinueDisabled","dayOptions","days","getDaysInMonth","useEffect","maxDay","currentDay","handleResetDateTypeChange","useCallback","value","accrualMethodOptions","allOptions","option","accrualMethodFixedOptions","resetDateTypeOptions","handleSubmit","data","isHourlyMethod","isFixedMethod","showResetDate","showCustomDateFields","FormProvider","jsx","HtmlForm","jsxs","Flex","TextInputField","RadioGroupField","Fragment","styles","NumberInputField","CheckboxField","SelectField","ActionsLayout"],"mappings":"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"}
1
+ {"version":3,"file":"PolicyConfigurationFormPresentation.js","sources":["../../../../../src/components/TimeOff/TimeOffManagement/PolicyConfigurationForm/PolicyConfigurationFormPresentation.tsx"],"sourcesContent":["import { useCallback, useEffect, useId, useMemo } from 'react'\nimport { FormProvider, useForm, useWatch } from 'react-hook-form'\nimport { useTranslation } from 'react-i18next'\nimport type {\n AccrualMethod,\n AccrualMethodFixed,\n PolicyConfigurationFormData,\n PolicyConfigurationFormPresentationProps,\n ResetDateType,\n} from './PolicyConfigurationFormTypes'\nimport styles from './PolicyConfigurationForm.module.scss'\nimport {\n Flex,\n ActionsLayout,\n RadioGroupField,\n NumberInputField,\n CheckboxField,\n SelectField,\n TextInputField,\n} from '@/components/Common'\nimport { Form as HtmlForm } from '@/components/Common/Form'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { useLocale } from '@/contexts/LocaleProvider/useLocale'\nimport { useI18n } from '@/i18n'\nimport { getDaysInMonth } from '@/helpers/dateFormatting'\n\n/** @internal */\nexport function PolicyConfigurationFormPresentation({\n onContinue,\n onCancel,\n defaultValues,\n editingPolicyName,\n isPending = false,\n lockedAccrualCategory,\n}: PolicyConfigurationFormPresentationProps) {\n useI18n('Company.TimeOff.CreateTimeOffPolicy')\n const { t } = useTranslation('Company.TimeOff.CreateTimeOffPolicy')\n const { Heading, Text, Button } = useComponentContext()\n const { locale } = useLocale()\n const headingId = useId()\n\n const monthOptions = useMemo(() => {\n const formatter = new Intl.DateTimeFormat(locale, { month: 'long' })\n return Array.from({ length: 12 }, (_, i) => ({\n value: i + 1,\n label: formatter.format(new Date(2024, i)),\n }))\n }, [locale])\n\n const formMethods = useForm<PolicyConfigurationFormData>({\n defaultValues: {\n name: '',\n resetMonth: 1,\n resetDay: 1,\n ...defaultValues,\n },\n })\n\n const { control, setValue, getValues } = formMethods\n const name = useWatch({ control, name: 'name' })\n const accrualMethod = useWatch({ control, name: 'accrualMethod' })\n const resetDateType = useWatch({ control, name: 'resetDateType' })\n const resetMonth = useWatch({ control, name: 'resetMonth' })\n const isContinueDisabled = !name.trim() || !accrualMethod\n\n const dayOptions = useMemo(() => {\n const days = getDaysInMonth(resetMonth ?? 1)\n return Array.from({ length: days }, (_, i) => ({\n value: i + 1,\n label: String(i + 1),\n }))\n }, [resetMonth])\n\n useEffect(() => {\n const maxDay = getDaysInMonth(resetMonth ?? 1)\n const currentDay = getValues('resetDay')\n if (currentDay != null && currentDay > maxDay) {\n setValue('resetDay', maxDay)\n }\n }, [resetMonth, getValues, setValue])\n\n useEffect(() => {\n if (accrualMethod === 'unlimited') {\n return\n }\n if (accrualMethod !== 'per_hour_paid') {\n setValue('accrualRateUnit', undefined)\n setValue('includeOvertime', undefined)\n setValue('allPaidHours', undefined)\n }\n if (accrualMethod !== 'per_calendar_year') {\n setValue('accrualMethodFixed', undefined)\n }\n }, [accrualMethod, setValue])\n\n const handleResetDateTypeChange = useCallback(\n (value: ResetDateType) => {\n if (value === 'per_anniversary_year') {\n setValue('resetMonth', 1)\n setValue('resetDay', 1)\n }\n },\n [setValue],\n )\n\n const accrualMethodOptions = useMemo(() => {\n const allOptions = [\n {\n value: 'per_hour_paid' as AccrualMethod,\n label: t('policyDetails.perHourPaidLabel'),\n description: t('policyDetails.perHourPaidHint'),\n },\n {\n value: 'per_calendar_year' as AccrualMethod,\n label: t('policyDetails.perYearLabel'),\n description: t('policyDetails.perYearHint'),\n },\n {\n value: 'unlimited' as AccrualMethod,\n label: t('policyDetails.unlimitedLabel'),\n description: t('policyDetails.unlimitedHint'),\n },\n ]\n if (lockedAccrualCategory === 'unlimited') {\n return allOptions.filter(option => option.value === 'unlimited')\n }\n if (lockedAccrualCategory === 'accrual_based') {\n return allOptions.filter(option => option.value !== 'unlimited')\n }\n return allOptions\n }, [t, lockedAccrualCategory])\n\n const accrualMethodFixedOptions = useMemo(\n () => [\n {\n value: 'per_pay_period' as AccrualMethodFixed,\n label: t('policyDetails.perPayPeriodLabel'),\n description: t('policyDetails.perPayPeriodHint'),\n },\n {\n value: 'all_at_once' as AccrualMethodFixed,\n label: t('policyDetails.allAtOnceLabel'),\n description: t('policyDetails.allAtOnceHint'),\n },\n ],\n [t],\n )\n\n const resetDateTypeOptions = useMemo(\n () => [\n {\n value: 'per_anniversary_year' as ResetDateType,\n label: t('policyDetails.perAnniversaryYearLabel'),\n },\n {\n value: 'per_calendar_year' as ResetDateType,\n label: t('policyDetails.perCalendarYearLabel'),\n },\n ],\n [t],\n )\n\n const handleSubmit = (data: PolicyConfigurationFormData) => {\n onContinue(data)\n }\n\n const isHourlyMethod = accrualMethod === 'per_hour_paid'\n const isFixedMethod = accrualMethod === 'per_calendar_year'\n const showResetDate = isHourlyMethod || isFixedMethod\n const showCustomDateFields = resetDateType === 'per_calendar_year'\n\n return (\n <FormProvider {...formMethods}>\n <HtmlForm aria-labelledby={headingId} onSubmit={formMethods.handleSubmit(handleSubmit)}>\n <Flex flexDirection=\"column\" gap={32}>\n <Heading as=\"h2\" id={headingId}>\n {editingPolicyName\n ? t('policyDetails.editTitle', { name: editingPolicyName })\n : t('policyDetails.createTitle')}\n </Heading>\n\n <Flex flexDirection=\"column\" gap={20}>\n <TextInputField\n name=\"name\"\n label={t('policyDetails.policyNameLabel')}\n isRequired\n errorMessage={t('policyDetails.validations.policyName')}\n />\n\n {accrualMethodOptions.length === 1 ? (\n <Flex flexDirection=\"column\" gap={4}>\n <Text weight=\"medium\">{t('policyDetails.accrualMethodLabel')}</Text>\n <Text>{accrualMethodOptions[0]!.label}</Text>\n </Flex>\n ) : (\n <RadioGroupField<AccrualMethod>\n name=\"accrualMethod\"\n label={t('policyDetails.accrualMethodLabel')}\n description={t('policyDetails.accrualMethodHint')}\n options={accrualMethodOptions}\n isRequired\n errorMessage={t('policyDetails.validations.accrualMethod')}\n />\n )}\n\n {isHourlyMethod && (\n <>\n <hr className={styles.divider} />\n\n <NumberInputField\n className={styles.narrowInput}\n name=\"accrualRate\"\n label={t('policyDetails.employeesWillAccrueLabel')}\n adornmentEnd={t('policyDetails.hoursUnit')}\n isRequired\n errorMessage={t('policyDetails.validations.accrualRate')}\n min={0}\n />\n\n <NumberInputField\n className={styles.narrowInput}\n name=\"accrualRateUnit\"\n label={t('policyDetails.forEveryLabel')}\n adornmentEnd={t('policyDetails.hoursWorkedUnit')}\n isRequired\n errorMessage={t('policyDetails.validations.accrualRateUnit')}\n min={1}\n />\n\n <Flex flexDirection=\"column\" gap={8}>\n <Text>{t('policyDetails.additionalOptionsLabel')}</Text>\n <CheckboxField\n name=\"includeOvertime\"\n label={t('policyDetails.includeOvertimeLabel')}\n />\n <CheckboxField name=\"allPaidHours\" label={t('policyDetails.allPaidHoursLabel')} />\n </Flex>\n </>\n )}\n\n {isFixedMethod && (\n <>\n <hr className={styles.divider} />\n\n <NumberInputField\n className={styles.narrowInput}\n name=\"accrualRate\"\n label={t('policyDetails.fixedAccrualRateLabel')}\n description={t('policyDetails.fixedAccrualRateHint')}\n adornmentEnd={t('policyDetails.hoursUnit')}\n isRequired\n errorMessage={t('policyDetails.validations.accrualRate')}\n min={0}\n />\n\n <RadioGroupField<AccrualMethodFixed>\n name=\"accrualMethodFixed\"\n label={t('policyDetails.accrualMethodFixed')}\n description={t('policyDetails.accrualMethodFixedHint')}\n options={accrualMethodFixedOptions}\n isRequired\n errorMessage={t('policyDetails.validations.accrualMethodFixed')}\n />\n </>\n )}\n\n {showResetDate && (\n <>\n <hr className={styles.divider} />\n\n <RadioGroupField<ResetDateType>\n name=\"resetDateType\"\n label={t('policyDetails.policyResetDateType')}\n description={t('policyDetails.policyResetDateTypeHint')}\n options={resetDateTypeOptions}\n isRequired={!isHourlyMethod}\n errorMessage={t('policyDetails.validations.resetDateType')}\n onChange={handleResetDateTypeChange}\n />\n\n {showCustomDateFields && (\n <Flex gap={8}>\n <SelectField<number>\n className={styles.dateSelect}\n name=\"resetMonth\"\n label={t('policyDetails.monthLabel')}\n options={monthOptions}\n />\n <SelectField<number>\n className={styles.dateSelect}\n name=\"resetDay\"\n label={t('policyDetails.dayLabel')}\n options={dayOptions}\n />\n </Flex>\n )}\n </>\n )}\n\n <ActionsLayout>\n <Button variant=\"secondary\" onClick={onCancel} isDisabled={isPending}>\n {t('cancelCta')}\n </Button>\n <Button\n variant=\"primary\"\n type=\"submit\"\n isLoading={isPending}\n isDisabled={isContinueDisabled}\n >\n {t('continueCta')}\n </Button>\n </ActionsLayout>\n </Flex>\n </Flex>\n </HtmlForm>\n </FormProvider>\n )\n}\n"],"names":["PolicyConfigurationFormPresentation","onContinue","onCancel","defaultValues","editingPolicyName","isPending","lockedAccrualCategory","useI18n","t","useTranslation","Heading","Text","Button","useComponentContext","locale","useLocale","headingId","useId","monthOptions","useMemo","formatter","_","i","formMethods","useForm","control","setValue","getValues","name","useWatch","accrualMethod","resetDateType","resetMonth","isContinueDisabled","dayOptions","days","getDaysInMonth","useEffect","maxDay","currentDay","handleResetDateTypeChange","useCallback","value","accrualMethodOptions","allOptions","option","accrualMethodFixedOptions","resetDateTypeOptions","handleSubmit","data","isHourlyMethod","isFixedMethod","showResetDate","showCustomDateFields","FormProvider","jsx","HtmlForm","jsxs","Flex","TextInputField","RadioGroupField","Fragment","styles","NumberInputField","CheckboxField","SelectField","ActionsLayout"],"mappings":"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"}
@@ -1,24 +1,82 @@
1
+ /**
2
+ * Top-level accrual method selected on the policy configuration form.
3
+ *
4
+ * @remarks
5
+ * `per_hour_paid` covers all hourly accrual variants — the `allPaidHours` and
6
+ * `includeOvertime` toggles on {@link PolicyConfigurationFormData} narrow it to
7
+ * a specific API accrual method on submit.
8
+ *
9
+ * @public
10
+ */
1
11
  export type AccrualMethod = 'per_hour_paid' | 'per_calendar_year' | 'unlimited';
12
+ /**
13
+ * Sub-method for fixed (per-calendar-year) accrual — whether hours are granted
14
+ * at the start of the year or spread evenly across pay periods.
15
+ *
16
+ * @public
17
+ */
2
18
  export type AccrualMethodFixed = 'per_pay_period' | 'all_at_once';
19
+ /**
20
+ * When a policy's balance resets — on each employee's hire anniversary or on
21
+ * a fixed calendar month/day shared across all employees.
22
+ *
23
+ * @public
24
+ */
3
25
  export type ResetDateType = 'per_anniversary_year' | 'per_calendar_year';
26
+ /**
27
+ * Values collected by {@link PolicyConfigurationForm} for a sick or vacation
28
+ * time off policy.
29
+ *
30
+ * @remarks
31
+ * Fields beyond `name` and `accrualMethod` are conditionally relevant based on
32
+ * the selected `accrualMethod`:
33
+ *
34
+ * - `unlimited` — no other fields apply.
35
+ * - `per_hour_paid` — `accrualRate`, `accrualRateUnit`, `includeOvertime`, and
36
+ * `allPaidHours` configure the hourly accrual variant.
37
+ * - `per_calendar_year` — `accrualRate` and `accrualMethodFixed` configure how
38
+ * hours are granted; `resetDateType` plus `resetMonth`/`resetDay` configure
39
+ * when balances reset.
40
+ *
41
+ * @public
42
+ */
4
43
  export interface PolicyConfigurationFormData {
44
+ /** Display name of the policy. */
5
45
  name: string;
46
+ /** Top-level accrual strategy selected by the user. */
6
47
  accrualMethod: AccrualMethod;
48
+ /** Hours accrued per `accrualRateUnit` (hourly) or per year (fixed). */
7
49
  accrualRate?: number;
50
+ /** Hours worked needed to earn `accrualRate` hours of time off. Hourly only. */
8
51
  accrualRateUnit?: number;
52
+ /** Whether overtime hours count toward accrual. Hourly only. */
9
53
  includeOvertime?: boolean;
54
+ /** Whether all paid hours (not just worked hours) count toward accrual. Hourly only. */
10
55
  allPaidHours?: boolean;
56
+ /** For `per_calendar_year`: grant hours all at once or spread per pay period. */
11
57
  accrualMethodFixed?: AccrualMethodFixed;
58
+ /** Whether balances reset on anniversary or on a fixed calendar date. */
12
59
  resetDateType?: ResetDateType;
60
+ /** Reset month (1–12) when `resetDateType` is `per_calendar_year`. */
13
61
  resetMonth?: number;
62
+ /** Reset day of month when `resetDateType` is `per_calendar_year`. */
14
63
  resetDay?: number;
15
64
  }
16
- export type LockedAccrualCategory = 'unlimited' | 'accrual_based';
65
+ /** @internal */
66
+ type LockedAccrualCategory = 'unlimited' | 'accrual_based';
67
+ /** @internal */
17
68
  export interface PolicyConfigurationFormPresentationProps {
69
+ /** Called with form values when the user submits a valid form. */
18
70
  onContinue: (data: PolicyConfigurationFormData) => void;
71
+ /** Called when the user clicks the cancel button. */
19
72
  onCancel: () => void;
73
+ /** Pre-populated values to merge into the form's defaults. */
20
74
  defaultValues?: Partial<PolicyConfigurationFormData>;
75
+ /** When set, renders the edit-title variant with this policy name. */
21
76
  editingPolicyName?: string;
77
+ /** When true, disables actions and shows the submit button in a loading state. */
22
78
  isPending?: boolean;
79
+ /** Restricts the accrual method options when editing a completed policy. */
23
80
  lockedAccrualCategory?: LockedAccrualCategory;
24
81
  }
82
+ export {};
@@ -1,6 +1,3 @@
1
1
  import "./types/i18next.d.ts"
2
2
  export { PolicyConfigurationForm } from './PolicyConfigurationForm';
3
3
  export type { PolicyConfigurationFormProps } from './PolicyConfigurationForm';
4
- export { PolicyConfigurationFormPresentation } from './PolicyConfigurationFormPresentation';
5
- export type { PolicyConfigurationFormPresentationProps } from './PolicyConfigurationFormTypes';
6
- export type { PolicyConfigurationFormData, AccrualMethod, AccrualMethodFixed, ResetDateType, } from './PolicyConfigurationFormTypes';
@@ -2,5 +2,6 @@ interface SelectEmployeesHolidayProps {
2
2
  companyId: string;
3
3
  mode?: 'standalone' | 'wizard';
4
4
  }
5
+ /** @internal */
5
6
  export declare function SelectEmployeesHoliday(props: SelectEmployeesHolidayProps): import("react").JSX.Element;
6
7
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"SelectEmployeesHoliday.js","sources":["../../../../../src/components/TimeOff/TimeOffManagement/SelectEmployees/SelectEmployeesHoliday.tsx"],"sourcesContent":["import { useCallback, useMemo } from 'react'\nimport { useQueryClient } from '@tanstack/react-query'\nimport { useHolidayPayPoliciesAddEmployeesMutation } from '@gusto/embedded-api-v-2025-11-15/react-query/holidayPayPoliciesAddEmployees'\nimport {\n useHolidayPayPoliciesGetSuspense,\n queryKeyHolidayPayPoliciesGet,\n invalidateAllHolidayPayPoliciesGet,\n type HolidayPayPoliciesGetQueryData,\n} from '@gusto/embedded-api-v-2025-11-15/react-query/holidayPayPoliciesGet'\nimport type { HolidayPayPolicy } from '@gusto/embedded-api-v-2025-11-15/models/components/holidaypaypolicy'\nimport { SelectEmployeesPresentation } from './SelectEmployeesPresentation'\nimport { useSelectEmployeesData } from './useSelectEmployeesData'\nimport { useBase } from '@/components/Base/useBase'\nimport { componentEvents } from '@/shared/constants'\n\ninterface SelectEmployeesHolidayProps {\n companyId: string\n mode?: 'standalone' | 'wizard'\n}\n\nexport function SelectEmployeesHoliday(props: SelectEmployeesHolidayProps) {\n if (props.mode === 'wizard') {\n return <SelectEmployeesHolidayInner {...props} mode=\"wizard\" />\n }\n return <StandaloneLoader {...props} />\n}\n\nfunction StandaloneLoader(props: SelectEmployeesHolidayProps) {\n const { data: policyResponse } = useHolidayPayPoliciesGetSuspense({\n companyUuid: props.companyId,\n })\n const policy = policyResponse.holidayPayPolicy\n if (!policy) throw new Error('Unexpected response: missing holidayPayPolicy')\n\n const existingAssigneeUuids = useMemo(() => {\n const set = new Set<string>()\n for (const e of policy.employees) {\n if (e.uuid) set.add(e.uuid)\n }\n return set\n }, [policy.employees])\n\n return (\n <SelectEmployeesHolidayInner\n {...props}\n mode=\"standalone\"\n existingAssigneeUuids={existingAssigneeUuids}\n version={policy.version}\n />\n )\n}\n\ninterface InnerProps extends SelectEmployeesHolidayProps {\n existingAssigneeUuids?: Set<string>\n version?: string\n}\n\nfunction SelectEmployeesHolidayInner({\n companyId,\n mode = 'standalone',\n existingAssigneeUuids,\n version,\n}: InnerProps) {\n const { onEvent, baseSubmitHandler } = useBase()\n const queryClient = useQueryClient()\n const {\n filteredEmployees,\n selectedUuids,\n searchValue,\n pagination,\n isFetching,\n handleSelect,\n handleSelectAll,\n handleSearchChange,\n handleSearchClear,\n } = useSelectEmployeesData(companyId, existingAssigneeUuids)\n\n const { mutateAsync: addEmployees, isPending: isAddPending } =\n useHolidayPayPoliciesAddEmployeesMutation()\n\n const handleContinue = useCallback(async () => {\n const toAdd = [...selectedUuids]\n\n if (mode === 'wizard') {\n onEvent(componentEvents.TIME_OFF_HOLIDAY_ADD_EMPLOYEES_DONE, {\n employeeUuids: toAdd,\n })\n return\n }\n\n if (toAdd.length === 0) {\n onEvent(componentEvents.TIME_OFF_HOLIDAY_ADD_EMPLOYEES_DONE)\n return\n }\n\n await baseSubmitHandler({}, async () => {\n const response = await addEmployees({\n request: {\n companyUuid: companyId,\n requestBody: {\n version: version ?? '',\n employees: toAdd.map(uuid => ({ uuid })),\n },\n },\n })\n const latestPolicy: HolidayPayPolicy | undefined = response.holidayPayPolicy\n // Seed the GET cache from the mutation response so that the next mount\n // of HolidayPolicyDetail reads fresh data immediately. invalidateQueries\n // alone only refetches *active* subscriptions, but we navigate away\n // before the refetch can complete.\n if (latestPolicy) {\n queryClient.setQueryData<HolidayPayPoliciesGetQueryData>(\n queryKeyHolidayPayPoliciesGet(companyId, {}),\n prev =>\n prev\n ? { ...prev, holidayPayPolicy: latestPolicy }\n : (undefined as unknown as HolidayPayPoliciesGetQueryData),\n )\n }\n await invalidateAllHolidayPayPoliciesGet(queryClient)\n onEvent(componentEvents.TIME_OFF_HOLIDAY_ADD_EMPLOYEES_DONE, latestPolicy)\n })\n }, [\n mode,\n selectedUuids,\n baseSubmitHandler,\n addEmployees,\n companyId,\n version,\n queryClient,\n onEvent,\n ])\n\n const handleBack = useCallback(() => {\n onEvent(componentEvents.CANCEL)\n }, [onEvent])\n\n return (\n <SelectEmployeesPresentation\n employees={filteredEmployees}\n selectedUuids={selectedUuids}\n searchValue={searchValue}\n onSelect={handleSelect}\n onSelectAll={handleSelectAll}\n onSearchChange={handleSearchChange}\n onSearchClear={handleSearchClear}\n onBack={handleBack}\n onContinue={handleContinue}\n isHolidayPolicy\n pagination={pagination}\n isFetching={isFetching}\n isPending={isAddPending}\n />\n )\n}\n"],"names":["SelectEmployeesHoliday","props","jsx","SelectEmployeesHolidayInner","StandaloneLoader","policyResponse","useHolidayPayPoliciesGetSuspense","policy","existingAssigneeUuids","useMemo","set","e","companyId","mode","version","onEvent","baseSubmitHandler","useBase","queryClient","useQueryClient","filteredEmployees","selectedUuids","searchValue","pagination","isFetching","handleSelect","handleSelectAll","handleSearchChange","handleSearchClear","useSelectEmployeesData","addEmployees","isAddPending","useHolidayPayPoliciesAddEmployeesMutation","handleContinue","useCallback","toAdd","componentEvents","latestPolicy","uuid","queryKeyHolidayPayPoliciesGet","prev","invalidateAllHolidayPayPoliciesGet","handleBack","SelectEmployeesPresentation"],"mappings":"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"}
1
+ {"version":3,"file":"SelectEmployeesHoliday.js","sources":["../../../../../src/components/TimeOff/TimeOffManagement/SelectEmployees/SelectEmployeesHoliday.tsx"],"sourcesContent":["import { useCallback, useMemo } from 'react'\nimport { useQueryClient } from '@tanstack/react-query'\nimport { useHolidayPayPoliciesAddEmployeesMutation } from '@gusto/embedded-api-v-2025-11-15/react-query/holidayPayPoliciesAddEmployees'\nimport {\n useHolidayPayPoliciesGetSuspense,\n queryKeyHolidayPayPoliciesGet,\n invalidateAllHolidayPayPoliciesGet,\n type HolidayPayPoliciesGetQueryData,\n} from '@gusto/embedded-api-v-2025-11-15/react-query/holidayPayPoliciesGet'\nimport type { HolidayPayPolicy } from '@gusto/embedded-api-v-2025-11-15/models/components/holidaypaypolicy'\nimport { SelectEmployeesPresentation } from './SelectEmployeesPresentation'\nimport { useSelectEmployeesData } from './useSelectEmployeesData'\nimport { useBase } from '@/components/Base/useBase'\nimport { componentEvents } from '@/shared/constants'\n\ninterface SelectEmployeesHolidayProps {\n companyId: string\n mode?: 'standalone' | 'wizard'\n}\n\n/** @internal */\nexport function SelectEmployeesHoliday(props: SelectEmployeesHolidayProps) {\n if (props.mode === 'wizard') {\n return <SelectEmployeesHolidayInner {...props} mode=\"wizard\" />\n }\n return <StandaloneLoader {...props} />\n}\n\nfunction StandaloneLoader(props: SelectEmployeesHolidayProps) {\n const { data: policyResponse } = useHolidayPayPoliciesGetSuspense({\n companyUuid: props.companyId,\n })\n const policy = policyResponse.holidayPayPolicy\n if (!policy) throw new Error('Unexpected response: missing holidayPayPolicy')\n\n const existingAssigneeUuids = useMemo(() => {\n const set = new Set<string>()\n for (const e of policy.employees) {\n if (e.uuid) set.add(e.uuid)\n }\n return set\n }, [policy.employees])\n\n return (\n <SelectEmployeesHolidayInner\n {...props}\n mode=\"standalone\"\n existingAssigneeUuids={existingAssigneeUuids}\n version={policy.version}\n />\n )\n}\n\ninterface InnerProps extends SelectEmployeesHolidayProps {\n existingAssigneeUuids?: Set<string>\n version?: string\n}\n\nfunction SelectEmployeesHolidayInner({\n companyId,\n mode = 'standalone',\n existingAssigneeUuids,\n version,\n}: InnerProps) {\n const { onEvent, baseSubmitHandler } = useBase()\n const queryClient = useQueryClient()\n const {\n filteredEmployees,\n selectedUuids,\n searchValue,\n pagination,\n isFetching,\n handleSelect,\n handleSelectAll,\n handleSearchChange,\n handleSearchClear,\n } = useSelectEmployeesData(companyId, existingAssigneeUuids)\n\n const { mutateAsync: addEmployees, isPending: isAddPending } =\n useHolidayPayPoliciesAddEmployeesMutation()\n\n const handleContinue = useCallback(async () => {\n const toAdd = [...selectedUuids]\n\n if (mode === 'wizard') {\n onEvent(componentEvents.TIME_OFF_HOLIDAY_ADD_EMPLOYEES_DONE, {\n employeeUuids: toAdd,\n })\n return\n }\n\n if (toAdd.length === 0) {\n onEvent(componentEvents.TIME_OFF_HOLIDAY_ADD_EMPLOYEES_DONE)\n return\n }\n\n await baseSubmitHandler({}, async () => {\n const response = await addEmployees({\n request: {\n companyUuid: companyId,\n requestBody: {\n version: version ?? '',\n employees: toAdd.map(uuid => ({ uuid })),\n },\n },\n })\n const latestPolicy: HolidayPayPolicy | undefined = response.holidayPayPolicy\n // Seed the GET cache from the mutation response so that the next mount\n // of HolidayPolicyDetail reads fresh data immediately. invalidateQueries\n // alone only refetches *active* subscriptions, but we navigate away\n // before the refetch can complete.\n if (latestPolicy) {\n queryClient.setQueryData<HolidayPayPoliciesGetQueryData>(\n queryKeyHolidayPayPoliciesGet(companyId, {}),\n prev =>\n prev\n ? { ...prev, holidayPayPolicy: latestPolicy }\n : (undefined as unknown as HolidayPayPoliciesGetQueryData),\n )\n }\n await invalidateAllHolidayPayPoliciesGet(queryClient)\n onEvent(componentEvents.TIME_OFF_HOLIDAY_ADD_EMPLOYEES_DONE, latestPolicy)\n })\n }, [\n mode,\n selectedUuids,\n baseSubmitHandler,\n addEmployees,\n companyId,\n version,\n queryClient,\n onEvent,\n ])\n\n const handleBack = useCallback(() => {\n onEvent(componentEvents.CANCEL)\n }, [onEvent])\n\n return (\n <SelectEmployeesPresentation\n employees={filteredEmployees}\n selectedUuids={selectedUuids}\n searchValue={searchValue}\n onSelect={handleSelect}\n onSelectAll={handleSelectAll}\n onSearchChange={handleSearchChange}\n onSearchClear={handleSearchClear}\n onBack={handleBack}\n onContinue={handleContinue}\n isHolidayPolicy\n pagination={pagination}\n isFetching={isFetching}\n isPending={isAddPending}\n />\n )\n}\n"],"names":["SelectEmployeesHoliday","props","jsx","SelectEmployeesHolidayInner","StandaloneLoader","policyResponse","useHolidayPayPoliciesGetSuspense","policy","existingAssigneeUuids","useMemo","set","e","companyId","mode","version","onEvent","baseSubmitHandler","useBase","queryClient","useQueryClient","filteredEmployees","selectedUuids","searchValue","pagination","isFetching","handleSelect","handleSelectAll","handleSearchChange","handleSearchClear","useSelectEmployeesData","addEmployees","isAddPending","useHolidayPayPoliciesAddEmployeesMutation","handleContinue","useCallback","toAdd","componentEvents","latestPolicy","uuid","queryKeyHolidayPayPoliciesGet","prev","invalidateAllHolidayPayPoliciesGet","handleBack","SelectEmployeesPresentation"],"mappings":"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"}
@@ -1,2 +1,3 @@
1
1
  import { SelectEmployeesPresentationProps } from './SelectEmployeesPresentationTypes';
2
+ /** @internal */
2
3
  export declare function SelectEmployeesPresentation({ employees, selectedUuids, searchValue, onSelect, onSelectAll, onSearchChange, onSearchClear, onBack, onContinue, isHolidayPolicy, balances, onBalanceChange, pagination, isFetching, isPending, }: SelectEmployeesPresentationProps): import("react").JSX.Element;