@zeniai/client-epic-state 5.0.95 → 5.0.96
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.
- package/lib/common/aiCfo/aiCfoSuggestedQuestionsPageContext.d.ts +1 -1
- package/lib/entity/aiCfo/aiCfoPayload.d.ts +5 -63
- package/lib/entity/aiCfo/aiCfoReducer.d.ts +2 -23
- package/lib/entity/aiCfo/aiCfoReducer.js +9 -249
- package/lib/entity/aiCfo/aiCfoSelector.d.ts +1 -4
- package/lib/entity/aiCfo/aiCfoSelector.js +1 -19
- package/lib/entity/aiCfo/aiCfoState.d.ts +4 -97
- package/lib/entity/aiCfo/aiCfoState.js +1 -18
- package/lib/entity/jeSchedules/jeSchedulesPayload.d.ts +0 -1
- package/lib/entity/jeSchedules/jeSchedulesPayload.js +0 -7
- package/lib/entity/jeSchedules/jeSchedulesState.d.ts +0 -2
- package/lib/entity/jeSchedules/jeSchedulesTypes.d.ts +1 -1
- package/lib/entity/monthEndCloseChecks/monthEndCloseChecksState.d.ts +1 -1
- package/lib/entity/snackbar/snackbarTypes.d.ts +1 -1
- package/lib/entity/snackbar/snackbarTypes.js +0 -3
- package/lib/entity/task/taskPayload.d.ts +1 -3
- package/lib/entity/task/taskPayload.js +0 -2
- package/lib/entity/task/taskState.d.ts +0 -2
- package/lib/entity/tenant/clearAllEpic.d.ts +2 -6
- package/lib/entity/tenant/clearAllEpic.js +0 -8
- package/lib/epic.d.ts +3 -18
- package/lib/epic.js +3 -18
- package/lib/esm/entity/aiCfo/aiCfoReducer.js +9 -249
- package/lib/esm/entity/aiCfo/aiCfoSelector.js +1 -17
- package/lib/esm/entity/aiCfo/aiCfoState.js +0 -15
- package/lib/esm/entity/jeSchedules/jeSchedulesPayload.js +0 -7
- package/lib/esm/entity/snackbar/snackbarTypes.js +0 -3
- package/lib/esm/entity/task/taskPayload.js +0 -2
- package/lib/esm/entity/tenant/clearAllEpic.js +0 -8
- package/lib/esm/epic.js +3 -18
- package/lib/esm/index.js +10 -40
- package/lib/esm/reducer.js +0 -12
- package/lib/esm/view/aiCfoView/aiCfoViewReducer.js +3 -6
- package/lib/esm/view/aiCfoView/epics/createSessionAndSubmitEpic.js +2 -5
- package/lib/esm/view/aiCfoView/epics/createSessionEpic.js +1 -2
- package/lib/esm/view/aiCfoView/epics/fetchSuggestedQuestionsEpic.js +2 -12
- package/lib/esm/view/companyTaskManagerView/companyTaskManagerViewReducer.js +11 -39
- package/lib/esm/view/companyTaskManagerView/companyTaskManagerViewSelector.js +4 -14
- package/lib/esm/view/companyTaskManagerView/epics/fetchCompanyTaskManagerViewEpic.js +28 -37
- package/lib/esm/view/companyView/epic/fetchAllCockpitViewsEpic.js +2 -2
- package/lib/esm/view/spendManagement/chargeCards/chargeCardList/chargeCardListSelector.js +0 -25
- package/lib/esm/view/spendManagement/chargeCards/issueChargeCard/issueChargeCardEpic.js +2 -2
- package/lib/esm/view/spendManagement/chargeCards/issueChargeCard/issueChargeCardReducer.js +4 -42
- package/lib/esm/view/spendManagement/chargeCards/issueChargeCard/issueChargeCardSelector.js +0 -35
- package/lib/index.d.ts +12 -47
- package/lib/index.js +22 -193
- package/lib/reducer.d.ts +0 -12
- package/lib/reducer.js +0 -12
- package/lib/view/aiCfoView/aiCfoViewReducer.d.ts +2 -11
- package/lib/view/aiCfoView/aiCfoViewReducer.js +3 -6
- package/lib/view/aiCfoView/epics/createSessionAndSubmitEpic.js +2 -5
- package/lib/view/aiCfoView/epics/createSessionEpic.js +1 -2
- package/lib/view/aiCfoView/epics/fetchSuggestedQuestionsEpic.d.ts +1 -8
- package/lib/view/aiCfoView/epics/fetchSuggestedQuestionsEpic.js +2 -12
- package/lib/view/companyTaskManagerView/companyTaskManagerViewPayload.d.ts +11 -19
- package/lib/view/companyTaskManagerView/companyTaskManagerViewReducer.d.ts +4 -10
- package/lib/view/companyTaskManagerView/companyTaskManagerViewReducer.js +12 -40
- package/lib/view/companyTaskManagerView/companyTaskManagerViewSelector.d.ts +0 -2
- package/lib/view/companyTaskManagerView/companyTaskManagerViewSelector.js +3 -13
- package/lib/view/companyTaskManagerView/companyTaskManagerViewState.d.ts +3 -11
- package/lib/view/companyTaskManagerView/epics/fetchCompanyTaskManagerViewEpic.d.ts +3 -1
- package/lib/view/companyTaskManagerView/epics/fetchCompanyTaskManagerViewEpic.js +28 -37
- package/lib/view/companyView/epic/fetchAllCockpitViewsEpic.js +2 -2
- package/lib/view/companyView/types/cockpitTypes.d.ts +1 -2
- package/lib/view/expenseAutomationView/helpers/transactionCategorizationLocalDataHelper.d.ts +1 -1
- package/lib/view/expenseAutomationView/types/reconciliationViewState.d.ts +1 -1
- package/lib/view/people/peopleTypes.d.ts +1 -1
- package/lib/view/scheduleView/scheduleListView/scheduleListTypes.d.ts +1 -1
- package/lib/view/spendManagement/chargeCards/chargeCardList/chargeCardList.d.ts +1 -1
- package/lib/view/spendManagement/chargeCards/chargeCardList/chargeCardListSelector.d.ts +0 -14
- package/lib/view/spendManagement/chargeCards/chargeCardList/chargeCardListSelector.js +1 -27
- package/lib/view/spendManagement/chargeCards/issueChargeCard/issueChargeCardEpic.d.ts +2 -2
- package/lib/view/spendManagement/chargeCards/issueChargeCard/issueChargeCardEpic.js +1 -1
- package/lib/view/spendManagement/chargeCards/issueChargeCard/issueChargeCardReducer.d.ts +2 -12
- package/lib/view/spendManagement/chargeCards/issueChargeCard/issueChargeCardReducer.js +5 -43
- package/lib/view/spendManagement/chargeCards/issueChargeCard/issueChargeCardSelector.d.ts +0 -7
- package/lib/view/spendManagement/chargeCards/issueChargeCard/issueChargeCardSelector.js +1 -42
- package/lib/view/spendManagement/chargeCards/issueChargeCard/issueChargeCardState.d.ts +0 -5
- package/lib/view/taskManager/taskListView/taskListReducer.d.ts +1 -1
- package/lib/view/transactionDetail/journalEntryLinesViewModel.d.ts +1 -1
- package/package.json +1 -1
- package/lib/entity/cardPolicy/cardPolicyPayload.d.ts +0 -277
- package/lib/entity/cardPolicy/cardPolicyPayload.js +0 -143
- package/lib/entity/cardPolicy/cardPolicyReducer.d.ts +0 -19
- package/lib/entity/cardPolicy/cardPolicyReducer.js +0 -175
- package/lib/entity/cardPolicy/cardPolicySelector.d.ts +0 -32
- package/lib/entity/cardPolicy/cardPolicySelector.js +0 -99
- package/lib/entity/cardPolicy/cardPolicyState.d.ts +0 -205
- package/lib/entity/cardPolicy/cardPolicyState.js +0 -14
- package/lib/entity/cardPolicy/extractPolicyDocumentEpic.d.ts +0 -18
- package/lib/entity/cardPolicy/extractPolicyDocumentEpic.js +0 -68
- package/lib/entity/cardPolicy/fetchCardPolicyVendorOptionsEpic.d.ts +0 -26
- package/lib/entity/cardPolicy/fetchCardPolicyVendorOptionsEpic.js +0 -47
- package/lib/entity/cardPolicy/policyDocumentExtractionToRecommendationBridgeEpic.d.ts +0 -25
- package/lib/entity/cardPolicy/policyDocumentExtractionToRecommendationBridgeEpic.js +0 -39
- package/lib/entity/cardPolicy/policyRecommendationFromUploadEpic.d.ts +0 -24
- package/lib/entity/cardPolicy/policyRecommendationFromUploadEpic.js +0 -105
- package/lib/esm/entity/cardPolicy/cardPolicyPayload.js +0 -130
- package/lib/esm/entity/cardPolicy/cardPolicyReducer.js +0 -171
- package/lib/esm/entity/cardPolicy/cardPolicySelector.js +0 -75
- package/lib/esm/entity/cardPolicy/cardPolicyState.js +0 -9
- package/lib/esm/entity/cardPolicy/extractPolicyDocumentEpic.js +0 -64
- package/lib/esm/entity/cardPolicy/fetchCardPolicyVendorOptionsEpic.js +0 -43
- package/lib/esm/entity/cardPolicy/policyDocumentExtractionToRecommendationBridgeEpic.js +0 -35
- package/lib/esm/entity/cardPolicy/policyRecommendationFromUploadEpic.js +0 -101
- package/lib/esm/view/companyTaskManagerView/epics/fetchCockpitContextEpic.js +0 -38
- package/lib/esm/view/companyTaskManagerView/epics/updateCompanyTaskManagerViewFiltersEpic.js +0 -16
- package/lib/esm/view/spendManagement/chargeCards/cardPolicy/cardPolicyDetail/cardPolicyDetailReducer.js +0 -52
- package/lib/esm/view/spendManagement/chargeCards/cardPolicy/cardPolicyDetail/cardPolicyDetailSelector.js +0 -22
- package/lib/esm/view/spendManagement/chargeCards/cardPolicy/cardPolicyDetail/cardPolicyDetailState.js +0 -1
- package/lib/esm/view/spendManagement/chargeCards/cardPolicy/cardPolicyDetail/fetchCardPolicyDetailEpic.js +0 -36
- package/lib/esm/view/spendManagement/chargeCards/cardPolicy/cardPolicyDetail/updateCardPolicyEpic.js +0 -39
- package/lib/esm/view/spendManagement/chargeCards/cardPolicy/cardPolicyList/archiveCardPolicyEpic.js +0 -34
- package/lib/esm/view/spendManagement/chargeCards/cardPolicy/cardPolicyList/cardPolicyListReducer.js +0 -58
- package/lib/esm/view/spendManagement/chargeCards/cardPolicy/cardPolicyList/cardPolicyListSelector.js +0 -21
- package/lib/esm/view/spendManagement/chargeCards/cardPolicy/cardPolicyList/cardPolicyListState.js +0 -1
- package/lib/esm/view/spendManagement/chargeCards/cardPolicy/cardPolicyList/fetchCardPolicyListEpic.js +0 -38
- package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/applyAiCardPolicyFormDraftUpdate.js +0 -289
- package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/applyExtractedPolicyToAiCardPolicyDraft.js +0 -109
- package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/applyExtractedPolicyToDraftEpic.js +0 -44
- package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/applyExtractedPolicyToManualCardPolicyDraft.js +0 -111
- package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/applyUploadPlanToAiCardPolicyDraft.js +0 -25
- package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/buildAiCardPolicyFormDraftSeed.js +0 -363
- package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/buildManualCardPolicyFormDraftSeed.js +0 -36
- package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/cardPolicyChipIds.js +0 -19
- package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/cardPolicyFormDraftTypes.js +0 -6
- package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/cardPolicyRequestParts.js +0 -119
- package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/createCardPolicyReducer.js +0 -154
- package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/createCardPolicySelector.js +0 -22
- package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/createCardPolicyState.js +0 -1
- package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/createCardPolicyTemplateEpic.js +0 -39
- package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/deriveAiPolicyReviewRowsFromInputs.js +0 -140
- package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/fetchCardPolicyMccCategoriesEpic.js +0 -20
- package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/seedAiCardPolicyFormDraftEpic.js +0 -100
- package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/toBulkCardPolicyTemplateRequestsFromDraft.js +0 -96
- package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/toCardPolicyTemplateRequestFromDraft.js +0 -59
- package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/toManualCardPolicyTemplateRequestFromDraft.js +0 -24
- package/lib/esm/view/spendManagement/chargeCards/issueChargeCard/aiCardCreationFormDraftTypes.js +0 -1
- package/lib/esm/view/spendManagement/chargeCards/issueChargeCard/applyAiCardCreationFormDraftUpdate.js +0 -34
- package/lib/esm/view/spendManagement/chargeCards/issueChargeCard/buildAiCardCreationFormDraftSeed.js +0 -57
- package/lib/esm/view/spendManagement/chargeCards/issueChargeCard/deriveAiCardRowsFromTeams.js +0 -35
- package/lib/esm/view/spendManagement/chargeCards/issueChargeCard/seedAiCardCreationFormDraftEpic.js +0 -62
- package/lib/esm/view/spendManagement/chargeCards/issueChargeCard/toIssueChargeCardLocalDataFromDraft.js +0 -44
- package/lib/view/companyTaskManagerView/epics/fetchCockpitContextEpic.d.ts +0 -10
- package/lib/view/companyTaskManagerView/epics/fetchCockpitContextEpic.js +0 -42
- package/lib/view/companyTaskManagerView/epics/updateCompanyTaskManagerViewFiltersEpic.d.ts +0 -6
- package/lib/view/companyTaskManagerView/epics/updateCompanyTaskManagerViewFiltersEpic.js +0 -20
- package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyDetail/cardPolicyDetailReducer.d.ts +0 -14
- package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyDetail/cardPolicyDetailReducer.js +0 -56
- package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyDetail/cardPolicyDetailSelector.d.ts +0 -15
- package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyDetail/cardPolicyDetailSelector.js +0 -28
- package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyDetail/cardPolicyDetailState.d.ts +0 -8
- package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyDetail/cardPolicyDetailState.js +0 -2
- package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyDetail/fetchCardPolicyDetailEpic.d.ts +0 -8
- package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyDetail/fetchCardPolicyDetailEpic.js +0 -40
- package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyDetail/updateCardPolicyEpic.d.ts +0 -8
- package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyDetail/updateCardPolicyEpic.js +0 -43
- package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyList/archiveCardPolicyEpic.d.ts +0 -8
- package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyList/archiveCardPolicyEpic.js +0 -38
- package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyList/cardPolicyListReducer.d.ts +0 -15
- package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyList/cardPolicyListReducer.js +0 -62
- package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyList/cardPolicyListSelector.d.ts +0 -15
- package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyList/cardPolicyListSelector.js +0 -27
- package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyList/cardPolicyListState.d.ts +0 -7
- package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyList/cardPolicyListState.js +0 -2
- package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyList/fetchCardPolicyListEpic.d.ts +0 -8
- package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyList/fetchCardPolicyListEpic.js +0 -42
- package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/applyAiCardPolicyFormDraftUpdate.d.ts +0 -8
- package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/applyAiCardPolicyFormDraftUpdate.js +0 -294
- package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/applyExtractedPolicyToAiCardPolicyDraft.d.ts +0 -8
- package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/applyExtractedPolicyToAiCardPolicyDraft.js +0 -113
- package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/applyExtractedPolicyToDraftEpic.d.ts +0 -9
- package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/applyExtractedPolicyToDraftEpic.js +0 -48
- package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/applyExtractedPolicyToManualCardPolicyDraft.d.ts +0 -8
- package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/applyExtractedPolicyToManualCardPolicyDraft.js +0 -115
- package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/applyUploadPlanToAiCardPolicyDraft.d.ts +0 -13
- package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/applyUploadPlanToAiCardPolicyDraft.js +0 -29
- package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/buildAiCardPolicyFormDraftSeed.d.ts +0 -14
- package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/buildAiCardPolicyFormDraftSeed.js +0 -369
- package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/buildManualCardPolicyFormDraftSeed.d.ts +0 -6
- package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/buildManualCardPolicyFormDraftSeed.js +0 -40
- package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/cardPolicyChipIds.d.ts +0 -7
- package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/cardPolicyChipIds.js +0 -26
- package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/cardPolicyFormDraftTypes.d.ts +0 -116
- package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/cardPolicyFormDraftTypes.js +0 -10
- package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/cardPolicyRequestParts.d.ts +0 -33
- package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/cardPolicyRequestParts.js +0 -126
- package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/createCardPolicyReducer.d.ts +0 -52
- package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/createCardPolicyReducer.js +0 -158
- package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/createCardPolicySelector.d.ts +0 -11
- package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/createCardPolicySelector.js +0 -31
- package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/createCardPolicyState.d.ts +0 -12
- package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/createCardPolicyState.js +0 -2
- package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/createCardPolicyTemplateEpic.d.ts +0 -8
- package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/createCardPolicyTemplateEpic.js +0 -43
- package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/deriveAiPolicyReviewRowsFromInputs.d.ts +0 -10
- package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/deriveAiPolicyReviewRowsFromInputs.js +0 -144
- package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/fetchCardPolicyMccCategoriesEpic.d.ts +0 -7
- package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/fetchCardPolicyMccCategoriesEpic.js +0 -24
- package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/seedAiCardPolicyFormDraftEpic.d.ts +0 -11
- package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/seedAiCardPolicyFormDraftEpic.js +0 -104
- package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/toBulkCardPolicyTemplateRequestsFromDraft.d.ts +0 -22
- package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/toBulkCardPolicyTemplateRequestsFromDraft.js +0 -100
- package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/toCardPolicyTemplateRequestFromDraft.d.ts +0 -8
- package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/toCardPolicyTemplateRequestFromDraft.js +0 -63
- package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/toManualCardPolicyTemplateRequestFromDraft.d.ts +0 -3
- package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/toManualCardPolicyTemplateRequestFromDraft.js +0 -28
- package/lib/view/spendManagement/chargeCards/issueChargeCard/aiCardCreationFormDraftTypes.d.ts +0 -34
- package/lib/view/spendManagement/chargeCards/issueChargeCard/aiCardCreationFormDraftTypes.js +0 -2
- package/lib/view/spendManagement/chargeCards/issueChargeCard/applyAiCardCreationFormDraftUpdate.d.ts +0 -7
- package/lib/view/spendManagement/chargeCards/issueChargeCard/applyAiCardCreationFormDraftUpdate.js +0 -38
- package/lib/view/spendManagement/chargeCards/issueChargeCard/buildAiCardCreationFormDraftSeed.d.ts +0 -12
- package/lib/view/spendManagement/chargeCards/issueChargeCard/buildAiCardCreationFormDraftSeed.js +0 -61
- package/lib/view/spendManagement/chargeCards/issueChargeCard/deriveAiCardRowsFromTeams.d.ts +0 -9
- package/lib/view/spendManagement/chargeCards/issueChargeCard/deriveAiCardRowsFromTeams.js +0 -39
- package/lib/view/spendManagement/chargeCards/issueChargeCard/seedAiCardCreationFormDraftEpic.d.ts +0 -11
- package/lib/view/spendManagement/chargeCards/issueChargeCard/seedAiCardCreationFormDraftEpic.js +0 -66
- package/lib/view/spendManagement/chargeCards/issueChargeCard/toIssueChargeCardLocalDataFromDraft.d.ts +0 -3
- package/lib/view/spendManagement/chargeCards/issueChargeCard/toIssueChargeCardLocalDataFromDraft.js +0 -48
package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyList/cardPolicyListReducer.js
DELETED
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var _a;
|
|
3
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
-
exports.clearCardPolicyList = exports.updateArchiveCardPolicyFetchStatus = exports.archiveCardPolicy = exports.updateCardPolicyListFetchStatus = exports.fetchCardPolicyList = exports.initialState = void 0;
|
|
5
|
-
const toolkit_1 = require("@reduxjs/toolkit");
|
|
6
|
-
exports.initialState = {
|
|
7
|
-
templateIds: [],
|
|
8
|
-
fetchState: {
|
|
9
|
-
fetchState: 'Not-Started',
|
|
10
|
-
error: undefined,
|
|
11
|
-
},
|
|
12
|
-
archiveFetchState: {
|
|
13
|
-
fetchState: 'Not-Started',
|
|
14
|
-
error: undefined,
|
|
15
|
-
},
|
|
16
|
-
archiveTargetTemplateId: undefined,
|
|
17
|
-
};
|
|
18
|
-
const cardPolicyList = (0, toolkit_1.createSlice)({
|
|
19
|
-
name: 'cardPolicyList',
|
|
20
|
-
initialState: exports.initialState,
|
|
21
|
-
reducers: {
|
|
22
|
-
fetchCardPolicyList(draft) {
|
|
23
|
-
draft.fetchState.fetchState = 'In-Progress';
|
|
24
|
-
draft.fetchState.error = undefined;
|
|
25
|
-
},
|
|
26
|
-
updateCardPolicyListFetchStatus(draft, action) {
|
|
27
|
-
draft.fetchState.fetchState = action.payload.fetchState;
|
|
28
|
-
draft.fetchState.error = action.payload.error;
|
|
29
|
-
if (action.payload.templateIds != null) {
|
|
30
|
-
draft.templateIds = action.payload.templateIds;
|
|
31
|
-
}
|
|
32
|
-
},
|
|
33
|
-
archiveCardPolicy: {
|
|
34
|
-
reducer(draft, action) {
|
|
35
|
-
draft.archiveFetchState.fetchState = 'In-Progress';
|
|
36
|
-
draft.archiveFetchState.error = undefined;
|
|
37
|
-
draft.archiveTargetTemplateId = action.payload;
|
|
38
|
-
},
|
|
39
|
-
prepare(templateId) {
|
|
40
|
-
return { payload: templateId };
|
|
41
|
-
},
|
|
42
|
-
},
|
|
43
|
-
updateArchiveCardPolicyFetchStatus(draft, action) {
|
|
44
|
-
draft.archiveFetchState.fetchState = action.payload.fetchState;
|
|
45
|
-
draft.archiveFetchState.error = action.payload.error;
|
|
46
|
-
if (action.payload.fetchState === 'Completed') {
|
|
47
|
-
if (action.payload.templateId != null) {
|
|
48
|
-
draft.templateIds = draft.templateIds.filter((id) => id !== action.payload.templateId);
|
|
49
|
-
}
|
|
50
|
-
draft.archiveTargetTemplateId = undefined;
|
|
51
|
-
}
|
|
52
|
-
else if (action.payload.fetchState === 'Error') {
|
|
53
|
-
draft.archiveTargetTemplateId = undefined;
|
|
54
|
-
}
|
|
55
|
-
},
|
|
56
|
-
clearCardPolicyList(draft) {
|
|
57
|
-
Object.assign(draft, exports.initialState);
|
|
58
|
-
},
|
|
59
|
-
},
|
|
60
|
-
});
|
|
61
|
-
_a = cardPolicyList.actions, exports.fetchCardPolicyList = _a.fetchCardPolicyList, exports.updateCardPolicyListFetchStatus = _a.updateCardPolicyListFetchStatus, exports.archiveCardPolicy = _a.archiveCardPolicy, exports.updateArchiveCardPolicyFetchStatus = _a.updateArchiveCardPolicyFetchStatus, exports.clearCardPolicyList = _a.clearCardPolicyList;
|
|
62
|
-
exports.default = cardPolicyList.reducer;
|
package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyList/cardPolicyListSelector.d.ts
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { FetchStateAndError, ID } from '../../../../../commonStateTypes/common';
|
|
2
|
-
import { CardPolicyStats, CardPolicyTemplate } from '../../../../../entity/cardPolicy/cardPolicyState';
|
|
3
|
-
import { RootState } from '../../../../../reducer';
|
|
4
|
-
export interface CardPolicyListSelectorView {
|
|
5
|
-
archiveFetchState: FetchStateAndError;
|
|
6
|
-
fetchState: FetchStateAndError;
|
|
7
|
-
templateIds: ID[];
|
|
8
|
-
templates: CardPolicyTemplate[];
|
|
9
|
-
archiveTargetTemplateId?: ID;
|
|
10
|
-
stats?: CardPolicyStats;
|
|
11
|
-
}
|
|
12
|
-
export declare function getCardPolicyListView(state: RootState): CardPolicyListSelectorView;
|
|
13
|
-
export declare function getCardPolicyListFetchState(state: RootState): FetchStateAndError;
|
|
14
|
-
export declare function getArchiveCardPolicyFetchState(state: RootState): FetchStateAndError;
|
|
15
|
-
export declare function getCardPolicyTemplateIds(state: RootState): ID[];
|
package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyList/cardPolicyListSelector.js
DELETED
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getCardPolicyListView = getCardPolicyListView;
|
|
4
|
-
exports.getCardPolicyListFetchState = getCardPolicyListFetchState;
|
|
5
|
-
exports.getArchiveCardPolicyFetchState = getArchiveCardPolicyFetchState;
|
|
6
|
-
exports.getCardPolicyTemplateIds = getCardPolicyTemplateIds;
|
|
7
|
-
const cardPolicySelector_1 = require("../../../../../entity/cardPolicy/cardPolicySelector");
|
|
8
|
-
function getCardPolicyListView(state) {
|
|
9
|
-
const { cardPolicyListState, cardPolicyState } = state;
|
|
10
|
-
return {
|
|
11
|
-
templates: (0, cardPolicySelector_1.getCardPolicyTemplatesByIds)(cardPolicyState, cardPolicyListState.templateIds),
|
|
12
|
-
templateIds: cardPolicyListState.templateIds,
|
|
13
|
-
fetchState: cardPolicyListState.fetchState,
|
|
14
|
-
archiveFetchState: cardPolicyListState.archiveFetchState,
|
|
15
|
-
archiveTargetTemplateId: cardPolicyListState.archiveTargetTemplateId,
|
|
16
|
-
stats: (0, cardPolicySelector_1.getCardPolicyStats)(cardPolicyState),
|
|
17
|
-
};
|
|
18
|
-
}
|
|
19
|
-
function getCardPolicyListFetchState(state) {
|
|
20
|
-
return state.cardPolicyListState.fetchState;
|
|
21
|
-
}
|
|
22
|
-
function getArchiveCardPolicyFetchState(state) {
|
|
23
|
-
return state.cardPolicyListState.archiveFetchState;
|
|
24
|
-
}
|
|
25
|
-
function getCardPolicyTemplateIds(state) {
|
|
26
|
-
return state.cardPolicyListState.templateIds;
|
|
27
|
-
}
|
package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyList/fetchCardPolicyListEpic.d.ts
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { ActionsObservable, StateObservable } from 'redux-observable';
|
|
2
|
-
import { Observable } from 'rxjs';
|
|
3
|
-
import { updateCardPolicyStats, updateCardPolicyTemplates } from '../../../../../entity/cardPolicy/cardPolicyReducer';
|
|
4
|
-
import { RootState } from '../../../../../reducer';
|
|
5
|
-
import { ZeniAPI } from '../../../../../zeniAPI';
|
|
6
|
-
import { fetchCardPolicyList, updateCardPolicyListFetchStatus } from './cardPolicyListReducer';
|
|
7
|
-
export type ActionType = ReturnType<typeof fetchCardPolicyList> | ReturnType<typeof updateCardPolicyTemplates> | ReturnType<typeof updateCardPolicyStats> | ReturnType<typeof updateCardPolicyListFetchStatus>;
|
|
8
|
-
export declare const fetchCardPolicyListEpic: (actions$: ActionsObservable<ActionType>, _state$: StateObservable<RootState>, zeniAPI: ZeniAPI) => Observable<ActionType>;
|
package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyList/fetchCardPolicyListEpic.js
DELETED
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.fetchCardPolicyListEpic = void 0;
|
|
4
|
-
const rxjs_1 = require("rxjs");
|
|
5
|
-
const operators_1 = require("rxjs/operators");
|
|
6
|
-
const cardPolicyPayload_1 = require("../../../../../entity/cardPolicy/cardPolicyPayload");
|
|
7
|
-
const cardPolicyReducer_1 = require("../../../../../entity/cardPolicy/cardPolicyReducer");
|
|
8
|
-
const responsePayload_1 = require("../../../../../responsePayload");
|
|
9
|
-
const cardPolicyListReducer_1 = require("./cardPolicyListReducer");
|
|
10
|
-
const fetchCardPolicyListEpic = (actions$, _state$, zeniAPI) => actions$.pipe((0, operators_1.filter)(cardPolicyListReducer_1.fetchCardPolicyList.match),
|
|
11
|
-
// `exhaustMap` drops React 18 StrictMode's duplicate mount dispatch instead of
|
|
12
|
-
// emitting a second `/policy-templates` call.
|
|
13
|
-
(0, operators_1.exhaustMap)(() => {
|
|
14
|
-
return zeniAPI
|
|
15
|
-
.getJSON(`${zeniAPI.apiEndPoints.cardMicroServiceBaseUrl}/1.0/policy-templates`)
|
|
16
|
-
.pipe((0, operators_1.mergeMap)((response) => {
|
|
17
|
-
if ((0, responsePayload_1.isSuccessStatus)(response) && response.data != null) {
|
|
18
|
-
const templates = (0, cardPolicyPayload_1.toCardPolicyTemplateList)(response.data);
|
|
19
|
-
const stats = (0, cardPolicyPayload_1.toCardPolicyStats)(response.data.stats);
|
|
20
|
-
const actions = [
|
|
21
|
-
(0, cardPolicyReducer_1.updateCardPolicyTemplates)(templates),
|
|
22
|
-
(0, cardPolicyReducer_1.updateCardPolicyStats)(stats),
|
|
23
|
-
(0, cardPolicyListReducer_1.updateCardPolicyListFetchStatus)({
|
|
24
|
-
fetchState: 'Completed',
|
|
25
|
-
templateIds: templates.map((t) => t.templateId),
|
|
26
|
-
}),
|
|
27
|
-
];
|
|
28
|
-
return (0, rxjs_1.from)(actions);
|
|
29
|
-
}
|
|
30
|
-
else {
|
|
31
|
-
return (0, rxjs_1.of)((0, cardPolicyListReducer_1.updateCardPolicyListFetchStatus)({
|
|
32
|
-
fetchState: 'Error',
|
|
33
|
-
error: response.status,
|
|
34
|
-
}));
|
|
35
|
-
}
|
|
36
|
-
}), (0, operators_1.catchError)((error) => (0, rxjs_1.of)((0, cardPolicyListReducer_1.updateCardPolicyListFetchStatus)({
|
|
37
|
-
fetchState: 'Error',
|
|
38
|
-
error: (0, responsePayload_1.createZeniAPIStatus)('Unexpected Error', 'Fetch card-policy list REST API call errored out' +
|
|
39
|
-
JSON.stringify(error)),
|
|
40
|
-
}))));
|
|
41
|
-
}));
|
|
42
|
-
exports.fetchCardPolicyListEpic = fetchCardPolicyListEpic;
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { AiCardPolicyFormDraftSeedContext, CardPolicyCardSelectionRow, CardPolicyFormDraft, CardPolicyReviewRow } from './cardPolicyFormDraftTypes';
|
|
2
|
-
export interface ApplyAiCardPolicyFormDraftUpdateArgs {
|
|
3
|
-
context: AiCardPolicyFormDraftSeedContext | undefined;
|
|
4
|
-
next: CardPolicyFormDraft;
|
|
5
|
-
prev: CardPolicyFormDraft | undefined;
|
|
6
|
-
}
|
|
7
|
-
export declare const applyAiCardPolicyFormDraftUpdate: ({ next, prev, context, }: ApplyAiCardPolicyFormDraftUpdateArgs) => CardPolicyFormDraft;
|
|
8
|
-
export declare const patchUploadReviewWithAppliedCards: (reviewRows: CardPolicyReviewRow[], cardSelections: CardPolicyCardSelectionRow[]) => CardPolicyReviewRow[];
|
|
@@ -1,294 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.patchUploadReviewWithAppliedCards = exports.applyAiCardPolicyFormDraftUpdate = void 0;
|
|
4
|
-
const deriveAiPolicyReviewRowsFromInputs_1 = require("./deriveAiPolicyReviewRowsFromInputs");
|
|
5
|
-
// Computes the next draft after a watchHandler flush, branching on policyKind:
|
|
6
|
-
// - auto: pass-through (review chip groups are canonical).
|
|
7
|
-
// - guided: bridge review chip edits back into source slices, then re-derive review.
|
|
8
|
-
// - upload: pass through user's review edits; patch "Applied to Cards" from `cardSelections`.
|
|
9
|
-
const applyAiCardPolicyFormDraftUpdate = ({ next, prev, context, }) => {
|
|
10
|
-
if (next.policyKind === 'auto') {
|
|
11
|
-
return next;
|
|
12
|
-
}
|
|
13
|
-
if (next.policyKind === 'upload') {
|
|
14
|
-
return applyUploadUpdate({ next, prev });
|
|
15
|
-
}
|
|
16
|
-
return applyGuidedUpdate({ next, prev, context });
|
|
17
|
-
};
|
|
18
|
-
exports.applyAiCardPolicyFormDraftUpdate = applyAiCardPolicyFormDraftUpdate;
|
|
19
|
-
const applyGuidedUpdate = ({ next, prev, context, }) => {
|
|
20
|
-
const bridged = bridgeGuidedPoliciesReviewToSources({ next, prev });
|
|
21
|
-
if (context == null) {
|
|
22
|
-
return bridged;
|
|
23
|
-
}
|
|
24
|
-
return {
|
|
25
|
-
...bridged,
|
|
26
|
-
policiesReview: (0, deriveAiPolicyReviewRowsFromInputs_1.deriveAiPolicyReviewRowsFromInputs)({
|
|
27
|
-
vendorPolicy: bridged.vendorPolicy,
|
|
28
|
-
categoryPolicy: bridged.categoryPolicy,
|
|
29
|
-
cardSelections: bridged.cardSelections,
|
|
30
|
-
limits: bridged.limits,
|
|
31
|
-
suggestedPoliciesSeed: context.suggestedPoliciesSeed,
|
|
32
|
-
prevPoliciesReview: bridged.policiesReview,
|
|
33
|
-
}),
|
|
34
|
-
};
|
|
35
|
-
};
|
|
36
|
-
const APPLIED_TO_CARDS_GROUP_ID = 'applied-to-cards';
|
|
37
|
-
const LIMITS_GROUP_ID = 'limits';
|
|
38
|
-
const applyUploadUpdate = ({ next, prev, }) => {
|
|
39
|
-
// Mirror review avatar/limits edits into source slices so bulk-submit (which
|
|
40
|
-
// reads `cardSelections` for upload's applyToCards) sees the latest intent.
|
|
41
|
-
const bridged = bridgeUploadPoliciesReviewToSources({ next, prev });
|
|
42
|
-
if (!haveCardSelectionsChanged(prev?.cardSelections, bridged.cardSelections)) {
|
|
43
|
-
return bridged;
|
|
44
|
-
}
|
|
45
|
-
return {
|
|
46
|
-
...bridged,
|
|
47
|
-
policiesReview: (0, exports.patchUploadReviewWithAppliedCards)(bridged.policiesReview, bridged.cardSelections),
|
|
48
|
-
};
|
|
49
|
-
};
|
|
50
|
-
const haveCardSelectionsChanged = (prevSelections, nextSelections) => {
|
|
51
|
-
const prevCheckedIds = (prevSelections ?? [])
|
|
52
|
-
.filter((row) => row.isChecked)
|
|
53
|
-
.map((row) => row.id);
|
|
54
|
-
const nextCheckedIds = nextSelections
|
|
55
|
-
.filter((row) => row.isChecked)
|
|
56
|
-
.map((row) => row.id);
|
|
57
|
-
if (prevCheckedIds.length !== nextCheckedIds.length) {
|
|
58
|
-
return true;
|
|
59
|
-
}
|
|
60
|
-
return prevCheckedIds.some((id, idx) => id !== nextCheckedIds[idx]);
|
|
61
|
-
};
|
|
62
|
-
const buildAppliedOwnerSummaries = (cardSelections) => {
|
|
63
|
-
const summaries = new Map();
|
|
64
|
-
for (const card of cardSelections) {
|
|
65
|
-
if (!card.isChecked) {
|
|
66
|
-
continue;
|
|
67
|
-
}
|
|
68
|
-
const existing = summaries.get(card.owner.userId);
|
|
69
|
-
if (existing != null) {
|
|
70
|
-
existing.cardIds.push(card.id);
|
|
71
|
-
continue;
|
|
72
|
-
}
|
|
73
|
-
summaries.set(card.owner.userId, {
|
|
74
|
-
userId: card.owner.userId,
|
|
75
|
-
displayName: card.owner.displayName,
|
|
76
|
-
cardIds: [card.id],
|
|
77
|
-
});
|
|
78
|
-
}
|
|
79
|
-
return Array.from(summaries.values());
|
|
80
|
-
};
|
|
81
|
-
// Inserted before "Limits" so visual order stays Vendors → Categories → Cards → Limits.
|
|
82
|
-
const patchUploadReviewWithAppliedCards = (reviewRows, cardSelections) => {
|
|
83
|
-
const owners = buildAppliedOwnerSummaries(cardSelections);
|
|
84
|
-
const cardChips = owners.map((owner) => ({
|
|
85
|
-
id: owner.userId,
|
|
86
|
-
label: owner.displayName,
|
|
87
|
-
chipKind: 'avatar',
|
|
88
|
-
cardIds: owner.cardIds,
|
|
89
|
-
isSelected: true,
|
|
90
|
-
}));
|
|
91
|
-
const cardsGroup = cardChips.length > 0
|
|
92
|
-
? {
|
|
93
|
-
id: APPLIED_TO_CARDS_GROUP_ID,
|
|
94
|
-
label: 'Applied to Cards',
|
|
95
|
-
chips: cardChips,
|
|
96
|
-
}
|
|
97
|
-
: null;
|
|
98
|
-
return reviewRows.map((row) => {
|
|
99
|
-
const withoutCards = row.chipGroups.filter((group) => group.id !== APPLIED_TO_CARDS_GROUP_ID);
|
|
100
|
-
if (cardsGroup == null) {
|
|
101
|
-
return { ...row, chipGroups: withoutCards };
|
|
102
|
-
}
|
|
103
|
-
const limitsIdx = withoutCards.findIndex((group) => group.id === LIMITS_GROUP_ID);
|
|
104
|
-
if (limitsIdx === -1) {
|
|
105
|
-
return { ...row, chipGroups: [...withoutCards, cardsGroup] };
|
|
106
|
-
}
|
|
107
|
-
const before = withoutCards.slice(0, limitsIdx);
|
|
108
|
-
const after = withoutCards.slice(limitsIdx);
|
|
109
|
-
return { ...row, chipGroups: [...before, cardsGroup, ...after] };
|
|
110
|
-
});
|
|
111
|
-
};
|
|
112
|
-
exports.patchUploadReviewWithAppliedCards = patchUploadReviewWithAppliedCards;
|
|
113
|
-
// Routes per-chip diffs back to source slices: limits → `limits`, avatar →
|
|
114
|
-
// `cardSelections`, positive/negative → `vendorPolicy` / `categoryPolicy`.
|
|
115
|
-
const bridgeGuidedPoliciesReviewToSources = ({ next, prev, }) => {
|
|
116
|
-
if (prev == null || prev.policiesReview.length === 0) {
|
|
117
|
-
return next;
|
|
118
|
-
}
|
|
119
|
-
const reviewDiffs = collectReviewChipDiffs(prev.policiesReview, next.policiesReview);
|
|
120
|
-
if (reviewDiffs.length === 0) {
|
|
121
|
-
return next;
|
|
122
|
-
}
|
|
123
|
-
let limits = next.limits;
|
|
124
|
-
let cardSelections = next.cardSelections;
|
|
125
|
-
let vendorPolicy = next.vendorPolicy;
|
|
126
|
-
let categoryPolicy = next.categoryPolicy;
|
|
127
|
-
for (const diff of reviewDiffs) {
|
|
128
|
-
if (diff.groupKind === 'limits' || diff.chip.id.startsWith('limit-')) {
|
|
129
|
-
limits = applyLimitChipDiffToLimits(limits, diff);
|
|
130
|
-
continue;
|
|
131
|
-
}
|
|
132
|
-
if (diff.chip.chipKind === 'avatar') {
|
|
133
|
-
cardSelections = applyAvatarChipDiffToCardSelections(cardSelections, diff);
|
|
134
|
-
continue;
|
|
135
|
-
}
|
|
136
|
-
if (diff.changedFields.has('isSelected')) {
|
|
137
|
-
const writtenToVendor = tryWriteAllowBlock(vendorPolicy, diff);
|
|
138
|
-
if (writtenToVendor != null) {
|
|
139
|
-
vendorPolicy = writtenToVendor;
|
|
140
|
-
continue;
|
|
141
|
-
}
|
|
142
|
-
const writtenToCategory = tryWriteAllowBlock(categoryPolicy, diff);
|
|
143
|
-
if (writtenToCategory != null) {
|
|
144
|
-
categoryPolicy = writtenToCategory;
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
}
|
|
148
|
-
return {
|
|
149
|
-
...next,
|
|
150
|
-
limits,
|
|
151
|
-
cardSelections,
|
|
152
|
-
vendorPolicy,
|
|
153
|
-
categoryPolicy,
|
|
154
|
-
};
|
|
155
|
-
};
|
|
156
|
-
// Upload only mirrors avatar chips into `cardSelections`; vendor/category/limit
|
|
157
|
-
// chips are read by the wire directly from the review groups.
|
|
158
|
-
const bridgeUploadPoliciesReviewToSources = ({ next, prev, }) => {
|
|
159
|
-
if (prev == null || prev.policiesReview.length === 0) {
|
|
160
|
-
return next;
|
|
161
|
-
}
|
|
162
|
-
const reviewDiffs = collectReviewChipDiffs(prev.policiesReview, next.policiesReview);
|
|
163
|
-
if (reviewDiffs.length === 0) {
|
|
164
|
-
return next;
|
|
165
|
-
}
|
|
166
|
-
let cardSelections = next.cardSelections;
|
|
167
|
-
for (const diff of reviewDiffs) {
|
|
168
|
-
if (diff.chip.chipKind === 'avatar') {
|
|
169
|
-
cardSelections = applyAvatarChipDiffToCardSelections(cardSelections, diff);
|
|
170
|
-
}
|
|
171
|
-
}
|
|
172
|
-
if (cardSelections === next.cardSelections) {
|
|
173
|
-
return next;
|
|
174
|
-
}
|
|
175
|
-
return { ...next, cardSelections };
|
|
176
|
-
};
|
|
177
|
-
const collectReviewChipDiffs = (prevRows, nextRows) => {
|
|
178
|
-
const prevById = new Map(prevRows.map((row) => [row.id, row]));
|
|
179
|
-
const diffs = [];
|
|
180
|
-
for (const row of nextRows) {
|
|
181
|
-
const prevRow = prevById.get(row.id);
|
|
182
|
-
if (prevRow == null) {
|
|
183
|
-
continue;
|
|
184
|
-
}
|
|
185
|
-
const prevGroupsById = new Map(prevRow.chipGroups.map((group) => [group.id, group]));
|
|
186
|
-
for (const group of row.chipGroups) {
|
|
187
|
-
const prevGroup = prevGroupsById.get(group.id);
|
|
188
|
-
if (prevGroup == null) {
|
|
189
|
-
continue;
|
|
190
|
-
}
|
|
191
|
-
const prevChipsById = new Map(prevGroup.chips.map((chip) => [chip.id, chip]));
|
|
192
|
-
for (const chip of group.chips) {
|
|
193
|
-
const prevChip = prevChipsById.get(chip.id);
|
|
194
|
-
if (prevChip == null) {
|
|
195
|
-
continue;
|
|
196
|
-
}
|
|
197
|
-
const changed = new Set();
|
|
198
|
-
if (chip.isSelected !== prevChip.isSelected) {
|
|
199
|
-
changed.add('isSelected');
|
|
200
|
-
}
|
|
201
|
-
if (chip.optionalCode !== prevChip.optionalCode) {
|
|
202
|
-
changed.add('optionalCode');
|
|
203
|
-
}
|
|
204
|
-
if (changed.size > 0) {
|
|
205
|
-
diffs.push({ chip, changedFields: changed, groupKind: group.kind });
|
|
206
|
-
}
|
|
207
|
-
}
|
|
208
|
-
}
|
|
209
|
-
}
|
|
210
|
-
return diffs;
|
|
211
|
-
};
|
|
212
|
-
const REVIEW_LIMIT_CHIP_ID_TO_LIMIT_ROW_ID = {
|
|
213
|
-
'limit-transaction': 'transactionLimit',
|
|
214
|
-
'limit-receipt': 'requireReceipt',
|
|
215
|
-
};
|
|
216
|
-
const applyLimitChipDiffToLimits = (limits, diff) => {
|
|
217
|
-
const mapped = REVIEW_LIMIT_CHIP_ID_TO_LIMIT_ROW_ID[diff.chip.id];
|
|
218
|
-
const directMatch = limits.find((row) => row.id === diff.chip.id) != null;
|
|
219
|
-
const rowId = mapped ?? (directMatch ? diff.chip.id : undefined);
|
|
220
|
-
if (rowId == null) {
|
|
221
|
-
return limits;
|
|
222
|
-
}
|
|
223
|
-
const idx = limits.findIndex((row) => row.id === rowId);
|
|
224
|
-
if (idx === -1) {
|
|
225
|
-
return limits;
|
|
226
|
-
}
|
|
227
|
-
let nextRow = limits[idx];
|
|
228
|
-
if (diff.changedFields.has('isSelected')) {
|
|
229
|
-
nextRow = { ...nextRow, isEnabled: diff.chip.isSelected === true };
|
|
230
|
-
}
|
|
231
|
-
if (diff.changedFields.has('optionalCode')) {
|
|
232
|
-
const raw = diff.chip.optionalCode;
|
|
233
|
-
const numericNext = raw != null && raw !== '' ? Number(raw) : undefined;
|
|
234
|
-
nextRow = { ...nextRow, amount: numericNext };
|
|
235
|
-
}
|
|
236
|
-
if (nextRow === limits[idx]) {
|
|
237
|
-
return limits;
|
|
238
|
-
}
|
|
239
|
-
const copy = limits.slice();
|
|
240
|
-
copy[idx] = nextRow;
|
|
241
|
-
return copy;
|
|
242
|
-
};
|
|
243
|
-
const applyAvatarChipDiffToCardSelections = (cardSelections, diff) => {
|
|
244
|
-
if (!diff.changedFields.has('isSelected')) {
|
|
245
|
-
return cardSelections;
|
|
246
|
-
}
|
|
247
|
-
const targetIds = diff.chip.cardIds != null && diff.chip.cardIds.length > 0
|
|
248
|
-
? diff.chip.cardIds
|
|
249
|
-
: [diff.chip.id];
|
|
250
|
-
const targetSet = new Set(targetIds);
|
|
251
|
-
let mutated = false;
|
|
252
|
-
const next = cardSelections.map((row) => {
|
|
253
|
-
if (!targetSet.has(row.id)) {
|
|
254
|
-
return row;
|
|
255
|
-
}
|
|
256
|
-
const desired = diff.chip.isSelected === true;
|
|
257
|
-
if (row.isChecked === desired) {
|
|
258
|
-
return row;
|
|
259
|
-
}
|
|
260
|
-
mutated = true;
|
|
261
|
-
return { ...row, isChecked: desired };
|
|
262
|
-
});
|
|
263
|
-
return mutated ? next : cardSelections;
|
|
264
|
-
};
|
|
265
|
-
const tryWriteAllowBlock = (field, diff) => {
|
|
266
|
-
const desired = diff.chip.isSelected === true;
|
|
267
|
-
const written = tryFlipItemInSide(field.allowItems, diff, desired);
|
|
268
|
-
if (written != null) {
|
|
269
|
-
return { ...field, allowItems: written };
|
|
270
|
-
}
|
|
271
|
-
const writtenBlock = tryFlipItemInSide(field.blockItems, diff, desired);
|
|
272
|
-
if (writtenBlock != null) {
|
|
273
|
-
return { ...field, blockItems: writtenBlock };
|
|
274
|
-
}
|
|
275
|
-
return null;
|
|
276
|
-
};
|
|
277
|
-
const tryFlipItemInSide = (items, diff, desired) => {
|
|
278
|
-
let idx = items.findIndex((item) => item.id === diff.chip.id);
|
|
279
|
-
if (idx === -1 && diff.chip.optionalCode != null) {
|
|
280
|
-
// Auto/upload category chips key on raw MCC code; source items key on
|
|
281
|
-
// `mcc-{name}`. Match by code so the bridge round-trips both shapes.
|
|
282
|
-
idx = items.findIndex((item) => item.optionalCode === diff.chip.optionalCode ||
|
|
283
|
-
(item.optionalCodes ?? []).includes(diff.chip.optionalCode ?? ''));
|
|
284
|
-
}
|
|
285
|
-
if (idx === -1) {
|
|
286
|
-
return null;
|
|
287
|
-
}
|
|
288
|
-
if (items[idx].isSelected === desired) {
|
|
289
|
-
return items;
|
|
290
|
-
}
|
|
291
|
-
const copy = items.slice();
|
|
292
|
-
copy[idx] = { ...items[idx], isSelected: desired };
|
|
293
|
-
return copy;
|
|
294
|
-
};
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { CardPolicyChipFieldValue, CardPolicyFormDraft, ExtractedCardPolicyDataView } from './cardPolicyFormDraftTypes';
|
|
2
|
-
export interface ApplyExtractedPolicyToAiCardPolicyDraftArgs {
|
|
3
|
-
categorySearchOptions: CardPolicyChipFieldValue[];
|
|
4
|
-
current: CardPolicyFormDraft;
|
|
5
|
-
extracted: ExtractedCardPolicyDataView;
|
|
6
|
-
vendorSearchOptions: CardPolicyChipFieldValue[];
|
|
7
|
-
}
|
|
8
|
-
export declare const applyExtractedPolicyToAiCardPolicyDraft: ({ extracted, current, vendorSearchOptions, categorySearchOptions, }: ApplyExtractedPolicyToAiCardPolicyDraftArgs) => CardPolicyFormDraft;
|
|
@@ -1,113 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.applyExtractedPolicyToAiCardPolicyDraft = void 0;
|
|
4
|
-
const cardPolicyChipIds_1 = require("./cardPolicyChipIds");
|
|
5
|
-
const cardPolicyFormDraftTypes_1 = require("./cardPolicyFormDraftTypes");
|
|
6
|
-
// Touches only the slices the extract API populates (vendor/category/limits);
|
|
7
|
-
// `cardSelections` + `policiesReview` are preserved (seeded separately).
|
|
8
|
-
const applyExtractedPolicyToAiCardPolicyDraft = ({ extracted, current, vendorSearchOptions, categorySearchOptions, }) => ({
|
|
9
|
-
...current,
|
|
10
|
-
vendorPolicy: buildAllowBlockField({
|
|
11
|
-
allowList: extracted.allowedEntity.merchantNames,
|
|
12
|
-
blockList: extracted.blockedEntity.merchantNames,
|
|
13
|
-
currentAllowItems: current.vendorPolicy.allowItems,
|
|
14
|
-
currentBlockItems: current.vendorPolicy.blockItems,
|
|
15
|
-
universe: vendorSearchOptions,
|
|
16
|
-
matchOnCode: false,
|
|
17
|
-
}),
|
|
18
|
-
categoryPolicy: buildAllowBlockField({
|
|
19
|
-
allowList: extracted.allowedEntity.categoryCodes,
|
|
20
|
-
blockList: extracted.blockedEntity.categoryCodes,
|
|
21
|
-
currentAllowItems: current.categoryPolicy.allowItems,
|
|
22
|
-
currentBlockItems: current.categoryPolicy.blockItems,
|
|
23
|
-
universe: categorySearchOptions,
|
|
24
|
-
matchOnCode: true,
|
|
25
|
-
}),
|
|
26
|
-
limits: buildLimitRows({
|
|
27
|
-
current: current.limits,
|
|
28
|
-
transactionLimit: extracted.transactionLimit,
|
|
29
|
-
requiredReceiptThreshold: extracted.requiredReceiptThreshold,
|
|
30
|
-
}),
|
|
31
|
-
});
|
|
32
|
-
exports.applyExtractedPolicyToAiCardPolicyDraft = applyExtractedPolicyToAiCardPolicyDraft;
|
|
33
|
-
const buildAllowBlockField = ({ allowList, blockList, currentAllowItems, currentBlockItems, universe, matchOnCode, }) => {
|
|
34
|
-
const allowItems = buildSideItems({
|
|
35
|
-
selectedValues: allowList,
|
|
36
|
-
currentItems: currentAllowItems,
|
|
37
|
-
universe,
|
|
38
|
-
matchOnCode,
|
|
39
|
-
});
|
|
40
|
-
const blockItems = buildSideItems({
|
|
41
|
-
selectedValues: blockList,
|
|
42
|
-
currentItems: currentBlockItems,
|
|
43
|
-
universe,
|
|
44
|
-
matchOnCode,
|
|
45
|
-
});
|
|
46
|
-
const mode = allowList.length === 0 && blockList.length > 0 ? 'block' : 'allow';
|
|
47
|
-
return { mode, allowItems, blockItems };
|
|
48
|
-
};
|
|
49
|
-
const buildSideItems = ({ selectedValues, currentItems, universe, matchOnCode, }) => {
|
|
50
|
-
const selectedKeys = new Set(selectedValues
|
|
51
|
-
.map((value) => normalizeKey(value))
|
|
52
|
-
.filter((key) => key != null));
|
|
53
|
-
const items = [];
|
|
54
|
-
const seenIds = new Set();
|
|
55
|
-
for (const item of currentItems) {
|
|
56
|
-
const key = normalizeKey(matchOnCode ? item.optionalCode : item.label);
|
|
57
|
-
const isSelected = key != null && selectedKeys.has(key);
|
|
58
|
-
items.push({ ...item, isSelected });
|
|
59
|
-
seenIds.add(item.id);
|
|
60
|
-
if (isSelected && key != null) {
|
|
61
|
-
selectedKeys.delete(key);
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
for (const option of universe) {
|
|
65
|
-
if (selectedKeys.size === 0) {
|
|
66
|
-
break;
|
|
67
|
-
}
|
|
68
|
-
const key = normalizeKey(matchOnCode ? option.optionalCode : option.label);
|
|
69
|
-
if (key == null || !selectedKeys.has(key) || seenIds.has(option.id)) {
|
|
70
|
-
continue;
|
|
71
|
-
}
|
|
72
|
-
items.push({ ...option, isSelected: true });
|
|
73
|
-
seenIds.add(option.id);
|
|
74
|
-
selectedKeys.delete(key);
|
|
75
|
-
}
|
|
76
|
-
for (const value of selectedValues) {
|
|
77
|
-
const key = normalizeKey(value);
|
|
78
|
-
if (key == null || !selectedKeys.has(key)) {
|
|
79
|
-
continue;
|
|
80
|
-
}
|
|
81
|
-
const id = matchOnCode
|
|
82
|
-
? (0, cardPolicyChipIds_1.buildMccCategoryChipId)(value)
|
|
83
|
-
: (0, cardPolicyChipIds_1.buildVendorChipId)(value);
|
|
84
|
-
if (seenIds.has(id)) {
|
|
85
|
-
continue;
|
|
86
|
-
}
|
|
87
|
-
items.push({
|
|
88
|
-
id,
|
|
89
|
-
label: value,
|
|
90
|
-
isSelected: true,
|
|
91
|
-
...(matchOnCode ? { optionalCode: value } : {}),
|
|
92
|
-
});
|
|
93
|
-
seenIds.add(id);
|
|
94
|
-
selectedKeys.delete(key);
|
|
95
|
-
}
|
|
96
|
-
return items;
|
|
97
|
-
};
|
|
98
|
-
const buildLimitRows = ({ current, transactionLimit, requiredReceiptThreshold, }) => current.map((row) => {
|
|
99
|
-
if (row.id === cardPolicyFormDraftTypes_1.CARD_POLICY_LIMIT_ROW_ID_TRANSACTION) {
|
|
100
|
-
return amountToLimitRow(row, transactionLimit);
|
|
101
|
-
}
|
|
102
|
-
if (row.id === cardPolicyFormDraftTypes_1.CARD_POLICY_LIMIT_ROW_ID_REQUIRE_RECEIPT) {
|
|
103
|
-
return amountToLimitRow(row, requiredReceiptThreshold);
|
|
104
|
-
}
|
|
105
|
-
return row;
|
|
106
|
-
});
|
|
107
|
-
const amountToLimitRow = (row, amount) => {
|
|
108
|
-
if (amount > 0) {
|
|
109
|
-
return { ...row, isEnabled: true, amount };
|
|
110
|
-
}
|
|
111
|
-
return { ...row, isEnabled: false, amount: row.amount };
|
|
112
|
-
};
|
|
113
|
-
const normalizeKey = (value) => value == null || value.length === 0 ? undefined : value.toLowerCase().trim();
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { ActionsObservable, StateObservable } from 'redux-observable';
|
|
2
|
-
import { Observable } from 'rxjs';
|
|
3
|
-
import { updatePolicyDocumentExtractionSuccess } from '../../../../../entity/cardPolicy/cardPolicyReducer';
|
|
4
|
-
import { RootState } from '../../../../../reducer';
|
|
5
|
-
import { applyExtractedPolicyToAiCardPolicyDraft, applyExtractedPolicyToManualCardPolicyDraft } from './createCardPolicyReducer';
|
|
6
|
-
export type ActionType = ReturnType<typeof applyExtractedPolicyToAiCardPolicyDraft> | ReturnType<typeof applyExtractedPolicyToManualCardPolicyDraft>;
|
|
7
|
-
type InboundAction = ReturnType<typeof updatePolicyDocumentExtractionSuccess>;
|
|
8
|
-
export declare const applyExtractedPolicyToDraftEpic: (actions$: ActionsObservable<InboundAction>, state$: StateObservable<RootState>) => Observable<ActionType>;
|
|
9
|
-
export {};
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.applyExtractedPolicyToDraftEpic = void 0;
|
|
4
|
-
const rxjs_1 = require("rxjs");
|
|
5
|
-
const operators_1 = require("rxjs/operators");
|
|
6
|
-
const cardPolicyReducer_1 = require("../../../../../entity/cardPolicy/cardPolicyReducer");
|
|
7
|
-
const cardPolicyChipIds_1 = require("./cardPolicyChipIds");
|
|
8
|
-
const cardPolicyFormDraftTypes_1 = require("./cardPolicyFormDraftTypes");
|
|
9
|
-
const createCardPolicyReducer_1 = require("./createCardPolicyReducer");
|
|
10
|
-
const toExtractedView = (rules) => ({
|
|
11
|
-
allowedEntity: {
|
|
12
|
-
categoryCodes: rules.allowedEntity.categoryCodes ?? [],
|
|
13
|
-
merchantNames: rules.allowedEntity.merchantNames ?? [],
|
|
14
|
-
},
|
|
15
|
-
blockedEntity: {
|
|
16
|
-
categoryCodes: rules.blockedEntity.categoryCodes ?? [],
|
|
17
|
-
merchantNames: rules.blockedEntity.merchantNames ?? [],
|
|
18
|
-
},
|
|
19
|
-
confidenceScore: rules.confidenceScore,
|
|
20
|
-
policyName: rules.policyName,
|
|
21
|
-
requiredReceiptThreshold: rules.requiredReceiptThreshold,
|
|
22
|
-
transactionLimit: rules.transactionLimit,
|
|
23
|
-
});
|
|
24
|
-
const readVendorSearchOptions = (state) => state.cardPolicyState.vendorSearch.vendors.map((vendor) => (0, cardPolicyChipIds_1.toVendorChipFieldValue)(vendor.name, false));
|
|
25
|
-
const readCategorySearchOptions = (state) => state.cardPolicyState.mccCategories.map((category) => (0, cardPolicyChipIds_1.toMccCategoryChipFieldValue)((0, cardPolicyFormDraftTypes_1.toMccCategoryLike)(category), false));
|
|
26
|
-
// Routes extract success to the AI or manual draft based on `aiCfoAnswerId`,
|
|
27
|
-
// pulling vendor/category universes from CES so any caller wires up automatically.
|
|
28
|
-
// AI step_5 review chips are patched separately by `policyRecommendationFromUploadEpic`.
|
|
29
|
-
const applyExtractedPolicyToDraftEpic = (actions$, state$) => actions$.pipe((0, operators_1.mergeMap)((action) => {
|
|
30
|
-
if (!cardPolicyReducer_1.updatePolicyDocumentExtractionSuccess.match(action)) {
|
|
31
|
-
return rxjs_1.EMPTY;
|
|
32
|
-
}
|
|
33
|
-
const state = state$.value;
|
|
34
|
-
const extraction = state.cardPolicyState.policyDocumentExtraction;
|
|
35
|
-
const rules = extraction.extractedRules;
|
|
36
|
-
if (rules == null) {
|
|
37
|
-
return rxjs_1.EMPTY;
|
|
38
|
-
}
|
|
39
|
-
const extracted = toExtractedView(rules);
|
|
40
|
-
const vendorSearchOptions = readVendorSearchOptions(state);
|
|
41
|
-
const categorySearchOptions = readCategorySearchOptions(state);
|
|
42
|
-
const payload = { extracted, vendorSearchOptions, categorySearchOptions };
|
|
43
|
-
if (extraction.aiCfoAnswerId != null) {
|
|
44
|
-
return (0, rxjs_1.of)((0, createCardPolicyReducer_1.applyExtractedPolicyToAiCardPolicyDraft)(payload));
|
|
45
|
-
}
|
|
46
|
-
return (0, rxjs_1.of)((0, createCardPolicyReducer_1.applyExtractedPolicyToManualCardPolicyDraft)(payload));
|
|
47
|
-
}));
|
|
48
|
-
exports.applyExtractedPolicyToDraftEpic = applyExtractedPolicyToDraftEpic;
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { CardPolicyChipFieldValue, CardPolicyCreateFormDraft, ExtractedCardPolicyDataView } from './cardPolicyFormDraftTypes';
|
|
2
|
-
export interface ApplyExtractedPolicyToManualCardPolicyDraftArgs {
|
|
3
|
-
categorySearchOptions: CardPolicyChipFieldValue[];
|
|
4
|
-
current: CardPolicyCreateFormDraft;
|
|
5
|
-
extracted: ExtractedCardPolicyDataView;
|
|
6
|
-
vendorSearchOptions: CardPolicyChipFieldValue[];
|
|
7
|
-
}
|
|
8
|
-
export declare const applyExtractedPolicyToManualCardPolicyDraft: ({ extracted, current, vendorSearchOptions, categorySearchOptions, }: ApplyExtractedPolicyToManualCardPolicyDraftArgs) => CardPolicyCreateFormDraft;
|