@zeniai/client-epic-state 5.2.32-betaAK6 → 5.2.32
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/commonStateTypes/fiscalYearHelpers/getFYMonths.d.ts +2 -2
- package/lib/commonStateTypes/fiscalYearHelpers/getFYQuarterAndYear.d.ts +2 -2
- package/lib/commonStateTypes/timePeriod.d.ts +4 -4
- package/lib/commonStateTypes/viewAndReport/viewAndReport.d.ts +1 -1
- package/lib/entity/accountGroup/accountGroupState.d.ts +1 -1
- package/lib/entity/class/classReducer.d.ts +4 -4
- package/lib/entity/class/classState.d.ts +1 -1
- package/lib/entity/forecast/forecastState.d.ts +1 -1
- package/lib/entity/sectionAccountsView/sectionAccountsView.d.ts +1 -1
- package/lib/entity/sectionClassesViewV2/sectionClassesView.d.ts +1 -1
- package/lib/entity/sectionClassesViewV2/sectionClassesViewReducer.d.ts +2 -2
- package/lib/entity/sectionProjectView/sectionProjectView.d.ts +1 -1
- package/lib/entity/sectionProjectView/sectionProjectViewReducer.d.ts +2 -2
- package/lib/entity/tenant/tenantSelector.d.ts +1 -1
- package/lib/epic.d.ts +25 -24
- package/lib/epic.js +29 -27
- package/lib/esm/epic.js +29 -27
- package/lib/esm/index.js +1 -1
- package/lib/esm/view/companyMonthEndReportView/epics/saveCompanyMonthEndReportEpic.js +1 -1
- package/lib/esm/view/companyMonthEndReportView/epics/sendCompanyMonthEndReportEpic.js +1 -1
- package/lib/esm/view/expenseAutomationView/epics/jeSchedule/newSchedule/createOneTimeAccrualEpic.js +1 -1
- package/lib/esm/view/expenseAutomationView/epics/jeSchedule/newSchedule/saveNewScheduleEpic.js +2 -2
- package/lib/esm/view/expenseAutomationView/epics/jeSchedule/revertJeScheduleEpic.js +2 -2
- package/lib/esm/view/expenseAutomationView/epics/transactionCategorization/backgroundRefetchReviewTabEpic.js +2 -1
- package/lib/esm/view/expenseAutomationView/helpers/newScheduleLocalDataHelper.js +1 -1
- package/lib/esm/view/expenseAutomationView/helpers/reconciliationHelpers.js +2 -2
- package/lib/esm/view/invoicing/couponView/couponViewSelector.js +1 -1
- package/lib/esm/view/invoicing/couponView/fetchInvoicingCouponCountsEpic.js +1 -1
- package/lib/esm/view/invoicing/customerPaymentMethod/sendInvoicingPaymentLinkEpic.js +2 -2
- package/lib/esm/view/invoicing/editInvoicingCatalogItemDetailView/fetchInvoicingCatalogItemDetailEpic.js +4 -1
- package/lib/esm/view/invoicing/editInvoicingCouponDetailView/editInvoicingCouponDetailViewReducer.js +4 -1
- package/lib/esm/view/invoicing/editInvoicingCustomerDetailView/editInvoicingCustomerDetailViewSelector.js +4 -4
- package/lib/esm/view/invoicing/editInvoicingCustomerDetailView/fetchInvoicingCustomerDetailPageEpic.js +9 -1
- package/lib/esm/view/invoicing/editInvoicingCustomerDetailView/fetchInvoicingPaymentLinkEmailPreviewEpic.js +1 -1
- package/lib/esm/view/invoicing/editInvoicingSubscriptionDetailView/editInvoicingSubscriptionDetailViewSelector.js +2 -2
- package/lib/esm/view/invoicing/editInvoicingSubscriptionDetailView/fetchInvoicingSubscriptionDetailPageEpic.js +8 -2
- package/lib/esm/view/invoicing/editInvoicingSubscriptionDetailView/seedInvoicingSubscriptionFormDraftEpic.js +1 -1
- package/lib/esm/view/invoicing/invoiceDetail/invoiceDetailSelector.js +2 -2
- package/lib/esm/view/invoicing/invoiceDetail/updateInvoicingInvoiceEpic.js +1 -1
- package/lib/esm/view/invoicing/invoiceList/invoiceListSelector.js +1 -1
- package/lib/esm/view/invoicing/invoicingDunningCaseDetailView/fetchInvoicingDunningCaseDetailPageEpic.js +29 -0
- package/lib/esm/view/invoicing/invoicingDunningCaseDetailView/invoicingDunningCaseDetailViewReducer.js +18 -1
- package/lib/esm/view/invoicing/invoicingSubscriptionListView/invoicingSubscriptionListViewSelector.js +1 -1
- package/lib/esm/view/invoicing/settingsView/initializeInvoicingBrandingAddressEpic.js +1 -1
- package/lib/esm/view/invoicing/settingsView/submitInvoicingBrandingFormEpic.js +1 -1
- package/lib/index.d.ts +1 -1
- package/lib/index.js +3 -2
- package/lib/view/addressView/addressViewSelector.d.ts +1 -1
- package/lib/view/auditReportView/auditReportViewState.d.ts +1 -1
- package/lib/view/billPayCard/billPayCardSelector.d.ts +2 -2
- package/lib/view/cardBalance/cardBalanceSelector.d.ts +2 -2
- package/lib/view/cashBalance/cashBalanceSelector.d.ts +2 -2
- package/lib/view/cashInCashOut/cashInCashOutSelector.d.ts +2 -2
- package/lib/view/cashPosition/cashPositionSelector.d.ts +2 -2
- package/lib/view/commonVendorView/transactionVendorView/transactionVendorViewPayload.d.ts +1 -1
- package/lib/view/commonVendorView/vendorView/vendorViewPayload.d.ts +1 -1
- package/lib/view/commonVendorView/vendorsTabVendorView/vendorsTabVendorViewPayload.d.ts +1 -1
- package/lib/view/companyHealthMetricView/companyHealthMetricViewSelector.d.ts +1 -1
- package/lib/view/companyMonthEndReportView/epics/saveCompanyMonthEndReportEpic.js +1 -1
- package/lib/view/companyMonthEndReportView/epics/sendCompanyMonthEndReportEpic.js +1 -1
- package/lib/view/dashboard/dashboardReducer.d.ts +2 -2
- package/lib/view/expenseAutomationView/epics/jeSchedule/newSchedule/createOneTimeAccrualEpic.js +1 -1
- package/lib/view/expenseAutomationView/epics/jeSchedule/newSchedule/saveNewScheduleEpic.d.ts +1 -1
- package/lib/view/expenseAutomationView/epics/jeSchedule/newSchedule/saveNewScheduleEpic.js +2 -2
- package/lib/view/expenseAutomationView/epics/jeSchedule/revertJeScheduleEpic.d.ts +1 -1
- package/lib/view/expenseAutomationView/epics/jeSchedule/revertJeScheduleEpic.js +2 -2
- package/lib/view/expenseAutomationView/epics/transactionCategorization/backgroundRefetchReviewTabEpic.js +2 -1
- package/lib/view/expenseAutomationView/helpers/newScheduleLocalDataHelper.js +1 -1
- package/lib/view/expenseAutomationView/helpers/reconciliationHelpers.js +2 -2
- package/lib/view/expenseAutomationView/types/transactionsViewState.d.ts +1 -1
- package/lib/view/financeStatement/financeStatementReducer.d.ts +1 -1
- package/lib/view/globalMerchantView/globalMerchantViewReducer.d.ts +2 -2
- package/lib/view/invoicing/couponView/couponViewSelector.js +1 -1
- package/lib/view/invoicing/customerPaymentMethod/sendInvoicingPaymentLinkEpic.js +2 -2
- package/lib/view/invoicing/editInvoicingCatalogItemDetailView/editInvoicingCatalogItemDetailViewReducer.d.ts +2 -2
- package/lib/view/invoicing/editInvoicingCatalogItemDetailView/fetchInvoicingCatalogItemDetailEpic.js +4 -1
- package/lib/view/invoicing/editInvoicingCouponDetailView/editInvoicingCouponDetailViewReducer.js +4 -1
- package/lib/view/invoicing/editInvoicingCustomerDetailView/editInvoicingCustomerDetailViewReducer.d.ts +1 -1
- package/lib/view/invoicing/editInvoicingCustomerDetailView/editInvoicingCustomerDetailViewSelector.d.ts +3 -3
- package/lib/view/invoicing/editInvoicingCustomerDetailView/editInvoicingCustomerDetailViewSelector.js +4 -4
- package/lib/view/invoicing/editInvoicingCustomerDetailView/editInvoicingCustomerDetailViewState.d.ts +1 -1
- package/lib/view/invoicing/editInvoicingCustomerDetailView/fetchInvoicingCustomerDetailPageEpic.d.ts +2 -2
- package/lib/view/invoicing/editInvoicingCustomerDetailView/fetchInvoicingCustomerDetailPageEpic.js +8 -0
- package/lib/view/invoicing/editInvoicingCustomerDetailView/fetchInvoicingPaymentLinkEmailPreviewEpic.js +1 -1
- package/lib/view/invoicing/editInvoicingSubscriptionDetailView/editInvoicingSubscriptionDetailViewReducer.d.ts +1 -1
- package/lib/view/invoicing/editInvoicingSubscriptionDetailView/editInvoicingSubscriptionDetailViewSelector.js +1 -1
- package/lib/view/invoicing/editInvoicingSubscriptionDetailView/fetchInvoicingSubscriptionDetailPageEpic.js +8 -2
- package/lib/view/invoicing/editInvoicingSubscriptionDetailView/seedInvoicingSubscriptionFormDraftEpic.js +1 -1
- package/lib/view/invoicing/invoiceDetail/invoiceDetailReducer.d.ts +1 -1
- package/lib/view/invoicing/invoiceDetail/invoiceDetailSelector.js +2 -2
- package/lib/view/invoicing/invoiceList/invoiceListSelector.js +1 -1
- package/lib/view/invoicing/invoicingDunningCaseDetailView/fetchInvoicingDunningCaseDetailPageEpic.d.ts +12 -0
- package/lib/view/invoicing/invoicingDunningCaseDetailView/fetchInvoicingDunningCaseDetailPageEpic.js +33 -0
- package/lib/view/invoicing/invoicingDunningCaseDetailView/invoicingDunningCaseDetailViewReducer.d.ts +8 -2
- package/lib/view/invoicing/invoicingDunningCaseDetailView/invoicingDunningCaseDetailViewReducer.js +19 -2
- package/lib/view/invoicing/invoicingDunningCaseDetailView/invoicingDunningCaseDetailViewSelector.d.ts +1 -1
- package/lib/view/invoicing/invoicingSubscriptionListView/invoicingSubscriptionListViewSelector.js +1 -1
- package/lib/view/opExByVendor/refreshOpExByVendorReportEpic.d.ts +1 -1
- package/lib/view/reimbursementCard/reimbursementCardSelector.d.ts +2 -2
- package/lib/view/reportUIOptions/reportUIOptionsReducer.d.ts +8 -8
- package/lib/view/reportsResync/reportsResyncReducer.d.ts +2 -2
- package/lib/view/scheduleView/scheduleListView/scheduleListTypes.d.ts +1 -1
- package/lib/view/tasksCard/fetchTasksCardEpic.d.ts +1 -1
- package/lib/view/tasksCard/tasksCardSelector.d.ts +2 -2
- package/lib/view/topEx/topExSelector.d.ts +2 -2
- package/package.json +1 -1
|
@@ -3,9 +3,9 @@ import { ZeniAPIStatus } from '../../responsePayload';
|
|
|
3
3
|
import { VendorReviewViewAllRecommendationsPayload } from '../vendorReviewView/common/payload/commonTypesPayloadShapes';
|
|
4
4
|
import { GlobalMerchantViewState, GlobalRecommendationFetchSource, NewGlobalMerchantCurrentSelection } from './globalMerchantViewState';
|
|
5
5
|
export declare const initialState: GlobalMerchantViewState;
|
|
6
|
-
export declare const createGlobalMerchant: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[merchantId?: string | undefined, context?: "
|
|
6
|
+
export declare const createGlobalMerchant: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[merchantId?: string | undefined, context?: "cash_balance" | "card_balance" | "expense_automation_card" | "operating_expenses" | "operating_expenses_by_classes" | "operating_expenses_by_projects" | "revenue" | "revenue_by_classes" | "revenue_by_projects" | "net_burn_or_income" | "net_burn_or_income_story_card" | "net_burn_or_income_by_classes" | "net_burn_or_income_by_projects" | "cash_position" | "top_expenses" | "profit_and_loss" | "profit_and_loss_by_classes" | "profit_and_loss_by_projects" | "balance_sheet" | "balance_sheet_by_classes" | "balance_sheet_by_projects" | "cash_flow" | "cash_flow_by_classes" | "cash_flow_by_projects" | "dashboard" | "finance_statement" | "transaction_list_of_account" | "transaction_list_missing_receipt" | "transaction_list_of_account_by_class" | "transaction_list_of_account_by_project" | "transaction_detail" | "cash_in_cash_out" | "insights_dashboard" | "company_details" | "class_list" | "account_list" | "account_list_by_type" | "vendor" | "task_card" | "bill_pay" | "reimbursement" | "bill_pay_card" | "reimbursement_card" | "bill_pay_promo_card" | "zeni_accounts" | "zeni_accounts_promo_card" | "zeni_treasury" | "charge_cards" | "other_connection" | "reimbursement_promo_card" | "onboarding" | "operating_expenses_by_vendor" | "operating_expenses_by_vendor_summary" | "vendors_tab" | "accounts_payable_aging" | "accounts_receivable_aging" | "vendor_global_review" | "prepaid_expenses" | "fixed_assets" | "notification" | "rewards_card" | "billing" | "flux_analysis_operating_expense" | "account_reconciliation" | "zeni_credit_promo_card" | "treasury_promo_card" | "excluded_account_reconciliation" | "transfer_accounts" | "credit_card_transfer_accounts" | undefined], {
|
|
7
7
|
merchantId: string | undefined;
|
|
8
|
-
context: "
|
|
8
|
+
context: "cash_balance" | "card_balance" | "expense_automation_card" | "operating_expenses" | "operating_expenses_by_classes" | "operating_expenses_by_projects" | "revenue" | "revenue_by_classes" | "revenue_by_projects" | "net_burn_or_income" | "net_burn_or_income_story_card" | "net_burn_or_income_by_classes" | "net_burn_or_income_by_projects" | "cash_position" | "top_expenses" | "profit_and_loss" | "profit_and_loss_by_classes" | "profit_and_loss_by_projects" | "balance_sheet" | "balance_sheet_by_classes" | "balance_sheet_by_projects" | "cash_flow" | "cash_flow_by_classes" | "cash_flow_by_projects" | "dashboard" | "finance_statement" | "transaction_list_of_account" | "transaction_list_missing_receipt" | "transaction_list_of_account_by_class" | "transaction_list_of_account_by_project" | "transaction_detail" | "cash_in_cash_out" | "insights_dashboard" | "company_details" | "class_list" | "account_list" | "account_list_by_type" | "vendor" | "task_card" | "bill_pay" | "reimbursement" | "bill_pay_card" | "reimbursement_card" | "bill_pay_promo_card" | "zeni_accounts" | "zeni_accounts_promo_card" | "zeni_treasury" | "charge_cards" | "other_connection" | "reimbursement_promo_card" | "onboarding" | "operating_expenses_by_vendor" | "operating_expenses_by_vendor_summary" | "vendors_tab" | "accounts_payable_aging" | "accounts_receivable_aging" | "vendor_global_review" | "prepaid_expenses" | "fixed_assets" | "notification" | "rewards_card" | "billing" | "flux_analysis_operating_expense" | "account_reconciliation" | "zeni_credit_promo_card" | "treasury_promo_card" | "excluded_account_reconciliation" | "transfer_accounts" | "credit_card_transfer_accounts" | undefined;
|
|
9
9
|
}, "globalMerchantView/createGlobalMerchant", never, never>, createGlobalMerchantSuccess: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
|
|
10
10
|
merchantId: ID;
|
|
11
11
|
}, "globalMerchantView/createGlobalMerchantSuccess">, createGlobalMerchantFailure: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.getInvoicingCouponListView = exports.getInvoicingCouponCounts = exports.getInvoicingCouponListFilters = exports.getInvoicingCouponListHasMore = exports.getInvoicingCouponListNextCursor = exports.getInvoicingCouponListFetchState = exports.getInvoicingCouponListItems = void 0;
|
|
4
4
|
const toolkit_1 = require("@reduxjs/toolkit");
|
|
5
|
-
const runningInvoicingActionId_1 = require("../runningInvoicingActionId");
|
|
6
5
|
const invoicingTabHelper_1 = require("../invoicingTabHelper");
|
|
6
|
+
const runningInvoicingActionId_1 = require("../runningInvoicingActionId");
|
|
7
7
|
const couponViewState_1 = require("./couponViewState");
|
|
8
8
|
const getInvoicingCouponListItems = (state) => state.invoicingCouponViewState.ids
|
|
9
9
|
.map((id) => state.invoicingCouponState.couponByID[id])
|
|
@@ -8,7 +8,7 @@ const customerPaymentMethodReducer_1 = require("./customerPaymentMethodReducer")
|
|
|
8
8
|
const sendInvoicingPaymentLinkEpic = (actions$, _state$, zeniAPI) => actions$.pipe((0, operators_1.filter)(customerPaymentMethodReducer_1.sendInvoicingPaymentLink.match), (0, operators_1.mergeMap)((action) => {
|
|
9
9
|
const { body, customerId, email, subject } = action.payload;
|
|
10
10
|
const apiUrl = `${zeniAPI.apiEndPoints.invoicingMicroServiceBaseUrl}/1.0/customers/${encodeURIComponent(customerId)}/payment-link`;
|
|
11
|
-
return zeniAPI
|
|
11
|
+
return (zeniAPI
|
|
12
12
|
// subject/body are omitted rather than sent empty, so the backend
|
|
13
13
|
// falls back to its own defaults for anything the user left alone.
|
|
14
14
|
.postAndGetJSON(apiUrl, {
|
|
@@ -25,6 +25,6 @@ const sendInvoicingPaymentLinkEpic = (actions$, _state$, zeniAPI) => actions$.pi
|
|
|
25
25
|
}
|
|
26
26
|
return (0, rxjs_1.of)((0, customerPaymentMethodReducer_1.sendInvoicingPaymentLinkFailure)(response.status));
|
|
27
27
|
}), (0, operators_1.catchError)((error) => (0, rxjs_1.of)((0, customerPaymentMethodReducer_1.sendInvoicingPaymentLinkFailure)((0, responsePayload_1.createZeniAPIStatus)('Unexpected Error', 'Send payment link REST API call errored out ' +
|
|
28
|
-
JSON.stringify(error))))));
|
|
28
|
+
JSON.stringify(error)))))));
|
|
29
29
|
}));
|
|
30
30
|
exports.sendInvoicingPaymentLinkEpic = sendInvoicingPaymentLinkEpic;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ID } from '../../../commonStateTypes/common';
|
|
2
|
-
import { ZeniAPIStatus } from '../../../responsePayload';
|
|
3
2
|
import { InvoicingCatalogItemLifecycleAction, InvoicingCatalogProductLifecycleAction } from '../../../entity/invoicing/invoicingCommonPayload';
|
|
4
|
-
import {
|
|
3
|
+
import { ZeniAPIStatus } from '../../../responsePayload';
|
|
4
|
+
import { EditInvoicingCatalogItemDetailViewState, InvoicingCatalogItemFormLocalData, InvoicingCatalogItemKind } from './editInvoicingCatalogItemDetailViewState';
|
|
5
5
|
/** Push the full form draft into CES (edit tree when `id` is present). */
|
|
6
6
|
export interface UpdateInvoicingCatalogItemFormDraftPayload {
|
|
7
7
|
localData: InvoicingCatalogItemFormLocalData;
|
package/lib/view/invoicing/editInvoicingCatalogItemDetailView/fetchInvoicingCatalogItemDetailEpic.js
CHANGED
|
@@ -16,7 +16,10 @@ const fetchInvoicingCatalogItemDetailEpic = (actions$, _state$, zeniAPI) => acti
|
|
|
16
16
|
(0, editInvoicingCatalogItemDetailViewReducer_1.updateInvoicingCatalogItemDetail)({ id: response.data.id, kind }),
|
|
17
17
|
];
|
|
18
18
|
}
|
|
19
|
-
return (0, rxjs_1.of)((0, editInvoicingCatalogItemDetailViewReducer_1.updateInvoicingCatalogItemDetailFailure)({
|
|
19
|
+
return (0, rxjs_1.of)((0, editInvoicingCatalogItemDetailViewReducer_1.updateInvoicingCatalogItemDetailFailure)({
|
|
20
|
+
error: response.status,
|
|
21
|
+
id,
|
|
22
|
+
}));
|
|
20
23
|
}), (0, operators_1.catchError)((error) => (0, rxjs_1.of)((0, editInvoicingCatalogItemDetailViewReducer_1.updateInvoicingCatalogItemDetailFailure)({
|
|
21
24
|
error: (0, responsePayload_1.createZeniAPIStatus)('Unexpected Error', 'Fetch catalog item detail REST API call errored out ' +
|
|
22
25
|
JSON.stringify(error)),
|
package/lib/view/invoicing/editInvoicingCouponDetailView/editInvoicingCouponDetailViewReducer.js
CHANGED
|
@@ -65,7 +65,10 @@ const editInvoicingCouponDetailView = (0, toolkit_1.createSlice)({
|
|
|
65
65
|
},
|
|
66
66
|
prepare(payload) {
|
|
67
67
|
return {
|
|
68
|
-
payload: {
|
|
68
|
+
payload: {
|
|
69
|
+
cacheOverride: payload.cacheOverride ?? false,
|
|
70
|
+
id: payload.id,
|
|
71
|
+
},
|
|
69
72
|
};
|
|
70
73
|
},
|
|
71
74
|
},
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ID } from '../../../commonStateTypes/common';
|
|
2
2
|
import { ZeniAPIStatus } from '../../../responsePayload';
|
|
3
|
-
import { EditInvoicingCustomerDetailViewState, InvoicingCustomerFormLocalData } from './editInvoicingCustomerDetailViewState';
|
|
4
3
|
import { InvoicingPaymentLinkEmailPreviewData } from './editInvoicingCustomerDetailViewPayload';
|
|
4
|
+
import { EditInvoicingCustomerDetailViewState, InvoicingCustomerFormLocalData } from './editInvoicingCustomerDetailViewState';
|
|
5
5
|
/** Add promotional credits to a customer. */
|
|
6
6
|
export interface SubmitAddPromotionalCreditsPayload {
|
|
7
7
|
amount: number;
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { FetchStateAndError, ID } from '../../../commonStateTypes/common';
|
|
2
2
|
import { SelectorView } from '../../../commonStateTypes/viewAndReport/viewAndReport';
|
|
3
|
+
import { InvoicingInvoice } from '../../../entity/invoicing/invoice/invoiceState';
|
|
3
4
|
import { InvoicingFieldHelpByCode, InvoicingNamedOption } from '../../../entity/invoicing/invoicingCommonPayload';
|
|
5
|
+
import { InvoicingCustomer, InvoicingCustomerPaymentMethod } from '../../../entity/invoicing/invoicingCustomer/invoicingCustomerState';
|
|
4
6
|
import { RootState } from '../../../rootStateTypes';
|
|
7
|
+
import { InvoicingSetupIntent } from '../customerPaymentMethod/customerPaymentMethodState';
|
|
5
8
|
import { InvoicingPaymentLinkEmailPreviewData } from './editInvoicingCustomerDetailViewPayload';
|
|
6
9
|
import { InvoicingCustomerFormLocalData } from './editInvoicingCustomerDetailViewState';
|
|
7
|
-
import { InvoicingInvoice } from '../../../entity/invoicing/invoice/invoiceState';
|
|
8
|
-
import { InvoicingCustomer, InvoicingCustomerPaymentMethod } from '../../../entity/invoicing/invoicingCustomer/invoicingCustomerState';
|
|
9
|
-
import { InvoicingSetupIntent } from '../customerPaymentMethod/customerPaymentMethodState';
|
|
10
10
|
/**
|
|
11
11
|
* Read-only view for the customer detail page: the customer entity + its fetch
|
|
12
12
|
* state, plus everything the page renders in view mode — recent invoices, the
|
|
@@ -2,15 +2,15 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.getInvoicingCustomerFormView = exports.getInvoicingCustomerRecord = void 0;
|
|
4
4
|
const reduceFetchState_1 = require("../../../commonStateTypes/reduceFetchState");
|
|
5
|
-
const invoicingCustomerSelector_1 = require("../../../entity/invoicing/invoicingCustomer/invoicingCustomerSelector");
|
|
6
|
-
const addressViewSelector_1 = require("../../addressView/addressViewSelector");
|
|
7
|
-
const invoicingConfigViewSelector_1 = require("../invoicingConfigView/invoicingConfigViewSelector");
|
|
8
|
-
const invoicingCustomerFormConfig_1 = require("./invoicingCustomerFormConfig");
|
|
9
5
|
const invoiceSelector_1 = require("../../../entity/invoicing/invoice/invoiceSelector");
|
|
6
|
+
const invoicingCustomerSelector_1 = require("../../../entity/invoicing/invoicingCustomer/invoicingCustomerSelector");
|
|
10
7
|
const invoicingCustomerSelector_2 = require("../../../entity/invoicing/invoicingCustomer/invoicingCustomerSelector");
|
|
8
|
+
const addressViewSelector_1 = require("../../addressView/addressViewSelector");
|
|
11
9
|
const customerPaymentMethodSelector_1 = require("../customerPaymentMethod/customerPaymentMethodSelector");
|
|
10
|
+
const invoicingConfigViewSelector_1 = require("../invoicingConfigView/invoicingConfigViewSelector");
|
|
12
11
|
const invoicingSettingsHelpers_1 = require("../settingsView/invoicingSettingsHelpers");
|
|
13
12
|
const settingsViewSelector_1 = require("../settingsView/settingsViewSelector");
|
|
13
|
+
const invoicingCustomerFormConfig_1 = require("./invoicingCustomerFormConfig");
|
|
14
14
|
/**
|
|
15
15
|
* `invoicingCustomerID` is absent in create mode, where there is no record to
|
|
16
16
|
* resolve — the view still renders, off an empty record.
|
package/lib/view/invoicing/editInvoicingCustomerDetailView/editInvoicingCustomerDetailViewState.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { InvoicingPaymentLinkEmailPreviewData } from './editInvoicingCustomerDetailViewPayload';
|
|
2
1
|
import { FetchStateAndError, FetchedState, ID } from '../../../commonStateTypes/common';
|
|
2
|
+
import { InvoicingPaymentLinkEmailPreviewData } from './editInvoicingCustomerDetailViewPayload';
|
|
3
3
|
/**
|
|
4
4
|
* Draft form state for the create/edit customer form. Held in CES so the form
|
|
5
5
|
* flows its data from here (mirrors the bill-pay / reimbursement pattern). The
|
package/lib/view/invoicing/editInvoicingCustomerDetailView/fetchInvoicingCustomerDetailPageEpic.d.ts
CHANGED
|
@@ -3,12 +3,12 @@ import { Observable } from 'rxjs';
|
|
|
3
3
|
import { RootState } from '../../../rootStateTypes';
|
|
4
4
|
import { fetchInvoiceList } from '../invoiceList/invoiceListReducer';
|
|
5
5
|
import { fetchInvoicingSettings } from '../settingsView/settingsViewReducer';
|
|
6
|
-
import { fetchInvoicingCustomerDetail, fetchInvoicingCustomerDetailPage } from './editInvoicingCustomerDetailViewReducer';
|
|
6
|
+
import { fetchInvoicingCustomerDetail, fetchInvoicingCustomerDetailPage, fetchInvoicingPaymentLinkEmailPreviewPage } from './editInvoicingCustomerDetailViewReducer';
|
|
7
7
|
/**
|
|
8
8
|
* Aggregate of every action emitted across the customer detail page epic.
|
|
9
9
|
* Wired into the root action union for this view.
|
|
10
10
|
*/
|
|
11
|
-
export type ActionType = ReturnType<typeof fetchInvoicingCustomerDetail> | ReturnType<typeof fetchInvoicingCustomerDetailPage> | ReturnType<typeof fetchInvoiceList> | ReturnType<typeof fetchInvoicingSettings>;
|
|
11
|
+
export type ActionType = ReturnType<typeof fetchInvoicingCustomerDetail> | ReturnType<typeof fetchInvoicingCustomerDetailPage> | ReturnType<typeof fetchInvoiceList> | ReturnType<typeof fetchInvoicingSettings> | ReturnType<typeof fetchInvoicingPaymentLinkEmailPreviewPage>;
|
|
12
12
|
/**
|
|
13
13
|
* Orchestrates the customer detail page: on `fetchInvoicingCustomerDetailPage`,
|
|
14
14
|
* fans out to the customer detail, the customer's invoice list and the invoicing
|
package/lib/view/invoicing/editInvoicingCustomerDetailView/fetchInvoicingCustomerDetailPageEpic.js
CHANGED
|
@@ -45,6 +45,14 @@ const fetchInvoicingCustomerDetailPageEpic = (actions$, state$) => actions$.pipe
|
|
|
45
45
|
if (shouldFetch({ fetchState: settingsState.fetchState, error: settingsState.error }, cacheOverride)) {
|
|
46
46
|
pageActions.push((0, settingsViewReducer_1.fetchInvoicingSettings)());
|
|
47
47
|
}
|
|
48
|
+
// Warmed here rather than when the composer opens, so the dialog has its
|
|
49
|
+
// preview on first paint. Deliberately not part of the page's fetch
|
|
50
|
+
// state — the page must not wait on it, and its own guard makes the
|
|
51
|
+
// later open a no-op.
|
|
52
|
+
pageActions.push((0, editInvoicingCustomerDetailViewReducer_1.fetchInvoicingPaymentLinkEmailPreviewPage)({
|
|
53
|
+
cacheOverride,
|
|
54
|
+
customerId: id,
|
|
55
|
+
}));
|
|
48
56
|
return (0, rxjs_1.concat)((0, rxjs_1.from)(pageActions));
|
|
49
57
|
}));
|
|
50
58
|
exports.fetchInvoicingCustomerDetailPageEpic = fetchInvoicingCustomerDetailPageEpic;
|
|
@@ -4,8 +4,8 @@ exports.fetchInvoicingPaymentLinkEmailPreviewEpic = void 0;
|
|
|
4
4
|
const rxjs_1 = require("rxjs");
|
|
5
5
|
const operators_1 = require("rxjs/operators");
|
|
6
6
|
const responsePayload_1 = require("../../../responsePayload");
|
|
7
|
-
const editInvoicingCustomerDetailViewReducer_1 = require("./editInvoicingCustomerDetailViewReducer");
|
|
8
7
|
const editInvoicingCustomerDetailViewPayload_1 = require("./editInvoicingCustomerDetailViewPayload");
|
|
8
|
+
const editInvoicingCustomerDetailViewReducer_1 = require("./editInvoicingCustomerDetailViewReducer");
|
|
9
9
|
/**
|
|
10
10
|
* Renders the payment-link email once, server-side, with sentinel tokens where
|
|
11
11
|
* the subject and body go. The composer splices the draft into those tokens as
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { ID } from '../../../commonStateTypes/common';
|
|
2
2
|
import { ZeniAPIStatus } from '../../../responsePayload';
|
|
3
|
+
import { InvoicingSubscriptionActionBody } from './editInvoicingSubscriptionDetailViewPayload';
|
|
3
4
|
import { EditInvoicingSubscriptionDetailViewState, InvoicingSubscriptionFormLocalData } from './editInvoicingSubscriptionDetailViewState';
|
|
4
5
|
/** Push the full form draft into CES (edit tree when `id` is present). */
|
|
5
6
|
export interface UpdateInvoicingSubscriptionFormDraftPayload {
|
|
@@ -20,7 +21,6 @@ export interface SyncInvoicingSubscriptionCouponsPayload {
|
|
|
20
21
|
previousCouponCode: string;
|
|
21
22
|
subscriptionId: string;
|
|
22
23
|
}
|
|
23
|
-
import { InvoicingSubscriptionActionBody } from './editInvoicingSubscriptionDetailViewPayload';
|
|
24
24
|
export interface RunInvoicingSubscriptionActionPayload {
|
|
25
25
|
action: string;
|
|
26
26
|
id: ID;
|
|
@@ -3,12 +3,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.getInvoicingSubscriptionFormView = exports.getEditInvoicingSubscriptionDetailViewState = void 0;
|
|
4
4
|
const reduceFetchState_1 = require("../../../commonStateTypes/reduceFetchState");
|
|
5
5
|
const invoicingSubscriptionSelector_1 = require("../../../entity/invoicing/invoicingSubscription/invoicingSubscriptionSelector");
|
|
6
|
-
const invoicingSubscriptionFormConfig_1 = require("./invoicingSubscriptionFormConfig");
|
|
7
6
|
const addressViewSelector_1 = require("../../addressView/addressViewSelector");
|
|
8
7
|
const couponViewSelector_1 = require("../couponView/couponViewSelector");
|
|
9
8
|
const invoicingCatalogListViewSelector_1 = require("../invoicingCatalogListView/invoicingCatalogListViewSelector");
|
|
10
9
|
const invoicingConfigViewSelector_1 = require("../invoicingConfigView/invoicingConfigViewSelector");
|
|
11
10
|
const invoicingCustomerListViewSelector_1 = require("../invoicingCustomerListView/invoicingCustomerListViewSelector");
|
|
11
|
+
const invoicingSubscriptionFormConfig_1 = require("./invoicingSubscriptionFormConfig");
|
|
12
12
|
const invoicingSubscriptionFormConfig_2 = require("./invoicingSubscriptionFormConfig");
|
|
13
13
|
const getEditInvoicingSubscriptionDetailViewState = (state, invoicingSubscriptionID) => {
|
|
14
14
|
const { error, fetchState, savedSubscriptionId } = state.editInvoicingSubscriptionDetailViewState;
|
|
@@ -41,14 +41,20 @@ const fetchInvoicingSubscriptionDetailPageEpic = (actions$, state$) => actions$.
|
|
|
41
41
|
// Plan and coupon lists back the names the page renders for its line
|
|
42
42
|
// items; both list slices cache, so this only refetches when asked to.
|
|
43
43
|
const catalogListState = state.invoicingCatalogListViewState;
|
|
44
|
-
if (shouldFetch({
|
|
44
|
+
if (shouldFetch({
|
|
45
|
+
error: catalogListState.error,
|
|
46
|
+
fetchState: catalogListState.fetchState,
|
|
47
|
+
}, cacheOverride)) {
|
|
45
48
|
pageActions.push((0, invoicingCatalogListViewReducer_1.fetchInvoicingCatalogPlanList)({
|
|
46
49
|
filters: { type: 'plan' },
|
|
47
50
|
keepExistingListItems: false,
|
|
48
51
|
}));
|
|
49
52
|
}
|
|
50
53
|
const couponListState = state.invoicingCouponViewState;
|
|
51
|
-
if (shouldFetch({
|
|
54
|
+
if (shouldFetch({
|
|
55
|
+
error: couponListState.error,
|
|
56
|
+
fetchState: couponListState.fetchState,
|
|
57
|
+
}, cacheOverride)) {
|
|
52
58
|
pageActions.push((0, couponViewReducer_1.fetchInvoicingCouponList)({ filters: {}, keepExistingListItems: false }));
|
|
53
59
|
}
|
|
54
60
|
return pageActions.length > 0 ? (0, rxjs_1.from)(pageActions) : rxjs_1.EMPTY;
|
|
@@ -4,8 +4,8 @@ exports.seedInvoicingSubscriptionFormDraftEpic = void 0;
|
|
|
4
4
|
const rxjs_1 = require("rxjs");
|
|
5
5
|
const operators_1 = require("rxjs/operators");
|
|
6
6
|
const editInvoicingSubscriptionDetailViewReducer_1 = require("./editInvoicingSubscriptionDetailViewReducer");
|
|
7
|
-
const invoicingSubscriptionFormConfig_1 = require("./invoicingSubscriptionFormConfig");
|
|
8
7
|
const invoicingSubscriptionDetailHelper_1 = require("./invoicingSubscriptionDetailHelper");
|
|
8
|
+
const invoicingSubscriptionFormConfig_1 = require("./invoicingSubscriptionFormConfig");
|
|
9
9
|
/**
|
|
10
10
|
* Seeds the edit draft from the record the moment the detail fetch lands, so
|
|
11
11
|
* the form has its values before it mounts. The reducer ignores the seed when a
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { FetchState, ID } from '../../../commonStateTypes/common';
|
|
2
2
|
import { ZeniAPIStatus } from '../../../responsePayload';
|
|
3
|
-
import { InvoiceDetail, InvoiceDetailState } from './invoiceDetailState';
|
|
4
3
|
import { InvoicingInvoiceActionBody } from './invoiceDetailPayload';
|
|
4
|
+
import { InvoiceDetail, InvoiceDetailState } from './invoiceDetailState';
|
|
5
5
|
export type InvoicingInvoiceActionKind = 'apply-excess' | 'collect' | 'issue-credit-note' | 'record-payment' | 'refund-excess' | 'regenerate' | 'remove-payment' | 'payment-schedule' | 'send' | 'send-reminder' | 'void' | 'write-off';
|
|
6
6
|
export interface RunInvoicingInvoiceActionPayload {
|
|
7
7
|
action: InvoicingInvoiceActionKind;
|
|
@@ -33,8 +33,8 @@ const getInvoiceDetail = (state, invoiceId) => {
|
|
|
33
33
|
shippingAddress: invoice?.shippingAddressId != null
|
|
34
34
|
? (0, addressSelector_1.getAddressByAddressId)(state.addressState, invoice.shippingAddressId)
|
|
35
35
|
: undefined,
|
|
36
|
-
actionState:
|
|
37
|
-
NOT_STARTED_ACTION
|
|
36
|
+
actionState: state.invoicingInvoiceDetailState.actionStateByInvoiceId[invoiceId] ??
|
|
37
|
+
NOT_STARTED_ACTION,
|
|
38
38
|
fetchState: detail?.fetchState ?? 'Not-Started',
|
|
39
39
|
error: detail?.error,
|
|
40
40
|
version: 1.0,
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.getInvoiceListView = void 0;
|
|
4
4
|
const toolkit_1 = require("@reduxjs/toolkit");
|
|
5
|
-
const runningInvoicingActionId_1 = require("../runningInvoicingActionId");
|
|
6
5
|
const invoicingTabHelper_1 = require("../invoicingTabHelper");
|
|
6
|
+
const runningInvoicingActionId_1 = require("../runningInvoicingActionId");
|
|
7
7
|
const invoiceListState_1 = require("./invoiceListState");
|
|
8
8
|
/**
|
|
9
9
|
* Bundled read view for the invoices list page: the denormalized invoice rows
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { ActionsObservable, StateObservable } from 'redux-observable';
|
|
2
|
+
import { Observable } from 'rxjs';
|
|
3
|
+
import { RootState } from '../../../rootStateTypes';
|
|
4
|
+
import { fetchInvoicingDunningCaseDetail, fetchInvoicingDunningCaseDetailPage, fetchInvoicingDunningEmailPreviewPage } from './invoicingDunningCaseDetailViewReducer';
|
|
5
|
+
export type ActionType = ReturnType<typeof fetchInvoicingDunningCaseDetailPage> | ReturnType<typeof fetchInvoicingDunningCaseDetail> | ReturnType<typeof fetchInvoicingDunningEmailPreviewPage>;
|
|
6
|
+
/**
|
|
7
|
+
* Orchestrates the dunning case detail page: the case record, plus a warm of
|
|
8
|
+
* the email composer's preview so the dialog paints with content on first
|
|
9
|
+
* open. The preview is deliberately not part of what the page waits on, and
|
|
10
|
+
* its own guard makes the later open a no-op.
|
|
11
|
+
*/
|
|
12
|
+
export declare const fetchInvoicingDunningCaseDetailPageEpic: (actions$: ActionsObservable<ActionType>, state$: StateObservable<RootState>) => Observable<ActionType>;
|
package/lib/view/invoicing/invoicingDunningCaseDetailView/fetchInvoicingDunningCaseDetailPageEpic.js
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.fetchInvoicingDunningCaseDetailPageEpic = void 0;
|
|
4
|
+
const rxjs_1 = require("rxjs");
|
|
5
|
+
const operators_1 = require("rxjs/operators");
|
|
6
|
+
const invoicingDunningCaseDetailViewReducer_1 = require("./invoicingDunningCaseDetailViewReducer");
|
|
7
|
+
/**
|
|
8
|
+
* Fetch unless the record is already loaded or in flight — or always when the
|
|
9
|
+
* caller forces a refresh via `cacheOverride`.
|
|
10
|
+
*/
|
|
11
|
+
const shouldFetch = (fetchStateAndError, cacheOverride) => cacheOverride ||
|
|
12
|
+
(fetchStateAndError.fetchState !== 'Completed' &&
|
|
13
|
+
fetchStateAndError.fetchState !== 'In-Progress');
|
|
14
|
+
/**
|
|
15
|
+
* Orchestrates the dunning case detail page: the case record, plus a warm of
|
|
16
|
+
* the email composer's preview so the dialog paints with content on first
|
|
17
|
+
* open. The preview is deliberately not part of what the page waits on, and
|
|
18
|
+
* its own guard makes the later open a no-op.
|
|
19
|
+
*/
|
|
20
|
+
const fetchInvoicingDunningCaseDetailPageEpic = (actions$, state$) => actions$.pipe((0, operators_1.filter)(invoicingDunningCaseDetailViewReducer_1.fetchInvoicingDunningCaseDetailPage.match), (0, operators_1.withLatestFrom)(state$), (0, operators_1.mergeMap)(([action, state]) => {
|
|
21
|
+
const { cacheOverride, id } = action.payload;
|
|
22
|
+
const detailState = state.invoicingDunningCaseDetailViewState;
|
|
23
|
+
const pageActions = [];
|
|
24
|
+
// A record loaded for another case is not this page's.
|
|
25
|
+
const loadedForThisCase = detailState.id === id;
|
|
26
|
+
if (!loadedForThisCase ||
|
|
27
|
+
shouldFetch({ error: detailState.error, fetchState: detailState.fetchState }, cacheOverride)) {
|
|
28
|
+
pageActions.push((0, invoicingDunningCaseDetailViewReducer_1.fetchInvoicingDunningCaseDetail)({ id }));
|
|
29
|
+
}
|
|
30
|
+
pageActions.push((0, invoicingDunningCaseDetailViewReducer_1.fetchInvoicingDunningEmailPreviewPage)({ id, cacheOverride }));
|
|
31
|
+
return pageActions.length > 0 ? (0, rxjs_1.from)(pageActions) : rxjs_1.EMPTY;
|
|
32
|
+
}));
|
|
33
|
+
exports.fetchInvoicingDunningCaseDetailPageEpic = fetchInvoicingDunningCaseDetailPageEpic;
|
package/lib/view/invoicing/invoicingDunningCaseDetailView/invoicingDunningCaseDetailViewReducer.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ID } from '../../../commonStateTypes/common';
|
|
2
2
|
import { ZeniAPIStatus } from '../../../responsePayload';
|
|
3
|
-
import { InvoicingDunningCaseDetailViewState, InvoicingDunningEmailPreview, InvoicingDunningEmailPreviewState } from './invoicingDunningCaseDetailViewState';
|
|
4
3
|
import { InvoicingDunningActionBody } from './invoicingDunningCaseDetailViewPayload';
|
|
4
|
+
import { InvoicingDunningCaseDetailViewState, InvoicingDunningEmailPreview, InvoicingDunningEmailPreviewState } from './invoicingDunningCaseDetailViewState';
|
|
5
5
|
/** Run a lifecycle action on a dunning case. */
|
|
6
6
|
export interface RunInvoicingDunningActionPayload {
|
|
7
7
|
action: string;
|
|
@@ -18,7 +18,13 @@ export declare const runInvoicingDunningAction: import("@reduxjs/toolkit").Actio
|
|
|
18
18
|
id: ID;
|
|
19
19
|
}, "invoicingDunningCaseDetailView/runInvoicingDunningActionSuccess">, clearInvoicingDunningCaseDetailView: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"invoicingDunningCaseDetailView/clearInvoicingDunningCaseDetailView">, fetchInvoicingDunningCaseDetail: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
|
|
20
20
|
id: ID;
|
|
21
|
-
}, "invoicingDunningCaseDetailView/fetchInvoicingDunningCaseDetail">,
|
|
21
|
+
}, "invoicingDunningCaseDetailView/fetchInvoicingDunningCaseDetail">, fetchInvoicingDunningCaseDetailPage: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[payload: {
|
|
22
|
+
id: ID;
|
|
23
|
+
cacheOverride?: boolean;
|
|
24
|
+
}], {
|
|
25
|
+
cacheOverride: boolean;
|
|
26
|
+
id: string;
|
|
27
|
+
}, "invoicingDunningCaseDetailView/fetchInvoicingDunningCaseDetailPage", never, never>, fetchInvoicingDunningEmailPreview: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
|
|
22
28
|
id: ID;
|
|
23
29
|
}, "invoicingDunningCaseDetailView/fetchInvoicingDunningEmailPreview">, fetchInvoicingDunningEmailPreviewPage: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[payload: {
|
|
24
30
|
id: ID;
|
package/lib/view/invoicing/invoicingDunningCaseDetailView/invoicingDunningCaseDetailViewReducer.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var _a;
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
-
exports.updateInvoicingDunningEmailPreviewFailure = exports.updateInvoicingDunningEmailPreview = exports.updateInvoicingDunningCaseDetailFailure = exports.updateInvoicingDunningCaseDetail = exports.invalidateInvoicingDunningEmailPreview = exports.fetchInvoicingDunningEmailPreviewPage = exports.fetchInvoicingDunningEmailPreview = exports.fetchInvoicingDunningCaseDetail = exports.clearInvoicingDunningCaseDetailView = exports.runInvoicingDunningActionSuccess = exports.runInvoicingDunningActionFailure = exports.runInvoicingDunningAction = exports.initialState = exports.initialEmailPreviewState = void 0;
|
|
4
|
+
exports.updateInvoicingDunningEmailPreviewFailure = exports.updateInvoicingDunningEmailPreview = exports.updateInvoicingDunningCaseDetailFailure = exports.updateInvoicingDunningCaseDetail = exports.invalidateInvoicingDunningEmailPreview = exports.fetchInvoicingDunningEmailPreviewPage = exports.fetchInvoicingDunningEmailPreview = exports.fetchInvoicingDunningCaseDetailPage = exports.fetchInvoicingDunningCaseDetail = exports.clearInvoicingDunningCaseDetailView = exports.runInvoicingDunningActionSuccess = exports.runInvoicingDunningActionFailure = exports.runInvoicingDunningAction = exports.initialState = exports.initialEmailPreviewState = void 0;
|
|
5
5
|
const toolkit_1 = require("@reduxjs/toolkit");
|
|
6
6
|
const rootActions_1 = require("../../../rootActions");
|
|
7
7
|
exports.initialEmailPreviewState = {
|
|
@@ -38,6 +38,23 @@ const invoicingDunningCaseDetailView = (0, toolkit_1.createSlice)({
|
|
|
38
38
|
error: action.payload.error,
|
|
39
39
|
};
|
|
40
40
|
},
|
|
41
|
+
/**
|
|
42
|
+
* Open the dunning case detail page: the epic fans out to the case record
|
|
43
|
+
* and warms the email composer's preview.
|
|
44
|
+
*/
|
|
45
|
+
fetchInvoicingDunningCaseDetailPage: {
|
|
46
|
+
reducer() {
|
|
47
|
+
// Orchestrator trigger only — the individual fetches own the state.
|
|
48
|
+
},
|
|
49
|
+
prepare(payload) {
|
|
50
|
+
return {
|
|
51
|
+
payload: {
|
|
52
|
+
cacheOverride: payload.cacheOverride ?? false,
|
|
53
|
+
id: payload.id,
|
|
54
|
+
},
|
|
55
|
+
};
|
|
56
|
+
},
|
|
57
|
+
},
|
|
41
58
|
fetchInvoicingDunningCaseDetail(draft, action) {
|
|
42
59
|
if (draft.id !== action.payload.id) {
|
|
43
60
|
draft.emailPreview = { ...exports.initialEmailPreviewState };
|
|
@@ -105,5 +122,5 @@ const invoicingDunningCaseDetailView = (0, toolkit_1.createSlice)({
|
|
|
105
122
|
});
|
|
106
123
|
},
|
|
107
124
|
});
|
|
108
|
-
_a = invoicingDunningCaseDetailView.actions, exports.runInvoicingDunningAction = _a.runInvoicingDunningAction, exports.runInvoicingDunningActionFailure = _a.runInvoicingDunningActionFailure, exports.runInvoicingDunningActionSuccess = _a.runInvoicingDunningActionSuccess, exports.clearInvoicingDunningCaseDetailView = _a.clearInvoicingDunningCaseDetailView, exports.fetchInvoicingDunningCaseDetail = _a.fetchInvoicingDunningCaseDetail, exports.fetchInvoicingDunningEmailPreview = _a.fetchInvoicingDunningEmailPreview, exports.fetchInvoicingDunningEmailPreviewPage = _a.fetchInvoicingDunningEmailPreviewPage, exports.invalidateInvoicingDunningEmailPreview = _a.invalidateInvoicingDunningEmailPreview, exports.updateInvoicingDunningCaseDetail = _a.updateInvoicingDunningCaseDetail, exports.updateInvoicingDunningCaseDetailFailure = _a.updateInvoicingDunningCaseDetailFailure, exports.updateInvoicingDunningEmailPreview = _a.updateInvoicingDunningEmailPreview, exports.updateInvoicingDunningEmailPreviewFailure = _a.updateInvoicingDunningEmailPreviewFailure;
|
|
125
|
+
_a = invoicingDunningCaseDetailView.actions, exports.runInvoicingDunningAction = _a.runInvoicingDunningAction, exports.runInvoicingDunningActionFailure = _a.runInvoicingDunningActionFailure, exports.runInvoicingDunningActionSuccess = _a.runInvoicingDunningActionSuccess, exports.clearInvoicingDunningCaseDetailView = _a.clearInvoicingDunningCaseDetailView, exports.fetchInvoicingDunningCaseDetail = _a.fetchInvoicingDunningCaseDetail, exports.fetchInvoicingDunningCaseDetailPage = _a.fetchInvoicingDunningCaseDetailPage, exports.fetchInvoicingDunningEmailPreview = _a.fetchInvoicingDunningEmailPreview, exports.fetchInvoicingDunningEmailPreviewPage = _a.fetchInvoicingDunningEmailPreviewPage, exports.invalidateInvoicingDunningEmailPreview = _a.invalidateInvoicingDunningEmailPreview, exports.updateInvoicingDunningCaseDetail = _a.updateInvoicingDunningCaseDetail, exports.updateInvoicingDunningCaseDetailFailure = _a.updateInvoicingDunningCaseDetailFailure, exports.updateInvoicingDunningEmailPreview = _a.updateInvoicingDunningEmailPreview, exports.updateInvoicingDunningEmailPreviewFailure = _a.updateInvoicingDunningEmailPreviewFailure;
|
|
109
126
|
exports.default = invoicingDunningCaseDetailView.reducer;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { FetchStateAndError, ID } from '../../../commonStateTypes/common';
|
|
2
2
|
import { SelectorView } from '../../../commonStateTypes/viewAndReport/viewAndReport';
|
|
3
3
|
import { InvoicingDunningCase } from '../../../entity/invoicing/dunningCase/dunningCaseState';
|
|
4
|
-
import type { InvoicingFieldHelpByCode } from '../../../entity/invoicing/invoicingCommonPayload';
|
|
5
4
|
import { InvoicingInvoice } from '../../../entity/invoicing/invoice/invoiceState';
|
|
5
|
+
import type { InvoicingFieldHelpByCode } from '../../../entity/invoicing/invoicingCommonPayload';
|
|
6
6
|
import { RootState } from '../../../rootStateTypes';
|
|
7
7
|
import { InvoicingDunningEmailPreviewState } from './invoicingDunningCaseDetailViewState';
|
|
8
8
|
/**
|
package/lib/view/invoicing/invoicingSubscriptionListView/invoicingSubscriptionListViewSelector.js
CHANGED
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.getInvoicingSubscriptionListView = void 0;
|
|
4
4
|
const toolkit_1 = require("@reduxjs/toolkit");
|
|
5
|
-
const runningInvoicingActionId_1 = require("../runningInvoicingActionId");
|
|
6
5
|
const invoicingSubscriptionSelector_1 = require("../../../entity/invoicing/invoicingSubscription/invoicingSubscriptionSelector");
|
|
7
6
|
const invoicingTabHelper_1 = require("../invoicingTabHelper");
|
|
7
|
+
const runningInvoicingActionId_1 = require("../runningInvoicingActionId");
|
|
8
8
|
const invoicingSubscriptionListViewState_1 = require("./invoicingSubscriptionListViewState");
|
|
9
9
|
/**
|
|
10
10
|
* Memoized so the denormalized `subscriptions` array (and the wrapping view
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ActionsObservable, StateObservable } from 'redux-observable';
|
|
2
|
-
import { RootState } from '../../rootStateTypes';
|
|
3
2
|
import { ZeniAPIStatus } from '../../responsePayload';
|
|
3
|
+
import { RootState } from '../../rootStateTypes';
|
|
4
4
|
import { ZeniAPI } from '../../zeniAPI';
|
|
5
5
|
import { refreshOpExByVendorReport, refreshOpExByVendorReportFailure, refreshOpExByVendorReportSuccess } from './opExByVendorReducer';
|
|
6
6
|
export type ActionType = ReturnType<typeof refreshOpExByVendorReport> | ReturnType<typeof refreshOpExByVendorReportSuccess> | ReturnType<typeof refreshOpExByVendorReportFailure>;
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { RootState } from '../../rootStateTypes';
|
|
2
2
|
export declare const getReimbursementCardReport: (state: RootState) => {
|
|
3
|
-
reportId: "
|
|
3
|
+
reportId: "cash_balance" | "card_balance" | "expense_automation_card" | "operating_expenses" | "operating_expenses_by_classes" | "operating_expenses_by_projects" | "revenue" | "revenue_by_classes" | "revenue_by_projects" | "net_burn_or_income" | "net_burn_or_income_story_card" | "net_burn_or_income_by_classes" | "net_burn_or_income_by_projects" | "cash_position" | "top_expenses" | "profit_and_loss" | "profit_and_loss_by_classes" | "profit_and_loss_by_projects" | "balance_sheet" | "balance_sheet_by_classes" | "balance_sheet_by_projects" | "cash_flow" | "cash_flow_by_classes" | "cash_flow_by_projects" | "dashboard" | "finance_statement" | "transaction_list_of_account" | "transaction_list_missing_receipt" | "transaction_list_of_account_by_class" | "transaction_list_of_account_by_project" | "transaction_detail" | "cash_in_cash_out" | "insights_dashboard" | "company_details" | "class_list" | "account_list" | "account_list_by_type" | "vendor" | "task_card" | "bill_pay" | "reimbursement" | "bill_pay_card" | "reimbursement_card" | "bill_pay_promo_card" | "zeni_accounts" | "zeni_accounts_promo_card" | "zeni_treasury" | "charge_cards" | "other_connection" | "reimbursement_promo_card" | "onboarding" | "operating_expenses_by_vendor" | "operating_expenses_by_vendor_summary" | "vendors_tab" | "accounts_payable_aging" | "accounts_receivable_aging" | "vendor_global_review" | "prepaid_expenses" | "fixed_assets" | "notification" | "rewards_card" | "billing" | "flux_analysis_operating_expense" | "account_reconciliation" | "zeni_credit_promo_card" | "treasury_promo_card" | "excluded_account_reconciliation" | "transfer_accounts" | "credit_card_transfer_accounts";
|
|
4
4
|
reportTitle: string;
|
|
5
5
|
version: string | number | undefined;
|
|
6
6
|
fetchState: import("../..").FetchState;
|
|
7
7
|
reimbursementAmountByKey: Record<string, import("../..").Amount>;
|
|
8
8
|
error: import("../..").ZeniAPIStatus<Record<string, unknown>> | undefined;
|
|
9
9
|
transactionCount: number;
|
|
10
|
-
firstMonthOfFY: 1 | 2 | 3 | 4 | 5 |
|
|
10
|
+
firstMonthOfFY: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12;
|
|
11
11
|
};
|
|
12
12
|
export type ReimbursementCardReport = ReturnType<typeof getReimbursementCardReport>;
|
|
@@ -4,31 +4,31 @@ import { ID } from '../../commonStateTypes/common';
|
|
|
4
4
|
import { TimeframeTick } from '../../commonStateTypes/timeframeTick';
|
|
5
5
|
import { ReportUIOptionsState } from './reportUIOptionsState';
|
|
6
6
|
export declare const initialState: ReportUIOptionsState;
|
|
7
|
-
export declare const updateReportUIOptionTimeframe: import("@reduxjs/toolkit").ActionCreatorWithPayload<"month" | "year" | "quarter", "report_ui_options/updateReportUIOptionTimeframe">, updateReportUIOptionThisPeriod: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[firstMonthOfFY: 1 | 2 | 3 | 4 | 5 |
|
|
8
|
-
firstMonthOfFY: 1 | 2 | 3 | 4 | 5 |
|
|
7
|
+
export declare const updateReportUIOptionTimeframe: import("@reduxjs/toolkit").ActionCreatorWithPayload<"month" | "year" | "quarter", "report_ui_options/updateReportUIOptionTimeframe">, updateReportUIOptionThisPeriod: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[firstMonthOfFY: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12, thisPeriod: TimeframeTick, maxNumOfPeriodsToSelect?: number | undefined], {
|
|
8
|
+
firstMonthOfFY: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12;
|
|
9
9
|
thisPeriod: TimeframeTick;
|
|
10
10
|
maxNumOfPeriodsToSelect: number | undefined;
|
|
11
11
|
}, "report_ui_options/updateReportUIOptionThisPeriod", never, never>, updateReportUIOptionCOABalancesRange: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[selectedCOABalancesRange: COABalancesRange, highlightedCOABalancesRange?: COABalancesRangeWithThisPeriod | undefined], {
|
|
12
12
|
selectedCOABalancesRange: COABalancesRange;
|
|
13
13
|
highlightedCOABalancesRange: COABalancesRangeWithThisPeriod | undefined;
|
|
14
|
-
}, "report_ui_options/updateReportUIOptionCOABalancesRange", never, never>, updateReportUIOptionIsCompareModeOn: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[firstMonthOfFY: 1 | 2 | 3 | 4 | 5 |
|
|
15
|
-
firstMonthOfFY: 1 | 2 | 3 | 4 | 5 |
|
|
14
|
+
}, "report_ui_options/updateReportUIOptionCOABalancesRange", never, never>, updateReportUIOptionIsCompareModeOn: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[firstMonthOfFY: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12, isCompareModeOn: boolean, maxNumOfPeriodsToHighlight: any, additionalBalances: COABalanceType[]], {
|
|
15
|
+
firstMonthOfFY: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12;
|
|
16
16
|
isCompareModeOn: boolean;
|
|
17
17
|
maxNumOfPeriodsToHighlight: any;
|
|
18
18
|
additionalBalances: COABalanceType[];
|
|
19
|
-
}, "report_ui_options/updateReportUIOptionIsCompareModeOn", never, never>, updateReportUIOptionCompareMode: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[firstMonthOfFY: 1 | 2 | 3 | 4 | 5 |
|
|
20
|
-
firstMonthOfFY: 1 | 2 | 3 | 4 | 5 |
|
|
19
|
+
}, "report_ui_options/updateReportUIOptionIsCompareModeOn", never, never>, updateReportUIOptionCompareMode: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[firstMonthOfFY: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12, compareMode: "compare_mode_percent" | "compare_mode_amount", maxNumOfPeriodsToHighlight: any, additionalBalances: COABalanceType[]], {
|
|
20
|
+
firstMonthOfFY: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12;
|
|
21
21
|
compareMode: "compare_mode_percent" | "compare_mode_amount";
|
|
22
22
|
maxNumOfPeriodsToHighlight: any;
|
|
23
23
|
additionalBalances: COABalanceType[];
|
|
24
24
|
}, "report_ui_options/updateReportUIOptionCompareMode", never, never>, updateReportUIOptionIsForecastVsActualOn: import("@reduxjs/toolkit").ActionCreatorWithPayload<boolean, "report_ui_options/updateReportUIOptionIsForecastVsActualOn">, updateReportUIOptionSelectedForecast: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[id: string, index: number], {
|
|
25
25
|
id: string;
|
|
26
26
|
index: number;
|
|
27
|
-
}, "report_ui_options/updateReportUIOptionSelectedForecast", never, never>, toggleReportUIOptionForecastMode: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[firstMonthOfFY: 1 | 2 | 3 | 4 | 5 |
|
|
27
|
+
}, "report_ui_options/updateReportUIOptionSelectedForecast", never, never>, toggleReportUIOptionForecastMode: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[firstMonthOfFY: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12, isForecastModeOn: boolean, maxNumOfPeriodsToHighlightWithForecast?: any, selectedForecast?: {
|
|
28
28
|
id: ID;
|
|
29
29
|
index: number;
|
|
30
30
|
} | undefined], {
|
|
31
|
-
firstMonthOfFY: 1 | 2 | 3 | 4 | 5 |
|
|
31
|
+
firstMonthOfFY: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12;
|
|
32
32
|
isForecastModeOn: boolean;
|
|
33
33
|
maxNumOfPeriodsToHighlightWithForecast: any;
|
|
34
34
|
selectedForecast: {
|
|
@@ -2,8 +2,8 @@ import { ReportID } from '../../commonStateTypes/viewAndReport/viewAndReport';
|
|
|
2
2
|
import { ZeniAPIStatus } from '../../responsePayload';
|
|
3
3
|
import { ReportsResyncState } from './reportsResyncState';
|
|
4
4
|
export declare const initialReportsResyncState: ReportsResyncState;
|
|
5
|
-
export declare const initiateReportsResync: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[reportIdToResync: "
|
|
6
|
-
reportIdToResync: "
|
|
5
|
+
export declare const initiateReportsResync: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[reportIdToResync: "cash_balance" | "card_balance" | "expense_automation_card" | "operating_expenses" | "operating_expenses_by_classes" | "operating_expenses_by_projects" | "revenue" | "revenue_by_classes" | "revenue_by_projects" | "net_burn_or_income" | "net_burn_or_income_story_card" | "net_burn_or_income_by_classes" | "net_burn_or_income_by_projects" | "cash_position" | "top_expenses" | "profit_and_loss" | "profit_and_loss_by_classes" | "profit_and_loss_by_projects" | "balance_sheet" | "balance_sheet_by_classes" | "balance_sheet_by_projects" | "cash_flow" | "cash_flow_by_classes" | "cash_flow_by_projects" | "dashboard" | "finance_statement" | "transaction_list_of_account" | "transaction_list_missing_receipt" | "transaction_list_of_account_by_class" | "transaction_list_of_account_by_project" | "transaction_detail" | "cash_in_cash_out" | "insights_dashboard" | "company_details" | "class_list" | "account_list" | "account_list_by_type" | "vendor" | "task_card" | "bill_pay" | "reimbursement" | "bill_pay_card" | "reimbursement_card" | "bill_pay_promo_card" | "zeni_accounts" | "zeni_accounts_promo_card" | "zeni_treasury" | "charge_cards" | "other_connection" | "reimbursement_promo_card" | "onboarding" | "operating_expenses_by_vendor" | "operating_expenses_by_vendor_summary" | "vendors_tab" | "accounts_payable_aging" | "accounts_receivable_aging" | "vendor_global_review" | "prepaid_expenses" | "fixed_assets" | "notification" | "rewards_card" | "billing" | "flux_analysis_operating_expense" | "account_reconciliation" | "zeni_credit_promo_card" | "treasury_promo_card" | "excluded_account_reconciliation" | "transfer_accounts" | "credit_card_transfer_accounts"], {
|
|
6
|
+
reportIdToResync: "cash_balance" | "card_balance" | "expense_automation_card" | "operating_expenses" | "operating_expenses_by_classes" | "operating_expenses_by_projects" | "revenue" | "revenue_by_classes" | "revenue_by_projects" | "net_burn_or_income" | "net_burn_or_income_story_card" | "net_burn_or_income_by_classes" | "net_burn_or_income_by_projects" | "cash_position" | "top_expenses" | "profit_and_loss" | "profit_and_loss_by_classes" | "profit_and_loss_by_projects" | "balance_sheet" | "balance_sheet_by_classes" | "balance_sheet_by_projects" | "cash_flow" | "cash_flow_by_classes" | "cash_flow_by_projects" | "dashboard" | "finance_statement" | "transaction_list_of_account" | "transaction_list_missing_receipt" | "transaction_list_of_account_by_class" | "transaction_list_of_account_by_project" | "transaction_detail" | "cash_in_cash_out" | "insights_dashboard" | "company_details" | "class_list" | "account_list" | "account_list_by_type" | "vendor" | "task_card" | "bill_pay" | "reimbursement" | "bill_pay_card" | "reimbursement_card" | "bill_pay_promo_card" | "zeni_accounts" | "zeni_accounts_promo_card" | "zeni_treasury" | "charge_cards" | "other_connection" | "reimbursement_promo_card" | "onboarding" | "operating_expenses_by_vendor" | "operating_expenses_by_vendor_summary" | "vendors_tab" | "accounts_payable_aging" | "accounts_receivable_aging" | "vendor_global_review" | "prepaid_expenses" | "fixed_assets" | "notification" | "rewards_card" | "billing" | "flux_analysis_operating_expense" | "account_reconciliation" | "zeni_credit_promo_card" | "treasury_promo_card" | "excluded_account_reconciliation" | "transfer_accounts" | "credit_card_transfer_accounts";
|
|
7
7
|
}, "initiateReportsResync/initiateReportsResync", never, never>, initiateReportsClassViewRefetching: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
|
|
8
8
|
reportIdToResync: ReportID;
|
|
9
9
|
}, "initiateReportsResync/initiateReportsClassViewRefetching">, initiateReportsProjectViewRefetching: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
|
|
@@ -7,7 +7,7 @@ export declare const getScheduleListKey: (selectedCategory: ID, selectedTimefram
|
|
|
7
7
|
export type ScheduleListKey = ReturnType<typeof getScheduleListKey>;
|
|
8
8
|
export declare const toScheduleSubTabType: (v: string) => "completed" | "new" | "ongoing" | "all";
|
|
9
9
|
export type ScheduleSubTabType = ReturnType<typeof toScheduleSubTabType>;
|
|
10
|
-
declare const toScheduleSortKeyType: (v: string) => "months" | "vendor" | "
|
|
10
|
+
declare const toScheduleSortKeyType: (v: string) => "months" | "vendor" | "status" | "class" | "createTime" | "amount" | "memo" | "user" | "balanceAsOfToday" | "transactionType" | "scheduleCategory" | "startMonth" | "transactionDate" | "accruedExpenseCategory" | "expenseCategory" | "accumulatedDepreciationCategory" | "endMonth" | "assetId";
|
|
11
11
|
export declare type ScheduleListSortKey = ReturnType<typeof toScheduleSortKeyType>;
|
|
12
12
|
export interface DownloadJEScheduleTabOptions {
|
|
13
13
|
categoryId: ID;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ActionsObservable, StateObservable } from 'redux-observable';
|
|
2
|
-
import { RootState } from '../../rootStateTypes';
|
|
3
2
|
import { ZeniReportData } from '../../responsePayload';
|
|
3
|
+
import { RootState } from '../../rootStateTypes';
|
|
4
4
|
import { ZeniAPI } from '../../zeniAPI';
|
|
5
5
|
import { TasksCardPayload } from './tasksCardPayload';
|
|
6
6
|
import { fetchTasksCard, updateTasksCard, updateTasksCardFailure } from './tasksCardReducer';
|