@zeniai/client-epic-state 4.19.90-betaRD2 → 4.19.90-betaRD4

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 (68) hide show
  1. package/lib/coreEpics.js +1 -2
  2. package/lib/entity/billPay/billTransaction/billTransactionState.d.ts +2 -2
  3. package/lib/entity/jeSchedules/jeSchedulesPayload.d.ts +35 -0
  4. package/lib/entity/jeSchedules/jeSchedulesPayload.js +44 -0
  5. package/lib/entity/jeSchedules/jeSchedulesSelector.d.ts +2 -1
  6. package/lib/entity/jeSchedules/jeSchedulesSelector.js +2 -1
  7. package/lib/entity/jeSchedules/jeSchedulesState.d.ts +13 -0
  8. package/lib/entity/tenant/tenantPayload.d.ts +1 -1
  9. package/lib/entity/tenant/tenantReducer.d.ts +1 -24
  10. package/lib/entity/tenant/tenantReducer.js +4 -55
  11. package/lib/entity/tenant/tenantSelector.d.ts +1 -0
  12. package/lib/entity/tenant/tenantSelector.js +9 -1
  13. package/lib/entity/tenant/tenantState.d.ts +1 -3
  14. package/lib/entity/transaction/stateTypes/transactionLine.d.ts +1 -1
  15. package/lib/epic.js +1 -2
  16. package/lib/esm/coreEpics.js +1 -2
  17. package/lib/esm/entity/jeSchedules/jeSchedulesPayload.js +44 -0
  18. package/lib/esm/entity/jeSchedules/jeSchedulesSelector.js +2 -1
  19. package/lib/esm/entity/tenant/tenantReducer.js +3 -51
  20. package/lib/esm/entity/tenant/tenantSelector.js +7 -0
  21. package/lib/esm/epic.js +1 -2
  22. package/lib/esm/index.js +7 -6
  23. package/lib/esm/view/classList/fetchClassListEpic.js +3 -2
  24. package/lib/esm/view/commonVendorView/vendorView/vendorViewSelector.js +15 -5
  25. package/lib/esm/view/commonVendorView/vendorsTabVendorView/vendorsTabVendorViewSelector.js +6 -2
  26. package/lib/esm/view/expenseAutomationView/helpers/saveTransactionHelper.js +2 -1
  27. package/lib/esm/view/expenseAutomationView/helpers/transactionCategorizationLocalDataHelper.js +2 -2
  28. package/lib/esm/view/expenseAutomationView/reducers/jeSchedulesViewReducer.js +17 -1
  29. package/lib/esm/view/expenseAutomationView/selectors/jeSchedulesViewSelector.js +50 -3
  30. package/lib/esm/view/expenseAutomationView/selectors/missingReceiptsSelector.js +1 -1
  31. package/lib/esm/view/expenseAutomationView/types/jeSchedulesViewState.js +17 -1
  32. package/lib/esm/view/spendManagement/billPay/billPayReview/billPayReviewSelector.js +7 -3
  33. package/lib/esm/view/spendManagement/billPay/billPaySetupApproverView/billPaySetupApproverViewSelector.js +5 -5
  34. package/lib/esm/view/spendManagement/billPay/billPaySetupApproverView/epic/fetchBillPayApproversDetailsEpic.js +7 -2
  35. package/lib/esm/view/spendManagement/billPay/editBillView/editBillViewSelector.js +13 -6
  36. package/lib/esm/view/spendManagement/reimbursement/editRemiView/editRemiViewSelector.js +7 -4
  37. package/lib/esm/view/transactionDetail/epics/saveTransactionHelper.js +2 -1
  38. package/lib/esm/view/transactionDetail/transactionDetailLocalDataHelper.js +15 -14
  39. package/lib/index.d.ts +9 -8
  40. package/lib/index.js +36 -37
  41. package/lib/tsconfig.typecheck.tsbuildinfo +1 -1
  42. package/lib/view/classList/fetchClassListEpic.d.ts +1 -1
  43. package/lib/view/classList/fetchClassListEpic.js +2 -1
  44. package/lib/view/commonVendorView/vendorView/vendorViewSelector.d.ts +1 -0
  45. package/lib/view/commonVendorView/vendorView/vendorViewSelector.js +15 -5
  46. package/lib/view/commonVendorView/vendorsTabVendorView/vendorsTabVendorViewSelector.d.ts +1 -0
  47. package/lib/view/commonVendorView/vendorsTabVendorView/vendorsTabVendorViewSelector.js +6 -2
  48. package/lib/view/expenseAutomationView/helpers/saveTransactionHelper.js +2 -1
  49. package/lib/view/expenseAutomationView/helpers/transactionCategorizationLocalDataHelper.js +2 -2
  50. package/lib/view/expenseAutomationView/reducers/jeSchedulesViewReducer.d.ts +2 -2
  51. package/lib/view/expenseAutomationView/reducers/jeSchedulesViewReducer.js +18 -2
  52. package/lib/view/expenseAutomationView/selectorTypes/jeSchedulesSelectorTypes.d.ts +2 -0
  53. package/lib/view/expenseAutomationView/selectors/jeSchedulesViewSelector.js +50 -3
  54. package/lib/view/expenseAutomationView/selectors/missingReceiptsSelector.js +1 -1
  55. package/lib/view/expenseAutomationView/types/jeSchedulesViewState.d.ts +5 -0
  56. package/lib/view/expenseAutomationView/types/jeSchedulesViewState.js +19 -0
  57. package/lib/view/scheduleView/scheduleListView/scheduleListTypes.d.ts +1 -1
  58. package/lib/view/spendManagement/billPay/billPayReview/billPayReviewSelector.js +7 -3
  59. package/lib/view/spendManagement/billPay/billPaySetupApproverView/billPaySetupApproverViewSelector.js +5 -5
  60. package/lib/view/spendManagement/billPay/billPaySetupApproverView/epic/fetchBillPayApproversDetailsEpic.js +7 -2
  61. package/lib/view/spendManagement/billPay/editBillView/editBillViewSelector.js +13 -6
  62. package/lib/view/spendManagement/reimbursement/editRemiView/editRemiViewSelector.js +6 -3
  63. package/lib/view/transactionDetail/epics/saveTransactionHelper.js +2 -1
  64. package/lib/view/transactionDetail/transactionDetailLocalDataHelper.js +15 -14
  65. package/package.json +1 -1
  66. package/lib/entity/tenant/epic/saveExternalIntegrationConnectionEpic.d.ts +0 -18
  67. package/lib/entity/tenant/epic/saveExternalIntegrationConnectionEpic.js +0 -33
  68. package/lib/esm/entity/tenant/epic/saveExternalIntegrationConnectionEpic.js +0 -29
package/lib/coreEpics.js CHANGED
@@ -22,7 +22,6 @@ const fetchExternalConnectionsEpic_1 = require("./entity/tenant/epic/fetchExtern
22
22
  const fetchSubscriptionSummaryForTenantEpic_1 = require("./entity/tenant/epic/fetchSubscriptionSummaryForTenantEpic");
23
23
  const resendVerifyDeviceOTPEpic_1 = require("./entity/tenant/epic/resendVerifyDeviceOTPEpic");
24
24
  const saveExternalConnectionEpic_1 = require("./entity/tenant/epic/saveExternalConnectionEpic");
25
- const saveExternalIntegrationConnectionEpic_1 = require("./entity/tenant/epic/saveExternalIntegrationConnectionEpic");
26
25
  const sendEmailMagicLinkToUserEpic_1 = require("./entity/tenant/epic/sendEmailMagicLinkToUserEpic");
27
26
  const signInUserEpic_1 = require("./entity/tenant/epic/signInUserEpic");
28
27
  const signOutUserEpic_1 = require("./entity/tenant/epic/signOutUserEpic");
@@ -49,7 +48,7 @@ const verifyOtpEpic_1 = require("./view/twoFactorAuthentication/verifyOtpEpic");
49
48
  // RootActionType is only available in the dynamically imported epic.ts.
50
49
  const coreRootEpic = (0, redux_observable_1.combineEpics)(
51
50
  // Auth & tenant
52
- clearAllEpic_1.clearAllEpic, doMagicLinkSignInEpic_1.doMagicLinkSignInEpic, signInUserEpic_1.doSignInEpic, signOutUserEpic_1.doSignOutEpic, fetchActiveTenantEpic_1.fetchActiveTenantEpic, fetchAllTenantsEpic_1.fetchAllTenantsEpic, fetchExcludedResourcesEpic_1.fetchExcludedResourcesEpic, fetchExternalConnectionsEpic_1.fetchExternalConnectionsEpic, fetchSubscriptionSummaryForTenantEpic_1.fetchSubscriptionSummaryForTenantEpic, resendVerifyDeviceOTPEpic_1.resendVerifyDeviceOTPEpic, saveExternalConnectionEpic_1.saveExternalConnectionEpic, saveExternalIntegrationConnectionEpic_1.saveExternalIntegrationConnectionEpic, sendEmailMagicLinkToUserEpic_1.sendEmailMagicLinkToUserEpic, verifyDeviceWithTwoFAEpic_1.verifyDeviceWithTwoFAEpic,
51
+ clearAllEpic_1.clearAllEpic, doMagicLinkSignInEpic_1.doMagicLinkSignInEpic, signInUserEpic_1.doSignInEpic, signOutUserEpic_1.doSignOutEpic, fetchActiveTenantEpic_1.fetchActiveTenantEpic, fetchAllTenantsEpic_1.fetchAllTenantsEpic, fetchExcludedResourcesEpic_1.fetchExcludedResourcesEpic, fetchExternalConnectionsEpic_1.fetchExternalConnectionsEpic, fetchSubscriptionSummaryForTenantEpic_1.fetchSubscriptionSummaryForTenantEpic, resendVerifyDeviceOTPEpic_1.resendVerifyDeviceOTPEpic, saveExternalConnectionEpic_1.saveExternalConnectionEpic, sendEmailMagicLinkToUserEpic_1.sendEmailMagicLinkToUserEpic, verifyDeviceWithTwoFAEpic_1.verifyDeviceWithTwoFAEpic,
53
52
  // Toast
54
53
  pushToastNotificationEpic_1.pushToastNotificationEpic,
55
54
  // Collaboration
@@ -7,8 +7,6 @@ import { VendorTransaction } from '../../transaction/stateTypes/vendorTransactio
7
7
  export interface BillTransaction extends VendorTransaction {
8
8
  billPayInfo: BillPayInfo;
9
9
  candidateVendorName: string;
10
- classId: ID;
11
- className: string;
12
10
  createdBy: ID;
13
11
  deletionInfo: DeletionInfo;
14
12
  entityApprovalId: ID;
@@ -21,6 +19,8 @@ export interface BillTransaction extends VendorTransaction {
21
19
  updateTime: ZeniDate;
22
20
  bookCloseDate?: ZeniDate;
23
21
  bulkProcessingDetail?: BulkProcessingDetail;
22
+ classId?: ID;
23
+ className?: string;
24
24
  lastUpdatedByUserId?: ID;
25
25
  recurringBillConfigId?: ID;
26
26
  recurringBillInstance?: number;
@@ -13,6 +13,39 @@ export interface JEScheduleOtherAttributesPayload {
13
13
  asset_id?: string | null;
14
14
  starting_balance?: number | null;
15
15
  }
16
+ export interface JEScheduleAISummaryFieldPayload {
17
+ confidence: number;
18
+ reasoning: string;
19
+ predicted_value?: number | string;
20
+ }
21
+ export interface JEScheduleAISummariesPayload {
22
+ credit_account?: JEScheduleAISummaryFieldPayload;
23
+ credit_accounting_class?: JEScheduleAISummaryFieldPayload;
24
+ debit_account?: JEScheduleAISummaryFieldPayload;
25
+ debit_accounting_class?: JEScheduleAISummaryFieldPayload;
26
+ period?: JEScheduleAISummaryFieldPayload;
27
+ posting_date?: JEScheduleAISummaryFieldPayload;
28
+ }
29
+ export interface JEScheduleRecommendationsPayload {
30
+ amortization_days?: number | null;
31
+ amortization_months_estimate?: number | null;
32
+ credit_account_confidence?: number;
33
+ credit_account_id?: string | null;
34
+ credit_accounting_class_id?: string | null;
35
+ credit_class_confidence?: number;
36
+ debit_account_confidence?: number;
37
+ debit_account_id?: string | null;
38
+ debit_accounting_class_id?: string | null;
39
+ debit_class_confidence?: number;
40
+ end_date?: string | null;
41
+ je_schedule_type?: string | null;
42
+ period?: number | null;
43
+ period_confidence?: number;
44
+ posting_date?: string | null;
45
+ similar_transactions?: unknown[];
46
+ start_date?: string | null;
47
+ starting_month?: string | null;
48
+ }
16
49
  export interface JEScheduledTransactionPayload {
17
50
  balance: number | null;
18
51
  base_transaction: ScheduleTransactionPayload;
@@ -35,7 +68,9 @@ export interface JEScheduledTransactionPayload {
35
68
  status: StatusCodeWithLabelPayload;
36
69
  updated_by: UserPayload;
37
70
  vendor: VendorPayload;
71
+ ai_summaries?: JEScheduleAISummariesPayload;
38
72
  end_date?: string | null;
73
+ recommendations?: JEScheduleRecommendationsPayload;
39
74
  updated_at?: string | null;
40
75
  }
41
76
  export interface JEAccruedScheduledTransactionPayload extends Omit<JEScheduledTransactionPayload, 'base_transaction' | 'je_schedule_id' | 'je_schedule_type'> {
@@ -146,6 +146,49 @@ function toJEScheduleOtherAttributes(payload) {
146
146
  assetId: payload.asset_id ?? undefined,
147
147
  };
148
148
  }
149
+ function toJEScheduleAIRecommendations(payload) {
150
+ if (payload == null) {
151
+ return undefined;
152
+ }
153
+ const result = {};
154
+ if (payload.debit_account != null) {
155
+ result.debitAccount = {
156
+ confidence: payload.debit_account.confidence,
157
+ reasoning: payload.debit_account.reasoning,
158
+ };
159
+ }
160
+ if (payload.credit_account != null) {
161
+ result.creditAccount = {
162
+ confidence: payload.credit_account.confidence,
163
+ reasoning: payload.credit_account.reasoning,
164
+ };
165
+ }
166
+ if (payload.debit_accounting_class != null) {
167
+ result.debitClass = {
168
+ confidence: payload.debit_accounting_class.confidence,
169
+ reasoning: payload.debit_accounting_class.reasoning,
170
+ };
171
+ }
172
+ if (payload.credit_accounting_class != null) {
173
+ result.creditClass = {
174
+ confidence: payload.credit_accounting_class.confidence,
175
+ reasoning: payload.credit_accounting_class.reasoning,
176
+ };
177
+ }
178
+ if (payload.period != null) {
179
+ result.period = {
180
+ confidence: payload.period.confidence,
181
+ reasoning: payload.period.reasoning,
182
+ };
183
+ }
184
+ if (payload.posting_date != null) {
185
+ result.postingDate = {
186
+ confidence: payload.posting_date.confidence,
187
+ reasoning: payload.posting_date.reasoning,
188
+ };
189
+ }
190
+ return Object.keys(result).length > 0 ? result : undefined;
191
+ }
149
192
  function toJEScheduledTransaction(payload) {
150
193
  return {
151
194
  jeScheduleId: payload.je_schedule_id ?? undefined,
@@ -190,6 +233,7 @@ function toJEScheduledTransaction(payload) {
190
233
  ? toJEScheduleOtherAttributes(payload.other_attributes)
191
234
  : {},
192
235
  scheduledJournalEntry: [],
236
+ aiRecommendations: toJEScheduleAIRecommendations(payload.ai_summaries),
193
237
  };
194
238
  }
195
239
  function toJEAccruedScheduledTransaction(payload) {
@@ -9,7 +9,7 @@ import { ScheduleTransaction } from '../transaction/stateTypes/scheduleTransacti
9
9
  import { TransactionID } from '../transaction/stateTypes/transaction';
10
10
  import { User } from '../user/userState';
11
11
  import { Vendor } from '../vendor/vendorState';
12
- import { JEScheduleOtherAttributes, ScheduleJournalStatusCode, ScheduleStatus } from './jeSchedulesState';
12
+ import { JEScheduleAIRecommendations, JEScheduleOtherAttributes, ScheduleJournalStatusCode, ScheduleStatus } from './jeSchedulesState';
13
13
  import { JEScheduleKey, JEScheduleTransactionKey, JournalEntryErrorCodeType, ScheduleTypes } from './jeSchedulesTypes';
14
14
  export interface ScheduledJournalEntry {
15
15
  error: JournalEntryErrorCodeType[];
@@ -59,6 +59,7 @@ export interface JEScheduledTransaction {
59
59
  scheduledJournalEntry: ScheduledJournalEntry[];
60
60
  status: ScheduleStatus;
61
61
  vendor: Vendor;
62
+ aiRecommendations?: JEScheduleAIRecommendations;
62
63
  balanceAsOfToday?: Amount;
63
64
  dayOfPostingDate?: ScheduleDaysOfMonth;
64
65
  endDate?: ZeniDate;
@@ -77,7 +77,7 @@ exports.getJEAccruedScheduleByJEScheduleKey = getJEAccruedScheduleByJEScheduleKe
77
77
  const getJEScheduledTransactionByJEScheduleTransactionKey = (jeScheduleTransactionKey, state) => {
78
78
  const { jeSchedulesState, vendorState, accountState, userState, classState, transactionState, } = state;
79
79
  const jeScheduleTransactionState = (0, get_1.default)(jeSchedulesState.schedulesByTransactionKey, jeScheduleTransactionKey);
80
- const { period, updatedByUserID: updatedBy, vendorId, jeCredit, jeDebit, currencyCode, currencySymbol, balanceAsOfToday, baseTransaction, startDate, endDate, status, updatedAt, jeScheduleId, scheduledJournalEntry, dayOfPostingDate: postingDate, lastDayOfMonth, otherAttributes, jeScheduleType, } = jeScheduleTransactionState;
80
+ const { period, updatedByUserID: updatedBy, vendorId, jeCredit, jeDebit, currencyCode, currencySymbol, balanceAsOfToday, baseTransaction, startDate, endDate, status, updatedAt, jeScheduleId, scheduledJournalEntry, dayOfPostingDate: postingDate, lastDayOfMonth, otherAttributes, jeScheduleType, aiRecommendations, } = jeScheduleTransactionState;
81
81
  const vendorDetails = (0, vendorSelector_1.getVendorByVendorId)(vendorState, vendorId);
82
82
  if (vendorDetails == null) {
83
83
  throw new Error(`Vendor with ${vendorId} doesn't exist`);
@@ -134,6 +134,7 @@ const getJEScheduledTransactionByJEScheduleTransactionKey = (jeScheduleTransacti
134
134
  account: accountDebit,
135
135
  },
136
136
  scheduledJournalEntry,
137
+ aiRecommendations,
137
138
  };
138
139
  };
139
140
  exports.getJEScheduledTransactionByJEScheduleTransactionKey = getJEScheduledTransactionByJEScheduleTransactionKey;
@@ -12,6 +12,18 @@ export interface ScheduleJournalStatusCode {
12
12
  code: ScheduleJournalEntryStatusCodeType;
13
13
  label: string;
14
14
  }
15
+ export interface JEScheduleFieldRecommendation {
16
+ confidence: number;
17
+ reasoning: string;
18
+ }
19
+ export interface JEScheduleAIRecommendations {
20
+ creditAccount?: JEScheduleFieldRecommendation;
21
+ creditClass?: JEScheduleFieldRecommendation;
22
+ debitAccount?: JEScheduleFieldRecommendation;
23
+ debitClass?: JEScheduleFieldRecommendation;
24
+ period?: JEScheduleFieldRecommendation;
25
+ postingDate?: JEScheduleFieldRecommendation;
26
+ }
15
27
  export interface JEScheduleOtherAttributes {
16
28
  assetId?: string;
17
29
  startingBalance?: Amount;
@@ -56,6 +68,7 @@ export interface JEScheduledTransactionState {
56
68
  scheduledJournalEntry: ScheduledJournalEntryState[];
57
69
  status: ScheduleStatus;
58
70
  vendorId: ID;
71
+ aiRecommendations?: JEScheduleAIRecommendations;
59
72
  balanceAsOfToday?: number;
60
73
  dayOfPostingDate?: ScheduleDaysOfMonth;
61
74
  endDate?: ZeniDate;
@@ -33,6 +33,7 @@ interface TenantPayload {
33
33
  invite_create_time: string;
34
34
  inviter_email: string;
35
35
  inviter_id: ID;
36
+ is_accounting_classes_enabled: boolean;
36
37
  is_admin: boolean;
37
38
  is_ap_analyst: boolean;
38
39
  is_banker: boolean;
@@ -137,7 +138,6 @@ type RoleResourcesResponse = ZeniAPIResponse<RoleResourcesData>;
137
138
  interface ConnectionsPayload {
138
139
  connections: {
139
140
  accounting: ConnectionDataPayload[];
140
- analytics: ConnectionDataPayload[];
141
141
  payments: ConnectionDataPayload[];
142
142
  };
143
143
  }
@@ -13,10 +13,6 @@ export interface DoSignInPayload {
13
13
  redirectUri: ZeniUrl;
14
14
  sourceUri: ZeniUrl;
15
15
  }
16
- export declare const toExternalIntegrationType: (v: string) => "analytics";
17
- export type ExternalIntegrationType = ReturnType<typeof toExternalIntegrationType>;
18
- export declare const toExternalSupportedTool: (v: string) => "chargebee";
19
- export type ExternalSupportedTool = ReturnType<typeof toExternalSupportedTool>;
20
16
  export declare const initialState: TenantState;
21
17
  export declare const updateTenants: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[tenants: TenantPayload[], userTenantPayload?: TenantUserPayload | undefined, tenantUpdated?: any], {
22
18
  tenants: TenantPayload[];
@@ -80,25 +76,7 @@ export declare const updateTenants: import("@reduxjs/toolkit").ActionCreatorWith
80
76
  }, "tenant/fetchExternalConnectionsFailure", never, never>, fetchExternalConnectionsSuccess: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[tenantId: string, externalConnections: ConnectionsPayload], {
81
77
  tenantId: string;
82
78
  externalConnections: ConnectionsPayload;
83
- }, "tenant/fetchExternalConnectionsSuccess", never, never>, saveExternalIntegrationConnection: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[tenantId: string, connectionId: string, connectionType: "analytics", connectionName: "chargebee", credentials: {
84
- api_key: string;
85
- site: string;
86
- }], {
87
- tenantId: string;
88
- connectionId: string;
89
- connectionType: "analytics";
90
- connectionName: "chargebee";
91
- credentials: {
92
- api_key: string;
93
- site: string;
94
- };
95
- }, "tenant/saveExternalIntegrationConnection", never, never>, saveExternalIntegrationConnectionSuccess: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[tenantId: string, connectionPayload: ConnectionDataPayload], {
96
- tenantId: string;
97
- connectionPayload: ConnectionDataPayload;
98
- }, "tenant/saveExternalIntegrationConnectionSuccess", never, never>, saveExternalIntegrationConnectionFailure: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[tenantId: string, status: ZeniAPIStatus<Record<string, unknown>>], {
99
- tenantId: string;
100
- status: ZeniAPIStatus<Record<string, unknown>>;
101
- }, "tenant/saveExternalIntegrationConnectionFailure", never, never>, clearAll: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[keepTenantCompanyState?: boolean | undefined], {
79
+ }, "tenant/fetchExternalConnectionsSuccess", never, never>, clearAll: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[keepTenantCompanyState?: boolean | undefined], {
102
80
  keepTenantCompanyState: boolean;
103
81
  }, "tenant/clearAll", never, never>, fetchSubscriptionSummaryForTenant: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[tenantId: string], {
104
82
  tenantId: string;
@@ -142,7 +120,6 @@ export declare const toRoleResource: (payload: RoleResourcePayload) => RoleResou
142
120
  */
143
121
  export declare function mapConnectionsPayloadToState(connectionsPayload: ConnectionsPayload): {
144
122
  accounting: Connection[];
145
- analytics: Connection[];
146
123
  payments: Connection[];
147
124
  };
148
125
  export declare const toConnection: (payload: ConnectionDataPayload) => Connection;
@@ -4,26 +4,18 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  var _a;
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.resendVerifyDeviceOTP = exports.verifyDeviceWithTwoFAFailure = exports.verifyDeviceWithTwoFASuccess = exports.verifyDeviceWithTwoFA = exports.updateTenantMasterTOSInfo = exports.trigger2FA = exports.resetSignInState = exports.updateTreasuryVideoViewedForLoggedInUser = exports.updateReferViewedForLoggedInUser = exports.updateTenantReimbursementInfo = exports.removeOnboardingTenant = exports.updateOnboardingTenants = exports.updateSubscriptionSummaryForTenantFailure = exports.updateSubscriptionSummaryForTenantSuccess = exports.fetchSubscriptionSummaryForTenant = exports.clearAll = exports.saveExternalIntegrationConnectionFailure = exports.saveExternalIntegrationConnectionSuccess = exports.saveExternalIntegrationConnection = exports.fetchExternalConnectionsSuccess = exports.fetchExternalConnectionsFailure = exports.saveExternalConnectionFailure = exports.saveExternalConnectionSuccess = exports.saveExternalConnection = exports.fetchExternalConnections = exports.updateLoggedInUser = exports.signOutSuccess = exports.doSignOut = exports.updateSignInState = exports.sendEmailMagicLinkToUserFailure = exports.sendEmailMagicLinkToUserSuccess = exports.sendEmailMagicLinkToUser = exports.magicLinkSignInFailure = exports.magicLinkSignInSuccess = exports.doMagicLinkSignIn = exports.doSignIn = exports.updateExcludedResourcesFailure = exports.updateExcludedResourcesSuccess = exports.fetchExcludedResources = exports.updateCurrentTenant = exports.updateTenantFailure = exports.updateTenantSuccess = exports.fetchActiveTenant = exports.updateTenantsFailure = exports.updateTenantsSuccess = exports.fetchAllTenants = exports.updateTenants = exports.initialState = exports.toExternalSupportedTool = exports.toExternalIntegrationType = void 0;
8
- exports.toConnection = exports.toRoleResource = exports.resendVerifyDeviceOTPFailure = exports.resendVerifyDeviceOTPSuccess = void 0;
7
+ exports.toConnection = exports.toRoleResource = exports.resendVerifyDeviceOTPFailure = exports.resendVerifyDeviceOTPSuccess = exports.resendVerifyDeviceOTP = exports.verifyDeviceWithTwoFAFailure = exports.verifyDeviceWithTwoFASuccess = exports.verifyDeviceWithTwoFA = exports.updateTenantMasterTOSInfo = exports.trigger2FA = exports.resetSignInState = exports.updateTreasuryVideoViewedForLoggedInUser = exports.updateReferViewedForLoggedInUser = exports.updateTenantReimbursementInfo = exports.removeOnboardingTenant = exports.updateOnboardingTenants = exports.updateSubscriptionSummaryForTenantFailure = exports.updateSubscriptionSummaryForTenantSuccess = exports.fetchSubscriptionSummaryForTenant = exports.clearAll = exports.fetchExternalConnectionsSuccess = exports.fetchExternalConnectionsFailure = exports.saveExternalConnectionFailure = exports.saveExternalConnectionSuccess = exports.saveExternalConnection = exports.fetchExternalConnections = exports.updateLoggedInUser = exports.signOutSuccess = exports.doSignOut = exports.updateSignInState = exports.sendEmailMagicLinkToUserFailure = exports.sendEmailMagicLinkToUserSuccess = exports.sendEmailMagicLinkToUser = exports.magicLinkSignInFailure = exports.magicLinkSignInSuccess = exports.doMagicLinkSignIn = exports.doSignIn = exports.updateExcludedResourcesFailure = exports.updateExcludedResourcesSuccess = exports.fetchExcludedResources = exports.updateCurrentTenant = exports.updateTenantFailure = exports.updateTenantSuccess = exports.fetchActiveTenant = exports.updateTenantsFailure = exports.updateTenantsSuccess = exports.fetchAllTenants = exports.updateTenants = exports.initialState = void 0;
9
8
  exports.mapConnectionsPayloadToState = mapConnectionsPayloadToState;
10
9
  const toolkit_1 = require("@reduxjs/toolkit");
11
10
  const js_base64_1 = require("js-base64");
12
11
  const assignWith_1 = __importDefault(require("lodash/assignWith"));
13
12
  const urlPayload_1 = require("../../commonPayloadTypes/urlPayload");
14
- const stringToUnion_1 = require("../../commonStateTypes/stringToUnion");
15
13
  const timePeriod_1 = require("../../commonStateTypes/timePeriod");
16
14
  const netBurnOrIncomeStoryCardSelectorTypes_1 = require("../../view/netBurnOrIncomeStoryCard/netBurnOrIncomeStoryCardSelectorTypes");
17
15
  const netBurnOrIncomeStoryCardState_1 = require("../../view/netBurnOrIncomeStoryCard/netBurnOrIncomeStoryCardState");
18
16
  const zeniDayJS_1 = require("../../zeniDayJS");
19
17
  const subscriptionSummaryReducer_1 = require("../subscription/subscriptionSummary/subscriptionSummaryReducer");
20
18
  const userRolePayload_1 = require("../userRole/userRolePayload");
21
- const EXTERNAL_INTEGRATIONS_TYPES = ['analytics'];
22
- const toExternalIntegrationType = (v) => (0, stringToUnion_1.stringToUnion)(v, EXTERNAL_INTEGRATIONS_TYPES);
23
- exports.toExternalIntegrationType = toExternalIntegrationType;
24
- const EXTERNAL_SUPPORTED_TOOLS = ['chargebee'];
25
- const toExternalSupportedTool = (v) => (0, stringToUnion_1.stringToUnion)(v, EXTERNAL_SUPPORTED_TOOLS);
26
- exports.toExternalSupportedTool = toExternalSupportedTool;
27
19
  exports.initialState = {
28
20
  fetchState: 'Not-Started',
29
21
  error: undefined,
@@ -341,10 +333,8 @@ const tenant = (0, toolkit_1.createSlice)({
341
333
  draft.externalConnectionsByTenant[action.payload.tenantId] = {
342
334
  fetchState: 'In-Progress',
343
335
  accounting: [],
344
- analytics: [],
345
336
  payments: [],
346
337
  saveConnectionState: 'Not-Started',
347
- saveAnalyticsConnectionState: 'Not-Started',
348
338
  error: undefined,
349
339
  };
350
340
  },
@@ -354,14 +344,12 @@ const tenant = (0, toolkit_1.createSlice)({
354
344
  return { payload: { tenantId, externalConnections } };
355
345
  },
356
346
  reducer(draft, action) {
357
- const { accounting, analytics, payments } = mapConnectionsPayloadToState(action.payload.externalConnections);
347
+ const { accounting, payments } = mapConnectionsPayloadToState(action.payload.externalConnections);
358
348
  draft.externalConnectionsByTenant[action.payload.tenantId] = {
359
349
  fetchState: 'Completed',
360
350
  accounting,
361
- analytics,
362
351
  payments,
363
352
  saveConnectionState: 'Completed',
364
- saveAnalyticsConnectionState: 'Not-Started',
365
353
  error: undefined,
366
354
  };
367
355
  },
@@ -375,10 +363,8 @@ const tenant = (0, toolkit_1.createSlice)({
375
363
  draft.externalConnectionsByTenant[tenantId] = {
376
364
  fetchState: 'Error',
377
365
  accounting: [],
378
- analytics: [],
379
366
  payments: [],
380
367
  saveConnectionState: 'Error',
381
- saveAnalyticsConnectionState: 'Not-Started',
382
368
  error: status,
383
369
  };
384
370
  },
@@ -424,43 +410,6 @@ const tenant = (0, toolkit_1.createSlice)({
424
410
  });
425
411
  },
426
412
  },
427
- saveExternalIntegrationConnection: {
428
- prepare(tenantId, connectionId, connectionType, connectionName, credentials) {
429
- return { payload: { tenantId, connectionId, connectionType, connectionName, credentials } };
430
- },
431
- reducer(draft, action) {
432
- const existing = draft.externalConnectionsByTenant[action.payload.tenantId];
433
- if (existing != null) {
434
- existing.saveAnalyticsConnectionState = 'In-Progress';
435
- existing.saveAnalyticsConnectionError = undefined;
436
- }
437
- },
438
- },
439
- saveExternalIntegrationConnectionSuccess: {
440
- prepare(tenantId, connectionPayload) {
441
- return { payload: { tenantId, connectionPayload } };
442
- },
443
- reducer(draft, action) {
444
- const existing = draft.externalConnectionsByTenant[action.payload.tenantId];
445
- if (existing != null) {
446
- existing.saveAnalyticsConnectionState = 'Completed';
447
- existing.analytics = [(0, exports.toConnection)(action.payload.connectionPayload)];
448
- existing.saveAnalyticsConnectionError = undefined;
449
- }
450
- },
451
- },
452
- saveExternalIntegrationConnectionFailure: {
453
- prepare(tenantId, status) {
454
- return { payload: { tenantId, status } };
455
- },
456
- reducer(draft, action) {
457
- const existing = draft.externalConnectionsByTenant[action.payload.tenantId];
458
- if (existing != null) {
459
- existing.saveAnalyticsConnectionState = 'Error';
460
- existing.saveAnalyticsConnectionError = action.payload.status;
461
- }
462
- },
463
- },
464
413
  doSignOut(draft) {
465
414
  draft.fetchState = 'Not-Started';
466
415
  draft.signInState = 'Not-Started';
@@ -588,7 +537,7 @@ const tenant = (0, toolkit_1.createSlice)({
588
537
  },
589
538
  },
590
539
  });
591
- _a = tenant.actions, exports.updateTenants = _a.updateTenants, exports.fetchAllTenants = _a.fetchAllTenants, exports.updateTenantsSuccess = _a.updateTenantsSuccess, exports.updateTenantsFailure = _a.updateTenantsFailure, exports.fetchActiveTenant = _a.fetchActiveTenant, exports.updateTenantSuccess = _a.updateTenantSuccess, exports.updateTenantFailure = _a.updateTenantFailure, exports.updateCurrentTenant = _a.updateCurrentTenant, exports.fetchExcludedResources = _a.fetchExcludedResources, exports.updateExcludedResourcesSuccess = _a.updateExcludedResourcesSuccess, exports.updateExcludedResourcesFailure = _a.updateExcludedResourcesFailure, exports.doSignIn = _a.doSignIn, exports.doMagicLinkSignIn = _a.doMagicLinkSignIn, exports.magicLinkSignInSuccess = _a.magicLinkSignInSuccess, exports.magicLinkSignInFailure = _a.magicLinkSignInFailure, exports.sendEmailMagicLinkToUser = _a.sendEmailMagicLinkToUser, exports.sendEmailMagicLinkToUserSuccess = _a.sendEmailMagicLinkToUserSuccess, exports.sendEmailMagicLinkToUserFailure = _a.sendEmailMagicLinkToUserFailure, exports.updateSignInState = _a.updateSignInState, exports.doSignOut = _a.doSignOut, exports.signOutSuccess = _a.signOutSuccess, exports.updateLoggedInUser = _a.updateLoggedInUser, exports.fetchExternalConnections = _a.fetchExternalConnections, exports.saveExternalConnection = _a.saveExternalConnection, exports.saveExternalConnectionSuccess = _a.saveExternalConnectionSuccess, exports.saveExternalConnectionFailure = _a.saveExternalConnectionFailure, exports.fetchExternalConnectionsFailure = _a.fetchExternalConnectionsFailure, exports.fetchExternalConnectionsSuccess = _a.fetchExternalConnectionsSuccess, exports.saveExternalIntegrationConnection = _a.saveExternalIntegrationConnection, exports.saveExternalIntegrationConnectionSuccess = _a.saveExternalIntegrationConnectionSuccess, exports.saveExternalIntegrationConnectionFailure = _a.saveExternalIntegrationConnectionFailure, exports.clearAll = _a.clearAll, exports.fetchSubscriptionSummaryForTenant = _a.fetchSubscriptionSummaryForTenant, exports.updateSubscriptionSummaryForTenantSuccess = _a.updateSubscriptionSummaryForTenantSuccess, exports.updateSubscriptionSummaryForTenantFailure = _a.updateSubscriptionSummaryForTenantFailure, exports.updateOnboardingTenants = _a.updateOnboardingTenants, exports.removeOnboardingTenant = _a.removeOnboardingTenant, exports.updateTenantReimbursementInfo = _a.updateTenantReimbursementInfo, exports.updateReferViewedForLoggedInUser = _a.updateReferViewedForLoggedInUser, exports.updateTreasuryVideoViewedForLoggedInUser = _a.updateTreasuryVideoViewedForLoggedInUser, exports.resetSignInState = _a.resetSignInState, exports.trigger2FA = _a.trigger2FA, exports.updateTenantMasterTOSInfo = _a.updateTenantMasterTOSInfo, exports.verifyDeviceWithTwoFA = _a.verifyDeviceWithTwoFA, exports.verifyDeviceWithTwoFASuccess = _a.verifyDeviceWithTwoFASuccess, exports.verifyDeviceWithTwoFAFailure = _a.verifyDeviceWithTwoFAFailure, exports.resendVerifyDeviceOTP = _a.resendVerifyDeviceOTP, exports.resendVerifyDeviceOTPSuccess = _a.resendVerifyDeviceOTPSuccess, exports.resendVerifyDeviceOTPFailure = _a.resendVerifyDeviceOTPFailure;
540
+ _a = tenant.actions, exports.updateTenants = _a.updateTenants, exports.fetchAllTenants = _a.fetchAllTenants, exports.updateTenantsSuccess = _a.updateTenantsSuccess, exports.updateTenantsFailure = _a.updateTenantsFailure, exports.fetchActiveTenant = _a.fetchActiveTenant, exports.updateTenantSuccess = _a.updateTenantSuccess, exports.updateTenantFailure = _a.updateTenantFailure, exports.updateCurrentTenant = _a.updateCurrentTenant, exports.fetchExcludedResources = _a.fetchExcludedResources, exports.updateExcludedResourcesSuccess = _a.updateExcludedResourcesSuccess, exports.updateExcludedResourcesFailure = _a.updateExcludedResourcesFailure, exports.doSignIn = _a.doSignIn, exports.doMagicLinkSignIn = _a.doMagicLinkSignIn, exports.magicLinkSignInSuccess = _a.magicLinkSignInSuccess, exports.magicLinkSignInFailure = _a.magicLinkSignInFailure, exports.sendEmailMagicLinkToUser = _a.sendEmailMagicLinkToUser, exports.sendEmailMagicLinkToUserSuccess = _a.sendEmailMagicLinkToUserSuccess, exports.sendEmailMagicLinkToUserFailure = _a.sendEmailMagicLinkToUserFailure, exports.updateSignInState = _a.updateSignInState, exports.doSignOut = _a.doSignOut, exports.signOutSuccess = _a.signOutSuccess, exports.updateLoggedInUser = _a.updateLoggedInUser, exports.fetchExternalConnections = _a.fetchExternalConnections, exports.saveExternalConnection = _a.saveExternalConnection, exports.saveExternalConnectionSuccess = _a.saveExternalConnectionSuccess, exports.saveExternalConnectionFailure = _a.saveExternalConnectionFailure, exports.fetchExternalConnectionsFailure = _a.fetchExternalConnectionsFailure, exports.fetchExternalConnectionsSuccess = _a.fetchExternalConnectionsSuccess, exports.clearAll = _a.clearAll, exports.fetchSubscriptionSummaryForTenant = _a.fetchSubscriptionSummaryForTenant, exports.updateSubscriptionSummaryForTenantSuccess = _a.updateSubscriptionSummaryForTenantSuccess, exports.updateSubscriptionSummaryForTenantFailure = _a.updateSubscriptionSummaryForTenantFailure, exports.updateOnboardingTenants = _a.updateOnboardingTenants, exports.removeOnboardingTenant = _a.removeOnboardingTenant, exports.updateTenantReimbursementInfo = _a.updateTenantReimbursementInfo, exports.updateReferViewedForLoggedInUser = _a.updateReferViewedForLoggedInUser, exports.updateTreasuryVideoViewedForLoggedInUser = _a.updateTreasuryVideoViewedForLoggedInUser, exports.resetSignInState = _a.resetSignInState, exports.trigger2FA = _a.trigger2FA, exports.updateTenantMasterTOSInfo = _a.updateTenantMasterTOSInfo, exports.verifyDeviceWithTwoFA = _a.verifyDeviceWithTwoFA, exports.verifyDeviceWithTwoFASuccess = _a.verifyDeviceWithTwoFASuccess, exports.verifyDeviceWithTwoFAFailure = _a.verifyDeviceWithTwoFAFailure, exports.resendVerifyDeviceOTP = _a.resendVerifyDeviceOTP, exports.resendVerifyDeviceOTPSuccess = _a.resendVerifyDeviceOTPSuccess, exports.resendVerifyDeviceOTPFailure = _a.resendVerifyDeviceOTPFailure;
592
541
  exports.default = tenant.reducer;
593
542
  /**
594
543
  * Converts tenants payload to Tenant and User State
@@ -612,6 +561,7 @@ function mapTenantsPayloadToState(tenantsPayload, userTenantPayload) {
612
561
  function mapTenantPayloadToTenant(payload, userTenantPayload) {
613
562
  const tenant = {
614
563
  accountingClassIDs: payload.accounting_class_ids,
564
+ isAccountingClassesEnabled: payload.is_accounting_classes_enabled ?? true,
615
565
  bookCloseDate: payload.book_close_date != null
616
566
  ? (0, zeniDayJS_1.date)(payload.book_close_date)
617
567
  : undefined,
@@ -714,7 +664,6 @@ function mapConnectionsPayloadToState(connectionsPayload) {
714
664
  const { connections } = connectionsPayload;
715
665
  return {
716
666
  accounting: connections.accounting.map((payload) => (0, exports.toConnection)(payload)),
717
- analytics: (connections.analytics ?? []).map((payload) => (0, exports.toConnection)(payload)),
718
667
  payments: connections.payments.map((payload) => (0, exports.toConnection)(payload)),
719
668
  };
720
669
  }
@@ -85,6 +85,7 @@ export declare const getCurrentTenantExternalConnections: (tenantState: TenantSt
85
85
  export declare const toTenantCoreDetailsView: (tenantsBaseView: TenantBaseView[]) => TenantCoreDetailsView[];
86
86
  export declare const isTenantBankingOnly: (isDebitCardFlagEnabled: boolean, tenant: Tenant | undefined) => boolean;
87
87
  export declare const isTenantCardsOnly: (tenant: Tenant | undefined) => boolean;
88
+ export declare const getIsAccountingClassesEnabled: (state: RootState) => boolean;
88
89
  export declare const isTenantBookkeepingEnabled: (tenant: Tenant | undefined) => boolean;
89
90
  export declare const isOtherProductsEnabledForTenant: (tenant: Tenant | undefined) => boolean;
90
91
  export declare const isTenantTreasuryEnabled: (tenant: Tenant | undefined) => boolean;
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.isTenantTreasuryEnabled = exports.isOtherProductsEnabledForTenant = exports.isTenantBookkeepingEnabled = exports.isTenantCardsOnly = exports.isTenantBankingOnly = exports.toTenantCoreDetailsView = exports.getCurrentTenantExternalConnections = exports.isTenantUsingZeniCOA = exports.isZeniDomainTenant = exports.getTenantBaseViewForTenantView = exports.getTenantsCoreDetailsByCheckInDateSelector = exports.getTenantsBaseByCheckInDateSelector = exports.getTenantBaseById = exports.getTenantsByCheckInDateSelector = exports.getCurrentTenant = exports.getTenantBaseViewForTenantId = void 0;
6
+ exports.isTenantTreasuryEnabled = exports.isOtherProductsEnabledForTenant = exports.isTenantBookkeepingEnabled = exports.getIsAccountingClassesEnabled = exports.isTenantCardsOnly = exports.isTenantBankingOnly = exports.toTenantCoreDetailsView = exports.getCurrentTenantExternalConnections = exports.isTenantUsingZeniCOA = exports.isZeniDomainTenant = exports.getTenantBaseViewForTenantView = exports.getTenantsCoreDetailsByCheckInDateSelector = exports.getTenantsBaseByCheckInDateSelector = exports.getTenantBaseById = exports.getTenantsByCheckInDateSelector = exports.getCurrentTenant = exports.getTenantBaseViewForTenantId = void 0;
7
7
  exports.getTenant = getTenant;
8
8
  exports.getOnboardingTenantByTenantId = getOnboardingTenantByTenantId;
9
9
  const toolkit_1 = require("@reduxjs/toolkit");
@@ -280,6 +280,14 @@ const isTenantCardsOnly = (tenant) => {
280
280
  : false;
281
281
  };
282
282
  exports.isTenantCardsOnly = isTenantCardsOnly;
283
+ const getIsAccountingClassesEnabled = (state) => {
284
+ const { currentTenantId, tenantsById } = state.tenantState;
285
+ if (currentTenantId == null) {
286
+ return true;
287
+ }
288
+ return tenantsById[currentTenantId]?.isAccountingClassesEnabled ?? true;
289
+ };
290
+ exports.getIsAccountingClassesEnabled = getIsAccountingClassesEnabled;
283
291
  const isTenantBookkeepingEnabled = (tenant) => {
284
292
  // if the tenants API takes time, tenant can be non null with productSettings as null
285
293
  return tenant != null && tenant.productSettings != null
@@ -12,13 +12,10 @@ import { UserRoleType } from '../userRole/userRoleType';
12
12
  import { AuthProvider } from './tenantReducer';
13
13
  export interface TenantExternalConnections {
14
14
  accounting: Connection[];
15
- analytics: Connection[];
16
15
  fetchState: FetchState;
17
16
  payments: Connection[];
18
- saveAnalyticsConnectionState: FetchState;
19
17
  saveConnectionState: FetchState;
20
18
  error?: ZeniAPIStatus;
21
- saveAnalyticsConnectionError?: ZeniAPIStatus;
22
19
  }
23
20
  export interface TenantState extends FetchedState {
24
21
  accountLocked: boolean;
@@ -72,6 +69,7 @@ export interface Tenant {
72
69
  inviteCreateTime: ZeniDate;
73
70
  inviterEmail: string;
74
71
  inviterUserId: ID;
72
+ isAccountingClassesEnabled: boolean;
75
73
  isCustomerCreated: boolean;
76
74
  isEmailGroupCreated: boolean;
77
75
  isOnboardingCompleted: boolean;
@@ -35,9 +35,9 @@ export interface LinkedTransactionLine extends TransactionLineBase {
35
35
  export interface TransactionWithAccountAndClassLine extends TransactionLineBase {
36
36
  account: AccountBase;
37
37
  billable: BillableStatus;
38
- class: ClassBase;
39
38
  isCategoryMiscategorized: boolean;
40
39
  isClassMiscategorized: boolean;
40
+ class?: ClassBase;
41
41
  customer?: CustomerBase;
42
42
  vendor?: VendorBase;
43
43
  }