@orbe-agro/client-core 5.6.262 → 5.6.264
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/dist/@ecme/assets/styles/app.css +240 -7
- package/dist/@ecme/assets/styles/tailwind/index.css +252 -8
- package/dist/@ecme/components/layouts/PostLoginLayout/PostLoginLayout.js +4 -0
- package/dist/@ecme/components/layouts/PostLoginLayout/PostLoginLayout.js.map +1 -1
- package/dist/@ecme/components/layouts/PostLoginLayout/components/CollapsibleSide.stories.js.map +1 -1
- package/dist/@ecme/components/layouts/PostLoginLayout/components/ContentOverlay.stories.js.map +1 -1
- package/dist/@ecme/components/layouts/PostLoginLayout/components/FrameLessSide.stories.js.map +1 -1
- package/dist/@ecme/components/layouts/PostLoginLayout/components/StackedSide.stories.js.map +1 -1
- package/dist/@ecme/components/layouts/PostLoginLayout/components/TopBarClassic.stories.js.map +1 -1
- package/dist/@ecme/components/template/Footer.js +1 -1
- package/dist/@ecme/components/template/Header.stories.js.map +1 -1
- package/dist/@ecme/components/template/Notification/Notification.js +1 -4
- package/dist/@ecme/components/template/Notification/Notification.js.map +1 -1
- package/dist/@ecme/components/template/OrbeAiWidget/OrbeAiChatDrawer.js +121 -0
- package/dist/@ecme/components/template/OrbeAiWidget/OrbeAiChatDrawer.js.map +1 -0
- package/dist/@ecme/components/template/OrbeAiWidget/OrbeAiWidget.js +127 -0
- package/dist/@ecme/components/template/OrbeAiWidget/OrbeAiWidget.js.map +1 -0
- package/dist/@ecme/components/template/OrbeAiWidget/ResizeHandles.js +37 -0
- package/dist/@ecme/components/template/OrbeAiWidget/ResizeHandles.js.map +1 -0
- package/dist/@ecme/components/template/OrbeAiWidget/index.js +5 -0
- package/dist/@ecme/components/template/OrbeAiWidget/index.js.map +1 -0
- package/dist/@ecme/components/template/OrbeAiWidget/useResizablePanel.js +91 -0
- package/dist/@ecme/components/template/OrbeAiWidget/useResizablePanel.js.map +1 -0
- package/dist/@ecme/components/template/Search.js +280 -73
- package/dist/@ecme/components/template/Search.js.map +1 -1
- package/dist/@ecme/components/template/Search.stories.js +17 -2
- package/dist/@ecme/components/template/Search.stories.js.map +1 -1
- package/dist/@ecme/components/ui/Dropdown/DropdownMenu.js +5 -1
- package/dist/@ecme/components/ui/Dropdown/DropdownMenu.js.map +1 -1
- package/dist/@ecme/components/view/ChatBox/ChatBox.js +9 -1
- package/dist/@ecme/components/view/ChatBox/ChatBox.js.map +1 -1
- package/dist/@ecme/components/view/ChatBox/components/MessageList.js +8 -4
- package/dist/@ecme/components/view/ChatBox/components/MessageList.js.map +1 -1
- package/dist/@ecme/configs/navigation.config/concepts.navigation.config.js +0 -16
- package/dist/@ecme/configs/navigation.config/concepts.navigation.config.js.map +1 -1
- package/dist/@ecme/configs/routes.config/conceptsRoute.js +0 -9
- package/dist/@ecme/configs/routes.config/conceptsRoute.js.map +1 -1
- package/dist/@ecme/index.js +7 -7
- package/dist/@ecme/index.js.map +1 -1
- package/dist/@ecme/locales/index.js +1 -4
- package/dist/@ecme/locales/index.js.map +1 -1
- package/dist/@ecme/locales/lang/ptBR/nav.js +1 -0
- package/dist/@ecme/locales/lang/ptBR/nav.js.map +1 -1
- package/dist/@ecme/mock/data/favoritosMenuData.js +5 -0
- package/dist/@ecme/mock/data/favoritosMenuData.js.map +1 -0
- package/dist/@ecme/services/AiService.js +95 -12
- package/dist/@ecme/services/AiService.js.map +1 -1
- package/dist/@ecme/services/aiAuthHeaders.js +35 -0
- package/dist/@ecme/services/aiAuthHeaders.js.map +1 -0
- package/dist/@ecme/services/axios/AxiosBase.js +30 -24
- package/dist/@ecme/services/axios/AxiosBase.js.map +1 -1
- package/dist/@ecme/services/axios/AxiosRequestIntrceptorConfigCallback.js +4 -27
- package/dist/@ecme/services/axios/AxiosRequestIntrceptorConfigCallback.js.map +1 -1
- package/dist/@ecme/services/index.js +8 -3
- package/dist/@ecme/services/sseParser.js +42 -0
- package/dist/@ecme/services/sseParser.js.map +1 -0
- package/dist/@ecme/views/concepts/ai/Chat/components/AiErrorMessage.js +15 -0
- package/dist/@ecme/views/concepts/ai/Chat/components/AiErrorMessage.js.map +1 -0
- package/dist/@ecme/views/concepts/ai/Chat/components/AiThinkingIndicator.js +23 -0
- package/dist/@ecme/views/concepts/ai/Chat/components/AiThinkingIndicator.js.map +1 -0
- package/dist/@ecme/views/concepts/ai/Chat/components/ApprovalCard.js +73 -0
- package/dist/@ecme/views/concepts/ai/Chat/components/ApprovalCard.js.map +1 -0
- package/dist/@ecme/views/concepts/ai/Chat/components/ChatHistory.js +9 -23
- package/dist/@ecme/views/concepts/ai/Chat/components/ChatHistory.js.map +1 -1
- package/dist/@ecme/views/concepts/ai/Chat/components/ChatHistoryItem.js +6 -16
- package/dist/@ecme/views/concepts/ai/Chat/components/ChatHistoryItem.js.map +1 -1
- package/dist/@ecme/views/concepts/ai/Chat/components/ChatHistoryRenameDialog.js +10 -7
- package/dist/@ecme/views/concepts/ai/Chat/components/ChatHistoryRenameDialog.js.map +1 -1
- package/dist/@ecme/views/concepts/ai/Chat/components/ChatLandingView.js +37 -36
- package/dist/@ecme/views/concepts/ai/Chat/components/ChatLandingView.js.map +1 -1
- package/dist/@ecme/views/concepts/ai/Chat/components/ChatView.js +62 -18
- package/dist/@ecme/views/concepts/ai/Chat/components/ChatView.js.map +1 -1
- package/dist/@ecme/views/concepts/ai/Chat/components/DataRequestCard.js +99 -0
- package/dist/@ecme/views/concepts/ai/Chat/components/DataRequestCard.js.map +1 -0
- package/dist/@ecme/views/concepts/ai/Chat/components/ToolCallChip.js +153 -0
- package/dist/@ecme/views/concepts/ai/Chat/components/ToolCallChip.js.map +1 -0
- package/dist/@ecme/views/concepts/ai/Chat/components/toolPresentation.js +195 -0
- package/dist/@ecme/views/concepts/ai/Chat/components/toolPresentation.js.map +1 -0
- package/dist/@ecme/views/concepts/ai/Chat/hooks/useChatConversations.js +83 -0
- package/dist/@ecme/views/concepts/ai/Chat/hooks/useChatConversations.js.map +1 -0
- package/dist/@ecme/views/concepts/ai/Chat/hooks/useChatSend.js +139 -22
- package/dist/@ecme/views/concepts/ai/Chat/hooks/useChatSend.js.map +1 -1
- package/dist/@ecme/views/concepts/ai/Chat/hooks/useConversationMessages.js +37 -0
- package/dist/@ecme/views/concepts/ai/Chat/hooks/useConversationMessages.js.map +1 -0
- package/dist/@ecme/views/concepts/ai/Chat/store/generativeChatStore.js +53 -13
- package/dist/@ecme/views/concepts/ai/Chat/store/generativeChatStore.js.map +1 -1
- package/dist/@ecme/views/concepts/ai/Chat/utils.js +16 -1
- package/dist/@ecme/views/concepts/ai/Chat/utils.js.map +1 -1
- package/dist/@ecme/views/dashboards/FavoritesLanding/FavoritesLanding.js +92 -0
- package/dist/@ecme/views/dashboards/FavoritesLanding/FavoritesLanding.js.map +1 -0
- package/dist/@ecme/views/dashboards/FavoritesLanding/index.js +5 -0
- package/dist/@ecme/views/dashboards/FavoritesLanding/index.js.map +1 -0
- package/dist/@ecme/views/dashboards/FavoritesLanding/types.js +2 -0
- package/dist/@ecme/views/dashboards/FavoritesLanding/types.js.map +1 -0
- package/dist/@ecme/views/dashboards/FavoritesLanding/utils.js +36 -0
- package/dist/@ecme/views/dashboards/FavoritesLanding/utils.js.map +1 -0
- package/dist/@ecme/views/dashboards/index.js +1 -4
- package/dist/@ecme/views/dashboards/index.js.map +1 -1
- package/dist/@ecme/views/index.js +0 -2
- package/dist/@ecme/views/index.js.map +1 -1
- package/dist/@types/@ecme/components/layouts/PostLoginLayout/PostLoginLayout.d.ts.map +1 -1
- package/dist/@types/@ecme/components/layouts/PostLoginLayout/components/CollapsibleSide.stories.d.ts +7 -0
- package/dist/@types/@ecme/components/layouts/PostLoginLayout/components/CollapsibleSide.stories.d.ts.map +1 -0
- package/dist/@types/@ecme/components/layouts/PostLoginLayout/components/ContentOverlay.stories.d.ts +7 -0
- package/dist/@types/@ecme/components/layouts/PostLoginLayout/components/ContentOverlay.stories.d.ts.map +1 -0
- package/dist/@types/@ecme/components/layouts/PostLoginLayout/components/FrameLessSide.stories.d.ts +7 -0
- package/dist/@types/@ecme/components/layouts/PostLoginLayout/components/FrameLessSide.stories.d.ts.map +1 -0
- package/dist/@types/@ecme/components/layouts/PostLoginLayout/components/StackedSide.stories.d.ts +7 -0
- package/dist/@types/@ecme/components/layouts/PostLoginLayout/components/StackedSide.stories.d.ts.map +1 -0
- package/dist/@types/@ecme/components/layouts/PostLoginLayout/components/TopBarClassic.stories.d.ts +7 -0
- package/dist/@types/@ecme/components/layouts/PostLoginLayout/components/TopBarClassic.stories.d.ts.map +1 -0
- package/dist/@types/@ecme/components/template/Header.stories.d.ts +7 -0
- package/dist/@types/@ecme/components/template/Header.stories.d.ts.map +1 -0
- package/dist/@types/@ecme/components/template/OrbeAiWidget/OrbeAiChatDrawer.d.ts +14 -0
- package/dist/@types/@ecme/components/template/OrbeAiWidget/OrbeAiChatDrawer.d.ts.map +1 -0
- package/dist/@types/@ecme/components/template/OrbeAiWidget/OrbeAiWidget.d.ts +3 -0
- package/dist/@types/@ecme/components/template/OrbeAiWidget/OrbeAiWidget.d.ts.map +1 -0
- package/dist/@types/@ecme/components/template/OrbeAiWidget/ResizeHandles.d.ts +9 -0
- package/dist/@types/@ecme/components/template/OrbeAiWidget/ResizeHandles.d.ts.map +1 -0
- package/dist/@types/@ecme/components/template/OrbeAiWidget/index.d.ts +2 -0
- package/dist/@types/@ecme/components/template/OrbeAiWidget/index.d.ts.map +1 -0
- package/dist/@types/@ecme/components/template/OrbeAiWidget/useResizablePanel.d.ts +26 -0
- package/dist/@types/@ecme/components/template/OrbeAiWidget/useResizablePanel.d.ts.map +1 -0
- package/dist/@types/@ecme/components/template/Search.d.ts +2 -0
- package/dist/@types/@ecme/components/template/Search.d.ts.map +1 -1
- package/dist/@types/@ecme/components/template/Search.stories.d.ts +8 -0
- package/dist/@types/@ecme/components/template/Search.stories.d.ts.map +1 -0
- package/dist/@types/@ecme/components/ui/Dropdown/DropdownMenu.d.ts +2 -0
- package/dist/@types/@ecme/components/ui/Dropdown/DropdownMenu.d.ts.map +1 -1
- package/dist/@types/@ecme/components/view/ChatBox/ChatBox.d.ts.map +1 -1
- package/dist/@types/@ecme/components/view/ChatBox/components/MessageList.d.ts +5 -0
- package/dist/@types/@ecme/components/view/ChatBox/components/MessageList.d.ts.map +1 -1
- package/dist/@types/@ecme/configs/navigation.config/concepts.navigation.config.d.ts.map +1 -1
- package/dist/@types/@ecme/configs/routes.config/conceptsRoute.d.ts.map +1 -1
- package/dist/@types/@ecme/locales/index.d.ts +0 -1
- package/dist/@types/@ecme/locales/index.d.ts.map +1 -1
- package/dist/@types/@ecme/locales/lang/ptBR/nav.d.ts.map +1 -1
- package/dist/@types/@ecme/mock/data/favoritosMenuData.d.ts +3 -0
- package/dist/@types/@ecme/mock/data/favoritosMenuData.d.ts.map +1 -0
- package/dist/@types/@ecme/services/AiService.d.ts +44 -4
- package/dist/@types/@ecme/services/AiService.d.ts.map +1 -1
- package/dist/@types/@ecme/services/aiAuthHeaders.d.ts +12 -0
- package/dist/@types/@ecme/services/aiAuthHeaders.d.ts.map +1 -0
- package/dist/@types/@ecme/services/axios/AxiosBase.d.ts +12 -0
- package/dist/@types/@ecme/services/axios/AxiosBase.d.ts.map +1 -1
- package/dist/@types/@ecme/services/axios/AxiosRequestIntrceptorConfigCallback.d.ts +6 -0
- package/dist/@types/@ecme/services/axios/AxiosRequestIntrceptorConfigCallback.d.ts.map +1 -1
- package/dist/@types/@ecme/services/sseParser.d.ts +20 -0
- package/dist/@types/@ecme/services/sseParser.d.ts.map +1 -0
- package/dist/@types/@ecme/views/concepts/ai/Chat/components/AiErrorMessage.d.ts +8 -0
- package/dist/@types/@ecme/views/concepts/ai/Chat/components/AiErrorMessage.d.ts.map +1 -0
- package/dist/@types/@ecme/views/concepts/ai/Chat/components/AiThinkingIndicator.d.ts +7 -0
- package/dist/@types/@ecme/views/concepts/ai/Chat/components/AiThinkingIndicator.d.ts.map +1 -0
- package/dist/@types/@ecme/views/concepts/ai/Chat/components/ApprovalCard.d.ts +15 -0
- package/dist/@types/@ecme/views/concepts/ai/Chat/components/ApprovalCard.d.ts.map +1 -0
- package/dist/@types/@ecme/views/concepts/ai/Chat/components/ChatHistory.d.ts +3 -1
- package/dist/@types/@ecme/views/concepts/ai/Chat/components/ChatHistory.d.ts.map +1 -1
- package/dist/@types/@ecme/views/concepts/ai/Chat/components/ChatHistoryItem.d.ts +1 -1
- package/dist/@types/@ecme/views/concepts/ai/Chat/components/ChatHistoryItem.d.ts.map +1 -1
- package/dist/@types/@ecme/views/concepts/ai/Chat/components/ChatHistoryRenameDialog.d.ts +5 -1
- package/dist/@types/@ecme/views/concepts/ai/Chat/components/ChatHistoryRenameDialog.d.ts.map +1 -1
- package/dist/@types/@ecme/views/concepts/ai/Chat/components/ChatLandingView.d.ts.map +1 -1
- package/dist/@types/@ecme/views/concepts/ai/Chat/components/ChatView.d.ts +8 -1
- package/dist/@types/@ecme/views/concepts/ai/Chat/components/ChatView.d.ts.map +1 -1
- package/dist/@types/@ecme/views/concepts/ai/Chat/components/DataRequestCard.d.ts +20 -0
- package/dist/@types/@ecme/views/concepts/ai/Chat/components/DataRequestCard.d.ts.map +1 -0
- package/dist/@types/@ecme/views/concepts/ai/Chat/components/ToolCallChip.d.ts +7 -0
- package/dist/@types/@ecme/views/concepts/ai/Chat/components/ToolCallChip.d.ts.map +1 -0
- package/dist/@types/@ecme/views/concepts/ai/Chat/components/toolPresentation.d.ts +31 -0
- package/dist/@types/@ecme/views/concepts/ai/Chat/components/toolPresentation.d.ts.map +1 -0
- package/dist/@types/@ecme/views/concepts/ai/Chat/hooks/useChatConversations.d.ts +12 -0
- package/dist/@types/@ecme/views/concepts/ai/Chat/hooks/useChatConversations.d.ts.map +1 -0
- package/dist/@types/@ecme/views/concepts/ai/Chat/hooks/useChatSend.d.ts +3 -1
- package/dist/@types/@ecme/views/concepts/ai/Chat/hooks/useChatSend.d.ts.map +1 -1
- package/dist/@types/@ecme/views/concepts/ai/Chat/hooks/useConversationMessages.d.ts +12 -0
- package/dist/@types/@ecme/views/concepts/ai/Chat/hooks/useConversationMessages.d.ts.map +1 -0
- package/dist/@types/@ecme/views/concepts/ai/Chat/store/generativeChatStore.d.ts +5 -0
- package/dist/@types/@ecme/views/concepts/ai/Chat/store/generativeChatStore.d.ts.map +1 -1
- package/dist/@types/@ecme/views/concepts/ai/Chat/types.d.ts +144 -23
- package/dist/@types/@ecme/views/concepts/ai/Chat/types.d.ts.map +1 -1
- package/dist/@types/@ecme/views/concepts/ai/Chat/utils.d.ts +13 -0
- package/dist/@types/@ecme/views/concepts/ai/Chat/utils.d.ts.map +1 -1
- package/dist/@types/@ecme/views/dashboards/FavoritesLanding/FavoritesLanding.d.ts +9 -0
- package/dist/@types/@ecme/views/dashboards/FavoritesLanding/FavoritesLanding.d.ts.map +1 -0
- package/dist/@types/@ecme/views/dashboards/FavoritesLanding/index.d.ts +3 -0
- package/dist/@types/@ecme/views/dashboards/FavoritesLanding/index.d.ts.map +1 -0
- package/dist/@types/@ecme/views/dashboards/FavoritesLanding/types.d.ts +17 -0
- package/dist/@types/@ecme/views/dashboards/FavoritesLanding/types.d.ts.map +1 -0
- package/dist/@types/@ecme/views/dashboards/FavoritesLanding/utils.d.ts +5 -0
- package/dist/@types/@ecme/views/dashboards/FavoritesLanding/utils.d.ts.map +1 -0
- package/dist/@types/@ecme/views/dashboards/index.d.ts +0 -1
- package/dist/@types/@ecme/views/dashboards/index.d.ts.map +1 -1
- package/dist/@types/@ecme/views/index.d.ts +0 -1
- package/dist/@types/@ecme/views/index.d.ts.map +1 -1
- package/dist/@types/base/@types/api/request/dm/TCreateFavoritoMenuRequest.d.ts +4 -0
- package/dist/@types/base/@types/api/request/dm/TCreateFavoritoMenuRequest.d.ts.map +1 -0
- package/dist/@types/base/@types/api/request/dm/TReorderFavoritosMenuRequest.d.ts +4 -0
- package/dist/@types/base/@types/api/request/dm/TReorderFavoritosMenuRequest.d.ts.map +1 -0
- package/dist/@types/base/@types/api/request/originacao/TSimularConsumoManualSaldoRequest.d.ts +9 -0
- package/dist/@types/base/@types/api/request/originacao/TSimularConsumoManualSaldoRequest.d.ts.map +1 -0
- package/dist/@types/base/@types/api/response/dadosMestres/TFavoritoMenuResponse.d.ts +8 -0
- package/dist/@types/base/@types/api/response/dadosMestres/TFavoritoMenuResponse.d.ts.map +1 -0
- package/dist/@types/base/@types/api/response/originacao/TConsumoManualSaldoResponse.d.ts +21 -0
- package/dist/@types/base/@types/api/response/originacao/TConsumoManualSaldoResponse.d.ts.map +1 -0
- package/dist/@types/base/@types/api/response/originacao/TFindAllSaldoResponse.d.ts +1 -0
- package/dist/@types/base/@types/api/response/originacao/TFindAllSaldoResponse.d.ts.map +1 -1
- package/dist/@types/base/@types/api/response/originacao/TSimularConsumoManualSaldoResponse.d.ts +17 -0
- package/dist/@types/base/@types/api/response/originacao/TSimularConsumoManualSaldoResponse.d.ts.map +1 -0
- package/dist/@types/base/@types/enums/originacao/ModoConsumoManual.d.ts +5 -0
- package/dist/@types/base/@types/enums/originacao/ModoConsumoManual.d.ts.map +1 -0
- package/dist/@types/base/@types/enums/originacao/TipoSaldoConsumivel.d.ts +6 -0
- package/dist/@types/base/@types/enums/originacao/TipoSaldoConsumivel.d.ts.map +1 -0
- package/dist/@types/base/@types/models/racao/carga.d.ts +39 -0
- package/dist/@types/base/@types/models/racao/carga.d.ts.map +1 -1
- package/dist/@types/base/@types/models/template/example.d.ts +40 -0
- package/dist/@types/base/@types/models/template/example.d.ts.map +1 -0
- package/dist/@types/base/@types/models/template/exampleObject.d.ts +14 -0
- package/dist/@types/base/@types/models/template/exampleObject.d.ts.map +1 -0
- package/dist/@types/base/@types/models/transportadora/irpf.d.ts +1 -0
- package/dist/@types/base/@types/models/transportadora/irpf.d.ts.map +1 -1
- package/dist/@types/base/@types/models/transportadora/irpfFaixaDesconto.d.ts +0 -1
- package/dist/@types/base/@types/models/transportadora/irpfFaixaDesconto.d.ts.map +1 -1
- package/dist/@types/base/components/forms/GenericForms/GenericArrayFormSection.d.ts +2 -2
- package/dist/@types/base/components/forms/GenericForms/GenericArrayFormSection.d.ts.map +1 -1
- package/dist/@types/base/components/shared/AceitarProcessoDialog.d.ts +2 -1
- package/dist/@types/base/components/shared/AceitarProcessoDialog.d.ts.map +1 -1
- package/dist/@types/base/components/shared/AdicionarHistoricoDialog.d.ts.map +1 -1
- package/dist/@types/base/components/shared/CancelarProcessoDialog.d.ts.map +1 -1
- package/dist/@types/base/components/shared/ConcluirProcessoDialog.d.ts.map +1 -1
- package/dist/@types/base/components/shared/EncerrarProcessoDialog.d.ts.map +1 -1
- package/dist/@types/base/components/shared/ReabrirProcessoDialog.d.ts.map +1 -1
- package/dist/@types/base/components/shared/RetornarFluxAtendimentoDialog.d.ts.map +1 -1
- package/dist/@types/base/components/shared/TransferirParaAtendenteDialog.d.ts.map +1 -1
- package/dist/@types/base/components/shared/TransferirParaSolicitanteDialog.d.ts.map +1 -1
- package/dist/@types/base/components/shared/TransferirProcessoDialog.d.ts.map +1 -1
- package/dist/@types/base/configs/endpoints.config/DadosMestres/FavoritoMenu/favoritoMenu.endpoint.config.d.ts +8 -0
- package/dist/@types/base/configs/endpoints.config/DadosMestres/FavoritoMenu/favoritoMenu.endpoint.config.d.ts.map +1 -0
- package/dist/@types/base/configs/endpoints.config/DadosMestres/Sap/incoterms.endpoint.config.d.ts +1 -0
- package/dist/@types/base/configs/endpoints.config/DadosMestres/Sap/incoterms.endpoint.config.d.ts.map +1 -1
- package/dist/@types/base/configs/endpoints.config/DadosMestres/Sap/safra.endpoint.config.d.ts +1 -0
- package/dist/@types/base/configs/endpoints.config/DadosMestres/Sap/safra.endpoint.config.d.ts.map +1 -1
- package/dist/@types/base/configs/endpoints.config/HubFiscal/nfe.endpoint.config.d.ts +1 -1
- package/dist/@types/base/configs/endpoints.config/SapService/Sap/executeSapApi.endpoint.config.d.ts +1 -0
- package/dist/@types/base/configs/endpoints.config/SapService/Sap/executeSapApi.endpoint.config.d.ts.map +1 -1
- package/dist/@types/base/configs/endpoints.config/Ticket/ticket.endpoint.config.d.ts +2 -0
- package/dist/@types/base/configs/endpoints.config/Ticket/ticket.endpoint.config.d.ts.map +1 -1
- package/dist/@types/base/configs/endpoints.config/agendamento/agendamento.d.ts +0 -1
- package/dist/@types/base/configs/endpoints.config/agendamento/agendamento.d.ts.map +1 -1
- package/dist/@types/base/configs/endpoints.config/agendamento/config/contratoVenda.d.ts +0 -1
- package/dist/@types/base/configs/endpoints.config/agendamento/config/contratoVenda.d.ts.map +1 -1
- package/dist/@types/base/configs/endpoints.config/centralNfe/centralNfe.d.ts +18 -0
- package/dist/@types/base/configs/endpoints.config/centralNfe/centralNfe.d.ts.map +1 -1
- package/dist/@types/base/configs/endpoints.config/centralNfe/config/cfop.d.ts +4 -0
- package/dist/@types/base/configs/endpoints.config/centralNfe/config/cfop.d.ts.map +1 -1
- package/dist/@types/base/configs/endpoints.config/centralNfe/config/historicoCfop.d.ts +12 -0
- package/dist/@types/base/configs/endpoints.config/centralNfe/config/historicoCfop.d.ts.map +1 -0
- package/dist/@types/base/configs/endpoints.config/centralNfe/config/vinculoOperacao.d.ts +4 -0
- package/dist/@types/base/configs/endpoints.config/centralNfe/config/vinculoOperacao.d.ts.map +1 -1
- package/dist/@types/base/configs/endpoints.config/compras/compras.d.ts +6 -0
- package/dist/@types/base/configs/endpoints.config/compras/compras.d.ts.map +1 -1
- package/dist/@types/base/configs/endpoints.config/compras/config/itemOrdemCompra.d.ts +8 -0
- package/dist/@types/base/configs/endpoints.config/compras/config/itemOrdemCompra.d.ts.map +1 -0
- package/dist/@types/base/configs/endpoints.config/dm/config/municipio.d.ts +4 -0
- package/dist/@types/base/configs/endpoints.config/dm/config/municipio.d.ts.map +1 -1
- package/dist/@types/base/configs/endpoints.config/dm/dm.d.ts +4 -0
- package/dist/@types/base/configs/endpoints.config/dm/dm.d.ts.map +1 -1
- package/dist/@types/base/configs/endpoints.config/endpoints.navigation.d.ts +90 -21
- package/dist/@types/base/configs/endpoints.config/endpoints.navigation.d.ts.map +1 -1
- package/dist/@types/base/configs/endpoints.config/insumos/config/estoque.d.ts +0 -20
- package/dist/@types/base/configs/endpoints.config/insumos/config/estoque.d.ts.map +1 -1
- package/dist/@types/base/configs/endpoints.config/insumos/insumos.d.ts +0 -20
- package/dist/@types/base/configs/endpoints.config/insumos/insumos.d.ts.map +1 -1
- package/dist/@types/base/configs/endpoints.config/originacao/config/consumoManualSaldo.d.ts +10 -0
- package/dist/@types/base/configs/endpoints.config/originacao/config/consumoManualSaldo.d.ts.map +1 -0
- package/dist/@types/base/configs/endpoints.config/originacao/originacao.d.ts +8 -0
- package/dist/@types/base/configs/endpoints.config/originacao/originacao.d.ts.map +1 -1
- package/dist/@types/base/configs/endpoints.config/racao/config/carga.d.ts +8 -0
- package/dist/@types/base/configs/endpoints.config/racao/config/carga.d.ts.map +1 -1
- package/dist/@types/base/configs/endpoints.config/racao/racao.d.ts +8 -0
- package/dist/@types/base/configs/endpoints.config/racao/racao.d.ts.map +1 -1
- package/dist/@types/base/configs/endpoints.config/trade/config/contratoArmazenagemGraosTrade.d.ts +33 -0
- package/dist/@types/base/configs/endpoints.config/trade/config/contratoArmazenagemGraosTrade.d.ts.map +1 -0
- package/dist/@types/base/configs/endpoints.config/trade/index.d.ts +34 -0
- package/dist/@types/base/configs/endpoints.config/trade/index.d.ts.map +1 -0
- package/dist/@types/base/configs/endpoints.config/transportadora/contratoFrete.d.ts +8 -0
- package/dist/@types/base/configs/endpoints.config/transportadora/contratoFrete.d.ts.map +1 -1
- package/dist/@types/base/configs/navigation.config/modules.navigation.d.ts.map +1 -1
- package/dist/@types/base/configs/navigation.config/modules.submenu/gestaoServicos/submenu.gestaoServicos.d.ts +4 -0
- package/dist/@types/base/configs/navigation.config/modules.submenu/gestaoServicos/submenu.gestaoServicos.d.ts.map +1 -0
- package/dist/@types/base/configs/navigation.config/modules.submenu/index.d.ts +1 -0
- package/dist/@types/base/configs/navigation.config/modules.submenu/index.d.ts.map +1 -1
- package/dist/@types/base/configs/navigation.config/modules.submenu/originacao/consumoManualSaldo/submenu.consumoManualSaldo.d.ts +4 -0
- package/dist/@types/base/configs/navigation.config/modules.submenu/originacao/consumoManualSaldo/submenu.consumoManualSaldo.d.ts.map +1 -0
- package/dist/@types/base/configs/navigation.config/modules.submenu/template/submenu.template.d.ts.map +1 -1
- package/dist/@types/base/configs/navigation.config/modules.submenu/trade/submenu.trade.d.ts +4 -0
- package/dist/@types/base/configs/navigation.config/modules.submenu/trade/submenu.trade.d.ts.map +1 -0
- package/dist/@types/base/configs/navigation.config/submenu/centralNfe/cadastros.submenu.d.ts.map +1 -1
- package/dist/@types/base/configs/navigation.config/submenu/centralNfe/config/cfop.submenu.d.ts +4 -0
- package/dist/@types/base/configs/navigation.config/submenu/centralNfe/config/cfop.submenu.d.ts.map +1 -0
- package/dist/@types/base/configs/navigation.config/submenu/index.d.ts +1 -2
- package/dist/@types/base/configs/navigation.config/submenu/index.d.ts.map +1 -1
- package/dist/@types/base/configs/navigation.config/submenu/originacao/originacao.submenu.d.ts.map +1 -1
- package/dist/@types/base/configs/navigation.config/submenu/template/cadastros.submenu.d.ts.map +1 -0
- package/dist/@types/base/configs/navigation.config/submenu/template/config/example.submenu.d.ts.map +1 -0
- package/dist/@types/base/configs/navigation.config/submenu/template/config/exampleObject.submenu.d.ts.map +1 -0
- package/dist/@types/base/configs/navigation.config/submenu/template/template.submenu.d.ts.map +1 -0
- package/dist/@types/base/configs/navigation.config/submenu/ticket/cadastros.submenu.d.ts.map +1 -1
- package/dist/@types/base/configs/navigation.config/submenu/ticket/config/relatorioTransferenciaArmazens.submenu.d.ts +4 -0
- package/dist/@types/base/configs/navigation.config/submenu/ticket/config/relatorioTransferenciaArmazens.submenu.d.ts.map +1 -0
- package/dist/@types/base/configs/navigation.config/submenu/ticket/config/relatorioVendasGraos.submenu.d.ts +4 -0
- package/dist/@types/base/configs/navigation.config/submenu/ticket/config/relatorioVendasGraos.submenu.d.ts.map +1 -0
- package/dist/@types/base/configs/navigation.config/submenu/ticket/relatorios.submenu.d.ts.map +1 -1
- package/dist/@types/base/configs/navigation.config/submenu/trade/configs/contratoArmazenagemGraosTrade.submenu.d.ts +4 -0
- package/dist/@types/base/configs/navigation.config/submenu/trade/configs/contratoArmazenagemGraosTrade.submenu.d.ts.map +1 -0
- package/dist/@types/base/configs/navigation.config/submenu/trade/trade.submenu.d.ts +4 -0
- package/dist/@types/base/configs/navigation.config/submenu/trade/trade.submenu.d.ts.map +1 -0
- package/dist/@types/base/locales/lang/ptBR/modules/Ticket/ticket.nav.d.ts +2 -0
- package/dist/@types/base/locales/lang/ptBR/modules/Ticket/ticket.nav.d.ts.map +1 -1
- package/dist/@types/base/services/modules/DadosMestres/FavoritoMenu/FavoritoMenuService.d.ts +8 -0
- package/dist/@types/base/services/modules/DadosMestres/FavoritoMenu/FavoritoMenuService.d.ts.map +1 -0
- package/dist/@types/base/services/modules/DadosMestres/Sap/IncotermsService.d.ts +1 -0
- package/dist/@types/base/services/modules/DadosMestres/Sap/IncotermsService.d.ts.map +1 -1
- package/dist/@types/base/services/modules/DadosMestres/Sap/SafraService.d.ts +1 -0
- package/dist/@types/base/services/modules/DadosMestres/Sap/SafraService.d.ts.map +1 -1
- package/dist/@types/base/services/modules/HubFiscal/NfeService.d.ts +1 -1
- package/dist/@types/base/services/modules/HubFiscal/NfeService.d.ts.map +1 -1
- package/dist/@types/base/services/modules/SapService/Sap/ExecuteSapApiService.d.ts +1 -0
- package/dist/@types/base/services/modules/SapService/Sap/ExecuteSapApiService.d.ts.map +1 -1
- package/dist/@types/base/services/modules/Ticket/TicketService.d.ts +2 -0
- package/dist/@types/base/services/modules/Ticket/TicketService.d.ts.map +1 -1
- package/dist/@types/base/services/modules/centralNfe/cfop/CfopService.d.ts +1 -0
- package/dist/@types/base/services/modules/centralNfe/cfop/CfopService.d.ts.map +1 -1
- package/dist/@types/base/services/modules/centralNfe/historicoCfop/HistoricoCfopService.d.ts +3 -0
- package/dist/@types/base/services/modules/centralNfe/historicoCfop/HistoricoCfopService.d.ts.map +1 -0
- package/dist/@types/base/services/modules/centralNfe/vinculoOperacao/VinculoOperacaoService.d.ts +1 -0
- package/dist/@types/base/services/modules/centralNfe/vinculoOperacao/VinculoOperacaoService.d.ts.map +1 -1
- package/dist/@types/base/services/modules/compras/index.d.ts +1 -0
- package/dist/@types/base/services/modules/compras/index.d.ts.map +1 -1
- package/dist/@types/base/services/modules/compras/ordemCompra/ItemOrdemCompraService.d.ts +2 -0
- package/dist/@types/base/services/modules/compras/ordemCompra/ItemOrdemCompraService.d.ts.map +1 -0
- package/dist/@types/base/services/modules/dm/municipio/MunicipioService.d.ts +1 -0
- package/dist/@types/base/services/modules/dm/municipio/MunicipioService.d.ts.map +1 -1
- package/dist/@types/base/services/modules/originacao/consumoManualSaldo/consumoManualSaldoService.d.ts +13 -0
- package/dist/@types/base/services/modules/originacao/consumoManualSaldo/consumoManualSaldoService.d.ts.map +1 -0
- package/dist/@types/base/services/modules/racao/carga/CargaService.d.ts +3 -1
- package/dist/@types/base/services/modules/racao/carga/CargaService.d.ts.map +1 -1
- package/dist/@types/base/services/modules/template/example/ExampleService.d.ts +7 -4
- package/dist/@types/base/services/modules/template/example/ExampleService.d.ts.map +1 -1
- package/dist/@types/base/services/modules/template/exampleObject/ExampleObjectService.d.ts +8 -0
- package/dist/@types/base/services/modules/template/exampleObject/ExampleObjectService.d.ts.map +1 -0
- package/dist/@types/base/services/modules/template/index.d.ts +1 -1
- package/dist/@types/base/services/modules/template/index.d.ts.map +1 -1
- package/dist/@types/base/services/modules/trade/ContratoArmazenagemGraosTradeService.d.ts +14 -0
- package/dist/@types/base/services/modules/trade/ContratoArmazenagemGraosTradeService.d.ts.map +1 -0
- package/dist/@types/base/services/modules/transportadora/ContratoFrete/ContratoFreteService.d.ts +2 -0
- package/dist/@types/base/services/modules/transportadora/ContratoFrete/ContratoFreteService.d.ts.map +1 -1
- package/dist/base/@types/api/request/dm/TCreateFavoritoMenuRequest.js +2 -0
- package/dist/base/@types/api/request/dm/TCreateFavoritoMenuRequest.js.map +1 -0
- package/dist/base/@types/api/request/dm/TReorderFavoritosMenuRequest.js +2 -0
- package/dist/base/@types/api/request/dm/TReorderFavoritosMenuRequest.js.map +1 -0
- package/dist/base/@types/api/request/originacao/TSimularConsumoManualSaldoRequest.js +2 -0
- package/dist/base/@types/api/request/originacao/TSimularConsumoManualSaldoRequest.js.map +1 -0
- package/dist/base/@types/api/response/dadosMestres/TFavoritoMenuResponse.js +2 -0
- package/dist/base/@types/api/response/dadosMestres/TFavoritoMenuResponse.js.map +1 -0
- package/dist/base/@types/api/response/originacao/TConsumoManualSaldoResponse.js +2 -0
- package/dist/base/@types/api/response/originacao/TConsumoManualSaldoResponse.js.map +1 -0
- package/dist/base/@types/api/response/originacao/TSimularConsumoManualSaldoResponse.js +2 -0
- package/dist/base/@types/api/response/originacao/TSimularConsumoManualSaldoResponse.js.map +1 -0
- package/dist/base/@types/enums/originacao/ModoConsumoManual.js +9 -0
- package/dist/base/@types/enums/originacao/ModoConsumoManual.js.map +1 -0
- package/dist/base/@types/enums/originacao/TipoSaldoConsumivel.js +10 -0
- package/dist/base/@types/enums/originacao/TipoSaldoConsumivel.js.map +1 -0
- package/dist/base/@types/models/racao/carga.js.map +1 -1
- package/dist/base/@types/models/template/example.js +16 -0
- package/dist/base/@types/models/template/example.js.map +1 -0
- package/dist/base/@types/models/template/exampleObject.js +2 -0
- package/dist/base/@types/models/template/exampleObject.js.map +1 -0
- package/dist/base/assets/styles/init.css +258 -7
- package/dist/base/components/forms/GenericForms/GenericArrayFormSection.js.map +1 -1
- package/dist/base/components/shared/AceitarProcessoDialog.js +16 -2
- package/dist/base/components/shared/AceitarProcessoDialog.js.map +1 -1
- package/dist/base/components/shared/AdicionarHistoricoDialog.js +28 -24
- package/dist/base/components/shared/AdicionarHistoricoDialog.js.map +1 -1
- package/dist/base/components/shared/CancelarProcessoDialog.js +28 -24
- package/dist/base/components/shared/CancelarProcessoDialog.js.map +1 -1
- package/dist/base/components/shared/ConcluirProcessoDialog.js +27 -23
- package/dist/base/components/shared/ConcluirProcessoDialog.js.map +1 -1
- package/dist/base/components/shared/EncerrarProcessoDialog.js +28 -24
- package/dist/base/components/shared/EncerrarProcessoDialog.js.map +1 -1
- package/dist/base/components/shared/ReabrirProcessoDialog.js +27 -23
- package/dist/base/components/shared/ReabrirProcessoDialog.js.map +1 -1
- package/dist/base/components/shared/RetornarFluxAtendimentoDialog.js +27 -23
- package/dist/base/components/shared/RetornarFluxAtendimentoDialog.js.map +1 -1
- package/dist/base/components/shared/TransferirParaAtendenteDialog.js +28 -24
- package/dist/base/components/shared/TransferirParaAtendenteDialog.js.map +1 -1
- package/dist/base/components/shared/TransferirParaSolicitanteDialog.js +28 -24
- package/dist/base/components/shared/TransferirParaSolicitanteDialog.js.map +1 -1
- package/dist/base/components/shared/TransferirProcessoDialog.js +43 -33
- package/dist/base/components/shared/TransferirProcessoDialog.js.map +1 -1
- package/dist/base/configs/api.config.js.map +1 -1
- package/dist/base/configs/endpoints.config/DadosMestres/FavoritoMenu/favoritoMenu.endpoint.config.js +11 -0
- package/dist/base/configs/endpoints.config/DadosMestres/FavoritoMenu/favoritoMenu.endpoint.config.js.map +1 -0
- package/dist/base/configs/endpoints.config/DadosMestres/Sap/incoterms.endpoint.config.js +2 -1
- package/dist/base/configs/endpoints.config/DadosMestres/Sap/incoterms.endpoint.config.js.map +1 -1
- package/dist/base/configs/endpoints.config/DadosMestres/Sap/safra.endpoint.config.js +2 -1
- package/dist/base/configs/endpoints.config/DadosMestres/Sap/safra.endpoint.config.js.map +1 -1
- package/dist/base/configs/endpoints.config/HubFiscal/nfe.endpoint.config.js +1 -1
- package/dist/base/configs/endpoints.config/HubFiscal/nfe.endpoint.config.js.map +1 -1
- package/dist/base/configs/endpoints.config/SapService/Sap/executeSapApi.endpoint.config.js +2 -1
- package/dist/base/configs/endpoints.config/SapService/Sap/executeSapApi.endpoint.config.js.map +1 -1
- package/dist/base/configs/endpoints.config/Ticket/ticket.endpoint.config.js +3 -1
- package/dist/base/configs/endpoints.config/Ticket/ticket.endpoint.config.js.map +1 -1
- package/dist/base/configs/endpoints.config/agendamento/config/contratoVenda.js +0 -1
- package/dist/base/configs/endpoints.config/agendamento/config/contratoVenda.js.map +1 -1
- package/dist/base/configs/endpoints.config/centralNfe/centralNfe.js +2 -0
- package/dist/base/configs/endpoints.config/centralNfe/centralNfe.js.map +1 -1
- package/dist/base/configs/endpoints.config/centralNfe/config/cfop.js +2 -1
- package/dist/base/configs/endpoints.config/centralNfe/config/cfop.js.map +1 -1
- package/dist/base/configs/endpoints.config/centralNfe/config/historicoCfop.js +9 -0
- package/dist/base/configs/endpoints.config/centralNfe/config/historicoCfop.js.map +1 -0
- package/dist/base/configs/endpoints.config/centralNfe/config/vinculoOperacao.js +2 -1
- package/dist/base/configs/endpoints.config/centralNfe/config/vinculoOperacao.js.map +1 -1
- package/dist/base/configs/endpoints.config/compras/compras.js +3 -1
- package/dist/base/configs/endpoints.config/compras/compras.js.map +1 -1
- package/dist/base/configs/endpoints.config/compras/config/itemOrdemCompra.js +8 -0
- package/dist/base/configs/endpoints.config/compras/config/itemOrdemCompra.js.map +1 -0
- package/dist/base/configs/endpoints.config/dm/config/municipio.js +2 -1
- package/dist/base/configs/endpoints.config/dm/config/municipio.js.map +1 -1
- package/dist/base/configs/endpoints.config/endpoints.navigation.js +5 -1
- package/dist/base/configs/endpoints.config/endpoints.navigation.js.map +1 -1
- package/dist/base/configs/endpoints.config/insumos/config/estoque.js +1 -6
- package/dist/base/configs/endpoints.config/insumos/config/estoque.js.map +1 -1
- package/dist/base/configs/endpoints.config/originacao/config/consumoManualSaldo.js +12 -0
- package/dist/base/configs/endpoints.config/originacao/config/consumoManualSaldo.js.map +1 -0
- package/dist/base/configs/endpoints.config/originacao/originacao.js +2 -0
- package/dist/base/configs/endpoints.config/originacao/originacao.js.map +1 -1
- package/dist/base/configs/endpoints.config/racao/config/carga.js +2 -0
- package/dist/base/configs/endpoints.config/racao/config/carga.js.map +1 -1
- package/dist/base/configs/endpoints.config/trade/config/contratoArmazenagemGraosTrade.js +15 -0
- package/dist/base/configs/endpoints.config/trade/config/contratoArmazenagemGraosTrade.js.map +1 -0
- package/dist/base/configs/endpoints.config/trade/index.js +8 -0
- package/dist/base/configs/endpoints.config/trade/index.js.map +1 -0
- package/dist/base/configs/endpoints.config/transportadora/contratoFrete.js +3 -1
- package/dist/base/configs/endpoints.config/transportadora/contratoFrete.js.map +1 -1
- package/dist/base/configs/index.js +33 -33
- package/dist/base/configs/navigation.config/index.js +31 -31
- package/dist/base/configs/navigation.config/modules.navigation.js +3 -1
- package/dist/base/configs/navigation.config/modules.navigation.js.map +1 -1
- package/dist/base/configs/navigation.config/modules.submenu/gestaoServicos/submenu.gestaoServicos.js +107 -0
- package/dist/base/configs/navigation.config/modules.submenu/gestaoServicos/submenu.gestaoServicos.js.map +1 -0
- package/dist/base/configs/navigation.config/modules.submenu/index.js +2 -0
- package/dist/base/configs/navigation.config/modules.submenu/index.js.map +1 -1
- package/dist/base/configs/navigation.config/modules.submenu/originacao/consumoManualSaldo/submenu.consumoManualSaldo.js +16 -0
- package/dist/base/configs/navigation.config/modules.submenu/originacao/consumoManualSaldo/submenu.consumoManualSaldo.js.map +1 -0
- package/dist/base/configs/navigation.config/modules.submenu/template/cadastros/submenu.example.js +1 -1
- package/dist/base/configs/navigation.config/modules.submenu/template/cadastros/submenu.example.js.map +1 -1
- package/dist/base/configs/navigation.config/modules.submenu/template/submenu.template.js +1 -1
- package/dist/base/configs/navigation.config/modules.submenu/template/submenu.template.js.map +1 -1
- package/dist/base/configs/navigation.config/modules.submenu/trade/submenu.trade.js +17 -0
- package/dist/base/configs/navigation.config/modules.submenu/trade/submenu.trade.js.map +1 -0
- package/dist/base/configs/navigation.config/submenu/agendamento/config/relatorio-cotas.js +1 -1
- package/dist/base/configs/navigation.config/submenu/agendamento/config/relatorio-cotas.js.map +1 -1
- package/dist/base/configs/navigation.config/submenu/centralNfe/cadastros.submenu.js +3 -1
- package/dist/base/configs/navigation.config/submenu/centralNfe/cadastros.submenu.js.map +1 -1
- package/dist/base/configs/navigation.config/submenu/centralNfe/config/cfop.submenu.js +16 -0
- package/dist/base/configs/navigation.config/submenu/centralNfe/config/cfop.submenu.js.map +1 -0
- package/dist/base/configs/navigation.config/submenu/index.js +20 -22
- package/dist/base/configs/navigation.config/submenu/index.js.map +1 -1
- package/dist/base/configs/navigation.config/submenu/originacao/originacao.submenu.js +2 -0
- package/dist/base/configs/navigation.config/submenu/originacao/originacao.submenu.js.map +1 -1
- package/dist/base/configs/navigation.config/submenu/template/cadastros.submenu.js.map +1 -0
- package/dist/base/configs/navigation.config/submenu/{example → template}/config/example.submenu.js +3 -3
- package/dist/base/configs/navigation.config/submenu/template/config/example.submenu.js.map +1 -0
- package/dist/base/configs/navigation.config/submenu/{example → template}/config/exampleObject.submenu.js +3 -3
- package/dist/base/configs/navigation.config/submenu/template/config/exampleObject.submenu.js.map +1 -0
- package/dist/base/configs/navigation.config/submenu/template/template.submenu.js.map +1 -0
- package/dist/base/configs/navigation.config/submenu/ticket/cadastros.submenu.js +5 -1
- package/dist/base/configs/navigation.config/submenu/ticket/cadastros.submenu.js.map +1 -1
- package/dist/base/configs/navigation.config/submenu/ticket/config/relatorioTransferenciaArmazens.submenu.js +16 -0
- package/dist/base/configs/navigation.config/submenu/ticket/config/relatorioTransferenciaArmazens.submenu.js.map +1 -0
- package/dist/base/configs/navigation.config/submenu/ticket/config/relatorioVendasGraos.submenu.js +16 -0
- package/dist/base/configs/navigation.config/submenu/ticket/config/relatorioVendasGraos.submenu.js.map +1 -0
- package/dist/base/configs/navigation.config/submenu/ticket/relatorios.submenu.js +5 -13
- package/dist/base/configs/navigation.config/submenu/ticket/relatorios.submenu.js.map +1 -1
- package/dist/base/configs/navigation.config/submenu/trade/configs/contratoArmazenagemGraosTrade.submenu.js +16 -0
- package/dist/base/configs/navigation.config/submenu/trade/configs/contratoArmazenagemGraosTrade.submenu.js.map +1 -0
- package/dist/base/configs/navigation.config/submenu/trade/trade.submenu.js +8 -0
- package/dist/base/configs/navigation.config/submenu/trade/trade.submenu.js.map +1 -0
- package/dist/base/index.js +50 -40
- package/dist/base/index.js.map +1 -1
- package/dist/base/locales/lang/ptBR/modules/Ticket/ticket.nav.js +3 -1
- package/dist/base/locales/lang/ptBR/modules/Ticket/ticket.nav.js.map +1 -1
- package/dist/base/services/index.js +15 -5
- package/dist/base/services/index.js.map +1 -1
- package/dist/base/services/modules/DadosMestres/FavoritoMenu/FavoritoMenuService.js +35 -0
- package/dist/base/services/modules/DadosMestres/FavoritoMenu/FavoritoMenuService.js.map +1 -0
- package/dist/base/services/modules/DadosMestres/Sap/IncotermsService.js +9 -1
- package/dist/base/services/modules/DadosMestres/Sap/IncotermsService.js.map +1 -1
- package/dist/base/services/modules/DadosMestres/Sap/SafraService.js +9 -1
- package/dist/base/services/modules/DadosMestres/Sap/SafraService.js.map +1 -1
- package/dist/base/services/modules/HubFiscal/NfeService.js +3 -3
- package/dist/base/services/modules/HubFiscal/NfeService.js.map +1 -1
- package/dist/base/services/modules/SapService/Sap/ExecuteSapApiService.js +9 -1
- package/dist/base/services/modules/SapService/Sap/ExecuteSapApiService.js.map +1 -1
- package/dist/base/services/modules/Ticket/TicketService.js +16 -0
- package/dist/base/services/modules/Ticket/TicketService.js.map +1 -1
- package/dist/base/services/modules/agendamento/ContratoVendaService.js +2 -2
- package/dist/base/services/modules/agendamento/ContratoVendaService.js.map +1 -1
- package/dist/base/services/modules/centralNfe/cfop/CfopService.js +8 -0
- package/dist/base/services/modules/centralNfe/cfop/CfopService.js.map +1 -1
- package/dist/base/services/modules/centralNfe/historicoCfop/HistoricoCfopService.js +21 -0
- package/dist/base/services/modules/centralNfe/historicoCfop/HistoricoCfopService.js.map +1 -0
- package/dist/base/services/modules/centralNfe/vinculoOperacao/VinculoOperacaoService.js +7 -0
- package/dist/base/services/modules/centralNfe/vinculoOperacao/VinculoOperacaoService.js.map +1 -1
- package/dist/base/services/modules/compras/index.js +2 -0
- package/dist/base/services/modules/compras/index.js.map +1 -1
- package/dist/base/services/modules/compras/ordemCompra/ItemOrdemCompraService.js +14 -0
- package/dist/base/services/modules/compras/ordemCompra/ItemOrdemCompraService.js.map +1 -0
- package/dist/base/services/modules/dm/index.js +2 -1
- package/dist/base/services/modules/dm/municipio/MunicipioService.js +7 -0
- package/dist/base/services/modules/dm/municipio/MunicipioService.js.map +1 -1
- package/dist/base/services/modules/index.js +15 -5
- package/dist/base/services/modules/index.js.map +1 -1
- package/dist/base/services/modules/originacao/consumoManualSaldo/consumoManualSaldoService.js +50 -0
- package/dist/base/services/modules/originacao/consumoManualSaldo/consumoManualSaldoService.js.map +1 -0
- package/dist/base/services/modules/racao/carga/CargaService.js +14 -0
- package/dist/base/services/modules/racao/carga/CargaService.js.map +1 -1
- package/dist/base/services/modules/racao/index.js +3 -1
- package/dist/base/services/modules/template/example/ExampleService.js +26 -12
- package/dist/base/services/modules/template/example/ExampleService.js.map +1 -1
- package/dist/base/services/modules/template/exampleObject/ExampleObjectService.js +44 -0
- package/dist/base/services/modules/template/exampleObject/ExampleObjectService.js.map +1 -0
- package/dist/base/services/modules/template/index.js +5 -2
- package/dist/base/services/modules/trade/ContratoArmazenagemGraosTradeService.js +59 -0
- package/dist/base/services/modules/trade/ContratoArmazenagemGraosTradeService.js.map +1 -0
- package/dist/base/services/modules/transportadora/ContratoFrete/ContratoFreteService.js +14 -0
- package/dist/base/services/modules/transportadora/ContratoFrete/ContratoFreteService.js.map +1 -1
- package/dist/base/services/modules/transportadora/index.js +3 -1
- package/lib/@ecme/components/layouts/PostLoginLayout/PostLoginLayout.tsx +5 -1
- package/lib/@ecme/components/layouts/PostLoginLayout/components/CollapsibleSide.stories.tsx +2 -2
- package/lib/@ecme/components/layouts/PostLoginLayout/components/ContentOverlay.stories.tsx +2 -2
- package/lib/@ecme/components/layouts/PostLoginLayout/components/FrameLessSide.stories.tsx +2 -2
- package/lib/@ecme/components/layouts/PostLoginLayout/components/StackedSide.stories.tsx +2 -2
- package/lib/@ecme/components/layouts/PostLoginLayout/components/TopBarClassic.stories.tsx +2 -2
- package/lib/@ecme/components/template/Header.stories.tsx +2 -2
- package/lib/@ecme/components/template/Notification/Notification.tsx +2 -2
- package/lib/@ecme/components/template/OrbeAiWidget/OrbeAiChatDrawer.tsx +140 -0
- package/lib/@ecme/components/template/OrbeAiWidget/OrbeAiWidget.tsx +155 -0
- package/lib/@ecme/components/template/OrbeAiWidget/ResizeHandles.tsx +47 -0
- package/lib/@ecme/components/template/OrbeAiWidget/index.ts +1 -0
- package/lib/@ecme/components/template/OrbeAiWidget/useResizablePanel.ts +143 -0
- package/lib/@ecme/components/template/Search.stories.tsx +20 -5
- package/lib/@ecme/components/template/Search.tsx +370 -84
- package/lib/@ecme/components/ui/Dropdown/DropdownMenu.tsx +7 -1
- package/lib/@ecme/components/view/ChatBox/ChatBox.tsx +8 -0
- package/lib/@ecme/components/view/ChatBox/components/MessageList.tsx +26 -8
- package/lib/@ecme/configs/navigation.config/concepts.navigation.config.ts +0 -16
- package/lib/@ecme/configs/routes.config/conceptsRoute.ts +0 -9
- package/lib/@ecme/locales/index.ts +0 -4
- package/lib/@ecme/locales/lang/ptBR/nav.ts +1 -0
- package/lib/@ecme/mock/data/favoritosMenuData.ts +3 -0
- package/lib/@ecme/services/AiService.ts +165 -13
- package/lib/@ecme/services/aiAuthHeaders.ts +58 -0
- package/lib/@ecme/services/axios/AxiosBase.ts +45 -24
- package/lib/@ecme/services/axios/AxiosRequestIntrceptorConfigCallback.ts +10 -39
- package/lib/@ecme/services/sseParser.ts +75 -0
- package/lib/@ecme/views/concepts/ai/Chat/components/AiErrorMessage.tsx +28 -0
- package/lib/@ecme/views/concepts/ai/Chat/components/AiThinkingIndicator.tsx +24 -0
- package/lib/@ecme/views/concepts/ai/Chat/components/ApprovalCard.tsx +103 -0
- package/lib/@ecme/views/concepts/ai/Chat/components/ChatHistory.tsx +11 -27
- package/lib/@ecme/views/concepts/ai/Chat/components/ChatHistoryItem.tsx +7 -13
- package/lib/@ecme/views/concepts/ai/Chat/components/ChatHistoryRenameDialog.tsx +17 -8
- package/lib/@ecme/views/concepts/ai/Chat/components/ChatLandingView.tsx +58 -50
- package/lib/@ecme/views/concepts/ai/Chat/components/ChatView.tsx +124 -18
- package/lib/@ecme/views/concepts/ai/Chat/components/DataRequestCard.tsx +144 -0
- package/lib/@ecme/views/concepts/ai/Chat/components/ToolCallChip.tsx +218 -0
- package/lib/@ecme/views/concepts/ai/Chat/components/toolPresentation.ts +283 -0
- package/lib/@ecme/views/concepts/ai/Chat/hooks/useChatConversations.tsx +128 -0
- package/lib/@ecme/views/concepts/ai/Chat/hooks/useChatSend.ts +233 -28
- package/lib/@ecme/views/concepts/ai/Chat/hooks/useConversationMessages.ts +68 -0
- package/lib/@ecme/views/concepts/ai/Chat/store/generativeChatStore.ts +84 -13
- package/lib/@ecme/views/concepts/ai/Chat/types.ts +133 -29
- package/lib/@ecme/views/concepts/ai/Chat/utils.ts +33 -0
- package/lib/@ecme/views/dashboards/FavoritesLanding/FavoritesLanding.tsx +124 -0
- package/lib/@ecme/views/dashboards/FavoritesLanding/index.ts +3 -0
- package/lib/@ecme/views/dashboards/FavoritesLanding/types.ts +17 -0
- package/lib/@ecme/views/dashboards/FavoritesLanding/utils.ts +51 -0
- package/lib/@ecme/views/dashboards/index.ts +1 -3
- package/lib/@ecme/views/index.ts +1 -1
- package/lib/base/@types/api/request/dm/TCreateFavoritoMenuRequest.ts +3 -0
- package/lib/base/@types/api/request/dm/TReorderFavoritosMenuRequest.ts +3 -0
- package/lib/base/@types/api/request/originacao/TSimularConsumoManualSaldoRequest.ts +8 -0
- package/lib/base/@types/api/response/dadosMestres/TFavoritoMenuResponse.ts +7 -0
- package/lib/base/@types/api/response/originacao/TConsumoManualSaldoResponse.ts +22 -0
- package/lib/base/@types/api/response/originacao/TFindAllSaldoResponse.ts +1 -0
- package/lib/base/@types/api/response/originacao/TSimularConsumoManualSaldoResponse.ts +17 -0
- package/lib/base/@types/enums/originacao/ModoConsumoManual.ts +4 -0
- package/lib/base/@types/enums/originacao/TipoSaldoConsumivel.ts +5 -0
- package/lib/base/@types/models/racao/carga.ts +51 -0
- package/lib/base/@types/models/template/example.ts +46 -0
- package/lib/base/@types/models/template/{exampleObject → exampleObject.ts} +3 -5
- package/lib/base/@types/models/transportadora/irpf.ts +1 -0
- package/lib/base/@types/models/transportadora/irpfFaixaDesconto.ts +0 -1
- package/lib/base/components/forms/GenericForms/GenericArrayFormSection.tsx +1 -1
- package/lib/base/components/shared/AceitarProcessoDialog.tsx +13 -2
- package/lib/base/components/shared/AdicionarHistoricoDialog.tsx +16 -13
- package/lib/base/components/shared/CancelarProcessoDialog.tsx +16 -13
- package/lib/base/components/shared/ConcluirProcessoDialog.tsx +16 -13
- package/lib/base/components/shared/EncerrarProcessoDialog.tsx +16 -13
- package/lib/base/components/shared/ReabrirProcessoDialog.tsx +16 -13
- package/lib/base/components/shared/RetornarFluxAtendimentoDialog.tsx +14 -12
- package/lib/base/components/shared/TransferirParaAtendenteDialog.tsx +14 -12
- package/lib/base/components/shared/TransferirParaSolicitanteDialog.tsx +14 -12
- package/lib/base/components/shared/TransferirProcessoDialog.tsx +20 -12
- package/lib/base/configs/api.config.ts +2 -2
- package/lib/base/configs/endpoints.config/DadosMestres/FavoritoMenu/favoritoMenu.endpoint.config.ts +10 -0
- package/lib/base/configs/endpoints.config/DadosMestres/Sap/incoterms.endpoint.config.ts +1 -0
- package/lib/base/configs/endpoints.config/DadosMestres/Sap/safra.endpoint.config.ts +1 -0
- package/lib/base/configs/endpoints.config/HubFiscal/nfe.endpoint.config.ts +1 -1
- package/lib/base/configs/endpoints.config/SapService/Sap/executeSapApi.endpoint.config.ts +1 -0
- package/lib/base/configs/endpoints.config/Ticket/ticket.endpoint.config.ts +2 -0
- package/lib/base/configs/endpoints.config/agendamento/config/contratoVenda.ts +0 -1
- package/lib/base/configs/endpoints.config/centralNfe/centralNfe.ts +2 -0
- package/lib/base/configs/endpoints.config/centralNfe/config/cfop.ts +3 -2
- package/lib/base/configs/endpoints.config/centralNfe/config/historicoCfop.ts +8 -0
- package/lib/base/configs/endpoints.config/centralNfe/config/vinculoOperacao.ts +2 -1
- package/lib/base/configs/endpoints.config/compras/compras.ts +3 -1
- package/lib/base/configs/endpoints.config/compras/config/itemOrdemCompra.ts +7 -0
- package/lib/base/configs/endpoints.config/dm/config/municipio.ts +2 -1
- package/lib/base/configs/endpoints.config/endpoints.navigation.ts +5 -1
- package/lib/base/configs/endpoints.config/insumos/config/estoque.ts +2 -7
- package/lib/base/configs/endpoints.config/originacao/config/consumoManualSaldo.ts +9 -0
- package/lib/base/configs/endpoints.config/originacao/originacao.ts +2 -0
- package/lib/base/configs/endpoints.config/racao/config/carga.ts +2 -0
- package/lib/base/configs/endpoints.config/trade/config/contratoArmazenagemGraosTrade.ts +13 -0
- package/lib/base/configs/endpoints.config/trade/index.ts +7 -0
- package/lib/base/configs/endpoints.config/transportadora/contratoFrete.ts +2 -0
- package/lib/base/configs/navigation.config/modules.navigation.ts +2 -0
- package/lib/base/configs/navigation.config/modules.submenu/gestaoServicos/submenu.gestaoServicos.ts +107 -0
- package/lib/base/configs/navigation.config/modules.submenu/index.ts +1 -0
- package/lib/base/configs/navigation.config/modules.submenu/originacao/consumoManualSaldo/submenu.consumoManualSaldo.ts +16 -0
- package/lib/base/configs/navigation.config/modules.submenu/template/cadastros/submenu.example.ts +1 -1
- package/lib/base/configs/navigation.config/modules.submenu/template/submenu.template.ts +2 -3
- package/lib/base/configs/navigation.config/modules.submenu/trade/submenu.trade.ts +18 -0
- package/lib/base/configs/navigation.config/submenu/agendamento/config/relatorio-cotas.ts +1 -1
- package/lib/base/configs/navigation.config/submenu/centralNfe/cadastros.submenu.ts +2 -0
- package/lib/base/configs/navigation.config/submenu/centralNfe/config/cfop.submenu.ts +16 -0
- package/lib/base/configs/navigation.config/submenu/index.ts +1 -2
- package/lib/base/configs/navigation.config/submenu/originacao/originacao.submenu.ts +2 -0
- package/lib/base/configs/navigation.config/submenu/{example → template}/config/example.submenu.ts +3 -3
- package/lib/base/configs/navigation.config/submenu/{example → template}/config/exampleObject.submenu.ts +3 -3
- package/lib/base/configs/navigation.config/submenu/ticket/cadastros.submenu.ts +4 -0
- package/lib/base/configs/navigation.config/submenu/ticket/config/relatorioTransferenciaArmazens.submenu.ts +16 -0
- package/lib/base/configs/navigation.config/submenu/ticket/config/relatorioVendasGraos.submenu.ts +16 -0
- package/lib/base/configs/navigation.config/submenu/ticket/relatorios.submenu.ts +4 -14
- package/lib/base/configs/navigation.config/submenu/trade/configs/contratoArmazenagemGraosTrade.submenu.ts +16 -0
- package/lib/base/configs/navigation.config/submenu/trade/trade.submenu.ts +8 -0
- package/lib/base/locales/lang/ptBR/modules/Ticket/ticket.nav.ts +2 -0
- package/lib/base/services/modules/DadosMestres/FavoritoMenu/FavoritoMenuService.ts +35 -0
- package/lib/base/services/modules/DadosMestres/Sap/IncotermsService.ts +8 -0
- package/lib/base/services/modules/DadosMestres/Sap/SafraService.ts +8 -0
- package/lib/base/services/modules/HubFiscal/NfeService.ts +2 -2
- package/lib/base/services/modules/SapService/Sap/ExecuteSapApiService.ts +8 -0
- package/lib/base/services/modules/Ticket/TicketService.ts +16 -0
- package/lib/base/services/modules/agendamento/ContratoVendaService.ts +2 -2
- package/lib/base/services/modules/centralNfe/cfop/CfopService.ts +9 -1
- package/lib/base/services/modules/centralNfe/historicoCfop/HistoricoCfopService.ts +21 -0
- package/lib/base/services/modules/centralNfe/vinculoOperacao/VinculoOperacaoService.ts +7 -0
- package/lib/base/services/modules/compras/index.ts +2 -1
- package/lib/base/services/modules/compras/ordemCompra/ItemOrdemCompraService.ts +12 -0
- package/lib/base/services/modules/dm/municipio/MunicipioService.tsx +7 -0
- package/lib/base/services/modules/originacao/consumoManualSaldo/consumoManualSaldoService.ts +54 -0
- package/lib/base/services/modules/racao/carga/CargaService.ts +15 -1
- package/lib/base/services/modules/template/example/ExampleService.ts +37 -19
- package/lib/base/services/modules/template/exampleObject/ExampleObjectService.ts +45 -0
- package/lib/base/services/modules/template/index.ts +2 -2
- package/lib/base/services/modules/trade/ContratoArmazenagemGraosTradeService.ts +62 -0
- package/lib/base/services/modules/transportadora/ContratoFrete/ContratoFreteService.ts +14 -0
- package/package.json +1 -1
- package/dist/@types/base/configs/navigation.config/submenu/example/cadastros.submenu.d.ts.map +0 -1
- package/dist/@types/base/configs/navigation.config/submenu/example/config/example.submenu.d.ts.map +0 -1
- package/dist/@types/base/configs/navigation.config/submenu/example/config/exampleObject.submenu.d.ts.map +0 -1
- package/dist/@types/base/configs/navigation.config/submenu/example/template.submenu.d.ts.map +0 -1
- package/dist/@types/base/services/modules/template/example/ExampleObjectService.d.ts +0 -6
- package/dist/@types/base/services/modules/template/example/ExampleObjectService.d.ts.map +0 -1
- package/dist/base/configs/navigation.config/submenu/example/cadastros.submenu.js.map +0 -1
- package/dist/base/configs/navigation.config/submenu/example/config/example.submenu.js.map +0 -1
- package/dist/base/configs/navigation.config/submenu/example/config/exampleObject.submenu.js.map +0 -1
- package/dist/base/configs/navigation.config/submenu/example/template.submenu.js.map +0 -1
- package/dist/base/services/modules/template/example/ExampleObjectService.js +0 -37
- package/dist/base/services/modules/template/example/ExampleObjectService.js.map +0 -1
- package/lib/base/@types/models/template/example +0 -37
- package/lib/base/services/modules/template/example/ExampleObjectService.ts +0 -34
- /package/dist/@types/base/configs/navigation.config/submenu/{example → template}/cadastros.submenu.d.ts +0 -0
- /package/dist/@types/base/configs/navigation.config/submenu/{example → template}/config/example.submenu.d.ts +0 -0
- /package/dist/@types/base/configs/navigation.config/submenu/{example → template}/config/exampleObject.submenu.d.ts +0 -0
- /package/dist/@types/base/configs/navigation.config/submenu/{example → template}/template.submenu.d.ts +0 -0
- /package/dist/base/configs/navigation.config/submenu/{example → template}/cadastros.submenu.js +0 -0
- /package/dist/base/configs/navigation.config/submenu/{example → template}/template.submenu.js +0 -0
- /package/lib/base/configs/navigation.config/submenu/{example → template}/cadastros.submenu.ts +0 -0
- /package/lib/base/configs/navigation.config/submenu/{example → template}/template.submenu.ts +0 -0
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
import useSWR from 'swr'
|
|
2
|
+
import Notification from '@/components/ui/Notification'
|
|
3
|
+
import toast from '@/components/ui/toast'
|
|
4
|
+
import {
|
|
5
|
+
apiDeleteConversation,
|
|
6
|
+
apiGetConversations,
|
|
7
|
+
apiRenameConversation,
|
|
8
|
+
} from '@/services/AiService'
|
|
9
|
+
import { useSessionUser } from '@/store/authStore'
|
|
10
|
+
import { usGenerativeChatStore } from '../store/generativeChatStore'
|
|
11
|
+
import { resumoParaHistorico } from '../utils'
|
|
12
|
+
import type { ChatHistories, GetConversationsResponse } from '../types'
|
|
13
|
+
|
|
14
|
+
const avisarFalha = (mensagem: string) => {
|
|
15
|
+
toast.push(
|
|
16
|
+
<Notification type="danger" duration={3000}>
|
|
17
|
+
{mensagem}
|
|
18
|
+
</Notification>,
|
|
19
|
+
{ placement: 'top-center' },
|
|
20
|
+
)
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* A lista de conversas do usuário, persistida no backend, e as ações sobre ela.
|
|
25
|
+
*
|
|
26
|
+
* Renomear e excluir são otimistas: a tela muda na hora e volta ao estado
|
|
27
|
+
* anterior se o backend recusar.
|
|
28
|
+
*/
|
|
29
|
+
const useChatConversations = () => {
|
|
30
|
+
const {
|
|
31
|
+
setChatHistory,
|
|
32
|
+
setChatHistoryName,
|
|
33
|
+
setSelectedConversation,
|
|
34
|
+
} = usGenerativeChatStore()
|
|
35
|
+
|
|
36
|
+
const userId = useSessionUser((state) => state.user.userId)
|
|
37
|
+
const signedIn = useSessionUser((state) => state.session.signedIn)
|
|
38
|
+
|
|
39
|
+
// O usuário faz parte da chave: cada um tem o próprio cache, e o de quem
|
|
40
|
+
// saiu nunca é servido a quem entrou. Sem sessão, não busca nada.
|
|
41
|
+
//
|
|
42
|
+
// Sem `revalidateIfStale: false` de propósito: cada vez que a lista monta,
|
|
43
|
+
// ela confere o backend. Com ele, o SWR servia o cache antigo, não chamava
|
|
44
|
+
// o `onSuccess`, e a lista só aparecia depois de um F5.
|
|
45
|
+
useSWR(
|
|
46
|
+
signedIn && userId ? ['/ai/chat/conversations', userId] : null,
|
|
47
|
+
// O dono viaja junto com a resposta para o `onSuccess` conferir.
|
|
48
|
+
async ([, dono]: [string, string]) => ({
|
|
49
|
+
dono,
|
|
50
|
+
resumos: await apiGetConversations<GetConversationsResponse>(),
|
|
51
|
+
}),
|
|
52
|
+
{
|
|
53
|
+
revalidateOnFocus: false,
|
|
54
|
+
revalidateOnReconnect: false,
|
|
55
|
+
onSuccess: ({ dono, resumos }) => {
|
|
56
|
+
// Resposta atrasada de quem já saiu: descarta, senão a lista
|
|
57
|
+
// de um usuário cairia na tela do outro.
|
|
58
|
+
if (dono !== useSessionUser.getState().user.userId) {
|
|
59
|
+
return
|
|
60
|
+
}
|
|
61
|
+
// Lido na hora, e não da closure: a resposta pode chegar
|
|
62
|
+
// depois de o usuário já ter começado uma conversa.
|
|
63
|
+
const atual = usGenerativeChatStore.getState().chatHistory
|
|
64
|
+
setChatHistory(mesclar(atual, resumos))
|
|
65
|
+
},
|
|
66
|
+
},
|
|
67
|
+
)
|
|
68
|
+
|
|
69
|
+
const remover = async (id: string) => {
|
|
70
|
+
const { chatHistory, selectedConversation } =
|
|
71
|
+
usGenerativeChatStore.getState()
|
|
72
|
+
|
|
73
|
+
setChatHistory(chatHistory.filter((item) => item.id !== id))
|
|
74
|
+
if (selectedConversation === id) {
|
|
75
|
+
setSelectedConversation('')
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
try {
|
|
79
|
+
await apiDeleteConversation(id)
|
|
80
|
+
} catch {
|
|
81
|
+
setChatHistory(chatHistory)
|
|
82
|
+
avisarFalha('Não foi possível excluir a conversa.')
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
const renomear = async (id: string, title: string) => {
|
|
87
|
+
const anterior = usGenerativeChatStore
|
|
88
|
+
.getState()
|
|
89
|
+
.chatHistory.find((item) => item.id === id)?.title
|
|
90
|
+
|
|
91
|
+
setChatHistoryName({ id, title })
|
|
92
|
+
|
|
93
|
+
try {
|
|
94
|
+
await apiRenameConversation(id, title)
|
|
95
|
+
} catch {
|
|
96
|
+
if (anterior !== undefined) {
|
|
97
|
+
setChatHistoryName({ id, title: anterior })
|
|
98
|
+
}
|
|
99
|
+
avisarFalha('Não foi possível renomear a conversa.')
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
return { remover, renomear }
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
/**
|
|
107
|
+
* Junta a lista do backend com o que já está na tela.
|
|
108
|
+
*
|
|
109
|
+
* - Conversa que já existe no store fica como está: pode ter mensagens
|
|
110
|
+
* carregadas ou um stream em andamento.
|
|
111
|
+
* - Conversa criada nesta sessão e que o backend ainda não conhece não pode
|
|
112
|
+
* sumir: ela aparece primeiro, como ao ser criada.
|
|
113
|
+
*/
|
|
114
|
+
function mesclar(
|
|
115
|
+
atual: ChatHistories,
|
|
116
|
+
resumos: GetConversationsResponse,
|
|
117
|
+
): ChatHistories {
|
|
118
|
+
const noStore = new Map(atual.map((chat) => [chat.id, chat]))
|
|
119
|
+
const doBackend = new Set(resumos.map((resumo) => resumo.id))
|
|
120
|
+
|
|
121
|
+
const soNaTela = atual.filter((chat) => !doBackend.has(chat.id))
|
|
122
|
+
const daLista = resumos.map(
|
|
123
|
+
(resumo) => noStore.get(resumo.id) ?? resumoParaHistorico(resumo),
|
|
124
|
+
)
|
|
125
|
+
return [...soNaTela, ...daLista]
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
export default useChatConversations
|
|
@@ -1,15 +1,23 @@
|
|
|
1
1
|
import { usGenerativeChatStore } from '../store/generativeChatStore'
|
|
2
|
-
import {
|
|
2
|
+
import { resumeChat, streamChat } from '@/services/AiService'
|
|
3
|
+
import { useAuth } from '@/auth'
|
|
3
4
|
import dayjs from 'dayjs'
|
|
4
5
|
import uniqueId from 'lodash/uniqueId'
|
|
5
|
-
import
|
|
6
|
+
import { novoIdDeConversa } from '../utils'
|
|
7
|
+
import type { ChatEvent, Conversation, ToolCall } from '../types'
|
|
8
|
+
|
|
9
|
+
/** Resposta genérica exibida no chat quando a comunicação com a IA falha. */
|
|
10
|
+
const AI_ERROR_MESSAGE =
|
|
11
|
+
'Desculpe, estou com um pequeno problema de comunicação e não consigo te atender no momento. Tente novamente em instantes.'
|
|
6
12
|
|
|
7
13
|
const useChatSend = () => {
|
|
14
|
+
const { user } = useAuth()
|
|
8
15
|
const {
|
|
9
16
|
selectedConversation,
|
|
10
17
|
setSelectedConversation,
|
|
11
18
|
pushChatHistory,
|
|
12
19
|
pushConversation,
|
|
20
|
+
updateConversation,
|
|
13
21
|
setIsTyping,
|
|
14
22
|
} = usGenerativeChatStore()
|
|
15
23
|
|
|
@@ -17,9 +25,9 @@ const useChatSend = () => {
|
|
|
17
25
|
pushConversation(id, {
|
|
18
26
|
id: uniqueId('ai-conversation-'),
|
|
19
27
|
sender: {
|
|
20
|
-
id: '
|
|
21
|
-
name:
|
|
22
|
-
avatarImageUrl:
|
|
28
|
+
id: user.userId ?? 'me',
|
|
29
|
+
name: user.userName ?? 'Você',
|
|
30
|
+
avatarImageUrl: user.avatar ?? undefined,
|
|
23
31
|
},
|
|
24
32
|
content: prompt,
|
|
25
33
|
timestamp: dayjs().toDate(),
|
|
@@ -28,62 +36,259 @@ const useChatSend = () => {
|
|
|
28
36
|
})
|
|
29
37
|
}
|
|
30
38
|
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
39
|
+
/**
|
|
40
|
+
* Cria a mensagem da IA vazia e devolve o id, para o streaming preenchê-la.
|
|
41
|
+
*
|
|
42
|
+
* `fresh: false` é obrigatório: `fresh` liga a animação de máquina de
|
|
43
|
+
* escrever do ChatCustomContent, que reinicia do zero a cada mudança de
|
|
44
|
+
* conteúdo — com streaming, o texto ficaria piscando e voltando ao início.
|
|
45
|
+
* A animação agora vem do servidor.
|
|
46
|
+
*/
|
|
47
|
+
const createAiMessage = (
|
|
48
|
+
chatId: string,
|
|
49
|
+
options?: Partial<Conversation>,
|
|
35
50
|
) => {
|
|
36
|
-
const
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
})
|
|
40
|
-
pushConversation(id, {
|
|
41
|
-
id: uniqueId('ai-conversation-'),
|
|
51
|
+
const messageId = uniqueId('ai-conversation-')
|
|
52
|
+
pushConversation(chatId, {
|
|
53
|
+
id: messageId,
|
|
42
54
|
sender: {
|
|
43
55
|
id: 'ai',
|
|
44
56
|
name: 'Chat AI',
|
|
45
57
|
avatarImageUrl: '/img/thumbs/ai.jpg',
|
|
46
58
|
},
|
|
47
|
-
content:
|
|
59
|
+
content: '',
|
|
48
60
|
timestamp: dayjs().toDate(),
|
|
49
61
|
type: 'regular',
|
|
50
62
|
isMyMessage: false,
|
|
51
|
-
fresh:
|
|
63
|
+
fresh: false,
|
|
64
|
+
...options,
|
|
52
65
|
})
|
|
53
|
-
|
|
66
|
+
return messageId
|
|
54
67
|
}
|
|
55
68
|
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
69
|
+
/**
|
|
70
|
+
* Consome um stream escrevendo numa mensagem que já existe.
|
|
71
|
+
*
|
|
72
|
+
* Compartilhado pelo envio e pela retomada de aprovação: quando o usuário
|
|
73
|
+
* aprova, a resposta continua na MESMA mensagem, então o acumulador de
|
|
74
|
+
* texto e de ferramentas precisa partir do que já está lá.
|
|
75
|
+
*/
|
|
76
|
+
const consumirStream = async (
|
|
77
|
+
chatId: string,
|
|
78
|
+
messageId: string,
|
|
79
|
+
executar: (onEvent: (evento: ChatEvent) => void) => Promise<void>,
|
|
80
|
+
inicial: { texto: string; tools: ToolCall[] },
|
|
60
81
|
) => {
|
|
61
|
-
|
|
62
|
-
|
|
82
|
+
// Acumulados localmente: o store guarda o resultado, mas ler de volta a
|
|
83
|
+
// cada token para concatenar seria uma corrida com o próprio set().
|
|
84
|
+
let texto = inicial.texto
|
|
85
|
+
let tools = inicial.tools
|
|
86
|
+
|
|
87
|
+
const aplicar = (evento: ChatEvent) => {
|
|
88
|
+
switch (evento.type) {
|
|
89
|
+
case 'token':
|
|
90
|
+
texto += evento.data.content
|
|
91
|
+
updateConversation(chatId, messageId, { content: texto })
|
|
92
|
+
break
|
|
93
|
+
|
|
94
|
+
case 'tool_start':
|
|
95
|
+
tools = [
|
|
96
|
+
...tools,
|
|
97
|
+
{
|
|
98
|
+
id: evento.data.id,
|
|
99
|
+
name: evento.data.name,
|
|
100
|
+
args: evento.data.args,
|
|
101
|
+
running: true,
|
|
102
|
+
},
|
|
103
|
+
]
|
|
104
|
+
updateConversation(chatId, messageId, { tools })
|
|
105
|
+
break
|
|
106
|
+
|
|
107
|
+
case 'tool_end':
|
|
108
|
+
tools = tools.map((tool) =>
|
|
109
|
+
tool.id === evento.data.id
|
|
110
|
+
? {
|
|
111
|
+
...tool,
|
|
112
|
+
running: false,
|
|
113
|
+
awaitingApproval: false,
|
|
114
|
+
result: evento.data.content,
|
|
115
|
+
isError: evento.data.is_error,
|
|
116
|
+
}
|
|
117
|
+
: tool,
|
|
118
|
+
)
|
|
119
|
+
updateConversation(chatId, messageId, { tools })
|
|
120
|
+
break
|
|
121
|
+
|
|
122
|
+
case 'approval_required': {
|
|
123
|
+
// O tool_start já marcou estas ferramentas como "running".
|
|
124
|
+
// Elas não estão executando: estão paradas esperando o
|
|
125
|
+
// clique — senão o chip giraria para sempre.
|
|
126
|
+
const pausadas = new Set(
|
|
127
|
+
evento.data.calls.map((call) => call.id),
|
|
128
|
+
)
|
|
129
|
+
tools = tools.map((tool) =>
|
|
130
|
+
pausadas.has(tool.id)
|
|
131
|
+
? { ...tool, running: false, awaitingApproval: true }
|
|
132
|
+
: tool,
|
|
133
|
+
)
|
|
134
|
+
updateConversation(chatId, messageId, {
|
|
135
|
+
tools,
|
|
136
|
+
pendingApproval: evento.data,
|
|
137
|
+
})
|
|
138
|
+
break
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
case 'input_required':
|
|
142
|
+
// Diferente da aprovação, aqui nenhuma ferramenta foi
|
|
143
|
+
// pedida ao ERP: o agente só percebeu que faltam campos.
|
|
144
|
+
// Por isso não há chip de ferramenta para ajustar.
|
|
145
|
+
updateConversation(chatId, messageId, {
|
|
146
|
+
pendingInput: evento.data,
|
|
147
|
+
})
|
|
148
|
+
break
|
|
149
|
+
|
|
150
|
+
case 'done':
|
|
151
|
+
// O done é a fonte autoritativa do texto DESTA requisição —
|
|
152
|
+
// se algum token se perdeu, ele corrige.
|
|
153
|
+
//
|
|
154
|
+
// Numa retomada, porém, o que o agente disse ANTES da pausa
|
|
155
|
+
// não vem nele (o backend acumula as falas por requisição):
|
|
156
|
+
// veio em `inicial.texto`. Sem concatenar, a bolha encolhia
|
|
157
|
+
// para só a frase final — "Vou criar a área para você…"
|
|
158
|
+
// virava "Nada foi criado" — e o agente parecia ter
|
|
159
|
+
// esquecido tudo. No primeiro envio `inicial.texto` é '',
|
|
160
|
+
// então nada muda ali.
|
|
161
|
+
texto = inicial.texto + evento.data.content
|
|
162
|
+
updateConversation(chatId, messageId, { content: texto })
|
|
163
|
+
break
|
|
164
|
+
|
|
165
|
+
case 'error':
|
|
166
|
+
updateConversation(chatId, messageId, {
|
|
167
|
+
content: evento.data.message || AI_ERROR_MESSAGE,
|
|
168
|
+
isError: true,
|
|
169
|
+
})
|
|
170
|
+
break
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
try {
|
|
175
|
+
await executar(aplicar)
|
|
176
|
+
} catch {
|
|
177
|
+
updateConversation(chatId, messageId, {
|
|
178
|
+
content: texto || AI_ERROR_MESSAGE,
|
|
179
|
+
isError: !texto,
|
|
180
|
+
})
|
|
181
|
+
} finally {
|
|
182
|
+
setIsTyping(false)
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
const sendMessage = async (chatId: string, prompt: string) => {
|
|
187
|
+
const messageId = createAiMessage(chatId)
|
|
188
|
+
await consumirStream(
|
|
189
|
+
chatId,
|
|
190
|
+
messageId,
|
|
191
|
+
(onEvent) => streamChat({ prompt, conversationId: chatId, onEvent }),
|
|
192
|
+
{ texto: '', tools: [] },
|
|
193
|
+
)
|
|
63
194
|
}
|
|
64
195
|
|
|
65
|
-
const
|
|
196
|
+
const createConversation = async (chatId: string, prompt: string) => {
|
|
197
|
+
setSelectedConversation(chatId)
|
|
198
|
+
await sendMessage(chatId, prompt)
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
const handleSend = async (prompt: string) => {
|
|
66
202
|
setIsTyping(true)
|
|
67
203
|
if (selectedConversation) {
|
|
68
204
|
creteMyMessage(selectedConversation, prompt)
|
|
69
205
|
await sendMessage(selectedConversation, prompt)
|
|
70
206
|
} else {
|
|
71
|
-
const newId =
|
|
207
|
+
const newId = novoIdDeConversa()
|
|
72
208
|
pushChatHistory({
|
|
73
209
|
id: newId,
|
|
74
210
|
title: prompt,
|
|
75
211
|
lastConversation: '',
|
|
76
212
|
createdTime: dayjs().unix(),
|
|
77
213
|
updatedTime: dayjs().unix(),
|
|
78
|
-
enable:
|
|
214
|
+
enable: true,
|
|
79
215
|
})
|
|
80
216
|
creteMyMessage(newId, prompt)
|
|
81
|
-
await createConversation(newId, prompt
|
|
217
|
+
await createConversation(newId, prompt)
|
|
82
218
|
}
|
|
83
219
|
}
|
|
84
220
|
|
|
221
|
+
/**
|
|
222
|
+
* Aprova ou nega a operação pendente e retoma a conversa.
|
|
223
|
+
*
|
|
224
|
+
* Continua escrevendo na mesma mensagem: por isso o acumulador parte do
|
|
225
|
+
* conteúdo e das ferramentas que já estão lá.
|
|
226
|
+
*/
|
|
227
|
+
const handleApproval = async (
|
|
228
|
+
chatId: string,
|
|
229
|
+
messageId: string,
|
|
230
|
+
approved: boolean,
|
|
231
|
+
) => {
|
|
232
|
+
const mensagem = usGenerativeChatStore
|
|
233
|
+
.getState()
|
|
234
|
+
.chatHistory.find((chat) => chat.id === chatId)
|
|
235
|
+
?.conversation?.find((item) => item.id === messageId)
|
|
236
|
+
|
|
237
|
+
if (!mensagem?.pendingApproval) {
|
|
238
|
+
return
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
setIsTyping(true)
|
|
242
|
+
// Some com o card antes da chamada: dois cliques rápidos enviariam duas
|
|
243
|
+
// retomadas, e a segunda falha (o interrupt já foi consumido).
|
|
244
|
+
updateConversation(chatId, messageId, { pendingApproval: undefined })
|
|
245
|
+
|
|
246
|
+
await consumirStream(
|
|
247
|
+
chatId,
|
|
248
|
+
messageId,
|
|
249
|
+
(onEvent) =>
|
|
250
|
+
resumeChat({ approved, conversationId: chatId, onEvent }),
|
|
251
|
+
{ texto: mensagem.content ?? '', tools: mensagem.tools ?? [] },
|
|
252
|
+
)
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
/**
|
|
256
|
+
* Envia os dados que faltavam (ou o cancelamento) e retoma a conversa.
|
|
257
|
+
*
|
|
258
|
+
* Mesma mecânica do `handleApproval`: continua na MESMA mensagem, então o
|
|
259
|
+
* acumulador parte do que já está lá.
|
|
260
|
+
*/
|
|
261
|
+
const handleDataSubmit = async (
|
|
262
|
+
chatId: string,
|
|
263
|
+
messageId: string,
|
|
264
|
+
dados: Record<string, unknown> | null,
|
|
265
|
+
) => {
|
|
266
|
+
const mensagem = usGenerativeChatStore
|
|
267
|
+
.getState()
|
|
268
|
+
.chatHistory.find((chat) => chat.id === chatId)
|
|
269
|
+
?.conversation?.find((item) => item.id === messageId)
|
|
270
|
+
|
|
271
|
+
if (!mensagem?.pendingInput) {
|
|
272
|
+
return
|
|
273
|
+
}
|
|
274
|
+
|
|
275
|
+
setIsTyping(true)
|
|
276
|
+
// Some com o formulário antes da chamada: dois envios mandariam duas
|
|
277
|
+
// retomadas, e a segunda falha (o interrupt já foi consumido).
|
|
278
|
+
updateConversation(chatId, messageId, { pendingInput: undefined })
|
|
279
|
+
|
|
280
|
+
await consumirStream(
|
|
281
|
+
chatId,
|
|
282
|
+
messageId,
|
|
283
|
+
(onEvent) => resumeChat({ dados, conversationId: chatId, onEvent }),
|
|
284
|
+
{ texto: mensagem.content ?? '', tools: mensagem.tools ?? [] },
|
|
285
|
+
)
|
|
286
|
+
}
|
|
287
|
+
|
|
85
288
|
return {
|
|
86
289
|
handleSend,
|
|
290
|
+
handleApproval,
|
|
291
|
+
handleDataSubmit,
|
|
87
292
|
}
|
|
88
293
|
}
|
|
89
294
|
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { useEffect, useState } from 'react'
|
|
2
|
+
import { apiGetChatHistory } from '@/services/AiService'
|
|
3
|
+
import { usGenerativeChatStore } from '../store/generativeChatStore'
|
|
4
|
+
import { mensagemDoHistorico } from '../utils'
|
|
5
|
+
import type { Conversation, HistoryChat } from '../types'
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Busca as mensagens da conversa selecionada quando ela veio da lista do
|
|
9
|
+
* backend e ainda não foi aberta nesta sessão.
|
|
10
|
+
*
|
|
11
|
+
* Busca uma vez por conversa: depois disso `loaded` fica true e as mensagens
|
|
12
|
+
* novas chegam pelo streaming, como em qualquer conversa.
|
|
13
|
+
*/
|
|
14
|
+
const useConversationMessages = () => {
|
|
15
|
+
const { selectedConversation, chatHistory, setConversationMessages } =
|
|
16
|
+
usGenerativeChatStore()
|
|
17
|
+
const [carregando, setCarregando] = useState(false)
|
|
18
|
+
|
|
19
|
+
const pendente =
|
|
20
|
+
chatHistory.find((chat) => chat.id === selectedConversation)?.loaded ===
|
|
21
|
+
false
|
|
22
|
+
|
|
23
|
+
useEffect(() => {
|
|
24
|
+
if (!selectedConversation || !pendente) {
|
|
25
|
+
return
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
// Trocar de conversa no meio da busca não pode gravar a resposta
|
|
29
|
+
// atrasada na tela errada.
|
|
30
|
+
let cancelado = false
|
|
31
|
+
setCarregando(true)
|
|
32
|
+
|
|
33
|
+
// O usuário pode ter enviado algo enquanto a busca corria: o que já
|
|
34
|
+
// está na tela vem depois do histórico, e não some.
|
|
35
|
+
const gravar = (antigas: Conversation[]) => {
|
|
36
|
+
const naTela =
|
|
37
|
+
usGenerativeChatStore
|
|
38
|
+
.getState()
|
|
39
|
+
.chatHistory.find((chat) => chat.id === selectedConversation)
|
|
40
|
+
?.conversation ?? []
|
|
41
|
+
setConversationMessages(selectedConversation, [...antigas, ...naTela])
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
apiGetChatHistory<HistoryChat[]>(selectedConversation)
|
|
45
|
+
.then((resposta) => {
|
|
46
|
+
if (cancelado) return
|
|
47
|
+
gravar((resposta[0]?.conversation ?? []).map(mensagemDoHistorico))
|
|
48
|
+
})
|
|
49
|
+
.catch(() => {
|
|
50
|
+
// Marca como carregada mesmo assim: sem isto, cada render
|
|
51
|
+
// tentaria de novo. A conversa segue utilizável, porque a
|
|
52
|
+
// memória está no backend.
|
|
53
|
+
if (!cancelado) gravar([])
|
|
54
|
+
})
|
|
55
|
+
.finally(() => {
|
|
56
|
+
if (!cancelado) setCarregando(false)
|
|
57
|
+
})
|
|
58
|
+
|
|
59
|
+
return () => {
|
|
60
|
+
cancelado = true
|
|
61
|
+
setCarregando(false)
|
|
62
|
+
}
|
|
63
|
+
}, [selectedConversation, pendente, setConversationMessages])
|
|
64
|
+
|
|
65
|
+
return { carregando }
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
export default useConversationMessages
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { create } from 'zustand'
|
|
2
|
+
import { useSessionUser } from '@/store/authStore'
|
|
2
3
|
import type { ChatHistories, ChatHistory, Conversation } from '../types'
|
|
3
4
|
|
|
4
5
|
type RenameDialog = {
|
|
@@ -24,7 +25,16 @@ type GenerativeChatAction = {
|
|
|
24
25
|
setIsTyping: (payload: boolean) => void
|
|
25
26
|
pushChatHistory: (payload: ChatHistory) => void
|
|
26
27
|
pushConversation: (id: string, conversation: Conversation) => void
|
|
28
|
+
/** Grava as mensagens buscadas no backend e marca a conversa como carregada. */
|
|
29
|
+
setConversationMessages: (id: string, conversation: Conversation[]) => void
|
|
30
|
+
updateConversation: (
|
|
31
|
+
chatId: string,
|
|
32
|
+
messageId: string,
|
|
33
|
+
patch: Partial<Conversation>,
|
|
34
|
+
) => void
|
|
27
35
|
disabledChatFresh: (id: string) => void
|
|
36
|
+
/** Volta ao estado inicial. Chamado sozinho quando o usuário da sessão muda. */
|
|
37
|
+
reset: () => void
|
|
28
38
|
}
|
|
29
39
|
|
|
30
40
|
const initialState: GenerativeChatState = {
|
|
@@ -43,6 +53,14 @@ export const usGenerativeChatStore = create<
|
|
|
43
53
|
GenerativeChatState & GenerativeChatAction
|
|
44
54
|
>((set, get) => ({
|
|
45
55
|
...initialState,
|
|
56
|
+
// Arrays novos: `setSelectedConversationRecord` muta o array no lugar, e
|
|
57
|
+
// reusar o do initialState traria de volta o que ele acumulou.
|
|
58
|
+
reset: () =>
|
|
59
|
+
set(() => ({
|
|
60
|
+
...initialState,
|
|
61
|
+
selectedConversationRecord: [],
|
|
62
|
+
chatHistory: [],
|
|
63
|
+
})),
|
|
46
64
|
setSelectedConversation: (payload) =>
|
|
47
65
|
set(() => ({ selectedConversation: payload })),
|
|
48
66
|
setChatHistory: (payload) => set(() => ({ chatHistory: payload })),
|
|
@@ -69,21 +87,54 @@ export const usGenerativeChatStore = create<
|
|
|
69
87
|
|
|
70
88
|
return { selectedConversationRecord: record }
|
|
71
89
|
}),
|
|
90
|
+
// Conversa criada nesta sessão já nasce carregada: as mensagens estão aqui,
|
|
91
|
+
// não há o que buscar no backend.
|
|
72
92
|
pushChatHistory: (payload) =>
|
|
73
|
-
set(() => ({
|
|
93
|
+
set(() => ({
|
|
94
|
+
chatHistory: [{ loaded: true, ...payload }, ...get().chatHistory],
|
|
95
|
+
})),
|
|
96
|
+
setConversationMessages: (id, conversation) =>
|
|
97
|
+
set(() => ({
|
|
98
|
+
chatHistory: get().chatHistory.map((chat) =>
|
|
99
|
+
chat.id === id ? { ...chat, conversation, loaded: true } : chat,
|
|
100
|
+
),
|
|
101
|
+
})),
|
|
74
102
|
pushConversation: (id, conversation) =>
|
|
75
|
-
set(() => {
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
103
|
+
set(() => ({
|
|
104
|
+
chatHistory: get().chatHistory.map((chat) =>
|
|
105
|
+
chat.id === id
|
|
106
|
+
? {
|
|
107
|
+
...chat,
|
|
108
|
+
conversation: [
|
|
109
|
+
...(chat.conversation ?? []),
|
|
110
|
+
conversation,
|
|
111
|
+
],
|
|
112
|
+
}
|
|
113
|
+
: chat,
|
|
114
|
+
),
|
|
115
|
+
})),
|
|
116
|
+
/**
|
|
117
|
+
* Atualiza UMA mensagem de uma conversa.
|
|
118
|
+
*
|
|
119
|
+
* Imutavel de proposito: o streaming chama isto a cada token, e mutar o
|
|
120
|
+
* objeto no lugar faria o React perder atualizacoes — a re-renderizacao
|
|
121
|
+
* dependeria da identidade do array externo mudar por acaso.
|
|
122
|
+
*/
|
|
123
|
+
updateConversation: (chatId, messageId, patch) =>
|
|
124
|
+
set(() => ({
|
|
125
|
+
chatHistory: get().chatHistory.map((chat) =>
|
|
126
|
+
chat.id === chatId
|
|
127
|
+
? {
|
|
128
|
+
...chat,
|
|
129
|
+
conversation: chat.conversation?.map((mensagem) =>
|
|
130
|
+
mensagem.id === messageId
|
|
131
|
+
? { ...mensagem, ...patch }
|
|
132
|
+
: mensagem,
|
|
133
|
+
),
|
|
134
|
+
}
|
|
135
|
+
: chat,
|
|
136
|
+
),
|
|
137
|
+
})),
|
|
87
138
|
setIsTyping: (payload) => set(() => ({ isTyping: payload })),
|
|
88
139
|
disabledChatFresh: () =>
|
|
89
140
|
set(() => {
|
|
@@ -103,3 +154,23 @@ export const usGenerativeChatStore = create<
|
|
|
103
154
|
return { chatHistory }
|
|
104
155
|
}),
|
|
105
156
|
}))
|
|
157
|
+
|
|
158
|
+
/**
|
|
159
|
+
* O chat pertence ao usuário da sessão: trocou o usuário, zera o chat.
|
|
160
|
+
*
|
|
161
|
+
* Login e logout acontecem sem recarregar a página, e este store é um singleton
|
|
162
|
+
* do módulo. Sem isto, o próximo usuário via as conversas do anterior.
|
|
163
|
+
*
|
|
164
|
+
* Olha o `signedIn` além do `userId` porque o logout faz `setUser({})`, e o
|
|
165
|
+
* `setUser` faz MERGE: o `userId` antigo continua lá depois de sair.
|
|
166
|
+
*
|
|
167
|
+
* É uma assinatura, e não um efeito de componente, para zerar ANTES do próximo
|
|
168
|
+
* render: a lista antiga nem chega a piscar na tela.
|
|
169
|
+
*/
|
|
170
|
+
useSessionUser.subscribe((atual, anterior) => {
|
|
171
|
+
const trocouUsuario = atual.user.userId !== anterior.user.userId
|
|
172
|
+
const saiu = anterior.session.signedIn && !atual.session.signedIn
|
|
173
|
+
if (trocouUsuario || saiu) {
|
|
174
|
+
usGenerativeChatStore.getState().reset()
|
|
175
|
+
}
|
|
176
|
+
})
|