@zeniai/client-epic-state 5.2.20 → 5.2.22-betaAK0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/entity/invoicing/creditNote/creditNotePayload.d.ts +0 -1
- package/lib/entity/invoicing/creditNote/creditNotePayload.js +0 -1
- package/lib/entity/invoicing/creditNote/creditNoteState.d.ts +0 -1
- package/lib/entity/invoicing/invoice/invoicePayload.d.ts +0 -1
- package/lib/entity/invoicing/invoice/invoicePayload.js +0 -1
- package/lib/entity/invoicing/invoice/invoiceState.d.ts +0 -1
- package/lib/entity/invoicing/invoicingCommonPayload.d.ts +2 -0
- package/lib/entity/invoicing/invoicingCustomer/invoicingCustomerPayload.d.ts +0 -1
- package/lib/entity/invoicing/invoicingCustomer/invoicingCustomerPayload.js +0 -1
- package/lib/entity/invoicing/invoicingCustomer/invoicingCustomerState.d.ts +0 -1
- package/lib/entity/invoicing/invoicingSubscription/invoicingSubscriptionPayload.d.ts +1 -2
- package/lib/entity/invoicing/invoicingSubscription/invoicingSubscriptionPayload.js +1 -2
- package/lib/entity/invoicing/invoicingSubscription/invoicingSubscriptionState.d.ts +1 -2
- package/lib/esm/entity/invoicing/creditNote/creditNotePayload.js +0 -1
- package/lib/esm/entity/invoicing/invoice/invoicePayload.js +0 -1
- package/lib/esm/entity/invoicing/invoicingCustomer/invoicingCustomerPayload.js +0 -1
- package/lib/esm/entity/invoicing/invoicingSubscription/invoicingSubscriptionPayload.js +1 -2
- package/lib/esm/view/invoicing/invoicingConfigView/invoicingConfigViewReducer.js +2 -0
- package/lib/esm/view/invoicing/invoicingOverview/invoicingOverviewPayload.js +0 -1
- package/lib/esm/view/invoicing/invoicingSubscriptionDetailView/invoicingSubscriptionDetailViewSelector.js +2 -1
- package/lib/esm/view/invoicing/invoicingSubscriptionListView/invoicingSubscriptionListViewSelector.js +1 -0
- package/lib/esm/view/invoicing/invoicingSubscriptionListView/invoicingSubscriptionListViewState.js +0 -2
- package/lib/index.d.ts +1 -0
- package/lib/view/invoicing/invoicingConfigView/invoicingConfigViewPayload.d.ts +1 -0
- package/lib/view/invoicing/invoicingConfigView/invoicingConfigViewReducer.d.ts +1 -1
- package/lib/view/invoicing/invoicingConfigView/invoicingConfigViewReducer.js +2 -0
- package/lib/view/invoicing/invoicingConfigView/invoicingConfigViewState.d.ts +1 -0
- package/lib/view/invoicing/invoicingOverview/invoicingOverviewPayload.d.ts +0 -1
- package/lib/view/invoicing/invoicingOverview/invoicingOverviewPayload.js +0 -1
- package/lib/view/invoicing/invoicingOverview/invoicingOverviewState.d.ts +0 -1
- package/lib/view/invoicing/invoicingSubscriptionDetailView/invoicingSubscriptionDetailViewSelector.d.ts +3 -1
- package/lib/view/invoicing/invoicingSubscriptionDetailView/invoicingSubscriptionDetailViewSelector.js +1 -0
- package/lib/view/invoicing/invoicingSubscriptionListView/invoicingSubscriptionListViewSelector.d.ts +2 -0
- package/lib/view/invoicing/invoicingSubscriptionListView/invoicingSubscriptionListViewSelector.js +1 -0
- package/lib/view/invoicing/invoicingSubscriptionListView/invoicingSubscriptionListViewState.d.ts +2 -2
- package/lib/view/invoicing/invoicingSubscriptionListView/invoicingSubscriptionListViewState.js +0 -2
- package/lib/view/invoicing/issueCreditNote/issueCreditNotePayload.d.ts +0 -1
- package/lib/view/invoicing/subscriptionAction/subscriptionActionRequestPayload.d.ts +8 -0
- package/package.json +71 -38
|
@@ -12,7 +12,6 @@ const mapInvoicingCreditNoteLineItemPayloadToState = (payload, currencyCode, cur
|
|
|
12
12
|
unitAmount: (0, amount_1.toAmount)(payload.unit_amount, currencyCode, currencySymbol),
|
|
13
13
|
entityType: payload.entity_type,
|
|
14
14
|
id: payload.id,
|
|
15
|
-
productCode: payload.product_code,
|
|
16
15
|
});
|
|
17
16
|
exports.mapInvoicingCreditNoteLineItemPayloadToState = mapInvoicingCreditNoteLineItemPayloadToState;
|
|
18
17
|
const mapInvoicingCreditNoteAllocationPayloadToState = (payload, currencyCode, currencySymbol) => ({
|
|
@@ -22,7 +22,6 @@ const mapLineItem = (payload, currencyCode, currencySymbol) => ({
|
|
|
22
22
|
itemLevelDiscountAmount: payload.item_level_discount_amount != null
|
|
23
23
|
? (0, amount_1.toAmount)(payload.item_level_discount_amount, currencyCode, currencySymbol)
|
|
24
24
|
: undefined,
|
|
25
|
-
productCode: payload.product_code,
|
|
26
25
|
subscriptionID: payload.subscription_id,
|
|
27
26
|
taxAmount: payload.tax_amount != null
|
|
28
27
|
? (0, amount_1.toAmount)(payload.tax_amount, currencyCode, currencySymbol)
|
|
@@ -164,6 +164,8 @@ export interface InvoicingSettingsPayload {
|
|
|
164
164
|
dunning_schedule?: InvoicingDunningScheduleStepPayload[];
|
|
165
165
|
email?: string;
|
|
166
166
|
id?: string;
|
|
167
|
+
/** Empty string means hide the footer line; absent means use the default. */
|
|
168
|
+
invoice_footer_text?: string;
|
|
167
169
|
invoice_prefix?: string;
|
|
168
170
|
logo_file_id?: string;
|
|
169
171
|
logo_url?: string;
|
|
@@ -76,7 +76,6 @@ const mapInvoicingCustomerPayloadToState = (payload) => {
|
|
|
76
76
|
phone: payload.phone,
|
|
77
77
|
plan: payload.plan,
|
|
78
78
|
planName: payload.plan_name,
|
|
79
|
-
productCode: payload.product_code,
|
|
80
79
|
preferredCurrencyCode: payload.preferred_currency_code,
|
|
81
80
|
promotionalCredits: payload.promotional_credits != null
|
|
82
81
|
? (0, amount_1.toAmount)(payload.promotional_credits, currencyCode, currencySymbol)
|
|
@@ -9,7 +9,6 @@ export interface InvoicingSubscriptionItemPayload {
|
|
|
9
9
|
item_price_code?: string;
|
|
10
10
|
item_price_id?: string;
|
|
11
11
|
item_type?: string;
|
|
12
|
-
product_code?: string;
|
|
13
12
|
quantity?: number;
|
|
14
13
|
unit_price?: number;
|
|
15
14
|
}
|
|
@@ -40,6 +39,7 @@ export interface InvoicingSubscriptionPayload {
|
|
|
40
39
|
billing_period?: number;
|
|
41
40
|
billing_period_unit?: InvoicingBillingPeriodUnit;
|
|
42
41
|
cancel_reason?: string;
|
|
42
|
+
cancel_reason_code?: string;
|
|
43
43
|
cancelled_at?: string;
|
|
44
44
|
catalog_item_id?: string;
|
|
45
45
|
contract_term?: InvoicingContractTermPayload;
|
|
@@ -60,7 +60,6 @@ export interface InvoicingSubscriptionPayload {
|
|
|
60
60
|
plan_id?: string;
|
|
61
61
|
plan_name?: string;
|
|
62
62
|
po_number?: string;
|
|
63
|
-
product_code?: string;
|
|
64
63
|
remaining_billing_cycles?: number;
|
|
65
64
|
resume_date?: string;
|
|
66
65
|
setup_fee?: number;
|
|
@@ -15,7 +15,6 @@ const mapInvoicingSubscriptionItemPayloadToState = (payload, currencyCode, curre
|
|
|
15
15
|
itemPriceCode: payload.item_price_code,
|
|
16
16
|
itemPriceID: payload.item_price_id,
|
|
17
17
|
itemType: payload.item_type,
|
|
18
|
-
productCode: payload.product_code,
|
|
19
18
|
quantity: payload.quantity,
|
|
20
19
|
unitPrice: payload.unit_price != null
|
|
21
20
|
? (0, amount_1.toAmount)(payload.unit_price, currencyCode, currencySymbol)
|
|
@@ -65,6 +64,7 @@ const mapInvoicingSubscriptionPayloadToState = (payload) => {
|
|
|
65
64
|
billingPeriod: payload.billing_period,
|
|
66
65
|
billingPeriodUnit: payload.billing_period_unit,
|
|
67
66
|
cancelReason: payload.cancel_reason,
|
|
67
|
+
cancelReasonCode: payload.cancel_reason_code,
|
|
68
68
|
cancelledAt: payload.cancelled_at != null ? (0, zeniDayJS_1.date)(payload.cancelled_at) : undefined,
|
|
69
69
|
catalogItemID: payload.catalog_item_id,
|
|
70
70
|
contractTerm: payload.contract_term != null
|
|
@@ -95,7 +95,6 @@ const mapInvoicingSubscriptionPayloadToState = (payload) => {
|
|
|
95
95
|
: undefined,
|
|
96
96
|
planID: payload.plan_id,
|
|
97
97
|
planName: payload.plan_name,
|
|
98
|
-
productCode: payload.product_code,
|
|
99
98
|
poNumber: payload.po_number,
|
|
100
99
|
remainingBillingCycles: payload.remaining_billing_cycles,
|
|
101
100
|
resumeDate: payload.resume_date != null ? (0, zeniDayJS_1.date)(payload.resume_date) : undefined,
|
|
@@ -10,7 +10,6 @@ export interface InvoicingSubscriptionItem {
|
|
|
10
10
|
itemPriceCode?: string;
|
|
11
11
|
itemPriceID?: ID;
|
|
12
12
|
itemType?: string;
|
|
13
|
-
productCode?: string;
|
|
14
13
|
quantity?: number;
|
|
15
14
|
unitPrice?: Amount;
|
|
16
15
|
}
|
|
@@ -42,6 +41,7 @@ export interface InvoicingSubscription {
|
|
|
42
41
|
billingPeriodUnit?: InvoicingBillingPeriodUnit;
|
|
43
42
|
cancelledAt?: ZeniDate;
|
|
44
43
|
cancelReason?: string;
|
|
44
|
+
cancelReasonCode?: string;
|
|
45
45
|
catalogItemID?: ID;
|
|
46
46
|
contractTerm?: InvoicingContractTerm;
|
|
47
47
|
coupons?: InvoicingSubscriptionCoupon[];
|
|
@@ -60,7 +60,6 @@ export interface InvoicingSubscription {
|
|
|
60
60
|
planID?: ID;
|
|
61
61
|
planName?: string;
|
|
62
62
|
poNumber?: string;
|
|
63
|
-
productCode?: string;
|
|
64
63
|
remainingBillingCycles?: number;
|
|
65
64
|
resumeDate?: ZeniDate;
|
|
66
65
|
setupFee?: Amount;
|
|
@@ -9,7 +9,6 @@ export const mapInvoicingCreditNoteLineItemPayloadToState = (payload, currencyCo
|
|
|
9
9
|
unitAmount: toAmount(payload.unit_amount, currencyCode, currencySymbol),
|
|
10
10
|
entityType: payload.entity_type,
|
|
11
11
|
id: payload.id,
|
|
12
|
-
productCode: payload.product_code,
|
|
13
12
|
});
|
|
14
13
|
export const mapInvoicingCreditNoteAllocationPayloadToState = (payload, currencyCode, currencySymbol) => ({
|
|
15
14
|
allocatedAmount: toAmount(payload.allocated_amount, currencyCode, currencySymbol),
|
|
@@ -19,7 +19,6 @@ const mapLineItem = (payload, currencyCode, currencySymbol) => ({
|
|
|
19
19
|
itemLevelDiscountAmount: payload.item_level_discount_amount != null
|
|
20
20
|
? toAmount(payload.item_level_discount_amount, currencyCode, currencySymbol)
|
|
21
21
|
: undefined,
|
|
22
|
-
productCode: payload.product_code,
|
|
23
22
|
subscriptionID: payload.subscription_id,
|
|
24
23
|
taxAmount: payload.tax_amount != null
|
|
25
24
|
? toAmount(payload.tax_amount, currencyCode, currencySymbol)
|
|
@@ -72,7 +72,6 @@ export const mapInvoicingCustomerPayloadToState = (payload) => {
|
|
|
72
72
|
phone: payload.phone,
|
|
73
73
|
plan: payload.plan,
|
|
74
74
|
planName: payload.plan_name,
|
|
75
|
-
productCode: payload.product_code,
|
|
76
75
|
preferredCurrencyCode: payload.preferred_currency_code,
|
|
77
76
|
promotionalCredits: payload.promotional_credits != null
|
|
78
77
|
? toAmount(payload.promotional_credits, currencyCode, currencySymbol)
|
|
@@ -12,7 +12,6 @@ export const mapInvoicingSubscriptionItemPayloadToState = (payload, currencyCode
|
|
|
12
12
|
itemPriceCode: payload.item_price_code,
|
|
13
13
|
itemPriceID: payload.item_price_id,
|
|
14
14
|
itemType: payload.item_type,
|
|
15
|
-
productCode: payload.product_code,
|
|
16
15
|
quantity: payload.quantity,
|
|
17
16
|
unitPrice: payload.unit_price != null
|
|
18
17
|
? toAmount(payload.unit_price, currencyCode, currencySymbol)
|
|
@@ -58,6 +57,7 @@ export const mapInvoicingSubscriptionPayloadToState = (payload) => {
|
|
|
58
57
|
billingPeriod: payload.billing_period,
|
|
59
58
|
billingPeriodUnit: payload.billing_period_unit,
|
|
60
59
|
cancelReason: payload.cancel_reason,
|
|
60
|
+
cancelReasonCode: payload.cancel_reason_code,
|
|
61
61
|
cancelledAt: payload.cancelled_at != null ? date(payload.cancelled_at) : undefined,
|
|
62
62
|
catalogItemID: payload.catalog_item_id,
|
|
63
63
|
contractTerm: payload.contract_term != null
|
|
@@ -88,7 +88,6 @@ export const mapInvoicingSubscriptionPayloadToState = (payload) => {
|
|
|
88
88
|
: undefined,
|
|
89
89
|
planID: payload.plan_id,
|
|
90
90
|
planName: payload.plan_name,
|
|
91
|
-
productCode: payload.product_code,
|
|
92
91
|
poNumber: payload.po_number,
|
|
93
92
|
remainingBillingCycles: payload.remaining_billing_cycles,
|
|
94
93
|
resumeDate: payload.resume_date != null ? date(payload.resume_date) : undefined,
|
|
@@ -34,6 +34,7 @@ export const initialState = {
|
|
|
34
34
|
discountStatusOptions: [],
|
|
35
35
|
dunningCaseStatusOptions: [],
|
|
36
36
|
invoiceStatusOptions: [],
|
|
37
|
+
subscriptionCancelReasonCodeOptions: [],
|
|
37
38
|
subscriptionStatusOptions: [],
|
|
38
39
|
transactionStatusOptions: [],
|
|
39
40
|
transactionTypeOptions: [],
|
|
@@ -103,6 +104,7 @@ export function mapInvoicingConfigPayloadToState(payload) {
|
|
|
103
104
|
discountStatusOptions: (payload.discount_status_options ?? []).map(toInvoicingNamedOption),
|
|
104
105
|
dunningCaseStatusOptions: (payload.dunning_case_status_options ?? []).map(toInvoicingNamedOption),
|
|
105
106
|
invoiceStatusOptions: (payload.invoice_status_options ?? []).map(toInvoicingNamedOption),
|
|
107
|
+
subscriptionCancelReasonCodeOptions: (payload.subscription_cancel_reason_code_options ?? []).map(toInvoicingNamedOption),
|
|
106
108
|
subscriptionStatusOptions: (payload.subscription_status_options ?? []).map(toInvoicingNamedOption),
|
|
107
109
|
transactionStatusOptions: (payload.transaction_status_options ?? []).map(toInvoicingNamedOption),
|
|
108
110
|
transactionTypeOptions: (payload.transaction_type_options ?? []).map(toInvoicingNamedOption),
|
|
@@ -37,7 +37,6 @@ export const mapInvoicingPlanRevenuePointPayloadToState = (payload) => ({
|
|
|
37
37
|
mrr: toAmount(payload.mrr, 'USD', '$'),
|
|
38
38
|
pct: payload.pct,
|
|
39
39
|
planID: payload.plan,
|
|
40
|
-
productCode: payload.product_code,
|
|
41
40
|
});
|
|
42
41
|
export const mapInvoicingDashboardSummaryPayloadToState = (payload) => ({
|
|
43
42
|
customerMovement: {
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { getInvoicingSubscriptionById as getInvoicingSubscriptionByIdFromState } from '../../../entity/invoicing/invoicingSubscription/invoicingSubscriptionSelector';
|
|
2
|
-
import { invoicingFieldHelpForGroup } from '../invoicingConfigView/invoicingConfigViewSelector';
|
|
2
|
+
import { getInvoicingConfigView, invoicingFieldHelpForGroup, } from '../invoicingConfigView/invoicingConfigViewSelector';
|
|
3
3
|
import { getInvoicingSubscriptionActionState } from '../subscriptionAction/subscriptionActionSelector';
|
|
4
4
|
export const getInvoicingSubscriptionById = (state, id) => getInvoicingSubscriptionByIdFromState(state.invoicingSubscriptionState, id);
|
|
5
5
|
export const getInvoicingSubscriptionDetail = (state, invoicingSubscriptionID) => {
|
|
6
6
|
const { error, fetchState } = state.invoicingSubscriptionDetailViewState;
|
|
7
7
|
return {
|
|
8
8
|
fieldHelp: invoicingFieldHelpForGroup(state, 'subscription'),
|
|
9
|
+
cancelReasonCodeOptions: getInvoicingConfigView(state).subscriptionCancelReasonCodeOptions,
|
|
9
10
|
actionState: getInvoicingSubscriptionActionState(invoicingSubscriptionID)(state),
|
|
10
11
|
subscription: getInvoicingSubscriptionById(state, invoicingSubscriptionID),
|
|
11
12
|
fetchState,
|
|
@@ -28,6 +28,7 @@ export const getInvoicingSubscriptionListView = createSelector((state) => state.
|
|
|
28
28
|
count: listViewState.counts,
|
|
29
29
|
countsFetchState: listViewState.countsFetchState,
|
|
30
30
|
subscriptionCommercialEditAllowedFromStatuses: configState.subscriptionCommercialEditAllowedFromStatuses,
|
|
31
|
+
cancelReasonCodeOptions: configState.subscriptionCancelReasonCodeOptions,
|
|
31
32
|
subscriptionLifecycleActionOptions: configState.subscriptionLifecycleActionOptions,
|
|
32
33
|
subscriptionMetadataEditAllowedFromStatuses: configState.subscriptionMetadataEditAllowedFromStatuses,
|
|
33
34
|
statusOptions,
|
package/lib/esm/view/invoicing/invoicingSubscriptionListView/invoicingSubscriptionListViewState.js
CHANGED
|
@@ -3,7 +3,6 @@ export const ALL_INVOICING_SUBSCRIPTION_SORT_KEYS = [
|
|
|
3
3
|
'subscription',
|
|
4
4
|
'customer',
|
|
5
5
|
'plan',
|
|
6
|
-
'product_code',
|
|
7
6
|
'term_end',
|
|
8
7
|
'next_billing',
|
|
9
8
|
'auto_collect',
|
|
@@ -15,7 +14,6 @@ export const INVOICING_SUBSCRIPTION_COLUMNS = [
|
|
|
15
14
|
{ key: 'subscription', sortable: true },
|
|
16
15
|
{ key: 'customer', sortable: false },
|
|
17
16
|
{ key: 'plan', sortable: true },
|
|
18
|
-
{ key: 'product_code', sortable: true },
|
|
19
17
|
{ key: 'term_end', sortable: true },
|
|
20
18
|
{ key: 'next_billing', sortable: true },
|
|
21
19
|
{ key: 'auto_collect', sortable: true },
|
package/lib/index.d.ts
CHANGED
|
@@ -1150,6 +1150,7 @@ export { getInvoicingDiscountActionState } from './view/invoicing/discountAction
|
|
|
1150
1150
|
export { runInvoicingSubscriptionAction } from './view/invoicing/subscriptionAction/subscriptionActionReducer';
|
|
1151
1151
|
export type { InvoicingSubscriptionActionState } from './view/invoicing/subscriptionAction/subscriptionActionState';
|
|
1152
1152
|
export type { RunInvoicingSubscriptionActionPayload } from './view/invoicing/subscriptionAction/subscriptionActionReducer';
|
|
1153
|
+
export type { InvoicingCancelSubscriptionValues } from './view/invoicing/subscriptionAction/subscriptionActionRequestPayload';
|
|
1153
1154
|
export { getInvoicingSubscriptionActionState } from './view/invoicing/subscriptionAction/subscriptionActionSelector';
|
|
1154
1155
|
export { runInvoicingDunningAction } from './view/invoicing/dunningAction/dunningActionReducer';
|
|
1155
1156
|
export type { InvoicingDunningActionState } from './view/invoicing/dunningAction/dunningActionState';
|
|
@@ -54,6 +54,7 @@ export interface InvoicingConfigPayload {
|
|
|
54
54
|
qbo_account_mapping_kind_options?: InvoicingQboAccountMappingKindOptionWire[];
|
|
55
55
|
qbo_customer_matching_options?: InvoicingNamedOptionWire[];
|
|
56
56
|
qbo_sync_status_options?: InvoicingNamedOptionWire[];
|
|
57
|
+
subscription_cancel_reason_code_options?: InvoicingNamedOptionWire[];
|
|
57
58
|
subscription_status_options?: InvoicingNamedOptionWire[];
|
|
58
59
|
taxability_options?: InvoicingNamedOptionWire[];
|
|
59
60
|
transaction_status_options?: InvoicingNamedOptionWire[];
|
|
@@ -2,7 +2,7 @@ import { ZeniAPIStatus } from '../../../responsePayload';
|
|
|
2
2
|
import { InvoicingConfigPayload } from './invoicingConfigViewPayload';
|
|
3
3
|
import { InvoicingConfigViewState } from './invoicingConfigViewState';
|
|
4
4
|
export declare const initialState: InvoicingConfigViewState;
|
|
5
|
-
export declare function mapInvoicingConfigPayloadToState(payload: InvoicingConfigPayload): Pick<InvoicingConfigViewState, 'auditLogEntityRouteOptions' | 'auditLogListSortFieldOptions' | 'auditLogSourceLabels' | 'autoCollectionOptions' | 'billingPeriodUnitOptions' | 'catalogTierTypeOptionsByPricingModel' | 'catalogTrialEndActionOptions' | 'catalogTrialUnitOptions' | 'customerTypeOptions' | 'dateFormatOptions' | 'fieldHelp' | 'discountApplyOnOptions' | 'discountDurationTypeOptions' | 'discountTypeOptions' | 'manualPaymentMethodOptions' | 'netTermDayOptions' | 'paymentGatewayOptions' | 'taxabilityOptions' | 'cardStatusOptions' | 'catalogItemStatusOptions' | 'catalogItemTypeOptions' | 'creditNoteReasonCodeOptions' | 'creditNoteStatusOptions' | 'creditNoteTypeOptions' | 'customerStatusOptions' | 'discountStatusOptions' | 'dunningCaseStatusOptions' | 'invoiceStatusOptions' | 'subscriptionStatusOptions' | 'transactionStatusOptions' | 'transactionTypeOptions' | 'createdAt' | 'updatedAt' | 'dunningScheduleActionOptions' | 'subscriptionLifecycleActionOptions' | 'subscriptionCommercialEditAllowedFromStatuses' | 'subscriptionMetadataEditAllowedFromStatuses' | 'subscriptionEditFieldOptions' | 'subscriptionCancelTimingOptions' | 'subscriptionChangeOptionOptions' | 'catalogItemLifecycleActionOptions' | 'catalogProductLifecycleActionOptions' | 'discountLifecycleActionOptions' | 'qboAccountMappingKindOptions' | 'qboCustomerMatchingOptions' | 'qboSyncStatusOptions' | 'isInvoicingEnabled' | 'isInvoicingTosAccepted' | 'invoicingTosAcceptanceIp' | 'invoicingTosAcceptanceTime' | 'invoicingTosAcceptanceUserAgent' | 'invoicingTosAcceptanceUserId' | 'isInvoicingSettingsSeeded'>;
|
|
5
|
+
export declare function mapInvoicingConfigPayloadToState(payload: InvoicingConfigPayload): Pick<InvoicingConfigViewState, 'auditLogEntityRouteOptions' | 'auditLogListSortFieldOptions' | 'auditLogSourceLabels' | 'autoCollectionOptions' | 'billingPeriodUnitOptions' | 'catalogTierTypeOptionsByPricingModel' | 'catalogTrialEndActionOptions' | 'catalogTrialUnitOptions' | 'customerTypeOptions' | 'dateFormatOptions' | 'fieldHelp' | 'discountApplyOnOptions' | 'discountDurationTypeOptions' | 'discountTypeOptions' | 'manualPaymentMethodOptions' | 'netTermDayOptions' | 'paymentGatewayOptions' | 'taxabilityOptions' | 'cardStatusOptions' | 'catalogItemStatusOptions' | 'catalogItemTypeOptions' | 'creditNoteReasonCodeOptions' | 'creditNoteStatusOptions' | 'creditNoteTypeOptions' | 'customerStatusOptions' | 'discountStatusOptions' | 'dunningCaseStatusOptions' | 'invoiceStatusOptions' | 'subscriptionCancelReasonCodeOptions' | 'subscriptionStatusOptions' | 'transactionStatusOptions' | 'transactionTypeOptions' | 'createdAt' | 'updatedAt' | 'dunningScheduleActionOptions' | 'subscriptionLifecycleActionOptions' | 'subscriptionCommercialEditAllowedFromStatuses' | 'subscriptionMetadataEditAllowedFromStatuses' | 'subscriptionEditFieldOptions' | 'subscriptionCancelTimingOptions' | 'subscriptionChangeOptionOptions' | 'catalogItemLifecycleActionOptions' | 'catalogProductLifecycleActionOptions' | 'discountLifecycleActionOptions' | 'qboAccountMappingKindOptions' | 'qboCustomerMatchingOptions' | 'qboSyncStatusOptions' | 'isInvoicingEnabled' | 'isInvoicingTosAccepted' | 'invoicingTosAcceptanceIp' | 'invoicingTosAcceptanceTime' | 'invoicingTosAcceptanceUserAgent' | 'invoicingTosAcceptanceUserId' | 'isInvoicingSettingsSeeded'>;
|
|
6
6
|
export declare const fetchInvoicingConfig: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[payload?: {
|
|
7
7
|
cacheOverride?: boolean;
|
|
8
8
|
} | undefined], {
|
|
@@ -39,6 +39,7 @@ exports.initialState = {
|
|
|
39
39
|
discountStatusOptions: [],
|
|
40
40
|
dunningCaseStatusOptions: [],
|
|
41
41
|
invoiceStatusOptions: [],
|
|
42
|
+
subscriptionCancelReasonCodeOptions: [],
|
|
42
43
|
subscriptionStatusOptions: [],
|
|
43
44
|
transactionStatusOptions: [],
|
|
44
45
|
transactionTypeOptions: [],
|
|
@@ -108,6 +109,7 @@ function mapInvoicingConfigPayloadToState(payload) {
|
|
|
108
109
|
discountStatusOptions: (payload.discount_status_options ?? []).map(invoicingCommonPayload_1.toInvoicingNamedOption),
|
|
109
110
|
dunningCaseStatusOptions: (payload.dunning_case_status_options ?? []).map(invoicingCommonPayload_1.toInvoicingNamedOption),
|
|
110
111
|
invoiceStatusOptions: (payload.invoice_status_options ?? []).map(invoicingCommonPayload_1.toInvoicingNamedOption),
|
|
112
|
+
subscriptionCancelReasonCodeOptions: (payload.subscription_cancel_reason_code_options ?? []).map(invoicingCommonPayload_1.toInvoicingNamedOption),
|
|
111
113
|
subscriptionStatusOptions: (payload.subscription_status_options ?? []).map(invoicingCommonPayload_1.toInvoicingNamedOption),
|
|
112
114
|
transactionStatusOptions: (payload.transaction_status_options ?? []).map(invoicingCommonPayload_1.toInvoicingNamedOption),
|
|
113
115
|
transactionTypeOptions: (payload.transaction_type_options ?? []).map(invoicingCommonPayload_1.toInvoicingNamedOption),
|
|
@@ -38,6 +38,7 @@ export interface InvoicingConfigViewState extends FetchedState {
|
|
|
38
38
|
qboAccountMappingKindOptions: InvoicingQboAccountMappingKindOption[];
|
|
39
39
|
qboCustomerMatchingOptions: InvoicingNamedOption[];
|
|
40
40
|
qboSyncStatusOptions: InvoicingNamedOption[];
|
|
41
|
+
subscriptionCancelReasonCodeOptions: InvoicingNamedOption[];
|
|
41
42
|
subscriptionCancelTimingOptions: InvoicingNamedOption[];
|
|
42
43
|
subscriptionChangeOptionOptions: InvoicingNamedOption[];
|
|
43
44
|
subscriptionCommercialEditAllowedFromStatuses: string[];
|
|
@@ -44,7 +44,6 @@ const mapInvoicingPlanRevenuePointPayloadToState = (payload) => ({
|
|
|
44
44
|
mrr: (0, amount_1.toAmount)(payload.mrr, 'USD', '$'),
|
|
45
45
|
pct: payload.pct,
|
|
46
46
|
planID: payload.plan,
|
|
47
|
-
productCode: payload.product_code,
|
|
48
47
|
});
|
|
49
48
|
exports.mapInvoicingPlanRevenuePointPayloadToState = mapInvoicingPlanRevenuePointPayloadToState;
|
|
50
49
|
const mapInvoicingDashboardSummaryPayloadToState = (payload) => ({
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { FetchStateAndError, ID } from '../../../commonStateTypes/common';
|
|
2
2
|
import { SelectorView } from '../../../commonStateTypes/viewAndReport/viewAndReport';
|
|
3
|
-
import type { InvoicingFieldHelpByCode } from '../../../entity/invoicing/invoicingCommonPayload';
|
|
3
|
+
import type { InvoicingFieldHelpByCode, InvoicingNamedOption } from '../../../entity/invoicing/invoicingCommonPayload';
|
|
4
4
|
import { InvoicingSubscription } from '../../../entity/invoicing/invoicingSubscription/invoicingSubscriptionState';
|
|
5
5
|
import { RootState } from '../../../rootStateTypes';
|
|
6
6
|
/**
|
|
@@ -10,6 +10,8 @@ import { RootState } from '../../../rootStateTypes';
|
|
|
10
10
|
*/
|
|
11
11
|
export interface InvoicingSubscriptionDetailView extends SelectorView {
|
|
12
12
|
actionState: FetchStateAndError;
|
|
13
|
+
/** Cancel reasons from `/1.0/config`, so the dialog hardcodes nothing. */
|
|
14
|
+
cancelReasonCodeOptions: InvoicingNamedOption[];
|
|
13
15
|
/**
|
|
14
16
|
* Backend help copy for this screen's field group, keyed by field code.
|
|
15
17
|
* Folded in here so the screen never reaches for the config view itself.
|
|
@@ -10,6 +10,7 @@ const getInvoicingSubscriptionDetail = (state, invoicingSubscriptionID) => {
|
|
|
10
10
|
const { error, fetchState } = state.invoicingSubscriptionDetailViewState;
|
|
11
11
|
return {
|
|
12
12
|
fieldHelp: (0, invoicingConfigViewSelector_1.invoicingFieldHelpForGroup)(state, 'subscription'),
|
|
13
|
+
cancelReasonCodeOptions: (0, invoicingConfigViewSelector_1.getInvoicingConfigView)(state).subscriptionCancelReasonCodeOptions,
|
|
13
14
|
actionState: (0, subscriptionActionSelector_1.getInvoicingSubscriptionActionState)(invoicingSubscriptionID)(state),
|
|
14
15
|
subscription: (0, exports.getInvoicingSubscriptionById)(state, invoicingSubscriptionID),
|
|
15
16
|
fetchState,
|
package/lib/view/invoicing/invoicingSubscriptionListView/invoicingSubscriptionListViewSelector.d.ts
CHANGED
|
@@ -7,6 +7,8 @@ import { InvoicingListSort } from '../invoicingApiHelper';
|
|
|
7
7
|
import { InvoicingSubscriptionColumnConfig, InvoicingSubscriptionFilters, InvoicingSubscriptionTabId } from './invoicingSubscriptionListViewState';
|
|
8
8
|
export interface InvoicingSubscriptionListView extends SelectorView {
|
|
9
9
|
activeTab: InvoicingSubscriptionTabId;
|
|
10
|
+
/** Cancel reasons from `/1.0/config`, so the dialog hardcodes nothing. */
|
|
11
|
+
cancelReasonCodeOptions: InvoicingNamedOption[];
|
|
10
12
|
columns: InvoicingSubscriptionColumnConfig[];
|
|
11
13
|
count: InvoicingListCounts;
|
|
12
14
|
countsFetchState: FetchStateAndError;
|
package/lib/view/invoicing/invoicingSubscriptionListView/invoicingSubscriptionListViewSelector.js
CHANGED
|
@@ -31,6 +31,7 @@ exports.getInvoicingSubscriptionListView = (0, toolkit_1.createSelector)((state)
|
|
|
31
31
|
count: listViewState.counts,
|
|
32
32
|
countsFetchState: listViewState.countsFetchState,
|
|
33
33
|
subscriptionCommercialEditAllowedFromStatuses: configState.subscriptionCommercialEditAllowedFromStatuses,
|
|
34
|
+
cancelReasonCodeOptions: configState.subscriptionCancelReasonCodeOptions,
|
|
34
35
|
subscriptionLifecycleActionOptions: configState.subscriptionLifecycleActionOptions,
|
|
35
36
|
subscriptionMetadataEditAllowedFromStatuses: configState.subscriptionMetadataEditAllowedFromStatuses,
|
|
36
37
|
statusOptions,
|
package/lib/view/invoicing/invoicingSubscriptionListView/invoicingSubscriptionListViewState.d.ts
CHANGED
|
@@ -7,8 +7,8 @@ export interface InvoicingSubscriptionFilters {
|
|
|
7
7
|
startedFrom?: string;
|
|
8
8
|
startedTo?: string;
|
|
9
9
|
}
|
|
10
|
-
export declare const ALL_INVOICING_SUBSCRIPTION_SORT_KEYS: readonly ["subscription", "customer", "plan", "
|
|
11
|
-
export declare const toInvoicingSubscriptionSortKey: (v: string) => "status" | "customer" | "subscription" | "plan" | "
|
|
10
|
+
export declare const ALL_INVOICING_SUBSCRIPTION_SORT_KEYS: readonly ["subscription", "customer", "plan", "term_end", "next_billing", "auto_collect", "status", "mrr"];
|
|
11
|
+
export declare const toInvoicingSubscriptionSortKey: (v: string) => "status" | "customer" | "subscription" | "plan" | "term_end" | "next_billing" | "auto_collect" | "mrr";
|
|
12
12
|
export type InvoicingSubscriptionSortKey = ReturnType<typeof toInvoicingSubscriptionSortKey>;
|
|
13
13
|
/**
|
|
14
14
|
* Structural column descriptor owned by CES so the subscription-list column set,
|
package/lib/view/invoicing/invoicingSubscriptionListView/invoicingSubscriptionListViewState.js
CHANGED
|
@@ -6,7 +6,6 @@ exports.ALL_INVOICING_SUBSCRIPTION_SORT_KEYS = [
|
|
|
6
6
|
'subscription',
|
|
7
7
|
'customer',
|
|
8
8
|
'plan',
|
|
9
|
-
'product_code',
|
|
10
9
|
'term_end',
|
|
11
10
|
'next_billing',
|
|
12
11
|
'auto_collect',
|
|
@@ -19,7 +18,6 @@ exports.INVOICING_SUBSCRIPTION_COLUMNS = [
|
|
|
19
18
|
{ key: 'subscription', sortable: true },
|
|
20
19
|
{ key: 'customer', sortable: false },
|
|
21
20
|
{ key: 'plan', sortable: true },
|
|
22
|
-
{ key: 'product_code', sortable: true },
|
|
23
21
|
{ key: 'term_end', sortable: true },
|
|
24
22
|
{ key: 'next_billing', sortable: true },
|
|
25
23
|
{ key: 'auto_collect', sortable: true },
|
|
@@ -18,6 +18,14 @@ export type PauseSubscriptionBody = {
|
|
|
18
18
|
pause_reason?: string;
|
|
19
19
|
resume_date?: string;
|
|
20
20
|
};
|
|
21
|
+
/**
|
|
22
|
+
* What the cancel dialog collects. Form values, not the request body: the screen
|
|
23
|
+
* turns these into {@link CancelSubscriptionBody}.
|
|
24
|
+
*/
|
|
25
|
+
export type InvoicingCancelSubscriptionValues = {
|
|
26
|
+
cancelReasonCode: string;
|
|
27
|
+
cancelReason?: string;
|
|
28
|
+
};
|
|
21
29
|
export type CancelSubscriptionBody = {
|
|
22
30
|
cancel_reason?: string;
|
|
23
31
|
cancel_reason_code?: string;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@zeniai/client-epic-state",
|
|
3
|
-
"version": "5.2.
|
|
3
|
+
"version": "5.2.22-betaAK0",
|
|
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",
|
|
@@ -33,6 +33,44 @@
|
|
|
33
33
|
"require": "./lib/view/*.js"
|
|
34
34
|
}
|
|
35
35
|
},
|
|
36
|
+
"scripts": {
|
|
37
|
+
"clean": "rimraf lib",
|
|
38
|
+
"test:typecheck": "echo 'Typechecking test files...' && NODE_OPTIONS=--max-old-space-size=4096 time tsc -p tsconfig.typecheck.json",
|
|
39
|
+
"test:typecheck-modified-files": "chmod +x ./scripts/tsc-modified-files.sh && SINCE_DAYS=30 ./scripts/tsc-modified-files.sh master tsconfig.typecheck.json",
|
|
40
|
+
"test:typecheck-mocks": "echo 'Typechecking mock files...' && NODE_OPTIONS=--max-old-space-size=4096 time tsc -p tsconfig.mocks.json",
|
|
41
|
+
"test:typecheck-mocks-modified-files": "chmod +x ./scripts/tsc-modified-files.sh && SINCE_DAYS=30 ./scripts/tsc-modified-files.sh master tsconfig.mocks.json",
|
|
42
|
+
"test": "pnpm lint-modified-files && pnpm test:typecheck-modified-files && pnpm test:typecheck-mocks-modified-files && vitest run --typecheck",
|
|
43
|
+
"test:full": "pnpm test:typecheck-modified-files && pnpm test:typecheck-mocks-modified-files && vitest run --typecheck",
|
|
44
|
+
"lint": "eslint . --ext .js,.jsx,.ts,.tsx --max-warnings 0 --fix",
|
|
45
|
+
"lint-modified-files": "chmod +x ./scripts/lint-modified-files.sh && ./scripts/lint-modified-files.sh",
|
|
46
|
+
"lint:fix-modified-files": "chmod +x ./scripts/lint-modified-files.sh && LINT_FIX=true ./scripts/lint-modified-files.sh",
|
|
47
|
+
"tsc-modified-files": "chmod +x ./scripts/tsc-modified-files.sh && ./scripts/tsc-modified-files.sh",
|
|
48
|
+
"typecheck": "tsc --noEmit",
|
|
49
|
+
"circular-dependency": "madge --circular --extensions ts ./src",
|
|
50
|
+
"circular-dependency-modified-files": "chmod +x ./scripts/circular-dependency-modified-files.sh && ./scripts/circular-dependency-modified-files.sh",
|
|
51
|
+
"build": "chmod +x ./scripts/run_build.sh && ./scripts/run_build.sh && rimraf \"lib/**/__mocks__\" \"lib/**/__testHelpers__\"",
|
|
52
|
+
"only-build": "eslint . --ext .js,.jsx,.ts,.tsx && time tsc && tsc -p tsconfig.esm.json && rimraf \"lib/**/__mocks__\" \"lib/**/__testHelpers__\"",
|
|
53
|
+
"only-build-dev": "eslint . --ext .js,.jsx,.ts,.tsx && time tsc -p tsconfig.dev.json && tsc -p tsconfig.esm.dev.json && rimraf \"lib/**/__mocks__\" \"lib/**/__testHelpers__\"",
|
|
54
|
+
"format": "prettier --write --ignore-unknown \"src/**/*\" && pnpm lint",
|
|
55
|
+
"format-watch": "bash ./scripts/run-format-watch.sh",
|
|
56
|
+
"check-version": "node ./scripts/check_version.js",
|
|
57
|
+
"prepublishOnly": "chmod +x ./scripts/branch_validation.sh && ./scripts/branch_validation.sh && pnpm update-slack-group-topic && pnpm run check-version && pnpm clean && pnpm build",
|
|
58
|
+
"version": "git add -A src",
|
|
59
|
+
"postversion": "git push && git push --tags",
|
|
60
|
+
"check-dependencies": "node ./scripts/check_dependencies.js",
|
|
61
|
+
"clean-overrides": "node ./scripts/clean_overrides.js",
|
|
62
|
+
"create-or-update-release-branch": "chmod +x ./scripts/create_or_update_release_branch.sh && ./scripts/create_or_update_release_branch.sh",
|
|
63
|
+
"bump-versions-master": "chmod +x ./scripts/bump_versions_master.sh && ./scripts/bump_versions_master.sh",
|
|
64
|
+
"bump-versions-beta": "chmod +x ./scripts/bump_versions_beta.sh && ./scripts/bump_versions_beta.sh",
|
|
65
|
+
"bump-update-web-app-cockpit-beta": "chmod +x ./scripts/bump_and_update_web_app_ui_beta.sh && ./scripts/bump_and_update_web_app_ui_beta.sh",
|
|
66
|
+
"send-release-notes": "chmod +x ./scripts/send_release_notes.sh && ./scripts/send_release_notes.sh",
|
|
67
|
+
"update-slack-group-topic": "chmod +x ./scripts/update-slack-group-topic.sh && ./scripts/update-slack-group-topic.sh",
|
|
68
|
+
"build-beta-and-copy": "chmod +x ./scripts/build_and_copy.sh && ./scripts/build_and_copy.sh",
|
|
69
|
+
"pr-approvals-update": "chmod +x ./scripts/pr_approvals.sh && ./scripts/pr_approvals.sh",
|
|
70
|
+
"raise-pr-automation": "chmod +x ./scripts/raise_pr_automation.sh && ./scripts/raise_pr_automation.sh",
|
|
71
|
+
"test:file": "bash ./scripts/test-file.sh",
|
|
72
|
+
"find-unused-code": "knip"
|
|
73
|
+
},
|
|
36
74
|
"files": [
|
|
37
75
|
"lib/**/*"
|
|
38
76
|
],
|
|
@@ -100,41 +138,36 @@
|
|
|
100
138
|
"dayjs": "^1.10.7",
|
|
101
139
|
"url-parse": "^1.5.10"
|
|
102
140
|
},
|
|
103
|
-
"
|
|
104
|
-
"
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
"build-beta-and-copy": "chmod +x ./scripts/build_and_copy.sh && ./scripts/build_and_copy.sh",
|
|
135
|
-
"pr-approvals-update": "chmod +x ./scripts/pr_approvals.sh && ./scripts/pr_approvals.sh",
|
|
136
|
-
"raise-pr-automation": "chmod +x ./scripts/raise_pr_automation.sh && ./scripts/raise_pr_automation.sh",
|
|
137
|
-
"test:file": "bash ./scripts/test-file.sh",
|
|
138
|
-
"find-unused-code": "knip"
|
|
141
|
+
"pnpm": {
|
|
142
|
+
"overrides": {
|
|
143
|
+
"@babel/core": ">=7.29.6",
|
|
144
|
+
"@babel/helpers": ">=7.26.10",
|
|
145
|
+
"@babel/runtime": ">=7.26.10",
|
|
146
|
+
"@babel/traverse": ">=7.23.2",
|
|
147
|
+
"@eslint/eslintrc>ajv": ">=6.14.0 <7",
|
|
148
|
+
"@eslint/plugin-kit": ">=0.3.4",
|
|
149
|
+
"@modelcontextprotocol/sdk": ">=1.25.2",
|
|
150
|
+
"ajv": ">=8.18.0",
|
|
151
|
+
"body-parser": ">=2.2.1",
|
|
152
|
+
"brace-expansion": ">=5.0.9",
|
|
153
|
+
"cross-spawn": ">=7.0.5",
|
|
154
|
+
"esbuild": ">=0.28.1",
|
|
155
|
+
"eslint>ajv": ">=6.14.0 <7",
|
|
156
|
+
"flatted": ">=3.4.2",
|
|
157
|
+
"glob": ">=11.1.0",
|
|
158
|
+
"hono": ">=4.11.4",
|
|
159
|
+
"immutable": ">=4.3.9 <5",
|
|
160
|
+
"js-yaml": ">=4.3.1 <5",
|
|
161
|
+
"minimatch": ">=10.2.3",
|
|
162
|
+
"nanoid": ">=3.3.17 <4",
|
|
163
|
+
"picomatch": ">=4.0.4",
|
|
164
|
+
"postcss": ">=8.5.18",
|
|
165
|
+
"qs": "^6.14.1",
|
|
166
|
+
"rollup": ">=4.59.0",
|
|
167
|
+
"shell-quote": ">=1.9.0",
|
|
168
|
+
"tough-cookie": "=4.1.3",
|
|
169
|
+
"vite": ">=7.3.5 <8",
|
|
170
|
+
"yaml": ">=2.9.0"
|
|
171
|
+
}
|
|
139
172
|
}
|
|
140
|
-
}
|
|
173
|
+
}
|