@zeniai/client-epic-state 5.0.96 → 5.0.98-betaJK1

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 (346) hide show
  1. package/lib/common/aiCfo/aiCfoSuggestedQuestionsPageContext.d.ts +1 -1
  2. package/lib/commonStateTypes/amount.d.ts +1 -0
  3. package/lib/commonStateTypes/amount.js +9 -1
  4. package/lib/commonStateTypes/workingDayHelper.d.ts +9 -0
  5. package/lib/commonStateTypes/workingDayHelper.js +28 -1
  6. package/lib/entity/aiCfo/aiCfoPayload.d.ts +63 -5
  7. package/lib/entity/aiCfo/aiCfoReducer.d.ts +23 -2
  8. package/lib/entity/aiCfo/aiCfoReducer.js +249 -9
  9. package/lib/entity/aiCfo/aiCfoSelector.d.ts +4 -1
  10. package/lib/entity/aiCfo/aiCfoSelector.js +19 -1
  11. package/lib/entity/aiCfo/aiCfoState.d.ts +97 -4
  12. package/lib/entity/aiCfo/aiCfoState.js +18 -1
  13. package/lib/entity/approvalRule/approvalRuleConflict.d.ts +56 -0
  14. package/lib/entity/approvalRule/approvalRuleConflict.js +77 -0
  15. package/lib/entity/approvalRule/approvalRulePayload.d.ts +34 -5
  16. package/lib/entity/approvalRule/approvalRulePayload.js +145 -10
  17. package/lib/entity/approvalRule/approvalRuleSelector.d.ts +25 -1
  18. package/lib/entity/approvalRule/approvalRuleSelector.js +40 -0
  19. package/lib/entity/approvalRule/approvalRuleState.d.ts +59 -7
  20. package/lib/entity/cardPolicy/cardPolicyPayload.d.ts +277 -0
  21. package/lib/entity/cardPolicy/cardPolicyPayload.js +143 -0
  22. package/lib/entity/cardPolicy/cardPolicyReducer.d.ts +19 -0
  23. package/lib/entity/cardPolicy/cardPolicyReducer.js +175 -0
  24. package/lib/entity/cardPolicy/cardPolicySelector.d.ts +32 -0
  25. package/lib/entity/cardPolicy/cardPolicySelector.js +99 -0
  26. package/lib/entity/cardPolicy/cardPolicyState.d.ts +205 -0
  27. package/lib/entity/cardPolicy/cardPolicyState.js +14 -0
  28. package/lib/entity/cardPolicy/extractPolicyDocumentEpic.d.ts +18 -0
  29. package/lib/entity/cardPolicy/extractPolicyDocumentEpic.js +68 -0
  30. package/lib/entity/cardPolicy/fetchCardPolicyVendorOptionsEpic.d.ts +26 -0
  31. package/lib/entity/cardPolicy/fetchCardPolicyVendorOptionsEpic.js +47 -0
  32. package/lib/entity/cardPolicy/policyDocumentExtractionToRecommendationBridgeEpic.d.ts +25 -0
  33. package/lib/entity/cardPolicy/policyDocumentExtractionToRecommendationBridgeEpic.js +39 -0
  34. package/lib/entity/cardPolicy/policyRecommendationFromUploadEpic.d.ts +24 -0
  35. package/lib/entity/cardPolicy/policyRecommendationFromUploadEpic.js +105 -0
  36. package/lib/entity/jeSchedules/jeSchedulesPayload.d.ts +1 -0
  37. package/lib/entity/jeSchedules/jeSchedulesPayload.js +7 -0
  38. package/lib/entity/jeSchedules/jeSchedulesState.d.ts +2 -0
  39. package/lib/entity/jeSchedules/jeSchedulesTypes.d.ts +1 -1
  40. package/lib/entity/monthEndCloseChecks/monthEndCloseChecksState.d.ts +1 -1
  41. package/lib/entity/snackbar/snackbarTypes.d.ts +1 -1
  42. package/lib/entity/snackbar/snackbarTypes.js +6 -0
  43. package/lib/entity/task/taskPayload.d.ts +4 -1
  44. package/lib/entity/task/taskPayload.js +3 -0
  45. package/lib/entity/task/taskReducer.d.ts +5 -1
  46. package/lib/entity/task/taskReducer.js +8 -2
  47. package/lib/entity/task/taskState.d.ts +3 -0
  48. package/lib/entity/tenant/clearAllEpic.d.ts +8 -2
  49. package/lib/entity/tenant/clearAllEpic.js +12 -0
  50. package/lib/epic.d.ts +28 -3
  51. package/lib/epic.js +28 -3
  52. package/lib/esm/commonStateTypes/amount.js +7 -0
  53. package/lib/esm/commonStateTypes/workingDayHelper.js +26 -0
  54. package/lib/esm/entity/aiCfo/aiCfoReducer.js +249 -9
  55. package/lib/esm/entity/aiCfo/aiCfoSelector.js +17 -1
  56. package/lib/esm/entity/aiCfo/aiCfoState.js +15 -0
  57. package/lib/esm/entity/approvalRule/approvalRuleConflict.js +74 -0
  58. package/lib/esm/entity/approvalRule/approvalRulePayload.js +145 -10
  59. package/lib/esm/entity/approvalRule/approvalRuleSelector.js +35 -0
  60. package/lib/esm/entity/cardPolicy/cardPolicyPayload.js +130 -0
  61. package/lib/esm/entity/cardPolicy/cardPolicyReducer.js +171 -0
  62. package/lib/esm/entity/cardPolicy/cardPolicySelector.js +75 -0
  63. package/lib/esm/entity/cardPolicy/cardPolicyState.js +9 -0
  64. package/lib/esm/entity/cardPolicy/extractPolicyDocumentEpic.js +64 -0
  65. package/lib/esm/entity/cardPolicy/fetchCardPolicyVendorOptionsEpic.js +43 -0
  66. package/lib/esm/entity/cardPolicy/policyDocumentExtractionToRecommendationBridgeEpic.js +35 -0
  67. package/lib/esm/entity/cardPolicy/policyRecommendationFromUploadEpic.js +101 -0
  68. package/lib/esm/entity/jeSchedules/jeSchedulesPayload.js +7 -0
  69. package/lib/esm/entity/snackbar/snackbarTypes.js +6 -0
  70. package/lib/esm/entity/task/taskPayload.js +3 -0
  71. package/lib/esm/entity/task/taskReducer.js +7 -1
  72. package/lib/esm/entity/tenant/clearAllEpic.js +12 -0
  73. package/lib/esm/epic.js +28 -3
  74. package/lib/esm/index.js +56 -19
  75. package/lib/esm/reducer.js +18 -0
  76. package/lib/esm/view/aiCfoView/aiCfoViewReducer.js +6 -3
  77. package/lib/esm/view/aiCfoView/epics/createSessionAndSubmitEpic.js +5 -2
  78. package/lib/esm/view/aiCfoView/epics/createSessionEpic.js +2 -1
  79. package/lib/esm/view/aiCfoView/epics/fetchSuggestedQuestionsEpic.js +12 -2
  80. package/lib/esm/view/companyTaskManagerView/companyTaskManagerViewReducer.js +39 -11
  81. package/lib/esm/view/companyTaskManagerView/companyTaskManagerViewSelector.js +14 -4
  82. package/lib/esm/view/companyTaskManagerView/epics/fetchCockpitContextEpic.js +38 -0
  83. package/lib/esm/view/companyTaskManagerView/epics/fetchCompanyTaskManagerViewEpic.js +37 -28
  84. package/lib/esm/view/companyTaskManagerView/epics/updateCompanyTaskManagerViewFiltersEpic.js +16 -0
  85. package/lib/esm/view/companyView/epic/fetchAllCockpitViewsEpic.js +2 -2
  86. package/lib/esm/view/spendManagement/autotransferRules/autoTransferRulesSelector.js +22 -2
  87. package/lib/esm/view/spendManagement/billPay/billPayReview/billPayReviewSelector.js +14 -0
  88. package/lib/esm/view/spendManagement/billPay/billPaySetupApproverView/billPaySetupApproverViewReducer.js +109 -12
  89. package/lib/esm/view/spendManagement/billPay/billPaySetupApproverView/epic/deleteBillPayApprovalRuleEpic.js +10 -2
  90. package/lib/esm/view/spendManagement/billPay/billPaySetupApproverView/epic/fetchBillPaySetupApproverViewEpic.js +8 -4
  91. package/lib/esm/view/spendManagement/billPay/billPaySetupApproverView/epic/initializeBillPaySetupApproverViewUpdateDataEpic.js +11 -7
  92. package/lib/esm/view/spendManagement/billPay/billPaySetupApproverView/epic/reorderBillPayApprovalRulesEpic.js +54 -0
  93. package/lib/esm/view/spendManagement/billPay/billPaySetupApproverView/epic/saveBillPaySetupApproverViewUpdatesEpic.js +13 -4
  94. package/lib/esm/view/spendManagement/billPay/billPaySetupApproverView/types/commonPayload.js +140 -16
  95. package/lib/esm/view/spendManagement/billPay/editBillView/editBillViewSelector.js +60 -4
  96. package/lib/esm/view/spendManagement/billPay/editBillView/epics/fetchEditBillDetailPageEpic.js +8 -2
  97. package/lib/esm/view/spendManagement/cashManagement/autoSweepFlow/autoSweepFlowPayload.js +29 -0
  98. package/lib/esm/view/spendManagement/cashManagement/autoSweepFlow/autoSweepFlowReducer.js +78 -0
  99. package/lib/esm/view/spendManagement/cashManagement/autoSweepFlow/autoSweepFlowSelector.js +47 -0
  100. package/lib/esm/view/spendManagement/cashManagement/autoSweepFlow/autoSweepFlowState.js +47 -0
  101. package/lib/esm/view/spendManagement/cashManagement/autoSweepFlow/epics/fetchCashManagementSettingsEpic.js +34 -0
  102. package/lib/esm/view/spendManagement/cashManagement/autoSweepFlow/epics/saveAutoSweepSettingsEpic.js +32 -0
  103. package/lib/esm/view/spendManagement/cashManagement/cashManagementOverview/cashManagementOverviewPayload.js +54 -0
  104. package/lib/esm/view/spendManagement/cashManagement/cashManagementOverview/cashManagementOverviewReducer.js +92 -0
  105. package/lib/esm/view/spendManagement/cashManagement/cashManagementOverview/cashManagementOverviewSelector.js +225 -0
  106. package/lib/esm/view/spendManagement/cashManagement/cashManagementOverview/cashManagementOverviewState.js +10 -0
  107. package/lib/esm/view/spendManagement/cashManagement/cashManagementOverview/epics/fetchCashManagementBannerEpic.js +23 -0
  108. package/lib/esm/view/spendManagement/cashManagement/cashManagementOverview/epics/fetchCashManagementOverviewPageEpic.js +36 -0
  109. package/lib/esm/view/spendManagement/cashManagement/cashManagementOverview/epics/fetchCashManagementRecommendationEpic.js +27 -0
  110. package/lib/esm/view/spendManagement/cashManagement/cashManagementOverview/epics/fetchRecentTransferEpic.js +28 -0
  111. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/cardPolicyDetail/cardPolicyDetailReducer.js +52 -0
  112. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/cardPolicyDetail/cardPolicyDetailSelector.js +22 -0
  113. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/cardPolicyDetail/cardPolicyDetailState.js +1 -0
  114. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/cardPolicyDetail/fetchCardPolicyDetailEpic.js +36 -0
  115. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/cardPolicyDetail/updateCardPolicyEpic.js +39 -0
  116. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/cardPolicyList/archiveCardPolicyEpic.js +34 -0
  117. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/cardPolicyList/cardPolicyListReducer.js +58 -0
  118. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/cardPolicyList/cardPolicyListSelector.js +21 -0
  119. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/cardPolicyList/cardPolicyListState.js +1 -0
  120. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/cardPolicyList/fetchCardPolicyListEpic.js +38 -0
  121. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/applyAiCardPolicyFormDraftUpdate.js +289 -0
  122. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/applyExtractedPolicyToAiCardPolicyDraft.js +109 -0
  123. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/applyExtractedPolicyToDraftEpic.js +44 -0
  124. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/applyExtractedPolicyToManualCardPolicyDraft.js +111 -0
  125. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/applyUploadPlanToAiCardPolicyDraft.js +25 -0
  126. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/buildAiCardPolicyFormDraftSeed.js +363 -0
  127. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/buildManualCardPolicyFormDraftSeed.js +36 -0
  128. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/cardPolicyChipIds.js +19 -0
  129. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/cardPolicyFormDraftTypes.js +6 -0
  130. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/cardPolicyRequestParts.js +119 -0
  131. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/createCardPolicyReducer.js +154 -0
  132. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/createCardPolicySelector.js +22 -0
  133. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/createCardPolicyState.js +1 -0
  134. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/createCardPolicyTemplateEpic.js +39 -0
  135. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/deriveAiPolicyReviewRowsFromInputs.js +140 -0
  136. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/fetchCardPolicyMccCategoriesEpic.js +20 -0
  137. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/seedAiCardPolicyFormDraftEpic.js +100 -0
  138. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/toBulkCardPolicyTemplateRequestsFromDraft.js +96 -0
  139. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/toCardPolicyTemplateRequestFromDraft.js +59 -0
  140. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/toManualCardPolicyTemplateRequestFromDraft.js +24 -0
  141. package/lib/esm/view/spendManagement/chargeCards/chargeCardList/chargeCardListSelector.js +25 -0
  142. package/lib/esm/view/spendManagement/chargeCards/issueChargeCard/aiCardCreationFormDraftTypes.js +1 -0
  143. package/lib/esm/view/spendManagement/chargeCards/issueChargeCard/applyAiCardCreationFormDraftUpdate.js +34 -0
  144. package/lib/esm/view/spendManagement/chargeCards/issueChargeCard/buildAiCardCreationFormDraftSeed.js +57 -0
  145. package/lib/esm/view/spendManagement/chargeCards/issueChargeCard/deriveAiCardRowsFromTeams.js +35 -0
  146. package/lib/esm/view/spendManagement/chargeCards/issueChargeCard/issueChargeCardEpic.js +2 -2
  147. package/lib/esm/view/spendManagement/chargeCards/issueChargeCard/issueChargeCardReducer.js +42 -4
  148. package/lib/esm/view/spendManagement/chargeCards/issueChargeCard/issueChargeCardSelector.js +35 -0
  149. package/lib/esm/view/spendManagement/chargeCards/issueChargeCard/seedAiCardCreationFormDraftEpic.js +62 -0
  150. package/lib/esm/view/spendManagement/chargeCards/issueChargeCard/toIssueChargeCardLocalDataFromDraft.js +44 -0
  151. package/lib/esm/view/spendManagement/reimbursement/editRemiView/epics/fetchEditRemiDetailPageEpic.js +5 -1
  152. package/lib/esm/view/spendManagement/reimbursement/remiSetupApproverView/epic/deleteRemiApprovalRuleEpic.js +10 -2
  153. package/lib/esm/view/spendManagement/reimbursement/remiSetupApproverView/epic/fetchRemiSetupApproverViewEpic.js +8 -2
  154. package/lib/esm/view/spendManagement/reimbursement/remiSetupApproverView/epic/initializeRemiSetupApproverViewUpdateDataEpic.js +11 -7
  155. package/lib/esm/view/spendManagement/reimbursement/remiSetupApproverView/epic/reorderRemiApprovalRulesEpic.js +61 -0
  156. package/lib/esm/view/spendManagement/reimbursement/remiSetupApproverView/epic/saveRemiSetupApproverViewUpdatesEpic.js +13 -4
  157. package/lib/esm/view/spendManagement/reimbursement/remiSetupApproverView/remiSetupApproverViewReducer.js +80 -11
  158. package/lib/esm/view/taskManager/taskDetailView/epics/createSubTaskEpic.js +80 -0
  159. package/lib/esm/view/taskManager/taskDetailView/epics/fetchSubTasksEpic.js +36 -0
  160. package/lib/esm/view/taskManager/taskDetailView/epics/fetchTaskDetailEpic.js +13 -0
  161. package/lib/esm/view/taskManager/taskDetailView/taskDetailReducer.js +51 -2
  162. package/lib/esm/view/taskManager/taskDetailView/taskDetailSelector.js +19 -8
  163. package/lib/index.d.ts +69 -23
  164. package/lib/index.js +226 -22
  165. package/lib/reducer.d.ts +18 -0
  166. package/lib/reducer.js +18 -0
  167. package/lib/view/aiCfoView/aiCfoViewReducer.d.ts +11 -2
  168. package/lib/view/aiCfoView/aiCfoViewReducer.js +6 -3
  169. package/lib/view/aiCfoView/epics/createSessionAndSubmitEpic.js +5 -2
  170. package/lib/view/aiCfoView/epics/createSessionEpic.js +2 -1
  171. package/lib/view/aiCfoView/epics/fetchSuggestedQuestionsEpic.d.ts +8 -1
  172. package/lib/view/aiCfoView/epics/fetchSuggestedQuestionsEpic.js +12 -2
  173. package/lib/view/companyTaskManagerView/companyTaskManagerViewPayload.d.ts +19 -11
  174. package/lib/view/companyTaskManagerView/companyTaskManagerViewReducer.d.ts +11 -5
  175. package/lib/view/companyTaskManagerView/companyTaskManagerViewReducer.js +40 -12
  176. package/lib/view/companyTaskManagerView/companyTaskManagerViewSelector.d.ts +2 -0
  177. package/lib/view/companyTaskManagerView/companyTaskManagerViewSelector.js +13 -3
  178. package/lib/view/companyTaskManagerView/companyTaskManagerViewState.d.ts +11 -3
  179. package/lib/view/companyTaskManagerView/epics/fetchCockpitContextEpic.d.ts +10 -0
  180. package/lib/view/companyTaskManagerView/epics/fetchCockpitContextEpic.js +42 -0
  181. package/lib/view/companyTaskManagerView/epics/fetchCompanyTaskManagerViewEpic.d.ts +1 -3
  182. package/lib/view/companyTaskManagerView/epics/fetchCompanyTaskManagerViewEpic.js +37 -28
  183. package/lib/view/companyTaskManagerView/epics/updateCompanyTaskManagerViewFiltersEpic.d.ts +6 -0
  184. package/lib/view/companyTaskManagerView/epics/updateCompanyTaskManagerViewFiltersEpic.js +20 -0
  185. package/lib/view/companyView/epic/fetchAllCockpitViewsEpic.js +2 -2
  186. package/lib/view/companyView/types/cockpitTypes.d.ts +3 -2
  187. package/lib/view/expenseAutomationView/helpers/transactionCategorizationLocalDataHelper.d.ts +1 -1
  188. package/lib/view/expenseAutomationView/types/reconciliationViewState.d.ts +1 -1
  189. package/lib/view/people/peopleTypes.d.ts +1 -1
  190. package/lib/view/scheduleView/scheduleListView/scheduleListTypes.d.ts +1 -1
  191. package/lib/view/spendManagement/autotransferRules/autoTransferRulesSelector.d.ts +8 -1
  192. package/lib/view/spendManagement/autotransferRules/autoTransferRulesSelector.js +21 -1
  193. package/lib/view/spendManagement/autotransferRules/autoTransferRulesState.d.ts +22 -0
  194. package/lib/view/spendManagement/billPay/billPayReview/billPayReviewSelector.d.ts +7 -0
  195. package/lib/view/spendManagement/billPay/billPayReview/billPayReviewSelector.js +14 -0
  196. package/lib/view/spendManagement/billPay/billPaySetupApproverView/billPaySetupApproverViewReducer.d.ts +14 -3
  197. package/lib/view/spendManagement/billPay/billPaySetupApproverView/billPaySetupApproverViewReducer.js +110 -13
  198. package/lib/view/spendManagement/billPay/billPaySetupApproverView/billPaySetupApproverViewState.d.ts +16 -0
  199. package/lib/view/spendManagement/billPay/billPaySetupApproverView/epic/deleteBillPayApprovalRuleEpic.js +10 -2
  200. package/lib/view/spendManagement/billPay/billPaySetupApproverView/epic/fetchBillPaySetupApproverViewEpic.js +8 -4
  201. package/lib/view/spendManagement/billPay/billPaySetupApproverView/epic/initializeBillPaySetupApproverViewUpdateDataEpic.js +10 -6
  202. package/lib/view/spendManagement/billPay/billPaySetupApproverView/epic/reorderBillPayApprovalRulesEpic.d.ts +23 -0
  203. package/lib/view/spendManagement/billPay/billPaySetupApproverView/epic/reorderBillPayApprovalRulesEpic.js +58 -0
  204. package/lib/view/spendManagement/billPay/billPaySetupApproverView/epic/saveBillPaySetupApproverViewUpdatesEpic.js +12 -3
  205. package/lib/view/spendManagement/billPay/billPaySetupApproverView/types/commonPayload.d.ts +59 -1
  206. package/lib/view/spendManagement/billPay/billPaySetupApproverView/types/commonPayload.js +142 -17
  207. package/lib/view/spendManagement/billPay/billPaySetupApproverView/types/commonState.d.ts +31 -5
  208. package/lib/view/spendManagement/billPay/editBillView/editBillViewSelector.d.ts +8 -1
  209. package/lib/view/spendManagement/billPay/editBillView/editBillViewSelector.js +60 -4
  210. package/lib/view/spendManagement/billPay/editBillView/epics/fetchEditBillDetailPageEpic.js +8 -2
  211. package/lib/view/spendManagement/cashManagement/autoSweepFlow/autoSweepFlowPayload.d.ts +47 -0
  212. package/lib/view/spendManagement/cashManagement/autoSweepFlow/autoSweepFlowPayload.js +34 -0
  213. package/lib/view/spendManagement/cashManagement/autoSweepFlow/autoSweepFlowReducer.d.ts +23 -0
  214. package/lib/view/spendManagement/cashManagement/autoSweepFlow/autoSweepFlowReducer.js +82 -0
  215. package/lib/view/spendManagement/cashManagement/autoSweepFlow/autoSweepFlowSelector.d.ts +40 -0
  216. package/lib/view/spendManagement/cashManagement/autoSweepFlow/autoSweepFlowSelector.js +51 -0
  217. package/lib/view/spendManagement/cashManagement/autoSweepFlow/autoSweepFlowState.d.ts +37 -0
  218. package/lib/view/spendManagement/cashManagement/autoSweepFlow/autoSweepFlowState.js +53 -0
  219. package/lib/view/spendManagement/cashManagement/autoSweepFlow/epics/fetchCashManagementSettingsEpic.d.ts +14 -0
  220. package/lib/view/spendManagement/cashManagement/autoSweepFlow/epics/fetchCashManagementSettingsEpic.js +38 -0
  221. package/lib/view/spendManagement/cashManagement/autoSweepFlow/epics/saveAutoSweepSettingsEpic.d.ts +7 -0
  222. package/lib/view/spendManagement/cashManagement/autoSweepFlow/epics/saveAutoSweepSettingsEpic.js +36 -0
  223. package/lib/view/spendManagement/cashManagement/cashManagementOverview/cashManagementOverviewPayload.d.ts +56 -0
  224. package/lib/view/spendManagement/cashManagement/cashManagementOverview/cashManagementOverviewPayload.js +60 -0
  225. package/lib/view/spendManagement/cashManagement/cashManagementOverview/cashManagementOverviewReducer.d.ts +22 -0
  226. package/lib/view/spendManagement/cashManagement/cashManagementOverview/cashManagementOverviewReducer.js +96 -0
  227. package/lib/view/spendManagement/cashManagement/cashManagementOverview/cashManagementOverviewSelector.d.ts +59 -0
  228. package/lib/view/spendManagement/cashManagement/cashManagementOverview/cashManagementOverviewSelector.js +230 -0
  229. package/lib/view/spendManagement/cashManagement/cashManagementOverview/cashManagementOverviewState.d.ts +122 -0
  230. package/lib/view/spendManagement/cashManagement/cashManagementOverview/cashManagementOverviewState.js +13 -0
  231. package/lib/view/spendManagement/cashManagement/cashManagementOverview/epics/fetchCashManagementBannerEpic.d.ts +7 -0
  232. package/lib/view/spendManagement/cashManagement/cashManagementOverview/epics/fetchCashManagementBannerEpic.js +27 -0
  233. package/lib/view/spendManagement/cashManagement/cashManagementOverview/epics/fetchCashManagementOverviewPageEpic.d.ts +9 -0
  234. package/lib/view/spendManagement/cashManagement/cashManagementOverview/epics/fetchCashManagementOverviewPageEpic.js +40 -0
  235. package/lib/view/spendManagement/cashManagement/cashManagementOverview/epics/fetchCashManagementRecommendationEpic.d.ts +7 -0
  236. package/lib/view/spendManagement/cashManagement/cashManagementOverview/epics/fetchCashManagementRecommendationEpic.js +31 -0
  237. package/lib/view/spendManagement/cashManagement/cashManagementOverview/epics/fetchRecentTransferEpic.d.ts +15 -0
  238. package/lib/view/spendManagement/cashManagement/cashManagementOverview/epics/fetchRecentTransferEpic.js +32 -0
  239. package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyDetail/cardPolicyDetailReducer.d.ts +14 -0
  240. package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyDetail/cardPolicyDetailReducer.js +56 -0
  241. package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyDetail/cardPolicyDetailSelector.d.ts +15 -0
  242. package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyDetail/cardPolicyDetailSelector.js +28 -0
  243. package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyDetail/cardPolicyDetailState.d.ts +8 -0
  244. package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyDetail/cardPolicyDetailState.js +2 -0
  245. package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyDetail/fetchCardPolicyDetailEpic.d.ts +8 -0
  246. package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyDetail/fetchCardPolicyDetailEpic.js +40 -0
  247. package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyDetail/updateCardPolicyEpic.d.ts +8 -0
  248. package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyDetail/updateCardPolicyEpic.js +43 -0
  249. package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyList/archiveCardPolicyEpic.d.ts +8 -0
  250. package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyList/archiveCardPolicyEpic.js +38 -0
  251. package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyList/cardPolicyListReducer.d.ts +15 -0
  252. package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyList/cardPolicyListReducer.js +62 -0
  253. package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyList/cardPolicyListSelector.d.ts +15 -0
  254. package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyList/cardPolicyListSelector.js +27 -0
  255. package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyList/cardPolicyListState.d.ts +7 -0
  256. package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyList/cardPolicyListState.js +2 -0
  257. package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyList/fetchCardPolicyListEpic.d.ts +8 -0
  258. package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyList/fetchCardPolicyListEpic.js +42 -0
  259. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/applyAiCardPolicyFormDraftUpdate.d.ts +8 -0
  260. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/applyAiCardPolicyFormDraftUpdate.js +294 -0
  261. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/applyExtractedPolicyToAiCardPolicyDraft.d.ts +8 -0
  262. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/applyExtractedPolicyToAiCardPolicyDraft.js +113 -0
  263. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/applyExtractedPolicyToDraftEpic.d.ts +9 -0
  264. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/applyExtractedPolicyToDraftEpic.js +48 -0
  265. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/applyExtractedPolicyToManualCardPolicyDraft.d.ts +8 -0
  266. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/applyExtractedPolicyToManualCardPolicyDraft.js +115 -0
  267. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/applyUploadPlanToAiCardPolicyDraft.d.ts +13 -0
  268. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/applyUploadPlanToAiCardPolicyDraft.js +29 -0
  269. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/buildAiCardPolicyFormDraftSeed.d.ts +14 -0
  270. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/buildAiCardPolicyFormDraftSeed.js +369 -0
  271. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/buildManualCardPolicyFormDraftSeed.d.ts +6 -0
  272. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/buildManualCardPolicyFormDraftSeed.js +40 -0
  273. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/cardPolicyChipIds.d.ts +7 -0
  274. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/cardPolicyChipIds.js +26 -0
  275. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/cardPolicyFormDraftTypes.d.ts +116 -0
  276. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/cardPolicyFormDraftTypes.js +10 -0
  277. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/cardPolicyRequestParts.d.ts +33 -0
  278. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/cardPolicyRequestParts.js +126 -0
  279. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/createCardPolicyReducer.d.ts +52 -0
  280. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/createCardPolicyReducer.js +158 -0
  281. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/createCardPolicySelector.d.ts +11 -0
  282. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/createCardPolicySelector.js +31 -0
  283. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/createCardPolicyState.d.ts +12 -0
  284. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/createCardPolicyState.js +2 -0
  285. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/createCardPolicyTemplateEpic.d.ts +8 -0
  286. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/createCardPolicyTemplateEpic.js +43 -0
  287. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/deriveAiPolicyReviewRowsFromInputs.d.ts +10 -0
  288. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/deriveAiPolicyReviewRowsFromInputs.js +144 -0
  289. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/fetchCardPolicyMccCategoriesEpic.d.ts +7 -0
  290. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/fetchCardPolicyMccCategoriesEpic.js +24 -0
  291. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/seedAiCardPolicyFormDraftEpic.d.ts +11 -0
  292. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/seedAiCardPolicyFormDraftEpic.js +104 -0
  293. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/toBulkCardPolicyTemplateRequestsFromDraft.d.ts +22 -0
  294. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/toBulkCardPolicyTemplateRequestsFromDraft.js +100 -0
  295. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/toCardPolicyTemplateRequestFromDraft.d.ts +8 -0
  296. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/toCardPolicyTemplateRequestFromDraft.js +63 -0
  297. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/toManualCardPolicyTemplateRequestFromDraft.d.ts +3 -0
  298. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/toManualCardPolicyTemplateRequestFromDraft.js +28 -0
  299. package/lib/view/spendManagement/chargeCards/chargeCardList/chargeCardList.d.ts +1 -1
  300. package/lib/view/spendManagement/chargeCards/chargeCardList/chargeCardListSelector.d.ts +14 -0
  301. package/lib/view/spendManagement/chargeCards/chargeCardList/chargeCardListSelector.js +27 -1
  302. package/lib/view/spendManagement/chargeCards/issueChargeCard/aiCardCreationFormDraftTypes.d.ts +34 -0
  303. package/lib/view/spendManagement/chargeCards/issueChargeCard/aiCardCreationFormDraftTypes.js +2 -0
  304. package/lib/view/spendManagement/chargeCards/issueChargeCard/applyAiCardCreationFormDraftUpdate.d.ts +7 -0
  305. package/lib/view/spendManagement/chargeCards/issueChargeCard/applyAiCardCreationFormDraftUpdate.js +38 -0
  306. package/lib/view/spendManagement/chargeCards/issueChargeCard/buildAiCardCreationFormDraftSeed.d.ts +12 -0
  307. package/lib/view/spendManagement/chargeCards/issueChargeCard/buildAiCardCreationFormDraftSeed.js +61 -0
  308. package/lib/view/spendManagement/chargeCards/issueChargeCard/deriveAiCardRowsFromTeams.d.ts +9 -0
  309. package/lib/view/spendManagement/chargeCards/issueChargeCard/deriveAiCardRowsFromTeams.js +39 -0
  310. package/lib/view/spendManagement/chargeCards/issueChargeCard/issueChargeCardEpic.d.ts +2 -2
  311. package/lib/view/spendManagement/chargeCards/issueChargeCard/issueChargeCardEpic.js +1 -1
  312. package/lib/view/spendManagement/chargeCards/issueChargeCard/issueChargeCardReducer.d.ts +12 -2
  313. package/lib/view/spendManagement/chargeCards/issueChargeCard/issueChargeCardReducer.js +43 -5
  314. package/lib/view/spendManagement/chargeCards/issueChargeCard/issueChargeCardSelector.d.ts +7 -0
  315. package/lib/view/spendManagement/chargeCards/issueChargeCard/issueChargeCardSelector.js +42 -1
  316. package/lib/view/spendManagement/chargeCards/issueChargeCard/issueChargeCardState.d.ts +5 -0
  317. package/lib/view/spendManagement/chargeCards/issueChargeCard/seedAiCardCreationFormDraftEpic.d.ts +11 -0
  318. package/lib/view/spendManagement/chargeCards/issueChargeCard/seedAiCardCreationFormDraftEpic.js +66 -0
  319. package/lib/view/spendManagement/chargeCards/issueChargeCard/toIssueChargeCardLocalDataFromDraft.d.ts +3 -0
  320. package/lib/view/spendManagement/chargeCards/issueChargeCard/toIssueChargeCardLocalDataFromDraft.js +48 -0
  321. package/lib/view/spendManagement/reimbursement/editRemiView/epics/fetchEditRemiDetailPageEpic.js +5 -1
  322. package/lib/view/spendManagement/reimbursement/remiSetupApproverView/epic/deleteRemiApprovalRuleEpic.js +10 -2
  323. package/lib/view/spendManagement/reimbursement/remiSetupApproverView/epic/fetchRemiSetupApproverViewEpic.js +8 -2
  324. package/lib/view/spendManagement/reimbursement/remiSetupApproverView/epic/initializeRemiSetupApproverViewUpdateDataEpic.js +10 -6
  325. package/lib/view/spendManagement/reimbursement/remiSetupApproverView/epic/reorderRemiApprovalRulesEpic.d.ts +14 -0
  326. package/lib/view/spendManagement/reimbursement/remiSetupApproverView/epic/reorderRemiApprovalRulesEpic.js +65 -0
  327. package/lib/view/spendManagement/reimbursement/remiSetupApproverView/epic/saveRemiSetupApproverViewUpdatesEpic.js +12 -3
  328. package/lib/view/spendManagement/reimbursement/remiSetupApproverView/remiSetupApproverViewReducer.d.ts +14 -3
  329. package/lib/view/spendManagement/reimbursement/remiSetupApproverView/remiSetupApproverViewReducer.js +81 -12
  330. package/lib/view/spendManagement/reimbursement/remiSetupApproverView/remiSetupApproverViewState.d.ts +12 -0
  331. package/lib/view/taskManager/taskDetailView/epics/createSubTaskEpic.d.ts +9 -0
  332. package/lib/view/taskManager/taskDetailView/epics/createSubTaskEpic.js +84 -0
  333. package/lib/view/taskManager/taskDetailView/epics/fetchSubTasksEpic.d.ts +8 -0
  334. package/lib/view/taskManager/taskDetailView/epics/fetchSubTasksEpic.js +40 -0
  335. package/lib/view/taskManager/taskDetailView/epics/fetchTaskDetailEpic.d.ts +2 -1
  336. package/lib/view/taskManager/taskDetailView/epics/fetchTaskDetailEpic.js +13 -0
  337. package/lib/view/taskManager/taskDetailView/taskDetail.d.ts +13 -0
  338. package/lib/view/taskManager/taskDetailView/taskDetailReducer.d.ts +14 -2
  339. package/lib/view/taskManager/taskDetailView/taskDetailReducer.js +52 -3
  340. package/lib/view/taskManager/taskDetailView/taskDetailSelector.d.ts +2 -1
  341. package/lib/view/taskManager/taskDetailView/taskDetailSelector.js +17 -6
  342. package/lib/view/taskManager/taskListView/taskList.d.ts +3 -3
  343. package/lib/view/taskManager/taskListView/taskListReducer.d.ts +1 -1
  344. package/lib/view/transactionDetail/journalEntryLinesViewModel.d.ts +1 -1
  345. package/lib/zeniAPI.d.ts +1 -0
  346. package/package.json +1 -1
@@ -11,16 +11,20 @@ const initializeRemiSetupApproverViewUpdateDataEpic = (actions$, state$) => acti
11
11
  if (approvalRuleId != null) {
12
12
  const approvalRule = (0, approvalRuleSelector_1.getApprovalRuleById)(state$.value.approvalRuleState, approvalRuleId);
13
13
  if (approvalRule != null) {
14
- const criteria = approvalRule.criteria[0];
15
- const range = criteria?.range;
16
14
  const remiSetupApproverViewUpdateData = {
17
15
  approvalRuleId,
18
16
  steps: approvalRule.steps,
19
17
  criteria: {
20
- rangeType: criteria?.rangeType,
21
- rangeEntity: criteria?.rangeEntity,
22
- range,
18
+ amount: (0, approvalRuleSelector_1.getAmountCriteria)(approvalRule.criteria),
19
+ vendor: (0, approvalRuleSelector_1.getVendorCriteria)(approvalRule.criteria),
20
+ department: (0, approvalRuleSelector_1.getDepartmentCriteria)(approvalRule.criteria),
23
21
  },
22
+ // Approval Rules 3.0 — seed rule-level fields so the form can
23
+ // round-trip them on edit. Each may be undefined on legacy rules.
24
+ name: approvalRule.name,
25
+ description: approvalRule.description,
26
+ separationOfDuties: approvalRule.separationOfDuties,
27
+ isFallback: approvalRule.isFallback,
24
28
  };
25
29
  fetchActions.push((0, remiSetupApproverViewReducer_1.clearRemiSetupApproverViewUpdateData)(), (0, remiSetupApproverViewReducer_1.saveRemiSetupApproverViewUpdateData)(remiSetupApproverViewUpdateData));
26
30
  }
@@ -28,7 +32,7 @@ const initializeRemiSetupApproverViewUpdateDataEpic = (actions$, state$) => acti
28
32
  else {
29
33
  const remiSetupApproverViewCreateData = {
30
34
  steps: [],
31
- criteria: undefined,
35
+ criteria: {},
32
36
  };
33
37
  fetchActions.push((0, remiSetupApproverViewReducer_1.clearRemiSetupApproverViewUpdateData)(), (0, remiSetupApproverViewReducer_1.saveRemiSetupApproverViewUpdateData)(remiSetupApproverViewCreateData));
34
38
  }
@@ -0,0 +1,14 @@
1
+ import { ActionsObservable, StateObservable } from 'redux-observable';
2
+ import { Observable } from 'rxjs';
3
+ import { updateApprovalRules } from '../../../../../entity/approvalRule/approvalRuleReducer';
4
+ import { openSnackbar } from '../../../../../entity/snackbar/snackbarReducer';
5
+ import { RootState } from '../../../../../reducer';
6
+ import { ZeniAPI } from '../../../../../zeniAPI';
7
+ import { fetchRemiSetupApproverView, reorderRemiApprovalRules, reorderRemiApprovalRulesFailure, reorderRemiApprovalRulesSuccess } from '../remiSetupApproverViewReducer';
8
+ /**
9
+ * Approval Rules 3.0 — list-page drag-and-drop reorder for
10
+ * reimbursements. Mirrors the BillPay reorder epic — see that file
11
+ * for the longer rationale.
12
+ */
13
+ export type ActionType = ReturnType<typeof reorderRemiApprovalRules> | ReturnType<typeof reorderRemiApprovalRulesSuccess> | ReturnType<typeof reorderRemiApprovalRulesFailure> | ReturnType<typeof updateApprovalRules> | ReturnType<typeof fetchRemiSetupApproverView> | ReturnType<typeof openSnackbar>;
14
+ export declare const reorderRemiApprovalRulesEpic: (actions$: ActionsObservable<ActionType>, _state$: StateObservable<RootState>, zeniAPI: ZeniAPI) => Observable<ActionType>;
@@ -0,0 +1,65 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.reorderRemiApprovalRulesEpic = void 0;
4
+ const rxjs_1 = require("rxjs");
5
+ const operators_1 = require("rxjs/operators");
6
+ const approvalRuleReducer_1 = require("../../../../../entity/approvalRule/approvalRuleReducer");
7
+ const snackbarReducer_1 = require("../../../../../entity/snackbar/snackbarReducer");
8
+ const responsePayload_1 = require("../../../../../responsePayload");
9
+ const remiSetupApproverViewReducer_1 = require("../remiSetupApproverViewReducer");
10
+ const reorderRemiApprovalRulesEpic = (actions$, _state$, zeniAPI) => actions$.pipe((0, operators_1.filter)(remiSetupApproverViewReducer_1.reorderRemiApprovalRules.match), (0, operators_1.switchMap)((action) => {
11
+ const { approvalRuleIds, useV3 } = action.payload;
12
+ const endpoint = `${zeniAPI.apiEndPoints.approvalMicroServiceBaseUrl}/1.0/reimbursements/approval-rules-v2/reorder`;
13
+ return zeniAPI
14
+ .putAndGetJSON(endpoint, {
15
+ rule_ids: approvalRuleIds,
16
+ })
17
+ .pipe((0, operators_1.mergeMap)((response) => {
18
+ if ((0, responsePayload_1.isSuccessResponse)(response) && response.data != null) {
19
+ const serverOrderedIds = response.data.approval_rules.map((approvalRule) => approvalRule.approval_rule_id);
20
+ const actions = [
21
+ (0, approvalRuleReducer_1.updateApprovalRules)(response.data.approval_rules),
22
+ (0, remiSetupApproverViewReducer_1.reorderRemiApprovalRulesSuccess)(serverOrderedIds),
23
+ (0, snackbarReducer_1.openSnackbar)({
24
+ messageSection: `reimbursement_approval_reorder`,
25
+ messageText: 'success',
26
+ type: 'success',
27
+ }),
28
+ ];
29
+ return (0, rxjs_1.from)(actions);
30
+ }
31
+ else {
32
+ return (0, rxjs_1.from)([
33
+ (0, remiSetupApproverViewReducer_1.reorderRemiApprovalRulesFailure)(response.status),
34
+ (0, snackbarReducer_1.openSnackbar)({
35
+ messageSection: `reimbursement_approval_reorder`,
36
+ messageText: 'failed',
37
+ type: 'error',
38
+ }),
39
+ // Failure-recovery refetch — match the screen connector
40
+ // convention '(cacheOverride, resolveAttributeToUser,
41
+ // includeImplicitActors, useV3)' rather than copying BillPay's
42
+ // 3-arg shape. With the previous useV3-as-default-false the
43
+ // V3 flag was being smuggled in as 'includeImplicitActors',
44
+ // which silently broke V3 recovery refetches.
45
+ (0, remiSetupApproverViewReducer_1.fetchRemiSetupApproverView)(true, false, false, useV3),
46
+ ]);
47
+ }
48
+ }), (0, operators_1.catchError)((error) => (0, rxjs_1.from)([
49
+ (0, remiSetupApproverViewReducer_1.reorderRemiApprovalRulesFailure)((0, responsePayload_1.createZeniAPIStatus)('Unexpected Error', 'Reorder Reimbursement Approval Rules errored out' +
50
+ JSON.stringify(error))),
51
+ (0, snackbarReducer_1.openSnackbar)({
52
+ messageSection: `reimbursement_approval_reorder`,
53
+ messageText: 'failed',
54
+ type: 'error',
55
+ }),
56
+ // Failure-recovery refetch — match the screen connector
57
+ // convention '(cacheOverride, resolveAttributeToUser,
58
+ // includeImplicitActors, useV3)' rather than copying BillPay's
59
+ // 3-arg shape. With the previous useV3-as-default-false the
60
+ // V3 flag was being smuggled in as 'includeImplicitActors',
61
+ // which silently broke V3 recovery refetches.
62
+ (0, remiSetupApproverViewReducer_1.fetchRemiSetupApproverView)(true, false, false, useV3),
63
+ ])));
64
+ }));
65
+ exports.reorderRemiApprovalRulesEpic = reorderRemiApprovalRulesEpic;
@@ -9,14 +9,23 @@ const userReducer_1 = require("../../../../../entity/user/userReducer");
9
9
  const responsePayload_1 = require("../../../../../responsePayload");
10
10
  const commonPayload_1 = require("../../../billPay/billPaySetupApproverView/types/commonPayload");
11
11
  const remiSetupApproverViewReducer_1 = require("../remiSetupApproverViewReducer");
12
- const saveRemiSetupApproverViewUpdatesEpic = (actions$, state$, zeniAPI) => actions$.pipe((0, operators_1.filter)(remiSetupApproverViewReducer_1.saveRemiSetupApproverViewUpdates.match), (0, operators_1.switchMap)(() => {
12
+ const saveRemiSetupApproverViewUpdatesEpic = (actions$, state$, zeniAPI) => actions$.pipe((0, operators_1.filter)(remiSetupApproverViewReducer_1.saveRemiSetupApproverViewUpdates.match), (0, operators_1.switchMap)((action) => {
13
13
  const { remiSetupApproverViewState } = state$.value;
14
14
  const remiSetupApproverViewUpdateData = remiSetupApproverViewState.remiSetupApproverViewUpdateData;
15
15
  if (remiSetupApproverViewUpdateData != null &&
16
16
  remiSetupApproverViewUpdateData.data != null) {
17
- const payload = (0, commonPayload_1.toApprovalChangableInfoPayload)(remiSetupApproverViewUpdateData.data);
17
+ // Approval Rules 3.0 — gate URL + write-side payload mapper on
18
+ // the `approval_rule_v3_config` dynamic config. `useV3` arrives
19
+ // on the action payload from the screen connector.
20
+ const { useV3 } = action.payload;
21
+ const payload = useV3
22
+ ? (0, commonPayload_1.toApprovalChangableInfoPayload)(remiSetupApproverViewUpdateData.data)
23
+ : (0, commonPayload_1.toApprovalChangableInfoPayloadV1)(remiSetupApproverViewUpdateData.data);
24
+ const endpoint = useV3
25
+ ? `${zeniAPI.apiEndPoints.approvalMicroServiceBaseUrl}/1.0/reimbursements/approval-rules-v2`
26
+ : `${zeniAPI.apiEndPoints.approvalMicroServiceBaseUrl}/1.0/reimbursements/approval-rules`;
18
27
  return zeniAPI
19
- .postAndGetJSON(`${zeniAPI.apiEndPoints.approvalMicroServiceBaseUrl}/1.0/reimbursements/approval-rules`, payload)
28
+ .postAndGetJSON(endpoint, payload)
20
29
  .pipe((0, operators_1.mergeMap)((response) => {
21
30
  if ((0, responsePayload_1.isSuccessResponse)(response) && response.data != null) {
22
31
  const approvalRuleIds = response.data.approval_rules.map((approvalRule) => approvalRule.approval_rule_id);
@@ -2,10 +2,11 @@ import { ZeniAPIStatus } from '../../../../responsePayload';
2
2
  import { ApprovalRuleCreateData, ApprovalRuleUpdateData } from '../../billPay/billPaySetupApproverView/types/commonState';
3
3
  import { RemiSetupApproverViewState } from './remiSetupApproverViewState';
4
4
  export declare const initialState: RemiSetupApproverViewState;
5
- export declare const fetchRemiSetupApproverView: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[cacheOverride?: any, resolveAttributeToUser?: any, includeImplicitActors?: any], {
5
+ export declare const fetchRemiSetupApproverView: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[cacheOverride: any, resolveAttributeToUser: any, includeImplicitActors: any, useV3: boolean], {
6
6
  cacheOverride: any;
7
7
  resolveAttributeToUser: any;
8
8
  includeImplicitActors: any;
9
+ useV3: boolean;
9
10
  }, "remiSetupApproverView/fetchRemiSetupApproverView", never, never>, fetchRemiSetupApproverViewSuccess: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[approvalRuleIds: string[]], {
10
11
  approvalRuleIds: string[];
11
12
  }, "remiSetupApproverView/fetchRemiSetupApproverViewSuccess", never, never>, fetchRemiSetupApproverViewFailure: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[status: ZeniAPIStatus<Record<string, unknown>>], ZeniAPIStatus<Record<string, unknown>>, "remiSetupApproverView/fetchRemiSetupApproverViewFailure", never, never>, fetchRemiApproversDetails: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[cacheOverride?: any, includeUserRoles?: any, includeAttributesUserIds?: any, lastUpdatedByUserId?: any], {
@@ -24,15 +25,25 @@ export declare const fetchRemiSetupApproverView: import("@reduxjs/toolkit").Acti
24
25
  attributeSubTypeToUserIdMapping: Record<"manager" | "vendor_owner" | "manager_of_manager", string> | undefined;
25
26
  }, "remiSetupApproverView/fetchRemiApproversListSuccess", never, never>, fetchRemiApproversListFailure: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[status: ZeniAPIStatus<Record<string, unknown>>], {
26
27
  status: ZeniAPIStatus<Record<string, unknown>>;
27
- }, "remiSetupApproverView/fetchRemiApproversListFailure", never, never>, deleteRemiApprovalRule: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[approvalRuleId: string], {
28
+ }, "remiSetupApproverView/fetchRemiApproversListFailure", never, never>, deleteRemiApprovalRule: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[approvalRuleId: string, useV3: boolean], {
28
29
  approvalRuleId: string;
30
+ useV3: boolean;
29
31
  }, "remiSetupApproverView/deleteRemiApprovalRule", never, never>, deleteRemiApprovalRuleSuccess: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[deletedApprovalRuleId: string, approvalRuleIds: string[]], {
30
32
  deletedApprovalRuleId: string;
31
33
  approvalRuleIds: string[];
32
34
  }, "remiSetupApproverView/deleteRemiApprovalRuleSuccess", never, never>, deleteRemiApprovalRuleFailure: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[approvalRuleId: string, status: ZeniAPIStatus<Record<string, unknown>>], {
33
35
  approvalRuleId: string;
34
36
  status: ZeniAPIStatus<Record<string, unknown>>;
35
- }, "remiSetupApproverView/deleteRemiApprovalRuleFailure", never, never>, saveRemiSetupApproverViewUpdates: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"remiSetupApproverView/saveRemiSetupApproverViewUpdates">, saveRemiSetupApproverViewUpdatesSuccess: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[approvalRuleIds: string[], affectedEntityIds?: string[] | undefined, newApprovalRuleId?: string | undefined], {
37
+ }, "remiSetupApproverView/deleteRemiApprovalRuleFailure", never, never>, reorderRemiApprovalRules: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[approvalRuleIds: string[], useV3: boolean], {
38
+ approvalRuleIds: string[];
39
+ useV3: boolean;
40
+ }, "remiSetupApproverView/reorderRemiApprovalRules", never, never>, reorderRemiApprovalRulesSuccess: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[approvalRuleIds: string[]], {
41
+ approvalRuleIds: string[];
42
+ }, "remiSetupApproverView/reorderRemiApprovalRulesSuccess", never, never>, reorderRemiApprovalRulesFailure: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[status: ZeniAPIStatus<Record<string, unknown>>], {
43
+ status: ZeniAPIStatus<Record<string, unknown>>;
44
+ }, "remiSetupApproverView/reorderRemiApprovalRulesFailure", never, never>, saveRemiSetupApproverViewUpdates: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[useV3: boolean], {
45
+ useV3: boolean;
46
+ }, "remiSetupApproverView/saveRemiSetupApproverViewUpdates", never, never>, saveRemiSetupApproverViewUpdatesSuccess: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[approvalRuleIds: string[], affectedEntityIds?: string[] | undefined, newApprovalRuleId?: string | undefined], {
36
47
  approvalRuleIds: string[];
37
48
  affectedEntityIds: string[] | undefined;
38
49
  newApprovalRuleId: string | undefined;
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  var _a;
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.clearRemiSetupApproverView = exports.clearRemiSetupApproverViewUpdateData = exports.setListeningToPusherEvent = exports.saveRemiSetupApproverViewUpdateData = exports.initializeRemiSetupApproverViewUpdateData = exports.saveRemiSetupApproverViewUpdatesFailure = exports.saveRemiSetupApproverViewUpdatesSuccess = exports.saveRemiSetupApproverViewUpdates = exports.deleteRemiApprovalRuleFailure = exports.deleteRemiApprovalRuleSuccess = exports.deleteRemiApprovalRule = exports.fetchRemiApproversListFailure = exports.fetchRemiApproversListSuccess = exports.fetchRemiApproversList = exports.fetchRemiApproversDetails = exports.fetchRemiSetupApproverViewFailure = exports.fetchRemiSetupApproverViewSuccess = exports.fetchRemiSetupApproverView = exports.initialState = void 0;
4
+ exports.clearRemiSetupApproverView = exports.clearRemiSetupApproverViewUpdateData = exports.setListeningToPusherEvent = exports.saveRemiSetupApproverViewUpdateData = exports.initializeRemiSetupApproverViewUpdateData = exports.saveRemiSetupApproverViewUpdatesFailure = exports.saveRemiSetupApproverViewUpdatesSuccess = exports.saveRemiSetupApproverViewUpdates = exports.reorderRemiApprovalRulesFailure = exports.reorderRemiApprovalRulesSuccess = exports.reorderRemiApprovalRules = exports.deleteRemiApprovalRuleFailure = exports.deleteRemiApprovalRuleSuccess = exports.deleteRemiApprovalRule = exports.fetchRemiApproversListFailure = exports.fetchRemiApproversListSuccess = exports.fetchRemiApproversList = exports.fetchRemiApproversDetails = exports.fetchRemiSetupApproverViewFailure = exports.fetchRemiSetupApproverViewSuccess = exports.fetchRemiSetupApproverView = exports.initialState = void 0;
5
5
  const toolkit_1 = require("@reduxjs/toolkit");
6
6
  exports.initialState = {
7
7
  fetchState: 'Not-Started',
@@ -17,6 +17,7 @@ exports.initialState = {
17
17
  newApprovalRuleId: undefined,
18
18
  approvalRulesDeleteStatusById: {},
19
19
  remiSetupApproverViewUpdateData: undefined,
20
+ reorderStatus: { fetchState: 'Not-Started', error: undefined },
20
21
  hasValidState() {
21
22
  return this.fetchState === 'Completed';
22
23
  },
@@ -30,12 +31,17 @@ const remiSetupApproverView = (0, toolkit_1.createSlice)({
30
31
  draft.fetchState = 'In-Progress';
31
32
  draft.error = undefined;
32
33
  },
33
- prepare(cacheOverride = false, resolveAttributeToUser = false, includeImplicitActors = false) {
34
+ // Approval Rules 3.0 `useV3` arrives from the screen connector
35
+ // ('approval_rule_v3_config' dynamic config) and picks v1 vs v2
36
+ // endpoint in the fetch epic. Required (no default) so a missing
37
+ // connector wire surfaces at compile time.
38
+ prepare(cacheOverride = false, resolveAttributeToUser = false, includeImplicitActors = false, useV3) {
34
39
  return {
35
40
  payload: {
36
41
  cacheOverride,
37
42
  resolveAttributeToUser,
38
43
  includeImplicitActors,
44
+ useV3,
39
45
  },
40
46
  };
41
47
  },
@@ -138,8 +144,12 @@ const remiSetupApproverView = (0, toolkit_1.createSlice)({
138
144
  error: undefined,
139
145
  };
140
146
  },
141
- prepare(approvalRuleId) {
142
- return { payload: { approvalRuleId } };
147
+ // Approval Rules 3.0 — `useV3` flows from the screen connector
148
+ // ('approval_rule_v3_config' dynamic config) so the delete epic
149
+ // can pick the v1 vs v2 endpoint. Required (no default) so a
150
+ // missing connector wire surfaces at compile time.
151
+ prepare(approvalRuleId, useV3) {
152
+ return { payload: { approvalRuleId, useV3 } };
143
153
  },
144
154
  },
145
155
  deleteRemiApprovalRuleSuccess: {
@@ -171,13 +181,72 @@ const remiSetupApproverView = (0, toolkit_1.createSlice)({
171
181
  };
172
182
  },
173
183
  },
174
- saveRemiSetupApproverViewUpdates(draft) {
175
- if (draft.remiSetupApproverViewUpdateData != null) {
176
- draft.remiSetupApproverViewUpdateData.updateStatus = {
177
- fetchState: 'In-Progress',
178
- error: undefined,
179
- };
180
- }
184
+ /**
185
+ * Approval Rules 3.0 list-page drag-and-drop reorder.
186
+ * See BillPay equivalent for the longer rationale.
187
+ */
188
+ reorderRemiApprovalRules: {
189
+ reducer(draft, action) {
190
+ const { approvalRuleIds } = action.payload;
191
+ const wasReorderInFlight = draft.reorderStatus.fetchState === 'In-Progress';
192
+ draft.reorderStatus = { fetchState: 'In-Progress', error: undefined };
193
+ // Stash the pre-reorder order for synchronous rollback on
194
+ // 'Failure'. See the BillPay reducer for the rationale,
195
+ // including the in-flight guard: a second drag before the
196
+ // first PUT lands must not overwrite the snapshot.
197
+ if (!wasReorderInFlight) {
198
+ draft.reorderRollbackIds = draft.approvalRuleIds;
199
+ }
200
+ draft.approvalRuleIds = approvalRuleIds;
201
+ },
202
+ // Approval Rules 3.0 — `useV3` required so a missing wire
203
+ // surfaces at compile time. Mirror of BillPay's reorder.prepare.
204
+ prepare(approvalRuleIds, useV3) {
205
+ return { payload: { approvalRuleIds, useV3 } };
206
+ },
207
+ },
208
+ reorderRemiApprovalRulesSuccess: {
209
+ reducer(draft, action) {
210
+ const { approvalRuleIds } = action.payload;
211
+ draft.reorderStatus = { fetchState: 'Completed', error: undefined };
212
+ draft.approvalRuleIds = approvalRuleIds;
213
+ draft.reorderRollbackIds = undefined;
214
+ },
215
+ prepare(approvalRuleIds) {
216
+ return { payload: { approvalRuleIds } };
217
+ },
218
+ },
219
+ reorderRemiApprovalRulesFailure: {
220
+ reducer(draft, action) {
221
+ const { status } = action.payload;
222
+ draft.reorderStatus = { fetchState: 'Error', error: status };
223
+ if (draft.reorderRollbackIds != null) {
224
+ draft.approvalRuleIds = draft.reorderRollbackIds;
225
+ draft.reorderRollbackIds = undefined;
226
+ }
227
+ },
228
+ prepare(status) {
229
+ return { payload: { status } };
230
+ },
231
+ },
232
+ saveRemiSetupApproverViewUpdates: {
233
+ // Approval Rules 3.0 — `useV3` sourced from
234
+ // `approval_rule_v3_config` dynamic config in the screen
235
+ // connector; epic uses it to pick v1 vs v2 URL + mapper. The
236
+ // reducer doesn't read the action but the parameter must be
237
+ // declared so the action payload type carries downstream.
238
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
239
+ reducer(draft, _action) {
240
+ if (draft.remiSetupApproverViewUpdateData != null) {
241
+ draft.remiSetupApproverViewUpdateData.updateStatus = {
242
+ fetchState: 'In-Progress',
243
+ error: undefined,
244
+ };
245
+ }
246
+ },
247
+ prepare(useV3) {
248
+ return { payload: { useV3 } };
249
+ },
181
250
  },
182
251
  saveRemiSetupApproverViewUpdatesSuccess: {
183
252
  reducer(draft, action) {
@@ -266,5 +335,5 @@ const remiSetupApproverView = (0, toolkit_1.createSlice)({
266
335
  },
267
336
  },
268
337
  });
269
- _a = remiSetupApproverView.actions, exports.fetchRemiSetupApproverView = _a.fetchRemiSetupApproverView, exports.fetchRemiSetupApproverViewSuccess = _a.fetchRemiSetupApproverViewSuccess, exports.fetchRemiSetupApproverViewFailure = _a.fetchRemiSetupApproverViewFailure, exports.fetchRemiApproversDetails = _a.fetchRemiApproversDetails, exports.fetchRemiApproversList = _a.fetchRemiApproversList, exports.fetchRemiApproversListSuccess = _a.fetchRemiApproversListSuccess, exports.fetchRemiApproversListFailure = _a.fetchRemiApproversListFailure, exports.deleteRemiApprovalRule = _a.deleteRemiApprovalRule, exports.deleteRemiApprovalRuleSuccess = _a.deleteRemiApprovalRuleSuccess, exports.deleteRemiApprovalRuleFailure = _a.deleteRemiApprovalRuleFailure, exports.saveRemiSetupApproverViewUpdates = _a.saveRemiSetupApproverViewUpdates, exports.saveRemiSetupApproverViewUpdatesSuccess = _a.saveRemiSetupApproverViewUpdatesSuccess, exports.saveRemiSetupApproverViewUpdatesFailure = _a.saveRemiSetupApproverViewUpdatesFailure, exports.initializeRemiSetupApproverViewUpdateData = _a.initializeRemiSetupApproverViewUpdateData, exports.saveRemiSetupApproverViewUpdateData = _a.saveRemiSetupApproverViewUpdateData, exports.setListeningToPusherEvent = _a.setListeningToPusherEvent, exports.clearRemiSetupApproverViewUpdateData = _a.clearRemiSetupApproverViewUpdateData, exports.clearRemiSetupApproverView = _a.clearRemiSetupApproverView;
338
+ _a = remiSetupApproverView.actions, exports.fetchRemiSetupApproverView = _a.fetchRemiSetupApproverView, exports.fetchRemiSetupApproverViewSuccess = _a.fetchRemiSetupApproverViewSuccess, exports.fetchRemiSetupApproverViewFailure = _a.fetchRemiSetupApproverViewFailure, exports.fetchRemiApproversDetails = _a.fetchRemiApproversDetails, exports.fetchRemiApproversList = _a.fetchRemiApproversList, exports.fetchRemiApproversListSuccess = _a.fetchRemiApproversListSuccess, exports.fetchRemiApproversListFailure = _a.fetchRemiApproversListFailure, exports.deleteRemiApprovalRule = _a.deleteRemiApprovalRule, exports.deleteRemiApprovalRuleSuccess = _a.deleteRemiApprovalRuleSuccess, exports.deleteRemiApprovalRuleFailure = _a.deleteRemiApprovalRuleFailure, exports.reorderRemiApprovalRules = _a.reorderRemiApprovalRules, exports.reorderRemiApprovalRulesSuccess = _a.reorderRemiApprovalRulesSuccess, exports.reorderRemiApprovalRulesFailure = _a.reorderRemiApprovalRulesFailure, exports.saveRemiSetupApproverViewUpdates = _a.saveRemiSetupApproverViewUpdates, exports.saveRemiSetupApproverViewUpdatesSuccess = _a.saveRemiSetupApproverViewUpdatesSuccess, exports.saveRemiSetupApproverViewUpdatesFailure = _a.saveRemiSetupApproverViewUpdatesFailure, exports.initializeRemiSetupApproverViewUpdateData = _a.initializeRemiSetupApproverViewUpdateData, exports.saveRemiSetupApproverViewUpdateData = _a.saveRemiSetupApproverViewUpdateData, exports.setListeningToPusherEvent = _a.setListeningToPusherEvent, exports.clearRemiSetupApproverViewUpdateData = _a.clearRemiSetupApproverViewUpdateData, exports.clearRemiSetupApproverView = _a.clearRemiSetupApproverView;
270
339
  exports.default = remiSetupApproverView.reducer;
@@ -10,8 +10,20 @@ export interface RemiSetupApproverViewState extends FetchedState {
10
10
  fetchStatus: FetchStateAndError;
11
11
  attributeSubTypeToUserIdMapping?: Record<AttributeType, ID>;
12
12
  };
13
+ /**
14
+ * List-page reorder PUT status. See BillPay equivalent for the
15
+ * longer rationale.
16
+ */
17
+ reorderStatus: FetchStateAndError;
13
18
  affectedEntityIds?: ID[];
14
19
  listeningToPusherEvent?: boolean;
15
20
  newApprovalRuleId?: ID;
16
21
  remiSetupApproverViewUpdateData?: ApproverViewUpdateData;
22
+ /**
23
+ * Pre-reorder snapshot of 'approvalRuleIds'. Stashed on the trigger
24
+ * reducer right before the optimistic mutation and consumed on
25
+ * Failure to restore the previous order without waiting for the
26
+ * epic's safety-net refetch. Cleared on Success.
27
+ */
28
+ reorderRollbackIds?: ID[];
17
29
  }
@@ -0,0 +1,9 @@
1
+ import { ActionsObservable, StateObservable } from 'redux-observable';
2
+ import { openSnackbar } from '../../../../entity/snackbar/snackbarReducer';
3
+ import { appendSubTaskId, updateTasks } from '../../../../entity/task/taskReducer';
4
+ import { RootState } from '../../../../reducer';
5
+ import { ZeniAPI } from '../../../../zeniAPI';
6
+ import { updateTaskListOnNewTaskCreationSuccess } from '../../taskListView/taskListReducer';
7
+ import { createSubTask, createSubTaskSuccessOrFailure } from '../taskDetailReducer';
8
+ export type ActionType = ReturnType<typeof createSubTask> | ReturnType<typeof updateTasks> | ReturnType<typeof appendSubTaskId> | ReturnType<typeof openSnackbar> | ReturnType<typeof updateTaskListOnNewTaskCreationSuccess> | ReturnType<typeof createSubTaskSuccessOrFailure>;
9
+ export declare const createSubTaskEpic: (actions$: ActionsObservable<ActionType>, state$: StateObservable<RootState>, zeniAPI: ZeniAPI) => import("rxjs").Observable<ActionType>;
@@ -0,0 +1,84 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createSubTaskEpic = void 0;
4
+ const rxjs_1 = require("rxjs");
5
+ const operators_1 = require("rxjs/operators");
6
+ const formatMinutesToFromHHMM_1 = require("../../../../commonStateTypes/fiscalYearHelpers/formatMinutesToFromHHMM");
7
+ const snackbarReducer_1 = require("../../../../entity/snackbar/snackbarReducer");
8
+ const taskReducer_1 = require("../../../../entity/task/taskReducer");
9
+ const taskSelector_1 = require("../../../../entity/task/taskSelector");
10
+ const responsePayload_1 = require("../../../../responsePayload");
11
+ const taskListReducer_1 = require("../../taskListView/taskListReducer");
12
+ const taskDetailReducer_1 = require("../taskDetailReducer");
13
+ const createSubTaskEpic = (actions$, state$, zeniAPI) => actions$.pipe((0, operators_1.filter)(taskDetailReducer_1.createSubTask.match), (0, operators_1.mergeMap)((action) => {
14
+ const state = state$.value;
15
+ const parentTask = (0, taskSelector_1.getTaskById)(state.taskState, action.payload.parentTaskId);
16
+ const parentTaskGroupId = parentTask?.taskGroupIds[0];
17
+ const isTaskListFetched = state.taskListState.fetchState === 'Completed';
18
+ const payload = prepareSubTaskPayload(action.payload, parentTaskGroupId);
19
+ return zeniAPI
20
+ .postAndGetJSON(`${zeniAPI.apiEndPoints.taskMicroServiceBaseUrl}/1.0/task-manager/tasks`, payload)
21
+ .pipe((0, operators_1.mergeMap)((response) => {
22
+ if ((0, responsePayload_1.isSuccessResponse)(response) &&
23
+ response.data != null &&
24
+ response.data.tasks.length > 0) {
25
+ const newTaskId = response.data.tasks[0].task_id;
26
+ const actions = [
27
+ (0, taskReducer_1.updateTasks)(response.data.tasks),
28
+ (0, taskReducer_1.appendSubTaskId)({
29
+ parentTaskId: action.payload.parentTaskId,
30
+ subTaskId: newTaskId,
31
+ }),
32
+ (0, taskDetailReducer_1.createSubTaskSuccessOrFailure)({
33
+ fetchState: 'Completed',
34
+ newTaskId,
35
+ }),
36
+ (0, snackbarReducer_1.openSnackbar)({
37
+ messageSection: 'create_sub_task',
38
+ messageText: 'success',
39
+ type: 'success',
40
+ }),
41
+ ];
42
+ if (isTaskListFetched === true && parentTaskGroupId != null) {
43
+ actions.push((0, taskListReducer_1.updateTaskListOnNewTaskCreationSuccess)({
44
+ taskGroupId: parentTaskGroupId,
45
+ task: response.data.tasks[0],
46
+ }));
47
+ }
48
+ return (0, rxjs_1.from)(actions);
49
+ }
50
+ else {
51
+ return (0, rxjs_1.of)((0, taskDetailReducer_1.createSubTaskSuccessOrFailure)({
52
+ fetchState: 'Error',
53
+ error: response.status,
54
+ }), (0, snackbarReducer_1.openSnackbar)({
55
+ messageSection: 'create_sub_task',
56
+ messageText: 'failed',
57
+ type: 'error',
58
+ variables: [
59
+ {
60
+ variableName: '_api-error_',
61
+ variableValue: response.status.message,
62
+ },
63
+ ],
64
+ }));
65
+ }
66
+ }), (0, operators_1.catchError)((error) => (0, rxjs_1.of)((0, taskDetailReducer_1.createSubTaskSuccessOrFailure)({
67
+ fetchState: 'Error',
68
+ error: (0, responsePayload_1.createZeniAPIStatus)('Unexpected Error', 'Create Sub Task REST API call errored out' +
69
+ JSON.stringify(error)),
70
+ }))));
71
+ }));
72
+ exports.createSubTaskEpic = createSubTaskEpic;
73
+ const prepareSubTaskPayload = (subTask, parentTaskGroupId) => ({
74
+ name: subTask.name,
75
+ assignees: subTask.assignee,
76
+ description: subTask.description,
77
+ priority: subTask.priority,
78
+ status: subTask.status,
79
+ tags: subTask.tagIds,
80
+ time_spent: (0, formatMinutesToFromHHMM_1.convertHHMMStrToMinutes)(subTask.timeSpent),
81
+ group_assignees: subTask.groupAssignees,
82
+ parent_task_id: subTask.parentTaskId,
83
+ task_group_ids: parentTaskGroupId == null ? [] : [parentTaskGroupId],
84
+ });
@@ -0,0 +1,8 @@
1
+ import { ActionsObservable, StateObservable } from 'redux-observable';
2
+ import { Observable } from 'rxjs';
3
+ import { updateTasks } from '../../../../entity/task/taskReducer';
4
+ import { RootState } from '../../../../reducer';
5
+ import { ZeniAPI } from '../../../../zeniAPI';
6
+ import { fetchSubTasks, updateSubTasks, updateSubTasksFetchStatus } from '../taskDetailReducer';
7
+ export type ActionType = ReturnType<typeof fetchSubTasks> | ReturnType<typeof updateTasks> | ReturnType<typeof updateSubTasks> | ReturnType<typeof updateSubTasksFetchStatus>;
8
+ export declare const fetchSubTasksEpic: (actions$: ActionsObservable<ActionType>, _state$: StateObservable<RootState>, zeniAPI: ZeniAPI) => Observable<ActionType>;
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.fetchSubTasksEpic = void 0;
4
+ const rxjs_1 = require("rxjs");
5
+ const operators_1 = require("rxjs/operators");
6
+ const taskReducer_1 = require("../../../../entity/task/taskReducer");
7
+ const responsePayload_1 = require("../../../../responsePayload");
8
+ const taskDetailReducer_1 = require("../taskDetailReducer");
9
+ const fetchSubTasksEpic = (actions$, _state$, zeniAPI) => actions$.pipe((0, operators_1.filter)(taskDetailReducer_1.fetchSubTasks.match), (0, operators_1.switchMap)((action) => {
10
+ const { parentTaskId } = action.payload;
11
+ const query = JSON.stringify({
12
+ task_type: 'subtasks',
13
+ parent_task_id: parentTaskId,
14
+ });
15
+ return zeniAPI
16
+ .getJSON(`${zeniAPI.apiEndPoints.taskMicroServiceBaseUrl}/1.0/task-manager/tasks?query=${encodeURIComponent(query)}`)
17
+ .pipe((0, operators_1.mergeMap)((response) => {
18
+ if ((0, responsePayload_1.isSuccessResponse)(response) && response.data != null) {
19
+ const { tasks } = response.data;
20
+ return (0, rxjs_1.of)((0, taskReducer_1.updateTasks)(tasks), (0, taskDetailReducer_1.updateSubTasks)({
21
+ parentTaskId,
22
+ }));
23
+ }
24
+ else {
25
+ return (0, rxjs_1.of)((0, taskDetailReducer_1.updateSubTasksFetchStatus)({
26
+ parentTaskId,
27
+ fetchState: 'Error',
28
+ error: response.status,
29
+ }));
30
+ }
31
+ }), (0, operators_1.catchError)((error) => {
32
+ return (0, rxjs_1.of)((0, taskDetailReducer_1.updateSubTasksFetchStatus)({
33
+ parentTaskId,
34
+ fetchState: 'Error',
35
+ error: (0, responsePayload_1.createZeniAPIStatus)('Unexpected Error', 'Fetch Sub Tasks REST API call errored out' +
36
+ JSON.stringify(error)),
37
+ }));
38
+ }));
39
+ }));
40
+ exports.fetchSubTasksEpic = fetchSubTasksEpic;
@@ -6,6 +6,7 @@ import { updateTasks } from '../../../../entity/task/taskReducer';
6
6
  import { RootState } from '../../../../reducer';
7
7
  import { ZeniAPI } from '../../../../zeniAPI';
8
8
  import { fetchFileList } from '../../../fileView/fileViewReducer';
9
+ import { updateTaskListOnNewTaskCreationSuccess } from '../../taskListView/taskListReducer';
9
10
  import { fetchTaskDetail, initializeTaskToLocalStore, removeTaskDetail, updateEditTaskFetchStatus } from '../taskDetailReducer';
10
- export type ActionType = ReturnType<typeof fetchTaskDetail> | ReturnType<typeof updateTags> | ReturnType<typeof updateEditTaskFetchStatus> | ReturnType<typeof removeTaskDetail> | ReturnType<typeof updateTasks> | ReturnType<typeof initializeTaskToLocalStore> | ReturnType<typeof fetchFileList> | ReturnType<typeof openSnackbar>;
11
+ export type ActionType = ReturnType<typeof fetchTaskDetail> | ReturnType<typeof updateTags> | ReturnType<typeof updateEditTaskFetchStatus> | ReturnType<typeof removeTaskDetail> | ReturnType<typeof updateTasks> | ReturnType<typeof initializeTaskToLocalStore> | ReturnType<typeof fetchFileList> | ReturnType<typeof openSnackbar> | ReturnType<typeof updateTaskListOnNewTaskCreationSuccess>;
11
12
  export declare const fetchTaskDetailEpic: (actions$: ActionsObservable<ActionType>, state$: StateObservable<RootState>, zeniAPI: ZeniAPI) => Observable<ActionType>;
@@ -10,13 +10,16 @@ const operators_1 = require("rxjs/operators");
10
10
  const snackbarReducer_1 = require("../../../../entity/snackbar/snackbarReducer");
11
11
  const tagReducer_1 = require("../../../../entity/tag/tagReducer");
12
12
  const taskReducer_1 = require("../../../../entity/task/taskReducer");
13
+ const taskSelector_1 = require("../../../../entity/task/taskSelector");
13
14
  const responsePayload_1 = require("../../../../responsePayload");
14
15
  const fileViewReducer_1 = require("../../../fileView/fileViewReducer");
16
+ const taskListReducer_1 = require("../../taskListView/taskListReducer");
15
17
  const taskDetailReducer_1 = require("../taskDetailReducer");
16
18
  const fetchTaskDetailEpic = (actions$, state$, zeniAPI) => actions$.pipe((0, operators_1.filter)(taskDetailReducer_1.fetchTaskDetail.match), (0, operators_1.mergeMap)((action) => {
17
19
  const { taskId, cacheOverride } = action.payload;
18
20
  const taskActions = [];
19
21
  const state = state$.value;
22
+ const isTaskListFetched = state.taskListState.fetchState === 'Completed';
20
23
  const taskDetail = (0, get_1.default)(state.taskDetailState.editTaskStateById, taskId, undefined);
21
24
  if (cacheOverride === true) {
22
25
  taskActions.push((0, taskDetailReducer_1.removeTaskDetail)(taskId));
@@ -38,6 +41,16 @@ const fetchTaskDetailEpic = (actions$, state$, zeniAPI) => actions$.pipe((0, ope
38
41
  (0, tagReducer_1.updateTags)(response.data.tasks.map((task) => task.tags).flat()),
39
42
  (0, taskDetailReducer_1.initializeTaskToLocalStore)(taskId),
40
43
  ];
44
+ if (isTaskListFetched === true) {
45
+ const taskGroupId = response.data.tasks[0].task_group_ids?.[0];
46
+ if (taskGroupId != null) {
47
+ fetchActions.push((0, taskListReducer_1.updateTaskListOnNewTaskCreationSuccess)({
48
+ taskGroupId,
49
+ task: response.data.tasks[0],
50
+ currentTaskState: (0, taskSelector_1.getTaskById)(state.taskState, taskId),
51
+ }));
52
+ }
53
+ }
41
54
  const fileIds = response.data.tasks[0].file_ids;
42
55
  if (fileIds.length > 0) {
43
56
  fetchActions.push((0, fileViewReducer_1.fetchFileList)(fileIds));
@@ -3,9 +3,22 @@ import { DayOfWeek, PriorityCodeType, TaskStatusCodeType, TaskType } from '../..
3
3
  import { ZeniDate } from '../../../zeniDayJS';
4
4
  import { RecurringDatePickerOptions, RecurringFrequencyType } from '../../common/recurringViewHelper';
5
5
  import { CommonHistoryView } from '../../spendManagement/commonHistoryView/commonHistory';
6
+ export interface CreateSubTaskPayload {
7
+ assignee: ID[];
8
+ description: string;
9
+ groupAssignees: ID[];
10
+ name: string;
11
+ parentTaskId: ID;
12
+ priority: PriorityCodeType;
13
+ status: TaskStatusCodeType;
14
+ tagIds: ID[];
15
+ timeSpent: string;
16
+ }
6
17
  export interface TaskDetailViewState {
7
18
  editTaskStateById: Record<ID, EditTaskDetail>;
8
19
  newTaskState: EditTaskDetail;
20
+ subTaskCreateStatus: FetchStateAndError;
21
+ subTaskListFetchStatusByParentId: Record<ID, FetchStateAndError>;
9
22
  taskHistoryById: Record<ID, CommonHistoryView>;
10
23
  }
11
24
  export interface EditTaskDetail {
@@ -1,7 +1,7 @@
1
1
  import { FetchState, ID } from '../../../commonStateTypes/common';
2
2
  import { ZeniAPIStatus } from '../../../responsePayload';
3
3
  import { HistoricEventPayload } from '../../spendManagement/commonHistoryView/commonHistoryPayload';
4
- import { EditTaskLocalData, TaskDetailViewState } from './taskDetail';
4
+ import { CreateSubTaskPayload, EditTaskLocalData, TaskDetailViewState } from './taskDetail';
5
5
  export declare const initialState: TaskDetailViewState;
6
6
  export declare const fetchTaskDetailPage: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[cacheOverride: boolean, taskId?: string | undefined], {
7
7
  cacheOverride: boolean;
@@ -34,7 +34,19 @@ export declare const fetchTaskDetailPage: import("@reduxjs/toolkit").ActionCreat
34
34
  error?: ZeniAPIStatus;
35
35
  newTaskId?: ID;
36
36
  taskId?: ID;
37
- }, "taskDetailView/saveTaskSuccessOrFailure">, deleteTask: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[taskId?: string | undefined], {
37
+ }, "taskDetailView/saveTaskSuccessOrFailure">, createSubTask: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[payload: CreateSubTaskPayload], CreateSubTaskPayload, "taskDetailView/createSubTask", never, never>, createSubTaskSuccessOrFailure: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
38
+ fetchState: FetchState;
39
+ error?: ZeniAPIStatus;
40
+ newTaskId?: ID;
41
+ }, "taskDetailView/createSubTaskSuccessOrFailure">, fetchSubTasks: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[parentTaskId: string], {
42
+ parentTaskId: string;
43
+ }, "taskDetailView/fetchSubTasks", never, never>, updateSubTasks: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
44
+ parentTaskId: ID;
45
+ }, "taskDetailView/updateSubTasks">, updateSubTasksFetchStatus: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
46
+ fetchState: FetchState;
47
+ parentTaskId: ID;
48
+ error?: ZeniAPIStatus;
49
+ }, "taskDetailView/updateSubTasksFetchStatus">, deleteTask: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[taskId?: string | undefined], {
38
50
  taskId: string | undefined;
39
51
  }, "taskDetailView/deleteTask", never, never>, removeTaskDetail: import("@reduxjs/toolkit").ActionCreatorWithPayload<string, "taskDetailView/removeTaskDetail">, deleteTaskSuccessOrFailure: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
40
52
  fetchState: FetchState;