@zeniai/client-epic-state 5.2.30-betaRD0 → 5.2.31

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 (93) hide show
  1. package/lib/commonStateTypes/coaBalance/classBalances/getSumOfBalancesGroupedByPeriod.js +16 -3
  2. package/lib/commonStateTypes/viewAndReport/reportIDHelper.d.ts +6 -0
  3. package/lib/commonStateTypes/viewAndReport/reportIDHelper.js +12 -1
  4. package/lib/commonStateTypes/viewAndReport/viewAndReport.d.ts +2 -2
  5. package/lib/commonStateTypes/viewAndReport/viewAndReport.js +2 -0
  6. package/lib/entity/accountGroup/accountGroupState.d.ts +1 -1
  7. package/lib/entity/class/classReducer.d.ts +4 -4
  8. package/lib/entity/class/classState.d.ts +1 -1
  9. package/lib/entity/forecast/forecastState.d.ts +1 -1
  10. package/lib/entity/sectionAccountsView/sectionAccountsView.d.ts +1 -1
  11. package/lib/entity/sectionClassesViewV2/sectionClassesView.d.ts +1 -1
  12. package/lib/entity/sectionClassesViewV2/sectionClassesViewEpic.js +2 -1
  13. package/lib/entity/sectionClassesViewV2/sectionClassesViewReducer.d.ts +2 -2
  14. package/lib/entity/sectionProjectView/sectionProjectView.d.ts +1 -1
  15. package/lib/entity/sectionProjectView/sectionProjectViewReducer.d.ts +2 -2
  16. package/lib/epic.d.ts +5 -1
  17. package/lib/epic.js +8 -0
  18. package/lib/esm/commonStateTypes/coaBalance/classBalances/getSumOfBalancesGroupedByPeriod.js +16 -3
  19. package/lib/esm/commonStateTypes/viewAndReport/reportIDHelper.js +7 -0
  20. package/lib/esm/commonStateTypes/viewAndReport/viewAndReport.js +2 -0
  21. package/lib/esm/entity/sectionClassesViewV2/sectionClassesViewEpic.js +2 -1
  22. package/lib/esm/epic.js +8 -0
  23. package/lib/esm/index.js +7 -3
  24. package/lib/esm/reducer.js +6 -0
  25. package/lib/esm/view/cashFlow/cashFlowGroupedSectionOrder.js +47 -0
  26. package/lib/esm/view/cashFlowClassesView/cashFlowClassesViewEpic.js +30 -0
  27. package/lib/esm/view/cashFlowClassesView/cashFlowClassesViewPayload.js +1 -0
  28. package/lib/esm/view/cashFlowClassesView/cashFlowClassesViewReducer.js +129 -0
  29. package/lib/esm/view/cashFlowClassesView/cashFlowClassesViewSelector.js +53 -0
  30. package/lib/esm/view/cashFlowClassesView/cashFlowClassesViewSelectorTypes.js +1 -0
  31. package/lib/esm/view/cashFlowClassesView/cashFlowClassesViewState.js +1 -0
  32. package/lib/esm/view/cashFlowClassesView/cashFlowForTimeframeClassesViewEpic.js +55 -0
  33. package/lib/esm/view/cashFlowProjectView/cashFlowForTimeframeProjectViewEpic.js +57 -0
  34. package/lib/esm/view/cashFlowProjectView/cashFlowProjectViewEpic.js +30 -0
  35. package/lib/esm/view/cashFlowProjectView/cashFlowProjectViewPayload.js +1 -0
  36. package/lib/esm/view/cashFlowProjectView/cashFlowProjectViewReducer.js +125 -0
  37. package/lib/esm/view/cashFlowProjectView/cashFlowProjectViewSelector.js +54 -0
  38. package/lib/esm/view/cashFlowProjectView/cashFlowProjectViewSelectorTypes.js +1 -0
  39. package/lib/esm/view/cashFlowProjectView/cashFlowProjectViewState.js +1 -0
  40. package/lib/esm/view/expenseAutomationView/epics/jeSchedule/fetchJeSchedulesEpic.js +11 -29
  41. package/lib/esm/view/financeStatement/financeStatementSelector.js +21 -1
  42. package/lib/index.d.ts +11 -3
  43. package/lib/index.js +71 -48
  44. package/lib/reducer.d.ts +2 -0
  45. package/lib/reducer.js +6 -0
  46. package/lib/rootStateTypes.d.ts +4 -0
  47. package/lib/view/auditReportView/auditReportViewState.d.ts +1 -1
  48. package/lib/view/billPayCard/billPayCardSelector.d.ts +1 -1
  49. package/lib/view/cardBalance/cardBalanceSelector.d.ts +1 -1
  50. package/lib/view/cashBalance/cashBalanceSelector.d.ts +1 -1
  51. package/lib/view/cashFlow/cashFlowGroupedSectionOrder.d.ts +15 -0
  52. package/lib/view/cashFlow/cashFlowGroupedSectionOrder.js +50 -0
  53. package/lib/view/cashFlowClassesView/cashFlowClassesViewEpic.d.ts +6 -0
  54. package/lib/view/cashFlowClassesView/cashFlowClassesViewEpic.js +34 -0
  55. package/lib/view/cashFlowClassesView/cashFlowClassesViewPayload.d.ts +14 -0
  56. package/lib/view/cashFlowClassesView/cashFlowClassesViewPayload.js +2 -0
  57. package/lib/view/cashFlowClassesView/cashFlowClassesViewReducer.d.ts +34 -0
  58. package/lib/view/cashFlowClassesView/cashFlowClassesViewReducer.js +133 -0
  59. package/lib/view/cashFlowClassesView/cashFlowClassesViewSelector.d.ts +7 -0
  60. package/lib/view/cashFlowClassesView/cashFlowClassesViewSelector.js +57 -0
  61. package/lib/view/cashFlowClassesView/cashFlowClassesViewSelectorTypes.d.ts +15 -0
  62. package/lib/view/cashFlowClassesView/cashFlowClassesViewSelectorTypes.js +2 -0
  63. package/lib/view/cashFlowClassesView/cashFlowClassesViewState.d.ts +23 -0
  64. package/lib/view/cashFlowClassesView/cashFlowClassesViewState.js +2 -0
  65. package/lib/view/cashFlowClassesView/cashFlowForTimeframeClassesViewEpic.d.ts +9 -0
  66. package/lib/view/cashFlowClassesView/cashFlowForTimeframeClassesViewEpic.js +60 -0
  67. package/lib/view/cashFlowProjectView/cashFlowForTimeframeProjectViewEpic.d.ts +10 -0
  68. package/lib/view/cashFlowProjectView/cashFlowForTimeframeProjectViewEpic.js +62 -0
  69. package/lib/view/cashFlowProjectView/cashFlowProjectViewEpic.d.ts +6 -0
  70. package/lib/view/cashFlowProjectView/cashFlowProjectViewEpic.js +34 -0
  71. package/lib/view/cashFlowProjectView/cashFlowProjectViewPayload.d.ts +14 -0
  72. package/lib/view/cashFlowProjectView/cashFlowProjectViewPayload.js +2 -0
  73. package/lib/view/cashFlowProjectView/cashFlowProjectViewReducer.d.ts +33 -0
  74. package/lib/view/cashFlowProjectView/cashFlowProjectViewReducer.js +129 -0
  75. package/lib/view/cashFlowProjectView/cashFlowProjectViewSelector.d.ts +7 -0
  76. package/lib/view/cashFlowProjectView/cashFlowProjectViewSelector.js +58 -0
  77. package/lib/view/cashFlowProjectView/cashFlowProjectViewSelectorTypes.d.ts +19 -0
  78. package/lib/view/cashFlowProjectView/cashFlowProjectViewSelectorTypes.js +2 -0
  79. package/lib/view/cashFlowProjectView/cashFlowProjectViewState.d.ts +22 -0
  80. package/lib/view/cashFlowProjectView/cashFlowProjectViewState.js +2 -0
  81. package/lib/view/cashInCashOut/cashInCashOutSelector.d.ts +1 -1
  82. package/lib/view/cashPosition/cashPositionSelector.d.ts +1 -1
  83. package/lib/view/dashboard/dashboardReducer.d.ts +2 -2
  84. package/lib/view/expenseAutomationView/epics/jeSchedule/fetchJeSchedulesEpic.js +11 -29
  85. package/lib/view/financeStatement/financeStatementReducer.d.ts +1 -1
  86. package/lib/view/financeStatement/financeStatementSelector.d.ts +4 -0
  87. package/lib/view/financeStatement/financeStatementSelector.js +21 -1
  88. package/lib/view/globalMerchantView/globalMerchantViewReducer.d.ts +2 -2
  89. package/lib/view/reimbursementCard/reimbursementCardSelector.d.ts +1 -1
  90. package/lib/view/reportsResync/reportsResyncReducer.d.ts +2 -2
  91. package/lib/view/tasksCard/tasksCardSelector.d.ts +1 -1
  92. package/lib/view/topEx/topExSelector.d.ts +1 -1
  93. package/package.json +1 -1
@@ -68,13 +68,26 @@ const getSumForCOABalances = (coaBalancesArray) => {
68
68
  }
69
69
  for (let dateIndex = 0; dateIndex < balancesLength; dateIndex++) {
70
70
  let sumAmount = 0;
71
+ // The template comes from the first input, so its type has to be recomputed:
72
+ // if that one had no value for this period but another did, keeping
73
+ // 'default_with_null_balance' would render the sum as a dash.
74
+ let hasValueInPeriod = false;
71
75
  for (let totalIndex = 0; totalIndex < totalBalances; totalIndex++) {
72
- sumAmount += coaBalancesArray[totalIndex][dateIndex].balance.amount;
76
+ const eachBalance = coaBalancesArray[totalIndex][dateIndex];
77
+ sumAmount += eachBalance.balance.amount;
78
+ if (eachBalance.type !== 'default_with_null_balance') {
79
+ hasValueInPeriod = true;
80
+ }
73
81
  }
74
- const resultBalance = Object.assign({}, coaBalancesArray[0][dateIndex], {
75
- balance: Object.assign({}, coaBalancesArray[0][dateIndex].balance, {
82
+ const templateBalance = coaBalancesArray[0][dateIndex];
83
+ const resultBalance = Object.assign({}, templateBalance, {
84
+ balance: Object.assign({}, templateBalance.balance, {
76
85
  amount: sumAmount,
77
86
  }),
87
+ type: templateBalance.type === 'default_with_null_balance' &&
88
+ hasValueInPeriod === true
89
+ ? 'default'
90
+ : templateBalance.type,
78
91
  });
79
92
  resultBalances.push(resultBalance);
80
93
  }
@@ -15,6 +15,12 @@ export declare const isBalanceSheetClassesViewReport: (reportId: ReportIDPlusFor
15
15
  export declare const isBalanceSheetProjectViewReport: (reportId: ReportIDPlusForecastID) => boolean;
16
16
  /** The two grouped Balance Sheet views, excluding the accounts view. */
17
17
  export declare const isGroupedBalanceSheetReport: (reportId: ReportIDPlusForecastID) => boolean;
18
+ /** Matches the whole Cash Flow family — accounts view plus the grouped variants. */
19
+ export declare const isCashFlowReport: (reportId: ReportIDPlusForecastID) => boolean;
20
+ export declare const isCashFlowClassesViewReport: (reportId: ReportIDPlusForecastID) => boolean;
21
+ export declare const isCashFlowProjectViewReport: (reportId: ReportIDPlusForecastID) => boolean;
22
+ /** The two grouped Cash Flow views, excluding the accounts view. */
23
+ export declare const isGroupedCashFlowReport: (reportId: ReportIDPlusForecastID) => boolean;
18
24
  /**
19
25
  * Matches Cash Flow plus the whole Balance Sheet family, grouped views included.
20
26
  * Its one consumer (`TreeNode`) routes the grouped ids to the P&L row components
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isFluxAnalysisOpExReport = exports.isOpExByVendorReport = exports.isAgingReport = exports.isCashFlowOrBalanceSheetReport = exports.isGroupedBalanceSheetReport = exports.isBalanceSheetProjectViewReport = exports.isBalanceSheetClassesViewReport = exports.isBalanceSheetReport = exports.isDashboardProjectViewReport = exports.isDashboardClassesViewReport = exports.isDashboardReport = exports.isPAndLProjectViewReport = exports.isPAndLClassesViewReport = exports.isPAndLReport = void 0;
3
+ exports.isFluxAnalysisOpExReport = exports.isOpExByVendorReport = exports.isAgingReport = exports.isCashFlowOrBalanceSheetReport = exports.isGroupedCashFlowReport = exports.isCashFlowProjectViewReport = exports.isCashFlowClassesViewReport = exports.isCashFlowReport = exports.isGroupedBalanceSheetReport = exports.isBalanceSheetProjectViewReport = exports.isBalanceSheetClassesViewReport = exports.isBalanceSheetReport = exports.isDashboardProjectViewReport = exports.isDashboardClassesViewReport = exports.isDashboardReport = exports.isPAndLProjectViewReport = exports.isPAndLClassesViewReport = exports.isPAndLReport = void 0;
4
4
  const isPAndLReport = (reportId) => reportId.startsWith('profit_and_loss');
5
5
  exports.isPAndLReport = isPAndLReport;
6
6
  const isPAndLClassesViewReport = (reportId) => reportId.startsWith('profit_and_loss_by_classes');
@@ -61,6 +61,17 @@ exports.isBalanceSheetProjectViewReport = isBalanceSheetProjectViewReport;
61
61
  const isGroupedBalanceSheetReport = (reportId) => (0, exports.isBalanceSheetClassesViewReport)(reportId) ||
62
62
  (0, exports.isBalanceSheetProjectViewReport)(reportId);
63
63
  exports.isGroupedBalanceSheetReport = isGroupedBalanceSheetReport;
64
+ /** Matches the whole Cash Flow family — accounts view plus the grouped variants. */
65
+ const isCashFlowReport = (reportId) => reportId.startsWith('cash_flow');
66
+ exports.isCashFlowReport = isCashFlowReport;
67
+ const isCashFlowClassesViewReport = (reportId) => reportId.startsWith('cash_flow_by_classes');
68
+ exports.isCashFlowClassesViewReport = isCashFlowClassesViewReport;
69
+ const isCashFlowProjectViewReport = (reportId) => reportId.startsWith('cash_flow_by_projects');
70
+ exports.isCashFlowProjectViewReport = isCashFlowProjectViewReport;
71
+ /** The two grouped Cash Flow views, excluding the accounts view. */
72
+ const isGroupedCashFlowReport = (reportId) => (0, exports.isCashFlowClassesViewReport)(reportId) ||
73
+ (0, exports.isCashFlowProjectViewReport)(reportId);
74
+ exports.isGroupedCashFlowReport = isGroupedCashFlowReport;
64
75
  /**
65
76
  * Matches Cash Flow plus the whole Balance Sheet family, grouped views included.
66
77
  * Its one consumer (`TreeNode`) routes the grouped ids to the P&L row components
@@ -3,8 +3,8 @@ import { FetchStateAndError, ID } from '../common';
3
3
  import { DataAvailable } from '../dataAvailable';
4
4
  import { Status } from '../status';
5
5
  import { Month } from '../timePeriod';
6
- export declare const ALL_REPORT_IDS: readonly ["cash_balance", "card_balance", "expense_automation_card", "operating_expenses", "operating_expenses_by_classes", "operating_expenses_by_projects", "revenue", "revenue_by_classes", "revenue_by_projects", "net_burn_or_income", "net_burn_or_income_story_card", "net_burn_or_income_by_classes", "net_burn_or_income_by_projects", "cash_position", "top_expenses", "profit_and_loss", "profit_and_loss_by_classes", "profit_and_loss_by_projects", "balance_sheet", "balance_sheet_by_classes", "balance_sheet_by_projects", "cash_flow", "dashboard", "finance_statement", "transaction_list_of_account", "transaction_list_missing_receipt", "transaction_list_of_account_by_class", "transaction_list_of_account_by_project", "transaction_detail", "cash_in_cash_out", "insights_dashboard", "company_details", "class_list", "account_list", "account_list_by_type", "vendor", "task_card", "bill_pay", "reimbursement", "bill_pay_card", "reimbursement_card", "bill_pay_promo_card", "zeni_accounts", "zeni_accounts_promo_card", "zeni_treasury", "charge_cards", "other_connection", "reimbursement_promo_card", "onboarding", "operating_expenses_by_vendor", "operating_expenses_by_vendor_summary", "vendors_tab", "accounts_payable_aging", "accounts_receivable_aging", "vendor_global_review", "prepaid_expenses", "fixed_assets", "notification", "rewards_card", "billing", "flux_analysis_operating_expense", "account_reconciliation", "zeni_credit_promo_card", "treasury_promo_card", "excluded_account_reconciliation", "transfer_accounts", "credit_card_transfer_accounts"];
7
- export declare const toReportID: (v: string) => "vendor" | "cash_balance" | "card_balance" | "expense_automation_card" | "operating_expenses" | "operating_expenses_by_classes" | "operating_expenses_by_projects" | "revenue" | "revenue_by_classes" | "revenue_by_projects" | "net_burn_or_income" | "net_burn_or_income_story_card" | "net_burn_or_income_by_classes" | "net_burn_or_income_by_projects" | "cash_position" | "top_expenses" | "profit_and_loss" | "profit_and_loss_by_classes" | "profit_and_loss_by_projects" | "balance_sheet" | "balance_sheet_by_classes" | "balance_sheet_by_projects" | "cash_flow" | "dashboard" | "finance_statement" | "transaction_list_of_account" | "transaction_list_missing_receipt" | "transaction_list_of_account_by_class" | "transaction_list_of_account_by_project" | "transaction_detail" | "cash_in_cash_out" | "insights_dashboard" | "company_details" | "class_list" | "account_list" | "account_list_by_type" | "task_card" | "bill_pay" | "reimbursement" | "bill_pay_card" | "reimbursement_card" | "bill_pay_promo_card" | "zeni_accounts" | "zeni_accounts_promo_card" | "zeni_treasury" | "charge_cards" | "other_connection" | "reimbursement_promo_card" | "onboarding" | "operating_expenses_by_vendor" | "operating_expenses_by_vendor_summary" | "vendors_tab" | "accounts_payable_aging" | "accounts_receivable_aging" | "vendor_global_review" | "prepaid_expenses" | "fixed_assets" | "notification" | "rewards_card" | "billing" | "flux_analysis_operating_expense" | "account_reconciliation" | "zeni_credit_promo_card" | "treasury_promo_card" | "excluded_account_reconciliation" | "transfer_accounts" | "credit_card_transfer_accounts";
6
+ export declare const ALL_REPORT_IDS: readonly ["cash_balance", "card_balance", "expense_automation_card", "operating_expenses", "operating_expenses_by_classes", "operating_expenses_by_projects", "revenue", "revenue_by_classes", "revenue_by_projects", "net_burn_or_income", "net_burn_or_income_story_card", "net_burn_or_income_by_classes", "net_burn_or_income_by_projects", "cash_position", "top_expenses", "profit_and_loss", "profit_and_loss_by_classes", "profit_and_loss_by_projects", "balance_sheet", "balance_sheet_by_classes", "balance_sheet_by_projects", "cash_flow", "cash_flow_by_classes", "cash_flow_by_projects", "dashboard", "finance_statement", "transaction_list_of_account", "transaction_list_missing_receipt", "transaction_list_of_account_by_class", "transaction_list_of_account_by_project", "transaction_detail", "cash_in_cash_out", "insights_dashboard", "company_details", "class_list", "account_list", "account_list_by_type", "vendor", "task_card", "bill_pay", "reimbursement", "bill_pay_card", "reimbursement_card", "bill_pay_promo_card", "zeni_accounts", "zeni_accounts_promo_card", "zeni_treasury", "charge_cards", "other_connection", "reimbursement_promo_card", "onboarding", "operating_expenses_by_vendor", "operating_expenses_by_vendor_summary", "vendors_tab", "accounts_payable_aging", "accounts_receivable_aging", "vendor_global_review", "prepaid_expenses", "fixed_assets", "notification", "rewards_card", "billing", "flux_analysis_operating_expense", "account_reconciliation", "zeni_credit_promo_card", "treasury_promo_card", "excluded_account_reconciliation", "transfer_accounts", "credit_card_transfer_accounts"];
7
+ export declare const toReportID: (v: string) => "vendor" | "cash_balance" | "card_balance" | "expense_automation_card" | "operating_expenses" | "operating_expenses_by_classes" | "operating_expenses_by_projects" | "revenue" | "revenue_by_classes" | "revenue_by_projects" | "net_burn_or_income" | "net_burn_or_income_story_card" | "net_burn_or_income_by_classes" | "net_burn_or_income_by_projects" | "cash_position" | "top_expenses" | "profit_and_loss" | "profit_and_loss_by_classes" | "profit_and_loss_by_projects" | "balance_sheet" | "balance_sheet_by_classes" | "balance_sheet_by_projects" | "cash_flow" | "cash_flow_by_classes" | "cash_flow_by_projects" | "dashboard" | "finance_statement" | "transaction_list_of_account" | "transaction_list_missing_receipt" | "transaction_list_of_account_by_class" | "transaction_list_of_account_by_project" | "transaction_detail" | "cash_in_cash_out" | "insights_dashboard" | "company_details" | "class_list" | "account_list" | "account_list_by_type" | "task_card" | "bill_pay" | "reimbursement" | "bill_pay_card" | "reimbursement_card" | "bill_pay_promo_card" | "zeni_accounts" | "zeni_accounts_promo_card" | "zeni_treasury" | "charge_cards" | "other_connection" | "reimbursement_promo_card" | "onboarding" | "operating_expenses_by_vendor" | "operating_expenses_by_vendor_summary" | "vendors_tab" | "accounts_payable_aging" | "accounts_receivable_aging" | "vendor_global_review" | "prepaid_expenses" | "fixed_assets" | "notification" | "rewards_card" | "billing" | "flux_analysis_operating_expense" | "account_reconciliation" | "zeni_credit_promo_card" | "treasury_promo_card" | "excluded_account_reconciliation" | "transfer_accounts" | "credit_card_transfer_accounts";
8
8
  export type ReportID = ReturnType<typeof toReportID>;
9
9
  export type ReportIDPlusForecastID = ReportID | `${ReportID}+${ID}`;
10
10
  /** Any view state should extend this interface */
@@ -25,6 +25,8 @@ exports.ALL_REPORT_IDS = [
25
25
  'balance_sheet_by_classes',
26
26
  'balance_sheet_by_projects',
27
27
  'cash_flow',
28
+ 'cash_flow_by_classes',
29
+ 'cash_flow_by_projects',
28
30
  'dashboard',
29
31
  'finance_statement',
30
32
  'transaction_list_of_account',