@zeniai/client-epic-state 5.2.88 → 5.2.89-beta0KB

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 (62) hide show
  1. package/lib/entity/invoicing/invoicingCommonPayload.d.ts +9 -0
  2. package/lib/entity/invoicing/invoicingCommonPayload.js +8 -1
  3. package/lib/entity/snackbar/snackbarTypes.d.ts +1 -1
  4. package/lib/entity/snackbar/snackbarTypes.js +1 -0
  5. package/lib/entity/tenant/tenantPayload.d.ts +1 -0
  6. package/lib/entity/tenant/tenantReducer.js +1 -0
  7. package/lib/entity/tenant/tenantState.d.ts +1 -0
  8. package/lib/entity/transaction/stateTypes/paymentType.d.ts +2 -2
  9. package/lib/entity/transaction/stateTypes/paymentType.js +9 -1
  10. package/lib/entity/transaction/stateTypes/printStatus.d.ts +4 -0
  11. package/lib/entity/transaction/stateTypes/printStatus.js +11 -0
  12. package/lib/epic.d.ts +5 -1
  13. package/lib/epic.js +8 -0
  14. package/lib/esm/entity/invoicing/invoicingCommonPayload.js +7 -0
  15. package/lib/esm/entity/snackbar/snackbarTypes.js +1 -0
  16. package/lib/esm/entity/tenant/tenantReducer.js +1 -0
  17. package/lib/esm/entity/transaction/stateTypes/paymentType.js +9 -1
  18. package/lib/esm/entity/transaction/stateTypes/printStatus.js +7 -0
  19. package/lib/esm/epic.js +8 -0
  20. package/lib/esm/index.js +5 -2
  21. package/lib/esm/view/invoicing/invoicingQboView/invoicingQboViewSelector.js +20 -12
  22. package/lib/esm/view/invoicing/settingsView/invoicingQboSettingsFormConfig.js +6 -1
  23. package/lib/esm/view/invoicing/settingsView/settingsViewReducer.js +19 -1
  24. package/lib/esm/view/invoicing/settingsView/settingsViewSelector.js +15 -1
  25. package/lib/esm/view/transactionDetail/createTransaction/createTransactionLocalDataHelper.js +157 -0
  26. package/lib/esm/view/transactionDetail/createTransaction/createTransactionPayload.js +164 -0
  27. package/lib/esm/view/transactionDetail/createTransaction/createTransactionSelector.js +47 -0
  28. package/lib/esm/view/transactionDetail/createTransaction/createTransactionState.js +11 -0
  29. package/lib/esm/view/transactionDetail/createTransaction/epics/createTransactionAttachmentUploadFailureEpic.js +19 -0
  30. package/lib/esm/view/transactionDetail/createTransaction/epics/createTransactionEpic.js +81 -0
  31. package/lib/esm/view/transactionDetail/createTransaction/epics/fetchVendorRecommendationsForCreateTransactionEpic.js +53 -0
  32. package/lib/esm/view/transactionDetail/createTransaction/epics/initializeCreateTransactionLocalDataEpic.js +10 -0
  33. package/lib/esm/view/transactionDetail/transactionDetailReducer.js +196 -1
  34. package/lib/index.d.ts +6 -2
  35. package/lib/index.js +58 -37
  36. package/lib/view/expenseAutomationView/helpers/transactionCategorizationLocalDataHelper.d.ts +1 -1
  37. package/lib/view/invoicing/invoicingQboView/invoicingQboViewSelector.d.ts +6 -1
  38. package/lib/view/invoicing/invoicingQboView/invoicingQboViewSelector.js +20 -12
  39. package/lib/view/invoicing/settingsView/invoicingQboSettingsFormConfig.js +5 -0
  40. package/lib/view/invoicing/settingsView/settingsViewReducer.js +19 -1
  41. package/lib/view/invoicing/settingsView/settingsViewSelector.d.ts +3 -1
  42. package/lib/view/invoicing/settingsView/settingsViewSelector.js +15 -1
  43. package/lib/view/transactionDetail/createTransaction/createTransactionLocalDataHelper.d.ts +56 -0
  44. package/lib/view/transactionDetail/createTransaction/createTransactionLocalDataHelper.js +172 -0
  45. package/lib/view/transactionDetail/createTransaction/createTransactionPayload.d.ts +95 -0
  46. package/lib/view/transactionDetail/createTransaction/createTransactionPayload.js +169 -0
  47. package/lib/view/transactionDetail/createTransaction/createTransactionSelector.d.ts +44 -0
  48. package/lib/view/transactionDetail/createTransaction/createTransactionSelector.js +53 -0
  49. package/lib/view/transactionDetail/createTransaction/createTransactionState.d.ts +82 -0
  50. package/lib/view/transactionDetail/createTransaction/createTransactionState.js +14 -0
  51. package/lib/view/transactionDetail/createTransaction/epics/createTransactionAttachmentUploadFailureEpic.d.ts +10 -0
  52. package/lib/view/transactionDetail/createTransaction/epics/createTransactionAttachmentUploadFailureEpic.js +23 -0
  53. package/lib/view/transactionDetail/createTransaction/epics/createTransactionEpic.d.ts +9 -0
  54. package/lib/view/transactionDetail/createTransaction/epics/createTransactionEpic.js +85 -0
  55. package/lib/view/transactionDetail/createTransaction/epics/fetchVendorRecommendationsForCreateTransactionEpic.d.ts +20 -0
  56. package/lib/view/transactionDetail/createTransaction/epics/fetchVendorRecommendationsForCreateTransactionEpic.js +57 -0
  57. package/lib/view/transactionDetail/createTransaction/epics/initializeCreateTransactionLocalDataEpic.d.ts +12 -0
  58. package/lib/view/transactionDetail/createTransaction/epics/initializeCreateTransactionLocalDataEpic.js +14 -0
  59. package/lib/view/transactionDetail/transactionDetailReducer.d.ts +39 -1
  60. package/lib/view/transactionDetail/transactionDetailReducer.js +198 -2
  61. package/lib/view/transactionDetail/transactionDetailState.d.ts +12 -0
  62. package/package.json +1 -1
@@ -2,6 +2,7 @@ import { createSlice } from '@reduxjs/toolkit';
2
2
  import recordGet from 'lodash/get';
3
3
  import { toEntityType, } from '../../entity/genericEntity/entity';
4
4
  import { clearAll } from '../../rootActions';
5
+ import { applyRecommendationsToCreateTransactionLine, clearRecommendationsFromCreateTransactionLine, getInitialCreateTransactionLocalDataByType, getSeededCreateTransactionLocalData, mergeCreateTransactionLocalData, nextCreateTransactionLineId, updateCreateTransactionLine, } from './createTransaction/createTransactionLocalDataHelper';
5
6
  import { removeEntityRecommendationForLineIdInLocalData, setEntityRecommendationForLineIdInLocalData, toSetAllLineItemsLocalDataIsUpdateAllChecked, toSetAllLineItemsToCategoryClass, toSetAllLineItemsToVendor, toUpdateLineItemsOriginalCategoryClass, toUpdateLineItemsToOriginalVendor, } from './transactionDetailLocalDataHelper';
6
7
  import { getTransactionDetailKey, initialSupportedTransactionDetail, } from './transactionDetailState';
7
8
  export const initialState = {
@@ -10,6 +11,10 @@ export const initialState = {
10
11
  fetchState: 'Not-Started',
11
12
  attachmentDataByID: {},
12
13
  },
14
+ createTransactionsState: {
15
+ createStatus: { fetchState: 'Not-Started' },
16
+ newTransactionState: getInitialCreateTransactionLocalDataByType(),
17
+ },
13
18
  };
14
19
  const transactionDetail = createSlice({
15
20
  name: 'transactionDetail',
@@ -829,6 +834,196 @@ const transactionDetail = createSlice({
829
834
  };
830
835
  },
831
836
  },
837
+ // ---------------------------------------------------------------------------------
838
+ // Create Transaction
839
+ //
840
+ // These live on the transactionDetail slice rather than in createTransaction/ because a
841
+ // createSlice owns exactly one state object, and createTransactionsState is nested inside
842
+ // TransactionDetailState. The derivation itself stays in the folder -- each body below
843
+ // delegates to createTransactionLocalDataHelper.ts.
844
+ //
845
+ // They need no clearAll case of their own: the slice already resets to initialState on
846
+ // tenant switch, and createTransactionsState is part of it.
847
+ // ---------------------------------------------------------------------------------
848
+ /** Trigger only -- initializeCreateTransactionLocalDataEpic does the seeding. */
849
+ initializeCreateTransactionLocalData: {
850
+ reducer(
851
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
852
+ _draft,
853
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
854
+ _action) {
855
+ // no-op
856
+ },
857
+ prepare(transactionType) {
858
+ return { payload: { transactionType } };
859
+ },
860
+ },
861
+ updateCreateTransactionLocalData: {
862
+ reducer(draft, action) {
863
+ const { transactionType, localData } = action.payload;
864
+ const current = draft.createTransactionsState.newTransactionState[transactionType];
865
+ draft.createTransactionsState.newTransactionState[transactionType] =
866
+ mergeCreateTransactionLocalData(current, localData);
867
+ },
868
+ prepare(transactionType, localData) {
869
+ return { payload: { transactionType, localData } };
870
+ },
871
+ },
872
+ updateCreateTransactionLineLocalData: {
873
+ reducer(draft, action) {
874
+ const { transactionType, lineId, lineUpdates } = action.payload;
875
+ const current = draft.createTransactionsState.newTransactionState[transactionType];
876
+ current.lines = updateCreateTransactionLine(current.lines, lineId, lineUpdates);
877
+ },
878
+ prepare(transactionType, lineId, lineUpdates) {
879
+ return { payload: { transactionType, lineId, lineUpdates } };
880
+ },
881
+ },
882
+ /**
883
+ * `line` is supplied by the caller rather than built here, so a row added after a vendor is
884
+ * already chosen can arrive pre-populated from the cached recommendations instead of blank.
885
+ */
886
+ addCreateTransactionLine: {
887
+ reducer(draft, action) {
888
+ const { transactionType, line } = action.payload;
889
+ draft.createTransactionsState.newTransactionState[transactionType].lines.push({
890
+ ...line,
891
+ id: nextCreateTransactionLineId(),
892
+ });
893
+ },
894
+ prepare(transactionType, line) {
895
+ return { payload: { transactionType, line } };
896
+ },
897
+ },
898
+ removeCreateTransactionLine: {
899
+ reducer(draft, action) {
900
+ const { transactionType, lineId } = action.payload;
901
+ const current = draft.createTransactionsState.newTransactionState[transactionType];
902
+ current.lines = current.lines.filter((line) => line.id !== lineId);
903
+ },
904
+ prepare(transactionType, lineId) {
905
+ return { payload: { transactionType, lineId } };
906
+ },
907
+ },
908
+ /**
909
+ * Restores the blank working copy AND re-seeds it, so reopening Create starts from a fresh
910
+ * form rather than the previous transaction's values.
911
+ */
912
+ resetCreateTransactionLocalData: {
913
+ reducer(draft, action) {
914
+ const { transactionType } = action.payload;
915
+ draft.createTransactionsState.newTransactionState[transactionType] =
916
+ getSeededCreateTransactionLocalData(transactionType);
917
+ draft.createTransactionsState.createStatus = {
918
+ fetchState: 'Not-Started',
919
+ };
920
+ draft.createTransactionsState.createdTransactionId = undefined;
921
+ },
922
+ prepare(transactionType) {
923
+ return { payload: { transactionType } };
924
+ },
925
+ },
926
+ /** Submit trigger -- createTransactionEpic builds the payload from localData. */
927
+ createTransaction: {
928
+ reducer(draft,
929
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
930
+ _action) {
931
+ draft.createTransactionsState.createStatus = {
932
+ fetchState: 'In-Progress',
933
+ };
934
+ draft.createTransactionsState.createdTransactionId = undefined;
935
+ },
936
+ prepare(transactionType) {
937
+ return { payload: { transactionType } };
938
+ },
939
+ },
940
+ /**
941
+ * Trigger only -- fetchVendorRecommendationsForCreateTransactionEpic does the work.
942
+ * A null entity means the vendor was cleared.
943
+ */
944
+ fetchVendorRecommendationsForCreateTransaction: {
945
+ reducer(
946
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
947
+ _draft,
948
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
949
+ _action) {
950
+ // no-op
951
+ },
952
+ prepare(transactionType, lineIds, entity) {
953
+ return { payload: { transactionType, lineIds, entity } };
954
+ },
955
+ },
956
+ /** Trigger only -- createTransactionAttachmentUploadFailureEpic raises the snackbar. */
957
+ createTransactionAttachmentUploadFailure: {
958
+ reducer(
959
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
960
+ _draft,
961
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
962
+ _action) {
963
+ // no-op
964
+ },
965
+ prepare(failedAttachmentFileNames) {
966
+ return { payload: { failedAttachmentFileNames } };
967
+ },
968
+ },
969
+ /**
970
+ * Writes a vendor's recommendations into the named lines. `lineIds` is explicit rather than
971
+ * "all lines" because a journal entry recommends per line, from that line's own entity.
972
+ */
973
+ setRecommendationsForCreateTransactionLines: {
974
+ reducer(draft, action) {
975
+ const { transactionType, lineIds, recommendations, isAccountingClassesEnabled, } = action.payload;
976
+ const current = draft.createTransactionsState.newTransactionState[transactionType];
977
+ // Clear first: on vendor A -> B, A's prefill is no longer empty, so B's would never
978
+ // replace it. Fields the user picked carry no prefill flag and survive the clear.
979
+ current.lines = current.lines.map((line) => lineIds.includes(line.id)
980
+ ? applyRecommendationsToCreateTransactionLine(clearRecommendationsFromCreateTransactionLine(line), recommendations, isAccountingClassesEnabled)
981
+ : line);
982
+ },
983
+ prepare(transactionType, lineIds, recommendations, isAccountingClassesEnabled) {
984
+ return {
985
+ payload: {
986
+ transactionType,
987
+ lineIds,
988
+ recommendations,
989
+ isAccountingClassesEnabled,
990
+ },
991
+ };
992
+ },
993
+ },
994
+ /** Vendor cleared: drop the dropdown group and undo only what the prefill wrote. */
995
+ clearRecommendationsForCreateTransactionLines: {
996
+ reducer(draft, action) {
997
+ const { transactionType, lineIds } = action.payload;
998
+ const current = draft.createTransactionsState.newTransactionState[transactionType];
999
+ current.lines = current.lines.map((line) => lineIds.includes(line.id)
1000
+ ? clearRecommendationsFromCreateTransactionLine(line)
1001
+ : line);
1002
+ },
1003
+ prepare(transactionType, lineIds) {
1004
+ return { payload: { transactionType, lineIds } };
1005
+ },
1006
+ },
1007
+ createTransactionSuccessOrFailure: {
1008
+ reducer(draft, action) {
1009
+ const { fetchState, error, createdTransactionId } = action.payload;
1010
+ draft.createTransactionsState.createStatus = { fetchState, error };
1011
+ if (createdTransactionId != null) {
1012
+ draft.createTransactionsState.createdTransactionId =
1013
+ createdTransactionId;
1014
+ // The API will not return a QBO-only row until delta sync, so the optimistic insert
1015
+ // is marked fetched: detail local data can be saved and a fetch is a cache hit.
1016
+ draft.transactionDetailById[getTransactionDetailKey(createdTransactionId)] = {
1017
+ ...initialSupportedTransactionDetail,
1018
+ fetchState: 'Completed',
1019
+ transactionId: createdTransactionId,
1020
+ };
1021
+ }
1022
+ },
1023
+ prepare(fetchState, createdTransactionId, error) {
1024
+ return { payload: { fetchState, createdTransactionId, error } };
1025
+ },
1026
+ },
832
1027
  },
833
1028
  extraReducers: (builder) => {
834
1029
  builder.addCase(clearAll, (draft) => {
@@ -836,7 +1031,7 @@ const transactionDetail = createSlice({
836
1031
  });
837
1032
  },
838
1033
  });
839
- export const { downloadAccountingProviderAttachment, downloadAccountingProviderAttachmentSuccess, downloadAccountingProviderAttachmentFailure, fetchTransactionDetail, updateTransactionDetailFetchState, removeTransactionDetail, uploadMissingAttachmentSuccess, updateTransactionDetail, updateTransactionDetailSaveStatus, clearTransactionDetailSaveStatus, markTransactionAsNotMiscategorized, deleteTransactionAttachment, deleteTransactionAttachmentFailure, deleteTransactionAttachmentSuccess, updateStatusForTransactionNotMiscategorizedUpdate, updateStatusConsolidatedSaveTransactionDetail, updateTransactionStateIfUpdateActionNotAllowed, saveTransactionDetail, initializeTransactionDetailLocalData, saveTransactionDetailLocalData, clearTransactionDetailLocalData, resetLineItemsCategoryClassInLocalData, setAllLineItemsToCategoryClassInLocalData, setAllLineItemsLocalDataIsUpdateAllChecked, setEntityRecommendationForLineIdsForTransactionDetail, markCategoryClassRecommendationsInProgressForTransactionDetail, markCategoryClassRecommendationsCompletedForTransactionDetail, markCategoryClassRecommendationsFailureForTransactionDetail, removeEntityRecommendationForLineIdForTransactionDetail, updateSelectedVendor, updateSelectedCustomer, resetVendor, resetSelectedCustomer, updateLocalDataWithTransactionsUpdateWithVendorCheckbox, updateVendorToAllLineItems, resetAllLineItemsToVendor, updateLatestSelectedEntity, updateVendorBulkRecommendationsFetchStatus, setIsVendorUpdateAllChecked, addSplitLine, deleteSplitLine, toggleSplitEditMode, } = transactionDetail.actions;
1034
+ export const { downloadAccountingProviderAttachment, downloadAccountingProviderAttachmentSuccess, downloadAccountingProviderAttachmentFailure, fetchTransactionDetail, updateTransactionDetailFetchState, removeTransactionDetail, uploadMissingAttachmentSuccess, updateTransactionDetail, updateTransactionDetailSaveStatus, clearTransactionDetailSaveStatus, markTransactionAsNotMiscategorized, deleteTransactionAttachment, deleteTransactionAttachmentFailure, deleteTransactionAttachmentSuccess, updateStatusForTransactionNotMiscategorizedUpdate, updateStatusConsolidatedSaveTransactionDetail, updateTransactionStateIfUpdateActionNotAllowed, saveTransactionDetail, initializeTransactionDetailLocalData, saveTransactionDetailLocalData, clearTransactionDetailLocalData, resetLineItemsCategoryClassInLocalData, setAllLineItemsToCategoryClassInLocalData, setAllLineItemsLocalDataIsUpdateAllChecked, setEntityRecommendationForLineIdsForTransactionDetail, markCategoryClassRecommendationsInProgressForTransactionDetail, markCategoryClassRecommendationsCompletedForTransactionDetail, markCategoryClassRecommendationsFailureForTransactionDetail, removeEntityRecommendationForLineIdForTransactionDetail, updateSelectedVendor, updateSelectedCustomer, resetVendor, resetSelectedCustomer, updateLocalDataWithTransactionsUpdateWithVendorCheckbox, updateVendorToAllLineItems, resetAllLineItemsToVendor, updateLatestSelectedEntity, updateVendorBulkRecommendationsFetchStatus, setIsVendorUpdateAllChecked, addSplitLine, deleteSplitLine, toggleSplitEditMode, initializeCreateTransactionLocalData, updateCreateTransactionLocalData, updateCreateTransactionLineLocalData, addCreateTransactionLine, removeCreateTransactionLine, resetCreateTransactionLocalData, createTransaction, createTransactionSuccessOrFailure, setRecommendationsForCreateTransactionLines, clearRecommendationsForCreateTransactionLines, fetchVendorRecommendationsForCreateTransaction, createTransactionAttachmentUploadFailure, } = transactionDetail.actions;
840
1035
  export default transactionDetail.reducer;
841
1036
  function getUpdatedEntityLocalData(detail, updates, entity, resetRecommendations, type) {
842
1037
  const key = type === 'customer' ? 'customerUpdates' : 'vendorUpdates';
package/lib/index.d.ts CHANGED
@@ -644,10 +644,13 @@ import { TopExAccount, TopExReport, TopExTimePeriodWithMetaData, TopExpenses } f
644
644
  * Expense Automation Exports ends
645
645
  */
646
646
  import { TOP_EX_TIME_PERIODS, TopExTimePeriod, TopExpense } from './view/topEx/topExState';
647
+ import { CreateTransactionRequest, prepareCreateTransactionPayload } from './view/transactionDetail/createTransaction/createTransactionPayload';
648
+ import { CreateTransactionView, getCreateTransactionLocalData, getCreateTransactionStatus, getCreateTransactionVendorRecommendations, getCreateTransactionView } from './view/transactionDetail/createTransaction/createTransactionSelector';
649
+ import { ALL_CREATABLE_TRANSACTION_TYPES, CreatableTransactionType, CreateTransactionLineLocalData, CreateTransactionLocalData, RemitToAddress } from './view/transactionDetail/createTransaction/createTransactionState';
647
650
  import { AccountingProviderAttachmentSelector, getAccountingProviderAttachment } from './view/transactionDetail/getAccountingProviderAttachmentSelector';
648
651
  import { JOURNAL_ENTRY_SORT_KEYS, JournalEntryRowSortConfig, JournalEntrySortAccessors, JournalEntrySortKey, filterJournalEntryLinesExcludingLinked, journalEntryDefaultSortConfig, journalEntrySplitReconciliation, journalEntryTotalsByPostingSide, sortJournalEntryLines, sumJournalEntryAmounts, toJournalEntrySortKey } from './view/transactionDetail/journalEntryLinesViewModel';
649
652
  import { getChangedLineItemCountFromLocalData, isAccountUncategorized } from './view/transactionDetail/transactionDetailLocalDataHelper';
650
- import { addSplitLine, clearTransactionDetailSaveStatus, deleteSplitLine, deleteTransactionAttachment, downloadAccountingProviderAttachment, downloadAccountingProviderAttachmentFailure, downloadAccountingProviderAttachmentSuccess, fetchTransactionDetail, initializeTransactionDetailLocalData, markCategoryClassRecommendationsFailureForTransactionDetail, removeEntityRecommendationForLineIdForTransactionDetail, resetAllLineItemsToVendor, resetLineItemsCategoryClassInLocalData, resetSelectedCustomer, resetVendor, saveTransactionDetail, saveTransactionDetailLocalData, setAllLineItemsLocalDataIsUpdateAllChecked, setAllLineItemsToCategoryClassInLocalData, setIsVendorUpdateAllChecked, toggleSplitEditMode, updateLatestSelectedEntity, updateLocalDataWithTransactionsUpdateWithVendorCheckbox, updateSelectedCustomer, updateSelectedVendor, updateTransactionDetail, updateVendorBulkRecommendationsFetchStatus, updateVendorToAllLineItems, uploadMissingAttachmentSuccess } from './view/transactionDetail/transactionDetailReducer';
653
+ import { addCreateTransactionLine, addSplitLine, clearRecommendationsForCreateTransactionLines, clearTransactionDetailSaveStatus, createTransaction, createTransactionAttachmentUploadFailure, createTransactionSuccessOrFailure, deleteSplitLine, deleteTransactionAttachment, downloadAccountingProviderAttachment, downloadAccountingProviderAttachmentFailure, downloadAccountingProviderAttachmentSuccess, fetchTransactionDetail, fetchVendorRecommendationsForCreateTransaction, initializeCreateTransactionLocalData, initializeTransactionDetailLocalData, markCategoryClassRecommendationsFailureForTransactionDetail, removeCreateTransactionLine, removeEntityRecommendationForLineIdForTransactionDetail, resetAllLineItemsToVendor, resetCreateTransactionLocalData, resetLineItemsCategoryClassInLocalData, resetSelectedCustomer, resetVendor, saveTransactionDetail, saveTransactionDetailLocalData, setAllLineItemsLocalDataIsUpdateAllChecked, setAllLineItemsToCategoryClassInLocalData, setIsVendorUpdateAllChecked, setRecommendationsForCreateTransactionLines, toggleSplitEditMode, updateCreateTransactionLineLocalData, updateCreateTransactionLocalData, updateLatestSelectedEntity, updateLocalDataWithTransactionsUpdateWithVendorCheckbox, updateSelectedCustomer, updateSelectedVendor, updateTransactionDetail, updateVendorBulkRecommendationsFetchStatus, updateVendorToAllLineItems, uploadMissingAttachmentSuccess } from './view/transactionDetail/transactionDetailReducer';
651
654
  import { TransactionDetailReport, VendorDetailsView, getInitialUpdatablePeriodsForTransactionRecommendations, getTransactionDetail, getTransactionDetailForTransaction } from './view/transactionDetail/transactionDetailSelector';
652
655
  import { TransactionUpdates, getThirdPartyIdFromTransactionId } from './view/transactionDetail/transactionDetailState';
653
656
  import { TransactionDetailLineItemData, TransactionDetailLocalData, TransactionVendorUpdates } from './view/transactionDetail/transactionDetailTypes';
@@ -814,7 +817,7 @@ export { MatchedTransaction };
814
817
  export { SupportedTransaction, SupportedTransactionWithCOT, SupportedTransactionPayload, getScheduleTransactionById, getSupportedTransactionById, };
815
818
  export { updateLatestTransactionId, parallelFetchAccountTransactionList, parallelFetchEntityTransactionList, fetchAccountTransactionList, updateTransactionListByAccount, updateTransactionListByAccountFailure, updateTransactionListByAccountUIState, parallelFetchClassTransactionList, updateTransactionListByClassUIState, updateTransactionListByClass, parallelFetchProjectTransactionList, updateTransactionListByProjectUIState, updateTransactionListByProject, updateTransactionListUIStateByCategoryType, parallelFetchTransactionListByCategoryType, };
816
819
  export { TransactionListByAccountReport, getTransactionListByAccount, getTransactionListUIStateByAccountKey, };
817
- export { fetchEntityTransactionList, updateTransactionListByEntity, saveTransactionDetailLocalData, clearTransactionDetailSaveStatus, updateTransactionListByEntityFailure, resetLineItemsCategoryClassInLocalData, setAllLineItemsToCategoryClassInLocalData, saveTransactionDetail, setAllLineItemsLocalDataIsUpdateAllChecked, initializeTransactionDetailLocalData, markCategoryClassRecommendationsFailureForTransactionDetail, removeEntityRecommendationForLineIdForTransactionDetail, updateSelectedVendor, updateSelectedCustomer, resetSelectedCustomer, resetVendor, updateLocalDataWithTransactionsUpdateWithVendorCheckbox, updateVendorToAllLineItems, resetAllLineItemsToVendor, updateLatestSelectedEntity, updateVendorBulkRecommendationsFetchStatus, setIsVendorUpdateAllChecked, addSplitLine, deleteSplitLine, toggleSplitEditMode, };
820
+ export { ALL_CREATABLE_TRANSACTION_TYPES, initializeCreateTransactionLocalData, updateCreateTransactionLocalData, updateCreateTransactionLineLocalData, addCreateTransactionLine, removeCreateTransactionLine, resetCreateTransactionLocalData, createTransaction, createTransactionAttachmentUploadFailure, createTransactionSuccessOrFailure, fetchVendorRecommendationsForCreateTransaction, setRecommendationsForCreateTransactionLines, clearRecommendationsForCreateTransactionLines, getCreateTransactionView, getCreateTransactionLocalData, getCreateTransactionStatus, getCreateTransactionVendorRecommendations, prepareCreateTransactionPayload, fetchEntityTransactionList, updateTransactionListByEntity, saveTransactionDetailLocalData, clearTransactionDetailSaveStatus, updateTransactionListByEntityFailure, resetLineItemsCategoryClassInLocalData, setAllLineItemsToCategoryClassInLocalData, saveTransactionDetail, setAllLineItemsLocalDataIsUpdateAllChecked, initializeTransactionDetailLocalData, markCategoryClassRecommendationsFailureForTransactionDetail, removeEntityRecommendationForLineIdForTransactionDetail, updateSelectedVendor, updateSelectedCustomer, resetSelectedCustomer, resetVendor, updateLocalDataWithTransactionsUpdateWithVendorCheckbox, updateVendorToAllLineItems, resetAllLineItemsToVendor, updateLatestSelectedEntity, updateVendorBulkRecommendationsFetchStatus, setIsVendorUpdateAllChecked, addSplitLine, deleteSplitLine, toggleSplitEditMode, };
818
821
  export { TransactionUpdates, downloadAccountingProviderAttachment, downloadAccountingProviderAttachmentSuccess, downloadAccountingProviderAttachmentFailure, fetchTransactionDetail, updateTransactionDetail, uploadMissingAttachmentSuccess, deleteTransactionAttachment, getThirdPartyIdFromTransactionId, };
819
822
  export { TransactionListByEntityView, getTransactionListByEntity };
820
823
  export { TransactionListByClassReport, getTransactionListByClass, getTransactionListUIStateByClassKey, TransactionListByProjectReport, getTransactionListByProject, getTransactionListUIStateByProjectKey, getTransactionListByEntityForSinglePeriod, };
@@ -914,6 +917,7 @@ export { CustomerSatisfactionInfo };
914
917
  export { fetchCompanyOnboardingView, fetchQBOConnectionPool, updateQBOConnectionPoolExternalConnection, fetchOnboardingCompletedCompanies, saveOnboardingCustomerCompletedStatus, ProductType, ProductGroupType, toProductType, toProductTypeStrict, ProductInfo, getOnboardingCockpitView, getNewOnboardingCustomerView, getOnboardingEmailGroup, initializeOnboardingCustomerViewUpdateData, clearOnboardingCustomerViewUpdateData, saveOnboardingCustomerViewUpdateData, updateOnboardingCustomerListUIState, updateCustomerCreationStatus, updateStatusAfterOnboardingCompleted, saveOnboardingCustomerViewUpdates, saveOnboardingCustomerNotes, saveOnboardingCustomerDataInLocalStore, updateOnboardingCustomerDataInLocalStore, NewOnboardingCustomer, OnboardingCustomer, OnboardingCockpitView, NewOnboardingCustomerView, NewOnboardingCustomerLocalData, OnboardingCustomerCompletedStatus, OnboardingCustomerListUIState, QBOConnectionPool, CustomerCreationStatus, OnboardingCompanyDetails, resetNewOnboardedCustomerId, sendOnboardingCustomerViewInvite, retryBankAccountConnectionForOnboarding, };
915
918
  export { TransactionListByCategoryType, getTransactionsListByCategoryType, getTransactionListUIStateByCategoryType, TransactionCategoryType, };
916
919
  export { TransactionDetailLocalData, TransactionDetailLineItemData, TransactionVendorUpdates, };
920
+ export { CreatableTransactionType, CreateTransactionLocalData, CreateTransactionLineLocalData, CreateTransactionView, CreateTransactionRequest, RemitToAddress, };
917
921
  export { getChangedLineItemCountFromLocalData, isAccountUncategorized };
918
922
  export { JOURNAL_ENTRY_SORT_KEYS, filterJournalEntryLinesExcludingLinked, journalEntryDefaultSortConfig, journalEntryTotalsByPostingSide, journalEntrySplitReconciliation, sortJournalEntryLines, sumJournalEntryAmounts, toJournalEntrySortKey, };
919
923
  export type { JournalEntryRowSortConfig, JournalEntrySortAccessors, JournalEntrySortKey, };