@zeniai/client-epic-state 5.2.41 → 5.2.42-betaAK0

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 (103) hide show
  1. package/lib/entity/actualMatching/actualMatchingPayload.d.ts +31 -0
  2. package/lib/entity/actualMatching/actualMatchingPayload.js +52 -0
  3. package/lib/entity/actualMatching/actualMatchingReducer.d.ts +9 -0
  4. package/lib/entity/actualMatching/actualMatchingReducer.js +33 -0
  5. package/lib/entity/actualMatching/actualMatchingSelector.d.ts +3 -0
  6. package/lib/entity/actualMatching/actualMatchingSelector.js +6 -0
  7. package/lib/entity/actualMatching/actualMatchingState.d.ts +23 -0
  8. package/lib/entity/actualMatching/actualMatchingState.js +2 -0
  9. package/lib/entity/actualMatching/actualMatchingTypes.d.ts +1 -0
  10. package/lib/entity/actualMatching/actualMatchingTypes.js +2 -0
  11. package/lib/entity/jeSchedules/jeSchedulesPayload.d.ts +31 -0
  12. package/lib/entity/jeSchedules/jeSchedulesPayload.js +53 -0
  13. package/lib/entity/jeSchedules/jeSchedulesState.d.ts +33 -0
  14. package/lib/entity/snackbar/snackbarTypes.d.ts +1 -1
  15. package/lib/entity/snackbar/snackbarTypes.js +2 -0
  16. package/lib/epic.d.ts +8 -1
  17. package/lib/epic.js +14 -0
  18. package/lib/esm/entity/actualMatching/actualMatchingPayload.js +48 -0
  19. package/lib/esm/entity/actualMatching/actualMatchingReducer.js +30 -0
  20. package/lib/esm/entity/actualMatching/actualMatchingSelector.js +3 -0
  21. package/lib/esm/entity/actualMatching/actualMatchingState.js +1 -0
  22. package/lib/esm/entity/actualMatching/actualMatchingTypes.js +1 -0
  23. package/lib/esm/entity/jeSchedules/jeSchedulesPayload.js +53 -0
  24. package/lib/esm/entity/snackbar/snackbarTypes.js +2 -0
  25. package/lib/esm/epic.js +14 -0
  26. package/lib/esm/index.js +7 -3
  27. package/lib/esm/reducer.js +6 -0
  28. package/lib/esm/view/expenseAutomationView/epics/common/fetchAllExpenseAutomationTabsEpic.js +25 -12
  29. package/lib/esm/view/expenseAutomationView/epics/jeSchedule/actualMatching/fetchActualMatchingEpic.js +46 -0
  30. package/lib/esm/view/expenseAutomationView/epics/jeSchedule/actualMatching/fetchActualMatchingMatchEpic.js +36 -0
  31. package/lib/esm/view/expenseAutomationView/epics/jeSchedule/actualMatching/fetchActualMatchingPageEpic.js +7 -0
  32. package/lib/esm/view/expenseAutomationView/epics/jeSchedule/actualMatching/matchAndReverseAccrualsEpic.js +108 -0
  33. package/lib/esm/view/expenseAutomationView/epics/jeSchedule/actualMatching/refreshActualMatchingList.js +16 -0
  34. package/lib/esm/view/expenseAutomationView/epics/jeSchedule/actualMatching/searchMatchAccrualsEpic.js +60 -0
  35. package/lib/esm/view/expenseAutomationView/epics/jeSchedule/actualMatching/searchMatchTransactionsEpic.js +74 -0
  36. package/lib/esm/view/expenseAutomationView/epics/jeSchedule/actualMatching/undoReversalAccrualsEpic.js +78 -0
  37. package/lib/esm/view/expenseAutomationView/epics/jeSchedule/fetchJeSchedulePageEpic.js +13 -3
  38. package/lib/esm/view/expenseAutomationView/epics/jeSchedule/prefetchOtherJeSchedulesTabEpic.js +40 -15
  39. package/lib/esm/view/expenseAutomationView/epics/jeSchedule/switchJESchedulesTabEpic.js +19 -8
  40. package/lib/esm/view/expenseAutomationView/expenseAutomationViewReducer.js +2 -1
  41. package/lib/esm/view/expenseAutomationView/expenseAutomationViewSelector.js +24 -6
  42. package/lib/esm/view/expenseAutomationView/expenseAutomationViewState.js +4 -2
  43. package/lib/esm/view/expenseAutomationView/payload/actualMatchingPayload.js +68 -0
  44. package/lib/esm/view/expenseAutomationView/reducers/actualMatchingViewReducer.js +462 -0
  45. package/lib/esm/view/expenseAutomationView/reducers/jeSchedulesViewReducer.js +2 -1
  46. package/lib/esm/view/expenseAutomationView/selectorTypes/actualMatchingViewSelectorTypes.js +1 -0
  47. package/lib/esm/view/expenseAutomationView/selectors/actualMatchingViewSelector.js +426 -0
  48. package/lib/esm/view/expenseAutomationView/selectors/jeSchedulesViewSelector.js +4 -0
  49. package/lib/esm/view/expenseAutomationView/types/actualMatchingViewState.js +38 -0
  50. package/lib/esm/view/expenseAutomationView/types/jeSchedulesViewState.js +8 -1
  51. package/lib/esm/view/invoicing/editInvoicingCatalogItemDetailView/editInvoicingCatalogItemDetailViewPayload.js +39 -30
  52. package/lib/index.d.ts +14 -5
  53. package/lib/index.js +82 -48
  54. package/lib/reducer.d.ts +2 -0
  55. package/lib/reducer.js +6 -0
  56. package/lib/rootStateTypes.d.ts +4 -0
  57. package/lib/view/expenseAutomationView/epics/common/fetchAllExpenseAutomationTabsEpic.js +25 -12
  58. package/lib/view/expenseAutomationView/epics/jeSchedule/actualMatching/fetchActualMatchingEpic.d.ts +9 -0
  59. package/lib/view/expenseAutomationView/epics/jeSchedule/actualMatching/fetchActualMatchingEpic.js +50 -0
  60. package/lib/view/expenseAutomationView/epics/jeSchedule/actualMatching/fetchActualMatchingMatchEpic.d.ts +12 -0
  61. package/lib/view/expenseAutomationView/epics/jeSchedule/actualMatching/fetchActualMatchingMatchEpic.js +40 -0
  62. package/lib/view/expenseAutomationView/epics/jeSchedule/actualMatching/fetchActualMatchingPageEpic.d.ts +5 -0
  63. package/lib/view/expenseAutomationView/epics/jeSchedule/actualMatching/fetchActualMatchingPageEpic.js +11 -0
  64. package/lib/view/expenseAutomationView/epics/jeSchedule/actualMatching/matchAndReverseAccrualsEpic.d.ts +9 -0
  65. package/lib/view/expenseAutomationView/epics/jeSchedule/actualMatching/matchAndReverseAccrualsEpic.js +112 -0
  66. package/lib/view/expenseAutomationView/epics/jeSchedule/actualMatching/refreshActualMatchingList.d.ts +3 -0
  67. package/lib/view/expenseAutomationView/epics/jeSchedule/actualMatching/refreshActualMatchingList.js +19 -0
  68. package/lib/view/expenseAutomationView/epics/jeSchedule/actualMatching/searchMatchAccrualsEpic.d.ts +9 -0
  69. package/lib/view/expenseAutomationView/epics/jeSchedule/actualMatching/searchMatchAccrualsEpic.js +64 -0
  70. package/lib/view/expenseAutomationView/epics/jeSchedule/actualMatching/searchMatchTransactionsEpic.d.ts +8 -0
  71. package/lib/view/expenseAutomationView/epics/jeSchedule/actualMatching/searchMatchTransactionsEpic.js +78 -0
  72. package/lib/view/expenseAutomationView/epics/jeSchedule/actualMatching/undoReversalAccrualsEpic.d.ts +9 -0
  73. package/lib/view/expenseAutomationView/epics/jeSchedule/actualMatching/undoReversalAccrualsEpic.js +82 -0
  74. package/lib/view/expenseAutomationView/epics/jeSchedule/fetchJeSchedulePageEpic.d.ts +2 -1
  75. package/lib/view/expenseAutomationView/epics/jeSchedule/fetchJeSchedulePageEpic.js +13 -3
  76. package/lib/view/expenseAutomationView/epics/jeSchedule/prefetchOtherJeSchedulesTabEpic.d.ts +5 -1
  77. package/lib/view/expenseAutomationView/epics/jeSchedule/prefetchOtherJeSchedulesTabEpic.js +39 -14
  78. package/lib/view/expenseAutomationView/epics/jeSchedule/switchJESchedulesTabEpic.js +18 -7
  79. package/lib/view/expenseAutomationView/expenseAutomationViewReducer.d.ts +2 -1
  80. package/lib/view/expenseAutomationView/expenseAutomationViewReducer.js +2 -1
  81. package/lib/view/expenseAutomationView/expenseAutomationViewSelector.js +24 -6
  82. package/lib/view/expenseAutomationView/expenseAutomationViewState.d.ts +2 -1
  83. package/lib/view/expenseAutomationView/expenseAutomationViewState.js +6 -3
  84. package/lib/view/expenseAutomationView/helpers/transactionCategorizationLocalDataHelper.d.ts +1 -1
  85. package/lib/view/expenseAutomationView/payload/actualMatchingPayload.d.ts +85 -0
  86. package/lib/view/expenseAutomationView/payload/actualMatchingPayload.js +74 -0
  87. package/lib/view/expenseAutomationView/reducers/actualMatchingViewReducer.d.ts +79 -0
  88. package/lib/view/expenseAutomationView/reducers/actualMatchingViewReducer.js +466 -0
  89. package/lib/view/expenseAutomationView/reducers/jeSchedulesViewReducer.d.ts +6 -5
  90. package/lib/view/expenseAutomationView/reducers/jeSchedulesViewReducer.js +2 -1
  91. package/lib/view/expenseAutomationView/selectorTypes/actualMatchingViewSelectorTypes.d.ts +87 -0
  92. package/lib/view/expenseAutomationView/selectorTypes/actualMatchingViewSelectorTypes.js +2 -0
  93. package/lib/view/expenseAutomationView/selectorTypes/expenseAutomationViewSelectorTypes.d.ts +11 -0
  94. package/lib/view/expenseAutomationView/selectors/actualMatchingViewSelector.d.ts +38 -0
  95. package/lib/view/expenseAutomationView/selectors/actualMatchingViewSelector.js +445 -0
  96. package/lib/view/expenseAutomationView/selectors/jeSchedulesViewSelector.js +4 -0
  97. package/lib/view/expenseAutomationView/types/actualMatchingViewState.d.ts +106 -0
  98. package/lib/view/expenseAutomationView/types/actualMatchingViewState.js +46 -0
  99. package/lib/view/expenseAutomationView/types/jeSchedulesViewState.d.ts +1 -1
  100. package/lib/view/expenseAutomationView/types/jeSchedulesViewState.js +8 -1
  101. package/lib/view/invoicing/editInvoicingCatalogItemDetailView/editInvoicingCatalogItemDetailViewPayload.d.ts +30 -5
  102. package/lib/view/invoicing/editInvoicingCatalogItemDetailView/editInvoicingCatalogItemDetailViewPayload.js +39 -30
  103. package/package.json +1 -1
@@ -0,0 +1,79 @@
1
+ import { MonthYearPeriod, TimePeriod } from '../../../commonStateTypes/timePeriod';
2
+ import { ActualMatchingMatchId } from '../../../entity/actualMatching/actualMatchingTypes';
3
+ import { JEOneTimeAccrualPayload } from '../../../entity/jeSchedules/jeSchedulesPayload';
4
+ import { ZeniAPIStatus } from '../../../responsePayload';
5
+ import { ActualMatchingAccrualSearchState, ActualMatchingMatchModalState, ActualMatchingTransactionSearchResult, ActualMatchingTransactionSearchState, ActualMatchingViewState, ActualMatchingViewUIState, MatchAndReverseResult, UndoReversalResult } from '../types/actualMatchingViewState';
6
+ export declare const initialTransactionSearchState: ActualMatchingTransactionSearchState;
7
+ export declare const initialAccrualSearchState: ActualMatchingAccrualSearchState;
8
+ export declare const initialMatchModalState: ActualMatchingMatchModalState;
9
+ export declare const initialState: ActualMatchingViewState;
10
+ export declare const ackCloseMatchAfterUndo: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"expenseAutomationActualMatchingView/ackCloseMatchAfterUndo">, clearActualMatchingView: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"expenseAutomationActualMatchingView/clearActualMatchingView">, clearMatchNewModal: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"expenseAutomationActualMatchingView/clearMatchNewModal">, closeMatchNewModal: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"expenseAutomationActualMatchingView/closeMatchNewModal">, fetchActualMatching: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[period: TimePeriod, refreshViewInBackground?: any], {
11
+ period: TimePeriod;
12
+ refreshViewInBackground: any;
13
+ }, "expenseAutomationActualMatchingView/fetchActualMatching", never, never>, fetchActualMatchingFailure: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
14
+ refreshViewInBackground: boolean;
15
+ selectedPeriod: MonthYearPeriod;
16
+ status: ZeniAPIStatus;
17
+ }, "expenseAutomationActualMatchingView/fetchActualMatchingFailure">, fetchActualMatchingMatch: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[matchId: string, refreshViewInBackground?: any], {
18
+ matchId: string;
19
+ refreshViewInBackground: any;
20
+ }, "expenseAutomationActualMatchingView/fetchActualMatchingMatch", never, never>, fetchActualMatchingMatchFailure: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
21
+ matchId: ActualMatchingMatchId;
22
+ refreshViewInBackground: boolean;
23
+ status: ZeniAPIStatus;
24
+ }, "expenseAutomationActualMatchingView/fetchActualMatchingMatchFailure">, fetchActualMatchingMatchSuccess: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
25
+ matchId: ActualMatchingMatchId;
26
+ refreshViewInBackground: boolean;
27
+ }, "expenseAutomationActualMatchingView/fetchActualMatchingMatchSuccess">, fetchActualMatchingPage: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[period: TimePeriod, refreshViewInBackground?: any], {
28
+ period: TimePeriod;
29
+ refreshViewInBackground: any;
30
+ }, "expenseAutomationActualMatchingView/fetchActualMatchingPage", never, never>, fetchActualMatchingSuccess: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
31
+ matchIds: ActualMatchingMatchId[];
32
+ refreshViewInBackground: boolean;
33
+ selectedPeriod: MonthYearPeriod;
34
+ }, "expenseAutomationActualMatchingView/fetchActualMatchingSuccess">, matchAndReverseAccruals: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[transactionId: string, transactionIntegrationId: string, transactionType: string, lineIds: string[], transactionSyncToken: string, accrualIds: string[]], {
35
+ transactionId: string;
36
+ transactionIntegrationId: string;
37
+ transactionType: string;
38
+ lineIds: string[];
39
+ transactionSyncToken: string;
40
+ accrualIds: string[];
41
+ }, "expenseAutomationActualMatchingView/matchAndReverseAccruals", never, never>, matchAndReverseAccrualsFailure: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
42
+ status: ZeniAPIStatus;
43
+ }, "expenseAutomationActualMatchingView/matchAndReverseAccrualsFailure">, matchAndReverseAccrualsSuccess: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
44
+ results: MatchAndReverseResult[];
45
+ matchId?: ActualMatchingMatchId;
46
+ }, "expenseAutomationActualMatchingView/matchAndReverseAccrualsSuccess">, openMatchNewModal: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[matchId?: string | undefined], {
47
+ matchId: string | undefined;
48
+ }, "expenseAutomationActualMatchingView/openMatchNewModal", never, never>, searchMatchAccruals: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[query: string, pageToken?: string | null | undefined], {
49
+ query: string;
50
+ pageToken: string | undefined;
51
+ }, "expenseAutomationActualMatchingView/searchMatchAccruals", never, never>, searchMatchAccrualsFailure: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
52
+ error: ZeniAPIStatus;
53
+ }, "expenseAutomationActualMatchingView/searchMatchAccrualsFailure">, searchMatchAccrualsSuccess: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
54
+ append: boolean;
55
+ nextPageToken: string | null;
56
+ results: JEOneTimeAccrualPayload[];
57
+ }, "expenseAutomationActualMatchingView/searchMatchAccrualsSuccess">, searchMatchTransactions: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[query: string, pageToken?: string | null | undefined, transactionType?: string | undefined, transactionIntegrationId?: string | undefined], {
58
+ query: string;
59
+ pageToken: string | undefined;
60
+ transactionType: string | undefined;
61
+ transactionIntegrationId: string | undefined;
62
+ }, "expenseAutomationActualMatchingView/searchMatchTransactions", never, never>, searchMatchTransactionsFailure: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
63
+ error: ZeniAPIStatus;
64
+ }, "expenseAutomationActualMatchingView/searchMatchTransactionsFailure">, searchMatchTransactionsSuccess: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
65
+ append: boolean;
66
+ nextPageToken: string | null;
67
+ results: ActualMatchingTransactionSearchResult[];
68
+ }, "expenseAutomationActualMatchingView/searchMatchTransactionsSuccess">, undoReversalAccruals: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[matchId: string, accrualIds: string[]], {
69
+ matchId: string;
70
+ accrualIds: string[];
71
+ }, "expenseAutomationActualMatchingView/undoReversalAccruals", never, never>, undoReversalAccrualsFailure: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
72
+ matchId: ActualMatchingMatchId;
73
+ status: ZeniAPIStatus;
74
+ }, "expenseAutomationActualMatchingView/undoReversalAccrualsFailure">, undoReversalAccrualsSuccess: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[matchId: string, results: UndoReversalResult[]], {
75
+ matchId: string;
76
+ results: UndoReversalResult[];
77
+ }, "expenseAutomationActualMatchingView/undoReversalAccrualsSuccess", never, never>, updateActualMatchingUIState: import("@reduxjs/toolkit").ActionCreatorWithPayload<Partial<ActualMatchingViewUIState>, "expenseAutomationActualMatchingView/updateActualMatchingUIState">;
78
+ declare const _default: import("redux").Reducer<ActualMatchingViewState>;
79
+ export default _default;
@@ -0,0 +1,466 @@
1
+ "use strict";
2
+ var _a;
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.updateActualMatchingUIState = exports.undoReversalAccrualsSuccess = exports.undoReversalAccrualsFailure = exports.undoReversalAccruals = exports.searchMatchTransactionsSuccess = exports.searchMatchTransactionsFailure = exports.searchMatchTransactions = exports.searchMatchAccrualsSuccess = exports.searchMatchAccrualsFailure = exports.searchMatchAccruals = exports.openMatchNewModal = exports.matchAndReverseAccrualsSuccess = exports.matchAndReverseAccrualsFailure = exports.matchAndReverseAccruals = exports.fetchActualMatchingSuccess = exports.fetchActualMatchingPage = exports.fetchActualMatchingMatchSuccess = exports.fetchActualMatchingMatchFailure = exports.fetchActualMatchingMatch = exports.fetchActualMatchingFailure = exports.fetchActualMatching = exports.closeMatchNewModal = exports.clearMatchNewModal = exports.clearActualMatchingView = exports.ackCloseMatchAfterUndo = exports.initialState = exports.initialMatchModalState = exports.initialAccrualSearchState = exports.initialTransactionSearchState = void 0;
5
+ const toolkit_1 = require("@reduxjs/toolkit");
6
+ const timePeriod_1 = require("../../../commonStateTypes/timePeriod");
7
+ const jeScheduleHelper_1 = require("../../../entity/jeSchedules/jeScheduleHelper");
8
+ const responsePayload_1 = require("../../../responsePayload");
9
+ const rootActions_1 = require("../../../rootActions");
10
+ const actualMatchingViewState_1 = require("../types/actualMatchingViewState");
11
+ exports.initialTransactionSearchState = {
12
+ query: '',
13
+ results: [],
14
+ fetchState: 'Not-Started',
15
+ error: undefined,
16
+ nextPageToken: null,
17
+ isLoadingMore: false,
18
+ };
19
+ exports.initialAccrualSearchState = {
20
+ query: '',
21
+ results: [],
22
+ fetchState: 'Not-Started',
23
+ error: undefined,
24
+ nextPageToken: null,
25
+ isLoadingMore: false,
26
+ };
27
+ exports.initialMatchModalState = {
28
+ isOpen: false,
29
+ openedFromMatchId: undefined,
30
+ didPinPrefillTransactions: false,
31
+ pinnedTransactionResults: [],
32
+ transactionSearch: exports.initialTransactionSearchState,
33
+ accrualSearch: exports.initialAccrualSearchState,
34
+ confirmStatus: { fetchState: 'Not-Started', error: undefined },
35
+ };
36
+ exports.initialState = {
37
+ matchIdsByPeriod: {},
38
+ fetchState: 'Not-Started',
39
+ error: undefined,
40
+ refreshStatus: {
41
+ fetchState: 'Not-Started',
42
+ error: undefined,
43
+ },
44
+ detailFetchStateByMatchId: {},
45
+ detailRefreshStatusByMatchId: {},
46
+ uiState: {
47
+ sortKey: 'date',
48
+ sortOrder: 'descending',
49
+ searchString: '',
50
+ scrollPosition: { scrollTop: 0, scrollLeft: undefined },
51
+ },
52
+ matchModal: exports.initialMatchModalState,
53
+ undoReversalStatusByMatchId: {},
54
+ closeMatchAfterUndo: false,
55
+ lastMatchResultsByMatchId: {},
56
+ lastUndoResultsByMatchId: {},
57
+ hasValidState() {
58
+ return this.fetchState == 'Completed';
59
+ },
60
+ };
61
+ function pruneLastMatchResultsForUndone(draft, matchId, results) {
62
+ const undoneIds = new Set(results
63
+ .filter((result) => result.status === 'undone')
64
+ .map((result) => result.accrualId));
65
+ if (undoneIds.size === 0) {
66
+ return;
67
+ }
68
+ const existing = draft.lastMatchResultsByMatchId[matchId];
69
+ if (existing == null) {
70
+ return;
71
+ }
72
+ const kept = existing.filter((result) => !undoneIds.has(result.accrualId));
73
+ if (kept.length === 0) {
74
+ delete draft.lastMatchResultsByMatchId[matchId];
75
+ return;
76
+ }
77
+ draft.lastMatchResultsByMatchId[matchId] = kept;
78
+ }
79
+ function pruneLastUndoResultsForMatched(draft, matchId, results) {
80
+ const matchedIds = new Set(results.map((result) => result.accrualId));
81
+ if (matchedIds.size === 0) {
82
+ return;
83
+ }
84
+ const existing = draft.lastUndoResultsByMatchId[matchId];
85
+ if (existing == null) {
86
+ return;
87
+ }
88
+ const kept = existing.filter((result) => !matchedIds.has(result.accrualId));
89
+ if (kept.length === 0) {
90
+ delete draft.lastUndoResultsByMatchId[matchId];
91
+ return;
92
+ }
93
+ draft.lastUndoResultsByMatchId[matchId] = kept;
94
+ }
95
+ function resetMatchModalSearches(draft) {
96
+ draft.matchModal.transactionSearch = exports.initialTransactionSearchState;
97
+ draft.matchModal.accrualSearch = exports.initialAccrualSearchState;
98
+ draft.matchModal.confirmStatus = {
99
+ fetchState: 'Not-Started',
100
+ error: undefined,
101
+ };
102
+ draft.matchModal.lastBatchResults = undefined;
103
+ draft.matchModal.openedFromMatchId = undefined;
104
+ draft.matchModal.didPinPrefillTransactions = false;
105
+ draft.matchModal.pinnedTransactionResults = [];
106
+ }
107
+ const expenseAutomationActualMatchingView = (0, toolkit_1.createSlice)({
108
+ name: 'expenseAutomationActualMatchingView',
109
+ initialState: exports.initialState,
110
+ reducers: {
111
+ fetchActualMatchingPage: {
112
+ prepare(period, refreshViewInBackground = false) {
113
+ return {
114
+ payload: {
115
+ period,
116
+ refreshViewInBackground,
117
+ },
118
+ };
119
+ },
120
+ reducer() {
121
+ // Epic-only fan-out.
122
+ },
123
+ },
124
+ fetchActualMatching: {
125
+ reducer(draft, action) {
126
+ const { refreshViewInBackground } = action.payload;
127
+ if (refreshViewInBackground) {
128
+ draft.refreshStatus = { fetchState: 'In-Progress', error: undefined };
129
+ if (draft.fetchState === 'Not-Started') {
130
+ draft.fetchState = 'In-Progress';
131
+ }
132
+ }
133
+ else {
134
+ draft.fetchState = 'In-Progress';
135
+ draft.error = undefined;
136
+ }
137
+ },
138
+ prepare(period, refreshViewInBackground = false) {
139
+ return {
140
+ payload: {
141
+ period,
142
+ refreshViewInBackground,
143
+ },
144
+ };
145
+ },
146
+ },
147
+ fetchActualMatchingSuccess(draft, action) {
148
+ const { matchIds, selectedPeriod, refreshViewInBackground } = action.payload;
149
+ const periodId = (0, timePeriod_1.toMonthYearPeriodId)(selectedPeriod);
150
+ draft.matchIdsByPeriod[periodId] = matchIds;
151
+ if (refreshViewInBackground) {
152
+ draft.refreshStatus = { fetchState: 'Completed', error: undefined };
153
+ if (draft.fetchState !== 'Completed') {
154
+ draft.fetchState = 'Completed';
155
+ draft.error = undefined;
156
+ }
157
+ }
158
+ else {
159
+ draft.fetchState = 'Completed';
160
+ draft.error = undefined;
161
+ }
162
+ },
163
+ fetchActualMatchingFailure(draft, action) {
164
+ const { status, refreshViewInBackground, selectedPeriod } = action.payload;
165
+ const periodId = (0, timePeriod_1.toMonthYearPeriodId)(selectedPeriod);
166
+ // Stamp an empty slot so the selector does not remap this month's Error
167
+ // to leftover Not-Started chrome. Do not clobber ids from a prior success.
168
+ if (draft.matchIdsByPeriod[periodId] == null) {
169
+ draft.matchIdsByPeriod[periodId] = [];
170
+ }
171
+ if (refreshViewInBackground) {
172
+ draft.refreshStatus = { fetchState: 'Error', error: status };
173
+ if (draft.fetchState !== 'Completed') {
174
+ draft.fetchState = 'Error';
175
+ draft.error = status;
176
+ }
177
+ }
178
+ else {
179
+ draft.fetchState = 'Error';
180
+ draft.error = status;
181
+ }
182
+ },
183
+ fetchActualMatchingMatch: {
184
+ prepare(matchId, refreshViewInBackground = false) {
185
+ return { payload: { matchId, refreshViewInBackground } };
186
+ },
187
+ reducer(draft, action) {
188
+ const { matchId, refreshViewInBackground } = action.payload;
189
+ if (refreshViewInBackground) {
190
+ draft.detailRefreshStatusByMatchId[matchId] = {
191
+ fetchState: 'In-Progress',
192
+ error: undefined,
193
+ };
194
+ }
195
+ else {
196
+ draft.detailFetchStateByMatchId[matchId] = {
197
+ fetchState: 'In-Progress',
198
+ error: undefined,
199
+ };
200
+ }
201
+ },
202
+ },
203
+ fetchActualMatchingMatchSuccess(draft, action) {
204
+ const { matchId, refreshViewInBackground } = action.payload;
205
+ if (refreshViewInBackground) {
206
+ draft.detailRefreshStatusByMatchId[matchId] = {
207
+ fetchState: 'Completed',
208
+ error: undefined,
209
+ };
210
+ }
211
+ else {
212
+ draft.detailFetchStateByMatchId[matchId] = {
213
+ fetchState: 'Completed',
214
+ error: undefined,
215
+ };
216
+ }
217
+ },
218
+ fetchActualMatchingMatchFailure(draft, action) {
219
+ const { matchId, refreshViewInBackground, status } = action.payload;
220
+ if (refreshViewInBackground) {
221
+ draft.detailRefreshStatusByMatchId[matchId] = {
222
+ fetchState: 'Error',
223
+ error: status,
224
+ };
225
+ }
226
+ else {
227
+ draft.detailFetchStateByMatchId[matchId] = {
228
+ fetchState: 'Error',
229
+ error: status,
230
+ };
231
+ }
232
+ },
233
+ updateActualMatchingUIState(draft, action) {
234
+ if (action.payload.sortKey != null) {
235
+ draft.uiState.sortKey = action.payload.sortKey;
236
+ }
237
+ if (action.payload.sortOrder != null) {
238
+ draft.uiState.sortOrder = action.payload.sortOrder;
239
+ }
240
+ if (action.payload.searchString != null) {
241
+ draft.uiState.searchString = action.payload.searchString;
242
+ }
243
+ if (action.payload.scrollPosition != null) {
244
+ draft.uiState.scrollPosition = action.payload.scrollPosition;
245
+ }
246
+ },
247
+ openMatchNewModal: {
248
+ prepare(matchId) {
249
+ return { payload: { matchId } };
250
+ },
251
+ reducer(draft, action) {
252
+ resetMatchModalSearches(draft);
253
+ draft.matchModal.isOpen = true;
254
+ const matchId = action.payload.matchId;
255
+ draft.matchModal.openedFromMatchId =
256
+ matchId != null && matchId !== '' ? matchId : undefined;
257
+ if (draft.matchModal.openedFromMatchId != null) {
258
+ draft.matchModal.accrualSearch.fetchState = 'Completed';
259
+ }
260
+ },
261
+ },
262
+ // Dismiss (Cancel / overlay). Store reset matches `clearMatchNewModal`;
263
+ // the actions stay distinct so confirm-success vs user-dismiss stay observable.
264
+ closeMatchNewModal(draft) {
265
+ draft.matchModal.isOpen = false;
266
+ resetMatchModalSearches(draft);
267
+ },
268
+ // Confirm-success / host reset. Same slice write as close; different action type.
269
+ clearMatchNewModal(draft) {
270
+ draft.matchModal.isOpen = false;
271
+ resetMatchModalSearches(draft);
272
+ },
273
+ searchMatchTransactions: {
274
+ reducer(draft, action) {
275
+ const { query, pageToken } = action.payload;
276
+ const isLoadMore = pageToken != null;
277
+ draft.matchModal.transactionSearch.query = query;
278
+ if (isLoadMore) {
279
+ draft.matchModal.transactionSearch.isLoadingMore = true;
280
+ }
281
+ else {
282
+ draft.matchModal.transactionSearch.isLoadingMore = false;
283
+ draft.matchModal.transactionSearch.results = [];
284
+ draft.matchModal.transactionSearch.nextPageToken = null;
285
+ draft.matchModal.transactionSearch.fetchState = 'In-Progress';
286
+ draft.matchModal.transactionSearch.error = undefined;
287
+ }
288
+ },
289
+ prepare(query, pageToken, transactionType, transactionIntegrationId) {
290
+ return {
291
+ payload: {
292
+ query,
293
+ pageToken: pageToken ?? undefined,
294
+ transactionType,
295
+ transactionIntegrationId,
296
+ },
297
+ };
298
+ },
299
+ },
300
+ searchMatchTransactionsSuccess(draft, action) {
301
+ const { append, nextPageToken, results } = action.payload;
302
+ if (append) {
303
+ const merged = [
304
+ ...draft.matchModal.transactionSearch.results,
305
+ ...results,
306
+ ];
307
+ const byKey = new Map(merged.map((result) => [
308
+ (0, actualMatchingViewState_1.actualMatchingTransactionLineKey)(result.transactionType, result.transactionIntegrationId, result.lineId),
309
+ result,
310
+ ]));
311
+ draft.matchModal.transactionSearch.results = Array.from(byKey.values());
312
+ }
313
+ else {
314
+ draft.matchModal.transactionSearch.results = results;
315
+ if (draft.matchModal.openedFromMatchId != null &&
316
+ !draft.matchModal.didPinPrefillTransactions) {
317
+ draft.matchModal.didPinPrefillTransactions = true;
318
+ draft.matchModal.pinnedTransactionResults = results;
319
+ }
320
+ }
321
+ draft.matchModal.transactionSearch.nextPageToken = nextPageToken;
322
+ draft.matchModal.transactionSearch.isLoadingMore = false;
323
+ draft.matchModal.transactionSearch.fetchState = 'Completed';
324
+ draft.matchModal.transactionSearch.error = undefined;
325
+ },
326
+ searchMatchTransactionsFailure(draft, action) {
327
+ draft.matchModal.transactionSearch.isLoadingMore = false;
328
+ draft.matchModal.transactionSearch.fetchState = 'Error';
329
+ draft.matchModal.transactionSearch.error = action.payload.error;
330
+ },
331
+ searchMatchAccruals: {
332
+ reducer(draft, action) {
333
+ const { query, pageToken } = action.payload;
334
+ const isLoadMore = pageToken != null;
335
+ draft.matchModal.accrualSearch.query = query;
336
+ if (isLoadMore) {
337
+ draft.matchModal.accrualSearch.isLoadingMore = true;
338
+ }
339
+ else {
340
+ draft.matchModal.accrualSearch.isLoadingMore = false;
341
+ draft.matchModal.accrualSearch.results = [];
342
+ draft.matchModal.accrualSearch.nextPageToken = null;
343
+ draft.matchModal.accrualSearch.fetchState = 'In-Progress';
344
+ draft.matchModal.accrualSearch.error = undefined;
345
+ }
346
+ },
347
+ prepare(query, pageToken) {
348
+ return { payload: { query, pageToken: pageToken ?? undefined } };
349
+ },
350
+ },
351
+ searchMatchAccrualsSuccess(draft, action) {
352
+ const { append, nextPageToken, results } = action.payload;
353
+ const keys = results.map((accrual) => (0, jeScheduleHelper_1.generateJEOneTimeAccrualKey)(accrual._id));
354
+ if (append) {
355
+ const merged = [...draft.matchModal.accrualSearch.results, ...keys];
356
+ draft.matchModal.accrualSearch.results = Array.from(new Set(merged));
357
+ }
358
+ else {
359
+ draft.matchModal.accrualSearch.results = keys;
360
+ }
361
+ draft.matchModal.accrualSearch.nextPageToken = nextPageToken;
362
+ draft.matchModal.accrualSearch.isLoadingMore = false;
363
+ draft.matchModal.accrualSearch.fetchState = 'Completed';
364
+ draft.matchModal.accrualSearch.error = undefined;
365
+ },
366
+ searchMatchAccrualsFailure(draft, action) {
367
+ draft.matchModal.accrualSearch.isLoadingMore = false;
368
+ draft.matchModal.accrualSearch.fetchState = 'Error';
369
+ draft.matchModal.accrualSearch.error = action.payload.error;
370
+ },
371
+ matchAndReverseAccruals: {
372
+ reducer(draft) {
373
+ draft.matchModal.confirmStatus = {
374
+ fetchState: 'In-Progress',
375
+ error: undefined,
376
+ };
377
+ },
378
+ prepare(transactionId, transactionIntegrationId, transactionType, lineIds, transactionSyncToken, accrualIds) {
379
+ return {
380
+ payload: {
381
+ transactionId,
382
+ transactionIntegrationId,
383
+ transactionType,
384
+ lineIds,
385
+ transactionSyncToken,
386
+ accrualIds,
387
+ },
388
+ };
389
+ },
390
+ },
391
+ matchAndReverseAccrualsSuccess(draft, action) {
392
+ const { results } = action.payload;
393
+ const allComplete = results.length > 0 &&
394
+ results.every((result) => (0, actualMatchingViewState_1.isMatchAndReverseCompleteStatus)(result.status));
395
+ draft.matchModal.confirmStatus = allComplete
396
+ ? { fetchState: 'Completed', error: undefined }
397
+ : {
398
+ fetchState: 'Error',
399
+ error: (0, responsePayload_1.createZeniAPIStatus)('Partial match-and-reverse', 'Some accruals were not reversed'),
400
+ };
401
+ draft.matchModal.lastBatchResults = results;
402
+ if (action.payload.matchId != null) {
403
+ draft.lastMatchResultsByMatchId[action.payload.matchId] = results;
404
+ pruneLastUndoResultsForMatched(draft, action.payload.matchId, action.payload.results);
405
+ }
406
+ },
407
+ matchAndReverseAccrualsFailure(draft, action) {
408
+ draft.matchModal.confirmStatus = {
409
+ fetchState: 'Error',
410
+ error: action.payload.status,
411
+ };
412
+ },
413
+ undoReversalAccruals: {
414
+ reducer(draft, action) {
415
+ draft.undoReversalStatusByMatchId[action.payload.matchId] = {
416
+ fetchState: 'In-Progress',
417
+ error: undefined,
418
+ };
419
+ },
420
+ prepare(matchId, accrualIds) {
421
+ return { payload: { matchId, accrualIds } };
422
+ },
423
+ },
424
+ undoReversalAccrualsSuccess: {
425
+ reducer(draft, action) {
426
+ const { matchId, results } = action.payload;
427
+ draft.undoReversalStatusByMatchId[matchId] = {
428
+ fetchState: 'Completed',
429
+ error: undefined,
430
+ };
431
+ const allUndone = results.length > 0 &&
432
+ results.every((result) => result.status === 'undone');
433
+ draft.closeMatchAfterUndo = allUndone;
434
+ pruneLastMatchResultsForUndone(draft, matchId, results);
435
+ if (allUndone) {
436
+ delete draft.lastUndoResultsByMatchId[matchId];
437
+ }
438
+ else {
439
+ draft.lastUndoResultsByMatchId[matchId] = results;
440
+ }
441
+ },
442
+ prepare(matchId, results) {
443
+ return { payload: { matchId, results } };
444
+ },
445
+ },
446
+ ackCloseMatchAfterUndo(draft) {
447
+ draft.closeMatchAfterUndo = false;
448
+ },
449
+ undoReversalAccrualsFailure(draft, action) {
450
+ draft.undoReversalStatusByMatchId[action.payload.matchId] = {
451
+ fetchState: 'Error',
452
+ error: action.payload.status,
453
+ };
454
+ },
455
+ clearActualMatchingView(draft) {
456
+ Object.assign(draft, exports.initialState);
457
+ },
458
+ },
459
+ extraReducers: (builder) => {
460
+ builder.addCase(rootActions_1.clearAll, (draft) => {
461
+ Object.assign(draft, exports.initialState);
462
+ });
463
+ },
464
+ });
465
+ _a = expenseAutomationActualMatchingView.actions, exports.ackCloseMatchAfterUndo = _a.ackCloseMatchAfterUndo, exports.clearActualMatchingView = _a.clearActualMatchingView, exports.clearMatchNewModal = _a.clearMatchNewModal, exports.closeMatchNewModal = _a.closeMatchNewModal, exports.fetchActualMatching = _a.fetchActualMatching, exports.fetchActualMatchingFailure = _a.fetchActualMatchingFailure, exports.fetchActualMatchingMatch = _a.fetchActualMatchingMatch, exports.fetchActualMatchingMatchFailure = _a.fetchActualMatchingMatchFailure, exports.fetchActualMatchingMatchSuccess = _a.fetchActualMatchingMatchSuccess, exports.fetchActualMatchingPage = _a.fetchActualMatchingPage, exports.fetchActualMatchingSuccess = _a.fetchActualMatchingSuccess, exports.matchAndReverseAccruals = _a.matchAndReverseAccruals, exports.matchAndReverseAccrualsFailure = _a.matchAndReverseAccrualsFailure, exports.matchAndReverseAccrualsSuccess = _a.matchAndReverseAccrualsSuccess, exports.openMatchNewModal = _a.openMatchNewModal, exports.searchMatchAccruals = _a.searchMatchAccruals, exports.searchMatchAccrualsFailure = _a.searchMatchAccrualsFailure, exports.searchMatchAccrualsSuccess = _a.searchMatchAccrualsSuccess, exports.searchMatchTransactions = _a.searchMatchTransactions, exports.searchMatchTransactionsFailure = _a.searchMatchTransactionsFailure, exports.searchMatchTransactionsSuccess = _a.searchMatchTransactionsSuccess, exports.undoReversalAccruals = _a.undoReversalAccruals, exports.undoReversalAccrualsFailure = _a.undoReversalAccrualsFailure, exports.undoReversalAccrualsSuccess = _a.undoReversalAccrualsSuccess, exports.updateActualMatchingUIState = _a.updateActualMatchingUIState;
466
+ exports.default = expenseAutomationActualMatchingView.reducer;
@@ -43,17 +43,18 @@ export declare const clearExpenseAutomationJESchedulesView: import("@reduxjs/too
43
43
  accrualId: string;
44
44
  reason: "duplicate" | "amount_off" | "wrong_period" | "other_revert" | "not_accrual";
45
45
  note: string | undefined;
46
- }, "expenseAutomationJESchedulesView/revertOneTimeAccrual", never, never>, fetchAccountSettingsListForAccountTypes: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"expenseAutomationJESchedulesView/fetchAccountSettingsListForAccountTypes">, fetchJeSchedules: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[period: TimePeriod, refreshViewInBackground?: any, selectedPageTab?: "schedules" | "existing_schedules" | undefined], {
46
+ }, "expenseAutomationJESchedulesView/revertOneTimeAccrual", never, never>, fetchAccountSettingsListForAccountTypes: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"expenseAutomationJESchedulesView/fetchAccountSettingsListForAccountTypes">, fetchJeSchedules: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[period: TimePeriod, refreshViewInBackground?: any, selectedPageTab?: "schedules" | "actual_matching" | "existing_schedules" | undefined], {
47
47
  period: TimePeriod;
48
48
  refreshViewInBackground: any;
49
- selectedPageTab: "schedules" | "existing_schedules" | undefined;
49
+ selectedPageTab: "schedules" | "actual_matching" | "existing_schedules" | undefined;
50
50
  }, "expenseAutomationJESchedulesView/fetchJeSchedules", never, never>, fetchJeSchedulesFailure: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
51
51
  selectedPageTab: JEPageTab;
52
52
  selectedPeriod: MonthYearPeriod;
53
53
  status: ZeniAPIStatus;
54
- }, "expenseAutomationJESchedulesView/fetchJeSchedulesFailure">, fetchJeSchedulesPage: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[period: TimePeriod, refreshViewInBackground?: any], {
54
+ }, "expenseAutomationJESchedulesView/fetchJeSchedulesFailure">, fetchJeSchedulesPage: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[period: TimePeriod, refreshViewInBackground?: any, isAccrualEnabled?: any], {
55
55
  period: TimePeriod;
56
56
  refreshViewInBackground: any;
57
+ isAccrualEnabled: any;
57
58
  }, "expenseAutomationJESchedulesView/fetchJeSchedulesPage", never, never>, fetchJeSchedulesSuccess: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
58
59
  accruedJeSchedules: JEAccruedScheduledTransactionPayload[];
59
60
  failedJeSchedules: JEScheduledTransactionPayload[];
@@ -141,10 +142,10 @@ export declare const clearExpenseAutomationJESchedulesView: import("@reduxjs/too
141
142
  }, "expenseAutomationJESchedulesView/updateJeOneTimeAccrualLocalData">, updateJeScheduleLocalDataById: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
142
143
  localData: Partial<JEScheduleLocalData>;
143
144
  scheduledJournalEntryID: ID;
144
- }, "expenseAutomationJESchedulesView/updateJeScheduleLocalDataById">, updateJeScheduleTransactionKeys: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[jeScheduleKeys: (`${string}_expense_${string}` | `${string}_check_${string}` | `${string}_invoice_${string}` | `${string}_payment_${string}` | `${string}_credit_memo_${string}` | `${string}_sales_receipt_${string}` | `${string}_delayed_credit_${string}` | `${string}_delayed_charge_${string}` | `${string}_refund_${string}` | `${string}_bill_${string}` | `${string}_bill_payment_${string}` | `${string}_bill_payment_check_${string}` | `${string}_bill_payment_credit_card_${string}` | `${string}_vendor_credit_${string}` | `${string}_credit_card_credit_${string}` | `${string}_transfer_${string}` | `${string}_credit_card_payment_${string}` | `${string}_deposit_${string}` | `${string}_journal_entry_${string}`)[], selectedPeriod: MonthYearPeriod, selectedPageTab: "schedules" | "existing_schedules"], {
145
+ }, "expenseAutomationJESchedulesView/updateJeScheduleLocalDataById">, updateJeScheduleTransactionKeys: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[jeScheduleKeys: (`${string}_expense_${string}` | `${string}_check_${string}` | `${string}_invoice_${string}` | `${string}_payment_${string}` | `${string}_credit_memo_${string}` | `${string}_sales_receipt_${string}` | `${string}_delayed_credit_${string}` | `${string}_delayed_charge_${string}` | `${string}_refund_${string}` | `${string}_bill_${string}` | `${string}_bill_payment_${string}` | `${string}_bill_payment_check_${string}` | `${string}_bill_payment_credit_card_${string}` | `${string}_vendor_credit_${string}` | `${string}_credit_card_credit_${string}` | `${string}_transfer_${string}` | `${string}_credit_card_payment_${string}` | `${string}_deposit_${string}` | `${string}_journal_entry_${string}`)[], selectedPeriod: MonthYearPeriod, selectedPageTab: "schedules" | "actual_matching" | "existing_schedules"], {
145
146
  jeScheduleKeys: (`${string}_expense_${string}` | `${string}_check_${string}` | `${string}_invoice_${string}` | `${string}_payment_${string}` | `${string}_credit_memo_${string}` | `${string}_sales_receipt_${string}` | `${string}_delayed_credit_${string}` | `${string}_delayed_charge_${string}` | `${string}_refund_${string}` | `${string}_bill_${string}` | `${string}_bill_payment_${string}` | `${string}_bill_payment_check_${string}` | `${string}_bill_payment_credit_card_${string}` | `${string}_vendor_credit_${string}` | `${string}_credit_card_credit_${string}` | `${string}_transfer_${string}` | `${string}_credit_card_payment_${string}` | `${string}_deposit_${string}` | `${string}_journal_entry_${string}`)[];
146
147
  selectedPeriod: MonthYearPeriod;
147
- selectedPageTab: "schedules" | "existing_schedules";
148
+ selectedPageTab: "schedules" | "actual_matching" | "existing_schedules";
148
149
  }, "expenseAutomationJESchedulesView/updateJeScheduleTransactionKeys", never, never>, updateNewScheduleLocalData: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
149
150
  localData: Partial<NewScheduleLocalDataFixedAssets>;
150
151
  scheduleType: "fixed_assets" | "prepaid_expenses";
@@ -111,11 +111,12 @@ const expenseAutomationJESchedulesView = (0, toolkit_1.createSlice)({
111
111
  initialState: exports.initialState,
112
112
  reducers: {
113
113
  fetchJeSchedulesPage: {
114
- prepare(period, refreshViewInBackground = false) {
114
+ prepare(period, refreshViewInBackground = false, isAccrualEnabled = false) {
115
115
  return {
116
116
  payload: {
117
117
  period,
118
118
  refreshViewInBackground,
119
+ isAccrualEnabled,
119
120
  },
120
121
  };
121
122
  },