@zeniai/client-epic-state 5.1.96-betaAK0 → 5.1.96

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.
Files changed (26) hide show
  1. package/lib/entity/invoicing/invoicingCommonPayload.d.ts +0 -9
  2. package/lib/entity/invoicing/invoicingCommonPayload.js +0 -7
  3. package/lib/esm/entity/invoicing/invoicingCommonPayload.js +0 -6
  4. package/lib/esm/index.js +2 -2
  5. package/lib/esm/view/invoicing/editInvoicingCatalogItemDetailView/editInvoicingCatalogItemDetailViewSelector.js +0 -2
  6. package/lib/esm/view/invoicing/editInvoicingSubscriptionDetailView/editInvoicingSubscriptionDetailViewPayload.js +4 -16
  7. package/lib/esm/view/invoicing/editInvoicingSubscriptionDetailView/invoicingSubscriptionFormConfig.js +1 -34
  8. package/lib/esm/view/invoicing/invoicingCatalogItemDetailView/invoicingCatalogItemDetailViewSelector.js +0 -6
  9. package/lib/esm/view/invoicing/invoicingConfigView/invoicingConfigViewReducer.js +1 -5
  10. package/lib/index.d.ts +3 -3
  11. package/lib/index.js +7 -10
  12. package/lib/view/invoicing/editInvoicingCatalogItemDetailView/editInvoicingCatalogItemDetailViewSelector.d.ts +0 -8
  13. package/lib/view/invoicing/editInvoicingCatalogItemDetailView/editInvoicingCatalogItemDetailViewSelector.js +0 -2
  14. package/lib/view/invoicing/editInvoicingSubscriptionDetailView/editInvoicingSubscriptionDetailViewPayload.d.ts +0 -4
  15. package/lib/view/invoicing/editInvoicingSubscriptionDetailView/editInvoicingSubscriptionDetailViewPayload.js +3 -15
  16. package/lib/view/invoicing/editInvoicingSubscriptionDetailView/editInvoicingSubscriptionDetailViewState.d.ts +0 -17
  17. package/lib/view/invoicing/editInvoicingSubscriptionDetailView/invoicingSubscriptionFormConfig.d.ts +0 -7
  18. package/lib/view/invoicing/editInvoicingSubscriptionDetailView/invoicingSubscriptionFormConfig.js +2 -37
  19. package/lib/view/invoicing/invoicingCatalogItemDetailView/invoicingCatalogItemDetailViewSelector.d.ts +1 -13
  20. package/lib/view/invoicing/invoicingCatalogItemDetailView/invoicingCatalogItemDetailViewSelector.js +0 -6
  21. package/lib/view/invoicing/invoicingConfigView/invoicingConfigViewPayload.d.ts +1 -2
  22. package/lib/view/invoicing/invoicingConfigView/invoicingConfigViewReducer.d.ts +1 -1
  23. package/lib/view/invoicing/invoicingConfigView/invoicingConfigViewReducer.js +0 -4
  24. package/lib/view/invoicing/invoicingConfigView/invoicingConfigViewState.d.ts +1 -7
  25. package/package.json +1 -1
  26. package/lib/tsconfig.typecheck.tsbuildinfo +0 -1
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.entityToInvoicingSubscriptionFormLocalData = exports.initialInvoicingSubscriptionFormLocalData = exports.toInvoicingSubscriptionQuantity = exports.invoicingSubscriptionTodayIso = exports.periodToBillingFrequency = exports.billingFrequencyToPeriod = exports.INVOICING_SUBSCRIPTION_BILLING_FREQUENCY_VALUES = exports.INVOICING_SUBSCRIPTION_SHIPPING_ADDRESS_TYPE = void 0;
3
+ exports.entityToInvoicingSubscriptionFormLocalData = exports.initialInvoicingSubscriptionFormLocalData = exports.periodToBillingFrequency = exports.billingFrequencyToPeriod = exports.INVOICING_SUBSCRIPTION_BILLING_FREQUENCY_VALUES = exports.INVOICING_SUBSCRIPTION_SHIPPING_ADDRESS_TYPE = void 0;
4
4
  /** `AddressType` key used when the subscription form opens the shared Address screen. */
5
5
  exports.INVOICING_SUBSCRIPTION_SHIPPING_ADDRESS_TYPE = 'invoicing_subscription_shipping_address';
6
6
  /**
@@ -38,44 +38,17 @@ const subscriptionItemPriceCodes = (subscription, itemType) => subscription?.sub
38
38
  ?.filter((item) => item.itemType === itemType)
39
39
  .map((item) => item.itemPriceCode)
40
40
  .filter((code) => code != null && code !== '') ?? [];
41
- const subscriptionItemQuantities = (subscription, itemType) => {
42
- const quantities = {};
43
- subscription?.subscriptionItems
44
- ?.filter((item) => item.itemType === itemType)
45
- .forEach((item) => {
46
- if (item.itemPriceCode != null && item.itemPriceCode !== '') {
47
- quantities[item.itemPriceCode] = (0, exports.toInvoicingSubscriptionQuantity)(item.quantity);
48
- }
49
- });
50
- return quantities;
51
- };
52
- /** Today as `YYYY-MM-DD`, the default subscription start date. */
53
- const invoicingSubscriptionTodayIso = () => new Date().toISOString().slice(0, 10);
54
- exports.invoicingSubscriptionTodayIso = invoicingSubscriptionTodayIso;
55
- /**
56
- * Clamp a subscription-item quantity to the minimum the API accepts. Shared by
57
- * the plan, add-on and charge items so none of them can bill a 0 or a fraction.
58
- */
59
- const toInvoicingSubscriptionQuantity = (quantity) => {
60
- const whole = Math.floor(Number(quantity));
61
- return Number.isFinite(whole) && whole > 0 ? whole : 1;
62
- };
63
- exports.toInvoicingSubscriptionQuantity = toInvoicingSubscriptionQuantity;
64
41
  exports.initialInvoicingSubscriptionFormLocalData = {
65
42
  addonPriceCodes: [],
66
- addonQuantities: {},
67
43
  autoCollection: true,
68
44
  billingFrequency: 'monthly',
69
45
  chargePriceCodes: [],
70
- chargeQuantities: {},
71
46
  couponId: '',
72
47
  customerId: '',
73
48
  planPriceCode: '',
74
49
  planQuantity: 1,
75
50
  poNumber: '',
76
51
  preferredCurrencyCode: 'USD',
77
- remainingBillingCycles: '',
78
- startedAt: '',
79
52
  trialEnd: '',
80
53
  };
81
54
  /** Seed the form draft from an existing subscription entity (edit mode). */
@@ -86,26 +59,18 @@ const entityToInvoicingSubscriptionFormLocalData = (subscription) => {
86
59
  const planItem = subscription.subscriptionItems?.find((item) => item.itemType === 'plan');
87
60
  return {
88
61
  addonPriceCodes: subscriptionItemPriceCodes(subscription, 'addon'),
89
- addonQuantities: subscriptionItemQuantities(subscription, 'addon'),
90
62
  autoCollection: (subscription.autoCollection ?? 'on') === 'on',
91
63
  billingFrequency: (0, exports.periodToBillingFrequency)(subscription.billingPeriod, subscription.billingPeriodUnit),
92
64
  chargePriceCodes: subscriptionItemPriceCodes(subscription, 'charge'),
93
- chargeQuantities: subscriptionItemQuantities(subscription, 'charge'),
94
65
  couponId: subscription.coupons?.[0]?.couponCode ??
95
66
  subscription.coupons?.[0]?.couponID ??
96
67
  '',
97
68
  customerId: subscription.customerID ?? '',
98
69
  planPriceCode: subscriptionItemPriceCodes(subscription, 'plan')[0] ?? '',
99
- planQuantity: (0, exports.toInvoicingSubscriptionQuantity)(planItem?.quantity),
70
+ planQuantity: planItem?.quantity ?? 1,
100
71
  poNumber: subscription.poNumber ?? '',
101
72
  preferredCurrencyCode: subscription.currencyCode ?? 'USD',
102
- remainingBillingCycles: subscription.remainingBillingCycles != null
103
- ? String(subscription.remainingBillingCycles)
104
- : '',
105
73
  setupFee: subscription.setupFee,
106
- startedAt: subscription.startedAt != null
107
- ? subscription.startedAt.format('YYYY-MM-DD')
108
- : '',
109
74
  trialEnd: subscription.trialEnd != null
110
75
  ? subscription.trialEnd.format('YYYY-MM-DD')
111
76
  : '',
@@ -1,6 +1,5 @@
1
- import { FetchState, ID } from '../../../commonStateTypes/common';
1
+ import { ID } from '../../../commonStateTypes/common';
2
2
  import { SelectorView } from '../../../commonStateTypes/viewAndReport/viewAndReport';
3
- import { InvoicingCatalogItemLifecycleAction, InvoicingCatalogLifecycleActionOption, InvoicingCatalogProductLifecycleAction, InvoicingNamedOptionsByKey } from '../../../entity/invoicing/invoicingCommonPayload';
4
3
  import { InvoicingPlan } from '../../../entity/invoicing/plan/planState';
5
4
  import { RootState } from '../../../reducer';
6
5
  import { InvoicingCatalogItemKind } from './invoicingCatalogItemDetailViewState';
@@ -8,19 +7,8 @@ import { InvoicingCatalogItemKind } from './invoicingCatalogItemDetailViewState'
8
7
  * Read-only view for the catalog item (plan or product) detail page. One screen
9
8
  * serves both kinds, so the bundled view carries the resolved `plan` or
10
9
  * `product` (whichever the `kind` denotes) + the shared fetch state.
11
- *
12
- * The lifecycle/tier option sets and `configFetchState` are folded in from the
13
- * config slice rather than left for the screen to select itself, so the page
14
- * wires one selector and CES stays the only place that knows which slice each
15
- * option set lives in. `configFetchState` is named apart from the view's own
16
- * `fetchState` because they track different requests — the screen gates a config
17
- * refetch on the former while rendering off the latter.
18
10
  */
19
11
  export interface InvoicingCatalogItemDetailView extends SelectorView {
20
- catalogItemLifecycleActionOptions: InvoicingCatalogLifecycleActionOption<InvoicingCatalogItemLifecycleAction>[];
21
- catalogProductLifecycleActionOptions: InvoicingCatalogLifecycleActionOption<InvoicingCatalogProductLifecycleAction>[];
22
- configFetchState: FetchState;
23
- catalogTierTypeOptionsByPricingModel?: InvoicingNamedOptionsByKey;
24
12
  plan?: InvoicingPlan;
25
13
  }
26
14
  export declare const getInvoicingCatalogItemDetail: (state: RootState, _kind: InvoicingCatalogItemKind, id: ID) => InvoicingCatalogItemDetailView;
@@ -2,15 +2,9 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getInvoicingCatalogItemDetail = void 0;
4
4
  const planSelector_1 = require("../../../entity/invoicing/plan/planSelector");
5
- const invoicingConfigViewSelector_1 = require("../invoicingConfigView/invoicingConfigViewSelector");
6
5
  const getInvoicingCatalogItemDetail = (state, _kind, id) => {
7
6
  const { error, fetchState } = state.invoicingCatalogItemDetailViewState;
8
- const { catalogItemLifecycleActionOptions, catalogProductLifecycleActionOptions, catalogTierTypeOptionsByPricingModel, fetchState: configFetchState, } = (0, invoicingConfigViewSelector_1.getInvoicingConfigView)(state);
9
7
  return {
10
- catalogItemLifecycleActionOptions,
11
- catalogProductLifecycleActionOptions,
12
- catalogTierTypeOptionsByPricingModel,
13
- configFetchState,
14
8
  plan: (0, planSelector_1.getInvoicingPlanById)(state.invoicingPlanState, id),
15
9
  fetchState,
16
10
  error,
@@ -1,4 +1,4 @@
1
- import { AuditLogEntityRouteOptionWire, AuditLogListSortFieldOptionWire, AuditLogSourceLabelOptionWire, InvoicingCatalogLifecycleActionOptionWire, InvoicingDunningActionOption, InvoicingNamedOptionWire, InvoicingNamedOptionsByKeyWire, InvoicingQboAccountMappingKindOptionWire, InvoicingSubscriptionEditFieldOptionWire, InvoicingSubscriptionLifecycleActionOptionWire } from '../../../entity/invoicing/invoicingCommonPayload';
1
+ import { AuditLogEntityRouteOptionWire, AuditLogListSortFieldOptionWire, AuditLogSourceLabelOptionWire, InvoicingCatalogLifecycleActionOptionWire, InvoicingDunningActionOption, InvoicingNamedOptionWire, InvoicingQboAccountMappingKindOptionWire, InvoicingSubscriptionEditFieldOptionWire, InvoicingSubscriptionLifecycleActionOptionWire } from '../../../entity/invoicing/invoicingCommonPayload';
2
2
  import { ZeniAPIResponse } from '../../../responsePayload';
3
3
  /**
4
4
  * Wire payload of the invoicing config API (GET/PUT `/1.0/config`). Follows
@@ -23,7 +23,6 @@ export interface InvoicingConfigPayload {
23
23
  subscription_metadata_edit_allowed_from_statuses: string[];
24
24
  auto_collection_options?: InvoicingNamedOptionWire[];
25
25
  billing_period_unit_options?: InvoicingNamedOptionWire[];
26
- catalog_tier_type_options_by_pricing_model?: InvoicingNamedOptionsByKeyWire;
27
26
  catalog_trial_end_action_options?: InvoicingNamedOptionWire[];
28
27
  catalog_trial_unit_options?: InvoicingNamedOptionWire[];
29
28
  created_at?: string | null;
@@ -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' | 'discountApplyOnOptions' | 'discountDurationTypeOptions' | 'discountTypeOptions' | 'manualPaymentMethodOptions' | 'netTermDayOptions' | 'paymentGatewayOptions' | 'taxabilityOptions' | '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' | 'catalogTrialEndActionOptions' | 'catalogTrialUnitOptions' | 'customerTypeOptions' | 'dateFormatOptions' | 'discountApplyOnOptions' | 'discountDurationTypeOptions' | 'discountTypeOptions' | 'manualPaymentMethodOptions' | 'netTermDayOptions' | 'paymentGatewayOptions' | 'taxabilityOptions' | '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], {
@@ -15,7 +15,6 @@ exports.initialState = {
15
15
  auditLogSourceLabels: [],
16
16
  autoCollectionOptions: [],
17
17
  billingPeriodUnitOptions: [],
18
- catalogTierTypeOptionsByPricingModel: undefined,
19
18
  catalogTrialEndActionOptions: [],
20
19
  catalogTrialUnitOptions: [],
21
20
  customerTypeOptions: [],
@@ -67,9 +66,6 @@ function mapInvoicingConfigPayloadToState(payload) {
67
66
  })),
68
67
  autoCollectionOptions: (payload.auto_collection_options ?? []).map(invoicingCommonPayload_1.toInvoicingNamedOption),
69
68
  billingPeriodUnitOptions: (payload.billing_period_unit_options ?? []).map(invoicingCommonPayload_1.toInvoicingNamedOption),
70
- catalogTierTypeOptionsByPricingModel: payload.catalog_tier_type_options_by_pricing_model != null
71
- ? (0, invoicingCommonPayload_1.toInvoicingNamedOptionsByKey)(payload.catalog_tier_type_options_by_pricing_model)
72
- : undefined,
73
69
  catalogTrialEndActionOptions: (payload.catalog_trial_end_action_options ?? []).map(invoicingCommonPayload_1.toInvoicingNamedOption),
74
70
  catalogTrialUnitOptions: (payload.catalog_trial_unit_options ?? []).map(invoicingCommonPayload_1.toInvoicingNamedOption),
75
71
  customerTypeOptions: (payload.customer_type_options ?? []).map(invoicingCommonPayload_1.toInvoicingNamedOption),
@@ -1,5 +1,5 @@
1
1
  import { FetchStateAndError, FetchedState } from '../../../commonStateTypes/common';
2
- import type { AuditLogEntityRouteOption, AuditLogListSortFieldOption, AuditLogSourceLabelOption, InvoicingCatalogItemLifecycleAction, InvoicingCatalogLifecycleActionOption, InvoicingCatalogProductLifecycleAction, InvoicingDiscountLifecycleActionOption, InvoicingNamedOption, InvoicingNamedOptionsByKey, InvoicingQboAccountMappingKindOption, InvoicingSubscriptionEditFieldOption, InvoicingSubscriptionLifecycleActionOption } from '../../../entity/invoicing/invoicingCommonPayload';
2
+ import type { AuditLogEntityRouteOption, AuditLogListSortFieldOption, AuditLogSourceLabelOption, InvoicingCatalogItemLifecycleAction, InvoicingCatalogLifecycleActionOption, InvoicingCatalogProductLifecycleAction, InvoicingDiscountLifecycleActionOption, InvoicingNamedOption, InvoicingQboAccountMappingKindOption, InvoicingSubscriptionEditFieldOption, InvoicingSubscriptionLifecycleActionOption } from '../../../entity/invoicing/invoicingCommonPayload';
3
3
  import { InvoicingDunningActionOption } from '../../../entity/invoicing/invoicingCommonPayload';
4
4
  export interface InvoicingConfigViewState extends FetchedState {
5
5
  acceptTermsFetchState: FetchStateAndError;
@@ -33,12 +33,6 @@ export interface InvoicingConfigViewState extends FetchedState {
33
33
  subscriptionLifecycleActionOptions: InvoicingSubscriptionLifecycleActionOption[];
34
34
  subscriptionMetadataEditAllowedFromStatuses: string[];
35
35
  taxabilityOptions: InvoicingNamedOption[];
36
- /**
37
- * Allowed tier `Type` options per pricing model. `undefined` means the config
38
- * has not been loaded yet — consumers disable the tier editor rather than
39
- * falling back to a hardcoded model-to-type map.
40
- */
41
- catalogTierTypeOptionsByPricingModel?: InvoicingNamedOptionsByKey;
42
36
  createdAt?: string;
43
37
  invoicingTosAcceptanceIp?: string;
44
38
  invoicingTosAcceptanceTime?: string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zeniai/client-epic-state",
3
- "version": "5.1.96-betaAK0",
3
+ "version": "5.1.96",
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",