@zeniai/client-epic-state 5.1.26 → 5.1.27-betaAK0

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 (351) hide show
  1. package/README.md +3 -1
  2. package/lib/commonStateTypes/viewAndReport/agingReportStateTypes.d.ts +1 -1
  3. package/lib/entity/invoicing/coupon/couponReducer.d.ts +12 -0
  4. package/lib/entity/invoicing/coupon/couponReducer.js +33 -0
  5. package/lib/entity/invoicing/creditNote/creditNoteReducer.d.ts +12 -0
  6. package/lib/entity/invoicing/creditNote/creditNoteReducer.js +35 -0
  7. package/lib/entity/invoicing/customer/customerReducer.d.ts +12 -0
  8. package/lib/entity/invoicing/customer/customerReducer.js +33 -0
  9. package/lib/entity/invoicing/dunningCase/dunningCaseReducer.d.ts +12 -0
  10. package/lib/entity/invoicing/dunningCase/dunningCaseReducer.js +35 -0
  11. package/lib/entity/invoicing/invoice/invoiceReducer.d.ts +10 -0
  12. package/lib/entity/invoicing/invoice/invoiceReducer.js +36 -0
  13. package/lib/entity/invoicing/invoice/invoiceSelector.d.ts +5 -0
  14. package/lib/entity/invoicing/invoice/invoiceSelector.js +9 -0
  15. package/lib/entity/invoicing/invoice/invoiceState.d.ts +5 -0
  16. package/lib/entity/invoicing/invoice/invoiceState.js +2 -0
  17. package/lib/entity/invoicing/invoicingTypes.d.ts +766 -0
  18. package/lib/entity/invoicing/invoicingTypes.js +15 -0
  19. package/lib/entity/invoicing/plan/planReducer.d.ts +12 -0
  20. package/lib/entity/invoicing/plan/planReducer.js +33 -0
  21. package/lib/entity/invoicing/product/productReducer.d.ts +12 -0
  22. package/lib/entity/invoicing/product/productReducer.js +33 -0
  23. package/lib/entity/invoicing/subscription/subscriptionReducer.d.ts +12 -0
  24. package/lib/entity/invoicing/subscription/subscriptionReducer.js +35 -0
  25. package/lib/entity/invoicing/transaction/transactionReducer.d.ts +12 -0
  26. package/lib/entity/invoicing/transaction/transactionReducer.js +35 -0
  27. package/lib/entity/task/taskState.d.ts +1 -1
  28. package/lib/entity/tenant/clearAllEpic.d.ts +39 -2
  29. package/lib/entity/tenant/clearAllEpic.js +82 -8
  30. package/lib/entity/tenant/tenantReducer.js +3 -3
  31. package/lib/epic.d.ts +32 -1
  32. package/lib/epic.js +33 -1
  33. package/lib/esm/entity/invoicing/coupon/couponReducer.js +29 -0
  34. package/lib/esm/entity/invoicing/creditNote/creditNoteReducer.js +31 -0
  35. package/lib/esm/entity/invoicing/customer/customerReducer.js +29 -0
  36. package/lib/esm/entity/invoicing/dunningCase/dunningCaseReducer.js +31 -0
  37. package/lib/esm/entity/invoicing/invoice/invoiceReducer.js +32 -0
  38. package/lib/esm/entity/invoicing/invoice/invoiceSelector.js +4 -0
  39. package/lib/esm/entity/invoicing/invoice/invoiceState.js +1 -0
  40. package/lib/esm/entity/invoicing/invoicingTypes.js +14 -0
  41. package/lib/esm/entity/invoicing/plan/planReducer.js +29 -0
  42. package/lib/esm/entity/invoicing/product/productReducer.js +29 -0
  43. package/lib/esm/entity/invoicing/subscription/subscriptionReducer.js +31 -0
  44. package/lib/esm/entity/invoicing/transaction/transactionReducer.js +31 -0
  45. package/lib/esm/entity/tenant/clearAllEpic.js +74 -0
  46. package/lib/esm/entity/tenant/tenantReducer.js +3 -3
  47. package/lib/esm/epic.js +33 -1
  48. package/lib/esm/index.js +80 -2
  49. package/lib/esm/reducer.js +114 -0
  50. package/lib/esm/view/aiCfoView/aiCfoViewReducer.js +29 -3
  51. package/lib/esm/view/aiCfoView/aiCfoViewSelector.js +11 -0
  52. package/lib/esm/view/aiCfoView/epics/createSessionAndSubmitEpic.js +2 -2
  53. package/lib/esm/view/aiCfoView/epics/fetchSkillsEpic.js +34 -0
  54. package/lib/esm/view/aiCfoView/epics/submitQuestionEpic.js +7 -1
  55. package/lib/esm/view/invoicing/analyticsView/analyticsViewEpics.js +42 -0
  56. package/lib/esm/view/invoicing/analyticsView/analyticsViewReducer.js +45 -0
  57. package/lib/esm/view/invoicing/analyticsView/analyticsViewSelector.js +10 -0
  58. package/lib/esm/view/invoicing/approvalAction/approvalActionEpic.js +28 -0
  59. package/lib/esm/view/invoicing/approvalAction/approvalActionReducer.js +36 -0
  60. package/lib/esm/view/invoicing/approvalAction/approvalActionSelector.js +5 -0
  61. package/lib/esm/view/invoicing/approvalsView/approvalsViewEpics.js +37 -0
  62. package/lib/esm/view/invoicing/approvalsView/approvalsViewReducer.js +62 -0
  63. package/lib/esm/view/invoicing/approvalsView/approvalsViewSelector.js +8 -0
  64. package/lib/esm/view/invoicing/auditView/auditViewEpics.js +46 -0
  65. package/lib/esm/view/invoicing/auditView/auditViewReducer.js +56 -0
  66. package/lib/esm/view/invoicing/auditView/auditViewSelector.js +8 -0
  67. package/lib/esm/view/invoicing/catalogView/catalogViewEpics.js +143 -0
  68. package/lib/esm/view/invoicing/catalogView/catalogViewReducer.js +162 -0
  69. package/lib/esm/view/invoicing/catalogView/catalogViewSelector.js +31 -0
  70. package/lib/esm/view/invoicing/catalogWrite/catalogWriteEpic.js +34 -0
  71. package/lib/esm/view/invoicing/catalogWrite/catalogWriteReducer.js +39 -0
  72. package/lib/esm/view/invoicing/catalogWrite/catalogWriteSelector.js +6 -0
  73. package/lib/esm/view/invoicing/couponView/couponViewEpics.js +83 -0
  74. package/lib/esm/view/invoicing/couponView/couponViewReducer.js +105 -0
  75. package/lib/esm/view/invoicing/couponView/couponViewSelector.js +18 -0
  76. package/lib/esm/view/invoicing/couponWrite/couponWriteEpic.js +29 -0
  77. package/lib/esm/view/invoicing/couponWrite/couponWriteReducer.js +36 -0
  78. package/lib/esm/view/invoicing/couponWrite/couponWriteSelector.js +5 -0
  79. package/lib/esm/view/invoicing/createInvoice/createInvoiceEpic.js +23 -0
  80. package/lib/esm/view/invoicing/createInvoice/createInvoiceReducer.js +36 -0
  81. package/lib/esm/view/invoicing/createInvoice/createInvoiceSelector.js +5 -0
  82. package/lib/esm/view/invoicing/creditNoteView/creditNoteViewEpics.js +87 -0
  83. package/lib/esm/view/invoicing/creditNoteView/creditNoteViewReducer.js +105 -0
  84. package/lib/esm/view/invoicing/creditNoteView/creditNoteViewSelector.js +20 -0
  85. package/lib/esm/view/invoicing/customerPaymentMethod/customerPaymentMethodEpic.js +63 -0
  86. package/lib/esm/view/invoicing/customerPaymentMethod/customerPaymentMethodReducer.js +84 -0
  87. package/lib/esm/view/invoicing/customerPaymentMethod/customerPaymentMethodSelector.js +7 -0
  88. package/lib/esm/view/invoicing/customerView/customerViewEpics.js +71 -0
  89. package/lib/esm/view/invoicing/customerView/customerViewReducer.js +90 -0
  90. package/lib/esm/view/invoicing/customerView/customerViewSelector.js +17 -0
  91. package/lib/esm/view/invoicing/customerWrite/customerWriteEpic.js +23 -0
  92. package/lib/esm/view/invoicing/customerWrite/customerWriteReducer.js +36 -0
  93. package/lib/esm/view/invoicing/customerWrite/customerWriteSelector.js +5 -0
  94. package/lib/esm/view/invoicing/dataImportAction/dataImportActionEpic.js +41 -0
  95. package/lib/esm/view/invoicing/dataImportAction/dataImportActionReducer.js +73 -0
  96. package/lib/esm/view/invoicing/dataImportAction/dataImportActionSelector.js +5 -0
  97. package/lib/esm/view/invoicing/dataImportView/dataImportViewEpics.js +41 -0
  98. package/lib/esm/view/invoicing/dataImportView/dataImportViewReducer.js +66 -0
  99. package/lib/esm/view/invoicing/dataImportView/dataImportViewSelector.js +6 -0
  100. package/lib/esm/view/invoicing/dunningAction/dunningActionEpic.js +28 -0
  101. package/lib/esm/view/invoicing/dunningAction/dunningActionReducer.js +36 -0
  102. package/lib/esm/view/invoicing/dunningAction/dunningActionSelector.js +5 -0
  103. package/lib/esm/view/invoicing/dunningCaseView/dunningCaseViewEpics.js +85 -0
  104. package/lib/esm/view/invoicing/dunningCaseView/dunningCaseViewReducer.js +105 -0
  105. package/lib/esm/view/invoicing/dunningCaseView/dunningCaseViewSelector.js +20 -0
  106. package/lib/esm/view/invoicing/invoiceAction/invoiceActionEpic.js +50 -0
  107. package/lib/esm/view/invoicing/invoiceAction/invoiceActionReducer.js +42 -0
  108. package/lib/esm/view/invoicing/invoiceAction/invoiceActionSelector.js +5 -0
  109. package/lib/esm/view/invoicing/invoiceDetail/fetchInvoiceDetailEpic.js +20 -0
  110. package/lib/esm/view/invoicing/invoiceDetail/invoiceDetailReducer.js +34 -0
  111. package/lib/esm/view/invoicing/invoiceDetail/invoiceDetailSelector.js +9 -0
  112. package/lib/esm/view/invoicing/invoiceDetail/invoiceDetailState.js +1 -0
  113. package/lib/esm/view/invoicing/invoiceList/fetchInvoiceCountsEpic.js +32 -0
  114. package/lib/esm/view/invoicing/invoiceList/fetchInvoiceKPIsEpic.js +17 -0
  115. package/lib/esm/view/invoicing/invoiceList/fetchInvoiceListEpic.js +55 -0
  116. package/lib/esm/view/invoicing/invoiceList/invoiceListReducer.js +90 -0
  117. package/lib/esm/view/invoicing/invoiceList/invoiceListSelector.js +11 -0
  118. package/lib/esm/view/invoicing/invoiceList/invoiceListState.js +1 -0
  119. package/lib/esm/view/invoicing/invoicePdf/invoicePdfEpic.js +37 -0
  120. package/lib/esm/view/invoicing/invoicePdf/invoicePdfReducer.js +33 -0
  121. package/lib/esm/view/invoicing/invoicePdf/invoicePdfSelector.js +5 -0
  122. package/lib/esm/view/invoicing/invoicingApiHelper.js +38 -0
  123. package/lib/esm/view/invoicing/paymentAction/paymentActionEpic.js +28 -0
  124. package/lib/esm/view/invoicing/paymentAction/paymentActionReducer.js +36 -0
  125. package/lib/esm/view/invoicing/paymentAction/paymentActionSelector.js +5 -0
  126. package/lib/esm/view/invoicing/recordPayment/recordPaymentEpic.js +23 -0
  127. package/lib/esm/view/invoicing/recordPayment/recordPaymentReducer.js +36 -0
  128. package/lib/esm/view/invoicing/recordPayment/recordPaymentSelector.js +5 -0
  129. package/lib/esm/view/invoicing/reportsView/reportsViewEpics.js +28 -0
  130. package/lib/esm/view/invoicing/reportsView/reportsViewReducer.js +54 -0
  131. package/lib/esm/view/invoicing/reportsView/reportsViewSelector.js +13 -0
  132. package/lib/esm/view/invoicing/settingsView/settingsViewEpics.js +53 -0
  133. package/lib/esm/view/invoicing/settingsView/settingsViewReducer.js +69 -0
  134. package/lib/esm/view/invoicing/settingsView/settingsViewSelector.js +7 -0
  135. package/lib/esm/view/invoicing/subscriptionAction/subscriptionActionEpic.js +28 -0
  136. package/lib/esm/view/invoicing/subscriptionAction/subscriptionActionReducer.js +36 -0
  137. package/lib/esm/view/invoicing/subscriptionAction/subscriptionActionSelector.js +5 -0
  138. package/lib/esm/view/invoicing/subscriptionView/subscriptionViewEpics.js +85 -0
  139. package/lib/esm/view/invoicing/subscriptionView/subscriptionViewReducer.js +90 -0
  140. package/lib/esm/view/invoicing/subscriptionView/subscriptionViewSelector.js +19 -0
  141. package/lib/esm/view/invoicing/subscriptionWrite/subscriptionWriteEpic.js +25 -0
  142. package/lib/esm/view/invoicing/subscriptionWrite/subscriptionWriteReducer.js +36 -0
  143. package/lib/esm/view/invoicing/subscriptionWrite/subscriptionWriteSelector.js +5 -0
  144. package/lib/esm/view/invoicing/transactionView/transactionViewEpics.js +76 -0
  145. package/lib/esm/view/invoicing/transactionView/transactionViewReducer.js +90 -0
  146. package/lib/esm/view/invoicing/transactionView/transactionViewSelector.js +19 -0
  147. package/lib/index.d.ts +101 -4
  148. package/lib/index.js +373 -5
  149. package/lib/reducer.d.ts +114 -0
  150. package/lib/reducer.js +126 -12
  151. package/lib/view/aiCfoView/aiCfoViewPayload.d.ts +14 -0
  152. package/lib/view/aiCfoView/aiCfoViewReducer.d.ts +8 -4
  153. package/lib/view/aiCfoView/aiCfoViewReducer.js +30 -4
  154. package/lib/view/aiCfoView/aiCfoViewSelector.d.ts +2 -1
  155. package/lib/view/aiCfoView/aiCfoViewSelector.js +12 -0
  156. package/lib/view/aiCfoView/aiCfoViewState.d.ts +15 -0
  157. package/lib/view/aiCfoView/epics/createSessionAndSubmitEpic.js +2 -2
  158. package/lib/view/aiCfoView/epics/fetchSkillsEpic.d.ts +8 -0
  159. package/lib/view/aiCfoView/epics/fetchSkillsEpic.js +38 -0
  160. package/lib/view/aiCfoView/epics/submitQuestionEpic.js +7 -1
  161. package/lib/view/invoicing/analyticsView/analyticsViewEpics.d.ts +7 -0
  162. package/lib/view/invoicing/analyticsView/analyticsViewEpics.js +46 -0
  163. package/lib/view/invoicing/analyticsView/analyticsViewReducer.d.ts +22 -0
  164. package/lib/view/invoicing/analyticsView/analyticsViewReducer.js +49 -0
  165. package/lib/view/invoicing/analyticsView/analyticsViewSelector.d.ts +10 -0
  166. package/lib/view/invoicing/analyticsView/analyticsViewSelector.js +20 -0
  167. package/lib/view/invoicing/approvalAction/approvalActionEpic.d.ts +8 -0
  168. package/lib/view/invoicing/approvalAction/approvalActionEpic.js +32 -0
  169. package/lib/view/invoicing/approvalAction/approvalActionReducer.d.ts +20 -0
  170. package/lib/view/invoicing/approvalAction/approvalActionReducer.js +40 -0
  171. package/lib/view/invoicing/approvalAction/approvalActionSelector.d.ts +3 -0
  172. package/lib/view/invoicing/approvalAction/approvalActionSelector.js +9 -0
  173. package/lib/view/invoicing/approvalsView/approvalsViewEpics.d.ts +7 -0
  174. package/lib/view/invoicing/approvalsView/approvalsViewEpics.js +41 -0
  175. package/lib/view/invoicing/approvalsView/approvalsViewReducer.d.ts +33 -0
  176. package/lib/view/invoicing/approvalsView/approvalsViewReducer.js +66 -0
  177. package/lib/view/invoicing/approvalsView/approvalsViewSelector.d.ts +9 -0
  178. package/lib/view/invoicing/approvalsView/approvalsViewSelector.js +16 -0
  179. package/lib/view/invoicing/auditView/auditViewEpics.d.ts +7 -0
  180. package/lib/view/invoicing/auditView/auditViewEpics.js +50 -0
  181. package/lib/view/invoicing/auditView/auditViewReducer.d.ts +36 -0
  182. package/lib/view/invoicing/auditView/auditViewReducer.js +60 -0
  183. package/lib/view/invoicing/auditView/auditViewSelector.d.ts +9 -0
  184. package/lib/view/invoicing/auditView/auditViewSelector.js +16 -0
  185. package/lib/view/invoicing/catalogView/catalogViewEpics.d.ts +14 -0
  186. package/lib/view/invoicing/catalogView/catalogViewEpics.js +152 -0
  187. package/lib/view/invoicing/catalogView/catalogViewReducer.d.ts +76 -0
  188. package/lib/view/invoicing/catalogView/catalogViewReducer.js +166 -0
  189. package/lib/view/invoicing/catalogView/catalogViewSelector.d.ts +22 -0
  190. package/lib/view/invoicing/catalogView/catalogViewSelector.js +52 -0
  191. package/lib/view/invoicing/catalogWrite/catalogWriteEpic.d.ts +9 -0
  192. package/lib/view/invoicing/catalogWrite/catalogWriteEpic.js +38 -0
  193. package/lib/view/invoicing/catalogWrite/catalogWriteReducer.d.ts +21 -0
  194. package/lib/view/invoicing/catalogWrite/catalogWriteReducer.js +43 -0
  195. package/lib/view/invoicing/catalogWrite/catalogWriteSelector.d.ts +6 -0
  196. package/lib/view/invoicing/catalogWrite/catalogWriteSelector.js +12 -0
  197. package/lib/view/invoicing/couponView/couponViewEpics.d.ts +11 -0
  198. package/lib/view/invoicing/couponView/couponViewEpics.js +90 -0
  199. package/lib/view/invoicing/couponView/couponViewReducer.d.ts +42 -0
  200. package/lib/view/invoicing/couponView/couponViewReducer.js +109 -0
  201. package/lib/view/invoicing/couponView/couponViewSelector.d.ts +14 -0
  202. package/lib/view/invoicing/couponView/couponViewSelector.js +31 -0
  203. package/lib/view/invoicing/couponWrite/couponWriteEpic.d.ts +8 -0
  204. package/lib/view/invoicing/couponWrite/couponWriteEpic.js +33 -0
  205. package/lib/view/invoicing/couponWrite/couponWriteReducer.d.ts +17 -0
  206. package/lib/view/invoicing/couponWrite/couponWriteReducer.js +40 -0
  207. package/lib/view/invoicing/couponWrite/couponWriteSelector.d.ts +4 -0
  208. package/lib/view/invoicing/couponWrite/couponWriteSelector.js +10 -0
  209. package/lib/view/invoicing/createInvoice/createInvoiceEpic.d.ts +8 -0
  210. package/lib/view/invoicing/createInvoice/createInvoiceEpic.js +27 -0
  211. package/lib/view/invoicing/createInvoice/createInvoiceReducer.d.ts +34 -0
  212. package/lib/view/invoicing/createInvoice/createInvoiceReducer.js +40 -0
  213. package/lib/view/invoicing/createInvoice/createInvoiceSelector.d.ts +4 -0
  214. package/lib/view/invoicing/createInvoice/createInvoiceSelector.js +10 -0
  215. package/lib/view/invoicing/creditNoteView/creditNoteViewEpics.d.ts +11 -0
  216. package/lib/view/invoicing/creditNoteView/creditNoteViewEpics.js +94 -0
  217. package/lib/view/invoicing/creditNoteView/creditNoteViewReducer.d.ts +43 -0
  218. package/lib/view/invoicing/creditNoteView/creditNoteViewReducer.js +109 -0
  219. package/lib/view/invoicing/creditNoteView/creditNoteViewSelector.d.ts +14 -0
  220. package/lib/view/invoicing/creditNoteView/creditNoteViewSelector.js +33 -0
  221. package/lib/view/invoicing/customerPaymentMethod/customerPaymentMethodEpic.d.ts +11 -0
  222. package/lib/view/invoicing/customerPaymentMethod/customerPaymentMethodEpic.js +70 -0
  223. package/lib/view/invoicing/customerPaymentMethod/customerPaymentMethodReducer.d.ts +42 -0
  224. package/lib/view/invoicing/customerPaymentMethod/customerPaymentMethodReducer.js +88 -0
  225. package/lib/view/invoicing/customerPaymentMethod/customerPaymentMethodSelector.d.ts +10 -0
  226. package/lib/view/invoicing/customerPaymentMethod/customerPaymentMethodSelector.js +17 -0
  227. package/lib/view/invoicing/customerView/customerViewEpics.d.ts +10 -0
  228. package/lib/view/invoicing/customerView/customerViewEpics.js +77 -0
  229. package/lib/view/invoicing/customerView/customerViewReducer.d.ts +41 -0
  230. package/lib/view/invoicing/customerView/customerViewReducer.js +94 -0
  231. package/lib/view/invoicing/customerView/customerViewSelector.d.ts +13 -0
  232. package/lib/view/invoicing/customerView/customerViewSelector.js +29 -0
  233. package/lib/view/invoicing/customerWrite/customerWriteEpic.d.ts +8 -0
  234. package/lib/view/invoicing/customerWrite/customerWriteEpic.js +27 -0
  235. package/lib/view/invoicing/customerWrite/customerWriteReducer.d.ts +17 -0
  236. package/lib/view/invoicing/customerWrite/customerWriteReducer.js +40 -0
  237. package/lib/view/invoicing/customerWrite/customerWriteSelector.d.ts +4 -0
  238. package/lib/view/invoicing/customerWrite/customerWriteSelector.js +10 -0
  239. package/lib/view/invoicing/dataImportAction/dataImportActionEpic.d.ts +7 -0
  240. package/lib/view/invoicing/dataImportAction/dataImportActionEpic.js +45 -0
  241. package/lib/view/invoicing/dataImportAction/dataImportActionReducer.d.ts +23 -0
  242. package/lib/view/invoicing/dataImportAction/dataImportActionReducer.js +77 -0
  243. package/lib/view/invoicing/dataImportAction/dataImportActionSelector.d.ts +4 -0
  244. package/lib/view/invoicing/dataImportAction/dataImportActionSelector.js +9 -0
  245. package/lib/view/invoicing/dataImportView/dataImportViewEpics.d.ts +9 -0
  246. package/lib/view/invoicing/dataImportView/dataImportViewEpics.js +47 -0
  247. package/lib/view/invoicing/dataImportView/dataImportViewReducer.d.ts +15 -0
  248. package/lib/view/invoicing/dataImportView/dataImportViewReducer.js +70 -0
  249. package/lib/view/invoicing/dataImportView/dataImportViewSelector.d.ts +9 -0
  250. package/lib/view/invoicing/dataImportView/dataImportViewSelector.js +15 -0
  251. package/lib/view/invoicing/dunningAction/dunningActionEpic.d.ts +8 -0
  252. package/lib/view/invoicing/dunningAction/dunningActionEpic.js +32 -0
  253. package/lib/view/invoicing/dunningAction/dunningActionReducer.d.ts +21 -0
  254. package/lib/view/invoicing/dunningAction/dunningActionReducer.js +40 -0
  255. package/lib/view/invoicing/dunningAction/dunningActionSelector.d.ts +3 -0
  256. package/lib/view/invoicing/dunningAction/dunningActionSelector.js +9 -0
  257. package/lib/view/invoicing/dunningCaseView/dunningCaseViewEpics.d.ts +11 -0
  258. package/lib/view/invoicing/dunningCaseView/dunningCaseViewEpics.js +92 -0
  259. package/lib/view/invoicing/dunningCaseView/dunningCaseViewReducer.d.ts +42 -0
  260. package/lib/view/invoicing/dunningCaseView/dunningCaseViewReducer.js +109 -0
  261. package/lib/view/invoicing/dunningCaseView/dunningCaseViewSelector.d.ts +14 -0
  262. package/lib/view/invoicing/dunningCaseView/dunningCaseViewSelector.js +33 -0
  263. package/lib/view/invoicing/invoiceAction/invoiceActionEpic.d.ts +9 -0
  264. package/lib/view/invoicing/invoiceAction/invoiceActionEpic.js +55 -0
  265. package/lib/view/invoicing/invoiceAction/invoiceActionReducer.d.ts +26 -0
  266. package/lib/view/invoicing/invoiceAction/invoiceActionReducer.js +46 -0
  267. package/lib/view/invoicing/invoiceAction/invoiceActionSelector.d.ts +3 -0
  268. package/lib/view/invoicing/invoiceAction/invoiceActionSelector.js +9 -0
  269. package/lib/view/invoicing/invoiceDetail/fetchInvoiceDetailEpic.d.ts +8 -0
  270. package/lib/view/invoicing/invoiceDetail/fetchInvoiceDetailEpic.js +24 -0
  271. package/lib/view/invoicing/invoiceDetail/invoiceDetailReducer.d.ts +11 -0
  272. package/lib/view/invoicing/invoiceDetail/invoiceDetailReducer.js +38 -0
  273. package/lib/view/invoicing/invoiceDetail/invoiceDetailSelector.d.ts +5 -0
  274. package/lib/view/invoicing/invoiceDetail/invoiceDetailSelector.js +14 -0
  275. package/lib/view/invoicing/invoiceDetail/invoiceDetailState.d.ts +4 -0
  276. package/lib/view/invoicing/invoiceDetail/invoiceDetailState.js +2 -0
  277. package/lib/view/invoicing/invoiceList/fetchInvoiceCountsEpic.d.ts +7 -0
  278. package/lib/view/invoicing/invoiceList/fetchInvoiceCountsEpic.js +36 -0
  279. package/lib/view/invoicing/invoiceList/fetchInvoiceKPIsEpic.d.ts +7 -0
  280. package/lib/view/invoicing/invoiceList/fetchInvoiceKPIsEpic.js +21 -0
  281. package/lib/view/invoicing/invoiceList/fetchInvoiceListEpic.d.ts +8 -0
  282. package/lib/view/invoicing/invoiceList/fetchInvoiceListEpic.js +59 -0
  283. package/lib/view/invoicing/invoiceList/invoiceListReducer.d.ts +22 -0
  284. package/lib/view/invoicing/invoiceList/invoiceListReducer.js +94 -0
  285. package/lib/view/invoicing/invoiceList/invoiceListSelector.d.ts +11 -0
  286. package/lib/view/invoicing/invoiceList/invoiceListSelector.js +21 -0
  287. package/lib/view/invoicing/invoiceList/invoiceListState.d.ts +25 -0
  288. package/lib/view/invoicing/invoiceList/invoiceListState.js +2 -0
  289. package/lib/view/invoicing/invoicePdf/invoicePdfEpic.d.ts +7 -0
  290. package/lib/view/invoicing/invoicePdf/invoicePdfEpic.js +41 -0
  291. package/lib/view/invoicing/invoicePdf/invoicePdfReducer.d.ts +20 -0
  292. package/lib/view/invoicing/invoicePdf/invoicePdfReducer.js +37 -0
  293. package/lib/view/invoicing/invoicePdf/invoicePdfSelector.d.ts +3 -0
  294. package/lib/view/invoicing/invoicePdf/invoicePdfSelector.js +9 -0
  295. package/lib/view/invoicing/invoicingApiHelper.d.ts +22 -0
  296. package/lib/view/invoicing/invoicingApiHelper.js +44 -0
  297. package/lib/view/invoicing/paymentAction/paymentActionEpic.d.ts +8 -0
  298. package/lib/view/invoicing/paymentAction/paymentActionEpic.js +32 -0
  299. package/lib/view/invoicing/paymentAction/paymentActionReducer.d.ts +21 -0
  300. package/lib/view/invoicing/paymentAction/paymentActionReducer.js +40 -0
  301. package/lib/view/invoicing/paymentAction/paymentActionSelector.d.ts +3 -0
  302. package/lib/view/invoicing/paymentAction/paymentActionSelector.js +9 -0
  303. package/lib/view/invoicing/recordPayment/recordPaymentEpic.d.ts +8 -0
  304. package/lib/view/invoicing/recordPayment/recordPaymentEpic.js +27 -0
  305. package/lib/view/invoicing/recordPayment/recordPaymentReducer.d.ts +32 -0
  306. package/lib/view/invoicing/recordPayment/recordPaymentReducer.js +40 -0
  307. package/lib/view/invoicing/recordPayment/recordPaymentSelector.d.ts +4 -0
  308. package/lib/view/invoicing/recordPayment/recordPaymentSelector.js +10 -0
  309. package/lib/view/invoicing/reportsView/reportsViewEpics.d.ts +7 -0
  310. package/lib/view/invoicing/reportsView/reportsViewEpics.js +32 -0
  311. package/lib/view/invoicing/reportsView/reportsViewReducer.d.ts +20 -0
  312. package/lib/view/invoicing/reportsView/reportsViewReducer.js +58 -0
  313. package/lib/view/invoicing/reportsView/reportsViewSelector.d.ts +12 -0
  314. package/lib/view/invoicing/reportsView/reportsViewSelector.js +24 -0
  315. package/lib/view/invoicing/settingsView/settingsViewEpics.d.ts +10 -0
  316. package/lib/view/invoicing/settingsView/settingsViewEpics.js +60 -0
  317. package/lib/view/invoicing/settingsView/settingsViewReducer.d.ts +12 -0
  318. package/lib/view/invoicing/settingsView/settingsViewReducer.js +73 -0
  319. package/lib/view/invoicing/settingsView/settingsViewSelector.d.ts +7 -0
  320. package/lib/view/invoicing/settingsView/settingsViewSelector.js +14 -0
  321. package/lib/view/invoicing/subscriptionAction/subscriptionActionEpic.d.ts +8 -0
  322. package/lib/view/invoicing/subscriptionAction/subscriptionActionEpic.js +32 -0
  323. package/lib/view/invoicing/subscriptionAction/subscriptionActionReducer.d.ts +21 -0
  324. package/lib/view/invoicing/subscriptionAction/subscriptionActionReducer.js +40 -0
  325. package/lib/view/invoicing/subscriptionAction/subscriptionActionSelector.d.ts +3 -0
  326. package/lib/view/invoicing/subscriptionAction/subscriptionActionSelector.js +9 -0
  327. package/lib/view/invoicing/subscriptionView/subscriptionViewEpics.d.ts +10 -0
  328. package/lib/view/invoicing/subscriptionView/subscriptionViewEpics.js +91 -0
  329. package/lib/view/invoicing/subscriptionView/subscriptionViewReducer.d.ts +44 -0
  330. package/lib/view/invoicing/subscriptionView/subscriptionViewReducer.js +94 -0
  331. package/lib/view/invoicing/subscriptionView/subscriptionViewSelector.d.ts +13 -0
  332. package/lib/view/invoicing/subscriptionView/subscriptionViewSelector.js +31 -0
  333. package/lib/view/invoicing/subscriptionWrite/subscriptionWriteEpic.d.ts +8 -0
  334. package/lib/view/invoicing/subscriptionWrite/subscriptionWriteEpic.js +29 -0
  335. package/lib/view/invoicing/subscriptionWrite/subscriptionWriteReducer.d.ts +17 -0
  336. package/lib/view/invoicing/subscriptionWrite/subscriptionWriteReducer.js +40 -0
  337. package/lib/view/invoicing/subscriptionWrite/subscriptionWriteSelector.d.ts +4 -0
  338. package/lib/view/invoicing/subscriptionWrite/subscriptionWriteSelector.js +10 -0
  339. package/lib/view/invoicing/transactionView/transactionViewEpics.d.ts +10 -0
  340. package/lib/view/invoicing/transactionView/transactionViewEpics.js +82 -0
  341. package/lib/view/invoicing/transactionView/transactionViewReducer.d.ts +43 -0
  342. package/lib/view/invoicing/transactionView/transactionViewReducer.js +94 -0
  343. package/lib/view/invoicing/transactionView/transactionViewSelector.d.ts +13 -0
  344. package/lib/view/invoicing/transactionView/transactionViewSelector.js +31 -0
  345. package/lib/view/reviewCompanyView/reviewCompanyViewState.d.ts +1 -1
  346. package/lib/view/spendManagement/billPay/billList/billListReducer.d.ts +1 -1
  347. package/lib/view/spendManagement/billPay/billList/billListState.d.ts +1 -1
  348. package/lib/view/spendManagement/reimbursement/remiListView/remiListReducer.d.ts +1 -1
  349. package/lib/view/spendManagement/reimbursement/remiListView/remiListState.d.ts +3 -3
  350. package/lib/zeniAPI.d.ts +1 -0
  351. package/package.json +5 -2
@@ -33,6 +33,15 @@ import forecast, { initialState as initialForecastState, } from './entity/foreca
33
33
  import entity, { initialState as initialEntityState, } from './entity/genericEntity/entityReducer';
34
34
  import globalMerchant, { initialState as initialGlobalMerchantState, } from './entity/globalMerchant/globalMerchantReducer';
35
35
  import insights, { initialState as initialInsightState, } from './entity/insights/insightReducer';
36
+ import invoicingCoupon, { initialState as initialInvoicingCouponState, } from './entity/invoicing/coupon/couponReducer';
37
+ import invoicingCreditNote, { initialState as initialInvoicingCreditNoteState, } from './entity/invoicing/creditNote/creditNoteReducer';
38
+ import invoicingCustomer, { initialState as initialInvoicingCustomerState, } from './entity/invoicing/customer/customerReducer';
39
+ import invoicingDunningCase, { initialState as initialInvoicingDunningCaseState, } from './entity/invoicing/dunningCase/dunningCaseReducer';
40
+ import invoicingInvoice, { initialState as initialInvoicingInvoiceState, } from './entity/invoicing/invoice/invoiceReducer';
41
+ import invoicingPlan, { initialState as initialInvoicingPlanState, } from './entity/invoicing/plan/planReducer';
42
+ import invoicingProduct, { initialState as initialInvoicingProductState, } from './entity/invoicing/product/productReducer';
43
+ import invoicingSubscription, { initialState as initialInvoicingSubscriptionState, } from './entity/invoicing/subscription/subscriptionReducer';
44
+ import invoicingTransaction, { initialState as initialInvoicingTransactionState, } from './entity/invoicing/transaction/transactionReducer';
36
45
  import jeSchedules, { initialState as initialJESchedulesState, } from './entity/jeSchedules/jeSchedulesReducer';
37
46
  import merchant, { initialState as initialMerchantState, } from './entity/merchant/merchantReducer';
38
47
  import monthEndCloseChecks, { initialState as initialMonthEndCloseChecksState, } from './entity/monthEndCloseChecks/monthEndCloseChecksReducer';
@@ -117,6 +126,35 @@ import forecastList, { initialState as initialForecastListState, } from './view/
117
126
  import globalMerchantAutoComplete, { initialState as initialGlobalMerchantAutoCompleteState, } from './view/globalMerchantView/globalMerchantAutoCompleteView/globalMerchantAutoCompleteViewReducer';
118
127
  import globalMerchantView, { initialState as initialGlobalMerchantViewState, } from './view/globalMerchantView/globalMerchantViewReducer';
119
128
  import insightsCard, { initialState as initialInsightCardState, } from './view/insightsCard/insightsCardReducer';
129
+ import invoicingAnalyticsView, { initialState as initialInvoicingAnalyticsViewState, } from './view/invoicing/analyticsView/analyticsViewReducer';
130
+ import invoicingApprovalAction, { initialState as initialInvoicingApprovalActionState, } from './view/invoicing/approvalAction/approvalActionReducer';
131
+ import invoicingApprovalsView, { initialState as initialInvoicingApprovalsViewState, } from './view/invoicing/approvalsView/approvalsViewReducer';
132
+ import invoicingAuditView, { initialState as initialInvoicingAuditViewState, } from './view/invoicing/auditView/auditViewReducer';
133
+ import invoicingCatalogView, { initialState as initialInvoicingCatalogViewState, } from './view/invoicing/catalogView/catalogViewReducer';
134
+ import invoicingCatalogWrite, { initialState as initialInvoicingCatalogWriteState, } from './view/invoicing/catalogWrite/catalogWriteReducer';
135
+ import invoicingCouponWrite, { initialState as initialInvoicingCouponWriteState, } from './view/invoicing/couponWrite/couponWriteReducer';
136
+ import invoicingCouponView, { initialState as initialInvoicingCouponViewState, } from './view/invoicing/couponView/couponViewReducer';
137
+ import invoicingCreateInvoice, { initialState as initialInvoicingCreateInvoiceState, } from './view/invoicing/createInvoice/createInvoiceReducer';
138
+ import invoicingCreditNoteView, { initialState as initialInvoicingCreditNoteViewState, } from './view/invoicing/creditNoteView/creditNoteViewReducer';
139
+ import invoicingCustomerPaymentMethod, { initialState as initialInvoicingCustomerPaymentMethodState, } from './view/invoicing/customerPaymentMethod/customerPaymentMethodReducer';
140
+ import invoicingCustomerView, { initialState as initialInvoicingCustomerViewState, } from './view/invoicing/customerView/customerViewReducer';
141
+ import invoicingCustomerWrite, { initialState as initialInvoicingCustomerWriteState, } from './view/invoicing/customerWrite/customerWriteReducer';
142
+ import invoicingDataImportAction, { initialState as initialInvoicingDataImportActionState, } from './view/invoicing/dataImportAction/dataImportActionReducer';
143
+ import invoicingDataImportView, { initialState as initialInvoicingDataImportViewState, } from './view/invoicing/dataImportView/dataImportViewReducer';
144
+ import invoicingDunningAction, { initialState as initialInvoicingDunningActionState, } from './view/invoicing/dunningAction/dunningActionReducer';
145
+ import invoicingDunningCaseView, { initialState as initialInvoicingDunningCaseViewState, } from './view/invoicing/dunningCaseView/dunningCaseViewReducer';
146
+ import invoicingInvoiceAction, { initialState as initialInvoicingInvoiceActionState, } from './view/invoicing/invoiceAction/invoiceActionReducer';
147
+ import invoicingInvoiceDetail, { initialState as initialInvoicingInvoiceDetailState, } from './view/invoicing/invoiceDetail/invoiceDetailReducer';
148
+ import invoicingInvoiceList, { initialState as initialInvoicingInvoiceListState, } from './view/invoicing/invoiceList/invoiceListReducer';
149
+ import invoicingInvoicePdf, { initialState as initialInvoicingInvoicePdfState, } from './view/invoicing/invoicePdf/invoicePdfReducer';
150
+ import invoicingPaymentAction, { initialState as initialInvoicingPaymentActionState, } from './view/invoicing/paymentAction/paymentActionReducer';
151
+ import invoicingRecordPayment, { initialState as initialInvoicingRecordPaymentState, } from './view/invoicing/recordPayment/recordPaymentReducer';
152
+ import invoicingReportsView, { initialState as initialInvoicingReportsViewState, } from './view/invoicing/reportsView/reportsViewReducer';
153
+ import invoicingSettingsView, { initialState as initialInvoicingSettingsViewState, } from './view/invoicing/settingsView/settingsViewReducer';
154
+ import invoicingSubscriptionAction, { initialState as initialInvoicingSubscriptionActionState, } from './view/invoicing/subscriptionAction/subscriptionActionReducer';
155
+ import invoicingSubscriptionView, { initialState as initialInvoicingSubscriptionViewState, } from './view/invoicing/subscriptionView/subscriptionViewReducer';
156
+ import invoicingSubscriptionWrite, { initialState as initialInvoicingSubscriptionWriteState, } from './view/invoicing/subscriptionWrite/subscriptionWriteReducer';
157
+ import invoicingTransactionView, { initialState as initialInvoicingTransactionViewState, } from './view/invoicing/transactionView/transactionViewReducer';
120
158
  import monthEndCloseChecksView, { initialState as initialMonthEndCloseChecksViewState, } from './view/monthEndCloseChecksView/monthEndCloseChecksViewReducer';
121
159
  import netBurnOrIncome, { initialState as initialNetBurnOrIncomeWithForecastState, } from './view/netBurnOrIncome/netBurnOrIncomeReducer';
122
160
  import netBurnOrIncomeClassesView, { initialState as initialNetBurnOrIncomeClassesViewState, } from './view/netBurnOrIncomeClassesView/netBurnOrIncomeClassesViewReducer';
@@ -266,6 +304,15 @@ const initialEntitiesState = {
266
304
  forecastState: initialForecastState,
267
305
  globalMerchantState: initialGlobalMerchantState,
268
306
  insightState: initialInsightState,
307
+ invoicingCouponState: initialInvoicingCouponState,
308
+ invoicingCreditNoteState: initialInvoicingCreditNoteState,
309
+ invoicingCustomerState: initialInvoicingCustomerState,
310
+ invoicingDunningCaseState: initialInvoicingDunningCaseState,
311
+ invoicingInvoiceState: initialInvoicingInvoiceState,
312
+ invoicingPlanState: initialInvoicingPlanState,
313
+ invoicingProductState: initialInvoicingProductState,
314
+ invoicingSubscriptionState: initialInvoicingSubscriptionState,
315
+ invoicingTransactionState: initialInvoicingTransactionState,
269
316
  jeSchedulesState: initialJESchedulesState,
270
317
  merchantState: initialMerchantState,
271
318
  monthEndCloseChecksState: initialMonthEndCloseChecksState,
@@ -382,6 +429,35 @@ const initialViewsState = {
382
429
  globalMerchantAutoCompleteState: initialGlobalMerchantAutoCompleteState,
383
430
  globalMerchantViewState: initialGlobalMerchantViewState,
384
431
  insightsCardState: initialInsightCardState,
432
+ invoicingAnalyticsViewState: initialInvoicingAnalyticsViewState,
433
+ invoicingApprovalActionState: initialInvoicingApprovalActionState,
434
+ invoicingApprovalsViewState: initialInvoicingApprovalsViewState,
435
+ invoicingAuditViewState: initialInvoicingAuditViewState,
436
+ invoicingCatalogViewState: initialInvoicingCatalogViewState,
437
+ invoicingCatalogWriteState: initialInvoicingCatalogWriteState,
438
+ invoicingCouponWriteState: initialInvoicingCouponWriteState,
439
+ invoicingCouponViewState: initialInvoicingCouponViewState,
440
+ invoicingCreditNoteViewState: initialInvoicingCreditNoteViewState,
441
+ invoicingCreateInvoiceState: initialInvoicingCreateInvoiceState,
442
+ invoicingRecordPaymentState: initialInvoicingRecordPaymentState,
443
+ invoicingCustomerPaymentMethodState: initialInvoicingCustomerPaymentMethodState,
444
+ invoicingCustomerViewState: initialInvoicingCustomerViewState,
445
+ invoicingCustomerWriteState: initialInvoicingCustomerWriteState,
446
+ invoicingDataImportActionState: initialInvoicingDataImportActionState,
447
+ invoicingDataImportViewState: initialInvoicingDataImportViewState,
448
+ invoicingDunningActionState: initialInvoicingDunningActionState,
449
+ invoicingDunningCaseViewState: initialInvoicingDunningCaseViewState,
450
+ invoicingInvoiceActionState: initialInvoicingInvoiceActionState,
451
+ invoicingInvoiceDetailState: initialInvoicingInvoiceDetailState,
452
+ invoicingInvoiceListState: initialInvoicingInvoiceListState,
453
+ invoicingInvoicePdfState: initialInvoicingInvoicePdfState,
454
+ invoicingPaymentActionState: initialInvoicingPaymentActionState,
455
+ invoicingReportsViewState: initialInvoicingReportsViewState,
456
+ invoicingSettingsViewState: initialInvoicingSettingsViewState,
457
+ invoicingSubscriptionActionState: initialInvoicingSubscriptionActionState,
458
+ invoicingSubscriptionViewState: initialInvoicingSubscriptionViewState,
459
+ invoicingSubscriptionWriteState: initialInvoicingSubscriptionWriteState,
460
+ invoicingTransactionViewState: initialInvoicingTransactionViewState,
385
461
  internationalWireState: initialInternationalWireState,
386
462
  issueChargeCardState: issueChargeCardInitialstate,
387
463
  internationalWireVerificationState: initialInternationalWireVerificationState,
@@ -509,6 +585,15 @@ const entityReducers = {
509
585
  forecastState: forecast,
510
586
  globalMerchantState: globalMerchant,
511
587
  insightState: insights,
588
+ invoicingCouponState: invoicingCoupon,
589
+ invoicingCreditNoteState: invoicingCreditNote,
590
+ invoicingCustomerState: invoicingCustomer,
591
+ invoicingDunningCaseState: invoicingDunningCase,
592
+ invoicingInvoiceState: invoicingInvoice,
593
+ invoicingPlanState: invoicingPlan,
594
+ invoicingProductState: invoicingProduct,
595
+ invoicingSubscriptionState: invoicingSubscription,
596
+ invoicingTransactionState: invoicingTransaction,
512
597
  jeSchedulesState: jeSchedules,
513
598
  merchantState: merchant,
514
599
  monthEndCloseChecksState: monthEndCloseChecks,
@@ -624,6 +709,35 @@ const viewReducers = {
624
709
  globalMerchantAutoCompleteState: globalMerchantAutoComplete,
625
710
  globalMerchantViewState: globalMerchantView,
626
711
  insightsCardState: insightsCard,
712
+ invoicingAnalyticsViewState: invoicingAnalyticsView,
713
+ invoicingApprovalActionState: invoicingApprovalAction,
714
+ invoicingApprovalsViewState: invoicingApprovalsView,
715
+ invoicingAuditViewState: invoicingAuditView,
716
+ invoicingCatalogViewState: invoicingCatalogView,
717
+ invoicingCatalogWriteState: invoicingCatalogWrite,
718
+ invoicingCouponWriteState: invoicingCouponWrite,
719
+ invoicingCouponViewState: invoicingCouponView,
720
+ invoicingCreditNoteViewState: invoicingCreditNoteView,
721
+ invoicingCreateInvoiceState: invoicingCreateInvoice,
722
+ invoicingRecordPaymentState: invoicingRecordPayment,
723
+ invoicingCustomerPaymentMethodState: invoicingCustomerPaymentMethod,
724
+ invoicingCustomerViewState: invoicingCustomerView,
725
+ invoicingCustomerWriteState: invoicingCustomerWrite,
726
+ invoicingDataImportActionState: invoicingDataImportAction,
727
+ invoicingDataImportViewState: invoicingDataImportView,
728
+ invoicingDunningActionState: invoicingDunningAction,
729
+ invoicingDunningCaseViewState: invoicingDunningCaseView,
730
+ invoicingInvoiceActionState: invoicingInvoiceAction,
731
+ invoicingInvoiceDetailState: invoicingInvoiceDetail,
732
+ invoicingInvoiceListState: invoicingInvoiceList,
733
+ invoicingInvoicePdfState: invoicingInvoicePdf,
734
+ invoicingPaymentActionState: invoicingPaymentAction,
735
+ invoicingReportsViewState: invoicingReportsView,
736
+ invoicingSettingsViewState: invoicingSettingsView,
737
+ invoicingSubscriptionActionState: invoicingSubscriptionAction,
738
+ invoicingSubscriptionViewState: invoicingSubscriptionView,
739
+ invoicingSubscriptionWriteState: invoicingSubscriptionWrite,
740
+ invoicingTransactionViewState: invoicingTransactionView,
627
741
  internationalWireState: internationalWire,
628
742
  issueChargeCardState: issueChargeCards,
629
743
  internationalWireVerificationState: internationalWireVerification,
@@ -47,6 +47,7 @@ export const initialAiCfoViewState = {
47
47
  responseStateByChatSessionId: {},
48
48
  stopSubmitStateByChatSessionId: {},
49
49
  suggestedQuestionsByPageContext: {},
50
+ skills: { fetchState: 'Not-Started', error: undefined, skills: [] },
50
51
  };
51
52
  const aiCfoView = createSlice({
52
53
  name: 'aiCfoView',
@@ -62,7 +63,7 @@ const aiCfoView = createSlice({
62
63
  answer: { fetchState: 'In-Progress', error: undefined },
63
64
  };
64
65
  },
65
- prepare(sessionId, questionAnswerId, userId, questionId, createdAt, question, files) {
66
+ prepare(sessionId, questionAnswerId, userId, questionId, createdAt, question, files, macroId) {
66
67
  return {
67
68
  payload: {
68
69
  sessionId,
@@ -72,6 +73,7 @@ const aiCfoView = createSlice({
72
73
  createdAt,
73
74
  question,
74
75
  files,
76
+ macroId,
75
77
  },
76
78
  };
77
79
  },
@@ -222,7 +224,7 @@ const aiCfoView = createSlice({
222
224
  draft.createSessionAndSubmitState.fetchState = 'In-Progress';
223
225
  draft.createSessionAndSubmitState.error = undefined;
224
226
  },
225
- prepare(agentId, userId, questionAnswerId, questionId, createdAt, question, files, pageContext) {
227
+ prepare(agentId, userId, questionAnswerId, questionId, createdAt, question, files, pageContext, macroId) {
226
228
  return {
227
229
  payload: {
228
230
  agentId,
@@ -233,6 +235,7 @@ const aiCfoView = createSlice({
233
235
  question,
234
236
  files,
235
237
  pageContext,
238
+ macroId,
236
239
  },
237
240
  };
238
241
  },
@@ -445,6 +448,29 @@ const aiCfoView = createSlice({
445
448
  error,
446
449
  };
447
450
  },
451
+ fetchSkills(draft) {
452
+ // Optional-chain: persisted/rehydrated state from before this slice existed
453
+ // may have no `skills`, so don't assume draft.skills is set.
454
+ draft.skills = {
455
+ fetchState: 'In-Progress',
456
+ error: undefined,
457
+ skills: draft.skills?.skills ?? [],
458
+ };
459
+ },
460
+ fetchSkillsSuccess(draft, action) {
461
+ draft.skills = {
462
+ fetchState: 'Completed',
463
+ error: undefined,
464
+ skills: action.payload.skills,
465
+ };
466
+ },
467
+ fetchSkillsFailure(draft, action) {
468
+ draft.skills = {
469
+ fetchState: 'Error',
470
+ error: action.payload,
471
+ skills: draft.skills?.skills ?? [],
472
+ };
473
+ },
448
474
  clearAiCfoView(draft) {
449
475
  Object.assign(draft, initialAiCfoViewState);
450
476
  },
@@ -455,5 +481,5 @@ const aiCfoView = createSlice({
455
481
  },
456
482
  },
457
483
  });
458
- export const { submitQuestion, submitQuestionSuccess, submitQuestionFailure, updateResponseState, updateAiCfoViewScrollPosition, updateCurrentInput, clearInput, setSession, createSession, createSessionSuccess, createSessionFailure, createSessionAndSubmit, initializeNewSessionState, createSessionAndSubmitSuccess, createSessionAndSubmitFailure, fetchChatSessionsForUser, fetchChatSessionsForUserSuccess, fetchChatSessionsForUserFailure, fetchChatHistory, fetchChatHistorySuccess, fetchChatHistoryFailure, clearCurrentSessionId, clearLastContextMessage, stopSubmit, stopSubmitSuccess, stopSubmitFailure, stopSubmitQuestion, stopSubmitQuestionSuccess, stopSubmitQuestionFailure, acceptMasterTOS, acceptMasterTOSSuccess, acceptMasterTOSFailure, deleteChatSession, deleteChatSessionSuccess, deleteChatSessionFailure, clearDeleteChatSessionStatus, clearAiCfoView, updateCotCollapsedState, fetchSuggestedQuestions, fetchSuggestedQuestionsSuccess, fetchSuggestedQuestionsFailure, applyAiCfoSidePanelHostPageTransition, clearAiCfoSidePanelHostPageContext, } = aiCfoView.actions;
484
+ export const { submitQuestion, submitQuestionSuccess, submitQuestionFailure, updateResponseState, updateAiCfoViewScrollPosition, updateCurrentInput, clearInput, setSession, createSession, createSessionSuccess, createSessionFailure, createSessionAndSubmit, initializeNewSessionState, createSessionAndSubmitSuccess, createSessionAndSubmitFailure, fetchChatSessionsForUser, fetchChatSessionsForUserSuccess, fetchChatSessionsForUserFailure, fetchChatHistory, fetchChatHistorySuccess, fetchChatHistoryFailure, clearCurrentSessionId, clearLastContextMessage, stopSubmit, stopSubmitSuccess, stopSubmitFailure, stopSubmitQuestion, stopSubmitQuestionSuccess, stopSubmitQuestionFailure, acceptMasterTOS, acceptMasterTOSSuccess, acceptMasterTOSFailure, deleteChatSession, deleteChatSessionSuccess, deleteChatSessionFailure, clearDeleteChatSessionStatus, clearAiCfoView, updateCotCollapsedState, fetchSuggestedQuestions, fetchSuggestedQuestionsSuccess, fetchSuggestedQuestionsFailure, fetchSkills, fetchSkillsSuccess, fetchSkillsFailure, applyAiCfoSidePanelHostPageTransition, clearAiCfoSidePanelHostPageContext, } = aiCfoView.actions;
459
485
  export default aiCfoView.reducer;
@@ -22,3 +22,14 @@ export const getAiCfoView = (state) => {
22
22
  export function getSuggestedQuestionsForPageContext(state, pageContext) {
23
23
  return state.aiCfoViewState?.suggestedQuestionsByPageContext?.[pageContext];
24
24
  }
25
+ // Stable fallback so getSkills returns a referentially-stable object when skills
26
+ // state is absent — a fresh literal each call would defeat useSelector identity
27
+ // checks and cause needless re-renders.
28
+ const EMPTY_SKILLS_STATE = {
29
+ fetchState: 'Not-Started',
30
+ error: undefined,
31
+ skills: [],
32
+ };
33
+ export function getSkills(state) {
34
+ return state.aiCfoViewState?.skills ?? EMPTY_SKILLS_STATE;
35
+ }
@@ -66,7 +66,7 @@ function waitForChannelSubscription(pusherInstance, channelName, timeoutMs = 500
66
66
  }));
67
67
  }
68
68
  export const createSessionAndSubmitEpic = (actions$, _state$, zeniAPI) => actions$.pipe(filter(createSessionAndSubmit.match), switchMap((action) => {
69
- const { agentId, userId, questionAnswerId, questionId, createdAt, question, files, pageContext, } = action.payload;
69
+ const { agentId, userId, questionAnswerId, questionId, createdAt, question, files, pageContext, macroId, } = action.payload;
70
70
  const payload = {
71
71
  agent_id: agentId,
72
72
  ...(pageContext != null && { page_context: pageContext }),
@@ -113,7 +113,7 @@ export const createSessionAndSubmitEpic = (actions$, _state$, zeniAPI) => action
113
113
  // This allows fetchChatHistory to run after the question is submitted
114
114
  of(createSessionAndSubmitSuccess(),
115
115
  // Submit the question after handlers are bound
116
- submitQuestion(sessionId, questionAnswerId, userId, questionId, createdAt, question, files),
116
+ submitQuestion(sessionId, questionAnswerId, userId, questionId, createdAt, question, files, macroId),
117
117
  // Add question payload optimistically after submitQuestion (matches original order)
118
118
  // This is idempotent - won't create duplicates if called multiple times
119
119
  // submitQuestionEpic will find the question already exists and only update the response
@@ -0,0 +1,34 @@
1
+ import { of } from 'rxjs';
2
+ import { catchError, filter, mergeMap, switchMap } from 'rxjs/operators';
3
+ import { createZeniAPIStatus, isSuccessResponse } from '../../../responsePayload';
4
+ import { fetchSkills, fetchSkillsFailure, fetchSkillsSuccess, } from '../aiCfoViewReducer';
5
+ const toSkill = (s) => ({
6
+ macroId: s.macro_id,
7
+ name: s.name,
8
+ displayName: s.display_name,
9
+ description: s.description,
10
+ semver: s.semver,
11
+ parameterHints: s.parameter_hints,
12
+ hasScripts: s.has_scripts,
13
+ });
14
+ /** GET {aiCfoMicroServiceBaseUrl}/1.0/skills — chat-visible skills for the `/` menu. */
15
+ export const fetchSkillsEpic = (actions$,
16
+ // state$ intentionally unused: the `/` menu dispatches this once per slash-entry
17
+ // (the composer dedupes), so we always re-fetch the (small, singleton) list.
18
+ _state$, zeniAPI) => actions$.pipe(filter(fetchSkills.match),
19
+ // switchMap: a singleton list endpoint with no key — cancel any in-flight
20
+ // fetch so the latest dispatch wins (no racing writes to `skills`).
21
+ switchMap(() => {
22
+ // aiCfoMicroServiceBaseUrl already targets the chat service (it serves the
23
+ // /1.0/agents/{id} submit route too); /1.0/skills lives on the same service.
24
+ const url = `${zeniAPI.apiEndPoints.aiCfoMicroServiceBaseUrl}/1.0/skills`;
25
+ return zeniAPI.getJSON(url).pipe(mergeMap((response) => {
26
+ if (isSuccessResponse(response) && response.data != null) {
27
+ // Guard the array: a malformed 2xx body without `skills` must not crash .map.
28
+ return of(fetchSkillsSuccess({
29
+ skills: (response.data.skills ?? []).map(toSkill),
30
+ }));
31
+ }
32
+ return of(fetchSkillsFailure(response.status));
33
+ }), catchError((error) => of(fetchSkillsFailure(createZeniAPIStatus('Unexpected Error', 'Fetch skills REST API call failed', error instanceof Error ? { message: error.message } : undefined)))));
34
+ }));
@@ -4,7 +4,7 @@ import { upsertOrAddQuestionAnswerPayload } from '../../../entity/aiCfo/aiCfoRed
4
4
  import { createZeniAPIStatus, isSuccessResponse } from '../../../responsePayload';
5
5
  import { submitQuestion, submitQuestionFailure, submitQuestionSuccess, } from '../aiCfoViewReducer';
6
6
  export const submitQuestionEpic = (actions$, state$, zeniAPI) => actions$.pipe(filter(submitQuestion.match), mergeMap((action) => {
7
- const { questionAnswerId, userId, sessionId, questionId, createdAt, question, files, } = action.payload;
7
+ const { questionAnswerId, userId, sessionId, questionId, createdAt, question, files, macroId, } = action.payload;
8
8
  const { aiCfoViewState } = state$.value;
9
9
  const { uiState } = aiCfoViewState;
10
10
  const agentId = uiState.agentId;
@@ -17,15 +17,21 @@ export const submitQuestionEpic = (actions$, state$, zeniAPI) => actions$.pipe(f
17
17
  const formData = new FormData();
18
18
  formData.append('chat_session_id', sessionId);
19
19
  formData.append('message', question);
20
+ if (macroId != null) {
21
+ formData.append('macro_id', macroId);
22
+ }
20
23
  for (const file of files) {
21
24
  formData.append('files', file, file.name);
22
25
  }
23
26
  apiCall = zeniAPI.postFormData(endpoint, formData);
24
27
  }
25
28
  else {
29
+ // `message` is the display token (e.g. "/flux"); `macro_id` tells the chat
30
+ // service to expand the skill's instructions as the actual agent prompt.
26
31
  apiCall = zeniAPI.postAndGetJSON(endpoint, {
27
32
  chat_session_id: sessionId,
28
33
  message: question,
34
+ ...(macroId != null && { macro_id: macroId }),
29
35
  });
30
36
  }
31
37
  return apiCall.pipe(mergeMap((response) => {
@@ -0,0 +1,42 @@
1
+ import { forkJoin, of } from 'rxjs';
2
+ import { catchError, filter, switchMap } from 'rxjs/operators';
3
+ import { createZeniAPIStatus, isSuccessResponse, } from '../../../responsePayload';
4
+ import { invoicingBaseUrl } from '../invoicingApiHelper';
5
+ import { fetchInvoicingAnalytics, updateInvoicingAnalytics, updateInvoicingAnalyticsFailure, } from './analyticsViewReducer';
6
+ const REVENUE_MONTHS = 12;
7
+ const MRR_MONTHS = 6;
8
+ function listData(response) {
9
+ return isSuccessResponse(response) && response.data != null
10
+ ? response.data
11
+ : [];
12
+ }
13
+ function optionalData(response) {
14
+ return isSuccessResponse(response) && response.data != null
15
+ ? response.data
16
+ : undefined;
17
+ }
18
+ export const fetchInvoicingAnalyticsEpic = (actions$, _state$, zeniAPI) => actions$.pipe(filter(fetchInvoicingAnalytics.match), switchMap((action) => {
19
+ const base = invoicingBaseUrl(zeniAPI);
20
+ const period = `year=${action.payload.year}&month=${action.payload.month}`;
21
+ return forkJoin([
22
+ zeniAPI.getJSON(`${base}/analytics/kpis?${period}`),
23
+ zeniAPI.getJSON(`${base}/analytics/revenue?months=${REVENUE_MONTHS}&${period}`),
24
+ zeniAPI.getJSON(`${base}/analytics/mrr?months=${MRR_MONTHS}&${period}`),
25
+ zeniAPI.getJSON(`${base}/analytics/churn?months=${MRR_MONTHS}&${period}`),
26
+ zeniAPI.getJSON(`${base}/analytics/plan-revenue?${period}`),
27
+ zeniAPI.getJSON(`${base}/analytics/dashboard-summary?${period}`),
28
+ ]).pipe(switchMap(([kpisRes, revenueRes, mrrRes, churnRes, planRes, summaryRes]) => {
29
+ if (!isSuccessResponse(kpisRes)) {
30
+ return of(updateInvoicingAnalyticsFailure(kpisRes.status));
31
+ }
32
+ return of(updateInvoicingAnalytics({
33
+ kpis: optionalData(kpisRes),
34
+ revenue: listData(revenueRes),
35
+ mrr: listData(mrrRes),
36
+ churn: listData(churnRes),
37
+ planRevenue: listData(planRes),
38
+ summary: optionalData(summaryRes),
39
+ }));
40
+ }), catchError((error) => of(updateInvoicingAnalyticsFailure(createZeniAPIStatus('Unexpected Error', 'Fetch analytics REST API call errored out ' +
41
+ JSON.stringify(error))))));
42
+ }));
@@ -0,0 +1,45 @@
1
+ import { createSlice } from '@reduxjs/toolkit';
2
+ export const initialState = {
3
+ fetchState: 'Not-Started',
4
+ error: undefined,
5
+ churn: [],
6
+ kpis: undefined,
7
+ mrr: [],
8
+ period: undefined,
9
+ planRevenue: [],
10
+ revenue: [],
11
+ summary: undefined,
12
+ hasValidState() {
13
+ return this.fetchState === 'Completed' && this.kpis != null;
14
+ },
15
+ };
16
+ const analyticsView = createSlice({
17
+ name: 'invoicingAnalyticsView',
18
+ initialState,
19
+ reducers: {
20
+ fetchInvoicingAnalytics(draft, action) {
21
+ draft.fetchState = 'In-Progress';
22
+ draft.error = undefined;
23
+ draft.period = action.payload;
24
+ },
25
+ updateInvoicingAnalytics(draft, action) {
26
+ draft.kpis = action.payload.kpis;
27
+ draft.revenue = action.payload.revenue;
28
+ draft.mrr = action.payload.mrr;
29
+ draft.churn = action.payload.churn;
30
+ draft.planRevenue = action.payload.planRevenue;
31
+ draft.summary = action.payload.summary;
32
+ draft.fetchState = 'Completed';
33
+ draft.error = undefined;
34
+ },
35
+ updateInvoicingAnalyticsFailure(draft, action) {
36
+ draft.fetchState = 'Error';
37
+ draft.error = action.payload;
38
+ },
39
+ clearInvoicingAnalytics(draft) {
40
+ Object.assign(draft, initialState);
41
+ },
42
+ },
43
+ });
44
+ export const { fetchInvoicingAnalytics, updateInvoicingAnalytics, updateInvoicingAnalyticsFailure, clearInvoicingAnalytics, } = analyticsView.actions;
45
+ export default analyticsView.reducer;
@@ -0,0 +1,10 @@
1
+ export const getInvoicingAnalyticsKPIs = (state) => state.invoicingAnalyticsViewState.kpis;
2
+ export const getInvoicingAnalyticsRevenue = (state) => state.invoicingAnalyticsViewState.revenue;
3
+ export const getInvoicingAnalyticsMRR = (state) => state.invoicingAnalyticsViewState.mrr;
4
+ export const getInvoicingAnalyticsChurn = (state) => state.invoicingAnalyticsViewState.churn;
5
+ export const getInvoicingAnalyticsPlanRevenue = (state) => state.invoicingAnalyticsViewState.planRevenue;
6
+ export const getInvoicingAnalyticsSummary = (state) => state.invoicingAnalyticsViewState.summary;
7
+ export const getInvoicingAnalyticsFetchState = (state) => ({
8
+ fetchState: state.invoicingAnalyticsViewState.fetchState,
9
+ error: state.invoicingAnalyticsViewState.error,
10
+ });
@@ -0,0 +1,28 @@
1
+ import { of } from 'rxjs';
2
+ import { catchError, filter, mergeMap } from 'rxjs/operators';
3
+ import { createZeniAPIStatus, isSuccessResponse, } from '../../../responsePayload';
4
+ import { invoicingBaseUrl } from '../invoicingApiHelper';
5
+ import { upsertInvoicingApproval } from '../approvalsView/approvalsViewReducer';
6
+ import { runInvoicingApprovalAction, runInvoicingApprovalActionFailure, runInvoicingApprovalActionSuccess, } from './approvalActionReducer';
7
+ export const runInvoicingApprovalActionEpic = (actions$, _state$, zeniAPI) => actions$.pipe(filter(runInvoicingApprovalAction.match), mergeMap((action) => {
8
+ const { action: kind, approvalId } = action.payload;
9
+ const apiUrl = `${invoicingBaseUrl(zeniAPI)}/approvals/${encodeURIComponent(approvalId)}/${kind}`;
10
+ return zeniAPI
11
+ .postAndGetJSON(apiUrl, {})
12
+ .pipe(mergeMap((response) => {
13
+ if (isSuccessResponse(response) && response.data != null) {
14
+ return [
15
+ upsertInvoicingApproval(response.data),
16
+ runInvoicingApprovalActionSuccess({ approvalId }),
17
+ ];
18
+ }
19
+ return of(runInvoicingApprovalActionFailure({
20
+ error: response.status,
21
+ approvalId,
22
+ }));
23
+ }), catchError((error) => of(runInvoicingApprovalActionFailure({
24
+ error: createZeniAPIStatus('Unexpected Error', 'Approval action REST API call errored out ' +
25
+ JSON.stringify(error)),
26
+ approvalId,
27
+ }))));
28
+ }));
@@ -0,0 +1,36 @@
1
+ import { createSlice } from '@reduxjs/toolkit';
2
+ export const initialState = {
3
+ byApprovalId: {},
4
+ };
5
+ const approvalAction = createSlice({
6
+ name: 'invoicingApprovalAction',
7
+ initialState,
8
+ reducers: {
9
+ runInvoicingApprovalAction(draft, action) {
10
+ draft.byApprovalId[action.payload.approvalId] = {
11
+ fetchState: 'In-Progress',
12
+ error: undefined,
13
+ };
14
+ },
15
+ runInvoicingApprovalActionSuccess(draft, action) {
16
+ draft.byApprovalId[action.payload.approvalId] = {
17
+ fetchState: 'Completed',
18
+ error: undefined,
19
+ };
20
+ },
21
+ runInvoicingApprovalActionFailure(draft, action) {
22
+ draft.byApprovalId[action.payload.approvalId] = {
23
+ fetchState: 'Error',
24
+ error: action.payload.error,
25
+ };
26
+ },
27
+ clearInvoicingApprovalAction(draft, action) {
28
+ delete draft.byApprovalId[action.payload];
29
+ },
30
+ clearAllInvoicingApprovalActions(draft) {
31
+ draft.byApprovalId = {};
32
+ },
33
+ },
34
+ });
35
+ export const { runInvoicingApprovalAction, runInvoicingApprovalActionSuccess, runInvoicingApprovalActionFailure, clearInvoicingApprovalAction, clearAllInvoicingApprovalActions, } = approvalAction.actions;
36
+ export default approvalAction.reducer;
@@ -0,0 +1,5 @@
1
+ const NOT_STARTED = {
2
+ fetchState: 'Not-Started',
3
+ error: undefined,
4
+ };
5
+ export const getInvoicingApprovalActionState = (approvalId) => (state) => state.invoicingApprovalActionState.byApprovalId[approvalId] ?? NOT_STARTED;
@@ -0,0 +1,37 @@
1
+ import { of } from 'rxjs';
2
+ import { catchError, filter, switchMap } from 'rxjs/operators';
3
+ import { createZeniAPIStatus, isSuccessResponse, } from '../../../responsePayload';
4
+ import { INVOICING_LIST_PAGE_SIZE, applyListSortParams, invoicingBaseUrl, withQuery, } from '../invoicingApiHelper';
5
+ import { fetchInvoicingApprovals, updateInvoicingApprovals, updateInvoicingApprovalsFailure, } from './approvalsViewReducer';
6
+ const buildQuery = (filters, cursor, sort) => {
7
+ const params = new URLSearchParams();
8
+ if (filters.search != null && filters.search.length > 0) {
9
+ params.set('search', filters.search);
10
+ }
11
+ if (filters.status != null && filters.status.length > 0) {
12
+ params.set('status', filters.status);
13
+ }
14
+ params.set('limit', String(INVOICING_LIST_PAGE_SIZE));
15
+ if (cursor != null) {
16
+ params.set('cursor', cursor);
17
+ }
18
+ applyListSortParams(params, sort);
19
+ return params;
20
+ };
21
+ export const fetchInvoicingApprovalsEpic = (actions$, _state$, zeniAPI) => actions$.pipe(filter(fetchInvoicingApprovals.match), switchMap((action) => {
22
+ const { filters, cursor, keepExistingListItems, sort } = action.payload;
23
+ const apiUrl = withQuery(`${invoicingBaseUrl(zeniAPI)}/approvals`, buildQuery(filters, cursor, sort));
24
+ return zeniAPI
25
+ .getJSON(apiUrl)
26
+ .pipe(switchMap((response) => {
27
+ if (isSuccessResponse(response)) {
28
+ return of(updateInvoicingApprovals({
29
+ items: response.data?.items ?? [],
30
+ nextCursor: response.data?.next_cursor ?? null,
31
+ keepExistingListItems,
32
+ }));
33
+ }
34
+ return of(updateInvoicingApprovalsFailure(response.status));
35
+ }), catchError((error) => of(updateInvoicingApprovalsFailure(createZeniAPIStatus('Unexpected Error', 'Fetch approvals REST API call errored out ' +
36
+ JSON.stringify(error))))));
37
+ }));
@@ -0,0 +1,62 @@
1
+ import { createSlice } from '@reduxjs/toolkit';
2
+ export const initialState = {
3
+ fetchState: 'Not-Started',
4
+ error: undefined,
5
+ items: [],
6
+ nextCursor: null,
7
+ filters: {},
8
+ hasValidState() {
9
+ return this.fetchState === 'Completed';
10
+ },
11
+ };
12
+ const approvalsView = createSlice({
13
+ name: 'invoicingApprovalsView',
14
+ initialState,
15
+ reducers: {
16
+ fetchInvoicingApprovals: {
17
+ reducer(draft, action) {
18
+ if (!action.payload.keepExistingListItems) {
19
+ draft.items = [];
20
+ draft.nextCursor = null;
21
+ }
22
+ draft.filters = action.payload.filters;
23
+ draft.sort = action.payload.sort;
24
+ draft.fetchState = 'In-Progress';
25
+ draft.error = undefined;
26
+ },
27
+ prepare(payload) {
28
+ return {
29
+ payload: {
30
+ filters: payload.filters ?? {},
31
+ cursor: payload.cursor,
32
+ keepExistingListItems: payload.keepExistingListItems ?? false,
33
+ sort: payload.sort,
34
+ },
35
+ };
36
+ },
37
+ },
38
+ updateInvoicingApprovals(draft, action) {
39
+ draft.items = action.payload.keepExistingListItems
40
+ ? [...draft.items, ...action.payload.items]
41
+ : action.payload.items;
42
+ draft.nextCursor = action.payload.nextCursor;
43
+ draft.fetchState = 'Completed';
44
+ draft.error = undefined;
45
+ },
46
+ updateInvoicingApprovalsFailure(draft, action) {
47
+ draft.fetchState = 'Error';
48
+ draft.error = action.payload;
49
+ },
50
+ upsertInvoicingApproval(draft, action) {
51
+ const index = draft.items.findIndex((item) => item.id === action.payload.id);
52
+ if (index >= 0) {
53
+ draft.items[index] = action.payload;
54
+ }
55
+ },
56
+ clearInvoicingApprovalsView(draft) {
57
+ Object.assign(draft, initialState);
58
+ },
59
+ },
60
+ });
61
+ export const { fetchInvoicingApprovals, updateInvoicingApprovals, updateInvoicingApprovalsFailure, upsertInvoicingApproval, clearInvoicingApprovalsView, } = approvalsView.actions;
62
+ export default approvalsView.reducer;
@@ -0,0 +1,8 @@
1
+ export const getInvoicingApprovals = (state) => state.invoicingApprovalsViewState.items;
2
+ export const getInvoicingApprovalsFetchState = (state) => ({
3
+ fetchState: state.invoicingApprovalsViewState.fetchState,
4
+ error: state.invoicingApprovalsViewState.error,
5
+ });
6
+ export const getInvoicingApprovalsNextCursor = (state) => state.invoicingApprovalsViewState.nextCursor;
7
+ export const getInvoicingApprovalsHasMore = (state) => state.invoicingApprovalsViewState.nextCursor != null;
8
+ export const getInvoicingApprovalsFilters = (state) => state.invoicingApprovalsViewState.filters;