"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.ChatFlyout = ChatFlyout; var _eui = require("@elastic/eui"); var _css = require("@emotion/css"); var _i18n = require("@kbn/i18n"); var _react = _interopRequireDefault(require("react")); var _use_current_user = require("../../hooks/use_current_user"); var _use_genai_connectors = require("../../hooks/use_genai_connectors"); var _use_kibana = require("../../hooks/use_kibana"); var _use_knowledge_base = require("../../hooks/use_knowledge_base"); var _use_observability_ai_assistant_router = require("../../hooks/use_observability_ai_assistant_router"); var _get_connectors_management_href = require("../../utils/get_connectors_management_href"); var _get_models_management_href = require("../../utils/get_models_management_href"); var _chat_body = require("./chat_body"); /* * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one * or more contributor license agreements. Licensed under the Elastic License * 2.0; you may not use this file except in compliance with the Elastic License * 2.0. */ const containerClassName = (0, _css.css)` max-height: 100%; `; const bodyClassName = (0, _css.css)` overflow-y: auto; `; function ChatFlyout({ title, messages, conversationId, isOpen, startedFrom, onClose, onChatUpdate, onChatComplete, onChatTitleSave }) { const { euiTheme } = (0, _eui.useEuiTheme)(); const { services: { http } } = (0, _use_kibana.useKibana)(); const currentUser = (0, _use_current_user.useCurrentUser)(); const connectors = (0, _use_genai_connectors.useGenAIConnectors)(); const router = (0, _use_observability_ai_assistant_router.useObservabilityAIAssistantRouter)(); const knowledgeBase = (0, _use_knowledge_base.useKnowledgeBase)(); return isOpen ? /*#__PURE__*/_react.default.createElement(_eui.EuiFlyout, { onClose: onClose }, /*#__PURE__*/_react.default.createElement(_eui.EuiFlexGroup, { responsive: false, gutterSize: "none", direction: "column", className: containerClassName }, /*#__PURE__*/_react.default.createElement(_eui.EuiFlexItem, { grow: false }, /*#__PURE__*/_react.default.createElement(_eui.EuiPanel, { hasShadow: false, hasBorder: false, borderRadius: "none", css: { borderBottom: `solid 1px ${euiTheme.border.color}` } }, conversationId ? /*#__PURE__*/_react.default.createElement(_eui.EuiLink, { "data-test-subj": "observabilityAiAssistantChatFlyoutOpenConversationLink", href: router.link('/conversations/{conversationId}', { path: { conversationId } }) }, _i18n.i18n.translate('xpack.observabilityAiAssistant.conversationDeepLinkLabel', { defaultMessage: 'Open conversation' })) : /*#__PURE__*/_react.default.createElement(_eui.EuiLink, { "data-test-subj": "observabilityAiAssistantChatFlyoutGoToConversationsLink", href: router.link('/conversations/new') }, _i18n.i18n.translate('xpack.observabilityAiAssistant.conversationListDeepLinkLabel', { defaultMessage: 'Go to conversations' })))), /*#__PURE__*/_react.default.createElement(_eui.EuiFlexItem, { grow: true, className: bodyClassName }, /*#__PURE__*/_react.default.createElement(_chat_body.ChatBody, { loading: false, connectors: connectors, title: title, messages: messages, currentUser: currentUser, connectorsManagementHref: (0, _get_connectors_management_href.getConnectorsManagementHref)(http), modelsManagementHref: (0, _get_models_management_href.getModelsManagementHref)(http), conversationId: conversationId, knowledgeBase: knowledgeBase, startedFrom: startedFrom, onChatUpdate: nextMessages => { if (onChatUpdate) { onChatUpdate(nextMessages); } }, onChatComplete: nextMessages => { if (onChatComplete) { onChatComplete(nextMessages); } }, onSaveTitle: newTitle => { onChatTitleSave(newTitle); } })))) : null; }