@orbe-agro/client-core 5.6.262 → 5.6.263
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 +235 -5
- package/dist/@ecme/assets/styles/tailwind/index.css +247 -6
- 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 +61 -17
- 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 +253 -5
- 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 +115 -17
- 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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Header.stories.js","sources":["../../../../lib/@ecme/components/template/Header.stories.tsx"],"sourcesContent":["import type { Meta, StoryObj } from '@storybook/react'\nimport Header from './Header'\n\nconst meta = {\n title: '@ecme/Template/Header',\n component: Header,\n parameters: {\n layout: 'fullscreen',\n },\n tags: ['autodocs'],\n argTypes: {\n container: {\n control: 'boolean',\n },\n className: {\n control: 'text',\n },\n wrapperClass: {\n control: 'text',\n },\n },\n}
|
|
1
|
+
{"version":3,"file":"Header.stories.js","sources":["../../../../lib/@ecme/components/template/Header.stories.tsx"],"sourcesContent":["import type { Meta, StoryObj } from '@storybook/react'\nimport Header from './Header'\n\nconst meta: Meta<typeof Header> = {\n title: '@ecme/Template/Header',\n component: Header,\n parameters: {\n layout: 'fullscreen',\n },\n tags: ['autodocs'],\n argTypes: {\n container: {\n control: 'boolean',\n },\n className: {\n control: 'text',\n },\n wrapperClass: {\n control: 'text',\n },\n },\n}\n\nexport default meta\n\ntype TStory = StoryObj<typeof meta>\n\nexport const Default: TStory = {\n args: {\n container: false,\n className: '',\n wrapperClass: '',\n },\n render: (args) => (\n <Header\n {...args}\n headerStart={\n <div className=\"px-4 text-sm font-semibold\">Minha Marca</div>\n }\n headerMiddle={<div className=\"text-sm\">Área central</div>}\n headerEnd={\n <div className=\"px-4 text-sm text-gray-600\">Usuário</div>\n }\n />\n ),\n}\n"],"names":[],"mappings":";;AAGA,MAAM,OAA4B;AAAA,EAC9B,OAAO;AAAA,EACP,WAAW;AAAA,EACX,YAAY;AAAA,IACR,QAAQ;AAAA,EAAA;AAAA,EAEZ,MAAM,CAAC,UAAU;AAAA,EACjB,UAAU;AAAA,IACN,WAAW;AAAA,MACP,SAAS;AAAA,IAAA;AAAA,IAEb,WAAW;AAAA,MACP,SAAS;AAAA,IAAA;AAAA,IAEb,cAAc;AAAA,MACV,SAAS;AAAA,IAAA;AAAA,EACb;AAER;AAMO,MAAM,UAAkB;AAAA,EAC3B,MAAM;AAAA,IACF,WAAW;AAAA,IACX,WAAW;AAAA,IACX,cAAc;AAAA,EAAA;AAAA,EAElB,QAAQ,CAAC,SACL;AAAA,IAAC;AAAA,IAAA;AAAA,MACI,GAAG;AAAA,MACJ,aACI,oBAAC,OAAA,EAAI,WAAU,8BAA6B,UAAA,eAAW;AAAA,MAE3D,cAAc,oBAAC,OAAA,EAAI,WAAU,WAAU,UAAA,gBAAY;AAAA,MACnD,WACI,oBAAC,OAAA,EAAI,WAAU,8BAA6B,UAAA,UAAA,CAAO;AAAA,IAAA;AAAA,EAAA;AAInE;"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { jsxs, jsx } from "react/jsx-runtime";
|
|
2
|
-
import { useState,
|
|
2
|
+
import { useState, useRef } from "react";
|
|
3
3
|
import classNames from "classnames";
|
|
4
4
|
import withHeaderItem from "../../../utils/hoc/withHeaderItem.js";
|
|
5
5
|
import { Dropdown } from "../../ui/Dropdown/index.js";
|
|
@@ -38,9 +38,6 @@ const _Notification = ({ className }) => {
|
|
|
38
38
|
setNoResult(true);
|
|
39
39
|
}
|
|
40
40
|
};
|
|
41
|
-
useEffect(() => {
|
|
42
|
-
getNotificationCount();
|
|
43
|
-
}, []);
|
|
44
41
|
const onNotificationOpen = async () => {
|
|
45
42
|
if (notificationList.length === 0) {
|
|
46
43
|
setLoading(true);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Notification.js","sources":["../../../../../lib/@ecme/components/template/Notification/Notification.tsx"],"sourcesContent":["import { useEffect, useState, useRef } from 'react'\nimport classNames from 'classnames'\nimport withHeaderItem from '@/utils/hoc/withHeaderItem'\nimport Dropdown from '@/components/ui/Dropdown'\nimport ScrollBar from '@/components/ui/ScrollBar'\nimport Spinner from '@/components/ui/Spinner'\nimport Badge from '@/components/ui/Badge'\nimport Button from '@/components/ui/Button'\nimport Tooltip from '@/components/ui/Tooltip'\nimport NotificationAvatar from './NotificationAvatar'\nimport NotificationToggle from './NotificationToggle'\nimport { HiOutlineMailOpen } from 'react-icons/hi'\nimport {\n apiGetNotificationList,\n apiGetNotificationCount,\n} from '@/services/CommonService'\nimport isLastChild from '@/utils/isLastChild'\nimport useResponsive from '@/utils/hooks/useResponsive'\nimport { useNavigate } from 'react-router-dom'\n\nimport type { DropdownRef } from '@/components/ui/Dropdown'\nimport { useTranslation } from 'react-i18next'\n\ntype NotificationList = {\n id: string\n target: string\n description: string\n date: string\n image: string\n type: number\n location: string\n locationLabel: string\n status: string\n readed: boolean\n}\n\nconst notificationHeight = 'h-[280px]'\n\nconst _Notification = ({ className }: { className?: string }) => {\n const [notificationList, setNotificationList] = useState<\n NotificationList[]\n >([])\n const [unreadNotification, setUnreadNotification] = useState(false)\n const [noResult, setNoResult] = useState(false)\n const [loading, setLoading] = useState(false)\n\n const { larger } = useResponsive()\n\n const navigate = useNavigate()\n\n const getNotificationCount = async () => {\n const resp = await apiGetNotificationCount()\n if (resp.count > 0) {\n setNoResult(false)\n setUnreadNotification(true)\n } else {\n setNoResult(true)\n }\n }\n\n useEffect(() => {\n getNotificationCount()\n }, [])\n\n const onNotificationOpen = async () => {\n if (notificationList.length === 0) {\n setLoading(true)\n const resp = await apiGetNotificationList()\n setLoading(false)\n setNotificationList(resp)\n }\n }\n\n const onMarkAllAsRead = () => {\n const list = notificationList.map((item: NotificationList) => {\n if (!item.readed) {\n item.readed = true\n }\n return item\n })\n setNotificationList(list)\n setUnreadNotification(false)\n }\n\n const onMarkAsRead = (id: string) => {\n const list = notificationList.map((item) => {\n if (item.id === id) {\n item.readed = true\n }\n return item\n })\n setNotificationList(list)\n const hasUnread = notificationList.some((item) => !item.readed)\n\n if (!hasUnread) {\n setUnreadNotification(false)\n }\n }\n\n const notificationDropdownRef = useRef<DropdownRef>(null)\n\n const handleViewAllActivity = () => {\n navigate('/concepts/account/activity-log')\n if (notificationDropdownRef.current) {\n notificationDropdownRef.current.handleDropdownClose()\n }\n }\n\n const { t } = useTranslation()\n\n const isDisabled = true\n\n return (\n <Dropdown\n disabled={isDisabled}\n ref={notificationDropdownRef}\n renderTitle={\n <NotificationToggle\n dot={unreadNotification}\n className={isDisabled ? 'header-action-item-disabled' : className}\n />\n }\n menuClass=\"min-w-[280px] md:min-w-[340px]\"\n placement={larger.md ? 'bottom-end' : 'bottom'}\n onOpen={onNotificationOpen}\n >\n <Dropdown.Item variant=\"header\">\n <div className=\"mb-1 flex items-center justify-between px-2 dark:border-gray-700\">\n <h6>{t('base.layout.notifications.title')}</h6>\n <Tooltip\n title={t('base.layout.notifications.actions.readAll')}\n >\n <Button\n variant=\"plain\"\n shape=\"circle\"\n size=\"sm\"\n icon={<HiOutlineMailOpen className=\"text-xl\" />}\n onClick={onMarkAllAsRead}\n />\n </Tooltip>\n </div>\n </Dropdown.Item>\n <ScrollBar\n className={classNames('overflow-y-auto', notificationHeight)}\n >\n {notificationList.length > 0 &&\n notificationList.map((item, index) => (\n <div key={item.id}>\n <div\n className={`relative flex cursor-pointer rounded-xl px-4 py-3 hover:bg-gray-100 active:bg-gray-100 dark:hover:bg-gray-700`}\n onClick={() => onMarkAsRead(item.id)}\n >\n <div>\n <NotificationAvatar {...item} />\n </div>\n <div className=\"mx-3\">\n <div>\n {item.target && (\n <span className=\"heading-text font-semibold\">\n {item.target}{' '}\n </span>\n )}\n <span>{item.description}</span>\n </div>\n <span className=\"text-xs\">{item.date}</span>\n </div>\n <Badge\n className=\"absolute top-4 mt-1.5 ltr:right-4 rtl:left-4\"\n innerClass={`${\n item.readed\n ? 'bg-gray-300 dark:bg-gray-600'\n : 'bg-primary'\n } `}\n />\n </div>\n {!isLastChild(notificationList, index) ? (\n <div className=\"my-2 border-b border-gray-200 dark:border-gray-700\" />\n ) : (\n ''\n )}\n </div>\n ))}\n {loading && (\n <div\n className={classNames(\n 'flex items-center justify-center',\n notificationHeight,\n )}\n >\n <Spinner size={40} />\n </div>\n )}\n {noResult && notificationList.length === 0 && (\n <div\n className={classNames(\n 'flex items-center justify-center',\n notificationHeight,\n )}\n >\n <div className=\"text-center\">\n <img\n className=\"mx-auto mb-2 max-w-[150px]\"\n src=\"/img/others/no-notification.png\"\n alt=\"no-notification\"\n />\n <h6 className=\"font-semibold\">No notifications!</h6>\n <p className=\"mt-1\">Please Try again later</p>\n </div>\n </div>\n )}\n </ScrollBar>\n <Dropdown.Item variant=\"header\">\n <div className=\"pt-4\">\n <Button\n block\n variant=\"solid\"\n onClick={handleViewAllActivity}\n >\n {t('base.layout.notifications.buttons.viewAll')}\n </Button>\n </div>\n </Dropdown.Item>\n </Dropdown>\n )\n}\n\nconst Notification = withHeaderItem(_Notification)\n\nexport default Notification\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Notification.js","sources":["../../../../../lib/@ecme/components/template/Notification/Notification.tsx"],"sourcesContent":["import { useEffect, useState, useRef } from 'react'\nimport classNames from 'classnames'\nimport withHeaderItem from '@/utils/hoc/withHeaderItem'\nimport Dropdown from '@/components/ui/Dropdown'\nimport ScrollBar from '@/components/ui/ScrollBar'\nimport Spinner from '@/components/ui/Spinner'\nimport Badge from '@/components/ui/Badge'\nimport Button from '@/components/ui/Button'\nimport Tooltip from '@/components/ui/Tooltip'\nimport NotificationAvatar from './NotificationAvatar'\nimport NotificationToggle from './NotificationToggle'\nimport { HiOutlineMailOpen } from 'react-icons/hi'\nimport {\n apiGetNotificationList,\n apiGetNotificationCount,\n} from '@/services/CommonService'\nimport isLastChild from '@/utils/isLastChild'\nimport useResponsive from '@/utils/hooks/useResponsive'\nimport { useNavigate } from 'react-router-dom'\n\nimport type { DropdownRef } from '@/components/ui/Dropdown'\nimport { useTranslation } from 'react-i18next'\n\ntype NotificationList = {\n id: string\n target: string\n description: string\n date: string\n image: string\n type: number\n location: string\n locationLabel: string\n status: string\n readed: boolean\n}\n\nconst notificationHeight = 'h-[280px]'\n\nconst _Notification = ({ className }: { className?: string }) => {\n const [notificationList, setNotificationList] = useState<\n NotificationList[]\n >([])\n const [unreadNotification, setUnreadNotification] = useState(false)\n const [noResult, setNoResult] = useState(false)\n const [loading, setLoading] = useState(false)\n\n const { larger } = useResponsive()\n\n const navigate = useNavigate()\n\n const getNotificationCount = async () => {\n const resp = await apiGetNotificationCount()\n if (resp.count > 0) {\n setNoResult(false)\n setUnreadNotification(true)\n } else {\n setNoResult(true)\n }\n }\n\n/* useEffect(() => {\n getNotificationCount()\n }, []) */\n\n const onNotificationOpen = async () => {\n if (notificationList.length === 0) {\n setLoading(true)\n const resp = await apiGetNotificationList()\n setLoading(false)\n setNotificationList(resp)\n }\n }\n\n const onMarkAllAsRead = () => {\n const list = notificationList.map((item: NotificationList) => {\n if (!item.readed) {\n item.readed = true\n }\n return item\n })\n setNotificationList(list)\n setUnreadNotification(false)\n }\n\n const onMarkAsRead = (id: string) => {\n const list = notificationList.map((item) => {\n if (item.id === id) {\n item.readed = true\n }\n return item\n })\n setNotificationList(list)\n const hasUnread = notificationList.some((item) => !item.readed)\n\n if (!hasUnread) {\n setUnreadNotification(false)\n }\n }\n\n const notificationDropdownRef = useRef<DropdownRef>(null)\n\n const handleViewAllActivity = () => {\n navigate('/concepts/account/activity-log')\n if (notificationDropdownRef.current) {\n notificationDropdownRef.current.handleDropdownClose()\n }\n }\n\n const { t } = useTranslation()\n\n const isDisabled = true\n\n return (\n <Dropdown\n disabled={isDisabled}\n ref={notificationDropdownRef}\n renderTitle={\n <NotificationToggle\n dot={unreadNotification}\n className={isDisabled ? 'header-action-item-disabled' : className}\n />\n }\n menuClass=\"min-w-[280px] md:min-w-[340px]\"\n placement={larger.md ? 'bottom-end' : 'bottom'}\n onOpen={onNotificationOpen}\n >\n <Dropdown.Item variant=\"header\">\n <div className=\"mb-1 flex items-center justify-between px-2 dark:border-gray-700\">\n <h6>{t('base.layout.notifications.title')}</h6>\n <Tooltip\n title={t('base.layout.notifications.actions.readAll')}\n >\n <Button\n variant=\"plain\"\n shape=\"circle\"\n size=\"sm\"\n icon={<HiOutlineMailOpen className=\"text-xl\" />}\n onClick={onMarkAllAsRead}\n />\n </Tooltip>\n </div>\n </Dropdown.Item>\n <ScrollBar\n className={classNames('overflow-y-auto', notificationHeight)}\n >\n {notificationList.length > 0 &&\n notificationList.map((item, index) => (\n <div key={item.id}>\n <div\n className={`relative flex cursor-pointer rounded-xl px-4 py-3 hover:bg-gray-100 active:bg-gray-100 dark:hover:bg-gray-700`}\n onClick={() => onMarkAsRead(item.id)}\n >\n <div>\n <NotificationAvatar {...item} />\n </div>\n <div className=\"mx-3\">\n <div>\n {item.target && (\n <span className=\"heading-text font-semibold\">\n {item.target}{' '}\n </span>\n )}\n <span>{item.description}</span>\n </div>\n <span className=\"text-xs\">{item.date}</span>\n </div>\n <Badge\n className=\"absolute top-4 mt-1.5 ltr:right-4 rtl:left-4\"\n innerClass={`${\n item.readed\n ? 'bg-gray-300 dark:bg-gray-600'\n : 'bg-primary'\n } `}\n />\n </div>\n {!isLastChild(notificationList, index) ? (\n <div className=\"my-2 border-b border-gray-200 dark:border-gray-700\" />\n ) : (\n ''\n )}\n </div>\n ))}\n {loading && (\n <div\n className={classNames(\n 'flex items-center justify-center',\n notificationHeight,\n )}\n >\n <Spinner size={40} />\n </div>\n )}\n {noResult && notificationList.length === 0 && (\n <div\n className={classNames(\n 'flex items-center justify-center',\n notificationHeight,\n )}\n >\n <div className=\"text-center\">\n <img\n className=\"mx-auto mb-2 max-w-[150px]\"\n src=\"/img/others/no-notification.png\"\n alt=\"no-notification\"\n />\n <h6 className=\"font-semibold\">No notifications!</h6>\n <p className=\"mt-1\">Please Try again later</p>\n </div>\n </div>\n )}\n </ScrollBar>\n <Dropdown.Item variant=\"header\">\n <div className=\"pt-4\">\n <Button\n block\n variant=\"solid\"\n onClick={handleViewAllActivity}\n >\n {t('base.layout.notifications.buttons.viewAll')}\n </Button>\n </div>\n </Dropdown.Item>\n </Dropdown>\n )\n}\n\nconst Notification = withHeaderItem(_Notification)\n\nexport default Notification\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
import { jsx, jsxs, Fragment } from "react/jsx-runtime";
|
|
2
|
+
import { useState, useMemo, useEffect } from "react";
|
|
3
|
+
import debounce from "lodash/debounce";
|
|
4
|
+
import { AnimatePresence, motion } from "framer-motion";
|
|
5
|
+
import { TbPlus, TbSearch } from "react-icons/tb";
|
|
6
|
+
import { HiX } from "react-icons/hi";
|
|
7
|
+
import "../../ui/Button/index.js";
|
|
8
|
+
import ChatHistory from "../../../views/concepts/ai/Chat/components/ChatHistory.js";
|
|
9
|
+
import { usGenerativeChatStore } from "../../../views/concepts/ai/Chat/store/generativeChatStore.js";
|
|
10
|
+
import Button from "../../ui/Button/Button.js";
|
|
11
|
+
const iconButtonClass = "flex h-8 w-8 items-center justify-center rounded-full text-gray-500 transition-colors hover:bg-gray-100 hover:text-gray-700 dark:text-gray-400 dark:hover:bg-gray-700 dark:hover:text-gray-200";
|
|
12
|
+
const OrbeAiChatDrawer = ({ open, onClose }) => {
|
|
13
|
+
const [queryText, setQueryText] = useState("");
|
|
14
|
+
const { setSelectedConversation } = usGenerativeChatStore();
|
|
15
|
+
const debounceFn = useMemo(
|
|
16
|
+
() => debounce((e) => {
|
|
17
|
+
setQueryText(e.target.value);
|
|
18
|
+
}, 500),
|
|
19
|
+
[]
|
|
20
|
+
);
|
|
21
|
+
useEffect(() => () => debounceFn.cancel(), [debounceFn]);
|
|
22
|
+
useEffect(() => {
|
|
23
|
+
if (!open) {
|
|
24
|
+
debounceFn.cancel();
|
|
25
|
+
setQueryText("");
|
|
26
|
+
}
|
|
27
|
+
}, [open, debounceFn]);
|
|
28
|
+
useEffect(() => {
|
|
29
|
+
if (!open) return;
|
|
30
|
+
const handleKeyDown = (event) => {
|
|
31
|
+
if (event.key === "Escape") onClose();
|
|
32
|
+
};
|
|
33
|
+
window.addEventListener("keydown", handleKeyDown);
|
|
34
|
+
return () => window.removeEventListener("keydown", handleKeyDown);
|
|
35
|
+
}, [open, onClose]);
|
|
36
|
+
const handleNewChat = () => {
|
|
37
|
+
setSelectedConversation("");
|
|
38
|
+
onClose();
|
|
39
|
+
};
|
|
40
|
+
return /* @__PURE__ */ jsx(AnimatePresence, { children: open && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
41
|
+
/* @__PURE__ */ jsx(
|
|
42
|
+
motion.div,
|
|
43
|
+
{
|
|
44
|
+
"aria-hidden": true,
|
|
45
|
+
initial: { opacity: 0 },
|
|
46
|
+
animate: { opacity: 1 },
|
|
47
|
+
exit: { opacity: 0 },
|
|
48
|
+
transition: { duration: 0.2 },
|
|
49
|
+
className: "absolute inset-0 z-40 bg-black/40",
|
|
50
|
+
onClick: onClose
|
|
51
|
+
},
|
|
52
|
+
"orbe-ai-drawer-backdrop"
|
|
53
|
+
),
|
|
54
|
+
/* @__PURE__ */ jsxs(
|
|
55
|
+
motion.aside,
|
|
56
|
+
{
|
|
57
|
+
role: "dialog",
|
|
58
|
+
"aria-modal": "true",
|
|
59
|
+
"aria-label": "Conversas",
|
|
60
|
+
initial: { x: "-100%" },
|
|
61
|
+
animate: { x: 0 },
|
|
62
|
+
exit: { x: "-100%" },
|
|
63
|
+
transition: { duration: 0.2, ease: "easeOut" },
|
|
64
|
+
className: "absolute inset-y-0 left-0 z-50 flex w-[85%] max-w-[300px] flex-col border-r border-gray-200 bg-white shadow-xl dark:border-gray-700 dark:bg-gray-800",
|
|
65
|
+
children: [
|
|
66
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between border-b border-gray-200 px-4 py-3 dark:border-gray-700", children: [
|
|
67
|
+
/* @__PURE__ */ jsx("span", { className: "font-semibold text-gray-900 dark:text-gray-100", children: "Conversas" }),
|
|
68
|
+
/* @__PURE__ */ jsx(
|
|
69
|
+
"button",
|
|
70
|
+
{
|
|
71
|
+
type: "button",
|
|
72
|
+
className: iconButtonClass,
|
|
73
|
+
onClick: onClose,
|
|
74
|
+
"aria-label": "Fechar conversas",
|
|
75
|
+
children: /* @__PURE__ */ jsx(HiX, { size: 18 })
|
|
76
|
+
}
|
|
77
|
+
)
|
|
78
|
+
] }),
|
|
79
|
+
/* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-3 px-4 pt-4", children: [
|
|
80
|
+
/* @__PURE__ */ jsx(
|
|
81
|
+
Button,
|
|
82
|
+
{
|
|
83
|
+
block: true,
|
|
84
|
+
variant: "solid",
|
|
85
|
+
size: "sm",
|
|
86
|
+
icon: /* @__PURE__ */ jsx(TbPlus, {}),
|
|
87
|
+
onClick: handleNewChat,
|
|
88
|
+
children: "Novo chat"
|
|
89
|
+
}
|
|
90
|
+
),
|
|
91
|
+
/* @__PURE__ */ jsxs("label", { className: "flex h-9 items-center gap-2 rounded-lg border border-gray-200 px-3 focus-within:border-primary dark:border-gray-600", children: [
|
|
92
|
+
/* @__PURE__ */ jsx(TbSearch, { className: "shrink-0 text-lg text-gray-400" }),
|
|
93
|
+
/* @__PURE__ */ jsx(
|
|
94
|
+
"input",
|
|
95
|
+
{
|
|
96
|
+
className: "h-full min-w-0 flex-1 bg-transparent text-sm placeholder:text-gray-400 focus:outline-none heading-text",
|
|
97
|
+
placeholder: "Buscar conversa",
|
|
98
|
+
onChange: debounceFn
|
|
99
|
+
}
|
|
100
|
+
)
|
|
101
|
+
] })
|
|
102
|
+
] }),
|
|
103
|
+
/* @__PURE__ */ jsx("div", { className: "px-4 pb-1 pt-4 text-xs font-semibold uppercase tracking-wide text-gray-400", children: "Histórico" }),
|
|
104
|
+
/* @__PURE__ */ jsx("div", { className: "min-h-0 flex-1", children: /* @__PURE__ */ jsx(
|
|
105
|
+
ChatHistory,
|
|
106
|
+
{
|
|
107
|
+
queryText,
|
|
108
|
+
onClick: onClose,
|
|
109
|
+
dropdownFloatingClass: "!z-[10000]"
|
|
110
|
+
}
|
|
111
|
+
) })
|
|
112
|
+
]
|
|
113
|
+
},
|
|
114
|
+
"orbe-ai-drawer"
|
|
115
|
+
)
|
|
116
|
+
] }) });
|
|
117
|
+
};
|
|
118
|
+
export {
|
|
119
|
+
OrbeAiChatDrawer as default
|
|
120
|
+
};
|
|
121
|
+
//# sourceMappingURL=OrbeAiChatDrawer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OrbeAiChatDrawer.js","sources":["../../../../../lib/@ecme/components/template/OrbeAiWidget/OrbeAiChatDrawer.tsx"],"sourcesContent":["import { useEffect, useMemo, useState } from 'react'\nimport debounce from 'lodash/debounce'\nimport { AnimatePresence, motion } from 'framer-motion'\nimport { TbPlus, TbSearch } from 'react-icons/tb'\nimport { HiX } from 'react-icons/hi'\nimport Button from '@/components/ui/Button'\nimport ChatHistory from '@/views/concepts/ai/Chat/components/ChatHistory'\nimport { usGenerativeChatStore } from '@/views/concepts/ai/Chat/store/generativeChatStore'\nimport type { ChangeEvent } from 'react'\n\ntype OrbeAiChatDrawerProps = {\n open: boolean\n onClose: () => void\n}\n\nconst iconButtonClass =\n 'flex h-8 w-8 items-center justify-center rounded-full text-gray-500 transition-colors hover:bg-gray-100 hover:text-gray-700 dark:text-gray-400 dark:hover:bg-gray-700 dark:hover:text-gray-200'\n\n/**\n * Drawer de conversas DENTRO do painel do widget.\n *\n * Não usa o Drawer do ui: ele é portalizado no body com overlay em z-30 e\n * abriria atrás do widget (z-40 / z-[9999]), cobrindo a página inteira. Aqui é\n * `absolute`, então fica recortado pelo painel em qualquer tamanho.\n */\nconst OrbeAiChatDrawer = ({ open, onClose }: OrbeAiChatDrawerProps) => {\n const [queryText, setQueryText] = useState('')\n const { setSelectedConversation } = usGenerativeChatStore()\n\n // Memoizado: o store re-renderiza o drawer a cada token do streaming, e um\n // debounce recriado a cada render perderia a busca pendente.\n const debounceFn = useMemo(\n () =>\n debounce((e: ChangeEvent<HTMLInputElement>) => {\n setQueryText(e.target.value)\n }, 500),\n [],\n )\n\n useEffect(() => () => debounceFn.cancel(), [debounceFn])\n\n // O input desmonta ao fechar e volta vazio; o filtro precisa acompanhar.\n useEffect(() => {\n if (!open) {\n debounceFn.cancel()\n setQueryText('')\n }\n }, [open, debounceFn])\n\n useEffect(() => {\n if (!open) return\n const handleKeyDown = (event: KeyboardEvent) => {\n if (event.key === 'Escape') onClose()\n }\n window.addEventListener('keydown', handleKeyDown)\n return () => window.removeEventListener('keydown', handleKeyDown)\n }, [open, onClose])\n\n const handleNewChat = () => {\n setSelectedConversation('')\n onClose()\n }\n\n return (\n <AnimatePresence>\n {open && (\n <>\n <motion.div\n key=\"orbe-ai-drawer-backdrop\"\n aria-hidden\n initial={{ opacity: 0 }}\n animate={{ opacity: 1 }}\n exit={{ opacity: 0 }}\n transition={{ duration: 0.2 }}\n className=\"absolute inset-0 z-40 bg-black/40\"\n onClick={onClose}\n />\n <motion.aside\n key=\"orbe-ai-drawer\"\n role=\"dialog\"\n aria-modal=\"true\"\n aria-label=\"Conversas\"\n initial={{ x: '-100%' }}\n animate={{ x: 0 }}\n exit={{ x: '-100%' }}\n transition={{ duration: 0.2, ease: 'easeOut' }}\n className=\"absolute inset-y-0 left-0 z-50 flex w-[85%] max-w-[300px] flex-col border-r border-gray-200 bg-white shadow-xl dark:border-gray-700 dark:bg-gray-800\"\n >\n <div className=\"flex items-center justify-between border-b border-gray-200 px-4 py-3 dark:border-gray-700\">\n <span className=\"font-semibold text-gray-900 dark:text-gray-100\">\n Conversas\n </span>\n <button\n type=\"button\"\n className={iconButtonClass}\n onClick={onClose}\n aria-label=\"Fechar conversas\"\n >\n <HiX size={18} />\n </button>\n </div>\n\n <div className=\"flex flex-col gap-3 px-4 pt-4\">\n <Button\n block\n variant=\"solid\"\n size=\"sm\"\n icon={<TbPlus />}\n onClick={handleNewChat}\n >\n Novo chat\n </Button>\n <label className=\"flex h-9 items-center gap-2 rounded-lg border border-gray-200 px-3 focus-within:border-primary dark:border-gray-600\">\n <TbSearch className=\"shrink-0 text-lg text-gray-400\" />\n <input\n className=\"h-full min-w-0 flex-1 bg-transparent text-sm placeholder:text-gray-400 focus:outline-none heading-text\"\n placeholder=\"Buscar conversa\"\n onChange={debounceFn}\n />\n </label>\n </div>\n\n <div className=\"px-4 pb-1 pt-4 text-xs font-semibold uppercase tracking-wide text-gray-400\">\n Histórico\n </div>\n <div className=\"min-h-0 flex-1\">\n <ChatHistory\n queryText={queryText}\n onClick={onClose}\n dropdownFloatingClass=\"!z-[10000]\"\n />\n </div>\n </motion.aside>\n </>\n )}\n </AnimatePresence>\n )\n}\n\nexport default OrbeAiChatDrawer\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
import { jsxs, jsx } from "react/jsx-runtime";
|
|
2
|
+
import { useState, useCallback } from "react";
|
|
3
|
+
import { AnimatePresence, motion } from "framer-motion";
|
|
4
|
+
import { TbMenu2, TbMessageChatbot, TbArrowsMinimize, TbArrowsMaximize } from "react-icons/tb";
|
|
5
|
+
import { HiX } from "react-icons/hi";
|
|
6
|
+
import ChatView from "../../../views/concepts/ai/Chat/components/ChatView.js";
|
|
7
|
+
import ChatHistoryRenameDialog from "../../../views/concepts/ai/Chat/components/ChatHistoryRenameDialog.js";
|
|
8
|
+
import useResizablePanel, { MARGIN } from "./useResizablePanel.js";
|
|
9
|
+
import ResizeHandles from "./ResizeHandles.js";
|
|
10
|
+
import OrbeAiChatDrawer from "./OrbeAiChatDrawer.js";
|
|
11
|
+
const iconButtonClass = "flex h-8 w-8 items-center justify-center rounded-full text-gray-500 transition-colors hover:bg-gray-100 hover:text-gray-700 dark:text-gray-400 dark:hover:bg-gray-700 dark:hover:text-gray-200";
|
|
12
|
+
const OrbeAiWidget = () => {
|
|
13
|
+
const [open, setOpen] = useState(false);
|
|
14
|
+
const [fullscreen, setFullscreen] = useState(false);
|
|
15
|
+
const [drawerOpen, setDrawerOpen] = useState(false);
|
|
16
|
+
const { rect, startResize, anchor } = useResizablePanel();
|
|
17
|
+
const toggleOpen = () => {
|
|
18
|
+
if (!open) anchor();
|
|
19
|
+
setOpen((prev) => !prev);
|
|
20
|
+
setDrawerOpen(false);
|
|
21
|
+
};
|
|
22
|
+
const toggleFullscreen = () => setFullscreen((prev) => !prev);
|
|
23
|
+
const toggleDrawer = () => setDrawerOpen((prev) => !prev);
|
|
24
|
+
const closeDrawer = useCallback(() => setDrawerOpen(false), []);
|
|
25
|
+
const close = () => {
|
|
26
|
+
setOpen(false);
|
|
27
|
+
setFullscreen(false);
|
|
28
|
+
setDrawerOpen(false);
|
|
29
|
+
};
|
|
30
|
+
const panelStyle = fullscreen ? void 0 : {
|
|
31
|
+
right: rect.right,
|
|
32
|
+
bottom: rect.bottom,
|
|
33
|
+
width: rect.width,
|
|
34
|
+
height: rect.height,
|
|
35
|
+
maxWidth: `calc(100% - ${rect.right + MARGIN}px)`,
|
|
36
|
+
maxHeight: `calc(100% - ${rect.bottom + MARGIN}px)`
|
|
37
|
+
};
|
|
38
|
+
const panelVariantClass = fullscreen ? "inset-0 rounded-none border-0" : "origin-bottom-right rounded-2xl border shadow-2xl";
|
|
39
|
+
return /* @__PURE__ */ jsxs(
|
|
40
|
+
"div",
|
|
41
|
+
{
|
|
42
|
+
className: `fixed bottom-6 right-6 flex flex-col items-end gap-3 print:hidden ${fullscreen ? "z-[9999]" : "z-40"}`,
|
|
43
|
+
children: [
|
|
44
|
+
/* @__PURE__ */ jsx(AnimatePresence, { children: open && /* @__PURE__ */ jsxs(
|
|
45
|
+
motion.div,
|
|
46
|
+
{
|
|
47
|
+
initial: { opacity: 0, y: 24, scale: 0.96 },
|
|
48
|
+
animate: { opacity: 1, y: 0, scale: 1 },
|
|
49
|
+
exit: { opacity: 0, y: 24, scale: 0.96 },
|
|
50
|
+
transition: { duration: 0.2, ease: "easeOut" },
|
|
51
|
+
style: panelStyle,
|
|
52
|
+
className: `fixed flex flex-col overflow-hidden border-gray-200 bg-white dark:border-gray-700 dark:bg-gray-800 ${panelVariantClass}`,
|
|
53
|
+
children: [
|
|
54
|
+
!fullscreen && /* @__PURE__ */ jsx(ResizeHandles, { onResizeStart: startResize }),
|
|
55
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between gap-2 border-b border-gray-200 px-3 py-3 sm:px-4 dark:border-gray-700", children: [
|
|
56
|
+
/* @__PURE__ */ jsxs("div", { className: "flex min-w-0 items-center gap-1 sm:gap-2", children: [
|
|
57
|
+
/* @__PURE__ */ jsx(
|
|
58
|
+
"button",
|
|
59
|
+
{
|
|
60
|
+
type: "button",
|
|
61
|
+
className: iconButtonClass,
|
|
62
|
+
onClick: toggleDrawer,
|
|
63
|
+
"aria-label": "Abrir conversas",
|
|
64
|
+
"aria-expanded": drawerOpen,
|
|
65
|
+
children: /* @__PURE__ */ jsx(TbMenu2, { size: 20 })
|
|
66
|
+
}
|
|
67
|
+
),
|
|
68
|
+
/* @__PURE__ */ jsx("span", { className: "flex h-8 w-8 shrink-0 items-center justify-center rounded-full bg-primary text-white", children: /* @__PURE__ */ jsx(TbMessageChatbot, { size: 20 }) }),
|
|
69
|
+
/* @__PURE__ */ jsx("span", { className: "truncate font-semibold text-gray-900 dark:text-gray-100", children: "Orbe AI" })
|
|
70
|
+
] }),
|
|
71
|
+
/* @__PURE__ */ jsxs("div", { className: "flex shrink-0 items-center gap-1 sm:gap-2", children: [
|
|
72
|
+
/* @__PURE__ */ jsx(
|
|
73
|
+
"button",
|
|
74
|
+
{
|
|
75
|
+
type: "button",
|
|
76
|
+
className: iconButtonClass,
|
|
77
|
+
onClick: toggleFullscreen,
|
|
78
|
+
"aria-label": fullscreen ? "Sair da tela cheia" : "Tela cheia",
|
|
79
|
+
children: fullscreen ? /* @__PURE__ */ jsx(TbArrowsMinimize, { size: 18 }) : /* @__PURE__ */ jsx(TbArrowsMaximize, { size: 18 })
|
|
80
|
+
}
|
|
81
|
+
),
|
|
82
|
+
/* @__PURE__ */ jsx(
|
|
83
|
+
"button",
|
|
84
|
+
{
|
|
85
|
+
type: "button",
|
|
86
|
+
className: iconButtonClass,
|
|
87
|
+
onClick: close,
|
|
88
|
+
"aria-label": "Fechar chat Orbe AI",
|
|
89
|
+
children: /* @__PURE__ */ jsx(HiX, { size: 18 })
|
|
90
|
+
}
|
|
91
|
+
)
|
|
92
|
+
] })
|
|
93
|
+
] }),
|
|
94
|
+
/* @__PURE__ */ jsxs("div", { className: "min-h-0 flex-1 p-2", children: [
|
|
95
|
+
/* @__PURE__ */ jsx(ChatView, { showMobileNav: false }),
|
|
96
|
+
/* @__PURE__ */ jsx(ChatHistoryRenameDialog, { overlayClassName: "!z-[10000]" })
|
|
97
|
+
] }),
|
|
98
|
+
/* @__PURE__ */ jsx(
|
|
99
|
+
OrbeAiChatDrawer,
|
|
100
|
+
{
|
|
101
|
+
open: drawerOpen,
|
|
102
|
+
onClose: closeDrawer
|
|
103
|
+
}
|
|
104
|
+
)
|
|
105
|
+
]
|
|
106
|
+
},
|
|
107
|
+
"orbe-ai-panel"
|
|
108
|
+
) }),
|
|
109
|
+
!fullscreen && /* @__PURE__ */ jsx(
|
|
110
|
+
"button",
|
|
111
|
+
{
|
|
112
|
+
type: "button",
|
|
113
|
+
className: "flex h-14 w-14 items-center justify-center rounded-full bg-primary text-neutral shadow-lg transition-colors hover:bg-primary-mild focus:outline-none focus-visible:ring-2 focus-visible:ring-primary focus-visible:ring-offset-2",
|
|
114
|
+
onClick: toggleOpen,
|
|
115
|
+
"aria-label": open ? "Fechar chat Orbe AI" : "Abrir chat Orbe AI",
|
|
116
|
+
"aria-expanded": open,
|
|
117
|
+
children: open ? /* @__PURE__ */ jsx(HiX, { size: 24 }) : /* @__PURE__ */ jsx(TbMessageChatbot, { size: 26 })
|
|
118
|
+
}
|
|
119
|
+
)
|
|
120
|
+
]
|
|
121
|
+
}
|
|
122
|
+
);
|
|
123
|
+
};
|
|
124
|
+
export {
|
|
125
|
+
OrbeAiWidget as default
|
|
126
|
+
};
|
|
127
|
+
//# sourceMappingURL=OrbeAiWidget.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OrbeAiWidget.js","sources":["../../../../../lib/@ecme/components/template/OrbeAiWidget/OrbeAiWidget.tsx"],"sourcesContent":["import { useCallback, useState } from 'react'\nimport { AnimatePresence, motion } from 'framer-motion'\nimport {\n TbMessageChatbot,\n TbArrowsMaximize,\n TbArrowsMinimize,\n TbMenu2,\n} from 'react-icons/tb'\nimport { HiX } from 'react-icons/hi'\nimport ChatView from '@/views/concepts/ai/Chat/components/ChatView'\nimport ChatHistoryRenameDialog from '@/views/concepts/ai/Chat/components/ChatHistoryRenameDialog'\nimport useResizablePanel, { MARGIN } from './useResizablePanel'\nimport ResizeHandles from './ResizeHandles'\nimport OrbeAiChatDrawer from './OrbeAiChatDrawer'\n\nconst iconButtonClass =\n 'flex h-8 w-8 items-center justify-center rounded-full text-gray-500 transition-colors hover:bg-gray-100 hover:text-gray-700 dark:text-gray-400 dark:hover:bg-gray-700 dark:hover:text-gray-200'\n\nconst OrbeAiWidget = () => {\n const [open, setOpen] = useState(false)\n const [fullscreen, setFullscreen] = useState(false)\n const [drawerOpen, setDrawerOpen] = useState(false)\n const { rect, startResize, anchor } = useResizablePanel()\n\n const toggleOpen = () => {\n // Sempre abre colado no botão. No mesmo clique do setOpen: o React junta\n // os dois updates e o painel não pisca na posição antiga.\n if (!open) anchor()\n setOpen((prev) => !prev)\n setDrawerOpen(false)\n }\n const toggleFullscreen = () => setFullscreen((prev) => !prev)\n const toggleDrawer = () => setDrawerOpen((prev) => !prev)\n // Estável: o drawer registra o listener de Esc com ela como dependência.\n const closeDrawer = useCallback(() => setDrawerOpen(false), [])\n const close = () => {\n setOpen(false)\n setFullscreen(false)\n setDrawerOpen(false)\n }\n\n // Tela cheia: cobre o viewport inteiro (inset-0). Flutuante: ancorado no\n // canto do botão (right/bottom). O max-* limita só a exibição — o estado\n // guarda o tamanho escolhido, então ao desfazer o zoom o painel volta igual.\n // `100%` de um `fixed` é o viewport sem a barra de rolagem.\n const panelStyle = fullscreen\n ? undefined\n : {\n right: rect.right,\n bottom: rect.bottom,\n width: rect.width,\n height: rect.height,\n maxWidth: `calc(100% - ${rect.right + MARGIN}px)`,\n maxHeight: `calc(100% - ${rect.bottom + MARGIN}px)`,\n }\n const panelVariantClass = fullscreen\n ? 'inset-0 rounded-none border-0'\n : 'origin-bottom-right rounded-2xl border shadow-2xl'\n\n return (\n <div\n className={`fixed bottom-6 right-6 flex flex-col items-end gap-3 print:hidden ${\n fullscreen ? 'z-[9999]' : 'z-40'\n }`}\n >\n <AnimatePresence>\n {open && (\n <motion.div\n key=\"orbe-ai-panel\"\n initial={{ opacity: 0, y: 24, scale: 0.96 }}\n animate={{ opacity: 1, y: 0, scale: 1 }}\n exit={{ opacity: 0, y: 24, scale: 0.96 }}\n transition={{ duration: 0.2, ease: 'easeOut' }}\n style={panelStyle}\n className={`fixed flex flex-col overflow-hidden border-gray-200 bg-white dark:border-gray-700 dark:bg-gray-800 ${panelVariantClass}`}\n >\n {!fullscreen && (\n <ResizeHandles onResizeStart={startResize} />\n )}\n\n <div className=\"flex items-center justify-between gap-2 border-b border-gray-200 px-3 py-3 sm:px-4 dark:border-gray-700\">\n <div className=\"flex min-w-0 items-center gap-1 sm:gap-2\">\n <button\n type=\"button\"\n className={iconButtonClass}\n onClick={toggleDrawer}\n aria-label=\"Abrir conversas\"\n aria-expanded={drawerOpen}\n >\n <TbMenu2 size={20} />\n </button>\n <span className=\"flex h-8 w-8 shrink-0 items-center justify-center rounded-full bg-primary text-white\">\n <TbMessageChatbot size={20} />\n </span>\n <span className=\"truncate font-semibold text-gray-900 dark:text-gray-100\">\n Orbe AI\n </span>\n </div>\n <div className=\"flex shrink-0 items-center gap-1 sm:gap-2\">\n <button\n type=\"button\"\n className={iconButtonClass}\n onClick={toggleFullscreen}\n aria-label={\n fullscreen\n ? 'Sair da tela cheia'\n : 'Tela cheia'\n }\n >\n {fullscreen ? (\n <TbArrowsMinimize size={18} />\n ) : (\n <TbArrowsMaximize size={18} />\n )}\n </button>\n <button\n type=\"button\"\n className={iconButtonClass}\n onClick={close}\n aria-label=\"Fechar chat Orbe AI\"\n >\n <HiX size={18} />\n </button>\n </div>\n </div>\n\n <div className=\"min-h-0 flex-1 p-2\">\n <ChatView showMobileNav={false} />\n <ChatHistoryRenameDialog overlayClassName=\"!z-[10000]\" />\n </div>\n\n <OrbeAiChatDrawer\n open={drawerOpen}\n onClose={closeDrawer}\n />\n </motion.div>\n )}\n </AnimatePresence>\n\n {!fullscreen && (\n <button\n type=\"button\"\n className=\"flex h-14 w-14 items-center justify-center rounded-full bg-primary text-neutral shadow-lg transition-colors hover:bg-primary-mild focus:outline-none focus-visible:ring-2 focus-visible:ring-primary focus-visible:ring-offset-2\"\n onClick={toggleOpen}\n aria-label={open ? 'Fechar chat Orbe AI' : 'Abrir chat Orbe AI'}\n aria-expanded={open}\n >\n {open ? <HiX size={24} /> : <TbMessageChatbot size={26} />}\n </button>\n )}\n </div>\n )\n}\n\nexport default OrbeAiWidget\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { jsxs, Fragment, jsx } from "react/jsx-runtime";
|
|
2
|
+
const EDGES = [
|
|
3
|
+
{ direction: "top", className: "left-0 right-0 top-0 h-1.5 cursor-ns-resize" },
|
|
4
|
+
{ direction: "bottom", className: "bottom-0 left-0 right-0 h-1.5 cursor-ns-resize" },
|
|
5
|
+
{ direction: "left", className: "bottom-0 left-0 top-0 w-1.5 cursor-ew-resize" },
|
|
6
|
+
{ direction: "right", className: "bottom-0 right-0 top-0 w-1.5 cursor-ew-resize" }
|
|
7
|
+
];
|
|
8
|
+
const CORNERS = [
|
|
9
|
+
{ direction: "top-left", className: "left-0 top-0 cursor-nwse-resize" },
|
|
10
|
+
{ direction: "top-right", className: "right-0 top-0 cursor-nesw-resize" },
|
|
11
|
+
{ direction: "bottom-left", className: "bottom-0 left-0 cursor-nesw-resize" },
|
|
12
|
+
{ direction: "bottom-right", className: "bottom-0 right-0 cursor-nwse-resize" }
|
|
13
|
+
];
|
|
14
|
+
const ResizeHandles = ({ onResizeStart }) => /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
15
|
+
EDGES.map(({ direction, className }) => /* @__PURE__ */ jsx(
|
|
16
|
+
"span",
|
|
17
|
+
{
|
|
18
|
+
"aria-hidden": true,
|
|
19
|
+
onPointerDown: (event) => onResizeStart(event, direction),
|
|
20
|
+
className: `absolute z-20 ${className}`
|
|
21
|
+
},
|
|
22
|
+
direction
|
|
23
|
+
)),
|
|
24
|
+
CORNERS.map(({ direction, className }) => /* @__PURE__ */ jsx(
|
|
25
|
+
"span",
|
|
26
|
+
{
|
|
27
|
+
"aria-hidden": true,
|
|
28
|
+
onPointerDown: (event) => onResizeStart(event, direction),
|
|
29
|
+
className: `absolute z-30 h-3 w-3 ${className}`
|
|
30
|
+
},
|
|
31
|
+
direction
|
|
32
|
+
))
|
|
33
|
+
] });
|
|
34
|
+
export {
|
|
35
|
+
ResizeHandles as default
|
|
36
|
+
};
|
|
37
|
+
//# sourceMappingURL=ResizeHandles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ResizeHandles.js","sources":["../../../../../lib/@ecme/components/template/OrbeAiWidget/ResizeHandles.tsx"],"sourcesContent":["import type { PointerEvent as ReactPointerEvent } from 'react'\nimport type { ResizeDirection } from './useResizablePanel'\n\ntype ResizeHandlesProps = {\n onResizeStart: (\n event: ReactPointerEvent,\n direction: ResizeDirection,\n ) => void\n}\n\nconst EDGES: { direction: ResizeDirection; className: string }[] = [\n { direction: 'top', className: 'left-0 right-0 top-0 h-1.5 cursor-ns-resize' },\n { direction: 'bottom', className: 'bottom-0 left-0 right-0 h-1.5 cursor-ns-resize' },\n { direction: 'left', className: 'bottom-0 left-0 top-0 w-1.5 cursor-ew-resize' },\n { direction: 'right', className: 'bottom-0 right-0 top-0 w-1.5 cursor-ew-resize' },\n]\n\nconst CORNERS: { direction: ResizeDirection; className: string }[] = [\n { direction: 'top-left', className: 'left-0 top-0 cursor-nwse-resize' },\n { direction: 'top-right', className: 'right-0 top-0 cursor-nesw-resize' },\n { direction: 'bottom-left', className: 'bottom-0 left-0 cursor-nesw-resize' },\n { direction: 'bottom-right', className: 'bottom-0 right-0 cursor-nwse-resize' },\n]\n\n/** Alças transparentes de redimensionamento nas 4 bordas + 4 cantos do painel. */\nconst ResizeHandles = ({ onResizeStart }: ResizeHandlesProps) => (\n <>\n {EDGES.map(({ direction, className }) => (\n <span\n key={direction}\n aria-hidden\n onPointerDown={(event) => onResizeStart(event, direction)}\n className={`absolute z-20 ${className}`}\n />\n ))}\n {CORNERS.map(({ direction, className }) => (\n <span\n key={direction}\n aria-hidden\n onPointerDown={(event) => onResizeStart(event, direction)}\n className={`absolute z-30 h-3 w-3 ${className}`}\n />\n ))}\n </>\n)\n\nexport default ResizeHandles\n"],"names":[],"mappings":";AAUA,MAAM,QAA6D;AAAA,EAC/D,EAAE,WAAW,OAAO,WAAW,8CAAA;AAAA,EAC/B,EAAE,WAAW,UAAU,WAAW,iDAAA;AAAA,EAClC,EAAE,WAAW,QAAQ,WAAW,+CAAA;AAAA,EAChC,EAAE,WAAW,SAAS,WAAW,gDAAA;AACrC;AAEA,MAAM,UAA+D;AAAA,EACjE,EAAE,WAAW,YAAY,WAAW,kCAAA;AAAA,EACpC,EAAE,WAAW,aAAa,WAAW,mCAAA;AAAA,EACrC,EAAE,WAAW,eAAe,WAAW,qCAAA;AAAA,EACvC,EAAE,WAAW,gBAAgB,WAAW,sCAAA;AAC5C;AAGA,MAAM,gBAAgB,CAAC,EAAE,cAAA,MACrB,qBAAA,UAAA,EACK,UAAA;AAAA,EAAA,MAAM,IAAI,CAAC,EAAE,WAAW,gBACrB;AAAA,IAAC;AAAA,IAAA;AAAA,MAEG,eAAW;AAAA,MACX,eAAe,CAAC,UAAU,cAAc,OAAO,SAAS;AAAA,MACxD,WAAW,iBAAiB,SAAS;AAAA,IAAA;AAAA,IAHhC;AAAA,EAAA,CAKZ;AAAA,EACA,QAAQ,IAAI,CAAC,EAAE,WAAW,gBACvB;AAAA,IAAC;AAAA,IAAA;AAAA,MAEG,eAAW;AAAA,MACX,eAAe,CAAC,UAAU,cAAc,OAAO,SAAS;AAAA,MACxD,WAAW,yBAAyB,SAAS;AAAA,IAAA;AAAA,IAHxC;AAAA,EAAA,CAKZ;AAAA,EAAA,CACL;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import { useState, useCallback, useEffect } from "react";
|
|
2
|
+
const MIN = { width: 360, height: 420 };
|
|
3
|
+
const DEFAULT = { width: 480, height: 720 };
|
|
4
|
+
const MARGIN = 12;
|
|
5
|
+
const ANCHOR = { right: 24, bottom: 92 };
|
|
6
|
+
const clamp = (value, min, max) => Math.min(Math.max(value, min), max);
|
|
7
|
+
const getViewport = () => ({
|
|
8
|
+
width: document.documentElement.clientWidth,
|
|
9
|
+
height: document.documentElement.clientHeight
|
|
10
|
+
});
|
|
11
|
+
const useResizablePanel = () => {
|
|
12
|
+
const [rect, setRect] = useState({ ...ANCHOR, ...DEFAULT });
|
|
13
|
+
const anchor = useCallback(() => {
|
|
14
|
+
setRect(
|
|
15
|
+
(prev) => prev.right === ANCHOR.right && prev.bottom === ANCHOR.bottom ? prev : { ...prev, ...ANCHOR }
|
|
16
|
+
);
|
|
17
|
+
}, []);
|
|
18
|
+
useEffect(() => {
|
|
19
|
+
window.addEventListener("resize", anchor);
|
|
20
|
+
return () => window.removeEventListener("resize", anchor);
|
|
21
|
+
}, [anchor]);
|
|
22
|
+
const startResize = useCallback(
|
|
23
|
+
(event, direction) => {
|
|
24
|
+
event.preventDefault();
|
|
25
|
+
event.stopPropagation();
|
|
26
|
+
const startX = event.clientX;
|
|
27
|
+
const startY = event.clientY;
|
|
28
|
+
const viewport = getViewport();
|
|
29
|
+
const start = {
|
|
30
|
+
...rect,
|
|
31
|
+
width: Math.min(rect.width, viewport.width - rect.right - MARGIN),
|
|
32
|
+
height: Math.min(
|
|
33
|
+
rect.height,
|
|
34
|
+
viewport.height - rect.bottom - MARGIN
|
|
35
|
+
)
|
|
36
|
+
};
|
|
37
|
+
const previousUserSelect = document.body.style.userSelect;
|
|
38
|
+
document.body.style.userSelect = "none";
|
|
39
|
+
const handleMove = (moveEvent) => {
|
|
40
|
+
const dx = moveEvent.clientX - startX;
|
|
41
|
+
const dy = moveEvent.clientY - startY;
|
|
42
|
+
const next = { ...start };
|
|
43
|
+
if (direction.includes("left")) {
|
|
44
|
+
next.width = clamp(
|
|
45
|
+
start.width - dx,
|
|
46
|
+
MIN.width,
|
|
47
|
+
viewport.width - start.right - MARGIN
|
|
48
|
+
);
|
|
49
|
+
}
|
|
50
|
+
if (direction.includes("top")) {
|
|
51
|
+
next.height = clamp(
|
|
52
|
+
start.height - dy,
|
|
53
|
+
MIN.height,
|
|
54
|
+
viewport.height - start.bottom - MARGIN
|
|
55
|
+
);
|
|
56
|
+
}
|
|
57
|
+
if (direction.includes("right")) {
|
|
58
|
+
next.width = clamp(
|
|
59
|
+
start.width + dx,
|
|
60
|
+
MIN.width,
|
|
61
|
+
start.width + start.right - MARGIN
|
|
62
|
+
);
|
|
63
|
+
next.right = start.right - (next.width - start.width);
|
|
64
|
+
}
|
|
65
|
+
if (direction.includes("bottom")) {
|
|
66
|
+
next.height = clamp(
|
|
67
|
+
start.height + dy,
|
|
68
|
+
MIN.height,
|
|
69
|
+
start.height + start.bottom - MARGIN
|
|
70
|
+
);
|
|
71
|
+
next.bottom = start.bottom - (next.height - start.height);
|
|
72
|
+
}
|
|
73
|
+
setRect(next);
|
|
74
|
+
};
|
|
75
|
+
const stopResize = () => {
|
|
76
|
+
document.body.style.userSelect = previousUserSelect;
|
|
77
|
+
window.removeEventListener("pointermove", handleMove);
|
|
78
|
+
window.removeEventListener("pointerup", stopResize);
|
|
79
|
+
};
|
|
80
|
+
window.addEventListener("pointermove", handleMove);
|
|
81
|
+
window.addEventListener("pointerup", stopResize);
|
|
82
|
+
},
|
|
83
|
+
[rect]
|
|
84
|
+
);
|
|
85
|
+
return { rect, startResize, anchor };
|
|
86
|
+
};
|
|
87
|
+
export {
|
|
88
|
+
MARGIN,
|
|
89
|
+
useResizablePanel as default
|
|
90
|
+
};
|
|
91
|
+
//# sourceMappingURL=useResizablePanel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useResizablePanel.js","sources":["../../../../../lib/@ecme/components/template/OrbeAiWidget/useResizablePanel.ts"],"sourcesContent":["import { useCallback, useEffect, useState } from 'react'\nimport type { PointerEvent as ReactPointerEvent } from 'react'\n\n/**\n * `right`/`bottom` são offsets a partir das bordas direita/inferior do\n * viewport — a mesma referência do botão (FAB, `bottom-6 right-6`). Assim,\n * resolução e zoom movem painel e botão juntos.\n */\nexport type Rect = { right: number; bottom: number; width: number; height: number }\n\nexport type ResizeDirection =\n | 'top'\n | 'bottom'\n | 'left'\n | 'right'\n | 'top-left'\n | 'top-right'\n | 'bottom-left'\n | 'bottom-right'\n\nconst MIN = { width: 360, height: 420 }\nconst DEFAULT = { width: 480, height: 720 }\nexport const MARGIN = 12 // distância mínima das bordas do viewport\n\n/**\n * Canto inferior-direito do painel, logo acima do FAB:\n * right = `right-6` (24); bottom = `bottom-6` (24) + `h-14` (56) + `gap-3` (12).\n * Se as classes do botão no OrbeAiWidget mudarem, ajustar aqui.\n */\nconst ANCHOR = { right: 24, bottom: 92 }\n\n/** Em telas menores que o MIN o máximo vence: o painel nunca sai da tela. */\nconst clamp = (value: number, min: number, max: number) =>\n Math.min(Math.max(value, min), max)\n\n/** Área útil do `fixed`: o viewport sem a barra de rolagem, igual ao `100%` do CSS. */\nconst getViewport = () => ({\n width: document.documentElement.clientWidth,\n height: document.documentElement.clientHeight,\n})\n\n/**\n * Painel redimensionável por qualquer borda/canto, ancorado no botão. Cada\n * direção move sua borda mantendo a oposta fixa. O tamanho nunca é alterado\n * por mudança de viewport: quem limita é o max-width/max-height do painel.\n */\nconst useResizablePanel = () => {\n const [rect, setRect] = useState<Rect>({ ...ANCHOR, ...DEFAULT })\n\n /** Recola o painel acima do botão, mantendo o tamanho escolhido. */\n const anchor = useCallback(() => {\n setRect((prev) =>\n prev.right === ANCHOR.right && prev.bottom === ANCHOR.bottom\n ? prev\n : { ...prev, ...ANCHOR },\n )\n }, [])\n\n // Resolução e zoom disparam `resize`: o painel volta para cima do botão.\n useEffect(() => {\n window.addEventListener('resize', anchor)\n return () => window.removeEventListener('resize', anchor)\n }, [anchor])\n\n const startResize = useCallback(\n (event: ReactPointerEvent, direction: ResizeDirection) => {\n event.preventDefault()\n event.stopPropagation()\n\n const startX = event.clientX\n const startY = event.clientY\n const viewport = getViewport()\n // Parte do tamanho RENDERIZADO: se o CSS está limitando o painel, o\n // valor guardado é maior que o visível e o arrasto teria zona morta.\n const start: Rect = {\n ...rect,\n width: Math.min(rect.width, viewport.width - rect.right - MARGIN),\n height: Math.min(\n rect.height,\n viewport.height - rect.bottom - MARGIN,\n ),\n }\n\n const previousUserSelect = document.body.style.userSelect\n document.body.style.userSelect = 'none'\n\n const handleMove = (moveEvent: PointerEvent) => {\n const dx = moveEvent.clientX - startX\n const dy = moveEvent.clientY - startY\n const next: Rect = { ...start }\n\n // Esquerda/topo: a borda ancorada fica fixa, só o tamanho muda.\n if (direction.includes('left')) {\n next.width = clamp(\n start.width - dx,\n MIN.width,\n viewport.width - start.right - MARGIN,\n )\n }\n if (direction.includes('top')) {\n next.height = clamp(\n start.height - dy,\n MIN.height,\n viewport.height - start.bottom - MARGIN,\n )\n }\n // Direita/baixo: a borda oposta fica fixa, então o offset anda junto.\n if (direction.includes('right')) {\n next.width = clamp(\n start.width + dx,\n MIN.width,\n start.width + start.right - MARGIN,\n )\n next.right = start.right - (next.width - start.width)\n }\n if (direction.includes('bottom')) {\n next.height = clamp(\n start.height + dy,\n MIN.height,\n start.height + start.bottom - MARGIN,\n )\n next.bottom = start.bottom - (next.height - start.height)\n }\n\n setRect(next)\n }\n\n const stopResize = () => {\n document.body.style.userSelect = previousUserSelect\n window.removeEventListener('pointermove', handleMove)\n window.removeEventListener('pointerup', stopResize)\n }\n\n window.addEventListener('pointermove', handleMove)\n window.addEventListener('pointerup', stopResize)\n },\n [rect],\n )\n\n return { rect, startResize, anchor }\n}\n\nexport default useResizablePanel\n"],"names":[],"mappings":"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"}
|