@zeniai/client-epic-state 5.2.45 → 5.2.47

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.
@@ -1,4 +1,15 @@
1
+ import { Amount } from '../../../commonStateTypes/amount';
1
2
  import { ID } from '../../../commonStateTypes/common';
2
3
  import { InvoicingPlan, InvoicingPlanState } from './planState';
3
4
  export declare function getInvoicingPlansByIds(planState: InvoicingPlanState, ids: ID[]): InvoicingPlan[];
4
5
  export declare function getInvoicingPlanById(planState: InvoicingPlanState, id: ID): InvoicingPlan | undefined;
6
+ /**
7
+ * The lowest amount a catalog item can be bought at: the smallest single-unit
8
+ * price across its active price points.
9
+ *
10
+ * Undefined rather than a number when there is nothing to compare — no active
11
+ * price points, or none carrying an amount — and equally when the active price
12
+ * points are priced in different currencies, where the smallest number is not
13
+ * the lowest price. A zero is a real price and wins on its merits.
14
+ */
15
+ export declare const getLowestInvoicingPlanPricePointAmount: (plan: InvoicingPlan | undefined) => Amount | undefined;
@@ -3,6 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.getLowestInvoicingPlanPricePointAmount = void 0;
6
7
  exports.getInvoicingPlansByIds = getInvoicingPlansByIds;
7
8
  exports.getInvoicingPlanById = getInvoicingPlanById;
8
9
  const get_1 = __importDefault(require("lodash/get"));
@@ -15,3 +16,43 @@ function getInvoicingPlansByIds(planState, ids) {
15
16
  function getInvoicingPlanById(planState, id) {
16
17
  return (0, get_1.default)(planState.planByID, id);
17
18
  }
19
+ /**
20
+ * A price point counts while it is active. A missing status is treated as
21
+ * active: the list responses omit it for items that have never been archived.
22
+ */
23
+ const isActiveInvoicingPricePoint = (pricePoint) => pricePoint.status == null || pricePoint.status === 'active';
24
+ /**
25
+ * The amount to show for one price point: what the service computed for a
26
+ * single unit. `price` is only a fallback for responses predating
27
+ * `display_price` — reading it first would show `0` for every tiered, volume
28
+ * and stairstep model, whose configured price is legitimately zero because the
29
+ * money lives in its tiers.
30
+ */
31
+ const invoicingPricePointDisplayAmount = (pricePoint) => pricePoint.displayPrice ?? pricePoint.price;
32
+ /**
33
+ * The lowest amount a catalog item can be bought at: the smallest single-unit
34
+ * price across its active price points.
35
+ *
36
+ * Undefined rather than a number when there is nothing to compare — no active
37
+ * price points, or none carrying an amount — and equally when the active price
38
+ * points are priced in different currencies, where the smallest number is not
39
+ * the lowest price. A zero is a real price and wins on its merits.
40
+ */
41
+ const getLowestInvoicingPlanPricePointAmount = (plan) => {
42
+ const amounts = (plan?.subFamilies ?? [])
43
+ .filter(isActiveInvoicingPricePoint)
44
+ .map(invoicingPricePointDisplayAmount)
45
+ .filter((amount) => amount != null);
46
+ if (amounts.length === 0) {
47
+ return undefined;
48
+ }
49
+ const [firstAmount] = amounts;
50
+ if (amounts.some((amount) => amount.currencyCode !== firstAmount.currencyCode)) {
51
+ return undefined;
52
+ }
53
+ // `reduce` keeps the earlier of two equal amounts, so a tie resolves to the
54
+ // price point listed first rather than to whichever the comparison happened
55
+ // to visit last.
56
+ return amounts.reduce((lowest, amount) => amount.amount < lowest.amount ? amount : lowest);
57
+ };
58
+ exports.getLowestInvoicingPlanPricePointAmount = getLowestInvoicingPlanPricePointAmount;
@@ -34,6 +34,13 @@ export interface InvoicingProductPayload {
34
34
  currency_code?: string;
35
35
  currency_symbol?: string;
36
36
  description?: string;
37
+ /**
38
+ * What one unit of this price point costs, computed by the service. Read-only
39
+ * and never sent back: `price` stays the configured scalar the create/edit
40
+ * flows own, which for a tiered, volume or stairstep model is legitimately
41
+ * `0` because the money lives in `tiers`.
42
+ */
43
+ display_price?: number;
37
44
  enabled?: boolean;
38
45
  enabled_for_checkout?: boolean;
39
46
  enabled_in_portal?: boolean;
@@ -47,6 +47,9 @@ const mapInvoicingProductPayloadToState = (payload) => {
47
47
  createdAt: payload.created_at != null ? (0, zeniDayJS_1.date)(payload.created_at) : undefined,
48
48
  currencyCode: payload.currency_code,
49
49
  description: payload.description,
50
+ displayPrice: payload.display_price != null
51
+ ? (0, amount_1.toAmount)(payload.display_price, currencyCode, currencySymbol)
52
+ : undefined,
50
53
  enabled: payload.enabled,
51
54
  enabledForCheckout: payload.enabled_for_checkout,
52
55
  enabledInPortal: payload.enabled_in_portal,
@@ -25,6 +25,12 @@ export interface InvoicingProduct {
25
25
  createdAt?: ZeniDate;
26
26
  currencyCode?: string;
27
27
  description?: string;
28
+ /**
29
+ * What one unit costs, as the service computes it. Unlike {@link price} — the
30
+ * configured scalar, which a tiered model stores as `0` — this is the amount
31
+ * to show.
32
+ */
33
+ displayPrice?: Amount;
28
34
  enabled?: boolean;
29
35
  enabledForCheckout?: boolean;
30
36
  enabledInPortal?: boolean;
@@ -8,3 +8,42 @@ export function getInvoicingPlansByIds(planState, ids) {
8
8
  export function getInvoicingPlanById(planState, id) {
9
9
  return recordGet(planState.planByID, id);
10
10
  }
11
+ /**
12
+ * A price point counts while it is active. A missing status is treated as
13
+ * active: the list responses omit it for items that have never been archived.
14
+ */
15
+ const isActiveInvoicingPricePoint = (pricePoint) => pricePoint.status == null || pricePoint.status === 'active';
16
+ /**
17
+ * The amount to show for one price point: what the service computed for a
18
+ * single unit. `price` is only a fallback for responses predating
19
+ * `display_price` — reading it first would show `0` for every tiered, volume
20
+ * and stairstep model, whose configured price is legitimately zero because the
21
+ * money lives in its tiers.
22
+ */
23
+ const invoicingPricePointDisplayAmount = (pricePoint) => pricePoint.displayPrice ?? pricePoint.price;
24
+ /**
25
+ * The lowest amount a catalog item can be bought at: the smallest single-unit
26
+ * price across its active price points.
27
+ *
28
+ * Undefined rather than a number when there is nothing to compare — no active
29
+ * price points, or none carrying an amount — and equally when the active price
30
+ * points are priced in different currencies, where the smallest number is not
31
+ * the lowest price. A zero is a real price and wins on its merits.
32
+ */
33
+ export const getLowestInvoicingPlanPricePointAmount = (plan) => {
34
+ const amounts = (plan?.subFamilies ?? [])
35
+ .filter(isActiveInvoicingPricePoint)
36
+ .map(invoicingPricePointDisplayAmount)
37
+ .filter((amount) => amount != null);
38
+ if (amounts.length === 0) {
39
+ return undefined;
40
+ }
41
+ const [firstAmount] = amounts;
42
+ if (amounts.some((amount) => amount.currencyCode !== firstAmount.currencyCode)) {
43
+ return undefined;
44
+ }
45
+ // `reduce` keeps the earlier of two equal amounts, so a tie resolves to the
46
+ // price point listed first rather than to whichever the comparison happened
47
+ // to visit last.
48
+ return amounts.reduce((lowest, amount) => amount.amount < lowest.amount ? amount : lowest);
49
+ };
@@ -43,6 +43,9 @@ export const mapInvoicingProductPayloadToState = (payload) => {
43
43
  createdAt: payload.created_at != null ? date(payload.created_at) : undefined,
44
44
  currencyCode: payload.currency_code,
45
45
  description: payload.description,
46
+ displayPrice: payload.display_price != null
47
+ ? toAmount(payload.display_price, currencyCode, currencySymbol)
48
+ : undefined,
46
49
  enabled: payload.enabled,
47
50
  enabledForCheckout: payload.enabled_for_checkout,
48
51
  enabledInPortal: payload.enabled_in_portal,
package/lib/esm/index.js CHANGED
@@ -846,7 +846,7 @@ export { fetchInvoicingCatalogCounts, fetchInvoicingCatalogListPage, fetchInvoic
846
846
  export { ALL_INVOICING_PRODUCT_SORT_KEYS, INVOICING_PRODUCT_COLUMNS, } from './view/invoicing/invoicingCatalogListView/invoicingCatalogListViewState';
847
847
  export { getInvoicingCatalogListView } from './view/invoicing/invoicingCatalogListView/invoicingCatalogListViewSelector';
848
848
  export { fetchInvoicingCatalogItemDetail } from './view/invoicing/editInvoicingCatalogItemDetailView/editInvoicingCatalogItemDetailViewReducer';
849
- export { getInvoicingPlanById } from './entity/invoicing/plan/planSelector';
849
+ export { getInvoicingPlanById, getLowestInvoicingPlanPricePointAmount, } from './entity/invoicing/plan/planSelector';
850
850
  export { getInvoicingProductById } from './entity/invoicing/product/productSelector';
851
851
  // ── Invoicing: settings ───────────────────────────────────────────────────────
852
852
  export { connectInvoicingStripe, disconnectInvoicingStripe, fetchInvoicingSettings, resetInvoicingBrandingFormDraft, resetInvoicingQboSettingsDraft, resetSaveInvoicingSettings, saveInvoicingSettings, submitInvoicingBrandingForm, submitInvoicingQboSettings, updateInvoicingBrandingFormDraft, updateInvoicingQboSettingsDraft, updateInvoicingSettings, } from './view/invoicing/settingsView/settingsViewReducer';
package/lib/index.d.ts CHANGED
@@ -1233,7 +1233,7 @@ export { getInvoicingCatalogListView } from './view/invoicing/invoicingCatalogLi
1233
1233
  export type { InvoicingCatalogListView } from './view/invoicing/invoicingCatalogListView/invoicingCatalogListViewSelector';
1234
1234
  export { fetchInvoicingCatalogItemDetail } from './view/invoicing/editInvoicingCatalogItemDetailView/editInvoicingCatalogItemDetailViewReducer';
1235
1235
  export type { InvoicingCatalogItemKind } from './view/invoicing/editInvoicingCatalogItemDetailView/editInvoicingCatalogItemDetailViewState';
1236
- export { getInvoicingPlanById } from './entity/invoicing/plan/planSelector';
1236
+ export { getInvoicingPlanById, getLowestInvoicingPlanPricePointAmount, } from './entity/invoicing/plan/planSelector';
1237
1237
  export { getInvoicingProductById } from './entity/invoicing/product/productSelector';
1238
1238
  export { connectInvoicingStripe, disconnectInvoicingStripe, fetchInvoicingSettings, resetInvoicingBrandingFormDraft, resetInvoicingQboSettingsDraft, resetSaveInvoicingSettings, saveInvoicingSettings, submitInvoicingBrandingForm, submitInvoicingQboSettings, updateInvoicingBrandingFormDraft, updateInvoicingQboSettingsDraft, updateInvoicingSettings, } from './view/invoicing/settingsView/settingsViewReducer';
1239
1239
  export { getInvoicingBrandingFormView, getInvoicingQboSettingsFormView, getInvoicingSettings, getInvoicingSettingsFetchState, getInvoicingSettingsHubView, getInvoicingSettingsView, } from './view/invoicing/settingsView/settingsViewSelector';
package/lib/index.js CHANGED
@@ -84,8 +84,8 @@ exports.initialInvoicingSubscriptionFormLocalData = exports.entityToInvoicingSub
84
84
  exports.retryInvoicingMigration = exports.connectInvoicingChargebee = exports.getInvoicingDataImportView = exports.setInvoicingActiveMigrationSessionId = exports.fetchInvoicingMigrationSessions = exports.fetchInvoicingMigrationSession = exports.fetchInvoicingMigrationDiagnostics = exports.fetchInvoicingDataImportStatus = exports.runInvoicingPaymentAction = exports.runInvoicingDunningAction = exports.runInvoicingSubscriptionAction = exports.runInvoicingDiscountAction = exports.runInvoicingCatalogProductAction = exports.runInvoicingCatalogPlanAction = exports.fetchInvoicingCatalogItemDetailPage = exports.shouldDefaultAdjustmentCreditNote = exports.isBackdatedInvoiceDate = exports.buildVoidInvoiceSubmitBody = exports.updateInvoicingInvoice = exports.runInvoicingInvoiceAction = exports.getInvoicingCouponFormView = exports.getEditInvoicingCouponDetailViewState = exports.initialInvoicingCouponFormLocalData = exports.entityToInvoicingCouponFormLocalData = exports.updateInvoicingCouponFormDraft = exports.submitInvoicingCouponForm = exports.saveInvoicingCoupon = exports.resetEditInvoicingCouponDetailView = exports.fetchInvoicingCouponDetailPage = exports.getSavedInvoicingCatalogItemKind = exports.getSavedInvoicingCatalogItemId = exports.getInvoicingCatalogItemFormView = exports.getInvoicingApplicableCatalogItemOptions = exports.isTieredCatalogPricingModel = exports.initialInvoicingCatalogItemFormLocalData = exports.invoicingProductToCatalogItemFormSubFamily = exports.entityToInvoicingCatalogItemFormLocalData = exports.blankInvoicingCatalogTier = exports.blankInvoicingCatalogSubFamily = exports.INVOICING_CATALOG_TIER_TYPE_VALUES = exports.INVOICING_CATALOG_PRORATION_VALUES = exports.INVOICING_CATALOG_PRICING_MODEL_VALUES = exports.INVOICING_CATALOG_APPLICABILITY_VALUES = exports.updateInvoicingCatalogItemFormDraft = exports.submitInvoicingCatalogItemForm = exports.resetEditInvoicingCatalogItemDetailView = exports.getInvoicingSubscriptionFormView = exports.getEditInvoicingSubscriptionDetailViewState = exports.toInvoicingSubscriptionQuantity = exports.invoicingSubscriptionTodayIso = void 0;
85
85
  exports.fetchInvoicingTransactionListPage = exports.fetchInvoicingTransactionList = exports.updateInvoicingTransactions = exports.removeInvoicingTransaction = exports.getInvoicingSubscriptionById = exports.fetchInvoicingSubscriptionDetailPage = exports.fetchInvoicingSubscriptionDetail = exports.getInvoicingSubscriptionListView = exports.INVOICING_SUBSCRIPTION_COLUMNS = exports.ALL_INVOICING_SUBSCRIPTION_TAB_IDS = exports.ALL_INVOICING_SUBSCRIPTION_SORT_KEYS = exports.updateInvoicingSubscriptionFilters = exports.setInvoicingSubscriptionActiveTab = exports.fetchInvoicingSubscriptionListPage = exports.fetchInvoicingSubscriptionList = exports.fetchInvoicingSubscriptionCounts = exports.updateInvoicingSubscriptions = exports.removeInvoicingSubscription = exports.resetPromotionalCreditAction = exports.submitAddPromotionalCredits = exports.getInvoicingSetupIntentFetchState = exports.getInvoicingSetupIntent = exports.getInvoicingSentPaymentLinkMagicUrl = exports.getInvoicingSentPaymentLinkEmail = exports.getInvoicingPlaidLinkToken = exports.getInvoicingPaymentMethodSaveState = exports.getInvoicingPaymentLinkSendState = exports.sendInvoicingPaymentLink = exports.saveInvoicingPaymentMethod = exports.resetInvoicingCustomerPaymentMethod = exports.fetchInvoicingPlaidLinkToken = exports.createInvoicingSetupIntent = exports.fetchInvoicingPaymentLinkEmailPreviewPage = exports.fetchInvoicingCustomerDetailPage = exports.fetchInvoicingCustomerDetail = exports.getInvoicingCustomerListView = exports.INVOICING_CUSTOMER_COLUMNS = exports.ALL_INVOICING_CUSTOMER_TAB_IDS = exports.ALL_INVOICING_CUSTOMER_SORT_KEYS = exports.updateInvoicingCustomerFilters = exports.setInvoicingCustomerActiveTab = exports.fetchInvoicingCustomerListPage = exports.fetchInvoicingCustomerList = exports.fetchInvoicingCustomerCounts = exports.updateInvoicingCustomers = exports.removeInvoicingCustomer = exports.INVOICING_LIST_PAGE_SIZE = exports.uploadInvoicingMigrationFiles = exports.startInvoicingMigration = exports.rollbackInvoicingMigration = void 0;
86
86
  exports.ALL_INVOICING_DUNNING_CASE_SORT_KEYS = exports.updateInvoicingDunningCaseFilters = exports.setInvoicingDunningCaseActiveTab = exports.fetchInvoicingDunningCaseListPage = exports.fetchInvoicingDunningCaseList = exports.fetchInvoicingDunningCaseCounts = exports.updateInvoicingDunningCases = exports.removeInvoicingDunningCase = exports.fetchInvoicingCouponDetail = exports.getInvoicingCouponById = exports.getInvoicingCouponListView = exports.getInvoicingCouponListNextCursor = exports.getInvoicingCouponListItems = exports.getInvoicingCouponListHasMore = exports.getInvoicingCouponListFilters = exports.getInvoicingCouponListFetchState = exports.getInvoicingCouponCounts = exports.INVOICING_COUPON_COLUMNS = exports.ALL_INVOICING_COUPON_TAB_IDS = exports.ALL_INVOICING_COUPON_SORT_KEYS = exports.updateInvoicingCouponFilters = exports.setInvoicingCouponActiveTab = exports.fetchInvoicingCouponListPage = exports.fetchInvoicingCouponList = exports.fetchInvoicingCouponCounts = exports.updateInvoicingCoupons = exports.removeInvoicingCoupon = exports.getInvoicingCreditNoteDetail = exports.getInvoicingCreditNoteById = exports.fetchInvoicingCreditNoteDetail = exports.getInvoicingCreditNoteListView = exports.INVOICING_CREDIT_NOTE_COLUMNS = exports.ALL_INVOICING_CREDIT_NOTE_TAB_IDS = exports.ALL_INVOICING_CREDIT_NOTE_SORT_KEYS = exports.updateInvoicingCreditNoteFilters = exports.setInvoicingCreditNoteActiveTab = exports.fetchInvoicingCreditNoteListPage = exports.fetchInvoicingCreditNoteList = exports.fetchInvoicingCreditNoteCounts = exports.updateInvoicingCreditNotes = exports.removeInvoicingCreditNote = exports.getInvoicingTransactionDetail = exports.getInvoicingTransactionById = exports.fetchInvoicingTransactionDetail = exports.getInvoicingTransactionListView = exports.INVOICING_TRANSACTION_COLUMNS = exports.ALL_INVOICING_TRANSACTION_TAB_IDS = exports.ALL_INVOICING_TRANSACTION_SORT_KEYS = exports.updateInvoicingTransactionFilters = exports.setInvoicingTransactionActiveTab = void 0;
87
- exports.INVOICING_BUSINESS_ADDRESS_TYPE = exports.invoicingQboSettingsLocalDataToPayload = exports.initialInvoicingQboSettingsLocalData = exports.entityToInvoicingQboSettingsLocalData = exports.getInvoicingSettingsView = exports.getInvoicingSettingsHubView = exports.getInvoicingSettingsFetchState = exports.getInvoicingSettings = exports.getInvoicingQboSettingsFormView = exports.getInvoicingBrandingFormView = exports.updateInvoicingSettings = exports.updateInvoicingQboSettingsDraft = exports.updateInvoicingBrandingFormDraft = exports.submitInvoicingQboSettings = exports.submitInvoicingBrandingForm = exports.saveInvoicingSettings = exports.resetSaveInvoicingSettings = exports.resetInvoicingQboSettingsDraft = exports.resetInvoicingBrandingFormDraft = exports.fetchInvoicingSettings = exports.disconnectInvoicingStripe = exports.connectInvoicingStripe = exports.getInvoicingProductById = exports.getInvoicingPlanById = exports.fetchInvoicingCatalogItemDetail = 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.updateInvoicingProducts = exports.removeInvoicingProduct = exports.updateInvoicingPlans = exports.removeInvoicingPlan = exports.mergeInvoicingPlanSubFamily = exports.getInvoicingDunningEmailPreview = exports.getInvoicingDunningCaseDetail = exports.getInvoicingDunningCaseById = exports.invalidateInvoicingDunningEmailPreview = exports.fetchInvoicingDunningEmailPreviewPage = exports.fetchInvoicingDunningCaseDetailPage = exports.fetchInvoicingDunningCaseDetail = exports.clearInvoicingDunningCaseDetailView = exports.getInvoicingDunningCaseListView = exports.INVOICING_DUNNING_CASE_COLUMNS = exports.ALL_INVOICING_DUNNING_CASE_TAB_IDS = void 0;
88
- exports.isPendingReviewAccrual = exports.isManuallyReversedAccrual = exports.isAutoReversedAccrual = exports.getExpenseAutomationActualMatchingView = exports.getExpenseAutomationActualMatchingMatchView = exports.parseActualMatchingMatchId = exports.getCloseMatchAfterUndo = exports.getActualMatchingReversalDate = exports.getActualMatchingAmount = exports.isPendingReviewRow = exports.isRenderableOneTimeAccrual = exports.isOneTimeAccrualRow = exports.isExistingTabRow = exports.isAiAccountantSchedule = exports.isAccruedScheduleRow = exports.getJEScheduleRowType = exports.getExpenseAutomationJEOneTimeAccrualDetailView = exports.getInvoicingOnboardingGateView = exports.getInvoicingConfigView = exports.updateInvoicingConfig = exports.resetInvoicingConfigActionStates = exports.fetchInvoicingConfig = exports.enableInvoicing = exports.acceptInvoicingTerms = exports.toInvoicingQboCustomerMatchingMode = exports.toInvoicingNamedOptionsByKey = exports.getInvoicingQboAccountMappingId = exports.INVOICING_QBO_CUSTOMER_MATCHING_MODES = exports.getInvoicingQboView = exports.invoicingAccountsForQboAccountTypes = exports.startInvoicingQboBackfill = exports.retryInvoicingQboSyncTask = exports.fetchInvoicingQboSyncHealth = exports.fetchInvoicingQboConnection = exports.fetchInvoicingAccountingPickers = exports.isStripeConnectedFromSettings = exports.initialInvoicingBrandingFormLocalData = exports.entityToInvoicingBrandingFormLocalData = void 0;
87
+ exports.invoicingQboSettingsLocalDataToPayload = exports.initialInvoicingQboSettingsLocalData = exports.entityToInvoicingQboSettingsLocalData = exports.getInvoicingSettingsView = exports.getInvoicingSettingsHubView = exports.getInvoicingSettingsFetchState = exports.getInvoicingSettings = exports.getInvoicingQboSettingsFormView = exports.getInvoicingBrandingFormView = exports.updateInvoicingSettings = exports.updateInvoicingQboSettingsDraft = exports.updateInvoicingBrandingFormDraft = exports.submitInvoicingQboSettings = exports.submitInvoicingBrandingForm = exports.saveInvoicingSettings = exports.resetSaveInvoicingSettings = exports.resetInvoicingQboSettingsDraft = exports.resetInvoicingBrandingFormDraft = exports.fetchInvoicingSettings = exports.disconnectInvoicingStripe = exports.connectInvoicingStripe = exports.getInvoicingProductById = exports.getLowestInvoicingPlanPricePointAmount = exports.getInvoicingPlanById = exports.fetchInvoicingCatalogItemDetail = 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.updateInvoicingProducts = exports.removeInvoicingProduct = exports.updateInvoicingPlans = exports.removeInvoicingPlan = exports.mergeInvoicingPlanSubFamily = exports.getInvoicingDunningEmailPreview = exports.getInvoicingDunningCaseDetail = exports.getInvoicingDunningCaseById = exports.invalidateInvoicingDunningEmailPreview = exports.fetchInvoicingDunningEmailPreviewPage = exports.fetchInvoicingDunningCaseDetailPage = exports.fetchInvoicingDunningCaseDetail = exports.clearInvoicingDunningCaseDetailView = exports.getInvoicingDunningCaseListView = exports.INVOICING_DUNNING_CASE_COLUMNS = exports.ALL_INVOICING_DUNNING_CASE_TAB_IDS = void 0;
88
+ exports.isPendingReviewAccrual = exports.isManuallyReversedAccrual = exports.isAutoReversedAccrual = exports.getExpenseAutomationActualMatchingView = exports.getExpenseAutomationActualMatchingMatchView = exports.parseActualMatchingMatchId = exports.getCloseMatchAfterUndo = exports.getActualMatchingReversalDate = exports.getActualMatchingAmount = exports.isPendingReviewRow = exports.isRenderableOneTimeAccrual = exports.isOneTimeAccrualRow = exports.isExistingTabRow = exports.isAiAccountantSchedule = exports.isAccruedScheduleRow = exports.getJEScheduleRowType = exports.getExpenseAutomationJEOneTimeAccrualDetailView = exports.getInvoicingOnboardingGateView = exports.getInvoicingConfigView = exports.updateInvoicingConfig = exports.resetInvoicingConfigActionStates = exports.fetchInvoicingConfig = exports.enableInvoicing = exports.acceptInvoicingTerms = exports.toInvoicingQboCustomerMatchingMode = exports.toInvoicingNamedOptionsByKey = exports.getInvoicingQboAccountMappingId = exports.INVOICING_QBO_CUSTOMER_MATCHING_MODES = exports.getInvoicingQboView = exports.invoicingAccountsForQboAccountTypes = exports.startInvoicingQboBackfill = exports.retryInvoicingQboSyncTask = exports.fetchInvoicingQboSyncHealth = exports.fetchInvoicingQboConnection = exports.fetchInvoicingAccountingPickers = exports.isStripeConnectedFromSettings = exports.initialInvoicingBrandingFormLocalData = exports.entityToInvoicingBrandingFormLocalData = exports.INVOICING_BUSINESS_ADDRESS_TYPE = void 0;
89
89
  const allowedValue_1 = require("./commonStateTypes/allowedValue");
90
90
  Object.defineProperty(exports, "isAllowedValueWithCode", { enumerable: true, get: function () { return allowedValue_1.isAllowedValueWithCode; } });
91
91
  Object.defineProperty(exports, "isAllowedValueWithID", { enumerable: true, get: function () { return allowedValue_1.isAllowedValueWithID; } });
@@ -3162,6 +3162,7 @@ var editInvoicingCatalogItemDetailViewReducer_3 = require("./view/invoicing/edit
3162
3162
  Object.defineProperty(exports, "fetchInvoicingCatalogItemDetail", { enumerable: true, get: function () { return editInvoicingCatalogItemDetailViewReducer_3.fetchInvoicingCatalogItemDetail; } });
3163
3163
  var planSelector_1 = require("./entity/invoicing/plan/planSelector");
3164
3164
  Object.defineProperty(exports, "getInvoicingPlanById", { enumerable: true, get: function () { return planSelector_1.getInvoicingPlanById; } });
3165
+ Object.defineProperty(exports, "getLowestInvoicingPlanPricePointAmount", { enumerable: true, get: function () { return planSelector_1.getLowestInvoicingPlanPricePointAmount; } });
3165
3166
  var productSelector_1 = require("./entity/invoicing/product/productSelector");
3166
3167
  Object.defineProperty(exports, "getInvoicingProductById", { enumerable: true, get: function () { return productSelector_1.getInvoicingProductById; } });
3167
3168
  // ── Invoicing: settings ───────────────────────────────────────────────────────
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zeniai/client-epic-state",
3
- "version": "5.2.45",
3
+ "version": "5.2.47",
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",