@zeniai/client-epic-state 5.1.50-betaAK2 → 5.1.50-betaAK4
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/esm/index.js +2 -2
- package/lib/esm/view/invoicing/editInvoicingCatalogItemDetailView/editInvoicingCatalogItemDetailViewSelector.js +73 -18
- package/lib/esm/view/invoicing/invoiceDetail/invoiceDetailSelector.js +9 -1
- package/lib/index.d.ts +3 -3
- package/lib/index.js +15 -6
- package/lib/view/invoicing/editInvoicingCatalogItemDetailView/editInvoicingCatalogItemDetailViewSelector.d.ts +28 -12
- package/lib/view/invoicing/editInvoicingCatalogItemDetailView/editInvoicingCatalogItemDetailViewSelector.js +72 -17
- package/lib/view/invoicing/invoiceDetail/invoiceDetailSelector.d.ts +6 -1
- package/lib/view/invoicing/invoiceDetail/invoiceDetailSelector.js +9 -1
- package/package.json +1 -1
package/lib/esm/index.js
CHANGED
|
@@ -732,8 +732,8 @@ export { fetchInvoicingSubscriptionFormPage, initializeInvoicingSubscriptionAddr
|
|
|
732
732
|
export { INVOICING_SUBSCRIPTION_BILLING_FREQUENCY_VALUES, INVOICING_SUBSCRIPTION_SHIPPING_ADDRESS_TYPE, entityToInvoicingSubscriptionFormLocalData, initialInvoicingSubscriptionFormLocalData, } from './view/invoicing/editInvoicingSubscriptionDetailView/invoicingSubscriptionFormConfig';
|
|
733
733
|
export { getEditInvoicingSubscriptionDetailViewState, getInvoicingSubscriptionFormView, } from './view/invoicing/editInvoicingSubscriptionDetailView/editInvoicingSubscriptionDetailViewSelector';
|
|
734
734
|
export { resetEditInvoicingCatalogItemDetailView, saveInvoicingCatalogItem, submitInvoicingCatalogItemForm, updateInvoicingCatalogItemFormDraft, } from './view/invoicing/editInvoicingCatalogItemDetailView/editInvoicingCatalogItemDetailViewReducer';
|
|
735
|
-
export { blankInvoicingCatalogSubFamily, blankInvoicingCatalogTier, entityToInvoicingCatalogItemFormLocalData, initialInvoicingCatalogItemFormLocalData, isTieredCatalogPricingModel, } from './view/invoicing/editInvoicingCatalogItemDetailView/invoicingCatalogItemFormConfig';
|
|
736
|
-
export { getEditInvoicingCatalogItemDetailViewState, getInvoicingCatalogItemFormView, getSavedInvoicingCatalogItemId, getSavedInvoicingCatalogItemKind, } from './view/invoicing/editInvoicingCatalogItemDetailView/editInvoicingCatalogItemDetailViewSelector';
|
|
735
|
+
export { INVOICING_CATALOG_APPLICABILITY_VALUES, INVOICING_CATALOG_PERIOD_UNIT_VALUES, INVOICING_CATALOG_PRICING_MODEL_VALUES, INVOICING_CATALOG_PRORATION_VALUES, INVOICING_CATALOG_TIER_TYPE_VALUES, INVOICING_CATALOG_TRIAL_END_ACTION_VALUES, INVOICING_CATALOG_TRIAL_UNIT_VALUES, INVOICING_CATALOG_TYPE_VALUES, blankInvoicingCatalogSubFamily, blankInvoicingCatalogTier, entityToInvoicingCatalogItemFormLocalData, initialInvoicingCatalogItemFormLocalData, isTieredCatalogPricingModel, } from './view/invoicing/editInvoicingCatalogItemDetailView/invoicingCatalogItemFormConfig';
|
|
736
|
+
export { getEditInvoicingCatalogItemDetailViewState, getInvoicingApplicableCatalogItemOptions, getInvoicingCatalogItemFormView, getSavedInvoicingCatalogItemId, getSavedInvoicingCatalogItemKind, } from './view/invoicing/editInvoicingCatalogItemDetailView/editInvoicingCatalogItemDetailViewSelector';
|
|
737
737
|
export { resetEditInvoicingCouponDetailView, saveInvoicingCoupon, submitInvoicingCouponForm, updateInvoicingCouponFormDraft, } from './view/invoicing/editInvoicingCouponDetailView/editInvoicingCouponDetailViewReducer';
|
|
738
738
|
export { entityToInvoicingCouponFormLocalData, initialInvoicingCouponFormLocalData, } from './view/invoicing/editInvoicingCouponDetailView/invoicingCouponFormConfig';
|
|
739
739
|
export { getEditInvoicingCouponDetailViewState, getInvoicingCouponFormView, } from './view/invoicing/editInvoicingCouponDetailView/editInvoicingCouponDetailViewSelector';
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { createSelector } from '@reduxjs/toolkit';
|
|
2
|
+
import { getInvoicingPlanById, getInvoicingPlansByIds, } from '../../../entity/invoicing/plan/planSelector';
|
|
3
|
+
import { getInvoicingProductById, getInvoicingProductsByIds, } from '../../../entity/invoicing/product/productSelector';
|
|
3
4
|
import { INVOICING_CATALOG_APPLICABILITY_VALUES, INVOICING_CATALOG_PERIOD_UNIT_VALUES, INVOICING_CATALOG_PRICING_MODEL_VALUES, INVOICING_CATALOG_PRORATION_VALUES, INVOICING_CATALOG_TIER_TYPE_VALUES, INVOICING_CATALOG_TRIAL_END_ACTION_VALUES, INVOICING_CATALOG_TRIAL_UNIT_VALUES, INVOICING_CATALOG_TYPE_VALUES, entityToInvoicingCatalogItemFormLocalData, } from './invoicingCatalogItemFormConfig';
|
|
4
5
|
export const getEditInvoicingCatalogItemDetailViewState = (state) => ({
|
|
5
6
|
fetchState: state.editInvoicingCatalogItemDetailViewState.fetchState,
|
|
@@ -7,29 +8,83 @@ export const getEditInvoicingCatalogItemDetailViewState = (state) => ({
|
|
|
7
8
|
});
|
|
8
9
|
export const getSavedInvoicingCatalogItemId = (state) => state.editInvoicingCatalogItemDetailViewState.savedItemId;
|
|
9
10
|
export const getSavedInvoicingCatalogItemKind = (state) => state.editInvoicingCatalogItemDetailViewState.savedKind;
|
|
10
|
-
|
|
11
|
+
const isAddonOrCharge = (type) => type === 'addon' || type === 'charge';
|
|
12
|
+
const priceSubtitle = (price, periodUnit) => {
|
|
13
|
+
if (price == null) {
|
|
14
|
+
return undefined;
|
|
15
|
+
}
|
|
16
|
+
const amount = new Intl.NumberFormat('en-US', {
|
|
17
|
+
currency: price.currencyCode !== '' ? price.currencyCode : 'USD',
|
|
18
|
+
maximumFractionDigits: 0,
|
|
19
|
+
style: 'currency',
|
|
20
|
+
}).format(price.amount);
|
|
21
|
+
if (periodUnit != null && periodUnit !== '') {
|
|
22
|
+
return `${amount}/${periodUnit}`;
|
|
23
|
+
}
|
|
24
|
+
return amount;
|
|
25
|
+
};
|
|
26
|
+
const buildApplicableCatalogItemOptions = (plans, products) => {
|
|
27
|
+
const options = new Map();
|
|
28
|
+
for (const plan of plans) {
|
|
29
|
+
const type = plan.type ?? plan.itemType;
|
|
30
|
+
if (!isAddonOrCharge(type)) {
|
|
31
|
+
continue;
|
|
32
|
+
}
|
|
33
|
+
options.set(plan.id, {
|
|
34
|
+
id: plan.id,
|
|
35
|
+
label: plan.name ?? plan.id,
|
|
36
|
+
subtitle: type,
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
for (const product of products) {
|
|
40
|
+
const type = product.itemType ?? product.type;
|
|
41
|
+
if (!isAddonOrCharge(type)) {
|
|
42
|
+
continue;
|
|
43
|
+
}
|
|
44
|
+
const id = product.itemID ?? product.id;
|
|
45
|
+
if (options.has(id)) {
|
|
46
|
+
continue;
|
|
47
|
+
}
|
|
48
|
+
options.set(id, {
|
|
49
|
+
id,
|
|
50
|
+
label: product.name ?? id,
|
|
51
|
+
subtitle: priceSubtitle(product.price, product.periodUnit),
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
return [...options.values()].sort((a, b) => a.label.localeCompare(b.label));
|
|
55
|
+
};
|
|
56
|
+
/**
|
|
57
|
+
* Memoized add-on / one-time-charge options sourced from the catalog list slice.
|
|
58
|
+
* Kept referentially stable across unrelated dispatches; the form view filters
|
|
59
|
+
* out the item being edited (see `getInvoicingCatalogItemFormView`).
|
|
60
|
+
*/
|
|
61
|
+
export const getInvoicingApplicableCatalogItemOptions = createSelector((state) => state.invoicingPlanState, (state) => state.invoicingProductState, (state) => state.invoicingCatalogListViewState, (planState, productState, listViewState) => buildApplicableCatalogItemOptions(getInvoicingPlansByIds(planState, listViewState.planIds), getInvoicingProductsByIds(productState, listViewState.productIds)));
|
|
62
|
+
export const getInvoicingCatalogItemFormView = (state, id) => {
|
|
11
63
|
const { editDraftById, error, fetchState, newItemDraft, savedItemId, savedKind } = state.editInvoicingCatalogItemDetailViewState;
|
|
12
|
-
const
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
const product = kind === 'product' && id != null
|
|
16
|
-
? getInvoicingProductById(state.invoicingProductState, id)
|
|
17
|
-
: undefined;
|
|
64
|
+
const product = id != null ? getInvoicingProductById(state.invoicingProductState, id) : undefined;
|
|
65
|
+
const plan = id != null ? getInvoicingPlanById(state.invoicingPlanState, id) : undefined;
|
|
66
|
+
const kind = product != null ? 'product' : plan != null ? 'plan' : undefined;
|
|
18
67
|
const localData = id != null
|
|
19
68
|
? (editDraftById[id] ??
|
|
20
|
-
entityToInvoicingCatalogItemFormLocalData(
|
|
69
|
+
entityToInvoicingCatalogItemFormLocalData(product ?? plan, kind))
|
|
21
70
|
: newItemDraft;
|
|
71
|
+
const allApplicableItemOptions = getInvoicingApplicableCatalogItemOptions(state);
|
|
72
|
+
const applicableItemOptions = id != null
|
|
73
|
+
? allApplicableItemOptions.filter((option) => option.id !== id)
|
|
74
|
+
: allApplicableItemOptions;
|
|
22
75
|
return {
|
|
23
|
-
applicabilityValues:
|
|
76
|
+
applicabilityValues: INVOICING_CATALOG_APPLICABILITY_VALUES,
|
|
77
|
+
applicableItemOptions,
|
|
24
78
|
localData,
|
|
25
79
|
mode: id != null ? 'edit' : 'create',
|
|
26
|
-
periodUnitValues:
|
|
27
|
-
pricingModelValues:
|
|
28
|
-
prorationValues:
|
|
29
|
-
tierTypeValues:
|
|
30
|
-
trialEndActionValues:
|
|
31
|
-
trialUnitValues:
|
|
32
|
-
typeValues:
|
|
80
|
+
periodUnitValues: INVOICING_CATALOG_PERIOD_UNIT_VALUES,
|
|
81
|
+
pricingModelValues: INVOICING_CATALOG_PRICING_MODEL_VALUES,
|
|
82
|
+
prorationValues: INVOICING_CATALOG_PRORATION_VALUES,
|
|
83
|
+
tierTypeValues: INVOICING_CATALOG_TIER_TYPE_VALUES,
|
|
84
|
+
trialEndActionValues: INVOICING_CATALOG_TRIAL_END_ACTION_VALUES,
|
|
85
|
+
trialUnitValues: INVOICING_CATALOG_TRIAL_UNIT_VALUES,
|
|
86
|
+
typeValues: INVOICING_CATALOG_TYPE_VALUES,
|
|
87
|
+
kind,
|
|
33
88
|
plan,
|
|
34
89
|
product,
|
|
35
90
|
savedItemId,
|
|
@@ -1,10 +1,18 @@
|
|
|
1
1
|
import recordGet from 'lodash/get';
|
|
2
|
+
import { getAddressByAddressId } from '../../../entity/address/addressSelector';
|
|
2
3
|
import { getInvoiceById } from '../../../entity/invoicing/invoice/invoiceSelector';
|
|
3
4
|
import { getInvoicingInvoiceActionState } from '../invoiceAction/invoiceActionSelector';
|
|
4
5
|
export const getInvoiceDetail = (state, invoiceId) => {
|
|
5
6
|
const detail = recordGet(state.invoicingInvoiceDetailState.detailById, invoiceId, undefined);
|
|
7
|
+
const invoice = getInvoiceById(state, invoiceId);
|
|
6
8
|
return {
|
|
7
|
-
invoice
|
|
9
|
+
invoice,
|
|
10
|
+
billingAddress: invoice?.billingAddressId != null
|
|
11
|
+
? getAddressByAddressId(state.addressState, invoice.billingAddressId)
|
|
12
|
+
: undefined,
|
|
13
|
+
shippingAddress: invoice?.shippingAddressId != null
|
|
14
|
+
? getAddressByAddressId(state.addressState, invoice.shippingAddressId)
|
|
15
|
+
: undefined,
|
|
8
16
|
actionState: getInvoicingInvoiceActionState(invoiceId)(state),
|
|
9
17
|
fetchState: detail?.fetchState ?? 'Not-Started',
|
|
10
18
|
error: detail?.error,
|
package/lib/index.d.ts
CHANGED
|
@@ -1056,9 +1056,9 @@ export type { EditInvoicingSubscriptionDetailView, InvoicingSubscriptionFormView
|
|
|
1056
1056
|
export { resetEditInvoicingCatalogItemDetailView, saveInvoicingCatalogItem, submitInvoicingCatalogItemForm, updateInvoicingCatalogItemFormDraft, } from './view/invoicing/editInvoicingCatalogItemDetailView/editInvoicingCatalogItemDetailViewReducer';
|
|
1057
1057
|
export type { SaveInvoicingCatalogItemPayload, SubmitInvoicingCatalogItemFormPayload, UpdateInvoicingCatalogItemFormDraftPayload, } from './view/invoicing/editInvoicingCatalogItemDetailView/editInvoicingCatalogItemDetailViewReducer';
|
|
1058
1058
|
export type { InvoicingCatalogItemFormLocalData, InvoicingCatalogItemFormSubFamily, InvoicingCatalogItemFormTier, } from './view/invoicing/editInvoicingCatalogItemDetailView/editInvoicingCatalogItemDetailViewState';
|
|
1059
|
-
export { blankInvoicingCatalogSubFamily, blankInvoicingCatalogTier, entityToInvoicingCatalogItemFormLocalData, initialInvoicingCatalogItemFormLocalData, isTieredCatalogPricingModel, } from './view/invoicing/editInvoicingCatalogItemDetailView/invoicingCatalogItemFormConfig';
|
|
1060
|
-
export { getEditInvoicingCatalogItemDetailViewState, getInvoicingCatalogItemFormView, getSavedInvoicingCatalogItemId, getSavedInvoicingCatalogItemKind, } from './view/invoicing/editInvoicingCatalogItemDetailView/editInvoicingCatalogItemDetailViewSelector';
|
|
1061
|
-
export type { InvoicingCatalogItemFormView } from './view/invoicing/editInvoicingCatalogItemDetailView/editInvoicingCatalogItemDetailViewSelector';
|
|
1059
|
+
export { INVOICING_CATALOG_APPLICABILITY_VALUES, INVOICING_CATALOG_PERIOD_UNIT_VALUES, INVOICING_CATALOG_PRICING_MODEL_VALUES, INVOICING_CATALOG_PRORATION_VALUES, INVOICING_CATALOG_TIER_TYPE_VALUES, INVOICING_CATALOG_TRIAL_END_ACTION_VALUES, INVOICING_CATALOG_TRIAL_UNIT_VALUES, INVOICING_CATALOG_TYPE_VALUES, blankInvoicingCatalogSubFamily, blankInvoicingCatalogTier, entityToInvoicingCatalogItemFormLocalData, initialInvoicingCatalogItemFormLocalData, isTieredCatalogPricingModel, } from './view/invoicing/editInvoicingCatalogItemDetailView/invoicingCatalogItemFormConfig';
|
|
1060
|
+
export { getEditInvoicingCatalogItemDetailViewState, getInvoicingApplicableCatalogItemOptions, getInvoicingCatalogItemFormView, getSavedInvoicingCatalogItemId, getSavedInvoicingCatalogItemKind, } from './view/invoicing/editInvoicingCatalogItemDetailView/editInvoicingCatalogItemDetailViewSelector';
|
|
1061
|
+
export type { ApplicableCatalogItemOption, InvoicingCatalogItemFormView, } from './view/invoicing/editInvoicingCatalogItemDetailView/editInvoicingCatalogItemDetailViewSelector';
|
|
1062
1062
|
export { resetEditInvoicingCouponDetailView, saveInvoicingCoupon, submitInvoicingCouponForm, updateInvoicingCouponFormDraft, } from './view/invoicing/editInvoicingCouponDetailView/editInvoicingCouponDetailViewReducer';
|
|
1063
1063
|
export type { SaveInvoicingCouponPayload, SubmitInvoicingCouponFormPayload, UpdateInvoicingCouponFormDraftPayload, } from './view/invoicing/editInvoicingCouponDetailView/editInvoicingCouponDetailViewReducer';
|
|
1064
1064
|
export type { InvoicingCouponFormLocalData } from './view/invoicing/editInvoicingCouponDetailView/editInvoicingCouponDetailViewState';
|
package/lib/index.js
CHANGED
|
@@ -77,12 +77,12 @@ exports.getPolicyRecommendationFromUploadChatSessionId = exports.getPolicyRecomm
|
|
|
77
77
|
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 = exports.getLastCreatedCardPolicyTemplateIds = exports.getLastCreatedCardPolicyTemplateId = exports.getLastCreateCardPolicyTemplateErrors = exports.getLastCreateCardPolicySourceChatSessionId = exports.getCreateCardPolicyTemplateRequestState = exports.getAiCardPolicyFormDraft = exports.updateManualCardPolicyFormDraft = exports.updateCreateCardPolicyTemplateRequestState = exports.updateAiCardPolicyFormDraftFromUploadPlan = exports.updateAiCardPolicyFormDraft = exports.seedManualCardPolicyFormDraft = exports.seedAiCardPolicyFormDraft = exports.createCardPolicyTemplates = exports.clearManualCardPolicyFormDraft = exports.clearCreateCardPolicy = exports.clearAiCardPolicyFormDraft = exports.applyExtractedPolicyToManualCardPolicyDraft = exports.applyExtractedPolicyToAiCardPolicyDraft = exports.toUpdateCardPolicyTemplateRequestBody = exports.toExtractedCardPolicyRules = exports.toCreateCardPolicyTemplatesRequestBody = exports.toCreateCardPolicyTemplateRequestBody = exports.toCardPolicyVendorSearchOption = exports.toCardPolicyTemplateList = exports.toCardPolicyTemplate = exports.toCardPolicyStats = exports.toCardPolicyEditFormDraft = exports.toBulkCreateCardPolicyTemplateError = exports.toCardPolicyTemplateStatus = exports.toCardPolicyTemplateMode = exports.ALL_CARD_POLICY_TEMPLATE_STATUSES = exports.ALL_CARD_POLICY_TEMPLATE_MODES = exports.getUploadedPolicyDocumentFileName = exports.getPolicyRecommendationFromUploadFetchState = exports.getPolicyRecommendationFromUploadError = void 0;
|
|
78
78
|
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 = 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.clearCardPolicyDetail = exports.getCardPolicyTemplateIds = exports.getCardPolicyListView = exports.getCardPolicyListFetchState = exports.getArchiveCardPolicyFetchState = exports.updateCardPolicyListFetchStatus = exports.updateArchiveCardPolicyFetchStatus = exports.prependCardPolicyTemplateIds = exports.fetchCardPolicyList = exports.clearCardPolicyList = exports.archiveCardPolicy = exports.toManualCardPolicyTemplateRequestFromDraft = exports.toBulkCardPolicyTemplateRequestsFromDraft = exports.toCardPolicyTemplateRequestFromDraft = exports.applyAiCardPolicyFormDraftUpdate = void 0;
|
|
79
79
|
exports.fetchInvoicingAuditLog = exports.clearInvoicingAuditView = exports.getInvoicingOverview = exports.buildPeriodOptions = exports.fetchInvoicingOverview = exports.clearInvoicingOverview = exports.initialRecordPaymentFormLocalData = exports.INVOICING_PAYMENT_METHOD_VALUES = exports.INVOICING_PAYMENT_GATEWAY_VALUES = exports.updateRecordPaymentFormDraft = exports.submitRecordPayment = exports.resetRecordPayment = exports.resetCreateInvoice = exports.createInvoice = exports.getInvoiceDetail = exports.fetchInvoiceDetail = exports.clearAllInvoiceDetail = exports.getInvoiceListView = exports.INVOICING_INVOICE_TABS = exports.ALL_INVOICING_INVOICE_TAB_IDS = exports.updateInvoiceListFilters = exports.fetchInvoiceListPage = exports.fetchInvoiceList = exports.fetchInvoiceKPIs = exports.fetchInvoiceCounts = exports.clearInvoiceList = exports.getInvoicesByIds = exports.getInvoiceById = exports.updateInvoices = exports.removeInvoice = exports.clearAllInvoices = exports.getCashManagementOverviewBanner = exports.getCashManagementOverview = exports.bufferAmountToRisk = exports.RISK_BUFFER_AMOUNT = exports.getAutoSweepFlow = exports.updateCashManagementSettingsFetchStatus = exports.updateCashManagementSettings = exports.updateAutoSweepSettingsFetchStatus = exports.updateAutoSweepRisk = exports.updateAutoSweepDraft = exports.saveAutoSweepSettings = exports.clearAutoSweepFlow = exports.fetchCashManagementOverviewPage = exports.fetchCashManagementBanner = exports.toKycProvidedDocumentTypeFromAllowed = exports.toKycProvidedDocumentType = exports.DEFAULT_SESSION_CONFIG = exports.SessionManager = exports.getTransactionActivityLogView = void 0;
|
|
80
|
-
exports.
|
|
81
|
-
exports.
|
|
82
|
-
exports.
|
|
83
|
-
exports.
|
|
84
|
-
exports.
|
|
85
|
-
exports.getInvoicingOnboardingStatus = exports.getInvoicingOnboardingFetchState = exports.getInvoicingOnboardingCompleteState = exports.getInvoicingOnboardingAcceptState = exports.updateInvoicingOnboarding = exports.resetInvoicingOnboardingActionStates = exports.fetchInvoicingOnboarding = exports.completeInvoicingOnboarding = void 0;
|
|
80
|
+
exports.entityToInvoicingCatalogItemFormLocalData = exports.blankInvoicingCatalogTier = exports.blankInvoicingCatalogSubFamily = exports.INVOICING_CATALOG_TYPE_VALUES = exports.INVOICING_CATALOG_TRIAL_UNIT_VALUES = exports.INVOICING_CATALOG_TRIAL_END_ACTION_VALUES = exports.INVOICING_CATALOG_TIER_TYPE_VALUES = exports.INVOICING_CATALOG_PRORATION_VALUES = exports.INVOICING_CATALOG_PRICING_MODEL_VALUES = exports.INVOICING_CATALOG_PERIOD_UNIT_VALUES = exports.INVOICING_CATALOG_APPLICABILITY_VALUES = exports.updateInvoicingCatalogItemFormDraft = exports.submitInvoicingCatalogItemForm = exports.saveInvoicingCatalogItem = exports.resetEditInvoicingCatalogItemDetailView = exports.getInvoicingSubscriptionFormView = exports.getEditInvoicingSubscriptionDetailViewState = exports.initialInvoicingSubscriptionFormLocalData = exports.entityToInvoicingSubscriptionFormLocalData = exports.INVOICING_SUBSCRIPTION_SHIPPING_ADDRESS_TYPE = exports.INVOICING_SUBSCRIPTION_BILLING_FREQUENCY_VALUES = exports.updateInvoicingSubscriptionFormDraft = exports.submitInvoicingSubscriptionForm = exports.resetEditInvoicingSubscriptionDetailView = exports.initializeInvoicingSubscriptionAddress = exports.fetchInvoicingSubscriptionFormPage = exports.getInvoicingCustomerFormView = exports.initialInvoicingCustomerFormLocalData = exports.entityToInvoicingCustomerFormLocalData = exports.INVOICING_TAXABILITY_VALUES = exports.INVOICING_NET_TERM_DAY_VALUES = exports.INVOICING_CUSTOMER_TYPE_VALUES = exports.INVOICING_CUSTOMER_BILLING_ADDRESS_TYPE = exports.updateInvoicingCustomerFormDraft = exports.submitInvoicingCustomerFormSuccess = exports.submitInvoicingCustomerFormFailure = exports.submitInvoicingCustomerForm = exports.resetEditInvoicingCustomerDetailView = exports.initializeInvoicingCustomerAddress = exports.getRecordedTransactionId = exports.getRecordPaymentFormView = exports.getRecordPaymentFetchState = exports.getCreatedInvoiceId = exports.getCreateInvoiceFormView = exports.getCreateInvoiceFetchState = exports.getInvoicingAuditLogNextCursor = exports.getInvoicingAuditLogItems = exports.getInvoicingAuditLogHasMore = exports.getInvoicingAuditLogFilters = exports.getInvoicingAuditLogFetchState = void 0;
|
|
81
|
+
exports.updateInvoicingCustomers = exports.removeInvoicingCustomer = exports.clearAllInvoicingCustomers = exports.INVOICING_LIST_PAGE_SIZE = exports.getInvoicingDataImportActionState = exports.uploadInvoicingMigrationFiles = exports.startInvoicingMigration = exports.rollbackInvoicingMigration = exports.retryInvoicingMigration = exports.connectInvoicingChargebee = exports.clearAllInvoicingDataImportActions = exports.getInvoicingMigrationSessionsFetchState = exports.getInvoicingMigrationSessions = exports.getInvoicingMigrationSessionById = exports.getInvoicingDataImportStatusRows = exports.getInvoicingDataImportStatusFetchState = exports.getInvoicingActiveMigrationSessionId = exports.setInvoicingActiveMigrationSessionId = exports.fetchInvoicingMigrationSessions = exports.fetchInvoicingMigrationSession = exports.fetchInvoicingDataImportStatus = exports.clearInvoicingDataImportView = exports.getInvoicingPaymentActionState = exports.runInvoicingPaymentAction = exports.clearInvoicingPaymentAction = exports.getInvoicingDunningActionState = exports.runInvoicingDunningAction = exports.clearInvoicingDunningAction = exports.getInvoicingSubscriptionActionState = exports.runInvoicingSubscriptionAction = exports.clearInvoicingSubscriptionAction = exports.getInvoicingInvoiceActionState = exports.updateInvoicingInvoice = exports.runInvoicingInvoiceAction = exports.clearInvoicingInvoiceAction = exports.getInvoicingCouponFormView = exports.getEditInvoicingCouponDetailViewState = exports.initialInvoicingCouponFormLocalData = exports.entityToInvoicingCouponFormLocalData = exports.updateInvoicingCouponFormDraft = exports.submitInvoicingCouponForm = exports.saveInvoicingCoupon = exports.resetEditInvoicingCouponDetailView = exports.getSavedInvoicingCatalogItemKind = exports.getSavedInvoicingCatalogItemId = exports.getInvoicingCatalogItemFormView = exports.getInvoicingApplicableCatalogItemOptions = exports.getEditInvoicingCatalogItemDetailViewState = exports.isTieredCatalogPricingModel = exports.initialInvoicingCatalogItemFormLocalData = void 0;
|
|
82
|
+
exports.fetchInvoicingTransactionListPage = exports.fetchInvoicingTransactionList = exports.clearInvoicingTransactionListView = exports.updateInvoicingTransactions = exports.removeInvoicingTransaction = exports.clearAllInvoicingTransactions = exports.getInvoicingSubscriptionDetail = exports.getInvoicingSubscriptionById = exports.fetchInvoicingSubscriptionDetail = exports.clearInvoicingSubscriptionDetailView = exports.getInvoicingSubscriptionListView = exports.INVOICING_SUBSCRIPTION_TABS = exports.INVOICING_SUBSCRIPTION_COLUMNS = exports.ALL_INVOICING_SUBSCRIPTION_TAB_IDS = exports.ALL_INVOICING_SUBSCRIPTION_SORT_KEYS = exports.updateInvoicingSubscriptionFilters = exports.fetchInvoicingSubscriptionListPage = exports.fetchInvoicingSubscriptionList = exports.fetchInvoicingSubscriptionCounts = exports.clearInvoicingSubscriptionListView = exports.updateInvoicingSubscriptions = exports.removeInvoicingSubscription = exports.clearAllInvoicingSubscriptions = exports.getInvoicingSetupIntentFetchState = exports.getInvoicingSetupIntent = exports.getInvoicingSentPaymentLinkMagicUrl = exports.getInvoicingSentPaymentLinkEmail = exports.getInvoicingPlaidLinkTokenFetchState = exports.getInvoicingPlaidLinkToken = exports.getInvoicingPaymentMethodSaveState = exports.getInvoicingPaymentLinkSendState = exports.sendInvoicingPaymentLink = exports.saveInvoicingPaymentMethod = exports.resetInvoicingCustomerPaymentMethod = exports.fetchInvoicingPlaidLinkToken = exports.createInvoicingSetupIntent = exports.getInvoicingCustomerDetail = exports.fetchInvoicingCustomerDetailPage = exports.fetchInvoicingCustomerDetail = exports.clearInvoicingCustomerDetailView = exports.getInvoicingCustomerListView = exports.INVOICING_CUSTOMER_TABS = exports.INVOICING_CUSTOMER_COLUMNS = exports.ALL_INVOICING_CUSTOMER_TAB_IDS = exports.ALL_INVOICING_CUSTOMER_SORT_KEYS = exports.updateInvoicingCustomerFilters = exports.fetchInvoicingCustomerListPage = exports.fetchInvoicingCustomerList = exports.fetchInvoicingCustomerCounts = exports.clearInvoicingCustomerListView = void 0;
|
|
83
|
+
exports.getInvoicingCouponDetail = exports.fetchInvoicingCouponDetail = exports.clearInvoicingCouponDetailView = exports.getInvoicingCouponById = exports.getInvoicingCouponListView = exports.getInvoicingCouponListNextCursor = exports.getInvoicingCouponListItems = exports.getInvoicingCouponListHasMore = exports.getInvoicingCouponListFilters = exports.getInvoicingCouponListFetchState = exports.getInvoicingCouponCounts = exports.INVOICING_COUPON_TABS = exports.INVOICING_COUPON_COLUMNS = exports.ALL_INVOICING_COUPON_TAB_IDS = exports.ALL_INVOICING_COUPON_SORT_KEYS = exports.updateInvoicingCouponFilters = exports.fetchInvoicingCouponListPage = exports.fetchInvoicingCouponList = exports.fetchInvoicingCouponCounts = exports.clearInvoicingCouponView = exports.updateInvoicingCoupons = exports.removeInvoicingCoupon = exports.clearAllInvoicingCoupons = exports.getInvoicingCreditNoteDetail = exports.getInvoicingCreditNoteById = exports.fetchInvoicingCreditNoteDetail = exports.clearInvoicingCreditNoteDetailView = exports.getInvoicingCreditNoteListView = exports.INVOICING_CREDIT_NOTE_TABS = exports.INVOICING_CREDIT_NOTE_COLUMNS = exports.ALL_INVOICING_CREDIT_NOTE_TAB_IDS = exports.ALL_INVOICING_CREDIT_NOTE_SORT_KEYS = exports.updateInvoicingCreditNoteFilters = exports.fetchInvoicingCreditNoteListPage = exports.fetchInvoicingCreditNoteList = exports.fetchInvoicingCreditNoteCounts = exports.clearInvoicingCreditNoteListView = exports.updateInvoicingCreditNotes = exports.removeInvoicingCreditNote = exports.clearAllInvoicingCreditNotes = exports.getInvoicingTransactionDetail = exports.getInvoicingTransactionById = exports.fetchInvoicingTransactionDetail = exports.clearInvoicingTransactionDetailView = exports.getInvoicingTransactionListView = exports.INVOICING_TRANSACTION_TABS = exports.INVOICING_TRANSACTION_COLUMNS = exports.ALL_INVOICING_TRANSACTION_TAB_IDS = exports.ALL_INVOICING_TRANSACTION_SORT_KEYS = exports.updateInvoicingTransactionFilters = void 0;
|
|
84
|
+
exports.getInvoicingSettings = exports.getInvoicingBrandingFormView = exports.updateInvoicingSettings = exports.updateInvoicingBrandingFormDraft = exports.submitInvoicingBrandingForm = exports.saveInvoicingSettings = exports.resetSaveInvoicingSettings = exports.resetInvoicingBrandingFormDraft = exports.fetchInvoicingSettings = exports.disconnectInvoicingStripe = exports.connectInvoicingStripe = exports.clearInvoicingSettings = exports.getInvoicingProductById = exports.getInvoicingPlanById = exports.getInvoicingCatalogItemDetail = exports.fetchInvoicingCatalogItemDetail = exports.clearInvoicingCatalogItemDetailView = 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.clearInvoicingCatalogListView = exports.updateInvoicingProducts = exports.removeInvoicingProduct = exports.clearAllInvoicingProducts = exports.updateInvoicingPlans = exports.removeInvoicingPlan = exports.clearAllInvoicingPlans = exports.getInvoicingDunningCaseDetail = exports.getInvoicingDunningCaseById = exports.fetchInvoicingDunningCaseDetail = exports.clearInvoicingDunningCaseDetailView = exports.getInvoicingDunningCaseListView = exports.INVOICING_DUNNING_CASE_TABS = exports.INVOICING_DUNNING_CASE_COLUMNS = exports.ALL_INVOICING_DUNNING_CASE_TAB_IDS = exports.ALL_INVOICING_DUNNING_CASE_SORT_KEYS = exports.updateInvoicingDunningCaseFilters = exports.fetchInvoicingDunningCaseListPage = exports.fetchInvoicingDunningCaseList = exports.fetchInvoicingDunningCaseCounts = exports.clearInvoicingDunningCaseListView = exports.updateInvoicingDunningCases = exports.removeInvoicingDunningCase = exports.clearAllInvoicingDunningCases = void 0;
|
|
85
|
+
exports.getInvoicingOnboardingStatus = exports.getInvoicingOnboardingFetchState = exports.getInvoicingOnboardingCompleteState = exports.getInvoicingOnboardingAcceptState = exports.updateInvoicingOnboarding = exports.resetInvoicingOnboardingActionStates = exports.fetchInvoicingOnboarding = exports.completeInvoicingOnboarding = exports.clearInvoicingOnboarding = exports.acceptInvoicingOnboarding = exports.isStripeConnectedFromSettings = exports.initialInvoicingBrandingFormLocalData = exports.entityToInvoicingBrandingFormLocalData = exports.INVOICING_BUSINESS_ADDRESS_TYPE = exports.getInvoicingStripeConnectState = exports.getInvoicingSettingsSaveState = exports.getInvoicingSettingsFetchState = void 0;
|
|
86
86
|
const allowedValue_1 = require("./commonStateTypes/allowedValue");
|
|
87
87
|
Object.defineProperty(exports, "isAllowedValueWithCode", { enumerable: true, get: function () { return allowedValue_1.isAllowedValueWithCode; } });
|
|
88
88
|
Object.defineProperty(exports, "isAllowedValueWithID", { enumerable: true, get: function () { return allowedValue_1.isAllowedValueWithID; } });
|
|
@@ -2715,6 +2715,14 @@ Object.defineProperty(exports, "saveInvoicingCatalogItem", { enumerable: true, g
|
|
|
2715
2715
|
Object.defineProperty(exports, "submitInvoicingCatalogItemForm", { enumerable: true, get: function () { return editInvoicingCatalogItemDetailViewReducer_1.submitInvoicingCatalogItemForm; } });
|
|
2716
2716
|
Object.defineProperty(exports, "updateInvoicingCatalogItemFormDraft", { enumerable: true, get: function () { return editInvoicingCatalogItemDetailViewReducer_1.updateInvoicingCatalogItemFormDraft; } });
|
|
2717
2717
|
var invoicingCatalogItemFormConfig_1 = require("./view/invoicing/editInvoicingCatalogItemDetailView/invoicingCatalogItemFormConfig");
|
|
2718
|
+
Object.defineProperty(exports, "INVOICING_CATALOG_APPLICABILITY_VALUES", { enumerable: true, get: function () { return invoicingCatalogItemFormConfig_1.INVOICING_CATALOG_APPLICABILITY_VALUES; } });
|
|
2719
|
+
Object.defineProperty(exports, "INVOICING_CATALOG_PERIOD_UNIT_VALUES", { enumerable: true, get: function () { return invoicingCatalogItemFormConfig_1.INVOICING_CATALOG_PERIOD_UNIT_VALUES; } });
|
|
2720
|
+
Object.defineProperty(exports, "INVOICING_CATALOG_PRICING_MODEL_VALUES", { enumerable: true, get: function () { return invoicingCatalogItemFormConfig_1.INVOICING_CATALOG_PRICING_MODEL_VALUES; } });
|
|
2721
|
+
Object.defineProperty(exports, "INVOICING_CATALOG_PRORATION_VALUES", { enumerable: true, get: function () { return invoicingCatalogItemFormConfig_1.INVOICING_CATALOG_PRORATION_VALUES; } });
|
|
2722
|
+
Object.defineProperty(exports, "INVOICING_CATALOG_TIER_TYPE_VALUES", { enumerable: true, get: function () { return invoicingCatalogItemFormConfig_1.INVOICING_CATALOG_TIER_TYPE_VALUES; } });
|
|
2723
|
+
Object.defineProperty(exports, "INVOICING_CATALOG_TRIAL_END_ACTION_VALUES", { enumerable: true, get: function () { return invoicingCatalogItemFormConfig_1.INVOICING_CATALOG_TRIAL_END_ACTION_VALUES; } });
|
|
2724
|
+
Object.defineProperty(exports, "INVOICING_CATALOG_TRIAL_UNIT_VALUES", { enumerable: true, get: function () { return invoicingCatalogItemFormConfig_1.INVOICING_CATALOG_TRIAL_UNIT_VALUES; } });
|
|
2725
|
+
Object.defineProperty(exports, "INVOICING_CATALOG_TYPE_VALUES", { enumerable: true, get: function () { return invoicingCatalogItemFormConfig_1.INVOICING_CATALOG_TYPE_VALUES; } });
|
|
2718
2726
|
Object.defineProperty(exports, "blankInvoicingCatalogSubFamily", { enumerable: true, get: function () { return invoicingCatalogItemFormConfig_1.blankInvoicingCatalogSubFamily; } });
|
|
2719
2727
|
Object.defineProperty(exports, "blankInvoicingCatalogTier", { enumerable: true, get: function () { return invoicingCatalogItemFormConfig_1.blankInvoicingCatalogTier; } });
|
|
2720
2728
|
Object.defineProperty(exports, "entityToInvoicingCatalogItemFormLocalData", { enumerable: true, get: function () { return invoicingCatalogItemFormConfig_1.entityToInvoicingCatalogItemFormLocalData; } });
|
|
@@ -2722,6 +2730,7 @@ Object.defineProperty(exports, "initialInvoicingCatalogItemFormLocalData", { enu
|
|
|
2722
2730
|
Object.defineProperty(exports, "isTieredCatalogPricingModel", { enumerable: true, get: function () { return invoicingCatalogItemFormConfig_1.isTieredCatalogPricingModel; } });
|
|
2723
2731
|
var editInvoicingCatalogItemDetailViewSelector_1 = require("./view/invoicing/editInvoicingCatalogItemDetailView/editInvoicingCatalogItemDetailViewSelector");
|
|
2724
2732
|
Object.defineProperty(exports, "getEditInvoicingCatalogItemDetailViewState", { enumerable: true, get: function () { return editInvoicingCatalogItemDetailViewSelector_1.getEditInvoicingCatalogItemDetailViewState; } });
|
|
2733
|
+
Object.defineProperty(exports, "getInvoicingApplicableCatalogItemOptions", { enumerable: true, get: function () { return editInvoicingCatalogItemDetailViewSelector_1.getInvoicingApplicableCatalogItemOptions; } });
|
|
2725
2734
|
Object.defineProperty(exports, "getInvoicingCatalogItemFormView", { enumerable: true, get: function () { return editInvoicingCatalogItemDetailViewSelector_1.getInvoicingCatalogItemFormView; } });
|
|
2726
2735
|
Object.defineProperty(exports, "getSavedInvoicingCatalogItemId", { enumerable: true, get: function () { return editInvoicingCatalogItemDetailViewSelector_1.getSavedInvoicingCatalogItemId; } });
|
|
2727
2736
|
Object.defineProperty(exports, "getSavedInvoicingCatalogItemKind", { enumerable: true, get: function () { return editInvoicingCatalogItemDetailViewSelector_1.getSavedInvoicingCatalogItemKind; } });
|
|
@@ -8,25 +8,41 @@ import { InvoicingCatalogItemFormLocalData } from './editInvoicingCatalogItemDet
|
|
|
8
8
|
export declare const getEditInvoicingCatalogItemDetailViewState: (state: RootState) => FetchStateAndError;
|
|
9
9
|
export declare const getSavedInvoicingCatalogItemId: (state: RootState) => ID | undefined;
|
|
10
10
|
export declare const getSavedInvoicingCatalogItemKind: (state: RootState) => InvoicingCatalogItemKind | undefined;
|
|
11
|
+
/** Picker option for a plan's `applicable_items` (add-ons / one-time charges). */
|
|
12
|
+
export interface ApplicableCatalogItemOption {
|
|
13
|
+
id: string;
|
|
14
|
+
label: string;
|
|
15
|
+
subtitle?: string;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Memoized add-on / one-time-charge options sourced from the catalog list slice.
|
|
19
|
+
* Kept referentially stable across unrelated dispatches; the form view filters
|
|
20
|
+
* out the item being edited (see `getInvoicingCatalogItemFormView`).
|
|
21
|
+
*/
|
|
22
|
+
export declare const getInvoicingApplicableCatalogItemOptions: (state: RootState) => ApplicableCatalogItemOption[];
|
|
11
23
|
/**
|
|
12
|
-
* Bundled view for the catalog item create/edit form
|
|
13
|
-
*
|
|
14
|
-
*
|
|
24
|
+
* Bundled view for the catalog item create/edit form. Given only the item `id`,
|
|
25
|
+
* it resolves the kind (plan vs product) itself, prefills the draft `localData`
|
|
26
|
+
* from the existing entity in edit mode, exposes the enum option sets and the
|
|
27
|
+
* `applicableItems` picker options, and carries the save fetch state/error plus
|
|
28
|
+
* the id/kind last saved — so the consumer wires a single selector.
|
|
15
29
|
*/
|
|
16
30
|
export interface InvoicingCatalogItemFormView extends SelectorView {
|
|
17
|
-
applicabilityValues: string[];
|
|
31
|
+
applicabilityValues: readonly string[];
|
|
32
|
+
applicableItemOptions: ApplicableCatalogItemOption[];
|
|
18
33
|
localData: InvoicingCatalogItemFormLocalData;
|
|
19
34
|
mode: 'create' | 'edit';
|
|
20
|
-
periodUnitValues: string[];
|
|
21
|
-
pricingModelValues: string[];
|
|
22
|
-
prorationValues: string[];
|
|
23
|
-
tierTypeValues: string[];
|
|
24
|
-
trialEndActionValues: string[];
|
|
25
|
-
trialUnitValues: string[];
|
|
26
|
-
typeValues: string[];
|
|
35
|
+
periodUnitValues: readonly string[];
|
|
36
|
+
pricingModelValues: readonly string[];
|
|
37
|
+
prorationValues: readonly string[];
|
|
38
|
+
tierTypeValues: readonly string[];
|
|
39
|
+
trialEndActionValues: readonly string[];
|
|
40
|
+
trialUnitValues: readonly string[];
|
|
41
|
+
typeValues: readonly string[];
|
|
42
|
+
kind?: InvoicingCatalogItemKind;
|
|
27
43
|
plan?: InvoicingPlan;
|
|
28
44
|
product?: InvoicingProduct;
|
|
29
45
|
savedItemId?: ID;
|
|
30
46
|
savedKind?: InvoicingCatalogItemKind;
|
|
31
47
|
}
|
|
32
|
-
export declare const getInvoicingCatalogItemFormView: (state: RootState,
|
|
48
|
+
export declare const getInvoicingCatalogItemFormView: (state: RootState, id?: ID) => InvoicingCatalogItemFormView;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getInvoicingCatalogItemFormView = exports.getSavedInvoicingCatalogItemKind = exports.getSavedInvoicingCatalogItemId = exports.getEditInvoicingCatalogItemDetailViewState = void 0;
|
|
3
|
+
exports.getInvoicingCatalogItemFormView = exports.getInvoicingApplicableCatalogItemOptions = exports.getSavedInvoicingCatalogItemKind = exports.getSavedInvoicingCatalogItemId = exports.getEditInvoicingCatalogItemDetailViewState = void 0;
|
|
4
|
+
const toolkit_1 = require("@reduxjs/toolkit");
|
|
4
5
|
const planSelector_1 = require("../../../entity/invoicing/plan/planSelector");
|
|
5
6
|
const productSelector_1 = require("../../../entity/invoicing/product/productSelector");
|
|
6
7
|
const invoicingCatalogItemFormConfig_1 = require("./invoicingCatalogItemFormConfig");
|
|
@@ -13,29 +14,83 @@ const getSavedInvoicingCatalogItemId = (state) => state.editInvoicingCatalogItem
|
|
|
13
14
|
exports.getSavedInvoicingCatalogItemId = getSavedInvoicingCatalogItemId;
|
|
14
15
|
const getSavedInvoicingCatalogItemKind = (state) => state.editInvoicingCatalogItemDetailViewState.savedKind;
|
|
15
16
|
exports.getSavedInvoicingCatalogItemKind = getSavedInvoicingCatalogItemKind;
|
|
16
|
-
const
|
|
17
|
+
const isAddonOrCharge = (type) => type === 'addon' || type === 'charge';
|
|
18
|
+
const priceSubtitle = (price, periodUnit) => {
|
|
19
|
+
if (price == null) {
|
|
20
|
+
return undefined;
|
|
21
|
+
}
|
|
22
|
+
const amount = new Intl.NumberFormat('en-US', {
|
|
23
|
+
currency: price.currencyCode !== '' ? price.currencyCode : 'USD',
|
|
24
|
+
maximumFractionDigits: 0,
|
|
25
|
+
style: 'currency',
|
|
26
|
+
}).format(price.amount);
|
|
27
|
+
if (periodUnit != null && periodUnit !== '') {
|
|
28
|
+
return `${amount}/${periodUnit}`;
|
|
29
|
+
}
|
|
30
|
+
return amount;
|
|
31
|
+
};
|
|
32
|
+
const buildApplicableCatalogItemOptions = (plans, products) => {
|
|
33
|
+
const options = new Map();
|
|
34
|
+
for (const plan of plans) {
|
|
35
|
+
const type = plan.type ?? plan.itemType;
|
|
36
|
+
if (!isAddonOrCharge(type)) {
|
|
37
|
+
continue;
|
|
38
|
+
}
|
|
39
|
+
options.set(plan.id, {
|
|
40
|
+
id: plan.id,
|
|
41
|
+
label: plan.name ?? plan.id,
|
|
42
|
+
subtitle: type,
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
for (const product of products) {
|
|
46
|
+
const type = product.itemType ?? product.type;
|
|
47
|
+
if (!isAddonOrCharge(type)) {
|
|
48
|
+
continue;
|
|
49
|
+
}
|
|
50
|
+
const id = product.itemID ?? product.id;
|
|
51
|
+
if (options.has(id)) {
|
|
52
|
+
continue;
|
|
53
|
+
}
|
|
54
|
+
options.set(id, {
|
|
55
|
+
id,
|
|
56
|
+
label: product.name ?? id,
|
|
57
|
+
subtitle: priceSubtitle(product.price, product.periodUnit),
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
return [...options.values()].sort((a, b) => a.label.localeCompare(b.label));
|
|
61
|
+
};
|
|
62
|
+
/**
|
|
63
|
+
* Memoized add-on / one-time-charge options sourced from the catalog list slice.
|
|
64
|
+
* Kept referentially stable across unrelated dispatches; the form view filters
|
|
65
|
+
* out the item being edited (see `getInvoicingCatalogItemFormView`).
|
|
66
|
+
*/
|
|
67
|
+
exports.getInvoicingApplicableCatalogItemOptions = (0, toolkit_1.createSelector)((state) => state.invoicingPlanState, (state) => state.invoicingProductState, (state) => state.invoicingCatalogListViewState, (planState, productState, listViewState) => buildApplicableCatalogItemOptions((0, planSelector_1.getInvoicingPlansByIds)(planState, listViewState.planIds), (0, productSelector_1.getInvoicingProductsByIds)(productState, listViewState.productIds)));
|
|
68
|
+
const getInvoicingCatalogItemFormView = (state, id) => {
|
|
17
69
|
const { editDraftById, error, fetchState, newItemDraft, savedItemId, savedKind } = state.editInvoicingCatalogItemDetailViewState;
|
|
18
|
-
const
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
const product = kind === 'product' && id != null
|
|
22
|
-
? (0, productSelector_1.getInvoicingProductById)(state.invoicingProductState, id)
|
|
23
|
-
: undefined;
|
|
70
|
+
const product = id != null ? (0, productSelector_1.getInvoicingProductById)(state.invoicingProductState, id) : undefined;
|
|
71
|
+
const plan = id != null ? (0, planSelector_1.getInvoicingPlanById)(state.invoicingPlanState, id) : undefined;
|
|
72
|
+
const kind = product != null ? 'product' : plan != null ? 'plan' : undefined;
|
|
24
73
|
const localData = id != null
|
|
25
74
|
? (editDraftById[id] ??
|
|
26
|
-
(0, invoicingCatalogItemFormConfig_1.entityToInvoicingCatalogItemFormLocalData)(
|
|
75
|
+
(0, invoicingCatalogItemFormConfig_1.entityToInvoicingCatalogItemFormLocalData)(product ?? plan, kind))
|
|
27
76
|
: newItemDraft;
|
|
77
|
+
const allApplicableItemOptions = (0, exports.getInvoicingApplicableCatalogItemOptions)(state);
|
|
78
|
+
const applicableItemOptions = id != null
|
|
79
|
+
? allApplicableItemOptions.filter((option) => option.id !== id)
|
|
80
|
+
: allApplicableItemOptions;
|
|
28
81
|
return {
|
|
29
|
-
applicabilityValues:
|
|
82
|
+
applicabilityValues: invoicingCatalogItemFormConfig_1.INVOICING_CATALOG_APPLICABILITY_VALUES,
|
|
83
|
+
applicableItemOptions,
|
|
30
84
|
localData,
|
|
31
85
|
mode: id != null ? 'edit' : 'create',
|
|
32
|
-
periodUnitValues:
|
|
33
|
-
pricingModelValues:
|
|
34
|
-
prorationValues:
|
|
35
|
-
tierTypeValues:
|
|
36
|
-
trialEndActionValues:
|
|
37
|
-
trialUnitValues:
|
|
38
|
-
typeValues:
|
|
86
|
+
periodUnitValues: invoicingCatalogItemFormConfig_1.INVOICING_CATALOG_PERIOD_UNIT_VALUES,
|
|
87
|
+
pricingModelValues: invoicingCatalogItemFormConfig_1.INVOICING_CATALOG_PRICING_MODEL_VALUES,
|
|
88
|
+
prorationValues: invoicingCatalogItemFormConfig_1.INVOICING_CATALOG_PRORATION_VALUES,
|
|
89
|
+
tierTypeValues: invoicingCatalogItemFormConfig_1.INVOICING_CATALOG_TIER_TYPE_VALUES,
|
|
90
|
+
trialEndActionValues: invoicingCatalogItemFormConfig_1.INVOICING_CATALOG_TRIAL_END_ACTION_VALUES,
|
|
91
|
+
trialUnitValues: invoicingCatalogItemFormConfig_1.INVOICING_CATALOG_TRIAL_UNIT_VALUES,
|
|
92
|
+
typeValues: invoicingCatalogItemFormConfig_1.INVOICING_CATALOG_TYPE_VALUES,
|
|
93
|
+
kind,
|
|
39
94
|
plan,
|
|
40
95
|
product,
|
|
41
96
|
savedItemId,
|
|
@@ -1,13 +1,18 @@
|
|
|
1
1
|
import { FetchStateAndError, ID } from '../../../commonStateTypes/common';
|
|
2
2
|
import { SelectorView } from '../../../commonStateTypes/viewAndReport/viewAndReport';
|
|
3
|
+
import { Address } from '../../../entity/address/addressState';
|
|
3
4
|
import { InvoicingInvoice } from '../../../entity/invoicing/invoice/invoiceState';
|
|
4
5
|
import { RootState } from '../../../reducer';
|
|
5
6
|
/**
|
|
6
7
|
* Read-only view for the invoice detail page: the invoice entity + its per-id
|
|
7
|
-
* fetch state, with the per-invoice lifecycle-action run-state folded in.
|
|
8
|
+
* fetch state, with the per-invoice lifecycle-action run-state folded in. The
|
|
9
|
+
* billing/shipping addresses are resolved here from the shared address store so
|
|
10
|
+
* the view layer renders them without touching the store itself.
|
|
8
11
|
*/
|
|
9
12
|
export interface InvoiceDetailView extends SelectorView {
|
|
10
13
|
actionState: FetchStateAndError;
|
|
14
|
+
billingAddress?: Address;
|
|
11
15
|
invoice?: InvoicingInvoice;
|
|
16
|
+
shippingAddress?: Address;
|
|
12
17
|
}
|
|
13
18
|
export declare const getInvoiceDetail: (state: RootState, invoiceId: ID) => InvoiceDetailView;
|
|
@@ -5,12 +5,20 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.getInvoiceDetail = void 0;
|
|
7
7
|
const get_1 = __importDefault(require("lodash/get"));
|
|
8
|
+
const addressSelector_1 = require("../../../entity/address/addressSelector");
|
|
8
9
|
const invoiceSelector_1 = require("../../../entity/invoicing/invoice/invoiceSelector");
|
|
9
10
|
const invoiceActionSelector_1 = require("../invoiceAction/invoiceActionSelector");
|
|
10
11
|
const getInvoiceDetail = (state, invoiceId) => {
|
|
11
12
|
const detail = (0, get_1.default)(state.invoicingInvoiceDetailState.detailById, invoiceId, undefined);
|
|
13
|
+
const invoice = (0, invoiceSelector_1.getInvoiceById)(state, invoiceId);
|
|
12
14
|
return {
|
|
13
|
-
invoice
|
|
15
|
+
invoice,
|
|
16
|
+
billingAddress: invoice?.billingAddressId != null
|
|
17
|
+
? (0, addressSelector_1.getAddressByAddressId)(state.addressState, invoice.billingAddressId)
|
|
18
|
+
: undefined,
|
|
19
|
+
shippingAddress: invoice?.shippingAddressId != null
|
|
20
|
+
? (0, addressSelector_1.getAddressByAddressId)(state.addressState, invoice.shippingAddressId)
|
|
21
|
+
: undefined,
|
|
14
22
|
actionState: (0, invoiceActionSelector_1.getInvoicingInvoiceActionState)(invoiceId)(state),
|
|
15
23
|
fetchState: detail?.fetchState ?? 'Not-Started',
|
|
16
24
|
error: detail?.error,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@zeniai/client-epic-state",
|
|
3
|
-
"version": "5.1.50-
|
|
3
|
+
"version": "5.1.50-betaAK4",
|
|
4
4
|
"description": "Shared module between Web & Mobile containing required abstractions for state management, async network communication. ",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"module": "lib/esm/index.js",
|