@zeniai/client-epic-state 5.2.10 → 5.2.11-beta0ND

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 (74) hide show
  1. package/lib/entity/invoicing/invoicingCommonPayload.d.ts +27 -29
  2. package/lib/entity/invoicing/invoicingCommonPayload.js +37 -75
  3. package/lib/entity/invoicing/product/productPayload.d.ts +10 -0
  4. package/lib/entity/invoicing/product/productPayload.js +14 -2
  5. package/lib/epic.d.ts +3 -2
  6. package/lib/epic.js +12 -5
  7. package/lib/esm/entity/invoicing/invoicingCommonPayload.js +33 -73
  8. package/lib/esm/entity/invoicing/product/productPayload.js +14 -2
  9. package/lib/esm/epic.js +8 -1
  10. package/lib/esm/index.js +7 -6
  11. package/lib/esm/view/companyMonthEndReportView/companyMonthEndReportViewReducer.js +6 -2
  12. package/lib/esm/view/companyMonthEndReportView/companyMonthEndReportViewState.js +4 -0
  13. package/lib/esm/view/companyMonthEndReportView/epics/saveCompanyMonthEndReportEpic.js +10 -6
  14. package/lib/esm/view/companyMonthEndReportView/epics/sendCompanyMonthEndReportEpic.js +9 -5
  15. package/lib/esm/view/companyMonthEndReportView/monthEndTemplateData.js +32 -0
  16. package/lib/esm/view/invoicing/editInvoicingCatalogItemDetailView/editInvoicingCatalogItemDetailViewPayload.js +25 -9
  17. package/lib/esm/view/invoicing/editInvoicingCatalogItemDetailView/saveInvoicingCatalogItemEpic.js +6 -1
  18. package/lib/esm/view/invoicing/invoicingQboView/invoicingQboViewSelector.js +40 -0
  19. package/lib/esm/view/invoicing/settingsView/epics/connectInvoicingStripeEpic.js +27 -0
  20. package/lib/esm/view/invoicing/settingsView/epics/disconnectInvoicingStripeEpic.js +19 -0
  21. package/lib/esm/view/invoicing/settingsView/epics/fetchInvoicingSettingsEpic.js +19 -0
  22. package/lib/esm/view/invoicing/settingsView/epics/saveInvoicingSettingsEpic.js +39 -0
  23. package/lib/esm/view/invoicing/settingsView/epics/settingsViewActionType.js +1 -0
  24. package/lib/esm/view/invoicing/settingsView/epics/submitInvoicingQboSettingsEpic.js +25 -0
  25. package/lib/esm/view/invoicing/settingsView/invoicingQboSettingsFormConfig.js +48 -0
  26. package/lib/esm/view/invoicing/settingsView/settingsViewReducer.js +25 -1
  27. package/lib/esm/view/invoicing/settingsView/settingsViewSelector.js +41 -0
  28. package/lib/esm/view/recommendation/recommendationReducer.js +16 -1
  29. package/lib/esm/view/recommendation/submitRecommendationFeedbackEpic.js +52 -0
  30. package/lib/index.d.ts +12 -8
  31. package/lib/index.js +36 -28
  32. package/lib/view/companyMonthEndReportView/companyMonthEndReportViewPayload.d.ts +8 -0
  33. package/lib/view/companyMonthEndReportView/companyMonthEndReportViewReducer.d.ts +6 -2
  34. package/lib/view/companyMonthEndReportView/companyMonthEndReportViewReducer.js +6 -2
  35. package/lib/view/companyMonthEndReportView/companyMonthEndReportViewState.d.ts +2 -0
  36. package/lib/view/companyMonthEndReportView/companyMonthEndReportViewState.js +4 -0
  37. package/lib/view/companyMonthEndReportView/epics/saveCompanyMonthEndReportEpic.js +10 -6
  38. package/lib/view/companyMonthEndReportView/epics/sendCompanyMonthEndReportEpic.js +9 -5
  39. package/lib/view/companyMonthEndReportView/monthEndTemplateData.d.ts +16 -0
  40. package/lib/view/companyMonthEndReportView/monthEndTemplateData.js +36 -0
  41. package/lib/view/expenseAutomationView/types/reconciliationViewState.d.ts +1 -1
  42. package/lib/view/invoicing/editInvoicingCatalogItemDetailView/editInvoicingCatalogItemDetailViewPayload.d.ts +12 -1
  43. package/lib/view/invoicing/editInvoicingCatalogItemDetailView/editInvoicingCatalogItemDetailViewPayload.js +25 -9
  44. package/lib/view/invoicing/editInvoicingCatalogItemDetailView/saveInvoicingCatalogItemEpic.js +6 -1
  45. package/lib/view/invoicing/invoicingQboView/invoicingQboViewSelector.d.ts +10 -1
  46. package/lib/view/invoicing/invoicingQboView/invoicingQboViewSelector.js +43 -1
  47. package/lib/view/invoicing/settingsView/epics/connectInvoicingStripeEpic.d.ts +6 -0
  48. package/lib/view/invoicing/settingsView/epics/connectInvoicingStripeEpic.js +31 -0
  49. package/lib/view/invoicing/settingsView/epics/disconnectInvoicingStripeEpic.d.ts +6 -0
  50. package/lib/view/invoicing/settingsView/epics/disconnectInvoicingStripeEpic.js +23 -0
  51. package/lib/view/invoicing/settingsView/epics/fetchInvoicingSettingsEpic.d.ts +6 -0
  52. package/lib/view/invoicing/settingsView/epics/fetchInvoicingSettingsEpic.js +23 -0
  53. package/lib/view/invoicing/settingsView/epics/saveInvoicingSettingsEpic.d.ts +6 -0
  54. package/lib/view/invoicing/settingsView/epics/saveInvoicingSettingsEpic.js +43 -0
  55. package/lib/view/invoicing/settingsView/epics/settingsViewActionType.d.ts +5 -0
  56. package/lib/view/invoicing/settingsView/epics/settingsViewActionType.js +2 -0
  57. package/lib/view/invoicing/settingsView/epics/submitInvoicingQboSettingsEpic.d.ts +11 -0
  58. package/lib/view/invoicing/settingsView/epics/submitInvoicingQboSettingsEpic.js +29 -0
  59. package/lib/view/invoicing/settingsView/invoicingQboSettingsFormConfig.d.ts +34 -0
  60. package/lib/view/invoicing/settingsView/invoicingQboSettingsFormConfig.js +53 -0
  61. package/lib/view/invoicing/settingsView/settingsViewReducer.d.ts +4 -1
  62. package/lib/view/invoicing/settingsView/settingsViewReducer.js +26 -2
  63. package/lib/view/invoicing/settingsView/settingsViewSelector.d.ts +35 -0
  64. package/lib/view/invoicing/settingsView/settingsViewSelector.js +43 -1
  65. package/lib/view/invoicing/settingsView/settingsViewState.d.ts +8 -0
  66. package/lib/view/recommendation/recommendationPayload.d.ts +34 -0
  67. package/lib/view/recommendation/recommendationReducer.d.ts +2 -1
  68. package/lib/view/recommendation/recommendationReducer.js +17 -2
  69. package/lib/view/recommendation/submitRecommendationFeedbackEpic.d.ts +7 -0
  70. package/lib/view/recommendation/submitRecommendationFeedbackEpic.js +56 -0
  71. package/package.json +1 -1
  72. package/lib/esm/view/invoicing/settingsView/settingsViewEpics.js +0 -92
  73. package/lib/view/invoicing/settingsView/settingsViewEpics.d.ts +0 -12
  74. package/lib/view/invoicing/settingsView/settingsViewEpics.js +0 -99
@@ -1,3 +1,5 @@
1
+ import { AccountBasePayload } from '../account/accountPayload';
2
+ import { AccountBase } from '../account/accountState';
1
3
  import { AddressPayload } from '../address/addressPayload';
2
4
  export type InvoicingPriceType = 'tax_exclusive' | 'tax_inclusive';
3
5
  export declare const INVOICING_DUNNING_ACTIONS: readonly ["email_only", "email_and_retry", "do_nothing", "retry_only"];
@@ -92,42 +94,38 @@ export declare function toInvoicingQboCustomerMatchingMode(value: string): Invoi
92
94
  * A mapped account as the newer settings payload returns it: the platform id,
93
95
  * plus hydrated fields the client only displays.
94
96
  */
95
- export interface InvoicingQboMappedAccountPayload {
96
- account_id?: string | null;
97
- account_name?: string | null;
98
- fully_qualified_name?: string | null;
99
- qbo_id?: string | null;
100
- }
101
97
  /**
102
- * Account mappings arrive in two shapes. The original sends a bare id per slot
103
- * (`deposit_account_id`); the newer one sends an object holding the platform id
104
- * (`deposit_account: {account_id}`). Both are declared because a tenant can be
105
- * served either depending on when its backend rolled, and a page that understands
106
- * only one renders an empty picker over data that exists.
98
+ * Account mappings as the service stores them: one entry per mapping kind the
99
+ * config API defines, keyed by that kind's code (`deposit_account`,
100
+ * `default_income_account`, …). The value is the whole account, or just its id
101
+ * for a tenant whose backend has not rolled — both are read, and a save writes
102
+ * the record.
103
+ *
104
+ * An index signature rather than a field list, because the config owns which
105
+ * kinds exist: enumerating them here means a kind it adds gets dropped.
107
106
  */
108
- export interface InvoicingQboAccountMappingsPayload {
109
- default_income_account?: InvoicingQboMappedAccountPayload | null;
110
- default_income_account_id?: string | null;
111
- deposit_account?: InvoicingQboMappedAccountPayload | null;
112
- deposit_account_id?: string | null;
113
- deposit_account_overrides?: Record<string, string> | null;
114
- discounts_account?: InvoicingQboMappedAccountPayload | null;
115
- discounts_account_id?: string | null;
116
- rounding_account?: InvoicingQboMappedAccountPayload | null;
117
- rounding_account_id?: string | null;
118
- write_off_account?: InvoicingQboMappedAccountPayload | null;
119
- write_off_account_id?: string | null;
120
- }
107
+ export type InvoicingQboAccountMappingsPayload = Record<string, Partial<AccountBasePayload> | string | null>;
108
+ /**
109
+ * The first id a picker can actually select. Callers list the QuickBooks id
110
+ * first: the options are keyed on it, so a platform id selects nothing even when
111
+ * it names the same record. Blank counts as absent.
112
+ */
113
+ export declare const firstSelectableInvoicingId: (candidates: readonly (string | null | undefined)[]) => string | undefined;
121
114
  /**
122
- * Read one account-mapping dropdown value by its config `code` (the codes in
123
- * `qbo_account_mapping_kind_options` match the `account_mappings` field names).
115
+ * The slot a mapping code names. Codes arrive from the config API as the slot
116
+ * itself (`deposit_account`); a trailing `_id` is tolerated so a tenant sending
117
+ * the older `deposit_account_id` resolves to the same mapping.
124
118
  */
119
+ export declare const toInvoicingQboAccountMappingSlot: (code: string) => string;
120
+ /** Read one account-mapping dropdown value by its config `code`. */
125
121
  export declare function getInvoicingQboAccountMappingId(accountMappings: InvoicingQboAccountMappingsPayload | undefined, code: string): string | undefined;
126
122
  /**
127
- * Return a copy of the account mappings with the dropdown slot named by
128
- * `code` set to `accountId`. Unknown codes leave the mappings unchanged.
123
+ * Build the `account_mappings` request body from the ids the pickers submitted.
124
+ * Each kind is sent as the whole account, which is what the service stores; an
125
+ * id that resolves to no account is sent as it stands rather than dropped, so a
126
+ * save never silently unsets a mapping it could not expand.
129
127
  */
130
- export declare function withInvoicingQboAccountMappingId(accountMappings: InvoicingQboAccountMappingsPayload | undefined, code: string, accountId: string): InvoicingQboAccountMappingsPayload;
128
+ export declare const toInvoicingQboAccountMappingsPayload: (accountIdByMappingCode: Record<string, string>, accountForId: (accountId: string) => AccountBase | undefined) => InvoicingQboAccountMappingsPayload;
131
129
  export interface InvoicingQboSettingsPayload {
132
130
  account_mappings?: InvoicingQboAccountMappingsPayload | null;
133
131
  auto_create_items?: boolean;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ALL_INVOICING_FIELD_HELP_GROUPS = exports.INVOICING_QBO_CUSTOMER_MATCHING_MODES = exports.INVOICING_DISCOUNT_LIFECYCLE_ACTIONS = exports.INVOICING_CATALOG_PRODUCT_LIFECYCLE_ACTIONS = exports.INVOICING_CATALOG_ITEM_LIFECYCLE_ACTIONS = exports.INVOICING_SUBSCRIPTION_LIFECYCLE_ACTIONS = exports.INVOICING_DUNNING_ACTIONS = void 0;
3
+ exports.ALL_INVOICING_FIELD_HELP_GROUPS = exports.toInvoicingQboAccountMappingsPayload = exports.toInvoicingQboAccountMappingSlot = exports.firstSelectableInvoicingId = exports.INVOICING_QBO_CUSTOMER_MATCHING_MODES = exports.INVOICING_DISCOUNT_LIFECYCLE_ACTIONS = exports.INVOICING_CATALOG_PRODUCT_LIFECYCLE_ACTIONS = exports.INVOICING_CATALOG_ITEM_LIFECYCLE_ACTIONS = exports.INVOICING_SUBSCRIPTION_LIFECYCLE_ACTIONS = exports.INVOICING_DUNNING_ACTIONS = void 0;
4
4
  exports.toInvoicingDunningAction = toInvoicingDunningAction;
5
5
  exports.toInvoicingSubscriptionLifecycleAction = toInvoicingSubscriptionLifecycleAction;
6
6
  exports.toInvoicingSubscriptionLifecycleActionOption = toInvoicingSubscriptionLifecycleActionOption;
@@ -12,7 +12,6 @@ exports.toInvoicingDiscountLifecycleAction = toInvoicingDiscountLifecycleAction;
12
12
  exports.toInvoicingDiscountLifecycleActionOption = toInvoicingDiscountLifecycleActionOption;
13
13
  exports.toInvoicingQboCustomerMatchingMode = toInvoicingQboCustomerMatchingMode;
14
14
  exports.getInvoicingQboAccountMappingId = getInvoicingQboAccountMappingId;
15
- exports.withInvoicingQboAccountMappingId = withInvoicingQboAccountMappingId;
16
15
  exports.toInvoicingQboAccountMappingKindOption = toInvoicingQboAccountMappingKindOption;
17
16
  exports.toInvoicingNamedOption = toInvoicingNamedOption;
18
17
  exports.toInvoicingFormOption = toInvoicingFormOption;
@@ -23,6 +22,7 @@ exports.toInvoicingSubscriptionEditFieldOption = toInvoicingSubscriptionEditFiel
23
22
  exports.toAuditLogEntityRouteOption = toAuditLogEntityRouteOption;
24
23
  exports.buildInvoicingEntityPath = buildInvoicingEntityPath;
25
24
  exports.isInvoicingEntityLinkable = isInvoicingEntityLinkable;
25
+ const accountPayload_1 = require("../account/accountPayload");
26
26
  exports.INVOICING_DUNNING_ACTIONS = [
27
27
  'email_only',
28
28
  'email_and_retry',
@@ -154,87 +154,49 @@ function toInvoicingQboCustomerMatchingMode(value) {
154
154
  }
155
155
  }
156
156
  /**
157
- * The id for one mapping slot, from whichever shape the backend sent. The object
158
- * form wins when present; a blank id in either is treated as unset so the picker
159
- * shows its placeholder rather than selecting nothing.
157
+ * The first id a picker can actually select. Callers list the QuickBooks id
158
+ * first: the options are keyed on it, so a platform id selects nothing even when
159
+ * it names the same record. Blank counts as absent.
160
160
  */
161
- function readInvoicingQboMappedAccountId(mappedAccount, legacyAccountId) {
162
- // `qbo_id` first: the pickers key their options on the QuickBooks id, so an
163
- // internal `account_id` would not select anything even when it is the same
164
- // account. Both are read because the mapping arrives either way depending on
165
- // how it was saved.
166
- const candidates = [
167
- mappedAccount?.qbo_id,
168
- mappedAccount?.account_id,
169
- legacyAccountId,
170
- ];
171
- return candidates.find((candidate) => candidate != null && candidate !== '');
172
- }
161
+ const firstSelectableInvoicingId = (candidates) => candidates.find((candidate) => candidate != null && candidate !== '');
162
+ exports.firstSelectableInvoicingId = firstSelectableInvoicingId;
173
163
  /**
174
- * Read one account-mapping dropdown value by its config `code` (the codes in
175
- * `qbo_account_mapping_kind_options` match the `account_mappings` field names).
164
+ * The slot a mapping code names. Codes arrive from the config API as the slot
165
+ * itself (`deposit_account`); a trailing `_id` is tolerated so a tenant sending
166
+ * the older `deposit_account_id` resolves to the same mapping.
176
167
  */
168
+ const toInvoicingQboAccountMappingSlot = (code) => code.replace(/_id$/, '');
169
+ exports.toInvoicingQboAccountMappingSlot = toInvoicingQboAccountMappingSlot;
170
+ /** Read one account-mapping dropdown value by its config `code`. */
177
171
  function getInvoicingQboAccountMappingId(accountMappings, code) {
178
- switch (code) {
179
- case 'deposit_account_id':
180
- return readInvoicingQboMappedAccountId(accountMappings?.deposit_account, accountMappings?.deposit_account_id);
181
- case 'default_income_account_id':
182
- return readInvoicingQboMappedAccountId(accountMappings?.default_income_account, accountMappings?.default_income_account_id);
183
- case 'discounts_account_id':
184
- return readInvoicingQboMappedAccountId(accountMappings?.discounts_account, accountMappings?.discounts_account_id);
185
- case 'rounding_account_id':
186
- return readInvoicingQboMappedAccountId(accountMappings?.rounding_account, accountMappings?.rounding_account_id);
187
- case 'write_off_account_id':
188
- return readInvoicingQboMappedAccountId(accountMappings?.write_off_account, accountMappings?.write_off_account_id);
189
- default:
190
- return undefined;
172
+ const slotKey = (0, exports.toInvoicingQboAccountMappingSlot)(code);
173
+ // Either key: the service sends `deposit_account`, but an older payload put
174
+ // the id under `deposit_account_id`.
175
+ const slot = accountMappings?.[slotKey] ?? accountMappings?.[`${slotKey}_id`];
176
+ if (typeof slot === 'string') {
177
+ return slot !== '' ? slot : undefined;
191
178
  }
179
+ return (0, exports.firstSelectableInvoicingId)([slot?.qbo_id, slot?.account_id]);
192
180
  }
193
181
  /**
194
- * Return a copy of the account mappings with the dropdown slot named by
195
- * `code` set to `accountId`. Unknown codes leave the mappings unchanged.
182
+ * Build the `account_mappings` request body from the ids the pickers submitted.
183
+ * Each kind is sent as the whole account, which is what the service stores; an
184
+ * id that resolves to no account is sent as it stands rather than dropped, so a
185
+ * save never silently unsets a mapping it could not expand.
196
186
  */
197
- function withInvoicingQboAccountMappingId(accountMappings, code, accountId) {
198
- // Both slots are written together. Setting only the bare id would leave the
199
- // object shape behind, and the reader prefers it — so the selection just made
200
- // would read back as whatever was mapped before. The object is dropped rather
201
- // than rebuilt: only the id is known here, not the name that came with it.
202
- const base = accountMappings ?? {};
203
- switch (code) {
204
- case 'deposit_account_id':
205
- return {
206
- ...base,
207
- deposit_account: undefined,
208
- deposit_account_id: accountId,
209
- };
210
- case 'default_income_account_id':
211
- return {
212
- ...base,
213
- default_income_account: undefined,
214
- default_income_account_id: accountId,
215
- };
216
- case 'discounts_account_id':
217
- return {
218
- ...base,
219
- discounts_account: undefined,
220
- discounts_account_id: accountId,
221
- };
222
- case 'rounding_account_id':
223
- return {
224
- ...base,
225
- rounding_account: undefined,
226
- rounding_account_id: accountId,
227
- };
228
- case 'write_off_account_id':
229
- return {
230
- ...base,
231
- write_off_account: undefined,
232
- write_off_account_id: accountId,
233
- };
234
- default:
235
- return base;
236
- }
237
- }
187
+ const toInvoicingQboAccountMappingsPayload = (accountIdByMappingCode, accountForId) => {
188
+ const mappings = {};
189
+ Object.entries(accountIdByMappingCode).forEach(([code, accountId]) => {
190
+ if (accountId === '') {
191
+ return;
192
+ }
193
+ const account = accountForId(accountId);
194
+ mappings[(0, exports.toInvoicingQboAccountMappingSlot)(code)] =
195
+ account != null ? (0, accountPayload_1.toAccountPayload)(account) : accountId;
196
+ });
197
+ return mappings;
198
+ };
199
+ exports.toInvoicingQboAccountMappingsPayload = toInvoicingQboAccountMappingsPayload;
238
200
  function toInvoicingQboAccountMappingKindOption(option) {
239
201
  return {
240
202
  accountTypes: option.account_types,
@@ -1,3 +1,5 @@
1
+ import { AccountBasePayload } from '../../account/accountPayload';
2
+ import { ClassBasePayload } from '../../class/classPayload';
1
3
  import { InvoicingPlanTier, InvoicingProduct } from './productState';
2
4
  export interface InvoicingPlanTierPayload {
3
5
  price: number;
@@ -7,10 +9,18 @@ export interface InvoicingPlanTierPayload {
7
9
  pricing_type?: string;
8
10
  }
9
11
  export interface InvoicingAccountingDetailPayload {
12
+ /**
13
+ * `account` and `accounting_class` hold whole records — what the service stores
14
+ * and what the catalog payload builder sends. The bare `accounting_code` /
15
+ * `accounting_category_1` are the older shape, still read so a plan saved
16
+ * before the rollover prefills.
17
+ */
18
+ account?: Partial<AccountBasePayload> | null;
10
19
  accounting_category_1?: string;
11
20
  accounting_category_2?: string;
12
21
  accounting_category_3?: string;
13
22
  accounting_category_4?: string;
23
+ accounting_class?: Partial<ClassBasePayload> | null;
14
24
  accounting_code?: string;
15
25
  sku?: string;
16
26
  }
@@ -4,6 +4,7 @@ exports.mapInvoicingProductPayloadToState = exports.mapInvoicingPlanTierPayloadT
4
4
  const amount_1 = require("../../../commonStateTypes/amount");
5
5
  const currencyHelper_1 = require("../../../commonStateTypes/currencyHelper");
6
6
  const zeniDayJS_1 = require("../../../zeniDayJS");
7
+ const invoicingCommonPayload_1 = require("../invoicingCommonPayload");
7
8
  // ── Payload → State mappers (snake_case wire shape → camelCase domain shape) ──
8
9
  const mapInvoicingPlanTierPayloadToState = (payload, currencyCode, currencySymbol) => ({
9
10
  price: (0, amount_1.toAmount)(payload.price, currencyCode, currencySymbol),
@@ -14,11 +15,22 @@ const mapInvoicingPlanTierPayloadToState = (payload, currencyCode, currencySymbo
14
15
  });
15
16
  exports.mapInvoicingPlanTierPayloadToState = mapInvoicingPlanTierPayloadToState;
16
17
  const mapInvoicingAccountingDetailPayloadToState = (payload) => ({
17
- accountingCategory1: payload.accounting_category_1,
18
+ // The QuickBooks id first in both, for the reason `firstSelectableInvoicingId`
19
+ // documents: the form's pickers are keyed on it, so reading the internal id
20
+ // would leave the field blank over a mapping that exists.
21
+ accountingCategory1: (0, invoicingCommonPayload_1.firstSelectableInvoicingId)([
22
+ payload.accounting_class?.qbo_id,
23
+ payload.accounting_class?.accounting_class_id,
24
+ payload.accounting_category_1,
25
+ ]),
18
26
  accountingCategory2: payload.accounting_category_2,
19
27
  accountingCategory3: payload.accounting_category_3,
20
28
  accountingCategory4: payload.accounting_category_4,
21
- accountingCode: payload.accounting_code,
29
+ accountingCode: (0, invoicingCommonPayload_1.firstSelectableInvoicingId)([
30
+ payload.account?.qbo_id,
31
+ payload.account?.account_id,
32
+ payload.accounting_code,
33
+ ]),
22
34
  sku: payload.sku,
23
35
  });
24
36
  const mapInvoicingProductPayloadToState = (payload) => {
package/lib/epic.d.ts CHANGED
@@ -265,7 +265,7 @@ import { ActionType as InvoicingTransactionListViewActionType } from './view/inv
265
265
  import { ActionType as InvoicingPaymentActionActionType } from './view/invoicing/paymentAction/paymentActionEpic';
266
266
  import { ActionType as InvoicingPromotionalCreditActionActionType } from './view/invoicing/promotionalCreditAction/promotionalCreditActionEpic';
267
267
  import { ActionType as RecordPaymentActionType } from './view/invoicing/recordPayment/recordPaymentEpic';
268
- import { ActionType as InvoicingSettingsViewActionType } from './view/invoicing/settingsView/settingsViewEpics';
268
+ import { InvoicingSettingsViewActionType } from './view/invoicing/settingsView/epics/settingsViewActionType';
269
269
  import { ActionType as InvoicingSubscriptionActionActionType } from './view/invoicing/subscriptionAction/subscriptionActionEpic';
270
270
  import { ActionType as FetchMonthClosePerformanceTrendActionType } from './view/monthEndCloseChecksView/epics/fetchMonthClosePerformanceTrendEpic';
271
271
  import { ActionType as FetchMonthEndCloseChecksActionType } from './view/monthEndCloseChecksView/epics/fetchMonthEndCloseChecksEpic';
@@ -337,6 +337,7 @@ import { ActionType as FetchEntityRecommendationsByTransactionIdActionType } fro
337
337
  import { ActionType as FetchEntityRecommendationsForLineUpdateActionType } from './view/recommendation/fetchEntityRecommendationsForLineUpdateEpic';
338
338
  import { ActionType as FetchRecommendationByEntityIdActionType } from './view/recommendation/fetchRecommendationByEntityIdEpic';
339
339
  import { ActionType as FetchRecommendationByEntityNameActionType } from './view/recommendation/fetchRecommendationByEntityNameEpic';
340
+ import { ActionType as SubmitRecommendationFeedbackActionType } from './view/recommendation/submitRecommendationFeedbackEpic';
340
341
  import { ActionType as FetchReferralsActionType } from './view/referralView/epics/fetchReferralsEpic';
341
342
  import { ActionType as FetchRewardsPlanActionType } from './view/referralView/epics/fetchRewardsPlanEpic';
342
343
  import { ActionType as ResendReferralInviteActionType } from './view/referralView/epics/resendReferralInviteEpic';
@@ -666,5 +667,5 @@ import { ActionType as FetchDepositAccStatementListActionType } from './view/zen
666
667
  import { ActionType as FetchZeniAccStatePageActionType } from './view/zeniAccStatementList/fetchZeniAccStatementPageEpic';
667
668
  import { ActionType as ApproveOAuthConsentActionType } from './view/zeniOAuthView/epics/approveOAuthConsentEpic';
668
669
  /** Root action type is union of all the epic action type */
669
- export type RootActionType = AcceptBillPayTermsActionType | AcceptBillPayUpdatedTermsActionType | AcceptChargeCardTermsActionType | AcceptEmployeeRemiTermsActionType | AcceptMasterTOSEpicActionType | AcceptRemiTermsActionType | AcceptTreasuryTermsActionType | AcceptZeniAccountTermsActionType | AcknowledgeOnboardingAiActivationViewedActionType | AcknowledgeOnboardingAiFinanceTeamActionType | AddCardPaymentSourceActionType | ApplyExtractedPolicyToDraftActionType | ApproveOAuthConsentActionType | ApproveOrRejectBillActionType | ApproveOrRejectBillsBulkActionActionType | ApproveOrRejectRemiActionType | ApproveOrRejectRemisBulkActionActionType | ApproveVendorGlobalReviewActionType | ArchiveCardPolicyActionType | ArchiveTaskActionType | BackgroundRefetchReviewTabActionType | BalanceSheetActionType | BalanceSheetClassesViewActionType | BalanceSheetForTimeframeActionType | BalanceSheetForTimeframeClassesViewActionType | BalanceSheetForTimeframeProjectViewActionType | BalanceSheetProjectViewActionType | BulkUpdateTasksListActionType | BulkUploadMatchResultToastActionType | BulkUploadReceiptsActionType | CancelAiAccountantOnboardingActionType | CancelAndDeleteBillActionType | CancelAndDeleteRemiActionType | CancelOrDeleteBillsBulkActionActionType | CancelOrDeleteRemisBulkActionActionType | CancelScheduleAccruedJournalEntryActionType | CardBalanceActionType | CashBalanceActionType | CashFlowActionType | CashFlowForTimeframeActionType | CashInCashOutActionType | CashPositionActionType | ChangeZeniPersonRolesActionType | CheckDepositActionType | CloseChargeCardActionType | CloseChargeCardsActionType | CombinedStatementActionType | CompanyManagementSavePendingUpdatesActionType | CompanyManagementSaveUpdatesActionType | ConfirmBulkUploadMatchActionType | ConfirmCardSetupIntentActionType | ConfirmStatementMappingActionType | CreateAddressActionType | CreateAutoTransferRuleActionType | CreateBankAccountActionType | CreateCardPolicyTemplateActionType | CreateCardSetupIntentActionType | CreateCheckingAccountActionType | CreateCompanyAddressActionType | CreateCompanyOfficersActionType | CreateCompanyUserAddressActionType | CreateGlobalMerchantActionType | CreateInternationalBankAccountActionType | CreateInvoiceActionType | CreateNewSchedulesAccruedActionType | CreateNewSchedulesActionType | CreateNewTaskGroupActionType | CreatePaymentInstrumentActionType | CreateSessionActionType | CreateSessionAndSubmitActionType | CreateSubTaskActionType | CreateTagActionType | CreateTaskFromTaskGroupTemplateActionType | CreateTransferEntryActionType | CreateUserBankAccountActionType | CurrencyConversionActionType | DeleteAccountStatementActionType | DeleteAutoTransferRuleActionType | DeleteBankAccountActionType | DeleteBillActionType | DeleteBillPayApprovalRuleActionType | DeleteCannedResponseActionType | DeleteChatSessionActionType | DeleteFileActionType | DeleteFileListActionType | DeleteInternationalBankAccountActionType | DeletePaymentInstrumentActionType | DeletePersonActionType | DeleteRemiActionType | DeleteRemiApprovalRuleActionType | DeleteScheduleAccruedDetailActionType | DeleteScheduleDetailActionType | DeleteTagActionType | DeleteTaskActionType | DeleteTaskGroupActionType | DeleteTransactionAttachmentActionType | DeleteUserBankAccountActionType | DepositAccountTransactionListActionType | DisableAccountingProjectsActionType | DismissCapitalizationOnboardingActionType | DoMagicLinkSignInActionType | DownloadAccountingProviderAttachmentActionType | DragNDropTasksActionType | EditInvoicingCatalogItemDetailViewActionType | EditInvoicingCouponDetailViewActionType | EditInvoicingCustomerDetailViewActionType | EditInvoicingSubscriptionDetailViewActionType | EnableAccountingProjectsActionType | EnableChargeCardAutoPayActionType | EnableSetupActionType | EstablishOnboardingPlaidConnectionActionType | EstablishPlaidConnectionActionType | ExcludeAccountFromReconciliationActionType | ExpressInterestChargeCardActionType | ExpressPayActionType | ExtractPolicyDocumentActionType | FetchAccountHistoryActionType | FetchAccountListActionType | FetchAccountListForAccountTypesActionType | FetchAccountSettingsListForAccountTypesActionType | FetchAccruedScheduleListActionType | FetchActiveTenantActionType | FetchAddressActionType | FetchAggregatedReportActionType | FetchAiAccountantCustomersActionType | FetchAiAccountantJobsActionType | FetchAiAgentsActivationStatusActionType | FetchAllCockpitViewsActionType | FetchAllExpenseAutomationTabsActionType | FetchAllPeopleRequiredActionType | FetchAllTagsActionType | FetchAllTaskGroupsActionType | FetchAllTenantsActionType | FetchApAgingActionType | FetchApAgingDetailActionType | FetchArAgingActionType | FetchArAgingDetailActionType | FetchAuditReportGroupViewActionType | FetchAuditRuleGroupViewActionType | FetchAutoTransferReviewDetailActionType | FetchAutoTransferRuleHistoryActionType | FetchAutoTransferRulesActionType | FetchBankAccountsListActionType | FetchBankConnectionsViewActionType | FetchBankCountryNameByIbanActionType | FetchBankNameByRoutingActionType | FetchBankNameBySwiftActionType | FetchBillAndInitializeLocalStoreActionType | FetchBillDetailActionType | FetchBillingAccountsListActionType | FetchBillListActionType | FetchBillListPerTabActionType | FetchBillPayApproversDetailsActionType | FetchBillPayApproversListActionType | FetchBillPayCardActionType | FetchBillPayConfigActionType | FetchBillPaySetupApproverViewActionType | FetchBillPaySetupViewActionType | FetchBulkUploadBatchDetailsActionType | FetchBulkUploadBatchesActionType | FetchCannedResponsesActionType | FetchCardPolicyDetailActionType | FetchCardPolicyListActionType | FetchCardPolicyMccCategoriesActionType | FetchCardPolicyVendorOptionsActionType | FetchCardProfilesActionType | FetchCashbackDetailActionType | FetchChargeCardConfigActionType | FetchChargeCardDetailActionType | FetchChargeCardDetailPageActionType | FetchChargeCardListActionType | FetchChargeCardListPageActionType | FetchChargeCardPaymentHistoryActionType | FetchChargeCardPaymentPageActionType | FetchChargeCardRepaymentDetailActionType | FetchChargeCardSetupViewActionType | FetchChargeCardsRecurringExpensesActionType | FetchChargeCardStatementListActionType | FetchChargeCardTransactionAttachmentsActionType | FetchChargeCardTransactionListActionType | FetchChargeCardTransactionStatisticsActionType | FetchChatHistoryActionType | FetchChatSessionsForUserActionType | FetchClassListActionType | FetchCockpitContextActionType | FetchCollaborationAuthTokenActionType | FetchCompanyBillingAddressActionType | FetchCompanyConfigActionType | FetchCompanyHealthMetricConfigViewEpicActionType | FetchCompanyHealthMetricViewEpicActionType | FetchCompanyManagementActionType | FetchCompanyMetaDataActionType | FetchCompanyMonthEndReportHistoricDataActionType | FetchCompanyMonthEndReportHistoricDatesActionType | FetchCompanyMonthEndReportTemplatesActionType | FetchCompanyMonthEndReportViewActionType | FetchCompanyOnboardingViewActionType | FetchCompanyPassportViewActionType | FetchCompanyPortfolioActionType | FetchCompanyTaskManagerViewActionType | FetchCompletedTransactionsActionType | FetchCreateInvoiceFormPageActionType | FetchCreditAccountActionType | FetchCreditAccountRepaymentActionType | FetchCreditAgentMacroActionType | FetchCurrencyConversionValueActionType | FetchDashboardActionType | FetchDashboardLayoutActionType | FetchDebitCardSummaryActionType | FetchDepositAccountActionType | FetchDepositAccountDetailActionType | FetchDepositAccountLimitActionType | FetchDepositAccountListActionType | FetchDepositAccountListForCardsActionType | FetchDepositAccStatementListActionType | FetchDownloadSchedulesActionType | FetchDuplicateBillActionType | FetchDuplicateReimbursementEpicActionType | FetchEditBillDetailPageActionType | FetchEditRemiDetailPageActionType | FetchEligibleActionsForBillActionType | FetchEntityAutoCompleteActionType | FetchEntityHistoryActionType | FetchEntityRecommendationsByTransactionIdActionType | FetchEntityRecommendationsForLineUpdateActionType | FetchExcludedResourcesActionType | FetchExpenseAutomationFluxAnalysisActionType | FetchExpenseAutomationInitializeTransactionCategorizationViewLocalDataActionType | FetchExpenseAutomationJEScheduleActionType | FetchExpenseAutomationJESchedulePageActionType | FetchExpenseAutomationMarkTransactionAsNotMiscategorizedActionType | FetchExpenseAutomationMissingReceiptsActionType | FetchExpenseAutomationReconciliationsViewActionType | FetchExpenseAutomationSaveTransactionCategorizationActionType | FetchExpenseAutomationTransactionCategorizationActionType | FetchExpenseAutomationTransactionCategorizationViewActionType | FetchExpenseAutomationUpdateTransactionCategorizationEpicActionType | FetchExpenseTrendActionType | FetchExternalConnectionsActionType | FetchFileActionType | FetchFileListActionType | FetchForecastListActionType | FetchGlobalMerchantAutoCompleteActionType | FetchGlobalMerchantRecommendationActionType | FetchIncomeTrendActionType | FetchInternationalWireDynamicFormActionType | FetchIntlVerificationFormActionType | FetchInvoiceCountsActionType | FetchInvoiceDetailActionType | FetchInvoiceKPIsActionType | FetchInvoiceListActionType | FetchInvoiceListPageActionType | FetchIssueCardPageActionType | FetchMagicLinkBankNameByRoutingActionType | FetchMagicLinkBankNameBySwiftActionType | FetchMagicLinkBillActionType | FetchMagicLinkTenantActionType | FetchManagementActionType | FetchMerchantListActionType | FetchMonthClosePerformanceTrendActionType | FetchMonthEndCloseChecksActionType | FetchMoreBatchDetailsActionType | FetchMultipleBatchDetailsActionType | FetchMyProfileActionType | FetchMyProfileViewActionType | FetchNetBurnOrIncomeStoryCardActionType | FetchNetBurnOrIncomeWithForecastActionType | FetchNotificationSettingsActionType | FetchNotificationSettingsViewActionType | FetchNotificationUnreadCountActionType | FetchNotificationViewActionType | FetchOnboardingActionType | FetchOnboardingCompletedCompaniesActionType | FetchOnboardingCustomerSetupViewActionType | FetchOnboardingCustomerViewActionType | FetchOpExWithForecastActionType | FetchOwnerListActionType | FetchParentSubsidiaryManagementActionType | FetchPaymentAccountBalanceActionType | FetchPaymentAccountListActionType | FetchPaymentSourcesActionType | FetchPortfolioActionType | FetchPortfolioAllocationActionType | FetchPreviousBillsActionType | FetchProjectListActionType | FetchQBOConnectionPoolActionType | FetchRecommendationByEntityIdActionType | FetchRecommendationByEntityNameActionType | FetchRecommendationsAndUpdateMerchantRecommendationsActionType | FetchRecommendationsAndUpdateVendorRecommendationsActionType | FetchRecommendedBillExpenseActionType | FetchReferralsActionType | FetchRegisteredInterestsActionType | FetchReimbursementCardActionType | FetchReimbursementConfigActionType | FetchRemiAndInitializeLocalStoreActionType | FetchRemiApproversDetailsActionType | FetchRemiApproversListActionType | FetchRemiDetailActionType | FetchRemiListActionType | FetchRemiListPerTabActionType | FetchRemiSetupApproverViewActionType | FetchRemiSetupViewActionType | FetchRevenueWithForecastActionType | FetchReviewCompanyActionType | FetchReviewTransferDetailActionType | FetchRewardsPlanActionType | FetchScheduleAccruedDetailsActionType | FetchScheduleAccruedDetailsPageActionType | FetchScheduleDetailsActionType | FetchScheduleDetailsPageActionType | FetchScheduleListActionType | FetchSchedulesListActionType | FetchSkillsActionType | FetchSubscriptionActionType | FetchSubscriptionAddOnsActionType | FetchSubscriptionCouponsActionType | FetchSubscriptionCreateEstimateActionType | FetchSubscriptionDetailsActionType | FetchSubscriptionListActionType | FetchSubscriptionPlansActionType | FetchSubscriptionSummaryForTenantActionType | FetchSubscriptionUpdateEstimateActionType | FetchSubTasksActionType | FetchSuggestedQuestionsActionType | FetchTaskDetailActionType | FetchTaskDetailPageActionType | FetchTaskGroupTemplatesActionType | FetchTaskHistoryActionType | FetchTaskListActionType | FetchTaskListPageActionType | FetchTaskManagerMetricsActionType | FetchTasksCardActionType | FetchTransactionActivityLogActionType | FetchTransactionDetailActionType | FetchTransactionListByAccountActionType | FetchTransactionListByClassActionType | FetchTransactionListByEntityActionType | FetchTransactionListByProjectActionType | FetchTransactionsForEntityActionType | FetchTransactionsListByCategoryTypeActionType | FetchTransferAccountsActionType | FetchTreasuryDetailActionType | FetchTreasuryFundsActionType | FetchTreasuryHistoryActionType | FetchTreasurySetupViewActionType | FetchTreasuryStatementListActionType | FetchTreasuryTaxLetterListActionType | FetchTreasuryTransactionListActionType | FetchTrendForEntityActionType | FetchUserDetailActionType | FetchUserFinancialAccountActionType | FetchUserListByTypeActionType | FetchUserRoleConfigActionType | FetchVendor1099TypeListActionType | FetchVendorActionType | FetchVendorAndUpdateBillLocalDataActionType | FetchVendorByNameAndParseInvoiceActionType | FetchVendorDetailsActionType | FetchVendorFirstReviewAttachmentsActionType | FetchVendorFirstReviewViewActionType | FetchVendorGlobalReviewViewActionType | FetchVendorsActionType | FetchVendorsFiling1099ActionType | FetchVendorsFiling1099AllActionType | FetchVendorsFiling1099DownloadActionType | FetchVendorTabViewActionType | FetchVendorTypeListActionType | FetchZeniAccountListPageActionType | FetchZeniAccountsConfigActionType | FetchZeniAccountSetupViewActionType | FetchZeniAccStatePageActionType | FetchZeniUsersActionType | GetOnboardingEmailGroupActionType | GetOnboardingPlaidLinkTokenActionType | GetPaymentAccountsActionType | GetPlaidLinkTokenActionType | IgnoreExpenseAutomationJEScheduleActionType | ImproveUsingZeniGPTActionType | IncludeAccountInReconciliationActionType | InitialiseExpenseAutomationLocalDataForSelectedAccountIdActionType | InitializeAccountMappingViewActionType | InitializeAccountSettingsViewEpicActionType | InitializeBillPaySetupApproverViewUpdateDataActionType | InitializeBillToLocalStoreActionType | InitializeCardUserOnboardingLocalDataActionType | InitializeCompanyHealthMetricViewLocalDataEpicActionType | InitializeEditPersonActionType | InitializeExpenseAutomationJeScheduleLocalDataActionType | InitializeInternationalWireLocalDataActionType | InitializeIntlVerificationFormEpicActionType | InitializeMyProfileLocalDataActionType | InitializeOnboardingCustomerViewUpdateDataActionType | InitializeRemiSetupApproverViewUpdateDataActionType | InitializeRemiToLocalStoreActionType | InitializeScheduleAccruedDetailLocalDataActionType | InitializeScheduleDetailLocalDataActionType | InitializeSubscriptionLocalDataActionType | InitializeTaskToLocalStoreActionType | InitializeTransactionDetailLocalDataActionType | InitializeVendorAddressActionType | InitiateChargeCardRepaymentActionType | InitiateReportsClassViewRefetchingActionType | InitiateReportsProjectViewRefetchingActionType | InsightsCardActionType | InvitePeopleActionType | InviteZeniPeopleActionType | InvoicingAuditViewActionType | InvoicingCatalogActionActionType | InvoicingCatalogItemDetailViewActionType | InvoicingCatalogListViewActionType | InvoicingCatalogSubFamilyActionType | InvoicingConfigViewActionType | InvoicingCouponDetailViewActionType | InvoicingCouponViewActionType | InvoicingCreditNoteDetailViewActionType | InvoicingCreditNoteListViewActionType | InvoicingCustomerDetailPageActionType | InvoicingCustomerDetailViewActionType | InvoicingCustomerListViewActionType | InvoicingCustomerPaymentMethodActionType | InvoicingDataImportViewActionType | InvoicingDiscountActionActionType | InvoicingDunningActionActionType | InvoicingDunningCaseDetailViewActionType | InvoicingDunningCaseListViewActionType | InvoicingInvoiceActionActionType | InvoicingOverviewActionType | InvoicingPaymentActionActionType | InvoicingPromotionalCreditActionActionType | InvoicingQboViewActionType | InvoicingSettingsViewActionType | InvoicingSubscriptionActionActionType | InvoicingSubscriptionDetailViewActionType | InvoicingSubscriptionFormPageActionType | InvoicingSubscriptionListViewActionType | InvoicingTransactionDetailViewActionType | InvoicingTransactionListViewActionType | IssueChargeCardActionType | LockChargeCardActionType | LockChargeCardsActionType | MarkAsCompleteScheduleDetailActionType | MarkTransactionAsNotMiscategorizedActionType | NetBurnOrIncomeActionType | NetBurnOrIncomeClassesViewActionType | NetBurnOrIncomeForTimeframeActionType | NetBurnOrIncomeForTimeframeClassesViewActionType | NetBurnOrIncomeForTimeframeProjectViewActionType | NetBurnOrIncomeProjectViewActionType | NotifyMeForFeatureActionType | OpExActionType | OpExByVendorReportActionType | OpExByVendorReportForTimeframeActionType | OpExByVendorReportSummaryActionType | OpExClassesViewActionType | OpExForTimeframeClassesViewActionType | OpExForTimeframeProjectViewActionType | OpExForTimeframeViewActionType | OpExProjectViewActionType | ParallelFetchAccountTransactionListActionType | ParallelFetchClassTransactionListActionType | ParallelFetchEntityTransactionListActionType | ParallelFetchProjectTransactionListActionType | ParallelFetchTransactionListByCategoryTypeActionType | ParseCombinedStatementActionType | ParseInvoiceToBillActionType | ParseReceiptsToRemiActionType | ParseStatementActionType | ParseUploadedKybDocumentActionType | ParseUploadedKycDocumentActionType | PeopleActionType | PeoplePageActionType | PeopleSaveUpdatesActionType | PolicyDocumentExtractionToRecommendationBridgeActionType | PolicyRecommendationFromUploadActionType | ProfitAndLossActionType | ProfitAndLossClassesViewActionType | ProfitAndLossForTimeframeActionType | ProfitAndLossForTimeframeClassesViewActionType | ProfitAndLossForTimeframeProjectViewActionType | ProfitAndLossProjectViewActionType | PushToastNotificationActionType | RecommendationForAccountSettingsActionType | RecommendationForAccountTypeActionType | RecordPaymentActionType | RefetchCompletedTransactionsOnBulkUploadSortActionType | RefreshBatchDetailsForBatchIdActionType | RefreshExpenseAutomationCurrentTabActionType | RefreshIntegrationsDataActionType | RefreshOpExByVendorReportActionType | RejectVendorGlobalReviewActionType | ReorderBillPayApprovalRulesActionType | ReorderRemiApprovalRulesActionType | ReparseStatementActionType | ReportsResyncActionType | ResendCardInviteActionType | ResendInviteActionType | ResendOtpActionType | ResendReferralInviteActionType | ResendVerifyDeviceOTPActionType | ResetTransactionVendorLocalDataActionType | ResetVendorDetailLocalDataActionType | RestoreAutomatchingActionType | ResumeEnableAccountingProjectsActionType | RetryBankAccountConnectionActionType | RetryBankAccountConnectionForOnboardingActionType | RetryExpenseAutomationJEScheduleActionType | RetryOrRefundBillActionType | RevenueActionType | RevenueClassesViewActionType | RevenueForTimeframeClassesViewActionType | RevenueForTimeframeProjectViewActionType | RevenueForTimeframeViewActionType | RevenueProjectViewActionType | ReviewDraftRemisBulkActionActionTye | ReviewExpenseAutomationFluxAnalysisActionType | RevokeCardInviteActionType | RevokeChargeCardsInviteActionType | SaveAccountMappingViewActionType | SaveAccountSettingsViewEpicActionType | SaveAddressActionType | SaveBillDetailActionType | SaveBillPaySetupApproverViewUpdatesActionType | SaveCannedResponseActionType | saveCardOnboardingUserDetailsActionType | SaveCompanyBillingAddressActionType | SaveCompanyHealthMetricByIdEpicActionType | SaveCompanyMonthEndReportActionType | SaveCompanyPassportDetailsActionType | SaveCreditAgentMacroActionType | SaveExpenseAutomationReconciliationDetailActionType | SaveExternalConnectionActionType | SaveMagicLinkBankAccountActionType | SaveNotificationPreferencesActionType | SaveNotificationSettingsEpicActionType | SaveOnboardingCustomerCompletedStatusActionType | SaveOnboardingCustomerNotesActionType | SaveOnboardingCustomerViewUpdatesActionType | SaveRealTimeApprovalActionType | SaveReasonForAuditRuleActionType | SaveReconciliationReviewActionType | SaveRemiDetailActionType | SaveRemiSetupApproverViewUpdatesActionType | SaveScheduleAccruedDetailsActionType | SaveScheduleDetailsActionType | SaveSubscriptionNotesUpdatesActionType | SaveSubscriptionUpdatesActionType | SaveTaskDetailActionType | SaveTranactionVendorActionType | SaveTransactionDetailActionType | SaveVendorActionType | SaveVendorDetailsViewActionType | SaveVendorFirstReviewViewActionType | ScheduleTenantCreditScoreCronActionType | SearchTransactionsForManualMatchActionType | SeedAiCardCreationFormDraftActionType | SeedAiCardPolicyFormDraftActionType | SendCompanyMonthEndReportActionType | SendEmailMagicLinkToUserActionType | SendOnboardingCustomerViewInviteActionType | SendOtpActionType | SendReferralInviteActionType | SessionHeartbeatActionType | SignInActionType | SignOutActionType | SnoozeTaskActionType | StatementCloseDayActionType | StopSubmitActionType | StopSubmitQuestionActionType | SubmitDraftBillsBulkActionActionType | SubmitDraftRemisBulkActionActionType | SubmitExpressPayActionType | SubmitFeedbackActionType | SubmitIntlVerificationActionType | SubmitQuestionActionType | SyncInvoicingSubscriptionCouponsActionType | SyncTabsAfterAutomatchActionType | ToggleReportUIOptionForecastModeActionType | TopExActionType | TransferMoneyActionType | TreasuryTransferMoneyActionType | TriggerAiAccountantJobActionType | TriggerReviewTabRefetchActionType | UnlinkPaymentAccountActionType | UnlockChargeCardActionType | UnlockChargeCardsActionType | UnsnoozeTaskActionType | UpdateAccountingClassesEnabledActionType | UpdateAccruedJESchedulesActionType | UpdateAddressActionType | UpdateAmountsInScheduleAccruedDetailActionType | UpdateAmountsInScheduleDetailActionType | UpdateAutoTransferRuleActionType | UpdateBusinessVerificationDetailsActionType | UpdateCapitalizationAccountThresholdActionType | UpdateCardPolicyActionType | UpdateCardProfileActionType | UpdateChargeCardDetailActionType | UpdateChargeCardLimitActionType | UpdateChargeCardNameActionType | UpdateChargeCardsLimitActionType | UpdateCombinedStatementInfoActionType | UpdateCompanyDetailsActionType | UpdateCompanyOfficerActionType | UpdateCompanyPassportLocalStoreDataActionType | UpdateCompanyProductServicesActionType | UpdateCompanyQboRealmIdActionType | UpdateCompanyTaskManagerViewFiltersActionType | UpdateDashboardLayoutActionType | UpdateDebitCardPinAttemptActionType | UpdateDepositAccountActionType | UpdateDynamicFormActionType | UpdateExpenseAutomationReconciliationBalanceLocalDataActionType | UpdateFileNameActionType | UpdateFilesMetadataActionType | UpdateJESchedulesActionType | UpdateMappedCashAccountActionType | UpdateMileageDetailsActionType | UpdateMyProfileActionType | UpdateNetBurnOrIncomeStoryCardSettingsActionType | UpdateNotificationViewAllNotificationsStatusActionType | UpdateNotificationViewNotificationStatusActionType | UpdateOnboardingCustomerViewActionType | UpdateOnboardingCustomerViewCompleteStatusActionType | UpdateOnboardingCustomerViewDashboardLoadedActionType | UpdateOnboardingCustomerViewLocalStoreDataActionType | UpdateOnboardingPaymentAccountLoginStatusActionType | UpdateOnboardingPaymentAccountStatusActionType | UpdatePaymentAccountActionType | UpdatePaymentAccountLoginStatusActionType | UpdatePaymentAccountStatusActionType | UpdatePhysicalChargeCardAttemptActionType | UpdatePortfolioAllocationActionType | UpdatePrimaryContactActionType | UpdatePrimaryFundingAccountActionType | UpdateQBOConnectionPoolExternalConnectionActionType | UpdateReferViewedActionType | UpdateRemiSetupViewLocalStoreDataActionType | UpdateReportUIOptionCOABalancesRangeActionType | UpdateReportUIOptionIsCompareModeActionType | UpdateReportUIOptionIsCompareModeOnActionType | UpdateReportUIOptionThisPeriodActionType | UpdateReportUIOptionTimeFrameActionType | UpdateSectionAccountsViewActionType | UpdateSectionClassesViewV2ActionType | UpdateSectionProjectViewActionType | UpdateSelectedVendorForCreateFlowActionType | UpdateSetupViewLocalStoreDataActionType | UpdateStatementInfoActionType | UpdateTaskFromListViewActionType | UpdateTaskGroupNameActionType | UpdateTransactionDetailActionType | UpdateTransactionOnUploadSuccessActionType | UpdateVendorContactActionType | UploadAccountStatementActionType | UploadMissingReceiptSuccessEpicActionType | UploadTransactionReceiptSuccessEpicActionType | ValidateBillsBulkActionActionType | VendorFiling1099UploadDetailsSaveActionType | VendorsTabFetchVendorActionType | VendorsTabFetchVendorDetailPageViewActionType | VendorsTabFetchVendorDetailsActionType | VendorsTabResetVendorDetailLocalDataActionType | VendorsTabSaveVendorActionType | VerifyDeviceWithTwoFAActionType | VerifyOtpActionType | VerifyUserActionType | WatchBulkUploadBatchStatusActionType | WiseRedirectActionType;
670
+ export type RootActionType = AcceptBillPayTermsActionType | AcceptBillPayUpdatedTermsActionType | AcceptChargeCardTermsActionType | AcceptEmployeeRemiTermsActionType | AcceptMasterTOSEpicActionType | AcceptRemiTermsActionType | AcceptTreasuryTermsActionType | AcceptZeniAccountTermsActionType | AcknowledgeOnboardingAiActivationViewedActionType | AcknowledgeOnboardingAiFinanceTeamActionType | AddCardPaymentSourceActionType | ApplyExtractedPolicyToDraftActionType | ApproveOAuthConsentActionType | ApproveOrRejectBillActionType | ApproveOrRejectBillsBulkActionActionType | ApproveOrRejectRemiActionType | ApproveOrRejectRemisBulkActionActionType | ApproveVendorGlobalReviewActionType | ArchiveCardPolicyActionType | ArchiveTaskActionType | BackgroundRefetchReviewTabActionType | BalanceSheetActionType | BalanceSheetClassesViewActionType | BalanceSheetForTimeframeActionType | BalanceSheetForTimeframeClassesViewActionType | BalanceSheetForTimeframeProjectViewActionType | BalanceSheetProjectViewActionType | BulkUpdateTasksListActionType | BulkUploadMatchResultToastActionType | BulkUploadReceiptsActionType | CancelAiAccountantOnboardingActionType | CancelAndDeleteBillActionType | CancelAndDeleteRemiActionType | CancelOrDeleteBillsBulkActionActionType | CancelOrDeleteRemisBulkActionActionType | CancelScheduleAccruedJournalEntryActionType | CardBalanceActionType | CashBalanceActionType | CashFlowActionType | CashFlowForTimeframeActionType | CashInCashOutActionType | CashPositionActionType | ChangeZeniPersonRolesActionType | CheckDepositActionType | CloseChargeCardActionType | CloseChargeCardsActionType | CombinedStatementActionType | CompanyManagementSavePendingUpdatesActionType | CompanyManagementSaveUpdatesActionType | ConfirmBulkUploadMatchActionType | ConfirmCardSetupIntentActionType | ConfirmStatementMappingActionType | CreateAddressActionType | CreateAutoTransferRuleActionType | CreateBankAccountActionType | CreateCardPolicyTemplateActionType | CreateCardSetupIntentActionType | CreateCheckingAccountActionType | CreateCompanyAddressActionType | CreateCompanyOfficersActionType | CreateCompanyUserAddressActionType | CreateGlobalMerchantActionType | CreateInternationalBankAccountActionType | CreateInvoiceActionType | CreateNewSchedulesAccruedActionType | CreateNewSchedulesActionType | CreateNewTaskGroupActionType | CreatePaymentInstrumentActionType | CreateSessionActionType | CreateSessionAndSubmitActionType | CreateSubTaskActionType | CreateTagActionType | CreateTaskFromTaskGroupTemplateActionType | CreateTransferEntryActionType | CreateUserBankAccountActionType | CurrencyConversionActionType | DeleteAccountStatementActionType | DeleteAutoTransferRuleActionType | DeleteBankAccountActionType | DeleteBillActionType | DeleteBillPayApprovalRuleActionType | DeleteCannedResponseActionType | DeleteChatSessionActionType | DeleteFileActionType | DeleteFileListActionType | DeleteInternationalBankAccountActionType | DeletePaymentInstrumentActionType | DeletePersonActionType | DeleteRemiActionType | DeleteRemiApprovalRuleActionType | DeleteScheduleAccruedDetailActionType | DeleteScheduleDetailActionType | DeleteTagActionType | DeleteTaskActionType | DeleteTaskGroupActionType | DeleteTransactionAttachmentActionType | DeleteUserBankAccountActionType | DepositAccountTransactionListActionType | DisableAccountingProjectsActionType | DismissCapitalizationOnboardingActionType | DoMagicLinkSignInActionType | DownloadAccountingProviderAttachmentActionType | DragNDropTasksActionType | EditInvoicingCatalogItemDetailViewActionType | EditInvoicingCouponDetailViewActionType | EditInvoicingCustomerDetailViewActionType | EditInvoicingSubscriptionDetailViewActionType | EnableAccountingProjectsActionType | EnableChargeCardAutoPayActionType | EnableSetupActionType | EstablishOnboardingPlaidConnectionActionType | EstablishPlaidConnectionActionType | ExcludeAccountFromReconciliationActionType | ExpressInterestChargeCardActionType | ExpressPayActionType | ExtractPolicyDocumentActionType | FetchAccountHistoryActionType | FetchAccountListActionType | FetchAccountListForAccountTypesActionType | FetchAccountSettingsListForAccountTypesActionType | FetchAccruedScheduleListActionType | FetchActiveTenantActionType | FetchAddressActionType | FetchAggregatedReportActionType | FetchAiAccountantCustomersActionType | FetchAiAccountantJobsActionType | FetchAiAgentsActivationStatusActionType | FetchAllCockpitViewsActionType | FetchAllExpenseAutomationTabsActionType | FetchAllPeopleRequiredActionType | FetchAllTagsActionType | FetchAllTaskGroupsActionType | FetchAllTenantsActionType | FetchApAgingActionType | FetchApAgingDetailActionType | FetchArAgingActionType | FetchArAgingDetailActionType | FetchAuditReportGroupViewActionType | FetchAuditRuleGroupViewActionType | FetchAutoTransferReviewDetailActionType | FetchAutoTransferRuleHistoryActionType | FetchAutoTransferRulesActionType | FetchBankAccountsListActionType | FetchBankConnectionsViewActionType | FetchBankCountryNameByIbanActionType | FetchBankNameByRoutingActionType | FetchBankNameBySwiftActionType | FetchBillAndInitializeLocalStoreActionType | FetchBillDetailActionType | FetchBillingAccountsListActionType | FetchBillListActionType | FetchBillListPerTabActionType | FetchBillPayApproversDetailsActionType | FetchBillPayApproversListActionType | FetchBillPayCardActionType | FetchBillPayConfigActionType | FetchBillPaySetupApproverViewActionType | FetchBillPaySetupViewActionType | FetchBulkUploadBatchDetailsActionType | FetchBulkUploadBatchesActionType | FetchCannedResponsesActionType | FetchCardPolicyDetailActionType | FetchCardPolicyListActionType | FetchCardPolicyMccCategoriesActionType | FetchCardPolicyVendorOptionsActionType | FetchCardProfilesActionType | FetchCashbackDetailActionType | FetchChargeCardConfigActionType | FetchChargeCardDetailActionType | FetchChargeCardDetailPageActionType | FetchChargeCardListActionType | FetchChargeCardListPageActionType | FetchChargeCardPaymentHistoryActionType | FetchChargeCardPaymentPageActionType | FetchChargeCardRepaymentDetailActionType | FetchChargeCardSetupViewActionType | FetchChargeCardsRecurringExpensesActionType | FetchChargeCardStatementListActionType | FetchChargeCardTransactionAttachmentsActionType | FetchChargeCardTransactionListActionType | FetchChargeCardTransactionStatisticsActionType | FetchChatHistoryActionType | FetchChatSessionsForUserActionType | FetchClassListActionType | FetchCockpitContextActionType | FetchCollaborationAuthTokenActionType | FetchCompanyBillingAddressActionType | FetchCompanyConfigActionType | FetchCompanyHealthMetricConfigViewEpicActionType | FetchCompanyHealthMetricViewEpicActionType | FetchCompanyManagementActionType | FetchCompanyMetaDataActionType | FetchCompanyMonthEndReportHistoricDataActionType | FetchCompanyMonthEndReportHistoricDatesActionType | FetchCompanyMonthEndReportTemplatesActionType | FetchCompanyMonthEndReportViewActionType | FetchCompanyOnboardingViewActionType | FetchCompanyPassportViewActionType | FetchCompanyPortfolioActionType | FetchCompanyTaskManagerViewActionType | FetchCompletedTransactionsActionType | FetchCreateInvoiceFormPageActionType | FetchCreditAccountActionType | FetchCreditAccountRepaymentActionType | FetchCreditAgentMacroActionType | FetchCurrencyConversionValueActionType | FetchDashboardActionType | FetchDashboardLayoutActionType | FetchDebitCardSummaryActionType | FetchDepositAccountActionType | FetchDepositAccountDetailActionType | FetchDepositAccountLimitActionType | FetchDepositAccountListActionType | FetchDepositAccountListForCardsActionType | FetchDepositAccStatementListActionType | FetchDownloadSchedulesActionType | FetchDuplicateBillActionType | FetchDuplicateReimbursementEpicActionType | FetchEditBillDetailPageActionType | FetchEditRemiDetailPageActionType | FetchEligibleActionsForBillActionType | FetchEntityAutoCompleteActionType | FetchEntityHistoryActionType | FetchEntityRecommendationsByTransactionIdActionType | FetchEntityRecommendationsForLineUpdateActionType | FetchExcludedResourcesActionType | FetchExpenseAutomationFluxAnalysisActionType | FetchExpenseAutomationInitializeTransactionCategorizationViewLocalDataActionType | FetchExpenseAutomationJEScheduleActionType | FetchExpenseAutomationJESchedulePageActionType | FetchExpenseAutomationMarkTransactionAsNotMiscategorizedActionType | FetchExpenseAutomationMissingReceiptsActionType | FetchExpenseAutomationReconciliationsViewActionType | FetchExpenseAutomationSaveTransactionCategorizationActionType | FetchExpenseAutomationTransactionCategorizationActionType | FetchExpenseAutomationTransactionCategorizationViewActionType | FetchExpenseAutomationUpdateTransactionCategorizationEpicActionType | FetchExpenseTrendActionType | FetchExternalConnectionsActionType | FetchFileActionType | FetchFileListActionType | FetchForecastListActionType | FetchGlobalMerchantAutoCompleteActionType | FetchGlobalMerchantRecommendationActionType | FetchIncomeTrendActionType | FetchInternationalWireDynamicFormActionType | FetchIntlVerificationFormActionType | FetchInvoiceCountsActionType | FetchInvoiceDetailActionType | FetchInvoiceKPIsActionType | FetchInvoiceListActionType | FetchInvoiceListPageActionType | FetchIssueCardPageActionType | FetchMagicLinkBankNameByRoutingActionType | FetchMagicLinkBankNameBySwiftActionType | FetchMagicLinkBillActionType | FetchMagicLinkTenantActionType | FetchManagementActionType | FetchMerchantListActionType | FetchMonthClosePerformanceTrendActionType | FetchMonthEndCloseChecksActionType | FetchMoreBatchDetailsActionType | FetchMultipleBatchDetailsActionType | FetchMyProfileActionType | FetchMyProfileViewActionType | FetchNetBurnOrIncomeStoryCardActionType | FetchNetBurnOrIncomeWithForecastActionType | FetchNotificationSettingsActionType | FetchNotificationSettingsViewActionType | FetchNotificationUnreadCountActionType | FetchNotificationViewActionType | FetchOnboardingActionType | FetchOnboardingCompletedCompaniesActionType | FetchOnboardingCustomerSetupViewActionType | FetchOnboardingCustomerViewActionType | FetchOpExWithForecastActionType | FetchOwnerListActionType | FetchParentSubsidiaryManagementActionType | FetchPaymentAccountBalanceActionType | FetchPaymentAccountListActionType | FetchPaymentSourcesActionType | FetchPortfolioActionType | FetchPortfolioAllocationActionType | FetchPreviousBillsActionType | FetchProjectListActionType | FetchQBOConnectionPoolActionType | FetchRecommendationByEntityIdActionType | FetchRecommendationByEntityNameActionType | FetchRecommendationsAndUpdateMerchantRecommendationsActionType | FetchRecommendationsAndUpdateVendorRecommendationsActionType | FetchRecommendedBillExpenseActionType | FetchReferralsActionType | FetchRegisteredInterestsActionType | FetchReimbursementCardActionType | FetchReimbursementConfigActionType | FetchRemiAndInitializeLocalStoreActionType | FetchRemiApproversDetailsActionType | FetchRemiApproversListActionType | FetchRemiDetailActionType | FetchRemiListActionType | FetchRemiListPerTabActionType | FetchRemiSetupApproverViewActionType | FetchRemiSetupViewActionType | FetchRevenueWithForecastActionType | FetchReviewCompanyActionType | FetchReviewTransferDetailActionType | FetchRewardsPlanActionType | FetchScheduleAccruedDetailsActionType | FetchScheduleAccruedDetailsPageActionType | FetchScheduleDetailsActionType | FetchScheduleDetailsPageActionType | FetchScheduleListActionType | FetchSchedulesListActionType | FetchSkillsActionType | FetchSubscriptionActionType | FetchSubscriptionAddOnsActionType | FetchSubscriptionCouponsActionType | FetchSubscriptionCreateEstimateActionType | FetchSubscriptionDetailsActionType | FetchSubscriptionListActionType | FetchSubscriptionPlansActionType | FetchSubscriptionSummaryForTenantActionType | FetchSubscriptionUpdateEstimateActionType | FetchSubTasksActionType | FetchSuggestedQuestionsActionType | FetchTaskDetailActionType | FetchTaskDetailPageActionType | FetchTaskGroupTemplatesActionType | FetchTaskHistoryActionType | FetchTaskListActionType | FetchTaskListPageActionType | FetchTaskManagerMetricsActionType | FetchTasksCardActionType | FetchTransactionActivityLogActionType | FetchTransactionDetailActionType | FetchTransactionListByAccountActionType | FetchTransactionListByClassActionType | FetchTransactionListByEntityActionType | FetchTransactionListByProjectActionType | FetchTransactionsForEntityActionType | FetchTransactionsListByCategoryTypeActionType | FetchTransferAccountsActionType | FetchTreasuryDetailActionType | FetchTreasuryFundsActionType | FetchTreasuryHistoryActionType | FetchTreasurySetupViewActionType | FetchTreasuryStatementListActionType | FetchTreasuryTaxLetterListActionType | FetchTreasuryTransactionListActionType | FetchTrendForEntityActionType | FetchUserDetailActionType | FetchUserFinancialAccountActionType | FetchUserListByTypeActionType | FetchUserRoleConfigActionType | FetchVendor1099TypeListActionType | FetchVendorActionType | FetchVendorAndUpdateBillLocalDataActionType | FetchVendorByNameAndParseInvoiceActionType | FetchVendorDetailsActionType | FetchVendorFirstReviewAttachmentsActionType | FetchVendorFirstReviewViewActionType | FetchVendorGlobalReviewViewActionType | FetchVendorsActionType | FetchVendorsFiling1099ActionType | FetchVendorsFiling1099AllActionType | FetchVendorsFiling1099DownloadActionType | FetchVendorTabViewActionType | FetchVendorTypeListActionType | FetchZeniAccountListPageActionType | FetchZeniAccountsConfigActionType | FetchZeniAccountSetupViewActionType | FetchZeniAccStatePageActionType | FetchZeniUsersActionType | GetOnboardingEmailGroupActionType | GetOnboardingPlaidLinkTokenActionType | GetPaymentAccountsActionType | GetPlaidLinkTokenActionType | IgnoreExpenseAutomationJEScheduleActionType | ImproveUsingZeniGPTActionType | IncludeAccountInReconciliationActionType | InitialiseExpenseAutomationLocalDataForSelectedAccountIdActionType | InitializeAccountMappingViewActionType | InitializeAccountSettingsViewEpicActionType | InitializeBillPaySetupApproverViewUpdateDataActionType | InitializeBillToLocalStoreActionType | InitializeCardUserOnboardingLocalDataActionType | InitializeCompanyHealthMetricViewLocalDataEpicActionType | InitializeEditPersonActionType | InitializeExpenseAutomationJeScheduleLocalDataActionType | InitializeInternationalWireLocalDataActionType | InitializeIntlVerificationFormEpicActionType | InitializeMyProfileLocalDataActionType | InitializeOnboardingCustomerViewUpdateDataActionType | InitializeRemiSetupApproverViewUpdateDataActionType | InitializeRemiToLocalStoreActionType | InitializeScheduleAccruedDetailLocalDataActionType | InitializeScheduleDetailLocalDataActionType | InitializeSubscriptionLocalDataActionType | InitializeTaskToLocalStoreActionType | InitializeTransactionDetailLocalDataActionType | InitializeVendorAddressActionType | InitiateChargeCardRepaymentActionType | InitiateReportsClassViewRefetchingActionType | InitiateReportsProjectViewRefetchingActionType | InsightsCardActionType | InvitePeopleActionType | InviteZeniPeopleActionType | InvoicingAuditViewActionType | InvoicingCatalogActionActionType | InvoicingCatalogItemDetailViewActionType | InvoicingCatalogListViewActionType | InvoicingCatalogSubFamilyActionType | InvoicingConfigViewActionType | InvoicingCouponDetailViewActionType | InvoicingCouponViewActionType | InvoicingCreditNoteDetailViewActionType | InvoicingCreditNoteListViewActionType | InvoicingCustomerDetailPageActionType | InvoicingCustomerDetailViewActionType | InvoicingCustomerListViewActionType | InvoicingCustomerPaymentMethodActionType | InvoicingDataImportViewActionType | InvoicingDiscountActionActionType | InvoicingDunningActionActionType | InvoicingDunningCaseDetailViewActionType | InvoicingDunningCaseListViewActionType | InvoicingInvoiceActionActionType | InvoicingOverviewActionType | InvoicingPaymentActionActionType | InvoicingPromotionalCreditActionActionType | InvoicingQboViewActionType | InvoicingSettingsViewActionType | InvoicingSubscriptionActionActionType | InvoicingSubscriptionDetailViewActionType | InvoicingSubscriptionFormPageActionType | InvoicingSubscriptionListViewActionType | InvoicingTransactionDetailViewActionType | InvoicingTransactionListViewActionType | IssueChargeCardActionType | LockChargeCardActionType | LockChargeCardsActionType | MarkAsCompleteScheduleDetailActionType | MarkTransactionAsNotMiscategorizedActionType | NetBurnOrIncomeActionType | NetBurnOrIncomeClassesViewActionType | NetBurnOrIncomeForTimeframeActionType | NetBurnOrIncomeForTimeframeClassesViewActionType | NetBurnOrIncomeForTimeframeProjectViewActionType | NetBurnOrIncomeProjectViewActionType | NotifyMeForFeatureActionType | OpExActionType | OpExByVendorReportActionType | OpExByVendorReportForTimeframeActionType | OpExByVendorReportSummaryActionType | OpExClassesViewActionType | OpExForTimeframeClassesViewActionType | OpExForTimeframeProjectViewActionType | OpExForTimeframeViewActionType | OpExProjectViewActionType | ParallelFetchAccountTransactionListActionType | ParallelFetchClassTransactionListActionType | ParallelFetchEntityTransactionListActionType | ParallelFetchProjectTransactionListActionType | ParallelFetchTransactionListByCategoryTypeActionType | ParseCombinedStatementActionType | ParseInvoiceToBillActionType | ParseReceiptsToRemiActionType | ParseStatementActionType | ParseUploadedKybDocumentActionType | ParseUploadedKycDocumentActionType | PeopleActionType | PeoplePageActionType | PeopleSaveUpdatesActionType | PolicyDocumentExtractionToRecommendationBridgeActionType | PolicyRecommendationFromUploadActionType | ProfitAndLossActionType | ProfitAndLossClassesViewActionType | ProfitAndLossForTimeframeActionType | ProfitAndLossForTimeframeClassesViewActionType | ProfitAndLossForTimeframeProjectViewActionType | ProfitAndLossProjectViewActionType | PushToastNotificationActionType | RecommendationForAccountSettingsActionType | RecommendationForAccountTypeActionType | RecordPaymentActionType | RefetchCompletedTransactionsOnBulkUploadSortActionType | RefreshBatchDetailsForBatchIdActionType | RefreshExpenseAutomationCurrentTabActionType | RefreshIntegrationsDataActionType | RefreshOpExByVendorReportActionType | RejectVendorGlobalReviewActionType | ReorderBillPayApprovalRulesActionType | ReorderRemiApprovalRulesActionType | ReparseStatementActionType | ReportsResyncActionType | ResendCardInviteActionType | ResendInviteActionType | ResendOtpActionType | ResendReferralInviteActionType | ResendVerifyDeviceOTPActionType | ResetTransactionVendorLocalDataActionType | ResetVendorDetailLocalDataActionType | RestoreAutomatchingActionType | ResumeEnableAccountingProjectsActionType | RetryBankAccountConnectionActionType | RetryBankAccountConnectionForOnboardingActionType | RetryExpenseAutomationJEScheduleActionType | RetryOrRefundBillActionType | RevenueActionType | RevenueClassesViewActionType | RevenueForTimeframeClassesViewActionType | RevenueForTimeframeProjectViewActionType | RevenueForTimeframeViewActionType | RevenueProjectViewActionType | ReviewDraftRemisBulkActionActionTye | ReviewExpenseAutomationFluxAnalysisActionType | RevokeCardInviteActionType | RevokeChargeCardsInviteActionType | SaveAccountMappingViewActionType | SaveAccountSettingsViewEpicActionType | SaveAddressActionType | SaveBillDetailActionType | SaveBillPaySetupApproverViewUpdatesActionType | SaveCannedResponseActionType | saveCardOnboardingUserDetailsActionType | SaveCompanyBillingAddressActionType | SaveCompanyHealthMetricByIdEpicActionType | SaveCompanyMonthEndReportActionType | SaveCompanyPassportDetailsActionType | SaveCreditAgentMacroActionType | SaveExpenseAutomationReconciliationDetailActionType | SaveExternalConnectionActionType | SaveMagicLinkBankAccountActionType | SaveNotificationPreferencesActionType | SaveNotificationSettingsEpicActionType | SaveOnboardingCustomerCompletedStatusActionType | SaveOnboardingCustomerNotesActionType | SaveOnboardingCustomerViewUpdatesActionType | SaveRealTimeApprovalActionType | SaveReasonForAuditRuleActionType | SaveReconciliationReviewActionType | SaveRemiDetailActionType | SaveRemiSetupApproverViewUpdatesActionType | SaveScheduleAccruedDetailsActionType | SaveScheduleDetailsActionType | SaveSubscriptionNotesUpdatesActionType | SaveSubscriptionUpdatesActionType | SaveTaskDetailActionType | SaveTranactionVendorActionType | SaveTransactionDetailActionType | SaveVendorActionType | SaveVendorDetailsViewActionType | SaveVendorFirstReviewViewActionType | ScheduleTenantCreditScoreCronActionType | SearchTransactionsForManualMatchActionType | SeedAiCardCreationFormDraftActionType | SeedAiCardPolicyFormDraftActionType | SendCompanyMonthEndReportActionType | SendEmailMagicLinkToUserActionType | SendOnboardingCustomerViewInviteActionType | SendOtpActionType | SendReferralInviteActionType | SessionHeartbeatActionType | SignInActionType | SignOutActionType | SnoozeTaskActionType | StatementCloseDayActionType | StopSubmitActionType | StopSubmitQuestionActionType | SubmitDraftBillsBulkActionActionType | SubmitDraftRemisBulkActionActionType | SubmitExpressPayActionType | SubmitFeedbackActionType | SubmitIntlVerificationActionType | SubmitQuestionActionType | SubmitRecommendationFeedbackActionType | SyncInvoicingSubscriptionCouponsActionType | SyncTabsAfterAutomatchActionType | ToggleReportUIOptionForecastModeActionType | TopExActionType | TransferMoneyActionType | TreasuryTransferMoneyActionType | TriggerAiAccountantJobActionType | TriggerReviewTabRefetchActionType | UnlinkPaymentAccountActionType | UnlockChargeCardActionType | UnlockChargeCardsActionType | UnsnoozeTaskActionType | UpdateAccountingClassesEnabledActionType | UpdateAccruedJESchedulesActionType | UpdateAddressActionType | UpdateAmountsInScheduleAccruedDetailActionType | UpdateAmountsInScheduleDetailActionType | UpdateAutoTransferRuleActionType | UpdateBusinessVerificationDetailsActionType | UpdateCapitalizationAccountThresholdActionType | UpdateCardPolicyActionType | UpdateCardProfileActionType | UpdateChargeCardDetailActionType | UpdateChargeCardLimitActionType | UpdateChargeCardNameActionType | UpdateChargeCardsLimitActionType | UpdateCombinedStatementInfoActionType | UpdateCompanyDetailsActionType | UpdateCompanyOfficerActionType | UpdateCompanyPassportLocalStoreDataActionType | UpdateCompanyProductServicesActionType | UpdateCompanyQboRealmIdActionType | UpdateCompanyTaskManagerViewFiltersActionType | UpdateDashboardLayoutActionType | UpdateDebitCardPinAttemptActionType | UpdateDepositAccountActionType | UpdateDynamicFormActionType | UpdateExpenseAutomationReconciliationBalanceLocalDataActionType | UpdateFileNameActionType | UpdateFilesMetadataActionType | UpdateJESchedulesActionType | UpdateMappedCashAccountActionType | UpdateMileageDetailsActionType | UpdateMyProfileActionType | UpdateNetBurnOrIncomeStoryCardSettingsActionType | UpdateNotificationViewAllNotificationsStatusActionType | UpdateNotificationViewNotificationStatusActionType | UpdateOnboardingCustomerViewActionType | UpdateOnboardingCustomerViewCompleteStatusActionType | UpdateOnboardingCustomerViewDashboardLoadedActionType | UpdateOnboardingCustomerViewLocalStoreDataActionType | UpdateOnboardingPaymentAccountLoginStatusActionType | UpdateOnboardingPaymentAccountStatusActionType | UpdatePaymentAccountActionType | UpdatePaymentAccountLoginStatusActionType | UpdatePaymentAccountStatusActionType | UpdatePhysicalChargeCardAttemptActionType | UpdatePortfolioAllocationActionType | UpdatePrimaryContactActionType | UpdatePrimaryFundingAccountActionType | UpdateQBOConnectionPoolExternalConnectionActionType | UpdateReferViewedActionType | UpdateRemiSetupViewLocalStoreDataActionType | UpdateReportUIOptionCOABalancesRangeActionType | UpdateReportUIOptionIsCompareModeActionType | UpdateReportUIOptionIsCompareModeOnActionType | UpdateReportUIOptionThisPeriodActionType | UpdateReportUIOptionTimeFrameActionType | UpdateSectionAccountsViewActionType | UpdateSectionClassesViewV2ActionType | UpdateSectionProjectViewActionType | UpdateSelectedVendorForCreateFlowActionType | UpdateSetupViewLocalStoreDataActionType | UpdateStatementInfoActionType | UpdateTaskFromListViewActionType | UpdateTaskGroupNameActionType | UpdateTransactionDetailActionType | UpdateTransactionOnUploadSuccessActionType | UpdateVendorContactActionType | UploadAccountStatementActionType | UploadMissingReceiptSuccessEpicActionType | UploadTransactionReceiptSuccessEpicActionType | ValidateBillsBulkActionActionType | VendorFiling1099UploadDetailsSaveActionType | VendorsTabFetchVendorActionType | VendorsTabFetchVendorDetailPageViewActionType | VendorsTabFetchVendorDetailsActionType | VendorsTabResetVendorDetailLocalDataActionType | VendorsTabSaveVendorActionType | VerifyDeviceWithTwoFAActionType | VerifyOtpActionType | VerifyUserActionType | WatchBulkUploadBatchStatusActionType | WiseRedirectActionType;
670
671
  export declare const featureRootEpic: Epic<RootActionType>;
package/lib/epic.js CHANGED
@@ -313,8 +313,12 @@ const issueCreditNoteEpic_1 = require("./view/invoicing/issueCreditNote/issueCre
313
313
  const paymentActionEpic_1 = require("./view/invoicing/paymentAction/paymentActionEpic");
314
314
  const promotionalCreditActionEpic_1 = require("./view/invoicing/promotionalCreditAction/promotionalCreditActionEpic");
315
315
  const recordPaymentEpic_1 = require("./view/invoicing/recordPayment/recordPaymentEpic");
316
+ const connectInvoicingStripeEpic_1 = require("./view/invoicing/settingsView/epics/connectInvoicingStripeEpic");
317
+ const disconnectInvoicingStripeEpic_1 = require("./view/invoicing/settingsView/epics/disconnectInvoicingStripeEpic");
318
+ const fetchInvoicingSettingsEpic_1 = require("./view/invoicing/settingsView/epics/fetchInvoicingSettingsEpic");
319
+ const saveInvoicingSettingsEpic_1 = require("./view/invoicing/settingsView/epics/saveInvoicingSettingsEpic");
320
+ const submitInvoicingQboSettingsEpic_1 = require("./view/invoicing/settingsView/epics/submitInvoicingQboSettingsEpic");
316
321
  const invoicingBrandingFormEpics_1 = require("./view/invoicing/settingsView/invoicingBrandingFormEpics");
317
- const settingsViewEpics_1 = require("./view/invoicing/settingsView/settingsViewEpics");
318
322
  const subscriptionActionEpic_1 = require("./view/invoicing/subscriptionAction/subscriptionActionEpic");
319
323
  const fetchMonthClosePerformanceTrendEpic_1 = require("./view/monthEndCloseChecksView/epics/fetchMonthClosePerformanceTrendEpic");
320
324
  const fetchMonthEndCloseChecksEpic_1 = require("./view/monthEndCloseChecksView/epics/fetchMonthEndCloseChecksEpic");
@@ -389,6 +393,7 @@ const fetchEntityRecommendationsByTransactionIdEpic_1 = require("./view/recommen
389
393
  const fetchEntityRecommendationsForLineUpdateEpic_1 = require("./view/recommendation/fetchEntityRecommendationsForLineUpdateEpic");
390
394
  const fetchRecommendationByEntityIdEpic_1 = require("./view/recommendation/fetchRecommendationByEntityIdEpic");
391
395
  const fetchRecommendationByEntityNameEpic_1 = require("./view/recommendation/fetchRecommendationByEntityNameEpic");
396
+ const submitRecommendationFeedbackEpic_1 = require("./view/recommendation/submitRecommendationFeedbackEpic");
392
397
  const fetchReferralsEpic_1 = require("./view/referralView/epics/fetchReferralsEpic");
393
398
  const fetchRewardsPlanEpic_1 = require("./view/referralView/epics/fetchRewardsPlanEpic");
394
399
  const resendReferralInviteEpic_1 = require("./view/referralView/epics/resendReferralInviteEpic");
@@ -762,7 +767,7 @@ const ALL_EPICS = [
762
767
  confirmBulkUploadMatchEpic_1.confirmBulkUploadMatchEpic,
763
768
  confirmCardSetupIntentEpic_1.confirmCardSetupIntentEpic,
764
769
  confirmStatementMappingEpic_1.confirmStatementMappingEpic,
765
- settingsViewEpics_1.connectInvoicingStripeEpic,
770
+ connectInvoicingStripeEpic_1.connectInvoicingStripeEpic,
766
771
  convertAmountToHomeCurrencyEpic_1.convertAmountToHomeCurrencyEpic,
767
772
  createAddressEpic_1.createAddressEpic,
768
773
  createAutoTransferRuleEpic_1.createAutoTransferRuleEpic,
@@ -814,7 +819,7 @@ const ALL_EPICS = [
814
819
  deleteTransactionAttachmentEpic_1.deleteTransactionAttachmentEpic,
815
820
  deleteUserBankAccountEpic_1.deleteUserBankAccountEpic,
816
821
  disableAccountingProjectsEpic_1.disableAccountingProjectsEpic,
817
- settingsViewEpics_1.disconnectInvoicingStripeEpic,
822
+ disconnectInvoicingStripeEpic_1.disconnectInvoicingStripeEpic,
818
823
  dismissCapitalizationOnboardingEpic_1.dismissCapitalizationOnboardingEpic,
819
824
  doMagicLinkSignInEpic_1.doMagicLinkSignInEpic,
820
825
  signInUserEpic_1.doSignInEpic,
@@ -1023,7 +1028,7 @@ const ALL_EPICS = [
1023
1028
  customerPaymentMethodEpic_1.fetchInvoicingPlaidLinkTokenEpic,
1024
1029
  fetchInvoicingQboConnectionEpic_1.fetchInvoicingQboConnectionEpic,
1025
1030
  fetchInvoicingQboSyncHealthEpic_1.fetchInvoicingQboSyncHealthEpic,
1026
- settingsViewEpics_1.fetchInvoicingSettingsEpic,
1031
+ fetchInvoicingSettingsEpic_1.fetchInvoicingSettingsEpic,
1027
1032
  fetchInvoicingSubscriptionCountsEpic_1.fetchInvoicingSubscriptionCountsEpic,
1028
1033
  invoicingSubscriptionDetailViewEpics_1.fetchInvoicingSubscriptionDetailEpic,
1029
1034
  fetchInvoicingSubscriptionFormPageEpic_1.fetchInvoicingSubscriptionFormPageEpic,
@@ -1311,7 +1316,7 @@ const ALL_EPICS = [
1311
1316
  saveInvoicingCouponEpic_1.saveInvoicingCouponEpic,
1312
1317
  saveInvoicingCustomerEpic_1.saveInvoicingCustomerEpic,
1313
1318
  customerPaymentMethodEpic_1.saveInvoicingPaymentMethodEpic,
1314
- settingsViewEpics_1.saveInvoicingSettingsEpic,
1319
+ saveInvoicingSettingsEpic_1.saveInvoicingSettingsEpic,
1315
1320
  saveInvoicingSubscriptionEpic_1.saveInvoicingSubscriptionEpic,
1316
1321
  saveMagicLinkBankAccountEpic_1.saveMagicLinkBankAccountEpic,
1317
1322
  saveNewAddressEpic_1.saveNewAddressEpic,
@@ -1360,7 +1365,9 @@ const ALL_EPICS = [
1360
1365
  submitFeedbackEpic_1.submitFeedbackEpic,
1361
1366
  submitIntlVerificationEpic_1.submitIntlVerificationEpic,
1362
1367
  invoicingBrandingFormEpics_1.submitInvoicingBrandingFormEpic,
1368
+ submitInvoicingQboSettingsEpic_1.submitInvoicingQboSettingsEpic,
1363
1369
  submitQuestionEpic_1.submitQuestionEpic,
1370
+ submitRecommendationFeedbackEpic_1.submitRecommendationFeedbackEpic,
1364
1371
  syncInvoicingSubscriptionCouponsEpic_1.syncInvoicingSubscriptionCouponsEpic,
1365
1372
  syncTabsAfterAutomatchEpic_1.syncTabsAfterAutomatchEpic,
1366
1373
  toggleReportUIOptionForecastModeEpic_1.toggleReportUIOptionForecastModeEpic,
@@ -1,3 +1,4 @@
1
+ import { toAccountPayload } from '../account/accountPayload';
1
2
  export const INVOICING_DUNNING_ACTIONS = [
2
3
  'email_only',
3
4
  'email_and_retry',
@@ -129,87 +130,46 @@ export function toInvoicingQboCustomerMatchingMode(value) {
129
130
  }
130
131
  }
131
132
  /**
132
- * The id for one mapping slot, from whichever shape the backend sent. The object
133
- * form wins when present; a blank id in either is treated as unset so the picker
134
- * shows its placeholder rather than selecting nothing.
133
+ * The first id a picker can actually select. Callers list the QuickBooks id
134
+ * first: the options are keyed on it, so a platform id selects nothing even when
135
+ * it names the same record. Blank counts as absent.
135
136
  */
136
- function readInvoicingQboMappedAccountId(mappedAccount, legacyAccountId) {
137
- // `qbo_id` first: the pickers key their options on the QuickBooks id, so an
138
- // internal `account_id` would not select anything even when it is the same
139
- // account. Both are read because the mapping arrives either way depending on
140
- // how it was saved.
141
- const candidates = [
142
- mappedAccount?.qbo_id,
143
- mappedAccount?.account_id,
144
- legacyAccountId,
145
- ];
146
- return candidates.find((candidate) => candidate != null && candidate !== '');
147
- }
137
+ export const firstSelectableInvoicingId = (candidates) => candidates.find((candidate) => candidate != null && candidate !== '');
148
138
  /**
149
- * Read one account-mapping dropdown value by its config `code` (the codes in
150
- * `qbo_account_mapping_kind_options` match the `account_mappings` field names).
139
+ * The slot a mapping code names. Codes arrive from the config API as the slot
140
+ * itself (`deposit_account`); a trailing `_id` is tolerated so a tenant sending
141
+ * the older `deposit_account_id` resolves to the same mapping.
151
142
  */
143
+ export const toInvoicingQboAccountMappingSlot = (code) => code.replace(/_id$/, '');
144
+ /** Read one account-mapping dropdown value by its config `code`. */
152
145
  export function getInvoicingQboAccountMappingId(accountMappings, code) {
153
- switch (code) {
154
- case 'deposit_account_id':
155
- return readInvoicingQboMappedAccountId(accountMappings?.deposit_account, accountMappings?.deposit_account_id);
156
- case 'default_income_account_id':
157
- return readInvoicingQboMappedAccountId(accountMappings?.default_income_account, accountMappings?.default_income_account_id);
158
- case 'discounts_account_id':
159
- return readInvoicingQboMappedAccountId(accountMappings?.discounts_account, accountMappings?.discounts_account_id);
160
- case 'rounding_account_id':
161
- return readInvoicingQboMappedAccountId(accountMappings?.rounding_account, accountMappings?.rounding_account_id);
162
- case 'write_off_account_id':
163
- return readInvoicingQboMappedAccountId(accountMappings?.write_off_account, accountMappings?.write_off_account_id);
164
- default:
165
- return undefined;
146
+ const slotKey = toInvoicingQboAccountMappingSlot(code);
147
+ // Either key: the service sends `deposit_account`, but an older payload put
148
+ // the id under `deposit_account_id`.
149
+ const slot = accountMappings?.[slotKey] ?? accountMappings?.[`${slotKey}_id`];
150
+ if (typeof slot === 'string') {
151
+ return slot !== '' ? slot : undefined;
166
152
  }
153
+ return firstSelectableInvoicingId([slot?.qbo_id, slot?.account_id]);
167
154
  }
168
155
  /**
169
- * Return a copy of the account mappings with the dropdown slot named by
170
- * `code` set to `accountId`. Unknown codes leave the mappings unchanged.
156
+ * Build the `account_mappings` request body from the ids the pickers submitted.
157
+ * Each kind is sent as the whole account, which is what the service stores; an
158
+ * id that resolves to no account is sent as it stands rather than dropped, so a
159
+ * save never silently unsets a mapping it could not expand.
171
160
  */
172
- export function withInvoicingQboAccountMappingId(accountMappings, code, accountId) {
173
- // Both slots are written together. Setting only the bare id would leave the
174
- // object shape behind, and the reader prefers it — so the selection just made
175
- // would read back as whatever was mapped before. The object is dropped rather
176
- // than rebuilt: only the id is known here, not the name that came with it.
177
- const base = accountMappings ?? {};
178
- switch (code) {
179
- case 'deposit_account_id':
180
- return {
181
- ...base,
182
- deposit_account: undefined,
183
- deposit_account_id: accountId,
184
- };
185
- case 'default_income_account_id':
186
- return {
187
- ...base,
188
- default_income_account: undefined,
189
- default_income_account_id: accountId,
190
- };
191
- case 'discounts_account_id':
192
- return {
193
- ...base,
194
- discounts_account: undefined,
195
- discounts_account_id: accountId,
196
- };
197
- case 'rounding_account_id':
198
- return {
199
- ...base,
200
- rounding_account: undefined,
201
- rounding_account_id: accountId,
202
- };
203
- case 'write_off_account_id':
204
- return {
205
- ...base,
206
- write_off_account: undefined,
207
- write_off_account_id: accountId,
208
- };
209
- default:
210
- return base;
211
- }
212
- }
161
+ export const toInvoicingQboAccountMappingsPayload = (accountIdByMappingCode, accountForId) => {
162
+ const mappings = {};
163
+ Object.entries(accountIdByMappingCode).forEach(([code, accountId]) => {
164
+ if (accountId === '') {
165
+ return;
166
+ }
167
+ const account = accountForId(accountId);
168
+ mappings[toInvoicingQboAccountMappingSlot(code)] =
169
+ account != null ? toAccountPayload(account) : accountId;
170
+ });
171
+ return mappings;
172
+ };
213
173
  export function toInvoicingQboAccountMappingKindOption(option) {
214
174
  return {
215
175
  accountTypes: option.account_types,