@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":"useUnprocessedTransitionPayPeriods.js","sources":["../../../src/components/Payroll/useUnprocessedTransitionPayPeriods.ts"],"sourcesContent":["import { useMemo } from 'react'\nimport { usePaySchedulesGetPayPeriodsSuspense } from '@gusto/embedded-api-v-2025-11-15/react-query/paySchedulesGetPayPeriods'\nimport { PayrollTypes } from '@gusto/embedded-api-v-2025-11-15/models/operations/getv1companiescompanyidpayperiods'\nimport type { PayPeriod } from '@gusto/embedded-api-v-2025-11-15/models/components/payperiod'\nimport { RFCDate } from '@gusto/embedded-api-v-2025-11-15/types/rfcdate'\n\nconst LOOK_AHEAD_DAYS = 90\n\ninterface UseUnprocessedTransitionPayPeriodsResult {\n unprocessedPayPeriods: PayPeriod[]\n hasUnprocessedTransitions: boolean\n}\n\nexport function useUnprocessedTransitionPayPeriods(\n companyId: string,\n): UseUnprocessedTransitionPayPeriodsResult {\n const lookAheadEndDate = useMemo(() => {\n const date = new Date()\n date.setDate(date.getDate() + LOOK_AHEAD_DAYS)\n return new RFCDate(date)\n }, [])\n\n const { data } = usePaySchedulesGetPayPeriodsSuspense({\n companyId,\n payrollTypes: PayrollTypes.Transition,\n endDate: lookAheadEndDate,\n })\n\n const unprocessedPayPeriods = useMemo<PayPeriod[]>(\n () => (data.payPeriods ?? []).filter((pp: PayPeriod) => !pp.payroll?.processed),\n [data],\n )\n\n return {\n unprocessedPayPeriods,\n hasUnprocessedTransitions: unprocessedPayPeriods.length > 0,\n }\n}\n"],"names":["LOOK_AHEAD_DAYS","useUnprocessedTransitionPayPeriods","companyId","lookAheadEndDate","useMemo","date","RFCDate","data","usePaySchedulesGetPayPeriodsSuspense","PayrollTypes","unprocessedPayPeriods","pp"],"mappings":";;;;AAMA,MAAMA,IAAkB;AAOjB,SAASC,EACdC,GAC0C;AAC1C,QAAMC,IAAmBC,EAAQ,MAAM;AACrC,UAAMC,wBAAW,KAAA;AACjB,WAAAA,EAAK,QAAQA,EAAK,QAAA,IAAYL,CAAe,GACtC,IAAIM,EAAQD,CAAI;AAAA,EACzB,GAAG,CAAA,CAAE,GAEC,EAAE,MAAAE,EAAA,IAASC,EAAqC;AAAA,IACpD,WAAAN;AAAA,IACA,cAAcO,EAAa;AAAA,IAC3B,SAASN;AAAA,EAAA,CACV,GAEKO,IAAwBN;AAAA,IAC5B,OAAOG,EAAK,cAAc,IAAI,OAAO,CAACI,MAAkB,CAACA,EAAG,SAAS,SAAS;AAAA,IAC9E,CAACJ,CAAI;AAAA,EAAA;AAGP,SAAO;AAAA,IACL,uBAAAG;AAAA,IACA,2BAA2BA,EAAsB,SAAS;AAAA,EAAA;AAE9D;"}
1
+ {"version":3,"file":"useUnprocessedTransitionPayPeriods.js","sources":["../../../src/components/Payroll/useUnprocessedTransitionPayPeriods.ts"],"sourcesContent":["import { useMemo } from 'react'\nimport { usePaySchedulesGetPayPeriodsSuspense } from '@gusto/embedded-api-v-2025-11-15/react-query/paySchedulesGetPayPeriods'\nimport { PayrollTypes } from '@gusto/embedded-api-v-2025-11-15/models/operations/getv1companiescompanyidpayperiods'\nimport type { PayPeriod } from '@gusto/embedded-api-v-2025-11-15/models/components/payperiod'\nimport { RFCDate } from '@gusto/embedded-api-v-2025-11-15/types/rfcdate'\n\nconst LOOK_AHEAD_DAYS = 90\n\ninterface UseUnprocessedTransitionPayPeriodsResult {\n unprocessedPayPeriods: PayPeriod[]\n hasUnprocessedTransitions: boolean\n}\n\n/**\n * Returns the company's unprocessed transition pay periods within the next 90 days.\n *\n * @param companyId - The company whose transition pay periods to fetch.\n * @returns The unprocessed transition pay periods and a flag indicating whether any exist.\n * @internal\n */\nexport function useUnprocessedTransitionPayPeriods(\n companyId: string,\n): UseUnprocessedTransitionPayPeriodsResult {\n const lookAheadEndDate = useMemo(() => {\n const date = new Date()\n date.setDate(date.getDate() + LOOK_AHEAD_DAYS)\n return new RFCDate(date)\n }, [])\n\n const { data } = usePaySchedulesGetPayPeriodsSuspense({\n companyId,\n payrollTypes: PayrollTypes.Transition,\n endDate: lookAheadEndDate,\n })\n\n const unprocessedPayPeriods = useMemo<PayPeriod[]>(\n () => (data.payPeriods ?? []).filter((pp: PayPeriod) => !pp.payroll?.processed),\n [data],\n )\n\n return {\n unprocessedPayPeriods,\n hasUnprocessedTransitions: unprocessedPayPeriods.length > 0,\n }\n}\n"],"names":["LOOK_AHEAD_DAYS","useUnprocessedTransitionPayPeriods","companyId","lookAheadEndDate","useMemo","date","RFCDate","data","usePaySchedulesGetPayPeriodsSuspense","PayrollTypes","unprocessedPayPeriods","pp"],"mappings":";;;;AAMA,MAAMA,IAAkB;AAcjB,SAASC,EACdC,GAC0C;AAC1C,QAAMC,IAAmBC,EAAQ,MAAM;AACrC,UAAMC,wBAAW,KAAA;AACjB,WAAAA,EAAK,QAAQA,EAAK,QAAA,IAAYL,CAAe,GACtC,IAAIM,EAAQD,CAAI;AAAA,EACzB,GAAG,CAAA,CAAE,GAEC,EAAE,MAAAE,EAAA,IAASC,EAAqC;AAAA,IACpD,WAAAN;AAAA,IACA,cAAcO,EAAa;AAAA,IAC3B,SAASN;AAAA,EAAA,CACV,GAEKO,IAAwBN;AAAA,IAC5B,OAAOG,EAAK,cAAc,IAAI,OAAO,CAACI,MAAkB,CAACA,EAAG,SAAS,SAAS;AAAA,IAC9E,CAACJ,CAAI;AAAA,EAAA;AAGP,SAAO;AAAA,IACL,uBAAAG;AAAA,IACA,2BAA2BA,EAAsB,SAAS;AAAA,EAAA;AAE9D;"}
@@ -1,5 +1,24 @@
1
1
  import { BaseComponentInterface } from '../../Base';
2
+ /**
3
+ * Props for {@link AddEmployeesHoliday}.
4
+ *
5
+ * @public
6
+ */
2
7
  export interface AddEmployeesHolidayProps extends BaseComponentInterface {
8
+ /** The associated company identifier. */
3
9
  companyId: string;
4
10
  }
11
+ /**
12
+ * Employee selection screen for assigning employees to a company's holiday pay policy.
13
+ *
14
+ * @remarks
15
+ * | Event | Description | Data |
16
+ * | ----- | ----------- | ---- |
17
+ * | `timeOff/holidayAddEmployees/done` | Employee selection is saved | The updated `HolidayPayPolicy` response, or `undefined` when no changes were submitted |
18
+ * | `CANCEL` | The user cancels | — |
19
+ *
20
+ * @param props - See {@link AddEmployeesHolidayProps}.
21
+ * @returns The rendered holiday employee selection screen.
22
+ * @public
23
+ */
5
24
  export declare function AddEmployeesHoliday(props: AddEmployeesHolidayProps): import("react").JSX.Element;
@@ -1 +1 @@
1
- {"version":3,"file":"AddEmployeesHoliday.js","sources":["../../../../src/components/TimeOff/AddEmployeesHoliday/AddEmployeesHoliday.tsx"],"sourcesContent":["import { SelectEmployeesHoliday } from '../TimeOffManagement/SelectEmployees/SelectEmployeesHoliday'\nimport { BaseComponent, type BaseComponentInterface } from '@/components/Base'\n\nexport interface AddEmployeesHolidayProps extends BaseComponentInterface {\n companyId: string\n}\n\nexport function AddEmployeesHoliday(props: AddEmployeesHolidayProps) {\n return (\n <BaseComponent {...props}>\n <SelectEmployeesHoliday companyId={props.companyId} mode=\"standalone\" />\n </BaseComponent>\n )\n}\n"],"names":["AddEmployeesHoliday","props","jsx","BaseComponent","SelectEmployeesHoliday"],"mappings":";;;;AAOO,SAASA,EAAoBC,GAAiC;AACnE,SACE,gBAAAC,EAACC,GAAA,EAAe,GAAGF,GACjB,UAAA,gBAAAC,EAACE,GAAA,EAAuB,WAAWH,EAAM,WAAW,MAAK,aAAA,CAAa,EAAA,CACxE;AAEJ;"}
1
+ {"version":3,"file":"AddEmployeesHoliday.js","sources":["../../../../src/components/TimeOff/AddEmployeesHoliday/AddEmployeesHoliday.tsx"],"sourcesContent":["import { SelectEmployeesHoliday } from '../TimeOffManagement/SelectEmployees/SelectEmployeesHoliday'\nimport { BaseComponent, type BaseComponentInterface } from '@/components/Base'\n\n/**\n * Props for {@link AddEmployeesHoliday}.\n *\n * @public\n */\nexport interface AddEmployeesHolidayProps extends BaseComponentInterface {\n /** The associated company identifier. */\n companyId: string\n}\n\n/**\n * Employee selection screen for assigning employees to a company's holiday pay policy.\n *\n * @remarks\n * | Event | Description | Data |\n * | ----- | ----------- | ---- |\n * | `timeOff/holidayAddEmployees/done` | Employee selection is saved | The updated `HolidayPayPolicy` response, or `undefined` when no changes were submitted |\n * | `CANCEL` | The user cancels | — |\n *\n * @param props - See {@link AddEmployeesHolidayProps}.\n * @returns The rendered holiday employee selection screen.\n * @public\n */\nexport function AddEmployeesHoliday(props: AddEmployeesHolidayProps) {\n return (\n <BaseComponent {...props}>\n <SelectEmployeesHoliday companyId={props.companyId} mode=\"standalone\" />\n </BaseComponent>\n )\n}\n"],"names":["AddEmployeesHoliday","props","jsx","BaseComponent","SelectEmployeesHoliday"],"mappings":";;;;AA0BO,SAASA,EAAoBC,GAAiC;AACnE,SACE,gBAAAC,EAACC,GAAA,EAAe,GAAGF,GACjB,UAAA,gBAAAC,EAACE,GAAA,EAAuB,WAAWH,EAAM,WAAW,MAAK,aAAA,CAAa,EAAA,CACxE;AAEJ;"}
@@ -1,8 +1,52 @@
1
1
  import { CreatableTimeOffPolicyType } from '../TimeOffFlow/timeOffPolicyTypes';
2
2
  import { BaseComponentInterface } from '../../Base';
3
+ /**
4
+ * Props for {@link AddEmployeesToPolicy}.
5
+ *
6
+ * @public
7
+ */
3
8
  export interface AddEmployeesToPolicyProps extends BaseComponentInterface {
9
+ /** The associated company identifier. */
4
10
  companyId: string;
11
+ /** The time off policy identifier. */
5
12
  policyId: string;
13
+ /** The type of policy being edited — `'sick'` or `'vacation'`. */
6
14
  policyType: CreatableTimeOffPolicyType;
7
15
  }
16
+ /**
17
+ * Employee selection screen for assigning employees to a sick or vacation time off policy.
18
+ *
19
+ * @remarks
20
+ * Displays all active employees with search filtering and pagination. Employees already
21
+ * enrolled in the policy are pre-selected, and carry-over balances are auto-populated
22
+ * from each employee's existing paid time off data. Starting balances can be manually
23
+ * set or overridden per employee. When employees are being moved from another policy a
24
+ * reassignment warning is shown, and removing a previously enrolled employee requires
25
+ * confirmation.
26
+ *
27
+ * | Event | Description | Data |
28
+ * | ----- | ----------- | ---- |
29
+ * | `timeOff/addEmployees/done` | Fired when employee selection is saved | The updated time off policy, or `undefined` when no changes were submitted |
30
+ * | `timeOff/addEmployees/back` | Fired when the user navigates back without saving | — |
31
+ *
32
+ * @param props - See {@link AddEmployeesToPolicyProps}.
33
+ * @returns The employee selection screen for the policy.
34
+ * @public
35
+ *
36
+ * @example
37
+ * ```tsx
38
+ * import { TimeOff } from '@gusto/embedded-react-sdk'
39
+ *
40
+ * function MyComponent() {
41
+ * return (
42
+ * <TimeOff.AddEmployeesToPolicy
43
+ * companyId="your-company-id"
44
+ * policyId="policy-uuid"
45
+ * policyType="vacation"
46
+ * onEvent={() => {}}
47
+ * />
48
+ * )
49
+ * }
50
+ * ```
51
+ */
8
52
  export declare function AddEmployeesToPolicy(props: AddEmployeesToPolicyProps): import("react").JSX.Element;
@@ -1 +1 @@
1
- {"version":3,"file":"AddEmployeesToPolicy.js","sources":["../../../../src/components/TimeOff/AddEmployeesToPolicy/AddEmployeesToPolicy.tsx"],"sourcesContent":["import { SelectEmployeesTimeOff } from '../TimeOffManagement/SelectEmployees/SelectEmployeesTimeOff'\nimport type { CreatableTimeOffPolicyType } from '../TimeOffFlow/timeOffPolicyTypes'\nimport { BaseComponent, type BaseComponentInterface } from '@/components/Base'\n\nexport interface AddEmployeesToPolicyProps extends BaseComponentInterface {\n companyId: string\n policyId: string\n policyType: CreatableTimeOffPolicyType\n}\n\nexport function AddEmployeesToPolicy(props: AddEmployeesToPolicyProps) {\n return (\n <BaseComponent {...props}>\n <SelectEmployeesTimeOff\n companyId={props.companyId}\n policyId={props.policyId}\n policyType={props.policyType}\n mode=\"standalone\"\n />\n </BaseComponent>\n )\n}\n"],"names":["AddEmployeesToPolicy","props","jsx","BaseComponent","SelectEmployeesTimeOff"],"mappings":";;;;AAUO,SAASA,EAAqBC,GAAkC;AACrE,SACE,gBAAAC,EAACC,GAAA,EAAe,GAAGF,GACjB,UAAA,gBAAAC;AAAA,IAACE;AAAA,IAAA;AAAA,MACC,WAAWH,EAAM;AAAA,MACjB,UAAUA,EAAM;AAAA,MAChB,YAAYA,EAAM;AAAA,MAClB,MAAK;AAAA,IAAA;AAAA,EAAA,GAET;AAEJ;"}
1
+ {"version":3,"file":"AddEmployeesToPolicy.js","sources":["../../../../src/components/TimeOff/AddEmployeesToPolicy/AddEmployeesToPolicy.tsx"],"sourcesContent":["import { SelectEmployeesTimeOff } from '../TimeOffManagement/SelectEmployees/SelectEmployeesTimeOff'\nimport type { CreatableTimeOffPolicyType } from '../TimeOffFlow/timeOffPolicyTypes'\nimport { BaseComponent, type BaseComponentInterface } from '@/components/Base'\n\n/**\n * Props for {@link AddEmployeesToPolicy}.\n *\n * @public\n */\nexport interface AddEmployeesToPolicyProps extends BaseComponentInterface {\n /** The associated company identifier. */\n companyId: string\n /** The time off policy identifier. */\n policyId: string\n /** The type of policy being edited — `'sick'` or `'vacation'`. */\n policyType: CreatableTimeOffPolicyType\n}\n\n/**\n * Employee selection screen for assigning employees to a sick or vacation time off policy.\n *\n * @remarks\n * Displays all active employees with search filtering and pagination. Employees already\n * enrolled in the policy are pre-selected, and carry-over balances are auto-populated\n * from each employee's existing paid time off data. Starting balances can be manually\n * set or overridden per employee. When employees are being moved from another policy a\n * reassignment warning is shown, and removing a previously enrolled employee requires\n * confirmation.\n *\n * | Event | Description | Data |\n * | ----- | ----------- | ---- |\n * | `timeOff/addEmployees/done` | Fired when employee selection is saved | The updated time off policy, or `undefined` when no changes were submitted |\n * | `timeOff/addEmployees/back` | Fired when the user navigates back without saving | — |\n *\n * @param props - See {@link AddEmployeesToPolicyProps}.\n * @returns The employee selection screen for the policy.\n * @public\n *\n * @example\n * ```tsx\n * import { TimeOff } from '@gusto/embedded-react-sdk'\n *\n * function MyComponent() {\n * return (\n * <TimeOff.AddEmployeesToPolicy\n * companyId=\"your-company-id\"\n * policyId=\"policy-uuid\"\n * policyType=\"vacation\"\n * onEvent={() => {}}\n * />\n * )\n * }\n * ```\n */\nexport function AddEmployeesToPolicy(props: AddEmployeesToPolicyProps) {\n return (\n <BaseComponent {...props}>\n <SelectEmployeesTimeOff\n companyId={props.companyId}\n policyId={props.policyId}\n policyType={props.policyType}\n mode=\"standalone\"\n />\n </BaseComponent>\n )\n}\n"],"names":["AddEmployeesToPolicy","props","jsx","BaseComponent","SelectEmployeesTimeOff"],"mappings":";;;;AAsDO,SAASA,EAAqBC,GAAkC;AACrE,SACE,gBAAAC,EAACC,GAAA,EAAe,GAAGF,GACjB,UAAA,gBAAAC;AAAA,IAACE;AAAA,IAAA;AAAA,MACC,WAAWH,EAAM;AAAA,MACjB,UAAUA,EAAM;AAAA,MAChB,YAAYA,EAAM;AAAA,MAClB,MAAK;AAAA,IAAA;AAAA,EAAA,GAET;AAEJ;"}
@@ -1,6 +1,10 @@
1
1
  import { BaseComponentInterface } from '../../Base';
2
+ /** @internal */
2
3
  export interface HolidayPolicyDetailProps extends BaseComponentInterface {
4
+ /** The associated company identifier. */
3
5
  companyId: string;
6
+ /** Which tab to display initially. Defaults to `'holidays'`. */
4
7
  defaultTab?: 'holidays' | 'employees';
5
8
  }
9
+ /** @internal */
6
10
  export declare function HolidayPolicyDetail(props: HolidayPolicyDetailProps): import("react").JSX.Element;
@@ -1 +1 @@
1
- {"version":3,"file":"HolidayPolicyDetail.js","sources":["../../../../src/components/TimeOff/HolidayPolicyDetail/HolidayPolicyDetail.tsx"],"sourcesContent":["import { useMemo, useState } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport { useQueryClient } from '@tanstack/react-query'\nimport {\n useHolidayPayPoliciesGetSuspense,\n invalidateAllHolidayPayPoliciesGet,\n} from '@gusto/embedded-api-v-2025-11-15/react-query/holidayPayPoliciesGet'\nimport { useHolidayPayPoliciesRemoveEmployeesMutation } from '@gusto/embedded-api-v-2025-11-15/react-query/holidayPayPoliciesRemoveEmployees'\nimport { useEmployeesListSuspense } from '@gusto/embedded-api-v-2025-11-15/react-query/employeesList'\nimport { getDefaultHolidayItems } from '../shared/holidayHelpers'\nimport { HolidayPolicyDetailPresentation } from './HolidayPolicyDetailPresentation'\nimport type { HolidayPolicyDetailEmployee } from './HolidayPolicyDetailTypes'\nimport { useClientPagination } from '@/hooks/useClientPagination/useClientPagination'\nimport { HamburgerMenu } from '@/components/Common/HamburgerMenu'\nimport { BaseComponent, type BaseComponentInterface } from '@/components/Base'\nimport { useBase } from '@/components/Base/useBase'\nimport { componentEvents } from '@/shared/constants'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { useI18n } from '@/i18n'\nimport { useLocale } from '@/contexts/LocaleProvider/useLocale'\nimport { firstLastName } from '@/helpers/formattedStrings'\nimport TrashCanSvg from '@/assets/icons/trashcan.svg?react'\nimport EditIcon from '@/assets/icons/edit-02.svg?react'\nimport PlusCircleIcon from '@/assets/icons/plus-circle.svg?react'\n\nexport interface HolidayPolicyDetailProps extends BaseComponentInterface {\n companyId: string\n defaultTab?: 'holidays' | 'employees'\n}\n\nexport function HolidayPolicyDetail(props: HolidayPolicyDetailProps) {\n return (\n <BaseComponent {...props} componentName=\"Company.TimeOff.HolidayPolicy\">\n <Root {...props} />\n </BaseComponent>\n )\n}\n\ninterface RemoveDialogTarget {\n uuid: string\n name: string\n}\n\nfunction Root({ companyId, defaultTab = 'holidays' }: HolidayPolicyDetailProps) {\n useI18n('Company.TimeOff.HolidayPolicy')\n useI18n('Company.TimeOff.PolicyDetail')\n const { t } = useTranslation('Company.TimeOff.HolidayPolicy')\n const { t: tShared } = useTranslation('Company.TimeOff.PolicyDetail')\n const { Button } = useComponentContext()\n const { locale } = useLocale()\n const queryClient = useQueryClient()\n const { onEvent, baseSubmitHandler } = useBase()\n\n const [selectedTabId, setSelectedTabId] = useState<string>(defaultTab)\n const [successAlert, setSuccessAlert] = useState<string | null>(null)\n const [removeDialogTarget, setRemoveDialogTarget] = useState<RemoveDialogTarget | null>(null)\n\n const holidayQuery = useHolidayPayPoliciesGetSuspense({ companyUuid: companyId })\n const holidayPayPolicy = holidayQuery.data.holidayPayPolicy!\n\n const { data: employeesData } = useEmployeesListSuspense({\n companyId,\n terminated: false,\n })\n\n const removeEmployeesMutation = useHolidayPayPoliciesRemoveEmployeesMutation()\n\n const holidays = useMemo(() => {\n const allHolidays = getDefaultHolidayItems(t, undefined, locale)\n const { federalHolidays } = holidayPayPolicy\n return allHolidays.filter(holiday => {\n const holidayData = federalHolidays[holiday.uuid as keyof typeof federalHolidays]\n return holidayData?.selected === true\n })\n }, [t, holidayPayPolicy, locale])\n\n const policyEmployeeUuids = useMemo(\n () => new Set(holidayPayPolicy.employees.map(e => e.uuid)),\n [holidayPayPolicy.employees],\n )\n\n const employees: HolidayPolicyDetailEmployee[] = useMemo(() => {\n const allEmployees = employeesData.showEmployees ?? []\n return allEmployees\n .filter(emp => policyEmployeeUuids.has(emp.uuid))\n .map(emp => ({\n uuid: emp.uuid,\n firstName: emp.firstName,\n lastName: emp.lastName,\n jobTitle: emp.jobs?.find(job => job.primary)?.title ?? null,\n }))\n }, [employeesData.showEmployees, policyEmployeeUuids])\n\n const {\n data: pagedEmployees,\n pagination,\n searchValue,\n actions: paginationActions,\n } = useClientPagination(employees, {\n defaultItemsPerPage: 10,\n searchPredicate: (emp, query) =>\n `${emp.firstName ?? ''} ${emp.lastName ?? ''}`.toLowerCase().includes(query.toLowerCase()),\n })\n\n const handleRemoveEmployee = async () => {\n if (!removeDialogTarget) return\n\n const targetUuid = removeDialogTarget.uuid\n const targetName = removeDialogTarget.name\n setRemoveDialogTarget(null)\n\n await baseSubmitHandler({}, async () => {\n await removeEmployeesMutation.mutateAsync({\n request: {\n companyUuid: companyId,\n requestBody: {\n version: holidayPayPolicy.version!,\n employees: [{ uuid: targetUuid }],\n },\n },\n })\n await invalidateAllHolidayPayPoliciesGet(queryClient)\n setSuccessAlert(t('flash.employeeRemoved', { name: targetName }))\n })\n }\n\n const handleBack = () => {\n onEvent(componentEvents.TIME_OFF_BACK_TO_LIST)\n }\n\n const handleAddEmployees = () => {\n onEvent(componentEvents.TIME_OFF_HOLIDAY_ADD_EMPLOYEES)\n }\n\n const handleEditPolicy = () => {\n onEvent(componentEvents.TIME_OFF_EDIT_HOLIDAY_POLICY)\n }\n\n const actions = [\n <Button\n key=\"add\"\n variant=\"secondary\"\n icon={<PlusCircleIcon aria-hidden />}\n onClick={handleAddEmployees}\n >\n {t('show.addEmployeesCta')}\n </Button>,\n <Button\n key=\"edit\"\n variant=\"secondary\"\n icon={<EditIcon aria-hidden />}\n onClick={handleEditPolicy}\n >\n {t('show.editPolicyCta')}\n </Button>,\n ]\n\n return (\n <HolidayPolicyDetailPresentation\n title={t('show.title')}\n onBack={handleBack}\n backLabel={tShared('backLabel')}\n actions={actions}\n onAddEmployee={handleAddEmployees}\n holidays={holidays}\n selectedTabId={selectedTabId}\n onTabChange={setSelectedTabId}\n employees={{\n data: pagedEmployees,\n searchValue,\n onSearchChange: paginationActions.onSearchChange,\n onSearchClear: paginationActions.onSearchClear,\n pagination,\n itemMenu: employee => (\n <HamburgerMenu\n items={[\n {\n label: tShared('removeEmployeeDialog.confirmCta'),\n icon: <TrashCanSvg aria-hidden />,\n onClick: () => {\n setRemoveDialogTarget({\n uuid: employee.uuid,\n name: firstLastName({\n first_name: employee.firstName,\n last_name: employee.lastName,\n }),\n })\n },\n },\n ]}\n triggerLabel={tShared('employeeActions', {\n name: firstLastName({ first_name: employee.firstName, last_name: employee.lastName }),\n })}\n />\n ),\n }}\n removeDialog={{\n isOpen: removeDialogTarget !== null,\n employeeName: removeDialogTarget?.name ?? '',\n onConfirm: handleRemoveEmployee,\n onClose: () => {\n setRemoveDialogTarget(null)\n },\n isPending: removeEmployeesMutation.isPending,\n }}\n successAlert={successAlert ?? undefined}\n onDismissAlert={() => {\n setSuccessAlert(null)\n }}\n />\n )\n}\n"],"names":["HolidayPolicyDetail","props","jsx","BaseComponent","Root","companyId","defaultTab","useI18n","t","useTranslation","tShared","Button","useComponentContext","locale","useLocale","queryClient","useQueryClient","onEvent","baseSubmitHandler","useBase","selectedTabId","setSelectedTabId","useState","successAlert","setSuccessAlert","removeDialogTarget","setRemoveDialogTarget","holidayPayPolicy","useHolidayPayPoliciesGetSuspense","employeesData","useEmployeesListSuspense","removeEmployeesMutation","useHolidayPayPoliciesRemoveEmployeesMutation","holidays","useMemo","allHolidays","getDefaultHolidayItems","federalHolidays","holiday","policyEmployeeUuids","employees","emp","job","pagedEmployees","pagination","searchValue","paginationActions","useClientPagination","query","handleRemoveEmployee","targetUuid","targetName","invalidateAllHolidayPayPoliciesGet","handleBack","componentEvents","handleAddEmployees","handleEditPolicy","actions","PlusCircleIcon","EditIcon","HolidayPolicyDetailPresentation","employee","HamburgerMenu","TrashCanSvg","firstLastName"],"mappings":"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"}
1
+ {"version":3,"file":"HolidayPolicyDetail.js","sources":["../../../../src/components/TimeOff/HolidayPolicyDetail/HolidayPolicyDetail.tsx"],"sourcesContent":["import { useMemo, useState } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport { useQueryClient } from '@tanstack/react-query'\nimport {\n useHolidayPayPoliciesGetSuspense,\n invalidateAllHolidayPayPoliciesGet,\n} from '@gusto/embedded-api-v-2025-11-15/react-query/holidayPayPoliciesGet'\nimport { useHolidayPayPoliciesRemoveEmployeesMutation } from '@gusto/embedded-api-v-2025-11-15/react-query/holidayPayPoliciesRemoveEmployees'\nimport { useEmployeesListSuspense } from '@gusto/embedded-api-v-2025-11-15/react-query/employeesList'\nimport { getDefaultHolidayItems } from '../shared/holidayHelpers'\nimport { HolidayPolicyDetailPresentation } from './HolidayPolicyDetailPresentation'\nimport type { HolidayPolicyDetailEmployee } from './HolidayPolicyDetailTypes'\nimport { useClientPagination } from '@/hooks/useClientPagination/useClientPagination'\nimport { HamburgerMenu } from '@/components/Common/HamburgerMenu'\nimport { BaseComponent, type BaseComponentInterface } from '@/components/Base'\nimport { useBase } from '@/components/Base/useBase'\nimport { componentEvents } from '@/shared/constants'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { useI18n } from '@/i18n'\nimport { useLocale } from '@/contexts/LocaleProvider/useLocale'\nimport { firstLastName } from '@/helpers/formattedStrings'\nimport TrashCanSvg from '@/assets/icons/trashcan.svg?react'\nimport EditIcon from '@/assets/icons/edit-02.svg?react'\nimport PlusCircleIcon from '@/assets/icons/plus-circle.svg?react'\n\n/** @internal */\nexport interface HolidayPolicyDetailProps extends BaseComponentInterface {\n /** The associated company identifier. */\n companyId: string\n /** Which tab to display initially. Defaults to `'holidays'`. */\n defaultTab?: 'holidays' | 'employees'\n}\n\n/** @internal */\nexport function HolidayPolicyDetail(props: HolidayPolicyDetailProps) {\n return (\n <BaseComponent {...props} componentName=\"Company.TimeOff.HolidayPolicy\">\n <Root {...props} />\n </BaseComponent>\n )\n}\n\ninterface RemoveDialogTarget {\n uuid: string\n name: string\n}\n\nfunction Root({ companyId, defaultTab = 'holidays' }: HolidayPolicyDetailProps) {\n useI18n('Company.TimeOff.HolidayPolicy')\n useI18n('Company.TimeOff.PolicyDetail')\n const { t } = useTranslation('Company.TimeOff.HolidayPolicy')\n const { t: tShared } = useTranslation('Company.TimeOff.PolicyDetail')\n const { Button } = useComponentContext()\n const { locale } = useLocale()\n const queryClient = useQueryClient()\n const { onEvent, baseSubmitHandler } = useBase()\n\n const [selectedTabId, setSelectedTabId] = useState<string>(defaultTab)\n const [successAlert, setSuccessAlert] = useState<string | null>(null)\n const [removeDialogTarget, setRemoveDialogTarget] = useState<RemoveDialogTarget | null>(null)\n\n const holidayQuery = useHolidayPayPoliciesGetSuspense({ companyUuid: companyId })\n const holidayPayPolicy = holidayQuery.data.holidayPayPolicy!\n\n const { data: employeesData } = useEmployeesListSuspense({\n companyId,\n terminated: false,\n })\n\n const removeEmployeesMutation = useHolidayPayPoliciesRemoveEmployeesMutation()\n\n const holidays = useMemo(() => {\n const allHolidays = getDefaultHolidayItems(t, undefined, locale)\n const { federalHolidays } = holidayPayPolicy\n return allHolidays.filter(holiday => {\n const holidayData = federalHolidays[holiday.uuid as keyof typeof federalHolidays]\n return holidayData?.selected === true\n })\n }, [t, holidayPayPolicy, locale])\n\n const policyEmployeeUuids = useMemo(\n () => new Set(holidayPayPolicy.employees.map(e => e.uuid)),\n [holidayPayPolicy.employees],\n )\n\n const employees: HolidayPolicyDetailEmployee[] = useMemo(() => {\n const allEmployees = employeesData.showEmployees ?? []\n return allEmployees\n .filter(emp => policyEmployeeUuids.has(emp.uuid))\n .map(emp => ({\n uuid: emp.uuid,\n firstName: emp.firstName,\n lastName: emp.lastName,\n jobTitle: emp.jobs?.find(job => job.primary)?.title ?? null,\n }))\n }, [employeesData.showEmployees, policyEmployeeUuids])\n\n const {\n data: pagedEmployees,\n pagination,\n searchValue,\n actions: paginationActions,\n } = useClientPagination(employees, {\n defaultItemsPerPage: 10,\n searchPredicate: (emp, query) =>\n `${emp.firstName ?? ''} ${emp.lastName ?? ''}`.toLowerCase().includes(query.toLowerCase()),\n })\n\n const handleRemoveEmployee = async () => {\n if (!removeDialogTarget) return\n\n const targetUuid = removeDialogTarget.uuid\n const targetName = removeDialogTarget.name\n setRemoveDialogTarget(null)\n\n await baseSubmitHandler({}, async () => {\n await removeEmployeesMutation.mutateAsync({\n request: {\n companyUuid: companyId,\n requestBody: {\n version: holidayPayPolicy.version!,\n employees: [{ uuid: targetUuid }],\n },\n },\n })\n await invalidateAllHolidayPayPoliciesGet(queryClient)\n setSuccessAlert(t('flash.employeeRemoved', { name: targetName }))\n })\n }\n\n const handleBack = () => {\n onEvent(componentEvents.TIME_OFF_BACK_TO_LIST)\n }\n\n const handleAddEmployees = () => {\n onEvent(componentEvents.TIME_OFF_HOLIDAY_ADD_EMPLOYEES)\n }\n\n const handleEditPolicy = () => {\n onEvent(componentEvents.TIME_OFF_EDIT_HOLIDAY_POLICY)\n }\n\n const actions = [\n <Button\n key=\"add\"\n variant=\"secondary\"\n icon={<PlusCircleIcon aria-hidden />}\n onClick={handleAddEmployees}\n >\n {t('show.addEmployeesCta')}\n </Button>,\n <Button\n key=\"edit\"\n variant=\"secondary\"\n icon={<EditIcon aria-hidden />}\n onClick={handleEditPolicy}\n >\n {t('show.editPolicyCta')}\n </Button>,\n ]\n\n return (\n <HolidayPolicyDetailPresentation\n title={t('show.title')}\n onBack={handleBack}\n backLabel={tShared('backLabel')}\n actions={actions}\n onAddEmployee={handleAddEmployees}\n holidays={holidays}\n selectedTabId={selectedTabId}\n onTabChange={setSelectedTabId}\n employees={{\n data: pagedEmployees,\n searchValue,\n onSearchChange: paginationActions.onSearchChange,\n onSearchClear: paginationActions.onSearchClear,\n pagination,\n itemMenu: employee => (\n <HamburgerMenu\n items={[\n {\n label: tShared('removeEmployeeDialog.confirmCta'),\n icon: <TrashCanSvg aria-hidden />,\n onClick: () => {\n setRemoveDialogTarget({\n uuid: employee.uuid,\n name: firstLastName({\n first_name: employee.firstName,\n last_name: employee.lastName,\n }),\n })\n },\n },\n ]}\n triggerLabel={tShared('employeeActions', {\n name: firstLastName({ first_name: employee.firstName, last_name: employee.lastName }),\n })}\n />\n ),\n }}\n removeDialog={{\n isOpen: removeDialogTarget !== null,\n employeeName: removeDialogTarget?.name ?? '',\n onConfirm: handleRemoveEmployee,\n onClose: () => {\n setRemoveDialogTarget(null)\n },\n isPending: removeEmployeesMutation.isPending,\n }}\n successAlert={successAlert ?? undefined}\n onDismissAlert={() => {\n setSuccessAlert(null)\n }}\n />\n )\n}\n"],"names":["HolidayPolicyDetail","props","jsx","BaseComponent","Root","companyId","defaultTab","useI18n","t","useTranslation","tShared","Button","useComponentContext","locale","useLocale","queryClient","useQueryClient","onEvent","baseSubmitHandler","useBase","selectedTabId","setSelectedTabId","useState","successAlert","setSuccessAlert","removeDialogTarget","setRemoveDialogTarget","holidayPayPolicy","useHolidayPayPoliciesGetSuspense","employeesData","useEmployeesListSuspense","removeEmployeesMutation","useHolidayPayPoliciesRemoveEmployeesMutation","holidays","useMemo","allHolidays","getDefaultHolidayItems","federalHolidays","holiday","policyEmployeeUuids","employees","emp","job","pagedEmployees","pagination","searchValue","paginationActions","useClientPagination","query","handleRemoveEmployee","targetUuid","targetName","invalidateAllHolidayPayPoliciesGet","handleBack","componentEvents","handleAddEmployees","handleEditPolicy","actions","PlusCircleIcon","EditIcon","HolidayPolicyDetailPresentation","employee","HamburgerMenu","TrashCanSvg","firstLastName"],"mappings":"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"}
@@ -1,2 +1,3 @@
1
1
  import { HolidayPolicyDetailPresentationProps } from './HolidayPolicyDetailTypes';
2
+ /** @internal */
2
3
  export declare function HolidayPolicyDetailPresentation({ title, subtitle, onBack, backLabel, actions, holidays, selectedTabId, onTabChange, employees, onAddEmployee, removeDialog, successAlert, onDismissAlert, }: HolidayPolicyDetailPresentationProps): import("react").JSX.Element;
@@ -1 +1 @@
1
- {"version":3,"file":"HolidayPolicyDetailPresentation.js","sources":["../../../../src/components/TimeOff/HolidayPolicyDetail/HolidayPolicyDetailPresentation.tsx"],"sourcesContent":["import { useMemo } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport type { HolidayItem } from '../HolidaySelectionForm/HolidaySelectionFormTypes'\nimport { PolicyDetailLayout } from '../shared/PolicyDetailLayout'\nimport type { HolidayPolicyDetailPresentationProps } from './HolidayPolicyDetailTypes'\nimport { DataView, useDataView } from '@/components/Common'\nimport { useI18n } from '@/i18n'\n\nconst HOLIDAYS_TAB_ID = 'holidays'\n\nexport function HolidayPolicyDetailPresentation({\n title,\n subtitle,\n onBack,\n backLabel,\n actions,\n holidays,\n selectedTabId,\n onTabChange,\n employees,\n onAddEmployee,\n removeDialog,\n successAlert,\n onDismissAlert,\n}: HolidayPolicyDetailPresentationProps) {\n useI18n('Company.TimeOff.HolidayPolicy')\n const { t } = useTranslation('Company.TimeOff.HolidayPolicy')\n\n const holidaysTabContent = <HolidaysTab holidays={holidays} />\n\n return (\n <PolicyDetailLayout\n title={title}\n subtitle={subtitle}\n onBack={onBack}\n backLabel={backLabel}\n actions={actions}\n firstTab={{\n id: HOLIDAYS_TAB_ID,\n label: t('tabs.holidays'),\n content: holidaysTabContent,\n }}\n selectedTabId={selectedTabId}\n onTabChange={onTabChange}\n employees={employees}\n onAddEmployee={onAddEmployee}\n removeDialog={removeDialog}\n successAlert={successAlert}\n onDismissAlert={onDismissAlert}\n />\n )\n}\n\nfunction HolidaysTab({ holidays }: { holidays: HolidayItem[] }) {\n useI18n('Company.TimeOff.HolidayPolicy')\n const { t } = useTranslation('Company.TimeOff.HolidayPolicy')\n\n const columns = useMemo(\n () => [\n {\n key: 'name' as keyof HolidayItem,\n title: t('tableHeaders.holidayName'),\n render: (item: HolidayItem) => item.name,\n },\n {\n key: 'observedDate' as keyof HolidayItem,\n title: t('tableHeaders.observedDate'),\n render: (item: HolidayItem) => item.observedDate,\n },\n {\n key: 'nextObservation' as keyof HolidayItem,\n title: t('tableHeaders.nextObservation'),\n render: (item: HolidayItem) => item.nextObservation,\n },\n ],\n [t],\n )\n\n const dataViewProps = useDataView<HolidayItem>({\n data: holidays,\n columns,\n })\n\n return <DataView label={t('tableLabel')} {...dataViewProps} />\n}\n"],"names":["HOLIDAYS_TAB_ID","HolidayPolicyDetailPresentation","title","subtitle","onBack","backLabel","actions","holidays","selectedTabId","onTabChange","employees","onAddEmployee","removeDialog","successAlert","onDismissAlert","useI18n","t","useTranslation","holidaysTabContent","jsx","HolidaysTab","PolicyDetailLayout","columns","useMemo","item","dataViewProps","useDataView","DataView"],"mappings":";;;;;;;;AAQA,MAAMA,IAAkB;AAEjB,SAASC,EAAgC;AAAA,EAC9C,OAAAC;AAAA,EACA,UAAAC;AAAA,EACA,QAAAC;AAAA,EACA,WAAAC;AAAA,EACA,SAAAC;AAAA,EACA,UAAAC;AAAA,EACA,eAAAC;AAAA,EACA,aAAAC;AAAA,EACA,WAAAC;AAAA,EACA,eAAAC;AAAA,EACA,cAAAC;AAAA,EACA,cAAAC;AAAA,EACA,gBAAAC;AACF,GAAyC;AACvC,EAAAC,EAAQ,+BAA+B;AACvC,QAAM,EAAE,GAAAC,EAAA,IAAMC,EAAe,+BAA+B,GAEtDC,IAAqB,gBAAAC,EAACC,GAAA,EAAY,UAAAb,EAAA,CAAoB;AAE5D,SACE,gBAAAY;AAAA,IAACE;AAAA,IAAA;AAAA,MACC,OAAAnB;AAAA,MACA,UAAAC;AAAA,MACA,QAAAC;AAAA,MACA,WAAAC;AAAA,MACA,SAAAC;AAAA,MACA,UAAU;AAAA,QACR,IAAIN;AAAA,QACJ,OAAOgB,EAAE,eAAe;AAAA,QACxB,SAASE;AAAA,MAAA;AAAA,MAEX,eAAAV;AAAA,MACA,aAAAC;AAAA,MACA,WAAAC;AAAA,MACA,eAAAC;AAAA,MACA,cAAAC;AAAA,MACA,cAAAC;AAAA,MACA,gBAAAC;AAAA,IAAA;AAAA,EAAA;AAGN;AAEA,SAASM,EAAY,EAAE,UAAAb,KAAyC;AAC9D,EAAAQ,EAAQ,+BAA+B;AACvC,QAAM,EAAE,GAAAC,EAAA,IAAMC,EAAe,+BAA+B,GAEtDK,IAAUC;AAAA,IACd,MAAM;AAAA,MACJ;AAAA,QACE,KAAK;AAAA,QACL,OAAOP,EAAE,0BAA0B;AAAA,QACnC,QAAQ,CAACQ,MAAsBA,EAAK;AAAA,MAAA;AAAA,MAEtC;AAAA,QACE,KAAK;AAAA,QACL,OAAOR,EAAE,2BAA2B;AAAA,QACpC,QAAQ,CAACQ,MAAsBA,EAAK;AAAA,MAAA;AAAA,MAEtC;AAAA,QACE,KAAK;AAAA,QACL,OAAOR,EAAE,8BAA8B;AAAA,QACvC,QAAQ,CAACQ,MAAsBA,EAAK;AAAA,MAAA;AAAA,IACtC;AAAA,IAEF,CAACR,CAAC;AAAA,EAAA,GAGES,IAAgBC,EAAyB;AAAA,IAC7C,MAAMnB;AAAA,IACN,SAAAe;AAAA,EAAA,CACD;AAED,2BAAQK,GAAA,EAAS,OAAOX,EAAE,YAAY,GAAI,GAAGS,GAAe;AAC9D;"}
1
+ {"version":3,"file":"HolidayPolicyDetailPresentation.js","sources":["../../../../src/components/TimeOff/HolidayPolicyDetail/HolidayPolicyDetailPresentation.tsx"],"sourcesContent":["import { useMemo } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport type { HolidayItem } from '../HolidaySelectionForm/HolidaySelectionFormTypes'\nimport { PolicyDetailLayout } from '../shared/PolicyDetailLayout'\nimport type { HolidayPolicyDetailPresentationProps } from './HolidayPolicyDetailTypes'\nimport { DataView, useDataView } from '@/components/Common'\nimport { useI18n } from '@/i18n'\n\nconst HOLIDAYS_TAB_ID = 'holidays'\n\n/** @internal */\nexport function HolidayPolicyDetailPresentation({\n title,\n subtitle,\n onBack,\n backLabel,\n actions,\n holidays,\n selectedTabId,\n onTabChange,\n employees,\n onAddEmployee,\n removeDialog,\n successAlert,\n onDismissAlert,\n}: HolidayPolicyDetailPresentationProps) {\n useI18n('Company.TimeOff.HolidayPolicy')\n const { t } = useTranslation('Company.TimeOff.HolidayPolicy')\n\n const holidaysTabContent = <HolidaysTab holidays={holidays} />\n\n return (\n <PolicyDetailLayout\n title={title}\n subtitle={subtitle}\n onBack={onBack}\n backLabel={backLabel}\n actions={actions}\n firstTab={{\n id: HOLIDAYS_TAB_ID,\n label: t('tabs.holidays'),\n content: holidaysTabContent,\n }}\n selectedTabId={selectedTabId}\n onTabChange={onTabChange}\n employees={employees}\n onAddEmployee={onAddEmployee}\n removeDialog={removeDialog}\n successAlert={successAlert}\n onDismissAlert={onDismissAlert}\n />\n )\n}\n\nfunction HolidaysTab({ holidays }: { holidays: HolidayItem[] }) {\n useI18n('Company.TimeOff.HolidayPolicy')\n const { t } = useTranslation('Company.TimeOff.HolidayPolicy')\n\n const columns = useMemo(\n () => [\n {\n key: 'name' as keyof HolidayItem,\n title: t('tableHeaders.holidayName'),\n render: (item: HolidayItem) => item.name,\n },\n {\n key: 'observedDate' as keyof HolidayItem,\n title: t('tableHeaders.observedDate'),\n render: (item: HolidayItem) => item.observedDate,\n },\n {\n key: 'nextObservation' as keyof HolidayItem,\n title: t('tableHeaders.nextObservation'),\n render: (item: HolidayItem) => item.nextObservation,\n },\n ],\n [t],\n )\n\n const dataViewProps = useDataView<HolidayItem>({\n data: holidays,\n columns,\n })\n\n return <DataView label={t('tableLabel')} {...dataViewProps} />\n}\n"],"names":["HOLIDAYS_TAB_ID","HolidayPolicyDetailPresentation","title","subtitle","onBack","backLabel","actions","holidays","selectedTabId","onTabChange","employees","onAddEmployee","removeDialog","successAlert","onDismissAlert","useI18n","t","useTranslation","holidaysTabContent","jsx","HolidaysTab","PolicyDetailLayout","columns","useMemo","item","dataViewProps","useDataView","DataView"],"mappings":";;;;;;;;AAQA,MAAMA,IAAkB;AAGjB,SAASC,EAAgC;AAAA,EAC9C,OAAAC;AAAA,EACA,UAAAC;AAAA,EACA,QAAAC;AAAA,EACA,WAAAC;AAAA,EACA,SAAAC;AAAA,EACA,UAAAC;AAAA,EACA,eAAAC;AAAA,EACA,aAAAC;AAAA,EACA,WAAAC;AAAA,EACA,eAAAC;AAAA,EACA,cAAAC;AAAA,EACA,cAAAC;AAAA,EACA,gBAAAC;AACF,GAAyC;AACvC,EAAAC,EAAQ,+BAA+B;AACvC,QAAM,EAAE,GAAAC,EAAA,IAAMC,EAAe,+BAA+B,GAEtDC,IAAqB,gBAAAC,EAACC,GAAA,EAAY,UAAAb,EAAA,CAAoB;AAE5D,SACE,gBAAAY;AAAA,IAACE;AAAA,IAAA;AAAA,MACC,OAAAnB;AAAA,MACA,UAAAC;AAAA,MACA,QAAAC;AAAA,MACA,WAAAC;AAAA,MACA,SAAAC;AAAA,MACA,UAAU;AAAA,QACR,IAAIN;AAAA,QACJ,OAAOgB,EAAE,eAAe;AAAA,QACxB,SAASE;AAAA,MAAA;AAAA,MAEX,eAAAV;AAAA,MACA,aAAAC;AAAA,MACA,WAAAC;AAAA,MACA,eAAAC;AAAA,MACA,cAAAC;AAAA,MACA,cAAAC;AAAA,MACA,gBAAAC;AAAA,IAAA;AAAA,EAAA;AAGN;AAEA,SAASM,EAAY,EAAE,UAAAb,KAAyC;AAC9D,EAAAQ,EAAQ,+BAA+B;AACvC,QAAM,EAAE,GAAAC,EAAA,IAAMC,EAAe,+BAA+B,GAEtDK,IAAUC;AAAA,IACd,MAAM;AAAA,MACJ;AAAA,QACE,KAAK;AAAA,QACL,OAAOP,EAAE,0BAA0B;AAAA,QACnC,QAAQ,CAACQ,MAAsBA,EAAK;AAAA,MAAA;AAAA,MAEtC;AAAA,QACE,KAAK;AAAA,QACL,OAAOR,EAAE,2BAA2B;AAAA,QACpC,QAAQ,CAACQ,MAAsBA,EAAK;AAAA,MAAA;AAAA,MAEtC;AAAA,QACE,KAAK;AAAA,QACL,OAAOR,EAAE,8BAA8B;AAAA,QACvC,QAAQ,CAACQ,MAAsBA,EAAK;AAAA,MAAA;AAAA,IACtC;AAAA,IAEF,CAACR,CAAC;AAAA,EAAA,GAGES,IAAgBC,EAAyB;AAAA,IAC7C,MAAMnB;AAAA,IACN,SAAAe;AAAA,EAAA,CACD;AAED,2BAAQK,GAAA,EAAS,OAAOX,EAAE,YAAY,GAAI,GAAGS,GAAe;AAC9D;"}
@@ -1,22 +1,48 @@
1
1
  import { ReactNode } from 'react';
2
2
  import { HolidayItem } from '../HolidaySelectionForm/HolidaySelectionFormTypes';
3
- import { EmployeeTableItem, EmployeeTableProps } from '../shared/EmployeeTable/EmployeeTableTypes';
3
+ import { EmployeeTableItem, PolicyDetailEmployeeTableData } from '../shared/EmployeeTable/EmployeeTableTypes';
4
4
  import { RemoveDialogState } from '../shared/PolicyDetailLayout/PolicyDetailLayoutTypes';
5
+ /**
6
+ * An employee row rendered in the holiday policy detail employees tab.
7
+ *
8
+ * @public
9
+ */
5
10
  export interface HolidayPolicyDetailEmployee extends EmployeeTableItem {
11
+ /** Unique identifier for the employee. */
6
12
  uuid: string;
7
13
  }
14
+ /**
15
+ * Props for the holiday policy detail presentation component, which renders the
16
+ * holidays and employees tabs along with the remove-employee confirmation dialog
17
+ * and an optional success alert.
18
+ *
19
+ * @public
20
+ */
8
21
  export interface HolidayPolicyDetailPresentationProps {
22
+ /** The policy name displayed as the page heading. */
9
23
  title: string;
24
+ /** Secondary label shown beneath the title. */
10
25
  subtitle?: string;
26
+ /** Called when the user clicks the back navigation. */
11
27
  onBack: () => void;
28
+ /** Label for the back navigation link. */
12
29
  backLabel: string;
30
+ /** Action buttons displayed in the header (e.g. add employees, edit policy). */
13
31
  actions?: ReactNode[];
32
+ /** Selected holidays shown in the holidays tab. */
14
33
  holidays: HolidayItem[];
34
+ /** The currently active tab (`'holidays'` or `'employees'`). */
15
35
  selectedTabId: string;
36
+ /** Called with the tab id when the user switches tabs. */
16
37
  onTabChange: (id: string) => void;
17
- employees: Pick<EmployeeTableProps<HolidayPolicyDetailEmployee>, 'data' | 'searchValue' | 'onSearchChange' | 'onSearchClear' | 'searchPlaceholder' | 'itemMenu' | 'pagination' | 'isFetching' | 'emptyState'>;
38
+ /** Employee table data and handlers for the employees tab. */
39
+ employees: PolicyDetailEmployeeTableData<HolidayPolicyDetailEmployee>;
40
+ /** Called when the user triggers the add-employee action from the empty state. */
18
41
  onAddEmployee?: () => void;
42
+ /** State for the employee removal confirmation dialog. */
19
43
  removeDialog: RemoveDialogState;
44
+ /** Success message displayed as a dismissible alert above the content. */
20
45
  successAlert?: string;
46
+ /** Called when the success alert is dismissed. */
21
47
  onDismissAlert?: () => void;
22
48
  }
@@ -1,5 +1,3 @@
1
1
  import "./types/i18next.d.ts"
2
2
  export { HolidayPolicyDetail } from './HolidayPolicyDetail';
3
- export type { HolidayPolicyDetailProps } from './HolidayPolicyDetail';
4
- export { HolidayPolicyDetailPresentation } from './HolidayPolicyDetailPresentation';
5
3
  export type { HolidayPolicyDetailPresentationProps, HolidayPolicyDetailEmployee, } from './HolidayPolicyDetailTypes';
@@ -1,6 +1,32 @@
1
1
  import { BaseComponentInterface } from '../../Base';
2
+ /**
3
+ * Props for {@link HolidaySelectionForm}.
4
+ *
5
+ * @public
6
+ */
2
7
  export interface HolidaySelectionFormProps extends BaseComponentInterface {
8
+ /** The associated company identifier. */
3
9
  companyId: string;
10
+ /** Whether to create a new holiday policy or edit the existing one. Defaults to `'create'`. */
4
11
  mode?: 'create' | 'edit';
5
12
  }
13
+ /**
14
+ * Lets a user select which US federal holidays are observed by the company's holiday pay policy.
15
+ *
16
+ * In `'create'` mode, submitting creates a new holiday pay policy. In `'edit'` mode, the form
17
+ * is pre-populated with the existing policy's selections and submitting updates it. All 11 US
18
+ * federal holidays are shown with their observed and next-observation dates; in create mode they
19
+ * are all selected by default.
20
+ *
21
+ * @remarks
22
+ * | Event | Description | Data |
23
+ * | ----- | ----------- | ---- |
24
+ * | `timeOff/holidaySelection/done` | Holidays were saved in create mode | — |
25
+ * | `timeOff/holidaySelection/editDone` | Holidays were saved in edit mode | — |
26
+ * | `CANCEL` | The user backed out of the form | — |
27
+ *
28
+ * @param props - See {@link HolidaySelectionFormProps}.
29
+ * @returns The rendered holiday selection form.
30
+ * @public
31
+ */
6
32
  export declare function HolidaySelectionForm(props: HolidaySelectionFormProps): import("react").JSX.Element;
@@ -1 +1 @@
1
- {"version":3,"file":"HolidaySelectionForm.js","sources":["../../../../src/components/TimeOff/HolidaySelectionForm/HolidaySelectionForm.tsx"],"sourcesContent":["import { useCallback, useMemo, useState } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport { useQueryClient } from '@tanstack/react-query'\nimport { useHolidayPayPoliciesCreateMutation } from '@gusto/embedded-api-v-2025-11-15/react-query/holidayPayPoliciesCreate'\nimport {\n useHolidayPayPoliciesGetSuspense,\n queryKeyHolidayPayPoliciesGet,\n invalidateAllHolidayPayPoliciesGet,\n type HolidayPayPoliciesGetQueryData,\n} from '@gusto/embedded-api-v-2025-11-15/react-query/holidayPayPoliciesGet'\nimport { useHolidayPayPoliciesUpdateMutation } from '@gusto/embedded-api-v-2025-11-15/react-query/holidayPayPoliciesUpdate'\nimport type { HolidayPayPolicy } from '@gusto/embedded-api-v-2025-11-15/models/components/holidaypaypolicy'\nimport {\n getDefaultHolidayItems,\n buildFederalHolidaysPayload,\n FEDERAL_HOLIDAY_KEYS,\n} from '../shared/holidayHelpers'\nimport { HolidaySelectionFormPresentation } from './HolidaySelectionFormPresentation'\nimport type { HolidayItem } from './HolidaySelectionFormTypes'\nimport { BaseComponent, type BaseComponentInterface } from '@/components/Base'\nimport { useBase } from '@/components/Base/useBase'\nimport { componentEvents } from '@/shared/constants'\nimport { useI18n } from '@/i18n'\nimport { useLocale } from '@/contexts/LocaleProvider/useLocale'\n\nexport interface HolidaySelectionFormProps extends BaseComponentInterface {\n companyId: string\n mode?: 'create' | 'edit'\n}\n\nexport function HolidaySelectionForm(props: HolidaySelectionFormProps) {\n return (\n <BaseComponent {...props}>\n {props.mode === 'edit' ? (\n <EditRoot companyId={props.companyId} />\n ) : (\n <CreateRoot companyId={props.companyId} />\n )}\n </BaseComponent>\n )\n}\n\ninterface RootProps {\n companyId: string\n}\n\nfunction useHolidaySelection(initialKeys: Set<string>) {\n const [selectedUuids, setSelectedUuids] = useState(initialKeys)\n\n const handleSelectionChange = useCallback((item: HolidayItem, selected: boolean) => {\n setSelectedUuids(prev => {\n const next = new Set(prev)\n if (selected) {\n next.add(item.uuid)\n } else {\n next.delete(item.uuid)\n }\n return next\n })\n }, [])\n\n const handleSelectAll = useCallback((selected: boolean, visibleItems: HolidayItem[]) => {\n setSelectedUuids(prev => {\n const next = new Set(prev)\n for (const item of visibleItems) {\n if (selected) next.add(item.uuid)\n else next.delete(item.uuid)\n }\n return next\n })\n }, [])\n\n return { selectedUuids, handleSelectionChange, handleSelectAll }\n}\n\nfunction seedPolicyCache(\n queryClient: ReturnType<typeof useQueryClient>,\n companyId: string,\n policy: HolidayPayPolicy | undefined,\n) {\n if (!policy) return\n queryClient.setQueryData<HolidayPayPoliciesGetQueryData>(\n queryKeyHolidayPayPoliciesGet(companyId, {}),\n prev =>\n prev\n ? { ...prev, holidayPayPolicy: policy }\n : (undefined as unknown as HolidayPayPoliciesGetQueryData),\n )\n}\n\nfunction CreateRoot({ companyId }: RootProps) {\n useI18n('Company.TimeOff.HolidayPolicy')\n const { t } = useTranslation('Company.TimeOff.HolidayPolicy')\n const { onEvent, baseSubmitHandler } = useBase()\n const { locale } = useLocale()\n const queryClient = useQueryClient()\n\n const holidays = useMemo(() => getDefaultHolidayItems(t, undefined, locale), [t, locale])\n const allKeys = useMemo(() => new Set(FEDERAL_HOLIDAY_KEYS), [])\n const { selectedUuids, handleSelectionChange, handleSelectAll } = useHolidaySelection(allKeys)\n\n const { mutateAsync: createPolicy, isPending } = useHolidayPayPoliciesCreateMutation()\n\n const handleContinue = useCallback(async () => {\n await baseSubmitHandler({}, async () => {\n const response = await createPolicy({\n request: {\n companyUuid: companyId,\n holidayPayPolicyRequest: {\n federalHolidays: buildFederalHolidaysPayload(selectedUuids),\n },\n },\n })\n // Seed the GET cache so the next mount of SelectEmployeesHoliday's\n // StandaloneLoader (in addEmployeesHoliday state) reads the freshly\n // created policy instead of a stale `{ holidayPayPolicy: undefined }`\n // left over from PolicyList's pre-create GET.\n seedPolicyCache(queryClient, companyId, response.holidayPayPolicy)\n await invalidateAllHolidayPayPoliciesGet(queryClient)\n onEvent(componentEvents.TIME_OFF_HOLIDAY_SELECTION_DONE)\n })\n }, [baseSubmitHandler, createPolicy, companyId, selectedUuids, queryClient, onEvent])\n\n const handleBack = useCallback(() => {\n onEvent(componentEvents.CANCEL)\n }, [onEvent])\n\n return (\n <HolidaySelectionFormPresentation\n holidays={holidays}\n selectedHolidayUuids={selectedUuids}\n onSelectionChange={handleSelectionChange}\n onSelectAll={handleSelectAll}\n onContinue={handleContinue}\n onBack={handleBack}\n isPending={isPending}\n />\n )\n}\n\nfunction EditRoot({ companyId }: RootProps) {\n useI18n('Company.TimeOff.HolidayPolicy')\n const { t } = useTranslation('Company.TimeOff.HolidayPolicy')\n const { onEvent, baseSubmitHandler } = useBase()\n const { locale } = useLocale()\n const queryClient = useQueryClient()\n\n const { data } = useHolidayPayPoliciesGetSuspense({ companyUuid: companyId })\n const policy = data.holidayPayPolicy!\n\n const holidays = useMemo(() => getDefaultHolidayItems(t, undefined, locale), [t, locale])\n\n const initialSelected = useMemo(() => {\n const next = new Set<string>()\n const federal = policy.federalHolidays\n for (const key of FEDERAL_HOLIDAY_KEYS) {\n const entry = federal[key as keyof typeof federal]\n if (entry?.selected === true) {\n next.add(key)\n }\n }\n return next\n }, [policy.federalHolidays])\n\n const { selectedUuids, handleSelectionChange, handleSelectAll } =\n useHolidaySelection(initialSelected)\n\n const { mutateAsync: updatePolicy, isPending } = useHolidayPayPoliciesUpdateMutation()\n\n const handleContinue = useCallback(async () => {\n await baseSubmitHandler({}, async () => {\n const response = await updatePolicy({\n request: {\n companyUuid: companyId,\n requestBody: {\n version: policy.version!,\n federalHolidays: buildFederalHolidaysPayload(selectedUuids),\n },\n },\n })\n seedPolicyCache(queryClient, companyId, response.holidayPayPolicy)\n await invalidateAllHolidayPayPoliciesGet(queryClient)\n onEvent(componentEvents.TIME_OFF_HOLIDAY_SELECTION_EDIT_DONE)\n })\n }, [\n baseSubmitHandler,\n updatePolicy,\n companyId,\n policy.version,\n selectedUuids,\n queryClient,\n onEvent,\n ])\n\n const handleBack = useCallback(() => {\n onEvent(componentEvents.CANCEL)\n }, [onEvent])\n\n return (\n <HolidaySelectionFormPresentation\n holidays={holidays}\n selectedHolidayUuids={selectedUuids}\n onSelectionChange={handleSelectionChange}\n onSelectAll={handleSelectAll}\n onContinue={handleContinue}\n onBack={handleBack}\n isPending={isPending}\n />\n )\n}\n"],"names":["HolidaySelectionForm","props","BaseComponent","jsx","EditRoot","CreateRoot","useHolidaySelection","initialKeys","selectedUuids","setSelectedUuids","useState","handleSelectionChange","useCallback","item","selected","prev","next","handleSelectAll","visibleItems","seedPolicyCache","queryClient","companyId","policy","queryKeyHolidayPayPoliciesGet","useI18n","t","useTranslation","onEvent","baseSubmitHandler","useBase","locale","useLocale","useQueryClient","holidays","useMemo","getDefaultHolidayItems","allKeys","FEDERAL_HOLIDAY_KEYS","createPolicy","isPending","useHolidayPayPoliciesCreateMutation","handleContinue","response","buildFederalHolidaysPayload","invalidateAllHolidayPayPoliciesGet","componentEvents","handleBack","HolidaySelectionFormPresentation","data","useHolidayPayPoliciesGetSuspense","initialSelected","federal","key","updatePolicy","useHolidayPayPoliciesUpdateMutation"],"mappings":"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"}
1
+ {"version":3,"file":"HolidaySelectionForm.js","sources":["../../../../src/components/TimeOff/HolidaySelectionForm/HolidaySelectionForm.tsx"],"sourcesContent":["import { useCallback, useMemo, useState } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport { useQueryClient } from '@tanstack/react-query'\nimport { useHolidayPayPoliciesCreateMutation } from '@gusto/embedded-api-v-2025-11-15/react-query/holidayPayPoliciesCreate'\nimport {\n useHolidayPayPoliciesGetSuspense,\n queryKeyHolidayPayPoliciesGet,\n invalidateAllHolidayPayPoliciesGet,\n type HolidayPayPoliciesGetQueryData,\n} from '@gusto/embedded-api-v-2025-11-15/react-query/holidayPayPoliciesGet'\nimport { useHolidayPayPoliciesUpdateMutation } from '@gusto/embedded-api-v-2025-11-15/react-query/holidayPayPoliciesUpdate'\nimport type { HolidayPayPolicy } from '@gusto/embedded-api-v-2025-11-15/models/components/holidaypaypolicy'\nimport {\n getDefaultHolidayItems,\n buildFederalHolidaysPayload,\n FEDERAL_HOLIDAY_KEYS,\n} from '../shared/holidayHelpers'\nimport { HolidaySelectionFormPresentation } from './HolidaySelectionFormPresentation'\nimport type { HolidayItem } from './HolidaySelectionFormTypes'\nimport { BaseComponent, type BaseComponentInterface } from '@/components/Base'\nimport { useBase } from '@/components/Base/useBase'\nimport { componentEvents } from '@/shared/constants'\nimport { useI18n } from '@/i18n'\nimport { useLocale } from '@/contexts/LocaleProvider/useLocale'\n\n/**\n * Props for {@link HolidaySelectionForm}.\n *\n * @public\n */\nexport interface HolidaySelectionFormProps extends BaseComponentInterface {\n /** The associated company identifier. */\n companyId: string\n /** Whether to create a new holiday policy or edit the existing one. Defaults to `'create'`. */\n mode?: 'create' | 'edit'\n}\n\n/**\n * Lets a user select which US federal holidays are observed by the company's holiday pay policy.\n *\n * In `'create'` mode, submitting creates a new holiday pay policy. In `'edit'` mode, the form\n * is pre-populated with the existing policy's selections and submitting updates it. All 11 US\n * federal holidays are shown with their observed and next-observation dates; in create mode they\n * are all selected by default.\n *\n * @remarks\n * | Event | Description | Data |\n * | ----- | ----------- | ---- |\n * | `timeOff/holidaySelection/done` | Holidays were saved in create mode | — |\n * | `timeOff/holidaySelection/editDone` | Holidays were saved in edit mode | — |\n * | `CANCEL` | The user backed out of the form | — |\n *\n * @param props - See {@link HolidaySelectionFormProps}.\n * @returns The rendered holiday selection form.\n * @public\n */\nexport function HolidaySelectionForm(props: HolidaySelectionFormProps) {\n return (\n <BaseComponent {...props}>\n {props.mode === 'edit' ? (\n <EditRoot companyId={props.companyId} />\n ) : (\n <CreateRoot companyId={props.companyId} />\n )}\n </BaseComponent>\n )\n}\n\ninterface RootProps {\n companyId: string\n}\n\nfunction useHolidaySelection(initialKeys: Set<string>) {\n const [selectedUuids, setSelectedUuids] = useState(initialKeys)\n\n const handleSelectionChange = useCallback((item: HolidayItem, selected: boolean) => {\n setSelectedUuids(prev => {\n const next = new Set(prev)\n if (selected) {\n next.add(item.uuid)\n } else {\n next.delete(item.uuid)\n }\n return next\n })\n }, [])\n\n const handleSelectAll = useCallback((selected: boolean, visibleItems: HolidayItem[]) => {\n setSelectedUuids(prev => {\n const next = new Set(prev)\n for (const item of visibleItems) {\n if (selected) next.add(item.uuid)\n else next.delete(item.uuid)\n }\n return next\n })\n }, [])\n\n return { selectedUuids, handleSelectionChange, handleSelectAll }\n}\n\nfunction seedPolicyCache(\n queryClient: ReturnType<typeof useQueryClient>,\n companyId: string,\n policy: HolidayPayPolicy | undefined,\n) {\n if (!policy) return\n queryClient.setQueryData<HolidayPayPoliciesGetQueryData>(\n queryKeyHolidayPayPoliciesGet(companyId, {}),\n prev =>\n prev\n ? { ...prev, holidayPayPolicy: policy }\n : (undefined as unknown as HolidayPayPoliciesGetQueryData),\n )\n}\n\nfunction CreateRoot({ companyId }: RootProps) {\n useI18n('Company.TimeOff.HolidayPolicy')\n const { t } = useTranslation('Company.TimeOff.HolidayPolicy')\n const { onEvent, baseSubmitHandler } = useBase()\n const { locale } = useLocale()\n const queryClient = useQueryClient()\n\n const holidays = useMemo(() => getDefaultHolidayItems(t, undefined, locale), [t, locale])\n const allKeys = useMemo(() => new Set(FEDERAL_HOLIDAY_KEYS), [])\n const { selectedUuids, handleSelectionChange, handleSelectAll } = useHolidaySelection(allKeys)\n\n const { mutateAsync: createPolicy, isPending } = useHolidayPayPoliciesCreateMutation()\n\n const handleContinue = useCallback(async () => {\n await baseSubmitHandler({}, async () => {\n const response = await createPolicy({\n request: {\n companyUuid: companyId,\n holidayPayPolicyRequest: {\n federalHolidays: buildFederalHolidaysPayload(selectedUuids),\n },\n },\n })\n // Seed the GET cache so the next mount of SelectEmployeesHoliday's\n // StandaloneLoader (in addEmployeesHoliday state) reads the freshly\n // created policy instead of a stale `{ holidayPayPolicy: undefined }`\n // left over from PolicyList's pre-create GET.\n seedPolicyCache(queryClient, companyId, response.holidayPayPolicy)\n await invalidateAllHolidayPayPoliciesGet(queryClient)\n onEvent(componentEvents.TIME_OFF_HOLIDAY_SELECTION_DONE)\n })\n }, [baseSubmitHandler, createPolicy, companyId, selectedUuids, queryClient, onEvent])\n\n const handleBack = useCallback(() => {\n onEvent(componentEvents.CANCEL)\n }, [onEvent])\n\n return (\n <HolidaySelectionFormPresentation\n holidays={holidays}\n selectedHolidayUuids={selectedUuids}\n onSelectionChange={handleSelectionChange}\n onSelectAll={handleSelectAll}\n onContinue={handleContinue}\n onBack={handleBack}\n isPending={isPending}\n />\n )\n}\n\nfunction EditRoot({ companyId }: RootProps) {\n useI18n('Company.TimeOff.HolidayPolicy')\n const { t } = useTranslation('Company.TimeOff.HolidayPolicy')\n const { onEvent, baseSubmitHandler } = useBase()\n const { locale } = useLocale()\n const queryClient = useQueryClient()\n\n const { data } = useHolidayPayPoliciesGetSuspense({ companyUuid: companyId })\n const policy = data.holidayPayPolicy!\n\n const holidays = useMemo(() => getDefaultHolidayItems(t, undefined, locale), [t, locale])\n\n const initialSelected = useMemo(() => {\n const next = new Set<string>()\n const federal = policy.federalHolidays\n for (const key of FEDERAL_HOLIDAY_KEYS) {\n const entry = federal[key as keyof typeof federal]\n if (entry?.selected === true) {\n next.add(key)\n }\n }\n return next\n }, [policy.federalHolidays])\n\n const { selectedUuids, handleSelectionChange, handleSelectAll } =\n useHolidaySelection(initialSelected)\n\n const { mutateAsync: updatePolicy, isPending } = useHolidayPayPoliciesUpdateMutation()\n\n const handleContinue = useCallback(async () => {\n await baseSubmitHandler({}, async () => {\n const response = await updatePolicy({\n request: {\n companyUuid: companyId,\n requestBody: {\n version: policy.version!,\n federalHolidays: buildFederalHolidaysPayload(selectedUuids),\n },\n },\n })\n seedPolicyCache(queryClient, companyId, response.holidayPayPolicy)\n await invalidateAllHolidayPayPoliciesGet(queryClient)\n onEvent(componentEvents.TIME_OFF_HOLIDAY_SELECTION_EDIT_DONE)\n })\n }, [\n baseSubmitHandler,\n updatePolicy,\n companyId,\n policy.version,\n selectedUuids,\n queryClient,\n onEvent,\n ])\n\n const handleBack = useCallback(() => {\n onEvent(componentEvents.CANCEL)\n }, [onEvent])\n\n return (\n <HolidaySelectionFormPresentation\n holidays={holidays}\n selectedHolidayUuids={selectedUuids}\n onSelectionChange={handleSelectionChange}\n onSelectAll={handleSelectAll}\n onContinue={handleContinue}\n onBack={handleBack}\n isPending={isPending}\n />\n )\n}\n"],"names":["HolidaySelectionForm","props","BaseComponent","jsx","EditRoot","CreateRoot","useHolidaySelection","initialKeys","selectedUuids","setSelectedUuids","useState","handleSelectionChange","useCallback","item","selected","prev","next","handleSelectAll","visibleItems","seedPolicyCache","queryClient","companyId","policy","queryKeyHolidayPayPoliciesGet","useI18n","t","useTranslation","onEvent","baseSubmitHandler","useBase","locale","useLocale","useQueryClient","holidays","useMemo","getDefaultHolidayItems","allKeys","FEDERAL_HOLIDAY_KEYS","createPolicy","isPending","useHolidayPayPoliciesCreateMutation","handleContinue","response","buildFederalHolidaysPayload","invalidateAllHolidayPayPoliciesGet","componentEvents","handleBack","HolidaySelectionFormPresentation","data","useHolidayPayPoliciesGetSuspense","initialSelected","federal","key","updatePolicy","useHolidayPayPoliciesUpdateMutation"],"mappings":"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"}
@@ -1,2 +1,3 @@
1
1
  import { HolidaySelectionFormPresentationProps } from './HolidaySelectionFormTypes';
2
+ /** @internal */
2
3
  export declare function HolidaySelectionFormPresentation(props: HolidaySelectionFormPresentationProps): import("react").JSX.Element;
@@ -1 +1 @@
1
- {"version":3,"file":"HolidaySelectionFormPresentation.js","sources":["../../../../src/components/TimeOff/HolidaySelectionForm/HolidaySelectionFormPresentation.tsx"],"sourcesContent":["import { useMemo } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport type {\n HolidayItem,\n HolidaySelectionFormPresentationProps,\n} from './HolidaySelectionFormTypes'\nimport { DataView, Flex, ActionsLayout, useDataView } from '@/components/Common'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { useI18n } from '@/i18n'\n\nexport function HolidaySelectionFormPresentation(props: HolidaySelectionFormPresentationProps) {\n useI18n('Company.TimeOff.HolidayPolicy')\n const { t } = useTranslation('Company.TimeOff.HolidayPolicy')\n const { Heading, Text, Button } = useComponentContext()\n\n const { holidays } = props\n const isViewMode = props.mode === 'view'\n\n const columns = useMemo(\n () => [\n {\n key: 'name' as keyof HolidayItem,\n title: t('tableHeaders.holidayName'),\n render: (item: HolidayItem) => item.name,\n },\n {\n key: 'observedDate' as keyof HolidayItem,\n title: t('tableHeaders.observedDate'),\n render: (item: HolidayItem) => item.observedDate,\n },\n {\n key: 'nextObservation' as keyof HolidayItem,\n title: t('tableHeaders.nextObservation'),\n render: (item: HolidayItem) => item.nextObservation,\n },\n ],\n [t],\n )\n\n const selectionProps = !isViewMode\n ? {\n selectionMode: 'multiple' as const,\n onSelect: props.onSelectionChange,\n onSelectAll: props.onSelectAll,\n getIsItemSelected: (item: HolidayItem) => props.selectedHolidayUuids.has(item.uuid),\n }\n : {}\n\n const dataViewProps = useDataView<HolidayItem>({\n data: holidays,\n columns,\n ...selectionProps,\n })\n\n return (\n <Flex flexDirection=\"column\" gap={32}>\n {!isViewMode && (\n <Flex flexDirection=\"column\" gap={4}>\n <Heading as=\"h2\">{t('title')}</Heading>\n <Text variant=\"supporting\">{t('description')}</Text>\n </Flex>\n )}\n\n <DataView label={t('tableLabel')} {...dataViewProps} />\n\n {!isViewMode && (\n <ActionsLayout>\n <Button variant=\"secondary\" onClick={props.onBack} isDisabled={props.isPending}>\n {t('backCta')}\n </Button>\n <Button variant=\"primary\" onClick={props.onContinue} isLoading={props.isPending}>\n {t('continueCta')}\n </Button>\n </ActionsLayout>\n )}\n </Flex>\n )\n}\n"],"names":["HolidaySelectionFormPresentation","props","useI18n","useTranslation","Heading","Text","Button","useComponentContext","holidays","isViewMode","columns","useMemo","item","selectionProps","dataViewProps","useDataView","jsxs","Flex","jsx","DataView","ActionsLayout"],"mappings":";;;;;;;;;AAUO,SAASA,EAAiCC,GAA8C;AAC7F,EAAAC,EAAQ,+BAA+B;AACvC,QAAM,EAAE,EAAA,IAAMC,EAAe,+BAA+B,GACtD,EAAE,SAAAC,GAAS,MAAAC,GAAM,QAAAC,EAAA,IAAWC,EAAA,GAE5B,EAAE,UAAAC,MAAaP,GACfQ,IAAaR,EAAM,SAAS,QAE5BS,IAAUC;AAAA,IACd,MAAM;AAAA,MACJ;AAAA,QACE,KAAK;AAAA,QACL,OAAO,EAAE,0BAA0B;AAAA,QACnC,QAAQ,CAACC,MAAsBA,EAAK;AAAA,MAAA;AAAA,MAEtC;AAAA,QACE,KAAK;AAAA,QACL,OAAO,EAAE,2BAA2B;AAAA,QACpC,QAAQ,CAACA,MAAsBA,EAAK;AAAA,MAAA;AAAA,MAEtC;AAAA,QACE,KAAK;AAAA,QACL,OAAO,EAAE,8BAA8B;AAAA,QACvC,QAAQ,CAACA,MAAsBA,EAAK;AAAA,MAAA;AAAA,IACtC;AAAA,IAEF,CAAC,CAAC;AAAA,EAAA,GAGEC,IAAkBJ,IAOpB,CAAA,IANA;AAAA,IACE,eAAe;AAAA,IACf,UAAUR,EAAM;AAAA,IAChB,aAAaA,EAAM;AAAA,IACnB,mBAAmB,CAACW,MAAsBX,EAAM,qBAAqB,IAAIW,EAAK,IAAI;AAAA,EAAA,GAIlFE,IAAgBC,EAAyB;AAAA,IAC7C,MAAMP;AAAA,IACN,SAAAE;AAAA,IACA,GAAGG;AAAA,EAAA,CACJ;AAED,SACE,gBAAAG,EAACC,GAAA,EAAK,eAAc,UAAS,KAAK,IAC/B,UAAA;AAAA,IAAA,CAACR,KACA,gBAAAO,EAACC,GAAA,EAAK,eAAc,UAAS,KAAK,GAChC,UAAA;AAAA,MAAA,gBAAAC,EAACd,GAAA,EAAQ,IAAG,MAAM,UAAA,EAAE,OAAO,GAAE;AAAA,wBAC5BC,GAAA,EAAK,SAAQ,cAAc,UAAA,EAAE,aAAa,EAAA,CAAE;AAAA,IAAA,GAC/C;AAAA,sBAGDc,GAAA,EAAS,OAAO,EAAE,YAAY,GAAI,GAAGL,GAAe;AAAA,IAEpD,CAACL,KACA,gBAAAO,EAACI,GAAA,EACC,UAAA;AAAA,MAAA,gBAAAF,EAACZ,GAAA,EAAO,SAAQ,aAAY,SAASL,EAAM,QAAQ,YAAYA,EAAM,WAClE,UAAA,EAAE,SAAS,EAAA,CACd;AAAA,MACA,gBAAAiB,EAACZ,GAAA,EAAO,SAAQ,WAAU,SAASL,EAAM,YAAY,WAAWA,EAAM,WACnE,UAAA,EAAE,aAAa,EAAA,CAClB;AAAA,IAAA,EAAA,CACF;AAAA,EAAA,GAEJ;AAEJ;"}
1
+ {"version":3,"file":"HolidaySelectionFormPresentation.js","sources":["../../../../src/components/TimeOff/HolidaySelectionForm/HolidaySelectionFormPresentation.tsx"],"sourcesContent":["import { useMemo } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport type {\n HolidayItem,\n HolidaySelectionFormPresentationProps,\n} from './HolidaySelectionFormTypes'\nimport { DataView, Flex, ActionsLayout, useDataView } from '@/components/Common'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { useI18n } from '@/i18n'\n\n/** @internal */\nexport function HolidaySelectionFormPresentation(props: HolidaySelectionFormPresentationProps) {\n useI18n('Company.TimeOff.HolidayPolicy')\n const { t } = useTranslation('Company.TimeOff.HolidayPolicy')\n const { Heading, Text, Button } = useComponentContext()\n\n const { holidays } = props\n const isViewMode = props.mode === 'view'\n\n const columns = useMemo(\n () => [\n {\n key: 'name' as keyof HolidayItem,\n title: t('tableHeaders.holidayName'),\n render: (item: HolidayItem) => item.name,\n },\n {\n key: 'observedDate' as keyof HolidayItem,\n title: t('tableHeaders.observedDate'),\n render: (item: HolidayItem) => item.observedDate,\n },\n {\n key: 'nextObservation' as keyof HolidayItem,\n title: t('tableHeaders.nextObservation'),\n render: (item: HolidayItem) => item.nextObservation,\n },\n ],\n [t],\n )\n\n const selectionProps = !isViewMode\n ? {\n selectionMode: 'multiple' as const,\n onSelect: props.onSelectionChange,\n onSelectAll: props.onSelectAll,\n getIsItemSelected: (item: HolidayItem) => props.selectedHolidayUuids.has(item.uuid),\n }\n : {}\n\n const dataViewProps = useDataView<HolidayItem>({\n data: holidays,\n columns,\n ...selectionProps,\n })\n\n return (\n <Flex flexDirection=\"column\" gap={32}>\n {!isViewMode && (\n <Flex flexDirection=\"column\" gap={4}>\n <Heading as=\"h2\">{t('title')}</Heading>\n <Text variant=\"supporting\">{t('description')}</Text>\n </Flex>\n )}\n\n <DataView label={t('tableLabel')} {...dataViewProps} />\n\n {!isViewMode && (\n <ActionsLayout>\n <Button variant=\"secondary\" onClick={props.onBack} isDisabled={props.isPending}>\n {t('backCta')}\n </Button>\n <Button variant=\"primary\" onClick={props.onContinue} isLoading={props.isPending}>\n {t('continueCta')}\n </Button>\n </ActionsLayout>\n )}\n </Flex>\n )\n}\n"],"names":["HolidaySelectionFormPresentation","props","useI18n","useTranslation","Heading","Text","Button","useComponentContext","holidays","isViewMode","columns","useMemo","item","selectionProps","dataViewProps","useDataView","jsxs","Flex","jsx","DataView","ActionsLayout"],"mappings":";;;;;;;;;AAWO,SAASA,EAAiCC,GAA8C;AAC7F,EAAAC,EAAQ,+BAA+B;AACvC,QAAM,EAAE,EAAA,IAAMC,EAAe,+BAA+B,GACtD,EAAE,SAAAC,GAAS,MAAAC,GAAM,QAAAC,EAAA,IAAWC,EAAA,GAE5B,EAAE,UAAAC,MAAaP,GACfQ,IAAaR,EAAM,SAAS,QAE5BS,IAAUC;AAAA,IACd,MAAM;AAAA,MACJ;AAAA,QACE,KAAK;AAAA,QACL,OAAO,EAAE,0BAA0B;AAAA,QACnC,QAAQ,CAACC,MAAsBA,EAAK;AAAA,MAAA;AAAA,MAEtC;AAAA,QACE,KAAK;AAAA,QACL,OAAO,EAAE,2BAA2B;AAAA,QACpC,QAAQ,CAACA,MAAsBA,EAAK;AAAA,MAAA;AAAA,MAEtC;AAAA,QACE,KAAK;AAAA,QACL,OAAO,EAAE,8BAA8B;AAAA,QACvC,QAAQ,CAACA,MAAsBA,EAAK;AAAA,MAAA;AAAA,IACtC;AAAA,IAEF,CAAC,CAAC;AAAA,EAAA,GAGEC,IAAkBJ,IAOpB,CAAA,IANA;AAAA,IACE,eAAe;AAAA,IACf,UAAUR,EAAM;AAAA,IAChB,aAAaA,EAAM;AAAA,IACnB,mBAAmB,CAACW,MAAsBX,EAAM,qBAAqB,IAAIW,EAAK,IAAI;AAAA,EAAA,GAIlFE,IAAgBC,EAAyB;AAAA,IAC7C,MAAMP;AAAA,IACN,SAAAE;AAAA,IACA,GAAGG;AAAA,EAAA,CACJ;AAED,SACE,gBAAAG,EAACC,GAAA,EAAK,eAAc,UAAS,KAAK,IAC/B,UAAA;AAAA,IAAA,CAACR,KACA,gBAAAO,EAACC,GAAA,EAAK,eAAc,UAAS,KAAK,GAChC,UAAA;AAAA,MAAA,gBAAAC,EAACd,GAAA,EAAQ,IAAG,MAAM,UAAA,EAAE,OAAO,GAAE;AAAA,wBAC5BC,GAAA,EAAK,SAAQ,cAAc,UAAA,EAAE,aAAa,EAAA,CAAE;AAAA,IAAA,GAC/C;AAAA,sBAGDc,GAAA,EAAS,OAAO,EAAE,YAAY,GAAI,GAAGL,GAAe;AAAA,IAEpD,CAACL,KACA,gBAAAO,EAACI,GAAA,EACC,UAAA;AAAA,MAAA,gBAAAF,EAACZ,GAAA,EAAO,SAAQ,aAAY,SAASL,EAAM,QAAQ,YAAYA,EAAM,WAClE,UAAA,EAAE,SAAS,EAAA,CACd;AAAA,MACA,gBAAAiB,EAACZ,GAAA,EAAO,SAAQ,WAAU,SAASL,EAAM,YAAY,WAAWA,EAAM,WACnE,UAAA,EAAE,aAAa,EAAA,CAClB;AAAA,IAAA,EAAA,CACF;AAAA,EAAA,GAEJ;AAEJ;"}
@@ -1,7 +1,16 @@
1
+ /**
2
+ * A single federal holiday row shown in the holiday selection table.
3
+ *
4
+ * @public
5
+ */
1
6
  export interface HolidayItem {
7
+ /** Stable identifier for the holiday (the federal holiday key). */
2
8
  uuid: string;
9
+ /** Localized display name of the holiday. */
3
10
  name: string;
11
+ /** Localized text describing when the holiday is observed. */
4
12
  observedDate: string;
13
+ /** Localized date string for the next time this holiday will be observed. */
5
14
  nextObservation: string;
6
15
  }
7
16
  interface HolidaySelectionFormBaseProps {
@@ -24,5 +33,6 @@ interface HolidaySelectionFormViewModeProps extends HolidaySelectionFormBaseProp
24
33
  onContinue?: never;
25
34
  onBack?: never;
26
35
  }
36
+ /** @internal */
27
37
  export type HolidaySelectionFormPresentationProps = HolidaySelectionFormSelectModeProps | HolidaySelectionFormViewModeProps;
28
38
  export {};
@@ -1,5 +1,30 @@
1
1
  import { BaseComponentInterface } from '../../Base';
2
+ /**
3
+ * Props for the {@link PolicyList} component.
4
+ *
5
+ * @public
6
+ */
2
7
  export interface PolicyListProps extends BaseComponentInterface<'Company.TimeOff.TimeOffPolicies'> {
8
+ /** The associated company identifier. */
3
9
  companyId: string;
4
10
  }
11
+ /**
12
+ * Displays all active time off policies (sick, vacation, and holiday) for a company.
13
+ *
14
+ * Each row shows the policy name and the enrolled-employee count. Incomplete policies surface a
15
+ * finish-setup action. Sick and vacation policies are deactivated via the time-off policies API;
16
+ * the holiday pay policy (if one exists) is merged into the same list and is deleted via the
17
+ * holiday pay policy API. Both flows go through a confirmation dialog and show a success alert.
18
+ *
19
+ * @remarks
20
+ * | Event | Description | Data |
21
+ * | ----- | ----------- | ---- |
22
+ * | `timeOff/createPolicy` | The user clicked the create-policy action. | — |
23
+ * | `timeOff/viewPolicy` | The user opened an existing policy or clicked finish-setup on an incomplete one. | `{ policyId: string, policyType: string }` |
24
+ * | `timeOff/deletePolicy/done` | A policy was successfully deleted. | `{ policyId: string }` |
25
+ *
26
+ * @param props - {@link PolicyListProps}
27
+ * @returns The rendered policy list.
28
+ * @public
29
+ */
5
30
  export declare function PolicyList({ FallbackComponent, ...props }: PolicyListProps): import("react").JSX.Element;
@@ -1 +1 @@
1
- {"version":3,"file":"PolicyList.js","sources":["../../../../src/components/TimeOff/PolicyList/PolicyList.tsx"],"sourcesContent":["import { useState } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport { useQueryClient } from '@tanstack/react-query'\nimport {\n useTimeOffPoliciesGetAllSuspense,\n invalidateAllTimeOffPoliciesGetAll,\n} from '@gusto/embedded-api-v-2025-11-15/react-query/timeOffPoliciesGetAll'\nimport { useTimeOffPoliciesDeactivateMutation } from '@gusto/embedded-api-v-2025-11-15/react-query/timeOffPoliciesDeactivate'\nimport { useEmployeesListSuspense } from '@gusto/embedded-api-v-2025-11-15/react-query/employeesList'\nimport {\n useHolidayPayPoliciesGet,\n invalidateAllHolidayPayPoliciesGet,\n} from '@gusto/embedded-api-v-2025-11-15/react-query/holidayPayPoliciesGet'\nimport { useHolidayPayPoliciesDeleteMutation } from '@gusto/embedded-api-v-2025-11-15/react-query/holidayPayPoliciesDelete'\nimport type { TimeOffPolicy } from '@gusto/embedded-api-v-2025-11-15/models/components/timeoffpolicy'\nimport { UnprocessableEntityError } from '@gusto/embedded-api-v-2025-11-15/models/errors/unprocessableentityerror'\nimport { PolicyListPresentation } from './PolicyListPresentation'\nimport type { PolicyListItem } from './PolicyListTypes'\nimport { isListedTimeOffPolicyType } from '@/components/TimeOff/TimeOffFlow/timeOffPolicyTypes'\nimport { BaseBoundaries, BaseLayout, type BaseComponentInterface } from '@/components/Base'\nimport { useBaseSubmit } from '@/components/Base/useBaseSubmit'\nimport { SDKInternalError } from '@/types/sdkError'\nimport { composeErrorHandler } from '@/partner-hook-utils/composeErrorHandler'\nimport { componentEvents } from '@/shared/constants'\nimport { useI18n } from '@/i18n'\n\nexport interface PolicyListProps extends BaseComponentInterface<'Company.TimeOff.TimeOffPolicies'> {\n companyId: string\n}\n\nexport function PolicyList({ FallbackComponent, ...props }: PolicyListProps) {\n return (\n <BaseBoundaries\n componentName=\"Company.TimeOff.TimeOffPolicies\"\n FallbackComponent={FallbackComponent}\n >\n <Root {...props} />\n </BaseBoundaries>\n )\n}\n\nfunction Root({ companyId, onEvent }: PolicyListProps) {\n useI18n('Company.TimeOff.TimeOffPolicies')\n const { t } = useTranslation('Company.TimeOff.TimeOffPolicies')\n const queryClient = useQueryClient()\n\n const {\n baseSubmitHandler,\n error: submitError,\n setError: setSubmitError,\n } = useBaseSubmit('Company.TimeOff.TimeOffPolicies')\n\n const [deleteSuccessAlert, setDeleteSuccessAlert] = useState<string | null>(null)\n const [isDeletingPolicyId, setIsDeletingPolicyId] = useState<string | null>(null)\n\n const { data: policiesData } = useTimeOffPoliciesGetAllSuspense({\n companyUuid: companyId,\n })\n const timeOffPolicies = (policiesData.timeOffPolicies ?? []).filter(\n policy => policy.isActive && isListedTimeOffPolicyType(policy.policyType),\n )\n\n // Holiday pay policy is auxiliary to the main time-off list; never crash the\n // boundary on its failure. composeErrorHandler below surfaces the error as\n // an inline alert via BaseLayout when it isn't an expected 204/404.\n const holidayQuery = useHolidayPayPoliciesGet(\n { companyUuid: companyId },\n {\n throwOnError: () => false,\n },\n )\n const holidayPayPolicy = holidayQuery.data?.holidayPayPolicy\n\n const { data: employeesData } = useEmployeesListSuspense({\n companyId,\n terminated: false,\n })\n const totalActiveEmployees = employeesData.showEmployees?.length ?? 0\n\n const deactivatePolicyMutation = useTimeOffPoliciesDeactivateMutation()\n const deleteHolidayMutation = useHolidayPayPoliciesDeleteMutation()\n\n const errorHandling = composeErrorHandler([holidayQuery], { submitError, setSubmitError })\n const isPending = deactivatePolicyMutation.isPending || deleteHolidayMutation.isPending\n\n const getEnrolledDisplay = (enrolledCount: number) => {\n if (enrolledCount > 0 && enrolledCount === totalActiveEmployees) {\n return t('allEmployeesLabel')\n } else if (enrolledCount > 0) {\n return t('employeeCount', { count: enrolledCount })\n }\n return t('enrolledDash')\n }\n\n const policies: PolicyListItem[] = timeOffPolicies\n .map((policy: TimeOffPolicy) => ({\n uuid: policy.uuid,\n name: policy.name,\n policyType: policy.policyType,\n isComplete: policy.complete ?? false,\n enrolledDisplay: getEnrolledDisplay(policy.employees.length),\n }))\n .sort((a, b) => a.name.localeCompare(b.name))\n\n if (holidayPayPolicy) {\n policies.push({\n uuid: holidayPayPolicy.companyUuid,\n name: t('holidayPayPolicy'),\n policyType: 'holiday',\n isComplete: true,\n enrolledDisplay: getEnrolledDisplay(holidayPayPolicy.employees.length),\n isHoliday: true,\n })\n }\n\n const handleCreatePolicy = () => {\n onEvent(componentEvents.TIME_OFF_CREATE_POLICY)\n }\n\n const handleEditPolicy = (policy: PolicyListItem) => {\n onEvent(componentEvents.TIME_OFF_VIEW_POLICY, {\n policyId: policy.uuid,\n policyType: policy.policyType,\n })\n }\n\n const handleFinishSetup = (policy: PolicyListItem) => {\n onEvent(componentEvents.TIME_OFF_VIEW_POLICY, {\n policyId: policy.uuid,\n policyType: policy.policyType,\n })\n }\n\n const handleDeletePolicy = async (policy: PolicyListItem): Promise<boolean> => {\n let success = false\n setIsDeletingPolicyId(policy.uuid)\n await baseSubmitHandler({}, async () => {\n if (policy.isHoliday) {\n await deleteHolidayMutation.mutateAsync({\n request: { companyUuid: companyId },\n })\n await invalidateAllHolidayPayPoliciesGet(queryClient)\n setDeleteSuccessAlert(t('flash.holidayDeleted'))\n } else {\n try {\n await deactivatePolicyMutation.mutateAsync({\n request: { timeOffPolicyUuid: policy.uuid },\n })\n } catch (err) {\n if (err instanceof UnprocessableEntityError) {\n const hasPendingRequests = err.errors.some(\n e =>\n e.message?.toLowerCase().includes('pending') ||\n e.message?.toLowerCase().includes('approved'),\n )\n if (hasPendingRequests) {\n throw new SDKInternalError(\n t('errors.pendingRequestsBlockDeletion', { name: policy.name }),\n 'api_error',\n )\n }\n const messages = err.errors.map(e => e.message).filter(Boolean)\n throw new SDKInternalError(messages.join('. ') || t('errors.deleteFailed'), 'api_error')\n }\n throw err\n }\n await invalidateAllTimeOffPoliciesGetAll(queryClient)\n setDeleteSuccessAlert(t('flash.policyDeleted', { name: policy.name }))\n }\n onEvent(componentEvents.TIME_OFF_DELETE_POLICY_DONE, { policyId: policy.uuid })\n success = true\n })\n setIsDeletingPolicyId(null)\n return success\n }\n\n return (\n <BaseLayout error={errorHandling.errors}>\n <PolicyListPresentation\n policies={policies}\n onCreatePolicy={handleCreatePolicy}\n onEditPolicy={handleEditPolicy}\n onFinishSetup={handleFinishSetup}\n onDeletePolicy={handleDeletePolicy}\n deleteSuccessAlert={deleteSuccessAlert}\n onDismissDeleteAlert={() => {\n setDeleteSuccessAlert(null)\n }}\n isDeletingPolicyId={isDeletingPolicyId}\n isPending={isPending}\n />\n </BaseLayout>\n )\n}\n"],"names":["PolicyList","FallbackComponent","props","jsx","BaseBoundaries","Root","companyId","onEvent","useI18n","t","useTranslation","queryClient","useQueryClient","baseSubmitHandler","submitError","setSubmitError","useBaseSubmit","deleteSuccessAlert","setDeleteSuccessAlert","useState","isDeletingPolicyId","setIsDeletingPolicyId","policiesData","useTimeOffPoliciesGetAllSuspense","timeOffPolicies","policy","isListedTimeOffPolicyType","holidayQuery","useHolidayPayPoliciesGet","holidayPayPolicy","employeesData","useEmployeesListSuspense","totalActiveEmployees","deactivatePolicyMutation","useTimeOffPoliciesDeactivateMutation","deleteHolidayMutation","useHolidayPayPoliciesDeleteMutation","errorHandling","composeErrorHandler","isPending","getEnrolledDisplay","enrolledCount","policies","a","b","handleCreatePolicy","componentEvents","handleEditPolicy","handleFinishSetup","handleDeletePolicy","success","invalidateAllHolidayPayPoliciesGet","err","UnprocessableEntityError","e","SDKInternalError","messages","invalidateAllTimeOffPoliciesGetAll","BaseLayout","PolicyListPresentation"],"mappings":"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"}
1
+ {"version":3,"file":"PolicyList.js","sources":["../../../../src/components/TimeOff/PolicyList/PolicyList.tsx"],"sourcesContent":["import { useState } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport { useQueryClient } from '@tanstack/react-query'\nimport {\n useTimeOffPoliciesGetAllSuspense,\n invalidateAllTimeOffPoliciesGetAll,\n} from '@gusto/embedded-api-v-2025-11-15/react-query/timeOffPoliciesGetAll'\nimport { useTimeOffPoliciesDeactivateMutation } from '@gusto/embedded-api-v-2025-11-15/react-query/timeOffPoliciesDeactivate'\nimport { useEmployeesListSuspense } from '@gusto/embedded-api-v-2025-11-15/react-query/employeesList'\nimport {\n useHolidayPayPoliciesGet,\n invalidateAllHolidayPayPoliciesGet,\n} from '@gusto/embedded-api-v-2025-11-15/react-query/holidayPayPoliciesGet'\nimport { useHolidayPayPoliciesDeleteMutation } from '@gusto/embedded-api-v-2025-11-15/react-query/holidayPayPoliciesDelete'\nimport type { TimeOffPolicy } from '@gusto/embedded-api-v-2025-11-15/models/components/timeoffpolicy'\nimport { UnprocessableEntityError } from '@gusto/embedded-api-v-2025-11-15/models/errors/unprocessableentityerror'\nimport { PolicyListPresentation } from './PolicyListPresentation'\nimport type { PolicyListItem } from './PolicyListTypes'\nimport { isListedTimeOffPolicyType } from '@/components/TimeOff/TimeOffFlow/timeOffPolicyTypes'\nimport { BaseBoundaries, BaseLayout, type BaseComponentInterface } from '@/components/Base'\nimport { useBaseSubmit } from '@/components/Base/useBaseSubmit'\nimport { SDKInternalError } from '@/types/sdkError'\nimport { composeErrorHandler } from '@/partner-hook-utils/composeErrorHandler'\nimport { componentEvents } from '@/shared/constants'\nimport { useI18n } from '@/i18n'\n\n/**\n * Props for the {@link PolicyList} component.\n *\n * @public\n */\nexport interface PolicyListProps extends BaseComponentInterface<'Company.TimeOff.TimeOffPolicies'> {\n /** The associated company identifier. */\n companyId: string\n}\n\n/**\n * Displays all active time off policies (sick, vacation, and holiday) for a company.\n *\n * Each row shows the policy name and the enrolled-employee count. Incomplete policies surface a\n * finish-setup action. Sick and vacation policies are deactivated via the time-off policies API;\n * the holiday pay policy (if one exists) is merged into the same list and is deleted via the\n * holiday pay policy API. Both flows go through a confirmation dialog and show a success alert.\n *\n * @remarks\n * | Event | Description | Data |\n * | ----- | ----------- | ---- |\n * | `timeOff/createPolicy` | The user clicked the create-policy action. | — |\n * | `timeOff/viewPolicy` | The user opened an existing policy or clicked finish-setup on an incomplete one. | `{ policyId: string, policyType: string }` |\n * | `timeOff/deletePolicy/done` | A policy was successfully deleted. | `{ policyId: string }` |\n *\n * @param props - {@link PolicyListProps}\n * @returns The rendered policy list.\n * @public\n */\nexport function PolicyList({ FallbackComponent, ...props }: PolicyListProps) {\n return (\n <BaseBoundaries\n componentName=\"Company.TimeOff.TimeOffPolicies\"\n FallbackComponent={FallbackComponent}\n >\n <Root {...props} />\n </BaseBoundaries>\n )\n}\n\nfunction Root({ companyId, onEvent }: PolicyListProps) {\n useI18n('Company.TimeOff.TimeOffPolicies')\n const { t } = useTranslation('Company.TimeOff.TimeOffPolicies')\n const queryClient = useQueryClient()\n\n const {\n baseSubmitHandler,\n error: submitError,\n setError: setSubmitError,\n } = useBaseSubmit('Company.TimeOff.TimeOffPolicies')\n\n const [deleteSuccessAlert, setDeleteSuccessAlert] = useState<string | null>(null)\n const [isDeletingPolicyId, setIsDeletingPolicyId] = useState<string | null>(null)\n\n const { data: policiesData } = useTimeOffPoliciesGetAllSuspense({\n companyUuid: companyId,\n })\n const timeOffPolicies = (policiesData.timeOffPolicies ?? []).filter(\n policy => policy.isActive && isListedTimeOffPolicyType(policy.policyType),\n )\n\n // Holiday pay policy is auxiliary to the main time-off list; never crash the\n // boundary on its failure. composeErrorHandler below surfaces the error as\n // an inline alert via BaseLayout when it isn't an expected 204/404.\n const holidayQuery = useHolidayPayPoliciesGet(\n { companyUuid: companyId },\n {\n throwOnError: () => false,\n },\n )\n const holidayPayPolicy = holidayQuery.data?.holidayPayPolicy\n\n const { data: employeesData } = useEmployeesListSuspense({\n companyId,\n terminated: false,\n })\n const totalActiveEmployees = employeesData.showEmployees?.length ?? 0\n\n const deactivatePolicyMutation = useTimeOffPoliciesDeactivateMutation()\n const deleteHolidayMutation = useHolidayPayPoliciesDeleteMutation()\n\n const errorHandling = composeErrorHandler([holidayQuery], { submitError, setSubmitError })\n const isPending = deactivatePolicyMutation.isPending || deleteHolidayMutation.isPending\n\n const getEnrolledDisplay = (enrolledCount: number) => {\n if (enrolledCount > 0 && enrolledCount === totalActiveEmployees) {\n return t('allEmployeesLabel')\n } else if (enrolledCount > 0) {\n return t('employeeCount', { count: enrolledCount })\n }\n return t('enrolledDash')\n }\n\n const policies: PolicyListItem[] = timeOffPolicies\n .map((policy: TimeOffPolicy) => ({\n uuid: policy.uuid,\n name: policy.name,\n policyType: policy.policyType,\n isComplete: policy.complete ?? false,\n enrolledDisplay: getEnrolledDisplay(policy.employees.length),\n }))\n .sort((a, b) => a.name.localeCompare(b.name))\n\n if (holidayPayPolicy) {\n policies.push({\n uuid: holidayPayPolicy.companyUuid,\n name: t('holidayPayPolicy'),\n policyType: 'holiday',\n isComplete: true,\n enrolledDisplay: getEnrolledDisplay(holidayPayPolicy.employees.length),\n isHoliday: true,\n })\n }\n\n const handleCreatePolicy = () => {\n onEvent(componentEvents.TIME_OFF_CREATE_POLICY)\n }\n\n const handleEditPolicy = (policy: PolicyListItem) => {\n onEvent(componentEvents.TIME_OFF_VIEW_POLICY, {\n policyId: policy.uuid,\n policyType: policy.policyType,\n })\n }\n\n const handleFinishSetup = (policy: PolicyListItem) => {\n onEvent(componentEvents.TIME_OFF_VIEW_POLICY, {\n policyId: policy.uuid,\n policyType: policy.policyType,\n })\n }\n\n const handleDeletePolicy = async (policy: PolicyListItem): Promise<boolean> => {\n let success = false\n setIsDeletingPolicyId(policy.uuid)\n await baseSubmitHandler({}, async () => {\n if (policy.isHoliday) {\n await deleteHolidayMutation.mutateAsync({\n request: { companyUuid: companyId },\n })\n await invalidateAllHolidayPayPoliciesGet(queryClient)\n setDeleteSuccessAlert(t('flash.holidayDeleted'))\n } else {\n try {\n await deactivatePolicyMutation.mutateAsync({\n request: { timeOffPolicyUuid: policy.uuid },\n })\n } catch (err) {\n if (err instanceof UnprocessableEntityError) {\n const hasPendingRequests = err.errors.some(\n e =>\n e.message?.toLowerCase().includes('pending') ||\n e.message?.toLowerCase().includes('approved'),\n )\n if (hasPendingRequests) {\n throw new SDKInternalError(\n t('errors.pendingRequestsBlockDeletion', { name: policy.name }),\n 'api_error',\n )\n }\n const messages = err.errors.map(e => e.message).filter(Boolean)\n throw new SDKInternalError(messages.join('. ') || t('errors.deleteFailed'), 'api_error')\n }\n throw err\n }\n await invalidateAllTimeOffPoliciesGetAll(queryClient)\n setDeleteSuccessAlert(t('flash.policyDeleted', { name: policy.name }))\n }\n onEvent(componentEvents.TIME_OFF_DELETE_POLICY_DONE, { policyId: policy.uuid })\n success = true\n })\n setIsDeletingPolicyId(null)\n return success\n }\n\n return (\n <BaseLayout error={errorHandling.errors}>\n <PolicyListPresentation\n policies={policies}\n onCreatePolicy={handleCreatePolicy}\n onEditPolicy={handleEditPolicy}\n onFinishSetup={handleFinishSetup}\n onDeletePolicy={handleDeletePolicy}\n deleteSuccessAlert={deleteSuccessAlert}\n onDismissDeleteAlert={() => {\n setDeleteSuccessAlert(null)\n }}\n isDeletingPolicyId={isDeletingPolicyId}\n isPending={isPending}\n />\n </BaseLayout>\n )\n}\n"],"names":["PolicyList","FallbackComponent","props","jsx","BaseBoundaries","Root","companyId","onEvent","useI18n","t","useTranslation","queryClient","useQueryClient","baseSubmitHandler","submitError","setSubmitError","useBaseSubmit","deleteSuccessAlert","setDeleteSuccessAlert","useState","isDeletingPolicyId","setIsDeletingPolicyId","policiesData","useTimeOffPoliciesGetAllSuspense","timeOffPolicies","policy","isListedTimeOffPolicyType","holidayQuery","useHolidayPayPoliciesGet","holidayPayPolicy","employeesData","useEmployeesListSuspense","totalActiveEmployees","deactivatePolicyMutation","useTimeOffPoliciesDeactivateMutation","deleteHolidayMutation","useHolidayPayPoliciesDeleteMutation","errorHandling","composeErrorHandler","isPending","getEnrolledDisplay","enrolledCount","policies","a","b","handleCreatePolicy","componentEvents","handleEditPolicy","handleFinishSetup","handleDeletePolicy","success","invalidateAllHolidayPayPoliciesGet","err","UnprocessableEntityError","e","SDKInternalError","messages","invalidateAllTimeOffPoliciesGetAll","BaseLayout","PolicyListPresentation"],"mappings":"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"}
@@ -1,2 +1,3 @@
1
1
  import { PolicyListPresentationProps } from './PolicyListTypes';
2
+ /** @internal */
2
3
  export declare function PolicyListPresentation({ policies, onCreatePolicy, onEditPolicy, onFinishSetup, onDeletePolicy, deleteSuccessAlert, onDismissDeleteAlert, isDeletingPolicyId, isPending, }: PolicyListPresentationProps): import("react").JSX.Element;
@@ -1 +1 @@
1
- {"version":3,"file":"PolicyListPresentation.js","sources":["../../../../src/components/TimeOff/PolicyList/PolicyListPresentation.tsx"],"sourcesContent":["import { useState } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport type { PolicyListPresentationProps, PolicyListItem } from './PolicyListTypes'\nimport styles from './PolicyListPresentation.module.scss'\nimport {\n DataView,\n Flex,\n EmptyData,\n ActionsLayout,\n HamburgerMenu,\n useDataView,\n} from '@/components/Common'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { useI18n } from '@/i18n'\nimport { isEditableTimeOffPolicyType } from '@/components/TimeOff/TimeOffFlow/timeOffPolicyTypes'\n\nexport function PolicyListPresentation({\n policies,\n onCreatePolicy,\n onEditPolicy,\n onFinishSetup,\n onDeletePolicy,\n deleteSuccessAlert,\n onDismissDeleteAlert,\n isDeletingPolicyId,\n isPending,\n}: PolicyListPresentationProps) {\n const { Button, Heading, Alert, Dialog } = useComponentContext()\n useI18n('Company.TimeOff.TimeOffPolicies')\n const { t } = useTranslation('Company.TimeOff.TimeOffPolicies')\n\n const [deletePolicyDialogState, setDeletePolicyDialogState] = useState<{\n isOpen: boolean\n policy: PolicyListItem | null\n }>({\n isOpen: false,\n policy: null,\n })\n\n const handleOpenDeleteDialog = (policy: PolicyListItem) => {\n setDeletePolicyDialogState({ isOpen: true, policy })\n }\n\n const handleCloseDeleteDialog = () => {\n setDeletePolicyDialogState({ isOpen: false, policy: null })\n }\n\n const handleConfirmDelete = async () => {\n if (deletePolicyDialogState.policy) {\n await onDeletePolicy(deletePolicyDialogState.policy)\n handleCloseDeleteDialog()\n }\n }\n\n const { ...dataViewProps } = useDataView({\n data: policies,\n columns: [\n {\n title: t('tableHeaders.name'),\n render: (policy: PolicyListItem) => policy.name,\n },\n {\n title: t('tableHeaders.enrolled'),\n render: (policy: PolicyListItem) => policy.enrolledDisplay,\n },\n ],\n itemMenu: (policy: PolicyListItem) => {\n const isDeleting = isDeletingPolicyId === policy.uuid\n const isEditable = isEditableTimeOffPolicyType(policy.policyType)\n\n const menuItems = isEditable\n ? [\n {\n label: t('actions.viewPolicy'),\n onClick: () => {\n onEditPolicy(policy)\n },\n },\n {\n label: t('actions.deletePolicy'),\n onClick: () => {\n handleOpenDeleteDialog(policy)\n },\n },\n ]\n : [\n {\n label: t('actions.viewPolicy'),\n onClick: () => {\n onEditPolicy(policy)\n },\n },\n ]\n\n return (\n <div className={styles.actionsCell}>\n {isEditable && !policy.isComplete && (\n <Button\n variant=\"secondary\"\n onClick={() => {\n onFinishSetup(policy)\n }}\n >\n {t('finishSetupCta')}\n </Button>\n )}\n <HamburgerMenu\n isLoading={isDeleting}\n triggerLabel={t('actions.menuTrigger', { name: policy.name })}\n menuLabel={t('actions.menuFor', { name: policy.name })}\n items={menuItems}\n />\n </div>\n )\n },\n emptyState: () => (\n <EmptyData title={t('emptyState.heading')} description={t('emptyState.body')}>\n <ActionsLayout justifyContent=\"center\">\n <Button variant=\"secondary\" onClick={onCreatePolicy}>\n {t('createPolicyCta')}\n </Button>\n </ActionsLayout>\n </EmptyData>\n ),\n })\n\n return (\n <Flex flexDirection=\"column\" gap={16}>\n {deleteSuccessAlert && (\n <Alert status=\"success\" label={deleteSuccessAlert} onDismiss={onDismissDeleteAlert} />\n )}\n\n <Flex\n flexDirection={{ base: 'column', medium: 'row' }}\n justifyContent=\"space-between\"\n alignItems=\"flex-start\"\n gap={{ base: 12, medium: 24 }}\n >\n <Heading as=\"h2\">{t('pageTitle')}</Heading>\n <Button variant=\"primary\" onClick={onCreatePolicy}>\n {t('createPolicyCta')}\n </Button>\n </Flex>\n\n <DataView label={t('tableLabel')} {...dataViewProps} />\n\n <Dialog\n isOpen={deletePolicyDialogState.isOpen}\n onClose={handleCloseDeleteDialog}\n onPrimaryActionClick={handleConfirmDelete}\n isPrimaryActionLoading={isPending}\n isDestructive\n title={\n deletePolicyDialogState.policy?.isHoliday\n ? t('deleteHolidayDialog.title')\n : t('deletePolicyDialog.title', {\n name: deletePolicyDialogState.policy?.name ?? '',\n })\n }\n primaryActionLabel={t('deletePolicyDialog.confirmCta')}\n closeActionLabel={t('deletePolicyDialog.cancelCta')}\n >\n {deletePolicyDialogState.policy?.isHoliday\n ? t('deleteHolidayDialog.description')\n : t('deletePolicyDialog.description', {\n name: deletePolicyDialogState.policy?.name ?? '',\n })}\n </Dialog>\n </Flex>\n )\n}\n"],"names":["PolicyListPresentation","policies","onCreatePolicy","onEditPolicy","onFinishSetup","onDeletePolicy","deleteSuccessAlert","onDismissDeleteAlert","isDeletingPolicyId","isPending","Button","Heading","Alert","Dialog","useComponentContext","useI18n","t","useTranslation","deletePolicyDialogState","setDeletePolicyDialogState","useState","handleOpenDeleteDialog","policy","handleCloseDeleteDialog","handleConfirmDelete","dataViewProps","useDataView","isDeleting","isEditable","isEditableTimeOffPolicyType","menuItems","jsxs","styles","jsx","HamburgerMenu","EmptyData","ActionsLayout","Flex","DataView"],"mappings":";;;;;;;;;;;;;AAgBO,SAASA,EAAuB;AAAA,EACrC,UAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,cAAAC;AAAA,EACA,eAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,oBAAAC;AAAA,EACA,sBAAAC;AAAA,EACA,oBAAAC;AAAA,EACA,WAAAC;AACF,GAAgC;AAC9B,QAAM,EAAE,QAAAC,GAAQ,SAAAC,GAAS,OAAAC,GAAO,QAAAC,EAAA,IAAWC,EAAA;AAC3C,EAAAC,EAAQ,iCAAiC;AACzC,QAAM,EAAE,GAAAC,EAAA,IAAMC,EAAe,iCAAiC,GAExD,CAACC,GAAyBC,CAA0B,IAAIC,EAG3D;AAAA,IACD,QAAQ;AAAA,IACR,QAAQ;AAAA,EAAA,CACT,GAEKC,IAAyB,CAACC,MAA2B;AACzD,IAAAH,EAA2B,EAAE,QAAQ,IAAM,QAAAG,EAAA,CAAQ;AAAA,EACrD,GAEMC,IAA0B,MAAM;AACpC,IAAAJ,EAA2B,EAAE,QAAQ,IAAO,QAAQ,MAAM;AAAA,EAC5D,GAEMK,IAAsB,YAAY;AACtC,IAAIN,EAAwB,WAC1B,MAAMb,EAAea,EAAwB,MAAM,GACnDK,EAAA;AAAA,EAEJ,GAEM,EAAE,GAAGE,EAAA,IAAkBC,EAAY;AAAA,IACvC,MAAMzB;AAAA,IACN,SAAS;AAAA,MACP;AAAA,QACE,OAAOe,EAAE,mBAAmB;AAAA,QAC5B,QAAQ,CAACM,MAA2BA,EAAO;AAAA,MAAA;AAAA,MAE7C;AAAA,QACE,OAAON,EAAE,uBAAuB;AAAA,QAChC,QAAQ,CAACM,MAA2BA,EAAO;AAAA,MAAA;AAAA,IAC7C;AAAA,IAEF,UAAU,CAACA,MAA2B;AACpC,YAAMK,IAAanB,MAAuBc,EAAO,MAC3CM,IAAaC,EAA4BP,EAAO,UAAU,GAE1DQ,IAAYF,IACd;AAAA,QACE;AAAA,UACE,OAAOZ,EAAE,oBAAoB;AAAA,UAC7B,SAAS,MAAM;AACb,YAAAb,EAAamB,CAAM;AAAA,UACrB;AAAA,QAAA;AAAA,QAEF;AAAA,UACE,OAAON,EAAE,sBAAsB;AAAA,UAC/B,SAAS,MAAM;AACb,YAAAK,EAAuBC,CAAM;AAAA,UAC/B;AAAA,QAAA;AAAA,MACF,IAEF;AAAA,QACE;AAAA,UACE,OAAON,EAAE,oBAAoB;AAAA,UAC7B,SAAS,MAAM;AACb,YAAAb,EAAamB,CAAM;AAAA,UACrB;AAAA,QAAA;AAAA,MACF;AAGN,aACE,gBAAAS,EAAC,OAAA,EAAI,WAAWC,EAAO,aACpB,UAAA;AAAA,QAAAJ,KAAc,CAACN,EAAO,cACrB,gBAAAW;AAAA,UAACvB;AAAA,UAAA;AAAA,YACC,SAAQ;AAAA,YACR,SAAS,MAAM;AACb,cAAAN,EAAckB,CAAM;AAAA,YACtB;AAAA,YAEC,YAAE,gBAAgB;AAAA,UAAA;AAAA,QAAA;AAAA,QAGvB,gBAAAW;AAAA,UAACC;AAAA,UAAA;AAAA,YACC,WAAWP;AAAA,YACX,cAAcX,EAAE,uBAAuB,EAAE,MAAMM,EAAO,MAAM;AAAA,YAC5D,WAAWN,EAAE,mBAAmB,EAAE,MAAMM,EAAO,MAAM;AAAA,YACrD,OAAOQ;AAAA,UAAA;AAAA,QAAA;AAAA,MACT,GACF;AAAA,IAEJ;AAAA,IACA,YAAY,MACV,gBAAAG,EAACE,GAAA,EAAU,OAAOnB,EAAE,oBAAoB,GAAG,aAAaA,EAAE,iBAAiB,GACzE,UAAA,gBAAAiB,EAACG,KAAc,gBAAe,UAC5B,UAAA,gBAAAH,EAACvB,GAAA,EAAO,SAAQ,aAAY,SAASR,GAClC,UAAAc,EAAE,iBAAiB,EAAA,CACtB,EAAA,CACF,EAAA,CACF;AAAA,EAAA,CAEH;AAED,SACE,gBAAAe,EAACM,GAAA,EAAK,eAAc,UAAS,KAAK,IAC/B,UAAA;AAAA,IAAA/B,uBACEM,GAAA,EAAM,QAAO,WAAU,OAAON,GAAoB,WAAWC,GAAsB;AAAA,IAGtF,gBAAAwB;AAAA,MAACM;AAAA,MAAA;AAAA,QACC,eAAe,EAAE,MAAM,UAAU,QAAQ,MAAA;AAAA,QACzC,gBAAe;AAAA,QACf,YAAW;AAAA,QACX,KAAK,EAAE,MAAM,IAAI,QAAQ,GAAA;AAAA,QAEzB,UAAA;AAAA,UAAA,gBAAAJ,EAACtB,GAAA,EAAQ,IAAG,MAAM,UAAAK,EAAE,WAAW,GAAE;AAAA,UACjC,gBAAAiB,EAACvB,KAAO,SAAQ,WAAU,SAASR,GAChC,UAAAc,EAAE,iBAAiB,EAAA,CACtB;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA;AAAA,sBAGDsB,GAAA,EAAS,OAAOtB,EAAE,YAAY,GAAI,GAAGS,GAAe;AAAA,IAErD,gBAAAQ;AAAA,MAACpB;AAAA,MAAA;AAAA,QACC,QAAQK,EAAwB;AAAA,QAChC,SAASK;AAAA,QACT,sBAAsBC;AAAA,QACtB,wBAAwBf;AAAA,QACxB,eAAa;AAAA,QACb,OACES,EAAwB,QAAQ,YAC5BF,EAAE,2BAA2B,IAC7BA,EAAE,4BAA4B;AAAA,UAC5B,MAAME,EAAwB,QAAQ,QAAQ;AAAA,QAAA,CAC/C;AAAA,QAEP,oBAAoBF,EAAE,+BAA+B;AAAA,QACrD,kBAAkBA,EAAE,8BAA8B;AAAA,QAEjD,YAAwB,QAAQ,YAC7BA,EAAE,iCAAiC,IACnCA,EAAE,kCAAkC;AAAA,UAClC,MAAME,EAAwB,QAAQ,QAAQ;AAAA,QAAA,CAC/C;AAAA,MAAA;AAAA,IAAA;AAAA,EACP,GACF;AAEJ;"}
1
+ {"version":3,"file":"PolicyListPresentation.js","sources":["../../../../src/components/TimeOff/PolicyList/PolicyListPresentation.tsx"],"sourcesContent":["import { useState } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport type { PolicyListPresentationProps, PolicyListItem } from './PolicyListTypes'\nimport styles from './PolicyListPresentation.module.scss'\nimport {\n DataView,\n Flex,\n EmptyData,\n ActionsLayout,\n HamburgerMenu,\n useDataView,\n} from '@/components/Common'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { useI18n } from '@/i18n'\nimport { isEditableTimeOffPolicyType } from '@/components/TimeOff/TimeOffFlow/timeOffPolicyTypes'\n\n/** @internal */\nexport function PolicyListPresentation({\n policies,\n onCreatePolicy,\n onEditPolicy,\n onFinishSetup,\n onDeletePolicy,\n deleteSuccessAlert,\n onDismissDeleteAlert,\n isDeletingPolicyId,\n isPending,\n}: PolicyListPresentationProps) {\n const { Button, Heading, Alert, Dialog } = useComponentContext()\n useI18n('Company.TimeOff.TimeOffPolicies')\n const { t } = useTranslation('Company.TimeOff.TimeOffPolicies')\n\n const [deletePolicyDialogState, setDeletePolicyDialogState] = useState<{\n isOpen: boolean\n policy: PolicyListItem | null\n }>({\n isOpen: false,\n policy: null,\n })\n\n const handleOpenDeleteDialog = (policy: PolicyListItem) => {\n setDeletePolicyDialogState({ isOpen: true, policy })\n }\n\n const handleCloseDeleteDialog = () => {\n setDeletePolicyDialogState({ isOpen: false, policy: null })\n }\n\n const handleConfirmDelete = async () => {\n if (deletePolicyDialogState.policy) {\n await onDeletePolicy(deletePolicyDialogState.policy)\n handleCloseDeleteDialog()\n }\n }\n\n const { ...dataViewProps } = useDataView({\n data: policies,\n columns: [\n {\n title: t('tableHeaders.name'),\n render: (policy: PolicyListItem) => policy.name,\n },\n {\n title: t('tableHeaders.enrolled'),\n render: (policy: PolicyListItem) => policy.enrolledDisplay,\n },\n ],\n itemMenu: (policy: PolicyListItem) => {\n const isDeleting = isDeletingPolicyId === policy.uuid\n const isEditable = isEditableTimeOffPolicyType(policy.policyType)\n\n const menuItems = isEditable\n ? [\n {\n label: t('actions.viewPolicy'),\n onClick: () => {\n onEditPolicy(policy)\n },\n },\n {\n label: t('actions.deletePolicy'),\n onClick: () => {\n handleOpenDeleteDialog(policy)\n },\n },\n ]\n : [\n {\n label: t('actions.viewPolicy'),\n onClick: () => {\n onEditPolicy(policy)\n },\n },\n ]\n\n return (\n <div className={styles.actionsCell}>\n {isEditable && !policy.isComplete && (\n <Button\n variant=\"secondary\"\n onClick={() => {\n onFinishSetup(policy)\n }}\n >\n {t('finishSetupCta')}\n </Button>\n )}\n <HamburgerMenu\n isLoading={isDeleting}\n triggerLabel={t('actions.menuTrigger', { name: policy.name })}\n menuLabel={t('actions.menuFor', { name: policy.name })}\n items={menuItems}\n />\n </div>\n )\n },\n emptyState: () => (\n <EmptyData title={t('emptyState.heading')} description={t('emptyState.body')}>\n <ActionsLayout justifyContent=\"center\">\n <Button variant=\"secondary\" onClick={onCreatePolicy}>\n {t('createPolicyCta')}\n </Button>\n </ActionsLayout>\n </EmptyData>\n ),\n })\n\n return (\n <Flex flexDirection=\"column\" gap={16}>\n {deleteSuccessAlert && (\n <Alert status=\"success\" label={deleteSuccessAlert} onDismiss={onDismissDeleteAlert} />\n )}\n\n <Flex\n flexDirection={{ base: 'column', medium: 'row' }}\n justifyContent=\"space-between\"\n alignItems=\"flex-start\"\n gap={{ base: 12, medium: 24 }}\n >\n <Heading as=\"h2\">{t('pageTitle')}</Heading>\n <Button variant=\"primary\" onClick={onCreatePolicy}>\n {t('createPolicyCta')}\n </Button>\n </Flex>\n\n <DataView label={t('tableLabel')} {...dataViewProps} />\n\n <Dialog\n isOpen={deletePolicyDialogState.isOpen}\n onClose={handleCloseDeleteDialog}\n onPrimaryActionClick={handleConfirmDelete}\n isPrimaryActionLoading={isPending}\n isDestructive\n title={\n deletePolicyDialogState.policy?.isHoliday\n ? t('deleteHolidayDialog.title')\n : t('deletePolicyDialog.title', {\n name: deletePolicyDialogState.policy?.name ?? '',\n })\n }\n primaryActionLabel={t('deletePolicyDialog.confirmCta')}\n closeActionLabel={t('deletePolicyDialog.cancelCta')}\n >\n {deletePolicyDialogState.policy?.isHoliday\n ? t('deleteHolidayDialog.description')\n : t('deletePolicyDialog.description', {\n name: deletePolicyDialogState.policy?.name ?? '',\n })}\n </Dialog>\n </Flex>\n )\n}\n"],"names":["PolicyListPresentation","policies","onCreatePolicy","onEditPolicy","onFinishSetup","onDeletePolicy","deleteSuccessAlert","onDismissDeleteAlert","isDeletingPolicyId","isPending","Button","Heading","Alert","Dialog","useComponentContext","useI18n","t","useTranslation","deletePolicyDialogState","setDeletePolicyDialogState","useState","handleOpenDeleteDialog","policy","handleCloseDeleteDialog","handleConfirmDelete","dataViewProps","useDataView","isDeleting","isEditable","isEditableTimeOffPolicyType","menuItems","jsxs","styles","jsx","HamburgerMenu","EmptyData","ActionsLayout","Flex","DataView"],"mappings":"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"}