@zeniai/client-epic-state 5.1.50-betaAK3 → 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/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/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,
|
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,
|
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",
|