@zeniai/client-epic-state 5.1.98 → 5.2.0

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 (150) hide show
  1. package/lib/commonStateTypes/accountView/nestedAccountID.d.ts +0 -3
  2. package/lib/commonStateTypes/accountView/nestedAccountID.js +1 -4
  3. package/lib/commonStateTypes/coaBalance/coaBalance.d.ts +0 -5
  4. package/lib/commonStateTypes/timePeriod.d.ts +0 -2
  5. package/lib/commonStateTypes/timePeriod.js +1 -6
  6. package/lib/entity/invoicing/invoicingCommonPayload.d.ts +12 -0
  7. package/lib/entity/invoicing/invoicingCommonPayload.js +18 -0
  8. package/lib/entity/invoicing/invoicingTransaction/invoicingTransactionPayload.d.ts +1 -1
  9. package/lib/entity/toastNotification/epic/pushToastNotificationEpic.d.ts +0 -1
  10. package/lib/entity/toastNotification/epic/pushToastNotificationEpic.js +0 -1
  11. package/lib/entity/transaction/toSupportedTransaction.d.ts +1 -1
  12. package/lib/entity/transaction/toSupportedTransaction.js +0 -1
  13. package/lib/esm/commonStateTypes/accountView/nestedAccountID.js +0 -3
  14. package/lib/esm/commonStateTypes/timePeriod.js +0 -4
  15. package/lib/esm/entity/invoicing/invoicingCommonPayload.js +16 -0
  16. package/lib/esm/entity/toastNotification/epic/pushToastNotificationEpic.js +0 -1
  17. package/lib/esm/entity/transaction/toSupportedTransaction.js +1 -1
  18. package/lib/esm/index.js +12 -11
  19. package/lib/esm/view/invoicing/auditView/auditViewSelector.js +4 -0
  20. package/lib/esm/view/invoicing/couponView/couponViewSelector.js +18 -8
  21. package/lib/esm/view/invoicing/couponView/couponViewState.js +0 -9
  22. package/lib/esm/view/invoicing/createCreditNote/createCreditNoteFormConfig.js +1 -0
  23. package/lib/esm/view/invoicing/createCreditNote/createCreditNotePayload.js +4 -1
  24. package/lib/esm/view/invoicing/createCreditNote/createCreditNoteSelector.js +4 -2
  25. package/lib/esm/view/invoicing/editInvoicingCatalogItemDetailView/editInvoicingCatalogItemDetailViewSelector.js +7 -6
  26. package/lib/esm/view/invoicing/editInvoicingCatalogItemDetailView/invoicingCatalogItemFormConfig.js +3 -19
  27. package/lib/esm/view/invoicing/editInvoicingCouponDetailView/editInvoicingCouponDetailViewSelector.js +10 -5
  28. package/lib/esm/view/invoicing/editInvoicingCustomerDetailView/editInvoicingCustomerDetailViewSelector.js +6 -4
  29. package/lib/esm/view/invoicing/editInvoicingCustomerDetailView/invoicingCustomerFormConfig.js +0 -17
  30. package/lib/esm/view/invoicing/editInvoicingSubscriptionDetailView/editInvoicingSubscriptionDetailViewSelector.js +5 -0
  31. package/lib/esm/view/invoicing/invoiceList/fetchInvoiceListPageEpic.js +2 -1
  32. package/lib/esm/view/invoicing/invoiceList/invoiceListReducer.js +18 -17
  33. package/lib/esm/view/invoicing/invoiceList/invoiceListSelector.js +12 -4
  34. package/lib/esm/view/invoicing/invoiceList/invoiceListState.js +13 -9
  35. package/lib/esm/view/invoicing/invoicingCatalogItemDetailView/invoicingCatalogItemDetailViewSelector.js +5 -1
  36. package/lib/esm/view/invoicing/invoicingCatalogListView/invoicingCatalogListViewSelector.js +2 -1
  37. package/lib/esm/view/invoicing/invoicingConfigView/invoicingConfigViewReducer.js +26 -0
  38. package/lib/esm/view/invoicing/invoicingConfigView/invoicingConfigViewSelector.js +9 -0
  39. package/lib/esm/view/invoicing/invoicingCreditNoteListView/invoicingCreditNoteListViewSelector.js +9 -3
  40. package/lib/esm/view/invoicing/invoicingCreditNoteListView/invoicingCreditNoteListViewState.js +0 -9
  41. package/lib/esm/view/invoicing/invoicingCustomerDetailView/fetchInvoicingCustomerDetailPageEpic.js +2 -2
  42. package/lib/esm/view/invoicing/invoicingCustomerDetailView/invoicingCustomerDetailViewSelector.js +1 -1
  43. package/lib/esm/view/invoicing/invoicingCustomerListView/invoicingCustomerListViewSelector.js +9 -3
  44. package/lib/esm/view/invoicing/invoicingCustomerListView/invoicingCustomerListViewState.js +0 -9
  45. package/lib/esm/view/invoicing/invoicingDunningCaseListView/invoicingDunningCaseListViewSelector.js +8 -3
  46. package/lib/esm/view/invoicing/invoicingDunningCaseListView/invoicingDunningCaseListViewState.js +1 -9
  47. package/lib/esm/view/invoicing/invoicingSubscriptionListView/invoicingSubscriptionListViewSelector.js +11 -3
  48. package/lib/esm/view/invoicing/invoicingSubscriptionListView/invoicingSubscriptionListViewState.js +0 -9
  49. package/lib/esm/view/invoicing/invoicingTabHelper.js +27 -0
  50. package/lib/esm/view/invoicing/invoicingTransactionListView/epics/fetchInvoicingTransactionListPageEpic.js +2 -1
  51. package/lib/esm/view/invoicing/invoicingTransactionListView/invoicingTransactionListViewReducer.js +5 -5
  52. package/lib/esm/view/invoicing/invoicingTransactionListView/invoicingTransactionListViewSelector.js +12 -4
  53. package/lib/esm/view/invoicing/invoicingTransactionListView/invoicingTransactionListViewState.js +11 -9
  54. package/lib/esm/view/invoicing/issueCreditNote/issueCreditNoteFormConfig.js +1 -8
  55. package/lib/esm/view/invoicing/issueCreditNote/issueCreditNotePayload.js +5 -1
  56. package/lib/esm/view/invoicing/issueCreditNote/issueCreditNoteSelector.js +5 -2
  57. package/lib/esm/view/invoicing/recordPayment/recordPaymentFormConfig.js +0 -26
  58. package/lib/esm/view/invoicing/recordPayment/recordPaymentSelector.js +26 -6
  59. package/lib/esm/view/invoicing/settingsView/settingsViewSelector.js +7 -1
  60. package/lib/esm/view/profitAndLossProjectView/profitAndLossProjectViewReducer.js +2 -1
  61. package/lib/index.d.ts +13 -12
  62. package/lib/index.js +9 -24
  63. package/lib/view/invoicing/auditView/auditViewSelector.d.ts +4 -0
  64. package/lib/view/invoicing/auditView/auditViewSelector.js +4 -0
  65. package/lib/view/invoicing/couponView/couponViewSelector.d.ts +5 -1
  66. package/lib/view/invoicing/couponView/couponViewSelector.js +17 -7
  67. package/lib/view/invoicing/couponView/couponViewState.d.ts +0 -7
  68. package/lib/view/invoicing/couponView/couponViewState.js +1 -10
  69. package/lib/view/invoicing/createCreditNote/createCreditNoteFormConfig.js +1 -0
  70. package/lib/view/invoicing/createCreditNote/createCreditNotePayload.js +4 -1
  71. package/lib/view/invoicing/createCreditNote/createCreditNoteSelector.d.ts +3 -1
  72. package/lib/view/invoicing/createCreditNote/createCreditNoteSelector.js +4 -2
  73. package/lib/view/invoicing/createCreditNote/createCreditNoteState.d.ts +6 -0
  74. package/lib/view/invoicing/editInvoicingCatalogItemDetailView/editInvoicingCatalogItemDetailViewSelector.d.ts +5 -5
  75. package/lib/view/invoicing/editInvoicingCatalogItemDetailView/editInvoicingCatalogItemDetailViewSelector.js +6 -5
  76. package/lib/view/invoicing/editInvoicingCatalogItemDetailView/invoicingCatalogItemFormConfig.d.ts +3 -6
  77. package/lib/view/invoicing/editInvoicingCatalogItemDetailView/invoicingCatalogItemFormConfig.js +4 -20
  78. package/lib/view/invoicing/editInvoicingCouponDetailView/editInvoicingCouponDetailViewSelector.d.ts +9 -7
  79. package/lib/view/invoicing/editInvoicingCouponDetailView/editInvoicingCouponDetailViewSelector.js +10 -5
  80. package/lib/view/invoicing/editInvoicingCustomerDetailView/editInvoicingCustomerDetailViewSelector.d.ts +4 -3
  81. package/lib/view/invoicing/editInvoicingCustomerDetailView/editInvoicingCustomerDetailViewSelector.js +5 -3
  82. package/lib/view/invoicing/editInvoicingCustomerDetailView/invoicingCustomerFormConfig.d.ts +0 -8
  83. package/lib/view/invoicing/editInvoicingCustomerDetailView/invoicingCustomerFormConfig.js +1 -18
  84. package/lib/view/invoicing/editInvoicingSubscriptionDetailView/editInvoicingSubscriptionDetailViewSelector.d.ts +5 -0
  85. package/lib/view/invoicing/editInvoicingSubscriptionDetailView/editInvoicingSubscriptionDetailViewSelector.js +5 -0
  86. package/lib/view/invoicing/invoiceList/fetchInvoiceListPageEpic.js +2 -1
  87. package/lib/view/invoicing/invoiceList/invoiceListReducer.js +17 -16
  88. package/lib/view/invoicing/invoiceList/invoiceListSelector.d.ts +3 -1
  89. package/lib/view/invoicing/invoiceList/invoiceListSelector.js +11 -3
  90. package/lib/view/invoicing/invoiceList/invoiceListState.d.ts +13 -9
  91. package/lib/view/invoicing/invoiceList/invoiceListState.js +15 -10
  92. package/lib/view/invoicing/invoicingCatalogItemDetailView/invoicingCatalogItemDetailViewSelector.d.ts +9 -1
  93. package/lib/view/invoicing/invoicingCatalogItemDetailView/invoicingCatalogItemDetailViewSelector.js +5 -1
  94. package/lib/view/invoicing/invoicingCatalogListView/invoicingCatalogListViewSelector.d.ts +3 -1
  95. package/lib/view/invoicing/invoicingCatalogListView/invoicingCatalogListViewSelector.js +2 -1
  96. package/lib/view/invoicing/invoicingConfigView/invoicingConfigViewPayload.d.ts +13 -0
  97. package/lib/view/invoicing/invoicingConfigView/invoicingConfigViewReducer.d.ts +1 -1
  98. package/lib/view/invoicing/invoicingConfigView/invoicingConfigViewReducer.js +26 -0
  99. package/lib/view/invoicing/invoicingConfigView/invoicingConfigViewSelector.d.ts +19 -1
  100. package/lib/view/invoicing/invoicingConfigView/invoicingConfigViewSelector.js +11 -1
  101. package/lib/view/invoicing/invoicingConfigView/invoicingConfigViewState.d.ts +13 -0
  102. package/lib/view/invoicing/invoicingCreditNoteListView/invoicingCreditNoteListViewSelector.d.ts +8 -1
  103. package/lib/view/invoicing/invoicingCreditNoteListView/invoicingCreditNoteListViewSelector.js +8 -2
  104. package/lib/view/invoicing/invoicingCreditNoteListView/invoicingCreditNoteListViewState.d.ts +0 -7
  105. package/lib/view/invoicing/invoicingCreditNoteListView/invoicingCreditNoteListViewState.js +1 -10
  106. package/lib/view/invoicing/invoicingCustomerDetailView/fetchInvoicingCustomerDetailPageEpic.js +2 -2
  107. package/lib/view/invoicing/invoicingCustomerDetailView/invoicingCustomerDetailViewSelector.js +1 -1
  108. package/lib/view/invoicing/invoicingCustomerListView/invoicingCustomerListViewSelector.d.ts +3 -1
  109. package/lib/view/invoicing/invoicingCustomerListView/invoicingCustomerListViewSelector.js +8 -2
  110. package/lib/view/invoicing/invoicingCustomerListView/invoicingCustomerListViewState.d.ts +0 -7
  111. package/lib/view/invoicing/invoicingCustomerListView/invoicingCustomerListViewState.js +1 -10
  112. package/lib/view/invoicing/invoicingDunningCaseListView/invoicingDunningCaseListViewReducer.d.ts +1 -1
  113. package/lib/view/invoicing/invoicingDunningCaseListView/invoicingDunningCaseListViewSelector.d.ts +3 -1
  114. package/lib/view/invoicing/invoicingDunningCaseListView/invoicingDunningCaseListViewSelector.js +7 -2
  115. package/lib/view/invoicing/invoicingDunningCaseListView/invoicingDunningCaseListViewState.d.ts +2 -9
  116. package/lib/view/invoicing/invoicingDunningCaseListView/invoicingDunningCaseListViewState.js +2 -10
  117. package/lib/view/invoicing/invoicingSubscriptionListView/invoicingSubscriptionListViewSelector.d.ts +7 -1
  118. package/lib/view/invoicing/invoicingSubscriptionListView/invoicingSubscriptionListViewSelector.js +10 -2
  119. package/lib/view/invoicing/invoicingSubscriptionListView/invoicingSubscriptionListViewState.d.ts +0 -7
  120. package/lib/view/invoicing/invoicingSubscriptionListView/invoicingSubscriptionListViewState.js +1 -10
  121. package/lib/view/invoicing/invoicingTabHelper.d.ts +27 -0
  122. package/lib/view/invoicing/invoicingTabHelper.js +30 -0
  123. package/lib/view/invoicing/invoicingTransactionListView/epics/fetchInvoicingTransactionListPageEpic.js +2 -1
  124. package/lib/view/invoicing/invoicingTransactionListView/invoicingTransactionListViewReducer.d.ts +1 -1
  125. package/lib/view/invoicing/invoicingTransactionListView/invoicingTransactionListViewReducer.js +4 -4
  126. package/lib/view/invoicing/invoicingTransactionListView/invoicingTransactionListViewSelector.d.ts +8 -0
  127. package/lib/view/invoicing/invoicingTransactionListView/invoicingTransactionListViewSelector.js +11 -3
  128. package/lib/view/invoicing/invoicingTransactionListView/invoicingTransactionListViewState.d.ts +10 -10
  129. package/lib/view/invoicing/invoicingTransactionListView/invoicingTransactionListViewState.js +13 -10
  130. package/lib/view/invoicing/issueCreditNote/issueCreditNoteFormConfig.d.ts +0 -2
  131. package/lib/view/invoicing/issueCreditNote/issueCreditNoteFormConfig.js +2 -9
  132. package/lib/view/invoicing/issueCreditNote/issueCreditNotePayload.d.ts +2 -2
  133. package/lib/view/invoicing/issueCreditNote/issueCreditNotePayload.js +5 -1
  134. package/lib/view/invoicing/issueCreditNote/issueCreditNoteSelector.d.ts +3 -1
  135. package/lib/view/invoicing/issueCreditNote/issueCreditNoteSelector.js +4 -1
  136. package/lib/view/invoicing/issueCreditNote/issueCreditNoteState.d.ts +6 -0
  137. package/lib/view/invoicing/recordPayment/recordPaymentFormConfig.d.ts +0 -6
  138. package/lib/view/invoicing/recordPayment/recordPaymentFormConfig.js +1 -27
  139. package/lib/view/invoicing/recordPayment/recordPaymentSelector.d.ts +3 -2
  140. package/lib/view/invoicing/recordPayment/recordPaymentSelector.js +26 -6
  141. package/lib/view/invoicing/settingsView/settingsViewSelector.d.ts +11 -1
  142. package/lib/view/invoicing/settingsView/settingsViewSelector.js +7 -1
  143. package/lib/view/profitAndLossProjectView/profitAndLossProjectViewReducer.js +2 -1
  144. package/package.json +4 -10
  145. package/lib/commonStateTypes/selectorTypes/pickAndMergeForecastSection.d.ts +0 -0
  146. package/lib/commonStateTypes/selectorTypes/pickAndMergeForecastSection.js +0 -1
  147. package/lib/entity/invoicing/coupon/couponConstants.d.ts +0 -11
  148. package/lib/entity/invoicing/coupon/couponConstants.js +0 -29
  149. package/lib/esm/commonStateTypes/selectorTypes/pickAndMergeForecastSection.js +0 -1
  150. package/lib/esm/entity/invoicing/coupon/couponConstants.js +0 -26
@@ -32,9 +32,6 @@ type AccountIDPlus4SubAccount = [
32
32
  * and so on..
33
33
  */
34
34
  export type NestedAccountID = AccountIDPlus0SubAccount | AccountIDPlus1SubAccount | AccountIDPlus2SubAccount | AccountIDPlus3SubAccount | AccountIDPlus4SubAccount;
35
- export declare const MAX_SUB_ACCOUNTS_SUPPORTED = 4;
36
- export declare const MAX_SUB_CLASSES_SUPPORTED = 4;
37
- export declare const MAX_SUB_CUSTOMERS_SUPPORTED = 4;
38
35
  export declare function getNestedAccountIDStr(nestedAccountId: NestedAccountID): `${string}-${string}-${string}-${string}-${string}`;
39
36
  export declare const isEqualNestedAccountId: (nestedAccountIdA: NestedAccountID, nestedAccountIdB: NestedAccountID) => boolean;
40
37
  export interface AccountsViewParentID {
@@ -1,10 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isEqualNestedAccountId = exports.MAX_SUB_CUSTOMERS_SUPPORTED = exports.MAX_SUB_CLASSES_SUPPORTED = exports.MAX_SUB_ACCOUNTS_SUPPORTED = void 0;
3
+ exports.isEqualNestedAccountId = void 0;
4
4
  exports.getNestedAccountIDStr = getNestedAccountIDStr;
5
- exports.MAX_SUB_ACCOUNTS_SUPPORTED = 4;
6
- exports.MAX_SUB_CLASSES_SUPPORTED = 4;
7
- exports.MAX_SUB_CUSTOMERS_SUPPORTED = 4;
8
5
  function getNestedAccountIDStr(nestedAccountId) {
9
6
  const [accountId, parentAccountId, greatParentAccountId, greatGreatParentAccountId, greatGreatGreatParentAccountId,] = nestedAccountId;
10
7
  return `${accountId}-${parentAccountId ?? ''}-${greatParentAccountId ?? ''}-${greatGreatParentAccountId ?? ''}-${greatGreatGreatParentAccountId ?? ''}`;
@@ -45,11 +45,6 @@ export interface COABalanceGrouped extends COABalanceGroupedByPeriod {
45
45
  years?: COABalance;
46
46
  };
47
47
  }
48
- export interface COABalanceWithAveragesGrouped extends COABalanceGrouped {
49
- averages?: {
50
- months?: COABalance;
51
- };
52
- }
53
48
  export interface COABalanceGroupedWithIDs extends COABalanceGrouped {
54
49
  accountGroupIDs: string[];
55
50
  accountIDs: string[];
@@ -26,9 +26,7 @@ export interface MonthYearPeriod {
26
26
  year: number;
27
27
  }
28
28
  export type MonthYearPeriodId = `${Month}_${number}`;
29
- export type MonthYearPeriodQuery = `${Month}-${number}`;
30
29
  export declare const toMonthYearPeriod: (periodPayload: string) => MonthYearPeriod;
31
- export declare const toMonthYearPeriodQuery: (selectedPeriod: MonthYearPeriod) => MonthYearPeriodQuery;
32
30
  export declare const toMonthYearPeriodId: (selectedPeriod: MonthYearPeriod) => MonthYearPeriodId;
33
31
  /**
34
32
  * Convert to start: string; end: string in the format yyyy-mm-dd
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.toString = exports.toMonthYearPeriodId = exports.toMonthYearPeriodQuery = exports.toMonthYearPeriod = exports.toQuarterStrict = exports.toQuarter = exports.getMonthFromMonthName = exports.toMonthStrict = exports.toMonth = exports.LAST_SCHEDULE_DAY_OF_MONTH = exports.MAX_SCHEDULE_DAY_OF_MONTH = exports.MIN_SCHEDULE_DAY_OF_MONTH = exports.toScheduleDaysOfMonth = exports.SCHEDULE_DAYS_OF_MONTH = void 0;
3
+ exports.toString = exports.toMonthYearPeriodId = exports.toMonthYearPeriod = exports.toQuarterStrict = exports.toQuarter = exports.getMonthFromMonthName = exports.toMonthStrict = exports.toMonth = exports.LAST_SCHEDULE_DAY_OF_MONTH = exports.MAX_SCHEDULE_DAY_OF_MONTH = exports.MIN_SCHEDULE_DAY_OF_MONTH = exports.toScheduleDaysOfMonth = exports.SCHEDULE_DAYS_OF_MONTH = void 0;
4
4
  exports.convertToPeriod = convertToPeriod;
5
5
  exports.toAbsoluteDay = toAbsoluteDay;
6
6
  const zeniDayJS_1 = require("../zeniDayJS");
@@ -47,11 +47,6 @@ const toMonthYearPeriod = (periodPayload) => {
47
47
  };
48
48
  };
49
49
  exports.toMonthYearPeriod = toMonthYearPeriod;
50
- const toMonthYearPeriodQuery = (selectedPeriod) => {
51
- const { month, year } = selectedPeriod;
52
- return `${month}-${year}`;
53
- };
54
- exports.toMonthYearPeriodQuery = toMonthYearPeriodQuery;
55
50
  const toMonthYearPeriodId = (selectedPeriod) => {
56
51
  const { month, year } = selectedPeriod;
57
52
  return `${month}_${year}`;
@@ -210,6 +210,18 @@ export interface InvoicingSubscriptionEditFieldOption {
210
210
  name: string;
211
211
  }
212
212
  export declare function toInvoicingNamedOption(option: InvoicingNamedOptionWire): InvoicingNamedOption;
213
+ /**
214
+ * Adapt a config option to the `{label, value}` shape the form pickers take.
215
+ * Config is the single source of truth for which options exist and what they are
216
+ * called, so every form value set that used to be a hardcoded
217
+ * `InvoicingFormOption[]` constant is now mapped through here.
218
+ */
219
+ export declare function toInvoicingFormOption(option: InvoicingNamedOption): InvoicingFormOption;
220
+ /**
221
+ * Just the codes of a config option list, for the consumers that need the value
222
+ * set rather than labelled options (status membership checks, tab id sets).
223
+ */
224
+ export declare function invoicingOptionCodes(options: InvoicingNamedOption[]): string[];
213
225
  /**
214
226
  * A config-driven map from some key (a pricing model, a status, …) to the
215
227
  * options allowed for it. Lets the backend widen an allowed set without a
@@ -15,6 +15,8 @@ exports.getInvoicingQboAccountMappingId = getInvoicingQboAccountMappingId;
15
15
  exports.withInvoicingQboAccountMappingId = withInvoicingQboAccountMappingId;
16
16
  exports.toInvoicingQboAccountMappingKindOption = toInvoicingQboAccountMappingKindOption;
17
17
  exports.toInvoicingNamedOption = toInvoicingNamedOption;
18
+ exports.toInvoicingFormOption = toInvoicingFormOption;
19
+ exports.invoicingOptionCodes = invoicingOptionCodes;
18
20
  exports.toInvoicingNamedOptionsByKey = toInvoicingNamedOptionsByKey;
19
21
  exports.toInvoicingSubscriptionEditFieldOption = toInvoicingSubscriptionEditFieldOption;
20
22
  exports.toAuditLogEntityRouteOption = toAuditLogEntityRouteOption;
@@ -201,6 +203,22 @@ function toInvoicingQboAccountMappingKindOption(option) {
201
203
  function toInvoicingNamedOption(option) {
202
204
  return { code: option.code, name: option.name };
203
205
  }
206
+ /**
207
+ * Adapt a config option to the `{label, value}` shape the form pickers take.
208
+ * Config is the single source of truth for which options exist and what they are
209
+ * called, so every form value set that used to be a hardcoded
210
+ * `InvoicingFormOption[]` constant is now mapped through here.
211
+ */
212
+ function toInvoicingFormOption(option) {
213
+ return { label: option.name, value: option.code };
214
+ }
215
+ /**
216
+ * Just the codes of a config option list, for the consumers that need the value
217
+ * set rather than labelled options (status membership checks, tab id sets).
218
+ */
219
+ function invoicingOptionCodes(options) {
220
+ return options.map((option) => option.code);
221
+ }
204
222
  function toInvoicingNamedOptionsByKey(optionsByKey) {
205
223
  return Object.fromEntries(Object.entries(optionsByKey).map(([key, options]) => [
206
224
  key,
@@ -1,5 +1,5 @@
1
1
  import { InvoicingTransaction } from './invoicingTransactionState';
2
- export type InvoicingTransactionType = 'payment' | 'refund' | 'authorization' | 'payment_reversal';
2
+ export type InvoicingTransactionType = 'payment' | 'refund' | 'authorization' | 'payment_reversal' | 'excess_transfer';
3
3
  export type InvoicingTransactionStatus = 'in_progress' | 'success' | 'voided' | 'failure' | 'timeout' | 'needs_attention' | 'late_failure' | 'failed';
4
4
  export interface InvoicingLinkedInvoiceRefPayload {
5
5
  applied_amount: number;
@@ -16,4 +16,3 @@ export declare const pushToastNotificationEpic: (actions$: ActionsObservable<Act
16
16
  };
17
17
  type: "snackbar/openSnackbar";
18
18
  }>;
19
- export default pushToastNotificationEpic;
@@ -39,4 +39,3 @@ const pushToastNotificationEpic = (actions$, state$) => actions$.pipe((0, operat
39
39
  return (0, rxjs_1.from)([]);
40
40
  }));
41
41
  exports.pushToastNotificationEpic = pushToastNotificationEpic;
42
- exports.default = exports.pushToastNotificationEpic;
@@ -1,3 +1,3 @@
1
1
  import { SupportedTransaction, SupportedTransactionPayload } from './transactionState';
2
- export declare function toSupportedTransaction(payload: SupportedTransactionPayload): SupportedTransaction;
2
+ declare function toSupportedTransaction(payload: SupportedTransactionPayload): SupportedTransaction;
3
3
  export default toSupportedTransaction;
@@ -1,6 +1,5 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.toSupportedTransaction = toSupportedTransaction;
4
3
  const customerTransactionPayload_1 = require("./payloadTypes/customerTransactionPayload");
5
4
  const otherTransactionPayload_1 = require("./payloadTypes/otherTransactionPayload");
6
5
  const transactionPayload_1 = require("./payloadTypes/transactionPayload");
@@ -1,6 +1,3 @@
1
- export const MAX_SUB_ACCOUNTS_SUPPORTED = 4;
2
- export const MAX_SUB_CLASSES_SUPPORTED = 4;
3
- export const MAX_SUB_CUSTOMERS_SUPPORTED = 4;
4
1
  export function getNestedAccountIDStr(nestedAccountId) {
5
2
  const [accountId, parentAccountId, greatParentAccountId, greatGreatParentAccountId, greatGreatGreatParentAccountId,] = nestedAccountId;
6
3
  return `${accountId}-${parentAccountId ?? ''}-${greatParentAccountId ?? ''}-${greatGreatParentAccountId ?? ''}-${greatGreatGreatParentAccountId ?? ''}`;
@@ -35,10 +35,6 @@ export const toMonthYearPeriod = (periodPayload) => {
35
35
  year: Number(periodPayload.split('-')[1]),
36
36
  };
37
37
  };
38
- export const toMonthYearPeriodQuery = (selectedPeriod) => {
39
- const { month, year } = selectedPeriod;
40
- return `${month}-${year}`;
41
- };
42
38
  export const toMonthYearPeriodId = (selectedPeriod) => {
43
39
  const { month, year } = selectedPeriod;
44
40
  return `${month}_${year}`;
@@ -179,6 +179,22 @@ export function toInvoicingQboAccountMappingKindOption(option) {
179
179
  export function toInvoicingNamedOption(option) {
180
180
  return { code: option.code, name: option.name };
181
181
  }
182
+ /**
183
+ * Adapt a config option to the `{label, value}` shape the form pickers take.
184
+ * Config is the single source of truth for which options exist and what they are
185
+ * called, so every form value set that used to be a hardcoded
186
+ * `InvoicingFormOption[]` constant is now mapped through here.
187
+ */
188
+ export function toInvoicingFormOption(option) {
189
+ return { label: option.name, value: option.code };
190
+ }
191
+ /**
192
+ * Just the codes of a config option list, for the consumers that need the value
193
+ * set rather than labelled options (status membership checks, tab id sets).
194
+ */
195
+ export function invoicingOptionCodes(options) {
196
+ return options.map((option) => option.code);
197
+ }
182
198
  export function toInvoicingNamedOptionsByKey(optionsByKey) {
183
199
  return Object.fromEntries(Object.entries(optionsByKey).map(([key, options]) => [
184
200
  key,
@@ -35,4 +35,3 @@ export const pushToastNotificationEpic = (actions$, state$) => actions$.pipe(fil
35
35
  }
36
36
  return from([]);
37
37
  }));
38
- export default pushToastNotificationEpic;
@@ -2,7 +2,7 @@ import { isCustomerTransactionPayload, toCustomerTransaction, } from './payloadT
2
2
  import { isTransferTransactionPayload, toTransferTransaction, } from './payloadTypes/otherTransactionPayload';
3
3
  import { toTransaction } from './payloadTypes/transactionPayload';
4
4
  import { isVendorTransactionPayload, isVendorTransactionWithCustomerPayload, toVendorTransaction, toVendorTransactionWithCustomer, } from './payloadTypes/vendorTransactionPayload';
5
- export function toSupportedTransaction(payload) {
5
+ function toSupportedTransaction(payload) {
6
6
  if (isCustomerTransactionPayload(payload)) {
7
7
  return toCustomerTransaction(payload);
8
8
  }
package/lib/esm/index.js CHANGED
@@ -729,7 +729,7 @@ export { mapAuditLogEntry } from './view/invoicing/auditView/auditViewPayload';
729
729
  export { clearAllInvoices, removeInvoice, updateInvoices, } from './entity/invoicing/invoice/invoiceReducer';
730
730
  export { getInvoiceById, getInvoicesByIds, } from './entity/invoicing/invoice/invoiceSelector';
731
731
  export { clearInvoiceList, fetchInvoiceCounts, fetchInvoiceKPIs, fetchInvoiceList, fetchInvoiceListPage, setInvoiceActiveTab, updateInvoiceListFilters, } from './view/invoicing/invoiceList/invoiceListReducer';
732
- export { ALL_INVOICING_INVOICE_TAB_IDS, INVOICING_INVOICE_TABS, } from './view/invoicing/invoiceList/invoiceListState';
732
+ export { ALL_INVOICING_INVOICE_TAB_IDS, } from './view/invoicing/invoiceList/invoiceListState';
733
733
  export { getInvoiceListView } from './view/invoicing/invoiceList/invoiceListSelector';
734
734
  export { clearAllInvoiceDetail, fetchInvoiceDetail, } from './view/invoicing/invoiceDetail/invoiceDetailReducer';
735
735
  export { getInvoiceDetail } from './view/invoicing/invoiceDetail/invoiceDetailSelector';
@@ -738,14 +738,14 @@ export { blankInvoicingCreateInvoiceLineItem, createInvoiceFormLocalDataToReques
738
738
  export { resetRecordPayment, initializeRecordPaymentDraft, submitRecordPayment, updateRecordPaymentFormDraft, } from './view/invoicing/recordPayment/recordPaymentReducer';
739
739
  export { initializeIssueCreditNoteDraft, issueCreditNoteFailure, issueCreditNoteSuccess, resetIssueCreditNote, submitIssueCreditNote, updateIssueCreditNoteFormDraft, } from './view/invoicing/issueCreditNote/issueCreditNoteReducer';
740
740
  export { computeIssueCreditNoteTotal, initializeIssueCreditNoteDraftFromInvoice, localDataToIssueCreditNotePayload, } from './view/invoicing/issueCreditNote/issueCreditNotePayload';
741
- export { INVOICING_CREDIT_NOTE_REASON_CODES, initialIssueCreditNoteFormLocalData, } from './view/invoicing/issueCreditNote/issueCreditNoteFormConfig';
741
+ export { initialIssueCreditNoteFormLocalData, } from './view/invoicing/issueCreditNote/issueCreditNoteFormConfig';
742
742
  export { getIssueCreditNoteView } from './view/invoicing/issueCreditNote/issueCreditNoteSelector';
743
743
  export { createCreditNoteFailure, createCreditNoteSuccess, resetCreateCreditNote, submitCreateCreditNote, updateCreateCreditNoteFormDraft, } from './view/invoicing/createCreditNote/createCreditNoteReducer';
744
744
  export { localDataToCreateCreditNotePayload } from './view/invoicing/createCreditNote/createCreditNotePayload';
745
745
  export { initialCreateCreditNoteFormLocalData } from './view/invoicing/createCreditNote/createCreditNoteFormConfig';
746
746
  export { getCreateCreditNoteFormView, getCreateCreditNoteView, } from './view/invoicing/createCreditNote/createCreditNoteSelector';
747
747
  export { initializeRecordPaymentDraftFromInvoice, localDataToInvoiceRecordPaymentBody, localDataToRecordPaymentPayload, } from './view/invoicing/recordPayment/recordPaymentPayload';
748
- export { INVOICING_PAYMENT_GATEWAY_VALUES, INVOICING_PAYMENT_METHOD_VALUES, initialRecordPaymentFormLocalData, } from './view/invoicing/recordPayment/recordPaymentFormConfig';
748
+ export { initialRecordPaymentFormLocalData, } from './view/invoicing/recordPayment/recordPaymentFormConfig';
749
749
  export { clearInvoicingOverview, fetchInvoicingOverview, } from './view/invoicing/invoicingOverview/invoicingOverviewReducer';
750
750
  export { buildPeriodOptions, getInvoicingOverview, } from './view/invoicing/invoicingOverview/invoicingOverviewSelector';
751
751
  export { clearInvoicingAuditView, fetchInvoicingAuditLog, } from './view/invoicing/auditView/auditViewReducer';
@@ -753,14 +753,14 @@ export { getInvoicingAuditView } from './view/invoicing/auditView/auditViewSelec
753
753
  export { getCreateInvoiceFormView } from './view/invoicing/createInvoice/createInvoiceSelector';
754
754
  export { getRecordPaymentFormView, getRecordPaymentInvoiceOptions, getRecordPaymentView, } from './view/invoicing/recordPayment/recordPaymentSelector';
755
755
  export { initializeInvoicingCustomerAddress, resetEditInvoicingCustomerDetailView, submitInvoicingCustomerForm, submitInvoicingCustomerFormFailure, submitInvoicingCustomerFormSuccess, updateInvoicingCustomerFormDraft, } from './view/invoicing/editInvoicingCustomerDetailView/editInvoicingCustomerDetailViewReducer';
756
- export { INVOICING_CUSTOMER_BILLING_ADDRESS_TYPE, INVOICING_CUSTOMER_TYPE_VALUES, INVOICING_NET_TERM_DAY_VALUES, INVOICING_TAXABILITY_VALUES, entityToInvoicingCustomerFormLocalData, initialInvoicingCustomerFormLocalData, } from './view/invoicing/editInvoicingCustomerDetailView/invoicingCustomerFormConfig';
756
+ export { INVOICING_CUSTOMER_BILLING_ADDRESS_TYPE, entityToInvoicingCustomerFormLocalData, initialInvoicingCustomerFormLocalData, } from './view/invoicing/editInvoicingCustomerDetailView/invoicingCustomerFormConfig';
757
757
  export { getInvoicingCustomerFormView } from './view/invoicing/editInvoicingCustomerDetailView/editInvoicingCustomerDetailViewSelector';
758
758
  export { fetchInvoicingSubscriptionFormPage, initializeInvoicingSubscriptionAddress, resetEditInvoicingSubscriptionDetailView, submitInvoicingSubscriptionForm, updateInvoicingSubscriptionFormDraft, } from './view/invoicing/editInvoicingSubscriptionDetailView/editInvoicingSubscriptionDetailViewReducer';
759
759
  export { INVOICING_SUBSCRIPTION_BILLING_FREQUENCY_VALUES, INVOICING_SUBSCRIPTION_SHIPPING_ADDRESS_TYPE, entityToInvoicingSubscriptionFormLocalData, initialInvoicingSubscriptionFormLocalData, invoicingSubscriptionTodayIso, toInvoicingSubscriptionQuantity, } from './view/invoicing/editInvoicingSubscriptionDetailView/invoicingSubscriptionFormConfig';
760
760
  export { getEditInvoicingSubscriptionDetailViewState, getInvoicingSubscriptionFormView, } from './view/invoicing/editInvoicingSubscriptionDetailView/editInvoicingSubscriptionDetailViewSelector';
761
761
  export { archiveInvoicingCatalogSubFamily, createInvoicingCatalogSubFamily, resetEditInvoicingCatalogItemDetailView, saveInvoicingCatalogItem, submitInvoicingCatalogItemForm, updateInvoicingCatalogItemFormDraft, } from './view/invoicing/editInvoicingCatalogItemDetailView/editInvoicingCatalogItemDetailViewReducer';
762
762
  export { catalogDetailEditValuesToSavePayload, createSubFamilyFormToPayload, planToCatalogDetailEditValues, productToCreateSubFamilyFormValues, } from './view/invoicing/editInvoicingCatalogItemDetailView/catalogDetailEditPayload';
763
- export { INVOICING_CATALOG_APPLICABILITY_VALUES, INVOICING_CATALOG_PERIOD_UNIT_VALUES, INVOICING_CATALOG_PRICING_MODEL_VALUES, INVOICING_CATALOG_PRORATION_VALUES, INVOICING_CATALOG_TIER_TYPE_VALUES, INVOICING_CATALOG_TRIAL_END_ACTION_VALUES, INVOICING_CATALOG_TRIAL_UNIT_VALUES, INVOICING_CATALOG_TYPE_VALUES, blankInvoicingCatalogSubFamily, blankInvoicingCatalogTier, entityToInvoicingCatalogItemFormLocalData, initialInvoicingCatalogItemFormLocalData, isTieredCatalogPricingModel, } from './view/invoicing/editInvoicingCatalogItemDetailView/invoicingCatalogItemFormConfig';
763
+ export { INVOICING_CATALOG_APPLICABILITY_VALUES, INVOICING_CATALOG_PRICING_MODEL_VALUES, INVOICING_CATALOG_PRORATION_VALUES, INVOICING_CATALOG_TIER_TYPE_VALUES, blankInvoicingCatalogSubFamily, blankInvoicingCatalogTier, entityToInvoicingCatalogItemFormLocalData, initialInvoicingCatalogItemFormLocalData, isTieredCatalogPricingModel, } from './view/invoicing/editInvoicingCatalogItemDetailView/invoicingCatalogItemFormConfig';
764
764
  export { getEditInvoicingCatalogItemDetailViewState, getInvoicingApplicableCatalogItemOptions, getInvoicingCatalogItemFormView, getSavedInvoicingCatalogItemId, getSavedInvoicingCatalogItemKind, } from './view/invoicing/editInvoicingCatalogItemDetailView/editInvoicingCatalogItemDetailViewSelector';
765
765
  export { resetEditInvoicingCouponDetailView, saveInvoicingCoupon, submitInvoicingCouponForm, updateInvoicingCouponFormDraft, } from './view/invoicing/editInvoicingCouponDetailView/editInvoicingCouponDetailViewReducer';
766
766
  export { entityToInvoicingCouponFormLocalData, initialInvoicingCouponFormLocalData, } from './view/invoicing/editInvoicingCouponDetailView/editInvoicingCouponDetailViewState';
@@ -785,7 +785,7 @@ export { INVOICING_LIST_PAGE_SIZE } from './view/invoicing/invoicingApiHelper';
785
785
  // ── Invoicing: customers ──────────────────────────────────────────────────────
786
786
  export { clearAllInvoicingCustomers, removeInvoicingCustomer, updateInvoicingCustomers, } from './entity/invoicing/invoicingCustomer/invoicingCustomerReducer';
787
787
  export { clearInvoicingCustomerListView, fetchInvoicingCustomerCounts, fetchInvoicingCustomerList, fetchInvoicingCustomerListPage, setInvoicingCustomerActiveTab, updateInvoicingCustomerFilters, } from './view/invoicing/invoicingCustomerListView/invoicingCustomerListViewReducer';
788
- export { ALL_INVOICING_CUSTOMER_SORT_KEYS, ALL_INVOICING_CUSTOMER_TAB_IDS, INVOICING_CUSTOMER_COLUMNS, INVOICING_CUSTOMER_TABS, } from './view/invoicing/invoicingCustomerListView/invoicingCustomerListViewState';
788
+ export { ALL_INVOICING_CUSTOMER_SORT_KEYS, ALL_INVOICING_CUSTOMER_TAB_IDS, INVOICING_CUSTOMER_COLUMNS, } from './view/invoicing/invoicingCustomerListView/invoicingCustomerListViewState';
789
789
  export { getInvoicingCustomerListView } from './view/invoicing/invoicingCustomerListView/invoicingCustomerListViewSelector';
790
790
  export { clearInvoicingCustomerDetailView, fetchInvoicingCustomerDetail, fetchInvoicingCustomerDetailPage, } from './view/invoicing/invoicingCustomerDetailView/invoicingCustomerDetailViewReducer';
791
791
  export { getInvoicingCustomerDetail } from './view/invoicing/invoicingCustomerDetailView/invoicingCustomerDetailViewSelector';
@@ -797,28 +797,28 @@ export { submitAddPromotionalCredits, resetPromotionalCreditAction, } from './vi
797
797
  // ── Invoicing: subscriptions ──────────────────────────────────────────────────
798
798
  export { clearAllInvoicingSubscriptions, removeInvoicingSubscription, updateInvoicingSubscriptions, } from './entity/invoicing/invoicingSubscription/invoicingSubscriptionReducer';
799
799
  export { clearInvoicingSubscriptionListView, fetchInvoicingSubscriptionCounts, fetchInvoicingSubscriptionList, fetchInvoicingSubscriptionListPage, setInvoicingSubscriptionActiveTab, updateInvoicingSubscriptionFilters, } from './view/invoicing/invoicingSubscriptionListView/invoicingSubscriptionListViewReducer';
800
- export { ALL_INVOICING_SUBSCRIPTION_SORT_KEYS, ALL_INVOICING_SUBSCRIPTION_TAB_IDS, INVOICING_SUBSCRIPTION_COLUMNS, INVOICING_SUBSCRIPTION_TABS, } from './view/invoicing/invoicingSubscriptionListView/invoicingSubscriptionListViewState';
800
+ export { ALL_INVOICING_SUBSCRIPTION_SORT_KEYS, ALL_INVOICING_SUBSCRIPTION_TAB_IDS, INVOICING_SUBSCRIPTION_COLUMNS, } from './view/invoicing/invoicingSubscriptionListView/invoicingSubscriptionListViewState';
801
801
  export { getInvoicingSubscriptionListView } from './view/invoicing/invoicingSubscriptionListView/invoicingSubscriptionListViewSelector';
802
802
  export { clearInvoicingSubscriptionDetailView, fetchInvoicingSubscriptionDetail, } from './view/invoicing/invoicingSubscriptionDetailView/invoicingSubscriptionDetailViewReducer';
803
803
  export { getInvoicingSubscriptionById, getInvoicingSubscriptionDetail, } from './view/invoicing/invoicingSubscriptionDetailView/invoicingSubscriptionDetailViewSelector';
804
804
  // ── Invoicing: payments (transactions) ────────────────────────────────────────
805
805
  export { clearAllInvoicingTransactions, removeInvoicingTransaction, updateInvoicingTransactions, } from './entity/invoicing/invoicingTransaction/invoicingTransactionReducer';
806
806
  export { clearInvoicingTransactionListView, fetchInvoicingTransactionList, fetchInvoicingTransactionListPage, setInvoicingTransactionActiveTab, updateInvoicingTransactionFilters, } from './view/invoicing/invoicingTransactionListView/invoicingTransactionListViewReducer';
807
- export { ALL_INVOICING_TRANSACTION_SORT_KEYS, ALL_INVOICING_TRANSACTION_TAB_IDS, INVOICING_TRANSACTION_COLUMNS, INVOICING_TRANSACTION_TABS, } from './view/invoicing/invoicingTransactionListView/invoicingTransactionListViewState';
807
+ export { ALL_INVOICING_TRANSACTION_SORT_KEYS, ALL_INVOICING_TRANSACTION_TAB_IDS, INVOICING_TRANSACTION_COLUMNS, } from './view/invoicing/invoicingTransactionListView/invoicingTransactionListViewState';
808
808
  export { getInvoicingTransactionListView } from './view/invoicing/invoicingTransactionListView/invoicingTransactionListViewSelector';
809
809
  export { clearInvoicingTransactionDetailView, fetchInvoicingTransactionDetail, } from './view/invoicing/invoicingTransactionDetailView/invoicingTransactionDetailViewReducer';
810
810
  export { getInvoicingTransactionById, getInvoicingTransactionDetail, } from './view/invoicing/invoicingTransactionDetailView/invoicingTransactionDetailViewSelector';
811
811
  // ── Invoicing: credit notes ───────────────────────────────────────────────────
812
812
  export { clearAllInvoicingCreditNotes, removeInvoicingCreditNote, updateInvoicingCreditNotes, } from './entity/invoicing/creditNote/creditNoteReducer';
813
813
  export { clearInvoicingCreditNoteListView, fetchInvoicingCreditNoteCounts, fetchInvoicingCreditNoteList, fetchInvoicingCreditNoteListPage, setInvoicingCreditNoteActiveTab, updateInvoicingCreditNoteFilters, } from './view/invoicing/invoicingCreditNoteListView/invoicingCreditNoteListViewReducer';
814
- export { ALL_INVOICING_CREDIT_NOTE_SORT_KEYS, ALL_INVOICING_CREDIT_NOTE_TAB_IDS, INVOICING_CREDIT_NOTE_COLUMNS, INVOICING_CREDIT_NOTE_TABS, } from './view/invoicing/invoicingCreditNoteListView/invoicingCreditNoteListViewState';
814
+ export { ALL_INVOICING_CREDIT_NOTE_SORT_KEYS, ALL_INVOICING_CREDIT_NOTE_TAB_IDS, INVOICING_CREDIT_NOTE_COLUMNS, } from './view/invoicing/invoicingCreditNoteListView/invoicingCreditNoteListViewState';
815
815
  export { getInvoicingCreditNoteListView } from './view/invoicing/invoicingCreditNoteListView/invoicingCreditNoteListViewSelector';
816
816
  export { clearInvoicingCreditNoteDetailView, fetchInvoicingCreditNoteDetail, } from './view/invoicing/invoicingCreditNoteDetailView/invoicingCreditNoteDetailViewReducer';
817
817
  export { getInvoicingCreditNoteById, getInvoicingCreditNoteDetail, } from './view/invoicing/invoicingCreditNoteDetailView/invoicingCreditNoteDetailViewSelector';
818
818
  // ── Invoicing: discounts (coupons) ────────────────────────────────────────────
819
819
  export { clearAllInvoicingCoupons, removeInvoicingCoupon, updateInvoicingCoupons, } from './entity/invoicing/coupon/couponReducer';
820
820
  export { clearInvoicingCouponView, fetchInvoicingCouponCounts, fetchInvoicingCouponList, fetchInvoicingCouponListPage, setInvoicingCouponActiveTab, updateInvoicingCouponFilters, } from './view/invoicing/couponView/couponViewReducer';
821
- export { ALL_INVOICING_COUPON_SORT_KEYS, ALL_INVOICING_COUPON_TAB_IDS, INVOICING_COUPON_COLUMNS, INVOICING_COUPON_TABS, } from './view/invoicing/couponView/couponViewState';
821
+ export { ALL_INVOICING_COUPON_SORT_KEYS, ALL_INVOICING_COUPON_TAB_IDS, INVOICING_COUPON_COLUMNS, } from './view/invoicing/couponView/couponViewState';
822
822
  export { getInvoicingCouponCounts, getInvoicingCouponListFetchState, getInvoicingCouponListFilters, getInvoicingCouponListHasMore, getInvoicingCouponListItems, getInvoicingCouponListNextCursor, getInvoicingCouponListView, } from './view/invoicing/couponView/couponViewSelector';
823
823
  export { getInvoicingCouponById } from './entity/invoicing/coupon/couponSelector';
824
824
  export { clearInvoicingCouponDetailView, fetchInvoicingCouponDetail, } from './view/invoicing/invoicingCouponDetailView/invoicingCouponDetailViewReducer';
@@ -826,7 +826,7 @@ export { getInvoicingCouponDetail } from './view/invoicing/invoicingCouponDetail
826
826
  // ── Invoicing: dunning ────────────────────────────────────────────────────────
827
827
  export { clearAllInvoicingDunningCases, removeInvoicingDunningCase, updateInvoicingDunningCases, } from './entity/invoicing/dunningCase/dunningCaseReducer';
828
828
  export { clearInvoicingDunningCaseListView, fetchInvoicingDunningCaseCounts, fetchInvoicingDunningCaseList, fetchInvoicingDunningCaseListPage, setInvoicingDunningCaseActiveTab, updateInvoicingDunningCaseFilters, } from './view/invoicing/invoicingDunningCaseListView/invoicingDunningCaseListViewReducer';
829
- export { ALL_INVOICING_DUNNING_CASE_SORT_KEYS, ALL_INVOICING_DUNNING_CASE_TAB_IDS, INVOICING_DUNNING_CASE_COLUMNS, INVOICING_DUNNING_CASE_TABS, } from './view/invoicing/invoicingDunningCaseListView/invoicingDunningCaseListViewState';
829
+ export { ALL_INVOICING_DUNNING_CASE_SORT_KEYS, ALL_INVOICING_DUNNING_CASE_TAB_IDS, INVOICING_DUNNING_CASE_COLUMNS, } from './view/invoicing/invoicingDunningCaseListView/invoicingDunningCaseListViewState';
830
830
  export { getInvoicingDunningCaseListView } from './view/invoicing/invoicingDunningCaseListView/invoicingDunningCaseListViewSelector';
831
831
  export { clearInvoicingDunningCaseDetailView, fetchInvoicingDunningCaseDetail, fetchInvoicingDunningEmailPreviewPage, invalidateInvoicingDunningEmailPreview, } from './view/invoicing/invoicingDunningCaseDetailView/invoicingDunningCaseDetailViewReducer';
832
832
  export { getInvoicingDunningCaseById, getInvoicingDunningCaseDetail, getInvoicingDunningEmailPreview, } from './view/invoicing/invoicingDunningCaseDetailView/invoicingDunningCaseDetailViewSelector';
@@ -852,3 +852,4 @@ export { INVOICING_QBO_CUSTOMER_MATCHING_MODES, getInvoicingQboAccountMappingId,
852
852
  // ── Invoicing: config ─────────────────────────────────────────────────────────
853
853
  export { acceptInvoicingTerms, clearInvoicingConfig, enableInvoicing, fetchInvoicingConfig, resetInvoicingConfigActionStates, updateInvoicingConfig, } from './view/invoicing/invoicingConfigView/invoicingConfigViewReducer';
854
854
  export { getInvoicingConfigView } from './view/invoicing/invoicingConfigView/invoicingConfigViewSelector';
855
+ export { getInvoicingOnboardingGateView } from './view/invoicing/invoicingConfigView/invoicingConfigViewSelector';
@@ -1,3 +1,4 @@
1
+ import { getInvoicingConfigView } from '../invoicingConfigView/invoicingConfigViewSelector';
1
2
  /**
2
3
  * Single bundled view for the invoicing audit log — consumers read only this.
3
4
  * Carries the log `items`, pagination (`nextCursor` + derived `hasMore`), the
@@ -5,7 +6,10 @@
5
6
  */
6
7
  export const getInvoicingAuditView = (state) => {
7
8
  const auditState = state.invoicingAuditViewState;
9
+ const { auditLogEntityRouteOptions, auditLogListSortFieldOptions } = getInvoicingConfigView(state);
8
10
  return {
11
+ auditLogEntityRouteOptions,
12
+ auditLogListSortFieldOptions,
9
13
  filters: auditState.filters,
10
14
  hasMore: auditState.nextCursor != null,
11
15
  items: auditState.items,
@@ -1,5 +1,6 @@
1
1
  import { createSelector } from '@reduxjs/toolkit';
2
- import { INVOICING_COUPON_COLUMNS, INVOICING_COUPON_TABS, } from './couponViewState';
2
+ import { invoicingTabIdsFromConfig } from '../invoicingTabHelper';
3
+ import { ALL_INVOICING_COUPON_TAB_IDS, INVOICING_COUPON_COLUMNS, } from './couponViewState';
3
4
  export const getInvoicingCouponListItems = (state) => state.invoicingCouponViewState.ids
4
5
  .map((id) => state.invoicingCouponState.couponByID[id])
5
6
  .filter((item) => item != null);
@@ -17,19 +18,22 @@ export const getInvoicingCouponCounts = (state) => state.invoicingCouponViewStat
17
18
  * array (and the wrapping view object) keep referential identity until the
18
19
  * coupon entity slice or the list-view slice actually change.
19
20
  */
20
- export const getInvoicingCouponListView = createSelector((state) => state.invoicingCouponState, (state) => state.invoicingCouponViewState, (couponState, listViewState) => {
21
+ export const getInvoicingCouponListView = createSelector((state) => state.invoicingCouponState, (state) => state.invoicingCouponViewState, (state) => state.invoicingConfigViewState.discountStatusOptions, (state) => state.invoicingConfigViewState.discountLifecycleActionOptions, (couponState, listViewState, statusOptions, discountLifecycleActionOptions) => {
21
22
  const { activeTab } = listViewState;
22
23
  const allCoupons = listViewState.ids
23
24
  .map((id) => couponState.couponByID[id])
24
25
  .filter((item) => item != null);
25
26
  // The list API ignores `status`, so it returns every status; filter to the
26
- // active tab client-side. 'all' shows everything, 'active' shows only active
27
- // coupons, and 'inactive' shows every non-active status (undefined included).
27
+ // active tab client-side. 'all' shows everything and 'inactive' is the
28
+ // FE-derived composite of every non-active status (undefined included);
29
+ // every other tab is a real backend status and matches exactly — without
30
+ // that, config-supplied tabs like `expired` and `archived` would each show
31
+ // the whole non-active set.
28
32
  const coupons = activeTab === 'all'
29
33
  ? allCoupons
30
- : allCoupons.filter((coupon) => activeTab === 'active'
31
- ? coupon.status === 'active'
32
- : coupon.status !== 'active');
34
+ : activeTab === 'inactive'
35
+ ? allCoupons.filter((coupon) => coupon.status !== 'active')
36
+ : allCoupons.filter((coupon) => coupon.status === activeTab);
33
37
  return {
34
38
  activeTab,
35
39
  columns: INVOICING_COUPON_COLUMNS,
@@ -38,7 +42,13 @@ export const getInvoicingCouponListView = createSelector((state) => state.invoic
38
42
  countsFetchState: listViewState.countsFetchState,
39
43
  filters: listViewState.filters,
40
44
  nextCursor: listViewState.nextCursor,
41
- tabIds: INVOICING_COUPON_TABS,
45
+ discountLifecycleActionOptions,
46
+ statusOptions,
47
+ tabIds: invoicingTabIdsFromConfig({
48
+ allTabIds: ALL_INVOICING_COUPON_TAB_IDS,
49
+ localTabIds: ['inactive'],
50
+ statusOptions,
51
+ }),
42
52
  fetchState: listViewState.fetchState,
43
53
  error: listViewState.error,
44
54
  sort: listViewState.sort,
@@ -28,12 +28,3 @@ export const ALL_INVOICING_COUPON_TAB_IDS = [
28
28
  'inactive',
29
29
  ];
30
30
  export const toInvoicingCouponTabId = (v) => stringToUnion(v, ALL_INVOICING_COUPON_TAB_IDS);
31
- /**
32
- * Ordered filter-tab id set owned by CES so the coupon/discount-list tabs live
33
- * next to the model rather than being hardcoded in web-components. Tab labels
34
- * and the per-tab count lookup stay in the view layer; this only carries the id
35
- * set and display order.
36
- */
37
- export const INVOICING_COUPON_TABS = [
38
- ...ALL_INVOICING_COUPON_TAB_IDS,
39
- ];
@@ -8,4 +8,5 @@ export const initialCreateCreditNoteFormLocalData = () => ({
8
8
  ],
9
9
  reasonCode: '',
10
10
  referenceInvoiceId: '',
11
+ type: '',
11
12
  });
@@ -15,10 +15,13 @@ export const localDataToCreateCreditNotePayload = (localData) => {
15
15
  lineItem.unit_amount > 0);
16
16
  const reasonCode = localData.reasonCode.trim();
17
17
  const referenceInvoiceId = localData.referenceInvoiceId.trim();
18
+ // Optional-chained: a draft persisted before this field existed has no
19
+ // `type`, and the draft survives navigation.
20
+ const type = localData.type?.trim() ?? '';
18
21
  return {
19
22
  customer_id: localData.customerId,
20
23
  line_items: lineItems,
21
- type: 'adjustment',
24
+ ...(type !== '' ? { type } : {}),
22
25
  ...(reasonCode !== '' ? { reason_code: reasonCode } : {}),
23
26
  ...(referenceInvoiceId !== ''
24
27
  ? { reference_invoice_id: referenceInvoiceId }
@@ -1,4 +1,4 @@
1
- import { INVOICING_CREDIT_NOTE_REASON_CODES } from '../issueCreditNote/issueCreditNoteFormConfig';
1
+ import { getInvoicingConfigView } from '../invoicingConfigView/invoicingConfigViewSelector';
2
2
  export const getCreateCreditNoteView = (state) => {
3
3
  const { createdCreditNoteId, error, fetchState } = state.invoicingCreateCreditNoteState;
4
4
  return {
@@ -10,9 +10,11 @@ export const getCreateCreditNoteView = (state) => {
10
10
  };
11
11
  export const getCreateCreditNoteFormView = (state) => {
12
12
  const { draft, error, fetchState } = state.invoicingCreateCreditNoteState;
13
+ const { creditNoteReasonCodeOptions, creditNoteTypeOptions } = getInvoicingConfigView(state);
13
14
  return {
14
15
  localData: draft,
15
- reasonCodeValues: [...INVOICING_CREDIT_NOTE_REASON_CODES],
16
+ reasonCodeOptions: creditNoteReasonCodeOptions,
17
+ typeOptions: creditNoteTypeOptions,
16
18
  error,
17
19
  fetchState,
18
20
  version: 1.0,
@@ -1,7 +1,7 @@
1
1
  import { createSelector } from '@reduxjs/toolkit';
2
2
  import { getInvoicingPlanById, getInvoicingPlansByIds, } from '../../../entity/invoicing/plan/planSelector';
3
3
  import { getInvoicingConfigView } from '../invoicingConfigView/invoicingConfigViewSelector';
4
- import { INVOICING_CATALOG_APPLICABILITY_VALUES, INVOICING_CATALOG_PERIOD_UNIT_VALUES, INVOICING_CATALOG_PRICING_MODEL_VALUES, INVOICING_CATALOG_PRORATION_VALUES, INVOICING_CATALOG_TIER_TYPE_VALUES, INVOICING_CATALOG_TRIAL_END_ACTION_VALUES, INVOICING_CATALOG_TRIAL_UNIT_VALUES, INVOICING_CATALOG_TYPE_VALUES, entityToInvoicingCatalogItemFormLocalData, } from './invoicingCatalogItemFormConfig';
4
+ import { INVOICING_CATALOG_APPLICABILITY_VALUES, INVOICING_CATALOG_PRICING_MODEL_VALUES, INVOICING_CATALOG_PRORATION_VALUES, INVOICING_CATALOG_TIER_TYPE_VALUES, entityToInvoicingCatalogItemFormLocalData, } from './invoicingCatalogItemFormConfig';
5
5
  export const getEditInvoicingCatalogItemDetailViewState = (state) => ({
6
6
  fetchState: state.editInvoicingCatalogItemDetailViewState.fetchState,
7
7
  error: state.editInvoicingCatalogItemDetailViewState.error,
@@ -48,19 +48,20 @@ export const getInvoicingCatalogItemFormView = (state, id) => {
48
48
  const applicableItemOptions = id != null
49
49
  ? allApplicableItemOptions.filter((option) => option.id !== id)
50
50
  : allApplicableItemOptions;
51
+ const { billingPeriodUnitOptions, catalogItemTypeOptions, catalogTierTypeOptionsByPricingModel, catalogTrialEndActionOptions, catalogTrialUnitOptions, } = getInvoicingConfigView(state);
51
52
  return {
52
53
  applicabilityValues: INVOICING_CATALOG_APPLICABILITY_VALUES,
53
54
  applicableItemOptions,
54
55
  localData,
55
56
  mode: id != null ? 'edit' : 'create',
56
- periodUnitValues: INVOICING_CATALOG_PERIOD_UNIT_VALUES,
57
+ periodUnitOptions: billingPeriodUnitOptions,
57
58
  pricingModelValues: INVOICING_CATALOG_PRICING_MODEL_VALUES,
58
59
  prorationValues: INVOICING_CATALOG_PRORATION_VALUES,
59
60
  tierTypeValues: INVOICING_CATALOG_TIER_TYPE_VALUES,
60
- trialEndActionValues: INVOICING_CATALOG_TRIAL_END_ACTION_VALUES,
61
- trialUnitValues: INVOICING_CATALOG_TRIAL_UNIT_VALUES,
62
- typeValues: INVOICING_CATALOG_TYPE_VALUES,
63
- catalogTierTypeOptionsByPricingModel: getInvoicingConfigView(state).catalogTierTypeOptionsByPricingModel,
61
+ trialEndActionOptions: catalogTrialEndActionOptions,
62
+ trialUnitOptions: catalogTrialUnitOptions,
63
+ typeOptions: catalogItemTypeOptions,
64
+ catalogTierTypeOptionsByPricingModel,
64
65
  kind,
65
66
  plan,
66
67
  savedItemId,
@@ -1,18 +1,8 @@
1
1
  /**
2
- * Canonical value sets for the catalog item form. CES owns the values;
3
- * web-components maps each value to a localized label.
2
+ * Value sets the catalog item form still owns locally: the backend has no enum
3
+ * for pricing model, tier type, proration or applicability yet, so these stay
4
+ * here until it does. Everything else on this form comes from `/1.0/config`.
4
5
  */
5
- export const INVOICING_CATALOG_TYPE_VALUES = [
6
- 'plan',
7
- 'addon',
8
- 'charge',
9
- ];
10
- export const INVOICING_CATALOG_PERIOD_UNIT_VALUES = [
11
- 'day',
12
- 'week',
13
- 'month',
14
- 'year',
15
- ];
16
6
  export const INVOICING_CATALOG_PRICING_MODEL_VALUES = [
17
7
  'flat_fee',
18
8
  'per_unit',
@@ -25,12 +15,6 @@ export const INVOICING_CATALOG_TIER_TYPE_VALUES = [
25
15
  'flat_fee',
26
16
  'package',
27
17
  ];
28
- export const INVOICING_CATALOG_TRIAL_UNIT_VALUES = ['day', 'month'];
29
- export const INVOICING_CATALOG_TRIAL_END_ACTION_VALUES = [
30
- 'site_default',
31
- 'activate_subscription',
32
- 'cancel_subscription',
33
- ];
34
18
  export const INVOICING_CATALOG_PRORATION_VALUES = [
35
19
  'site_default',
36
20
  'partial_term',
@@ -1,5 +1,6 @@
1
- import { INVOICING_COUPON_APPLY_ON_OPTIONS, INVOICING_COUPON_DURATION_TYPE_OPTIONS, INVOICING_COUPON_PERIOD_UNIT_OPTIONS, INVOICING_DISCOUNT_TYPE_OPTIONS, } from '../../../entity/invoicing/coupon/couponConstants';
2
1
  import { getInvoicingCouponById } from '../../../entity/invoicing/coupon/couponSelector';
2
+ import { toInvoicingFormOption, } from '../../../entity/invoicing/invoicingCommonPayload';
3
+ import { getInvoicingConfigView } from '../invoicingConfigView/invoicingConfigViewSelector';
3
4
  import { entityToInvoicingCouponFormLocalData, } from './editInvoicingCouponDetailViewState';
4
5
  /**
5
6
  * Bundled view for the discount create/edit form: the save fetch state/error,
@@ -8,7 +9,10 @@ import { entityToInvoicingCouponFormLocalData, } from './editInvoicingCouponDeta
8
9
  */
9
10
  export const getEditInvoicingCouponDetailViewState = (state, couponId) => {
10
11
  const { error, fetchState, savedCouponId } = state.editInvoicingCouponDetailViewState;
12
+ const { discountLifecycleActionOptions, fetchState: configFetchState } = getInvoicingConfigView(state);
11
13
  return {
14
+ configFetchState,
15
+ discountLifecycleActionOptions,
12
16
  coupon: couponId != null
13
17
  ? getInvoicingCouponById(state.invoicingCouponState, couponId)
14
18
  : undefined,
@@ -31,13 +35,14 @@ export const getInvoicingCouponFormView = (state, couponId) => {
31
35
  ? (editDraftById[couponId] ??
32
36
  entityToInvoicingCouponFormLocalData(base.coupon))
33
37
  : newCouponDraft;
38
+ const { billingPeriodUnitOptions, discountApplyOnOptions, discountDurationTypeOptions, discountTypeOptions, } = getInvoicingConfigView(state);
34
39
  return {
35
40
  ...base,
36
- applyOnOptions: INVOICING_COUPON_APPLY_ON_OPTIONS,
37
- discountTypeOptions: INVOICING_DISCOUNT_TYPE_OPTIONS,
38
- durationTypeOptions: INVOICING_COUPON_DURATION_TYPE_OPTIONS,
41
+ applyOnOptions: discountApplyOnOptions.map(toInvoicingFormOption),
42
+ discountTypeOptions: discountTypeOptions.map(toInvoicingFormOption),
43
+ durationTypeOptions: discountDurationTypeOptions.map(toInvoicingFormOption),
39
44
  localData,
40
45
  mode: couponId != null ? 'edit' : 'create',
41
- periodUnitOptions: INVOICING_COUPON_PERIOD_UNIT_OPTIONS,
46
+ periodUnitOptions: billingPeriodUnitOptions.map(toInvoicingFormOption),
42
47
  };
43
48
  };
@@ -1,6 +1,7 @@
1
1
  import { getInvoicingCustomerById } from '../../../entity/invoicing/invoicingCustomer/invoicingCustomerSelector';
2
2
  import { getFormattedAddress } from '../../addressView/addressViewSelector';
3
- import { INVOICING_CUSTOMER_BILLING_ADDRESS_TYPE, INVOICING_CUSTOMER_TYPE_VALUES, INVOICING_NET_TERM_DAY_VALUES, INVOICING_TAXABILITY_VALUES, entityToInvoicingCustomerFormLocalData, } from './invoicingCustomerFormConfig';
3
+ import { getInvoicingConfigView } from '../invoicingConfigView/invoicingConfigViewSelector';
4
+ import { INVOICING_CUSTOMER_BILLING_ADDRESS_TYPE, entityToInvoicingCustomerFormLocalData, } from './invoicingCustomerFormConfig';
4
5
  /**
5
6
  * Bundled view for the customer create/edit form. Exposes the draft `localData`
6
7
  * (seeded from the existing customer entity in edit mode until the user edits),
@@ -26,12 +27,13 @@ export const getInvoicingCustomerFormView = (state, invoicingCustomerID) => {
26
27
  const billingAddressLabel = newAddress?.addressToCreate != null
27
28
  ? getFormattedAddress(newAddress.addressToCreate)
28
29
  : undefined;
30
+ const { customerTypeOptions, netTermDayOptions, taxabilityOptions } = getInvoicingConfigView(state);
29
31
  return {
30
- customerTypeValues: [...INVOICING_CUSTOMER_TYPE_VALUES],
32
+ customerTypeOptions,
31
33
  localData,
32
34
  mode,
33
- netTermDayValues: [...INVOICING_NET_TERM_DAY_VALUES],
34
- taxabilityValues: [...INVOICING_TAXABILITY_VALUES],
35
+ netTermDayOptions,
36
+ taxabilityOptions,
35
37
  billingAddressId,
36
38
  billingAddressLabel,
37
39
  savedCustomerId,