@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.
- package/lib/entity/aiCfo/aiCfoPayload.d.ts +0 -7
- package/lib/entity/aiCfo/aiCfoReducer.d.ts +2 -3
- package/lib/entity/aiCfo/aiCfoReducer.js +2 -25
- package/lib/entity/aiCfo/aiCfoState.d.ts +0 -7
- package/lib/entity/company/companyPayload.d.ts +0 -4
- package/lib/entity/company/companyPayload.js +8 -18
- package/lib/entity/company/companyStateTypes.d.ts +0 -4
- package/lib/entity/customerSatisfaction/customerSatisfactionReducer.d.ts +1 -1
- package/lib/entity/customerSatisfaction/customerSatisfactionReducer.js +2 -6
- package/lib/entity/snackbar/snackbarTypes.d.ts +1 -1
- package/lib/entity/snackbar/snackbarTypes.js +0 -31
- package/lib/entity/tenant/tenantReducer.d.ts +1 -5
- package/lib/entity/tenant/tenantReducer.js +2 -21
- package/lib/epic.d.ts +1 -3
- package/lib/epic.js +1 -5
- package/lib/esm/entity/aiCfo/aiCfoReducer.js +1 -23
- package/lib/esm/entity/company/companyPayload.js +8 -18
- package/lib/esm/entity/customerSatisfaction/customerSatisfactionReducer.js +1 -4
- package/lib/esm/entity/snackbar/snackbarTypes.js +0 -31
- package/lib/esm/entity/tenant/tenantReducer.js +1 -20
- package/lib/esm/epic.js +1 -5
- package/lib/esm/index.js +8 -9
- package/lib/esm/view/companyHealthMetricView/companyHealthMetricConfigReducer.js +1 -4
- package/lib/esm/view/companyView/companyViewReducer.js +1 -58
- package/lib/esm/view/companyView/selector/companyManagementViewSelector.js +0 -52
- package/lib/esm/view/companyView/types/cockpitTypes.js +1 -13
- package/lib/esm/view/companyView/types/companyManagementViewState.js +0 -2
- package/lib/esm/view/invoicing/createCreditNote/createCreditNoteEpic.js +4 -26
- package/lib/esm/view/invoicing/createInvoice/createInvoiceEpic.js +4 -26
- package/lib/esm/view/invoicing/createInvoice/createInvoiceSelector.js +10 -37
- package/lib/esm/view/invoicing/discountAction/discountActionEpic.js +10 -37
- package/lib/esm/view/invoicing/dunningAction/dunningActionEpic.js +10 -39
- package/lib/esm/view/invoicing/editInvoicingCatalogItemDetailView/catalogDetailEditPayload.js +1 -5
- package/lib/esm/view/invoicing/editInvoicingCatalogItemDetailView/editInvoicingCatalogItemDetailViewPayload.js +4 -5
- package/lib/esm/view/invoicing/editInvoicingCatalogItemDetailView/saveInvoicingCatalogItemEpic.js +5 -35
- package/lib/esm/view/invoicing/editInvoicingCouponDetailView/saveInvoicingCouponEpic.js +3 -25
- package/lib/esm/view/invoicing/editInvoicingCustomerDetailView/saveInvoicingCustomerEpic.js +4 -26
- package/lib/esm/view/invoicing/editInvoicingSubscriptionDetailView/saveInvoicingSubscriptionEpic.js +4 -26
- package/lib/esm/view/invoicing/editInvoicingSubscriptionDetailView/syncInvoicingSubscriptionCouponsEpic.js +3 -20
- package/lib/esm/view/invoicing/invoiceAction/invoiceActionEpic.js +18 -65
- package/lib/esm/view/invoicing/invoicingConfigView/invoicingConfigViewReducer.js +0 -30
- package/lib/esm/view/invoicing/invoicingConfigView/invoicingConfigViewSelector.js +29 -4
- package/lib/esm/view/invoicing/invoicingDunningCaseDetailView/invoicingDunningCaseDetailViewPayload.js +1 -9
- package/lib/esm/view/invoicing/invoicingDunningCaseDetailView/invoicingDunningCaseDetailViewReducer.js +1 -50
- package/lib/esm/view/invoicing/invoicingDunningCaseDetailView/invoicingDunningCaseDetailViewSelector.js +1 -14
- package/lib/esm/view/invoicing/invoicingQboView/epics/retryInvoicingQboSyncTaskEpic.js +10 -31
- package/lib/esm/view/invoicing/invoicingQboView/epics/startInvoicingQboBackfillEpic.js +5 -30
- package/lib/esm/view/invoicing/issueCreditNote/issueCreditNoteEpic.js +4 -26
- package/lib/esm/view/invoicing/issueCreditNote/issueCreditNoteSelector.js +14 -22
- package/lib/esm/view/invoicing/recordPayment/recordPaymentEpic.js +7 -49
- package/lib/esm/view/invoicing/settingsView/settingsViewEpics.js +9 -30
- package/lib/esm/view/invoicing/settingsView/settingsViewReducer.js +1 -1
- package/lib/esm/view/invoicing/settingsView/settingsViewSelector.js +1 -56
- package/lib/esm/view/invoicing/subscriptionAction/subscriptionActionEpic.js +10 -45
- package/lib/esm/view/vendorFiling1099/vendorFiling1099UploadDetails/vendorFiling1099UploadDetailsReducer.js +1 -4
- package/lib/esm/view/vendorTabView/vendorTabViewReducer.js +1 -4
- package/lib/index.d.ts +13 -17
- package/lib/index.js +50 -62
- package/lib/view/companyHealthMetricView/companyHealthMetricConfigReducer.d.ts +1 -1
- package/lib/view/companyHealthMetricView/companyHealthMetricConfigReducer.js +2 -5
- package/lib/view/companyView/companyViewReducer.d.ts +1 -22
- package/lib/view/companyView/companyViewReducer.js +3 -60
- package/lib/view/companyView/selector/companyManagementViewSelector.d.ts +0 -3
- package/lib/view/companyView/selector/companyManagementViewSelector.js +0 -55
- package/lib/view/companyView/types/cockpitTypes.d.ts +3 -7
- package/lib/view/companyView/types/cockpitTypes.js +1 -15
- package/lib/view/companyView/types/companyManagementViewState.d.ts +0 -2
- package/lib/view/companyView/types/companyManagementViewState.js +0 -2
- package/lib/view/expenseAutomationView/helpers/transactionCategorizationLocalDataHelper.d.ts +1 -1
- package/lib/view/invoicing/createCreditNote/createCreditNoteEpic.d.ts +1 -2
- package/lib/view/invoicing/createCreditNote/createCreditNoteEpic.js +3 -25
- package/lib/view/invoicing/createInvoice/createInvoiceEpic.d.ts +1 -2
- package/lib/view/invoicing/createInvoice/createInvoiceEpic.js +3 -25
- package/lib/view/invoicing/createInvoice/createInvoiceSelector.d.ts +8 -22
- package/lib/view/invoicing/createInvoice/createInvoiceSelector.js +10 -37
- package/lib/view/invoicing/discountAction/discountActionEpic.d.ts +1 -2
- package/lib/view/invoicing/discountAction/discountActionEpic.js +8 -35
- package/lib/view/invoicing/dunningAction/dunningActionEpic.d.ts +1 -2
- package/lib/view/invoicing/dunningAction/dunningActionEpic.js +8 -37
- package/lib/view/invoicing/editInvoicingCatalogItemDetailView/catalogDetailEditPayload.d.ts +1 -3
- package/lib/view/invoicing/editInvoicingCatalogItemDetailView/catalogDetailEditPayload.js +1 -5
- package/lib/view/invoicing/editInvoicingCatalogItemDetailView/editInvoicingCatalogItemDetailViewPayload.js +4 -5
- package/lib/view/invoicing/editInvoicingCatalogItemDetailView/saveInvoicingCatalogItemEpic.d.ts +1 -2
- package/lib/view/invoicing/editInvoicingCatalogItemDetailView/saveInvoicingCatalogItemEpic.js +4 -34
- package/lib/view/invoicing/editInvoicingCouponDetailView/saveInvoicingCouponEpic.d.ts +1 -2
- package/lib/view/invoicing/editInvoicingCouponDetailView/saveInvoicingCouponEpic.js +2 -24
- package/lib/view/invoicing/editInvoicingCustomerDetailView/saveInvoicingCustomerEpic.d.ts +1 -2
- package/lib/view/invoicing/editInvoicingCustomerDetailView/saveInvoicingCustomerEpic.js +3 -25
- package/lib/view/invoicing/editInvoicingSubscriptionDetailView/saveInvoicingSubscriptionEpic.d.ts +1 -2
- package/lib/view/invoicing/editInvoicingSubscriptionDetailView/saveInvoicingSubscriptionEpic.js +3 -25
- package/lib/view/invoicing/editInvoicingSubscriptionDetailView/syncInvoicingSubscriptionCouponsEpic.d.ts +1 -2
- package/lib/view/invoicing/editInvoicingSubscriptionDetailView/syncInvoicingSubscriptionCouponsEpic.js +2 -19
- package/lib/view/invoicing/invoiceAction/invoiceActionEpic.d.ts +1 -2
- package/lib/view/invoicing/invoiceAction/invoiceActionEpic.js +16 -63
- package/lib/view/invoicing/invoicingConfigView/invoicingConfigViewPayload.d.ts +0 -13
- package/lib/view/invoicing/invoicingConfigView/invoicingConfigViewReducer.d.ts +1 -1
- package/lib/view/invoicing/invoicingConfigView/invoicingConfigViewReducer.js +0 -30
- package/lib/view/invoicing/invoicingConfigView/invoicingConfigViewSelector.d.ts +31 -11
- package/lib/view/invoicing/invoicingConfigView/invoicingConfigViewSelector.js +29 -4
- package/lib/view/invoicing/invoicingConfigView/invoicingConfigViewState.d.ts +0 -15
- package/lib/view/invoicing/invoicingDunningCaseDetailView/invoicingDunningCaseDetailViewEpics.d.ts +2 -2
- package/lib/view/invoicing/invoicingDunningCaseDetailView/invoicingDunningCaseDetailViewPayload.d.ts +0 -12
- package/lib/view/invoicing/invoicingDunningCaseDetailView/invoicingDunningCaseDetailViewPayload.js +0 -11
- package/lib/view/invoicing/invoicingDunningCaseDetailView/invoicingDunningCaseDetailViewReducer.d.ts +4 -21
- package/lib/view/invoicing/invoicingDunningCaseDetailView/invoicingDunningCaseDetailViewReducer.js +2 -51
- package/lib/view/invoicing/invoicingDunningCaseDetailView/invoicingDunningCaseDetailViewSelector.d.ts +0 -3
- package/lib/view/invoicing/invoicingDunningCaseDetailView/invoicingDunningCaseDetailViewSelector.js +2 -16
- package/lib/view/invoicing/invoicingDunningCaseDetailView/invoicingDunningCaseDetailViewState.d.ts +0 -13
- package/lib/view/invoicing/invoicingQboView/epics/invoicingQboViewActionType.d.ts +1 -2
- package/lib/view/invoicing/invoicingQboView/epics/retryInvoicingQboSyncTaskEpic.js +9 -30
- package/lib/view/invoicing/invoicingQboView/epics/startInvoicingQboBackfillEpic.js +4 -29
- package/lib/view/invoicing/issueCreditNote/issueCreditNoteEpic.d.ts +1 -2
- package/lib/view/invoicing/issueCreditNote/issueCreditNoteEpic.js +3 -25
- package/lib/view/invoicing/issueCreditNote/issueCreditNoteSelector.d.ts +7 -24
- package/lib/view/invoicing/issueCreditNote/issueCreditNoteSelector.js +16 -23
- package/lib/view/invoicing/recordPayment/recordPaymentEpic.d.ts +1 -2
- package/lib/view/invoicing/recordPayment/recordPaymentEpic.js +6 -48
- package/lib/view/invoicing/settingsView/settingsViewEpics.d.ts +1 -2
- package/lib/view/invoicing/settingsView/settingsViewEpics.js +7 -28
- package/lib/view/invoicing/settingsView/settingsViewReducer.d.ts +1 -10
- package/lib/view/invoicing/settingsView/settingsViewReducer.js +1 -1
- package/lib/view/invoicing/settingsView/settingsViewSelector.d.ts +2 -44
- package/lib/view/invoicing/settingsView/settingsViewSelector.js +2 -59
- package/lib/view/invoicing/subscriptionAction/subscriptionActionEpic.d.ts +1 -2
- package/lib/view/invoicing/subscriptionAction/subscriptionActionEpic.js +8 -43
- package/lib/view/vendorFiling1099/vendorFiling1099UploadDetails/vendorFiling1099UploadDetailsReducer.d.ts +1 -1
- package/lib/view/vendorFiling1099/vendorFiling1099UploadDetails/vendorFiling1099UploadDetailsReducer.js +2 -5
- package/lib/view/vendorTabView/vendorTabViewReducer.d.ts +1 -1
- package/lib/view/vendorTabView/vendorTabViewReducer.js +2 -5
- package/package.json +2 -2
- package/lib/entity/snackbar/snackbarApiError.d.ts +0 -8
- package/lib/entity/snackbar/snackbarApiError.js +0 -15
- package/lib/esm/entity/snackbar/snackbarApiError.js +0 -11
- package/lib/esm/view/companyView/epic/updateCompanyProductServicesEpic.js +0 -91
- package/lib/esm/view/companyView/epic/updateCompanyQboRealmIdEpic.js +0 -58
- package/lib/esm/view/invoicing/invoicingDunningCaseDetailView/fetchInvoicingDunningEmailPreviewEpic.js +0 -26
- package/lib/esm/view/invoicing/invoicingDunningCaseDetailView/fetchInvoicingDunningEmailPreviewPageEpic.js +0 -16
- package/lib/view/companyView/epic/updateCompanyProductServicesEpic.d.ts +0 -10
- package/lib/view/companyView/epic/updateCompanyProductServicesEpic.js +0 -95
- package/lib/view/companyView/epic/updateCompanyQboRealmIdEpic.d.ts +0 -8
- package/lib/view/companyView/epic/updateCompanyQboRealmIdEpic.js +0 -62
- package/lib/view/invoicing/invoicingDunningCaseDetailView/fetchInvoicingDunningEmailPreviewEpic.d.ts +0 -7
- package/lib/view/invoicing/invoicingDunningCaseDetailView/fetchInvoicingDunningEmailPreviewEpic.js +0 -30
- package/lib/view/invoicing/invoicingDunningCaseDetailView/fetchInvoicingDunningEmailPreviewPageEpic.d.ts +0 -6
- package/lib/view/invoicing/invoicingDunningCaseDetailView/fetchInvoicingDunningEmailPreviewPageEpic.js +0 -20
|
@@ -1,7 +1,5 @@
|
|
|
1
|
-
import {
|
|
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
|
|
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
|
|
26
|
-
|
|
27
|
-
|
|
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 {
|
|
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
|
|
31
|
-
|
|
32
|
-
|
|
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 {
|
|
2
|
-
|
|
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
|
-
|
|
15
|
-
|
|
16
|
-
isDraftForInvoice &&
|
|
17
|
-
draft.lineItems.length > 0,
|
|
5
|
+
error,
|
|
6
|
+
fetchState,
|
|
18
7
|
issuedCreditNoteId,
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
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
|
-
|
|
24
|
-
|
|
25
|
-
fetchState: invoiceView.fetchState,
|
|
16
|
+
error,
|
|
17
|
+
fetchState,
|
|
26
18
|
version: 1.0,
|
|
27
19
|
};
|
|
28
20
|
};
|
|
@@ -1,9 +1,7 @@
|
|
|
1
|
-
import {
|
|
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
|
|
39
|
-
|
|
40
|
-
|
|
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
|
|
82
|
-
|
|
83
|
-
|
|
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 {
|
|
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 {
|
|
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, {
|
|
61
|
+
.putAndGetJSON(apiUrl, {
|
|
62
|
+
...action.payload,
|
|
63
|
+
})
|
|
76
64
|
.pipe(switchMap((response) => {
|
|
77
65
|
if (isSuccessResponse(response) && response.data != null) {
|
|
78
|
-
return
|
|
79
|
-
saveInvoicingSettingsSuccess(response.data),
|
|
80
|
-
...snackbar('success'),
|
|
81
|
-
]);
|
|
66
|
+
return of(saveInvoicingSettingsSuccess(response.data));
|
|
82
67
|
}
|
|
83
|
-
return
|
|
84
|
-
|
|
85
|
-
|
|
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
|
|
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)
|
|
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 {
|
|
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 {
|
|
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
|
|
52
|
-
|
|
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
|
-
|
|
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 {
|
|
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 {
|
|
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,
|
|
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 {
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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 {
|
|
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
|
|
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,
|
|
1197
|
-
export { getInvoicingDunningCaseById, getInvoicingDunningCaseDetail,
|
|
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,
|
|
1215
|
-
export type { InvoicingBrandingFormView,
|
|
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';
|