@zeniai/client-epic-state 5.1.92 → 5.1.93

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 (145) hide show
  1. package/lib/entity/aiCfo/aiCfoPayload.d.ts +0 -7
  2. package/lib/entity/aiCfo/aiCfoReducer.d.ts +2 -3
  3. package/lib/entity/aiCfo/aiCfoReducer.js +2 -25
  4. package/lib/entity/aiCfo/aiCfoState.d.ts +0 -7
  5. package/lib/entity/company/companyPayload.d.ts +0 -4
  6. package/lib/entity/company/companyPayload.js +8 -18
  7. package/lib/entity/company/companyStateTypes.d.ts +0 -4
  8. package/lib/entity/customerSatisfaction/customerSatisfactionReducer.d.ts +1 -1
  9. package/lib/entity/customerSatisfaction/customerSatisfactionReducer.js +2 -6
  10. package/lib/entity/snackbar/snackbarTypes.d.ts +1 -1
  11. package/lib/entity/snackbar/snackbarTypes.js +0 -31
  12. package/lib/entity/tenant/tenantReducer.d.ts +1 -5
  13. package/lib/entity/tenant/tenantReducer.js +2 -21
  14. package/lib/epic.d.ts +1 -3
  15. package/lib/epic.js +1 -5
  16. package/lib/esm/entity/aiCfo/aiCfoReducer.js +1 -23
  17. package/lib/esm/entity/company/companyPayload.js +8 -18
  18. package/lib/esm/entity/customerSatisfaction/customerSatisfactionReducer.js +1 -4
  19. package/lib/esm/entity/snackbar/snackbarTypes.js +0 -31
  20. package/lib/esm/entity/tenant/tenantReducer.js +1 -20
  21. package/lib/esm/epic.js +1 -5
  22. package/lib/esm/index.js +8 -9
  23. package/lib/esm/view/companyHealthMetricView/companyHealthMetricConfigReducer.js +1 -4
  24. package/lib/esm/view/companyView/companyViewReducer.js +1 -58
  25. package/lib/esm/view/companyView/selector/companyManagementViewSelector.js +0 -52
  26. package/lib/esm/view/companyView/types/cockpitTypes.js +1 -13
  27. package/lib/esm/view/companyView/types/companyManagementViewState.js +0 -2
  28. package/lib/esm/view/invoicing/createCreditNote/createCreditNoteEpic.js +4 -26
  29. package/lib/esm/view/invoicing/createInvoice/createInvoiceEpic.js +4 -26
  30. package/lib/esm/view/invoicing/createInvoice/createInvoiceSelector.js +10 -37
  31. package/lib/esm/view/invoicing/discountAction/discountActionEpic.js +10 -37
  32. package/lib/esm/view/invoicing/dunningAction/dunningActionEpic.js +10 -39
  33. package/lib/esm/view/invoicing/editInvoicingCatalogItemDetailView/catalogDetailEditPayload.js +1 -5
  34. package/lib/esm/view/invoicing/editInvoicingCatalogItemDetailView/editInvoicingCatalogItemDetailViewPayload.js +4 -5
  35. package/lib/esm/view/invoicing/editInvoicingCatalogItemDetailView/saveInvoicingCatalogItemEpic.js +5 -35
  36. package/lib/esm/view/invoicing/editInvoicingCouponDetailView/saveInvoicingCouponEpic.js +3 -25
  37. package/lib/esm/view/invoicing/editInvoicingCustomerDetailView/saveInvoicingCustomerEpic.js +4 -26
  38. package/lib/esm/view/invoicing/editInvoicingSubscriptionDetailView/saveInvoicingSubscriptionEpic.js +4 -26
  39. package/lib/esm/view/invoicing/editInvoicingSubscriptionDetailView/syncInvoicingSubscriptionCouponsEpic.js +3 -20
  40. package/lib/esm/view/invoicing/invoiceAction/invoiceActionEpic.js +18 -65
  41. package/lib/esm/view/invoicing/invoicingConfigView/invoicingConfigViewReducer.js +0 -30
  42. package/lib/esm/view/invoicing/invoicingConfigView/invoicingConfigViewSelector.js +29 -4
  43. package/lib/esm/view/invoicing/invoicingDunningCaseDetailView/invoicingDunningCaseDetailViewPayload.js +1 -9
  44. package/lib/esm/view/invoicing/invoicingDunningCaseDetailView/invoicingDunningCaseDetailViewReducer.js +1 -50
  45. package/lib/esm/view/invoicing/invoicingDunningCaseDetailView/invoicingDunningCaseDetailViewSelector.js +1 -14
  46. package/lib/esm/view/invoicing/invoicingQboView/epics/retryInvoicingQboSyncTaskEpic.js +10 -31
  47. package/lib/esm/view/invoicing/invoicingQboView/epics/startInvoicingQboBackfillEpic.js +5 -30
  48. package/lib/esm/view/invoicing/issueCreditNote/issueCreditNoteEpic.js +4 -26
  49. package/lib/esm/view/invoicing/issueCreditNote/issueCreditNoteSelector.js +14 -22
  50. package/lib/esm/view/invoicing/recordPayment/recordPaymentEpic.js +7 -49
  51. package/lib/esm/view/invoicing/settingsView/settingsViewEpics.js +9 -30
  52. package/lib/esm/view/invoicing/settingsView/settingsViewReducer.js +1 -1
  53. package/lib/esm/view/invoicing/settingsView/settingsViewSelector.js +1 -56
  54. package/lib/esm/view/invoicing/subscriptionAction/subscriptionActionEpic.js +10 -45
  55. package/lib/esm/view/vendorFiling1099/vendorFiling1099UploadDetails/vendorFiling1099UploadDetailsReducer.js +1 -4
  56. package/lib/esm/view/vendorTabView/vendorTabViewReducer.js +1 -4
  57. package/lib/index.d.ts +13 -17
  58. package/lib/index.js +50 -62
  59. package/lib/view/companyHealthMetricView/companyHealthMetricConfigReducer.d.ts +1 -1
  60. package/lib/view/companyHealthMetricView/companyHealthMetricConfigReducer.js +2 -5
  61. package/lib/view/companyView/companyViewReducer.d.ts +1 -22
  62. package/lib/view/companyView/companyViewReducer.js +3 -60
  63. package/lib/view/companyView/selector/companyManagementViewSelector.d.ts +0 -3
  64. package/lib/view/companyView/selector/companyManagementViewSelector.js +0 -55
  65. package/lib/view/companyView/types/cockpitTypes.d.ts +3 -7
  66. package/lib/view/companyView/types/cockpitTypes.js +1 -15
  67. package/lib/view/companyView/types/companyManagementViewState.d.ts +0 -2
  68. package/lib/view/companyView/types/companyManagementViewState.js +0 -2
  69. package/lib/view/expenseAutomationView/helpers/transactionCategorizationLocalDataHelper.d.ts +1 -1
  70. package/lib/view/invoicing/createCreditNote/createCreditNoteEpic.d.ts +1 -2
  71. package/lib/view/invoicing/createCreditNote/createCreditNoteEpic.js +3 -25
  72. package/lib/view/invoicing/createInvoice/createInvoiceEpic.d.ts +1 -2
  73. package/lib/view/invoicing/createInvoice/createInvoiceEpic.js +3 -25
  74. package/lib/view/invoicing/createInvoice/createInvoiceSelector.d.ts +8 -22
  75. package/lib/view/invoicing/createInvoice/createInvoiceSelector.js +10 -37
  76. package/lib/view/invoicing/discountAction/discountActionEpic.d.ts +1 -2
  77. package/lib/view/invoicing/discountAction/discountActionEpic.js +8 -35
  78. package/lib/view/invoicing/dunningAction/dunningActionEpic.d.ts +1 -2
  79. package/lib/view/invoicing/dunningAction/dunningActionEpic.js +8 -37
  80. package/lib/view/invoicing/editInvoicingCatalogItemDetailView/catalogDetailEditPayload.d.ts +1 -3
  81. package/lib/view/invoicing/editInvoicingCatalogItemDetailView/catalogDetailEditPayload.js +1 -5
  82. package/lib/view/invoicing/editInvoicingCatalogItemDetailView/editInvoicingCatalogItemDetailViewPayload.js +4 -5
  83. package/lib/view/invoicing/editInvoicingCatalogItemDetailView/saveInvoicingCatalogItemEpic.d.ts +1 -2
  84. package/lib/view/invoicing/editInvoicingCatalogItemDetailView/saveInvoicingCatalogItemEpic.js +4 -34
  85. package/lib/view/invoicing/editInvoicingCouponDetailView/saveInvoicingCouponEpic.d.ts +1 -2
  86. package/lib/view/invoicing/editInvoicingCouponDetailView/saveInvoicingCouponEpic.js +2 -24
  87. package/lib/view/invoicing/editInvoicingCustomerDetailView/saveInvoicingCustomerEpic.d.ts +1 -2
  88. package/lib/view/invoicing/editInvoicingCustomerDetailView/saveInvoicingCustomerEpic.js +3 -25
  89. package/lib/view/invoicing/editInvoicingSubscriptionDetailView/saveInvoicingSubscriptionEpic.d.ts +1 -2
  90. package/lib/view/invoicing/editInvoicingSubscriptionDetailView/saveInvoicingSubscriptionEpic.js +3 -25
  91. package/lib/view/invoicing/editInvoicingSubscriptionDetailView/syncInvoicingSubscriptionCouponsEpic.d.ts +1 -2
  92. package/lib/view/invoicing/editInvoicingSubscriptionDetailView/syncInvoicingSubscriptionCouponsEpic.js +2 -19
  93. package/lib/view/invoicing/invoiceAction/invoiceActionEpic.d.ts +1 -2
  94. package/lib/view/invoicing/invoiceAction/invoiceActionEpic.js +16 -63
  95. package/lib/view/invoicing/invoicingConfigView/invoicingConfigViewPayload.d.ts +0 -13
  96. package/lib/view/invoicing/invoicingConfigView/invoicingConfigViewReducer.d.ts +1 -1
  97. package/lib/view/invoicing/invoicingConfigView/invoicingConfigViewReducer.js +0 -30
  98. package/lib/view/invoicing/invoicingConfigView/invoicingConfigViewSelector.d.ts +31 -11
  99. package/lib/view/invoicing/invoicingConfigView/invoicingConfigViewSelector.js +29 -4
  100. package/lib/view/invoicing/invoicingConfigView/invoicingConfigViewState.d.ts +0 -15
  101. package/lib/view/invoicing/invoicingDunningCaseDetailView/invoicingDunningCaseDetailViewEpics.d.ts +2 -2
  102. package/lib/view/invoicing/invoicingDunningCaseDetailView/invoicingDunningCaseDetailViewPayload.d.ts +0 -12
  103. package/lib/view/invoicing/invoicingDunningCaseDetailView/invoicingDunningCaseDetailViewPayload.js +0 -11
  104. package/lib/view/invoicing/invoicingDunningCaseDetailView/invoicingDunningCaseDetailViewReducer.d.ts +4 -21
  105. package/lib/view/invoicing/invoicingDunningCaseDetailView/invoicingDunningCaseDetailViewReducer.js +2 -51
  106. package/lib/view/invoicing/invoicingDunningCaseDetailView/invoicingDunningCaseDetailViewSelector.d.ts +0 -3
  107. package/lib/view/invoicing/invoicingDunningCaseDetailView/invoicingDunningCaseDetailViewSelector.js +2 -16
  108. package/lib/view/invoicing/invoicingDunningCaseDetailView/invoicingDunningCaseDetailViewState.d.ts +0 -13
  109. package/lib/view/invoicing/invoicingQboView/epics/invoicingQboViewActionType.d.ts +1 -2
  110. package/lib/view/invoicing/invoicingQboView/epics/retryInvoicingQboSyncTaskEpic.js +9 -30
  111. package/lib/view/invoicing/invoicingQboView/epics/startInvoicingQboBackfillEpic.js +4 -29
  112. package/lib/view/invoicing/issueCreditNote/issueCreditNoteEpic.d.ts +1 -2
  113. package/lib/view/invoicing/issueCreditNote/issueCreditNoteEpic.js +3 -25
  114. package/lib/view/invoicing/issueCreditNote/issueCreditNoteSelector.d.ts +7 -24
  115. package/lib/view/invoicing/issueCreditNote/issueCreditNoteSelector.js +16 -23
  116. package/lib/view/invoicing/recordPayment/recordPaymentEpic.d.ts +1 -2
  117. package/lib/view/invoicing/recordPayment/recordPaymentEpic.js +6 -48
  118. package/lib/view/invoicing/settingsView/settingsViewEpics.d.ts +1 -2
  119. package/lib/view/invoicing/settingsView/settingsViewEpics.js +7 -28
  120. package/lib/view/invoicing/settingsView/settingsViewReducer.d.ts +1 -10
  121. package/lib/view/invoicing/settingsView/settingsViewReducer.js +1 -1
  122. package/lib/view/invoicing/settingsView/settingsViewSelector.d.ts +2 -44
  123. package/lib/view/invoicing/settingsView/settingsViewSelector.js +2 -59
  124. package/lib/view/invoicing/subscriptionAction/subscriptionActionEpic.d.ts +1 -2
  125. package/lib/view/invoicing/subscriptionAction/subscriptionActionEpic.js +8 -43
  126. package/lib/view/vendorFiling1099/vendorFiling1099UploadDetails/vendorFiling1099UploadDetailsReducer.d.ts +1 -1
  127. package/lib/view/vendorFiling1099/vendorFiling1099UploadDetails/vendorFiling1099UploadDetailsReducer.js +2 -5
  128. package/lib/view/vendorTabView/vendorTabViewReducer.d.ts +1 -1
  129. package/lib/view/vendorTabView/vendorTabViewReducer.js +2 -5
  130. package/package.json +2 -2
  131. package/lib/entity/snackbar/snackbarApiError.d.ts +0 -8
  132. package/lib/entity/snackbar/snackbarApiError.js +0 -15
  133. package/lib/esm/entity/snackbar/snackbarApiError.js +0 -11
  134. package/lib/esm/view/companyView/epic/updateCompanyProductServicesEpic.js +0 -91
  135. package/lib/esm/view/companyView/epic/updateCompanyQboRealmIdEpic.js +0 -58
  136. package/lib/esm/view/invoicing/invoicingDunningCaseDetailView/fetchInvoicingDunningEmailPreviewEpic.js +0 -26
  137. package/lib/esm/view/invoicing/invoicingDunningCaseDetailView/fetchInvoicingDunningEmailPreviewPageEpic.js +0 -16
  138. package/lib/view/companyView/epic/updateCompanyProductServicesEpic.d.ts +0 -10
  139. package/lib/view/companyView/epic/updateCompanyProductServicesEpic.js +0 -95
  140. package/lib/view/companyView/epic/updateCompanyQboRealmIdEpic.d.ts +0 -8
  141. package/lib/view/companyView/epic/updateCompanyQboRealmIdEpic.js +0 -62
  142. package/lib/view/invoicing/invoicingDunningCaseDetailView/fetchInvoicingDunningEmailPreviewEpic.d.ts +0 -7
  143. package/lib/view/invoicing/invoicingDunningCaseDetailView/fetchInvoicingDunningEmailPreviewEpic.js +0 -30
  144. package/lib/view/invoicing/invoicingDunningCaseDetailView/fetchInvoicingDunningEmailPreviewPageEpic.d.ts +0 -6
  145. package/lib/view/invoicing/invoicingDunningCaseDetailView/fetchInvoicingDunningEmailPreviewPageEpic.js +0 -20
@@ -1,7 +1,5 @@
1
- import { from } from 'rxjs';
1
+ import { of } from 'rxjs';
2
2
  import { catchError, filter, mergeMap, switchMap } from 'rxjs/operators';
3
- import { apiErrorSnackbarVariables } from '../../../../entity/snackbar/snackbarApiError';
4
- import { openSnackbar } from '../../../../entity/snackbar/snackbarReducer';
5
3
  import { createZeniAPIStatus, isSuccessResponse, } from '../../../../responsePayload';
6
4
  import { fetchInvoicingQboSyncHealth, startInvoicingQboBackfill, startInvoicingQboBackfillFailure, startInvoicingQboBackfillSuccess, } from '../invoicingQboViewReducer';
7
5
  export const startInvoicingQboBackfillEpic = (actions$, _state$, zeniAPI) => actions$.pipe(filter(startInvoicingQboBackfill.match), switchMap((action) => {
@@ -12,32 +10,9 @@ export const startInvoicingQboBackfillEpic = (actions$, _state$, zeniAPI) => act
12
10
  })
13
11
  .pipe(mergeMap((response) => {
14
12
  if (isSuccessResponse(response)) {
15
- return from([
16
- startInvoicingQboBackfillSuccess(),
17
- fetchInvoicingQboSyncHealth(),
18
- openSnackbar({
19
- messageSection: 'invoicing_qbo_backfill',
20
- messageText: 'success',
21
- type: 'success',
22
- }),
23
- ]);
13
+ return of(startInvoicingQboBackfillSuccess(), fetchInvoicingQboSyncHealth());
24
14
  }
25
- return from([
26
- startInvoicingQboBackfillFailure(response.status),
27
- openSnackbar({
28
- messageSection: 'invoicing_qbo_backfill',
29
- messageText: 'failed',
30
- type: 'error',
31
- variables: apiErrorSnackbarVariables(response.status),
32
- }),
33
- ]);
34
- }), catchError((error) => from([
35
- startInvoicingQboBackfillFailure(createZeniAPIStatus('Unexpected Error', 'Start QBO backfill REST API call errored out ' +
36
- JSON.stringify(error))),
37
- openSnackbar({
38
- messageSection: 'invoicing_qbo_backfill',
39
- messageText: 'failed',
40
- type: 'error',
41
- }),
42
- ])));
15
+ return of(startInvoicingQboBackfillFailure(response.status));
16
+ }), catchError((error) => of(startInvoicingQboBackfillFailure(createZeniAPIStatus('Unexpected Error', 'Start QBO backfill REST API call errored out ' +
17
+ JSON.stringify(error))))));
43
18
  }));
@@ -1,8 +1,6 @@
1
- import { from } from 'rxjs';
1
+ import { of } from 'rxjs';
2
2
  import { catchError, filter, mergeMap } from 'rxjs/operators';
3
3
  import { updateInvoicingCreditNotes } from '../../../entity/invoicing/creditNote/creditNoteReducer';
4
- import { apiErrorSnackbarVariables } from '../../../entity/snackbar/snackbarApiError';
5
- import { openSnackbar } from '../../../entity/snackbar/snackbarReducer';
6
4
  import { createZeniAPIStatus, isSuccessResponse } from '../../../responsePayload';
7
5
  import { fetchInvoiceDetail } from '../invoiceDetail/invoiceDetailReducer';
8
6
  import { localDataToIssueCreditNotePayload, } from './issueCreditNotePayload';
@@ -20,29 +18,9 @@ export const issueCreditNoteEpic = (actions$, state$, zeniAPI) => actions$.pipe(
20
18
  updateInvoicingCreditNotes([response.data], 'merge'),
21
19
  fetchInvoiceDetail({ invoiceId }),
22
20
  issueCreditNoteSuccess({ creditNoteId: response.data.id }),
23
- openSnackbar({
24
- messageSection: 'invoicing_credit_note_saved',
25
- messageText: 'success',
26
- type: 'success',
27
- }),
28
21
  ];
29
22
  }
30
- return from([
31
- issueCreditNoteFailure(response.status),
32
- openSnackbar({
33
- messageSection: 'invoicing_credit_note_saved',
34
- messageText: 'failed',
35
- type: 'error',
36
- variables: apiErrorSnackbarVariables(response.status),
37
- }),
38
- ]);
39
- }), catchError((error) => from([
40
- issueCreditNoteFailure(createZeniAPIStatus('Unexpected Error', 'Issue credit note REST API call errored out ' +
41
- JSON.stringify(error))),
42
- openSnackbar({
43
- messageSection: 'invoicing_credit_note_saved',
44
- messageText: 'failed',
45
- type: 'error',
46
- }),
47
- ])));
23
+ return of(issueCreditNoteFailure(response.status));
24
+ }), catchError((error) => of(issueCreditNoteFailure(createZeniAPIStatus('Unexpected Error', 'Issue credit note REST API call errored out ' +
25
+ JSON.stringify(error))))));
48
26
  }));
@@ -1,28 +1,20 @@
1
- import { getInvoiceDetail } from '../invoiceDetail/invoiceDetailSelector';
2
- import { INVOICING_CREDIT_NOTE_REASON_CODES, initialIssueCreditNoteFormLocalData, } from './issueCreditNoteFormConfig';
3
- /**
4
- * The draft is a single global slice, so a draft seeded for a previously opened
5
- * invoice can still be in state when another invoice's screen mounts. Anything
6
- * that would render that stale draft next to this invoice is dropped until the
7
- * screen re-seeds it for `invoiceId`.
8
- */
9
- export const getIssueCreditNoteView = (state, invoiceId) => {
10
- const invoiceView = getInvoiceDetail(state, invoiceId);
11
- const { draft, error, fetchState, issuedCreditNoteId } = state.invoicingIssueCreditNoteState;
12
- const isDraftForInvoice = draft.invoiceId === invoiceId;
1
+ import { INVOICING_CREDIT_NOTE_REASON_CODES } from './issueCreditNoteFormConfig';
2
+ export const getIssueCreditNoteView = (state) => {
3
+ const { error, fetchState, issuedCreditNoteId } = state.invoicingIssueCreditNoteState;
13
4
  return {
14
- invoice: invoiceView.invoice,
15
- isPageReady: invoiceView.fetchState === 'Completed' &&
16
- isDraftForInvoice &&
17
- draft.lineItems.length > 0,
5
+ error,
6
+ fetchState,
18
7
  issuedCreditNoteId,
19
- localData: isDraftForInvoice
20
- ? draft
21
- : initialIssueCreditNoteFormLocalData(invoiceId),
8
+ version: 1.0,
9
+ };
10
+ };
11
+ export const getIssueCreditNoteFormView = (state) => {
12
+ const { draft, error, fetchState } = state.invoicingIssueCreditNoteState;
13
+ return {
14
+ localData: draft,
22
15
  reasonCodeValues: [...INVOICING_CREDIT_NOTE_REASON_CODES],
23
- submitState: { error, fetchState },
24
- error: invoiceView.error,
25
- fetchState: invoiceView.fetchState,
16
+ error,
17
+ fetchState,
26
18
  version: 1.0,
27
19
  };
28
20
  };
@@ -1,9 +1,7 @@
1
- import { from } from 'rxjs';
1
+ import { of } from 'rxjs';
2
2
  import { catchError, filter, mergeMap } from 'rxjs/operators';
3
3
  import { updateInvoices } from '../../../entity/invoicing/invoice/invoiceReducer';
4
4
  import { updateInvoicingTransactions } from '../../../entity/invoicing/invoicingTransaction/invoicingTransactionReducer';
5
- import { apiErrorSnackbarVariables } from '../../../entity/snackbar/snackbarApiError';
6
- import { openSnackbar } from '../../../entity/snackbar/snackbarReducer';
7
5
  import { createZeniAPIStatus, isSuccessResponse } from '../../../responsePayload';
8
6
  import { fetchInvoiceDetail } from '../invoiceDetail/invoiceDetailReducer';
9
7
  import { addInvoicingTransactionToList } from '../invoicingTransactionListView/invoicingTransactionListViewReducer';
@@ -28,31 +26,11 @@ export const recordPaymentEpic = (actions$, state$, zeniAPI) => actions$.pipe(fi
28
26
  updateInvoices([response.data], 'merge'),
29
27
  fetchInvoiceDetail({ invoiceId }),
30
28
  recordPaymentSuccess({ invoiceId }),
31
- openSnackbar({
32
- messageSection: 'invoicing_payment_recorded',
33
- messageText: 'success',
34
- type: 'success',
35
- }),
36
29
  ];
37
30
  }
38
- return from([
39
- recordPaymentFailure(response.status),
40
- openSnackbar({
41
- messageSection: 'invoicing_payment_recorded',
42
- messageText: 'failed',
43
- type: 'error',
44
- variables: apiErrorSnackbarVariables(response.status),
45
- }),
46
- ]);
47
- }), catchError((error) => from([
48
- recordPaymentFailure(createZeniAPIStatus('Unexpected Error', 'Record payment REST API call errored out ' +
49
- JSON.stringify(error))),
50
- openSnackbar({
51
- messageSection: 'invoicing_payment_recorded',
52
- messageText: 'failed',
53
- type: 'error',
54
- }),
55
- ])));
31
+ return of(recordPaymentFailure(response.status));
32
+ }), catchError((error) => of(recordPaymentFailure(createZeniAPIStatus('Unexpected Error', 'Record payment REST API call errored out ' +
33
+ JSON.stringify(error))))));
56
34
  }
57
35
  const apiUrl = `${zeniAPI.apiEndPoints.invoicingMicroServiceBaseUrl}/1.0/payments`;
58
36
  const data = localDataToRecordPaymentPayload(draft);
@@ -71,29 +49,9 @@ export const recordPaymentEpic = (actions$, state$, zeniAPI) => actions$.pipe(fi
71
49
  if (linkedInvoiceId != null) {
72
50
  successActions.push(fetchInvoiceDetail({ invoiceId: linkedInvoiceId }));
73
51
  }
74
- successActions.push(openSnackbar({
75
- messageSection: 'invoicing_payment_recorded',
76
- messageText: 'success',
77
- type: 'success',
78
- }));
79
52
  return successActions;
80
53
  }
81
- return from([
82
- recordPaymentFailure(response.status),
83
- openSnackbar({
84
- messageSection: 'invoicing_payment_recorded',
85
- messageText: 'failed',
86
- type: 'error',
87
- variables: apiErrorSnackbarVariables(response.status),
88
- }),
89
- ]);
90
- }), catchError((error) => from([
91
- recordPaymentFailure(createZeniAPIStatus('Unexpected Error', 'Record payment REST API call errored out ' +
92
- JSON.stringify(error))),
93
- openSnackbar({
94
- messageSection: 'invoicing_payment_recorded',
95
- messageText: 'failed',
96
- type: 'error',
97
- }),
98
- ])));
54
+ return of(recordPaymentFailure(response.status));
55
+ }), catchError((error) => of(recordPaymentFailure(createZeniAPIStatus('Unexpected Error', 'Record payment REST API call errored out ' +
56
+ JSON.stringify(error))))));
99
57
  }));
@@ -1,9 +1,7 @@
1
- import { from, of } from 'rxjs';
1
+ import { of } from 'rxjs';
2
2
  import { catchError, filter, mergeMap, switchMap } from 'rxjs/operators';
3
3
  import { updateAddresses } from '../../../entity/address/addressReducer';
4
- import { apiErrorSnackbarVariables } from '../../../entity/snackbar/snackbarApiError';
5
- import { openSnackbar } from '../../../entity/snackbar/snackbarReducer';
6
- import { createZeniAPIStatus, isSuccessResponse, } from '../../../responsePayload';
4
+ import { createZeniAPIStatus, isSuccessResponse } from '../../../responsePayload';
7
5
  import { connectInvoicingStripe, disconnectInvoicingStripe, fetchInvoicingSettings, invoicingStripeConnectionFailure, saveInvoicingSettings, saveInvoicingSettingsFailure, saveInvoicingSettingsSuccess, updateInvoicingSettings, updateInvoicingSettingsFailure, updateInvoicingStripeConnection, } from './settingsViewReducer';
8
6
  export const fetchInvoicingSettingsEpic = (actions$, _state$, zeniAPI) => actions$.pipe(filter(fetchInvoicingSettings.match), switchMap(() => {
9
7
  const apiUrl = `${zeniAPI.apiEndPoints.invoicingMicroServiceBaseUrl}/1.0/settings`;
@@ -59,34 +57,15 @@ export const disconnectInvoicingStripeEpic = (actions$, _state$, zeniAPI) => act
59
57
  }));
60
58
  export const saveInvoicingSettingsEpic = (actions$, _state$, zeniAPI) => actions$.pipe(filter(saveInvoicingSettings.match), mergeMap((action) => {
61
59
  const apiUrl = `${zeniAPI.apiEndPoints.invoicingMicroServiceBaseUrl}/1.0/settings`;
62
- const { settings, snackbarSection } = action.payload;
63
- /** `status` surfaces the platform's error text; omit it to keep the generic copy. */
64
- const snackbar = (messageText, status) => snackbarSection == null
65
- ? []
66
- : [
67
- openSnackbar({
68
- messageSection: snackbarSection,
69
- messageText,
70
- type: messageText === 'success' ? 'success' : 'error',
71
- variables: apiErrorSnackbarVariables(status),
72
- }),
73
- ];
74
60
  return zeniAPI
75
- .putAndGetJSON(apiUrl, { ...settings })
61
+ .putAndGetJSON(apiUrl, {
62
+ ...action.payload,
63
+ })
76
64
  .pipe(switchMap((response) => {
77
65
  if (isSuccessResponse(response) && response.data != null) {
78
- return from([
79
- saveInvoicingSettingsSuccess(response.data),
80
- ...snackbar('success'),
81
- ]);
66
+ return of(saveInvoicingSettingsSuccess(response.data));
82
67
  }
83
- return from([
84
- saveInvoicingSettingsFailure(response.status),
85
- ...snackbar('failed', response.status),
86
- ]);
87
- }), catchError((error) => from([
88
- saveInvoicingSettingsFailure(createZeniAPIStatus('Unexpected Error', 'Save settings REST API call errored out ' +
89
- JSON.stringify(error))),
90
- ...snackbar('failed'),
91
- ])));
68
+ return of(saveInvoicingSettingsFailure(response.status));
69
+ }), catchError((error) => of(saveInvoicingSettingsFailure(createZeniAPIStatus('Unexpected Error', 'Save settings REST API call errored out ' +
70
+ JSON.stringify(error))))));
92
71
  }));
@@ -30,7 +30,7 @@ const settingsView = createSlice({
30
30
  saveInvoicingSettings(draft, action) {
31
31
  draft.saveFetchState = { fetchState: 'In-Progress', error: undefined };
32
32
  if (draft.settings != null) {
33
- draft.settings = { ...draft.settings, ...action.payload.settings };
33
+ draft.settings = { ...draft.settings, ...action.payload };
34
34
  }
35
35
  },
36
36
  saveInvoicingSettingsSuccess(draft, action) {
@@ -1,6 +1,4 @@
1
- import { getInvoicingQboAccountMappingId, } from '../../../entity/invoicing/invoicingCommonPayload';
2
1
  import { getFormattedAddress } from '../../addressView/addressViewSelector';
3
- import { getInvoicingConfigView } from '../invoicingConfigView/invoicingConfigViewSelector';
4
2
  import { INVOICING_BUSINESS_ADDRESS_TYPE, entityToInvoicingBrandingFormLocalData, } from './invoicingBrandingFormConfig';
5
3
  /**
6
4
  * Shared primitive: the raw invoicing settings. Consumed internally by other
@@ -31,63 +29,11 @@ export const getInvoicingSettingsView = (state) => {
31
29
  stripeConnectState: stripeFetchState,
32
30
  };
33
31
  };
34
- /**
35
- * Gates the Enable Invoicing action: payments must be able to land (Stripe
36
- * connected *and* accepting charges) and the QBO accounting step must be
37
- * finished, so an enabled tenant can always book what it invoices.
38
- *
39
- * Deliberately not part of `deriveInvoicingOnboardingStatus`, which routes the
40
- * module off the config flags alone. Folding these in there would (a) demote a
41
- * live tenant to the settings tree the moment an integration broke, stranding
42
- * its existing invoices, and (b) deadlock the route gate, which fetches only the
43
- * config — never the settings or QBO connection these read.
44
- */
45
- export function deriveInvoicingEnablePrerequisites(settings, isQboConnected, qboAccountMappingKindOptions) {
46
- const isStripeConnected = settings?.stripe_connected === true &&
47
- settings?.stripe_account?.charges_enabled === true;
48
- const accountMappings = settings?.qbo?.account_mappings ?? undefined;
49
- // An empty option list means the config has not landed yet — treating that as
50
- // configured would let `every` pass vacuously and unlock the button early.
51
- const isQboConfigured = isQboConnected &&
52
- qboAccountMappingKindOptions.length > 0 &&
53
- qboAccountMappingKindOptions.every((option) => getInvoicingQboAccountMappingId(accountMappings, option.code) != null);
54
- return {
55
- canEnable: isStripeConnected && isQboConfigured,
56
- isQboConfigured,
57
- isStripeConnected,
58
- };
59
- }
60
- /**
61
- * The settings hub's composite of everything it derives from the store: whether
62
- * to offer Enable Invoicing at all, the in-flight flag for that action, and the
63
- * two integration prerequisites kept separate so the hub can name the step still
64
- * outstanding instead of showing a dead button.
65
- *
66
- * `canEnableInvoicing` folds in the onboarding step, so the screen does not need
67
- * to re-check it: the footer is only offered mid-onboarding and only once both
68
- * integrations are ready.
69
- *
70
- * Deliberately not folded into `getInvoicingConfigView`: that selector gates
71
- * every invoicing route and stays a pure read of the config slice. The settings
72
- * and QBO slices read here are only fetched once a settings screen is mounted.
73
- */
74
- export const getInvoicingSettingsHubView = (state) => {
75
- const { enableState, qboAccountMappingKindOptions, status } = getInvoicingConfigView(state);
76
- const { canEnable, isQboConfigured, isStripeConnected } = deriveInvoicingEnablePrerequisites(state.invoicingSettingsViewState.settings, state.invoicingQboViewState.connection?.connected === true, qboAccountMappingKindOptions);
77
- return {
78
- canEnableInvoicing: status === 'settings' && canEnable,
79
- isEnablingInvoicing: enableState.fetchState === 'In-Progress',
80
- isQboConfigured,
81
- isStripeConnected,
82
- status,
83
- };
84
- };
85
32
  /**
86
33
  * Bundled view for the branding settings form: the draft `localData` (seeded
87
34
  * from the existing settings until the user edits), the business-address label
88
35
  * (from the shared Address screen, seeded on load from `address_id`), the raw
89
- * settings (for the logo/preview), the backend date-format choices and the
90
- * save fetch state.
36
+ * settings (for the logo/preview) and the save fetch state.
91
37
  */
92
38
  export const getInvoicingBrandingFormView = (state) => {
93
39
  const { brandingDraft, saveFetchState, settings } = state.invoicingSettingsViewState;
@@ -97,7 +43,6 @@ export const getInvoicingBrandingFormView = (state) => {
97
43
  : undefined;
98
44
  return {
99
45
  addressLabel,
100
- dateFormatOptions: getInvoicingConfigView(state).dateFormatOptions,
101
46
  localData: brandingDraft ?? entityToInvoicingBrandingFormLocalData(settings),
102
47
  saveState: saveFetchState,
103
48
  settings,
@@ -1,41 +1,13 @@
1
- import { from } from 'rxjs';
1
+ import { of } from 'rxjs';
2
2
  import { catchError, filter, mergeMap } from 'rxjs/operators';
3
3
  import { updateAddresses } from '../../../entity/address/addressReducer';
4
4
  import { extractInvoicingSubscriptionAddresses } from '../../../entity/invoicing/invoicingSubscription/invoicingSubscriptionPayload';
5
5
  import { updateInvoicingSubscriptions } from '../../../entity/invoicing/invoicingSubscription/invoicingSubscriptionReducer';
6
- import { apiErrorSnackbarVariables } from '../../../entity/snackbar/snackbarApiError';
7
- import { openSnackbar } from '../../../entity/snackbar/snackbarReducer';
8
- import { createZeniAPIStatus, isSuccessResponse, } from '../../../responsePayload';
6
+ import { createZeniAPIStatus, isSuccessResponse } from '../../../responsePayload';
9
7
  import { runInvoicingSubscriptionAction, runInvoicingSubscriptionActionFailure, runInvoicingSubscriptionActionSuccess, } from './subscriptionActionReducer';
10
- /**
11
- * Each lifecycle action reports with its own copy. Keyed loosely because the
12
- * action payload carries a plain `string`; an unmapped kind stays silent.
13
- */
14
- const SNACKBAR_SECTION_BY_ACTION = {
15
- activate: 'invoicing_subscription_activated',
16
- cancel: 'invoicing_subscription_cancelled',
17
- change_term_end: 'invoicing_subscription_term_end_changed',
18
- pause: 'invoicing_subscription_paused',
19
- reactivate: 'invoicing_subscription_reactivated',
20
- remove_scheduled_cancellation: 'invoicing_subscription_cancellation_removed',
21
- resume: 'invoicing_subscription_resumed',
22
- set_non_renewing: 'invoicing_subscription_non_renewing',
23
- };
24
8
  export const runInvoicingSubscriptionActionEpic = (actions$, _state$, zeniAPI) => actions$.pipe(filter(runInvoicingSubscriptionAction.match), mergeMap((action) => {
25
9
  const { action: kind, body, id } = action.payload;
26
10
  const requestBody = { action: kind, ...(body ?? {}) };
27
- const snackbarSection = SNACKBAR_SECTION_BY_ACTION[kind];
28
- /** `status` surfaces the platform's error text; omit it to keep the generic copy. */
29
- const snackbar = (messageText, status) => snackbarSection == null
30
- ? []
31
- : [
32
- openSnackbar({
33
- messageSection: snackbarSection,
34
- messageText,
35
- type: messageText === 'success' ? 'success' : 'error',
36
- variables: apiErrorSnackbarVariables(status),
37
- }),
38
- ];
39
11
  const apiUrl = `${zeniAPI.apiEndPoints.invoicingMicroServiceBaseUrl}/1.0/subscriptions/${encodeURIComponent(id)}/actions`;
40
12
  return zeniAPI
41
13
  .postAndGetJSON(apiUrl, requestBody)
@@ -45,22 +17,15 @@ export const runInvoicingSubscriptionActionEpic = (actions$, _state$, zeniAPI) =
45
17
  updateInvoicingSubscriptions([response.data], 'merge'),
46
18
  updateAddresses(extractInvoicingSubscriptionAddresses([response.data])),
47
19
  runInvoicingSubscriptionActionSuccess({ id }),
48
- ...snackbar('success'),
49
20
  ];
50
21
  }
51
- return from([
52
- runInvoicingSubscriptionActionFailure({
53
- error: response.status,
54
- id,
55
- }),
56
- ...snackbar('failed', response.status),
57
- ]);
58
- }), catchError((error) => from([
59
- runInvoicingSubscriptionActionFailure({
60
- error: createZeniAPIStatus('Unexpected Error', 'Subscription action REST API call errored out ' +
61
- JSON.stringify(error)),
22
+ return of(runInvoicingSubscriptionActionFailure({
23
+ error: response.status,
62
24
  id,
63
- }),
64
- ...snackbar('failed'),
65
- ])));
25
+ }));
26
+ }), catchError((error) => of(runInvoicingSubscriptionActionFailure({
27
+ error: createZeniAPIStatus('Unexpected Error', 'Subscription action REST API call errored out ' +
28
+ JSON.stringify(error)),
29
+ id,
30
+ }))));
66
31
  }));
@@ -206,13 +206,10 @@ const vendorFiling1099UploadDetails = createSlice({
206
206
  address: action.payload.ocrData.address != null,
207
207
  };
208
208
  },
209
- clearVendorFiling1099UploadDetails() {
210
- return initialState;
211
- },
212
209
  },
213
210
  extraReducers: (builder) => {
214
211
  builder.addCase(clearAll, () => initialState);
215
212
  },
216
213
  });
217
- export const { clearVendorFiling1099UploadDetails, updateW9FormUploadFile, updateW9FormUploadFetchState, vendorFiling1099UploadDetailsSave, vendorFiling1099UploadDetailsResetLocalData, vendorFiling1099UploadDetailsSuccessOrFailure, initializeVendorFiling1099UploadDetailsLocalState, updateVendor1099DetailsLocalData, updateW9FormOCRDataToLocalData, vendorFiling1099UploadDetailsResetFormStatus, } = vendorFiling1099UploadDetails.actions;
214
+ export const { updateW9FormUploadFile, updateW9FormUploadFetchState, vendorFiling1099UploadDetailsSave, vendorFiling1099UploadDetailsResetLocalData, vendorFiling1099UploadDetailsSuccessOrFailure, initializeVendorFiling1099UploadDetailsLocalState, updateVendor1099DetailsLocalData, updateW9FormOCRDataToLocalData, vendorFiling1099UploadDetailsResetFormStatus, } = vendorFiling1099UploadDetails.actions;
218
215
  export default vendorFiling1099UploadDetails.reducer;
@@ -43,9 +43,6 @@ const vendorTabView = createSlice({
43
43
  draft.currentTab = action.payload.tab;
44
44
  },
45
45
  },
46
- clearVendorTabView(draft) {
47
- Object.assign(draft, initialState);
48
- },
49
46
  },
50
47
  extraReducers: (builder) => {
51
48
  builder.addCase(clearAll, (draft) => {
@@ -53,5 +50,5 @@ const vendorTabView = createSlice({
53
50
  });
54
51
  },
55
52
  });
56
- export const { clearVendorTabView, fetchVendorTabView, updateVendorTabViewTab } = vendorTabView.actions;
53
+ export const { fetchVendorTabView, updateVendorTabViewTab } = vendorTabView.actions;
57
54
  export default vendorTabView.reducer;
package/lib/index.d.ts CHANGED
@@ -137,7 +137,7 @@ import { getTaskGroupById } from './entity/taskGroup/taskGroupSelector';
137
137
  import { TaskGroupState } from './entity/taskGroup/taskGroupState';
138
138
  import { TaskGroupTemplate } from './entity/taskGroupTemplate/taskGroupTemplateState';
139
139
  import { DoSignInPayload, deleteConnection, doMagicLinkSignIn, doSignIn, doSignOut, fetchActiveTenant, fetchAllTenants, fetchExcludedResources as fetchExcludedResourcesForTenant, fetchExternalConnections as fetchExternalConnectionsForTenant, fetchSubscriptionSummaryForTenant, initEmailConnectOAuth, resendVerifyDeviceOTP, resetSignInState, saveAPIKeyConnection, saveConnectorCredentials, saveExternalConnection as saveExternalConnectionForTenant, saveOAuthConnection, sendEmailMagicLinkToUser, sendSessionHeartbeat, toExternalIntegrationType, toExternalSupportedTool, updateCurrentTenant, updateSignInState, verifyDeviceWithTwoFA } from './entity/tenant/tenantReducer';
140
- import { CurrentTenant, DEFAULT_RECEIPTS_EMAIL, TenantBaseView, TenantCoreDetailsView, TenantView, TenantsBaseOrdered, TenantsOrdered, getCurrentTenant, getIsAccountingClassesEnabled, getIsAccountingProjectsEnabled, getReceiptsEmail, getTenantBaseById, getTenantBaseViewForTenantId, getTenantBaseViewForTenantView, getTenantsBaseByCheckInDateSelector, getTenantsByCheckInDateSelector, getTenantsCoreDetailsByCheckInDateSelector, isOtherProductsEnabledForTenant, isTenantBankingOnly, isTenantBookkeepingEnabled, isTenantCardsOnly, isTenantUsingZeniCOA, isZeniDomainTenant, toTenantCoreDetailsView } from './entity/tenant/tenantSelector';
140
+ import { CurrentTenant, TenantBaseView, TenantCoreDetailsView, TenantView, TenantsBaseOrdered, TenantsOrdered, DEFAULT_RECEIPTS_EMAIL, getCurrentTenant, getIsAccountingClassesEnabled, getIsAccountingProjectsEnabled, getReceiptsEmail, getTenantBaseById, getTenantBaseViewForTenantId, getTenantBaseViewForTenantView, getTenantsBaseByCheckInDateSelector, getTenantsByCheckInDateSelector, getTenantsCoreDetailsByCheckInDateSelector, isOtherProductsEnabledForTenant, isTenantBankingOnly, isTenantBookkeepingEnabled, isTenantCardsOnly, isTenantUsingZeniCOA, isZeniDomainTenant, toTenantCoreDetailsView } from './entity/tenant/tenantSelector';
141
141
  import { CapitalizableAccount, CapitalizableAccounts, CapitalizableClassificationType, CapitalizableMatchPattern, Connection, LoggedInUser, RoleResource, Tenant, TenantProductSettings } from './entity/tenant/tenantState';
142
142
  import { ToastNotificationPayload } from './entity/toastNotification/toastNotificationPayload';
143
143
  import { pushToastNotification } from './entity/toastNotification/toastNotificationReducer';
@@ -252,10 +252,10 @@ import { AuditSummaryData, CompanyMonthEndReportData, CompanyMonthReportTemplate
252
252
  import { fetchCockpitContext, fetchCompanyTaskManagerView, fetchTaskManagerMetrics, updateCompanyTaskManagerViewFilters } from './view/companyTaskManagerView/companyTaskManagerViewReducer';
253
253
  import { CompanyTaskManagerSelectorView, TaskWithCompanyDetail, getCompanyTaskManagerView } from './view/companyTaskManagerView/companyTaskManagerViewSelector';
254
254
  import { CompanyTaskManagerViewUIState, TaskManagerMetrics } from './view/companyTaskManagerView/companyTaskManagerViewState';
255
- import { CompanyProductServicesInput, clearCompanyView, clearQboProjectsReconnectRequest, companyManagementSaveUpdates, companyPassportClearDataInLocalStore, companyPassportSaveDataInLocalStore, deleteCompanyOfficerInLocalStore, disableAccountingProjects, dismissCapitalizationOnboarding, enableAccountingProjects, fetchAllCockpitViews, fetchCompanyManagementView, fetchCompanyPassportView, fetchCompanyPortfolioView, fetchManagementView, fetchOnboardingView, fetchParentSubsidiaryManagementView, fetchPortfolioView, fetchSubscriptionView, fetchZeniUsers, resumeEnableAccountingProjects, saveCompanyPassportDetails, saveIndustryAndIncDateInCompanyPassportLocalStore, updateAccountingClassesEnabled, updateCapitalizationAccountThreshold, updateCompanyDownloadState, updateCompanyManagementUIState, updateCompanyPassportLocalStoreData, updateCompanyPortfolioUIState, updateCompanyProductServices, updateCompanyQboRealmId } from './view/companyView/companyViewReducer';
255
+ import { clearCompanyView, clearQboProjectsReconnectRequest, companyManagementSaveUpdates, companyPassportClearDataInLocalStore, companyPassportSaveDataInLocalStore, deleteCompanyOfficerInLocalStore, disableAccountingProjects, dismissCapitalizationOnboarding, enableAccountingProjects, fetchAllCockpitViews, fetchCompanyManagementView, fetchCompanyPassportView, fetchCompanyPortfolioView, fetchManagementView, fetchOnboardingView, fetchParentSubsidiaryManagementView, fetchPortfolioView, fetchSubscriptionView, fetchZeniUsers, resumeEnableAccountingProjects, saveCompanyPassportDetails, saveIndustryAndIncDateInCompanyPassportLocalStore, updateAccountingClassesEnabled, updateCapitalizationAccountThreshold, updateCompanyDownloadState, updateCompanyManagementUIState, updateCompanyPassportLocalStoreData, updateCompanyPortfolioUIState } from './view/companyView/companyViewReducer';
256
256
  import { FilterCategoryValueType, canSendMonthEndEmailReport, shouldEnableCalendarPickerForLastReportSent } from './view/companyView/helpers/cockpitHelpers';
257
257
  import { getParentSubsidiaryManagementView } from './view/companyView/parentSubsidiaryView/parentSubsidiaryViewSelector';
258
- import { CompanyManagementView, CompanyWithUpdateStatusView, getAddonListZeniSku, getCompanyManagementView, getCompanyProductServicesUpdateStatus, getCompanyQboRealmIdUpdateStatus, getPlanListZeniSku } from './view/companyView/selector/companyManagementViewSelector';
258
+ import { CompanyManagementView, CompanyWithUpdateStatusView, getAddonListZeniSku, getCompanyManagementView, getPlanListZeniSku } from './view/companyView/selector/companyManagementViewSelector';
259
259
  import { CompanyPassportLocalStoreDataView, CompanyPassportView, getCompanyPassportLocalStoreData, getCompanyPassportView, isCompanyPassportDataToBeSaved } from './view/companyView/selector/companyPassportViewSelector';
260
260
  import { CompanyPortfolioView, getCompanyPortfolioView, isInfiniteRunway } from './view/companyView/selector/companyPortfolioViewSelector';
261
261
  import { AllCockpitTabsView, getAllCockpitTabsFilterView } from './view/companyView/selector/getAllCockpitTabsFilterView';
@@ -666,8 +666,6 @@ export { scheduleTenantCreditScoreCron, fetchCreditAgentMacro, saveCreditAgentMa
666
666
  export { toCardTenantProfileRow, toMacro, } from './entity/creditAgent/creditAgentPayload';
667
667
  export { getCreditAgentView, getCreditAgentEntity, getCreditAgentMacro, getCardProfilesData, } from './view/creditAgentView/creditAgentViewSelector';
668
668
  export { getCreditReportDownloadPayload } from './view/creditAgentView/buildCreditReportCsv';
669
- export { ALL_PRODUCT_VERTICALS, toProductVertical, toProductVerticalStrict, } from './view/companyView/types/cockpitTypes';
670
- export type { ProductVertical } from './view/companyView/types/cockpitTypes';
671
669
  export { clearAllCreditAgent, updateCreditAgentMacro, updateCreditAgentRow, updateCreditAgentRows, } from './entity/creditAgent/creditAgentReducer';
672
670
  export { getCreditAgentRows, getCreditAgentMacroEntity, } from './entity/creditAgent/creditAgentSelector';
673
671
  export type { CardTenantProfileRow, CardStatus, CreditAgentEntityState, CreditAgentMacro, } from './entity/creditAgent/creditAgentState';
@@ -812,7 +810,7 @@ export { CockpitFilterCategory, CockpitFilters, DownloadCockpitTabOptions, Filte
812
810
  export { CockpitDownloadTabsID, CockpitTabsFileType, CockpitTabsID, ALL_COCKPIT_TABS_FILE_TYPES, ALL_COCKPIT_TABS_IDS, toCockpitTabsIDStrict, toCockpitTabsFileTypeStrict, };
813
811
  export { AllowedValueWithCode, AllowedValue, AllowedValueWithID, isAllowedValueWithCode, isAllowedValueWithID, };
814
812
  export { ManagementUIState, PortfolioUIState };
815
- export { fetchCompanyPassportView, CompanyPassportView, getCompanyPassportView, getCompanyPassportLocalStoreData, isCompanyPassportDataToBeSaved, companyPassportSaveDataInLocalStore, saveIndustryAndIncDateInCompanyPassportLocalStore, deleteCompanyOfficerInLocalStore, companyPassportClearDataInLocalStore, updateCompanyPassportLocalStoreData, saveCompanyPassportDetails, updateAccountingClassesEnabled, enableAccountingProjects, resumeEnableAccountingProjects, disableAccountingProjects, clearQboProjectsReconnectRequest, updateCompanyProductServices, CompanyProductServicesInput, getCompanyProductServicesUpdateStatus, updateCompanyQboRealmId, getCompanyQboRealmIdUpdateStatus, updateCapitalizationAccountThreshold, dismissCapitalizationOnboarding, clearCompanyView, UpdateActionType, CompanyPassportLocalStoreDataView, };
813
+ export { fetchCompanyPassportView, CompanyPassportView, getCompanyPassportView, getCompanyPassportLocalStoreData, isCompanyPassportDataToBeSaved, companyPassportSaveDataInLocalStore, saveIndustryAndIncDateInCompanyPassportLocalStore, deleteCompanyOfficerInLocalStore, companyPassportClearDataInLocalStore, updateCompanyPassportLocalStoreData, saveCompanyPassportDetails, updateAccountingClassesEnabled, enableAccountingProjects, resumeEnableAccountingProjects, disableAccountingProjects, clearQboProjectsReconnectRequest, updateCapitalizationAccountThreshold, dismissCapitalizationOnboarding, clearCompanyView, UpdateActionType, CompanyPassportLocalStoreDataView, };
816
814
  export { CompanyInfoLocalData, IncInfoLocalData, TaxDetailsLocalData, CompanyDetailsLocalData, PrimaryContactLocalData, CompanyOfficerLocalData, CompanyOfficerType, CompanyPassportLocalData, toCompanyPassportLocalData, };
817
815
  export type { CompanyOnboardingIndustryTypeCode, CompanyOnboardingSubIndustryTypeCode, CompanyPurposeOfAccountCode, CompanySourceOfFundsCode, CompanyTransactionVolumeCode, CompanyUsNexusTypeCode, };
818
816
  export { COMPANY_ONBOARDING_INDUSTRY_TYPE_CODES, COMPANY_ONBOARDING_SUB_INDUSTRY_CODES_BY_INDUSTRY, COMPANY_PURPOSE_OF_ACCOUNT_CODES, COMPANY_SOURCE_OF_FUNDS_CODES, COMPANY_TRANSACTION_VOLUME_CODES, COMPANY_US_NEXUS_TYPE_CODES, getCompanyOnboardingSubIndustryCodesForIndustry, };
@@ -952,9 +950,9 @@ export type { FeedbackType, SubmitFeedbackPayload, } from './view/aiCfoView/aiCf
952
950
  export type { AiCfoSuggestedQuestionsPageContext } from './common/aiCfo/aiCfoSuggestedQuestionsPageContext';
953
951
  export { AiCfoViewSelector, getAiCfoView, getSuggestedQuestionsForPageContext, getSkills, } from './view/aiCfoView/aiCfoViewSelector';
954
952
  export { MessagePayload, ChatSessionPayload, AiCfoAnswerPayload, } from './entity/aiCfo/aiCfoPayload';
955
- export { setNewSession, setSessions, updateAiCfoAnswerCardPolicyWizardPlan, upsertAnswerPayload, upsertOrAddQuestionAnswerPayload, addQuestionPayload, clearSession, clearAiCfo, toAiCfoExports, toAiCfoVisualization, appendSyntheticAiCfoAnswer, updateSyntheticAiCfoAnswer, removeSyntheticAiCfoAnswer, clearSyntheticAiCfoAnswers, } from './entity/aiCfo/aiCfoReducer';
953
+ export { setNewSession, setSessions, updateAiCfoAnswerCardPolicyWizardPlan, upsertAnswerPayload, upsertOrAddQuestionAnswerPayload, addQuestionPayload, clearSession, clearAiCfo, toAiCfoVisualization, appendSyntheticAiCfoAnswer, updateSyntheticAiCfoAnswer, removeSyntheticAiCfoAnswer, clearSyntheticAiCfoAnswers, } from './entity/aiCfo/aiCfoReducer';
956
954
  export { AiCfoSelectorView, getAllQuestionAnswersForChatSession, getQuestionAnswerByIdForChatSession, getAllQuestionsForChatSession, getAiCfoSelectorView, getSyntheticAiCfoAnswersForChatSession, getSyntheticAiCfoAnswerByQuestionAnswerId, ChatSessionWithOrderedQuestionAnswers, } from './entity/aiCfo/aiCfoSelector';
957
- export { AiCfoQuestionWithAnswer, AiCfoAnswerParagraph, AiCfoAnswerStateType, AiCfoChartType, AiCfoAnswerResponseType, TableVisualization, ChartVisualization, CardNameOption, CardsCardKind, CardsCreationInitialData, CardPolicyDraftPolicy, CardPolicyDraftPolicyEntity, CardPolicyInitialData, CardPolicySpendLimits, CardPolicyStep5Review, CardPolicyUploadSource, CardPolicyWizardPlan, InteractiveFormType, InteractiveFormVisualization, AiCfoExport, AiCfoVisualization, AiCfoVisualizationType, AiCfoState, ChatSession, ALL_AI_CFO_CHARTS_TYPES, ALL_AI_CFO_VISUALIZATION_TYPES, ALL_AI_CFO_ANSWER_STATE_TYPES, ALL_AI_CFO_ANSWER_RESPONSE_TYPES, ALL_INTERACTIVE_FORM_TYPES, toAiCfoVisualizationType, toAiCfoVisualizationTypeStrict, toAiCfoChartType, toAiCfoChartTypeStrict, toAiCfoAnswerStateType, toAiCfoAnswerStateTypeStrict, toAiCfoAnswerResponseType, toAiCfoAnswerResponseTypeStrict, toInteractiveFormType, toInteractiveFormTypeStrict, ChatSessionWithMessages, ResponseBlockBase, AnswerContentBlockBase, FileAttachmentMetadata, QuestionContentBlockBase, ResponseBlockType, SyntheticAiCfoAnswer, SyntheticAiCfoAnswerKind, ALL_SYNTHETIC_AI_CFO_ANSWER_KINDS, toMessageSender, toMessageType, MessageSender, MessageType, } from './entity/aiCfo/aiCfoState';
955
+ export { AiCfoQuestionWithAnswer, AiCfoAnswerParagraph, AiCfoAnswerStateType, AiCfoChartType, AiCfoAnswerResponseType, TableVisualization, ChartVisualization, CardNameOption, CardsCardKind, CardsCreationInitialData, CardPolicyDraftPolicy, CardPolicyDraftPolicyEntity, CardPolicyInitialData, CardPolicySpendLimits, CardPolicyStep5Review, CardPolicyUploadSource, CardPolicyWizardPlan, InteractiveFormType, InteractiveFormVisualization, AiCfoVisualization, AiCfoVisualizationType, AiCfoState, ChatSession, ALL_AI_CFO_CHARTS_TYPES, ALL_AI_CFO_VISUALIZATION_TYPES, ALL_AI_CFO_ANSWER_STATE_TYPES, ALL_AI_CFO_ANSWER_RESPONSE_TYPES, ALL_INTERACTIVE_FORM_TYPES, toAiCfoVisualizationType, toAiCfoVisualizationTypeStrict, toAiCfoChartType, toAiCfoChartTypeStrict, toAiCfoAnswerStateType, toAiCfoAnswerStateTypeStrict, toAiCfoAnswerResponseType, toAiCfoAnswerResponseTypeStrict, toInteractiveFormType, toInteractiveFormTypeStrict, ChatSessionWithMessages, ResponseBlockBase, AnswerContentBlockBase, FileAttachmentMetadata, QuestionContentBlockBase, ResponseBlockType, SyntheticAiCfoAnswer, SyntheticAiCfoAnswerKind, ALL_SYNTHETIC_AI_CFO_ANSWER_KINDS, toMessageSender, toMessageType, MessageSender, MessageType, } from './entity/aiCfo/aiCfoState';
958
956
  export { clearPolicyDocumentExtraction, extractPolicyDocument, fetchCardPolicyMccCategories, fetchCardPolicyRecommendationFromUpload, fetchCardPolicyVendorOptions, removeCardPolicyTemplate, updateCardPolicyMccCategories, updateCardPolicyMccCategoriesFailure, updateCardPolicyStats, updateCardPolicyTemplates, updateCardPolicyVendorOptions, updateCardPolicyVendorOptionsFailure, updateCreatedCardPolicyTemplate, updatePolicyDocumentExtractionFailure, updatePolicyDocumentExtractionSuccess, updatePolicyRecommendationFromUploadFailure, updatePolicyRecommendationFromUploadSuccess, clearCardPolicy, } from './entity/cardPolicy/cardPolicyReducer';
959
957
  export { getAllCardPolicyTemplates, getCardPolicyMccCategories, getCardPolicyMccCategoriesError, getCardPolicyMccCategoriesFetchState, getCardPolicyStats, getCardPolicySuggestedAllowCategories, getCardPolicySuggestedAllowMerchants, getCardPolicySuggestedBlockCategories, getCardPolicySuggestedBlockMerchants, getCardPolicyTemplateById, getCardPolicyTemplatesByIds, getCardPolicyVendorSearchFetchState, getCardPolicyVendorSearchOptions, getCardPolicyVendorSearchString, getExtractedCardPolicyRules, getPolicyDocumentExtractionError, getPolicyDocumentExtractionFetchState, getPolicyRecommendationFromUploadAnswerId, getPolicyRecommendationFromUploadChatSessionId, getPolicyRecommendationFromUploadError, getPolicyRecommendationFromUploadFetchState, getUploadedPolicyDocumentFileName, } from './entity/cardPolicy/cardPolicySelector';
960
958
  export { ALL_CARD_POLICY_TEMPLATE_MODES, ALL_CARD_POLICY_TEMPLATE_STATUSES, CardPolicyState, CardPolicyStats, CardPolicyTemplate, CardPolicyTemplateEntityList, CardPolicyTemplateMode, CardPolicyTemplateSpendLimits, CardPolicyTemplateStatus, CardPolicyVendorSearchEntry, CardPolicyVendorSearchState, ExtractedCardPolicyRules, MccCategory, PolicyDocumentExtractionState, PolicyRecommendationFromUploadState, toCardPolicyTemplateMode, toCardPolicyTemplateStatus, } from './entity/cardPolicy/cardPolicyState';
@@ -1053,8 +1051,8 @@ export { computeIssueCreditNoteTotal, initializeIssueCreditNoteDraftFromInvoice,
1053
1051
  export type { IssueCreditNoteFormLocalData, IssueCreditNoteLineItemDraft, } from './view/invoicing/issueCreditNote/issueCreditNoteState';
1054
1052
  export { INVOICING_CREDIT_NOTE_REASON_CODES, initialIssueCreditNoteFormLocalData, } from './view/invoicing/issueCreditNote/issueCreditNoteFormConfig';
1055
1053
  export type { InvoicingCreditNoteReasonCode } from './view/invoicing/issueCreditNote/issueCreditNoteFormConfig';
1056
- export { getIssueCreditNoteView } from './view/invoicing/issueCreditNote/issueCreditNoteSelector';
1057
- export type { IssueCreditNoteView } from './view/invoicing/issueCreditNote/issueCreditNoteSelector';
1054
+ export { getIssueCreditNoteFormView, getIssueCreditNoteView, } from './view/invoicing/issueCreditNote/issueCreditNoteSelector';
1055
+ export type { IssueCreditNoteFormView, InvoicingIssueCreditNoteView, } from './view/invoicing/issueCreditNote/issueCreditNoteSelector';
1058
1056
  export { createCreditNoteFailure, createCreditNoteSuccess, resetCreateCreditNote, submitCreateCreditNote, updateCreateCreditNoteFormDraft, } from './view/invoicing/createCreditNote/createCreditNoteReducer';
1059
1057
  export { localDataToCreateCreditNotePayload } from './view/invoicing/createCreditNote/createCreditNotePayload';
1060
1058
  export type { CreateCreditNoteFormLocalData, CreateCreditNoteLineItemDraft, } from './view/invoicing/createCreditNote/createCreditNoteState';
@@ -1074,7 +1072,7 @@ export type { InvoicingAuditFilters } from './view/invoicing/auditView/auditView
1074
1072
  export { getInvoicingAuditView } from './view/invoicing/auditView/auditViewSelector';
1075
1073
  export type { InvoicingAuditView } from './view/invoicing/auditView/auditViewSelector';
1076
1074
  export { getCreateInvoiceFormView } from './view/invoicing/createInvoice/createInvoiceSelector';
1077
- export type { CreateInvoiceFormView, InvoicingCreateInvoiceCustomerOption, InvoicingPlanNameOption, } from './view/invoicing/createInvoice/createInvoiceSelector';
1075
+ export type { CreateInvoiceFormView } from './view/invoicing/createInvoice/createInvoiceSelector';
1078
1076
  export { getRecordPaymentFormView, getRecordPaymentInvoiceOptions, getRecordPaymentView, } from './view/invoicing/recordPayment/recordPaymentSelector';
1079
1077
  export type { InvoicingRecordPaymentView, RecordPaymentFormView, RecordPaymentInvoiceOption, } from './view/invoicing/recordPayment/recordPaymentSelector';
1080
1078
  export { initializeInvoicingCustomerAddress, resetEditInvoicingCustomerDetailView, submitInvoicingCustomerForm, submitInvoicingCustomerFormFailure, submitInvoicingCustomerFormSuccess, updateInvoicingCustomerFormDraft, } from './view/invoicing/editInvoicingCustomerDetailView/editInvoicingCustomerDetailViewReducer';
@@ -1122,7 +1120,6 @@ export { getInvoicingSubscriptionActionState } from './view/invoicing/subscripti
1122
1120
  export { clearInvoicingDunningAction, runInvoicingDunningAction, } from './view/invoicing/dunningAction/dunningActionReducer';
1123
1121
  export type { InvoicingDunningActionState } from './view/invoicing/dunningAction/dunningActionState';
1124
1122
  export type { RunInvoicingDunningActionPayload } from './view/invoicing/dunningAction/dunningActionReducer';
1125
- export type { SaveInvoicingSettingsPayload } from './view/invoicing/settingsView/settingsViewReducer';
1126
1123
  export { getInvoicingDunningActionState } from './view/invoicing/dunningAction/dunningActionSelector';
1127
1124
  export { clearInvoicingPaymentAction, runInvoicingPaymentAction, } from './view/invoicing/paymentAction/paymentActionReducer';
1128
1125
  export type { InvoicingPaymentActionState } from './view/invoicing/paymentAction/paymentActionState';
@@ -1193,10 +1190,9 @@ export { ALL_INVOICING_DUNNING_CASE_SORT_KEYS, ALL_INVOICING_DUNNING_CASE_TAB_ID
1193
1190
  export type { InvoicingDunningCaseColumnConfig, InvoicingDunningCaseFilters, InvoicingDunningCaseSortKey, InvoicingDunningCaseTabId, } from './view/invoicing/invoicingDunningCaseListView/invoicingDunningCaseListViewState';
1194
1191
  export { getInvoicingDunningCaseListView } from './view/invoicing/invoicingDunningCaseListView/invoicingDunningCaseListViewSelector';
1195
1192
  export type { InvoicingDunningCaseListView } from './view/invoicing/invoicingDunningCaseListView/invoicingDunningCaseListViewSelector';
1196
- export { clearInvoicingDunningCaseDetailView, fetchInvoicingDunningCaseDetail, fetchInvoicingDunningEmailPreviewPage, invalidateInvoicingDunningEmailPreview, } from './view/invoicing/invoicingDunningCaseDetailView/invoicingDunningCaseDetailViewReducer';
1197
- export { getInvoicingDunningCaseById, getInvoicingDunningCaseDetail, getInvoicingDunningEmailPreview, } from './view/invoicing/invoicingDunningCaseDetailView/invoicingDunningCaseDetailViewSelector';
1193
+ export { clearInvoicingDunningCaseDetailView, fetchInvoicingDunningCaseDetail, } from './view/invoicing/invoicingDunningCaseDetailView/invoicingDunningCaseDetailViewReducer';
1194
+ export { getInvoicingDunningCaseById, getInvoicingDunningCaseDetail, } from './view/invoicing/invoicingDunningCaseDetailView/invoicingDunningCaseDetailViewSelector';
1198
1195
  export type { InvoicingDunningCaseDetailView } from './view/invoicing/invoicingDunningCaseDetailView/invoicingDunningCaseDetailViewSelector';
1199
- export type { InvoicingDunningEmailPreview, InvoicingDunningEmailPreviewState, } from './view/invoicing/invoicingDunningCaseDetailView/invoicingDunningCaseDetailViewState';
1200
1196
  export { clearAllInvoicingPlans, mergeInvoicingPlanSubFamily, removeInvoicingPlan, updateInvoicingPlans, } from './entity/invoicing/plan/planReducer';
1201
1197
  export { clearAllInvoicingProducts, removeInvoicingProduct, updateInvoicingProducts, } from './entity/invoicing/product/productReducer';
1202
1198
  export { clearInvoicingCatalogListView, fetchInvoicingCatalogCounts, fetchInvoicingCatalogListPage, fetchInvoicingCatalogPlanList, fetchInvoicingCatalogProductList, updateInvoicingCatalogPlanFilters, updateInvoicingCatalogProductFilters, } from './view/invoicing/invoicingCatalogListView/invoicingCatalogListViewReducer';
@@ -1211,8 +1207,8 @@ export { getInvoicingPlanById } from './entity/invoicing/plan/planSelector';
1211
1207
  export { getInvoicingProductById } from './entity/invoicing/product/productSelector';
1212
1208
  export type { InvoicingCatalogItemDetailView } from './view/invoicing/invoicingCatalogItemDetailView/invoicingCatalogItemDetailViewSelector';
1213
1209
  export { clearInvoicingSettings, connectInvoicingStripe, disconnectInvoicingStripe, fetchInvoicingSettings, resetInvoicingBrandingFormDraft, resetSaveInvoicingSettings, saveInvoicingSettings, submitInvoicingBrandingForm, updateInvoicingBrandingFormDraft, updateInvoicingSettings, } from './view/invoicing/settingsView/settingsViewReducer';
1214
- export { getInvoicingBrandingFormView, getInvoicingSettings, getInvoicingSettingsFetchState, getInvoicingSettingsHubView, getInvoicingSettingsView, } from './view/invoicing/settingsView/settingsViewSelector';
1215
- export type { InvoicingBrandingFormView, InvoicingSettingsHubView, InvoicingSettingsView, } from './view/invoicing/settingsView/settingsViewSelector';
1210
+ export { getInvoicingBrandingFormView, getInvoicingSettings, getInvoicingSettingsFetchState, getInvoicingSettingsView, } from './view/invoicing/settingsView/settingsViewSelector';
1211
+ export type { InvoicingBrandingFormView, InvoicingSettingsView, } from './view/invoicing/settingsView/settingsViewSelector';
1216
1212
  export type { InvoicingBrandingFormLocalData } from './view/invoicing/settingsView/invoicingBrandingFormConfig';
1217
1213
  export { INVOICING_BUSINESS_ADDRESS_TYPE, entityToInvoicingBrandingFormLocalData, initialInvoicingBrandingFormLocalData, } from './view/invoicing/settingsView/invoicingBrandingFormConfig';
1218
1214
  export { isStripeConnectedFromSettings } from './view/invoicing/settingsView/invoicingSettingsHelpers';