@gusto/embedded-react-sdk 0.17.0 → 0.19.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (468) hide show
  1. package/CHANGELOG.md +58 -0
  2. package/dist/assets/icons/icon-error-outline.svg.js +10 -0
  3. package/dist/assets/icons/icon-error-outline.svg.js.map +1 -0
  4. package/dist/assets/icons/icon-info-outline.svg.js +10 -0
  5. package/dist/assets/icons/icon-info-outline.svg.js.map +1 -0
  6. package/dist/assets/icons/icon-zap-fast.svg.js +10 -0
  7. package/dist/assets/icons/icon-zap-fast.svg.js.map +1 -0
  8. package/dist/components/Base/Base.js +50 -65
  9. package/dist/components/Base/Base.js.map +1 -1
  10. package/dist/components/Base/useBase.d.ts +2 -5
  11. package/dist/components/Base/useBase.js.map +1 -1
  12. package/dist/components/Common/Fieldset/Fieldset.module.scss.js +1 -1
  13. package/dist/components/Common/FlowBreadcrumbs/FlowBreadcrumbs.js +42 -36
  14. package/dist/components/Common/FlowBreadcrumbs/FlowBreadcrumbs.js.map +1 -1
  15. package/dist/components/Common/HamburgerMenu/HamburgerMenu.js +1 -1
  16. package/dist/components/Common/HamburgerMenu/HamburgerMenu.js.map +1 -1
  17. package/dist/components/Common/PaginationControl/PaginationControl.js +6 -6
  18. package/dist/components/Common/PaginationControl/PaginationControl.js.map +1 -1
  19. package/dist/components/Common/RequirementsList/RequirementsList.js +19 -13
  20. package/dist/components/Common/RequirementsList/RequirementsList.js.map +1 -1
  21. package/dist/components/Common/RequirementsList/RequirementsList.module.scss.js +1 -1
  22. package/dist/components/Common/SignatureForm/SignatureForm.js +4 -7
  23. package/dist/components/Common/SignatureForm/SignatureForm.js.map +1 -1
  24. package/dist/components/Common/SignatureForm/SignatureFormActions.js +10 -13
  25. package/dist/components/Common/SignatureForm/SignatureFormActions.js.map +1 -1
  26. package/dist/components/Common/SignatureForm/SignatureFormFields.js +10 -13
  27. package/dist/components/Common/SignatureForm/SignatureFormFields.js.map +1 -1
  28. package/dist/components/Common/UI/Badge/index.d.ts +2 -0
  29. package/dist/components/Common/UI/Banner/Banner.d.ts +3 -0
  30. package/dist/components/Common/UI/Banner/Banner.js +31 -0
  31. package/dist/components/Common/UI/Banner/Banner.js.map +1 -0
  32. package/dist/components/Common/UI/Banner/Banner.module.scss.js +14 -0
  33. package/dist/components/Common/UI/Banner/Banner.module.scss.js.map +1 -0
  34. package/dist/components/Common/UI/Banner/BannerTypes.d.ts +21 -0
  35. package/dist/components/Common/UI/Banner/BannerTypes.js +7 -0
  36. package/dist/components/Common/UI/Banner/BannerTypes.js.map +1 -0
  37. package/dist/components/Common/UI/Banner/index.d.ts +4 -0
  38. package/dist/components/Common/UI/Breadcrumbs/Breadcrumbs.js +1 -1
  39. package/dist/components/Common/UI/DatePicker/DatePicker.module.scss.js +8 -8
  40. package/dist/components/Common/UI/Dialog/Dialog.js +50 -76
  41. package/dist/components/Common/UI/Dialog/Dialog.js.map +1 -1
  42. package/dist/components/Common/UI/Dialog/Dialog.module.scss.js +8 -14
  43. package/dist/components/Common/UI/Dialog/Dialog.module.scss.js.map +1 -1
  44. package/dist/components/Common/UI/Link/LinkTypes.d.ts +7 -6
  45. package/dist/components/Common/UI/List/List.module.scss.js +2 -2
  46. package/dist/components/Common/UI/Modal/Modal.d.ts +2 -0
  47. package/dist/components/Common/UI/Modal/Modal.js +90 -0
  48. package/dist/components/Common/UI/Modal/Modal.js.map +1 -0
  49. package/dist/components/Common/UI/Modal/Modal.module.scss.js +26 -0
  50. package/dist/components/Common/UI/Modal/Modal.module.scss.js.map +1 -0
  51. package/dist/components/Common/UI/Modal/ModalTypes.d.ts +34 -0
  52. package/dist/components/Common/UI/Modal/ModalTypes.js +8 -0
  53. package/dist/components/Common/UI/Modal/ModalTypes.js.map +1 -0
  54. package/dist/components/Common/UI/Modal/index.d.ts +3 -0
  55. package/dist/components/Common/UI/ProgressBar/ProgressBar.js +4 -4
  56. package/dist/components/Common/UI/Tabs/Tabs.d.ts +0 -5
  57. package/dist/components/Common/UI/Tabs/Tabs.js +45 -16
  58. package/dist/components/Common/UI/Tabs/Tabs.js.map +1 -1
  59. package/dist/components/Common/UI/Tabs/Tabs.module.scss.js +8 -4
  60. package/dist/components/Common/UI/Tabs/Tabs.module.scss.js.map +1 -1
  61. package/dist/components/Common/UI/Tabs/TabsTypes.d.ts +7 -0
  62. package/dist/components/Common/index.d.ts +0 -1
  63. package/dist/components/Company/AssignSignatory/AssignSignatory.js +6 -8
  64. package/dist/components/Company/AssignSignatory/AssignSignatory.js.map +1 -1
  65. package/dist/components/Company/AssignSignatory/AssignSignatorySelection.js +6 -8
  66. package/dist/components/Company/AssignSignatory/AssignSignatorySelection.js.map +1 -1
  67. package/dist/components/Company/AssignSignatory/CreateSignatory/Actions.js +8 -10
  68. package/dist/components/Company/AssignSignatory/CreateSignatory/Actions.js.map +1 -1
  69. package/dist/components/Company/AssignSignatory/CreateSignatory/CreateSignatory.js +2 -3
  70. package/dist/components/Company/AssignSignatory/CreateSignatory/CreateSignatory.js.map +1 -1
  71. package/dist/components/Company/AssignSignatory/CreateSignatory/CreateSignatoryForm.js +2 -3
  72. package/dist/components/Company/AssignSignatory/CreateSignatory/CreateSignatoryForm.js.map +1 -1
  73. package/dist/components/Company/AssignSignatory/CreateSignatory/useCreateSignatory.js +4 -6
  74. package/dist/components/Company/AssignSignatory/CreateSignatory/useCreateSignatory.js.map +1 -1
  75. package/dist/components/Company/AssignSignatory/InviteSignatory/Actions.js +6 -8
  76. package/dist/components/Company/AssignSignatory/InviteSignatory/Actions.js.map +1 -1
  77. package/dist/components/Company/AssignSignatory/InviteSignatory/InviteSignatory.js +5 -6
  78. package/dist/components/Company/AssignSignatory/InviteSignatory/InviteSignatory.js.map +1 -1
  79. package/dist/components/Company/AssignSignatory/InviteSignatory/InviteSignatoryForm.js +9 -10
  80. package/dist/components/Company/AssignSignatory/InviteSignatory/InviteSignatoryForm.js.map +1 -1
  81. package/dist/components/Company/AssignSignatory/InviteSignatory/useInviteSignatory.js +4 -6
  82. package/dist/components/Company/AssignSignatory/InviteSignatory/useInviteSignatory.js.map +1 -1
  83. package/dist/components/Company/AssignSignatory/TitleSelect.js +7 -8
  84. package/dist/components/Company/AssignSignatory/TitleSelect.js.map +1 -1
  85. package/dist/components/Company/AssignSignatory/useAssignSignatory.js +6 -8
  86. package/dist/components/Company/AssignSignatory/useAssignSignatory.js.map +1 -1
  87. package/dist/components/Company/BankAccount/BankAccountForm/Actions.js +8 -9
  88. package/dist/components/Company/BankAccount/BankAccountForm/Actions.js.map +1 -1
  89. package/dist/components/Company/BankAccount/BankAccountForm/Form.js +9 -11
  90. package/dist/components/Company/BankAccount/BankAccountForm/Form.js.map +1 -1
  91. package/dist/components/Company/BankAccount/BankAccountForm/context.js +4 -6
  92. package/dist/components/Company/BankAccount/BankAccountForm/context.js.map +1 -1
  93. package/dist/components/Company/BankAccount/BankAccountList/Actions.js +10 -12
  94. package/dist/components/Company/BankAccount/BankAccountList/Actions.js.map +1 -1
  95. package/dist/components/Company/BankAccount/BankAccountVerify/Actions.js +11 -13
  96. package/dist/components/Company/BankAccount/BankAccountVerify/Actions.js.map +1 -1
  97. package/dist/components/Company/BankAccount/BankAccountVerify/Form.js +4 -6
  98. package/dist/components/Company/BankAccount/BankAccountVerify/Form.js.map +1 -1
  99. package/dist/components/Company/DocumentSigner/DocumentList/Actions.js +5 -7
  100. package/dist/components/Company/DocumentSigner/DocumentList/Actions.js.map +1 -1
  101. package/dist/components/Company/DocumentSigner/DocumentList/DocumentList.js +11 -13
  102. package/dist/components/Company/DocumentSigner/DocumentList/DocumentList.js.map +1 -1
  103. package/dist/components/Company/DocumentSigner/DocumentList/ManageSignatories.js +13 -13
  104. package/dist/components/Company/DocumentSigner/DocumentList/ManageSignatories.js.map +1 -1
  105. package/dist/components/Company/DocumentSigner/DocumentList/useDocumentList.js +4 -6
  106. package/dist/components/Company/DocumentSigner/DocumentList/useDocumentList.js.map +1 -1
  107. package/dist/components/Company/DocumentSigner/SignatureForm/SignatureForm.js +6 -8
  108. package/dist/components/Company/DocumentSigner/SignatureForm/SignatureForm.js.map +1 -1
  109. package/dist/components/Company/DocumentSigner/SignatureForm/useSignatureForm.js +4 -6
  110. package/dist/components/Company/DocumentSigner/SignatureForm/useSignatureForm.js.map +1 -1
  111. package/dist/components/Company/FederalTaxes/Actions.js +7 -9
  112. package/dist/components/Company/FederalTaxes/Actions.js.map +1 -1
  113. package/dist/components/Company/FederalTaxes/FederalTaxes.js +15 -17
  114. package/dist/components/Company/FederalTaxes/FederalTaxes.js.map +1 -1
  115. package/dist/components/Company/FederalTaxes/Form.js +29 -31
  116. package/dist/components/Company/FederalTaxes/Form.js.map +1 -1
  117. package/dist/components/Company/FederalTaxes/Head.js +5 -5
  118. package/dist/components/Company/FederalTaxes/Head.js.map +1 -1
  119. package/dist/components/Company/FederalTaxes/useFederalTaxes.js +9 -11
  120. package/dist/components/Company/FederalTaxes/useFederalTaxes.js.map +1 -1
  121. package/dist/components/Company/Industry/Actions.js +5 -7
  122. package/dist/components/Company/Industry/Actions.js.map +1 -1
  123. package/dist/components/Company/Industry/Context.js +7 -9
  124. package/dist/components/Company/Industry/Context.js.map +1 -1
  125. package/dist/components/Company/Industry/Edit.js +10 -12
  126. package/dist/components/Company/Industry/Edit.js.map +1 -1
  127. package/dist/components/Company/Locations/LocationForm/Actions.js +6 -8
  128. package/dist/components/Company/Locations/LocationForm/Actions.js.map +1 -1
  129. package/dist/components/Company/Locations/LocationForm/Form.js +4 -5
  130. package/dist/components/Company/Locations/LocationForm/Form.js.map +1 -1
  131. package/dist/components/Company/Locations/LocationForm/LocationForm.js +10 -12
  132. package/dist/components/Company/Locations/LocationForm/LocationForm.js.map +1 -1
  133. package/dist/components/Company/Locations/LocationForm/useLocationForm.js +4 -6
  134. package/dist/components/Company/Locations/LocationForm/useLocationForm.js.map +1 -1
  135. package/dist/components/Company/Locations/LocationsList/Actions.js +6 -8
  136. package/dist/components/Company/Locations/LocationsList/Actions.js.map +1 -1
  137. package/dist/components/Company/Locations/LocationsList/List.js +6 -8
  138. package/dist/components/Company/Locations/LocationsList/List.js.map +1 -1
  139. package/dist/components/Company/Locations/LocationsList/LocationsList.js +12 -14
  140. package/dist/components/Company/Locations/LocationsList/LocationsList.js.map +1 -1
  141. package/dist/components/Company/Locations/LocationsList/useLocationsList.js +4 -6
  142. package/dist/components/Company/Locations/LocationsList/useLocationsList.js.map +1 -1
  143. package/dist/components/Company/OnboardingOverview/Completed.js +12 -14
  144. package/dist/components/Company/OnboardingOverview/Completed.js.map +1 -1
  145. package/dist/components/Company/OnboardingOverview/MissingRequirements.js +6 -8
  146. package/dist/components/Company/OnboardingOverview/MissingRequirements.js.map +1 -1
  147. package/dist/components/Company/OnboardingOverview/OnboardingOverview.js +2 -4
  148. package/dist/components/Company/OnboardingOverview/OnboardingOverview.js.map +1 -1
  149. package/dist/components/Company/OnboardingOverview/context.js +4 -6
  150. package/dist/components/Company/OnboardingOverview/context.js.map +1 -1
  151. package/dist/components/Company/PaySchedule/PaySchedule.js +40 -42
  152. package/dist/components/Company/PaySchedule/PaySchedule.js.map +1 -1
  153. package/dist/components/Company/PaySchedule/_parts/Actions.js +10 -12
  154. package/dist/components/Company/PaySchedule/_parts/Actions.js.map +1 -1
  155. package/dist/components/Company/PaySchedule/_parts/Edit.js +35 -37
  156. package/dist/components/Company/PaySchedule/_parts/Edit.js.map +1 -1
  157. package/dist/components/Company/PaySchedule/_parts/Head.js +17 -19
  158. package/dist/components/Company/PaySchedule/_parts/Head.js.map +1 -1
  159. package/dist/components/Company/PaySchedule/_parts/List.js +13 -15
  160. package/dist/components/Company/PaySchedule/_parts/List.js.map +1 -1
  161. package/dist/components/Company/PaySchedule/usePaySchedule.js +6 -8
  162. package/dist/components/Company/PaySchedule/usePaySchedule.js.map +1 -1
  163. package/dist/components/Company/StateTaxes/StateTaxesForm/Actions.js +5 -7
  164. package/dist/components/Company/StateTaxes/StateTaxesForm/Actions.js.map +1 -1
  165. package/dist/components/Company/StateTaxes/StateTaxesForm/context.js +4 -6
  166. package/dist/components/Company/StateTaxes/StateTaxesForm/context.js.map +1 -1
  167. package/dist/components/Company/StateTaxes/StateTaxesList/Actions.js +6 -8
  168. package/dist/components/Company/StateTaxes/StateTaxesList/Actions.js.map +1 -1
  169. package/dist/components/Company/StateTaxes/StateTaxesList/List.js +5 -7
  170. package/dist/components/Company/StateTaxes/StateTaxesList/List.js.map +1 -1
  171. package/dist/components/Company/StateTaxes/StateTaxesList/context.js +4 -6
  172. package/dist/components/Company/StateTaxes/StateTaxesList/context.js.map +1 -1
  173. package/dist/components/Contractor/Address/Address.js +4 -6
  174. package/dist/components/Contractor/Address/Address.js.map +1 -1
  175. package/dist/components/Contractor/Address/Form.js +2 -3
  176. package/dist/components/Contractor/Address/Form.js.map +1 -1
  177. package/dist/components/Contractor/Address/useAddress.js +6 -8
  178. package/dist/components/Contractor/Address/useAddress.js.map +1 -1
  179. package/dist/components/Contractor/ContractorList/index.js +54 -55
  180. package/dist/components/Contractor/ContractorList/index.js.map +1 -1
  181. package/dist/components/Contractor/NewHireReport/NewHireReport.js +13 -14
  182. package/dist/components/Contractor/NewHireReport/NewHireReport.js.map +1 -1
  183. package/dist/components/Contractor/PaymentMethod/BankAccountForm.js +4 -6
  184. package/dist/components/Contractor/PaymentMethod/BankAccountForm.js.map +1 -1
  185. package/dist/components/Contractor/PaymentMethod/PaymentMethod.js +2 -3
  186. package/dist/components/Contractor/PaymentMethod/PaymentMethod.js.map +1 -1
  187. package/dist/components/Contractor/PaymentMethod/PaymentTypeForm.js +2 -3
  188. package/dist/components/Contractor/PaymentMethod/PaymentTypeForm.js.map +1 -1
  189. package/dist/components/Contractor/Profile/ContractorProfileForm.js +11 -11
  190. package/dist/components/Contractor/Profile/useContractorProfile.js +3 -4
  191. package/dist/components/Contractor/Profile/useContractorProfile.js.map +1 -1
  192. package/dist/components/Contractor/Submit/Submit.js +9 -10
  193. package/dist/components/Contractor/Submit/Submit.js.map +1 -1
  194. package/dist/components/Contractor/Submit/SubmitDone.js +8 -8
  195. package/dist/components/Contractor/Submit/SubmitDone.js.map +1 -1
  196. package/dist/components/Employee/Compensation/Actions.js +5 -6
  197. package/dist/components/Employee/Compensation/Actions.js.map +1 -1
  198. package/dist/components/Employee/Compensation/Edit.js +23 -22
  199. package/dist/components/Employee/Compensation/Edit.js.map +1 -1
  200. package/dist/components/Employee/Compensation/List.js +23 -25
  201. package/dist/components/Employee/Compensation/List.js.map +1 -1
  202. package/dist/components/Employee/Deductions/DeductionsComponents.js +1 -1
  203. package/dist/components/Employee/Deductions/DeductionsComponents.js.map +1 -1
  204. package/dist/components/Employee/Deductions/DeductionsForm/CustomDeductionForm.d.ts +7 -7
  205. package/dist/components/Employee/Deductions/DeductionsForm/DeductionsForm.d.ts +2 -2
  206. package/dist/components/Employee/Deductions/DeductionsForm/DeductionsForm.js +3 -4
  207. package/dist/components/Employee/Deductions/DeductionsForm/DeductionsForm.js.map +1 -1
  208. package/dist/components/Employee/Deductions/DeductionsList/DeductionsList.js +44 -40
  209. package/dist/components/Employee/Deductions/DeductionsList/DeductionsList.js.map +1 -1
  210. package/dist/components/Employee/Deductions/IncludeDeductionsForm/IncludeDeductionsForm.js +3 -4
  211. package/dist/components/Employee/Deductions/IncludeDeductionsForm/IncludeDeductionsForm.js.map +1 -1
  212. package/dist/components/Employee/Deductions/useDeductions.d.ts +2 -2
  213. package/dist/components/Employee/DocumentSigner/DocumentList/Actions.js +6 -8
  214. package/dist/components/Employee/DocumentSigner/DocumentList/Actions.js.map +1 -1
  215. package/dist/components/Employee/DocumentSigner/DocumentList/DocumentList.js +9 -11
  216. package/dist/components/Employee/DocumentSigner/DocumentList/DocumentList.js.map +1 -1
  217. package/dist/components/Employee/DocumentSigner/DocumentList/List.js +2 -4
  218. package/dist/components/Employee/DocumentSigner/DocumentList/List.js.map +1 -1
  219. package/dist/components/Employee/DocumentSigner/DocumentList/useDocumentList.js +4 -6
  220. package/dist/components/Employee/DocumentSigner/DocumentList/useDocumentList.js.map +1 -1
  221. package/dist/components/Employee/DocumentSigner/SignatureForm/SignatureForm.js +11 -13
  222. package/dist/components/Employee/DocumentSigner/SignatureForm/SignatureForm.js.map +1 -1
  223. package/dist/components/Employee/DocumentSigner/SignatureForm/useSignatureForm.js +4 -6
  224. package/dist/components/Employee/DocumentSigner/SignatureForm/useSignatureForm.js.map +1 -1
  225. package/dist/components/Employee/EmployeeList/Actions.js +4 -6
  226. package/dist/components/Employee/EmployeeList/Actions.js.map +1 -1
  227. package/dist/components/Employee/EmployeeList/EmployeeList.js +3 -4
  228. package/dist/components/Employee/EmployeeList/EmployeeList.js.map +1 -1
  229. package/dist/components/Employee/EmployeeList/Head.js +5 -7
  230. package/dist/components/Employee/EmployeeList/Head.js.map +1 -1
  231. package/dist/components/Employee/EmployeeList/List.js +37 -38
  232. package/dist/components/Employee/EmployeeList/List.js.map +1 -1
  233. package/dist/components/Employee/EmployeeList/useEmployeeList.js +4 -6
  234. package/dist/components/Employee/EmployeeList/useEmployeeList.js.map +1 -1
  235. package/dist/components/Employee/FederalTaxes/Actions.js +6 -8
  236. package/dist/components/Employee/FederalTaxes/Actions.js.map +1 -1
  237. package/dist/components/Employee/FederalTaxes/FederalForm.js +11 -13
  238. package/dist/components/Employee/FederalTaxes/FederalForm.js.map +1 -1
  239. package/dist/components/Employee/FederalTaxes/FederalTaxes.js +8 -8
  240. package/dist/components/Employee/FederalTaxes/FederalTaxes.js.map +1 -1
  241. package/dist/components/Employee/FederalTaxes/Head.js +7 -7
  242. package/dist/components/Employee/FederalTaxes/Head.js.map +1 -1
  243. package/dist/components/Employee/FederalTaxes/useFederalTaxes.js +4 -6
  244. package/dist/components/Employee/FederalTaxes/useFederalTaxes.js.map +1 -1
  245. package/dist/components/Employee/Landing/Landing.js +22 -22
  246. package/dist/components/Employee/Landing/Landing.js.map +1 -1
  247. package/dist/components/Employee/OnboardingSummary/OnboardingSummary.js +7 -7
  248. package/dist/components/Employee/PaymentMethod/Actions.js +7 -9
  249. package/dist/components/Employee/PaymentMethod/Actions.js.map +1 -1
  250. package/dist/components/Employee/PaymentMethod/BankAccountEdit.js +4 -5
  251. package/dist/components/Employee/PaymentMethod/BankAccountEdit.js.map +1 -1
  252. package/dist/components/Employee/PaymentMethod/BankAccountsList.js +10 -12
  253. package/dist/components/Employee/PaymentMethod/BankAccountsList.js.map +1 -1
  254. package/dist/components/Employee/PaymentMethod/PaymentTypeForm.js +6 -7
  255. package/dist/components/Employee/PaymentMethod/PaymentTypeForm.js.map +1 -1
  256. package/dist/components/Employee/PaymentMethod/Split.js +3 -4
  257. package/dist/components/Employee/PaymentMethod/Split.js.map +1 -1
  258. package/dist/components/Employee/PaymentMethod/usePaymentMethod.js +6 -8
  259. package/dist/components/Employee/PaymentMethod/usePaymentMethod.js.map +1 -1
  260. package/dist/components/Employee/Profile/Actions.js +7 -9
  261. package/dist/components/Employee/Profile/Actions.js.map +1 -1
  262. package/dist/components/Employee/Profile/AdminPersonalDetails.js +38 -35
  263. package/dist/components/Employee/Profile/AdminPersonalDetails.js.map +1 -1
  264. package/dist/components/Employee/Profile/HomeAddress.d.ts +52 -0
  265. package/dist/components/Employee/Profile/HomeAddress.js +64 -45
  266. package/dist/components/Employee/Profile/HomeAddress.js.map +1 -1
  267. package/dist/components/Employee/Profile/PersonalDetailsInputs.js +20 -21
  268. package/dist/components/Employee/Profile/PersonalDetailsInputs.js.map +1 -1
  269. package/dist/components/Employee/Profile/Profile.js +150 -143
  270. package/dist/components/Employee/Profile/Profile.js.map +1 -1
  271. package/dist/components/Employee/Profile/useProfile.d.ts +1 -0
  272. package/dist/components/Employee/Profile/useProfile.js +4 -6
  273. package/dist/components/Employee/Profile/useProfile.js.map +1 -1
  274. package/dist/components/Employee/StateTaxes/Actions.js +8 -10
  275. package/dist/components/Employee/StateTaxes/Actions.js.map +1 -1
  276. package/dist/components/Employee/StateTaxes/StateTaxes.js +4 -4
  277. package/dist/components/Employee/StateTaxes/StateTaxes.js.map +1 -1
  278. package/dist/components/Employee/StateTaxes/useStateTaxes.js +4 -6
  279. package/dist/components/Employee/StateTaxes/useStateTaxes.js.map +1 -1
  280. package/dist/components/Employee/Taxes/Actions.js +8 -10
  281. package/dist/components/Employee/Taxes/Actions.js.map +1 -1
  282. package/dist/components/Employee/Taxes/FederalForm.js +9 -11
  283. package/dist/components/Employee/Taxes/FederalForm.js.map +1 -1
  284. package/dist/components/Employee/Taxes/FederalHead.js +7 -7
  285. package/dist/components/Employee/Taxes/FederalHead.js.map +1 -1
  286. package/dist/components/Employee/Taxes/Taxes.js +5 -5
  287. package/dist/components/Employee/Taxes/Taxes.js.map +1 -1
  288. package/dist/components/Employee/Taxes/useTaxes.js +4 -6
  289. package/dist/components/Employee/Taxes/useTaxes.js.map +1 -1
  290. package/dist/components/Flow/Flow.js +16 -18
  291. package/dist/components/Flow/Flow.js.map +1 -1
  292. package/dist/components/Payroll/ConfirmWireDetails/ConfirmWireDetails.d.ts +6 -0
  293. package/dist/components/Payroll/ConfirmWireDetails/ConfirmWireDetails.js +57 -0
  294. package/dist/components/Payroll/ConfirmWireDetails/ConfirmWireDetails.js.map +1 -0
  295. package/dist/components/Payroll/ConfirmWireDetails/ConfirmWireDetailsBanner/ConfirmWireDetailsBanner.d.ts +8 -0
  296. package/dist/components/Payroll/ConfirmWireDetails/ConfirmWireDetailsBanner/ConfirmWireDetailsBanner.js +79 -0
  297. package/dist/components/Payroll/ConfirmWireDetails/ConfirmWireDetailsBanner/ConfirmWireDetailsBanner.js.map +1 -0
  298. package/dist/components/Payroll/ConfirmWireDetails/ConfirmWireDetailsBanner/index.d.ts +2 -0
  299. package/dist/components/Payroll/ConfirmWireDetails/ConfirmWireDetailsComponents.d.ts +7 -0
  300. package/dist/components/Payroll/ConfirmWireDetails/ConfirmWireDetailsComponents.js +25 -0
  301. package/dist/components/Payroll/ConfirmWireDetails/ConfirmWireDetailsComponents.js.map +1 -0
  302. package/dist/components/Payroll/ConfirmWireDetails/ConfirmWireDetailsForm/ConfirmWireDetailsForm.d.ts +10 -0
  303. package/dist/components/Payroll/ConfirmWireDetails/ConfirmWireDetailsForm/ConfirmWireDetailsForm.js +30 -0
  304. package/dist/components/Payroll/ConfirmWireDetails/ConfirmWireDetailsForm/ConfirmWireDetailsForm.js.map +1 -0
  305. package/dist/components/Payroll/ConfirmWireDetails/ConfirmWireDetailsForm/index.d.ts +2 -0
  306. package/dist/components/Payroll/ConfirmWireDetails/WireInstructions/WireInstructions.d.ts +10 -0
  307. package/dist/components/Payroll/ConfirmWireDetails/WireInstructions/WireInstructions.js +30 -0
  308. package/dist/components/Payroll/ConfirmWireDetails/WireInstructions/WireInstructions.js.map +1 -0
  309. package/dist/components/Payroll/ConfirmWireDetails/WireInstructions/index.d.ts +2 -0
  310. package/dist/components/Payroll/ConfirmWireDetails/confirmWireDetailsStateMachine.d.ts +13 -0
  311. package/dist/components/Payroll/ConfirmWireDetails/confirmWireDetailsStateMachine.js +63 -0
  312. package/dist/components/Payroll/ConfirmWireDetails/confirmWireDetailsStateMachine.js.map +1 -0
  313. package/dist/components/Payroll/ConfirmWireDetails/index.d.ts +3 -0
  314. package/dist/components/Payroll/PayrollBlocker/components/PayrollBlockerAlerts.js +9 -11
  315. package/dist/components/Payroll/PayrollBlocker/components/PayrollBlockerAlerts.js.map +1 -1
  316. package/dist/components/Payroll/PayrollBlocker/components/PayrollBlockerList.js +6 -7
  317. package/dist/components/Payroll/PayrollBlocker/components/PayrollBlockerList.js.map +1 -1
  318. package/dist/components/Payroll/PayrollBlocker/payrollHelpers.js +1 -1
  319. package/dist/components/Payroll/PayrollBlocker/payrollHelpers.js.map +1 -1
  320. package/dist/components/Payroll/PayrollConfiguration/PayrollConfiguration.js +77 -76
  321. package/dist/components/Payroll/PayrollConfiguration/PayrollConfiguration.js.map +1 -1
  322. package/dist/components/Payroll/PayrollConfiguration/PayrollConfigurationPresentation.js +133 -135
  323. package/dist/components/Payroll/PayrollConfiguration/PayrollConfigurationPresentation.js.map +1 -1
  324. package/dist/components/Payroll/PayrollConfiguration/PayrollConfigurationPresentation.module.scss.js +5 -3
  325. package/dist/components/Payroll/PayrollConfiguration/PayrollConfigurationPresentation.module.scss.js.map +1 -1
  326. package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployee.js +30 -29
  327. package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployee.js.map +1 -1
  328. package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployeePresentation.js +145 -137
  329. package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployeePresentation.js.map +1 -1
  330. package/dist/components/Payroll/PayrollEditEmployee/TimeOffField.js +5 -7
  331. package/dist/components/Payroll/PayrollEditEmployee/TimeOffField.js.map +1 -1
  332. package/dist/components/Payroll/PayrollFlow/PayrollFlowComponents.d.ts +3 -1
  333. package/dist/components/Payroll/PayrollFlow/PayrollFlowComponents.js +22 -22
  334. package/dist/components/Payroll/PayrollFlow/PayrollFlowComponents.js.map +1 -1
  335. package/dist/components/Payroll/PayrollFlow/payrollStateMachine.js +40 -27
  336. package/dist/components/Payroll/PayrollFlow/payrollStateMachine.js.map +1 -1
  337. package/dist/components/Payroll/PayrollHistory/PayrollHistory.js +50 -72
  338. package/dist/components/Payroll/PayrollHistory/PayrollHistory.js.map +1 -1
  339. package/dist/components/Payroll/PayrollHistory/PayrollHistoryPresentation.js +2 -4
  340. package/dist/components/Payroll/PayrollHistory/PayrollHistoryPresentation.js.map +1 -1
  341. package/dist/components/Payroll/PayrollLanding/PayrollLandingFlowComponents.d.ts +1 -1
  342. package/dist/components/Payroll/PayrollLanding/PayrollLandingFlowComponents.js +42 -37
  343. package/dist/components/Payroll/PayrollLanding/PayrollLandingFlowComponents.js.map +1 -1
  344. package/dist/components/Payroll/PayrollLanding/payrollLandingStateMachine.js +20 -20
  345. package/dist/components/Payroll/PayrollLanding/payrollLandingStateMachine.js.map +1 -1
  346. package/dist/components/Payroll/PayrollList/PayrollList.js +24 -21
  347. package/dist/components/Payroll/PayrollList/PayrollList.js.map +1 -1
  348. package/dist/components/Payroll/PayrollList/PayrollListPresentation.d.ts +3 -9
  349. package/dist/components/Payroll/PayrollList/PayrollListPresentation.js +119 -131
  350. package/dist/components/Payroll/PayrollList/PayrollListPresentation.js.map +1 -1
  351. package/dist/components/Payroll/PayrollList/PayrollListPresentation.module.scss.js +6 -6
  352. package/dist/components/Payroll/PayrollOverview/PayrollOverview.js +125 -94
  353. package/dist/components/Payroll/PayrollOverview/PayrollOverview.js.map +1 -1
  354. package/dist/components/Payroll/PayrollOverview/PayrollOverviewPresentation.d.ts +6 -1
  355. package/dist/components/Payroll/PayrollOverview/PayrollOverviewPresentation.js +243 -230
  356. package/dist/components/Payroll/PayrollOverview/PayrollOverviewPresentation.js.map +1 -1
  357. package/dist/components/Payroll/PayrollOverview/PayrollOverviewPresentation.module.scss.js +8 -0
  358. package/dist/components/Payroll/PayrollOverview/PayrollOverviewPresentation.module.scss.js.map +1 -0
  359. package/dist/components/Payroll/PayrollOverview/SubmissionBlockers/FastAchThresholdExceeded.d.ts +8 -0
  360. package/dist/components/Payroll/PayrollOverview/SubmissionBlockers/FastAchThresholdExceeded.js +49 -0
  361. package/dist/components/Payroll/PayrollOverview/SubmissionBlockers/FastAchThresholdExceeded.js.map +1 -0
  362. package/dist/components/Payroll/PayrollOverview/SubmissionBlockers/GenericBlocker.d.ts +6 -0
  363. package/dist/components/Payroll/PayrollOverview/SubmissionBlockers/GenericBlocker.js +18 -0
  364. package/dist/components/Payroll/PayrollOverview/SubmissionBlockers/GenericBlocker.js.map +1 -0
  365. package/dist/components/Payroll/PayrollOverview/SubmissionBlockers/index.d.ts +3 -0
  366. package/dist/components/Payroll/PayrollReceipts/PayrollReceiptsPresentation.js +2 -3
  367. package/dist/components/Payroll/PayrollReceipts/PayrollReceiptsPresentation.js.map +1 -1
  368. package/dist/components/Payroll/index.d.ts +1 -0
  369. package/dist/components/Payroll/index.js +8 -6
  370. package/dist/components/Payroll/index.js.map +1 -1
  371. package/dist/components/Payroll/usePreparedPayrollData.js +8 -10
  372. package/dist/components/Payroll/usePreparedPayrollData.js.map +1 -1
  373. package/dist/contexts/ComponentAdapter/adapters/defaultComponentAdapter.js +44 -40
  374. package/dist/contexts/ComponentAdapter/adapters/defaultComponentAdapter.js.map +1 -1
  375. package/dist/contexts/ComponentAdapter/componentAdapterTypes.d.ts +2 -0
  376. package/dist/contexts/ComponentAdapter/createComponentsWithDefaults.d.ts +5 -0
  377. package/dist/contexts/ComponentAdapter/createComponentsWithDefaults.js +27 -25
  378. package/dist/contexts/ComponentAdapter/createComponentsWithDefaults.js.map +1 -1
  379. package/dist/contexts/ComponentAdapter/useComponentContext.d.ts +4 -0
  380. package/dist/contexts/ComponentAdapter/useComponentContext.js +3 -3
  381. package/dist/contexts/ComponentAdapter/useComponentContext.js.map +1 -1
  382. package/dist/contexts/GustoProvider/GustoProviderCustomUIAdapter.js +5 -8
  383. package/dist/contexts/GustoProvider/GustoProviderCustomUIAdapter.js.map +1 -1
  384. package/dist/contexts/ThemeProvider/theme.d.ts +1 -0
  385. package/dist/contexts/ThemeProvider/theme.js +5 -4
  386. package/dist/contexts/ThemeProvider/theme.js.map +1 -1
  387. package/dist/helpers/apiErrorToList.d.ts +7 -0
  388. package/dist/helpers/apiErrorToList.js +23 -0
  389. package/dist/helpers/apiErrorToList.js.map +1 -0
  390. package/dist/helpers/breadcrumbHelpers.js +30 -30
  391. package/dist/helpers/breadcrumbHelpers.js.map +1 -1
  392. package/dist/helpers/dateFormatting.d.ts +15 -7
  393. package/dist/helpers/dateFormatting.js +88 -35
  394. package/dist/helpers/dateFormatting.js.map +1 -1
  395. package/dist/helpers/formattedStrings.js +11 -12
  396. package/dist/helpers/formattedStrings.js.map +1 -1
  397. package/dist/hooks/useAsyncError.js.map +1 -0
  398. package/dist/hooks/useDateFormatter.d.ts +19 -0
  399. package/dist/hooks/useDateFormatter.js +24 -0
  400. package/dist/hooks/useDateFormatter.js.map +1 -0
  401. package/dist/hooks/useMenu.js.map +1 -0
  402. package/dist/{components/Common/hooks → hooks}/useNumberFormatter.js +1 -1
  403. package/dist/hooks/useNumberFormatter.js.map +1 -0
  404. package/dist/hooks/useOverflowDetection/index.d.ts +3 -0
  405. package/dist/hooks/useOverflowDetection/useOverflowDetection.d.ts +7 -0
  406. package/dist/hooks/useOverflowDetection/useOverflowDetection.js +28 -0
  407. package/dist/hooks/useOverflowDetection/useOverflowDetection.js.map +1 -0
  408. package/dist/i18n/I18n.js +1 -1
  409. package/dist/i18n/I18n.js.map +1 -1
  410. package/dist/i18n/en/Company.BankAccount.json.js +1 -1
  411. package/dist/i18n/en/Company.DocumentList.json.js +16 -16
  412. package/dist/i18n/en/Company.FederalTaxes.json.js +22 -22
  413. package/dist/i18n/en/Company.PaySchedule.json.js +9 -9
  414. package/dist/i18n/en/Contractor.ContractorList.json.js +8 -8
  415. package/dist/i18n/en/Contractor.Submit.json.js +6 -6
  416. package/dist/i18n/en/Employee.Compensation.json.js +20 -20
  417. package/dist/i18n/en/Employee.Deductions.json.js +135 -109
  418. package/dist/i18n/en/Employee.Deductions.json.js.map +1 -1
  419. package/dist/i18n/en/Employee.EmployeeList.json.js +6 -6
  420. package/dist/i18n/en/Employee.FederalTaxes.json.js +9 -9
  421. package/dist/i18n/en/Employee.HomeAddress.json.js +3 -3
  422. package/dist/i18n/en/Employee.OnboardingSummary.json.js +1 -1
  423. package/dist/i18n/en/Employee.PaymentMethod.json.js +11 -11
  424. package/dist/i18n/en/Employee.Taxes.json.js +27 -29
  425. package/dist/i18n/en/Employee.Taxes.json.js.map +1 -1
  426. package/dist/i18n/en/Payroll.ConfirmWireDetailsBanner.json.js +14 -0
  427. package/dist/i18n/en/Payroll.ConfirmWireDetailsBanner.json.js.map +1 -0
  428. package/dist/i18n/en/Payroll.ConfirmWireDetailsForm.json.js +10 -0
  429. package/dist/i18n/en/Payroll.ConfirmWireDetailsForm.json.js.map +1 -0
  430. package/dist/i18n/en/Payroll.PayrollBlocker.json.js +3 -3
  431. package/dist/i18n/en/Payroll.PayrollConfiguration.json.js +1 -1
  432. package/dist/i18n/en/Payroll.PayrollEditEmployee.json.js +4 -4
  433. package/dist/i18n/en/Payroll.PayrollList.json.js +7 -7
  434. package/dist/i18n/en/Payroll.PayrollOverview.json.js +37 -35
  435. package/dist/i18n/en/Payroll.PayrollOverview.json.js.map +1 -1
  436. package/dist/i18n/en/Payroll.PayrollReceipts.json.js +7 -7
  437. package/dist/i18n/en/Payroll.WireInstructions.json.js +10 -0
  438. package/dist/i18n/en/Payroll.WireInstructions.json.js.map +1 -0
  439. package/dist/i18n/en/common.json.d.ts +3 -2
  440. package/dist/i18n/en/common.json.js +4 -4
  441. package/dist/shared/constants.d.ts +13 -0
  442. package/dist/shared/constants.js +56 -47
  443. package/dist/shared/constants.js.map +1 -1
  444. package/dist/style.css +1 -1
  445. package/dist/types/i18next.d.ts +129 -99
  446. package/package.json +14 -15
  447. package/dist/components/Common/hooks/useAsyncError.js.map +0 -1
  448. package/dist/components/Common/hooks/useMenu.js.map +0 -1
  449. package/dist/components/Common/hooks/useNumberFormatter.js.map +0 -1
  450. package/dist/components/Employee/Deductions/DeductionsForm/ChildSupportForm.js +0 -221
  451. package/dist/components/Employee/Deductions/DeductionsForm/ChildSupportForm.js.map +0 -1
  452. package/dist/components/Employee/Deductions/DeductionsForm/ChildSupportForm.module.scss.js +0 -8
  453. package/dist/components/Employee/Deductions/DeductionsForm/ChildSupportForm.module.scss.js.map +0 -1
  454. package/dist/components/Employee/Deductions/DeductionsForm/CustomDeductionForm.js +0 -132
  455. package/dist/components/Employee/Deductions/DeductionsForm/CustomDeductionForm.js.map +0 -1
  456. package/dist/components/Employee/Deductions/DeductionsForm/DeductionsForm.module.scss.js +0 -14
  457. package/dist/components/Employee/Deductions/DeductionsForm/DeductionsForm.module.scss.js.map +0 -1
  458. package/dist/components/Employee/Deductions/DeductionsForm/UNSTABLE_DeductionsForm.js +0 -98
  459. package/dist/components/Employee/Deductions/DeductionsForm/UNSTABLE_DeductionsForm.js.map +0 -1
  460. package/dist/i18n/en/Company.AddBank.json.js +0 -28
  461. package/dist/i18n/en/Company.AddBank.json.js.map +0 -1
  462. package/dist/i18n/en/Payroll.PayrollSchedule.json.js +0 -27
  463. package/dist/i18n/en/Payroll.PayrollSchedule.json.js.map +0 -1
  464. /package/dist/{components/Common/hooks → hooks}/useAsyncError.d.ts +0 -0
  465. /package/dist/{components/Common/hooks → hooks}/useAsyncError.js +0 -0
  466. /package/dist/{components/Common/hooks → hooks}/useMenu.d.ts +0 -0
  467. /package/dist/{components/Common/hooks → hooks}/useMenu.js +0 -0
  468. /package/dist/{components/Common/hooks → hooks}/useNumberFormatter.d.ts +0 -0
@@ -1,46 +1,46 @@
1
- const l = (r) => {
2
- const e = {};
3
- for (const [n, s] of Object.entries(r)) {
4
- const o = [];
5
- let t = s;
6
- for (; t; ) {
7
- o.unshift(t.item);
8
- const c = t.parent;
9
- t = c ? r[c] ?? null : null;
1
+ const a = (r) => {
2
+ const t = {};
3
+ for (const [c, n] of Object.entries(r)) {
4
+ const s = [];
5
+ let e = n;
6
+ for (; e; ) {
7
+ s.unshift(e.item);
8
+ const o = e.parent;
9
+ e = o ? r[o] ?? null : null;
10
10
  }
11
- e[n] = o;
11
+ t[c] = s;
12
12
  }
13
- return e;
14
- }, u = (r, e) => {
13
+ return t;
14
+ }, u = (r, t) => {
15
15
  if (!r)
16
16
  return {};
17
- const n = {};
18
- for (const [s, o] of Object.entries(r)) {
19
- const t = o.match(/{{(.*?)}}/);
20
- if (t?.[1]) {
21
- const c = t[1].trim();
22
- n[s] = e[c] ?? "";
17
+ const c = {};
18
+ for (const [n, s] of Object.entries(r)) {
19
+ const e = s.match(/{{(.*?)}}/);
20
+ if (e?.[1]) {
21
+ const o = e[1].trim();
22
+ c[n] = t[o] ?? "";
23
23
  } else
24
- n[s] = o;
24
+ c[n] = s;
25
25
  }
26
- return n;
27
- }, i = (r, e, n) => {
28
- const s = e.breadcrumbs ?? {}, t = (s[r] ?? []).map((c) => c.id === r && n ? {
29
- ...c,
30
- variables: u(n, e)
31
- } : c);
26
+ return c;
27
+ }, l = (r, t, c) => {
28
+ const n = t.breadcrumbs ?? {}, e = (n[r] ?? []).map((o) => ({
29
+ ...o,
30
+ variables: u(c, t)
31
+ }));
32
32
  return {
33
- ...e,
33
+ ...t,
34
34
  breadcrumbs: {
35
- ...s,
36
- [r]: t
35
+ ...n,
36
+ [r]: e
37
37
  },
38
38
  currentBreadcrumbId: r
39
39
  };
40
40
  };
41
41
  export {
42
- l as buildBreadcrumbs,
42
+ a as buildBreadcrumbs,
43
43
  u as resolveBreadcrumbVariables,
44
- i as updateBreadcrumbs
44
+ l as updateBreadcrumbs
45
45
  };
46
46
  //# sourceMappingURL=breadcrumbHelpers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"breadcrumbHelpers.js","sources":["../../src/helpers/breadcrumbHelpers.ts"],"sourcesContent":["import type {\n BreadcrumbNode,\n BreadcrumbNodes,\n BreadcrumbTrail,\n FlowBreadcrumb,\n} from '@/components/Common/FlowBreadcrumbs/FlowBreadcrumbsTypes'\n\n/**\n * Builds a complete breadcrumb trail map from a hierarchical node structure.\n *\n * Takes a tree structure of breadcrumb nodes and generates a map where each state\n * has its complete breadcrumb trail from root to that state. This is useful for\n * initializing breadcrumb navigation in state machines or multi-step flows.\n */\nexport const buildBreadcrumbs = (nodes: BreadcrumbNodes): BreadcrumbTrail => {\n const map: Record<string, FlowBreadcrumb[]> = {}\n\n for (const [state, node] of Object.entries(nodes)) {\n const trail: FlowBreadcrumb[] = []\n let current: BreadcrumbNode | null = node\n\n while (current) {\n trail.unshift(current.item)\n const parentKey: string | null = current.parent\n current = parentKey ? (nodes[parentKey] ?? null) : null\n }\n\n map[state] = trail\n }\n\n return map\n}\n\n/**\n * Resolves template variables in breadcrumb labels using values from a context object.\n *\n * Supports Handlebars-style template syntax ({{variableName}}) for dynamic breadcrumb labels.\n * Variables enclosed in double braces are replaced with their corresponding values from the context.\n * Non-template strings are returned as-is.\n */\nexport const resolveBreadcrumbVariables = (\n variables: Record<string, string> | undefined,\n context: Record<string, unknown>,\n): Record<string, unknown> => {\n if (!variables) {\n return {}\n }\n\n const resolved: Record<string, unknown> = {}\n for (const [key, value] of Object.entries(variables)) {\n const match = value.match(/{{(.*?)}}/)\n if (match?.[1]) {\n const ctxKey = match[1].trim()\n resolved[key] = context[ctxKey] ?? ''\n } else {\n resolved[key] = value\n }\n }\n return resolved\n}\n\n/**\n * Updates the breadcrumb trail for a specific state with resolved variables.\n *\n * This function is typically used in state machine transitions to update breadcrumb\n * navigation when moving between states. It preserves all existing breadcrumb trails\n * for other states and only updates the trail for the specified state by resolving\n * any template variables for that state's breadcrumb.\n\n */\nexport const updateBreadcrumbs = <\n T extends { breadcrumbs?: BreadcrumbTrail; currentBreadcrumb?: string },\n>(\n stateName: string,\n context: T,\n variables?: Record<string, string>,\n): Omit<T, 'breadcrumbs' | 'currentBreadcrumb'> & {\n breadcrumbs: BreadcrumbTrail\n currentBreadcrumbId: string\n} => {\n const allBreadcrumbs = context.breadcrumbs ?? {}\n const trail = allBreadcrumbs[stateName] ?? []\n const resolvedTrail = trail.map(breadcrumb => {\n if (breadcrumb.id === stateName && variables) {\n return {\n ...breadcrumb,\n variables: resolveBreadcrumbVariables(variables, context as Record<string, unknown>),\n }\n }\n return breadcrumb\n })\n return {\n ...context,\n breadcrumbs: {\n ...allBreadcrumbs,\n [stateName]: resolvedTrail,\n },\n currentBreadcrumbId: stateName,\n }\n}\n"],"names":["buildBreadcrumbs","nodes","map","state","node","trail","current","parentKey","resolveBreadcrumbVariables","variables","context","resolved","key","value","match","ctxKey","updateBreadcrumbs","stateName","allBreadcrumbs","resolvedTrail","breadcrumb"],"mappings":"AAcO,MAAMA,IAAmB,CAACC,MAA4C;AAC3E,QAAMC,IAAwC,CAAA;AAE9C,aAAW,CAACC,GAAOC,CAAI,KAAK,OAAO,QAAQH,CAAK,GAAG;AACjD,UAAMI,IAA0B,CAAA;AAChC,QAAIC,IAAiCF;AAErC,WAAOE,KAAS;AACd,MAAAD,EAAM,QAAQC,EAAQ,IAAI;AAC1B,YAAMC,IAA2BD,EAAQ;AACzC,MAAAA,IAAUC,IAAaN,EAAMM,CAAS,KAAK,OAAQ;AAAA,IACrD;AAEA,IAAAL,EAAIC,CAAK,IAAIE;AAAA,EACf;AAEA,SAAOH;AACT,GASaM,IAA6B,CACxCC,GACAC,MAC4B;AAC5B,MAAI,CAACD;AACH,WAAO,CAAA;AAGT,QAAME,IAAoC,CAAA;AAC1C,aAAW,CAACC,GAAKC,CAAK,KAAK,OAAO,QAAQJ,CAAS,GAAG;AACpD,UAAMK,IAAQD,EAAM,MAAM,WAAW;AACrC,QAAIC,IAAQ,CAAC,GAAG;AACd,YAAMC,IAASD,EAAM,CAAC,EAAE,KAAA;AACxB,MAAAH,EAASC,CAAG,IAAIF,EAAQK,CAAM,KAAK;AAAA,IACrC;AACE,MAAAJ,EAASC,CAAG,IAAIC;AAAA,EAEpB;AACA,SAAOF;AACT,GAWaK,IAAoB,CAG/BC,GACAP,GACAD,MAIG;AACH,QAAMS,IAAiBR,EAAQ,eAAe,CAAA,GAExCS,KADQD,EAAeD,CAAS,KAAK,CAAA,GACf,IAAI,CAAAG,MAC1BA,EAAW,OAAOH,KAAaR,IAC1B;AAAA,IACL,GAAGW;AAAA,IACH,WAAWZ,EAA2BC,GAAWC,CAAkC;AAAA,EAAA,IAGhFU,CACR;AACD,SAAO;AAAA,IACL,GAAGV;AAAA,IACH,aAAa;AAAA,MACX,GAAGQ;AAAA,MACH,CAACD,CAAS,GAAGE;AAAA,IAAA;AAAA,IAEf,qBAAqBF;AAAA,EAAA;AAEzB;"}
1
+ {"version":3,"file":"breadcrumbHelpers.js","sources":["../../src/helpers/breadcrumbHelpers.ts"],"sourcesContent":["import type {\n BreadcrumbNode,\n BreadcrumbNodes,\n BreadcrumbTrail,\n FlowBreadcrumb,\n} from '@/components/Common/FlowBreadcrumbs/FlowBreadcrumbsTypes'\n\n/**\n * Builds a complete breadcrumb trail map from a hierarchical node structure.\n *\n * Takes a tree structure of breadcrumb nodes and generates a map where each state\n * has its complete breadcrumb trail from root to that state. This is useful for\n * initializing breadcrumb navigation in state machines or multi-step flows.\n */\nexport const buildBreadcrumbs = (nodes: BreadcrumbNodes): BreadcrumbTrail => {\n const map: Record<string, FlowBreadcrumb[]> = {}\n\n for (const [state, node] of Object.entries(nodes)) {\n const trail: FlowBreadcrumb[] = []\n let current: BreadcrumbNode | null = node\n\n while (current) {\n trail.unshift(current.item)\n const parentKey: string | null = current.parent\n current = parentKey ? (nodes[parentKey] ?? null) : null\n }\n\n map[state] = trail\n }\n\n return map\n}\n\n/**\n * Resolves template variables in breadcrumb labels using values from a context object.\n *\n * Supports Handlebars-style template syntax ({{variableName}}) for dynamic breadcrumb labels.\n * Variables enclosed in double braces are replaced with their corresponding values from the context.\n * Non-template strings are returned as-is.\n */\nexport const resolveBreadcrumbVariables = (\n variables: Record<string, string> | undefined,\n context: Record<string, unknown>,\n): Record<string, unknown> => {\n if (!variables) {\n return {}\n }\n\n const resolved: Record<string, unknown> = {}\n for (const [key, value] of Object.entries(variables)) {\n const match = value.match(/{{(.*?)}}/)\n if (match?.[1]) {\n const ctxKey = match[1].trim()\n resolved[key] = context[ctxKey] ?? ''\n } else {\n resolved[key] = value\n }\n }\n return resolved\n}\n\n/**\n * Updates the breadcrumb trail for a specific state with resolved variables.\n *\n * This function is typically used in state machine transitions to update breadcrumb\n * navigation when moving between states. It preserves all existing breadcrumb trails\n * for other states and only updates the trail for the specified state by resolving\n * any template variables for that state's breadcrumb.\n\n */\nexport const updateBreadcrumbs = <\n T extends { breadcrumbs?: BreadcrumbTrail; currentBreadcrumb?: string },\n>(\n stateName: string,\n context: T,\n variables?: Record<string, string>,\n): Omit<T, 'breadcrumbs' | 'currentBreadcrumb'> & {\n breadcrumbs: BreadcrumbTrail\n currentBreadcrumbId: string\n} => {\n const allBreadcrumbs = context.breadcrumbs ?? {}\n const trail = allBreadcrumbs[stateName] ?? []\n const resolvedTrail = trail.map(breadcrumb => {\n return {\n ...breadcrumb,\n variables: resolveBreadcrumbVariables(variables, context as Record<string, unknown>),\n }\n })\n return {\n ...context,\n breadcrumbs: {\n ...allBreadcrumbs,\n [stateName]: resolvedTrail,\n },\n currentBreadcrumbId: stateName,\n }\n}\n"],"names":["buildBreadcrumbs","nodes","map","state","node","trail","current","parentKey","resolveBreadcrumbVariables","variables","context","resolved","key","value","match","ctxKey","updateBreadcrumbs","stateName","allBreadcrumbs","resolvedTrail","breadcrumb"],"mappings":"AAcO,MAAMA,IAAmB,CAACC,MAA4C;AAC3E,QAAMC,IAAwC,CAAA;AAE9C,aAAW,CAACC,GAAOC,CAAI,KAAK,OAAO,QAAQH,CAAK,GAAG;AACjD,UAAMI,IAA0B,CAAA;AAChC,QAAIC,IAAiCF;AAErC,WAAOE,KAAS;AACd,MAAAD,EAAM,QAAQC,EAAQ,IAAI;AAC1B,YAAMC,IAA2BD,EAAQ;AACzC,MAAAA,IAAUC,IAAaN,EAAMM,CAAS,KAAK,OAAQ;AAAA,IACrD;AAEA,IAAAL,EAAIC,CAAK,IAAIE;AAAA,EACf;AAEA,SAAOH;AACT,GASaM,IAA6B,CACxCC,GACAC,MAC4B;AAC5B,MAAI,CAACD;AACH,WAAO,CAAA;AAGT,QAAME,IAAoC,CAAA;AAC1C,aAAW,CAACC,GAAKC,CAAK,KAAK,OAAO,QAAQJ,CAAS,GAAG;AACpD,UAAMK,IAAQD,EAAM,MAAM,WAAW;AACrC,QAAIC,IAAQ,CAAC,GAAG;AACd,YAAMC,IAASD,EAAM,CAAC,EAAE,KAAA;AACxB,MAAAH,EAASC,CAAG,IAAIF,EAAQK,CAAM,KAAK;AAAA,IACrC;AACE,MAAAJ,EAASC,CAAG,IAAIC;AAAA,EAEpB;AACA,SAAOF;AACT,GAWaK,IAAoB,CAG/BC,GACAP,GACAD,MAIG;AACH,QAAMS,IAAiBR,EAAQ,eAAe,CAAA,GAExCS,KADQD,EAAeD,CAAS,KAAK,CAAA,GACf,IAAI,CAAAG,OACvB;AAAA,IACL,GAAGA;AAAA,IACH,WAAWZ,EAA2BC,GAAWC,CAAkC;AAAA,EAAA,EAEtF;AACD,SAAO;AAAA,IACL,GAAGA;AAAA,IACH,aAAa;AAAA,MACX,GAAGQ;AAAA,MACH,CAACD,CAAS,GAAGE;AAAA,IAAA;AAAA,IAEf,qBAAqBF;AAAA,EAAA;AAEzB;"}
@@ -1,13 +1,21 @@
1
- export declare const formatDateNamedWeekdayShortPlusDate: (date?: string, locale?: string) => string;
2
- export declare const formatDateTimeWithTimezone: (date?: string | Date, locale?: string) => {
1
+ export declare const formatDateShortWithWeekday: (dateInput?: string | Date | null, locale?: string) => string;
2
+ export declare const formatDateShortWithWeekdayAndYear: (dateInput?: string | Date | null, locale?: string) => string;
3
+ export declare const formatDateShort: (dateInput?: string | Date | null, locale?: string) => string;
4
+ export declare const formatDateShortWithYear: (dateInput?: string | Date | null, locale?: string) => string;
5
+ export declare const formatDateLong: (dateInput?: string | Date | null, locale?: string) => string;
6
+ export declare const formatDateLongWithYear: (dateInput?: string | Date | null, locale?: string) => string;
7
+ export declare const formatDateWithTime: (dateInput?: string | Date | null, locale?: string) => {
3
8
  time: string;
4
9
  date: string;
5
10
  };
6
- export declare const formatDateToStringDate: (date: Date) => string | null | undefined;
7
- /**
8
- * Parses YYYY-MM-DD string to local Date, avoiding timezone issues from `new Date(dateString)`.
9
- */
10
- export declare const parseDateStringToLocal: (dateString: string) => Date | null;
11
+ export declare const formatPayPeriod: (startDateInput?: string | Date | null, endDateInput?: string | Date | null, locale?: string) => {
12
+ startDate: string;
13
+ endDate: string;
14
+ };
15
+ export declare const formatPayPeriodRange: (startDateInput?: string | Date | null, endDateInput?: string | Date | null, locale?: string, options?: {
16
+ useShortMonth?: boolean;
17
+ }) => string;
18
+ export declare const formatDateToStringDate: (date: Date) => string | null;
11
19
  /**
12
20
  * Normalizes Date to local midnight, handling timezone issues from any adapter.
13
21
  */
@@ -1,49 +1,102 @@
1
- const m = (t, r) => {
2
- if (!t) return "";
3
- const e = u(t);
4
- return e ? e.toLocaleDateString(r, {
5
- weekday: "short",
6
- month: "short",
7
- day: "numeric"
8
- }) : "";
9
- }, l = (t, r) => {
10
- if (!t) return { time: "", date: "" };
11
- const e = typeof t == "string" ? new Date(t) : t;
12
- if (isNaN(e.getTime())) return { time: "", date: "" };
13
- const o = e.toLocaleTimeString(r, {
1
+ const m = (t) => {
2
+ if (!t) return null;
3
+ if (typeof t == "string") {
4
+ if (/^\d{4}-\d{2}-\d{2}$/.test(t)) {
5
+ const r = t.split("-");
6
+ if (r.length !== 3) return null;
7
+ const e = r.map(Number), n = e[0], i = e[1], o = e[2];
8
+ return n === void 0 || i === void 0 || o === void 0 || isNaN(n) || isNaN(i) || isNaN(o) || i < 1 || i > 12 || o < 1 || o > 31 ? null : new Date(n, i - 1, o);
9
+ }
10
+ const a = new Date(t);
11
+ return isNaN(a.getTime()) ? null : a;
12
+ }
13
+ return t instanceof Date ? isNaN(t.getTime()) ? null : t : null;
14
+ }, c = (t) => (a, r) => {
15
+ const e = m(a);
16
+ return e ? e.toLocaleDateString(r, t) : "";
17
+ }, h = c({
18
+ weekday: "short",
19
+ month: "short",
20
+ day: "numeric"
21
+ }), l = c({
22
+ weekday: "short",
23
+ month: "short",
24
+ day: "numeric",
25
+ year: "numeric"
26
+ }), d = c({
27
+ month: "short",
28
+ day: "numeric"
29
+ }), D = c({
30
+ month: "short",
31
+ day: "numeric",
32
+ year: "numeric"
33
+ }), f = c({
34
+ month: "long",
35
+ day: "numeric"
36
+ }), y = c({
37
+ month: "long",
38
+ day: "numeric",
39
+ year: "numeric"
40
+ }), g = (t, a) => {
41
+ const r = m(t);
42
+ if (!r) return { time: "", date: "" };
43
+ const e = r.toLocaleTimeString(a, {
14
44
  hour: "numeric",
15
45
  minute: "2-digit",
16
46
  hour12: !0,
17
47
  timeZoneName: "short"
18
- }), n = e.toLocaleDateString(r, {
48
+ }), n = r.toLocaleDateString(a, {
19
49
  weekday: "short",
20
50
  month: "short",
21
51
  day: "numeric"
22
52
  });
23
- return { time: o, date: n };
24
- }, c = (t) => isNaN(t.getTime()) ? null : t.toISOString().split("T")[0], u = (t) => {
25
- if (!t || !/^\d{4}-\d{2}-\d{2}$/.test(t))
26
- return null;
27
- const r = t.split("-");
28
- if (r.length !== 3)
29
- return null;
30
- const e = r.map(Number), o = e[0], n = e[1], i = e[2];
31
- return o === void 0 || n === void 0 || i === void 0 || isNaN(o) || isNaN(n) || isNaN(i) || n < 1 || n > 12 || i < 1 || i > 31 ? null : new Date(o, n - 1, i);
32
- }, N = (t) => {
53
+ return { time: e, date: n };
54
+ }, N = (t, a, r) => {
55
+ const e = m(t), n = m(a);
56
+ if (!e || !n)
57
+ return { startDate: "", endDate: "" };
58
+ const i = e.toLocaleDateString(r, {
59
+ month: "long",
60
+ day: "numeric"
61
+ }), o = n.toLocaleDateString(r, {
62
+ month: "short",
63
+ day: "numeric",
64
+ year: "numeric"
65
+ });
66
+ return { startDate: i, endDate: o };
67
+ }, S = (t, a, r, e) => {
68
+ const n = m(t), i = m(a);
69
+ if (!n || !i) return "";
70
+ const o = e?.useShortMonth ? "short" : "long", s = n.toLocaleDateString(r, {
71
+ month: o,
72
+ day: "numeric"
73
+ }), u = i.toLocaleDateString(r, {
74
+ month: o,
75
+ day: "numeric",
76
+ year: "numeric"
77
+ });
78
+ return `${s}–${u}`;
79
+ }, T = (t) => isNaN(t.getTime()) ? null : t.toISOString().split("T")[0] || null, L = (t) => {
33
80
  if (!t || isNaN(t.getTime()))
34
81
  return null;
35
- const r = t.toISOString(), [e] = r.split("T");
36
- if (!e) return null;
37
- const o = e.split("-");
38
- if (o.length !== 3) return null;
39
- const n = o.map(Number), i = n[0], s = n[1], a = n[2];
40
- return isNaN(i) || isNaN(s) || isNaN(a) || s < 1 || s > 12 || a < 1 || a > 31 ? null : new Date(i, s - 1, a);
82
+ const a = t.toISOString(), [r] = a.split("T");
83
+ if (!r) return null;
84
+ const e = r.split("-");
85
+ if (e.length !== 3) return null;
86
+ const n = e.map(Number), i = n[0], o = n[1], s = n[2];
87
+ return isNaN(i) || isNaN(o) || isNaN(s) || o < 1 || o > 12 || s < 1 || s > 31 ? null : new Date(i, o - 1, s);
41
88
  };
42
89
  export {
43
- m as formatDateNamedWeekdayShortPlusDate,
44
- l as formatDateTimeWithTimezone,
45
- c as formatDateToStringDate,
46
- N as normalizeDateToLocal,
47
- u as parseDateStringToLocal
90
+ f as formatDateLong,
91
+ y as formatDateLongWithYear,
92
+ d as formatDateShort,
93
+ h as formatDateShortWithWeekday,
94
+ l as formatDateShortWithWeekdayAndYear,
95
+ D as formatDateShortWithYear,
96
+ T as formatDateToStringDate,
97
+ g as formatDateWithTime,
98
+ N as formatPayPeriod,
99
+ S as formatPayPeriodRange,
100
+ L as normalizeDateToLocal
48
101
  };
49
102
  //# sourceMappingURL=dateFormatting.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"dateFormatting.js","sources":["../../src/helpers/dateFormatting.ts"],"sourcesContent":["export const formatDateNamedWeekdayShortPlusDate = (date?: string, locale?: string) => {\n if (!date) return ''\n const parsedDate = parseDateStringToLocal(date)\n if (!parsedDate) return ''\n return parsedDate.toLocaleDateString(locale, {\n weekday: 'short',\n month: 'short',\n day: 'numeric',\n })\n}\n\nexport const formatDateTimeWithTimezone = (date?: string | Date, locale?: string) => {\n if (!date) return { time: '', date: '' }\n const parsedDate = typeof date === 'string' ? new Date(date) : date\n if (isNaN(parsedDate.getTime())) return { time: '', date: '' }\n\n const time = parsedDate.toLocaleTimeString(locale, {\n hour: 'numeric',\n minute: '2-digit',\n hour12: true,\n timeZoneName: 'short',\n })\n\n const dateString = parsedDate.toLocaleDateString(locale, {\n weekday: 'short',\n month: 'short',\n day: 'numeric',\n })\n\n return { time, date: dateString }\n}\n\nexport const formatDateToStringDate = (date: Date) => {\n // Handle invalid dates gracefully\n if (isNaN(date.getTime())) {\n return null\n }\n return date.toISOString().split('T')[0]\n}\n\n/**\n * Parses YYYY-MM-DD string to local Date, avoiding timezone issues from `new Date(dateString)`.\n */\nexport const parseDateStringToLocal = (dateString: string): Date | null => {\n if (!dateString || !/^\\d{4}-\\d{2}-\\d{2}$/.test(dateString)) {\n return null\n }\n\n const parts = dateString.split('-')\n if (parts.length !== 3) {\n return null\n }\n\n const numbers = parts.map(Number)\n const year = numbers[0]\n const month = numbers[1]\n const day = numbers[2]\n if (year === undefined || month === undefined || day === undefined) {\n return null\n }\n\n // Validate date components\n if (isNaN(year) || isNaN(month) || isNaN(day) || month < 1 || month > 12 || day < 1 || day > 31) {\n return null\n }\n\n // Create Date in local timezone (month is 0-indexed)\n return new Date(year, month - 1, day)\n}\n\n/**\n * Normalizes Date to local midnight, handling timezone issues from any adapter.\n */\nexport const normalizeDateToLocal = (date: Date | null): Date | null => {\n if (!date || isNaN(date.getTime())) {\n return null\n }\n\n // Use ISO string to get the intended date, then parse components\n const isoString = date.toISOString()\n const [datePart] = isoString.split('T')\n if (!datePart) return null\n\n const parts = datePart.split('-')\n if (parts.length !== 3) return null\n const numbers = parts.map(Number)\n const year = numbers[0]!\n const month = numbers[1]!\n const day = numbers[2]!\n if (isNaN(year) || isNaN(month) || isNaN(day) || month < 1 || month > 12 || day < 1 || day > 31) {\n return null\n }\n\n return new Date(year, month - 1, day)\n}\n"],"names":["formatDateNamedWeekdayShortPlusDate","date","locale","parsedDate","parseDateStringToLocal","formatDateTimeWithTimezone","time","dateString","formatDateToStringDate","parts","numbers","year","month","day","normalizeDateToLocal","isoString","datePart"],"mappings":"AAAO,MAAMA,IAAsC,CAACC,GAAeC,MAAoB;AACrF,MAAI,CAACD,EAAM,QAAO;AAClB,QAAME,IAAaC,EAAuBH,CAAI;AAC9C,SAAKE,IACEA,EAAW,mBAAmBD,GAAQ;AAAA,IAC3C,SAAS;AAAA,IACT,OAAO;AAAA,IACP,KAAK;AAAA,EAAA,CACN,IALuB;AAM1B,GAEaG,IAA6B,CAACJ,GAAsBC,MAAoB;AACnF,MAAI,CAACD,EAAM,QAAO,EAAE,MAAM,IAAI,MAAM,GAAA;AACpC,QAAME,IAAa,OAAOF,KAAS,WAAW,IAAI,KAAKA,CAAI,IAAIA;AAC/D,MAAI,MAAME,EAAW,SAAS,UAAU,EAAE,MAAM,IAAI,MAAM,GAAA;AAE1D,QAAMG,IAAOH,EAAW,mBAAmBD,GAAQ;AAAA,IACjD,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,cAAc;AAAA,EAAA,CACf,GAEKK,IAAaJ,EAAW,mBAAmBD,GAAQ;AAAA,IACvD,SAAS;AAAA,IACT,OAAO;AAAA,IACP,KAAK;AAAA,EAAA,CACN;AAED,SAAO,EAAE,MAAAI,GAAM,MAAMC,EAAA;AACvB,GAEaC,IAAyB,CAACP,MAEjC,MAAMA,EAAK,QAAA,CAAS,IACf,OAEFA,EAAK,YAAA,EAAc,MAAM,GAAG,EAAE,CAAC,GAM3BG,IAAyB,CAACG,MAAoC;AACzE,MAAI,CAACA,KAAc,CAAC,sBAAsB,KAAKA,CAAU;AACvD,WAAO;AAGT,QAAME,IAAQF,EAAW,MAAM,GAAG;AAClC,MAAIE,EAAM,WAAW;AACnB,WAAO;AAGT,QAAMC,IAAUD,EAAM,IAAI,MAAM,GAC1BE,IAAOD,EAAQ,CAAC,GAChBE,IAAQF,EAAQ,CAAC,GACjBG,IAAMH,EAAQ,CAAC;AAMrB,SALIC,MAAS,UAAaC,MAAU,UAAaC,MAAQ,UAKrD,MAAMF,CAAI,KAAK,MAAMC,CAAK,KAAK,MAAMC,CAAG,KAAKD,IAAQ,KAAKA,IAAQ,MAAMC,IAAM,KAAKA,IAAM,KACpF,OAIF,IAAI,KAAKF,GAAMC,IAAQ,GAAGC,CAAG;AACtC,GAKaC,IAAuB,CAACb,MAAmC;AACtE,MAAI,CAACA,KAAQ,MAAMA,EAAK,QAAA,CAAS;AAC/B,WAAO;AAIT,QAAMc,IAAYd,EAAK,YAAA,GACjB,CAACe,CAAQ,IAAID,EAAU,MAAM,GAAG;AACtC,MAAI,CAACC,EAAU,QAAO;AAEtB,QAAMP,IAAQO,EAAS,MAAM,GAAG;AAChC,MAAIP,EAAM,WAAW,EAAG,QAAO;AAC/B,QAAMC,IAAUD,EAAM,IAAI,MAAM,GAC1BE,IAAOD,EAAQ,CAAC,GAChBE,IAAQF,EAAQ,CAAC,GACjBG,IAAMH,EAAQ,CAAC;AACrB,SAAI,MAAMC,CAAI,KAAK,MAAMC,CAAK,KAAK,MAAMC,CAAG,KAAKD,IAAQ,KAAKA,IAAQ,MAAMC,IAAM,KAAKA,IAAM,KACpF,OAGF,IAAI,KAAKF,GAAMC,IAAQ,GAAGC,CAAG;AACtC;"}
1
+ {"version":3,"file":"dateFormatting.js","sources":["../../src/helpers/dateFormatting.ts"],"sourcesContent":["/**\n * Normalizes any date input (string, Date, or undefined) to a Date object.\n * Handles YYYY-MM-DD strings by parsing them in local timezone to avoid timezone issues.\n * Also handles ISO timestamp strings for compatibility.\n * Returns null for invalid inputs.\n */\nconst normalizeToDate = (dateInput?: string | Date | null): Date | null => {\n if (!dateInput) return null\n\n if (typeof dateInput === 'string') {\n if (/^\\d{4}-\\d{2}-\\d{2}$/.test(dateInput)) {\n const parts = dateInput.split('-')\n if (parts.length !== 3) return null\n\n const numbers = parts.map(Number)\n const year = numbers[0]\n const month = numbers[1]\n const day = numbers[2]\n if (year === undefined || month === undefined || day === undefined) {\n return null\n }\n\n if (\n isNaN(year) ||\n isNaN(month) ||\n isNaN(day) ||\n month < 1 ||\n month > 12 ||\n day < 1 ||\n day > 31\n ) {\n return null\n }\n\n return new Date(year, month - 1, day)\n }\n\n const parsedDate = new Date(dateInput)\n return isNaN(parsedDate.getTime()) ? null : parsedDate\n }\n\n if (dateInput instanceof Date) {\n return isNaN(dateInput.getTime()) ? null : dateInput\n }\n\n return null\n}\n\n/**\n * Creates a date formatter function that handles both string and Date inputs.\n */\nconst createDateFormatter =\n (options: Intl.DateTimeFormatOptions) =>\n (dateInput?: string | Date | null, locale?: string): string => {\n const date = normalizeToDate(dateInput)\n if (!date) return ''\n return date.toLocaleDateString(locale, options)\n }\n\nexport const formatDateShortWithWeekday = createDateFormatter({\n weekday: 'short',\n month: 'short',\n day: 'numeric',\n})\n\nexport const formatDateShortWithWeekdayAndYear = createDateFormatter({\n weekday: 'short',\n month: 'short',\n day: 'numeric',\n year: 'numeric',\n})\n\nexport const formatDateShort = createDateFormatter({\n month: 'short',\n day: 'numeric',\n})\n\nexport const formatDateShortWithYear = createDateFormatter({\n month: 'short',\n day: 'numeric',\n year: 'numeric',\n})\n\nexport const formatDateLong = createDateFormatter({\n month: 'long',\n day: 'numeric',\n})\n\nexport const formatDateLongWithYear = createDateFormatter({\n month: 'long',\n day: 'numeric',\n year: 'numeric',\n})\n\nexport const formatDateWithTime = (\n dateInput?: string | Date | null,\n locale?: string,\n): { time: string; date: string } => {\n const date = normalizeToDate(dateInput)\n if (!date) return { time: '', date: '' }\n\n const time = date.toLocaleTimeString(locale, {\n hour: 'numeric',\n minute: '2-digit',\n hour12: true,\n timeZoneName: 'short',\n })\n\n const dateString = date.toLocaleDateString(locale, {\n weekday: 'short',\n month: 'short',\n day: 'numeric',\n })\n\n return { time, date: dateString }\n}\n\nexport const formatPayPeriod = (\n startDateInput?: string | Date | null,\n endDateInput?: string | Date | null,\n locale?: string,\n): { startDate: string; endDate: string } => {\n const startDate = normalizeToDate(startDateInput)\n const endDate = normalizeToDate(endDateInput)\n\n if (!startDate || !endDate) {\n return { startDate: '', endDate: '' }\n }\n\n const startFormatted = startDate.toLocaleDateString(locale, {\n month: 'long',\n day: 'numeric',\n })\n\n const endFormatted = endDate.toLocaleDateString(locale, {\n month: 'short',\n day: 'numeric',\n year: 'numeric',\n })\n\n return { startDate: startFormatted, endDate: endFormatted }\n}\n\nexport const formatPayPeriodRange = (\n startDateInput?: string | Date | null,\n endDateInput?: string | Date | null,\n locale?: string,\n options?: { useShortMonth?: boolean },\n): string => {\n const startDate = normalizeToDate(startDateInput)\n const endDate = normalizeToDate(endDateInput)\n\n if (!startDate || !endDate) return ''\n\n const monthFormat = options?.useShortMonth ? 'short' : 'long'\n\n const startFormatted = startDate.toLocaleDateString(locale, {\n month: monthFormat,\n day: 'numeric',\n })\n\n const endFormatted = endDate.toLocaleDateString(locale, {\n month: monthFormat,\n day: 'numeric',\n year: 'numeric',\n })\n\n return `${startFormatted}–${endFormatted}`\n}\n\nexport const formatDateToStringDate = (date: Date): string | null => {\n if (isNaN(date.getTime())) {\n return null\n }\n return date.toISOString().split('T')[0] || null\n}\n\n/**\n * Normalizes Date to local midnight, handling timezone issues from any adapter.\n */\nexport const normalizeDateToLocal = (date: Date | null): Date | null => {\n if (!date || isNaN(date.getTime())) {\n return null\n }\n\n const isoString = date.toISOString()\n const [datePart] = isoString.split('T')\n if (!datePart) return null\n\n const parts = datePart.split('-')\n if (parts.length !== 3) return null\n const numbers = parts.map(Number)\n const year = numbers[0]!\n const month = numbers[1]!\n const day = numbers[2]!\n if (isNaN(year) || isNaN(month) || isNaN(day) || month < 1 || month > 12 || day < 1 || day > 31) {\n return null\n }\n\n return new Date(year, month - 1, day)\n}\n"],"names":["normalizeToDate","dateInput","parts","numbers","year","month","day","parsedDate","createDateFormatter","options","locale","date","formatDateShortWithWeekday","formatDateShortWithWeekdayAndYear","formatDateShort","formatDateShortWithYear","formatDateLong","formatDateLongWithYear","formatDateWithTime","time","dateString","formatPayPeriod","startDateInput","endDateInput","startDate","endDate","startFormatted","endFormatted","formatPayPeriodRange","monthFormat","formatDateToStringDate","normalizeDateToLocal","isoString","datePart"],"mappings":"AAMA,MAAMA,IAAkB,CAACC,MAAkD;AACzE,MAAI,CAACA,EAAW,QAAO;AAEvB,MAAI,OAAOA,KAAc,UAAU;AACjC,QAAI,sBAAsB,KAAKA,CAAS,GAAG;AACzC,YAAMC,IAAQD,EAAU,MAAM,GAAG;AACjC,UAAIC,EAAM,WAAW,EAAG,QAAO;AAE/B,YAAMC,IAAUD,EAAM,IAAI,MAAM,GAC1BE,IAAOD,EAAQ,CAAC,GAChBE,IAAQF,EAAQ,CAAC,GACjBG,IAAMH,EAAQ,CAAC;AAKrB,aAJIC,MAAS,UAAaC,MAAU,UAAaC,MAAQ,UAKvD,MAAMF,CAAI,KACV,MAAMC,CAAK,KACX,MAAMC,CAAG,KACTD,IAAQ,KACRA,IAAQ,MACRC,IAAM,KACNA,IAAM,KAEC,OAGF,IAAI,KAAKF,GAAMC,IAAQ,GAAGC,CAAG;AAAA,IACtC;AAEA,UAAMC,IAAa,IAAI,KAAKN,CAAS;AACrC,WAAO,MAAMM,EAAW,QAAA,CAAS,IAAI,OAAOA;AAAA,EAC9C;AAEA,SAAIN,aAAqB,OAChB,MAAMA,EAAU,QAAA,CAAS,IAAI,OAAOA,IAGtC;AACT,GAKMO,IACJ,CAACC,MACD,CAACR,GAAkCS,MAA4B;AAC7D,QAAMC,IAAOX,EAAgBC,CAAS;AACtC,SAAKU,IACEA,EAAK,mBAAmBD,GAAQD,CAAO,IAD5B;AAEpB,GAEWG,IAA6BJ,EAAoB;AAAA,EAC5D,SAAS;AAAA,EACT,OAAO;AAAA,EACP,KAAK;AACP,CAAC,GAEYK,IAAoCL,EAAoB;AAAA,EACnE,SAAS;AAAA,EACT,OAAO;AAAA,EACP,KAAK;AAAA,EACL,MAAM;AACR,CAAC,GAEYM,IAAkBN,EAAoB;AAAA,EACjD,OAAO;AAAA,EACP,KAAK;AACP,CAAC,GAEYO,IAA0BP,EAAoB;AAAA,EACzD,OAAO;AAAA,EACP,KAAK;AAAA,EACL,MAAM;AACR,CAAC,GAEYQ,IAAiBR,EAAoB;AAAA,EAChD,OAAO;AAAA,EACP,KAAK;AACP,CAAC,GAEYS,IAAyBT,EAAoB;AAAA,EACxD,OAAO;AAAA,EACP,KAAK;AAAA,EACL,MAAM;AACR,CAAC,GAEYU,IAAqB,CAChCjB,GACAS,MACmC;AACnC,QAAMC,IAAOX,EAAgBC,CAAS;AACtC,MAAI,CAACU,EAAM,QAAO,EAAE,MAAM,IAAI,MAAM,GAAA;AAEpC,QAAMQ,IAAOR,EAAK,mBAAmBD,GAAQ;AAAA,IAC3C,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,cAAc;AAAA,EAAA,CACf,GAEKU,IAAaT,EAAK,mBAAmBD,GAAQ;AAAA,IACjD,SAAS;AAAA,IACT,OAAO;AAAA,IACP,KAAK;AAAA,EAAA,CACN;AAED,SAAO,EAAE,MAAAS,GAAM,MAAMC,EAAA;AACvB,GAEaC,IAAkB,CAC7BC,GACAC,GACAb,MAC2C;AAC3C,QAAMc,IAAYxB,EAAgBsB,CAAc,GAC1CG,IAAUzB,EAAgBuB,CAAY;AAE5C,MAAI,CAACC,KAAa,CAACC;AACjB,WAAO,EAAE,WAAW,IAAI,SAAS,GAAA;AAGnC,QAAMC,IAAiBF,EAAU,mBAAmBd,GAAQ;AAAA,IAC1D,OAAO;AAAA,IACP,KAAK;AAAA,EAAA,CACN,GAEKiB,IAAeF,EAAQ,mBAAmBf,GAAQ;AAAA,IACtD,OAAO;AAAA,IACP,KAAK;AAAA,IACL,MAAM;AAAA,EAAA,CACP;AAED,SAAO,EAAE,WAAWgB,GAAgB,SAASC,EAAA;AAC/C,GAEaC,IAAuB,CAClCN,GACAC,GACAb,GACAD,MACW;AACX,QAAMe,IAAYxB,EAAgBsB,CAAc,GAC1CG,IAAUzB,EAAgBuB,CAAY;AAE5C,MAAI,CAACC,KAAa,CAACC,EAAS,QAAO;AAEnC,QAAMI,IAAcpB,GAAS,gBAAgB,UAAU,QAEjDiB,IAAiBF,EAAU,mBAAmBd,GAAQ;AAAA,IAC1D,OAAOmB;AAAA,IACP,KAAK;AAAA,EAAA,CACN,GAEKF,IAAeF,EAAQ,mBAAmBf,GAAQ;AAAA,IACtD,OAAOmB;AAAA,IACP,KAAK;AAAA,IACL,MAAM;AAAA,EAAA,CACP;AAED,SAAO,GAAGH,CAAc,IAAIC,CAAY;AAC1C,GAEaG,IAAyB,CAACnB,MACjC,MAAMA,EAAK,QAAA,CAAS,IACf,OAEFA,EAAK,cAAc,MAAM,GAAG,EAAE,CAAC,KAAK,MAMhCoB,IAAuB,CAACpB,MAAmC;AACtE,MAAI,CAACA,KAAQ,MAAMA,EAAK,QAAA,CAAS;AAC/B,WAAO;AAGT,QAAMqB,IAAYrB,EAAK,YAAA,GACjB,CAACsB,CAAQ,IAAID,EAAU,MAAM,GAAG;AACtC,MAAI,CAACC,EAAU,QAAO;AAEtB,QAAM/B,IAAQ+B,EAAS,MAAM,GAAG;AAChC,MAAI/B,EAAM,WAAW,EAAG,QAAO;AAC/B,QAAMC,IAAUD,EAAM,IAAI,MAAM,GAC1BE,IAAOD,EAAQ,CAAC,GAChBE,IAAQF,EAAQ,CAAC,GACjBG,IAAMH,EAAQ,CAAC;AACrB,SAAI,MAAMC,CAAI,KAAK,MAAMC,CAAK,KAAK,MAAMC,CAAG,KAAKD,IAAQ,KAAKA,IAAQ,MAAMC,IAAM,KAAKA,IAAM,KACpF,OAGF,IAAI,KAAKF,GAAMC,IAAQ,GAAGC,CAAG;AACtC;"}
@@ -1,20 +1,19 @@
1
1
  import m from "dompurify";
2
2
  import "react-i18next";
3
3
  import "react";
4
- import "../contexts/LocaleProvider/useLocale.js";
5
- const c = (t) => t.charAt(0).toLocaleUpperCase() + t.slice(1), h = ({
4
+ const c = (t) => t.charAt(0).toLocaleUpperCase() + t.slice(1), l = ({
6
5
  first_name: t,
7
6
  last_name: e
8
7
  }) => `${t ? c(t) : ""}${e ? n(c(e)) : ""}`, n = (t) => t ? ` ${t}` : "", i = (t) => {
9
8
  const e = n(t.street1), r = n(t.street2);
10
9
  return `${e},${r}`;
11
- }, u = (t) => `${n(t.city)}, ${n(t.state)} ${n(t.zip)}`, C = (t) => `${i(t)} ${u(t)}`, p = (t, e) => e ? `${t}%` : `$${t}`, s = (t, e = "en-US") => {
10
+ }, u = (t) => `${n(t.city)}, ${n(t.state)} ${n(t.zip)}`, h = (t) => `${i(t)} ${u(t)}`, p = (t, e) => e ? `${t}%` : `$${t}`, s = (t, e = "en-US") => {
12
11
  const r = t.toLocaleString(e, {
13
12
  minimumFractionDigits: 2,
14
13
  maximumFractionDigits: 2
15
14
  });
16
15
  return p(r, !1);
17
- }, S = ({
16
+ }, C = ({
18
17
  rate: t,
19
18
  paymentUnit: e,
20
19
  t: r,
@@ -42,20 +41,20 @@ const c = (t) => t.charAt(0).toLocaleUpperCase() + t.slice(1), h = ({
42
41
  return o;
43
42
  }
44
43
  }, y = { ALLOWED_TAGS: ["a", "b", "strong"], ALLOWED_ATTR: ["href", "target"] };
45
- function D(t) {
44
+ function S(t) {
46
45
  return t ? { __html: m.sanitize(t, y) } : { __html: "" };
47
46
  }
48
- const F = (t) => t.replace(/\D/g, ""), L = (t) => t.replace(/_([a-z])/g, (e, r) => r.toUpperCase());
47
+ const D = (t) => t.replace(/\D/g, ""), F = (t) => t.replace(/_([a-z])/g, (e, r) => r.toUpperCase());
49
48
  export {
50
- C as addressInline,
49
+ h as addressInline,
51
50
  p as amountStr,
52
- D as createMarkup,
53
- h as firstLastName,
51
+ S as createMarkup,
52
+ l as firstLastName,
54
53
  s as formatNumberAsCurrency,
55
- S as formatPayRate,
54
+ C as formatPayRate,
56
55
  u as getCityStateZip,
57
56
  i as getStreet,
58
- F as removeNonDigits,
59
- L as snakeCaseToCamelCase
57
+ D as removeNonDigits,
58
+ F as snakeCaseToCamelCase
60
59
  };
61
60
  //# sourceMappingURL=formattedStrings.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"formattedStrings.js","sources":["../../src/helpers/formattedStrings.ts"],"sourcesContent":["import DOMPurify from 'dompurify'\nimport { type Location } from '@gusto/embedded-api/models/components/location'\nimport { type EmployeeAddress } from '@gusto/embedded-api/models/components/employeeaddress'\nimport { type TFunction } from 'i18next'\nimport { useTranslation } from 'react-i18next'\nimport { useCallback } from 'react'\nimport { useLocale } from '@/contexts/LocaleProvider/useLocale'\n\nconst capitalize = (word: string) => word.charAt(0).toLocaleUpperCase() + word.slice(1)\n\nexport const firstLastName = ({\n first_name,\n last_name,\n}: {\n first_name?: string | null\n last_name?: string | null\n}) =>\n `${first_name ? capitalize(first_name) : ''}${last_name ? maybeString(capitalize(last_name)) : ''}`\n\nconst maybeString = (str: string | null | undefined) => {\n return str ? ` ${str}` : ''\n}\n\nexport const getStreet = (address: EmployeeAddress | Location) => {\n const street1 = maybeString(address.street1)\n const street2 = maybeString(address.street2)\n\n return `${street1},${street2}`\n}\n\nexport const getCityStateZip = (address: EmployeeAddress | Location) =>\n `${maybeString(address.city)}, ${maybeString(address.state)} ${maybeString(address.zip)}`\n\nexport const addressInline = (address: EmployeeAddress | Location) =>\n `${getStreet(address)} ${getCityStateZip(address)}`\n\nexport const currentDateString = () => {\n const d = new Date()\n const dateString = `${String(d.getFullYear())}-${('0' + String(d.getMonth() + 1)).slice(-2)}-${('0' + String(d.getDate())).slice(-2)}`\n return dateString\n}\n\nexport function isNumberKey({ which, keyCode }: KeyboardEvent) {\n const charCode = which ? which : keyCode\n if (charCode > 31 && charCode != 46 && (charCode < 48 || charCode > 57)) return false\n return true\n}\n\nexport const booleanToString = (value: boolean) => (value ? 'true' : 'false')\n\nexport const amountStr = (amount: string, isPercentage: boolean) =>\n isPercentage ? `${amount}%` : `$${amount}`\n\nexport const formatNumberAsCurrency = (amount: number, locale: string = 'en-US') => {\n const formattedNumber = amount.toLocaleString(locale, {\n minimumFractionDigits: 2,\n maximumFractionDigits: 2,\n })\n return amountStr(formattedNumber, false)\n}\n\nexport const formatPayRate = ({\n rate,\n paymentUnit,\n t,\n locale = 'en-US',\n}: {\n rate: number\n paymentUnit: string\n t: TFunction\n locale?: string\n}) => {\n const amount = formatNumberAsCurrency(rate, locale)\n\n switch (paymentUnit) {\n case 'Hour':\n return t('payRateFormats.hourly', { amount, ns: 'common' })\n case 'Week':\n return t('payRateFormats.weekly', {\n amount: formatNumberAsCurrency(rate * 52, locale),\n ns: 'common',\n })\n case 'Month':\n return t('payRateFormats.monthly', {\n amount: formatNumberAsCurrency(rate * 12, locale),\n ns: 'common',\n })\n case 'Year':\n return t('payRateFormats.yearly', { amount, ns: 'common' })\n case 'Paycheck':\n return t('payRateFormats.paycheck', { amount, ns: 'common' })\n default:\n return amount\n }\n}\n\nexport const useFormatPayRate = () => {\n const { t } = useTranslation('common')\n const { locale } = useLocale()\n\n return useCallback(\n (rate: number, paymentUnit: string) => {\n return formatPayRate({ rate, paymentUnit, t, locale })\n },\n [t, locale],\n )\n}\n\nconst dompurifyConfig = { ALLOWED_TAGS: ['a', 'b', 'strong'], ALLOWED_ATTR: ['href', 'target'] }\nexport function createMarkup(dirty: string) {\n if (!dirty) return { __html: '' }\n return { __html: DOMPurify.sanitize(dirty, dompurifyConfig) }\n}\n\nexport const removeNonDigits = (value: string): string => {\n return value.replace(/\\D/g, '')\n}\n\nexport const snakeCaseToCamelCase = (s: string) => {\n return s.replace(/_([a-z])/g, (_: string, char: string) => char.toUpperCase())\n}\n\nexport const camelCaseToSnakeCase = (s: string) => {\n return s\n .replace(\n /([a-z0-9])([A-Z])/g,\n (_: string, group1: string, group2: string) => `${group1}_${group2.toLowerCase()}`,\n )\n .replace(\n /([A-Z])([A-Z])(?=[a-z])/g,\n (_: string, group1: string, group2: string) =>\n `${group1.toLowerCase()}_${group2.toLowerCase()}`,\n )\n .toLowerCase()\n}\n"],"names":["capitalize","word","firstLastName","first_name","last_name","maybeString","str","getStreet","address","street1","street2","getCityStateZip","addressInline","amountStr","amount","isPercentage","formatNumberAsCurrency","locale","formattedNumber","formatPayRate","rate","paymentUnit","t","dompurifyConfig","createMarkup","dirty","DOMPurify","removeNonDigits","value","snakeCaseToCamelCase","s","_","char"],"mappings":";;;;AAQA,MAAMA,IAAa,CAACC,MAAiBA,EAAK,OAAO,CAAC,EAAE,sBAAsBA,EAAK,MAAM,CAAC,GAEzEC,IAAgB,CAAC;AAAA,EAC5B,YAAAC;AAAA,EACA,WAAAC;AACF,MAIE,GAAGD,IAAaH,EAAWG,CAAU,IAAI,EAAE,GAAGC,IAAYC,EAAYL,EAAWI,CAAS,CAAC,IAAI,EAAE,IAE7FC,IAAc,CAACC,MACZA,IAAM,IAAIA,CAAG,KAAK,IAGdC,IAAY,CAACC,MAAwC;AAChE,QAAMC,IAAUJ,EAAYG,EAAQ,OAAO,GACrCE,IAAUL,EAAYG,EAAQ,OAAO;AAE3C,SAAO,GAAGC,CAAO,IAAIC,CAAO;AAC9B,GAEaC,IAAkB,CAACH,MAC9B,GAAGH,EAAYG,EAAQ,IAAI,CAAC,KAAKH,EAAYG,EAAQ,KAAK,CAAC,IAAIH,EAAYG,EAAQ,GAAG,CAAC,IAE5EI,IAAgB,CAACJ,MAC5B,GAAGD,EAAUC,CAAO,CAAC,IAAIG,EAAgBH,CAAO,CAAC,IAgBtCK,IAAY,CAACC,GAAgBC,MACxCA,IAAe,GAAGD,CAAM,MAAM,IAAIA,CAAM,IAE7BE,IAAyB,CAACF,GAAgBG,IAAiB,YAAY;AAClF,QAAMC,IAAkBJ,EAAO,eAAeG,GAAQ;AAAA,IACpD,uBAAuB;AAAA,IACvB,uBAAuB;AAAA,EAAA,CACxB;AACD,SAAOJ,EAAUK,GAAiB,EAAK;AACzC,GAEaC,IAAgB,CAAC;AAAA,EAC5B,MAAAC;AAAA,EACA,aAAAC;AAAA,EACA,GAAAC;AAAA,EACA,QAAAL,IAAS;AACX,MAKM;AACJ,QAAMH,IAASE,EAAuBI,GAAMH,CAAM;AAElD,UAAQI,GAAA;AAAA,IACN,KAAK;AACH,aAAOC,EAAE,yBAAyB,EAAE,QAAAR,GAAQ,IAAI,UAAU;AAAA,IAC5D,KAAK;AACH,aAAOQ,EAAE,yBAAyB;AAAA,QAChC,QAAQN,EAAuBI,IAAO,IAAIH,CAAM;AAAA,QAChD,IAAI;AAAA,MAAA,CACL;AAAA,IACH,KAAK;AACH,aAAOK,EAAE,0BAA0B;AAAA,QACjC,QAAQN,EAAuBI,IAAO,IAAIH,CAAM;AAAA,QAChD,IAAI;AAAA,MAAA,CACL;AAAA,IACH,KAAK;AACH,aAAOK,EAAE,yBAAyB,EAAE,QAAAR,GAAQ,IAAI,UAAU;AAAA,IAC5D,KAAK;AACH,aAAOQ,EAAE,2BAA2B,EAAE,QAAAR,GAAQ,IAAI,UAAU;AAAA,IAC9D;AACE,aAAOA;AAAA,EAAA;AAEb,GAcMS,IAAkB,EAAE,cAAc,CAAC,KAAK,KAAK,QAAQ,GAAG,cAAc,CAAC,QAAQ,QAAQ,EAAA;AACtF,SAASC,EAAaC,GAAe;AAC1C,SAAKA,IACE,EAAE,QAAQC,EAAU,SAASD,GAAOF,CAAe,EAAA,IADvC,EAAE,QAAQ,GAAA;AAE/B;AAEO,MAAMI,IAAkB,CAACC,MACvBA,EAAM,QAAQ,OAAO,EAAE,GAGnBC,IAAuB,CAACC,MAC5BA,EAAE,QAAQ,aAAa,CAACC,GAAWC,MAAiBA,EAAK,aAAa;"}
1
+ {"version":3,"file":"formattedStrings.js","sources":["../../src/helpers/formattedStrings.ts"],"sourcesContent":["import DOMPurify from 'dompurify'\nimport { type Location } from '@gusto/embedded-api/models/components/location'\nimport { type EmployeeAddress } from '@gusto/embedded-api/models/components/employeeaddress'\nimport { type TFunction } from 'i18next'\nimport { useTranslation } from 'react-i18next'\nimport { useCallback } from 'react'\nimport { useLocale } from '@/contexts/LocaleProvider/useLocale'\n\nconst capitalize = (word: string) => word.charAt(0).toLocaleUpperCase() + word.slice(1)\n\nexport const firstLastName = ({\n first_name,\n last_name,\n}: {\n first_name?: string | null\n last_name?: string | null\n}) =>\n `${first_name ? capitalize(first_name) : ''}${last_name ? maybeString(capitalize(last_name)) : ''}`\n\nconst maybeString = (str: string | null | undefined) => {\n return str ? ` ${str}` : ''\n}\n\nexport const getStreet = (address: EmployeeAddress | Location) => {\n const street1 = maybeString(address.street1)\n const street2 = maybeString(address.street2)\n\n return `${street1},${street2}`\n}\n\nexport const getCityStateZip = (address: EmployeeAddress | Location) =>\n `${maybeString(address.city)}, ${maybeString(address.state)} ${maybeString(address.zip)}`\n\nexport const addressInline = (address: EmployeeAddress | Location) =>\n `${getStreet(address)} ${getCityStateZip(address)}`\n\nexport const currentDateString = () => {\n const d = new Date()\n const dateString = `${String(d.getFullYear())}-${('0' + String(d.getMonth() + 1)).slice(-2)}-${('0' + String(d.getDate())).slice(-2)}`\n return dateString\n}\n\nexport function isNumberKey({ which, keyCode }: KeyboardEvent) {\n const charCode = which ? which : keyCode\n if (charCode > 31 && charCode != 46 && (charCode < 48 || charCode > 57)) return false\n return true\n}\n\nexport const booleanToString = (value: boolean) => (value ? 'true' : 'false')\n\nexport const amountStr = (amount: string, isPercentage: boolean) =>\n isPercentage ? `${amount}%` : `$${amount}`\n\nexport const formatNumberAsCurrency = (amount: number, locale: string = 'en-US') => {\n const formattedNumber = amount.toLocaleString(locale, {\n minimumFractionDigits: 2,\n maximumFractionDigits: 2,\n })\n return amountStr(formattedNumber, false)\n}\n\nexport const formatPayRate = ({\n rate,\n paymentUnit,\n t,\n locale = 'en-US',\n}: {\n rate: number\n paymentUnit: string\n t: TFunction\n locale?: string\n}) => {\n const amount = formatNumberAsCurrency(rate, locale)\n\n switch (paymentUnit) {\n case 'Hour':\n return t('payRateFormats.hourly', { amount, ns: 'common' })\n case 'Week':\n return t('payRateFormats.weekly', {\n amount: formatNumberAsCurrency(rate * 52, locale),\n ns: 'common',\n })\n case 'Month':\n return t('payRateFormats.monthly', {\n amount: formatNumberAsCurrency(rate * 12, locale),\n ns: 'common',\n })\n case 'Year':\n return t('payRateFormats.yearly', { amount, ns: 'common' })\n case 'Paycheck':\n return t('payRateFormats.paycheck', { amount, ns: 'common' })\n default:\n return amount\n }\n}\n\nexport const useFormatPayRate = () => {\n const { t } = useTranslation('common')\n const { locale } = useLocale()\n\n return useCallback(\n (rate: number, paymentUnit: string) => {\n return formatPayRate({ rate, paymentUnit, t, locale })\n },\n [t, locale],\n )\n}\n\nconst dompurifyConfig = { ALLOWED_TAGS: ['a', 'b', 'strong'], ALLOWED_ATTR: ['href', 'target'] }\nexport function createMarkup(dirty: string) {\n if (!dirty) return { __html: '' }\n return { __html: DOMPurify.sanitize(dirty, dompurifyConfig) }\n}\n\nexport const removeNonDigits = (value: string): string => {\n return value.replace(/\\D/g, '')\n}\n\nexport const snakeCaseToCamelCase = (s: string) => {\n return s.replace(/_([a-z])/g, (_: string, char: string) => char.toUpperCase())\n}\n\nexport const camelCaseToSnakeCase = (s: string) => {\n return s\n .replace(\n /([a-z0-9])([A-Z])/g,\n (_: string, group1: string, group2: string) => `${group1}_${group2.toLowerCase()}`,\n )\n .replace(\n /([A-Z])([A-Z])(?=[a-z])/g,\n (_: string, group1: string, group2: string) =>\n `${group1.toLowerCase()}_${group2.toLowerCase()}`,\n )\n .toLowerCase()\n}\n"],"names":["capitalize","word","firstLastName","first_name","last_name","maybeString","str","getStreet","address","street1","street2","getCityStateZip","addressInline","amountStr","amount","isPercentage","formatNumberAsCurrency","locale","formattedNumber","formatPayRate","rate","paymentUnit","t","dompurifyConfig","createMarkup","dirty","DOMPurify","removeNonDigits","value","snakeCaseToCamelCase","s","_","char"],"mappings":";;;AAQA,MAAMA,IAAa,CAACC,MAAiBA,EAAK,OAAO,CAAC,EAAE,sBAAsBA,EAAK,MAAM,CAAC,GAEzEC,IAAgB,CAAC;AAAA,EAC5B,YAAAC;AAAA,EACA,WAAAC;AACF,MAIE,GAAGD,IAAaH,EAAWG,CAAU,IAAI,EAAE,GAAGC,IAAYC,EAAYL,EAAWI,CAAS,CAAC,IAAI,EAAE,IAE7FC,IAAc,CAACC,MACZA,IAAM,IAAIA,CAAG,KAAK,IAGdC,IAAY,CAACC,MAAwC;AAChE,QAAMC,IAAUJ,EAAYG,EAAQ,OAAO,GACrCE,IAAUL,EAAYG,EAAQ,OAAO;AAE3C,SAAO,GAAGC,CAAO,IAAIC,CAAO;AAC9B,GAEaC,IAAkB,CAACH,MAC9B,GAAGH,EAAYG,EAAQ,IAAI,CAAC,KAAKH,EAAYG,EAAQ,KAAK,CAAC,IAAIH,EAAYG,EAAQ,GAAG,CAAC,IAE5EI,IAAgB,CAACJ,MAC5B,GAAGD,EAAUC,CAAO,CAAC,IAAIG,EAAgBH,CAAO,CAAC,IAgBtCK,IAAY,CAACC,GAAgBC,MACxCA,IAAe,GAAGD,CAAM,MAAM,IAAIA,CAAM,IAE7BE,IAAyB,CAACF,GAAgBG,IAAiB,YAAY;AAClF,QAAMC,IAAkBJ,EAAO,eAAeG,GAAQ;AAAA,IACpD,uBAAuB;AAAA,IACvB,uBAAuB;AAAA,EAAA,CACxB;AACD,SAAOJ,EAAUK,GAAiB,EAAK;AACzC,GAEaC,IAAgB,CAAC;AAAA,EAC5B,MAAAC;AAAA,EACA,aAAAC;AAAA,EACA,GAAAC;AAAA,EACA,QAAAL,IAAS;AACX,MAKM;AACJ,QAAMH,IAASE,EAAuBI,GAAMH,CAAM;AAElD,UAAQI,GAAA;AAAA,IACN,KAAK;AACH,aAAOC,EAAE,yBAAyB,EAAE,QAAAR,GAAQ,IAAI,UAAU;AAAA,IAC5D,KAAK;AACH,aAAOQ,EAAE,yBAAyB;AAAA,QAChC,QAAQN,EAAuBI,IAAO,IAAIH,CAAM;AAAA,QAChD,IAAI;AAAA,MAAA,CACL;AAAA,IACH,KAAK;AACH,aAAOK,EAAE,0BAA0B;AAAA,QACjC,QAAQN,EAAuBI,IAAO,IAAIH,CAAM;AAAA,QAChD,IAAI;AAAA,MAAA,CACL;AAAA,IACH,KAAK;AACH,aAAOK,EAAE,yBAAyB,EAAE,QAAAR,GAAQ,IAAI,UAAU;AAAA,IAC5D,KAAK;AACH,aAAOQ,EAAE,2BAA2B,EAAE,QAAAR,GAAQ,IAAI,UAAU;AAAA,IAC9D;AACE,aAAOA;AAAA,EAAA;AAEb,GAcMS,IAAkB,EAAE,cAAc,CAAC,KAAK,KAAK,QAAQ,GAAG,cAAc,CAAC,QAAQ,QAAQ,EAAA;AACtF,SAASC,EAAaC,GAAe;AAC1C,SAAKA,IACE,EAAE,QAAQC,EAAU,SAASD,GAAOF,CAAe,EAAA,IADvC,EAAE,QAAQ,GAAA;AAE/B;AAEO,MAAMI,IAAkB,CAACC,MACvBA,EAAM,QAAQ,OAAO,EAAE,GAGnBC,IAAuB,CAACC,MAC5BA,EAAE,QAAQ,aAAa,CAACC,GAAWC,MAAiBA,EAAK,aAAa;"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useAsyncError.js","sources":["../../src/hooks/useAsyncError.tsx"],"sourcesContent":["import React from 'react'\n/**\n * Triggers re-render of a component to allow ErrorBoundary to catch a thrown error - that way we can handle all exceptions from asynchrounous functions in the same way and catch them in react boundary\n * @returns Function\n */\nexport const useAsyncError = () => {\n const [_, setError] = React.useState()\n return React.useCallback(\n (e: unknown) => {\n const err = e instanceof Error ? e : new Error(typeof e === 'string' ? e : 'Unknown error')\n setError(() => {\n throw err\n })\n },\n [setError],\n )\n}\n"],"names":["useAsyncError","_","setError","React","e","err"],"mappings":";AAKO,MAAMA,IAAgB,MAAM;AACjC,QAAM,CAACC,GAAGC,CAAQ,IAAIC,EAAM,SAAA;AAC5B,SAAOA,EAAM;AAAA,IACX,CAACC,MAAe;AACd,YAAMC,IAAMD,aAAa,QAAQA,IAAI,IAAI,MAAM,OAAOA,KAAM,WAAWA,IAAI,eAAe;AAC1F,MAAAF,EAAS,MAAM;AACb,cAAMG;AAAA,MACR,CAAC;AAAA,IACH;AAAA,IACA,CAACH,CAAQ;AAAA,EAAA;AAEb;"}
@@ -0,0 +1,19 @@
1
+ export declare const useDateFormatter: () => {
2
+ formatShortWithWeekday: (date?: string | Date | null) => string;
3
+ formatShortWithWeekdayAndYear: (date?: string | Date | null) => string;
4
+ formatShort: (date?: string | Date | null) => string;
5
+ formatShortWithYear: (date?: string | Date | null) => string;
6
+ formatLong: (date?: string | Date | null) => string;
7
+ formatLongWithYear: (date?: string | Date | null) => string;
8
+ formatWithTime: (date?: string | Date | null) => {
9
+ time: string;
10
+ date: string;
11
+ };
12
+ formatPayPeriod: (startDate?: string | Date | null, endDate?: string | Date | null) => {
13
+ startDate: string;
14
+ endDate: string;
15
+ };
16
+ formatPayPeriodRange: (startDate?: string | Date | null, endDate?: string | Date | null, options?: {
17
+ useShortMonth?: boolean;
18
+ }) => string;
19
+ };
@@ -0,0 +1,24 @@
1
+ import { useMemo as e } from "react";
2
+ import { formatPayPeriodRange as m, formatPayPeriod as f, formatDateWithTime as i, formatDateLongWithYear as h, formatDateLong as W, formatDateShortWithYear as n, formatDateShort as d, formatDateShortWithWeekdayAndYear as y, formatDateShortWithWeekday as D } from "../helpers/dateFormatting.js";
3
+ import { useLocale as P } from "../contexts/LocaleProvider/useLocale.js";
4
+ const s = () => {
5
+ const { locale: o } = P();
6
+ return e(
7
+ () => ({
8
+ formatShortWithWeekday: (t) => D(t, o),
9
+ formatShortWithWeekdayAndYear: (t) => y(t, o),
10
+ formatShort: (t) => d(t, o),
11
+ formatShortWithYear: (t) => n(t, o),
12
+ formatLong: (t) => W(t, o),
13
+ formatLongWithYear: (t) => h(t, o),
14
+ formatWithTime: (t) => i(t, o),
15
+ formatPayPeriod: (t, r) => f(t, r, o),
16
+ formatPayPeriodRange: (t, r, a) => m(t, r, o, a)
17
+ }),
18
+ [o]
19
+ );
20
+ };
21
+ export {
22
+ s as useDateFormatter
23
+ };
24
+ //# sourceMappingURL=useDateFormatter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useDateFormatter.js","sources":["../../src/hooks/useDateFormatter.ts"],"sourcesContent":["import { useMemo } from 'react'\nimport {\n formatDateShortWithWeekday,\n formatDateShortWithWeekdayAndYear,\n formatDateShort,\n formatDateShortWithYear,\n formatDateLong,\n formatDateLongWithYear,\n formatDateWithTime,\n formatPayPeriod,\n formatPayPeriodRange,\n} from '@/helpers/dateFormatting'\nimport { useLocale } from '@/contexts/LocaleProvider'\n\nexport const useDateFormatter = () => {\n const { locale } = useLocale()\n\n return useMemo(\n () => ({\n formatShortWithWeekday: (date?: string | Date | null) =>\n formatDateShortWithWeekday(date, locale),\n\n formatShortWithWeekdayAndYear: (date?: string | Date | null) =>\n formatDateShortWithWeekdayAndYear(date, locale),\n\n formatShort: (date?: string | Date | null) => formatDateShort(date, locale),\n\n formatShortWithYear: (date?: string | Date | null) => formatDateShortWithYear(date, locale),\n\n formatLong: (date?: string | Date | null) => formatDateLong(date, locale),\n\n formatLongWithYear: (date?: string | Date | null) => formatDateLongWithYear(date, locale),\n\n formatWithTime: (date?: string | Date | null) => formatDateWithTime(date, locale),\n\n formatPayPeriod: (startDate?: string | Date | null, endDate?: string | Date | null) =>\n formatPayPeriod(startDate, endDate, locale),\n\n formatPayPeriodRange: (\n startDate?: string | Date | null,\n endDate?: string | Date | null,\n options?: { useShortMonth?: boolean },\n ) => formatPayPeriodRange(startDate, endDate, locale, options),\n }),\n [locale],\n )\n}\n"],"names":["useDateFormatter","locale","useLocale","useMemo","date","formatDateShortWithWeekday","formatDateShortWithWeekdayAndYear","formatDateShort","formatDateShortWithYear","formatDateLong","formatDateLongWithYear","formatDateWithTime","startDate","endDate","formatPayPeriod","options","formatPayPeriodRange"],"mappings":";;;AAcO,MAAMA,IAAmB,MAAM;AACpC,QAAM,EAAE,QAAAC,EAAA,IAAWC,EAAA;AAEnB,SAAOC;AAAA,IACL,OAAO;AAAA,MACL,wBAAwB,CAACC,MACvBC,EAA2BD,GAAMH,CAAM;AAAA,MAEzC,+BAA+B,CAACG,MAC9BE,EAAkCF,GAAMH,CAAM;AAAA,MAEhD,aAAa,CAACG,MAAgCG,EAAgBH,GAAMH,CAAM;AAAA,MAE1E,qBAAqB,CAACG,MAAgCI,EAAwBJ,GAAMH,CAAM;AAAA,MAE1F,YAAY,CAACG,MAAgCK,EAAeL,GAAMH,CAAM;AAAA,MAExE,oBAAoB,CAACG,MAAgCM,EAAuBN,GAAMH,CAAM;AAAA,MAExF,gBAAgB,CAACG,MAAgCO,EAAmBP,GAAMH,CAAM;AAAA,MAEhF,iBAAiB,CAACW,GAAkCC,MAClDC,EAAgBF,GAAWC,GAASZ,CAAM;AAAA,MAE5C,sBAAsB,CACpBW,GACAC,GACAE,MACGC,EAAqBJ,GAAWC,GAASZ,GAAQc,CAAO;AAAA,IAAA;AAAA,IAE/D,CAACd,CAAM;AAAA,EAAA;AAEX;"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useMenu.js","sources":["../../src/hooks/useMenu.ts"],"sourcesContent":["import { useState, useRef } from 'react'\n\nexport function useMenu<T extends Element = HTMLButtonElement>() {\n const [isOpen, setIsOpen] = useState(false)\n const triggerRef = useRef<T>(null)\n\n return {\n triggerProps: {\n ref: triggerRef,\n onClick: () => {\n setIsOpen(true)\n },\n 'aria-haspopup': true,\n 'aria-expanded': isOpen,\n },\n menuProps: {\n isOpen,\n onClose: () => {\n setIsOpen(false)\n },\n triggerRef,\n },\n }\n}\n"],"names":["useMenu","isOpen","setIsOpen","useState","triggerRef","useRef"],"mappings":";AAEO,SAASA,IAAiD;AAC/D,QAAM,CAACC,GAAQC,CAAS,IAAIC,EAAS,EAAK,GACpCC,IAAaC,EAAU,IAAI;AAEjC,SAAO;AAAA,IACL,cAAc;AAAA,MACZ,KAAKD;AAAA,MACL,SAAS,MAAM;AACb,QAAAF,EAAU,EAAI;AAAA,MAChB;AAAA,MACA,iBAAiB;AAAA,MACjB,iBAAiBD;AAAA,IAAA;AAAA,IAEnB,WAAW;AAAA,MACT,QAAAA;AAAA,MACA,SAAS,MAAM;AACb,QAAAC,EAAU,EAAK;AAAA,MACjB;AAAA,MACA,YAAAE;AAAA,IAAA;AAAA,EACF;AAEJ;"}
@@ -1,6 +1,6 @@
1
1
  import { useMemo as e } from "react";
2
2
  import { NumberFormatter as t } from "@internationalized/number";
3
- import { useLocale as n } from "../../../contexts/LocaleProvider/useLocale.js";
3
+ import { useLocale as n } from "../contexts/LocaleProvider/useLocale.js";
4
4
  const f = (r = "currency") => {
5
5
  const { locale: m, currency: o } = n();
6
6
  return e(() => (c) => new t(m, {
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useNumberFormatter.js","sources":["../../src/hooks/useNumberFormatter.tsx"],"sourcesContent":["import { useMemo } from 'react'\nimport { NumberFormatter } from '@internationalized/number'\nimport { useLocale } from '@/contexts/LocaleProvider'\n\n/**Custom hook wrapping NumberFormatter and returing format method */\nconst useNumberFormatter = (style: 'currency' | 'percent' = 'currency') => {\n const { locale, currency } = useLocale()\n return useMemo(() => {\n return (value: number) =>\n new NumberFormatter(locale, {\n style: style,\n currency: style === 'currency' ? currency : undefined,\n minimumFractionDigits: style === 'currency' ? 2 : 0,\n maximumFractionDigits: 2,\n }).format(style === 'percent' ? value / 100 : value) //GustoAPI does not store percent values as fractions\n }, [style, currency, locale])\n}\n\nexport default useNumberFormatter\n"],"names":["useNumberFormatter","style","locale","currency","useLocale","useMemo","value","NumberFormatter"],"mappings":";;;AAKA,MAAMA,IAAqB,CAACC,IAAgC,eAAe;AACzE,QAAM,EAAE,QAAAC,GAAQ,UAAAC,EAAA,IAAaC,EAAA;AAC7B,SAAOC,EAAQ,MACN,CAACC,MACN,IAAIC,EAAgBL,GAAQ;AAAA,IAC1B,OAAAD;AAAA,IACA,UAAUA,MAAU,aAAaE,IAAW;AAAA,IAC5C,uBAAuBF,MAAU,aAAa,IAAI;AAAA,IAClD,uBAAuB;AAAA,EAAA,CACxB,EAAE,OAAOA,MAAU,YAAYK,IAAQ,MAAMA,CAAK,GACpD,CAACL,GAAOE,GAAUD,CAAM,CAAC;AAC9B;"}
@@ -0,0 +1,3 @@
1
+ import "./types/i18next.d.ts"
2
+ export { useOverflowDetection } from './useOverflowDetection';
3
+ export type { UseOverflowDetectionProps } from './useOverflowDetection';
@@ -0,0 +1,7 @@
1
+ import { default as React } from 'react';
2
+ export type UseOverflowDetectionProps = {
3
+ ref: React.RefObject<HTMLElement | null>;
4
+ debounceTimeout?: number;
5
+ };
6
+ export declare const useOverflowDetection: ({ ref, debounceTimeout, }: UseOverflowDetectionProps) => boolean;
7
+ export default useOverflowDetection;
@@ -0,0 +1,28 @@
1
+ import { useState as f, useRef as a, useEffect as v } from "react";
2
+ const O = 10, w = ({
3
+ ref: c,
4
+ debounceTimeout: o = O
5
+ }) => {
6
+ const [u, i] = f(!1), e = a(null), s = (t) => {
7
+ const r = t.scrollHeight > t.clientHeight;
8
+ i(r);
9
+ };
10
+ return v(() => {
11
+ const t = (n) => {
12
+ e.current && clearTimeout(e.current), e.current = setTimeout(() => {
13
+ if (n.length >= 1 && n[0]) {
14
+ const l = n[0].target;
15
+ s(l);
16
+ }
17
+ }, o);
18
+ }, r = new ResizeObserver(t);
19
+ return c.current && (s(c.current), r.observe(c.current)), () => {
20
+ r.disconnect(), e.current && clearTimeout(e.current);
21
+ };
22
+ }, [o]), u;
23
+ };
24
+ export {
25
+ w as default,
26
+ w as useOverflowDetection
27
+ };
28
+ //# sourceMappingURL=useOverflowDetection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useOverflowDetection.js","sources":["../../../src/hooks/useOverflowDetection/useOverflowDetection.ts"],"sourcesContent":["import { useState, useEffect, useRef } from 'react'\nimport type React from 'react'\n\nexport type UseOverflowDetectionProps = {\n ref: React.RefObject<HTMLElement | null>\n debounceTimeout?: number\n}\n\nconst DEBOUNCE_TIMEOUT = 10\n\nexport const useOverflowDetection = ({\n ref,\n debounceTimeout = DEBOUNCE_TIMEOUT,\n}: UseOverflowDetectionProps) => {\n const [isOverflowing, setIsOverflowing] = useState(false)\n const timeoutRef = useRef<NodeJS.Timeout | null>(null)\n\n const checkOverflow = (element: HTMLElement) => {\n const hasOverflow = element.scrollHeight > element.clientHeight\n setIsOverflowing(hasOverflow)\n }\n\n useEffect(() => {\n const debouncedHandleResize = (entries: ResizeObserverEntry[]) => {\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current)\n }\n timeoutRef.current = setTimeout(() => {\n if (entries.length >= 1 && entries[0]) {\n const element = entries[0].target as HTMLElement\n checkOverflow(element)\n }\n }, debounceTimeout)\n }\n\n const observer = new ResizeObserver(debouncedHandleResize)\n\n if (ref.current) {\n checkOverflow(ref.current)\n observer.observe(ref.current)\n }\n\n return () => {\n observer.disconnect()\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current)\n }\n }\n }, [debounceTimeout])\n\n return isOverflowing\n}\n\nexport default useOverflowDetection\n"],"names":["DEBOUNCE_TIMEOUT","useOverflowDetection","ref","debounceTimeout","isOverflowing","setIsOverflowing","useState","timeoutRef","useRef","checkOverflow","element","hasOverflow","useEffect","debouncedHandleResize","entries","observer"],"mappings":";AAQA,MAAMA,IAAmB,IAEZC,IAAuB,CAAC;AAAA,EACnC,KAAAC;AAAA,EACA,iBAAAC,IAAkBH;AACpB,MAAiC;AAC/B,QAAM,CAACI,GAAeC,CAAgB,IAAIC,EAAS,EAAK,GAClDC,IAAaC,EAA8B,IAAI,GAE/CC,IAAgB,CAACC,MAAyB;AAC9C,UAAMC,IAAcD,EAAQ,eAAeA,EAAQ;AACnD,IAAAL,EAAiBM,CAAW;AAAA,EAC9B;AAEA,SAAAC,EAAU,MAAM;AACd,UAAMC,IAAwB,CAACC,MAAmC;AAChE,MAAIP,EAAW,WACb,aAAaA,EAAW,OAAO,GAEjCA,EAAW,UAAU,WAAW,MAAM;AACpC,YAAIO,EAAQ,UAAU,KAAKA,EAAQ,CAAC,GAAG;AACrC,gBAAMJ,IAAUI,EAAQ,CAAC,EAAE;AAC3B,UAAAL,EAAcC,CAAO;AAAA,QACvB;AAAA,MACF,GAAGP,CAAe;AAAA,IACpB,GAEMY,IAAW,IAAI,eAAeF,CAAqB;AAEzD,WAAIX,EAAI,YACNO,EAAcP,EAAI,OAAO,GACzBa,EAAS,QAAQb,EAAI,OAAO,IAGvB,MAAM;AACX,MAAAa,EAAS,WAAA,GACLR,EAAW,WACb,aAAaA,EAAW,OAAO;AAAA,IAEnC;AAAA,EACF,GAAG,CAACJ,CAAe,CAAC,GAEbC;AACT;"}
package/dist/i18n/I18n.js CHANGED
@@ -5,7 +5,7 @@ const P = "common", m = new y(50), c = ({ lng: e = "en", ns: o }) => {
5
5
  let r = !0, n = !1, t;
6
6
  const i = (async () => {
7
7
  try {
8
- t = (await p(/* @__PURE__ */ Object.assign({ "./en/Company.AddBank.json": () => import("./en/Company.AddBank.json.js"), "./en/Company.Addresses.json": () => import("./en/Company.Addresses.json.js"), "./en/Company.AssignSignatory.json": () => import("./en/Company.AssignSignatory.json.js"), "./en/Company.BankAccount.json": () => import("./en/Company.BankAccount.json.js"), "./en/Company.DocumentList.json": () => import("./en/Company.DocumentList.json.js"), "./en/Company.FederalTaxes.json": () => import("./en/Company.FederalTaxes.json.js"), "./en/Company.Industry.json": () => import("./en/Company.Industry.json.js"), "./en/Company.Locations.json": () => import("./en/Company.Locations.json.js"), "./en/Company.OnboardingOverview.json": () => import("./en/Company.OnboardingOverview.json.js"), "./en/Company.PaySchedule.json": () => import("./en/Company.PaySchedule.json.js"), "./en/Company.SignatureForm.json": () => import("./en/Company.SignatureForm.json.js"), "./en/Company.StateTaxes.json": () => import("./en/Company.StateTaxes.json.js"), "./en/Contractor.Address.json": () => import("./en/Contractor.Address.json.js"), "./en/Contractor.ContractorList.json": () => import("./en/Contractor.ContractorList.json.js"), "./en/Contractor.NewHireReport.json": () => import("./en/Contractor.NewHireReport.json.js"), "./en/Contractor.PaymentMethod.json": () => import("./en/Contractor.PaymentMethod.json.js"), "./en/Contractor.Profile.json": () => import("./en/Contractor.Profile.json.js"), "./en/Contractor.Submit.json": () => import("./en/Contractor.Submit.json.js"), "./en/Employee.BankAccount.json": () => import("./en/Employee.BankAccount.json.js"), "./en/Employee.Compensation.json": () => import("./en/Employee.Compensation.json.js"), "./en/Employee.Deductions.json": () => import("./en/Employee.Deductions.json.js"), "./en/Employee.DocumentSigner.json": () => import("./en/Employee.DocumentSigner.json.js"), "./en/Employee.EmployeeList.json": () => import("./en/Employee.EmployeeList.json.js"), "./en/Employee.FederalTaxes.json": () => import("./en/Employee.FederalTaxes.json.js"), "./en/Employee.HomeAddress.json": () => import("./en/Employee.HomeAddress.json.js"), "./en/Employee.Landing.json": () => import("./en/Employee.Landing.json.js"), "./en/Employee.OnboardingSummary.json": () => import("./en/Employee.OnboardingSummary.json.js"), "./en/Employee.PaySchedules.json": () => import("./en/Employee.PaySchedules.json.js"), "./en/Employee.PaymentMethod.json": () => import("./en/Employee.PaymentMethod.json.js"), "./en/Employee.Profile.json": () => import("./en/Employee.Profile.json.js"), "./en/Employee.SplitPaycheck.json": () => import("./en/Employee.SplitPaycheck.json.js"), "./en/Employee.StateTaxes.json": () => import("./en/Employee.StateTaxes.json.js"), "./en/Employee.Taxes.json": () => import("./en/Employee.Taxes.json.js"), "./en/Payroll.PayrollBlocker.json": () => import("./en/Payroll.PayrollBlocker.json.js"), "./en/Payroll.PayrollConfiguration.json": () => import("./en/Payroll.PayrollConfiguration.json.js"), "./en/Payroll.PayrollEditEmployee.json": () => import("./en/Payroll.PayrollEditEmployee.json.js"), "./en/Payroll.PayrollFlow.json": () => import("./en/Payroll.PayrollFlow.json.js"), "./en/Payroll.PayrollHistory.json": () => import("./en/Payroll.PayrollHistory.json.js"), "./en/Payroll.PayrollLanding.json": () => import("./en/Payroll.PayrollLanding.json.js"), "./en/Payroll.PayrollList.json": () => import("./en/Payroll.PayrollList.json.js"), "./en/Payroll.PayrollOverview.json": () => import("./en/Payroll.PayrollOverview.json.js"), "./en/Payroll.PayrollReceipts.json": () => import("./en/Payroll.PayrollReceipts.json.js"), "./en/Payroll.PayrollSchedule.json": () => import("./en/Payroll.PayrollSchedule.json.js"), "./en/common.json": () => import("./en/common.json.js") }), `./${e}/${o}.json`, 3)).default, r = !1;
8
+ t = (await p(/* @__PURE__ */ Object.assign({ "./en/Company.Addresses.json": () => import("./en/Company.Addresses.json.js"), "./en/Company.AssignSignatory.json": () => import("./en/Company.AssignSignatory.json.js"), "./en/Company.BankAccount.json": () => import("./en/Company.BankAccount.json.js"), "./en/Company.DocumentList.json": () => import("./en/Company.DocumentList.json.js"), "./en/Company.FederalTaxes.json": () => import("./en/Company.FederalTaxes.json.js"), "./en/Company.Industry.json": () => import("./en/Company.Industry.json.js"), "./en/Company.Locations.json": () => import("./en/Company.Locations.json.js"), "./en/Company.OnboardingOverview.json": () => import("./en/Company.OnboardingOverview.json.js"), "./en/Company.PaySchedule.json": () => import("./en/Company.PaySchedule.json.js"), "./en/Company.SignatureForm.json": () => import("./en/Company.SignatureForm.json.js"), "./en/Company.StateTaxes.json": () => import("./en/Company.StateTaxes.json.js"), "./en/Contractor.Address.json": () => import("./en/Contractor.Address.json.js"), "./en/Contractor.ContractorList.json": () => import("./en/Contractor.ContractorList.json.js"), "./en/Contractor.NewHireReport.json": () => import("./en/Contractor.NewHireReport.json.js"), "./en/Contractor.PaymentMethod.json": () => import("./en/Contractor.PaymentMethod.json.js"), "./en/Contractor.Profile.json": () => import("./en/Contractor.Profile.json.js"), "./en/Contractor.Submit.json": () => import("./en/Contractor.Submit.json.js"), "./en/Employee.BankAccount.json": () => import("./en/Employee.BankAccount.json.js"), "./en/Employee.Compensation.json": () => import("./en/Employee.Compensation.json.js"), "./en/Employee.Deductions.json": () => import("./en/Employee.Deductions.json.js"), "./en/Employee.DocumentSigner.json": () => import("./en/Employee.DocumentSigner.json.js"), "./en/Employee.EmployeeList.json": () => import("./en/Employee.EmployeeList.json.js"), "./en/Employee.FederalTaxes.json": () => import("./en/Employee.FederalTaxes.json.js"), "./en/Employee.HomeAddress.json": () => import("./en/Employee.HomeAddress.json.js"), "./en/Employee.Landing.json": () => import("./en/Employee.Landing.json.js"), "./en/Employee.OnboardingSummary.json": () => import("./en/Employee.OnboardingSummary.json.js"), "./en/Employee.PaySchedules.json": () => import("./en/Employee.PaySchedules.json.js"), "./en/Employee.PaymentMethod.json": () => import("./en/Employee.PaymentMethod.json.js"), "./en/Employee.Profile.json": () => import("./en/Employee.Profile.json.js"), "./en/Employee.SplitPaycheck.json": () => import("./en/Employee.SplitPaycheck.json.js"), "./en/Employee.StateTaxes.json": () => import("./en/Employee.StateTaxes.json.js"), "./en/Employee.Taxes.json": () => import("./en/Employee.Taxes.json.js"), "./en/Payroll.ConfirmWireDetailsBanner.json": () => import("./en/Payroll.ConfirmWireDetailsBanner.json.js"), "./en/Payroll.ConfirmWireDetailsForm.json": () => import("./en/Payroll.ConfirmWireDetailsForm.json.js"), "./en/Payroll.PayrollBlocker.json": () => import("./en/Payroll.PayrollBlocker.json.js"), "./en/Payroll.PayrollConfiguration.json": () => import("./en/Payroll.PayrollConfiguration.json.js"), "./en/Payroll.PayrollEditEmployee.json": () => import("./en/Payroll.PayrollEditEmployee.json.js"), "./en/Payroll.PayrollFlow.json": () => import("./en/Payroll.PayrollFlow.json.js"), "./en/Payroll.PayrollHistory.json": () => import("./en/Payroll.PayrollHistory.json.js"), "./en/Payroll.PayrollLanding.json": () => import("./en/Payroll.PayrollLanding.json.js"), "./en/Payroll.PayrollList.json": () => import("./en/Payroll.PayrollList.json.js"), "./en/Payroll.PayrollOverview.json": () => import("./en/Payroll.PayrollOverview.json.js"), "./en/Payroll.PayrollReceipts.json": () => import("./en/Payroll.PayrollReceipts.json.js"), "./en/Payroll.WireInstructions.json": () => import("./en/Payroll.WireInstructions.json.js"), "./en/common.json": () => import("./en/common.json.js") }), `./${e}/${o}.json`, 3)).default, r = !1;
9
9
  } catch {
10
10
  n = !0, r = !1;
11
11
  }
@@ -1 +1 @@
1
- {"version":3,"file":"I18n.js","sources":["../../src/i18n/I18n.ts"],"sourcesContent":["import { useTranslation } from 'react-i18next'\nimport type { CustomTypeOptions } from 'i18next'\nimport { LRUCache } from '@/helpers/LRUCache'\nimport type { ResourceDictionary, Resources } from '@/types/Helpers'\n\nexport const defaultNS = 'common'\n\n//LRU cache holding requested resources\nconst resourceCache = new LRUCache(50)\n/**\n * Dynamic loading of translation resources - works with Suspence to prevent early access to loadable strings\n * @param lng(string): resource language\n * @param ns(string): Namespace/name of the component/resource\n * @returns Promise<Translation resource>\n */\nconst loadResource = ({ lng = 'en', ns }: { ns: string; lng?: string }) => {\n let isLoading = true\n let isError = false\n let resource: Record<string, string>\n\n const importResources = async () => {\n try {\n const module = await import(`@/i18n/${lng}/${ns}.json`)\n\n resource = module.default\n isLoading = false\n } catch (err) {\n isError = true\n isLoading = false\n }\n }\n const promise = importResources()\n return () => {\n if (isLoading) {\n // eslint-disable-next-line @typescript-eslint/only-throw-error\n throw promise // Throw the promise to indicate Suspense should suspend.\n } else if (isError) {\n throw new Error(`Error loading translation for component: ${ns}`) // Handle error\n } else {\n return resource // Return the resource when loading is complete\n }\n }\n}\n\n/**\n * Hook that allows component to load custom dictionary\n * @param @private {string} ns - Namespace - should match component name exactly - not exposed to consumers\n */\nexport const useI18n = (\n namespaces:\n | keyof CustomTypeOptions['resources']\n | Array<keyof CustomTypeOptions['resources']>\n | null,\n) => {\n //Getting our instance of i18n -> supplied by the provider set in GustoApiProvider\n const { i18n: i18nInstance } = useTranslation()\n //Abort when namespace is not provided\n if (!namespaces) return\n const nsMap = Array.isArray(namespaces) ? namespaces : [namespaces]\n for (const ns of nsMap) {\n const key = `${i18nInstance.resolvedLanguage}:${ns}`\n //Skip loading default resource if it is already in cache\n if (resourceCache.get(key) === null) {\n //If resource not in cache, initiate loading and add getter to cache\n resourceCache.put(key, loadResource({ lng: i18nInstance.resolvedLanguage, ns: ns }))\n }\n //Get resourceGetter from cache\n const resourceGetter = resourceCache.get(key)\n if (resourceGetter) {\n const resource = resourceGetter()\n i18nInstance.addResourceBundle(\n i18nInstance.resolvedLanguage ?? 'en',\n ns,\n resource,\n true,\n false,\n ) //Last argument is set to false to prevent override of keys provided by partners on GustoApiProvider level through dictionary prop\n }\n }\n}\n\n//Used by individual components to override their dictionaries with partner provided resources\nexport const useComponentDictionary = <K extends keyof Resources>(\n ns: keyof CustomTypeOptions['resources'],\n resource?: ResourceDictionary<K> | null,\n) => {\n const { i18n: i18nInstance } = useTranslation()\n if (resource) {\n for (const lang in resource) {\n i18nInstance.addResourceBundle(lang, ns, resource[lang], true, true)\n }\n }\n}\n"],"names":["defaultNS","resourceCache","LRUCache","loadResource","lng","ns","isLoading","isError","resource","promise","__variableDynamicImportRuntimeHelper","useI18n","namespaces","i18nInstance","useTranslation","nsMap","key","resourceGetter","useComponentDictionary","lang"],"mappings":";;;AAKO,MAAMA,IAAY,UAGnBC,IAAgB,IAAIC,EAAS,EAAE,GAO/BC,IAAe,CAAC,EAAE,KAAAC,IAAM,MAAM,IAAAC,QAAuC;AACzE,MAAIC,IAAY,IACZC,IAAU,IACVC;AAaJ,QAAMC,KAXkB,YAAY;AAClC,QAAI;AAGF,MAAAD,KAFe,MAAME,ytHAAA,KAAAN,CAAA,IAAAC,CAAA,SAAA,CAAA,GAEH,SAClBC,IAAY;AAAA,IACd,QAAc;AACZ,MAAAC,IAAU,IACVD,IAAY;AAAA,IACd;AAAA,EACF,GACgB;AAChB,SAAO,MAAM;AACX,QAAIA;AAEF,YAAMG;QACGF;AACT,YAAM,IAAI,MAAM,4CAA4CF,CAAE,EAAE;AAEhE,WAAOG;AAAA,EAEX;AACF,GAMaG,IAAU,CACrBC,MAIG;AAEH,QAAM,EAAE,MAAMC,EAAA,IAAiBC,EAAA;AAE/B,MAAI,CAACF,EAAY;AACjB,QAAMG,IAAQ,MAAM,QAAQH,CAAU,IAAIA,IAAa,CAACA,CAAU;AAClE,aAAWP,KAAMU,GAAO;AACtB,UAAMC,IAAM,GAAGH,EAAa,gBAAgB,IAAIR,CAAE;AAElD,IAAIJ,EAAc,IAAIe,CAAG,MAAM,QAE7Bf,EAAc,IAAIe,GAAKb,EAAa,EAAE,KAAKU,EAAa,kBAAkB,IAAAR,EAAA,CAAQ,CAAC;AAGrF,UAAMY,IAAiBhB,EAAc,IAAIe,CAAG;AAC5C,QAAIC,GAAgB;AAClB,YAAMT,IAAWS,EAAA;AACjB,MAAAJ,EAAa;AAAA,QACXA,EAAa,oBAAoB;AAAA,QACjCR;AAAA,QACAG;AAAA,QACA;AAAA,QACA;AAAA,MAAA;AAAA,IAEJ;AAAA,EACF;AACF,GAGaU,IAAyB,CACpCb,GACAG,MACG;AACH,QAAM,EAAE,MAAMK,EAAA,IAAiBC,EAAA;AAC/B,MAAIN;AACF,eAAWW,KAAQX;AACjB,MAAAK,EAAa,kBAAkBM,GAAMd,GAAIG,EAASW,CAAI,GAAG,IAAM,EAAI;AAGzE;"}
1
+ {"version":3,"file":"I18n.js","sources":["../../src/i18n/I18n.ts"],"sourcesContent":["import { useTranslation } from 'react-i18next'\nimport type { CustomTypeOptions } from 'i18next'\nimport { LRUCache } from '@/helpers/LRUCache'\nimport type { ResourceDictionary, Resources } from '@/types/Helpers'\n\nexport const defaultNS = 'common'\n\n//LRU cache holding requested resources\nconst resourceCache = new LRUCache(50)\n/**\n * Dynamic loading of translation resources - works with Suspence to prevent early access to loadable strings\n * @param lng(string): resource language\n * @param ns(string): Namespace/name of the component/resource\n * @returns Promise<Translation resource>\n */\nconst loadResource = ({ lng = 'en', ns }: { ns: string; lng?: string }) => {\n let isLoading = true\n let isError = false\n let resource: Record<string, string>\n\n const importResources = async () => {\n try {\n const module = await import(`@/i18n/${lng}/${ns}.json`)\n\n resource = module.default\n isLoading = false\n } catch (err) {\n isError = true\n isLoading = false\n }\n }\n const promise = importResources()\n return () => {\n if (isLoading) {\n // eslint-disable-next-line @typescript-eslint/only-throw-error\n throw promise // Throw the promise to indicate Suspense should suspend.\n } else if (isError) {\n throw new Error(`Error loading translation for component: ${ns}`) // Handle error\n } else {\n return resource // Return the resource when loading is complete\n }\n }\n}\n\n/**\n * Hook that allows component to load custom dictionary\n * @param @private {string} ns - Namespace - should match component name exactly - not exposed to consumers\n */\nexport const useI18n = (\n namespaces:\n | keyof CustomTypeOptions['resources']\n | Array<keyof CustomTypeOptions['resources']>\n | null,\n) => {\n //Getting our instance of i18n -> supplied by the provider set in GustoApiProvider\n const { i18n: i18nInstance } = useTranslation()\n //Abort when namespace is not provided\n if (!namespaces) return\n const nsMap = Array.isArray(namespaces) ? namespaces : [namespaces]\n for (const ns of nsMap) {\n const key = `${i18nInstance.resolvedLanguage}:${ns}`\n //Skip loading default resource if it is already in cache\n if (resourceCache.get(key) === null) {\n //If resource not in cache, initiate loading and add getter to cache\n resourceCache.put(key, loadResource({ lng: i18nInstance.resolvedLanguage, ns: ns }))\n }\n //Get resourceGetter from cache\n const resourceGetter = resourceCache.get(key)\n if (resourceGetter) {\n const resource = resourceGetter()\n i18nInstance.addResourceBundle(\n i18nInstance.resolvedLanguage ?? 'en',\n ns,\n resource,\n true,\n false,\n ) //Last argument is set to false to prevent override of keys provided by partners on GustoApiProvider level through dictionary prop\n }\n }\n}\n\n//Used by individual components to override their dictionaries with partner provided resources\nexport const useComponentDictionary = <K extends keyof Resources>(\n ns: keyof CustomTypeOptions['resources'],\n resource?: ResourceDictionary<K> | null,\n) => {\n const { i18n: i18nInstance } = useTranslation()\n if (resource) {\n for (const lang in resource) {\n i18nInstance.addResourceBundle(lang, ns, resource[lang], true, true)\n }\n }\n}\n"],"names":["defaultNS","resourceCache","LRUCache","loadResource","lng","ns","isLoading","isError","resource","promise","__variableDynamicImportRuntimeHelper","useI18n","namespaces","i18nInstance","useTranslation","nsMap","key","resourceGetter","useComponentDictionary","lang"],"mappings":";;;AAKO,MAAMA,IAAY,UAGnBC,IAAgB,IAAIC,EAAS,EAAE,GAO/BC,IAAe,CAAC,EAAE,KAAAC,IAAM,MAAM,IAAAC,QAAuC;AACzE,MAAIC,IAAY,IACZC,IAAU,IACVC;AAaJ,QAAMC,KAXkB,YAAY;AAClC,QAAI;AAGF,MAAAD,KAFe,MAAME,s2HAAA,KAAAN,CAAA,IAAAC,CAAA,SAAA,CAAA,GAEH,SAClBC,IAAY;AAAA,IACd,QAAc;AACZ,MAAAC,IAAU,IACVD,IAAY;AAAA,IACd;AAAA,EACF,GACgB;AAChB,SAAO,MAAM;AACX,QAAIA;AAEF,YAAMG;QACGF;AACT,YAAM,IAAI,MAAM,4CAA4CF,CAAE,EAAE;AAEhE,WAAOG;AAAA,EAEX;AACF,GAMaG,IAAU,CACrBC,MAIG;AAEH,QAAM,EAAE,MAAMC,EAAA,IAAiBC,EAAA;AAE/B,MAAI,CAACF,EAAY;AACjB,QAAMG,IAAQ,MAAM,QAAQH,CAAU,IAAIA,IAAa,CAACA,CAAU;AAClE,aAAWP,KAAMU,GAAO;AACtB,UAAMC,IAAM,GAAGH,EAAa,gBAAgB,IAAIR,CAAE;AAElD,IAAIJ,EAAc,IAAIe,CAAG,MAAM,QAE7Bf,EAAc,IAAIe,GAAKb,EAAa,EAAE,KAAKU,EAAa,kBAAkB,IAAAR,EAAA,CAAQ,CAAC;AAGrF,UAAMY,IAAiBhB,EAAc,IAAIe,CAAG;AAC5C,QAAIC,GAAgB;AAClB,YAAMT,IAAWS,EAAA;AACjB,MAAAJ,EAAa;AAAA,QACXA,EAAa,oBAAoB;AAAA,QACjCR;AAAA,QACAG;AAAA,QACA;AAAA,QACA;AAAA,MAAA;AAAA,IAEJ;AAAA,EACF;AACF,GAGaU,IAAyB,CACpCb,GACAG,MACG;AACH,QAAM,EAAE,MAAMK,EAAA,IAAiBC,EAAA;AAC/B,MAAIN;AACF,eAAWW,KAAQX;AACjB,MAAAK,EAAa,kBAAkBM,GAAMd,GAAIG,EAASW,CAAI,GAAG,IAAM,EAAI;AAGzE;"}