@zeniai/client-epic-state 5.2.13-betaAK0 → 5.2.13-betaAK1

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 (17) hide show
  1. package/lib/esm/index.js +1 -1
  2. package/lib/esm/view/invoicing/editInvoicingCatalogItemDetailView/editInvoicingCatalogItemDetailViewReducer.js +8 -1
  3. package/lib/esm/view/invoicing/editInvoicingCatalogItemDetailView/editInvoicingCatalogItemDetailViewSelector.js +36 -0
  4. package/lib/esm/view/invoicing/editInvoicingCatalogItemDetailView/saveInvoicingCatalogItemEpic.js +6 -2
  5. package/lib/esm/view/invoicing/invoicingCatalogItemDetailView/invoicingCatalogItemDetailViewSelector.js +2 -0
  6. package/lib/index.d.ts +3 -3
  7. package/lib/index.js +6 -5
  8. package/lib/view/invoicing/editInvoicingCatalogItemDetailView/catalogDetailEditPayload.d.ts +2 -19
  9. package/lib/view/invoicing/editInvoicingCatalogItemDetailView/editInvoicingCatalogItemDetailViewReducer.d.ts +11 -17
  10. package/lib/view/invoicing/editInvoicingCatalogItemDetailView/editInvoicingCatalogItemDetailViewReducer.js +9 -2
  11. package/lib/view/invoicing/editInvoicingCatalogItemDetailView/editInvoicingCatalogItemDetailViewSelector.d.ts +10 -1
  12. package/lib/view/invoicing/editInvoicingCatalogItemDetailView/editInvoicingCatalogItemDetailViewSelector.js +38 -1
  13. package/lib/view/invoicing/editInvoicingCatalogItemDetailView/editInvoicingCatalogItemDetailViewState.d.ts +24 -0
  14. package/lib/view/invoicing/editInvoicingCatalogItemDetailView/saveInvoicingCatalogItemEpic.js +6 -2
  15. package/lib/view/invoicing/invoicingCatalogItemDetailView/invoicingCatalogItemDetailViewSelector.d.ts +6 -0
  16. package/lib/view/invoicing/invoicingCatalogItemDetailView/invoicingCatalogItemDetailViewSelector.js +2 -0
  17. package/package.json +71 -38
package/lib/esm/index.js CHANGED
@@ -766,7 +766,7 @@ export { getInvoicingCustomerFormView } from './view/invoicing/editInvoicingCust
766
766
  export { fetchInvoicingSubscriptionFormPage, initializeInvoicingSubscriptionAddress, resetEditInvoicingSubscriptionDetailView, submitInvoicingSubscriptionForm, updateInvoicingSubscriptionFormDraft, } from './view/invoicing/editInvoicingSubscriptionDetailView/editInvoicingSubscriptionDetailViewReducer';
767
767
  export { INVOICING_SUBSCRIPTION_SHIPPING_ADDRESS_TYPE, entityToInvoicingSubscriptionFormLocalData, initialInvoicingSubscriptionFormLocalData, invoicingSubscriptionTodayIso, toInvoicingSubscriptionQuantity, } from './view/invoicing/editInvoicingSubscriptionDetailView/invoicingSubscriptionFormConfig';
768
768
  export { getEditInvoicingSubscriptionDetailViewState, getInvoicingSubscriptionFormView, } from './view/invoicing/editInvoicingSubscriptionDetailView/editInvoicingSubscriptionDetailViewSelector';
769
- export { archiveInvoicingCatalogSubFamily, createInvoicingCatalogSubFamily, resetEditInvoicingCatalogItemDetailView, saveInvoicingCatalogItem, submitInvoicingCatalogItemForm, updateInvoicingCatalogItemFormDraft, } from './view/invoicing/editInvoicingCatalogItemDetailView/editInvoicingCatalogItemDetailViewReducer';
769
+ export { archiveInvoicingCatalogSubFamily, createInvoicingCatalogSubFamily, resetEditInvoicingCatalogItemDetailView, saveInvoicingCatalogItem, submitInvoicingCatalogItemForm, updateInvoicingCatalogItemDetailEditDraft, updateInvoicingCatalogItemFormDraft, } from './view/invoicing/editInvoicingCatalogItemDetailView/editInvoicingCatalogItemDetailViewReducer';
770
770
  export { catalogDetailEditValuesToSavePayload, createSubFamilyFormToPayload, planToCatalogDetailEditValues, productToCreateSubFamilyFormValues, } from './view/invoicing/editInvoicingCatalogItemDetailView/catalogDetailEditPayload';
771
771
  export { INVOICING_CATALOG_APPLICABILITY_VALUES, INVOICING_CATALOG_PRICING_MODEL_VALUES, INVOICING_CATALOG_PRORATION_VALUES, INVOICING_CATALOG_TIER_TYPE_VALUES, blankInvoicingCatalogSubFamily, blankInvoicingCatalogTier, entityToInvoicingCatalogItemFormLocalData, invoicingProductToCatalogItemFormSubFamily, initialInvoicingCatalogItemFormLocalData, isTieredCatalogPricingModel, } from './view/invoicing/editInvoicingCatalogItemDetailView/invoicingCatalogItemFormConfig';
772
772
  export { getEditInvoicingCatalogItemDetailViewState, getInvoicingApplicableCatalogItemOptions, getInvoicingCatalogItemFormView, getSavedInvoicingCatalogItemId, getSavedInvoicingCatalogItemKind, } from './view/invoicing/editInvoicingCatalogItemDetailView/editInvoicingCatalogItemDetailViewSelector';
@@ -4,6 +4,7 @@ import { initialInvoicingCatalogItemFormLocalData } from './invoicingCatalogItem
4
4
  export const initialState = {
5
5
  fetchState: 'Not-Started',
6
6
  error: undefined,
7
+ detailEditDraftById: {},
7
8
  editDraftById: {},
8
9
  newItemDraft: { ...initialInvoicingCatalogItemFormLocalData },
9
10
  savedItemId: undefined,
@@ -25,6 +26,10 @@ const editInvoicingCatalogItemDetailView = createSlice({
25
26
  draft.newItemDraft = localData;
26
27
  }
27
28
  },
29
+ updateInvoicingCatalogItemDetailEditDraft(draft, action) {
30
+ const { id, localData } = action.payload;
31
+ draft.detailEditDraftById[id] = localData;
32
+ },
28
33
  submitInvoicingCatalogItemForm: {
29
34
  reducer(draft) {
30
35
  draft.fetchState = 'In-Progress';
@@ -66,6 +71,7 @@ const editInvoicingCatalogItemDetailView = createSlice({
66
71
  draft.error = undefined;
67
72
  draft.savedItemId = action.payload.itemId;
68
73
  draft.savedKind = action.payload.kind;
74
+ delete draft.detailEditDraftById[action.payload.itemId];
69
75
  },
70
76
  submitInvoicingCatalogItemFormFailure(draft, action) {
71
77
  draft.fetchState = 'Error';
@@ -76,6 +82,7 @@ const editInvoicingCatalogItemDetailView = createSlice({
76
82
  draft.error = undefined;
77
83
  draft.savedItemId = undefined;
78
84
  draft.savedKind = undefined;
85
+ draft.detailEditDraftById = {};
79
86
  draft.editDraftById = {};
80
87
  draft.newItemDraft = { ...initialInvoicingCatalogItemFormLocalData };
81
88
  },
@@ -86,5 +93,5 @@ const editInvoicingCatalogItemDetailView = createSlice({
86
93
  });
87
94
  },
88
95
  });
89
- export const { updateInvoicingCatalogItemFormDraft, submitInvoicingCatalogItemForm, saveInvoicingCatalogItem, createInvoicingCatalogSubFamily, archiveInvoicingCatalogSubFamily, submitInvoicingCatalogItemFormSuccess, submitInvoicingCatalogItemFormFailure, resetEditInvoicingCatalogItemDetailView, } = editInvoicingCatalogItemDetailView.actions;
96
+ export const { updateInvoicingCatalogItemDetailEditDraft, updateInvoicingCatalogItemFormDraft, submitInvoicingCatalogItemForm, saveInvoicingCatalogItem, createInvoicingCatalogSubFamily, archiveInvoicingCatalogSubFamily, submitInvoicingCatalogItemFormSuccess, submitInvoicingCatalogItemFormFailure, resetEditInvoicingCatalogItemDetailView, } = editInvoicingCatalogItemDetailView.actions;
90
97
  export default editInvoicingCatalogItemDetailView.reducer;
@@ -2,7 +2,43 @@ import { createSelector } from '@reduxjs/toolkit';
2
2
  import { getInvoicingPlanById, getInvoicingPlansByIds, } from '../../../entity/invoicing/plan/planSelector';
3
3
  import { getInvoicingConfigView, invoicingFieldHelpForGroup, } from '../invoicingConfigView/invoicingConfigViewSelector';
4
4
  import { getInvoicingQboView, isInvoicingAccountingPickerDataLoading, isInvoicingQboConnected, } from '../invoicingQboView/invoicingQboViewSelector';
5
+ import { planToCatalogDetailEditValues } from './catalogDetailEditPayload';
5
6
  import { INVOICING_CATALOG_APPLICABILITY_VALUES, INVOICING_CATALOG_PRICING_MODEL_VALUES, INVOICING_CATALOG_PRORATION_VALUES, INVOICING_CATALOG_TIER_TYPE_VALUES, entityToInvoicingCatalogItemFormLocalData, } from './invoicingCatalogItemFormConfig';
7
+ /** An unsaved item's inline-edit draft, before the record has loaded. */
8
+ export const initialCatalogDetailEditValues = () => ({
9
+ applicableItems: [],
10
+ description: '',
11
+ enabledForCheckout: true,
12
+ enabledInPortal: true,
13
+ giftClaimRedirectUrl: '',
14
+ includedInMrr: true,
15
+ isGiftable: false,
16
+ isShippable: false,
17
+ itemApplicability: 'all',
18
+ metered: false,
19
+ name: '',
20
+ productCode: '',
21
+ subFamilies: [],
22
+ unit: '',
23
+ usageCalculation: 'sum_of_usages',
24
+ });
25
+ /**
26
+ * The detail page's inline-edit form data: the stored draft once the user has
27
+ * touched the form, seeded from the loaded record until then. Memoized so the
28
+ * page receives a stable value — recomputing it per store change would reseed
29
+ * the form mid-edit and drop what the user had typed.
30
+ */
31
+ export const getInvoicingCatalogItemDetailEditLocalData = createSelector([
32
+ (state, id) => id != null
33
+ ? state.editInvoicingCatalogItemDetailViewState.detailEditDraftById[id]
34
+ : undefined,
35
+ (state, id) => id != null
36
+ ? getInvoicingPlanById(state.invoicingPlanState, id)
37
+ : undefined,
38
+ ], (storedDraft, plan) => storedDraft ??
39
+ (plan != null
40
+ ? planToCatalogDetailEditValues(plan)
41
+ : initialCatalogDetailEditValues()));
6
42
  export const getEditInvoicingCatalogItemDetailViewState = (state) => ({
7
43
  fetchState: state.editInvoicingCatalogItemDetailViewState.fetchState,
8
44
  error: state.editInvoicingCatalogItemDetailViewState.error,
@@ -1,5 +1,6 @@
1
1
  import { forkJoin, from } from 'rxjs';
2
2
  import { catchError, filter, mergeMap } from 'rxjs/operators';
3
+ import { getInvoicingPlanById } from '../../../entity/invoicing/plan/planSelector';
3
4
  import { mergeInvoicingPlanSubFamily, updateInvoicingPlans, } from '../../../entity/invoicing/plan/planReducer';
4
5
  import { updateInvoicingProducts } from '../../../entity/invoicing/product/productReducer';
5
6
  import { apiErrorSnackbarVariables } from '../../../entity/snackbar/snackbarApiError';
@@ -9,6 +10,7 @@ import { addInvoicingCatalogItem } from '../invoicingCatalogListView/invoicingCa
9
10
  import { getInvoicingCatalogAccountingLookup } from '../invoicingQboView/invoicingQboViewSelector';
10
11
  import { catalogDetailEditValuesToSavePayload, } from './catalogDetailEditPayload';
11
12
  import { localDataToSaveInvoicingCatalogItemPayload, } from './editInvoicingCatalogItemDetailViewPayload';
13
+ import { getInvoicingCatalogItemDetailEditLocalData } from './editInvoicingCatalogItemDetailViewSelector';
12
14
  import { saveInvoicingCatalogItem, submitInvoicingCatalogItemForm, submitInvoicingCatalogItemFormFailure, submitInvoicingCatalogItemFormSuccess, } from './editInvoicingCatalogItemDetailViewReducer';
13
15
  export const saveInvoicingCatalogItemEpic = (actions$, state$, zeniAPI) => actions$.pipe(filter((action) => submitInvoicingCatalogItemForm.match(action) ||
14
16
  saveInvoicingCatalogItem.match(action)), mergeMap((action) => {
@@ -21,8 +23,10 @@ export const saveInvoicingCatalogItemEpic = (actions$, state$, zeniAPI) => actio
21
23
  let data;
22
24
  let editProductUpdates;
23
25
  if (saveInvoicingCatalogItem.match(action)) {
24
- const { editValues, itemType, originalSubFamilies } = action.payload;
25
- const savePayload = catalogDetailEditValuesToSavePayload(editValues, accountingLookup, itemType, originalSubFamilies);
26
+ const plan = id != null
27
+ ? getInvoicingPlanById(state.invoicingPlanState, id)
28
+ : undefined;
29
+ const savePayload = catalogDetailEditValuesToSavePayload(getInvoicingCatalogItemDetailEditLocalData(state, id), accountingLookup, plan?.type ?? plan?.itemType, plan?.subFamilies);
26
30
  data = savePayload.planData;
27
31
  editProductUpdates = savePayload.productUpdates;
28
32
  }
@@ -1,5 +1,6 @@
1
1
  import { getInvoicingPlanById } from '../../../entity/invoicing/plan/planSelector';
2
2
  import { getInvoicingConfigView, invoicingFieldHelpForGroup, } from '../invoicingConfigView/invoicingConfigViewSelector';
3
+ import { getInvoicingCatalogItemDetailEditLocalData } from '../editInvoicingCatalogItemDetailView/editInvoicingCatalogItemDetailViewSelector';
3
4
  export const getInvoicingCatalogItemDetail = (state, _kind, id) => {
4
5
  const { error, fetchState } = state.invoicingCatalogItemDetailViewState;
5
6
  const { billingPeriodUnitOptions, catalogItemLifecycleActionOptions, catalogItemTypeOptions, catalogProductLifecycleActionOptions, catalogTierTypeOptionsByPricingModel, catalogTrialEndActionOptions, catalogTrialUnitOptions, fetchState: configFetchState, } = getInvoicingConfigView(state);
@@ -10,6 +11,7 @@ export const getInvoicingCatalogItemDetail = (state, _kind, id) => {
10
11
  catalogTierTypeOptionsByPricingModel,
11
12
  configFetchState,
12
13
  periodUnitOptions: billingPeriodUnitOptions,
14
+ editLocalData: getInvoicingCatalogItemDetailEditLocalData(state, id),
13
15
  plan: getInvoicingPlanById(state.invoicingPlanState, id),
14
16
  trialEndActionOptions: catalogTrialEndActionOptions,
15
17
  trialUnitOptions: catalogTrialUnitOptions,
package/lib/index.d.ts CHANGED
@@ -1115,11 +1115,11 @@ export type { InvoicingSubscriptionFormLocalData } from './view/invoicing/editIn
1115
1115
  export { INVOICING_SUBSCRIPTION_SHIPPING_ADDRESS_TYPE, entityToInvoicingSubscriptionFormLocalData, initialInvoicingSubscriptionFormLocalData, invoicingSubscriptionTodayIso, toInvoicingSubscriptionQuantity, } from './view/invoicing/editInvoicingSubscriptionDetailView/invoicingSubscriptionFormConfig';
1116
1116
  export { getEditInvoicingSubscriptionDetailViewState, getInvoicingSubscriptionFormView, } from './view/invoicing/editInvoicingSubscriptionDetailView/editInvoicingSubscriptionDetailViewSelector';
1117
1117
  export type { EditInvoicingSubscriptionDetailView, InvoicingSubscriptionFormView, } from './view/invoicing/editInvoicingSubscriptionDetailView/editInvoicingSubscriptionDetailViewSelector';
1118
- export { archiveInvoicingCatalogSubFamily, createInvoicingCatalogSubFamily, resetEditInvoicingCatalogItemDetailView, saveInvoicingCatalogItem, submitInvoicingCatalogItemForm, updateInvoicingCatalogItemFormDraft, } from './view/invoicing/editInvoicingCatalogItemDetailView/editInvoicingCatalogItemDetailViewReducer';
1119
- export type { ArchiveInvoicingCatalogSubFamilyPayload, CreateInvoicingCatalogSubFamilyPayload, SaveInvoicingCatalogItemPayload, SubmitInvoicingCatalogItemFormPayload, UpdateInvoicingCatalogItemFormDraftPayload, } from './view/invoicing/editInvoicingCatalogItemDetailView/editInvoicingCatalogItemDetailViewReducer';
1118
+ export { archiveInvoicingCatalogSubFamily, createInvoicingCatalogSubFamily, resetEditInvoicingCatalogItemDetailView, saveInvoicingCatalogItem, submitInvoicingCatalogItemForm, updateInvoicingCatalogItemDetailEditDraft, updateInvoicingCatalogItemFormDraft, } from './view/invoicing/editInvoicingCatalogItemDetailView/editInvoicingCatalogItemDetailViewReducer';
1119
+ export type { ArchiveInvoicingCatalogSubFamilyPayload, CreateInvoicingCatalogSubFamilyPayload, SaveInvoicingCatalogItemPayload, SubmitInvoicingCatalogItemFormPayload, UpdateInvoicingCatalogItemDetailEditDraftPayload, UpdateInvoicingCatalogItemFormDraftPayload, } from './view/invoicing/editInvoicingCatalogItemDetailView/editInvoicingCatalogItemDetailViewReducer';
1120
1120
  export type { InvoicingCatalogAccountingLookup } from './view/invoicing/editInvoicingCatalogItemDetailView/editInvoicingCatalogItemDetailViewPayload';
1121
1121
  export { catalogDetailEditValuesToSavePayload, createSubFamilyFormToPayload, planToCatalogDetailEditValues, productToCreateSubFamilyFormValues, } from './view/invoicing/editInvoicingCatalogItemDetailView/catalogDetailEditPayload';
1122
- export type { CatalogDetailEditValues, CatalogDetailProductUpdate, CatalogDetailSavePayload, CatalogDetailSubFamilyEditValues, CreateSubFamilyFormValues, } from './view/invoicing/editInvoicingCatalogItemDetailView/catalogDetailEditPayload';
1122
+ export type { CatalogDetailEditValues, CatalogDetailProductUpdate, CatalogDetailSavePayload, CreateSubFamilyFormValues, } from './view/invoicing/editInvoicingCatalogItemDetailView/catalogDetailEditPayload';
1123
1123
  export type { InvoicingCatalogItemFormLocalData, InvoicingCatalogItemFormSubFamily, InvoicingCatalogItemFormTier, } from './view/invoicing/editInvoicingCatalogItemDetailView/editInvoicingCatalogItemDetailViewState';
1124
1124
  export { INVOICING_CATALOG_APPLICABILITY_VALUES, INVOICING_CATALOG_PRICING_MODEL_VALUES, INVOICING_CATALOG_PRORATION_VALUES, INVOICING_CATALOG_TIER_TYPE_VALUES, blankInvoicingCatalogSubFamily, blankInvoicingCatalogTier, entityToInvoicingCatalogItemFormLocalData, invoicingProductToCatalogItemFormSubFamily, initialInvoicingCatalogItemFormLocalData, isTieredCatalogPricingModel, } from './view/invoicing/editInvoicingCatalogItemDetailView/invoicingCatalogItemFormConfig';
1125
1125
  export { getEditInvoicingCatalogItemDetailViewState, getInvoicingApplicableCatalogItemOptions, getInvoicingCatalogItemFormView, getSavedInvoicingCatalogItemId, getSavedInvoicingCatalogItemKind, } from './view/invoicing/editInvoicingCatalogItemDetailView/editInvoicingCatalogItemDetailViewSelector';
package/lib/index.js CHANGED
@@ -79,11 +79,11 @@ exports.CARD_POLICY_LIMIT_ROW_ID_REQUIRE_RECEIPT = exports.getManualCardPolicyFo
79
79
  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.getCardPolicyTemplateIds = exports.getCardPolicyListView = exports.getCardPolicyListFetchState = exports.getArchiveCardPolicyFetchState = exports.updateCardPolicyListFetchStatus = exports.updateArchiveCardPolicyFetchStatus = exports.prependCardPolicyTemplateIds = exports.fetchCardPolicyList = exports.archiveCardPolicy = exports.toManualCardPolicyTemplateRequestFromDraft = exports.toBulkCardPolicyTemplateRequestsFromDraft = exports.toCardPolicyTemplateRequestFromDraft = exports.applyAiCardPolicyFormDraftUpdate = 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 = void 0;
80
80
  exports.fetchCreateInvoiceFormPage = exports.createInvoice = exports.getInvoiceDetail = exports.fetchInvoiceDetail = exports.getInvoiceListView = exports.ALL_INVOICING_INVOICE_TAB_IDS = exports.updateInvoiceListFilters = exports.setInvoiceActiveTab = exports.fetchInvoiceListPage = exports.fetchInvoiceList = exports.fetchInvoiceKPIs = exports.fetchInvoiceCounts = exports.getInvoicesByIds = exports.getInvoiceById = exports.updateInvoices = exports.removeInvoice = exports.mapAuditLogEntry = exports.toAuditLogEntityRouteOption = exports.isInvoicingEntityLinkable = exports.buildInvoicingEntityPath = exports.toInvoicingDiscountLifecycleActionOption = exports.toInvoicingDiscountLifecycleAction = exports.toInvoicingCatalogProductLifecycleActionOption = exports.toInvoicingCatalogItemLifecycleActionOption = exports.toInvoicingCatalogProductLifecycleAction = exports.toInvoicingCatalogItemLifecycleAction = exports.toInvoicingSubscriptionLifecycleActionOption = exports.toInvoicingSubscriptionLifecycleAction = exports.toInvoicingDunningAction = exports.INVOICING_DISCOUNT_LIFECYCLE_ACTIONS = exports.INVOICING_CATALOG_PRODUCT_LIFECYCLE_ACTIONS = exports.INVOICING_CATALOG_ITEM_LIFECYCLE_ACTIONS = exports.INVOICING_SUBSCRIPTION_LIFECYCLE_ACTIONS = exports.INVOICING_DUNNING_ACTIONS = exports.toKycProvidedDocumentTypeFromAllowed = exports.toKycProvidedDocumentType = exports.DEFAULT_SESSION_CONFIG = exports.SessionManager = exports.getTransactionActivityLogView = 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 = void 0;
81
81
  exports.INVOICING_CUSTOMER_BILLING_ADDRESS_TYPE = exports.updateInvoicingCustomerFormDraft = exports.submitInvoicingCustomerFormSuccess = exports.submitInvoicingCustomerFormFailure = exports.submitInvoicingCustomerForm = exports.resetEditInvoicingCustomerDetailView = exports.initializeInvoicingCustomerAddress = exports.getRecordPaymentView = exports.getRecordPaymentInvoiceOptions = exports.getRecordPaymentFormView = exports.getCreateInvoiceFormView = exports.getInvoicingAuditView = exports.fetchInvoicingAuditLog = exports.getInvoicingOverview = exports.buildPeriodOptions = exports.fetchInvoicingOverview = exports.clearInvoicingOverview = exports.initialRecordPaymentFormLocalData = exports.localDataToRecordPaymentPayload = exports.localDataToInvoiceRecordPaymentBody = exports.initializeRecordPaymentDraftFromInvoice = exports.getCreateCreditNoteView = exports.getCreateCreditNoteFormView = exports.initialCreateCreditNoteFormLocalData = exports.localDataToCreateCreditNotePayload = exports.updateCreateCreditNoteFormDraft = exports.submitCreateCreditNote = exports.resetCreateCreditNote = exports.createCreditNoteSuccess = exports.createCreditNoteFailure = exports.getIssueCreditNoteView = exports.initialIssueCreditNoteFormLocalData = exports.localDataToIssueCreditNotePayload = exports.initializeIssueCreditNoteDraftFromInvoice = exports.computeIssueCreditNoteTotal = exports.updateIssueCreditNoteFormDraft = exports.submitIssueCreditNote = exports.resetIssueCreditNote = exports.issueCreditNoteSuccess = exports.issueCreditNoteFailure = exports.initializeIssueCreditNoteDraft = exports.updateRecordPaymentFormDraft = exports.submitRecordPayment = exports.initializeRecordPaymentDraft = exports.resetRecordPayment = exports.initialInvoicingCreateInvoiceFormLocalData = exports.createInvoiceFormLocalDataToRequest = exports.blankInvoicingCreateInvoiceLineItem = exports.updateInvoicingCreateInvoiceFormDraft = exports.resetCreateInvoice = void 0;
82
- exports.updateInvoicingInvoice = exports.runInvoicingInvoiceAction = 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 = 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.productToCreateSubFamilyFormValues = exports.planToCatalogDetailEditValues = exports.createSubFamilyFormToPayload = exports.catalogDetailEditValuesToSavePayload = exports.updateInvoicingCatalogItemFormDraft = exports.submitInvoicingCatalogItemForm = exports.saveInvoicingCatalogItem = exports.resetEditInvoicingCatalogItemDetailView = exports.createInvoicingCatalogSubFamily = exports.archiveInvoicingCatalogSubFamily = exports.getInvoicingSubscriptionFormView = exports.getEditInvoicingSubscriptionDetailViewState = exports.toInvoicingSubscriptionQuantity = exports.invoicingSubscriptionTodayIso = exports.initialInvoicingSubscriptionFormLocalData = exports.entityToInvoicingSubscriptionFormLocalData = exports.INVOICING_SUBSCRIPTION_SHIPPING_ADDRESS_TYPE = exports.updateInvoicingSubscriptionFormDraft = exports.submitInvoicingSubscriptionForm = exports.resetEditInvoicingSubscriptionDetailView = exports.initializeInvoicingSubscriptionAddress = exports.fetchInvoicingSubscriptionFormPage = exports.getInvoicingCustomerFormView = exports.initialInvoicingCustomerFormLocalData = exports.entityToInvoicingCustomerFormLocalData = void 0;
83
- 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.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.getInvoicingDataImportActionState = exports.uploadInvoicingMigrationFiles = exports.startInvoicingMigration = exports.rollbackInvoicingMigration = exports.retryInvoicingMigration = exports.connectInvoicingChargebee = exports.getInvoicingDataImportView = exports.setInvoicingActiveMigrationSessionId = exports.fetchInvoicingMigrationSessions = exports.fetchInvoicingMigrationSession = exports.fetchInvoicingMigrationDiagnostics = exports.fetchInvoicingDataImportStatus = exports.getInvoicingPaymentActionState = exports.runInvoicingPaymentAction = exports.getInvoicingDunningActionState = exports.runInvoicingDunningAction = exports.getInvoicingSubscriptionActionState = exports.runInvoicingSubscriptionAction = exports.getInvoicingDiscountActionState = exports.runInvoicingDiscountAction = exports.getInvoicingCatalogActionState = exports.runInvoicingCatalogProductAction = exports.runInvoicingCatalogPlanAction = exports.getInvoicingInvoiceActionState = void 0;
84
- 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 = exports.fetchInvoicingTransactionListPage = exports.fetchInvoicingTransactionList = exports.updateInvoicingTransactions = exports.removeInvoicingTransaction = exports.getInvoicingSubscriptionDetail = exports.getInvoicingSubscriptionById = 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 = void 0;
85
- exports.getInvoicingPlanById = exports.getInvoicingCatalogItemDetail = 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.fetchInvoicingDunningCaseDetail = exports.clearInvoicingDunningCaseDetailView = exports.getInvoicingDunningCaseListView = exports.INVOICING_DUNNING_CASE_COLUMNS = exports.ALL_INVOICING_DUNNING_CASE_TAB_IDS = exports.ALL_INVOICING_DUNNING_CASE_SORT_KEYS = exports.updateInvoicingDunningCaseFilters = exports.setInvoicingDunningCaseActiveTab = exports.fetchInvoicingDunningCaseListPage = exports.fetchInvoicingDunningCaseList = exports.fetchInvoicingDunningCaseCounts = exports.updateInvoicingDunningCases = exports.removeInvoicingDunningCase = exports.getInvoicingCouponDetail = 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 = void 0;
86
- 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.getInvoicingCatalogAccountingLookup = 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 = 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 = void 0;
82
+ exports.runInvoicingInvoiceAction = 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 = 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.productToCreateSubFamilyFormValues = exports.planToCatalogDetailEditValues = exports.createSubFamilyFormToPayload = exports.catalogDetailEditValuesToSavePayload = exports.updateInvoicingCatalogItemFormDraft = exports.updateInvoicingCatalogItemDetailEditDraft = exports.submitInvoicingCatalogItemForm = exports.saveInvoicingCatalogItem = exports.resetEditInvoicingCatalogItemDetailView = exports.createInvoicingCatalogSubFamily = exports.archiveInvoicingCatalogSubFamily = exports.getInvoicingSubscriptionFormView = exports.getEditInvoicingSubscriptionDetailViewState = exports.toInvoicingSubscriptionQuantity = exports.invoicingSubscriptionTodayIso = exports.initialInvoicingSubscriptionFormLocalData = exports.entityToInvoicingSubscriptionFormLocalData = exports.INVOICING_SUBSCRIPTION_SHIPPING_ADDRESS_TYPE = exports.updateInvoicingSubscriptionFormDraft = exports.submitInvoicingSubscriptionForm = exports.resetEditInvoicingSubscriptionDetailView = exports.initializeInvoicingSubscriptionAddress = exports.fetchInvoicingSubscriptionFormPage = exports.getInvoicingCustomerFormView = exports.initialInvoicingCustomerFormLocalData = exports.entityToInvoicingCustomerFormLocalData = void 0;
83
+ 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.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.getInvoicingDataImportActionState = exports.uploadInvoicingMigrationFiles = exports.startInvoicingMigration = exports.rollbackInvoicingMigration = exports.retryInvoicingMigration = exports.connectInvoicingChargebee = exports.getInvoicingDataImportView = exports.setInvoicingActiveMigrationSessionId = exports.fetchInvoicingMigrationSessions = exports.fetchInvoicingMigrationSession = exports.fetchInvoicingMigrationDiagnostics = exports.fetchInvoicingDataImportStatus = exports.getInvoicingPaymentActionState = exports.runInvoicingPaymentAction = exports.getInvoicingDunningActionState = exports.runInvoicingDunningAction = exports.getInvoicingSubscriptionActionState = exports.runInvoicingSubscriptionAction = exports.getInvoicingDiscountActionState = exports.runInvoicingDiscountAction = exports.getInvoicingCatalogActionState = exports.runInvoicingCatalogProductAction = exports.runInvoicingCatalogPlanAction = exports.getInvoicingInvoiceActionState = exports.updateInvoicingInvoice = void 0;
84
+ 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 = exports.fetchInvoicingTransactionListPage = exports.fetchInvoicingTransactionList = exports.updateInvoicingTransactions = exports.removeInvoicingTransaction = exports.getInvoicingSubscriptionDetail = exports.getInvoicingSubscriptionById = 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 = void 0;
85
+ exports.getInvoicingCatalogItemDetail = 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.fetchInvoicingDunningCaseDetail = exports.clearInvoicingDunningCaseDetailView = exports.getInvoicingDunningCaseListView = exports.INVOICING_DUNNING_CASE_COLUMNS = exports.ALL_INVOICING_DUNNING_CASE_TAB_IDS = exports.ALL_INVOICING_DUNNING_CASE_SORT_KEYS = exports.updateInvoicingDunningCaseFilters = exports.setInvoicingDunningCaseActiveTab = exports.fetchInvoicingDunningCaseListPage = exports.fetchInvoicingDunningCaseList = exports.fetchInvoicingDunningCaseCounts = exports.updateInvoicingDunningCases = exports.removeInvoicingDunningCase = exports.getInvoicingCouponDetail = 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 = void 0;
86
+ 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.getInvoicingCatalogAccountingLookup = 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 = 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 = void 0;
87
87
  const allowedValue_1 = require("./commonStateTypes/allowedValue");
88
88
  Object.defineProperty(exports, "isAllowedValueWithCode", { enumerable: true, get: function () { return allowedValue_1.isAllowedValueWithCode; } });
89
89
  Object.defineProperty(exports, "isAllowedValueWithID", { enumerable: true, get: function () { return allowedValue_1.isAllowedValueWithID; } });
@@ -2825,6 +2825,7 @@ Object.defineProperty(exports, "createInvoicingCatalogSubFamily", { enumerable:
2825
2825
  Object.defineProperty(exports, "resetEditInvoicingCatalogItemDetailView", { enumerable: true, get: function () { return editInvoicingCatalogItemDetailViewReducer_1.resetEditInvoicingCatalogItemDetailView; } });
2826
2826
  Object.defineProperty(exports, "saveInvoicingCatalogItem", { enumerable: true, get: function () { return editInvoicingCatalogItemDetailViewReducer_1.saveInvoicingCatalogItem; } });
2827
2827
  Object.defineProperty(exports, "submitInvoicingCatalogItemForm", { enumerable: true, get: function () { return editInvoicingCatalogItemDetailViewReducer_1.submitInvoicingCatalogItemForm; } });
2828
+ Object.defineProperty(exports, "updateInvoicingCatalogItemDetailEditDraft", { enumerable: true, get: function () { return editInvoicingCatalogItemDetailViewReducer_1.updateInvoicingCatalogItemDetailEditDraft; } });
2828
2829
  Object.defineProperty(exports, "updateInvoicingCatalogItemFormDraft", { enumerable: true, get: function () { return editInvoicingCatalogItemDetailViewReducer_1.updateInvoicingCatalogItemFormDraft; } });
2829
2830
  var catalogDetailEditPayload_1 = require("./view/invoicing/editInvoicingCatalogItemDetailView/catalogDetailEditPayload");
2830
2831
  Object.defineProperty(exports, "catalogDetailEditValuesToSavePayload", { enumerable: true, get: function () { return catalogDetailEditPayload_1.catalogDetailEditValuesToSavePayload; } });
@@ -2,25 +2,8 @@ import { Amount } from '../../../commonStateTypes/amount';
2
2
  import type { InvoicingPlan } from '../../../entity/invoicing/plan/planState';
3
3
  import type { InvoicingProduct } from '../../../entity/invoicing/product/productState';
4
4
  import { type InvoicingCatalogAccountingLookup } from './editInvoicingCatalogItemDetailViewPayload';
5
- import type { InvoicingCatalogItemFormSubFamily, InvoicingCatalogItemFormTier } from './editInvoicingCatalogItemDetailViewState';
6
- export type CatalogDetailSubFamilyEditValues = InvoicingCatalogItemFormSubFamily;
7
- export interface CatalogDetailEditValues {
8
- applicableItems: string[];
9
- description: string;
10
- enabledForCheckout: boolean;
11
- enabledInPortal: boolean;
12
- giftClaimRedirectUrl: string;
13
- includedInMrr: boolean;
14
- isGiftable: boolean;
15
- isShippable: boolean;
16
- itemApplicability: string;
17
- metered: boolean;
18
- name: string;
19
- productCode: string;
20
- subFamilies: CatalogDetailSubFamilyEditValues[];
21
- unit: string;
22
- usageCalculation: string;
23
- }
5
+ import type { CatalogDetailEditValues, InvoicingCatalogItemFormTier } from './editInvoicingCatalogItemDetailViewState';
6
+ export type { CatalogDetailEditValues } from './editInvoicingCatalogItemDetailViewState';
24
7
  export interface CatalogDetailProductUpdate {
25
8
  data: Record<string, unknown>;
26
9
  id: string;
@@ -1,9 +1,8 @@
1
1
  import { ID } from '../../../commonStateTypes/common';
2
- import type { InvoicingProduct } from '../../../entity/invoicing/product/productState';
3
2
  import { ZeniAPIStatus } from '../../../responsePayload';
4
3
  import { InvoicingCatalogItemKind } from '../invoicingCatalogItemDetailView/invoicingCatalogItemDetailViewState';
5
- import type { CatalogDetailEditValues, CreateSubFamilyFormValues } from './catalogDetailEditPayload';
6
- import { EditInvoicingCatalogItemDetailViewState, InvoicingCatalogItemFormLocalData } from './editInvoicingCatalogItemDetailViewState';
4
+ import type { CreateSubFamilyFormValues } from './catalogDetailEditPayload';
5
+ import { type CatalogDetailEditValues, EditInvoicingCatalogItemDetailViewState, InvoicingCatalogItemFormLocalData } from './editInvoicingCatalogItemDetailViewState';
7
6
  /** Push the full form draft into CES (edit tree when `id` is present). */
8
7
  export interface UpdateInvoicingCatalogItemFormDraftPayload {
9
8
  localData: InvoicingCatalogItemFormLocalData;
@@ -13,24 +12,19 @@ export interface UpdateInvoicingCatalogItemFormDraftPayload {
13
12
  export interface SubmitInvoicingCatalogItemFormPayload {
14
13
  id?: ID;
15
14
  }
15
+ /** Push the detail page's inline-edit draft into CES. */
16
+ export interface UpdateInvoicingCatalogItemDetailEditDraftPayload {
17
+ id: ID;
18
+ localData: CatalogDetailEditValues;
19
+ }
16
20
  /**
17
- * Data-based save used by the catalog detail-page inline edit (which builds its
18
- * own partial payload). The create/edit form flow uses the draft-based
19
- * `submitInvoicingCatalogItemForm` instead.
21
+ * Save the catalog detail page's inline edit. Carries no form data: the draft,
22
+ * the saved price points and the item type all come off state in the epic, so
23
+ * the page never has to hold or forward them.
20
24
  */
21
25
  export interface SaveInvoicingCatalogItemPayload {
22
- /**
23
- * The detail page's edit form values. The epic builds the parent body and the
24
- * per-price-point updates from them, so it can resolve a picked account or
25
- * class to the record the request carries — a page cannot.
26
- */
27
- editValues: CatalogDetailEditValues;
28
26
  kind: InvoicingCatalogItemKind;
29
27
  id?: ID;
30
- /** The catalog item's type, for the price-point bodies. */
31
- itemType?: string;
32
- /** The saved price points, so only changed fields are sent. */
33
- originalSubFamilies?: readonly InvoicingProduct[];
34
28
  }
35
29
  export interface CreateInvoicingCatalogSubFamilyPayload {
36
30
  itemType: string;
@@ -47,7 +41,7 @@ export interface ArchiveInvoicingCatalogSubFamilyPayload {
47
41
  subFamilyId: ID;
48
42
  }
49
43
  export declare const initialState: EditInvoicingCatalogItemDetailViewState;
50
- export declare const updateInvoicingCatalogItemFormDraft: import("@reduxjs/toolkit").ActionCreatorWithPayload<UpdateInvoicingCatalogItemFormDraftPayload, "editInvoicingCatalogItemDetailView/updateInvoicingCatalogItemFormDraft">, submitInvoicingCatalogItemForm: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[payload: SubmitInvoicingCatalogItemFormPayload], SubmitInvoicingCatalogItemFormPayload, "editInvoicingCatalogItemDetailView/submitInvoicingCatalogItemForm", never, never>, saveInvoicingCatalogItem: import("@reduxjs/toolkit").ActionCreatorWithPayload<SaveInvoicingCatalogItemPayload, "editInvoicingCatalogItemDetailView/saveInvoicingCatalogItem">, createInvoicingCatalogSubFamily: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[payload: CreateInvoicingCatalogSubFamilyPayload], CreateInvoicingCatalogSubFamilyPayload, "editInvoicingCatalogItemDetailView/createInvoicingCatalogSubFamily", never, never>, archiveInvoicingCatalogSubFamily: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[payload: ArchiveInvoicingCatalogSubFamilyPayload], ArchiveInvoicingCatalogSubFamilyPayload, "editInvoicingCatalogItemDetailView/archiveInvoicingCatalogSubFamily", never, never>, submitInvoicingCatalogItemFormSuccess: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
44
+ export declare const updateInvoicingCatalogItemDetailEditDraft: import("@reduxjs/toolkit").ActionCreatorWithPayload<UpdateInvoicingCatalogItemDetailEditDraftPayload, "editInvoicingCatalogItemDetailView/updateInvoicingCatalogItemDetailEditDraft">, updateInvoicingCatalogItemFormDraft: import("@reduxjs/toolkit").ActionCreatorWithPayload<UpdateInvoicingCatalogItemFormDraftPayload, "editInvoicingCatalogItemDetailView/updateInvoicingCatalogItemFormDraft">, submitInvoicingCatalogItemForm: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[payload: SubmitInvoicingCatalogItemFormPayload], SubmitInvoicingCatalogItemFormPayload, "editInvoicingCatalogItemDetailView/submitInvoicingCatalogItemForm", never, never>, saveInvoicingCatalogItem: import("@reduxjs/toolkit").ActionCreatorWithPayload<SaveInvoicingCatalogItemPayload, "editInvoicingCatalogItemDetailView/saveInvoicingCatalogItem">, createInvoicingCatalogSubFamily: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[payload: CreateInvoicingCatalogSubFamilyPayload], CreateInvoicingCatalogSubFamilyPayload, "editInvoicingCatalogItemDetailView/createInvoicingCatalogSubFamily", never, never>, archiveInvoicingCatalogSubFamily: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[payload: ArchiveInvoicingCatalogSubFamilyPayload], ArchiveInvoicingCatalogSubFamilyPayload, "editInvoicingCatalogItemDetailView/archiveInvoicingCatalogSubFamily", never, never>, submitInvoicingCatalogItemFormSuccess: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
51
45
  itemId: ID;
52
46
  kind: InvoicingCatalogItemKind;
53
47
  }, "editInvoicingCatalogItemDetailView/submitInvoicingCatalogItemFormSuccess">, submitInvoicingCatalogItemFormFailure: import("@reduxjs/toolkit").ActionCreatorWithPayload<ZeniAPIStatus<Record<string, unknown>>, "editInvoicingCatalogItemDetailView/submitInvoicingCatalogItemFormFailure">, resetEditInvoicingCatalogItemDetailView: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"editInvoicingCatalogItemDetailView/resetEditInvoicingCatalogItemDetailView">;
@@ -1,13 +1,14 @@
1
1
  "use strict";
2
2
  var _a;
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.resetEditInvoicingCatalogItemDetailView = exports.submitInvoicingCatalogItemFormFailure = exports.submitInvoicingCatalogItemFormSuccess = exports.archiveInvoicingCatalogSubFamily = exports.createInvoicingCatalogSubFamily = exports.saveInvoicingCatalogItem = exports.submitInvoicingCatalogItemForm = exports.updateInvoicingCatalogItemFormDraft = exports.initialState = void 0;
4
+ exports.resetEditInvoicingCatalogItemDetailView = exports.submitInvoicingCatalogItemFormFailure = exports.submitInvoicingCatalogItemFormSuccess = exports.archiveInvoicingCatalogSubFamily = exports.createInvoicingCatalogSubFamily = exports.saveInvoicingCatalogItem = exports.submitInvoicingCatalogItemForm = exports.updateInvoicingCatalogItemFormDraft = exports.updateInvoicingCatalogItemDetailEditDraft = exports.initialState = void 0;
5
5
  const toolkit_1 = require("@reduxjs/toolkit");
6
6
  const rootActions_1 = require("../../../rootActions");
7
7
  const invoicingCatalogItemFormConfig_1 = require("./invoicingCatalogItemFormConfig");
8
8
  exports.initialState = {
9
9
  fetchState: 'Not-Started',
10
10
  error: undefined,
11
+ detailEditDraftById: {},
11
12
  editDraftById: {},
12
13
  newItemDraft: { ...invoicingCatalogItemFormConfig_1.initialInvoicingCatalogItemFormLocalData },
13
14
  savedItemId: undefined,
@@ -29,6 +30,10 @@ const editInvoicingCatalogItemDetailView = (0, toolkit_1.createSlice)({
29
30
  draft.newItemDraft = localData;
30
31
  }
31
32
  },
33
+ updateInvoicingCatalogItemDetailEditDraft(draft, action) {
34
+ const { id, localData } = action.payload;
35
+ draft.detailEditDraftById[id] = localData;
36
+ },
32
37
  submitInvoicingCatalogItemForm: {
33
38
  reducer(draft) {
34
39
  draft.fetchState = 'In-Progress';
@@ -70,6 +75,7 @@ const editInvoicingCatalogItemDetailView = (0, toolkit_1.createSlice)({
70
75
  draft.error = undefined;
71
76
  draft.savedItemId = action.payload.itemId;
72
77
  draft.savedKind = action.payload.kind;
78
+ delete draft.detailEditDraftById[action.payload.itemId];
73
79
  },
74
80
  submitInvoicingCatalogItemFormFailure(draft, action) {
75
81
  draft.fetchState = 'Error';
@@ -80,6 +86,7 @@ const editInvoicingCatalogItemDetailView = (0, toolkit_1.createSlice)({
80
86
  draft.error = undefined;
81
87
  draft.savedItemId = undefined;
82
88
  draft.savedKind = undefined;
89
+ draft.detailEditDraftById = {};
83
90
  draft.editDraftById = {};
84
91
  draft.newItemDraft = { ...invoicingCatalogItemFormConfig_1.initialInvoicingCatalogItemFormLocalData };
85
92
  },
@@ -90,5 +97,5 @@ const editInvoicingCatalogItemDetailView = (0, toolkit_1.createSlice)({
90
97
  });
91
98
  },
92
99
  });
93
- _a = editInvoicingCatalogItemDetailView.actions, exports.updateInvoicingCatalogItemFormDraft = _a.updateInvoicingCatalogItemFormDraft, exports.submitInvoicingCatalogItemForm = _a.submitInvoicingCatalogItemForm, exports.saveInvoicingCatalogItem = _a.saveInvoicingCatalogItem, exports.createInvoicingCatalogSubFamily = _a.createInvoicingCatalogSubFamily, exports.archiveInvoicingCatalogSubFamily = _a.archiveInvoicingCatalogSubFamily, exports.submitInvoicingCatalogItemFormSuccess = _a.submitInvoicingCatalogItemFormSuccess, exports.submitInvoicingCatalogItemFormFailure = _a.submitInvoicingCatalogItemFormFailure, exports.resetEditInvoicingCatalogItemDetailView = _a.resetEditInvoicingCatalogItemDetailView;
100
+ _a = editInvoicingCatalogItemDetailView.actions, exports.updateInvoicingCatalogItemDetailEditDraft = _a.updateInvoicingCatalogItemDetailEditDraft, exports.updateInvoicingCatalogItemFormDraft = _a.updateInvoicingCatalogItemFormDraft, exports.submitInvoicingCatalogItemForm = _a.submitInvoicingCatalogItemForm, exports.saveInvoicingCatalogItem = _a.saveInvoicingCatalogItem, exports.createInvoicingCatalogSubFamily = _a.createInvoicingCatalogSubFamily, exports.archiveInvoicingCatalogSubFamily = _a.archiveInvoicingCatalogSubFamily, exports.submitInvoicingCatalogItemFormSuccess = _a.submitInvoicingCatalogItemFormSuccess, exports.submitInvoicingCatalogItemFormFailure = _a.submitInvoicingCatalogItemFormFailure, exports.resetEditInvoicingCatalogItemDetailView = _a.resetEditInvoicingCatalogItemDetailView;
94
101
  exports.default = editInvoicingCatalogItemDetailView.reducer;
@@ -6,7 +6,16 @@ import { InvoicingFieldHelpByCode, InvoicingNamedOption, InvoicingNamedOptionsBy
6
6
  import { InvoicingPlan } from '../../../entity/invoicing/plan/planState';
7
7
  import { RootState } from '../../../rootStateTypes';
8
8
  import { InvoicingCatalogItemKind } from '../invoicingCatalogItemDetailView/invoicingCatalogItemDetailViewState';
9
- import { InvoicingCatalogItemFormLocalData } from './editInvoicingCatalogItemDetailViewState';
9
+ import { type CatalogDetailEditValues, InvoicingCatalogItemFormLocalData } from './editInvoicingCatalogItemDetailViewState';
10
+ /** An unsaved item's inline-edit draft, before the record has loaded. */
11
+ export declare const initialCatalogDetailEditValues: () => CatalogDetailEditValues;
12
+ /**
13
+ * The detail page's inline-edit form data: the stored draft once the user has
14
+ * touched the form, seeded from the loaded record until then. Memoized so the
15
+ * page receives a stable value — recomputing it per store change would reseed
16
+ * the form mid-edit and drop what the user had typed.
17
+ */
18
+ export declare const getInvoicingCatalogItemDetailEditLocalData: (state: RootState, id: ID | undefined) => CatalogDetailEditValues;
10
19
  export declare const getEditInvoicingCatalogItemDetailViewState: (state: RootState) => FetchStateAndError;
11
20
  export declare const getSavedInvoicingCatalogItemId: (state: RootState) => ID | undefined;
12
21
  export declare const getSavedInvoicingCatalogItemKind: (state: RootState) => InvoicingCatalogItemKind | undefined;
@@ -1,11 +1,48 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getInvoicingCatalogItemFormView = exports.getInvoicingApplicableCatalogItemOptions = exports.getSavedInvoicingCatalogItemKind = exports.getSavedInvoicingCatalogItemId = exports.getEditInvoicingCatalogItemDetailViewState = void 0;
3
+ exports.getInvoicingCatalogItemFormView = exports.getInvoicingApplicableCatalogItemOptions = exports.getSavedInvoicingCatalogItemKind = exports.getSavedInvoicingCatalogItemId = exports.getEditInvoicingCatalogItemDetailViewState = exports.getInvoicingCatalogItemDetailEditLocalData = exports.initialCatalogDetailEditValues = void 0;
4
4
  const toolkit_1 = require("@reduxjs/toolkit");
5
5
  const planSelector_1 = require("../../../entity/invoicing/plan/planSelector");
6
6
  const invoicingConfigViewSelector_1 = require("../invoicingConfigView/invoicingConfigViewSelector");
7
7
  const invoicingQboViewSelector_1 = require("../invoicingQboView/invoicingQboViewSelector");
8
+ const catalogDetailEditPayload_1 = require("./catalogDetailEditPayload");
8
9
  const invoicingCatalogItemFormConfig_1 = require("./invoicingCatalogItemFormConfig");
10
+ /** An unsaved item's inline-edit draft, before the record has loaded. */
11
+ const initialCatalogDetailEditValues = () => ({
12
+ applicableItems: [],
13
+ description: '',
14
+ enabledForCheckout: true,
15
+ enabledInPortal: true,
16
+ giftClaimRedirectUrl: '',
17
+ includedInMrr: true,
18
+ isGiftable: false,
19
+ isShippable: false,
20
+ itemApplicability: 'all',
21
+ metered: false,
22
+ name: '',
23
+ productCode: '',
24
+ subFamilies: [],
25
+ unit: '',
26
+ usageCalculation: 'sum_of_usages',
27
+ });
28
+ exports.initialCatalogDetailEditValues = initialCatalogDetailEditValues;
29
+ /**
30
+ * The detail page's inline-edit form data: the stored draft once the user has
31
+ * touched the form, seeded from the loaded record until then. Memoized so the
32
+ * page receives a stable value — recomputing it per store change would reseed
33
+ * the form mid-edit and drop what the user had typed.
34
+ */
35
+ exports.getInvoicingCatalogItemDetailEditLocalData = (0, toolkit_1.createSelector)([
36
+ (state, id) => id != null
37
+ ? state.editInvoicingCatalogItemDetailViewState.detailEditDraftById[id]
38
+ : undefined,
39
+ (state, id) => id != null
40
+ ? (0, planSelector_1.getInvoicingPlanById)(state.invoicingPlanState, id)
41
+ : undefined,
42
+ ], (storedDraft, plan) => storedDraft ??
43
+ (plan != null
44
+ ? (0, catalogDetailEditPayload_1.planToCatalogDetailEditValues)(plan)
45
+ : (0, exports.initialCatalogDetailEditValues)()));
9
46
  const getEditInvoicingCatalogItemDetailViewState = (state) => ({
10
47
  fetchState: state.editInvoicingCatalogItemDetailViewState.fetchState,
11
48
  error: state.editInvoicingCatalogItemDetailViewState.error,
@@ -55,7 +55,31 @@ export interface InvoicingCatalogItemFormLocalData {
55
55
  subFamilies: InvoicingCatalogItemFormSubFamily[];
56
56
  unit: string;
57
57
  }
58
+ /**
59
+ * Draft form state for the detail page's inline edit. Separate from
60
+ * {@link InvoicingCatalogItemFormLocalData}: the inline editor exposes the
61
+ * portal/checkout/gifting fields the create form does not.
62
+ */
63
+ export interface CatalogDetailEditValues {
64
+ applicableItems: string[];
65
+ description: string;
66
+ enabledForCheckout: boolean;
67
+ enabledInPortal: boolean;
68
+ giftClaimRedirectUrl: string;
69
+ includedInMrr: boolean;
70
+ isGiftable: boolean;
71
+ isShippable: boolean;
72
+ itemApplicability: string;
73
+ metered: boolean;
74
+ name: string;
75
+ productCode: string;
76
+ subFamilies: InvoicingCatalogItemFormSubFamily[];
77
+ unit: string;
78
+ usageCalculation: string;
79
+ }
58
80
  export interface EditInvoicingCatalogItemDetailViewState extends FetchedState {
81
+ /** Inline-edit drafts, keyed by catalog item id. */
82
+ detailEditDraftById: Record<ID, CatalogDetailEditValues>;
59
83
  editDraftById: Record<ID, InvoicingCatalogItemFormLocalData>;
60
84
  newItemDraft: InvoicingCatalogItemFormLocalData;
61
85
  savedItemId?: ID;
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.saveInvoicingCatalogItemEpic = void 0;
4
4
  const rxjs_1 = require("rxjs");
5
5
  const operators_1 = require("rxjs/operators");
6
+ const planSelector_1 = require("../../../entity/invoicing/plan/planSelector");
6
7
  const planReducer_1 = require("../../../entity/invoicing/plan/planReducer");
7
8
  const productReducer_1 = require("../../../entity/invoicing/product/productReducer");
8
9
  const snackbarApiError_1 = require("../../../entity/snackbar/snackbarApiError");
@@ -12,6 +13,7 @@ const invoicingCatalogListViewReducer_1 = require("../invoicingCatalogListView/i
12
13
  const invoicingQboViewSelector_1 = require("../invoicingQboView/invoicingQboViewSelector");
13
14
  const catalogDetailEditPayload_1 = require("./catalogDetailEditPayload");
14
15
  const editInvoicingCatalogItemDetailViewPayload_1 = require("./editInvoicingCatalogItemDetailViewPayload");
16
+ const editInvoicingCatalogItemDetailViewSelector_1 = require("./editInvoicingCatalogItemDetailViewSelector");
15
17
  const editInvoicingCatalogItemDetailViewReducer_1 = require("./editInvoicingCatalogItemDetailViewReducer");
16
18
  const saveInvoicingCatalogItemEpic = (actions$, state$, zeniAPI) => actions$.pipe((0, operators_1.filter)((action) => editInvoicingCatalogItemDetailViewReducer_1.submitInvoicingCatalogItemForm.match(action) ||
17
19
  editInvoicingCatalogItemDetailViewReducer_1.saveInvoicingCatalogItem.match(action)), (0, operators_1.mergeMap)((action) => {
@@ -24,8 +26,10 @@ const saveInvoicingCatalogItemEpic = (actions$, state$, zeniAPI) => actions$.pip
24
26
  let data;
25
27
  let editProductUpdates;
26
28
  if (editInvoicingCatalogItemDetailViewReducer_1.saveInvoicingCatalogItem.match(action)) {
27
- const { editValues, itemType, originalSubFamilies } = action.payload;
28
- const savePayload = (0, catalogDetailEditPayload_1.catalogDetailEditValuesToSavePayload)(editValues, accountingLookup, itemType, originalSubFamilies);
29
+ const plan = id != null
30
+ ? (0, planSelector_1.getInvoicingPlanById)(state.invoicingPlanState, id)
31
+ : undefined;
32
+ const savePayload = (0, catalogDetailEditPayload_1.catalogDetailEditValuesToSavePayload)((0, editInvoicingCatalogItemDetailViewSelector_1.getInvoicingCatalogItemDetailEditLocalData)(state, id), accountingLookup, plan?.type ?? plan?.itemType, plan?.subFamilies);
29
33
  data = savePayload.planData;
30
34
  editProductUpdates = savePayload.productUpdates;
31
35
  }
@@ -3,6 +3,7 @@ import { SelectorView } from '../../../commonStateTypes/viewAndReport/viewAndRep
3
3
  import { InvoicingCatalogItemLifecycleAction, InvoicingCatalogLifecycleActionOption, InvoicingCatalogProductLifecycleAction, InvoicingFieldHelpByCode, InvoicingNamedOption, InvoicingNamedOptionsByKey } from '../../../entity/invoicing/invoicingCommonPayload';
4
4
  import { InvoicingPlan } from '../../../entity/invoicing/plan/planState';
5
5
  import { RootState } from '../../../rootStateTypes';
6
+ import type { CatalogDetailEditValues } from '../editInvoicingCatalogItemDetailView/editInvoicingCatalogItemDetailViewState';
6
7
  import { InvoicingCatalogItemKind } from './invoicingCatalogItemDetailViewState';
7
8
  /**
8
9
  * Read-only view for the catalog item (plan or product) detail page. One screen
@@ -20,6 +21,11 @@ export interface InvoicingCatalogItemDetailView extends SelectorView {
20
21
  catalogItemLifecycleActionOptions: InvoicingCatalogLifecycleActionOption<InvoicingCatalogItemLifecycleAction>[];
21
22
  catalogProductLifecycleActionOptions: InvoicingCatalogLifecycleActionOption<InvoicingCatalogProductLifecycleAction>[];
22
23
  configFetchState: FetchState;
24
+ /**
25
+ * The inline editor's form data, seeded from the loaded record and updated on
26
+ * every change, so the page renders from CES rather than from its own reset.
27
+ */
28
+ editLocalData: CatalogDetailEditValues;
23
29
  /**
24
30
  * Backend help copy for this screen's field group, keyed by field code.
25
31
  * Folded in here so the screen never reaches for the config view itself.
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getInvoicingCatalogItemDetail = void 0;
4
4
  const planSelector_1 = require("../../../entity/invoicing/plan/planSelector");
5
5
  const invoicingConfigViewSelector_1 = require("../invoicingConfigView/invoicingConfigViewSelector");
6
+ const editInvoicingCatalogItemDetailViewSelector_1 = require("../editInvoicingCatalogItemDetailView/editInvoicingCatalogItemDetailViewSelector");
6
7
  const getInvoicingCatalogItemDetail = (state, _kind, id) => {
7
8
  const { error, fetchState } = state.invoicingCatalogItemDetailViewState;
8
9
  const { billingPeriodUnitOptions, catalogItemLifecycleActionOptions, catalogItemTypeOptions, catalogProductLifecycleActionOptions, catalogTierTypeOptionsByPricingModel, catalogTrialEndActionOptions, catalogTrialUnitOptions, fetchState: configFetchState, } = (0, invoicingConfigViewSelector_1.getInvoicingConfigView)(state);
@@ -13,6 +14,7 @@ const getInvoicingCatalogItemDetail = (state, _kind, id) => {
13
14
  catalogTierTypeOptionsByPricingModel,
14
15
  configFetchState,
15
16
  periodUnitOptions: billingPeriodUnitOptions,
17
+ editLocalData: (0, editInvoicingCatalogItemDetailViewSelector_1.getInvoicingCatalogItemDetailEditLocalData)(state, id),
16
18
  plan: (0, planSelector_1.getInvoicingPlanById)(state.invoicingPlanState, id),
17
19
  trialEndActionOptions: catalogTrialEndActionOptions,
18
20
  trialUnitOptions: catalogTrialUnitOptions,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zeniai/client-epic-state",
3
- "version": "5.2.13-betaAK0",
3
+ "version": "5.2.13-betaAK1",
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
- "scripts": {
104
- "clean": "rimraf lib",
105
- "test:typecheck": "echo 'Typechecking test files...' && NODE_OPTIONS=--max-old-space-size=4096 time tsc -p tsconfig.typecheck.json",
106
- "test:typecheck-modified-files": "chmod +x ./scripts/tsc-modified-files.sh && SINCE_DAYS=30 ./scripts/tsc-modified-files.sh master tsconfig.typecheck.json",
107
- "test:typecheck-mocks": "echo 'Typechecking mock files...' && NODE_OPTIONS=--max-old-space-size=4096 time tsc -p tsconfig.mocks.json",
108
- "test:typecheck-mocks-modified-files": "chmod +x ./scripts/tsc-modified-files.sh && SINCE_DAYS=30 ./scripts/tsc-modified-files.sh master tsconfig.mocks.json",
109
- "test": "pnpm lint-modified-files && pnpm test:typecheck-modified-files && pnpm test:typecheck-mocks-modified-files && vitest run --typecheck",
110
- "test:full": "pnpm test:typecheck-modified-files && pnpm test:typecheck-mocks-modified-files && vitest run --typecheck",
111
- "lint": "eslint . --ext .js,.jsx,.ts,.tsx --max-warnings 0 --fix",
112
- "lint-modified-files": "chmod +x ./scripts/lint-modified-files.sh && ./scripts/lint-modified-files.sh",
113
- "lint:fix-modified-files": "chmod +x ./scripts/lint-modified-files.sh && LINT_FIX=true ./scripts/lint-modified-files.sh",
114
- "tsc-modified-files": "chmod +x ./scripts/tsc-modified-files.sh && ./scripts/tsc-modified-files.sh",
115
- "typecheck": "tsc --noEmit",
116
- "circular-dependency": "madge --circular --extensions ts ./src",
117
- "circular-dependency-modified-files": "chmod +x ./scripts/circular-dependency-modified-files.sh && ./scripts/circular-dependency-modified-files.sh",
118
- "build": "chmod +x ./scripts/run_build.sh && ./scripts/run_build.sh && rimraf \"lib/**/__mocks__\" \"lib/**/__testHelpers__\"",
119
- "only-build": "eslint . --ext .js,.jsx,.ts,.tsx && time tsc && tsc -p tsconfig.esm.json && rimraf \"lib/**/__mocks__\" \"lib/**/__testHelpers__\"",
120
- "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__\"",
121
- "format": "prettier --write --ignore-unknown \"src/**/*\" && pnpm lint",
122
- "format-watch": "bash ./scripts/run-format-watch.sh",
123
- "check-version": "node ./scripts/check_version.js",
124
- "version": "git add -A src",
125
- "postversion": "git push && git push --tags",
126
- "check-dependencies": "node ./scripts/check_dependencies.js",
127
- "clean-overrides": "node ./scripts/clean_overrides.js",
128
- "create-or-update-release-branch": "chmod +x ./scripts/create_or_update_release_branch.sh && ./scripts/create_or_update_release_branch.sh",
129
- "bump-versions-master": "chmod +x ./scripts/bump_versions_master.sh && ./scripts/bump_versions_master.sh",
130
- "bump-versions-beta": "chmod +x ./scripts/bump_versions_beta.sh && ./scripts/bump_versions_beta.sh",
131
- "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",
132
- "send-release-notes": "chmod +x ./scripts/send_release_notes.sh && ./scripts/send_release_notes.sh",
133
- "update-slack-group-topic": "chmod +x ./scripts/update-slack-group-topic.sh && ./scripts/update-slack-group-topic.sh",
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
+ }