@zeniai/client-epic-state 5.2.32-betaAK4 → 5.2.32-betaAK6
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/epic.d.ts +6 -4
- package/lib/epic.js +30 -17
- package/lib/esm/epic.js +17 -4
- package/lib/esm/index.js +2 -1
- package/lib/esm/view/invoicing/couponView/fetchInvoicingCouponCountsEpic.js +29 -0
- package/lib/esm/view/invoicing/couponView/fetchInvoicingCouponListEpic.js +41 -0
- package/lib/esm/view/invoicing/couponView/fetchInvoicingCouponListPageEpic.js +22 -0
- package/lib/esm/view/invoicing/customerPaymentMethod/createInvoicingSetupIntentEpic.js +17 -0
- package/lib/esm/view/invoicing/customerPaymentMethod/fetchInvoicingPlaidLinkTokenEpic.js +15 -0
- package/lib/esm/view/invoicing/customerPaymentMethod/saveInvoicingPaymentMethodEpic.js +21 -0
- package/lib/esm/view/invoicing/customerPaymentMethod/sendInvoicingPaymentLinkEpic.js +26 -0
- package/lib/esm/view/invoicing/dataImportView/fetchInvoicingDataImportStatusEpic.js +14 -0
- package/lib/esm/view/invoicing/dataImportView/fetchInvoicingMigrationDiagnosticsEpic.js +44 -0
- package/lib/esm/view/invoicing/dataImportView/fetchInvoicingMigrationSessionEpic.js +14 -0
- package/lib/esm/view/invoicing/dataImportView/fetchInvoicingMigrationSessionsEpic.js +14 -0
- package/lib/esm/view/invoicing/editInvoicingCustomerDetailView/editInvoicingCustomerDetailViewPayload.js +8 -0
- package/lib/esm/view/invoicing/editInvoicingCustomerDetailView/editInvoicingCustomerDetailViewReducer.js +48 -1
- package/lib/esm/view/invoicing/editInvoicingCustomerDetailView/editInvoicingCustomerDetailViewSelector.js +52 -9
- package/lib/esm/view/invoicing/editInvoicingCustomerDetailView/fetchInvoicingPaymentLinkEmailPreviewEpic.js +31 -0
- package/lib/esm/view/invoicing/editInvoicingCustomerDetailView/fetchInvoicingPaymentLinkEmailPreviewPageEpic.js +23 -0
- package/lib/esm/view/invoicing/editInvoicingSubscriptionDetailView/editInvoicingSubscriptionDetailViewSelector.js +4 -4
- package/lib/esm/view/invoicing/invoiceDetail/voidInvoiceHelper.js +32 -0
- package/lib/esm/view/invoicing/settingsView/initializeInvoicingBrandingAddressEpic.js +27 -0
- package/lib/esm/view/invoicing/settingsView/{invoicingBrandingFormEpics.js → submitInvoicingBrandingFormEpic.js} +3 -19
- package/lib/index.d.ts +5 -3
- package/lib/index.js +10 -5
- package/lib/view/invoicing/couponView/{couponViewEpics.d.ts → fetchInvoicingCouponCountsEpic.d.ts} +4 -2
- package/lib/view/invoicing/couponView/fetchInvoicingCouponCountsEpic.js +33 -0
- package/lib/view/invoicing/couponView/fetchInvoicingCouponListEpic.d.ts +8 -0
- package/lib/view/invoicing/couponView/fetchInvoicingCouponListEpic.js +45 -0
- package/lib/view/invoicing/couponView/fetchInvoicingCouponListPageEpic.d.ts +7 -0
- package/lib/view/invoicing/couponView/fetchInvoicingCouponListPageEpic.js +26 -0
- package/lib/view/invoicing/customerPaymentMethod/createInvoicingSetupIntentEpic.d.ts +8 -0
- package/lib/view/invoicing/customerPaymentMethod/createInvoicingSetupIntentEpic.js +21 -0
- package/lib/view/invoicing/customerPaymentMethod/customerPaymentMethodReducer.d.ts +4 -0
- package/lib/view/invoicing/customerPaymentMethod/{customerPaymentMethodEpic.d.ts → fetchInvoicingPlaidLinkTokenEpic.d.ts} +0 -3
- package/lib/view/invoicing/customerPaymentMethod/fetchInvoicingPlaidLinkTokenEpic.js +19 -0
- package/lib/view/invoicing/customerPaymentMethod/saveInvoicingPaymentMethodEpic.d.ts +8 -0
- package/lib/view/invoicing/customerPaymentMethod/saveInvoicingPaymentMethodEpic.js +25 -0
- package/lib/view/invoicing/customerPaymentMethod/sendInvoicingPaymentLinkEpic.d.ts +8 -0
- package/lib/view/invoicing/customerPaymentMethod/sendInvoicingPaymentLinkEpic.js +30 -0
- package/lib/view/invoicing/dataImportView/fetchInvoicingDataImportStatusEpic.d.ts +7 -0
- package/lib/view/invoicing/dataImportView/fetchInvoicingDataImportStatusEpic.js +18 -0
- package/lib/view/invoicing/dataImportView/{dataImportViewEpics.d.ts → fetchInvoicingMigrationDiagnosticsEpic.d.ts} +0 -3
- package/lib/view/invoicing/dataImportView/fetchInvoicingMigrationDiagnosticsEpic.js +48 -0
- package/lib/view/invoicing/dataImportView/fetchInvoicingMigrationSessionEpic.d.ts +7 -0
- package/lib/view/invoicing/dataImportView/fetchInvoicingMigrationSessionEpic.js +18 -0
- package/lib/view/invoicing/dataImportView/fetchInvoicingMigrationSessionsEpic.d.ts +7 -0
- package/lib/view/invoicing/dataImportView/fetchInvoicingMigrationSessionsEpic.js +18 -0
- package/lib/view/invoicing/editInvoicingCatalogItemDetailView/editInvoicingCatalogItemDetailViewPayload.d.ts +1 -0
- package/lib/view/invoicing/editInvoicingCatalogItemDetailView/editInvoicingCatalogItemDetailViewState.d.ts +1 -1
- package/lib/view/invoicing/editInvoicingCouponDetailView/editInvoicingCouponDetailViewPayload.d.ts +1 -0
- package/lib/view/invoicing/editInvoicingCustomerDetailView/editInvoicingCustomerDetailViewPayload.d.ts +27 -0
- package/lib/view/invoicing/editInvoicingCustomerDetailView/editInvoicingCustomerDetailViewPayload.js +10 -1
- package/lib/view/invoicing/editInvoicingCustomerDetailView/editInvoicingCustomerDetailViewReducer.d.ts +16 -1
- package/lib/view/invoicing/editInvoicingCustomerDetailView/editInvoicingCustomerDetailViewReducer.js +49 -2
- package/lib/view/invoicing/editInvoicingCustomerDetailView/editInvoicingCustomerDetailViewSelector.d.ts +45 -1
- package/lib/view/invoicing/editInvoicingCustomerDetailView/editInvoicingCustomerDetailViewSelector.js +54 -10
- package/lib/view/invoicing/editInvoicingCustomerDetailView/editInvoicingCustomerDetailViewState.d.ts +9 -0
- package/lib/view/invoicing/editInvoicingCustomerDetailView/fetchInvoicingPaymentLinkEmailPreviewEpic.d.ts +12 -0
- package/lib/view/invoicing/editInvoicingCustomerDetailView/fetchInvoicingPaymentLinkEmailPreviewEpic.js +35 -0
- package/lib/view/invoicing/editInvoicingCustomerDetailView/fetchInvoicingPaymentLinkEmailPreviewPageEpic.d.ts +10 -0
- package/lib/view/invoicing/editInvoicingCustomerDetailView/fetchInvoicingPaymentLinkEmailPreviewPageEpic.js +27 -0
- package/lib/view/invoicing/editInvoicingSubscriptionDetailView/editInvoicingSubscriptionDetailViewPayload.d.ts +55 -0
- package/lib/view/invoicing/editInvoicingSubscriptionDetailView/editInvoicingSubscriptionDetailViewReducer.d.ts +1 -1
- package/lib/view/invoicing/editInvoicingSubscriptionDetailView/editInvoicingSubscriptionDetailViewSelector.js +4 -4
- package/lib/view/invoicing/invoiceDetail/invoiceDetailPayload.d.ts +53 -0
- package/lib/view/invoicing/invoiceDetail/invoiceDetailReducer.d.ts +1 -1
- package/lib/view/invoicing/invoiceDetail/voidInvoiceHelper.d.ts +11 -0
- package/lib/view/invoicing/invoiceDetail/voidInvoiceHelper.js +38 -0
- package/lib/view/invoicing/invoicingCustomerListView/invoicingCustomerListViewReducer.d.ts +1 -1
- package/lib/view/invoicing/invoicingCustomerListView/invoicingCustomerListViewState.d.ts +1 -1
- package/lib/view/invoicing/invoicingDunningCaseDetailView/invoicingDunningCaseDetailViewPayload.d.ts +25 -0
- package/lib/view/invoicing/invoicingDunningCaseDetailView/invoicingDunningCaseDetailViewReducer.d.ts +1 -1
- package/lib/view/invoicing/invoicingTransactionDetailView/invoicingTransactionDetailViewPayload.d.ts +8 -0
- package/lib/view/invoicing/invoicingTransactionDetailView/invoicingTransactionDetailViewReducer.d.ts +1 -1
- package/lib/view/invoicing/settingsView/{invoicingBrandingFormEpics.d.ts → initializeInvoicingBrandingAddressEpic.d.ts} +1 -8
- package/lib/view/invoicing/settingsView/initializeInvoicingBrandingAddressEpic.js +31 -0
- package/lib/view/invoicing/settingsView/submitInvoicingBrandingFormEpic.d.ts +20 -0
- package/lib/view/invoicing/settingsView/{invoicingBrandingFormEpics.js → submitInvoicingBrandingFormEpic.js} +1 -18
- package/package.json +1 -1
- package/lib/esm/view/invoicing/couponView/couponViewEpics.js +0 -76
- package/lib/esm/view/invoicing/customerPaymentMethod/customerPaymentMethodEpic.js +0 -63
- package/lib/esm/view/invoicing/dataImportView/dataImportViewEpics.js +0 -74
- package/lib/esm/view/invoicing/dataImportView/invoicingDataImportActionPayload.js +0 -1
- package/lib/esm/view/invoicing/editInvoicingCatalogItemDetailView/invoicingCatalogItemDetailPayload.js +0 -1
- package/lib/esm/view/invoicing/editInvoicingCouponDetailView/invoicingCouponDetailPayload.js +0 -1
- package/lib/esm/view/invoicing/editInvoicingCustomerDetailView/invoicingCustomerDetailPayload.js +0 -1
- package/lib/esm/view/invoicing/editInvoicingCustomerDetailView/invoicingCustomerRecordSelector.js +0 -32
- package/lib/esm/view/invoicing/editInvoicingCustomerDetailView/promotionalCreditPayload.js +0 -1
- package/lib/esm/view/invoicing/editInvoicingSubscriptionDetailView/invoicingSubscriptionActionPayload.js +0 -1
- package/lib/esm/view/invoicing/editInvoicingSubscriptionDetailView/invoicingSubscriptionActionRequestPayload.js +0 -2
- package/lib/esm/view/invoicing/editInvoicingSubscriptionDetailView/invoicingSubscriptionDetailPayload.js +0 -1
- package/lib/esm/view/invoicing/invoiceDetail/invoicingInvoiceActionPayload.js +0 -1
- package/lib/esm/view/invoicing/invoiceDetail/invoicingInvoiceActionRequestPayload.js +0 -2
- package/lib/esm/view/invoicing/invoicingDunningCaseDetailView/invoicingDunningActionPayload.js +0 -1
- package/lib/esm/view/invoicing/invoicingDunningCaseDetailView/invoicingDunningActionRequestPayload.js +0 -2
- package/lib/esm/view/invoicing/invoicingTransactionDetailView/invoicingPaymentActionPayload.js +0 -1
- package/lib/esm/view/invoicing/invoicingTransactionDetailView/invoicingPaymentActionRequestPayload.js +0 -2
- package/lib/view/invoicing/couponView/couponViewEpics.js +0 -82
- package/lib/view/invoicing/customerPaymentMethod/customerPaymentMethodEpic.js +0 -70
- package/lib/view/invoicing/dataImportView/dataImportViewEpics.js +0 -81
- package/lib/view/invoicing/dataImportView/invoicingDataImportActionPayload.d.ts +0 -3
- package/lib/view/invoicing/dataImportView/invoicingDataImportActionPayload.js +0 -2
- package/lib/view/invoicing/editInvoicingCatalogItemDetailView/invoicingCatalogItemDetailPayload.d.ts +0 -3
- package/lib/view/invoicing/editInvoicingCatalogItemDetailView/invoicingCatalogItemDetailPayload.js +0 -2
- package/lib/view/invoicing/editInvoicingCouponDetailView/invoicingCouponDetailPayload.d.ts +0 -3
- package/lib/view/invoicing/editInvoicingCouponDetailView/invoicingCouponDetailPayload.js +0 -2
- package/lib/view/invoicing/editInvoicingCustomerDetailView/invoicingCustomerDetailPayload.d.ts +0 -3
- package/lib/view/invoicing/editInvoicingCustomerDetailView/invoicingCustomerDetailPayload.js +0 -2
- package/lib/view/invoicing/editInvoicingCustomerDetailView/invoicingCustomerRecordSelector.d.ts +0 -37
- package/lib/view/invoicing/editInvoicingCustomerDetailView/invoicingCustomerRecordSelector.js +0 -36
- package/lib/view/invoicing/editInvoicingCustomerDetailView/promotionalCreditPayload.d.ts +0 -3
- package/lib/view/invoicing/editInvoicingCustomerDetailView/promotionalCreditPayload.js +0 -2
- package/lib/view/invoicing/editInvoicingSubscriptionDetailView/invoicingSubscriptionActionPayload.d.ts +0 -3
- package/lib/view/invoicing/editInvoicingSubscriptionDetailView/invoicingSubscriptionActionPayload.js +0 -2
- package/lib/view/invoicing/editInvoicingSubscriptionDetailView/invoicingSubscriptionActionRequestPayload.d.ts +0 -53
- package/lib/view/invoicing/editInvoicingSubscriptionDetailView/invoicingSubscriptionActionRequestPayload.js +0 -3
- package/lib/view/invoicing/editInvoicingSubscriptionDetailView/invoicingSubscriptionDetailPayload.d.ts +0 -3
- package/lib/view/invoicing/editInvoicingSubscriptionDetailView/invoicingSubscriptionDetailPayload.js +0 -2
- package/lib/view/invoicing/invoiceDetail/invoicingInvoiceActionPayload.d.ts +0 -3
- package/lib/view/invoicing/invoiceDetail/invoicingInvoiceActionPayload.js +0 -2
- package/lib/view/invoicing/invoiceDetail/invoicingInvoiceActionRequestPayload.d.ts +0 -52
- package/lib/view/invoicing/invoiceDetail/invoicingInvoiceActionRequestPayload.js +0 -3
- package/lib/view/invoicing/invoicingDunningCaseDetailView/invoicingDunningActionPayload.d.ts +0 -3
- package/lib/view/invoicing/invoicingDunningCaseDetailView/invoicingDunningActionPayload.js +0 -2
- package/lib/view/invoicing/invoicingDunningCaseDetailView/invoicingDunningActionRequestPayload.d.ts +0 -24
- package/lib/view/invoicing/invoicingDunningCaseDetailView/invoicingDunningActionRequestPayload.js +0 -3
- package/lib/view/invoicing/invoicingTransactionDetailView/invoicingPaymentActionPayload.d.ts +0 -3
- package/lib/view/invoicing/invoicingTransactionDetailView/invoicingPaymentActionPayload.js +0 -2
- package/lib/view/invoicing/invoicingTransactionDetailView/invoicingPaymentActionRequestPayload.d.ts +0 -7
- package/lib/view/invoicing/invoicingTransactionDetailView/invoicingPaymentActionRequestPayload.js +0 -3
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { of } from 'rxjs';
|
|
2
|
+
import { catchError, filter, switchMap } from 'rxjs/operators';
|
|
3
|
+
import { createZeniAPIStatus, isSuccessResponse } from '../../../responsePayload';
|
|
4
|
+
import { fetchInvoicingMigrationSession, updateInvoicingMigrationSessionFailure, upsertInvoicingMigrationSession, } from './dataImportViewReducer';
|
|
5
|
+
export const fetchInvoicingMigrationSessionEpic = (actions$, _state$, zeniAPI) => actions$.pipe(filter(fetchInvoicingMigrationSession.match), switchMap((action) => {
|
|
6
|
+
const apiUrl = `${zeniAPI.apiEndPoints.invoicingMicroServiceBaseUrl}/1.0/data-import/${encodeURIComponent(action.payload)}`;
|
|
7
|
+
return zeniAPI.getJSON(apiUrl).pipe(switchMap((response) => {
|
|
8
|
+
if (isSuccessResponse(response) && response.data != null) {
|
|
9
|
+
return of(upsertInvoicingMigrationSession(response.data));
|
|
10
|
+
}
|
|
11
|
+
return of(updateInvoicingMigrationSessionFailure(response.status));
|
|
12
|
+
}), catchError((error) => of(updateInvoicingMigrationSessionFailure(createZeniAPIStatus('Unexpected Error', 'Fetch migration session REST API call errored out ' +
|
|
13
|
+
JSON.stringify(error))))));
|
|
14
|
+
}));
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { of } from 'rxjs';
|
|
2
|
+
import { catchError, filter, switchMap } from 'rxjs/operators';
|
|
3
|
+
import { createZeniAPIStatus, isSuccessResponse } from '../../../responsePayload';
|
|
4
|
+
import { fetchInvoicingMigrationSessions, updateInvoicingMigrationSessions, updateInvoicingMigrationSessionsFailure, } from './dataImportViewReducer';
|
|
5
|
+
export const fetchInvoicingMigrationSessionsEpic = (actions$, _state$, zeniAPI) => actions$.pipe(filter(fetchInvoicingMigrationSessions.match), switchMap(() => {
|
|
6
|
+
const apiUrl = `${zeniAPI.apiEndPoints.invoicingMicroServiceBaseUrl}/1.0/data-import/sessions`;
|
|
7
|
+
return zeniAPI.getJSON(apiUrl).pipe(switchMap((response) => {
|
|
8
|
+
if (isSuccessResponse(response)) {
|
|
9
|
+
return of(updateInvoicingMigrationSessions(response.data ?? []));
|
|
10
|
+
}
|
|
11
|
+
return of(updateInvoicingMigrationSessionsFailure(response.status));
|
|
12
|
+
}), catchError((error) => of(updateInvoicingMigrationSessionsFailure(createZeniAPIStatus('Unexpected Error', 'Fetch migration sessions REST API call errored out ' +
|
|
13
|
+
JSON.stringify(error))))));
|
|
14
|
+
}));
|
|
@@ -30,3 +30,11 @@ export const localDataToSaveInvoicingCustomerPayload = (localData, billingAddres
|
|
|
30
30
|
: {}),
|
|
31
31
|
};
|
|
32
32
|
};
|
|
33
|
+
export const toInvoicingPaymentLinkEmailPreview = (payload) => ({
|
|
34
|
+
body: payload.body,
|
|
35
|
+
bodyToken: payload.body_token,
|
|
36
|
+
renderedHtmlTemplate: payload.rendered_html_template,
|
|
37
|
+
subject: payload.subject,
|
|
38
|
+
subjectToken: payload.subject_token,
|
|
39
|
+
to: payload.to,
|
|
40
|
+
});
|
|
@@ -2,6 +2,9 @@ import { createSlice } from '@reduxjs/toolkit';
|
|
|
2
2
|
import { clearAll } from '../../../rootActions';
|
|
3
3
|
import { initialInvoicingCustomerFormLocalData } from './invoicingCustomerFormConfig';
|
|
4
4
|
export const initialState = {
|
|
5
|
+
emailPreviewFetchState: { fetchState: 'Not-Started', error: undefined },
|
|
6
|
+
emailPreview: undefined,
|
|
7
|
+
emailPreviewCustomerId: undefined,
|
|
5
8
|
promotionalCreditSubmitState: { fetchState: 'Not-Started', error: undefined },
|
|
6
9
|
recordStateById: {},
|
|
7
10
|
fetchState: 'Not-Started',
|
|
@@ -17,6 +20,50 @@ const editInvoicingCustomerDetailView = createSlice({
|
|
|
17
20
|
name: 'editInvoicingCustomerDetailView',
|
|
18
21
|
initialState,
|
|
19
22
|
reducers: {
|
|
23
|
+
/**
|
|
24
|
+
* Open the payment-link email composer. The guard epic decides whether the
|
|
25
|
+
* preview is already cached for this customer; `cacheOverride` forces the
|
|
26
|
+
* refetch behind Retry.
|
|
27
|
+
*/
|
|
28
|
+
fetchInvoicingPaymentLinkEmailPreviewPage: {
|
|
29
|
+
reducer() {
|
|
30
|
+
// Orchestrator trigger only — the fetch below owns the state.
|
|
31
|
+
},
|
|
32
|
+
prepare(payload) {
|
|
33
|
+
return {
|
|
34
|
+
payload: {
|
|
35
|
+
cacheOverride: payload.cacheOverride ?? false,
|
|
36
|
+
customerId: payload.customerId,
|
|
37
|
+
},
|
|
38
|
+
};
|
|
39
|
+
},
|
|
40
|
+
},
|
|
41
|
+
fetchInvoicingPaymentLinkEmailPreview(draft, action) {
|
|
42
|
+
// A preview belongs to one customer, so anything cached for another is
|
|
43
|
+
// dropped rather than shown while this one loads.
|
|
44
|
+
draft.emailPreview = undefined;
|
|
45
|
+
draft.emailPreviewCustomerId = action.payload.customerId;
|
|
46
|
+
draft.emailPreviewFetchState = {
|
|
47
|
+
fetchState: 'In-Progress',
|
|
48
|
+
error: undefined,
|
|
49
|
+
};
|
|
50
|
+
},
|
|
51
|
+
updateInvoicingPaymentLinkEmailPreview(draft, action) {
|
|
52
|
+
draft.emailPreview = action.payload.preview;
|
|
53
|
+
draft.emailPreviewCustomerId = action.payload.customerId;
|
|
54
|
+
draft.emailPreviewFetchState = {
|
|
55
|
+
fetchState: 'Completed',
|
|
56
|
+
error: undefined,
|
|
57
|
+
};
|
|
58
|
+
},
|
|
59
|
+
updateInvoicingPaymentLinkEmailPreviewFailure(draft, action) {
|
|
60
|
+
draft.emailPreview = undefined;
|
|
61
|
+
draft.emailPreviewCustomerId = action.payload.customerId;
|
|
62
|
+
draft.emailPreviewFetchState = {
|
|
63
|
+
fetchState: 'Error',
|
|
64
|
+
error: action.payload.status,
|
|
65
|
+
};
|
|
66
|
+
},
|
|
20
67
|
submitAddPromotionalCredits: {
|
|
21
68
|
reducer(draft) {
|
|
22
69
|
draft.promotionalCreditSubmitState = {
|
|
@@ -135,5 +182,5 @@ const editInvoicingCustomerDetailView = createSlice({
|
|
|
135
182
|
});
|
|
136
183
|
},
|
|
137
184
|
});
|
|
138
|
-
export const { addPromotionalCreditsFailure, addPromotionalCreditsSuccess, fetchInvoicingCustomerDetail, fetchInvoicingCustomerDetailPage, seedInvoicingCustomerFormDraft, updateInvoicingCustomerDetail, resetPromotionalCreditAction, submitAddPromotionalCredits, updateInvoicingCustomerDetailFailure, updateInvoicingCustomerFormDraft, submitInvoicingCustomerForm, submitInvoicingCustomerFormSuccess, submitInvoicingCustomerFormFailure, resetEditInvoicingCustomerDetailView, initializeInvoicingCustomerAddress, } = editInvoicingCustomerDetailView.actions;
|
|
185
|
+
export const { fetchInvoicingPaymentLinkEmailPreview, fetchInvoicingPaymentLinkEmailPreviewPage, updateInvoicingPaymentLinkEmailPreview, updateInvoicingPaymentLinkEmailPreviewFailure, addPromotionalCreditsFailure, addPromotionalCreditsSuccess, fetchInvoicingCustomerDetail, fetchInvoicingCustomerDetailPage, seedInvoicingCustomerFormDraft, updateInvoicingCustomerDetail, resetPromotionalCreditAction, submitAddPromotionalCredits, updateInvoicingCustomerDetailFailure, updateInvoicingCustomerFormDraft, submitInvoicingCustomerForm, submitInvoicingCustomerFormSuccess, submitInvoicingCustomerFormFailure, resetEditInvoicingCustomerDetailView, initializeInvoicingCustomerAddress, } = editInvoicingCustomerDetailView.actions;
|
|
139
186
|
export default editInvoicingCustomerDetailView.reducer;
|
|
@@ -1,10 +1,47 @@
|
|
|
1
1
|
import { reduceAllFetchState } from '../../../commonStateTypes/reduceFetchState';
|
|
2
2
|
import { getInvoicingCustomerById } from '../../../entity/invoicing/invoicingCustomer/invoicingCustomerSelector';
|
|
3
3
|
import { getFormattedAddress } from '../../addressView/addressViewSelector';
|
|
4
|
-
import { getInvoicingPlaidLinkTokenFetchState } from '../customerPaymentMethod/customerPaymentMethodSelector';
|
|
5
|
-
import { getInvoicingCustomerRecord, } from './invoicingCustomerRecordSelector';
|
|
6
4
|
import { getInvoicingConfigView, invoicingFieldHelpForGroup, } from '../invoicingConfigView/invoicingConfigViewSelector';
|
|
7
5
|
import { INVOICING_CUSTOMER_BILLING_ADDRESS_TYPE, initialInvoicingCustomerFormLocalData, } from './invoicingCustomerFormConfig';
|
|
6
|
+
import { getInvoicesByIds } from '../../../entity/invoicing/invoice/invoiceSelector';
|
|
7
|
+
import { invoicingCustomerPaymentMethods } from '../../../entity/invoicing/invoicingCustomer/invoicingCustomerSelector';
|
|
8
|
+
import { getInvoicingPaymentLinkSendState, getInvoicingPaymentMethodSaveState, getInvoicingPlaidLinkToken, getInvoicingPlaidLinkTokenFetchState, getInvoicingSentPaymentLinkEmail, getInvoicingSentPaymentLinkMagicUrl, getInvoicingSetupIntent, getInvoicingSetupIntentFetchState, } from '../customerPaymentMethod/customerPaymentMethodSelector';
|
|
9
|
+
import { isStripeConnectedFromSettings } from '../settingsView/invoicingSettingsHelpers';
|
|
10
|
+
import { getInvoicingSettings } from '../settingsView/settingsViewSelector';
|
|
11
|
+
/**
|
|
12
|
+
* `invoicingCustomerID` is absent in create mode, where there is no record to
|
|
13
|
+
* resolve — the view still renders, off an empty record.
|
|
14
|
+
*/
|
|
15
|
+
export const getInvoicingCustomerRecord = (state, invoicingCustomerID) => {
|
|
16
|
+
const { invoicingCustomerState } = state;
|
|
17
|
+
const invoicingCustomerDetail = invoicingCustomerID == null
|
|
18
|
+
? undefined
|
|
19
|
+
: state.editInvoicingCustomerDetailViewState.recordStateById[invoicingCustomerID];
|
|
20
|
+
const settings = getInvoicingSettings(state);
|
|
21
|
+
const invoicingCustomer = invoicingCustomerID == null
|
|
22
|
+
? undefined
|
|
23
|
+
: getInvoicingCustomerById(invoicingCustomerState, invoicingCustomerID);
|
|
24
|
+
return {
|
|
25
|
+
fieldHelp: invoicingFieldHelpForGroup(state, 'customer'),
|
|
26
|
+
invoicingCustomer,
|
|
27
|
+
invoices: getInvoicesByIds(state.invoicingInvoiceState, state.invoicingInvoiceListState.invoiceByTab[state.invoicingInvoiceListState.activeTab]?.invoiceIds ?? []),
|
|
28
|
+
paymentMethods: invoicingCustomerPaymentMethods(invoicingCustomer),
|
|
29
|
+
setupIntent: getInvoicingSetupIntent(state),
|
|
30
|
+
setupIntentFetchState: getInvoicingSetupIntentFetchState(state),
|
|
31
|
+
plaidLinkToken: getInvoicingPlaidLinkToken(state),
|
|
32
|
+
paymentMethodSaveState: getInvoicingPaymentMethodSaveState(state),
|
|
33
|
+
sendLinkState: getInvoicingPaymentLinkSendState(state),
|
|
34
|
+
sentPaymentLinkEmail: getInvoicingSentPaymentLinkEmail(state),
|
|
35
|
+
sentPaymentLinkMagicUrl: getInvoicingSentPaymentLinkMagicUrl(state),
|
|
36
|
+
brandingAccentColor: settings?.accent_color,
|
|
37
|
+
brandingCompanyName: settings?.company_name,
|
|
38
|
+
brandingEmail: settings?.email,
|
|
39
|
+
brandingLogoUrl: settings?.logo_url,
|
|
40
|
+
stripeConnected: isStripeConnectedFromSettings(settings),
|
|
41
|
+
fetchState: invoicingCustomerDetail?.fetchState ?? 'Not-Started',
|
|
42
|
+
error: invoicingCustomerDetail?.error,
|
|
43
|
+
};
|
|
44
|
+
};
|
|
8
45
|
/**
|
|
9
46
|
* Bundled view for the customer create/edit form. Exposes the draft `localData`
|
|
10
47
|
* (seeded from the existing customer entity in edit mode until the user edits),
|
|
@@ -33,21 +70,27 @@ export const getInvoicingCustomerFormView = (state, invoicingCustomerID) => {
|
|
|
33
70
|
const billingAddressLabel = newAddress?.addressToCreate != null
|
|
34
71
|
? getFormattedAddress(newAddress.addressToCreate)
|
|
35
72
|
: undefined;
|
|
36
|
-
const { customerTypeOptions, netTermDayOptions, taxabilityOptions } = getInvoicingConfigView(state);
|
|
37
73
|
const configState = getInvoicingConfigView(state);
|
|
38
|
-
const
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
74
|
+
const { customerTypeOptions, netTermDayOptions, taxabilityOptions } = configState;
|
|
75
|
+
// In create mode there is nothing to load, so the record state reads as
|
|
76
|
+
// settled rather than pending.
|
|
77
|
+
const recordState = invoicingCustomerID == null
|
|
78
|
+
? { error: undefined, fetchState: 'Completed' }
|
|
79
|
+
: (state.editInvoicingCustomerDetailViewState.recordStateById[invoicingCustomerID] ?? { error: undefined, fetchState: 'Not-Started' });
|
|
80
|
+
const { emailPreview, emailPreviewCustomerId, emailPreviewFetchState } = state.editInvoicingCustomerDetailViewState;
|
|
43
81
|
return {
|
|
82
|
+
// A preview cached for another customer is not this screen's.
|
|
83
|
+
emailPreview: emailPreviewCustomerId === invoicingCustomerID ? emailPreview : undefined,
|
|
84
|
+
emailPreviewFetchState: emailPreviewCustomerId === invoicingCustomerID
|
|
85
|
+
? emailPreviewFetchState
|
|
86
|
+
: { error: undefined, fetchState: 'Not-Started' },
|
|
44
87
|
pageFetchState: reduceAllFetchState([
|
|
45
88
|
recordState,
|
|
46
89
|
{ error: configState.error, fetchState: configState.fetchState },
|
|
47
90
|
]),
|
|
48
91
|
plaidTokenFetchState: getInvoicingPlaidLinkTokenFetchState(state),
|
|
49
92
|
promotionalCreditSubmitState: state.editInvoicingCustomerDetailViewState.promotionalCreditSubmitState,
|
|
50
|
-
record: getInvoicingCustomerRecord(state, invoicingCustomerID
|
|
93
|
+
record: getInvoicingCustomerRecord(state, invoicingCustomerID),
|
|
51
94
|
fieldHelp: invoicingFieldHelpForGroup(state, 'customer'),
|
|
52
95
|
customerTypeOptions,
|
|
53
96
|
localData,
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { of } from 'rxjs';
|
|
2
|
+
import { catchError, filter, map, switchMap } from 'rxjs/operators';
|
|
3
|
+
import { createZeniAPIStatus, isSuccessResponse } from '../../../responsePayload';
|
|
4
|
+
import { fetchInvoicingPaymentLinkEmailPreview, updateInvoicingPaymentLinkEmailPreview, updateInvoicingPaymentLinkEmailPreviewFailure, } from './editInvoicingCustomerDetailViewReducer';
|
|
5
|
+
import { toInvoicingPaymentLinkEmailPreview, } from './editInvoicingCustomerDetailViewPayload';
|
|
6
|
+
/**
|
|
7
|
+
* Renders the payment-link email once, server-side, with sentinel tokens where
|
|
8
|
+
* the subject and body go. The composer splices the draft into those tokens as
|
|
9
|
+
* the user types, so editing costs no further requests.
|
|
10
|
+
*/
|
|
11
|
+
export const fetchInvoicingPaymentLinkEmailPreviewEpic = (actions$, _state$, zeniAPI) => actions$.pipe(filter(fetchInvoicingPaymentLinkEmailPreview.match), switchMap((action) => {
|
|
12
|
+
const { customerId } = action.payload;
|
|
13
|
+
const apiUrl = `${zeniAPI.apiEndPoints.invoicingMicroServiceBaseUrl}/1.0/customers/${encodeURIComponent(customerId)}/payment-link/email-preview`;
|
|
14
|
+
return zeniAPI
|
|
15
|
+
.postAndGetJSON(apiUrl, {})
|
|
16
|
+
.pipe(map((response) => {
|
|
17
|
+
if (isSuccessResponse(response) && response.data != null) {
|
|
18
|
+
return updateInvoicingPaymentLinkEmailPreview({
|
|
19
|
+
customerId,
|
|
20
|
+
preview: toInvoicingPaymentLinkEmailPreview(response.data),
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
return updateInvoicingPaymentLinkEmailPreviewFailure({
|
|
24
|
+
customerId,
|
|
25
|
+
status: response.status,
|
|
26
|
+
});
|
|
27
|
+
}), catchError((error) => of(updateInvoicingPaymentLinkEmailPreviewFailure({
|
|
28
|
+
customerId,
|
|
29
|
+
status: createZeniAPIStatus('Unexpected Error', `Payment link email preview REST API call errored out: ${error instanceof Error ? error.message : String(error)}`),
|
|
30
|
+
}))));
|
|
31
|
+
}));
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { EMPTY, of } from 'rxjs';
|
|
2
|
+
import { filter, mergeMap } from 'rxjs/operators';
|
|
3
|
+
import { fetchInvoicingPaymentLinkEmailPreview, fetchInvoicingPaymentLinkEmailPreviewPage, } from './editInvoicingCustomerDetailViewReducer';
|
|
4
|
+
/**
|
|
5
|
+
* Fetch unless this customer's preview is already loaded or in flight — or
|
|
6
|
+
* always when the caller forces a refresh via `cacheOverride` (Retry).
|
|
7
|
+
*/
|
|
8
|
+
const shouldFetch = (fetchStateAndError, cacheOverride) => cacheOverride ||
|
|
9
|
+
(fetchStateAndError.fetchState !== 'Completed' &&
|
|
10
|
+
fetchStateAndError.fetchState !== 'In-Progress');
|
|
11
|
+
/**
|
|
12
|
+
* Opening the composer asks for the preview at most once per customer: a
|
|
13
|
+
* cached one is reused, and switching customer invalidates it.
|
|
14
|
+
*/
|
|
15
|
+
export const fetchInvoicingPaymentLinkEmailPreviewPageEpic = (actions$, state$) => actions$.pipe(filter(fetchInvoicingPaymentLinkEmailPreviewPage.match), mergeMap((action) => {
|
|
16
|
+
const { cacheOverride, customerId } = action.payload;
|
|
17
|
+
const { emailPreviewCustomerId, emailPreviewFetchState } = state$.value.editInvoicingCustomerDetailViewState;
|
|
18
|
+
const cachedForThisCustomer = emailPreviewCustomerId === customerId;
|
|
19
|
+
return !cachedForThisCustomer ||
|
|
20
|
+
shouldFetch(emailPreviewFetchState, cacheOverride)
|
|
21
|
+
? of(fetchInvoicingPaymentLinkEmailPreview({ customerId }))
|
|
22
|
+
: EMPTY;
|
|
23
|
+
}));
|
|
@@ -60,10 +60,10 @@ export const getInvoicingSubscriptionFormView = (state, invoicingSubscriptionID)
|
|
|
60
60
|
recordState,
|
|
61
61
|
{ error: configState.error, fetchState: configState.fetchState },
|
|
62
62
|
]),
|
|
63
|
-
cancelReasonCodeOptions:
|
|
64
|
-
subscriptionCommercialEditAllowedFromStatuses:
|
|
65
|
-
subscriptionLifecycleActionOptions:
|
|
66
|
-
subscriptionMetadataEditAllowedFromStatuses:
|
|
63
|
+
cancelReasonCodeOptions: configState.subscriptionCancelReasonCodeOptions,
|
|
64
|
+
subscriptionCommercialEditAllowedFromStatuses: configState.subscriptionCommercialEditAllowedFromStatuses,
|
|
65
|
+
subscriptionLifecycleActionOptions: configState.subscriptionLifecycleActionOptions,
|
|
66
|
+
subscriptionMetadataEditAllowedFromStatuses: configState.subscriptionMetadataEditAllowedFromStatuses,
|
|
67
67
|
recordState,
|
|
68
68
|
fieldHelp: invoicingFieldHelpForGroup(state, 'subscription'),
|
|
69
69
|
coupons: getInvoicingCouponListItems(state),
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
const pad2 = (value) => String(value).padStart(2, '0');
|
|
2
|
+
/** `YYYY-MM-DD` from a date's local calendar components. */
|
|
3
|
+
const toLocalIsoDate = (value) => `${value.getFullYear()}-${pad2(value.getMonth() + 1)}-${pad2(value.getDate())}`;
|
|
4
|
+
/**
|
|
5
|
+
* Whether an invoice falls before the current month. Voiding one of those
|
|
6
|
+
* leaves a hole in a closed period, which is why the adjustment credit note is
|
|
7
|
+
* offered — and defaulted on — for them.
|
|
8
|
+
*/
|
|
9
|
+
export const isBackdatedInvoiceDate = (invoiceDate, referenceDate = new Date()) => {
|
|
10
|
+
if (invoiceDate.trim() === '') {
|
|
11
|
+
return false;
|
|
12
|
+
}
|
|
13
|
+
const parsed = new Date(invoiceDate);
|
|
14
|
+
if (Number.isNaN(parsed.getTime())) {
|
|
15
|
+
return false;
|
|
16
|
+
}
|
|
17
|
+
const monthStart = new Date(referenceDate.getFullYear(), referenceDate.getMonth(), 1);
|
|
18
|
+
return parsed < monthStart;
|
|
19
|
+
};
|
|
20
|
+
/** Whether the void dialog should pre-tick "create adjustment credit note". */
|
|
21
|
+
export const shouldDefaultAdjustmentCreditNote = (invoiceDate, referenceDate = new Date()) => isBackdatedInvoiceDate(invoiceDate, referenceDate);
|
|
22
|
+
/** The request body for the void action, given the user's credit-note choice. */
|
|
23
|
+
export const buildVoidInvoiceSubmitBody = (createAdjustmentCreditNote, referenceDate = new Date()) => {
|
|
24
|
+
if (!createAdjustmentCreditNote) {
|
|
25
|
+
return {};
|
|
26
|
+
}
|
|
27
|
+
return {
|
|
28
|
+
create_adjustment_credit_note: true,
|
|
29
|
+
credit_note_date: toLocalIsoDate(referenceDate),
|
|
30
|
+
reason_code: 'invoice_voided',
|
|
31
|
+
};
|
|
32
|
+
};
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { EMPTY, of } from 'rxjs';
|
|
2
|
+
import { filter, mergeMap } from 'rxjs/operators';
|
|
3
|
+
import { getAddressByAddressId } from '../../../entity/address/addressSelector';
|
|
4
|
+
import { newAddressInLocalStore, } from '../../addressView/addressViewReducer';
|
|
5
|
+
import { INVOICING_BUSINESS_ADDRESS_TYPE, } from './invoicingBrandingFormConfig';
|
|
6
|
+
import { updateInvoicingSettings, } from './settingsViewReducer';
|
|
7
|
+
/**
|
|
8
|
+
* On `submitInvoicingBrandingForm`, PUT the settings body built from the branding
|
|
9
|
+
* draft + the business address captured via the shared Address screen. The
|
|
10
|
+
* address is sent as a structured object (same shape as the customer save flow);
|
|
11
|
+
* state is updated from the response — mirroring `saveInvoicingCustomerEpic`.
|
|
12
|
+
*/
|
|
13
|
+
export const initializeInvoicingBrandingAddressEpic = (actions$, state$) => actions$.pipe(filter(updateInvoicingSettings.match), mergeMap((action) => {
|
|
14
|
+
const rootState = state$.value;
|
|
15
|
+
const existing = rootState.addressViewState.newAddressState?.[INVOICING_BUSINESS_ADDRESS_TYPE]?.addressToCreate;
|
|
16
|
+
const addressId = action.payload.address?.address_id;
|
|
17
|
+
if (existing != null || addressId == null) {
|
|
18
|
+
return EMPTY;
|
|
19
|
+
}
|
|
20
|
+
const address = getAddressByAddressId(rootState.addressState, addressId);
|
|
21
|
+
return address != null
|
|
22
|
+
? of(newAddressInLocalStore({
|
|
23
|
+
addressType: INVOICING_BUSINESS_ADDRESS_TYPE,
|
|
24
|
+
addressToCreate: address,
|
|
25
|
+
}))
|
|
26
|
+
: EMPTY;
|
|
27
|
+
}));
|
|
@@ -1,11 +1,10 @@
|
|
|
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
|
-
import { getAddressByAddressId } from '../../../entity/address/addressSelector';
|
|
5
4
|
import { createZeniAPIStatus, isSuccessResponse } from '../../../responsePayload';
|
|
6
|
-
import {
|
|
5
|
+
import { resetNewAddressDataInLocalStore, } from '../../addressView/addressViewReducer';
|
|
7
6
|
import { INVOICING_BUSINESS_ADDRESS_TYPE, brandingLocalDataToSettingsPayload, entityToInvoicingBrandingFormLocalData, } from './invoicingBrandingFormConfig';
|
|
8
|
-
import { saveInvoicingSettingsFailure, saveInvoicingSettingsSuccess, submitInvoicingBrandingForm,
|
|
7
|
+
import { saveInvoicingSettingsFailure, saveInvoicingSettingsSuccess, submitInvoicingBrandingForm, } from './settingsViewReducer';
|
|
9
8
|
/**
|
|
10
9
|
* On `submitInvoicingBrandingForm`, PUT the settings body built from the branding
|
|
11
10
|
* draft + the business address captured via the shared Address screen. The
|
|
@@ -41,18 +40,3 @@ export const submitInvoicingBrandingFormEpic = (actions$, state$, zeniAPI) => ac
|
|
|
41
40
|
* load — looked up in the shared address store by `address_id`, same as the
|
|
42
41
|
* customer billing-address flow. Skips when an in-progress draft already exists.
|
|
43
42
|
*/
|
|
44
|
-
export const initializeInvoicingBrandingAddressEpic = (actions$, state$) => actions$.pipe(filter(updateInvoicingSettings.match), mergeMap((action) => {
|
|
45
|
-
const rootState = state$.value;
|
|
46
|
-
const existing = rootState.addressViewState.newAddressState?.[INVOICING_BUSINESS_ADDRESS_TYPE]?.addressToCreate;
|
|
47
|
-
const addressId = action.payload.address?.address_id;
|
|
48
|
-
if (existing != null || addressId == null) {
|
|
49
|
-
return EMPTY;
|
|
50
|
-
}
|
|
51
|
-
const address = getAddressByAddressId(rootState.addressState, addressId);
|
|
52
|
-
return address != null
|
|
53
|
-
? of(newAddressInLocalStore({
|
|
54
|
-
addressType: INVOICING_BUSINESS_ADDRESS_TYPE,
|
|
55
|
-
addressToCreate: address,
|
|
56
|
-
}))
|
|
57
|
-
: EMPTY;
|
|
58
|
-
}));
|
package/lib/index.d.ts
CHANGED
|
@@ -1143,14 +1143,15 @@ export { getEditInvoicingCouponDetailViewState, getInvoicingCouponFormView, } fr
|
|
|
1143
1143
|
export type { EditInvoicingCouponDetailView, InvoicingCouponFormView, } from './view/invoicing/editInvoicingCouponDetailView/editInvoicingCouponDetailViewSelector';
|
|
1144
1144
|
export { runInvoicingInvoiceAction, updateInvoicingInvoice, } from './view/invoicing/invoiceDetail/invoiceDetailReducer';
|
|
1145
1145
|
export type { InvoicingInvoiceActionKind, RunInvoicingInvoiceActionPayload, UpdateInvoicingInvoicePayload, } from './view/invoicing/invoiceDetail/invoiceDetailReducer';
|
|
1146
|
-
export type { VoidInvoiceBody } from './view/invoicing/invoiceDetail/
|
|
1146
|
+
export type { VoidInvoiceBody } from './view/invoicing/invoiceDetail/invoiceDetailPayload';
|
|
1147
|
+
export { buildVoidInvoiceSubmitBody, isBackdatedInvoiceDate, shouldDefaultAdjustmentCreditNote, } from './view/invoicing/invoiceDetail/voidInvoiceHelper';
|
|
1147
1148
|
export { fetchInvoicingCatalogItemDetailPage, runInvoicingCatalogPlanAction, runInvoicingCatalogProductAction, } from './view/invoicing/editInvoicingCatalogItemDetailView/editInvoicingCatalogItemDetailViewReducer';
|
|
1148
1149
|
export type { FetchInvoicingCatalogItemDetailPagePayload, RunInvoicingCatalogPlanActionPayload, RunInvoicingCatalogProductActionPayload, } from './view/invoicing/editInvoicingCatalogItemDetailView/editInvoicingCatalogItemDetailViewReducer';
|
|
1149
1150
|
export { runInvoicingDiscountAction } from './view/invoicing/editInvoicingCouponDetailView/editInvoicingCouponDetailViewReducer';
|
|
1150
1151
|
export type { RunInvoicingDiscountActionPayload } from './view/invoicing/editInvoicingCouponDetailView/editInvoicingCouponDetailViewReducer';
|
|
1151
1152
|
export { runInvoicingSubscriptionAction } from './view/invoicing/editInvoicingSubscriptionDetailView/editInvoicingSubscriptionDetailViewReducer';
|
|
1152
1153
|
export type { RunInvoicingSubscriptionActionPayload } from './view/invoicing/editInvoicingSubscriptionDetailView/editInvoicingSubscriptionDetailViewReducer';
|
|
1153
|
-
export type { InvoicingCancelSubscriptionValues } from './view/invoicing/editInvoicingSubscriptionDetailView/
|
|
1154
|
+
export type { InvoicingCancelSubscriptionValues } from './view/invoicing/editInvoicingSubscriptionDetailView/editInvoicingSubscriptionDetailViewPayload';
|
|
1154
1155
|
export { runInvoicingDunningAction } from './view/invoicing/invoicingDunningCaseDetailView/invoicingDunningCaseDetailViewReducer';
|
|
1155
1156
|
export type { RunInvoicingDunningActionPayload } from './view/invoicing/invoicingDunningCaseDetailView/invoicingDunningCaseDetailViewReducer';
|
|
1156
1157
|
export type { SaveInvoicingSettingsPayload } from './view/invoicing/settingsView/settingsViewReducer';
|
|
@@ -1169,7 +1170,8 @@ export { ALL_INVOICING_CUSTOMER_SORT_KEYS, ALL_INVOICING_CUSTOMER_TAB_IDS, INVOI
|
|
|
1169
1170
|
export type { InvoicingCustomerColumnConfig, InvoicingCustomerFilters, InvoicingCustomerSortKey, InvoicingCustomerTabId, } from './view/invoicing/invoicingCustomerListView/invoicingCustomerListViewState';
|
|
1170
1171
|
export { getInvoicingCustomerListView } from './view/invoicing/invoicingCustomerListView/invoicingCustomerListViewSelector';
|
|
1171
1172
|
export type { InvoicingCustomerListView } from './view/invoicing/invoicingCustomerListView/invoicingCustomerListViewSelector';
|
|
1172
|
-
export { fetchInvoicingCustomerDetail, fetchInvoicingCustomerDetailPage, } from './view/invoicing/editInvoicingCustomerDetailView/editInvoicingCustomerDetailViewReducer';
|
|
1173
|
+
export { fetchInvoicingCustomerDetail, fetchInvoicingCustomerDetailPage, fetchInvoicingPaymentLinkEmailPreviewPage, } from './view/invoicing/editInvoicingCustomerDetailView/editInvoicingCustomerDetailViewReducer';
|
|
1174
|
+
export type { InvoicingPaymentLinkEmailPreviewData } from './view/invoicing/editInvoicingCustomerDetailView/editInvoicingCustomerDetailViewPayload';
|
|
1173
1175
|
export { createInvoicingSetupIntent, fetchInvoicingPlaidLinkToken, resetInvoicingCustomerPaymentMethod, saveInvoicingPaymentMethod, sendInvoicingPaymentLink, } from './view/invoicing/customerPaymentMethod/customerPaymentMethodReducer';
|
|
1174
1176
|
export type { InvoicingSetupIntent } from './view/invoicing/customerPaymentMethod/customerPaymentMethodState';
|
|
1175
1177
|
export { getInvoicingPaymentLinkSendState, getInvoicingPaymentMethodSaveState, getInvoicingPlaidLinkToken, getInvoicingSentPaymentLinkEmail, getInvoicingSentPaymentLinkMagicUrl, getInvoicingSetupIntent, getInvoicingSetupIntentFetchState, } from './view/invoicing/customerPaymentMethod/customerPaymentMethodSelector';
|
package/lib/index.js
CHANGED
|
@@ -80,11 +80,11 @@ exports.getLastCreatedCardPolicyTemplateIds = exports.getLastCreatedCardPolicyTe
|
|
|
80
80
|
exports.fetchAutoTransferRules = exports.getTreasuryTaxLetters = exports.fetchTreasuryTaxLetterList = exports.getTreasuryStatements = exports.fetchTreasuryStatementList = exports.getTreasuryTransferMoney = exports.clearTreasuryTransferMoney = exports.updateTreasuryTransferMoneyLocalData = exports.executeTreasuryTransferMoney = exports.getTreasuryDetail = exports.updateTreasuryTransactionListUIState = exports.fetchTreasuryTransactionList = exports.fetchTreasuryOverviewDetail = exports.getUpdateCardPolicyFetchState = exports.getCardPolicyFormDraft = exports.getCardPolicyDetailView = exports.getCardPolicyDetailFetchState = exports.updateCardPolicyFormDraft = exports.updateCardPolicyFetchStatus = exports.updateCardPolicyDetailFetchStatus = exports.updateCardPolicy = exports.fetchCardPolicyDetail = exports.getCardPolicyTemplateIds = exports.getCardPolicyListView = exports.getCardPolicyListFetchState = exports.getArchiveCardPolicyFetchState = exports.updateCardPolicyListFetchStatus = exports.updateArchiveCardPolicyFetchStatus = exports.prependCardPolicyTemplateIds = exports.fetchCardPolicyList = exports.archiveCardPolicy = exports.toManualCardPolicyTemplateRequestFromDraft = exports.toBulkCardPolicyTemplateRequestsFromDraft = exports.toCardPolicyTemplateRequestFromDraft = exports.applyAiCardPolicyFormDraftUpdate = exports.deriveAiPolicyReviewRowsFromInputs = exports.buildManualCardPolicyFormDraftSeed = exports.buildUploadReviewRows = exports.buildEmptyLimitRows = exports.buildAiCardPolicyFormDraftSeed = exports.toVendorChipFieldValue = exports.toMccCategoryChipFieldValue = exports.buildVendorChipId = exports.buildMccCategoryChipId = exports.VENDOR_CHIP_ID_PREFIX = exports.MCC_CHIP_ID_PREFIX = exports.toMccCategoryLike = exports.CARD_POLICY_LIMIT_ROW_ID_TRANSACTION = exports.CARD_POLICY_LIMIT_ROW_ID_REQUIRE_RECEIPT = exports.getManualCardPolicyFormDraft = void 0;
|
|
81
81
|
exports.fetchInvoiceDetailPage = exports.fetchInvoiceDetail = exports.getInvoiceListView = exports.ALL_INVOICING_INVOICE_TAB_IDS = exports.updateInvoiceListFilters = exports.setInvoiceActiveTab = exports.fetchInvoiceListPage = exports.fetchInvoiceList = exports.fetchInvoiceKPIs = exports.fetchInvoiceCounts = exports.getInvoicesByIds = exports.getInvoiceById = exports.updateInvoices = exports.removeInvoice = exports.mapAuditLogEntry = exports.toAuditLogEntityRouteOption = exports.isInvoicingEntityLinkable = exports.buildInvoicingEntityPath = exports.toInvoicingDiscountLifecycleActionOption = exports.toInvoicingDiscountLifecycleAction = exports.toInvoicingCatalogProductLifecycleActionOption = exports.toInvoicingCatalogItemLifecycleActionOption = exports.toInvoicingCatalogProductLifecycleAction = exports.toInvoicingCatalogItemLifecycleAction = exports.toInvoicingSubscriptionLifecycleActionOption = exports.toInvoicingSubscriptionLifecycleAction = exports.toInvoicingDunningAction = exports.INVOICING_DISCOUNT_LIFECYCLE_ACTIONS = exports.INVOICING_CATALOG_PRODUCT_LIFECYCLE_ACTIONS = exports.INVOICING_CATALOG_ITEM_LIFECYCLE_ACTIONS = exports.INVOICING_SUBSCRIPTION_LIFECYCLE_ACTIONS = exports.INVOICING_DUNNING_ACTIONS = exports.toKycProvidedDocumentTypeFromAllowed = exports.toKycProvidedDocumentType = exports.DEFAULT_SESSION_CONFIG = exports.SessionManager = exports.getTransactionActivityLogView = exports.fetchTransactionActivityLog = exports.BULK_UPLOAD_BAR_COMPLETE_HOLD_MS = exports.BULK_UPLOAD_AUTOMATCHING_TIMEOUT_MS = exports.getAutoTransferRuleHistory = exports.getAutoTransferRuleById = exports.getAutoTransferRules = exports.clearRuleUpdateLocalData = exports.updateRuleLocalData = exports.fetchAutoTransferReviewDetail = exports.fetchAutoTransferRuleHistory = exports.deleteAutoTransferRule = exports.updateAutoTransferRule = exports.createAutoTransferRule = void 0;
|
|
82
82
|
exports.submitInvoicingCustomerFormFailure = exports.submitInvoicingCustomerForm = exports.resetEditInvoicingCustomerDetailView = exports.initializeInvoicingCustomerAddress = exports.getRecordPaymentView = exports.getRecordPaymentInvoiceOptions = exports.getRecordPaymentFormView = exports.getCreateInvoiceFormView = exports.getInvoicingAuditView = exports.fetchInvoicingAuditLog = exports.getInvoicingOverview = exports.buildPeriodOptions = exports.fetchInvoicingOverview = exports.clearInvoicingOverview = exports.initialRecordPaymentFormLocalData = exports.localDataToRecordPaymentPayload = exports.localDataToInvoiceRecordPaymentBody = exports.initializeRecordPaymentDraftFromInvoice = exports.getCreateCreditNoteView = exports.getCreateCreditNoteFormView = exports.initialCreateCreditNoteFormLocalData = exports.localDataToCreateCreditNotePayload = exports.updateCreateCreditNoteFormDraft = exports.submitCreateCreditNote = exports.resetCreateCreditNote = exports.createCreditNoteSuccess = exports.createCreditNoteFailure = exports.getIssueCreditNoteView = exports.initialIssueCreditNoteFormLocalData = exports.localDataToIssueCreditNotePayload = exports.initializeIssueCreditNoteDraftFromInvoice = exports.computeIssueCreditNoteTotal = exports.updateIssueCreditNoteFormDraft = exports.submitIssueCreditNote = exports.resetIssueCreditNote = exports.issueCreditNoteSuccess = exports.issueCreditNoteFailure = exports.initializeIssueCreditNoteDraft = exports.updateRecordPaymentFormDraft = exports.submitRecordPayment = exports.initializeRecordPaymentDraft = exports.resetRecordPayment = exports.initialInvoicingCreateInvoiceFormLocalData = exports.createInvoiceFormLocalDataToRequest = exports.blankInvoicingCreateInvoiceLineItem = exports.updateInvoicingCreateInvoiceFormDraft = exports.resetCreateInvoice = exports.fetchCreateInvoiceFormPage = exports.createInvoice = exports.getInvoiceDetail = void 0;
|
|
83
|
-
exports.
|
|
84
|
-
exports.
|
|
85
|
-
exports.
|
|
86
|
-
exports.
|
|
87
|
-
exports.isPendingReviewRow = exports.isRenderableOneTimeAccrual = exports.isOneTimeAccrualRow = exports.isExistingTabRow = exports.isAiAccountantSchedule = exports.isAccruedScheduleRow = exports.getJEScheduleRowType = exports.getExpenseAutomationJEOneTimeAccrualDetailView = exports.getInvoicingOnboardingGateView = exports.getInvoicingConfigView = exports.updateInvoicingConfig = exports.resetInvoicingConfigActionStates = exports.fetchInvoicingConfig = exports.enableInvoicing = exports.acceptInvoicingTerms = exports.toInvoicingQboCustomerMatchingMode = exports.toInvoicingNamedOptionsByKey = exports.getInvoicingQboAccountMappingId = exports.INVOICING_QBO_CUSTOMER_MATCHING_MODES = exports.getInvoicingQboView = exports.invoicingAccountsForQboAccountTypes = exports.startInvoicingQboBackfill = exports.retryInvoicingQboSyncTask = exports.fetchInvoicingQboSyncHealth = exports.fetchInvoicingQboConnection = exports.fetchInvoicingAccountingPickers = exports.isStripeConnectedFromSettings = exports.initialInvoicingBrandingFormLocalData = exports.entityToInvoicingBrandingFormLocalData = exports.INVOICING_BUSINESS_ADDRESS_TYPE = exports.invoicingQboSettingsLocalDataToPayload = exports.initialInvoicingQboSettingsLocalData = exports.entityToInvoicingQboSettingsLocalData = exports.getInvoicingSettingsView = exports.getInvoicingSettingsHubView = exports.getInvoicingSettingsFetchState = exports.getInvoicingSettings = exports.getInvoicingQboSettingsFormView = void 0;
|
|
83
|
+
exports.fetchInvoicingCatalogItemDetailPage = exports.shouldDefaultAdjustmentCreditNote = exports.isBackdatedInvoiceDate = exports.buildVoidInvoiceSubmitBody = exports.updateInvoicingInvoice = exports.runInvoicingInvoiceAction = exports.getInvoicingCouponFormView = exports.getEditInvoicingCouponDetailViewState = exports.initialInvoicingCouponFormLocalData = exports.entityToInvoicingCouponFormLocalData = exports.updateInvoicingCouponFormDraft = exports.submitInvoicingCouponForm = exports.saveInvoicingCoupon = exports.resetEditInvoicingCouponDetailView = exports.fetchInvoicingCouponDetailPage = exports.getSavedInvoicingCatalogItemKind = exports.getSavedInvoicingCatalogItemId = exports.getInvoicingCatalogItemFormView = exports.getInvoicingApplicableCatalogItemOptions = exports.isTieredCatalogPricingModel = exports.initialInvoicingCatalogItemFormLocalData = exports.invoicingProductToCatalogItemFormSubFamily = exports.entityToInvoicingCatalogItemFormLocalData = exports.blankInvoicingCatalogTier = exports.blankInvoicingCatalogSubFamily = exports.INVOICING_CATALOG_TIER_TYPE_VALUES = exports.INVOICING_CATALOG_PRORATION_VALUES = exports.INVOICING_CATALOG_PRICING_MODEL_VALUES = exports.INVOICING_CATALOG_APPLICABILITY_VALUES = exports.updateInvoicingCatalogItemFormDraft = exports.submitInvoicingCatalogItemForm = exports.resetEditInvoicingCatalogItemDetailView = exports.getInvoicingSubscriptionFormView = exports.getEditInvoicingSubscriptionDetailViewState = exports.toInvoicingSubscriptionQuantity = exports.invoicingSubscriptionTodayIso = exports.initialInvoicingSubscriptionFormLocalData = exports.entityToInvoicingSubscriptionFormLocalData = exports.INVOICING_SUBSCRIPTION_SHIPPING_ADDRESS_TYPE = exports.updateInvoicingSubscriptionFormDraft = exports.submitInvoicingSubscriptionForm = exports.resetEditInvoicingSubscriptionDetailView = exports.initializeInvoicingSubscriptionAddress = exports.fetchInvoicingSubscriptionFormPage = exports.getInvoicingCustomerFormView = exports.initialInvoicingCustomerFormLocalData = exports.entityToInvoicingCustomerFormLocalData = exports.INVOICING_CUSTOMER_BILLING_ADDRESS_TYPE = exports.updateInvoicingCustomerFormDraft = exports.submitInvoicingCustomerFormSuccess = void 0;
|
|
84
|
+
exports.fetchInvoicingSubscriptionList = exports.fetchInvoicingSubscriptionCounts = exports.updateInvoicingSubscriptions = exports.removeInvoicingSubscription = exports.resetPromotionalCreditAction = exports.submitAddPromotionalCredits = exports.getInvoicingSetupIntentFetchState = exports.getInvoicingSetupIntent = exports.getInvoicingSentPaymentLinkMagicUrl = exports.getInvoicingSentPaymentLinkEmail = exports.getInvoicingPlaidLinkToken = exports.getInvoicingPaymentMethodSaveState = exports.getInvoicingPaymentLinkSendState = exports.sendInvoicingPaymentLink = exports.saveInvoicingPaymentMethod = exports.resetInvoicingCustomerPaymentMethod = exports.fetchInvoicingPlaidLinkToken = exports.createInvoicingSetupIntent = exports.fetchInvoicingPaymentLinkEmailPreviewPage = exports.fetchInvoicingCustomerDetailPage = exports.fetchInvoicingCustomerDetail = exports.getInvoicingCustomerListView = exports.INVOICING_CUSTOMER_COLUMNS = exports.ALL_INVOICING_CUSTOMER_TAB_IDS = exports.ALL_INVOICING_CUSTOMER_SORT_KEYS = exports.updateInvoicingCustomerFilters = exports.setInvoicingCustomerActiveTab = exports.fetchInvoicingCustomerListPage = exports.fetchInvoicingCustomerList = exports.fetchInvoicingCustomerCounts = exports.updateInvoicingCustomers = exports.removeInvoicingCustomer = exports.INVOICING_LIST_PAGE_SIZE = exports.uploadInvoicingMigrationFiles = exports.startInvoicingMigration = exports.rollbackInvoicingMigration = exports.retryInvoicingMigration = exports.connectInvoicingChargebee = exports.getInvoicingDataImportView = exports.setInvoicingActiveMigrationSessionId = exports.fetchInvoicingMigrationSessions = exports.fetchInvoicingMigrationSession = exports.fetchInvoicingMigrationDiagnostics = exports.fetchInvoicingDataImportStatus = exports.runInvoicingPaymentAction = exports.runInvoicingDunningAction = exports.runInvoicingSubscriptionAction = exports.runInvoicingDiscountAction = exports.runInvoicingCatalogProductAction = exports.runInvoicingCatalogPlanAction = void 0;
|
|
85
|
+
exports.getInvoicingCouponListFilters = exports.getInvoicingCouponListFetchState = exports.getInvoicingCouponCounts = exports.INVOICING_COUPON_COLUMNS = exports.ALL_INVOICING_COUPON_TAB_IDS = exports.ALL_INVOICING_COUPON_SORT_KEYS = exports.updateInvoicingCouponFilters = exports.setInvoicingCouponActiveTab = exports.fetchInvoicingCouponListPage = exports.fetchInvoicingCouponList = exports.fetchInvoicingCouponCounts = exports.updateInvoicingCoupons = exports.removeInvoicingCoupon = exports.getInvoicingCreditNoteDetail = exports.getInvoicingCreditNoteById = exports.fetchInvoicingCreditNoteDetail = exports.getInvoicingCreditNoteListView = exports.INVOICING_CREDIT_NOTE_COLUMNS = exports.ALL_INVOICING_CREDIT_NOTE_TAB_IDS = exports.ALL_INVOICING_CREDIT_NOTE_SORT_KEYS = exports.updateInvoicingCreditNoteFilters = exports.setInvoicingCreditNoteActiveTab = exports.fetchInvoicingCreditNoteListPage = exports.fetchInvoicingCreditNoteList = exports.fetchInvoicingCreditNoteCounts = exports.updateInvoicingCreditNotes = exports.removeInvoicingCreditNote = exports.getInvoicingTransactionDetail = exports.getInvoicingTransactionById = exports.fetchInvoicingTransactionDetail = exports.getInvoicingTransactionListView = exports.INVOICING_TRANSACTION_COLUMNS = exports.ALL_INVOICING_TRANSACTION_TAB_IDS = exports.ALL_INVOICING_TRANSACTION_SORT_KEYS = exports.updateInvoicingTransactionFilters = exports.setInvoicingTransactionActiveTab = exports.fetchInvoicingTransactionListPage = exports.fetchInvoicingTransactionList = exports.updateInvoicingTransactions = exports.removeInvoicingTransaction = exports.getInvoicingSubscriptionById = exports.fetchInvoicingSubscriptionDetailPage = exports.fetchInvoicingSubscriptionDetail = exports.getInvoicingSubscriptionListView = exports.INVOICING_SUBSCRIPTION_COLUMNS = exports.ALL_INVOICING_SUBSCRIPTION_TAB_IDS = exports.ALL_INVOICING_SUBSCRIPTION_SORT_KEYS = exports.updateInvoicingSubscriptionFilters = exports.setInvoicingSubscriptionActiveTab = exports.fetchInvoicingSubscriptionListPage = void 0;
|
|
86
|
+
exports.submitInvoicingQboSettings = exports.submitInvoicingBrandingForm = exports.saveInvoicingSettings = exports.resetSaveInvoicingSettings = exports.resetInvoicingQboSettingsDraft = exports.resetInvoicingBrandingFormDraft = exports.fetchInvoicingSettings = exports.disconnectInvoicingStripe = exports.connectInvoicingStripe = exports.getInvoicingProductById = exports.getInvoicingPlanById = exports.fetchInvoicingCatalogItemDetail = exports.getInvoicingCatalogListView = exports.INVOICING_PRODUCT_COLUMNS = exports.ALL_INVOICING_PRODUCT_SORT_KEYS = exports.updateInvoicingCatalogProductFilters = exports.updateInvoicingCatalogPlanFilters = exports.fetchInvoicingCatalogProductList = exports.fetchInvoicingCatalogPlanList = exports.fetchInvoicingCatalogListPage = exports.fetchInvoicingCatalogCounts = exports.updateInvoicingProducts = exports.removeInvoicingProduct = exports.updateInvoicingPlans = exports.removeInvoicingPlan = exports.mergeInvoicingPlanSubFamily = exports.getInvoicingDunningEmailPreview = exports.getInvoicingDunningCaseDetail = exports.getInvoicingDunningCaseById = exports.invalidateInvoicingDunningEmailPreview = exports.fetchInvoicingDunningEmailPreviewPage = exports.fetchInvoicingDunningCaseDetail = exports.clearInvoicingDunningCaseDetailView = exports.getInvoicingDunningCaseListView = exports.INVOICING_DUNNING_CASE_COLUMNS = exports.ALL_INVOICING_DUNNING_CASE_TAB_IDS = exports.ALL_INVOICING_DUNNING_CASE_SORT_KEYS = exports.updateInvoicingDunningCaseFilters = exports.setInvoicingDunningCaseActiveTab = exports.fetchInvoicingDunningCaseListPage = exports.fetchInvoicingDunningCaseList = exports.fetchInvoicingDunningCaseCounts = exports.updateInvoicingDunningCases = exports.removeInvoicingDunningCase = exports.fetchInvoicingCouponDetail = exports.getInvoicingCouponById = exports.getInvoicingCouponListView = exports.getInvoicingCouponListNextCursor = exports.getInvoicingCouponListItems = exports.getInvoicingCouponListHasMore = void 0;
|
|
87
|
+
exports.isPendingReviewRow = exports.isRenderableOneTimeAccrual = exports.isOneTimeAccrualRow = exports.isExistingTabRow = exports.isAiAccountantSchedule = exports.isAccruedScheduleRow = exports.getJEScheduleRowType = exports.getExpenseAutomationJEOneTimeAccrualDetailView = exports.getInvoicingOnboardingGateView = exports.getInvoicingConfigView = exports.updateInvoicingConfig = exports.resetInvoicingConfigActionStates = exports.fetchInvoicingConfig = exports.enableInvoicing = exports.acceptInvoicingTerms = exports.toInvoicingQboCustomerMatchingMode = exports.toInvoicingNamedOptionsByKey = exports.getInvoicingQboAccountMappingId = exports.INVOICING_QBO_CUSTOMER_MATCHING_MODES = exports.getInvoicingQboView = exports.invoicingAccountsForQboAccountTypes = exports.startInvoicingQboBackfill = exports.retryInvoicingQboSyncTask = exports.fetchInvoicingQboSyncHealth = exports.fetchInvoicingQboConnection = exports.fetchInvoicingAccountingPickers = exports.isStripeConnectedFromSettings = exports.initialInvoicingBrandingFormLocalData = exports.entityToInvoicingBrandingFormLocalData = exports.INVOICING_BUSINESS_ADDRESS_TYPE = exports.invoicingQboSettingsLocalDataToPayload = exports.initialInvoicingQboSettingsLocalData = exports.entityToInvoicingQboSettingsLocalData = exports.getInvoicingSettingsView = exports.getInvoicingSettingsHubView = exports.getInvoicingSettingsFetchState = exports.getInvoicingSettings = exports.getInvoicingQboSettingsFormView = exports.getInvoicingBrandingFormView = exports.updateInvoicingSettings = exports.updateInvoicingQboSettingsDraft = exports.updateInvoicingBrandingFormDraft = void 0;
|
|
88
88
|
const allowedValue_1 = require("./commonStateTypes/allowedValue");
|
|
89
89
|
Object.defineProperty(exports, "isAllowedValueWithCode", { enumerable: true, get: function () { return allowedValue_1.isAllowedValueWithCode; } });
|
|
90
90
|
Object.defineProperty(exports, "isAllowedValueWithID", { enumerable: true, get: function () { return allowedValue_1.isAllowedValueWithID; } });
|
|
@@ -2914,6 +2914,10 @@ Object.defineProperty(exports, "getInvoicingCouponFormView", { enumerable: true,
|
|
|
2914
2914
|
var invoiceDetailReducer_2 = require("./view/invoicing/invoiceDetail/invoiceDetailReducer");
|
|
2915
2915
|
Object.defineProperty(exports, "runInvoicingInvoiceAction", { enumerable: true, get: function () { return invoiceDetailReducer_2.runInvoicingInvoiceAction; } });
|
|
2916
2916
|
Object.defineProperty(exports, "updateInvoicingInvoice", { enumerable: true, get: function () { return invoiceDetailReducer_2.updateInvoicingInvoice; } });
|
|
2917
|
+
var voidInvoiceHelper_1 = require("./view/invoicing/invoiceDetail/voidInvoiceHelper");
|
|
2918
|
+
Object.defineProperty(exports, "buildVoidInvoiceSubmitBody", { enumerable: true, get: function () { return voidInvoiceHelper_1.buildVoidInvoiceSubmitBody; } });
|
|
2919
|
+
Object.defineProperty(exports, "isBackdatedInvoiceDate", { enumerable: true, get: function () { return voidInvoiceHelper_1.isBackdatedInvoiceDate; } });
|
|
2920
|
+
Object.defineProperty(exports, "shouldDefaultAdjustmentCreditNote", { enumerable: true, get: function () { return voidInvoiceHelper_1.shouldDefaultAdjustmentCreditNote; } });
|
|
2917
2921
|
var editInvoicingCatalogItemDetailViewReducer_2 = require("./view/invoicing/editInvoicingCatalogItemDetailView/editInvoicingCatalogItemDetailViewReducer");
|
|
2918
2922
|
Object.defineProperty(exports, "fetchInvoicingCatalogItemDetailPage", { enumerable: true, get: function () { return editInvoicingCatalogItemDetailViewReducer_2.fetchInvoicingCatalogItemDetailPage; } });
|
|
2919
2923
|
Object.defineProperty(exports, "runInvoicingCatalogPlanAction", { enumerable: true, get: function () { return editInvoicingCatalogItemDetailViewReducer_2.runInvoicingCatalogPlanAction; } });
|
|
@@ -2961,6 +2965,7 @@ Object.defineProperty(exports, "getInvoicingCustomerListView", { enumerable: tru
|
|
|
2961
2965
|
var editInvoicingCustomerDetailViewReducer_2 = require("./view/invoicing/editInvoicingCustomerDetailView/editInvoicingCustomerDetailViewReducer");
|
|
2962
2966
|
Object.defineProperty(exports, "fetchInvoicingCustomerDetail", { enumerable: true, get: function () { return editInvoicingCustomerDetailViewReducer_2.fetchInvoicingCustomerDetail; } });
|
|
2963
2967
|
Object.defineProperty(exports, "fetchInvoicingCustomerDetailPage", { enumerable: true, get: function () { return editInvoicingCustomerDetailViewReducer_2.fetchInvoicingCustomerDetailPage; } });
|
|
2968
|
+
Object.defineProperty(exports, "fetchInvoicingPaymentLinkEmailPreviewPage", { enumerable: true, get: function () { return editInvoicingCustomerDetailViewReducer_2.fetchInvoicingPaymentLinkEmailPreviewPage; } });
|
|
2964
2969
|
// ── Invoicing: customer payment methods ───────────────────────────────────────
|
|
2965
2970
|
var customerPaymentMethodReducer_1 = require("./view/invoicing/customerPaymentMethod/customerPaymentMethodReducer");
|
|
2966
2971
|
Object.defineProperty(exports, "createInvoicingSetupIntent", { enumerable: true, get: function () { return customerPaymentMethodReducer_1.createInvoicingSetupIntent; } });
|
package/lib/view/invoicing/couponView/{couponViewEpics.d.ts → fetchInvoicingCouponCountsEpic.d.ts}
RENAMED
|
@@ -5,11 +5,13 @@ import { RootState } from '../../../rootStateTypes';
|
|
|
5
5
|
import { ZeniAPI } from '../../../zeniAPI';
|
|
6
6
|
import { fetchInvoicingCouponCounts, fetchInvoicingCouponList, fetchInvoicingCouponListPage, updateInvoicingCouponCounts, updateInvoicingCouponCountsFailure, updateInvoicingCouponList, updateInvoicingCouponListFailure } from './couponViewReducer';
|
|
7
7
|
export type ActionType = ReturnType<typeof fetchInvoicingCouponList> | ReturnType<typeof fetchInvoicingCouponListPage> | ReturnType<typeof fetchInvoicingCouponCounts> | ReturnType<typeof updateInvoicingCouponList> | ReturnType<typeof updateInvoicingCouponListFailure> | ReturnType<typeof updateInvoicingCouponCounts> | ReturnType<typeof updateInvoicingCouponCountsFailure> | ReturnType<typeof updateInvoicingCoupons>;
|
|
8
|
-
|
|
8
|
+
/**
|
|
9
|
+
* Fetch unless the endpoint is already loaded or in flight — or always when the
|
|
10
|
+
* caller forces a refresh via `cacheOverride` (e.g. on a filter/sort change).
|
|
11
|
+
*/
|
|
9
12
|
export declare const fetchInvoicingCouponCountsEpic: (actions$: ActionsObservable<ActionType>, state$: StateObservable<RootState>, zeniAPI: ZeniAPI) => Observable<ActionType>;
|
|
10
13
|
/**
|
|
11
14
|
* Orchestrates the discounts list page: on `fetchInvoicingCouponListPage`, fans
|
|
12
15
|
* out to the list and counts fetches, skipping any whose data is already
|
|
13
16
|
* cached unless `cacheOverride` is set (e.g. on a filter/sort change).
|
|
14
17
|
*/
|
|
15
|
-
export declare const fetchInvoicingCouponListPageEpic: (actions$: ActionsObservable<ActionType>, state$: StateObservable<RootState>) => Observable<ActionType>;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.fetchInvoicingCouponCountsEpic = void 0;
|
|
4
|
+
const rxjs_1 = require("rxjs");
|
|
5
|
+
const operators_1 = require("rxjs/operators");
|
|
6
|
+
const responsePayload_1 = require("../../../responsePayload");
|
|
7
|
+
const invoicingApiHelper_1 = require("../invoicingApiHelper");
|
|
8
|
+
const couponViewReducer_1 = require("./couponViewReducer");
|
|
9
|
+
/**
|
|
10
|
+
* Fetch unless the endpoint is already loaded or in flight — or always when the
|
|
11
|
+
* caller forces a refresh via `cacheOverride` (e.g. on a filter/sort change).
|
|
12
|
+
*/
|
|
13
|
+
const fetchInvoicingCouponCountsEpic = (actions$, state$, zeniAPI) => actions$.pipe((0, operators_1.filter)(couponViewReducer_1.fetchInvoicingCouponCounts.match), (0, operators_1.switchMap)(() => {
|
|
14
|
+
const { filters } = state$.value.invoicingCouponViewState;
|
|
15
|
+
const params = new URLSearchParams();
|
|
16
|
+
if (filters.search != null && filters.search.length > 0) {
|
|
17
|
+
params.set('search', filters.search);
|
|
18
|
+
}
|
|
19
|
+
const apiUrl = (0, invoicingApiHelper_1.withQuery)(`${zeniAPI.apiEndPoints.invoicingMicroServiceBaseUrl}/1.0/discounts/counts`, params);
|
|
20
|
+
return zeniAPI.getJSON(apiUrl).pipe((0, operators_1.switchMap)((response) => {
|
|
21
|
+
if ((0, responsePayload_1.isSuccessResponse)(response) && response.data != null) {
|
|
22
|
+
return (0, rxjs_1.of)((0, couponViewReducer_1.updateInvoicingCouponCounts)(response.data));
|
|
23
|
+
}
|
|
24
|
+
return (0, rxjs_1.of)((0, couponViewReducer_1.updateInvoicingCouponCountsFailure)(response.status));
|
|
25
|
+
}), (0, operators_1.catchError)((error) => (0, rxjs_1.of)((0, couponViewReducer_1.updateInvoicingCouponCountsFailure)((0, responsePayload_1.createZeniAPIStatus)('Unexpected Error', 'Fetch discount counts REST API call errored out ' +
|
|
26
|
+
JSON.stringify(error))))));
|
|
27
|
+
}));
|
|
28
|
+
exports.fetchInvoicingCouponCountsEpic = fetchInvoicingCouponCountsEpic;
|
|
29
|
+
/**
|
|
30
|
+
* Orchestrates the discounts list page: on `fetchInvoicingCouponListPage`, fans
|
|
31
|
+
* out to the list and counts fetches, skipping any whose data is already
|
|
32
|
+
* cached unless `cacheOverride` is set (e.g. on a filter/sort change).
|
|
33
|
+
*/
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { ActionsObservable, StateObservable } from 'redux-observable';
|
|
2
|
+
import { Observable } from 'rxjs';
|
|
3
|
+
import { updateInvoicingCoupons } from '../../../entity/invoicing/coupon/couponReducer';
|
|
4
|
+
import { RootState } from '../../../rootStateTypes';
|
|
5
|
+
import { ZeniAPI } from '../../../zeniAPI';
|
|
6
|
+
import { fetchInvoicingCouponCounts, fetchInvoicingCouponList, fetchInvoicingCouponListPage, updateInvoicingCouponCounts, updateInvoicingCouponCountsFailure, updateInvoicingCouponList, updateInvoicingCouponListFailure } from './couponViewReducer';
|
|
7
|
+
export type ActionType = ReturnType<typeof fetchInvoicingCouponList> | ReturnType<typeof fetchInvoicingCouponListPage> | ReturnType<typeof fetchInvoicingCouponCounts> | ReturnType<typeof updateInvoicingCouponList> | ReturnType<typeof updateInvoicingCouponListFailure> | ReturnType<typeof updateInvoicingCouponCounts> | ReturnType<typeof updateInvoicingCouponCountsFailure> | ReturnType<typeof updateInvoicingCoupons>;
|
|
8
|
+
export declare const fetchInvoicingCouponListEpic: (actions$: ActionsObservable<ActionType>, _state$: StateObservable<RootState>, zeniAPI: ZeniAPI) => Observable<ActionType>;
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.fetchInvoicingCouponListEpic = void 0;
|
|
4
|
+
const rxjs_1 = require("rxjs");
|
|
5
|
+
const operators_1 = require("rxjs/operators");
|
|
6
|
+
const couponReducer_1 = require("../../../entity/invoicing/coupon/couponReducer");
|
|
7
|
+
const responsePayload_1 = require("../../../responsePayload");
|
|
8
|
+
const invoicingApiHelper_1 = require("../invoicingApiHelper");
|
|
9
|
+
const couponViewReducer_1 = require("./couponViewReducer");
|
|
10
|
+
/**
|
|
11
|
+
* Fetch unless the endpoint is already loaded or in flight — or always when the
|
|
12
|
+
* caller forces a refresh via `cacheOverride` (e.g. on a filter/sort change).
|
|
13
|
+
*/
|
|
14
|
+
const buildQuery = (filters, cursor, sort) => {
|
|
15
|
+
const params = new URLSearchParams();
|
|
16
|
+
if (filters.search != null && filters.search.length > 0) {
|
|
17
|
+
params.set('search', filters.search);
|
|
18
|
+
}
|
|
19
|
+
params.set('limit', String(invoicingApiHelper_1.INVOICING_LIST_PAGE_SIZE));
|
|
20
|
+
if (cursor != null) {
|
|
21
|
+
params.set('cursor', cursor);
|
|
22
|
+
}
|
|
23
|
+
(0, invoicingApiHelper_1.applyListSortParams)(params, sort);
|
|
24
|
+
return params;
|
|
25
|
+
};
|
|
26
|
+
const fetchInvoicingCouponListEpic = (actions$, _state$, zeniAPI) => actions$.pipe((0, operators_1.filter)(couponViewReducer_1.fetchInvoicingCouponList.match), (0, operators_1.switchMap)((action) => {
|
|
27
|
+
const { filters, cursor, keepExistingListItems, sort } = action.payload;
|
|
28
|
+
const apiUrl = (0, invoicingApiHelper_1.withQuery)(`${zeniAPI.apiEndPoints.invoicingMicroServiceBaseUrl}/1.0/discounts`, buildQuery(filters, cursor, sort));
|
|
29
|
+
return zeniAPI.getJSON(apiUrl).pipe((0, operators_1.switchMap)((response) => {
|
|
30
|
+
if ((0, responsePayload_1.isSuccessResponse)(response)) {
|
|
31
|
+
const items = response.data?.items ?? [];
|
|
32
|
+
return [
|
|
33
|
+
(0, couponReducer_1.updateInvoicingCoupons)(items, 'merge'),
|
|
34
|
+
(0, couponViewReducer_1.updateInvoicingCouponList)({
|
|
35
|
+
ids: items.map((item) => item.id),
|
|
36
|
+
nextCursor: response.data?.next_cursor ?? null,
|
|
37
|
+
keepExistingListItems,
|
|
38
|
+
}),
|
|
39
|
+
];
|
|
40
|
+
}
|
|
41
|
+
return (0, rxjs_1.of)((0, couponViewReducer_1.updateInvoicingCouponListFailure)(response.status));
|
|
42
|
+
}), (0, operators_1.catchError)((error) => (0, rxjs_1.of)((0, couponViewReducer_1.updateInvoicingCouponListFailure)((0, responsePayload_1.createZeniAPIStatus)('Unexpected Error', 'Fetch discount list REST API call errored out ' +
|
|
43
|
+
JSON.stringify(error))))));
|
|
44
|
+
}));
|
|
45
|
+
exports.fetchInvoicingCouponListEpic = fetchInvoicingCouponListEpic;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { ActionsObservable, StateObservable } from 'redux-observable';
|
|
2
|
+
import { Observable } from 'rxjs';
|
|
3
|
+
import { updateInvoicingCoupons } from '../../../entity/invoicing/coupon/couponReducer';
|
|
4
|
+
import { RootState } from '../../../rootStateTypes';
|
|
5
|
+
import { fetchInvoicingCouponCounts, fetchInvoicingCouponList, fetchInvoicingCouponListPage, updateInvoicingCouponCounts, updateInvoicingCouponCountsFailure, updateInvoicingCouponList, updateInvoicingCouponListFailure } from './couponViewReducer';
|
|
6
|
+
export type ActionType = ReturnType<typeof fetchInvoicingCouponList> | ReturnType<typeof fetchInvoicingCouponListPage> | ReturnType<typeof fetchInvoicingCouponCounts> | ReturnType<typeof updateInvoicingCouponList> | ReturnType<typeof updateInvoicingCouponListFailure> | ReturnType<typeof updateInvoicingCouponCounts> | ReturnType<typeof updateInvoicingCouponCountsFailure> | ReturnType<typeof updateInvoicingCoupons>;
|
|
7
|
+
export declare const fetchInvoicingCouponListPageEpic: (actions$: ActionsObservable<ActionType>, state$: StateObservable<RootState>) => Observable<ActionType>;
|