@zeniai/client-epic-state 5.2.0-beta0AK → 5.2.1

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/accountRecon/accountReconReducer.js +4 -0
  2. package/lib/entity/accountRecon/accountReconState.d.ts +4 -1
  3. package/lib/entity/accountRecon/accountReconState.js +1 -0
  4. package/lib/entity/invoicing/invoicingCustomer/invoicingCustomerPayload.d.ts +0 -16
  5. package/lib/entity/invoicing/invoicingCustomer/invoicingCustomerPayload.js +0 -20
  6. package/lib/entity/invoicing/invoicingCustomer/invoicingCustomerSelector.d.ts +1 -8
  7. package/lib/entity/invoicing/invoicingCustomer/invoicingCustomerSelector.js +0 -48
  8. package/lib/entity/invoicing/invoicingCustomer/invoicingCustomerState.d.ts +0 -24
  9. package/lib/entity/invoicing/invoicingSubscription/invoicingSubscriptionPayload.d.ts +0 -1
  10. package/lib/entity/invoicing/invoicingSubscription/invoicingSubscriptionPayload.js +0 -1
  11. package/lib/entity/invoicing/invoicingSubscription/invoicingSubscriptionState.d.ts +0 -1
  12. package/lib/entity/snackbar/snackbarTypes.d.ts +1 -1
  13. package/lib/entity/snackbar/snackbarTypes.js +1 -0
  14. package/lib/epic.d.ts +4 -1
  15. package/lib/epic.js +4 -1
  16. package/lib/esm/entity/accountRecon/accountReconReducer.js +4 -0
  17. package/lib/esm/entity/accountRecon/accountReconState.js +1 -0
  18. package/lib/esm/entity/invoicing/invoicingCustomer/invoicingCustomerPayload.js +0 -20
  19. package/lib/esm/entity/invoicing/invoicingCustomer/invoicingCustomerSelector.js +0 -47
  20. package/lib/esm/entity/invoicing/invoicingSubscription/invoicingSubscriptionPayload.js +0 -1
  21. package/lib/esm/entity/snackbar/snackbarTypes.js +1 -0
  22. package/lib/esm/epic.js +4 -1
  23. package/lib/esm/index.js +6 -6
  24. package/lib/esm/view/expenseAutomationView/epics/accountRecon/confirmStatementMappingEpic.js +43 -0
  25. package/lib/esm/view/expenseAutomationView/epics/accountRecon/deleteAccountStatementEpic.js +1 -2
  26. package/lib/esm/view/expenseAutomationView/epics/accountRecon/parseCombinedStatementEpic.js +31 -0
  27. package/lib/esm/view/expenseAutomationView/epics/accountRecon/parseStatementEpic.js +15 -18
  28. package/lib/esm/view/expenseAutomationView/epics/accountRecon/updateCombinedStatementInfoEpic.js +68 -0
  29. package/lib/esm/view/expenseAutomationView/epics/accountRecon/updateStatementInfoEpic.js +10 -10
  30. package/lib/esm/view/expenseAutomationView/epics/accountRecon/uploadAccountStatementDocumentAIHelper.js +12 -4
  31. package/lib/esm/view/expenseAutomationView/epics/accountRecon/uploadAccountStatementEpic.js +8 -2
  32. package/lib/esm/view/expenseAutomationView/helpers/mapStatementUpdateLocalDataToRequestBody.js +20 -5
  33. package/lib/esm/view/expenseAutomationView/payload/reconciliationPayload.js +135 -0
  34. package/lib/esm/view/expenseAutomationView/reducers/reconciliationViewReducer.js +120 -16
  35. package/lib/esm/view/expenseAutomationView/selectors/reconciliationViewSelector.js +38 -7
  36. package/lib/esm/view/expenseAutomationView/selectors/statementParseViewSelector.js +43 -10
  37. package/lib/esm/view/expenseAutomationView/types/reconciliationViewState.js +15 -1
  38. package/lib/esm/view/invoicing/createInvoice/createInvoiceSelector.js +0 -1
  39. package/lib/esm/view/invoicing/invoicingCustomerDetailView/invoicingCustomerDetailViewSelector.js +2 -4
  40. package/lib/index.d.ts +9 -9
  41. package/lib/index.js +51 -46
  42. package/lib/view/expenseAutomationView/epics/accountRecon/confirmStatementMappingEpic.d.ts +34 -0
  43. package/lib/view/expenseAutomationView/epics/accountRecon/confirmStatementMappingEpic.js +47 -0
  44. package/lib/view/expenseAutomationView/epics/accountRecon/deleteAccountStatementEpic.d.ts +2 -2
  45. package/lib/view/expenseAutomationView/epics/accountRecon/deleteAccountStatementEpic.js +0 -1
  46. package/lib/view/expenseAutomationView/epics/accountRecon/parseCombinedStatementEpic.d.ts +26 -0
  47. package/lib/view/expenseAutomationView/epics/accountRecon/parseCombinedStatementEpic.js +35 -0
  48. package/lib/view/expenseAutomationView/epics/accountRecon/parseStatementEpic.d.ts +21 -1
  49. package/lib/view/expenseAutomationView/epics/accountRecon/parseStatementEpic.js +15 -18
  50. package/lib/view/expenseAutomationView/epics/accountRecon/updateCombinedStatementInfoEpic.d.ts +27 -0
  51. package/lib/view/expenseAutomationView/epics/accountRecon/updateCombinedStatementInfoEpic.js +72 -0
  52. package/lib/view/expenseAutomationView/epics/accountRecon/updateStatementInfoEpic.js +10 -10
  53. package/lib/view/expenseAutomationView/epics/accountRecon/uploadAccountStatementDocumentAIHelper.d.ts +1 -1
  54. package/lib/view/expenseAutomationView/epics/accountRecon/uploadAccountStatementDocumentAIHelper.js +12 -4
  55. package/lib/view/expenseAutomationView/epics/accountRecon/uploadAccountStatementEpic.js +7 -1
  56. package/lib/view/expenseAutomationView/helpers/mapStatementUpdateLocalDataToRequestBody.d.ts +1 -0
  57. package/lib/view/expenseAutomationView/helpers/mapStatementUpdateLocalDataToRequestBody.js +20 -4
  58. package/lib/view/expenseAutomationView/helpers/transactionCategorizationLocalDataHelper.d.ts +1 -1
  59. package/lib/view/expenseAutomationView/payload/reconciliationPayload.d.ts +109 -4
  60. package/lib/view/expenseAutomationView/payload/reconciliationPayload.js +143 -0
  61. package/lib/view/expenseAutomationView/reducers/reconciliationViewReducer.d.ts +32 -4
  62. package/lib/view/expenseAutomationView/reducers/reconciliationViewReducer.js +122 -18
  63. package/lib/view/expenseAutomationView/selectorTypes/reconciliationViewSelectorTypes.d.ts +5 -1
  64. package/lib/view/expenseAutomationView/selectors/reconciliationViewSelector.d.ts +4 -1
  65. package/lib/view/expenseAutomationView/selectors/reconciliationViewSelector.js +40 -7
  66. package/lib/view/expenseAutomationView/selectors/statementParseViewSelector.d.ts +3 -2
  67. package/lib/view/expenseAutomationView/selectors/statementParseViewSelector.js +44 -10
  68. package/lib/view/expenseAutomationView/types/reconciliationViewState.d.ts +74 -1
  69. package/lib/view/expenseAutomationView/types/reconciliationViewState.js +19 -1
  70. package/lib/view/invoicing/createInvoice/createInvoiceSelector.d.ts +1 -4
  71. package/lib/view/invoicing/createInvoice/createInvoiceSelector.js +0 -1
  72. package/lib/view/invoicing/invoicingCustomerDetailView/invoicingCustomerDetailViewSelector.d.ts +1 -2
  73. package/lib/view/invoicing/invoicingCustomerDetailView/invoicingCustomerDetailViewSelector.js +1 -3
  74. package/package.json +1 -1
@@ -430,7 +430,7 @@ const expenseAutomationReconciliationView = createSlice({
430
430
  }
431
431
  },
432
432
  uploadAccountStatement: (draft, action) => {
433
- const { accountId, selectedPeriod } = action.payload;
433
+ const { accountId, selectedPeriod, statementAccountScope } = action.payload;
434
434
  const accountRecon = draft.accountReconciliationRecordsBySelectedPeriod[toMonthYearPeriodId(selectedPeriod)]?.reconciliationByAccountID[accountId];
435
435
  if (accountRecon != null) {
436
436
  accountRecon.statementUploadStatus = {
@@ -455,6 +455,22 @@ const expenseAutomationReconciliationView = createSlice({
455
455
  fetchState: 'Not-Started',
456
456
  error: undefined,
457
457
  };
458
+ accountRecon.combinedStatementGroupId = undefined;
459
+ accountRecon.confirmedCombinedStatementUploads = undefined;
460
+ accountRecon.confirmStatementMappingStatus = {
461
+ fetchState: 'Not-Started',
462
+ error: undefined,
463
+ };
464
+ accountRecon.confirmStatementMappingConflict = null;
465
+ if (accountRecon.localData != null) {
466
+ accountRecon.localData.statementUpdateLocalDataByUploadId = undefined;
467
+ }
468
+ if (statementAccountScope != null) {
469
+ accountRecon.localData = {
470
+ ...accountRecon.localData,
471
+ statementAccountScope,
472
+ };
473
+ }
458
474
  }
459
475
  },
460
476
  uploadAccountStatementSuccess: (draft, action) => {
@@ -517,8 +533,16 @@ const expenseAutomationReconciliationView = createSlice({
517
533
  fetchState: 'Not-Started',
518
534
  error: undefined,
519
535
  };
536
+ accountRecon.combinedStatementGroupId = undefined;
537
+ accountRecon.confirmedCombinedStatementUploads = undefined;
538
+ accountRecon.confirmStatementMappingStatus = {
539
+ fetchState: 'Not-Started',
540
+ error: undefined,
541
+ };
542
+ accountRecon.confirmStatementMappingConflict = null;
520
543
  if (accountRecon.localData != null) {
521
- accountRecon.localData.statementUpdateLocalData = undefined;
544
+ accountRecon.localData.statementUpdateLocalDataByUploadId = undefined;
545
+ accountRecon.localData.statementAccountScope = undefined;
522
546
  }
523
547
  }
524
548
  },
@@ -544,6 +568,17 @@ const expenseAutomationReconciliationView = createSlice({
544
568
  };
545
569
  }
546
570
  },
571
+ parseCombinedStatement: (draft, action) => {
572
+ const { accountId, selectedPeriod } = action.payload;
573
+ const accountRecon = draft.accountReconciliationRecordsBySelectedPeriod[toMonthYearPeriodId(selectedPeriod)]?.reconciliationByAccountID[accountId];
574
+ if (accountRecon != null) {
575
+ accountRecon.parsedStatementData = undefined;
576
+ accountRecon.statementParseStatus = {
577
+ fetchState: 'In-Progress',
578
+ error: undefined,
579
+ };
580
+ }
581
+ },
547
582
  parseStatementSuccess: (draft, action) => {
548
583
  const { accountId, selectedPeriod } = action.payload;
549
584
  const accountRecon = draft.accountReconciliationRecordsBySelectedPeriod[toMonthYearPeriodId(selectedPeriod)]?.reconciliationByAccountID[accountId];
@@ -598,7 +633,7 @@ const expenseAutomationReconciliationView = createSlice({
598
633
  accountRecon.statementProcessingFailed = false;
599
634
  accountRecon.statementParseInProgress = true;
600
635
  if (accountRecon.localData != null) {
601
- accountRecon.localData.statementUpdateLocalData = undefined;
636
+ accountRecon.localData.statementUpdateLocalDataByUploadId = undefined;
602
637
  }
603
638
  }
604
639
  },
@@ -644,19 +679,18 @@ const expenseAutomationReconciliationView = createSlice({
644
679
  parsedStatementData;
645
680
  },
646
681
  updateStatementUpdateLocalData: (draft, action) => {
647
- const { accountId, selectedPeriod, statementUpdateLocalData } = action.payload;
682
+ const { accountId, selectedPeriod, statementUpdateLocalData, statementUploadId, } = action.payload;
648
683
  const accountRecon = draft.accountReconciliationRecordsBySelectedPeriod[toMonthYearPeriodId(selectedPeriod)]?.reconciliationByAccountID[accountId];
649
- if (accountRecon != null) {
650
- if (accountRecon.localData == null) {
651
- accountRecon.localData = {
652
- statementUpdateLocalData,
653
- };
654
- }
655
- else {
656
- accountRecon.localData.statementUpdateLocalData =
657
- statementUpdateLocalData;
658
- }
684
+ if (accountRecon == null || statementUploadId === '') {
685
+ return;
659
686
  }
687
+ if (accountRecon.localData == null) {
688
+ accountRecon.localData = {};
689
+ }
690
+ accountRecon.localData.statementUpdateLocalDataByUploadId = {
691
+ ...accountRecon.localData.statementUpdateLocalDataByUploadId,
692
+ [statementUploadId]: statementUpdateLocalData,
693
+ };
660
694
  },
661
695
  submitStatementUpdate: (draft, action) => {
662
696
  const { accountId, selectedPeriod } = action.payload;
@@ -670,6 +704,17 @@ const expenseAutomationReconciliationView = createSlice({
670
704
  accountRecon.statementDateConflict = null;
671
705
  }
672
706
  },
707
+ submitCombinedStatementUpdate: (draft, action) => {
708
+ const { accountId, selectedPeriod } = action.payload;
709
+ const accountRecon = draft.accountReconciliationRecordsBySelectedPeriod[toMonthYearPeriodId(selectedPeriod)]?.reconciliationByAccountID[accountId];
710
+ if (accountRecon != null) {
711
+ accountRecon.statementUpdateStatus = {
712
+ fetchState: 'In-Progress',
713
+ error: undefined,
714
+ };
715
+ accountRecon.statementDateConflict = null;
716
+ }
717
+ },
673
718
  submitStatementUpdateSuccess: (draft, action) => {
674
719
  const { accountId, selectedPeriod } = action.payload;
675
720
  const accountRecon = draft.accountReconciliationRecordsBySelectedPeriod[toMonthYearPeriodId(selectedPeriod)]?.reconciliationByAccountID[accountId];
@@ -684,7 +729,7 @@ const expenseAutomationReconciliationView = createSlice({
684
729
  accountRecon.statementProcessingStartedAtMs = undefined;
685
730
  accountRecon.statementProcessingTotalDurationSeconds = undefined;
686
731
  if (accountRecon.localData != null) {
687
- accountRecon.localData.statementUpdateLocalData = undefined;
732
+ accountRecon.localData.statementUpdateLocalDataByUploadId = undefined;
688
733
  }
689
734
  }
690
735
  },
@@ -706,6 +751,52 @@ const expenseAutomationReconciliationView = createSlice({
706
751
  accountRecon.statementDateConflict = null;
707
752
  }
708
753
  },
754
+ confirmStatementMapping: (draft, action) => {
755
+ const { accountId, selectedPeriod } = action.payload;
756
+ const accountRecon = draft.accountReconciliationRecordsBySelectedPeriod[toMonthYearPeriodId(selectedPeriod)]?.reconciliationByAccountID[accountId];
757
+ if (accountRecon != null) {
758
+ accountRecon.confirmStatementMappingStatus = {
759
+ fetchState: 'In-Progress',
760
+ error: undefined,
761
+ };
762
+ accountRecon.confirmStatementMappingConflict = null;
763
+ }
764
+ },
765
+ confirmStatementMappingSuccess: (draft, action) => {
766
+ const { accountId, selectedPeriod, statementUploads } = action.payload;
767
+ const accountRecon = draft.accountReconciliationRecordsBySelectedPeriod[toMonthYearPeriodId(selectedPeriod)]?.reconciliationByAccountID[accountId];
768
+ if (accountRecon != null) {
769
+ accountRecon.confirmStatementMappingStatus = {
770
+ fetchState: 'Completed',
771
+ error: undefined,
772
+ };
773
+ accountRecon.confirmStatementMappingConflict = null;
774
+ accountRecon.confirmedCombinedStatementUploads = statementUploads;
775
+ const combinedStatementDetails = accountRecon.parsedStatementData?.statementUpload
776
+ .combinedStatementDetails;
777
+ if (combinedStatementDetails != null) {
778
+ combinedStatementDetails.isMappingConfirmed = true;
779
+ }
780
+ const combinedStatementGroupId = combinedStatementDetails?.combinedStatementGroupId ??
781
+ accountRecon.parsedStatementData?.statementUpload.statementMeta
782
+ .combinedStatementGroupId;
783
+ if (combinedStatementGroupId != null &&
784
+ combinedStatementGroupId !== '') {
785
+ accountRecon.combinedStatementGroupId = combinedStatementGroupId;
786
+ }
787
+ }
788
+ },
789
+ confirmStatementMappingFailure: (draft, action) => {
790
+ const { accountId, selectedPeriod, mappingConflict } = action.payload;
791
+ const accountRecon = draft.accountReconciliationRecordsBySelectedPeriod[toMonthYearPeriodId(selectedPeriod)]?.reconciliationByAccountID[accountId];
792
+ if (accountRecon != null) {
793
+ accountRecon.confirmStatementMappingStatus = {
794
+ fetchState: 'Error',
795
+ error: action.payload.error,
796
+ };
797
+ accountRecon.confirmStatementMappingConflict = mappingConflict ?? null;
798
+ }
799
+ },
709
800
  updateAccountReconciliationLocalData: (draft, action) => {
710
801
  const { accountId, selectedPeriod, localData } = action.payload;
711
802
  const oldLocalData = draft.accountReconciliationRecordsBySelectedPeriod[toMonthYearPeriodId(selectedPeriod)].reconciliationByAccountID[accountId].localData;
@@ -816,7 +907,7 @@ const expenseAutomationReconciliationView = createSlice({
816
907
  },
817
908
  });
818
909
  // Export actions
819
- export const { fetchReconciliation, fetchReconciliationFailure, fetchReconciliationSuccess, saveReconciliationDetail, saveReconciliationDetailFailure, updateSelectedAccountId, setConnectionInProgressForAccount, setStatementParseInProgress, setStatementProcessingDismissedToBackground, updateStatementProcessingBackgroundCompletedSteps, updateReconcileTabLocalData, updateReconcileTabListSortState, updateReconcileTabListScrollState, saveReconciliationDetailSuccess, updateSelectedTab, updateBalancesLocalData, initialiseLocalDataForSelectedAccountId, clearExpenseAutomationReconciliationView, updateSelectedDrawerAccountId, updateStatementProcessingFailed, updateReviewTabSortState, initializeReconciliationReviewTabLocalData, updateReviewTabLocalData, saveReconciliationReview, updateSaveReconciliationReviewFetchStatus, updateReconListScrollPosition, updateAccountReconciliationLocalData, deleteAccountStatement, deleteAccountStatementSuccess, deleteAccountStatementFailure, excludeAccountFromReconciliation, excludeAccountFromReconciliationSuccess, excludeAccountFromReconciliationFailure, includeAccountInReconciliation, includeAccountInReconciliationSuccess, includeAccountInReconciliationFailure, uploadAccountStatement, uploadAccountStatementSuccess, uploadAccountStatementFailure, parseStatement, parseStatementSuccess, parseStatementFailure, reparseStatement, reparseStatementSuccess, reparseStatementFailure, resetReparseStatementStatus, updateParsedStatementData, updateStatementUpdateLocalData, submitStatementUpdate, submitStatementUpdateSuccess, submitStatementUpdateFailure, clearStatementDateConflict, updateStatementUploadChosen, updateNodeCollapseState, } = expenseAutomationReconciliationView.actions;
910
+ export const { fetchReconciliation, fetchReconciliationFailure, fetchReconciliationSuccess, saveReconciliationDetail, saveReconciliationDetailFailure, updateSelectedAccountId, setConnectionInProgressForAccount, setStatementParseInProgress, setStatementProcessingDismissedToBackground, updateStatementProcessingBackgroundCompletedSteps, updateReconcileTabLocalData, updateReconcileTabListSortState, updateReconcileTabListScrollState, saveReconciliationDetailSuccess, updateSelectedTab, updateBalancesLocalData, initialiseLocalDataForSelectedAccountId, clearExpenseAutomationReconciliationView, updateSelectedDrawerAccountId, updateStatementProcessingFailed, updateReviewTabSortState, initializeReconciliationReviewTabLocalData, updateReviewTabLocalData, saveReconciliationReview, updateSaveReconciliationReviewFetchStatus, updateReconListScrollPosition, updateAccountReconciliationLocalData, deleteAccountStatement, deleteAccountStatementSuccess, deleteAccountStatementFailure, excludeAccountFromReconciliation, excludeAccountFromReconciliationSuccess, excludeAccountFromReconciliationFailure, includeAccountInReconciliation, includeAccountInReconciliationSuccess, includeAccountInReconciliationFailure, uploadAccountStatement, uploadAccountStatementSuccess, uploadAccountStatementFailure, parseStatement, parseCombinedStatement, parseStatementSuccess, parseStatementFailure, reparseStatement, reparseStatementSuccess, reparseStatementFailure, resetReparseStatementStatus, updateParsedStatementData, updateStatementUpdateLocalData, submitStatementUpdate, submitCombinedStatementUpdate, submitStatementUpdateSuccess, submitStatementUpdateFailure, clearStatementDateConflict, confirmStatementMapping, confirmStatementMappingSuccess, confirmStatementMappingFailure, updateStatementUploadChosen, updateNodeCollapseState, } = expenseAutomationReconciliationView.actions;
820
911
  // Export reducer
821
912
  export default expenseAutomationReconciliationView.reducer;
822
913
  function isEntityStatementParsing(reconciliation) {
@@ -830,6 +921,7 @@ function isEntityStatementParseTerminal(reconciliation) {
830
921
  statusCode === 'parsing_failed' ||
831
922
  statusCode === 'validation_failed' ||
832
923
  statusCode === 'processing_failed' ||
924
+ statusCode === 'parsed_awaiting_mapping' ||
833
925
  statusCode === 'deleting' ||
834
926
  statusCode === 'deleted');
835
927
  }
@@ -965,6 +1057,13 @@ function updateAllReconciliation(draft, accounts, selectedPeriod, reconciliation
965
1057
  error: undefined,
966
1058
  },
967
1059
  statementDateConflict: oldRecord?.statementDateConflict ?? null,
1060
+ confirmStatementMappingStatus: oldRecord?.confirmStatementMappingStatus ?? {
1061
+ fetchState: 'Not-Started',
1062
+ error: undefined,
1063
+ },
1064
+ confirmStatementMappingConflict: oldRecord?.confirmStatementMappingConflict ?? null,
1065
+ confirmedCombinedStatementUploads: oldRecord?.confirmedCombinedStatementUploads,
1066
+ combinedStatementGroupId: oldRecord?.combinedStatementGroupId,
968
1067
  localData: {
969
1068
  ...oldRecord?.localData,
970
1069
  accountSource: account?.reconciliation_source != null
@@ -1063,6 +1162,11 @@ const updateReconciliationByAccountIDOnIncludeAccount = (draft, accountId, recon
1063
1162
  statementParseStatus: { fetchState: 'Not-Started', error: undefined },
1064
1163
  reparseStatementStatus: { fetchState: 'Not-Started', error: undefined },
1065
1164
  statementDateConflict: null,
1165
+ confirmStatementMappingStatus: {
1166
+ fetchState: 'Not-Started',
1167
+ error: undefined,
1168
+ },
1169
+ confirmStatementMappingConflict: null,
1066
1170
  localData: {},
1067
1171
  accountDetectionReason: undefined,
1068
1172
  };
@@ -245,8 +245,23 @@ export const getExpenseAutomationReconciliationView = createSelector((state) =>
245
245
  }
246
246
  const accountReconState = accountReconForMonthYearPeriod.reconciliationByAccountID[accountID];
247
247
  const rawParsedStatementData = accountReconState.parsedStatementData;
248
- const statementUpdateLocalData = accountReconState.localData?.statementUpdateLocalData;
249
- const parsedStatementDataForView = getParsedStatementDataForView(rawParsedStatementData, statementUpdateLocalData);
248
+ const statementUpdateLocalDataByUploadId = accountReconState.localData?.statementUpdateLocalDataByUploadId;
249
+ const statementAccountScope = accountReconState.localData?.statementAccountScope;
250
+ const parsedStatementDataForView = getParsedStatementDataForView(rawParsedStatementData, statementUpdateLocalDataByUploadId, statementAccountScope);
251
+ const rawStatementUploads = rawParsedStatementData?.statementUploads != null &&
252
+ rawParsedStatementData.statementUploads.length > 0
253
+ ? rawParsedStatementData.statementUploads
254
+ : rawParsedStatementData?.statementUpload != null
255
+ ? [rawParsedStatementData.statementUpload]
256
+ : [];
257
+ const allCitationTransactions = rawStatementUploads.flatMap((statementUpload) => statementUpload.statementTransactions);
258
+ const statementTransactionPeriodById = rawStatementUploads.length > 0
259
+ ? Object.assign({}, ...rawStatementUploads.map((statementUpload) => {
260
+ const uploadId = statementUpload.statementMeta.statementUploadId;
261
+ const localMeta = statementUpdateLocalDataByUploadId?.[uploadId]?.statementMeta;
262
+ return getStatementTransactionPeriodById(statementUpload.statementTransactions, statementUpload.statementMeta, localMeta);
263
+ }))
264
+ : undefined;
250
265
  reconList[accountID] = {
251
266
  accountConnectionStatus: accountConnectionStatus.status,
252
267
  paymentAccountId: accountConnectionStatus.paymentAccountId,
@@ -257,6 +272,10 @@ export const getExpenseAutomationReconciliationView = createSelector((state) =>
257
272
  statementParseStatus: accountReconState.statementParseStatus,
258
273
  reparseStatementStatus: accountReconState.reparseStatementStatus,
259
274
  statementDateConflict: accountReconState.statementDateConflict,
275
+ confirmStatementMappingStatus: accountReconState.confirmStatementMappingStatus,
276
+ confirmStatementMappingConflict: accountReconState.confirmStatementMappingConflict,
277
+ confirmedCombinedStatementUploads: accountReconState.confirmedCombinedStatementUploads,
278
+ combinedStatementGroupId: accountReconState.combinedStatementGroupId,
260
279
  statementUpdateStatus: accountReconState.statementUpdateStatus,
261
280
  statementUploadStatus: accountReconState.statementUploadStatus,
262
281
  localData: accountReconState.localData,
@@ -267,11 +286,8 @@ export const getExpenseAutomationReconciliationView = createSelector((state) =>
267
286
  statementProcessingTotalDurationSeconds: accountReconState.statementProcessingTotalDurationSeconds,
268
287
  statementProcessingFailed: accountReconState.statementProcessingFailed,
269
288
  parsedStatementData: parsedStatementDataForView,
270
- allCitationTransactions: rawParsedStatementData?.statementUpload?.statementTransactions,
271
- statementTransactionPeriodById: rawParsedStatementData?.statementUpload != null
272
- ? getStatementTransactionPeriodById(rawParsedStatementData.statementUpload.statementTransactions, rawParsedStatementData.statementUpload.statementMeta, accountReconState.localData?.statementUpdateLocalData
273
- ?.statementMeta)
274
- : undefined,
289
+ allCitationTransactions,
290
+ statementTransactionPeriodById,
275
291
  transactionFetchState: reduceAnyFetchState([
276
292
  accountReconState.transactionFetchState,
277
293
  accountListState.byReportId.accountList,
@@ -341,6 +357,8 @@ export const getExpenseAutomationReconciliationView = createSelector((state) =>
341
357
  statementParseStatus: { fetchState: 'Not-Started' },
342
358
  reparseStatementStatus: { fetchState: 'Not-Started' },
343
359
  statementDateConflict: null,
360
+ confirmStatementMappingStatus: { fetchState: 'Not-Started' },
361
+ confirmStatementMappingConflict: null,
344
362
  localData: {},
345
363
  connectionInProgress: false,
346
364
  statementParseInProgress: false,
@@ -457,6 +475,19 @@ export const getExpenseAutomationReconciliationView = createSelector((state) =>
457
475
  });
458
476
  export const getReparseStatementStatusByAccountId = (state, accountId) => getExpenseAutomationReconciliationView(state)
459
477
  .accountReconciliationsByAccountID[accountId]?.reparseStatementStatus;
478
+ export function getLedgerAccountsForCombinedStatementMapping(accountReconciliationsByAccountID) {
479
+ return Object.values(accountReconciliationsByAccountID).map((accountReconciliation) => accountReconciliation.accountReconEntity.account);
480
+ }
481
+ const UNAVAILABLE_LEDGER_ACCOUNT_RECON_STATUSES = new Set(['in_progress', 'reconciled', 'reconciled_on_qbo']);
482
+ export function getUnavailableLedgerAccountIds(accountReconciliationsByAccountID) {
483
+ return Object.values(accountReconciliationsByAccountID)
484
+ .filter((accountReconciliation) => {
485
+ const statusCode = accountReconciliation.accountReconEntity.reconciliationStatus?.code;
486
+ return (statusCode != null &&
487
+ UNAVAILABLE_LEDGER_ACCOUNT_RECON_STATUSES.has(statusCode));
488
+ })
489
+ .map((accountReconciliation) => accountReconciliation.accountReconEntity.account.accountId);
490
+ }
460
491
  export const isAccountReconReport = (reportId) => {
461
492
  return reportId.endsWith('reconciliation');
462
493
  };
@@ -1,4 +1,17 @@
1
1
  import { date } from '../../../zeniDayJS';
2
+ export function getStatementUploadsFromParsedData(parsedStatementData) {
3
+ if (parsedStatementData == null) {
4
+ return [];
5
+ }
6
+ if (parsedStatementData.statementUploads != null &&
7
+ parsedStatementData.statementUploads.length > 0) {
8
+ return parsedStatementData.statementUploads;
9
+ }
10
+ if (parsedStatementData.statementUpload != null) {
11
+ return [parsedStatementData.statementUpload];
12
+ }
13
+ return [];
14
+ }
2
15
  export const getEffectiveStatementPeriod = (parsedMeta, localMeta) => ({
3
16
  statementStartDate: localMeta?.statementStartDate != null && localMeta.statementStartDate !== ''
4
17
  ? localMeta.statementStartDate
@@ -25,24 +38,44 @@ export const filterStatementTransactionsByPeriod = (transactions, statementPerio
25
38
  }
26
39
  return transactions.filter((transaction) => isStatementTransactionInPeriod(transaction.transactionDate, statementStartDate, statementEndDate));
27
40
  };
28
- export const getParsedStatementDataForView = (parsedStatementData, statementUpdateLocalData) => {
41
+ const getStatementUploadForView = (statementUpload, statementUpdateLocalData) => {
42
+ const parsedMeta = statementUpload.statementMeta;
43
+ const localMeta = statementUpdateLocalData?.statementMeta;
44
+ const effectiveMeta = localMeta ?? parsedMeta;
45
+ const statementPeriod = getEffectiveStatementPeriod(parsedMeta, localMeta);
46
+ return {
47
+ ...statementUpload,
48
+ statementMeta: effectiveMeta,
49
+ statementTransactions: filterStatementTransactionsByPeriod(statementUpload.statementTransactions, statementPeriod),
50
+ };
51
+ };
52
+ export const getParsedStatementDataForView = (parsedStatementData, statementUpdateLocalDataByUploadId, statementAccountScope) => {
29
53
  if (parsedStatementData == null) {
30
54
  return undefined;
31
55
  }
56
+ const statementUploads = getStatementUploadsFromParsedData(parsedStatementData);
57
+ if (statementUploads.length === 0) {
58
+ return undefined;
59
+ }
60
+ if (statementAccountScope === 'multi_account') {
61
+ const viewedUploads = statementUploads.map((statementUpload) => {
62
+ const uploadId = statementUpload.statementMeta.statementUploadId;
63
+ return getStatementUploadForView(statementUpload, statementUpdateLocalDataByUploadId?.[uploadId]);
64
+ });
65
+ const anchorUploadId = parsedStatementData.statementUpload.statementMeta.statementUploadId;
66
+ const viewedAnchor = viewedUploads.find((upload) => upload.statementMeta.statementUploadId === anchorUploadId) ?? viewedUploads[0];
67
+ return {
68
+ statementUpload: viewedAnchor,
69
+ statementUploads: viewedUploads,
70
+ };
71
+ }
32
72
  const statementUpload = parsedStatementData.statementUpload;
33
73
  if (statementUpload == null) {
34
74
  return undefined;
35
75
  }
36
- const parsedMeta = statementUpload.statementMeta;
37
- const localMeta = statementUpdateLocalData?.statementMeta;
38
- const effectiveMeta = localMeta ?? parsedMeta;
39
- const statementPeriod = getEffectiveStatementPeriod(parsedMeta, localMeta);
76
+ const uploadId = statementUpload.statementMeta.statementUploadId;
40
77
  return {
41
- statementUpload: {
42
- ...statementUpload,
43
- statementMeta: effectiveMeta,
44
- statementTransactions: filterStatementTransactionsByPeriod(statementUpload.statementTransactions, statementPeriod),
45
- },
78
+ statementUpload: getStatementUploadForView(statementUpload, statementUpdateLocalDataByUploadId?.[uploadId]),
46
79
  };
47
80
  };
48
81
  export const getStatementTransactionPeriodById = (allParsedTransactions, parsedMeta, localMeta) => {
@@ -1,4 +1,11 @@
1
- import { stringToUnion } from '../../../commonStateTypes/stringToUnion';
1
+ import { stringToUnion, stringToUnionStrict, } from '../../../commonStateTypes/stringToUnion';
2
+ const ALL_STATEMENT_BALANCE_SOURCES = [
3
+ 'ocr',
4
+ 'prior_recon',
5
+ 'default_zero',
6
+ ];
7
+ export const toStatementBalanceSource = (v) => stringToUnion(v, ALL_STATEMENT_BALANCE_SOURCES);
8
+ export const toStatementBalanceSourceStrict = (v) => stringToUnionStrict(v ?? '', ALL_STATEMENT_BALANCE_SOURCES);
2
9
  export function toReconciliationViewSummary(payload) {
3
10
  return {
4
11
  accounts: {
@@ -59,3 +66,10 @@ const RECON_REVIEW_SORT_KEYS = [
59
66
  ];
60
67
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
61
68
  const toReconReviewSortKey = (v) => stringToUnion(v, RECON_REVIEW_SORT_KEYS);
69
+ const ALL_STATEMENT_ACCOUNT_SCOPES = [
70
+ 'single_account',
71
+ 'multi_account',
72
+ ];
73
+ export const toStatementAccountScope = (v) => stringToUnion(v, ALL_STATEMENT_ACCOUNT_SCOPES);
74
+ export const toStatementAccountScopeStrict = (v) => stringToUnionStrict(v ?? '', ALL_STATEMENT_ACCOUNT_SCOPES);
75
+ export const STATEMENT_ACCOUNT_SCOPES = ALL_STATEMENT_ACCOUNT_SCOPES;
@@ -45,7 +45,6 @@ export const getCreateInvoiceFormView = (state) => {
45
45
  .filter((subFamily) => (subFamily.name ?? '') !== '')
46
46
  .map((subFamily) => ({
47
47
  planName: plan.name ?? '',
48
- price: subFamily.price?.amount,
49
48
  subFamilyName: subFamily.name ?? '',
50
49
  }))),
51
50
  products: getInvoicingCatalogPrices(catalogListView.products),
@@ -1,6 +1,6 @@
1
1
  import recordGet from 'lodash/get';
2
2
  import { getInvoicesByIds } from '../../../entity/invoicing/invoice/invoiceSelector';
3
- import { getInvoicingCustomerById, invoicingCustomerPaymentMethods, } from '../../../entity/invoicing/invoicingCustomer/invoicingCustomerSelector';
3
+ import { getInvoicingCustomerById } from '../../../entity/invoicing/invoicingCustomer/invoicingCustomerSelector';
4
4
  import { getInvoicingPaymentLinkSendState, getInvoicingPaymentMethodSaveState, getInvoicingPlaidLinkToken, getInvoicingSentPaymentLinkEmail, getInvoicingSentPaymentLinkMagicUrl, getInvoicingSetupIntent, getInvoicingSetupIntentFetchState, } from '../customerPaymentMethod/customerPaymentMethodSelector';
5
5
  import { isStripeConnectedFromSettings } from '../settingsView/invoicingSettingsHelpers';
6
6
  import { getInvoicingSettings } from '../settingsView/settingsViewSelector';
@@ -8,11 +8,9 @@ export const getInvoicingCustomerDetail = (state, invoicingCustomerID) => {
8
8
  const { invoicingCustomerState, invoicingCustomerDetailViewState } = state;
9
9
  const invoicingCustomerDetail = recordGet(invoicingCustomerDetailViewState.detailById, invoicingCustomerID, undefined);
10
10
  const settings = getInvoicingSettings(state);
11
- const invoicingCustomer = getInvoicingCustomerById(invoicingCustomerState, invoicingCustomerID);
12
11
  return {
13
- invoicingCustomer,
12
+ invoicingCustomer: getInvoicingCustomerById(invoicingCustomerState, invoicingCustomerID),
14
13
  invoices: getInvoicesByIds(state.invoicingInvoiceState, state.invoicingInvoiceListState.invoiceByTab[state.invoicingInvoiceListState.activeTab]?.invoiceIds ?? []),
15
- paymentMethods: invoicingCustomerPaymentMethods(invoicingCustomer),
16
14
  setupIntent: getInvoicingSetupIntent(state),
17
15
  setupIntentFetchState: getInvoicingSetupIntentFetchState(state),
18
16
  plaidLinkToken: getInvoicingPlaidLinkToken(state),
package/lib/index.d.ts CHANGED
@@ -291,7 +291,7 @@ import { UploadStatementDocumentAIPayload, UploadStatementDocumentAIResponse } f
291
291
  import { clearExpenseAutomationFluxAnalysisView, fetchFluxAnalysisView, reviewFluxAnalysisView, updateFluxAnalysisViewPageMetaData, updateFluxAnalysisViewUIState, updateOperatingExpensesIdsForReview, updateSelectedSectionIdsForReview } from './view/expenseAutomationView/reducers/fluxAnalysisViewReducer';
292
292
  import { clearJeScheduleLocalData as clearExpenseAutomationJEScheduleLocalData, clearExpenseAutomationJESchedulesView, fetchJeSchedulesPage as fetchExpenseAutomationJESchedulesPage, ignoreRecommendedJeSchedule as ignoreExpenseAutomationJESchedule, initializeAccountSettingsView as initializeJeAccountSettingsView, initializeJeScheduleLocalData, removeJeScheduleTransactionKey, retryJeSchedule as retryExpenseAutomationJESchedule, saveAccountSettings as saveJeAccountSettings, saveAccountSettingsLocalData as saveJeAccountSettingsLocalData, updateJESchedulesUIState as updateExpenseAutomationJESchedulesUIState, updateJeScheduleLocalDataById, updateJeScheduleTransactionKeys } from './view/expenseAutomationView/reducers/jeSchedulesViewReducer';
293
293
  import { acknowledgeBulkUploadConfirmMatchComplete, bulkUploadAutomatchingTimedOut, bulkUploadReceipts, bulkUploadReceiptsFailure, bulkUploadReceiptsSuccess, clearBulkUpload, clearBulkUploadBatchDetailsForScopeChange, clearManualSearchResults, clearMissingReceiptsTabNavigation, confirmBulkUploadMatch, confirmBulkUploadMatchFailure, confirmBulkUploadMatchSuccess, fetchBulkUploadBatchDetails, fetchBulkUploadBatchDetailsFailure, fetchBulkUploadBatchDetailsSuccess, fetchBulkUploadBatches, fetchBulkUploadBatchesFailure, fetchBulkUploadBatchesSuccess, fetchCompletedTransactions, fetchCompletedTransactionsFailure, fetchCompletedTransactionsSuccess, fetchMissingReceipts as fetchExpenseAutomationMissingReceipts, fetchMoreBatchDetails, fetchMoreBatchDetailsComplete, fetchMoreBatchDetailsFailure, markBatchDetailRefreshAttempted, markMissingReceiptAsDone as markExpenseAutomationMissingReceiptAsDone, pusherBatchStatusUpdate, refreshBatchDetailsForBatchId, requestMissingReceiptsTabNavigation, restoreBulkUploadAutomatchingOnMount, restoreBulkUploadMatchingState, searchTransactionsForManualMatch, searchTransactionsForManualMatchFailure, searchTransactionsForManualMatchSuccess, setBulkUploadCompletedSubTab, setBulkUploadResultsTab, setBulkUploadSortConfig, setBulkUploadUploadedFileCount, storeBatchDetails, updateBulkUploadProgress, updateMissingReceiptUploadState as updateExpenseAutomationMissingReceiptUploadState, updateMissingReceiptsUIState as updateExpenseAutomationMissingReceiptsUIState, uploadMissingReceiptSuccess as uploadExpenseAutomationMissingReceiptSuccess } from './view/expenseAutomationView/reducers/missingReceiptsViewReducer';
294
- import { clearStatementDateConflict, deleteAccountStatement, excludeAccountFromReconciliation, fetchReconciliation as fetchReconciliationView, includeAccountInReconciliation, parseStatement, parseStatementFailure, parseStatementSuccess, reparseStatement, reparseStatementFailure, reparseStatementSuccess, resetReparseStatementStatus, saveReconciliationDetail as saveExpenseAutomationReconciliationDetail, saveReconciliationReview as saveExpenseAutomationReconciliationReview, setConnectionInProgressForAccount as setConnectionInProgressForAccountReconciliation, setStatementParseInProgress, setStatementProcessingDismissedToBackground, submitStatementUpdate, updateAccountReconciliationLocalData as updateExpenseAutomationAccountReconciliationLocalData, updateSelectedAccountId as updateExpenseAutomationAccountReconciliationSelectedAccountId, updateSelectedTab as updateExpenseAutomationAccountReconciliationSelectedTab, updateReconListScrollPosition as updateExpenseAutomationReconListScrollPosition, updateReviewTabSortState as updateExpenseAutomationReconReviewTabListSortState, updateReviewTabLocalData as updateExpenseAutomationReconReviewTabLocalData, updateReconcileTabListScrollState as updateExpenseAutomationReconcileTabListScrollState, updateReconcileTabListSortState as updateExpenseAutomationReconcileTabListSortState, updateReconcileTabLocalData as updateExpenseAutomationReconcileTabLocalData, updateSelectedDrawerAccountId as updateExpenseAutomationSelectedDrawerAccountId, updateNodeCollapseState, updateParsedStatementData, updateStatementProcessingBackgroundCompletedSteps, updateStatementProcessingFailed, updateStatementUpdateLocalData, updateStatementUploadChosen, uploadAccountStatement } from './view/expenseAutomationView/reducers/reconciliationViewReducer';
294
+ import { clearStatementDateConflict, confirmStatementMapping, deleteAccountStatement, excludeAccountFromReconciliation, fetchReconciliation as fetchReconciliationView, includeAccountInReconciliation, parseCombinedStatement, parseStatement, parseStatementFailure, parseStatementSuccess, reparseStatement, reparseStatementFailure, reparseStatementSuccess, resetReparseStatementStatus, saveReconciliationDetail as saveExpenseAutomationReconciliationDetail, saveReconciliationReview as saveExpenseAutomationReconciliationReview, setConnectionInProgressForAccount as setConnectionInProgressForAccountReconciliation, setStatementParseInProgress, setStatementProcessingDismissedToBackground, submitCombinedStatementUpdate, submitStatementUpdate, updateAccountReconciliationLocalData as updateExpenseAutomationAccountReconciliationLocalData, updateSelectedAccountId as updateExpenseAutomationAccountReconciliationSelectedAccountId, updateSelectedTab as updateExpenseAutomationAccountReconciliationSelectedTab, updateReconListScrollPosition as updateExpenseAutomationReconListScrollPosition, updateReviewTabSortState as updateExpenseAutomationReconReviewTabListSortState, updateReviewTabLocalData as updateExpenseAutomationReconReviewTabLocalData, updateReconcileTabListScrollState as updateExpenseAutomationReconcileTabListScrollState, updateReconcileTabListSortState as updateExpenseAutomationReconcileTabListSortState, updateReconcileTabLocalData as updateExpenseAutomationReconcileTabLocalData, updateSelectedDrawerAccountId as updateExpenseAutomationSelectedDrawerAccountId, updateNodeCollapseState, updateParsedStatementData, updateStatementProcessingBackgroundCompletedSteps, updateStatementProcessingFailed, updateStatementUpdateLocalData, updateStatementUploadChosen, uploadAccountStatement } from './view/expenseAutomationView/reducers/reconciliationViewReducer';
295
295
  import { backgroundRefetchReviewTab, clearExpenseAutomationTransactionsView, fetchTransactionCategorization, fetchTransactionCategorizationFailure, fetchTransactionCategorizationView, initializeTransactionCategorizationViewLocalData, markCategoryClassRecommendationsFailureForCategorization, markTransactionAsNotMiscategorized, removeTransactionFromAllTabs, saveTransactionCategorization, saveTransactionCategorizationLocalData, setAllItemsToCategoryClassInLocalDataForCategorization, setEntityRecommendationForLineIdsForCategorization, syncTransactionCategorizationFromDetailSave, updateCurrentSelectedTransactionCategorizationTab, updateSelectedCheckboxTransactionIds, updateSelectedCustomerForTransaction, updateSelectedTransactionId, updateSelectedVendorForTransaction, updateTransactionCategorization, updateTransactionCategorizationCompletedSubTab, updateTransactionCategorizationSaveStatus, updateTransactionCategorizationUIState, updateTransactionCategorizationUploadReceiptState, updateTransactionFilters, uploadTransactionCategorizationReceiptSuccess } from './view/expenseAutomationView/reducers/transactionsViewReducer';
296
296
  import { ExpenseAutomationStepDetails, ExpenseAutomationViewSelector } from './view/expenseAutomationView/selectorTypes/expenseAutomationViewSelectorTypes';
297
297
  import { ExpenseAutomationFluxAnalysisViewSelector, FluxAnalysisOperatingExpenseView, FluxAnalysisSectionType, FluxAnalysisVendorView, FluxAnalysisViewSectionReport, FluxVendorAccountsAndClassesView } from './view/expenseAutomationView/selectorTypes/fluxAnalysisViewSelectorTypes';
@@ -303,7 +303,7 @@ import { AccountReconSectionID, AccountReconciliationByAccount, AccountReconcili
303
303
  import { ExpenseAutomationTransactionViewSelector, TransactionReviewLocalDataSelectorView } from './view/expenseAutomationView/selectorTypes/transactionsViewSelectorTypes';
304
304
  import { getExpenseAutomationFluxAnalysisView } from './view/expenseAutomationView/selectors/fluxAnalysisViewSelector';
305
305
  import { JEScheduledTransactionWithFailedEntries } from './view/expenseAutomationView/selectors/jeSchedulesViewSelector';
306
- import { getExpenseAutomationReconciliationView, getReparseStatementStatusByAccountId, isAccountReconReport } from './view/expenseAutomationView/selectors/reconciliationViewSelector';
306
+ import { getExpenseAutomationReconciliationView, getLedgerAccountsForCombinedStatementMapping, getReparseStatementStatusByAccountId, getUnavailableLedgerAccountIds, isAccountReconReport } from './view/expenseAutomationView/selectors/reconciliationViewSelector';
307
307
  import { getExpenseAutomationTransactionView, getLastTransferEntryReplacement } from './view/expenseAutomationView/selectors/transactionCategorizationSelector';
308
308
  import { TRANSACTION_FILTER_CATEGORIES, TransactionFilterAmountMatchingOperator, TransactionFilterCategory, TransactionFilterCategoryDropdownOption, TransactionFilterCategoryField, TransactionFilterEntityType, TransactionFilters, applyTransactionFilters } from './view/expenseAutomationView/transactionFilterHelpers';
309
309
  import { CompletedSubTab, DEFAULT_COMPLETED_SUB_TAB, toCompletedSubTab } from './view/expenseAutomationView/types/completedSubTab';
@@ -311,7 +311,7 @@ import { FluxAnalysisActionType, FluxAnalysisReviewStatus, FluxAnalysisSortKey,
311
311
  import { AccountSettingsLocalData, JEScheduleMainTab as ExpenseAutomationJEScheduleMainTab, JEScheduleSortKey as ExpenseAutomationJEScheduleSortKey, JESchedulesViewUIState as ExpenseAutomationJESchedulesViewUIState, JEScheduleLocalData, toJEScheduleMainTab as toExpenseAutomationJEScheduleMainTab, toJEScheduleSortKey as toExpenseAutomationJEScheduleSortKey } from './view/expenseAutomationView/types/jeSchedulesViewState';
312
312
  import { BATCH_FILE_STATUSES, BatchDetails, BatchFile, BatchFileStatus, BatchListItem, BatchStatus, BatchStatusValue, BatchSummary, BulkUploadPhase, BulkUploadResultsTab, BulkUploadSortKey, BulkUploadState, CandidateRef, MatchCandidate, MatchSource, MissingReceiptsTab, isUnmatchedTabFileStatus, toBatchFileStatus, toBatchStatusValue, toBulkUploadPhase, toBulkUploadResultsTab, toBulkUploadSortKey, toMatchSource, toMissingReceiptsTab } from './view/expenseAutomationView/types/missingReceiptsViewState';
313
313
  import { MissingReceiptsSortKey as ExpenseAutomationMissingReceiptsSortKey, MissingReceiptsViewState as ExpenseAutomationMissingReceiptsViewState, MissingReceiptsViewUIState as ExpenseAutomationMissingReceiptsViewUIState, toMissingReceiptsSortKey as toExpenseAutomationMissingReceiptsSortKey } from './view/expenseAutomationView/types/missingReceiptsViewState';
314
- import { AccountReconciliationLocalData, ExcludeAccountFromReconciliationPayload, ReconciliationViewTabType as ExpenseAutomationReconciliationViewTab, ParsedStatementData, ReconReconcileSortKey, ReconReviewSortKey, ReconciliationReconcileTabLocalData, ReconciliationReviewTabLocalData, SaveReconcileDetailActionPayload as SaveExpenseAutomationReconciliationActionType, StatementDateConflict, StatementMeta, StatementTransaction, StatementTransactionForUpdate, StatementTransactionsUpdate, StatementUpdateLocalData, toReconciliationTabsType } from './view/expenseAutomationView/types/reconciliationViewState';
314
+ import { AccountReconciliationLocalData, CombinedStatementAccount, ExcludeAccountFromReconciliationPayload, ReconciliationViewTabType as ExpenseAutomationReconciliationViewTab, ParsedStatementData, ReconReconcileSortKey, ReconReviewSortKey, ReconciliationReconcileTabLocalData, ReconciliationReviewTabLocalData, SaveReconcileDetailActionPayload as SaveExpenseAutomationReconciliationActionType, StatementAccountScope, StatementDateConflict, StatementMeta, StatementTransaction, StatementTransactionForUpdate, StatementTransactionsUpdate, StatementUpdateLocalData, toReconciliationTabsType } from './view/expenseAutomationView/types/reconciliationViewState';
315
315
  import { TransactionsTab as ExpenseAutomationTransactionsTab, TransactionsViewState as ExpenseAutomationTransactionsViewState, TransactionsViewUIState as ExpenseAutomationTransactionsViewUIState, SupportedTransactionCategorization, TransactionCategorizationLineItemData, TransactionReviewLocalData, TransactionsSortKey, TransactionsTab, toTransactionsTabKey as toExpenseAutomationTransactionsTabKey, toTransactionsSortKey } from './view/expenseAutomationView/types/transactionsViewState';
316
316
  import { clearFeatureNotificationView, fetchRegisteredInterests, notifyMeForFeature } from './view/featureNotificationView/featureNotificationViewReducer';
317
317
  import { getFeatureNotificationView, getRegisteredInterests, getRegisteredInterestsByFeature, isFeatureInterestRegistered } from './view/featureNotificationView/featureNotificationViewSelector';
@@ -701,7 +701,7 @@ export { TransactionsOrder, COABalancesSliceOrder, EntityOrder, Section, Section
701
701
  export { ClassesViewSelectorReportV2 };
702
702
  export { BalancesTimeseries, TrendTimeseries, BalanceKind };
703
703
  export { fetchMonthEndCloseChecks, fetchMonthClosePerformanceTrend, MonthClosePerformanceTrend, MonthEndCloseCheck, getMonthEndCloseChecksViewByTenantId, MonthEndCloseChecksView, MonthEndCloseCheckFrequency, MonthCloseCheckMetrics, MonthCloseCheckProgressJson, ALL_MONTH_END_CLOSE_CHECKS_FREQUENCY, MonthEndAuditSummary, };
704
- export { ExpenseAutomationViewSelector, ExpenseAutomationStepDetails, ExpenseAutomationViewType, ExpenseAutomationMissingReceiptsViewSelector, BulkUploadSelectorData, ExpenseAutomationFluxAnalysisViewSelector, FluxAnalysisVendorView, FluxAnalysisViewSectionReport, FluxVendorAccountsAndClassesView, ExpenseAutomationMissingReceiptsViewUIState, ExpenseAutomationMissingReceiptsViewState, ExpenseAutomationViewState, ExpenseAutomationTransactionsTab, ExpenseAutomationMissingReceiptsSortKey, BATCH_FILE_STATUSES, BatchDetails, BatchFile, BatchFileStatus, BatchListItem, isUnmatchedTabFileStatus, BatchStatus, BatchStatusValue, BatchSummary, BulkUploadPhase, BulkUploadResultsTab, BulkUploadSortKey, BulkUploadState, CandidateRef, CompletedSubTab, CompletedTransactionsSelectorData, DEFAULT_COMPLETED_SUB_TAB, MatchCandidate, MatchSource, MissingReceiptsTab, toBatchFileStatus, toBatchStatusValue, toBulkUploadPhase, toBulkUploadResultsTab, toBulkUploadSortKey, toCompletedSubTab, toMatchSource, toMissingReceiptsTab, ResolvedBatchFile, ResolvedBatchDetails, ResolvedCandidate, ExpenseAutomationJEScheduleMainTab, ExpenseAutomationJEScheduleSortKey, ExpenseAutomationJESchedulesViewUIState, toExpenseAutomationJEScheduleMainTab, toExpenseAutomationJEScheduleSortKey, getExpenseAutomationView, toExpenseAutomationMissingReceiptsSortKey, toExpenseAutomationTransactionsTabKey, toExpenseAutomationViewType, uploadExpenseAutomationMissingReceiptSuccess, markExpenseAutomationMissingReceiptAsDone, fetchAllExpenseAutomationTabs, refreshExpenseAutomationCurrentTab, updateCurrentSelectedTransactionCategorizationTab, updateTransactionCategorizationCompletedSubTab, fetchExpenseAutomationMissingReceipts, bulkUploadReceipts, bulkUploadAutomatchingTimedOut, bulkUploadReceiptsSuccess, bulkUploadReceiptsFailure, restoreBulkUploadAutomatchingOnMount, restoreBulkUploadMatchingState, updateBulkUploadProgress, pusherBatchStatusUpdate, requestMissingReceiptsTabNavigation, clearMissingReceiptsTabNavigation, fetchBulkUploadBatchDetails, fetchBulkUploadBatchDetailsSuccess, fetchBulkUploadBatchDetailsFailure, storeBatchDetails, fetchMoreBatchDetails, fetchMoreBatchDetailsComplete, fetchMoreBatchDetailsFailure, fetchBulkUploadBatches, fetchBulkUploadBatchesSuccess, fetchBulkUploadBatchesFailure, clearBulkUploadBatchDetailsForScopeChange, markBatchDetailRefreshAttempted, refreshBatchDetailsForBatchId, confirmBulkUploadMatch, confirmBulkUploadMatchSuccess, confirmBulkUploadMatchFailure, setBulkUploadResultsTab, setBulkUploadCompletedSubTab, setBulkUploadSortConfig, setBulkUploadUploadedFileCount, clearBulkUpload, searchTransactionsForManualMatch, searchTransactionsForManualMatchSuccess, searchTransactionsForManualMatchFailure, clearManualSearchResults, acknowledgeBulkUploadConfirmMatchComplete, fetchCompletedTransactions, fetchCompletedTransactionsSuccess, fetchCompletedTransactionsFailure, fetchFluxAnalysisView, clearExpenseAutomationFluxAnalysisView, updateOperatingExpensesIdsForReview as updateFluxOperatingExpensesIdsForReview, updateSelectedSectionIdsForReview as updateFluxAnalysisSelectedSectionIdsForReview, reviewFluxAnalysisView, updateExpenseAutomationMissingReceiptUploadState, updateExpenseAutomationMissingReceiptsUIState, updateTransactionCategorizationUploadReceiptState, uploadTransactionCategorizationReceiptSuccess, FluxAnalysisOperatingExpenseView, FluxAnalysisSectionType, getExpenseAutomationFluxAnalysisView, FluxAnalysisSortKey, FluxAnalysisActionType, FluxBalancesByMonth, updateCurrentSelectedView, updateCurrentSelectedPeriod, getExpenseAutomationTransactionView, getLastTransferEntryReplacement, ReconReconcileSortKey, ReconciliationReconcileTabLocalData, FluxAnalysisReviewStatus, updateFluxAnalysisViewUIState, FluxAnalysisViewUIState, updateFluxAnalysisViewPageMetaData, MAX_SELECTION_LIMIT, checkIfAllLineItemsAreCategoryClassFilled, getLineItemsByTransactionIdsFromLocalData, isAnyItemWithUncategorizedExpenseAccount, SaveExpenseAutomationReconciliationActionType, ExcludeAccountFromReconciliationPayload, excludeAccountFromReconciliation, includeAccountInReconciliation, saveExpenseAutomationReconciliationDetail, updateExpenseAutomationReconcileTabListScrollState, updateExpenseAutomationReconReviewTabListSortState, updateExpenseAutomationReconcileTabListSortState, updateExpenseAutomationReconcileTabLocalData, updateExpenseAutomationAccountReconciliationSelectedTab, updateExpenseAutomationAccountReconciliationSelectedAccountId, ExpenseAutomationReconciliationViewSelector, getExpenseAutomationReconciliationView, getReparseStatementStatusByAccountId, AccountReconciliationBySection, fetchReconciliationView, uploadAccountStatementIntoDocumentAI, UploadStatementDocumentAIResponse, updateExpenseAutomationReconListScrollPosition, setConnectionInProgressForAccountReconciliation, AccountReconciliationByAccount, AccountReconciliationEntity, getAccountReconByAccountIdAndSelectedPeriod, ExpenseAutomationReconciliationViewTab, toReconciliationTabsType, isAccountReconReport, ReconReviewSortKey, AccountReconSectionID, ReconciliationReviewTabLocalData, TransactionsToReview, RecommendedActionCodeType, ReconciliationStatusCodeType, BalanceDataStatusCodeType, updateExpenseAutomationReconReviewTabLocalData, updateExpenseAutomationSelectedDrawerAccountId, updateStatementProcessingFailed, saveExpenseAutomationReconciliationReview, updateExpenseAutomationAccountReconciliationLocalData, BankStatusCodeType, ReconciliationAccountSourceType, toReconciliationAccountSource, StatementStatusCodeType, AccountReconciliationLocalData, StatementDataStatusCodeType, deleteAccountStatement, uploadAccountStatement, parseStatement, parseStatementSuccess, parseStatementFailure, reparseStatement, reparseStatementSuccess, reparseStatementFailure, resetReparseStatementStatus, updateParsedStatementData, updateNodeCollapseState, UploadStatementDocumentAIPayload, updateStatementUploadChosen, submitStatementUpdate, clearStatementDateConflict, StatementDateConflict, updateStatementUpdateLocalData, isReviewTransactionBankTransferType, isReviewTransactionBillPaymentType, isReviewTransactionCreditCardPaymentType, isReviewTransactionDepositType, isReviewTransactionExpenseType, isReviewTransactionCreditCardCreditType, setStatementParseInProgress, setStatementProcessingDismissedToBackground, updateStatementProcessingBackgroundCompletedSteps, ParsedStatementData, StatementUpdateLocalData, StatementMeta, StatementTransaction, StatementTransactionForUpdate, StatementTransactionsUpdate, };
704
+ export { ExpenseAutomationViewSelector, ExpenseAutomationStepDetails, ExpenseAutomationViewType, ExpenseAutomationMissingReceiptsViewSelector, BulkUploadSelectorData, ExpenseAutomationFluxAnalysisViewSelector, FluxAnalysisVendorView, FluxAnalysisViewSectionReport, FluxVendorAccountsAndClassesView, ExpenseAutomationMissingReceiptsViewUIState, ExpenseAutomationMissingReceiptsViewState, ExpenseAutomationViewState, ExpenseAutomationTransactionsTab, ExpenseAutomationMissingReceiptsSortKey, BATCH_FILE_STATUSES, BatchDetails, BatchFile, BatchFileStatus, BatchListItem, isUnmatchedTabFileStatus, BatchStatus, BatchStatusValue, BatchSummary, BulkUploadPhase, BulkUploadResultsTab, BulkUploadSortKey, BulkUploadState, CandidateRef, CompletedSubTab, CompletedTransactionsSelectorData, DEFAULT_COMPLETED_SUB_TAB, MatchCandidate, MatchSource, MissingReceiptsTab, toBatchFileStatus, toBatchStatusValue, toBulkUploadPhase, toBulkUploadResultsTab, toBulkUploadSortKey, toCompletedSubTab, toMatchSource, toMissingReceiptsTab, ResolvedBatchFile, ResolvedBatchDetails, ResolvedCandidate, ExpenseAutomationJEScheduleMainTab, ExpenseAutomationJEScheduleSortKey, ExpenseAutomationJESchedulesViewUIState, toExpenseAutomationJEScheduleMainTab, toExpenseAutomationJEScheduleSortKey, getExpenseAutomationView, toExpenseAutomationMissingReceiptsSortKey, toExpenseAutomationTransactionsTabKey, toExpenseAutomationViewType, uploadExpenseAutomationMissingReceiptSuccess, markExpenseAutomationMissingReceiptAsDone, fetchAllExpenseAutomationTabs, refreshExpenseAutomationCurrentTab, updateCurrentSelectedTransactionCategorizationTab, updateTransactionCategorizationCompletedSubTab, fetchExpenseAutomationMissingReceipts, bulkUploadReceipts, bulkUploadAutomatchingTimedOut, bulkUploadReceiptsSuccess, bulkUploadReceiptsFailure, restoreBulkUploadAutomatchingOnMount, restoreBulkUploadMatchingState, updateBulkUploadProgress, pusherBatchStatusUpdate, requestMissingReceiptsTabNavigation, clearMissingReceiptsTabNavigation, fetchBulkUploadBatchDetails, fetchBulkUploadBatchDetailsSuccess, fetchBulkUploadBatchDetailsFailure, storeBatchDetails, fetchMoreBatchDetails, fetchMoreBatchDetailsComplete, fetchMoreBatchDetailsFailure, fetchBulkUploadBatches, fetchBulkUploadBatchesSuccess, fetchBulkUploadBatchesFailure, clearBulkUploadBatchDetailsForScopeChange, markBatchDetailRefreshAttempted, refreshBatchDetailsForBatchId, confirmBulkUploadMatch, confirmBulkUploadMatchSuccess, confirmBulkUploadMatchFailure, setBulkUploadResultsTab, setBulkUploadCompletedSubTab, setBulkUploadSortConfig, setBulkUploadUploadedFileCount, clearBulkUpload, searchTransactionsForManualMatch, searchTransactionsForManualMatchSuccess, searchTransactionsForManualMatchFailure, clearManualSearchResults, acknowledgeBulkUploadConfirmMatchComplete, fetchCompletedTransactions, fetchCompletedTransactionsSuccess, fetchCompletedTransactionsFailure, fetchFluxAnalysisView, clearExpenseAutomationFluxAnalysisView, updateOperatingExpensesIdsForReview as updateFluxOperatingExpensesIdsForReview, updateSelectedSectionIdsForReview as updateFluxAnalysisSelectedSectionIdsForReview, reviewFluxAnalysisView, updateExpenseAutomationMissingReceiptUploadState, updateExpenseAutomationMissingReceiptsUIState, updateTransactionCategorizationUploadReceiptState, uploadTransactionCategorizationReceiptSuccess, FluxAnalysisOperatingExpenseView, FluxAnalysisSectionType, getExpenseAutomationFluxAnalysisView, FluxAnalysisSortKey, FluxAnalysisActionType, FluxBalancesByMonth, updateCurrentSelectedView, updateCurrentSelectedPeriod, getExpenseAutomationTransactionView, getLastTransferEntryReplacement, ReconReconcileSortKey, ReconciliationReconcileTabLocalData, FluxAnalysisReviewStatus, updateFluxAnalysisViewUIState, FluxAnalysisViewUIState, updateFluxAnalysisViewPageMetaData, MAX_SELECTION_LIMIT, checkIfAllLineItemsAreCategoryClassFilled, getLineItemsByTransactionIdsFromLocalData, isAnyItemWithUncategorizedExpenseAccount, SaveExpenseAutomationReconciliationActionType, ExcludeAccountFromReconciliationPayload, excludeAccountFromReconciliation, includeAccountInReconciliation, saveExpenseAutomationReconciliationDetail, updateExpenseAutomationReconcileTabListScrollState, updateExpenseAutomationReconReviewTabListSortState, updateExpenseAutomationReconcileTabListSortState, updateExpenseAutomationReconcileTabLocalData, updateExpenseAutomationAccountReconciliationSelectedTab, updateExpenseAutomationAccountReconciliationSelectedAccountId, ExpenseAutomationReconciliationViewSelector, getExpenseAutomationReconciliationView, getLedgerAccountsForCombinedStatementMapping, getReparseStatementStatusByAccountId, getUnavailableLedgerAccountIds, AccountReconciliationBySection, fetchReconciliationView, uploadAccountStatementIntoDocumentAI, UploadStatementDocumentAIResponse, updateExpenseAutomationReconListScrollPosition, setConnectionInProgressForAccountReconciliation, AccountReconciliationByAccount, AccountReconciliationEntity, getAccountReconByAccountIdAndSelectedPeriod, ExpenseAutomationReconciliationViewTab, toReconciliationTabsType, isAccountReconReport, ReconReviewSortKey, AccountReconSectionID, ReconciliationReviewTabLocalData, TransactionsToReview, RecommendedActionCodeType, ReconciliationStatusCodeType, BalanceDataStatusCodeType, updateExpenseAutomationReconReviewTabLocalData, updateExpenseAutomationSelectedDrawerAccountId, updateStatementProcessingFailed, saveExpenseAutomationReconciliationReview, updateExpenseAutomationAccountReconciliationLocalData, BankStatusCodeType, ReconciliationAccountSourceType, toReconciliationAccountSource, StatementStatusCodeType, AccountReconciliationLocalData, CombinedStatementAccount, StatementAccountScope, StatementDataStatusCodeType, deleteAccountStatement, uploadAccountStatement, parseCombinedStatement, parseStatement, parseStatementSuccess, parseStatementFailure, reparseStatement, reparseStatementSuccess, reparseStatementFailure, resetReparseStatementStatus, updateParsedStatementData, updateNodeCollapseState, UploadStatementDocumentAIPayload, updateStatementUploadChosen, submitCombinedStatementUpdate, submitStatementUpdate, clearStatementDateConflict, confirmStatementMapping, StatementDateConflict, updateStatementUpdateLocalData, isReviewTransactionBankTransferType, isReviewTransactionBillPaymentType, isReviewTransactionCreditCardPaymentType, isReviewTransactionDepositType, isReviewTransactionExpenseType, isReviewTransactionCreditCardCreditType, setStatementParseInProgress, setStatementProcessingDismissedToBackground, updateStatementProcessingBackgroundCompletedSteps, ParsedStatementData, StatementUpdateLocalData, StatementMeta, StatementTransaction, StatementTransactionForUpdate, StatementTransactionsUpdate, };
705
705
  export { JEScheduleLocalData };
706
706
  export { ExpenseAutomationJESchedulesViewSelector, JEAccountSettingsView, JEScheduledTransactionWithFailedEntries, };
707
707
  export { fetchTransactionCategorization, fetchTransactionCategorizationView, updateTransactionCategorizationUIState, updateTransactionFilters, updateSelectedCheckboxTransactionIds, markCategoryClassRecommendationsFailureForCategorization, setEntityRecommendationForLineIdsForCategorization, initializeTransactionCategorizationViewLocalData, setAllItemsToCategoryClassInLocalDataForCategorization, saveTransactionCategorizationLocalData, fetchTransactionCategorizationFailure, saveTransactionCategorization, updateTransactionCategorization, updateTransactionCategorizationSaveStatus, markTransactionAsNotMiscategorized, updateSelectedVendorForTransaction, updateSelectedCustomerForTransaction, updateSelectedTransactionId, syncTransactionCategorizationFromDetailSave, backgroundRefetchReviewTab, createTransferEntry, createTransferEntryFailure, createTransferEntryReplacedTransaction, createTransferEntrySuccess, resetCreateTransferEntryStatus, clearTransferEntryRouteReplacement, fetchAccountsForTransferFlow, removeTransactionFromAllTabs, clearExpenseAutomationTransactionsView, TransactionsSortKey, toTransactionsSortKey, TransactionsTab, TransactionCategorizationLineItemData, TransactionReviewLocalData, SupportedTransactionCategorization, ExpenseAutomationTransactionsViewState, ExpenseAutomationTransactionsViewUIState, ExpenseAutomationTransactionViewSelector, TransactionReviewLocalDataSelectorView, };
@@ -1019,8 +1019,8 @@ export type { InvoicingCouponApplyOn, InvoicingCouponCode, InvoicingCouponDurati
1019
1019
  export type { InvoicingCoupon } from './entity/invoicing/coupon/couponState';
1020
1020
  export type { InvoicingCreditNote, InvoicingCreditNoteAllocation, InvoicingCreditNoteLineItem, } from './entity/invoicing/creditNote/creditNoteState';
1021
1021
  export type { InvoicingCreditNoteStatus, InvoicingCreditNoteType, } from './entity/invoicing/creditNote/creditNotePayload';
1022
- export type { InvoicingCustomer, InvoicingCustomerPaymentMethod, InvoicingPaymentMethodType, } from './entity/invoicing/invoicingCustomer/invoicingCustomerState';
1023
- export type { InvoicingCustomerCounts, InvoicingCustomerPayload, InvoicingCustomerPaymentMethodPayload, } from './entity/invoicing/invoicingCustomer/invoicingCustomerPayload';
1022
+ export type { InvoicingCustomer } from './entity/invoicing/invoicingCustomer/invoicingCustomerState';
1023
+ export type { InvoicingCustomerCounts, InvoicingCustomerPayload, } from './entity/invoicing/invoicingCustomer/invoicingCustomerPayload';
1024
1024
  export type { InvoicingDunningCase } from './entity/invoicing/dunningCase/dunningCaseState';
1025
1025
  export type { InvoicingDunningStatus } from './entity/invoicing/dunningCase/dunningCasePayload';
1026
1026
  export type { InvoicingInvoicePayload, InvoicingInvoiceDiscountPayload, InvoicingInvoiceStatus, } from './entity/invoicing/invoice/invoicePayload';
@@ -1041,7 +1041,7 @@ export type { StripeConnectCredentials } from './view/invoicing/settingsView/set
1041
1041
  export { clearAllInvoices, removeInvoice, updateInvoices, } from './entity/invoicing/invoice/invoiceReducer';
1042
1042
  export { getInvoiceById, getInvoicesByIds, } from './entity/invoicing/invoice/invoiceSelector';
1043
1043
  export { clearInvoiceList, fetchInvoiceCounts, fetchInvoiceKPIs, fetchInvoiceList, fetchInvoiceListPage, setInvoiceActiveTab, updateInvoiceListFilters, } from './view/invoicing/invoiceList/invoiceListReducer';
1044
- export { ALL_INVOICING_INVOICE_TAB_IDS } from './view/invoicing/invoiceList/invoiceListState';
1044
+ export { ALL_INVOICING_INVOICE_TAB_IDS, } from './view/invoicing/invoiceList/invoiceListState';
1045
1045
  export type { InvoiceListFilters, InvoiceListState, InvoicingInvoiceTabId, } from './view/invoicing/invoiceList/invoiceListState';
1046
1046
  export { getInvoiceListView } from './view/invoicing/invoiceList/invoiceListSelector';
1047
1047
  export type { InvoiceListView } from './view/invoicing/invoiceList/invoiceListSelector';
@@ -1057,7 +1057,7 @@ export { initializeIssueCreditNoteDraft, issueCreditNoteFailure, issueCreditNote
1057
1057
  export type { IssueCreditNoteRequest, IssueCreditNoteResponse, CreateCreditNoteRequest, CreateCreditNoteResponse, } from './view/invoicing/issueCreditNote/issueCreditNotePayload';
1058
1058
  export { computeIssueCreditNoteTotal, initializeIssueCreditNoteDraftFromInvoice, localDataToIssueCreditNotePayload, } from './view/invoicing/issueCreditNote/issueCreditNotePayload';
1059
1059
  export type { IssueCreditNoteFormLocalData, IssueCreditNoteLineItemDraft, } from './view/invoicing/issueCreditNote/issueCreditNoteState';
1060
- export { initialIssueCreditNoteFormLocalData } from './view/invoicing/issueCreditNote/issueCreditNoteFormConfig';
1060
+ export { initialIssueCreditNoteFormLocalData, } from './view/invoicing/issueCreditNote/issueCreditNoteFormConfig';
1061
1061
  export { getIssueCreditNoteView } from './view/invoicing/issueCreditNote/issueCreditNoteSelector';
1062
1062
  export type { IssueCreditNoteView } from './view/invoicing/issueCreditNote/issueCreditNoteSelector';
1063
1063
  export { createCreditNoteFailure, createCreditNoteSuccess, resetCreateCreditNote, submitCreateCreditNote, updateCreateCreditNoteFormDraft, } from './view/invoicing/createCreditNote/createCreditNoteReducer';
@@ -1069,7 +1069,7 @@ export type { CreateCreditNoteFormView, InvoicingCreateCreditNoteView, } from '.
1069
1069
  export type { InvoiceRecordPaymentRequest, RecordPaymentLinkedInvoice, RecordPaymentRequest, } from './view/invoicing/recordPayment/recordPaymentPayload';
1070
1070
  export { initializeRecordPaymentDraftFromInvoice, localDataToInvoiceRecordPaymentBody, localDataToRecordPaymentPayload, } from './view/invoicing/recordPayment/recordPaymentPayload';
1071
1071
  export type { RecordPaymentFormLocalData } from './view/invoicing/recordPayment/recordPaymentState';
1072
- export { initialRecordPaymentFormLocalData } from './view/invoicing/recordPayment/recordPaymentFormConfig';
1072
+ export { initialRecordPaymentFormLocalData, } from './view/invoicing/recordPayment/recordPaymentFormConfig';
1073
1073
  export { clearInvoicingOverview, fetchInvoicingOverview, } from './view/invoicing/invoicingOverview/invoicingOverviewReducer';
1074
1074
  export type { InvoicingOverviewData, InvoicingOverviewPeriod, } from './view/invoicing/invoicingOverview/invoicingOverviewState';
1075
1075
  export { buildPeriodOptions, getInvoicingOverview, } from './view/invoicing/invoicingOverview/invoicingOverviewSelector';