@zeniai/client-epic-state 4.20.4 → 4.20.6

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 (168) hide show
  1. package/lib/commonStateTypes/coaBalance/additionalBalances/getSummationBalance.d.ts +1 -1
  2. package/lib/commonStateTypes/coaBalance/coaBalanceType.d.ts +0 -2
  3. package/lib/commonStateTypes/coaBalance/coaBalanceType.js +0 -6
  4. package/lib/commonStateTypes/currencyHelper.d.ts +0 -3
  5. package/lib/commonStateTypes/currencyHelper.js +1 -6
  6. package/lib/commonStateTypes/reduceFetchState.d.ts +0 -9
  7. package/lib/commonStateTypes/reduceFetchState.js +0 -26
  8. package/lib/entity/account/accountPayload.d.ts +0 -2
  9. package/lib/entity/account/accountPayload.js +0 -2
  10. package/lib/entity/account/accountState.d.ts +0 -2
  11. package/lib/entity/customer/customerState.d.ts +2 -0
  12. package/lib/entity/customer/customerState.js +5 -0
  13. package/lib/entity/depositAccount/depositAccount.d.ts +1 -1
  14. package/lib/entity/depositAccount/depositAccount.js +1 -8
  15. package/lib/entity/reimbursement/reimbursementPayload.d.ts +0 -2
  16. package/lib/entity/reimbursement/reimbursementPayload.js +0 -7
  17. package/lib/entity/reimbursement/reimbursementState.d.ts +0 -2
  18. package/lib/entity/snackbar/snackbarTypes.d.ts +1 -1
  19. package/lib/entity/snackbar/snackbarTypes.js +0 -1
  20. package/lib/entity/task/taskPayload.d.ts +0 -1
  21. package/lib/entity/task/taskPayload.js +0 -1
  22. package/lib/entity/task/taskState.d.ts +0 -1
  23. package/lib/epic.d.ts +1 -12
  24. package/lib/epic.js +1 -12
  25. package/lib/esm/commonStateTypes/coaBalance/coaBalanceType.js +0 -5
  26. package/lib/esm/commonStateTypes/currencyHelper.js +0 -5
  27. package/lib/esm/commonStateTypes/reduceFetchState.js +0 -25
  28. package/lib/esm/entity/account/accountPayload.js +0 -2
  29. package/lib/esm/entity/customer/customerState.js +4 -1
  30. package/lib/esm/entity/depositAccount/depositAccount.js +1 -8
  31. package/lib/esm/entity/reimbursement/reimbursementPayload.js +0 -7
  32. package/lib/esm/entity/snackbar/snackbarTypes.js +0 -1
  33. package/lib/esm/entity/task/taskPayload.js +0 -1
  34. package/lib/esm/epic.js +1 -12
  35. package/lib/esm/index.js +10 -19
  36. package/lib/esm/reducer.js +0 -6
  37. package/lib/esm/view/arAgingView/arAgingReport/arAgingReducer.js +1 -1
  38. package/lib/esm/view/arAgingView/arAgingReport/arAgingSelector.js +1 -1
  39. package/lib/esm/view/expenseAutomationView/epics/missingReceipts/uploadMissingReceiptSuccessEpic.js +5 -7
  40. package/lib/esm/view/expenseAutomationView/payload/missingReceiptsPayload.js +1 -189
  41. package/lib/esm/view/expenseAutomationView/reducers/missingReceiptsViewReducer.js +2 -433
  42. package/lib/esm/view/expenseAutomationView/reducers/transactionsViewReducer.js +1 -23
  43. package/lib/esm/view/expenseAutomationView/selectors/missingReceiptsSelector.js +1 -244
  44. package/lib/esm/view/expenseAutomationView/selectors/transactionCategorizationSelector.js +1 -2
  45. package/lib/esm/view/expenseAutomationView/types/missingReceiptsViewState.js +0 -44
  46. package/lib/esm/view/expenseAutomationView/types/transactionsViewState.js +1 -2
  47. package/lib/esm/view/financeStatement/financeStatementReducer.js +8 -11
  48. package/lib/esm/view/financeStatement/financeStatementSelector.js +9 -24
  49. package/lib/esm/view/profitAndLossClassesView/profitAndLossClassesViewReducer.js +1 -6
  50. package/lib/esm/view/profitAndLossClassesView/profitAndLossClassesViewSelector.js +29 -2
  51. package/lib/esm/view/profitAndLossClassesView/profitAndLossForTimeframeClassesViewEpic.js +5 -7
  52. package/lib/esm/view/reportUIOptions/updateReportUIOptionCOABalancesRangeEpic.js +7 -9
  53. package/lib/esm/view/taskManager/taskDetailView/taskDetailSelector.js +1 -1
  54. package/lib/esm/view/taskManager/taskListView/epics/bulkUpdateTaskListEpic.js +0 -1
  55. package/lib/esm/view/taskManager/taskListView/taskListSelector.js +1 -3
  56. package/lib/esm/view/twoFactorAuthentication/resendOtpEpic.js +16 -2
  57. package/lib/esm/view/userListView/fetchUserListByTypeEpic.js +0 -11
  58. package/lib/esm/zeniAPI.js +2 -0
  59. package/lib/index.d.ts +12 -20
  60. package/lib/index.js +34 -94
  61. package/lib/reducer.d.ts +0 -6
  62. package/lib/reducer.js +0 -6
  63. package/lib/view/arAgingView/arAgingReport/arAgingReducer.js +2 -2
  64. package/lib/view/arAgingView/arAgingReport/arAgingSelector.js +5 -5
  65. package/lib/view/expenseAutomationView/epics/missingReceipts/uploadMissingReceiptSuccessEpic.js +5 -7
  66. package/lib/view/expenseAutomationView/helpers/transactionCategorizationLocalDataHelper.d.ts +1 -1
  67. package/lib/view/expenseAutomationView/payload/missingReceiptsPayload.d.ts +0 -118
  68. package/lib/view/expenseAutomationView/payload/missingReceiptsPayload.js +0 -201
  69. package/lib/view/expenseAutomationView/reducers/missingReceiptsViewReducer.d.ts +3 -76
  70. package/lib/view/expenseAutomationView/reducers/missingReceiptsViewReducer.js +2 -434
  71. package/lib/view/expenseAutomationView/reducers/transactionsViewReducer.d.ts +3 -11
  72. package/lib/view/expenseAutomationView/reducers/transactionsViewReducer.js +2 -24
  73. package/lib/view/expenseAutomationView/selectorTypes/missingReceiptsSelectorTypes.d.ts +1 -69
  74. package/lib/view/expenseAutomationView/selectorTypes/transactionsViewSelectorTypes.d.ts +0 -1
  75. package/lib/view/expenseAutomationView/selectors/missingReceiptsSelector.d.ts +1 -1
  76. package/lib/view/expenseAutomationView/selectors/missingReceiptsSelector.js +0 -243
  77. package/lib/view/expenseAutomationView/selectors/transactionCategorizationSelector.js +1 -2
  78. package/lib/view/expenseAutomationView/types/missingReceiptsViewState.d.ts +0 -142
  79. package/lib/view/expenseAutomationView/types/missingReceiptsViewState.js +1 -54
  80. package/lib/view/expenseAutomationView/types/transactionsViewState.d.ts +1 -2
  81. package/lib/view/expenseAutomationView/types/transactionsViewState.js +1 -2
  82. package/lib/view/financeStatement/financeStatementReducer.js +8 -11
  83. package/lib/view/financeStatement/financeStatementSelector.d.ts +0 -2
  84. package/lib/view/financeStatement/financeStatementSelector.js +9 -24
  85. package/lib/view/profitAndLossClassesView/profitAndLossClassesViewReducer.d.ts +2 -4
  86. package/lib/view/profitAndLossClassesView/profitAndLossClassesViewReducer.js +2 -7
  87. package/lib/view/profitAndLossClassesView/profitAndLossClassesViewSelector.js +29 -2
  88. package/lib/view/profitAndLossClassesView/profitAndLossClassesViewState.d.ts +0 -4
  89. package/lib/view/profitAndLossClassesView/profitAndLossForTimeframeClassesViewEpic.js +5 -7
  90. package/lib/view/reportUIOptions/updateReportUIOptionCOABalancesRangeEpic.js +6 -8
  91. package/lib/view/taskManager/taskDetailView/taskDetailSelector.js +1 -1
  92. package/lib/view/taskManager/taskListView/epics/bulkUpdateTaskListEpic.d.ts +0 -1
  93. package/lib/view/taskManager/taskListView/epics/bulkUpdateTaskListEpic.js +0 -1
  94. package/lib/view/taskManager/taskListView/taskListSelector.d.ts +0 -2
  95. package/lib/view/taskManager/taskListView/taskListSelector.js +1 -3
  96. package/lib/view/twoFactorAuthentication/resendOtpEpic.d.ts +1 -1
  97. package/lib/view/twoFactorAuthentication/resendOtpEpic.js +15 -1
  98. package/lib/view/userListView/fetchUserListByTypeEpic.d.ts +1 -3
  99. package/lib/view/userListView/fetchUserListByTypeEpic.js +0 -11
  100. package/lib/view/userListView/userListViewPayload.d.ts +0 -2
  101. package/lib/zeniAPI.js +2 -0
  102. package/package.json +3 -3
  103. package/lib/entity/userGroups/userGroupsPayload.d.ts +0 -7
  104. package/lib/entity/userGroups/userGroupsPayload.js +0 -10
  105. package/lib/entity/userGroups/userGroupsReducer.d.ts +0 -8
  106. package/lib/entity/userGroups/userGroupsReducer.js +0 -29
  107. package/lib/entity/userGroups/userGroupsSelector.d.ts +0 -4
  108. package/lib/entity/userGroups/userGroupsSelector.js +0 -12
  109. package/lib/entity/userGroups/userGroupsState.d.ts +0 -9
  110. package/lib/entity/userGroups/userGroupsState.js +0 -2
  111. package/lib/esm/entity/userGroups/userGroupsPayload.js +0 -7
  112. package/lib/esm/entity/userGroups/userGroupsReducer.js +0 -25
  113. package/lib/esm/entity/userGroups/userGroupsSelector.js +0 -8
  114. package/lib/esm/entity/userGroups/userGroupsState.js +0 -1
  115. package/lib/esm/view/expenseAutomationView/bulkUploadTiming.js +0 -10
  116. package/lib/esm/view/expenseAutomationView/epics/missingReceipts/bulkUploadReceiptsEpic.js +0 -29
  117. package/lib/esm/view/expenseAutomationView/epics/missingReceipts/confirmBulkUploadMatchEpic.js +0 -49
  118. package/lib/esm/view/expenseAutomationView/epics/missingReceipts/fetchBulkUploadBatchDetailsEpic.js +0 -40
  119. package/lib/esm/view/expenseAutomationView/epics/missingReceipts/fetchBulkUploadBatchesEpic.js +0 -47
  120. package/lib/esm/view/expenseAutomationView/epics/missingReceipts/fetchCompletedTransactionsEpic.js +0 -61
  121. package/lib/esm/view/expenseAutomationView/epics/missingReceipts/fetchMoreBatchDetailsEpic.js +0 -33
  122. package/lib/esm/view/expenseAutomationView/epics/missingReceipts/fetchMultipleBatchDetailsEpic.js +0 -56
  123. package/lib/esm/view/expenseAutomationView/epics/missingReceipts/searchTransactionsForManualMatchEpic.js +0 -77
  124. package/lib/esm/view/expenseAutomationView/epics/missingReceipts/watchBulkUploadBatchStatusEpic.js +0 -79
  125. package/lib/esm/view/expenseAutomationView/epics/transactionCategorization/uploadTransactionReceiptSuccessEpic.js +0 -24
  126. package/lib/esm/view/profitAndLossClassesView/horizontalSectionEmptyBalancesSlice.js +0 -17
  127. package/lib/esm/view/profitAndLossClassesView/profitAndLossClassesByClassHorizontalSelector.js +0 -331
  128. package/lib/esm/view/profitAndLossClassesView/profitAndLossClassesByClassHorizontalSelectorTypes.js +0 -9
  129. package/lib/esm/view/profitAndLossClassesView/profitAndLossHorizontalEnrichment.js +0 -262
  130. package/lib/esm/view/userGroupListView/userGroupListViewReducer.js +0 -65
  131. package/lib/esm/view/userGroupListView/userGroupListViewSelector.js +0 -16
  132. package/lib/esm/view/userGroupListView/userGroupListViewState.js +0 -1
  133. package/lib/view/expenseAutomationView/bulkUploadTiming.d.ts +0 -10
  134. package/lib/view/expenseAutomationView/bulkUploadTiming.js +0 -13
  135. package/lib/view/expenseAutomationView/epics/missingReceipts/bulkUploadReceiptsEpic.d.ts +0 -18
  136. package/lib/view/expenseAutomationView/epics/missingReceipts/bulkUploadReceiptsEpic.js +0 -33
  137. package/lib/view/expenseAutomationView/epics/missingReceipts/confirmBulkUploadMatchEpic.d.ts +0 -7
  138. package/lib/view/expenseAutomationView/epics/missingReceipts/confirmBulkUploadMatchEpic.js +0 -53
  139. package/lib/view/expenseAutomationView/epics/missingReceipts/fetchBulkUploadBatchDetailsEpic.d.ts +0 -8
  140. package/lib/view/expenseAutomationView/epics/missingReceipts/fetchBulkUploadBatchDetailsEpic.js +0 -44
  141. package/lib/view/expenseAutomationView/epics/missingReceipts/fetchBulkUploadBatchesEpic.d.ts +0 -7
  142. package/lib/view/expenseAutomationView/epics/missingReceipts/fetchBulkUploadBatchesEpic.js +0 -51
  143. package/lib/view/expenseAutomationView/epics/missingReceipts/fetchCompletedTransactionsEpic.d.ts +0 -8
  144. package/lib/view/expenseAutomationView/epics/missingReceipts/fetchCompletedTransactionsEpic.js +0 -65
  145. package/lib/view/expenseAutomationView/epics/missingReceipts/fetchMoreBatchDetailsEpic.d.ts +0 -8
  146. package/lib/view/expenseAutomationView/epics/missingReceipts/fetchMoreBatchDetailsEpic.js +0 -37
  147. package/lib/view/expenseAutomationView/epics/missingReceipts/fetchMultipleBatchDetailsEpic.d.ts +0 -9
  148. package/lib/view/expenseAutomationView/epics/missingReceipts/fetchMultipleBatchDetailsEpic.js +0 -61
  149. package/lib/view/expenseAutomationView/epics/missingReceipts/searchTransactionsForManualMatchEpic.d.ts +0 -14
  150. package/lib/view/expenseAutomationView/epics/missingReceipts/searchTransactionsForManualMatchEpic.js +0 -81
  151. package/lib/view/expenseAutomationView/epics/missingReceipts/watchBulkUploadBatchStatusEpic.d.ts +0 -25
  152. package/lib/view/expenseAutomationView/epics/missingReceipts/watchBulkUploadBatchStatusEpic.js +0 -85
  153. package/lib/view/expenseAutomationView/epics/transactionCategorization/uploadTransactionReceiptSuccessEpic.d.ts +0 -7
  154. package/lib/view/expenseAutomationView/epics/transactionCategorization/uploadTransactionReceiptSuccessEpic.js +0 -28
  155. package/lib/view/profitAndLossClassesView/horizontalSectionEmptyBalancesSlice.d.ts +0 -9
  156. package/lib/view/profitAndLossClassesView/horizontalSectionEmptyBalancesSlice.js +0 -20
  157. package/lib/view/profitAndLossClassesView/profitAndLossClassesByClassHorizontalSelector.d.ts +0 -15
  158. package/lib/view/profitAndLossClassesView/profitAndLossClassesByClassHorizontalSelector.js +0 -335
  159. package/lib/view/profitAndLossClassesView/profitAndLossClassesByClassHorizontalSelectorTypes.d.ts +0 -111
  160. package/lib/view/profitAndLossClassesView/profitAndLossClassesByClassHorizontalSelectorTypes.js +0 -13
  161. package/lib/view/profitAndLossClassesView/profitAndLossHorizontalEnrichment.d.ts +0 -6
  162. package/lib/view/profitAndLossClassesView/profitAndLossHorizontalEnrichment.js +0 -265
  163. package/lib/view/userGroupListView/userGroupListViewReducer.d.ts +0 -23
  164. package/lib/view/userGroupListView/userGroupListViewReducer.js +0 -69
  165. package/lib/view/userGroupListView/userGroupListViewSelector.d.ts +0 -7
  166. package/lib/view/userGroupListView/userGroupListViewSelector.js +0 -20
  167. package/lib/view/userGroupListView/userGroupListViewState.d.ts +0 -8
  168. package/lib/view/userGroupListView/userGroupListViewState.js +0 -2
@@ -1,265 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.enrichProfitAndLossByClassHorizontalReport = enrichProfitAndLossByClassHorizontalReport;
4
- const currencyHelper_1 = require("../../commonStateTypes/currencyHelper");
5
- const horizontalSectionEmptyBalancesSlice_1 = require("./horizontalSectionEmptyBalancesSlice");
6
- const profitAndLossClassesByClassHorizontalSelectorTypes_1 = require("./profitAndLossClassesByClassHorizontalSelectorTypes");
7
- /**
8
- * Populates `sectionHeaderBalancesSlice`, and per-account `accountReportData`, so the
9
- * web layer only maps selector output to tree nodes.
10
- */
11
- function enrichProfitAndLossByClassHorizontalReport(report) {
12
- if (report.fetchState !== 'Completed' || report.selectedPeriod == null) {
13
- return;
14
- }
15
- for (const section of Object.values(report.sections)) {
16
- if (section != null) {
17
- enrichHorizontalSection(report, section);
18
- }
19
- }
20
- for (const calc of Object.values(report.calculatedSections)) {
21
- if (calc != null) {
22
- enrichHorizontalCalculatedSection(report, calc);
23
- }
24
- }
25
- }
26
- function enrichHorizontalSection(report, section) {
27
- const classAmounts = report.classColumns.map((col) => {
28
- const total = section.classTotals.find((ct) => ct.classId === col.classId);
29
- return total?.balance.amount ?? 0;
30
- });
31
- section.sectionHeaderBalancesSlice = buildHorizontalClassColumnBalancesSlice(report, classAmounts, section.sectionTotal.amount);
32
- const parentIndices = computeHorizontalAccountParentIndices(section.accounts);
33
- const childrenRowIndicesByParent = buildHorizontalAccountChildIndicesByParent(parentIndices);
34
- const childrenRecord = {};
35
- childrenRowIndicesByParent.forEach((childIndices, parentIndex) => {
36
- childrenRecord[parentIndex] = childIndices;
37
- });
38
- section.treeLayout = {
39
- rootAccountRowIndices: section.accounts
40
- .map((_, i) => (parentIndices[i] === -1 ? i : -1))
41
- .filter((i) => i >= 0),
42
- childrenRowIndicesByParent: childrenRecord,
43
- };
44
- const siblingsPerRow = buildSiblingIndicesPerRow(section.accounts, parentIndices);
45
- const hasChildFlags = computeHorizontalHasChildFlags(parentIndices);
46
- for (let accountIndex = 0; accountIndex < section.accounts.length; accountIndex++) {
47
- const row = section.accounts[accountIndex];
48
- // Same column order as `report.classColumns` (see `pivotSectionToHorizontal`).
49
- const classRowAmounts = row.classBalances.map((classBalance) => classBalance.balance.amount);
50
- row.accountReportData = {
51
- accountId: row.accountId,
52
- accountName: row.accountName,
53
- accountType: row.accountType,
54
- depth: row.depth,
55
- balancesInTimeframe: buildHorizontalClassColumnBalancesSlice(report, classRowAmounts, row.rowTotal.amount),
56
- horizontalTreeView: buildHorizontalTreeViewFromPrecomputed(section.accounts, accountIndex, parentIndices, siblingsPerRow, hasChildFlags),
57
- };
58
- }
59
- }
60
- function enrichHorizontalCalculatedSection(report, calcSection) {
61
- const classAmounts = report.classColumns.map((col) => {
62
- const total = calcSection.classTotals.find((ct) => ct.classId === col.classId);
63
- return total?.balance.amount ?? 0;
64
- });
65
- calcSection.sectionHeaderBalancesSlice =
66
- buildHorizontalClassColumnBalancesSlice(report, classAmounts, calcSection.sectionTotal.amount);
67
- }
68
- function buildHorizontalClassColumnBalancesSlice(report, classAmounts, totalAmount) {
69
- const fallback = currencyHelper_1.defaultCustomerCurrency;
70
- const firstHeader = report.headerBalances[0];
71
- const currencyCode = firstHeader?.balance.currencyCode ?? fallback.currencyCode;
72
- const currencySymbol = firstHeader?.balance.currencySymbol ?? fallback.currencySymbol;
73
- const timeframe = firstHeader?.balanceTimeFrame ?? 'month';
74
- if (report.selectedPeriod == null) {
75
- return (0, horizontalSectionEmptyBalancesSlice_1.getEmptyHorizontalSectionBalancesSlice)(report.firstMonthOfFY, timeframe);
76
- }
77
- const { startDate, endDate } = report.selectedPeriod;
78
- const balances = report.classColumns.map((col, columnIndex) => {
79
- const amount = classAmounts[columnIndex] ?? 0;
80
- return {
81
- balance: {
82
- amount,
83
- currencyCode,
84
- currencySymbol,
85
- },
86
- balanceTimeFrame: timeframe,
87
- startDate,
88
- endDate,
89
- type: amount === 0 ? 'default_with_null_balance' : 'default',
90
- id: col.classId,
91
- label: col.className,
92
- };
93
- });
94
- balances.push({
95
- balance: {
96
- amount: totalAmount,
97
- currencyCode,
98
- currencySymbol,
99
- },
100
- balanceTimeFrame: timeframe,
101
- startDate,
102
- endDate,
103
- type: totalAmount === 0 ? 'default_with_null_balance' : 'default',
104
- id: profitAndLossClassesByClassHorizontalSelectorTypes_1.HORIZONTAL_CLASS_TOTAL_BALANCE_ID,
105
- label: 'Total',
106
- });
107
- return {
108
- balances,
109
- additionalBalances: [],
110
- filter: {
111
- firstMonthOfFY: report.firstMonthOfFY,
112
- timeframe,
113
- balancesRange: {
114
- numberOfPeriods: balances.length,
115
- orderBy: 'ascending_date',
116
- },
117
- additionalBalances: [],
118
- },
119
- };
120
- }
121
- /**
122
- * Parent index per DFS row — O(n). Matches the scan in the former
123
- * `findHorizontalAccountParentIndex` (depth &lt;= 2 rows have no parent).
124
- */
125
- function computeHorizontalAccountParentIndices(rows) {
126
- const accountRowCount = rows.length;
127
- const parentIndex = new Array(accountRowCount).fill(-1);
128
- const stack = [];
129
- for (let rowIndex = 0; rowIndex < accountRowCount; rowIndex++) {
130
- const accountRow = rows[rowIndex];
131
- if (accountRow == null) {
132
- continue;
133
- }
134
- const depth = accountRow.depth;
135
- while (stack.length > 0) {
136
- const topRow = rows[stack[stack.length - 1]];
137
- if (topRow == null) {
138
- stack.pop();
139
- continue;
140
- }
141
- if (topRow.depth < depth) {
142
- break;
143
- }
144
- stack.pop();
145
- }
146
- if (depth > 2 && stack.length > 0) {
147
- const peek = stack[stack.length - 1];
148
- const parentRow = rows[peek];
149
- if (parentRow != null && parentRow.depth === depth - 1) {
150
- parentIndex[rowIndex] = peek;
151
- }
152
- }
153
- stack.push(rowIndex);
154
- }
155
- return parentIndex;
156
- }
157
- /** Sibling row indices (same parent + depth), in traversal order — O(n). */
158
- function buildSiblingIndicesPerRow(rows, parentIndices) {
159
- const accountRowCount = rows.length;
160
- const keyToIndices = new Map();
161
- for (let rowIndex = 0; rowIndex < accountRowCount; rowIndex++) {
162
- const parentRowIndex = parentIndices[rowIndex];
163
- const accountRow = rows[rowIndex];
164
- if (parentRowIndex == null || accountRow == null) {
165
- continue;
166
- }
167
- const key = `${parentRowIndex}:${accountRow.depth}`;
168
- let siblingGroup = keyToIndices.get(key);
169
- if (siblingGroup == null) {
170
- siblingGroup = [];
171
- keyToIndices.set(key, siblingGroup);
172
- }
173
- siblingGroup.push(rowIndex);
174
- }
175
- const siblingsPerRow = new Array(accountRowCount);
176
- for (let rowIndex = 0; rowIndex < accountRowCount; rowIndex++) {
177
- const parentRowIndex = parentIndices[rowIndex];
178
- const accountRow = rows[rowIndex];
179
- if (parentRowIndex == null || accountRow == null) {
180
- siblingsPerRow[rowIndex] = [rowIndex];
181
- continue;
182
- }
183
- const key = `${parentRowIndex}:${accountRow.depth}`;
184
- const group = keyToIndices.get(key);
185
- siblingsPerRow[rowIndex] = group != null ? group : [rowIndex];
186
- }
187
- return siblingsPerRow;
188
- }
189
- function computeHorizontalHasChildFlags(parentIndices) {
190
- const rowCount = parentIndices.length;
191
- const flags = new Array(rowCount).fill(false);
192
- for (let rowIndex = 0; rowIndex < rowCount; rowIndex++) {
193
- const parentRowIndex = parentIndices[rowIndex];
194
- if (parentRowIndex != null &&
195
- parentRowIndex >= 0 &&
196
- parentRowIndex < rowCount) {
197
- flags[parentRowIndex] = true;
198
- }
199
- }
200
- return flags;
201
- }
202
- function buildHorizontalSubAccountAncestorMetadataFromPrecomputed(dfsOrderedAccountRows, currentRowIndex, parentIndices, siblingsPerRow, hasChildFlags) {
203
- const chain = [];
204
- let walkRowIndex = currentRowIndex;
205
- while (walkRowIndex >= 0) {
206
- chain.unshift(walkRowIndex);
207
- const parentRowIndex = parentIndices[walkRowIndex];
208
- if (parentRowIndex == null) {
209
- break;
210
- }
211
- walkRowIndex = parentRowIndex;
212
- }
213
- return chain.map((rowIndex) => {
214
- const accountRow = dfsOrderedAccountRows[rowIndex];
215
- const siblingIndices = siblingsPerRow[rowIndex];
216
- const hasChild = hasChildFlags[rowIndex];
217
- if (accountRow == null || siblingIndices == null) {
218
- return {
219
- depth: 0,
220
- hasSibling: false,
221
- hasChildren: hasChild === true,
222
- isLastNode: true,
223
- name: '',
224
- };
225
- }
226
- return {
227
- depth: accountRow.depth - 2,
228
- hasSibling: siblingIndices.length > 1,
229
- hasChildren: hasChild === true,
230
- isLastNode: rowIndex === siblingIndices[siblingIndices.length - 1],
231
- name: accountRow.accountName,
232
- };
233
- });
234
- }
235
- function buildHorizontalTreeViewFromPrecomputed(dfsOrderedAccountRows, currentRowIndex, parentIndices, siblingsPerRow, hasChildFlags) {
236
- const siblingIndices = siblingsPerRow[currentRowIndex];
237
- const accountRow = dfsOrderedAccountRows[currentRowIndex];
238
- const hasChildrenFlag = hasChildFlags[currentRowIndex];
239
- const treeDepth = accountRow != null ? Math.max(0, accountRow.depth - 2) : 0;
240
- const hasChildren = hasChildrenFlag === true;
241
- const siblings = siblingIndices ?? [currentRowIndex];
242
- return {
243
- subAccountAncestorMetadata: buildHorizontalSubAccountAncestorMetadataFromPrecomputed(dfsOrderedAccountRows, currentRowIndex, parentIndices, siblingsPerRow, hasChildFlags),
244
- treeDepth,
245
- hasChildren,
246
- hasSiblings: siblings.length > 1,
247
- isLeaf: !hasChildren,
248
- isLastNode: currentRowIndex === siblings[siblings.length - 1],
249
- };
250
- }
251
- function buildHorizontalAccountChildIndicesByParent(parentIndices) {
252
- const childIndicesByParentRowIndex = new Map();
253
- for (let rowIndex = 0; rowIndex < parentIndices.length; rowIndex++) {
254
- const parentRowIndex = parentIndices[rowIndex];
255
- if (parentRowIndex != null && parentRowIndex >= 0) {
256
- let childRowIndices = childIndicesByParentRowIndex.get(parentRowIndex);
257
- if (childRowIndices == null) {
258
- childRowIndices = [];
259
- childIndicesByParentRowIndex.set(parentRowIndex, childRowIndices);
260
- }
261
- childRowIndices.push(rowIndex);
262
- }
263
- }
264
- return childIndicesByParentRowIndex;
265
- }
@@ -1,23 +0,0 @@
1
- import { ID } from '../../commonStateTypes/common';
2
- import { UserGroupPayload } from '../../entity/userGroups/userGroupsPayload';
3
- import { ZeniAPIStatus } from '../../responsePayload';
4
- import { UserGroupListType, UserGroupListViewState } from './userGroupListViewState';
5
- export declare const initialState: UserGroupListViewState;
6
- export declare const fetchUserGroupListByType: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[userGroupType: "taskManagerCandidate", cacheOverride?: any], {
7
- userGroupType: "taskManagerCandidate";
8
- cacheOverride: any;
9
- }, "userGroupListView/fetchUserGroupListByType", never, never>, updateUserGroupIds: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
10
- userGroupsPayload: UserGroupPayload[];
11
- userGroupType: UserGroupListType;
12
- }, "userGroupListView/updateUserGroupIds">, addUserGroupId: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
13
- id: ID;
14
- userGroupType: UserGroupListType;
15
- }, "userGroupListView/addUserGroupId">, removeUserGroupId: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
16
- id: ID;
17
- userGroupType: UserGroupListType;
18
- }, "userGroupListView/removeUserGroupId">, updateUserGroupListFetchFailure: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
19
- status: ZeniAPIStatus;
20
- userGroupType: UserGroupListType;
21
- }, "userGroupListView/updateUserGroupListFetchFailure">, clearUserGroupListView: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"userGroupListView/clearUserGroupListView">;
22
- declare const _default: import("redux").Reducer<UserGroupListViewState>;
23
- export default _default;
@@ -1,69 +0,0 @@
1
- "use strict";
2
- var _a;
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.clearUserGroupListView = exports.updateUserGroupListFetchFailure = exports.removeUserGroupId = exports.addUserGroupId = exports.updateUserGroupIds = exports.fetchUserGroupListByType = exports.initialState = void 0;
5
- const toolkit_1 = require("@reduxjs/toolkit");
6
- const initialUserGroupList = {
7
- ids: [],
8
- fetchState: 'Not-Started',
9
- error: undefined,
10
- hasValidState() {
11
- return this.fetchState == 'Completed';
12
- },
13
- };
14
- exports.initialState = {
15
- userGroupListByType: {
16
- taskManagerCandidate: initialUserGroupList,
17
- },
18
- };
19
- const userGroupListView = (0, toolkit_1.createSlice)({
20
- name: 'userGroupListView',
21
- initialState: exports.initialState,
22
- reducers: {
23
- fetchUserGroupListByType: {
24
- reducer(draft, action) {
25
- const { userGroupType } = action.payload;
26
- draft.userGroupListByType[userGroupType].fetchState = 'In-Progress';
27
- draft.userGroupListByType[userGroupType].error = undefined;
28
- },
29
- prepare(userGroupType, cacheOverride = false) {
30
- return {
31
- payload: {
32
- userGroupType,
33
- cacheOverride,
34
- },
35
- };
36
- },
37
- },
38
- updateUserGroupIds(draft, action) {
39
- const { userGroupType, userGroupsPayload } = action.payload;
40
- draft.userGroupListByType[userGroupType].fetchState = 'Completed';
41
- draft.userGroupListByType[userGroupType].error = undefined;
42
- draft.userGroupListByType[userGroupType].ids = userGroupsPayload.map((userGroup) => userGroup.id);
43
- },
44
- addUserGroupId(draft, action) {
45
- const { userGroupType, id } = action.payload;
46
- const index = draft.userGroupListByType[userGroupType].ids.indexOf(id);
47
- if (index < 0) {
48
- draft.userGroupListByType[userGroupType].ids.push(id);
49
- }
50
- },
51
- removeUserGroupId(draft, action) {
52
- const { userGroupType, id } = action.payload;
53
- const index = draft.userGroupListByType[userGroupType].ids.indexOf(id);
54
- if (index > -1) {
55
- draft.userGroupListByType[userGroupType].ids.splice(index, 1);
56
- }
57
- },
58
- updateUserGroupListFetchFailure(draft, action) {
59
- const { userGroupType, status } = action.payload;
60
- draft.userGroupListByType[userGroupType].fetchState = 'Error';
61
- draft.userGroupListByType[userGroupType].error = status;
62
- },
63
- clearUserGroupListView(draft) {
64
- Object.assign(draft, exports.initialState);
65
- },
66
- },
67
- });
68
- _a = userGroupListView.actions, exports.fetchUserGroupListByType = _a.fetchUserGroupListByType, exports.updateUserGroupIds = _a.updateUserGroupIds, exports.addUserGroupId = _a.addUserGroupId, exports.removeUserGroupId = _a.removeUserGroupId, exports.updateUserGroupListFetchFailure = _a.updateUserGroupListFetchFailure, exports.clearUserGroupListView = _a.clearUserGroupListView;
69
- exports.default = userGroupListView.reducer;
@@ -1,7 +0,0 @@
1
- import { SelectorView } from '../../commonStateTypes/viewAndReport/viewAndReport';
2
- import { UserGroup, UserGroupsState } from '../../entity/userGroups/userGroupsState';
3
- import { UserGroupListType, UserGroupListViewState } from './userGroupListViewState';
4
- export interface UserGroupListSelectorView extends SelectorView {
5
- userGroups: UserGroup[];
6
- }
7
- export declare const getUserGroupList: (userGroupsState: UserGroupsState, userGroupListViewState: UserGroupListViewState, userGroupType: UserGroupListType) => UserGroupListSelectorView;
@@ -1,20 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getUserGroupList = void 0;
4
- const userGroupsSelector_1 = require("../../entity/userGroups/userGroupsSelector");
5
- const getUserGroupList = (userGroupsState, userGroupListViewState, userGroupType) => {
6
- const listState = userGroupListViewState.userGroupListByType[userGroupType];
7
- return {
8
- userGroups: getUserGroupListByIds(userGroupsState, userGroupListViewState, userGroupType),
9
- fetchState: listState?.fetchState,
10
- error: listState?.error,
11
- version: 0,
12
- };
13
- };
14
- exports.getUserGroupList = getUserGroupList;
15
- function getUserGroupListByIds(userGroupsState, userGroupListViewState, type) {
16
- const userGroupIds = userGroupListViewState.userGroupListByType[type].ids;
17
- return userGroupIds
18
- .map((id) => (0, userGroupsSelector_1.getUserGroupByUserGroupId)(userGroupsState, id))
19
- .filter((value) => value != null);
20
- }
@@ -1,8 +0,0 @@
1
- import { FetchedState, ID } from '../../commonStateTypes/common';
2
- export type UserGroupListType = 'taskManagerCandidate';
3
- export interface UserGroupIdsByType extends FetchedState {
4
- ids: ID[];
5
- }
6
- export interface UserGroupListViewState {
7
- userGroupListByType: Record<UserGroupListType, UserGroupIdsByType>;
8
- }
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });