@zeniai/client-epic-state 5.2.35 → 5.2.36
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/commonPayloadTypes/classesView/reportByClassPayloadV2.d.ts +1 -13
- package/lib/entity/sectionClassesViewV2/sectionClassesViewEpic.js +7 -10
- package/lib/entity/sectionClassesViewV2/sectionClassesViewReducer.d.ts +3 -3
- package/lib/entity/sectionProjectView/sectionProjectViewEpic.js +2 -6
- package/lib/entity/sectionProjectView/sectionProjectViewReducer.d.ts +3 -3
- package/lib/entity/sectionProjectView/sectionProjectViewReducer.js +3 -4
- package/lib/epic.js +0 -12
- package/lib/esm/entity/class/classReducer.js +1 -1
- package/lib/esm/entity/sectionClassesViewV2/sectionClassesViewEpic.js +7 -10
- package/lib/esm/entity/sectionProjectView/sectionProjectViewEpic.js +2 -6
- package/lib/esm/entity/sectionProjectView/sectionProjectViewReducer.js +4 -5
- package/lib/esm/epic.js +0 -12
- package/lib/esm/index.js +2 -2
- package/lib/esm/view/aiCfoView/aiCfoViewReducer.js +1 -266
- package/lib/esm/view/aiCfoView/aiCfoViewSelector.js +0 -50
- package/lib/esm/view/invoicing/editInvoicingCustomerDetailView/editInvoicingCustomerDetailViewPayload.js +0 -4
- package/lib/index.d.ts +4 -4
- package/lib/index.js +40 -55
- package/lib/view/aiCfoView/aiCfoViewPayload.d.ts +0 -90
- package/lib/view/aiCfoView/aiCfoViewReducer.d.ts +123 -164
- package/lib/view/aiCfoView/aiCfoViewReducer.js +3 -268
- package/lib/view/aiCfoView/aiCfoViewSelector.d.ts +1 -13
- package/lib/view/aiCfoView/aiCfoViewSelector.js +0 -55
- package/lib/view/aiCfoView/aiCfoViewState.d.ts +0 -157
- package/lib/view/cashFlowClassesView/cashFlowClassesViewPayload.d.ts +4 -4
- package/lib/view/cashFlowProjectView/cashFlowProjectViewPayload.d.ts +4 -4
- package/lib/view/invoicing/editInvoicingCustomerDetailView/editInvoicingCustomerDetailViewPayload.d.ts +11 -1
- package/lib/view/invoicing/editInvoicingCustomerDetailView/editInvoicingCustomerDetailViewPayload.js +0 -4
- package/lib/view/invoicing/editInvoicingCustomerDetailView/editInvoicingCustomerDetailViewReducer.d.ts +2 -1
- package/lib/view/invoicing/editInvoicingCustomerDetailView/editInvoicingCustomerDetailViewSelector.d.ts +2 -1
- package/lib/view/invoicing/editInvoicingCustomerDetailView/editInvoicingCustomerDetailViewState.d.ts +1 -15
- package/lib/view/invoicing/invoicingCustomerListView/invoicingCustomerListViewReducer.d.ts +1 -1
- package/lib/view/invoicing/invoicingCustomerListView/invoicingCustomerListViewState.d.ts +1 -1
- package/lib/view/profitAndLossProjectView/profitAndLossProjectViewPayload.d.ts +0 -12
- package/package.json +1 -1
- package/lib/esm/view/aiCfoView/epics/deleteRoutineEpic.js +0 -35
- package/lib/esm/view/aiCfoView/epics/fetchRoutineRunsEpic.js +0 -35
- package/lib/esm/view/aiCfoView/epics/fetchRoutinesEpic.js +0 -37
- package/lib/esm/view/aiCfoView/epics/runRoutineEpic.js +0 -34
- package/lib/esm/view/aiCfoView/epics/saveRoutineEpic.js +0 -65
- package/lib/esm/view/aiCfoView/epics/setRoutineEnabledEpic.js +0 -28
- package/lib/esm/view/aiCfoView/epics/toRoutine.js +0 -64
- package/lib/esm/view/aiCfoView/epics/toRoutineRun.js +0 -42
- package/lib/view/aiCfoView/epics/deleteRoutineEpic.d.ts +0 -18
- package/lib/view/aiCfoView/epics/deleteRoutineEpic.js +0 -39
- package/lib/view/aiCfoView/epics/fetchRoutineRunsEpic.d.ts +0 -13
- package/lib/view/aiCfoView/epics/fetchRoutineRunsEpic.js +0 -39
- package/lib/view/aiCfoView/epics/fetchRoutinesEpic.d.ts +0 -7
- package/lib/view/aiCfoView/epics/fetchRoutinesEpic.js +0 -41
- package/lib/view/aiCfoView/epics/runRoutineEpic.d.ts +0 -14
- package/lib/view/aiCfoView/epics/runRoutineEpic.js +0 -38
- package/lib/view/aiCfoView/epics/saveRoutineEpic.d.ts +0 -13
- package/lib/view/aiCfoView/epics/saveRoutineEpic.js +0 -69
- package/lib/view/aiCfoView/epics/setRoutineEnabledEpic.d.ts +0 -15
- package/lib/view/aiCfoView/epics/setRoutineEnabledEpic.js +0 -32
- package/lib/view/aiCfoView/epics/toRoutine.d.ts +0 -17
- package/lib/view/aiCfoView/epics/toRoutine.js +0 -69
- package/lib/view/aiCfoView/epics/toRoutineRun.d.ts +0 -12
- package/lib/view/aiCfoView/epics/toRoutineRun.js +0 -47
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var _a;
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
-
exports.
|
|
5
|
-
exports.
|
|
4
|
+
exports.clearSkillDetail = exports.fetchSkillDetailFailure = exports.fetchSkillDetailSuccess = exports.fetchSkillDetail = exports.fetchSkillsFailure = exports.fetchSkillsSuccess = exports.fetchSkills = exports.fetchSuggestedQuestionsFailure = exports.fetchSuggestedQuestionsSuccess = exports.fetchSuggestedQuestions = exports.updateCotCollapsedState = exports.clearDeleteChatSessionStatus = exports.deleteChatSessionFailure = exports.deleteChatSessionSuccess = exports.deleteChatSession = exports.acceptMasterTOSFailure = exports.acceptMasterTOSSuccess = exports.acceptMasterTOS = exports.stopSubmitQuestionFailure = exports.stopSubmitQuestionSuccess = exports.stopSubmitQuestion = exports.stopSubmitFailure = exports.stopSubmitSuccess = exports.stopSubmit = exports.clearLastContextMessage = exports.clearCurrentSessionId = exports.fetchChatHistoryFailure = exports.fetchChatHistorySuccess = exports.fetchChatHistory = exports.fetchChatSessionsForUserFailure = exports.fetchChatSessionsForUserSuccess = exports.fetchChatSessionsForUser = exports.createSessionAndSubmitFailure = exports.createSessionAndSubmitSuccess = exports.initializeNewSessionState = exports.createSessionAndSubmit = exports.createSessionFailure = exports.createSessionSuccess = exports.createSession = exports.setSession = exports.submitFeedbackFailure = exports.submitFeedbackSuccess = exports.submitFeedback = exports.updateCurrentInput = exports.updateAiCfoViewScrollPosition = exports.updateResponseState = exports.submitQuestionFailure = exports.submitQuestionSuccess = exports.submitQuestion = exports.initialAiCfoViewState = void 0;
|
|
5
|
+
exports.clearAiCfoSidePanelHostPageContext = exports.applyAiCfoSidePanelHostPageTransition = exports.closeSkillsBrowser = exports.openSkillsBrowser = exports.setSkillVisibilityFailure = exports.setSkillVisibilitySuccess = exports.setSkillVisibility = exports.saveSkillFailure = exports.saveSkillSuccess = exports.saveSkill = exports.fetchSkillVersionsFailure = exports.fetchSkillVersionsSuccess = exports.fetchSkillVersions = exports.fetchSkillVersionBodyFailure = exports.fetchSkillVersionBodySuccess = exports.fetchSkillVersionBody = exports.deleteSkillFailure = exports.deleteSkillSuccess = exports.deleteSkill = exports.clearSkillMutation = void 0;
|
|
6
6
|
const toolkit_1 = require("@reduxjs/toolkit");
|
|
7
7
|
const rootActions_1 = require("../../rootActions");
|
|
8
8
|
function removeSessionIdFromPageKeyMap(draft, sessionId) {
|
|
@@ -86,29 +86,6 @@ exports.initialAiCfoViewState = {
|
|
|
86
86
|
skillsEnabled: false,
|
|
87
87
|
canPublish: false,
|
|
88
88
|
},
|
|
89
|
-
routines: {
|
|
90
|
-
fetchState: 'Not-Started',
|
|
91
|
-
error: undefined,
|
|
92
|
-
deletedScheduleIds: [],
|
|
93
|
-
routines: [],
|
|
94
|
-
routinesEnabled: false,
|
|
95
|
-
// 0 until the server says otherwise. The form reads this to decide whether
|
|
96
|
-
// "New routine" is available, and a guessed cap would either block a user
|
|
97
|
-
// who is under it or invite one who is over it to fill in a doomed form.
|
|
98
|
-
maxRoutines: 0,
|
|
99
|
-
},
|
|
100
|
-
routineMutation: {
|
|
101
|
-
fetchState: 'Not-Started',
|
|
102
|
-
error: undefined,
|
|
103
|
-
kind: undefined,
|
|
104
|
-
},
|
|
105
|
-
routineRuns: {
|
|
106
|
-
fetchState: 'Not-Started',
|
|
107
|
-
error: undefined,
|
|
108
|
-
runs: [],
|
|
109
|
-
scheduleId: null,
|
|
110
|
-
sessionId: null,
|
|
111
|
-
},
|
|
112
89
|
};
|
|
113
90
|
/**
|
|
114
91
|
* Forget the skill that was open — prompt AND history together.
|
|
@@ -291,15 +268,6 @@ const aiCfoView = (0, toolkit_1.createSlice)({
|
|
|
291
268
|
fetchState: 'Error',
|
|
292
269
|
error,
|
|
293
270
|
};
|
|
294
|
-
// A page that failed is not a promise of another one. Leaving `hasMore`
|
|
295
|
-
// at its default meant the screen kept asking: the fetch condition is
|
|
296
|
-
// "not in flight and there is more", and Error satisfies the first half,
|
|
297
|
-
// so a session whose history 404s was requested in a tight loop forever
|
|
298
|
-
// while the view sat on its loading skeletons.
|
|
299
|
-
draft.uiState.chatHistoryNextPageToken[chatSessionId] = {
|
|
300
|
-
nextPageToken: null,
|
|
301
|
-
hasMore: false,
|
|
302
|
-
};
|
|
303
271
|
},
|
|
304
272
|
setSession(draft, action) {
|
|
305
273
|
draft.uiState.currentChatSessionId = action.payload.sessionId;
|
|
@@ -638,229 +606,6 @@ const aiCfoView = (0, toolkit_1.createSlice)({
|
|
|
638
606
|
error,
|
|
639
607
|
};
|
|
640
608
|
},
|
|
641
|
-
fetchRoutines(draft) {
|
|
642
|
-
draft.routines = {
|
|
643
|
-
fetchState: 'In-Progress',
|
|
644
|
-
error: undefined,
|
|
645
|
-
routines: draft.routines.routines,
|
|
646
|
-
maxRoutines: draft.routines.maxRoutines,
|
|
647
|
-
// Carried for the same reason as maxRoutines: a refetch in flight is not
|
|
648
|
-
// a reason to hide the entry the user is currently looking at.
|
|
649
|
-
routinesEnabled: draft.routines.routinesEnabled,
|
|
650
|
-
// Carried, not cleared: the response about to arrive may still contain a
|
|
651
|
-
// routine deleted moments ago, which is the whole reason the list exists.
|
|
652
|
-
deletedScheduleIds: draft.routines.deletedScheduleIds,
|
|
653
|
-
};
|
|
654
|
-
},
|
|
655
|
-
fetchRoutinesSuccess(draft, action) {
|
|
656
|
-
draft.routines = {
|
|
657
|
-
fetchState: 'Completed',
|
|
658
|
-
error: undefined,
|
|
659
|
-
// A list response can predate a delete — a save refetches, and a delete
|
|
660
|
-
// can land while that is outstanding — so replacing wholesale would put
|
|
661
|
-
// the deleted row back and read as the delete having failed.
|
|
662
|
-
routines: action.payload.routines.filter((routine) => !draft.routines.deletedScheduleIds.includes(routine.scheduleId)),
|
|
663
|
-
maxRoutines: action.payload.maxRoutines,
|
|
664
|
-
routinesEnabled: action.payload.routinesEnabled,
|
|
665
|
-
// Carried, NOT cleared here.
|
|
666
|
-
//
|
|
667
|
-
// The skills slice clears its tombstone on a list response, which fixed
|
|
668
|
-
// one bug and introduced the mirror of it: two list responses can both
|
|
669
|
-
// land before the DELETE is processed, and the second one — arriving
|
|
670
|
-
// with an empty tombstone — puts the deleted row back. The window is
|
|
671
|
-
// small and entirely real, since a save refetches.
|
|
672
|
-
//
|
|
673
|
-
// The tombstone's true lifetime is the delete request, so it is dropped
|
|
674
|
-
// in deleteRoutineSuccess / deleteRoutineFailure instead. That bounds it
|
|
675
|
-
// just as tightly (a delete always resolves) without this race.
|
|
676
|
-
deletedScheduleIds: draft.routines.deletedScheduleIds,
|
|
677
|
-
};
|
|
678
|
-
},
|
|
679
|
-
fetchRoutinesFailure(draft, action) {
|
|
680
|
-
draft.routines = {
|
|
681
|
-
fetchState: 'Error',
|
|
682
|
-
error: action.payload,
|
|
683
|
-
routines: draft.routines.routines,
|
|
684
|
-
// Kept: a failed refresh is not evidence the cap changed, and zeroing it
|
|
685
|
-
// would disable "New routine" on any transient error.
|
|
686
|
-
maxRoutines: draft.routines.maxRoutines,
|
|
687
|
-
// Same again: a transient error must not make the entry vanish.
|
|
688
|
-
routinesEnabled: draft.routines.routinesEnabled,
|
|
689
|
-
deletedScheduleIds: draft.routines.deletedScheduleIds,
|
|
690
|
-
};
|
|
691
|
-
},
|
|
692
|
-
setRoutineEnabled: {
|
|
693
|
-
prepare: (payload) => ({
|
|
694
|
-
payload,
|
|
695
|
-
}),
|
|
696
|
-
reducer(draft, action) {
|
|
697
|
-
// Pause and resume without a full draft. A routine whose cadence this
|
|
698
|
-
// client does not recognise has `recurrence: null`, so it cannot build
|
|
699
|
-
// a RoutineDraft at all — and that is exactly the routine a user most
|
|
700
|
-
// needs to be able to stop. Flipped locally too, so the switch responds
|
|
701
|
-
// immediately; the refetch confirms it.
|
|
702
|
-
const routine = draft.routines.routines.find((candidate) => candidate.scheduleId === action.payload.scheduleId);
|
|
703
|
-
if (routine) {
|
|
704
|
-
routine.enabled = action.payload.enabled;
|
|
705
|
-
}
|
|
706
|
-
draft.routineMutation = {
|
|
707
|
-
fetchState: 'In-Progress',
|
|
708
|
-
error: undefined,
|
|
709
|
-
kind: 'save',
|
|
710
|
-
};
|
|
711
|
-
},
|
|
712
|
-
},
|
|
713
|
-
fetchRoutineRuns: {
|
|
714
|
-
prepare: (payload) => ({ payload }),
|
|
715
|
-
reducer(draft, action) {
|
|
716
|
-
// Only a different routine's rows are wrong to show. This list polls
|
|
717
|
-
// itself while a run is in flight, and clearing on every fetch blanked
|
|
718
|
-
// the history and its summary a few times a minute — the rows were
|
|
719
|
-
// being replaced by "Loading runs…" and then re-rendered, which reads
|
|
720
|
-
// as the page breaking rather than refreshing.
|
|
721
|
-
const sameRoutine = draft.routineRuns.scheduleId === action.payload.scheduleId;
|
|
722
|
-
draft.routineRuns = {
|
|
723
|
-
fetchState: 'In-Progress',
|
|
724
|
-
error: undefined,
|
|
725
|
-
// Showing one routine's runs under another's name is the one thing a
|
|
726
|
-
// history must never do, so a change of routine still clears.
|
|
727
|
-
runs: sameRoutine ? draft.routineRuns.runs : [],
|
|
728
|
-
scheduleId: action.payload.scheduleId,
|
|
729
|
-
sessionId: sameRoutine ? draft.routineRuns.sessionId : null,
|
|
730
|
-
};
|
|
731
|
-
},
|
|
732
|
-
},
|
|
733
|
-
fetchRoutineRunsSuccess: {
|
|
734
|
-
prepare: (payload) => ({ payload }),
|
|
735
|
-
reducer(draft, action) {
|
|
736
|
-
// A response for a routine the user has since collapsed or swapped away
|
|
737
|
-
// from is dropped. switchMap makes this rare, not impossible.
|
|
738
|
-
if (draft.routineRuns.scheduleId !== action.payload.scheduleId) {
|
|
739
|
-
return;
|
|
740
|
-
}
|
|
741
|
-
draft.routineRuns = {
|
|
742
|
-
fetchState: 'Completed',
|
|
743
|
-
error: undefined,
|
|
744
|
-
runs: action.payload.runs,
|
|
745
|
-
scheduleId: action.payload.scheduleId,
|
|
746
|
-
sessionId: action.payload.sessionId,
|
|
747
|
-
};
|
|
748
|
-
},
|
|
749
|
-
},
|
|
750
|
-
fetchRoutineRunsFailure(draft, action) {
|
|
751
|
-
draft.routineRuns.fetchState = 'Error';
|
|
752
|
-
draft.routineRuns.error = action.payload;
|
|
753
|
-
},
|
|
754
|
-
closeRoutineRuns(draft) {
|
|
755
|
-
draft.routineRuns = {
|
|
756
|
-
fetchState: 'Not-Started',
|
|
757
|
-
error: undefined,
|
|
758
|
-
runs: [],
|
|
759
|
-
scheduleId: null,
|
|
760
|
-
sessionId: null,
|
|
761
|
-
};
|
|
762
|
-
},
|
|
763
|
-
runRoutine: {
|
|
764
|
-
prepare: (payload) => ({ payload }),
|
|
765
|
-
reducer(draft, action) {
|
|
766
|
-
draft.routineMutation = {
|
|
767
|
-
fetchState: 'In-Progress',
|
|
768
|
-
error: undefined,
|
|
769
|
-
kind: 'run',
|
|
770
|
-
runningScheduleId: action.payload.scheduleId,
|
|
771
|
-
};
|
|
772
|
-
},
|
|
773
|
-
},
|
|
774
|
-
runRoutineSuccess(draft) {
|
|
775
|
-
draft.routineMutation = {
|
|
776
|
-
fetchState: 'Completed',
|
|
777
|
-
error: undefined,
|
|
778
|
-
kind: 'run',
|
|
779
|
-
// Cleared: the request is done. The RUN is not — the answer arrives by
|
|
780
|
-
// email a minute or two later, and the row reports that through
|
|
781
|
-
// last_run_at on the next fetch, not through this flag.
|
|
782
|
-
runningScheduleId: undefined,
|
|
783
|
-
};
|
|
784
|
-
},
|
|
785
|
-
runRoutineFailure(draft, action) {
|
|
786
|
-
draft.routineMutation = {
|
|
787
|
-
fetchState: 'Error',
|
|
788
|
-
error: action.payload,
|
|
789
|
-
kind: 'run',
|
|
790
|
-
runningScheduleId: undefined,
|
|
791
|
-
};
|
|
792
|
-
},
|
|
793
|
-
saveRoutine: {
|
|
794
|
-
prepare: (payload) => ({
|
|
795
|
-
payload,
|
|
796
|
-
}),
|
|
797
|
-
reducer(draft) {
|
|
798
|
-
draft.routineMutation = {
|
|
799
|
-
fetchState: 'In-Progress',
|
|
800
|
-
error: undefined,
|
|
801
|
-
kind: 'save',
|
|
802
|
-
};
|
|
803
|
-
},
|
|
804
|
-
},
|
|
805
|
-
saveRoutineSuccess(draft) {
|
|
806
|
-
draft.routineMutation = {
|
|
807
|
-
fetchState: 'Completed',
|
|
808
|
-
error: undefined,
|
|
809
|
-
kind: 'save',
|
|
810
|
-
};
|
|
811
|
-
},
|
|
812
|
-
saveRoutineFailure(draft, action) {
|
|
813
|
-
// On its OWN slice, so the `fetchRoutines` this write triggers cannot
|
|
814
|
-
// clear the error in the same tick and report a failed save as nothing.
|
|
815
|
-
draft.routineMutation = {
|
|
816
|
-
fetchState: 'Error',
|
|
817
|
-
error: action.payload,
|
|
818
|
-
kind: 'save',
|
|
819
|
-
};
|
|
820
|
-
},
|
|
821
|
-
deleteRoutine: {
|
|
822
|
-
prepare: (payload) => ({ payload }),
|
|
823
|
-
reducer(draft, action) {
|
|
824
|
-
draft.routineMutation = {
|
|
825
|
-
fetchState: 'In-Progress',
|
|
826
|
-
error: undefined,
|
|
827
|
-
kind: 'delete',
|
|
828
|
-
};
|
|
829
|
-
// Removed immediately AND tombstoned. The row must leave the list now —
|
|
830
|
-
// waiting for the refetch makes the click feel ignored — and the
|
|
831
|
-
// tombstone is what stops an in-flight list response restoring it.
|
|
832
|
-
draft.routines.routines = draft.routines.routines.filter((routine) => routine.scheduleId !== action.payload.scheduleId);
|
|
833
|
-
draft.routines.deletedScheduleIds = [
|
|
834
|
-
...draft.routines.deletedScheduleIds,
|
|
835
|
-
action.payload.scheduleId,
|
|
836
|
-
];
|
|
837
|
-
},
|
|
838
|
-
},
|
|
839
|
-
deleteRoutineSuccess(draft, action) {
|
|
840
|
-
// The server has it. Nothing it sends from here on will contain this row,
|
|
841
|
-
// so the tombstone has done its job and holding it any longer is what
|
|
842
|
-
// makes a routine recreated under the same id invisible forever.
|
|
843
|
-
draft.routines.deletedScheduleIds = draft.routines.deletedScheduleIds.filter((id) => id !== action.payload.scheduleId);
|
|
844
|
-
draft.routineMutation = {
|
|
845
|
-
fetchState: 'Completed',
|
|
846
|
-
error: undefined,
|
|
847
|
-
kind: 'delete',
|
|
848
|
-
};
|
|
849
|
-
},
|
|
850
|
-
deleteRoutineFailure(draft, action) {
|
|
851
|
-
// The routine still exists and is still emailing. Dropping the tombstone
|
|
852
|
-
// is what lets the refetch put the row back — leaving it hidden would
|
|
853
|
-
// tell the user they had stopped something they had not, which is the
|
|
854
|
-
// worst outcome this list can produce.
|
|
855
|
-
draft.routines.deletedScheduleIds = draft.routines.deletedScheduleIds.filter((id) => id !== action.payload.scheduleId);
|
|
856
|
-
// Its own slice: the refetch that puts the row back would otherwise wipe
|
|
857
|
-
// this error, leaving the row silently reappearing with no explanation.
|
|
858
|
-
draft.routineMutation = {
|
|
859
|
-
fetchState: 'Error',
|
|
860
|
-
error: action.payload.status,
|
|
861
|
-
kind: 'delete',
|
|
862
|
-
};
|
|
863
|
-
},
|
|
864
609
|
fetchSkills(draft) {
|
|
865
610
|
// Read straight off `draft.skills` — no optional chain. This store is never
|
|
866
611
|
// persisted or rehydrated (no redux-persist anywhere in the repo, and no
|
|
@@ -1158,18 +903,8 @@ const aiCfoView = (0, toolkit_1.createSlice)({
|
|
|
1158
903
|
kind: undefined,
|
|
1159
904
|
};
|
|
1160
905
|
},
|
|
1161
|
-
openRoutinesBrowser(draft) {
|
|
1162
|
-
draft.uiState.isRoutinesBrowserOpen = true;
|
|
1163
|
-
// The two browsers share the page body, so opening one closes the other.
|
|
1164
|
-
// Leaving both true renders whichever the screen happens to check first.
|
|
1165
|
-
draft.uiState.isSkillsBrowserOpen = false;
|
|
1166
|
-
},
|
|
1167
|
-
closeRoutinesBrowser(draft) {
|
|
1168
|
-
draft.uiState.isRoutinesBrowserOpen = false;
|
|
1169
|
-
},
|
|
1170
906
|
openSkillsBrowser(draft) {
|
|
1171
907
|
draft.uiState.isSkillsBrowserOpen = true;
|
|
1172
|
-
draft.uiState.isRoutinesBrowserOpen = false;
|
|
1173
908
|
},
|
|
1174
909
|
closeSkillsBrowser(draft) {
|
|
1175
910
|
// Unguarded, unlike the implicit closes: an explicit close should clear a lingering
|
|
@@ -1188,5 +923,5 @@ const aiCfoView = (0, toolkit_1.createSlice)({
|
|
|
1188
923
|
});
|
|
1189
924
|
},
|
|
1190
925
|
});
|
|
1191
|
-
_a = aiCfoView.actions, exports.
|
|
926
|
+
_a = aiCfoView.actions, exports.submitQuestion = _a.submitQuestion, exports.submitQuestionSuccess = _a.submitQuestionSuccess, exports.submitQuestionFailure = _a.submitQuestionFailure, exports.updateResponseState = _a.updateResponseState, exports.updateAiCfoViewScrollPosition = _a.updateAiCfoViewScrollPosition, exports.updateCurrentInput = _a.updateCurrentInput, exports.submitFeedback = _a.submitFeedback, exports.submitFeedbackSuccess = _a.submitFeedbackSuccess, exports.submitFeedbackFailure = _a.submitFeedbackFailure, exports.setSession = _a.setSession, exports.createSession = _a.createSession, exports.createSessionSuccess = _a.createSessionSuccess, exports.createSessionFailure = _a.createSessionFailure, exports.createSessionAndSubmit = _a.createSessionAndSubmit, exports.initializeNewSessionState = _a.initializeNewSessionState, exports.createSessionAndSubmitSuccess = _a.createSessionAndSubmitSuccess, exports.createSessionAndSubmitFailure = _a.createSessionAndSubmitFailure, exports.fetchChatSessionsForUser = _a.fetchChatSessionsForUser, exports.fetchChatSessionsForUserSuccess = _a.fetchChatSessionsForUserSuccess, exports.fetchChatSessionsForUserFailure = _a.fetchChatSessionsForUserFailure, exports.fetchChatHistory = _a.fetchChatHistory, exports.fetchChatHistorySuccess = _a.fetchChatHistorySuccess, exports.fetchChatHistoryFailure = _a.fetchChatHistoryFailure, exports.clearCurrentSessionId = _a.clearCurrentSessionId, exports.clearLastContextMessage = _a.clearLastContextMessage, exports.stopSubmit = _a.stopSubmit, exports.stopSubmitSuccess = _a.stopSubmitSuccess, exports.stopSubmitFailure = _a.stopSubmitFailure, exports.stopSubmitQuestion = _a.stopSubmitQuestion, exports.stopSubmitQuestionSuccess = _a.stopSubmitQuestionSuccess, exports.stopSubmitQuestionFailure = _a.stopSubmitQuestionFailure, exports.acceptMasterTOS = _a.acceptMasterTOS, exports.acceptMasterTOSSuccess = _a.acceptMasterTOSSuccess, exports.acceptMasterTOSFailure = _a.acceptMasterTOSFailure, exports.deleteChatSession = _a.deleteChatSession, exports.deleteChatSessionSuccess = _a.deleteChatSessionSuccess, exports.deleteChatSessionFailure = _a.deleteChatSessionFailure, exports.clearDeleteChatSessionStatus = _a.clearDeleteChatSessionStatus, exports.updateCotCollapsedState = _a.updateCotCollapsedState, exports.fetchSuggestedQuestions = _a.fetchSuggestedQuestions, exports.fetchSuggestedQuestionsSuccess = _a.fetchSuggestedQuestionsSuccess, exports.fetchSuggestedQuestionsFailure = _a.fetchSuggestedQuestionsFailure, exports.fetchSkills = _a.fetchSkills, exports.fetchSkillsSuccess = _a.fetchSkillsSuccess, exports.fetchSkillsFailure = _a.fetchSkillsFailure, exports.fetchSkillDetail = _a.fetchSkillDetail, exports.fetchSkillDetailSuccess = _a.fetchSkillDetailSuccess, exports.fetchSkillDetailFailure = _a.fetchSkillDetailFailure, exports.clearSkillDetail = _a.clearSkillDetail, exports.clearSkillMutation = _a.clearSkillMutation, exports.deleteSkill = _a.deleteSkill, exports.deleteSkillSuccess = _a.deleteSkillSuccess, exports.deleteSkillFailure = _a.deleteSkillFailure, exports.fetchSkillVersionBody = _a.fetchSkillVersionBody, exports.fetchSkillVersionBodySuccess = _a.fetchSkillVersionBodySuccess, exports.fetchSkillVersionBodyFailure = _a.fetchSkillVersionBodyFailure, exports.fetchSkillVersions = _a.fetchSkillVersions, exports.fetchSkillVersionsSuccess = _a.fetchSkillVersionsSuccess, exports.fetchSkillVersionsFailure = _a.fetchSkillVersionsFailure, exports.saveSkill = _a.saveSkill, exports.saveSkillSuccess = _a.saveSkillSuccess, exports.saveSkillFailure = _a.saveSkillFailure, exports.setSkillVisibility = _a.setSkillVisibility, exports.setSkillVisibilitySuccess = _a.setSkillVisibilitySuccess, exports.setSkillVisibilityFailure = _a.setSkillVisibilityFailure, exports.openSkillsBrowser = _a.openSkillsBrowser, exports.closeSkillsBrowser = _a.closeSkillsBrowser, exports.applyAiCfoSidePanelHostPageTransition = _a.applyAiCfoSidePanelHostPageTransition, exports.clearAiCfoSidePanelHostPageContext = _a.clearAiCfoSidePanelHostPageContext;
|
|
1192
927
|
exports.default = aiCfoView.reducer;
|
|
@@ -4,7 +4,7 @@ import { FetchStateAndError } from '../../commonStateTypes/common';
|
|
|
4
4
|
import { SelectorView } from '../../commonStateTypes/viewAndReport/viewAndReport';
|
|
5
5
|
import { AiCfoSelectorView } from '../../entity/aiCfo/aiCfoSelector';
|
|
6
6
|
import { RootState } from '../../rootStateTypes';
|
|
7
|
-
import { AiCfoViewUIState, SkillDetailState, SkillMutationState, SkillVersionBodyState, SkillVersionsState,
|
|
7
|
+
import { AiCfoViewUIState, SkillDetailState, SkillMutationState, SkillVersionBodyState, SkillVersionsState, SkillsState, SuggestedQuestionsForPageContext } from './aiCfoViewState';
|
|
8
8
|
export interface AiCfoViewSelector extends SelectorView, AiCfoSelectorView {
|
|
9
9
|
createSessionAndSubmitState: FetchStateAndError;
|
|
10
10
|
createSessionState: FetchStateAndError;
|
|
@@ -23,18 +23,6 @@ export interface AiCfoViewSelector extends SelectorView, AiCfoSelectorView {
|
|
|
23
23
|
}
|
|
24
24
|
export declare const getAiCfoView: (state: RootState) => AiCfoViewSelector;
|
|
25
25
|
export declare function getSuggestedQuestionsForPageContext(state: RootState, pageContext: AiCfoSuggestedQuestionsPageContext): SuggestedQuestionsForPageContext | undefined;
|
|
26
|
-
export declare function getRoutineMutation(state: RootState): RoutineMutationState;
|
|
27
|
-
export declare function getRoutineRuns(state: RootState): RoutineRunsState;
|
|
28
|
-
export declare function getRoutines(state: RootState): RoutinesState;
|
|
29
|
-
/**
|
|
30
|
-
* Whether another routine may be created.
|
|
31
|
-
*
|
|
32
|
-
* False while the cap is still unknown: offering the control and failing on
|
|
33
|
-
* save is worse than withholding it for the moment the list takes to load.
|
|
34
|
-
*/
|
|
35
|
-
export declare function canCreateRoutine(state: RootState): boolean;
|
|
36
|
-
/** True only when the server says Routines is on for this tenant. */
|
|
37
|
-
export declare function getRoutinesEnabled(state: RootState): boolean;
|
|
38
26
|
export declare function getSkills(state: RootState): SkillsState;
|
|
39
27
|
export declare function getSkillDetail(state: RootState): SkillDetailState;
|
|
40
28
|
export declare function getSkillVersions(state: RootState): SkillVersionsState;
|
|
@@ -2,11 +2,6 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.getAiCfoView = void 0;
|
|
4
4
|
exports.getSuggestedQuestionsForPageContext = getSuggestedQuestionsForPageContext;
|
|
5
|
-
exports.getRoutineMutation = getRoutineMutation;
|
|
6
|
-
exports.getRoutineRuns = getRoutineRuns;
|
|
7
|
-
exports.getRoutines = getRoutines;
|
|
8
|
-
exports.canCreateRoutine = canCreateRoutine;
|
|
9
|
-
exports.getRoutinesEnabled = getRoutinesEnabled;
|
|
10
5
|
exports.getSkills = getSkills;
|
|
11
6
|
exports.getSkillDetail = getSkillDetail;
|
|
12
7
|
exports.getSkillVersions = getSkillVersions;
|
|
@@ -80,56 +75,6 @@ const EMPTY_SKILL_MUTATION_STATE = {
|
|
|
80
75
|
savedMacroId: undefined,
|
|
81
76
|
kind: undefined,
|
|
82
77
|
};
|
|
83
|
-
// Stable fallback, same reasoning as EMPTY_SKILLS_STATE: a fresh literal each
|
|
84
|
-
// call defeats useSelector identity checks and re-renders the list for nothing.
|
|
85
|
-
const EMPTY_ROUTINES_STATE = {
|
|
86
|
-
fetchState: 'Not-Started',
|
|
87
|
-
error: undefined,
|
|
88
|
-
routines: [],
|
|
89
|
-
// 0 withholds "New routine" until the server states the cap. Guessing a number
|
|
90
|
-
// either blocks a user who is under it or invites one who is over it into a
|
|
91
|
-
// form that cannot save.
|
|
92
|
-
maxRoutines: 0,
|
|
93
|
-
// false, so the Routines entry stays hidden until the server confirms the
|
|
94
|
-
// feature is on. Defaulting true would flash an entry at tenants without it.
|
|
95
|
-
routinesEnabled: false,
|
|
96
|
-
deletedScheduleIds: [],
|
|
97
|
-
};
|
|
98
|
-
const EMPTY_ROUTINE_MUTATION_STATE = {
|
|
99
|
-
fetchState: 'Not-Started',
|
|
100
|
-
error: undefined,
|
|
101
|
-
kind: undefined,
|
|
102
|
-
};
|
|
103
|
-
function getRoutineMutation(state) {
|
|
104
|
-
return state.aiCfoViewState?.routineMutation ?? EMPTY_ROUTINE_MUTATION_STATE;
|
|
105
|
-
}
|
|
106
|
-
const EMPTY_ROUTINE_RUNS_STATE = {
|
|
107
|
-
fetchState: 'Not-Started',
|
|
108
|
-
error: undefined,
|
|
109
|
-
runs: [],
|
|
110
|
-
scheduleId: null,
|
|
111
|
-
sessionId: null,
|
|
112
|
-
};
|
|
113
|
-
function getRoutineRuns(state) {
|
|
114
|
-
return state.aiCfoViewState?.routineRuns ?? EMPTY_ROUTINE_RUNS_STATE;
|
|
115
|
-
}
|
|
116
|
-
function getRoutines(state) {
|
|
117
|
-
return state.aiCfoViewState?.routines ?? EMPTY_ROUTINES_STATE;
|
|
118
|
-
}
|
|
119
|
-
/**
|
|
120
|
-
* Whether another routine may be created.
|
|
121
|
-
*
|
|
122
|
-
* False while the cap is still unknown: offering the control and failing on
|
|
123
|
-
* save is worse than withholding it for the moment the list takes to load.
|
|
124
|
-
*/
|
|
125
|
-
function canCreateRoutine(state) {
|
|
126
|
-
const { maxRoutines, routines } = getRoutines(state);
|
|
127
|
-
return maxRoutines > 0 && routines.length < maxRoutines;
|
|
128
|
-
}
|
|
129
|
-
/** True only when the server says Routines is on for this tenant. */
|
|
130
|
-
function getRoutinesEnabled(state) {
|
|
131
|
-
return getRoutines(state).routinesEnabled;
|
|
132
|
-
}
|
|
133
78
|
function getSkills(state) {
|
|
134
79
|
return state.aiCfoViewState?.skills ?? EMPTY_SKILLS_STATE;
|
|
135
80
|
}
|
|
@@ -37,14 +37,6 @@ export interface AiCfoViewUIState {
|
|
|
37
37
|
* the sidebar drawer on mobile) while the browser renders in `AiCfoPage` — sibling
|
|
38
38
|
* subtrees with no common owner below the store.
|
|
39
39
|
*/
|
|
40
|
-
/**
|
|
41
|
-
* Whether the AI CFO page body shows the Routines list instead of the chat.
|
|
42
|
-
*
|
|
43
|
-
* Lives here, not in component state, for the same reason as the Skills flag:
|
|
44
|
-
* the entries that open it are in the app drawer and the mobile sidebar,
|
|
45
|
-
* neither of which is an ancestor of the screen that renders it.
|
|
46
|
-
*/
|
|
47
|
-
isRoutinesBrowserOpen?: boolean;
|
|
48
40
|
isSkillsBrowserOpen?: boolean;
|
|
49
41
|
lastContextMessage?: string;
|
|
50
42
|
lastContextStatus?: ContextStatus;
|
|
@@ -98,150 +90,6 @@ export interface SkillDetail {
|
|
|
98
90
|
instructionsCharCount: number;
|
|
99
91
|
skill: Skill;
|
|
100
92
|
}
|
|
101
|
-
/** How often a routine runs. `once` exists server-side but is not offered. */
|
|
102
|
-
export type RoutineRecurrence = 'daily' | 'weekly' | 'monthly';
|
|
103
|
-
/** The outcome of a routine's last run, as the list badges it. */
|
|
104
|
-
export type RoutineStatus = 'succeeded' | 'failed' | 'timeout';
|
|
105
|
-
/**
|
|
106
|
-
* A scheduled recurring run, from GET /1.0/routines.
|
|
107
|
-
*
|
|
108
|
-
* A routine is a schedule pointing at a skill — which is why `macroId` is always
|
|
109
|
-
* present even for one the user wrote as a bare prompt. In that case `isAdHoc`
|
|
110
|
-
* is true and the skill exists only behind this routine: it is not in the `/`
|
|
111
|
-
* menu, and the list offers "save as a skill" rather than "open the skill".
|
|
112
|
-
*/
|
|
113
|
-
export interface Routine {
|
|
114
|
-
consecutiveFailures: number;
|
|
115
|
-
dayOfMonth: number | null;
|
|
116
|
-
/** False when paused by the user, or auto-paused after repeated failures. */
|
|
117
|
-
enabled: boolean;
|
|
118
|
-
hour: number;
|
|
119
|
-
isAdHoc: boolean;
|
|
120
|
-
lastRunAt: string | null;
|
|
121
|
-
lastStatus: RoutineStatus | null;
|
|
122
|
-
macroId: ID;
|
|
123
|
-
minute: number;
|
|
124
|
-
name: string;
|
|
125
|
-
nextRunAt: string | null;
|
|
126
|
-
/**
|
|
127
|
-
* The skill version this routine actually runs.
|
|
128
|
-
*
|
|
129
|
-
* Pinned deliberately: editing a skill must never silently change what goes
|
|
130
|
-
* out unattended, so moving a routine forward is an explicit act. Null only
|
|
131
|
-
* for a routine that predates pinning.
|
|
132
|
-
*/
|
|
133
|
-
pinnedVersion: number | null;
|
|
134
|
-
/** Null when this client does not recognise the server's cadence. */
|
|
135
|
-
recurrence: RoutineRecurrence | null;
|
|
136
|
-
scheduleId: ID;
|
|
137
|
-
/** The one conversation this routine appends to, run after run. */
|
|
138
|
-
sessionId: string | null;
|
|
139
|
-
/** Null only if the server omitted it, which means something is wrong. */
|
|
140
|
-
tzName: string | null;
|
|
141
|
-
/** Runs whose answer has not been opened. Drives the "N new" badge. */
|
|
142
|
-
unreadRuns: number;
|
|
143
|
-
weekday: number | null;
|
|
144
|
-
}
|
|
145
|
-
/**
|
|
146
|
-
* What the routine form submits.
|
|
147
|
-
*
|
|
148
|
-
* Exactly one of `macroId` and `prompt`: scheduling an existing skill, or a
|
|
149
|
-
* one-off the user typed. Both, or neither, is refused by the server.
|
|
150
|
-
*/
|
|
151
|
-
export interface RoutineDraft {
|
|
152
|
-
hour: number;
|
|
153
|
-
name: string;
|
|
154
|
-
recurrence: RoutineRecurrence;
|
|
155
|
-
tzName: string;
|
|
156
|
-
dayOfMonth?: number;
|
|
157
|
-
enabled?: boolean;
|
|
158
|
-
macroId?: ID;
|
|
159
|
-
minute?: number;
|
|
160
|
-
prompt?: string;
|
|
161
|
-
weekday?: number;
|
|
162
|
-
}
|
|
163
|
-
/**
|
|
164
|
-
* In-flight state for a routine WRITE, kept apart from the list.
|
|
165
|
-
*
|
|
166
|
-
* The list and the mutations shared one `fetchState`/`error` pair, and every
|
|
167
|
-
* write refetches — so a failed save or delete had its error erased by its own
|
|
168
|
-
* refresh, in the same tick. For a feature that emails financial reports on a
|
|
169
|
-
* schedule, "we told you it saved and it did not" is the worst thing this can
|
|
170
|
-
* do. The skills slice keeps `skillMutation` separate for exactly this reason.
|
|
171
|
-
*/
|
|
172
|
-
export interface RoutineMutationState extends FetchStateAndError {
|
|
173
|
-
/** WHICH write this is reporting, so a delete cannot drive a save's button. */
|
|
174
|
-
kind: 'save' | 'delete' | 'run' | undefined;
|
|
175
|
-
/**
|
|
176
|
-
* The routine a Run-now was requested for.
|
|
177
|
-
*
|
|
178
|
-
* Held because the list shows the feedback on that ROW, and `kind` alone
|
|
179
|
-
* cannot say which one — unlike save and delete, which drive a single form or
|
|
180
|
-
* a single confirm.
|
|
181
|
-
*/
|
|
182
|
-
runningScheduleId?: ID;
|
|
183
|
-
}
|
|
184
|
-
/** The outcome of one run, as the history badges it. */
|
|
185
|
-
export type RoutineRunStatus = 'claimed' | 'running' | 'succeeded' | 'failed' | 'timeout';
|
|
186
|
-
export interface RoutineRun {
|
|
187
|
-
attempt: number;
|
|
188
|
-
/** Why it failed. The only place a failed run explains itself. */
|
|
189
|
-
error: string | null;
|
|
190
|
-
finishedAt: string | null;
|
|
191
|
-
/** Started by someone pressing Run, rather than by the schedule. */
|
|
192
|
-
isManual: boolean;
|
|
193
|
-
/**
|
|
194
|
-
* The message this run produced, inside the routine's one conversation.
|
|
195
|
-
*
|
|
196
|
-
* Null when the agent's response did not name one — the run then opens the
|
|
197
|
-
* thread rather than a message that may not exist.
|
|
198
|
-
*/
|
|
199
|
-
questionAnswerId: ID | null;
|
|
200
|
-
runId: ID;
|
|
201
|
-
scheduledFor: string | null;
|
|
202
|
-
/** This run's own conversation. Null on runs from before runs had one. */
|
|
203
|
-
sessionId: ID | null;
|
|
204
|
-
startedAt: string | null;
|
|
205
|
-
/** Null when this client does not recognise the server's status. */
|
|
206
|
-
status: RoutineRunStatus | null;
|
|
207
|
-
}
|
|
208
|
-
/**
|
|
209
|
-
* The run history for ONE routine — whichever the user has expanded.
|
|
210
|
-
*
|
|
211
|
-
* A single slot rather than a map keyed by routine: only one history is open at
|
|
212
|
-
* a time, so a map would be state to invalidate for no behaviour anyone can
|
|
213
|
-
* see.
|
|
214
|
-
*/
|
|
215
|
-
export interface RoutineRunsState extends FetchStateAndError {
|
|
216
|
-
runs: RoutineRun[];
|
|
217
|
-
/** Which routine these belong to, so a stale response cannot fill the wrong list. */
|
|
218
|
-
scheduleId: ID | null;
|
|
219
|
-
/** The conversation every run of this routine appends to. */
|
|
220
|
-
sessionId: ID | null;
|
|
221
|
-
}
|
|
222
|
-
export interface RoutinesState extends FetchStateAndError {
|
|
223
|
-
/**
|
|
224
|
-
* Routines deleted locally, so a list response already in flight cannot put
|
|
225
|
-
* them back. Same race, and the same reasoning, as `deletedMacroIds` on the
|
|
226
|
-
* skills slice: a save refetches, and a delete can land while that is
|
|
227
|
-
* outstanding.
|
|
228
|
-
*/
|
|
229
|
-
deletedScheduleIds: ID[];
|
|
230
|
-
/**
|
|
231
|
-
* The server's per-user cap, so the client can disable "New routine" with a
|
|
232
|
-
* reason rather than letting the user fill in a form and fail on save.
|
|
233
|
-
*/
|
|
234
|
-
maxRoutines: number;
|
|
235
|
-
routines: Routine[];
|
|
236
|
-
/**
|
|
237
|
-
* Whether the feature is on for this tenant, from the server.
|
|
238
|
-
*
|
|
239
|
-
* Starts false so the Routines entry stays hidden until the server says
|
|
240
|
-
* otherwise — an empty `routines` list is not evidence either way, and a
|
|
241
|
-
* tenant without the feature would otherwise see a dead entry.
|
|
242
|
-
*/
|
|
243
|
-
routinesEnabled: boolean;
|
|
244
|
-
}
|
|
245
93
|
export interface SkillsState extends FetchStateAndError {
|
|
246
94
|
/**
|
|
247
95
|
* Whether the signed-in user may publish a skill tenant-wide. From the server, which
|
|
@@ -360,11 +208,6 @@ export interface AiCfoViewState extends FetchStateAndError {
|
|
|
360
208
|
reasoning: FetchStateAndError;
|
|
361
209
|
thought: FetchStateAndError;
|
|
362
210
|
}>;
|
|
363
|
-
/** The outcome of the last routine write, safe from list refreshes. */
|
|
364
|
-
routineMutation: RoutineMutationState;
|
|
365
|
-
routineRuns: RoutineRunsState;
|
|
366
|
-
/** Scheduled recurring runs — the Routines tab. */
|
|
367
|
-
routines: RoutinesState;
|
|
368
211
|
/** The skill whose prompt is open in the Skills browser. */
|
|
369
212
|
skillDetail: SkillDetailState;
|
|
370
213
|
/** Create / save-new-version / delete, while one is in flight. */
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ReportByClassMetadataPayloadV2, SectionByClassCOABalanceGroupedPayloadV2 } from '../../commonPayloadTypes/classesView/reportByClassPayloadV2';
|
|
2
2
|
import { ZeniReportResponse } from '../../responsePayload';
|
|
3
3
|
interface OperatingActivitiesClassesView {
|
|
4
4
|
adjustments: SectionByClassCOABalanceGroupedPayloadV2;
|
|
5
|
-
net_income:
|
|
5
|
+
net_income: SectionByClassCOABalanceGroupedPayloadV2;
|
|
6
6
|
}
|
|
7
7
|
export interface CashFlowClassesViewPayload extends ReportByClassMetadataPayloadV2 {
|
|
8
|
-
change_in_cash_and_equivalents:
|
|
8
|
+
change_in_cash_and_equivalents: SectionByClassCOABalanceGroupedPayloadV2;
|
|
9
9
|
financing_activities: SectionByClassCOABalanceGroupedPayloadV2;
|
|
10
10
|
investing_activities: SectionByClassCOABalanceGroupedPayloadV2;
|
|
11
|
-
operating_activities:
|
|
11
|
+
operating_activities: SectionByClassCOABalanceGroupedPayloadV2 & OperatingActivitiesClassesView;
|
|
12
12
|
}
|
|
13
13
|
export type CashFlowReportClassesViewResponse = ZeniReportResponse<CashFlowClassesViewPayload>;
|
|
14
14
|
export {};
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { ZeniReportResponse } from '../../responsePayload';
|
|
2
|
-
import {
|
|
2
|
+
import { ReportByProjectMetadataPayloadV2, SectionByProjectCOABalanceGroupedPayloadV2 } from '../profitAndLossProjectView/profitAndLossProjectViewPayload';
|
|
3
3
|
interface OperatingActivitiesProjectView {
|
|
4
4
|
adjustments: SectionByProjectCOABalanceGroupedPayloadV2;
|
|
5
|
-
net_income:
|
|
5
|
+
net_income: SectionByProjectCOABalanceGroupedPayloadV2;
|
|
6
6
|
}
|
|
7
7
|
export interface CashFlowProjectViewPayload extends ReportByProjectMetadataPayloadV2 {
|
|
8
|
-
change_in_cash_and_equivalents:
|
|
8
|
+
change_in_cash_and_equivalents: SectionByProjectCOABalanceGroupedPayloadV2;
|
|
9
9
|
financing_activities: SectionByProjectCOABalanceGroupedPayloadV2;
|
|
10
10
|
investing_activities: SectionByProjectCOABalanceGroupedPayloadV2;
|
|
11
|
-
operating_activities:
|
|
11
|
+
operating_activities: SectionByProjectCOABalanceGroupedPayloadV2 & OperatingActivitiesProjectView;
|
|
12
12
|
}
|
|
13
13
|
export type CashFlowReportProjectViewResponse = ZeniReportResponse<CashFlowProjectViewPayload>;
|
|
14
14
|
export {};
|