diff --git a/client/CLAUDE.md b/client/CLAUDE.md new file mode 100644 index 0000000..435920c --- /dev/null +++ b/client/CLAUDE.md @@ -0,0 +1,105 @@ +# CLAUDE.md + +This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository. + +## 项目定位 + +这是 AI 智能客服系统的**前端 SDK 工程**(`chatbot-sdk`),与仓库根目录的 Spring Boot 后端、`src/main/resources/static/` 下的 Vue 3 管理后台是三个独立部分。SDK 产物是一行 `` 引入。`README.md` 有完整接入示例与全部配置参数表,文档是 SDK 对外契约的一部分,改公开 API(`init/destroy/open/close/toggle/clearHistory`)或 `SDKConfig` 字段时同步更新 README。 diff --git a/client/dist/chatbot-sdk.js b/client/dist/chatbot-sdk.js index 909dff5..3128017 100644 --- a/client/dist/chatbot-sdk.js +++ b/client/dist/chatbot-sdk.js @@ -146,6 +146,10 @@ var ChatbotSDK = (function () { title: 'AI 智能助手', minimize: '最小化', close: '关闭', + status_online: '在线', + // 欢迎空状态 + welcome_title: '你好,我是 AI 智能助手', + welcome_desc: '有什么可以帮你的吗?在下方输入框开始提问吧~', // 输入区 placeholder: '输入您的问题...', send: '发送', @@ -189,6 +193,10 @@ var ChatbotSDK = (function () { title: 'AI Assistant', minimize: 'Minimize', close: 'Close', + status_online: 'Online', + // Welcome + welcome_title: 'Hi, I am your AI assistant', + welcome_desc: 'How can I help you? Type your question below to get started.', // Input placeholder: 'Type your question...', send: 'Send', @@ -714,23 +722,37 @@ var ChatbotSDK = (function () { } let styleElement = null; + /** 将 hex 颜色解析为 "r, g, b" 字符串,用于 rgba() 拼接 */ + function hexToRgb(hex) { + const match = hex.match(/^#([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/); + if (!match) + return '79, 70, 229'; + return `${parseInt(match[1], 16)}, ${parseInt(match[2], 16)}, ${parseInt(match[3], 16)}`; + } /** CSS 变量:将配置中的主题色转换为 CSS 自定义属性 */ function cssVars(config) { - // 简单的主色调加深(hover 用) const darker = adjustColor(config.primaryColor, -15); + const lighter = adjustColor(config.primaryColor, 18); + const rgb = hexToRgb(config.primaryColor); return ` --csk-primary: ${config.primaryColor}; --csk-primary-hover: ${darker}; - --csk-bg-user: var(--csk-primary); - --csk-bg-ai: #F3F4F6; - --csk-text-user: #FFFFFF; + --csk-primary-light: ${lighter}; + --csk-primary-rgb: ${rgb}; + --csk-bg-user: linear-gradient(135deg, ${config.primaryColor}, ${darker}); + --csk-bg-ai: #ffffff; + --csk-text-user: #ffffff; --csk-text-ai: #1F2937; --csk-window-width: ${config.width}px; + --csk-radius: 16px; + --csk-shadow-window: 0 12px 48px rgba(15, 23, 42, 0.18), 0 2px 8px rgba(15, 23, 42, 0.06); + --csk-shadow-bubble: 0 1px 2px rgba(15, 23, 42, 0.06); + --csk-border: #ECEEF2; + --csk-bg-app: #F6F7F9; `; } - /** 简单的颜色加深(HSL 方式) */ + /** 简单的颜色加深(按通道加减) */ function adjustColor(hex, amount) { - // 如果是 hex 格式,简单地对每个通道加减 const match = hex.match(/^#([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/); if (!match) { return hex; @@ -747,68 +769,87 @@ var ChatbotSDK = (function () { /* ChatbotSDK 样式 - csk- 命名空间 */ .csk-root { ${cssVars(config)} - font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans SC", sans-serif; + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans SC", "PingFang SC", "Microsoft YaHei", sans-serif; font-size: 14px; - line-height: 1.5; + line-height: 1.55; color: #1F2937; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + box-sizing: border-box; } +.csk-root *, .csk-root *::before, .csk-root *::after { box-sizing: border-box; } /* ========== 悬浮按钮 ========== */ .csk-launcher { position: fixed; - bottom: 20px; + bottom: 24px; z-index: 9998; - width: 56px; - height: 56px; + width: 58px; + height: 58px; border-radius: 50%; - background: #fff; - box-shadow: 0 4px 16px rgba(0, 0, 0, 0.15); + background: var(--csk-bg-user); + box-shadow: 0 8px 24px rgba(var(--csk-primary-rgb), 0.42), 0 2px 6px rgba(15, 23, 42, 0.12); display: flex; align-items: center; justify-content: center; cursor: pointer; - transition: all 0.2s ease; + transition: transform 0.22s cubic-bezier(0.34, 1.56, 0.64, 1), box-shadow 0.22s ease; border: none; - color: var(--csk-primary); + color: #fff; user-select: none; } -.csk-launcher--right { - right: 20px; -} -.csk-launcher--left { - left: 20px; +.csk-launcher--right { right: 24px; } +.csk-launcher--left { left: 24px; } +.csk-launcher::after { + content: ''; + position: absolute; + inset: -4px; + border-radius: 50%; + border: 2px solid rgba(var(--csk-primary-rgb), 0.35); + opacity: 0; + animation: csk-ping 2.6s cubic-bezier(0, 0, 0.2, 1) infinite; + pointer-events: none; } .csk-launcher:hover { - transform: scale(1.1); - box-shadow: 0 6px 24px rgba(0, 0, 0, 0.2); + transform: translateY(-2px) scale(1.05); + box-shadow: 0 12px 32px rgba(var(--csk-primary-rgb), 0.5), 0 4px 10px rgba(15, 23, 42, 0.14); } -.csk-launcher:active { - transform: scale(0.95); +.csk-launcher:active { transform: scale(0.94); } +.csk-launcher svg { width: 28px; height: 28px; } + +@keyframes csk-ping { + 0% { transform: scale(0.92); opacity: 0.7; } + 70%, 100% { transform: scale(1.35); opacity: 0; } } /* ========== 聊天弹窗 ========== */ .csk-window { position: fixed; - bottom: 20px; + bottom: 24px; z-index: 9999; width: var(--csk-window-width); - height: 560px; + height: 600px; + max-height: calc(100vh - 48px); background: #fff; - border-radius: 12px; - box-shadow: 0 8px 40px rgba(0, 0, 0, 0.18); + border-radius: var(--csk-radius); + box-shadow: var(--csk-shadow-window); display: flex; flex-direction: column; overflow: hidden; - transition: opacity 0.2s ease, transform 0.2s ease; -} -.csk-window--right { - right: 20px; -} -.csk-window--left { - left: 20px; + transform-origin: bottom right; + transition: opacity 0.24s ease, transform 0.24s cubic-bezier(0.34, 1.2, 0.64, 1), visibility 0.24s; + opacity: 1; + transform: translateY(0) scale(1); + visibility: visible; + pointer-events: auto; } +.csk-window--right { right: 24px; transform-origin: bottom right; } +.csk-window--left { left: 24px; transform-origin: bottom left; } .csk-window--hidden { - display: none; + opacity: 0; + transform: translateY(12px) scale(0.96); + visibility: hidden; + pointer-events: none; } /* ========== 头部 ========== */ @@ -816,14 +857,46 @@ var ChatbotSDK = (function () { display: flex; align-items: center; justify-content: space-between; - padding: 0 16px; - height: 48px; - min-height: 48px; - background: var(--csk-primary); + padding: 12px 16px; + min-height: 60px; + background: var(--csk-bg-user); color: #fff; - border-radius: 12px 12px 0 0; cursor: move; user-select: none; + position: relative; + flex-shrink: 0; +} +.csk-header::after { + content: ''; + position: absolute; + left: 0; right: 0; bottom: 0; + height: 24px; + background: linear-gradient(to bottom, rgba(0,0,0,0.04), transparent); + pointer-events: none; +} +.csk-header__left { + display: flex; + align-items: center; + gap: 12px; + min-width: 0; +} +.csk-header__avatar { + width: 38px; + height: 38px; + border-radius: 50%; + background: rgba(255, 255, 255, 0.22); + backdrop-filter: blur(4px); + display: flex; + align-items: center; + justify-content: center; + flex-shrink: 0; + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.25); +} +.csk-header__avatar svg { width: 22px; height: 22px; } +.csk-header__info { + display: flex; + flex-direction: column; + min-width: 0; } .csk-header__title { font-size: 15px; @@ -831,13 +904,37 @@ var ChatbotSDK = (function () { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; + letter-spacing: 0.2px; +} +.csk-header__status { + display: inline-flex; + align-items: center; + gap: 5px; + font-size: 11.5px; + opacity: 0.9; + margin-top: 2px; +} +.csk-status-dot { + width: 7px; + height: 7px; + border-radius: 50%; + background: #6EE7B7; + box-shadow: 0 0 0 0 rgba(110, 231, 183, 0.7); + animation: csk-status-pulse 2s infinite; +} +@keyframes csk-status-pulse { + 0% { box-shadow: 0 0 0 0 rgba(110, 231, 183, 0.7); } + 70% { box-shadow: 0 0 0 6px rgba(110, 231, 183, 0); } + 100% { box-shadow: 0 0 0 0 rgba(110, 231, 183, 0); } } .csk-header__actions { display: flex; align-items: center; - gap: 4px; + gap: 2px; + flex-shrink: 0; } -.csk-header__btn { +.csk-header__btn, +.csk-history-btn { display: flex; align-items: center; justify-content: center; @@ -847,84 +944,183 @@ var ChatbotSDK = (function () { background: transparent; color: #fff; cursor: pointer; - border-radius: 6px; - transition: background 0.15s; + border-radius: 8px; + transition: background 0.15s, transform 0.15s; } -.csk-header__btn:hover { +.csk-header__btn:hover, +.csk-history-btn:hover { background: rgba(255, 255, 255, 0.2); } +.csk-header__btn:active, +.csk-history-btn:active { transform: scale(0.92); } /* ========== 消息区 ========== */ .csk-messages { flex: 1; overflow-y: auto; - padding: 16px; - background: #FAFAFA; + padding: 20px 16px 12px; + background: var(--csk-bg-app); scroll-behavior: smooth; } -.csk-messages::-webkit-scrollbar { - width: 5px; -} -.csk-messages::-webkit-scrollbar-track { - background: transparent; -} +.csk-messages::-webkit-scrollbar { width: 6px; } +.csk-messages::-webkit-scrollbar-track { background: transparent; } .csk-messages::-webkit-scrollbar-thumb { - background: #D1D5DB; + background: #D8DCE3; border-radius: 3px; } +.csk-messages::-webkit-scrollbar-thumb:hover { background: #C2C7D0; } + +/* 欢迎空状态 */ +.csk-welcome { + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + text-align: center; + padding: 48px 24px 32px; + color: #6B7280; + animation: csk-fade-in 0.3s ease; +} +.csk-welcome__avatar { + width: 56px; + height: 56px; + border-radius: 50%; + background: var(--csk-bg-user); + color: #fff; + display: flex; + align-items: center; + justify-content: center; + margin-bottom: 14px; + box-shadow: 0 6px 18px rgba(var(--csk-primary-rgb), 0.3); +} +.csk-welcome__avatar svg { width: 30px; height: 30px; } +.csk-welcome__title { + font-size: 15px; + font-weight: 600; + color: #1F2937; + margin-bottom: 4px; +} +.csk-welcome__desc { + font-size: 13px; + color: #9CA3AF; + line-height: 1.6; +} /* 消息气泡 */ .csk-msg { display: flex; - flex-direction: column; - margin-bottom: 16px; - max-width: 85%; + margin-bottom: 18px; + max-width: 100%; word-break: break-word; + animation: csk-msg-in 0.28s cubic-bezier(0.22, 1, 0.36, 1); } .csk-msg--user { - margin-left: auto; + flex-direction: row-reverse; align-items: flex-end; } .csk-msg--ai { - margin-right: auto; + flex-direction: row; align-items: flex-start; } +.csk-msg__avatar { + width: 30px; + height: 30px; + border-radius: 50%; + display: flex; + align-items: center; + justify-content: center; + flex-shrink: 0; + margin: 0 8px; + box-shadow: var(--csk-shadow-bubble); +} +.csk-msg__avatar svg { width: 18px; height: 18px; } +.csk-msg__avatar--ai { + background: #fff; + color: var(--csk-primary); + border: 1px solid var(--csk-border); +} +.csk-msg__avatar--user { + background: var(--csk-bg-user); + color: #fff; +} +.csk-msg__content { + display: flex; + flex-direction: column; + min-width: 0; + max-width: calc(100% - 46px); +} +.csk-msg--user .csk-msg__content { align-items: flex-end; } +.csk-msg--ai .csk-msg__content { align-items: flex-start; } .csk-msg__bubble { padding: 10px 14px; - border-radius: 12px; + border-radius: 16px; font-size: 14px; line-height: 1.6; + box-shadow: var(--csk-shadow-bubble); } .csk-msg--user .csk-msg__bubble { background: var(--csk-bg-user); color: var(--csk-text-user); - border-radius: 12px 12px 4px 12px; + border-radius: 16px 16px 4px 16px; } .csk-msg--ai .csk-msg__bubble { background: var(--csk-bg-ai); color: var(--csk-text-ai); - border-radius: 12px 12px 12px 4px; + border-radius: 16px 16px 16px 4px; + border: 1px solid var(--csk-border); } .csk-msg__time { font-size: 11px; color: #9CA3AF; - margin-top: 4px; + margin-top: 5px; padding: 0 4px; } +@keyframes csk-msg-in { + from { opacity: 0; transform: translateY(8px); } + to { opacity: 1; transform: translateY(0); } +} +@keyframes csk-fade-in { + from { opacity: 0; } + to { opacity: 1; } +} + /* ========== Loading 动画 ========== */ .csk-loading { display: flex; align-items: center; - gap: 6px; - padding: 12px 14px; - margin-bottom: 16px; + margin-bottom: 18px; + animation: csk-msg-in 0.28s ease; +} +.csk-loading__avatar { + width: 30px; + height: 30px; + border-radius: 50%; + background: #fff; + color: var(--csk-primary); + border: 1px solid var(--csk-border); + display: flex; + align-items: center; + justify-content: center; + flex-shrink: 0; + margin: 0 8px; + box-shadow: var(--csk-shadow-bubble); +} +.csk-loading__avatar svg { width: 18px; height: 18px; } +.csk-loading__bubble { + background: #fff; + border: 1px solid var(--csk-border); + border-radius: 16px 16px 16px 4px; + padding: 12px 16px; + display: flex; + align-items: center; + gap: 5px; } .csk-loading__dot { - width: 8px; - height: 8px; + width: 7px; + height: 7px; border-radius: 50%; - background: #D1D5DB; + background: #B4B9C2; animation: csk-bounce 1.4s ease-in-out infinite both; } .csk-loading__dot:nth-child(1) { animation-delay: 0s; } @@ -932,77 +1128,93 @@ var ChatbotSDK = (function () { .csk-loading__dot:nth-child(3) { animation-delay: 0.32s; } @keyframes csk-bounce { - 0%, 80%, 100% { transform: scale(0.6); } - 40% { transform: scale(1); } + 0%, 80%, 100% { transform: scale(0.6); opacity: 0.6; } + 40% { transform: scale(1); opacity: 1; } } /* ========== 输入区 ========== */ .csk-input-area { - display: flex; - align-items: center; - padding: 10px 12px; - border-top: 1px solid #E5E7EB; + padding: 10px 12px 14px; background: #fff; + border-top: 1px solid var(--csk-border); + flex-shrink: 0; +} +.csk-input-wrap { + display: flex; + align-items: flex-end; gap: 8px; + background: var(--csk-bg-app); + border: 1px solid var(--csk-border); + border-radius: 14px; + padding: 6px 6px 6px 14px; + transition: border-color 0.2s, box-shadow 0.2s, background 0.2s; +} +.csk-input-wrap--focus { + border-color: var(--csk-primary); + background: #fff; + box-shadow: 0 0 0 3px rgba(var(--csk-primary-rgb), 0.12); } .csk-input { flex: 1; - border: 1px solid #E5E7EB; - border-radius: 8px; - padding: 10px 12px; + border: none; + background: transparent; + padding: 8px 0; font-size: 14px; outline: none; - transition: border-color 0.2s; font-family: inherit; resize: none; - min-height: 20px; - max-height: 100px; -} -.csk-input:focus { - border-color: var(--csk-primary); -} -.csk-input::placeholder { - color: #9CA3AF; + min-height: 22px; + max-height: 120px; + line-height: 1.5; + color: #1F2937; } +.csk-input::placeholder { color: #9CA3AF; } .csk-send-btn { display: flex; align-items: center; justify-content: center; - width: 40px; - height: 40px; - min-width: 40px; + width: 36px; + height: 36px; + min-width: 36px; border: none; - border-radius: 8px; - background: var(--csk-primary); + border-radius: 10px; + background: var(--csk-bg-user); color: #fff; cursor: pointer; - transition: background 0.2s; + transition: transform 0.18s, box-shadow 0.18s, opacity 0.18s; + box-shadow: 0 3px 10px rgba(var(--csk-primary-rgb), 0.3); } -.csk-send-btn:hover { - background: var(--csk-primary-hover); +.csk-send-btn:hover:not(:disabled) { + transform: translateY(-1px); + box-shadow: 0 5px 14px rgba(var(--csk-primary-rgb), 0.4); } +.csk-send-btn:active:not(:disabled) { transform: scale(0.92); } .csk-send-btn:disabled { background: #D1D5DB; + box-shadow: none; cursor: not-allowed; + opacity: 0.7; } +.csk-send-btn svg { width: 18px; height: 18px; } /* ========== 清空按钮 ========== */ .csk-clear-btn { display: inline-flex; align-items: center; - gap: 4px; - padding: 6px 12px; - border: 1px solid #E5E7EB; - border-radius: 6px; + gap: 5px; + padding: 5px 12px; + border: 1px solid var(--csk-border); + border-radius: 999px; background: #fff; color: #6B7280; font-size: 12px; cursor: pointer; margin: 0 auto 8px; transition: all 0.15s; + font-family: inherit; } .csk-clear-btn:hover { - background: #FEE2E2; + background: #FEF2F2; border-color: #FCA5A5; color: #DC2626; } @@ -1011,96 +1223,91 @@ var ChatbotSDK = (function () { .csk-category-bar { display: flex; align-items: center; - padding: 6px 12px; - border-top: 1px solid #E5E7EB; - background: #F9FAFB; + padding: 8px 12px; + border-top: 1px solid var(--csk-border); + background: #FBFBFC; gap: 8px; + flex-shrink: 0; } .csk-category-bar__label { - font-size: 12px; - color: #6B7280; + font-size: 13px; white-space: nowrap; } .csk-category-select { flex: 1; - padding: 5px 8px; - border: 1px solid #E5E7EB; - border-radius: 6px; - font-size: 12px; + padding: 6px 28px 6px 10px; + border: 1px solid var(--csk-border); + border-radius: 8px; + font-size: 12.5px; color: #374151; - background: #fff; + background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%239CA3AF' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E") no-repeat right 9px center; + appearance: none; + -webkit-appearance: none; outline: none; cursor: pointer; font-family: inherit; - transition: border-color 0.2s; - max-width: 200px; + transition: border-color 0.2s, box-shadow 0.2s; + max-width: 220px; } .csk-category-select:focus { border-color: var(--csk-primary); + box-shadow: 0 0 0 3px rgba(var(--csk-primary-rgb), 0.12); } /* ========== P1: RAG 引用来源卡片 ========== */ .csk-sources { margin-top: 8px; - border: 1px solid #E5E7EB; - border-radius: 8px; + border: 1px solid var(--csk-border); + border-radius: 12px; overflow: hidden; font-size: 12px; max-width: 100%; + background: #FAFBFC; } .csk-sources__header { display: flex; align-items: center; justify-content: space-between; padding: 8px 12px; - background: #F9FAFB; + background: #F3F4F7; cursor: pointer; user-select: none; transition: background 0.15s; } -.csk-sources__header:hover { - background: #F3F4F6; -} +.csk-sources__header:hover { background: #ECEEF2; } .csk-sources__title { display: flex; align-items: center; - gap: 4px; + gap: 5px; font-weight: 500; color: #374151; } .csk-sources__arrow { transition: transform 0.2s; color: #9CA3AF; + font-size: 10px; } -.csk-sources--collapsed .csk-sources__arrow { - transform: rotate(-90deg); -} +.csk-sources--collapsed .csk-sources__arrow { transform: rotate(-90deg); } .csk-sources__body { - border-top: 1px solid #E5E7EB; + border-top: 1px solid var(--csk-border); padding: 0; } -.csk-sources--collapsed .csk-sources__body { - display: none; -} +.csk-sources--collapsed .csk-sources__body { display: none; } .csk-source-item { - padding: 8px 12px; - border-bottom: 1px solid #F3F4F6; + padding: 9px 12px; + border-bottom: 1px solid #F0F1F4; transition: background 0.15s; } -.csk-source-item:last-child { - border-bottom: none; -} -.csk-source-item:hover { - background: #F9FAFB; -} +.csk-source-item:last-child { border-bottom: none; } +.csk-source-item:hover { background: #fff; } .csk-source-item__name { font-weight: 500; color: #1F2937; - margin-bottom: 2px; + margin-bottom: 3px; } .csk-source-item__snippet { color: #6B7280; - line-height: 1.4; + line-height: 1.5; overflow: hidden; text-overflow: ellipsis; display: -webkit-box; @@ -1110,25 +1317,22 @@ var ChatbotSDK = (function () { .csk-source-item__meta { font-size: 11px; color: #9CA3AF; - margin-top: 2px; + margin-top: 4px; } /* ========== P1: Markdown 渲染样式 ========== */ -.csk-msg--ai .csk-msg__bubble .csk-md-p { - margin: 0 0 8px; -} -.csk-msg--ai .csk-msg__bubble .csk-md-p:last-child { - margin-bottom: 0; -} +.csk-msg--ai .csk-msg__bubble .csk-md-p { margin: 0 0 8px; } +.csk-msg--ai .csk-msg__bubble .csk-md-p:last-child { margin-bottom: 0; } .csk-msg--ai .csk-msg__bubble .csk-md-h1, .csk-msg--ai .csk-msg__bubble .csk-md-h2, .csk-msg--ai .csk-msg__bubble .csk-md-h3, .csk-msg--ai .csk-msg__bubble .csk-md-h4, .csk-msg--ai .csk-msg__bubble .csk-md-h5, .csk-msg--ai .csk-msg__bubble .csk-md-h6 { - margin: 12px 0 6px; + margin: 14px 0 6px; font-weight: 600; line-height: 1.3; + color: #111827; } .csk-msg--ai .csk-msg__bubble .csk-md-h1 { font-size: 20px; } .csk-msg--ai .csk-msg__bubble .csk-md-h2 { font-size: 17px; } @@ -1139,12 +1343,12 @@ var ChatbotSDK = (function () { background: #1E293B; color: #E2E8F0; padding: 12px 14px; - border-radius: 8px; + border-radius: 10px; overflow-x: auto; margin: 8px 0; font-size: 13px; - line-height: 1.5; - font-family: 'SF Mono', 'Consolas', 'Menlo', monospace; + line-height: 1.55; + font-family: 'SF Mono', 'Consolas', 'Menlo', 'Monaco', monospace; } .csk-md-code-block code { background: none; @@ -1154,61 +1358,45 @@ var ChatbotSDK = (function () { color: inherit; } .csk-md-inline-code { - background: #E5E7EB; - color: #DC2626; + background: rgba(var(--csk-primary-rgb), 0.1); + color: var(--csk-primary); padding: 1px 6px; - border-radius: 4px; + border-radius: 5px; font-size: 13px; - font-family: 'SF Mono', 'Consolas', 'Menlo', monospace; + font-family: 'SF Mono', 'Consolas', 'Menlo', 'Monaco', monospace; } .csk-msg--ai .csk-msg__bubble .csk-md-ul, .csk-msg--ai .csk-msg__bubble .csk-md-ol { - padding-left: 20px; + padding-left: 22px; margin: 6px 0; } .csk-msg--ai .csk-msg__bubble .csk-md-ul li, -.csk-msg--ai .csk-msg__bubble .csk-md-ol li { - margin-bottom: 4px; -} +.csk-msg--ai .csk-msg__bubble .csk-md-ol li { margin-bottom: 4px; } .csk-md-blockquote { border-left: 3px solid var(--csk-primary); - padding-left: 12px; + padding: 2px 12px; margin: 8px 0; color: #6B7280; + background: rgba(var(--csk-primary-rgb), 0.05); + border-radius: 0 6px 6px 0; } .csk-md-link { color: var(--csk-primary); text-decoration: none; + border-bottom: 1px solid rgba(var(--csk-primary-rgb), 0.3); + transition: border-color 0.15s; } -.csk-md-link:hover { - text-decoration: underline; -} +.csk-md-link:hover { border-bottom-color: var(--csk-primary); } .csk-md-hr { border: none; - border-top: 1px solid #E5E7EB; + border-top: 1px solid var(--csk-border); margin: 12px 0; } /* ========== P2: 会话管理面板 ========== */ -.csk-history-btn { - display: flex; - align-items: center; - justify-content: center; - width: 32px; - height: 32px; - border: none; - background: transparent; - color: #fff; - cursor: pointer; - border-radius: 6px; - transition: background 0.15s; -} -.csk-history-btn:hover { - background: rgba(255, 255, 255, 0.2); -} .csk-history-panel { position: absolute; - top: 48px; + top: 0; left: 0; right: 0; bottom: 0; @@ -1217,17 +1405,21 @@ var ChatbotSDK = (function () { display: flex; flex-direction: column; overflow: hidden; + animation: csk-slide-in 0.24s ease; } -.csk-history-panel--hidden { - display: none; +.csk-history-panel--hidden { display: none; } +@keyframes csk-slide-in { + from { transform: translateX(100%); opacity: 0.4; } + to { transform: translateX(0); opacity: 1; } } .csk-history-panel__header { display: flex; align-items: center; justify-content: space-between; - padding: 12px 16px; - border-bottom: 1px solid #E5E7EB; - background: #F9FAFB; + padding: 14px 16px; + border-bottom: 1px solid var(--csk-border); + background: var(--csk-bg-app); + flex-shrink: 0; } .csk-history-panel__title { font-size: 14px; @@ -1238,54 +1430,42 @@ var ChatbotSDK = (function () { display: flex; align-items: center; gap: 4px; - padding: 4px 10px; - border: 1px solid #E5E7EB; - border-radius: 6px; + padding: 5px 12px; + border: 1px solid var(--csk-border); + border-radius: 8px; background: #fff; color: #374151; font-size: 12px; cursor: pointer; transition: all 0.15s; + font-family: inherit; } -.csk-history-panel__back:hover { - background: #F3F4F6; -} +.csk-history-panel__back:hover { background: #F3F4F6; } .csk-history-panel__list { flex: 1; overflow-y: auto; - padding: 8px; -} -.csk-history-panel__list::-webkit-scrollbar { - width: 4px; -} -.csk-history-panel__list::-webkit-scrollbar-thumb { - background: #E5E7EB; - border-radius: 2px; + padding: 10px; } +.csk-history-panel__list::-webkit-scrollbar { width: 5px; } +.csk-history-panel__list::-webkit-scrollbar-thumb { background: #E5E7EB; border-radius: 2px; } .csk-history-item { display: flex; align-items: center; justify-content: space-between; - padding: 10px 12px; - border-radius: 8px; + padding: 11px 12px; + border-radius: 10px; cursor: pointer; transition: background 0.15s; - margin-bottom: 4px; -} -.csk-history-item:hover { - background: #F3F4F6; + margin-bottom: 5px; + border: 1px solid transparent; } +.csk-history-item:hover { background: #F3F4F6; } .csk-history-item--active { - background: #EEF2FF; - border-left: 3px solid var(--csk-primary); -} -.csk-history-item--active:hover { - background: #E0E7FF; -} -.csk-history-item__info { - flex: 1; - min-width: 0; + background: rgba(var(--csk-primary-rgb), 0.08); + border-color: rgba(var(--csk-primary-rgb), 0.2); } +.csk-history-item--active:hover { background: rgba(var(--csk-primary-rgb), 0.12); } +.csk-history-item__info { flex: 1; min-width: 0; } .csk-history-item__id { font-size: 13px; font-weight: 500; @@ -1297,7 +1477,7 @@ var ChatbotSDK = (function () { .csk-history-item__meta { font-size: 11px; color: #9CA3AF; - margin-top: 2px; + margin-top: 3px; } .csk-history-item__actions { display: flex; @@ -1306,9 +1486,7 @@ var ChatbotSDK = (function () { opacity: 0; transition: opacity 0.15s; } -.csk-history-item:hover .csk-history-item__actions { - opacity: 1; -} +.csk-history-item:hover .csk-history-item__actions { opacity: 1; } .csk-history-action { display: flex; align-items: center; @@ -1316,45 +1494,35 @@ var ChatbotSDK = (function () { width: 28px; height: 28px; border: none; - border-radius: 6px; + border-radius: 7px; cursor: pointer; font-size: 12px; transition: all 0.15s; } -.csk-history-action--export { - background: #EFF6FF; - color: #2563EB; -} -.csk-history-action--export:hover { - background: #DBEAFE; -} -.csk-history-action--delete { - background: #FEF2F2; - color: #DC2626; -} -.csk-history-action--delete:hover { - background: #FEE2E2; -} +.csk-history-action--export { background: #EFF6FF; color: #2563EB; } +.csk-history-action--export:hover { background: #DBEAFE; } +.csk-history-action--delete { background: #FEF2F2; color: #DC2626; } +.csk-history-action--delete:hover { background: #FEE2E2; } .csk-history-panel__empty { display: flex; flex-direction: column; align-items: center; justify-content: center; - padding: 40px 20px; + padding: 48px 20px; color: #9CA3AF; font-size: 13px; text-align: center; } .csk-history-panel__empty-icon { - font-size: 32px; - margin-bottom: 8px; + font-size: 34px; + margin-bottom: 10px; opacity: 0.5; } .csk-history-panel__loading { display: flex; align-items: center; justify-content: center; - padding: 20px; + padding: 24px; color: #9CA3AF; font-size: 13px; } @@ -1370,23 +1538,23 @@ var ChatbotSDK = (function () { text-align: center; transition: background 0.15s; } -.csk-history-panel__loadmore:hover { - background: #F3F4F6; -} +.csk-history-panel__loadmore:hover { background: #F3F4F6; } /* ========== 移动端适配 ========== */ @media (max-width: 480px) { .csk-window { width: 100vw !important; height: 100vh !important; + max-height: 100vh; bottom: 0 !important; right: 0 !important; left: 0 !important; border-radius: 0; } - .csk-header { - border-radius: 0; - } + .csk-window--hidden { transform: translateY(100%); } + .csk-launcher { bottom: 20px; } + .csk-launcher--right { right: 20px; } + .csk-launcher--left { left: 20px; } } `; } @@ -1411,7 +1579,6 @@ var ChatbotSDK = (function () { styleElement.parentNode.removeChild(styleElement); styleElement = null; } - // 同时移除可能残留的其他 style 标签 document.querySelectorAll('style[data-csk-sdk]').forEach((el) => el.remove()); } @@ -1460,6 +1627,11 @@ var ChatbotSDK = (function () { return Date.now(); } + // ==================== 图标常量 ==================== + /** 机器人头像图标(用于头部、欢迎态、AI 气泡、Loading) */ + const BOT_ICON = ``; + /** 用户头像图标 */ + const USER_ICON = ``; // ==================== 悬浮按钮 ==================== /** 创建悬浮按钮 */ function createLauncher(config, onClick) { @@ -1494,9 +1666,23 @@ var ChatbotSDK = (function () { // === 头部 === const header = document.createElement('div'); header.className = 'csk-header'; + const headerLeft = document.createElement('div'); + headerLeft.className = 'csk-header__left'; + const headerAvatar = document.createElement('div'); + headerAvatar.className = 'csk-header__avatar'; + headerAvatar.innerHTML = BOT_ICON; + const headerInfo = document.createElement('div'); + headerInfo.className = 'csk-header__info'; const titleEl = document.createElement('span'); titleEl.className = 'csk-header__title'; titleEl.textContent = config.title; + const statusEl = document.createElement('span'); + statusEl.className = 'csk-header__status'; + statusEl.innerHTML = `${t('status_online')}`; + headerInfo.appendChild(titleEl); + headerInfo.appendChild(statusEl); + headerLeft.appendChild(headerAvatar); + headerLeft.appendChild(headerInfo); const actions = document.createElement('div'); actions.className = 'csk-header__actions'; // 历史会话按钮(P2) @@ -1523,12 +1709,21 @@ var ChatbotSDK = (function () { actions.appendChild(historyBtn); actions.appendChild(minimizeBtn); actions.appendChild(closeBtn); - header.appendChild(titleEl); + header.appendChild(headerLeft); header.appendChild(actions); // === 消息区 === const messagesContainer = document.createElement('div'); messagesContainer.id = 'csk-messages'; messagesContainer.className = 'csk-messages'; + // === 欢迎空状态 === + const welcomeEl = document.createElement('div'); + welcomeEl.className = 'csk-welcome'; + welcomeEl.innerHTML = ` +
${BOT_ICON}
+
${t('welcome_title')}
+
${t('welcome_desc')}
+ `; + messagesContainer.appendChild(welcomeEl); // === 会话管理面板(P2,默认隐藏) === const historyPanel = document.createElement('div'); historyPanel.className = 'csk-history-panel csk-history-panel--hidden'; @@ -1593,6 +1788,8 @@ var ChatbotSDK = (function () { // === 输入区 === const inputArea = document.createElement('div'); inputArea.className = 'csk-input-area'; + const inputWrap = document.createElement('div'); + inputWrap.className = 'csk-input-wrap'; const inputEl = document.createElement('textarea'); inputEl.id = 'csk-input'; inputEl.className = 'csk-input'; @@ -1605,8 +1802,9 @@ var ChatbotSDK = (function () { sendBtn.setAttribute('title', t('send')); sendBtn.setAttribute('disabled', 'true'); sendBtn.innerHTML = ``; - inputArea.appendChild(inputEl); - inputArea.appendChild(sendBtn); + inputWrap.appendChild(inputEl); + inputWrap.appendChild(sendBtn); + inputArea.appendChild(inputWrap); windowEl.appendChild(inputArea); // 清空按钮(可选) let clearBtn = null; @@ -1628,9 +1826,12 @@ var ChatbotSDK = (function () { const el = document.createElement('div'); el.className = 'csk-loading'; el.innerHTML = ` -
-
-
+
${BOT_ICON}
+
+
+
+
+
`; messagesContainer.appendChild(el); loadingEl = el; @@ -1650,6 +1851,7 @@ var ChatbotSDK = (function () { clearBtn, categorySelect, historyPanel, + welcomeEl, showLoading, hideLoading, }; @@ -1663,6 +1865,10 @@ var ChatbotSDK = (function () { let offsetX = 0; let offsetY = 0; const onMouseDown = (e) => { + // 忽略头部按钮点击触发的拖拽 + const target = e.target; + if (target.closest('button')) + return; dragging = true; startX = e.clientX; startY = e.clientY; @@ -1703,14 +1909,21 @@ var ChatbotSDK = (function () { function renderUserBubble(container, text, timestamp) { const wrapper = document.createElement('div'); wrapper.className = 'csk-msg csk-msg--user'; + const avatar = document.createElement('div'); + avatar.className = 'csk-msg__avatar csk-msg__avatar--user'; + avatar.innerHTML = USER_ICON; + const content = document.createElement('div'); + content.className = 'csk-msg__content'; const bubble = document.createElement('div'); bubble.className = 'csk-msg__bubble'; bubble.textContent = text; const time = document.createElement('div'); time.className = 'csk-msg__time'; time.textContent = formatTime(timestamp); - wrapper.appendChild(bubble); - wrapper.appendChild(time); + content.appendChild(bubble); + content.appendChild(time); + wrapper.appendChild(avatar); + wrapper.appendChild(content); container.appendChild(wrapper); return wrapper; } @@ -1718,6 +1931,11 @@ var ChatbotSDK = (function () { function renderAIBubble(container, text, timestamp, renderMd) { const wrapper = document.createElement('div'); wrapper.className = 'csk-msg csk-msg--ai'; + const avatar = document.createElement('div'); + avatar.className = 'csk-msg__avatar csk-msg__avatar--ai'; + avatar.innerHTML = BOT_ICON; + const content = document.createElement('div'); + content.className = 'csk-msg__content'; const bubble = document.createElement('div'); bubble.className = 'csk-msg__bubble'; // 支持 Markdown 渲染,传入渲染函数则使用,否则纯文本 @@ -1730,8 +1948,10 @@ var ChatbotSDK = (function () { const time = document.createElement('div'); time.className = 'csk-msg__time'; time.textContent = formatTime(timestamp); - wrapper.appendChild(bubble); - wrapper.appendChild(time); + content.appendChild(bubble); + content.appendChild(time); + wrapper.appendChild(avatar); + wrapper.appendChild(content); container.appendChild(wrapper); return wrapper; } @@ -1739,14 +1959,21 @@ var ChatbotSDK = (function () { function createEmptyAIBubble(container, timestamp) { const wrapper = document.createElement('div'); wrapper.className = 'csk-msg csk-msg--ai'; + const avatar = document.createElement('div'); + avatar.className = 'csk-msg__avatar csk-msg__avatar--ai'; + avatar.innerHTML = BOT_ICON; + const content = document.createElement('div'); + content.className = 'csk-msg__content'; const bubble = document.createElement('div'); bubble.className = 'csk-msg__bubble'; bubble.innerHTML = ''; const time = document.createElement('div'); time.className = 'csk-msg__time'; time.textContent = formatTime(timestamp); - wrapper.appendChild(bubble); - wrapper.appendChild(time); + content.appendChild(bubble); + content.appendChild(time); + wrapper.appendChild(avatar); + wrapper.appendChild(content); container.appendChild(wrapper); return { wrapper, bubble }; } @@ -1807,10 +2034,10 @@ var ChatbotSDK = (function () { } sourcesEl.appendChild(header); sourcesEl.appendChild(body); - // 插入到气泡和时间戳之间 + // 插入到气泡和时间戳之间(时间戳在 content 容器内,故用其父节点插入) const timeEl = wrapper.querySelector('.csk-msg__time'); - if (timeEl) { - wrapper.insertBefore(sourcesEl, timeEl); + if (timeEl && timeEl.parentNode) { + timeEl.parentNode.insertBefore(sourcesEl, timeEl); } else { wrapper.appendChild(sourcesEl); @@ -2162,10 +2389,12 @@ var ChatbotSDK = (function () { let messages = []; let messagesContainer$1 = null; let inputEl$1 = null; + let inputWrap = null; let sendBtn$1 = null; let clearBtn$1 = null; let categorySelect$1 = null; let historyPanel$1 = null; + let welcomeEl = null; let showLoadingFn$1 = null; let hideLoadingFn$1 = null; let isSending = false; @@ -2180,10 +2409,12 @@ var ChatbotSDK = (function () { config$1 = cfg; messagesContainer$1 = dom.messagesContainer; inputEl$1 = dom.inputEl; + inputWrap = dom.inputEl.parentElement; sendBtn$1 = dom.sendBtn; clearBtn$1 = dom.clearBtn; categorySelect$1 = dom.categorySelect; historyPanel$1 = dom.historyPanel; + welcomeEl = dom.welcomeEl; showLoadingFn$1 = dom.showLoading; hideLoadingFn$1 = dom.hideLoading; // 初始化知识库分类 @@ -2257,11 +2488,38 @@ var ChatbotSDK = (function () { handleSend(); } }); - inputEl$1.addEventListener('input', () => updateSendBtnState()); + inputEl$1.addEventListener('input', () => { + updateSendBtnState(); + autoResizeInput(); + }); + // 输入框聚焦/失焦高亮容器 + inputEl$1.addEventListener('focus', () => { + if (inputWrap) + inputWrap.classList.add('csk-input-wrap--focus'); + }); + inputEl$1.addEventListener('blur', () => { + if (inputWrap) + inputWrap.classList.remove('csk-input-wrap--focus'); + }); if (clearBtn$1) { clearBtn$1.addEventListener('click', () => handleClear()); } } + /** 文本框自动撑高 */ + function autoResizeInput() { + if (!inputEl$1) + return; + inputEl$1.style.height = 'auto'; + inputEl$1.style.height = `${Math.min(inputEl$1.scrollHeight, 120)}px`; + } + /** 根据消息数量切换欢迎空状态显隐 */ + function updateEmptyState() { + if (!welcomeEl) + return; + const hasMessages = messages.length > 0 || + (messagesContainer$1 && messagesContainer$1.querySelector('.csk-msg')); + welcomeEl.style.display = hasMessages ? 'none' : ''; + } /** 更新发送按钮状态 */ function updateSendBtnState() { if (!sendBtn$1 || !inputEl$1) @@ -2296,6 +2554,7 @@ var ChatbotSDK = (function () { renderUserBubble(messagesContainer$1, text, userTimestamp); const userMsg = { id: uuid(), role: 'user', content: text, timestamp: userTimestamp }; messages.push(userMsg); + updateEmptyState(); if (clearBtn$1 && messages.length > 0) clearBtn$1.style.display = 'inline-flex'; if (messagesContainer$1) @@ -2468,6 +2727,7 @@ var ChatbotSDK = (function () { scrollToBottom(messagesContainer$1); if (clearBtn$1 && messages.length > 0) clearBtn$1.style.display = 'inline-flex'; + updateEmptyState(); if (historyPanelEl && !messagesContainer$1.contains(historyPanelEl)) { messagesContainer$1.appendChild(historyPanelEl); } @@ -2485,6 +2745,7 @@ var ChatbotSDK = (function () { } if (clearBtn$1) clearBtn$1.style.display = 'none'; + updateEmptyState(); clearMessages(config$1.integrateId); // 生成新的 chatId,开始新会话 const newId = generateNewChatId(); @@ -2547,6 +2808,7 @@ var ChatbotSDK = (function () { } if (clearBtn$1) clearBtn$1.style.display = 'none'; + updateEmptyState(); } loadHistoryConversations(); } @@ -2601,6 +2863,7 @@ var ChatbotSDK = (function () { if (clearBtn$1 && messages.length > 0) { clearBtn$1.style.display = 'inline-flex'; } + updateEmptyState(); } // ==================== 单例状态 ==================== @@ -2665,6 +2928,7 @@ var ChatbotSDK = (function () { clearBtn, categorySelect, historyPanel, + welcomeEl: dom.welcomeEl, showLoading: showLoadingFn, hideLoading: hideLoadingFn, }); diff --git a/client/dist/chatbot-sdk.js.map b/client/dist/chatbot-sdk.js.map index 7168aee..868598b 100644 --- a/client/dist/chatbot-sdk.js.map +++ b/client/dist/chatbot-sdk.js.map @@ -1 +1 @@ -{"version":3,"file":"chatbot-sdk.js","sources":["../src/logger.ts","../src/config.ts","../src/i18n.ts","../src/api.ts","../src/styles.ts","../src/utils.ts","../src/dom.ts","../src/storage.ts","../src/markdown.ts","../src/chat.ts","../src/index.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null],"names":["config","messagesContainer","inputEl","sendBtn","clearBtn","categorySelect","historyPanel","showLoadingFn","hideLoadingFn"],"mappings":";;;IAMA,MAAM,MAAM,GAAG,cAAc;IAE7B,IAAI,YAAY,GAAG,IAAI;IAEvB;IACM,SAAU,QAAQ,CAAC,OAAgB,EAAA;QACvC,YAAY,GAAG,OAAO;IACxB;IAEA;IACA,MAAM,MAAM,GAA2B,EAAE;IAElC,MAAM,MAAM,GAAG;;QAEpB,IAAI,CAAC,GAAW,EAAE,IAAc,EAAA;YAC9B,IAAI,YAAY,EAAE;IAChB,YAAA,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,KAAK,SAAS,GAAG,IAAI,GAAG,EAAE,CAAC;YAC1D;QACF,CAAC;;QAGD,IAAI,CAAC,GAAW,EAAE,IAAc,EAAA;YAC9B,IAAI,YAAY,EAAE;IAChB,YAAA,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,KAAK,SAAS,GAAG,IAAI,GAAG,EAAE,CAAC;YAC3D;QACF,CAAC;;QAGD,KAAK,CAAC,GAAW,EAAE,IAAc,EAAA;IAC/B,QAAA,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,KAAK,SAAS,GAAG,IAAI,GAAG,EAAE,CAAC;QAC5D,CAAC;;IAGD,IAAA,IAAI,CAAC,KAAa,EAAA;YAChB,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE;QAC5B,CAAC;;QAGD,OAAO,CAAC,KAAa,EAAE,MAAe,EAAA;IACpC,QAAA,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;IAC3B,QAAA,IAAI,KAAK,KAAK,SAAS,EAAE;gBACvB,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK;IACnC,YAAA,OAAO,MAAM,CAAC,KAAK,CAAC;gBACpB,IAAI,YAAY,EAAE;IAChB,gBAAA,MAAM,GAAG,GAAG,MAAM,GAAG,GAAG,MAAM,CAAA,CAAA,EAAI,QAAQ,CAAA,EAAA,CAAI,GAAG,CAAA,EAAG,KAAK,CAAA,CAAA,EAAI,QAAQ,IAAI;IACzE,gBAAA,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC;gBAC1B;IACA,YAAA,OAAO,QAAQ;YACjB;IACA,QAAA,OAAO,CAAC;QACV,CAAC;;QAGD,aAAa,CAAC,WAAmB,EAAE,aAAqB,EAAA;YACtD,IAAI,CAAC,IAAI,CAAC,CAAA,kBAAA,EAAqB,WAAW,CAAA,eAAA,EAAkB,aAAa,CAAA,CAAE,CAAC;QAC9E,CAAC;;IAGD,IAAA,gBAAgB,CAAC,WAAmB,EAAA;IAClC,QAAA,IAAI,CAAC,IAAI,CAAC,oBAAoB,WAAW,CAAA,CAAE,CAAC;QAC9C,CAAC;;QAGD,aAAa,CAAC,WAAmB,EAAE,MAAc,EAAA;YAC/C,IAAI,CAAC,IAAI,CAAC,CAAA,iBAAA,EAAoB,WAAW,CAAA,QAAA,EAAW,MAAM,CAAA,CAAE,CAAC;IAC7D,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,WAAW,CAAA,CAAE,CAAC;QAClC,CAAC;;QAGD,cAAc,CAAC,WAAmB,EAAE,MAAc,EAAA;IAChD,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,CAAA,KAAA,EAAQ,WAAW,CAAA,CAAE,EAAE,OAAO,CAAC;YAC7D,IAAI,CAAC,IAAI,CAAC,CAAA,kBAAA,EAAqB,WAAW,CAAA,QAAA,EAAW,MAAM,CAAA,UAAA,EAAa,QAAQ,CAAA,EAAA,CAAI,CAAC;QACvF,CAAC;;IAGD,IAAA,cAAc,CAAC,WAAmB,EAAE,MAAc,EAAE,OAAe,EAAA;IACjE,QAAA,IAAI,CAAC,OAAO,CAAC,QAAQ,WAAW,CAAA,CAAE,CAAC;YACnC,IAAI,CAAC,KAAK,CAAC,CAAA,iBAAA,EAAoB,WAAW,CAAA,QAAA,EAAW,MAAM,CAAA,SAAA,EAAY,OAAO,CAAA,CAAE,CAAC;QACnF,CAAC;;IAGD,IAAA,cAAc,CAAC,WAAmB,EAAA;IAChC,QAAA,IAAI,CAAC,IAAI,CAAC,oBAAoB,WAAW,CAAA,CAAE,CAAC;QAC9C,CAAC;;QAGD,mBAAmB,CAAC,WAAmB,EAAE,MAAc,EAAA;IACrD,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,CAAA,KAAA,EAAQ,WAAW,CAAA,CAAE,EAAE,MAAM,CAAC;YAC5D,IAAI,CAAC,IAAI,CAAC,CAAA,mBAAA,EAAsB,WAAW,CAAA,QAAA,EAAW,MAAM,CAAA,UAAA,EAAa,QAAQ,CAAA,EAAA,CAAI,CAAC;QACxF,CAAC;;IAGD,IAAA,uBAAuB,CAAC,UAA2B,EAAA;IACjD,QAAA,IAAI,CAAC,IAAI,CAAC,sBAAsB,UAAU,CAAA,CAAE,CAAC;QAC/C,CAAC;KACF;;IC1FD;IACA,MAAM,qBAAqB,GAAG,CAAA;;;OAGvB;IAEP;;IAEG;IACG,SAAU,WAAW,CAAC,GAAc,EAAA;;;IAExC,IAAA,IAAI,CAAC,GAAG,CAAC,WAAW,KAAK,OAAO,GAAG,CAAC,WAAW,KAAK,QAAQ,IAAI,OAAO,GAAG,CAAC,WAAW,KAAK,QAAQ;IAC9F,YAAC,OAAO,GAAG,CAAC,WAAW,KAAK,QAAQ,IAAI,GAAG,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE;IAC3E,QAAA,MAAM,CAAC,KAAK,CAAC,uIAAuI,CAAC;IACrJ,QAAA,OAAO,IAAI;QACb;;QAGA,IAAI,CAAC,GAAG,CAAC,aAAa,IAAI,OAAO,GAAG,CAAC,aAAa,KAAK,QAAQ,IAAI,GAAG,CAAC,aAAa,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;IAClG,QAAA,MAAM,CAAC,KAAK,CAAC,oHAAoH,CAAC;IAClI,QAAA,OAAO,IAAI;QACb;;IAGA,IAAA,IAAI;IACF,QAAA,IAAI,GAAG,CAAC,GAAG,CAAC,aAAa,CAAC;QAC5B;IAAE,IAAA,OAAA,EAAA,EAAM;YACN,MAAM,CAAC,KAAK,CAAC,CAAA,2BAAA,EAA8B,GAAG,CAAC,aAAa,CAAA,mCAAA,CAAqC,CAAC;IAClG,QAAA,OAAO,IAAI;QACb;;QAGA,MAAM,cAAc,GAAG,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE;;IAGrD,IAAA,MAAM,MAAM,GAAmB;IAC7B,QAAA,WAAW,EAAE,cAAc;IAC3B,QAAA,aAAa,EAAE,GAAG,CAAC,aAAa,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;YACpD,MAAM,EAAE,GAAG,CAAC,MAAM;YAClB,UAAU,EAAE,GAAG,CAAC,UAAU;IAC1B,QAAA,kBAAkB,EAAE,CAAA,EAAA,GAAA,GAAG,CAAC,kBAAkB,mCAAI,KAAK;IACnD,QAAA,KAAK,EAAE,GAAG,CAAC,KAAK,IAAI,SAAS;IAC7B,QAAA,KAAK,EAAE,CAAA,EAAA,GAAA,GAAG,CAAC,KAAK,mCAAI,GAAG;IACvB,QAAA,QAAQ,EAAE,GAAG,CAAC,QAAQ,KAAK,aAAa,GAAG,aAAa,GAAG,cAAc;IACzE,QAAA,YAAY,EAAE,GAAG,CAAC,YAAY,IAAI,SAAS;IAC3C,QAAA,YAAY,EAAE,GAAG,CAAC,YAAY,IAAI,qBAAqB;IACvD,QAAA,SAAS,EAAE,CAAA,EAAA,GAAA,GAAG,CAAC,SAAS,mCAAI,IAAI;IAChC,QAAA,cAAc,EAAE,CAAA,EAAA,GAAA,GAAG,CAAC,cAAc,mCAAI,KAAK;IAC3C,QAAA,SAAS,EAAE,CAAA,EAAA,GAAA,GAAG,CAAC,SAAS,mCAAI,IAAI;IAChC,QAAA,MAAM,EAAE,GAAG,CAAC,MAAM,IAAI,OAAO;IAC7B,QAAA,KAAK,EAAE,CAAA,EAAA,GAAA,GAAG,CAAC,KAAK,mCAAI,IAAI;YACxB,MAAM,EAAE,EAAE;SACX;IAED,IAAA,MAAM,CAAC,IAAI,CAAC,+BAA+B,MAAM,CAAC,WAAW,CAAA,oBAAA,EAAuB,MAAM,CAAC,MAAM,IAAI,OAAO,CAAA,eAAA,EAAkB,MAAM,CAAC,aAAa,CAAA,CAAE,CAAC;IACrJ,IAAA,OAAO,MAAM;IACf;;ICnEA;;IAEG;IAEH;IACA,MAAM,YAAY,GAA2C;IAC3D,IAAA,OAAO,EAAE;;IAEP,QAAA,KAAK,EAAE,SAAS;IAChB,QAAA,QAAQ,EAAE,KAAK;IACf,QAAA,KAAK,EAAE,IAAI;;IAGX,QAAA,WAAW,EAAE,WAAW;IACxB,QAAA,IAAI,EAAE,IAAI;;IAGV,QAAA,OAAO,EAAE,SAAS;IAClB,QAAA,kBAAkB,EAAE,OAAO;IAC3B,QAAA,eAAe,EAAE,eAAe;;IAGhC,QAAA,oBAAoB,EAAE,SAAS;IAC/B,QAAA,YAAY,EAAE,MAAM;IACpB,QAAA,mBAAmB,EAAE,QAAQ;IAC7B,QAAA,YAAY,EAAE,MAAM;IACpB,QAAA,YAAY,EAAE,WAAW;IACzB,QAAA,cAAc,EAAE,UAAU;;IAG1B,QAAA,KAAK,EAAE,MAAM;IACb,QAAA,aAAa,EAAE,aAAa;;IAG5B,QAAA,aAAa,EAAE,MAAM;IACrB,QAAA,aAAa,EAAE,QAAQ;IACvB,QAAA,kBAAkB,EAAE,UAAU;IAC9B,QAAA,sBAAsB,EAAE,UAAU;IAClC,QAAA,cAAc,EAAE,IAAI;IACpB,QAAA,cAAc,EAAE,IAAI;;IAGpB,QAAA,aAAa,EAAE,cAAc;IAC7B,QAAA,aAAa,EAAE,YAAY;IAC3B,QAAA,YAAY,EAAE,aAAa;IAC3B,QAAA,UAAU,EAAE,+BAA+B;IAC3C,QAAA,UAAU,EAAE,aAAa;IACzB,QAAA,eAAe,EAAE,gBAAgB;IACjC,QAAA,eAAe,EAAE,UAAU;IAC3B,QAAA,gBAAgB,EAAE,cAAc;IAChC,QAAA,iBAAiB,EAAE,cAAc;IACjC,QAAA,aAAa,EAAE,UAAU;IACzB,QAAA,UAAU,EAAE,YAAY;IACxB,QAAA,wBAAwB,EAAE,YAAY;IACvC,KAAA;IAED,IAAA,IAAI,EAAE;;IAEJ,QAAA,KAAK,EAAE,cAAc;IACrB,QAAA,QAAQ,EAAE,UAAU;IACpB,QAAA,KAAK,EAAE,OAAO;;IAGd,QAAA,WAAW,EAAE,uBAAuB;IACpC,QAAA,IAAI,EAAE,MAAM;;IAGZ,QAAA,OAAO,EAAE,aAAa;IACtB,QAAA,kBAAkB,EAAE,sBAAsB;IAC1C,QAAA,eAAe,EAAE,6CAA6C;;IAG9D,QAAA,oBAAoB,EAAE,iBAAiB;IACvC,QAAA,YAAY,EAAE,gBAAgB;IAC9B,QAAA,mBAAmB,EAAE,2BAA2B;IAChD,QAAA,YAAY,EAAE,SAAS;IACvB,QAAA,YAAY,EAAE,eAAe;IAC7B,QAAA,cAAc,EAAE,oBAAoB;;IAGpC,QAAA,KAAK,EAAE,YAAY;IACnB,QAAA,aAAa,EAAE,iCAAiC;;IAGhD,QAAA,aAAa,EAAE,SAAS;IACxB,QAAA,aAAa,EAAE,sBAAsB;IACrC,QAAA,kBAAkB,EAAE,8BAA8B;IAClD,QAAA,sBAAsB,EAAE,2BAA2B;IACnD,QAAA,cAAc,EAAE,QAAQ;IACxB,QAAA,cAAc,EAAE,QAAQ;;IAGxB,QAAA,aAAa,EAAE,2BAA2B;IAC1C,QAAA,aAAa,EAAE,qCAAqC;IACpD,QAAA,YAAY,EAAE,sCAAsC;IACpD,QAAA,UAAU,EAAE,qEAAqE;IACjF,QAAA,UAAU,EAAE,6CAA6C;IACzD,QAAA,eAAe,EAAE,qCAAqC;IACtD,QAAA,eAAe,EAAE,oBAAoB;IACrC,QAAA,gBAAgB,EAAE,2CAA2C;IAC7D,QAAA,iBAAiB,EAAE,iCAAiC;IACpD,QAAA,aAAa,EAAE,uBAAuB;IACtC,QAAA,UAAU,EAAE,kCAAkC;IAC9C,QAAA,wBAAwB,EAAE,oCAAoC;IAC/D,KAAA;KACF;IAED;IACA,IAAI,aAAa,GAAG,OAAO;IAE3B;;IAEG;IACG,SAAU,SAAS,CAAC,MAAc,EAAA;IACtC,IAAA,IAAI,YAAY,CAAC,MAAM,CAAC,EAAE;YACxB,aAAa,GAAG,MAAM;QACxB;aAAO;;YAEL,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACnC,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YACzE,IAAI,OAAO,EAAE;gBACX,aAAa,GAAG,OAAO;YACzB;;QAEF;IACF;IAEA;;;;IAIG;IACG,SAAU,CAAC,CAAC,GAAW,EAAE,MAAwC,EAAA;QACrE,MAAM,IAAI,GAAG,YAAY,CAAC,aAAa,CAAC,IAAI,YAAY,CAAC,OAAO,CAAC;IACjE,IAAA,IAAI,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,YAAY,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,IAAI,GAAG;;QAGzD,IAAI,MAAM,EAAE;IACV,QAAA,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;IAC3C,YAAA,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,CAAA,CAAA,EAAI,CAAC,CAAA,CAAA,CAAG,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;YAC1C;QACF;IAEA,IAAA,OAAO,IAAI;IACb;;ICpIA;IACA,MAAM,eAAe,GAAG,KAAK;IAE7B,IAAI,aAAa,GAA0B,IAAI;IAE/C;IACM,SAAU,YAAY,CAAC,MAAsB,EAAA;QACjD,aAAa,GAAG,MAAM;IACxB;IAEA;IACM,SAAU,YAAY,CAAC,MAAc,EAAA;QACzC,IAAI,aAAa,EAAE;IACjB,QAAA,aAAa,CAAC,MAAM,GAAG,MAAM;QAC/B;IACF;IAEA;aACgB,SAAS,GAAA;QACvB,OAAO,CAAA,aAAa,KAAA,IAAA,IAAb,aAAa,KAAA,MAAA,GAAA,MAAA,GAAb,aAAa,CAAE,MAAM,KAAI,EAAE;IACpC;IAEA;IACM,SAAU,QAAQ,CAAC,IAAY,EAAA;QACnC,IAAI,CAAC,aAAa,EAAE;IAClB,QAAA,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC;QAC/B;IACA,IAAA,MAAM,MAAM,GAAG,aAAa,CAAC,aAAa,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;IAC9D,IAAA,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAA,CAAA,EAAI,IAAI,EAAE;IAC1D,IAAA,OAAO,CAAA,EAAG,MAAM,CAAA,EAAG,SAAS,EAAE;IAChC;IAEA;;IAEG;IACH,SAAS,YAAY,CAAC,MAAuB,EAAE,GAAW,EAAE,KAAkC,EAAA;IAC5F,IAAA,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI;YAAE;QAC3C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE;YAAE;QACtD,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;IAChC;IAEA;IAEA;;;;;IAKG;IACH,SAAS,YAAY,CAAC,OAAe,EAAA;IACnC,IAAA,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE;IACpC,IAAA,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC;QAC9B,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,aAAc,CAAC,MAAM,CAAC;;QAG3C,YAAY,CAAC,MAAM,EAAE,QAAQ,EAAE,aAAc,CAAC,WAAW,CAAC;;QAE1D,YAAY,CAAC,MAAM,EAAE,WAAW,EAAE,aAAc,CAAC,MAAM,CAAC;QAExD,OAAO,QAAQ,CAAC,CAAA,4BAAA,EAA+B,MAAM,CAAC,QAAQ,EAAE,CAAA,CAAE,CAAC;IACrE;IAEA;;IAEG;IACH,SAAS,eAAe,CAAC,OAAe,EAAE,UAAmB,EAAA;IAC3D,IAAA,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE;IACpC,IAAA,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC;QAC9B,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,aAAc,CAAC,MAAM,CAAC;QAE3C,YAAY,CAAC,MAAM,EAAE,QAAQ,EAAE,aAAc,CAAC,WAAW,CAAC;QAC1D,YAAY,CAAC,MAAM,EAAE,WAAW,EAAE,aAAc,CAAC,MAAM,CAAC;IACxD,IAAA,YAAY,CAAC,MAAM,EAAE,YAAY,EAAE,UAAU,KAAA,IAAA,IAAV,UAAU,KAAA,MAAA,GAAV,UAAU,GAAI,aAAc,CAAC,UAAU,CAAC;QAE3E,OAAO,QAAQ,CAAC,CAAA,2BAAA,EAA8B,MAAM,CAAC,QAAQ,EAAE,CAAA,CAAE,CAAC;IACpE;IAEA;;IAEG;IACH,SAAS,kBAAkB,CAAC,OAAe,EAAE,UAAmB,EAAA;IAC9D,IAAA,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE;IACpC,IAAA,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC;QAC9B,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,aAAc,CAAC,MAAM,CAAC;IAC3C,IAAA,MAAM,CAAC,GAAG,CAAC,iBAAiB,EAAE,SAAS,CAAC;QAExC,YAAY,CAAC,MAAM,EAAE,QAAQ,EAAE,aAAc,CAAC,WAAW,CAAC;QAC1D,YAAY,CAAC,MAAM,EAAE,WAAW,EAAE,aAAc,CAAC,MAAM,CAAC;IACxD,IAAA,YAAY,CAAC,MAAM,EAAE,YAAY,EAAE,UAAU,KAAA,IAAA,IAAV,UAAU,KAAA,MAAA,GAAV,UAAU,GAAI,aAAc,CAAC,UAAU,CAAC;QAE3E,OAAO,QAAQ,CAAC,CAAA,+BAAA,EAAkC,MAAM,CAAC,QAAQ,EAAE,CAAA,CAAE,CAAC;IACxE;IAEA;;IAEG;IACH,SAAS,kBAAkB,CAAC,OAAe,EAAE,UAAmB,EAAA;IAC9D,IAAA,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE;IACpC,IAAA,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC;QAC9B,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,aAAc,CAAC,MAAM,CAAC;IAC3C,IAAA,MAAM,CAAC,GAAG,CAAC,iBAAiB,EAAE,SAAS,CAAC;QAExC,YAAY,CAAC,MAAM,EAAE,QAAQ,EAAE,aAAc,CAAC,WAAW,CAAC;QAC1D,YAAY,CAAC,MAAM,EAAE,WAAW,EAAE,aAAc,CAAC,MAAM,CAAC;IACxD,IAAA,YAAY,CAAC,MAAM,EAAE,YAAY,EAAE,UAAU,KAAA,IAAA,IAAV,UAAU,KAAA,MAAA,GAAV,UAAU,GAAI,aAAc,CAAC,UAAU,CAAC;QAE3E,OAAO,QAAQ,CAAC,CAAA,8BAAA,EAAiC,MAAM,CAAC,QAAQ,EAAE,CAAA,CAAE,CAAC;IACvE;IAEA;IAEA;IACA,eAAe,SAAS,CACtB,GAAW,EACX,OAAA,GAAuB,EAAE,EACzB,OAAA,GAAkB,eAAe,EAAA;IAEjC,IAAA,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE;IACxC,IAAA,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,UAAU,CAAC,KAAK,EAAE,EAAE,OAAO,CAAC;IAE3D,IAAA,IAAI;YACF,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAC3B,OAAO,CAAA,EAAA,EACV,MAAM,EAAE,UAAU,CAAC,MAAM,EACzB,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,SAAS,EAAA,CAAA,CACtB;IACF,QAAA,OAAO,QAAQ;QACjB;QAAE,OAAO,GAAY,EAAE;YACrB,IAAI,GAAG,YAAY,YAAY,IAAI,GAAG,CAAC,IAAI,KAAK,YAAY,EAAE;gBAC5D,MAAM,IAAI,QAAQ,CAAC,CAAC,CAAC,eAAe,CAAC,EAAE,SAAS,CAAC;YACnD;IACA,QAAA,IAAI,GAAG,YAAY,SAAS,IAAI,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAAE;gBACvE,MAAM,IAAI,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;YAC7C;YACA,MAAM,IAAI,QAAQ,CAAC,CAAC,CAAC,eAAe,CAAC,EAAE,SAAS,CAAC;QACnD;gBAAU;YACR,YAAY,CAAC,KAAK,CAAC;QACrB;IACF;IAEA;IACM,MAAO,QAAS,SAAQ,KAAK,CAAA;QAEjC,WAAA,CAAY,OAAe,EAAE,IAAY,EAAA;YACvC,KAAK,CAAC,OAAO,CAAC;IACd,QAAA,IAAI,CAAC,IAAI,GAAG,UAAU;IACtB,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI;QAClB;IACD;IAED;IACA,SAAS,mBAAmB,CAAC,MAAc,EAAA;QACzC,QAAQ,MAAM;YACZ,KAAK,GAAG,EAAE,OAAO,CAAC,CAAC,YAAY,CAAC;YAChC,KAAK,GAAG,EAAE,OAAO,CAAC,CAAC,iBAAiB,CAAC;YACrC,KAAK,GAAG,EAAE,OAAO,CAAC,CAAC,iBAAiB,CAAC;YACrC,KAAK,GAAG,EAAE,OAAO,CAAC,CAAC,kBAAkB,CAAC;YACtC,KAAK,GAAG,EAAE,OAAO,CAAC,CAAC,cAAc,CAAC;IAClC,QAAA,KAAK,GAAG;YACR,KAAK,GAAG,EAAE,OAAO,CAAC,CAAC,mBAAmB,CAAC;YACvC,SAAS,OAAO,CAAA,EAAG,CAAC,CAAC,eAAe,CAAC,CAAA,CAAA,EAAI,MAAM,CAAA,CAAA,CAAG;;IAEtD;IAEA;IAEA;;IAEG;IACI,eAAe,WAAW,CAAC,OAAe,EAAA;IAC/C,IAAA,MAAM,GAAG,GAAG,YAAY,CAAC,OAAO,CAAC;QACjC,MAAM,CAAC,aAAa,CAAC,aAAc,CAAC,WAAW,EAAE,OAAO,CAAC,MAAM,CAAC;IAEhE,IAAA,IAAI;IACF,QAAA,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,GAAG,CAAC;IACrC,QAAA,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE;gBAChB,MAAM,QAAQ,GAAG,mBAAmB,CAAC,QAAQ,CAAC,MAAM,CAAC;IACrD,YAAA,MAAM,CAAC,cAAc,CAAC,aAAc,CAAC,WAAW,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC;gBACpF,MAAM,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAA,KAAA,EAAQ,QAAQ,CAAC,MAAM,CAAA,CAAE,CAAC;YACzD;IAEA,QAAA,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE;YAClC,MAAM,CAAC,cAAc,CAAC,aAAc,CAAC,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC;IAC9D,QAAA,OAAO,IAAI;QACb;QAAE,OAAO,GAAG,EAAE;YACZ,IAAI,GAAG,YAAY,QAAQ;IAAE,YAAA,MAAM,GAAG;IACtC,QAAA,MAAM,CAAC,cAAc,CAAC,aAAc,CAAC,WAAW,EAAE,SAAS,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;YACzE,MAAM,IAAI,QAAQ,CAAC,CAAC,CAAC,eAAe,CAAC,EAAE,SAAS,CAAC;QACnD;IACF;IAEA;;;;IAIG;IACI,eAAe,cAAc,CAClC,OAAe,EACf,OAA+B,EAC/B,MAAkB,EAClB,OAAkC,EAClC,UAAmB,EACnB,MAAgB,EAAA;;QAEhB,MAAM,GAAG,GAAG;IACV,UAAE,kBAAkB,CAAC,OAAO,EAAE,UAAU;IACxC,UAAE,eAAe,CAAC,OAAO,EAAE,UAAU,CAAC;QACxC,IAAI,SAAS,GAAG,EAAE;QAElB,MAAM,CAAC,aAAa,CAAC,aAAc,CAAC,WAAW,EAAE,OAAO,CAAC,MAAM,CAAC;IAEhE,IAAA,IAAI;IACF,QAAA,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,GAAG,EAAE,EAAE,EAAE,eAAe,GAAG,CAAC,CAAC;IAE9D,QAAA,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE;gBAChB,MAAM,QAAQ,GAAG,mBAAmB,CAAC,QAAQ,CAAC,MAAM,CAAC;IACrD,YAAA,MAAM,CAAC,cAAc,CAAC,aAAc,CAAC,WAAW,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC;IACpF,YAAA,OAAO,CAAC,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAA,KAAA,EAAQ,QAAQ,CAAC,MAAM,CAAA,CAAE,CAAC,CAAC;gBAC1D;YACF;YAEA,MAAM,MAAM,GAAG,CAAA,EAAA,GAAA,QAAQ,CAAC,IAAI,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,SAAS,EAAE;YACzC,IAAI,CAAC,MAAM,EAAE;IACX,YAAA,OAAO,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,0BAA0B,CAAC,EAAE,oBAAoB,CAAC,CAAC;gBAC1E;YACF;IAEA,QAAA,MAAM,OAAO,GAAG,IAAI,WAAW,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,IAAI,EAAwB,CAAC;YAChF,IAAI,MAAM,GAAG,EAAE;IAEf,QAAA,IAAI;gBACF,OAAO,IAAI,EAAE;oBACX,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE;IAC3C,gBAAA,IAAI,IAAI;wBAAE;IAEV,gBAAA,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;oBACjD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC;IAChC,gBAAA,MAAM,GAAG,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE;IAE1B,gBAAA,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;IACxB,oBAAA,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE;wBAC3B,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC;4BAAE;IAEzC,oBAAA,IAAI,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE;4BAC/B,MAAM,IAAI,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;4BACxC,IAAI,IAAI,EAAE;gCAAE,SAAS,IAAI,IAAI;gCAAE,OAAO,CAAC,IAAI,CAAC;4BAAE;wBAChD;IAAO,yBAAA,IAAI,OAAO,KAAK,QAAQ,EAAE;4BAC/B;wBACF;6BAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE;4BACvG,SAAS,IAAI,OAAO;4BACpB,OAAO,CAAC,OAAO,CAAC;wBAClB;oBACF;gBACF;IAEA,YAAA,IAAI,MAAM,CAAC,IAAI,EAAE,EAAE;IACjB,gBAAA,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,EAAE;IAC7B,gBAAA,IAAI,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE;wBAC/B,MAAM,IAAI,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;wBACxC,IAAI,IAAI,EAAE;4BAAE,SAAS,IAAI,IAAI;4BAAE,OAAO,CAAC,IAAI,CAAC;wBAAE;oBAChD;IAAO,qBAAA,IAAI,OAAO,KAAK,QAAQ,EAAE;wBAC/B,SAAS,IAAI,OAAO;wBACpB,OAAO,CAAC,OAAO,CAAC;oBAClB;gBACF;YACF;YAAE,OAAO,OAAgB,EAAE;IACzB,YAAA,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;oBACxB,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,iBAAiB,CAAC,CAAC;gBACxC;qBAAO;IACL,gBAAA,MAAM,OAAO;gBACf;YACF;oBAAU;gBACR,MAAM,CAAC,WAAW,EAAE;YACtB;YAEA,MAAM,CAAC,mBAAmB,CAAC,aAAc,CAAC,WAAW,EAAE,SAAS,CAAC,MAAM,CAAC;IACxE,QAAA,MAAM,EAAE;QACV;QAAE,OAAO,GAAG,EAAE;IACZ,QAAA,IAAI,GAAG,YAAY,QAAQ,EAAE;gBAC3B,OAAO,CAAC,GAAG,CAAC;YACd;iBAAO;IACL,YAAA,MAAM,CAAC,cAAc,CAAC,aAAc,CAAC,WAAW,EAAE,SAAS,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;IACzE,YAAA,OAAO,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,eAAe,CAAC,EAAE,SAAS,CAAC,CAAC;YACtD;QACF;IACF;IAEA;IAEA;;IAEG;IACI,eAAe,iBAAiB,GAAA;IACrC,IAAA,MAAM,GAAG,GAAG,QAAQ,CAAC,gBAAgB,CAAC;IACtC,IAAA,IAAI;IACF,QAAA,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,GAAG,CAAC;YACrC,IAAI,CAAC,QAAQ,CAAC,EAAE;IAAE,YAAA,MAAM,IAAI,QAAQ,CAAC,mBAAmB,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,QAAQ,CAAC,MAAM,CAAA,CAAE,CAAC;IACrG,QAAA,MAAM,IAAI,GAAgC,MAAM,QAAQ,CAAC,IAAI,EAAE;IAC/D,QAAA,IAAI,IAAI,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;gBAC5C,MAAM,CAAC,IAAI,CAAC,CAAA,cAAA,EAAiB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAA,CAAE,CAAC;gBAChD,OAAO,IAAI,CAAC,IAAI;YAClB;IACA,QAAA,OAAO,EAAE;QACX;QAAE,OAAO,GAAG,EAAE;YACZ,IAAI,GAAG,YAAY,QAAQ;gBAAE,MAAM,CAAC,KAAK,CAAC,CAAA,SAAA,EAAY,GAAG,CAAC,OAAO,CAAA,CAAE,CAAC;;IAC/D,YAAA,MAAM,CAAC,KAAK,CAAC,SAAS,EAAE,GAAG,CAAC;IACjC,QAAA,OAAO,EAAE;QACX;IACF;IAcA;;IAEG;IACI,eAAe,eAAe,CAAC,OAAe,EAAE,UAAmB,EAAA;QACxE,MAAM,GAAG,GAAG,kBAAkB,CAAC,OAAO,EAAE,UAAU,CAAC;IACnD,IAAA,IAAI;IACF,QAAA,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,GAAG,CAAC;YACrC,IAAI,CAAC,QAAQ,CAAC,EAAE;IAAE,YAAA,MAAM,IAAI,QAAQ,CAAC,mBAAmB,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,QAAQ,CAAC,MAAM,CAAA,CAAE,CAAC;IACrG,QAAA,MAAM,IAAI,GAAiC,MAAM,QAAQ,CAAC,IAAI,EAAE;IAChE,QAAA,IAAI,IAAI,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;gBAC5C,MAAM,CAAC,IAAI,CAAC,CAAA,aAAA,EAAgB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAA,CAAE,CAAC;gBAC/C,OAAO,IAAI,CAAC,IAAI;YAClB;IACA,QAAA,OAAO,EAAE;QACX;QAAE,OAAO,GAAG,EAAE;IACZ,QAAA,MAAM,CAAC,KAAK,CAAC,UAAU,EAAE,GAAG,CAAC;IAC7B,QAAA,OAAO,EAAE;QACX;IACF;IAiBA;;IAEG;IACI,eAAe,qBAAqB,CACzC,IAAA,GAAe,CAAC,EAChB,IAAA,GAAe,EAAE,EACjB,SAAkB,EAClB,MAAe,EAAA;IAMf,IAAA,IAAI,IAAI,GAAG,CAAA,wBAAA,EAA2B,IAAI,CAAA,MAAA,EAAS,IAAI,EAAE;IACzD,IAAA,IAAI,SAAS;IAAE,QAAA,IAAI,IAAI,CAAA,WAAA,EAAc,kBAAkB,CAAC,SAAS,CAAC,EAAE;IACpE,IAAA,IAAI,MAAM;IAAE,QAAA,IAAI,IAAI,CAAA,QAAA,EAAW,kBAAkB,CAAC,MAAM,CAAC,EAAE;IAC3D,IAAA,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC;IAE1B,IAAA,IAAI;IACF,QAAA,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,GAAG,CAAC;YACrC,IAAI,CAAC,QAAQ,CAAC,EAAE;IAAE,YAAA,MAAM,IAAI,QAAQ,CAAC,mBAAmB,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,QAAQ,CAAC,MAAM,CAAA,CAAE,CAAC;IACrG,QAAA,MAAM,IAAI,GAAoC,MAAM,QAAQ,CAAC,IAAI,EAAE;YACnE,OAAO;gBACL,IAAI,EAAE,IAAI,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,GAAG,EAAE;IAC/D,YAAA,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,CAAC;IACtB,YAAA,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,CAAC;aACvB;QACH;QAAE,OAAO,GAAG,EAAE;IACZ,QAAA,MAAM,CAAC,KAAK,CAAC,UAAU,EAAE,GAAG,CAAC;IAC7B,QAAA,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE;QACzC;IACF;IAEA;;IAEG;IACI,eAAe,yBAAyB,CAAC,cAAsB,EAAA;QAIpE,MAAM,GAAG,GAAG,QAAQ,CAAC,iBAAiB,cAAc,CAAA,SAAA,CAAW,CAAC;IAChE,IAAA,IAAI;IACF,QAAA,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,GAAG,CAAC;YACrC,IAAI,CAAC,QAAQ,CAAC,EAAE;IAAE,YAAA,MAAM,IAAI,QAAQ,CAAC,mBAAmB,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,QAAQ,CAAC,MAAM,CAAA,CAAE,CAAC;IACrG,QAAA,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE;YAClC,OAAO;gBACL,QAAQ,EAAE,IAAI,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,GAAG,EAAE;IACnE,YAAA,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,CAAC;aACvB;QACH;QAAE,OAAO,GAAG,EAAE;IACZ,QAAA,MAAM,CAAC,KAAK,CAAC,UAAU,EAAE,GAAG,CAAC;YAC7B,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE;QACnC;IACF;IAEA;;IAEG;IACI,eAAe,kBAAkB,CAAC,cAAsB,EAAA;QAC7D,MAAM,GAAG,GAAG,QAAQ,CAAC,iBAAiB,cAAc,CAAA,CAAE,CAAC;IACvD,IAAA,IAAI;IACF,QAAA,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;YAC3D,IAAI,CAAC,QAAQ,CAAC,EAAE;IAAE,YAAA,MAAM,IAAI,QAAQ,CAAC,mBAAmB,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,QAAQ,CAAC,MAAM,CAAA,CAAE,CAAC;IACrG,QAAA,MAAM,IAAI,GAAgB,MAAM,QAAQ,CAAC,IAAI,EAAE;YAC/C,MAAM,CAAC,IAAI,CAAC,CAAA,QAAA,EAAW,cAAc,CAAA,SAAA,EAAY,IAAI,CAAC,OAAO,CAAA,CAAE,CAAC;IAChE,QAAA,OAAO,IAAI,CAAC,OAAO,IAAI,KAAK;QAC9B;QAAE,OAAO,GAAG,EAAE;IACZ,QAAA,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,GAAG,CAAC;IAC3B,QAAA,OAAO,KAAK;QACd;IACF;IAEA;;IAEG;IACG,SAAU,wBAAwB,CAAC,cAAsB,EAAA;IAC7D,IAAA,OAAO,QAAQ,CAAC,CAAA,cAAA,EAAiB,cAAc,CAAA,OAAA,CAAS,CAAC;IAC3D;IAEA;IAEA;;;;;;;;IAQG;IACI,eAAe,UAAU,GAAA;IAC9B,IAAA,IAAI,CAAC,aAAa;IAAE,QAAA,OAAO,EAAE;;IAG7B,IAAA,MAAM,YAAY,GAAG,gBAAgB,CAAC,aAAa,CAAC,WAAW,EAAE,aAAa,CAAC,MAAM,CAAC;QACtF,IAAI,YAAY,EAAE;IAChB,QAAA,aAAa,CAAC,MAAM,GAAG,YAAY;IACnC,QAAA,MAAM,CAAC,IAAI,CAAC,gBAAgB,YAAY,CAAA,CAAE,CAAC;IAC3C,QAAA,OAAO,YAAY;QACrB;;IAGA,IAAA,IAAI;IACF,QAAA,MAAM,MAAM,GAAG,MAAM,qBAAqB,CAAC,CAAC,EAAE,CAAC,EAAE,aAAa,CAAC,MAAM,EAAE,aAAa,CAAC,WAAW,CAAC;YACjG,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;;gBAE1B,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;gBACjC,MAAM,MAAM,GAAG,UAAU,CAAC,cAAc,IAAI,UAAU,CAAC,MAAM,IAAI,EAAE;gBACnE,IAAI,MAAM,EAAE;IACV,gBAAA,aAAa,CAAC,MAAM,GAAG,MAAM;oBAC7B,gBAAgB,CAAC,aAAa,CAAC,WAAW,EAAE,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC;oBACzE,MAAM,CAAC,IAAI,CAAC,CAAA,eAAA,EAAkB,MAAM,CAAA,cAAA,EAAiB,UAAU,CAAC,YAAY,CAAA,CAAE,CAAC;IAC/E,gBAAA,OAAO,MAAM;gBACf;YACF;QACF;QAAE,OAAO,GAAG,EAAE;IACZ,QAAA,MAAM,CAAC,IAAI,CAAC,wBAAwB,EAAE,GAAG,CAAC;QAC5C;;IAGA,IAAA,MAAM,SAAS,GAAG,cAAc,EAAE;IAClC,IAAA,aAAa,CAAC,MAAM,GAAG,SAAS;QAChC,gBAAgB,CAAC,aAAa,CAAC,WAAW,EAAE,aAAa,CAAC,MAAM,EAAE,SAAS,CAAC;IAC5E,IAAA,MAAM,CAAC,IAAI,CAAC,cAAc,SAAS,CAAA,CAAE,CAAC;IACtC,IAAA,OAAO,SAAS;IAClB;IAEA;IACA,SAAS,cAAc,GAAA;QACrB,MAAM,MAAM,GAAG,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC;cACnD,MAAM,CAAC,UAAU,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC;IACpC,UAAE,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC;QAC/C,OAAO,CAAA,IAAA,EAAO,IAAI,CAAC,GAAG,EAAE,CAAA,CAAA,EAAI,MAAM,EAAE;IACtC;IAEA;IACA,SAAS,gBAAgB,CAAC,WAAmB,EAAE,MAAe,EAAA;IAC5D,IAAA,OAAO,CAAA,WAAA,EAAc,WAAW,CAAA,EAAG,MAAM,GAAG,GAAG,GAAG,MAAM,GAAG,EAAE,EAAE;IACjE;IAEA;IACA,SAAS,gBAAgB,CAAC,WAAmB,EAAE,MAAe,EAAA;IAC5D,IAAA,IAAI;IACF,QAAA,OAAO,YAAY,CAAC,OAAO,CAAC,gBAAgB,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,IAAI,EAAE;QAC1E;IAAE,IAAA,OAAA,EAAA,EAAM;IACN,QAAA,OAAO,EAAE;QACX;IACF;IAEA;aACgB,gBAAgB,CAAC,WAAmB,EAAE,MAAe,EAAE,MAAe,EAAA;IACpF,IAAA,IAAI;YACF,IAAI,MAAM,EAAE;IACV,YAAA,YAAY,CAAC,OAAO,CAAC,gBAAgB,CAAC,WAAW,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC;YACrE;iBAAO;gBACL,YAAY,CAAC,UAAU,CAAC,gBAAgB,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;YAChE;QACF;IAAE,IAAA,OAAA,EAAA,EAAM;;QAER;IACF;;IC3gBA,IAAI,YAAY,GAA4B,IAAI;IAEhD;IACA,SAAS,OAAO,CAAC,MAAsB,EAAA;;QAErC,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,YAAY,EAAE,GAAG,CAAC;QACpD,OAAO;AACY,mBAAA,EAAA,MAAM,CAAC,YAAY,CAAA;2BACb,MAAM,CAAA;;;;;AAKP,wBAAA,EAAA,MAAM,CAAC,KAAK,CAAA;GACnC;IACH;IAEA;IACA,SAAS,WAAW,CAAC,GAAW,EAAE,MAAc,EAAA;;QAE9C,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,qDAAqD,CAAC;QAC9E,IAAI,CAAC,KAAK,EAAE;IACV,QAAA,OAAO,GAAG;QACZ;QACA,MAAM,KAAK,GAAG,CAAC,CAAS,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IAC1D,IAAA,MAAM,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,MAAM,CAAC;IAChD,IAAA,MAAM,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,MAAM,CAAC;IAChD,IAAA,MAAM,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,MAAM,CAAC;IAChD,IAAA,OAAO,IAAI,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA,EAAG,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA,EAAG,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE;IAClH;IAEA;IACA,SAAS,SAAS,CAAC,MAAsB,EAAA;QACvC,OAAO;;;IAGL,OAAO,CAAC,MAAM,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkoBlB;IACD;IAEA;;IAEG;IACG,SAAU,YAAY,CAAC,MAAsB,EAAA;;IAEjD,IAAA,IAAI,QAAQ,CAAC,aAAa,CAAC,qBAAqB,CAAC,EAAE;YACjD;QACF;IAEA,IAAA,YAAY,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC;IAC9C,IAAA,YAAY,CAAC,YAAY,CAAC,cAAc,EAAE,EAAE,CAAC;IAC7C,IAAA,YAAY,CAAC,WAAW,GAAG,SAAS,CAAC,MAAM,CAAC;IAC5C,IAAA,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC;IACzC;IAmBA;;IAEG;aACa,YAAY,GAAA;IAC1B,IAAA,IAAI,YAAY,IAAI,YAAY,CAAC,UAAU,EAAE;IAC3C,QAAA,YAAY,CAAC,UAAU,CAAC,WAAW,CAAC,YAAY,CAAC;YACjD,YAAY,GAAG,IAAI;QACrB;;IAEA,IAAA,QAAQ,CAAC,gBAAgB,CAAC,qBAAqB,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,MAAM,EAAE,CAAC;IAC/E;;IC1tBA;;IAEG;IAEH;IASA;aACgB,IAAI,GAAA;QAClB,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,UAAU,EAAE;IACtD,QAAA,OAAO,MAAM,CAAC,UAAU,EAAE;QAC5B;;QAEA,OAAO,sCAAsC,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,KAAI;IACnE,QAAA,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC;IAClC,QAAA,MAAM,CAAC,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,IAAI,GAAG;IACzC,QAAA,OAAO,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC;IACvB,IAAA,CAAC,CAAC;IACJ;IAEA;IACM,SAAU,UAAU,CAAC,IAAY,EAAA;IACrC,IAAA,MAAM,GAAG,GAA2B;IAClC,QAAA,GAAG,EAAE,OAAO;IACZ,QAAA,GAAG,EAAE,MAAM;IACX,QAAA,GAAG,EAAE,MAAM;IACX,QAAA,GAAG,EAAE,QAAQ;IACb,QAAA,GAAG,EAAE,QAAQ;SACd;IACD,IAAA,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;IACxD;IAEA;IACM,SAAU,QAAQ,CACtB,EAAK,EACL,KAAa,EAAA;QAEb,IAAI,KAAK,GAAyC,IAAI;QACtD,OAAO,UAAyB,GAAG,IAAmB,EAAA;IACpD,QAAA,IAAI,KAAK,KAAK,IAAI,EAAE;gBAClB,YAAY,CAAC,KAAK,CAAC;YACrB;IACA,QAAA,KAAK,GAAG,UAAU,CAAC,MAAK;IACtB,YAAA,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC;gBACpB,KAAK,GAAG,IAAI;YACd,CAAC,EAAE,KAAK,CAAC;IACX,IAAA,CAAC;IACH;IAUA;aACgB,GAAG,GAAA;IACjB,IAAA,OAAO,IAAI,CAAC,GAAG,EAAE;IACnB;;ICzDA;IAEA;IACM,SAAU,cAAc,CAAC,MAAsB,EAAE,OAAmB,EAAA;QACxE,MAAM,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC;IAC9C,IAAA,QAAQ,CAAC,EAAE,GAAG,cAAc;IAC5B,IAAA,QAAQ,CAAC,SAAS,GAAG,8BAA8B,MAAM,CAAC,QAAQ,KAAK,aAAa,GAAG,MAAM,GAAG,OAAO,EAAE;QACzG,QAAQ,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC;QAC5C,QAAQ,CAAC,YAAY,CAAC,YAAY,EAAE,MAAM,CAAC,KAAK,CAAC;IACjD,IAAA,QAAQ,CAAC,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC;IACvC,IAAA,QAAQ,CAAC,YAAY,CAAC,UAAU,EAAE,GAAG,CAAC;;IAGtC,IAAA,QAAQ,CAAC,SAAS,GAAG,MAAM,CAAC,YAAY;;QAGxC,MAAM,cAAc,GAAG,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC;IAC7C,IAAA,QAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAE,cAAc,CAAC;;QAGlD,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC,CAAC,KAAI;IACzC,QAAA,IAAI,CAAC,CAAC,GAAG,KAAK,OAAO,IAAI,CAAC,CAAC,GAAG,KAAK,GAAG,EAAE;gBACtC,CAAC,CAAC,cAAc,EAAE;IAClB,YAAA,cAAc,EAAE;YAClB;IACF,IAAA,CAAC,CAAC;IAEF,IAAA,OAAO,QAAQ;IACjB;IAEA;IAEA;IACM,SAAU,gBAAgB,CAAC,MAAsB,EAAA;;QAYrD,MAAM,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC;IAC9C,IAAA,QAAQ,CAAC,EAAE,GAAG,YAAY;IAC1B,IAAA,QAAQ,CAAC,SAAS,GAAG,mCAAmC,MAAM,CAAC,QAAQ,KAAK,aAAa,GAAG,MAAM,GAAG,OAAO,qBAAqB;;QAGjI,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC;IAC5C,IAAA,MAAM,CAAC,SAAS,GAAG,YAAY;QAE/B,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC;IAC9C,IAAA,OAAO,CAAC,SAAS,GAAG,mBAAmB;IACvC,IAAA,OAAO,CAAC,WAAW,GAAG,MAAM,CAAC,KAAK;QAElC,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC;IAC7C,IAAA,OAAO,CAAC,SAAS,GAAG,qBAAqB;;QAGzC,MAAM,UAAU,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC;IACnD,IAAA,UAAU,CAAC,SAAS,GAAG,iBAAiB;QACxC,UAAU,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC,CAAC,eAAe,CAAC,CAAC;IACpD,IAAA,UAAU,CAAC,SAAS,GAAG,CAAA,gQAAA,CAAkQ;;QAGzR,MAAM,WAAW,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC;IACpD,IAAA,WAAW,CAAC,SAAS,GAAG,2CAA2C;QACnE,WAAW,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC;IAChD,IAAA,WAAW,CAAC,SAAS,GAAG,CAAA,iOAAA,CAAmO;IAC3P,IAAA,WAAW,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAK;IACzC,QAAA,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,oBAAoB,CAAC;IAC9C,IAAA,CAAC,CAAC;;QAGF,MAAM,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC;IACjD,IAAA,QAAQ,CAAC,SAAS,GAAG,wCAAwC;QAC7D,QAAQ,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;IAC1C,IAAA,QAAQ,CAAC,SAAS,GAAG,CAAA,qQAAA,CAAuQ;IAC5R,IAAA,QAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAK;IACtC,QAAA,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,oBAAoB,CAAC;IAC9C,IAAA,CAAC,CAAC;IAEF,IAAA,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC;IAC/B,IAAA,OAAO,CAAC,WAAW,CAAC,WAAW,CAAC;IAChC,IAAA,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC;IAC7B,IAAA,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC;IAC3B,IAAA,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC;;QAG3B,MAAM,iBAAiB,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC;IACvD,IAAA,iBAAiB,CAAC,EAAE,GAAG,cAAc;IACrC,IAAA,iBAAiB,CAAC,SAAS,GAAG,cAAc;;QAG5C,MAAM,YAAY,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC;IAClD,IAAA,YAAY,CAAC,SAAS,GAAG,6CAA6C;QACtE,YAAY,CAAC,SAAS,GAAG;;+CAEoB,CAAC,CAAC,eAAe,CAAC,CAAA;;;UAGvD,CAAC,CAAC,OAAO,CAAC;;;;GAIjB;IACD,IAAA,iBAAiB,CAAC,WAAW,CAAC,YAAY,CAAC;;QAG3C,MAAM,OAAO,GAAG,YAAY,CAAC,aAAa,CAAC,mBAAmB,CAAC;QAC/D,IAAI,OAAO,EAAE;IACX,QAAA,OAAO,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAK;IACrC,YAAA,YAAY,CAAC,SAAS,CAAC,GAAG,CAAC,2BAA2B,CAAC;IACzD,QAAA,CAAC,CAAC;QACJ;;QAGA,UAAU,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,CAAC,KAAI;YACzC,CAAC,CAAC,eAAe,EAAE;YACnB,MAAM,QAAQ,GAAG,YAAY,CAAC,SAAS,CAAC,QAAQ,CAAC,2BAA2B,CAAC;IAC7E,QAAA,YAAY,CAAC,SAAS,CAAC,MAAM,CAAC,2BAA2B,CAAC;YAC1D,IAAI,QAAQ,EAAE;;gBAEZ,QAAQ,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,iBAAiB,CAAC,CAAC;YAC5D;IACF,IAAA,CAAC,CAAC;;QAGF,IAAI,cAAc,GAA6B,IAAI;IACnD,IAAA,IAAI,MAAM,CAAC,kBAAkB,EAAE;YAC7B,MAAM,WAAW,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC;IACjD,QAAA,WAAW,CAAC,SAAS,GAAG,kBAAkB;YAE1C,MAAM,aAAa,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC;IACpD,QAAA,aAAa,CAAC,SAAS,GAAG,yBAAyB;IACnD,QAAA,aAAa,CAAC,WAAW,GAAG,IAAI;IAEhC,QAAA,cAAc,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC;IACjD,QAAA,cAAc,CAAC,EAAE,GAAG,qBAAqB;IACzC,QAAA,cAAc,CAAC,SAAS,GAAG,qBAAqB;YAChD,cAAc,CAAC,SAAS,GAAG,CAAA,iBAAA,EAAoB,CAAC,CAAC,cAAc,CAAC,CAAA,SAAA,CAAW;;IAG3E,QAAA,cAAc,CAAC,gBAAgB,CAAC,QAAQ,EAAE,MAAK;IAC7C,YAAA,MAAM,UAAU,GAAG,cAAe,CAAC,KAAK;IACxC,YAAA,QAAQ,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,oBAAoB,EAAE;IAC3D,gBAAA,MAAM,EAAE,EAAE,UAAU,EAAE,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,SAAS;IAClE,aAAA,CAAC,CAAC;IACL,QAAA,CAAC,CAAC;IAEF,QAAA,WAAW,CAAC,WAAW,CAAC,aAAa,CAAC;IACtC,QAAA,WAAW,CAAC,WAAW,CAAC,cAAc,CAAC;;IAGvC,QAAA,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC;IAC5B,QAAA,QAAQ,CAAC,WAAW,CAAC,iBAAiB,CAAC;IACvC,QAAA,QAAQ,CAAC,WAAW,CAAC,WAAW,CAAC;QACnC;aAAO;IACL,QAAA,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC;IAC5B,QAAA,QAAQ,CAAC,WAAW,CAAC,iBAAiB,CAAC;QACzC;;QAGA,MAAM,SAAS,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC;IAC/C,IAAA,SAAS,CAAC,SAAS,GAAG,gBAAgB;QAEtC,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,UAAU,CAAC;IAClD,IAAA,OAAO,CAAC,EAAE,GAAG,WAAW;IACxB,IAAA,OAAO,CAAC,SAAS,GAAG,WAAW;QAC/B,OAAO,CAAC,YAAY,CAAC,aAAa,EAAE,CAAC,CAAC,aAAa,CAAC,CAAC;IACrD,IAAA,OAAO,CAAC,YAAY,CAAC,MAAM,EAAE,GAAG,CAAC;IACjC,IAAA,OAAO,CAAC,YAAY,CAAC,WAAW,EAAE,EAAE,CAAC;QAErC,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC;IAChD,IAAA,OAAO,CAAC,EAAE,GAAG,cAAc;IAC3B,IAAA,OAAO,CAAC,SAAS,GAAG,cAAc;QAClC,OAAO,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;IACxC,IAAA,OAAO,CAAC,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC;IACxC,IAAA,OAAO,CAAC,SAAS,GAAG,CAAA,8QAAA,CAAgR;IAEpS,IAAA,SAAS,CAAC,WAAW,CAAC,OAAO,CAAC;IAC9B,IAAA,SAAS,CAAC,WAAW,CAAC,OAAO,CAAC;IAC9B,IAAA,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC;;QAG/B,IAAI,QAAQ,GAAuB,IAAI;IACvC,IAAA,IAAI,MAAM,CAAC,SAAS,EAAE;IACpB,QAAA,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC;IAC3C,QAAA,QAAQ,CAAC,SAAS,GAAG,eAAe;IACpC,QAAA,QAAQ,CAAC,WAAW,GAAG,CAAC,CAAC,OAAO,CAAC;YACjC,QAAQ,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;;IAEhC,QAAA,QAAQ,CAAC,YAAY,CAAC,QAAQ,EAAE,SAAS,CAAC;QAC5C;;QAGA,IAAI,SAAS,GAAuB,IAAI;IAExC,IAAA,SAAS,WAAW,GAAA;YAClB,IAAI,SAAS,EAAE;IACb,YAAA,SAAS,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM;IAChC,YAAA,OAAO,SAAS;YAClB;YACA,MAAM,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC;IACxC,QAAA,EAAE,CAAC,SAAS,GAAG,aAAa;YAC5B,EAAE,CAAC,SAAS,GAAG;;;;KAId;IACD,QAAA,iBAAiB,CAAC,WAAW,CAAC,EAAE,CAAC;YACjC,SAAS,GAAG,EAAE;IACd,QAAA,OAAO,EAAE;QACX;IAEA,IAAA,SAAS,WAAW,GAAA;IAClB,QAAA,IAAI,SAAS,IAAI,SAAS,CAAC,UAAU,EAAE;IACrC,YAAA,SAAS,CAAC,UAAU,CAAC,WAAW,CAAC,SAAS,CAAC;gBAC3C,SAAS,GAAG,IAAI;YAClB;QACF;QAEA,OAAO;IACL,QAAA,MAAM,EAAE,QAAQ;YAChB,iBAAiB;YACjB,OAAO;YACP,OAAO;YACP,QAAQ;YACR,cAAc;YACd,YAAY;YACZ,WAAW;YACX,WAAW;SACZ;IACH;IAEA;IAEA;IACM,SAAU,UAAU,CAAC,QAAqB,EAAE,QAAqB,EAAA;QACrE,IAAI,QAAQ,GAAG,KAAK;QACpB,IAAI,MAAM,GAAG,CAAC;QACd,IAAI,MAAM,GAAG,CAAC;QACd,IAAI,OAAO,GAAG,CAAC;QACf,IAAI,OAAO,GAAG,CAAC;IAEf,IAAA,MAAM,WAAW,GAAG,CAAC,CAAa,KAAI;YACpC,QAAQ,GAAG,IAAI;IACf,QAAA,MAAM,GAAG,CAAC,CAAC,OAAO;IAClB,QAAA,MAAM,GAAG,CAAC,CAAC,OAAO;IAClB,QAAA,MAAM,IAAI,GAAG,QAAQ,CAAC,qBAAqB,EAAE;IAC7C,QAAA,OAAO,GAAG,MAAM,GAAG,IAAI,CAAC,IAAI;IAC5B,QAAA,OAAO,GAAG,MAAM,GAAG,IAAI,CAAC,GAAG;IAC3B,QAAA,QAAQ,CAAC,gBAAgB,CAAC,WAAW,EAAE,WAAW,CAAC;IACnD,QAAA,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,SAAS,CAAC;IACjD,IAAA,CAAC;IAED,IAAA,MAAM,WAAW,GAAG,CAAC,CAAa,KAAI;IACpC,QAAA,IAAI,CAAC,QAAQ;gBAAE;IACf,QAAA,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,GAAG,OAAO;IAC7B,QAAA,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,GAAG,OAAO;;YAE7B,MAAM,IAAI,GAAG,MAAM,CAAC,UAAU,GAAG,QAAQ,CAAC,WAAW;YACrD,MAAM,IAAI,GAAG,MAAM,CAAC,WAAW,GAAG,QAAQ,CAAC,YAAY;IACvD,QAAA,QAAQ,CAAC,KAAK,CAAC,KAAK,GAAG,MAAM;IAC7B,QAAA,QAAQ,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM;YAC9B,QAAQ,CAAC,KAAK,CAAC,IAAI,GAAG,CAAA,EAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAA,EAAA,CAAI;YAC3D,QAAQ,CAAC,KAAK,CAAC,GAAG,GAAG,CAAA,EAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAA,EAAA,CAAI;IAC5D,IAAA,CAAC;QAED,MAAM,SAAS,GAAG,MAAK;YACrB,QAAQ,GAAG,KAAK;IAChB,QAAA,QAAQ,CAAC,mBAAmB,CAAC,WAAW,EAAE,WAAW,CAAC;IACtD,QAAA,QAAQ,CAAC,mBAAmB,CAAC,SAAS,EAAE,SAAS,CAAC;IACpD,IAAA,CAAC;IAED,IAAA,QAAQ,CAAC,gBAAgB,CAAC,WAAW,EAAE,WAAW,CAAC;;IAGnD,IAAA,OAAO,MAAK;IACV,QAAA,QAAQ,CAAC,mBAAmB,CAAC,WAAW,EAAE,WAAW,CAAC;IACtD,QAAA,QAAQ,CAAC,mBAAmB,CAAC,WAAW,EAAE,WAAW,CAAC;IACtD,QAAA,QAAQ,CAAC,mBAAmB,CAAC,SAAS,EAAE,SAAS,CAAC;IACpD,IAAA,CAAC;IACH;IAEA;IAEA;aACgB,gBAAgB,CAAC,SAAsB,EAAE,IAAY,EAAE,SAAiB,EAAA;QACtF,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC;IAC7C,IAAA,OAAO,CAAC,SAAS,GAAG,uBAAuB;QAE3C,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC;IAC5C,IAAA,MAAM,CAAC,SAAS,GAAG,iBAAiB;IACpC,IAAA,MAAM,CAAC,WAAW,GAAG,IAAI;QAEzB,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC;IAC1C,IAAA,IAAI,CAAC,SAAS,GAAG,eAAe;IAChC,IAAA,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC,SAAS,CAAC;IAExC,IAAA,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC;IAC3B,IAAA,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC;IACzB,IAAA,SAAS,CAAC,WAAW,CAAC,OAAO,CAAC;IAE9B,IAAA,OAAO,OAAO;IAChB;IAEA;IACM,SAAU,cAAc,CAAC,SAAsB,EAAE,IAAY,EAAE,SAAiB,EAAE,QAAmC,EAAA;QACzH,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC;IAC7C,IAAA,OAAO,CAAC,SAAS,GAAG,qBAAqB;QAEzC,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC;IAC5C,IAAA,MAAM,CAAC,SAAS,GAAG,iBAAiB;;QAEpC,IAAI,QAAQ,EAAE;IACZ,QAAA,MAAM,CAAC,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC;QACnC;aAAO;IACL,QAAA,MAAM,CAAC,WAAW,GAAG,IAAI;QAC3B;QAEA,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC;IAC1C,IAAA,IAAI,CAAC,SAAS,GAAG,eAAe;IAChC,IAAA,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC,SAAS,CAAC;IAExC,IAAA,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC;IAC3B,IAAA,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC;IACzB,IAAA,SAAS,CAAC,WAAW,CAAC,OAAO,CAAC;IAE9B,IAAA,OAAO,OAAO;IAChB;IAEA;IACM,SAAU,mBAAmB,CAAC,SAAsB,EAAE,SAAiB,EAAA;QAC3E,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC;IAC7C,IAAA,OAAO,CAAC,SAAS,GAAG,qBAAqB;QAEzC,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC;IAC5C,IAAA,MAAM,CAAC,SAAS,GAAG,iBAAiB;IACpC,IAAA,MAAM,CAAC,SAAS,GAAG,EAAE;QAErB,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC;IAC1C,IAAA,IAAI,CAAC,SAAS,GAAG,eAAe;IAChC,IAAA,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC,SAAS,CAAC;IAExC,IAAA,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC;IAC3B,IAAA,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC;IACzB,IAAA,SAAS,CAAC,WAAW,CAAC,OAAO,CAAC;IAE9B,IAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE;IAC5B;IAEA;IAEA;IACM,SAAU,aAAa,CAAC,OAAoB,EAAE,OAAoB,EAAA;;QAEtE,MAAM,QAAQ,GAAG,OAAO,CAAC,aAAa,CAAC,cAAc,CAAC;IACtD,IAAA,IAAI,QAAQ;YAAE,QAAQ,CAAC,MAAM,EAAE;IAE/B,IAAA,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE;QAEtC,MAAM,SAAS,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC;IAC/C,IAAA,SAAS,CAAC,SAAS,GAAG,oCAAoC;;QAG1D,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC;IAC5C,IAAA,MAAM,CAAC,SAAS,GAAG,qBAAqB;QAExC,MAAM,SAAS,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC;IAChD,IAAA,SAAS,CAAC,SAAS,GAAG,oBAAoB;IAC1C,IAAA,SAAS,CAAC,WAAW,GAAG,CAAA,GAAA,EAAM,CAAC,CAAC,cAAc,EAAE,EAAE,CAAC,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE;QAExE,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC;IAC5C,IAAA,KAAK,CAAC,SAAS,GAAG,oBAAoB;IACtC,IAAA,KAAK,CAAC,WAAW,GAAG,GAAG;IAEvB,IAAA,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC;IAC7B,IAAA,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC;;IAGzB,IAAA,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAK;IACpC,QAAA,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,wBAAwB,CAAC;IACtD,IAAA,CAAC,CAAC;;QAGF,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC;IAC1C,IAAA,IAAI,CAAC,SAAS,GAAG,mBAAmB;IAEpC,IAAA,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE;YACzB,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC;IAC1C,QAAA,IAAI,CAAC,SAAS,GAAG,iBAAiB;YAElC,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC;IAC1C,QAAA,IAAI,CAAC,SAAS,GAAG,uBAAuB;IACxC,QAAA,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,UAAU,IAAI,MAAM;IAExD,QAAA,IAAI,GAAG,CAAC,OAAO,EAAE;gBACf,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC;IAC7C,YAAA,OAAO,CAAC,SAAS,GAAG,0BAA0B;IAC9C,YAAA,OAAO,CAAC,WAAW,GAAG,GAAG,CAAC,OAAO;IACjC,YAAA,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC;YAC3B;YAEA,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC;IAC1C,QAAA,IAAI,CAAC,SAAS,GAAG,uBAAuB;YACxC,MAAM,SAAS,GAAa,EAAE;YAC9B,IAAI,GAAG,CAAC,UAAU;IAAE,YAAA,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC;IAClD,QAAA,IAAI,GAAG,CAAC,UAAU,KAAK,SAAS;gBAAE,SAAS,CAAC,IAAI,CAAC,CAAA,IAAA,EAAO,GAAG,CAAC,UAAU,CAAA,CAAE,CAAC;IACzE,QAAA,IAAI,GAAG,CAAC,KAAK,KAAK,SAAS;IAAE,YAAA,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,CAAA,CAAA,CAAG,CAAC;YACnF,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC;IAExC,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;IACtB,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;IACtB,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;QACxB;IAEA,IAAA,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC;IAC7B,IAAA,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC;;QAG3B,MAAM,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,gBAAgB,CAAC;QACtD,IAAI,MAAM,EAAE;IACV,QAAA,OAAO,CAAC,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC;QACzC;aAAO;IACL,QAAA,OAAO,CAAC,WAAW,CAAC,SAAS,CAAC;QAChC;IACF;IAcA;IACM,SAAU,iBAAiB,CAC/B,MAAmB,EACnB,KAAwB,EACxB,QAA0C,EAC1C,QAA8B,EAC9B,QAA8B,EAC9B,YAAqB,EACrB,SAAkB,EAAA;IAElB,IAAA,MAAM,CAAC,SAAS,GAAG,EAAE;IAErB,IAAA,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;YACtB,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC;IAC3C,QAAA,KAAK,CAAC,SAAS,GAAG,0BAA0B;YAC5C,KAAK,CAAC,SAAS,GAAG;;AAET,WAAA,EAAa,CAAC,CAAC,eAAe,CAAC,CAAA;KACvC;IACD,QAAA,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC;YACzB;QACF;IAEA,IAAA,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;YACxB,MAAM,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC;IACxC,QAAA,EAAE,CAAC,SAAS,GAAG,kBAAkB;;YAEjC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,EAAE;IACrC,QAAA,IAAI,YAAY,IAAI,MAAM,KAAK,YAAY,EAAE;IAC3C,YAAA,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,0BAA0B,CAAC;YAC9C;YAEA,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC;IAC1C,QAAA,IAAI,CAAC,SAAS,GAAG,wBAAwB;YAEzC,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC;IAC1C,QAAA,IAAI,CAAC,SAAS,GAAG,sBAAsB;;IAEvC,QAAA,IAAI,IAAI,CAAC,kBAAkB,EAAE;gBAC3B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,GAAG;IAClD,kBAAE,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG;IAC7C,kBAAE,IAAI,CAAC,kBAAkB;YAC7B;iBAAO;IACL,YAAA,IAAI,CAAC,WAAW,GAAG,MAAM;YAC3B;YAEA,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC;IAC5C,QAAA,MAAM,CAAC,SAAS,GAAG,wBAAwB;YAC3C,MAAM,SAAS,GAAa,EAAE;IAC9B,QAAA,IAAI,IAAI,CAAC,YAAY,KAAK,SAAS;gBAAE,SAAS,CAAC,IAAI,CAAC,CAAA,EAAG,IAAI,CAAC,YAAY,CAAA,IAAA,CAAM,CAAC;YAC/E,IAAI,IAAI,CAAC,eAAe;IAAE,YAAA,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC;iBACzD,IAAI,IAAI,CAAC,SAAS;IAAE,YAAA,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;YACvD,MAAM,CAAC,WAAW,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC;IAE1C,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;IACtB,QAAA,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;YAExB,MAAM,SAAS,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC;IAC/C,QAAA,SAAS,CAAC,SAAS,GAAG,2BAA2B;;YAGjD,MAAM,SAAS,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC;IAClD,QAAA,SAAS,CAAC,SAAS,GAAG,+CAA+C;YACrE,SAAS,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC,CAAC,gBAAgB,CAAC,CAAC;IACpD,QAAA,SAAS,CAAC,SAAS,GAAG,CAAA,2TAAA,CAA6T;YACnV,SAAS,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,CAAC,KAAI;gBACxC,CAAC,CAAC,eAAe,EAAE;IACnB,YAAA,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;IACnB,QAAA,CAAC,CAAC;;YAGF,MAAM,SAAS,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC;IAClD,QAAA,SAAS,CAAC,SAAS,GAAG,+CAA+C;YACrE,SAAS,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC,CAAC,gBAAgB,CAAC,CAAC;IACpD,QAAA,SAAS,CAAC,SAAS,GAAG,CAAA,sTAAA,CAAwT;YAC9U,SAAS,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,CAAC,KAAI;gBACxC,CAAC,CAAC,eAAe,EAAE;IACnB,YAAA,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;IACnB,QAAA,CAAC,CAAC;IAEF,QAAA,SAAS,CAAC,WAAW,CAAC,SAAS,CAAC;IAChC,QAAA,SAAS,CAAC,WAAW,CAAC,SAAS,CAAC;IAEhC,QAAA,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC;IACpB,QAAA,EAAE,CAAC,WAAW,CAAC,SAAS,CAAC;;IAGzB,QAAA,EAAE,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAK;gBAChC,QAAQ,CAAC,MAAM,CAAC;IAClB,QAAA,CAAC,CAAC;IAEF,QAAA,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC;QACxB;IACF;IAEA;IACM,SAAU,cAAc,CAAC,SAAsB,EAAA;IACnD,IAAA,SAAS,CAAC,SAAS,GAAG,SAAS,CAAC,YAAY;IAC9C;IAEA;IACA,SAAS,UAAU,CAAC,SAAiB,EAAA;IACnC,IAAA,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC;IAC7B,IAAA,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;IAChD,IAAA,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;IAClD,IAAA,OAAO,CAAA,EAAG,EAAE,CAAA,CAAA,EAAI,EAAE,EAAE;IACtB;;ICxiBA,MAAM,cAAc,GAAG,cAAc;IACrC,MAAM,YAAY,GAAG,GAAG;IACxB,MAAM,UAAU,GAAG,EAAE;IAErB;IACA,SAAS,UAAU,CAAC,WAAmB,EAAA;IACrC,IAAA,OAAO,CAAA,EAAG,cAAc,CAAA,EAAG,WAAW,EAAE;IAC1C;IAEA;;IAEG;IACG,SAAU,YAAY,CAAC,WAAmB,EAAE,QAAuB,EAAA;IACvE,IAAA,IAAI;;YAEF,IAAI,OAAO,GAAG,QAAQ;IACtB,QAAA,IAAI,OAAO,CAAC,MAAM,GAAG,YAAY,EAAE;IACjC,YAAA,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC;gBACnC,MAAM,CAAC,IAAI,CAAC,CAAA,eAAA,EAAkB,UAAU,CAAA,MAAA,EAAS,OAAO,CAAC,MAAM,CAAA,EAAA,CAAI,CAAC;YACtE;IAEA,QAAA,MAAM,IAAI,GAAc;IACtB,YAAA,QAAQ,EAAE,OAAO;IACjB,YAAA,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;aACtB;IACD,QAAA,YAAY,CAAC,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACrE;QAAE,OAAO,CAAC,EAAE;YACV,IAAI,CAAC,YAAY,KAAK,IAAI,CAAC,CAAC,IAAI,KAAK,oBAAoB,EAAE;IACzD,YAAA,MAAM,CAAC,KAAK,CAAC,sCAAsC,CAAC;YACtD;iBAAO;IACL,YAAA,MAAM,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC;YAC7B;QACF;IACF;IAEA;;IAEG;IACG,SAAU,YAAY,CAAC,WAAmB,EAAA;IAC9C,IAAA,IAAI;YACF,MAAM,GAAG,GAAG,YAAY,CAAC,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;YACzD,IAAI,CAAC,GAAG,EAAE;IACR,YAAA,OAAO,EAAE;YACX;YACA,MAAM,IAAI,GAAc,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;IACvC,QAAA,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;IAC1C,YAAA,OAAO,EAAE;YACX;IACA,QAAA,MAAM,CAAC,IAAI,CAAC,CAAA,mBAAA,EAAsB,WAAW,CAAA,OAAA,EAAU,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAA,CAAE,CAAC;YAC9E,OAAO,IAAI,CAAC,QAAQ;QACtB;QAAE,OAAO,CAAC,EAAE;IACV,QAAA,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;IAC1B,QAAA,OAAO,EAAE;QACX;IACF;IAEA;;IAEG;IACG,SAAU,aAAa,CAAC,WAAmB,EAAA;IAC/C,IAAA,IAAI;YACF,YAAY,CAAC,UAAU,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;QAClD;QAAE,OAAO,CAAC,EAAE;IACV,QAAA,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;QAC5B;IACF;;ICvEA;;;;;IAKG;IAGH;IACA,MAAM,iBAAiB,GAAG,gBAAgB;IAE1C;IACA,MAAM,kBAAkB,GAAG,iBAAiB;IAE5C;;;;IAIG;IACG,SAAU,cAAc,CAAC,IAAY,EAAA;IACzC,IAAA,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ;IAAE,QAAA,OAAO,EAAE;;QAGhD,MAAM,UAAU,GAAa,EAAE;QAC/B,IAAI,SAAS,GAAG,IAAI;;IAGpB,IAAA,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,0BAA0B,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,KAAI;IAC/E,QAAA,MAAM,GAAG,GAAG,UAAU,CAAC,MAAM;YAC7B,MAAM,WAAW,GAAG,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;IAC9C,QAAA,MAAM,SAAS,GAAG,IAAI,GAAG,CAAA,iBAAA,EAAoB,UAAU,CAAC,IAAI,CAAC,CAAA,CAAA,CAAG,GAAG,EAAE;YACrE,UAAU,CAAC,IAAI,CAAC,CAAA,oCAAA,EAAuC,SAAS,CAAA,CAAA,EAAI,WAAW,CAAA,aAAA,CAAe,CAAC;IAC/F,QAAA,OAAO,CAAA,EAAG,iBAAiB,CAAA,EAAG,GAAG,MAAM;IACzC,IAAA,CAAC,CAAC;;QAGF,MAAM,WAAW,GAAa,EAAE;IAChC,IAAA,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC,MAAM,EAAE,IAAI,KAAI;IAC7D,QAAA,MAAM,GAAG,GAAG,WAAW,CAAC,MAAM;YAC9B,WAAW,CAAC,IAAI,CAAC,CAAA,iCAAA,EAAoC,UAAU,CAAC,IAAI,CAAC,CAAA,OAAA,CAAS,CAAC;IAC/E,QAAA,OAAO,CAAA,EAAG,kBAAkB,CAAA,EAAG,GAAG,MAAM;IAC1C,IAAA,CAAC,CAAC;;IAGF,IAAA,SAAS,GAAG,UAAU,CAAC,SAAS,CAAC;;QAGjC,SAAS,GAAG,mBAAmB,CAAC,SAAS,EAAE,iBAAiB,EAAE,UAAU,CAAC;QACzE,SAAS,GAAG,mBAAmB,CAAC,SAAS,EAAE,kBAAkB,EAAE,WAAW,CAAC;;QAG3E,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC;QACnC,MAAM,MAAM,GAAa,EAAE;QAC3B,IAAI,MAAM,GAAG,KAAK;IAClB,IAAA,IAAI,QAAQ,GAAG,EAAE,CAAC;QAClB,IAAI,YAAY,GAAG,KAAK;QACxB,IAAI,eAAe,GAAa,EAAE;IAElC,IAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;IACrC,QAAA,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC;;IAGrB,QAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,iCAAiC,CAAC,EAAE;IACxF,YAAA,cAAc,EAAE;IAChB,YAAA,SAAS,EAAE;IACX,YAAA,eAAe,EAAE;IACjB,YAAA,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;gBACjB;YACF;;YAGA,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC;YACnD,IAAI,YAAY,EAAE;IAChB,YAAA,cAAc,EAAE;IAChB,YAAA,SAAS,EAAE;IACX,YAAA,eAAe,EAAE;gBACjB,MAAM,KAAK,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,MAAM;IACpC,YAAA,MAAM,CAAC,IAAI,CAAC,CAAA,EAAA,EAAK,KAAK,mBAAmB,KAAK,CAAA,EAAA,EAAK,YAAY,CAAC,CAAC,CAAC,CAAA,GAAA,EAAM,KAAK,CAAA,CAAA,CAAG,CAAC;gBACjF;YACF;;YAGA,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC;YAC7C,IAAI,UAAU,EAAE;IACd,YAAA,cAAc,EAAE;IAChB,YAAA,SAAS,EAAE;gBACX,IAAI,CAAC,YAAY,EAAE;oBACjB,YAAY,GAAG,IAAI;IACnB,gBAAA,MAAM,CAAC,IAAI,CAAC,wCAAwC,CAAC;gBACvD;IACA,YAAA,MAAM,CAAC,IAAI,CAAC,CAAA,GAAA,EAAM,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAA,IAAA,CAAM,CAAC;gBACpD;YACF;iBAAO,IAAI,YAAY,EAAE;IACvB,YAAA,eAAe,EAAE;YACnB;;YAGA,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC;YAC5C,IAAI,OAAO,EAAE;IACX,YAAA,cAAc,EAAE;IAChB,YAAA,eAAe,EAAE;IACjB,YAAA,IAAI,CAAC,MAAM,IAAI,QAAQ,KAAK,IAAI,EAAE;IAChC,gBAAA,SAAS,EAAE;oBACX,MAAM,GAAG,IAAI;oBACb,QAAQ,GAAG,IAAI;IACf,gBAAA,MAAM,CAAC,IAAI,CAAC,wBAAwB,CAAC;gBACvC;IACA,YAAA,MAAM,CAAC,IAAI,CAAC,CAAA,IAAA,EAAO,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAA,KAAA,CAAO,CAAC;gBACnD;YACF;;YAGA,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC;YAC3C,IAAI,OAAO,EAAE;IACX,YAAA,cAAc,EAAE;IAChB,YAAA,eAAe,EAAE;IACjB,YAAA,IAAI,CAAC,MAAM,IAAI,QAAQ,KAAK,IAAI,EAAE;IAChC,gBAAA,SAAS,EAAE;oBACX,MAAM,GAAG,IAAI;oBACb,QAAQ,GAAG,IAAI;IACf,gBAAA,MAAM,CAAC,IAAI,CAAC,wBAAwB,CAAC;gBACvC;IACA,YAAA,MAAM,CAAC,IAAI,CAAC,CAAA,IAAA,EAAO,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAA,KAAA,CAAO,CAAC;gBACnD;YACF;;IAGA,QAAA,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;IACtB,YAAA,cAAc,EAAE;IAChB,YAAA,SAAS,EAAE;gBACX;YACF;;YAGA,IAAI,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE;IAC9C,YAAA,cAAc,EAAE;IAChB,YAAA,SAAS,EAAE;IACX,YAAA,eAAe,EAAE;IACjB,YAAA,MAAM,CAAC,IAAI,CAAC,wBAAwB,CAAC;gBACrC;YACF;;IAGA,QAAA,SAAS,EAAE;IACX,QAAA,eAAe,EAAE;YACjB,eAAe,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QAC1C;IAEA,IAAA,cAAc,EAAE;IAChB,IAAA,SAAS,EAAE;IACX,IAAA,eAAe,EAAE;IAEjB,IAAA,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;;;QAKxB,SAAS,YAAY,CAAC,IAAY,EAAA;;YAEhC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,qBAAqB,CAAC;YAC5D,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,qBAAqB,CAAC;;YAExD,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,aAAa,CAAC;YAChD,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,uBAAuB,EAAE,aAAa,CAAC;;YAE3D,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,eAAe,CAAC;;IAElD,QAAA,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,0BAA0B,EAAE,CAAC,EAAE,EAAE,QAAQ,EAAE,GAAG,KAAI;;IAEpE,YAAA,MAAM,OAAO,GAAG,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG;IACrD,YAAA,OAAO,CAAA,6BAAA,EAAgC,OAAO,CAAA,4CAAA,EAA+C,QAAQ,MAAM;IAC7G,QAAA,CAAC,CAAC;IACF,QAAA,OAAO,IAAI;QACb;;IAGA,IAAA,SAAS,cAAc,GAAA;IACrB,QAAA,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE;IAC9B,YAAA,MAAM,CAAC,IAAI,CAAC,CAAA,oBAAA,EAAuB,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA,IAAA,CAAM,CAAC;gBACtE,eAAe,GAAG,EAAE;YACtB;QACF;;IAGA,IAAA,SAAS,SAAS,GAAA;YAChB,IAAI,MAAM,EAAE;IACV,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,KAAK,IAAI,GAAG,OAAO,GAAG,OAAO,CAAC;gBAClD,MAAM,GAAG,KAAK;gBACd,QAAQ,GAAG,EAAE;YACf;QACF;;IAGA,IAAA,SAAS,eAAe,GAAA;YACtB,IAAI,YAAY,EAAE;IAChB,YAAA,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC;gBAC5B,YAAY,GAAG,KAAK;YACtB;QACF;IACF;IAEA;IACA,SAAS,mBAAmB,CAAC,IAAY,EAAE,MAAc,EAAE,YAAsB,EAAA;QAC/E,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,YAAY,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,KAAI;YACnF,OAAO,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE;IAC1C,IAAA,CAAC,CAAC;IACJ;IAEA;IACA,SAAS,WAAW,CAAC,GAAW,EAAA;QAC9B,OAAO,GAAG,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC;IACnD;;IC5KA,IAAIA,QAAM,GAA0B,IAAI;IACxC,IAAI,QAAQ,GAAkB,EAAE;IAChC,IAAIC,mBAAiB,GAAuB,IAAI;IAChD,IAAIC,SAAO,GAA+B,IAAI;IAC9C,IAAIC,SAAO,GAAuB,IAAI;IACtC,IAAIC,UAAQ,GAAuB,IAAI;IACvC,IAAIC,gBAAc,GAA6B,IAAI;IACnD,IAAIC,cAAY,GAAuB,IAAI;IAC3C,IAAIC,eAAa,GAA+B,IAAI;IACpD,IAAIC,eAAa,GAAwB,IAAI;IAC7C,IAAI,SAAS,GAAG,KAAK;IAErB;IACA,IAAI,iBAAqC;IAEzC;IACA,IAAI,MAAM,GAAG,KAAK;IAElB;;IAEG;IACG,SAAU,QAAQ,CACtB,GAAmB,EACnB,GASC,EAAA;QAEDR,QAAM,GAAG,GAAG;IACZ,IAAAC,mBAAiB,GAAG,GAAG,CAAC,iBAAiB;IACzC,IAAAC,SAAO,GAAG,GAAG,CAAC,OAAO;IACrB,IAAAC,SAAO,GAAG,GAAG,CAAC,OAAO;IACrB,IAAAC,UAAQ,GAAG,GAAG,CAAC,QAAQ;IACvB,IAAAC,gBAAc,GAAG,GAAG,CAAC,cAAc;IACnC,IAAAC,cAAY,GAAG,GAAG,CAAC,YAAY;IAC/B,IAAAC,eAAa,GAAG,GAAG,CAAC,WAAW;IAC/B,IAAAC,eAAa,GAAG,GAAG,CAAC,WAAW;;IAG/B,IAAA,iBAAiB,GAAG,GAAG,CAAC,UAAU;IAClC,IAAA,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,UAAU,IAAI,CAAC,CAAC,GAAG,CAAC,kBAAkB;;IAGrD,IAAA,cAAc,EAAE;;IAGhB,IAAA,IAAI,GAAG,CAAC,kBAAkB,IAAIH,gBAAc,EAAE;IAC5C,QAAA,cAAc,EAAE;QAClB;IACF;IAEA;;;IAGG;IACI,eAAe,eAAe,GAAA;IACnC,IAAA,IAAI,CAACL,QAAM,IAAI,CAACC,mBAAiB;YAAE;;QAGnC,MAAM,UAAU,EAAE;;QAGlB,MAAM,sBAAsB,EAAE;;IAG9B,IAAA,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;YACzB,MAAM,MAAM,GAAG,YAAY,CAACD,QAAM,CAAC,WAAW,CAAC;IAC/C,QAAA,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;gBACrB,QAAQ,GAAG,MAAM;IACjB,YAAA,aAAa,EAAE;gBACf,MAAM,CAAC,IAAI,CAAC,CAAA,QAAA,EAAW,MAAM,CAAC,MAAM,CAAA,IAAA,CAAM,CAAC;YAC7C;QACF;IACF;IAEA;;IAEG;IACH,eAAe,sBAAsB,GAAA;IACnC,IAAA,IAAI,CAACA,QAAM,IAAI,CAACC,mBAAiB;YAAE;IAEnC,IAAA,MAAM,MAAM,GAAG,SAAS,EAAE;IAC1B,IAAA,IAAI,CAAC,MAAM;YAAE;IAEb,IAAA,IAAI;IACF,QAAA,MAAM,MAAM,GAAG,MAAM,yBAAyB,CAAC,MAAM,CAAC;YACtD,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;;IAE9B,YAAA,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,MAAM;oBAC5C,EAAE,EAAE,IAAI,EAAE;IACV,gBAAA,IAAI,EAAE,GAAG,CAAC,WAAW,KAAK,MAAM,GAAG,MAAM,GAAG,IAAa;oBACzD,OAAO,EAAE,GAAG,CAAC,OAAO;oBACpB,SAAS,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,OAAO,EAAE;IAC9C,aAAA,CAAC,CAAC;IAEH,YAAA,aAAa,EAAE;gBACf,MAAM,CAAC,IAAI,CAAC,CAAA,MAAA,EAAS,QAAQ,CAAC,MAAM,CAAA,MAAA,CAAQ,CAAC;;IAG7C,YAAA,YAAY,CAACD,QAAM,CAAC,WAAW,EAAE,QAAQ,CAAC;YAC5C;QACF;QAAE,OAAO,GAAG,EAAE;IACZ,QAAA,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,GAAG,CAAC;QACjC;IACF;IAEA;IACA,SAAS,cAAc,GAAA;IACrB,IAAA,IAAI,CAACE,SAAO,IAAI,CAACC,SAAO;YAAE;QAE1BA,SAAO,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM,UAAU,EAAE,CAAC;QAErDD,SAAO,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC,CAAgB,KAAI;YACvD,IAAI,CAAC,CAAC,GAAG,KAAK,OAAO,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE;gBACpC,CAAC,CAAC,cAAc,EAAE;IAClB,YAAA,UAAU,EAAE;YACd;IACF,IAAA,CAAC,CAAC;QAEFA,SAAO,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM,kBAAkB,EAAE,CAAC;QAE7D,IAAIE,UAAQ,EAAE;YACZA,UAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM,WAAW,EAAE,CAAC;QACzD;IACF;IAEA;IACA,SAAS,kBAAkB,GAAA;IACzB,IAAA,IAAI,CAACD,SAAO,IAAI,CAACD,SAAO;YAAE;IAC1B,IAAA,MAAM,OAAO,GAAGA,SAAO,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC;IAC/C,IAAA,IAAI,OAAO,IAAI,CAAC,SAAS,EAAE;IACzB,QAAAC,SAAO,CAAC,eAAe,CAAC,UAAU,CAAC;QACrC;aAAO;IACL,QAAAA,SAAO,CAAC,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC;QAC1C;IACF;IAEA;IACA,eAAe,UAAU,GAAA;IACvB,IAAA,IAAI,CAACD,SAAO,IAAI,CAACF,QAAM,IAAI,SAAS;YAAE;QAEtC,MAAM,IAAI,GAAGE,SAAO,CAAC,KAAK,CAAC,IAAI,EAAE;QACjC,IAAI,IAAI,KAAK,EAAE;YAAE;IAEjB,IAAAA,SAAO,CAAC,KAAK,GAAG,EAAE;IAClB,IAAA,kBAAkB,EAAE;IACpB,IAAAA,SAAO,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM;QAE7B,SAAS,GAAG,IAAI;IAChB,IAAA,kBAAkB,EAAE;;IAGpB,IAAA,IAAI,CAACF,QAAM,CAAC,MAAM,EAAE;YAClB,MAAM,UAAU,EAAE;QACpB;;IAGA,IAAA,MAAM,aAAa,GAAG,GAAG,EAAE;IAC3B,IAAA,IAAIC,mBAAiB;IAAE,QAAA,gBAAgB,CAACA,mBAAiB,EAAE,IAAI,EAAE,aAAa,CAAC;QAC/E,MAAM,OAAO,GAAgB,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,aAAa,EAAE;IAClG,IAAA,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC;IAEtB,IAAA,IAAIG,UAAQ,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC;IAAE,QAAAA,UAAQ,CAAC,KAAK,CAAC,OAAO,GAAG,aAAa;IAC3E,IAAA,IAAIH,mBAAiB;YAAE,cAAc,CAACA,mBAAiB,CAAC;;IAGxD,IAAA,IAAIM,eAAa;IAAE,QAAAA,eAAa,EAAE;IAClC,IAAA,IAAIN,mBAAiB;YAAE,cAAc,CAACA,mBAAiB,CAAC;;IAGxD,IAAA,IAAI;IACF,QAAA,IAAI,SAAiB;IACrB,QAAA,MAAM,WAAW,GAAG,GAAG,EAAE;IACzB,QAAA,MAAM,YAAY,GAAG,MAAM,KAAK,iBAAiB,KAAK,SAAS,IAAID,QAAM,CAAC,UAAU,KAAK,SAAS,CAAC;IAEnG,QAAA,IAAIA,QAAM,CAAC,SAAS,EAAE;gBACpB,SAAS,GAAG,MAAM,iBAAiB,CAAC,IAAI,EAAE,WAAW,EAAE,YAAY,CAAC;YACtE;iBAAO;IACL,YAAA,SAAS,GAAG,MAAM,WAAW,CAAC,IAAI,CAAC;YACrC;IAEA,QAAA,IAAIQ,eAAa;IAAE,YAAAA,eAAa,EAAE;IAElC,QAAA,IAAI,CAACR,QAAM,CAAC,SAAS,IAAIC,mBAAiB,EAAE;gBAC1C,cAAc,CAACA,mBAAiB,EAAE,SAAS,EAAE,WAAW,EAAE,cAAc,CAAC;YAC3E;YACA,MAAM,KAAK,GAAgB,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE;IACjG,QAAA,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;IAEpB,QAAA,YAAY,CAACD,QAAM,CAAC,WAAW,EAAE,QAAQ,CAAC;IAC1C,QAAA,IAAIC,mBAAiB;gBAAE,cAAc,CAACA,mBAAiB,CAAC;;IAGxD,QAAA,IAAI,YAAY;IAAE,YAAA,qBAAqB,CAAC,IAAI,EAAE,KAAK,CAAC;QACtD;QAAE,OAAO,GAAG,EAAE;IACZ,QAAA,IAAIO,eAAa;IAAE,YAAAA,eAAa,EAAE;IAElC,QAAA,MAAM,MAAM,GAAG,GAAG,YAAY,QAAQ,GAAG,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC,YAAY,CAAC;YACtE,IAAIP,mBAAiB,EAAE;gBACrB,MAAM,WAAW,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC;IACjD,YAAA,WAAW,CAAC,SAAS,GAAG,qBAAqB;gBAC7C,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC;IAC5C,YAAA,MAAM,CAAC,SAAS,GAAG,iBAAiB;IACpC,YAAA,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG,SAAS;IAC9B,YAAA,MAAM,CAAC,WAAW,GAAG,CAAA,EAAA,EAAK,MAAM,EAAE;IAClC,YAAA,WAAW,CAAC,WAAW,CAAC,MAAM,CAAC;IAC/B,YAAAA,mBAAiB,CAAC,WAAW,CAAC,WAAW,CAAC;YAC5C;YACA,MAAM,CAAC,KAAK,CAAC,CAAA,iBAAA,EAAoBD,QAAM,CAAC,WAAW,CAAA,CAAE,EAAE,GAAG,CAAC;QAC7D;gBAAU;YACR,SAAS,GAAG,KAAK;IACjB,QAAA,kBAAkB,EAAE;QACtB;IACF;IAEA;IACA,eAAe,iBAAiB,CAAC,IAAY,EAAE,WAAmB,EAAE,YAAqB,EAAA;QACvF,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,KAAI;YACrC,IAAI,QAAQ,GAAuB,IAAI;YACvC,IAAI,WAAW,GAAG,EAAE;YACpB,IAAI,aAAa,GAAG,KAAK;IAEzB,QAAA,cAAc,CACZ,IAAI,EACJ,CAAC,KAAa,KAAI;gBAChB,WAAW,IAAI,KAAK;IACpB,YAAA,IAAI,CAAC,aAAa,IAAIC,mBAAiB,EAAE;IACvC,gBAAA,IAAIO,eAAa;IAAE,oBAAAA,eAAa,EAAE;oBAClC,MAAM,EAAE,MAAM,EAAE,GAAG,mBAAmB,CAACP,mBAAiB,EAAE,WAAW,CAAC;oBACtE,QAAQ,GAAG,MAAM;oBACjB,aAAa,GAAG,IAAI;gBACtB;IACA,YAAA,IAAI,QAAQ;IAAE,gBAAA,QAAQ,CAAC,WAAW,GAAG,WAAW;IAChD,YAAA,IAAIA,mBAAiB;oBAAE,cAAc,CAACA,mBAAiB,CAAC;YAC1D,CAAC,EACD,MAAK;IACH,YAAA,IAAI,CAAC,aAAa,IAAI,WAAW,KAAK,EAAE,EAAE;IACxC,gBAAA,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC;oBAC7C;gBACF;gBACA,IAAI,QAAQ,IAAI,WAAW;IAAE,gBAAA,QAAQ,CAAC,SAAS,GAAG,cAAc,CAAC,WAAW,CAAC;gBAC7E,OAAO,CAAC,WAAW,CAAC;IACtB,QAAA,CAAC,EACD,CAAC,KAAe,KAAI;IAClB,YAAA,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;IAC1B,gBAAA,IAAI,QAAQ;IAAE,oBAAA,QAAQ,CAAC,SAAS,GAAG,cAAc,CAAC,WAAW,GAAG,MAAM,GAAG,CAAC,CAAC,oBAAoB,CAAC,CAAC;oBACjG,OAAO,CAAC,WAAW,CAAC;gBACtB;qBAAO;oBACL,MAAM,CAAC,KAAK,CAAC;gBACf;IACF,QAAA,CAAC,EACD,iBAAiB,EACjB,YAAY,CACb;IACH,IAAA,CAAC,CAAC;IACJ;IAEA;IACA,eAAe,qBAAqB,CAAC,OAAe,EAAE,KAAkB,EAAA;IACtE,IAAA,IAAI;YACF,MAAM,OAAO,GAAG,MAAM,eAAe,CAAC,OAAO,EAAE,iBAAiB,CAAC;IACjE,QAAA,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;gBACtB,MAAM,UAAU,GAAgB,OAAO,CAAC,GAAG,CAAC,CAAC,IAAG;;IAAC,gBAAA,QAAC;IAChD,oBAAA,UAAU,EAAE,CAAC,CAAC,UAAU,IAAI,EAAE;IAC9B,oBAAA,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE;IACpB,oBAAA,UAAU,EAAE,CAAC,CAAC,UAAU,IAAI,EAAE;IAC9B,oBAAA,UAAU,EAAE,CAAA,EAAA,GAAA,CAAC,CAAC,UAAU,mCAAI,CAAC;IAC7B,oBAAA,KAAK,EAAE,CAAA,EAAA,GAAA,CAAC,CAAC,KAAK,mCAAI,CAAC;IACnB,oBAAA,OAAO,EAAE,CAAC,CAAC,OAAO,IAAI,EAAE;IACzB,iBAAA;IAAC,YAAA,CAAA,CAAC;IACH,YAAA,KAAK,CAAC,OAAO,GAAG,UAAU;gBAC1B,IAAIA,mBAAiB,EAAE;oBACrB,MAAM,SAAS,GAAGA,mBAAiB,CAAC,aAAa,CAAC,2BAA2B,CAAC;IAC9E,gBAAA,IAAI,SAAS;IAAE,oBAAA,aAAa,CAAC,SAAwB,EAAE,UAAU,CAAC;gBACpE;IACA,YAAA,IAAID,QAAM;IAAE,gBAAA,YAAY,CAACA,QAAM,CAAC,WAAW,EAAE,QAAQ,CAAC;YACxD;QACF;QAAE,OAAO,GAAG,EAAE;IACZ,QAAA,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,CAAC;QAC9B;IACF;IAEA;IACA,eAAe,cAAc,GAAA;IAC3B,IAAA,IAAI,CAACK,gBAAc;YAAE;IACrB,IAAA,IAAI;IACF,QAAA,MAAM,IAAI,GAAG,MAAM,iBAAiB,EAAE;IACtC,QAAA,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;gBAAE;YACvBA,gBAAc,CAAC,SAAS,GAAG,CAAA,iBAAA,EAAoB,CAAC,CAAC,cAAc,CAAC,CAAA,SAAA,CAAW;YAE3E,MAAM,UAAU,GAAG,CAAC,KAAkB,EAAE,MAAA,GAAiB,CAAC,KAAI;IAC5D,YAAA,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;oBACxB,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC;oBAC/C,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;IAC9B,gBAAA,MAAM,CAAC,WAAW,GAAG,CAAA,EAAG,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA,EAAG,IAAI,CAAC,IAAI,EAAE;IACxD,gBAAA,IAAI,iBAAiB,KAAK,SAAS,IAAI,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,MAAM,CAAC,iBAAiB,CAAC;IAAE,oBAAA,MAAM,CAAC,QAAQ,GAAG,IAAI;IAC5G,gBAAAA,gBAAe,CAAC,WAAW,CAAC,MAAM,CAAC;oBACnC,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;wBAAE,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,GAAG,CAAC,CAAC;gBACtF;IACF,QAAA,CAAC;YACD,UAAU,CAAC,IAAI,CAAC;YAChB,MAAM,CAAC,IAAI,CAAC,CAAA,gBAAA,EAAmB,IAAI,CAAC,MAAM,CAAA,CAAE,CAAC;QAC/C;QAAE,OAAO,GAAG,EAAE;YACZ,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,qBAAqB,CAAC,EAAE,GAAG,CAAC;QAC7C;IACF;IAEA;IACA,SAAS,aAAa,GAAA;IACpB,IAAA,IAAI,CAACJ,mBAAiB;YAAE;QAExB,MAAM,cAAc,GAAGA,mBAAiB,CAAC,aAAa,CAAC,oBAAoB,CAAC;QAC5E,MAAM,IAAI,GAAGA,mBAAiB,CAAC,gBAAgB,CAAC,wBAAwB,CAAC;IACzE,IAAA,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,CAAC,MAAM,EAAE,CAAC;IAE/B,IAAA,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE;IAC1B,QAAA,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,EAAE;gBACvB,gBAAgB,CAACA,mBAAiB,EAAE,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,SAAS,CAAC;YACjE;iBAAO;IACL,YAAA,MAAM,OAAO,GAAG,cAAc,CAACA,mBAAiB,EAAE,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,SAAS,EAAE,cAAc,CAAC;gBAC7F,IAAI,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;IAAE,gBAAA,aAAa,CAAC,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC;YAChF;QACF;QAEA,cAAc,CAACA,mBAAiB,CAAC;IACjC,IAAA,IAAIG,UAAQ,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC;IAAE,QAAAA,UAAQ,CAAC,KAAK,CAAC,OAAO,GAAG,aAAa;QAE3E,IAAI,cAAc,IAAI,CAACH,mBAAiB,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE;IACjE,QAAAA,mBAAiB,CAAC,WAAW,CAAC,cAAc,CAAC;QAC/C;IACF;IAEA;IACA,SAAS,WAAW,GAAA;IAClB,IAAA,IAAI,CAACD,QAAM;YAAE;IACb,IAAA,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC;YAAE;QAElC,QAAQ,GAAG,EAAE;QACb,IAAIC,mBAAiB,EAAE;YACrB,MAAM,IAAI,GAAGA,mBAAiB,CAAC,gBAAgB,CAAC,wBAAwB,CAAC;IACzE,QAAA,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,CAAC,MAAM,EAAE,CAAC;QACjC;IACA,IAAA,IAAIG,UAAQ;IAAE,QAAAA,UAAQ,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM;IAC7C,IAAA,aAAa,CAACJ,QAAM,CAAC,WAAW,CAAC;;IAGjC,IAAA,MAAM,KAAK,GAAG,iBAAiB,EAAE;QACjC,YAAY,CAAC,KAAK,CAAC;QACnB,gBAAgB,CAACA,QAAM,CAAC,WAAW,EAAEA,QAAM,CAAC,MAAM,EAAE,KAAK,CAAC;IAE1D,IAAA,MAAM,CAAC,cAAc,CAACA,QAAM,CAAC,WAAW,CAAC;IACzC,IAAA,MAAM,CAAC,IAAI,CAAC,YAAY,KAAK,CAAA,CAAE,CAAC;IAClC;IAEA;IACA,SAAS,iBAAiB,GAAA;QACxB,MAAM,MAAM,GAAG,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC;cACnD,MAAM,CAAC,UAAU,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC;IACpC,UAAE,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC;QAC/C,OAAO,CAAA,IAAA,EAAO,IAAI,CAAC,GAAG,EAAE,CAAA,CAAA,EAAI,MAAM,EAAE;IACtC;IAEA;IACM,SAAU,WAAW,CAAC,UAA8B,EAAA;QACxD,iBAAiB,GAAG,UAAU;IAC9B,IAAA,MAAM,GAAG,UAAU,KAAK,SAAS;QACjC,MAAM,CAAC,uBAAuB,CAAC,UAAU,KAAA,IAAA,IAAV,UAAU,KAAA,MAAA,GAAV,UAAU,GAAI,IAAI,CAAC;IACpD;IAEA;IAEA;IACO,eAAe,wBAAwB,GAAA;IAC5C,IAAA,IAAI,CAACM,cAAY,IAAI,CAACN,QAAM;YAAE;QAE9B,MAAM,MAAM,GAAGM,cAAY,CAAC,aAAa,CAAC,mBAAmB,CAAgB;IAC7E,IAAA,IAAI,CAAC,MAAM;YAAE;IAEb,IAAA,MAAM,CAAC,SAAS,GAAG,CAAA,oDAAA,CAAsD;IAEzE,IAAA,IAAI;IACF,QAAA,MAAM,MAAM,GAAG,MAAM,qBAAqB,CAAC,CAAC,EAAE,EAAE,EAAEN,QAAM,CAAC,MAAM,EAAEA,QAAM,CAAC,WAAW,CAAC;IACpF,QAAA,MAAM,KAAK,GAAsB,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK;IACrD,YAAA,EAAE,EAAE,CAAC,CAAC,cAAc,IAAI,EAAE;IAC1B,YAAA,MAAM,EAAE,CAAC,CAAC,cAAc,IAAI,EAAE;gBAC9B,YAAY,EAAE,CAAC,CAAC,YAAY;gBAC5B,eAAe,EAAE,CAAC,CAAC,eAAe;gBAClC,kBAAkB,EAAE,CAAC,CAAC,kBAAkB;IACxC,YAAA,SAAS,EAAE,CAAC,CAAC,gBAAgB,IAAI,CAAC,CAAC,SAAS;IAC7C,SAAA,CAAC,CAAC;YAEH,iBAAiB,CACf,MAAM,EACN,KAAK;;YAEL,CAAC,cAAsB,KAAI;gBACzB,oBAAoB,CAAC,cAAc,CAAC;YACtC,CAAC;;IAED,QAAA,CAAC,EAAU,KAAI,EAAG,MAAM,CAAC,IAAI,CAAC,wBAAwB,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;;YAExE,OAAO,EAAU,KAAI;IACnB,YAAA,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC;oBAAE;IAC3C,YAAA,MAAM,EAAE,GAAG,MAAM,kBAAkB,CAAC,EAAE,CAAC;gBACvC,IAAI,EAAE,EAAE;;IAEN,gBAAA,IAAI,EAAE,KAAK,SAAS,EAAE,EAAE;wBACtB,QAAQ,GAAG,EAAE;wBACb,IAAIC,mBAAiB,EAAE;4BACrB,MAAM,IAAI,GAAGA,mBAAiB,CAAC,gBAAgB,CAAC,wBAAwB,CAAC;IACzE,wBAAA,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,CAAC,MAAM,EAAE,CAAC;wBACjC;IACA,oBAAA,IAAIG,UAAQ;IAAE,wBAAAA,UAAQ,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM;oBAC/C;IACA,gBAAA,wBAAwB,EAAE;gBAC5B;YACF,CAAC;;YAED,SAAS,EAAE,CACZ;QACH;QAAE,OAAO,GAAG,EAAE;YACZ,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,oBAAoB,CAAC,EAAE,GAAG,CAAC;YAC1C,MAAM,CAAC,SAAS,GAAG,CAAA,6FAAA,EAAgG,CAAC,CAAC,oBAAoB,CAAC,CAAA,YAAA,CAAc;QAC1J;IACF;IAEA;;;IAGG;IACI,eAAe,oBAAoB,CAAC,cAAsB,EAAA;IAC/D,IAAA,IAAI,CAACJ,QAAM,IAAI,CAACC,mBAAiB;YAAE;IAEnC,IAAA,MAAM,CAAC,IAAI,CAAC,wBAAwB,cAAc,CAAA,CAAE,CAAC;;QAGrD,YAAY,CAAC,cAAc,CAAC;QAC5B,gBAAgB,CAACD,QAAM,CAAC,WAAW,EAAEA,QAAM,CAAC,MAAM,EAAE,cAAc,CAAC;;QAGnE,IAAIM,cAAY,EAAE;IAChB,QAAAA,cAAY,CAAC,SAAS,CAAC,GAAG,CAAC,2BAA2B,CAAC;QACzD;;QAGA,QAAQ,GAAG,EAAE;QACb,MAAM,IAAI,GAAGL,mBAAiB,CAAC,gBAAgB,CAAC,wBAAwB,CAAC;IACzE,IAAA,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,CAAC,MAAM,EAAE,CAAC;;IAG/B,IAAA,IAAI;IACF,QAAA,MAAM,MAAM,GAAG,MAAM,yBAAyB,CAAC,cAAc,CAAC;YAC9D,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;IAC9B,YAAA,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM;oBACvC,EAAE,EAAE,IAAI,EAAE;IACV,gBAAA,IAAI,EAAE,GAAG,CAAC,WAAW,KAAK,MAAM,GAAG,MAAM,GAAG,IAAa;oBACzD,OAAO,EAAE,GAAG,CAAC,OAAO;oBACpB,SAAS,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,OAAO,EAAE;IAC9C,aAAA,CAAC,CAAC;IAEH,YAAA,aAAa,EAAE;gBACf,MAAM,CAAC,IAAI,CAAC,CAAA,KAAA,EAAQ,cAAc,CAAA,GAAA,EAAM,QAAQ,CAAC,MAAM,CAAA,IAAA,CAAM,CAAC;;IAG9D,YAAA,YAAY,CAACD,QAAM,CAAC,WAAW,EAAE,QAAQ,CAAC;YAC5C;QACF;QAAE,OAAO,GAAG,EAAE;YACZ,MAAM,CAAC,IAAI,CAAC,CAAA,wBAAA,EAA2B,cAAc,CAAA,CAAE,EAAE,GAAG,CAAC;QAC/D;;QAGA,IAAII,UAAQ,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;IACnC,QAAAA,UAAQ,CAAC,KAAK,CAAC,OAAO,GAAG,aAAa;QACxC;IACF;;ICpfA;IAEA,IAAI,MAAM,GAA0B,IAAI;IACxC,IAAI,aAAa,GAAG,KAAK;IACzB,IAAI,UAAU,GAAuB,IAAI;IACzC,IAAI,QAAQ,GAAuB,IAAI;IACvC,IAAI,iBAAiB,GAAuB,IAAI;IAChD,IAAI,OAAO,GAA+B,IAAI;IAC9C,IAAI,OAAO,GAAuB,IAAI;IACtC,IAAI,QAAQ,GAAuB,IAAI;IACvC,IAAI,cAAc,GAA6B,IAAI;IACnD,IAAI,YAAY,GAAuB,IAAI;IAC3C,IAAI,aAAa,GAA+B,IAAI;IACpD,IAAI,aAAa,GAAwB,IAAI;IAC7C,IAAI,WAAW,GAAwB,IAAI;IAE3C;IAEA;IACA,SAAS,IAAI,CAAC,SAAoB,EAAA;QAChC,IAAI,aAAa,EAAE;IACjB,QAAA,MAAM,CAAC,IAAI,CAAC,gCAAgC,CAAC;YAC7C;QACF;;IAGA,IAAA,MAAM,MAAM,GAAG,WAAW,CAAC,SAAS,CAAC;IACrC,IAAA,IAAI,CAAC,MAAM;YAAE;QACb,MAAM,GAAG,MAAM;;IAGf,IAAA,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC;;IAGxB,IAAA,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC;;QAGtB,YAAY,CAAC,MAAM,CAAC;;QAGpB,YAAY,CAAC,MAAM,CAAC;;IAGpB,IAAA,UAAU,GAAG,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC;IAC3C,IAAA,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC;;IAGrC,IAAA,MAAM,GAAG,GAAG,gBAAgB,CAAC,MAAM,CAAC;IACpC,IAAA,QAAQ,GAAG,GAAG,CAAC,MAAM;IACrB,IAAA,iBAAiB,GAAG,GAAG,CAAC,iBAAiB;IACzC,IAAA,OAAO,GAAG,GAAG,CAAC,OAAO;IACrB,IAAA,OAAO,GAAG,GAAG,CAAC,OAAO;IACrB,IAAA,QAAQ,GAAG,GAAG,CAAC,QAAQ;IACvB,IAAA,cAAc,GAAG,GAAG,CAAC,cAAc;IACnC,IAAA,YAAY,GAAG,GAAG,CAAC,YAAY;IAC/B,IAAA,aAAa,GAAG,GAAG,CAAC,WAAW;IAC/B,IAAA,aAAa,GAAG,GAAG,CAAC,WAAW;IAC/B,IAAA,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC;;QAGnC,MAAM,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC,aAAa,CAAgB;QACrE,IAAI,QAAQ,EAAE;IACZ,QAAA,WAAW,GAAG,UAAU,CAAC,QAAQ,EAAE,QAAQ,CAAC;QAC9C;;QAGA,QAAQ,CAAC,MAAM,EAAE;YACf,iBAAiB;YACjB,OAAO;YACP,OAAO;YACP,QAAQ;YACR,cAAc;YACd,YAAY;IACZ,QAAA,WAAW,EAAE,aAAa;IAC1B,QAAA,WAAW,EAAE,aAAa;IAC3B,KAAA,CAAC;;QAGF,QAAQ,CAAC,gBAAgB,CAAC,oBAAoB,GAAG,CAAC,CAAc,KAAI;IAClE,QAAA,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC;QAClC,CAAC,EAAmB;;IAGpB,IAAA,QAAQ,CAAC,gBAAgB,CAAC,iBAAiB,EAAE,MAAK;IAChD,QAAA,wBAAwB,EAAE;IAC5B,IAAA,CAAC,CAAC;QAEF,aAAa,GAAG,IAAI;QACpB,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,aAAa,CAAC;;IAG9D,IAAA,eAAe,EAAE,CAAC,KAAK,CAAC,GAAG,IAAG;IAC5B,QAAA,MAAM,CAAC,IAAI,CAAC,wBAAwB,EAAE,GAAG,CAAC;IAC5C,IAAA,CAAC,CAAC;IACJ;IAEA;IACA,SAAS,OAAO,GAAA;IACd,IAAA,IAAI,CAAC,aAAa;YAAE;IAEpB,IAAA,IAAI,UAAU,IAAI,UAAU,CAAC,UAAU,EAAE;IAAE,QAAA,UAAU,CAAC,UAAU,CAAC,WAAW,CAAC,UAAU,CAAC;YAAE,UAAU,GAAG,IAAI;QAAE;IAC7G,IAAA,IAAI,QAAQ,IAAI,QAAQ,CAAC,UAAU,EAAE;IAAE,QAAA,QAAQ,CAAC,UAAU,CAAC,WAAW,CAAC,QAAQ,CAAC;YAAE,QAAQ,GAAG,IAAI;QAAE;QACnG,IAAI,WAAW,EAAE;IAAE,QAAA,WAAW,EAAE;YAAE,WAAW,GAAG,IAAI;QAAE;IAEtD,IAAA,YAAY,EAAE;QAEd,MAAM,cAAc,GAAG,MAAM,KAAA,IAAA,IAAN,MAAM,KAAA,MAAA,GAAA,MAAA,GAAN,MAAM,CAAE,WAAW;QAC1C,MAAM,GAAG,IAAI;QACb,aAAa,GAAG,KAAK;QACrB,iBAAiB,GAAG,IAAI;QACxB,OAAO,GAAG,IAAI;QACd,OAAO,GAAG,IAAI;QACd,QAAQ,GAAG,IAAI;QACf,cAAc,GAAG,IAAI;QACrB,YAAY,GAAG,IAAI;QACnB,aAAa,GAAG,IAAI;QACpB,aAAa,GAAG,IAAI;IAEpB,IAAA,MAAM,CAAC,gBAAgB,CAAC,cAAc,IAAI,EAAE,CAAC;IAC/C;IAEA,SAAS,IAAI,GAAA;IACX,IAAA,IAAI,CAAC,QAAQ;YAAE;IACf,IAAA,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,oBAAoB,CAAC;IACjD;IAEA,SAAS,KAAK,GAAA;IACZ,IAAA,IAAI,CAAC,QAAQ;YAAE;IACf,IAAA,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,oBAAoB,CAAC;IAC9C;IAEA,SAAS,MAAM,GAAA;IACb,IAAA,IAAI,CAAC,QAAQ;YAAE;QACf,IAAI,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,oBAAoB,CAAC,EAAE;IACrD,QAAA,IAAI,EAAE;IACN,QAAA,UAAU,CAAC,MAAK,EAAG,IAAI,OAAO;gBAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC;QAC1D;aAAO;IACL,QAAA,KAAK,EAAE;QACT;IACF;IAEA,SAAS,YAAY,GAAA;IACnB,IAAA,IAAI,CAAC,MAAM;YAAE;QACb,IAAI,QAAQ,EAAE;YAAE,QAAQ,CAAC,KAAK,EAAE;QAAE;IAC7B,SAAA,IAAI,OAAO,CAAC,aAAa,CAAC,EAAE;IAAE,QAAA,aAAa,CAAC,MAAM,CAAC,WAAW,CAAC;QAAE;IACxE;IAEA;AAEA,UAAM,UAAU,GAAuB;QACrC,IAAI;QACJ,OAAO;QACP,IAAI;QACJ,KAAK;QACL,MAAM;QACN,YAAY;;IAGd,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;IAChC,IAAA,MAA6C,CAAC,UAAU,GAAG,UAAU;IACxE;;;;;;;;"} \ No newline at end of file +{"version":3,"file":"chatbot-sdk.js","sources":["../src/logger.ts","../src/config.ts","../src/i18n.ts","../src/api.ts","../src/styles.ts","../src/utils.ts","../src/dom.ts","../src/storage.ts","../src/markdown.ts","../src/chat.ts","../src/index.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null],"names":["config","messagesContainer","inputEl","sendBtn","clearBtn","categorySelect","historyPanel","showLoadingFn","hideLoadingFn"],"mappings":"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"} \ No newline at end of file diff --git a/client/dist/chatbot-sdk.min.js b/client/dist/chatbot-sdk.min.js index e858b94..18c79aa 100644 --- a/client/dist/chatbot-sdk.min.js +++ b/client/dist/chatbot-sdk.min.js @@ -1,2 +1,2 @@ -var ChatbotSDK=function(){"use strict";const e="[ChatbotSDK]";let n=!0;const t={},r={info(t,r){n&&console.log(e,t,void 0!==r?r:"")},warn(t,r){n&&console.warn(e,t,void 0!==r?r:"")},error(n,t){console.error(e,n,void 0!==t?t:"")},time(e){t[e]=Date.now()},timeEnd(r,o){const s=t[r];if(void 0!==s){const i=Date.now()-s;if(delete t[r],n){const n=o?`${o} ${i}ms`:`${r} ${i}ms`;console.log(e,n)}return i}return 0},lifecycleInit(e,n){this.info(`初始化完成 integrateId=${e} requestDomain=${n}`)},lifecycleDestroy(e){this.info(`销毁实例 integrateId=${e}`)},lifecycleSend(e,n){this.info(`发送消息 integrateId=${e} length=${n}`),this.time(`send_${e}`)},lifecycleReply(e,n){const t=this.timeEnd(`send_${e}`,"AI 回复");this.info(`AI 回复 integrateId=${e} length=${n} duration=${t}ms`)},lifecycleError(e,n,t){this.timeEnd(`send_${e}`),this.error(`请求失败 integrateId=${e} status=${n} message=${t}`)},lifecycleClear(e){this.info(`清空会话 integrateId=${e}`)},lifecycleStreamDone(e,n){const t=this.timeEnd(`send_${e}`,"流式回复");this.info(`流式回复完成 integrateId=${e} length=${n} duration=${t}ms`)},lifecycleCategoryChange(e){this.info(`切换知识库分类 categoryId=${e}`)}};const o={"zh-CN":{title:"AI 智能助手",minimize:"最小化",close:"关闭",placeholder:"输入您的问题...",send:"发送",loading:"正在思考...",stream_interrupted:"回复被中断",stream_unstable:"网络不稳定,内容可能不完整",category_placeholder:"选择知识库分类",category_all:"全部分类",category_load_error:"加载分类失败",source_title:"参考来源",source_count:"{n} 条参考来源",source_loading:"加载来源中...",clear:"清空对话",clear_confirm:"确定清空所有对话记录?",history_title:"历史会话",history_empty:"暂无历史会话",history_load_error:"加载会话列表失败",history_delete_confirm:"确定删除该会话?",history_export:"导出",history_delete:"删除",error_network:"网络连接失败,请检查网络",error_timeout:"请求超时,请稍后重试",error_server:"服务器异常,请稍后重试",error_cors:"跨域请求被拦截,请联系管理员将当前域名加入 API 白名单",error_auth:"鉴权失败,请联系管理员",error_forbidden:"无访问权限,请联系管理员配置",error_not_found:"请求的资源不存在",error_rate_limit:"请求过于频繁,请稍后重试",error_unavailable:"服务暂不可用,请稍后重试",error_unknown:"请求发生未知错误",error_send:"发送失败,请稍后重试",error_stream_unsupported:"浏览器不支持流式读取"},en:{title:"AI Assistant",minimize:"Minimize",close:"Close",placeholder:"Type your question...",send:"Send",loading:"Thinking...",stream_interrupted:"Response interrupted",stream_unstable:"Network unstable, content may be incomplete",category_placeholder:"Select category",category_all:"All categories",category_load_error:"Failed to load categories",source_title:"Sources",source_count:"{n} source(s)",source_loading:"Loading sources...",clear:"Clear chat",clear_confirm:"Clear all conversation history?",history_title:"History",history_empty:"No conversations yet",history_load_error:"Failed to load conversations",history_delete_confirm:"Delete this conversation?",history_export:"Export",history_delete:"Delete",error_network:"Network connection failed",error_timeout:"Request timed out, please try again",error_server:"Server error, please try again later",error_cors:"CORS request blocked. Please contact admin to whitelist your domain",error_auth:"Authentication failed, please contact admin",error_forbidden:"Access denied, please contact admin",error_not_found:"Resource not found",error_rate_limit:"Too many requests, please try again later",error_unavailable:"Service temporarily unavailable",error_unknown:"Unknown request error",error_send:"Failed to send, please try again",error_stream_unsupported:"Browser does not support streaming"}};let s="zh-CN";function i(e,n){let t=(o[s]||o["zh-CN"])[e]||o["zh-CN"][e]||e;if(n)for(const[e,r]of Object.entries(n))t=t.replace(`{${e}}`,String(r));return t}let a=null;function c(e){a&&(a.chatId=e)}function l(){return(null==a?void 0:a.chatId)||""}function d(e){if(!a)throw new Error("API 配置未初始化");return`${a.requestDomain.replace(/\/+$/,"")}${e.startsWith("/")?e:`/${e}`}`}function u(e,n,t){null!=t&&("string"==typeof t&&""===t.trim()||e.set(n,String(t)))}async function p(e,n={},t=3e4){const r=new AbortController,o=setTimeout(()=>r.abort(),t);try{return await fetch(e,Object.assign(Object.assign({},n),{signal:r.signal,mode:"cors",credentials:"include"}))}catch(e){if(e instanceof DOMException&&"AbortError"===e.name)throw new m(i("error_timeout"),"timeout");if(e instanceof TypeError&&e.message.includes("Failed to fetch"))throw new m(i("error_cors"),"cors");throw new m(i("error_network"),"network")}finally{clearTimeout(o)}}class m extends Error{constructor(e,n){super(e),this.name="CskError",this.type=n}}function h(e){switch(e){case 401:return i("error_auth");case 403:return i("error_forbidden");case 404:return i("error_not_found");case 429:return i("error_rate_limit");case 500:return i("error_server");case 502:case 503:return i("error_unavailable");default:return`${i("error_unknown")}(${e})`}}async function g(e){const n=function(e){const n=new URLSearchParams;return n.set("message",e),n.set("chatId",a.chatId),u(n,"roleId",a.integrateId),u(n,"accountId",a.userId),d(`/ai/assistant_app/chat/sync?${n.toString()}`)}(e);r.lifecycleSend(a.integrateId,e.length);try{const e=await p(n);if(!e.ok){const n=h(e.status);throw r.lifecycleError(a.integrateId,String(e.status),n),new m(n,`http_${e.status}`)}const t=await e.text();return r.lifecycleReply(a.integrateId,t.length),t}catch(e){if(e instanceof m)throw e;throw r.lifecycleError(a.integrateId,"unknown",String(e)),new m(i("error_unknown"),"unknown")}}async function k(e,n,t,o,s,c){var l;const g=c?function(e,n){const t=new URLSearchParams;return t.set("message",e),t.set("chatId",a.chatId),t.set("rewriteStrategy","REWRITE"),u(t,"roleId",a.integrateId),u(t,"accountId",a.userId),u(t,"categoryId",null!=n?n:a.categoryId),d(`/ai/assistant_app/chat/rag/sse?${t.toString()}`)}(e,s):function(e,n){const t=new URLSearchParams;return t.set("message",e),t.set("chatId",a.chatId),u(t,"roleId",a.integrateId),u(t,"accountId",a.userId),u(t,"categoryId",null!=n?n:a.categoryId),d(`/ai/assistant_app/chat/sse?${t.toString()}`)}(e,s);let k="";r.lifecycleSend(a.integrateId,e.length);try{const e=await p(g,{},6e4);if(!e.ok){const n=h(e.status);return r.lifecycleError(a.integrateId,String(e.status),n),void o(new m(n,`http_${e.status}`))}const s=null===(l=e.body)||void 0===l?void 0:l.getReader();if(!s)return void o(new m(i("error_stream_unsupported"),"stream_unsupported"));const c=new TextDecoder("utf-8",{stream:!0});let d="";try{for(;;){const{done:e,value:t}=await s.read();if(e)break;d+=c.decode(t,{stream:!0});const r=d.split("\n");d=r.pop()||"";for(const e of r){const t=e.trim();if(t&&!t.startsWith(":"))if(t.startsWith("data:")){const e=t.substring(5).trim();e&&(k+=e,n(e))}else{if("[DONE]"===t)break;t.startsWith("event:")||t.startsWith("id:")||t.startsWith("retry:")||(k+=t,n(t))}}}if(d.trim()){const e=d.trim();if(e.startsWith("data:")){const t=e.substring(5).trim();t&&(k+=t,n(t))}else"[DONE]"!==e&&(k+=e,n(e))}}catch(e){if(!(k.length>0))throw e;n("\n\n"+i("stream_unstable"))}finally{s.releaseLock()}r.lifecycleStreamDone(a.integrateId,k.length),t()}catch(e){e instanceof m?o(e):(r.lifecycleError(a.integrateId,"unknown",String(e)),o(new m(i("error_network"),"network")))}}async function f(e,n){const t=function(e,n){const t=new URLSearchParams;return t.set("message",e),t.set("chatId",a.chatId),t.set("rewriteStrategy","REWRITE"),u(t,"roleId",a.integrateId),u(t,"accountId",a.userId),u(t,"categoryId",null!=n?n:a.categoryId),d(`/ai/assistant_app/rag/sources?${t.toString()}`)}(e,n);try{const e=await p(t);if(!e.ok)throw new m(h(e.status),`http_${e.status}`);const n=await e.json();return n.success&&Array.isArray(n.data)?(r.info(`获取引用来源 count=${n.data.length}`),n.data):[]}catch(e){return r.error("获取引用来源失败",e),[]}}async function y(e=1,n=20,t,o){let s=`/conversation/list?page=${e}&size=${n}`;t&&(s+=`&accountId=${encodeURIComponent(t)}`),o&&(s+=`&roleId=${encodeURIComponent(o)}`);const i=d(s);try{const e=await p(i);if(!e.ok)throw new m(h(e.status),`http_${e.status}`);const n=await e.json();return{list:n.success&&Array.isArray(n.data)?n.data:[],total:n.total||0,pages:n.pages||0}}catch(e){return r.error("加载会话列表失败",e),{list:[],total:0,pages:0}}}async function b(e){const n=d(`/conversation/${e}/messages`);try{const e=await p(n);if(!e.ok)throw new m(h(e.status),`http_${e.status}`);const t=await e.json();return{messages:t.success&&Array.isArray(t.data)?t.data:[],total:t.total||0}}catch(e){return r.error("加载会话消息失败",e),{messages:[],total:0}}}async function x(){if(!a)return"";const e=function(e,n){try{return localStorage.getItem(_(e,n))||""}catch(e){return""}}(a.integrateId,a.userId);if(e)return a.chatId=e,r.info(`从缓存恢复 chatId=${e}`),e;try{const e=await y(1,5,a.userId,a.integrateId);if(e.list.length>0){const n=e.list[0],t=n.conversationId||n.chatId||"";if(t)return a.chatId=t,w(a.integrateId,a.userId,t),r.info(`从后端恢复会话 chatId=${t} messageCount=${n.messageCount}`),t}}catch(e){r.warn("查询后端会话列表失败,将生成新 chatId",e)}const n=function(){const e="undefined"!=typeof crypto&&crypto.randomUUID?crypto.randomUUID().substring(0,8):Math.random().toString(36).substring(2,10);return`sdk_${Date.now()}_${e}`}();return a.chatId=n,w(a.integrateId,a.userId,n),r.info(`生成新 chatId=${n}`),n}function _(e,n){return`csk_chatId_${e}${n?"_"+n:""}`}function w(e,n,t){try{t?localStorage.setItem(_(e,n),t):localStorage.removeItem(_(e,n))}catch(e){}}let v=null;function E(e){const n=function(e,n){const t=e.match(/^#([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/);if(!t)return e;const r=e=>Math.max(0,Math.min(255,e)),o=r(parseInt(t[1],16)+n),s=r(parseInt(t[2],16)+n),i=r(parseInt(t[3],16)+n);return`#${o.toString(16).padStart(2,"0")}${s.toString(16).padStart(2,"0")}${i.toString(16).padStart(2,"0")}`}(e.primaryColor,-15);return`\n --csk-primary: ${e.primaryColor};\n --csk-primary-hover: ${n};\n --csk-bg-user: var(--csk-primary);\n --csk-bg-ai: #F3F4F6;\n --csk-text-user: #FFFFFF;\n --csk-text-ai: #1F2937;\n --csk-window-width: ${e.width}px;\n `}function I(e){document.querySelector("style[data-csk-sdk]")||(v=document.createElement("style"),v.setAttribute("data-csk-sdk",""),v.textContent=function(e){return`\n/* ChatbotSDK 样式 - csk- 命名空间 */\n.csk-root {\n ${E(e)}\n font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans SC", sans-serif;\n font-size: 14px;\n line-height: 1.5;\n color: #1F2937;\n}\n\n/* ========== 悬浮按钮 ========== */\n.csk-launcher {\n position: fixed;\n bottom: 20px;\n z-index: 9998;\n width: 56px;\n height: 56px;\n border-radius: 50%;\n background: #fff;\n box-shadow: 0 4px 16px rgba(0, 0, 0, 0.15);\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n transition: all 0.2s ease;\n border: none;\n color: var(--csk-primary);\n user-select: none;\n}\n.csk-launcher--right {\n right: 20px;\n}\n.csk-launcher--left {\n left: 20px;\n}\n.csk-launcher:hover {\n transform: scale(1.1);\n box-shadow: 0 6px 24px rgba(0, 0, 0, 0.2);\n}\n.csk-launcher:active {\n transform: scale(0.95);\n}\n\n/* ========== 聊天弹窗 ========== */\n.csk-window {\n position: fixed;\n bottom: 20px;\n z-index: 9999;\n width: var(--csk-window-width);\n height: 560px;\n background: #fff;\n border-radius: 12px;\n box-shadow: 0 8px 40px rgba(0, 0, 0, 0.18);\n display: flex;\n flex-direction: column;\n overflow: hidden;\n transition: opacity 0.2s ease, transform 0.2s ease;\n}\n.csk-window--right {\n right: 20px;\n}\n.csk-window--left {\n left: 20px;\n}\n.csk-window--hidden {\n display: none;\n}\n\n/* ========== 头部 ========== */\n.csk-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 0 16px;\n height: 48px;\n min-height: 48px;\n background: var(--csk-primary);\n color: #fff;\n border-radius: 12px 12px 0 0;\n cursor: move;\n user-select: none;\n}\n.csk-header__title {\n font-size: 15px;\n font-weight: 600;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.csk-header__actions {\n display: flex;\n align-items: center;\n gap: 4px;\n}\n.csk-header__btn {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n height: 32px;\n border: none;\n background: transparent;\n color: #fff;\n cursor: pointer;\n border-radius: 6px;\n transition: background 0.15s;\n}\n.csk-header__btn:hover {\n background: rgba(255, 255, 255, 0.2);\n}\n\n/* ========== 消息区 ========== */\n.csk-messages {\n flex: 1;\n overflow-y: auto;\n padding: 16px;\n background: #FAFAFA;\n scroll-behavior: smooth;\n}\n.csk-messages::-webkit-scrollbar {\n width: 5px;\n}\n.csk-messages::-webkit-scrollbar-track {\n background: transparent;\n}\n.csk-messages::-webkit-scrollbar-thumb {\n background: #D1D5DB;\n border-radius: 3px;\n}\n\n/* 消息气泡 */\n.csk-msg {\n display: flex;\n flex-direction: column;\n margin-bottom: 16px;\n max-width: 85%;\n word-break: break-word;\n}\n.csk-msg--user {\n margin-left: auto;\n align-items: flex-end;\n}\n.csk-msg--ai {\n margin-right: auto;\n align-items: flex-start;\n}\n.csk-msg__bubble {\n padding: 10px 14px;\n border-radius: 12px;\n font-size: 14px;\n line-height: 1.6;\n}\n.csk-msg--user .csk-msg__bubble {\n background: var(--csk-bg-user);\n color: var(--csk-text-user);\n border-radius: 12px 12px 4px 12px;\n}\n.csk-msg--ai .csk-msg__bubble {\n background: var(--csk-bg-ai);\n color: var(--csk-text-ai);\n border-radius: 12px 12px 12px 4px;\n}\n.csk-msg__time {\n font-size: 11px;\n color: #9CA3AF;\n margin-top: 4px;\n padding: 0 4px;\n}\n\n/* ========== Loading 动画 ========== */\n.csk-loading {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 12px 14px;\n margin-bottom: 16px;\n}\n.csk-loading__dot {\n width: 8px;\n height: 8px;\n border-radius: 50%;\n background: #D1D5DB;\n animation: csk-bounce 1.4s ease-in-out infinite both;\n}\n.csk-loading__dot:nth-child(1) { animation-delay: 0s; }\n.csk-loading__dot:nth-child(2) { animation-delay: 0.16s; }\n.csk-loading__dot:nth-child(3) { animation-delay: 0.32s; }\n\n@keyframes csk-bounce {\n 0%, 80%, 100% { transform: scale(0.6); }\n 40% { transform: scale(1); }\n}\n\n/* ========== 输入区 ========== */\n.csk-input-area {\n display: flex;\n align-items: center;\n padding: 10px 12px;\n border-top: 1px solid #E5E7EB;\n background: #fff;\n gap: 8px;\n}\n.csk-input {\n flex: 1;\n border: 1px solid #E5E7EB;\n border-radius: 8px;\n padding: 10px 12px;\n font-size: 14px;\n outline: none;\n transition: border-color 0.2s;\n font-family: inherit;\n resize: none;\n min-height: 20px;\n max-height: 100px;\n}\n.csk-input:focus {\n border-color: var(--csk-primary);\n}\n.csk-input::placeholder {\n color: #9CA3AF;\n}\n.csk-send-btn {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 40px;\n height: 40px;\n min-width: 40px;\n border: none;\n border-radius: 8px;\n background: var(--csk-primary);\n color: #fff;\n cursor: pointer;\n transition: background 0.2s;\n}\n.csk-send-btn:hover {\n background: var(--csk-primary-hover);\n}\n.csk-send-btn:disabled {\n background: #D1D5DB;\n cursor: not-allowed;\n}\n\n/* ========== 清空按钮 ========== */\n.csk-clear-btn {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n padding: 6px 12px;\n border: 1px solid #E5E7EB;\n border-radius: 6px;\n background: #fff;\n color: #6B7280;\n font-size: 12px;\n cursor: pointer;\n margin: 0 auto 8px;\n transition: all 0.15s;\n}\n.csk-clear-btn:hover {\n background: #FEE2E2;\n border-color: #FCA5A5;\n color: #DC2626;\n}\n\n/* ========== P1: 知识库分类下拉 ========== */\n.csk-category-bar {\n display: flex;\n align-items: center;\n padding: 6px 12px;\n border-top: 1px solid #E5E7EB;\n background: #F9FAFB;\n gap: 8px;\n}\n.csk-category-bar__label {\n font-size: 12px;\n color: #6B7280;\n white-space: nowrap;\n}\n.csk-category-select {\n flex: 1;\n padding: 5px 8px;\n border: 1px solid #E5E7EB;\n border-radius: 6px;\n font-size: 12px;\n color: #374151;\n background: #fff;\n outline: none;\n cursor: pointer;\n font-family: inherit;\n transition: border-color 0.2s;\n max-width: 200px;\n}\n.csk-category-select:focus {\n border-color: var(--csk-primary);\n}\n\n/* ========== P1: RAG 引用来源卡片 ========== */\n.csk-sources {\n margin-top: 8px;\n border: 1px solid #E5E7EB;\n border-radius: 8px;\n overflow: hidden;\n font-size: 12px;\n max-width: 100%;\n}\n.csk-sources__header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 8px 12px;\n background: #F9FAFB;\n cursor: pointer;\n user-select: none;\n transition: background 0.15s;\n}\n.csk-sources__header:hover {\n background: #F3F4F6;\n}\n.csk-sources__title {\n display: flex;\n align-items: center;\n gap: 4px;\n font-weight: 500;\n color: #374151;\n}\n.csk-sources__arrow {\n transition: transform 0.2s;\n color: #9CA3AF;\n}\n.csk-sources--collapsed .csk-sources__arrow {\n transform: rotate(-90deg);\n}\n.csk-sources__body {\n border-top: 1px solid #E5E7EB;\n padding: 0;\n}\n.csk-sources--collapsed .csk-sources__body {\n display: none;\n}\n.csk-source-item {\n padding: 8px 12px;\n border-bottom: 1px solid #F3F4F6;\n transition: background 0.15s;\n}\n.csk-source-item:last-child {\n border-bottom: none;\n}\n.csk-source-item:hover {\n background: #F9FAFB;\n}\n.csk-source-item__name {\n font-weight: 500;\n color: #1F2937;\n margin-bottom: 2px;\n}\n.csk-source-item__snippet {\n color: #6B7280;\n line-height: 1.4;\n overflow: hidden;\n text-overflow: ellipsis;\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n}\n.csk-source-item__meta {\n font-size: 11px;\n color: #9CA3AF;\n margin-top: 2px;\n}\n\n/* ========== P1: Markdown 渲染样式 ========== */\n.csk-msg--ai .csk-msg__bubble .csk-md-p {\n margin: 0 0 8px;\n}\n.csk-msg--ai .csk-msg__bubble .csk-md-p:last-child {\n margin-bottom: 0;\n}\n.csk-msg--ai .csk-msg__bubble .csk-md-h1,\n.csk-msg--ai .csk-msg__bubble .csk-md-h2,\n.csk-msg--ai .csk-msg__bubble .csk-md-h3,\n.csk-msg--ai .csk-msg__bubble .csk-md-h4,\n.csk-msg--ai .csk-msg__bubble .csk-md-h5,\n.csk-msg--ai .csk-msg__bubble .csk-md-h6 {\n margin: 12px 0 6px;\n font-weight: 600;\n line-height: 1.3;\n}\n.csk-msg--ai .csk-msg__bubble .csk-md-h1 { font-size: 20px; }\n.csk-msg--ai .csk-msg__bubble .csk-md-h2 { font-size: 17px; }\n.csk-msg--ai .csk-msg__bubble .csk-md-h3 { font-size: 15px; }\n.csk-msg--ai .csk-msg__bubble .csk-md-h4 { font-size: 14px; }\n\n.csk-md-code-block {\n background: #1E293B;\n color: #E2E8F0;\n padding: 12px 14px;\n border-radius: 8px;\n overflow-x: auto;\n margin: 8px 0;\n font-size: 13px;\n line-height: 1.5;\n font-family: 'SF Mono', 'Consolas', 'Menlo', monospace;\n}\n.csk-md-code-block code {\n background: none;\n padding: 0;\n border-radius: 0;\n font-size: inherit;\n color: inherit;\n}\n.csk-md-inline-code {\n background: #E5E7EB;\n color: #DC2626;\n padding: 1px 6px;\n border-radius: 4px;\n font-size: 13px;\n font-family: 'SF Mono', 'Consolas', 'Menlo', monospace;\n}\n.csk-msg--ai .csk-msg__bubble .csk-md-ul,\n.csk-msg--ai .csk-msg__bubble .csk-md-ol {\n padding-left: 20px;\n margin: 6px 0;\n}\n.csk-msg--ai .csk-msg__bubble .csk-md-ul li,\n.csk-msg--ai .csk-msg__bubble .csk-md-ol li {\n margin-bottom: 4px;\n}\n.csk-md-blockquote {\n border-left: 3px solid var(--csk-primary);\n padding-left: 12px;\n margin: 8px 0;\n color: #6B7280;\n}\n.csk-md-link {\n color: var(--csk-primary);\n text-decoration: none;\n}\n.csk-md-link:hover {\n text-decoration: underline;\n}\n.csk-md-hr {\n border: none;\n border-top: 1px solid #E5E7EB;\n margin: 12px 0;\n}\n\n/* ========== P2: 会话管理面板 ========== */\n.csk-history-btn {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n height: 32px;\n border: none;\n background: transparent;\n color: #fff;\n cursor: pointer;\n border-radius: 6px;\n transition: background 0.15s;\n}\n.csk-history-btn:hover {\n background: rgba(255, 255, 255, 0.2);\n}\n.csk-history-panel {\n position: absolute;\n top: 48px;\n left: 0;\n right: 0;\n bottom: 0;\n background: #fff;\n z-index: 10;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n}\n.csk-history-panel--hidden {\n display: none;\n}\n.csk-history-panel__header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 12px 16px;\n border-bottom: 1px solid #E5E7EB;\n background: #F9FAFB;\n}\n.csk-history-panel__title {\n font-size: 14px;\n font-weight: 600;\n color: #1F2937;\n}\n.csk-history-panel__back {\n display: flex;\n align-items: center;\n gap: 4px;\n padding: 4px 10px;\n border: 1px solid #E5E7EB;\n border-radius: 6px;\n background: #fff;\n color: #374151;\n font-size: 12px;\n cursor: pointer;\n transition: all 0.15s;\n}\n.csk-history-panel__back:hover {\n background: #F3F4F6;\n}\n.csk-history-panel__list {\n flex: 1;\n overflow-y: auto;\n padding: 8px;\n}\n.csk-history-panel__list::-webkit-scrollbar {\n width: 4px;\n}\n.csk-history-panel__list::-webkit-scrollbar-thumb {\n background: #E5E7EB;\n border-radius: 2px;\n}\n.csk-history-item {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 10px 12px;\n border-radius: 8px;\n cursor: pointer;\n transition: background 0.15s;\n margin-bottom: 4px;\n}\n.csk-history-item:hover {\n background: #F3F4F6;\n}\n.csk-history-item--active {\n background: #EEF2FF;\n border-left: 3px solid var(--csk-primary);\n}\n.csk-history-item--active:hover {\n background: #E0E7FF;\n}\n.csk-history-item__info {\n flex: 1;\n min-width: 0;\n}\n.csk-history-item__id {\n font-size: 13px;\n font-weight: 500;\n color: #1F2937;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.csk-history-item__meta {\n font-size: 11px;\n color: #9CA3AF;\n margin-top: 2px;\n}\n.csk-history-item__actions {\n display: flex;\n gap: 4px;\n margin-left: 8px;\n opacity: 0;\n transition: opacity 0.15s;\n}\n.csk-history-item:hover .csk-history-item__actions {\n opacity: 1;\n}\n.csk-history-action {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 28px;\n height: 28px;\n border: none;\n border-radius: 6px;\n cursor: pointer;\n font-size: 12px;\n transition: all 0.15s;\n}\n.csk-history-action--export {\n background: #EFF6FF;\n color: #2563EB;\n}\n.csk-history-action--export:hover {\n background: #DBEAFE;\n}\n.csk-history-action--delete {\n background: #FEF2F2;\n color: #DC2626;\n}\n.csk-history-action--delete:hover {\n background: #FEE2E2;\n}\n.csk-history-panel__empty {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 40px 20px;\n color: #9CA3AF;\n font-size: 13px;\n text-align: center;\n}\n.csk-history-panel__empty-icon {\n font-size: 32px;\n margin-bottom: 8px;\n opacity: 0.5;\n}\n.csk-history-panel__loading {\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 20px;\n color: #9CA3AF;\n font-size: 13px;\n}\n.csk-history-panel__loadmore {\n display: block;\n width: 100%;\n padding: 10px;\n border: none;\n background: #F9FAFB;\n color: #6B7280;\n font-size: 12px;\n cursor: pointer;\n text-align: center;\n transition: background 0.15s;\n}\n.csk-history-panel__loadmore:hover {\n background: #F3F4F6;\n}\n\n/* ========== 移动端适配 ========== */\n@media (max-width: 480px) {\n .csk-window {\n width: 100vw !important;\n height: 100vh !important;\n bottom: 0 !important;\n right: 0 !important;\n left: 0 !important;\n border-radius: 0;\n }\n .csk-header {\n border-radius: 0;\n }\n}\n`}(e),document.head.appendChild(v))}function C(){return"undefined"!=typeof crypto&&crypto.randomUUID?crypto.randomUUID():"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>{const n=16*Math.random()|0;return("x"===e?n:3&n|8).toString(16)})}function $(e){const n={"&":"&","<":"<",">":">",'"':""","'":"'"};return e.replace(/[&<>"']/g,e=>n[e]||e)}function S(){return Date.now()}function F(e,n){const t=document.createElement("div");t.id="csk-launcher",t.className="csk-launcher csk-launcher--"+("left-bottom"===e.position?"left":"right"),t.setAttribute("title",e.title),t.setAttribute("aria-label",e.title),t.setAttribute("role","button"),t.setAttribute("tabindex","0"),t.innerHTML=e.launcherIcon;const r=function(e,n){let t=null;return function(...r){null!==t&&clearTimeout(t),t=setTimeout(()=>{e.apply(this,r),t=null},n)}}(n,300);return t.addEventListener("click",r),t.addEventListener("keydown",e=>{"Enter"!==e.key&&" "!==e.key||(e.preventDefault(),r())}),t}function A(e,n,t){const r=document.createElement("div");r.className="csk-msg csk-msg--user";const o=document.createElement("div");o.className="csk-msg__bubble",o.textContent=n;const s=document.createElement("div");return s.className="csk-msg__time",s.textContent=M(t),r.appendChild(o),r.appendChild(s),e.appendChild(r),r}function N(e,n,t,r){const o=document.createElement("div");o.className="csk-msg csk-msg--ai";const s=document.createElement("div");s.className="csk-msg__bubble",r?s.innerHTML=r(n):s.textContent=n;const i=document.createElement("div");return i.className="csk-msg__time",i.textContent=M(t),o.appendChild(s),o.appendChild(i),e.appendChild(o),o}function L(e,n){const t=e.querySelector(".csk-sources");if(t&&t.remove(),!n||0===n.length)return;const r=document.createElement("div");r.className="csk-sources csk-sources--collapsed";const o=document.createElement("div");o.className="csk-sources__header";const s=document.createElement("span");s.className="csk-sources__title",s.textContent=`📚 ${i("source_count",{n:n.length})}`;const a=document.createElement("span");a.className="csk-sources__arrow",a.textContent="▼",o.appendChild(s),o.appendChild(a),o.addEventListener("click",()=>{r.classList.toggle("csk-sources--collapsed")});const c=document.createElement("div");c.className="csk-sources__body";for(const e of n){const n=document.createElement("div");n.className="csk-source-item";const t=document.createElement("div");if(t.className="csk-source-item__name",t.textContent=e.title||e.sourceName||"未知文档",e.snippet){const t=document.createElement("div");t.className="csk-source-item__snippet",t.textContent=e.snippet,n.appendChild(t)}const r=document.createElement("div");r.className="csk-source-item__meta";const o=[];e.sourceName&&o.push(e.sourceName),void 0!==e.chunkIndex&&o.push(`分块 #${e.chunkIndex}`),void 0!==e.score&&o.push(`相关度 ${(100*e.score).toFixed(0)}%`),r.textContent=o.join(" · "),n.appendChild(t),n.appendChild(r),c.appendChild(n)}r.appendChild(o),r.appendChild(c);const l=e.querySelector(".csk-msg__time");l?e.insertBefore(r,l):e.appendChild(r)}function D(e){e.scrollTop=e.scrollHeight}function M(e){const n=new Date(e);return`${String(n.getHours()).padStart(2,"0")}:${String(n.getMinutes()).padStart(2,"0")}`}function B(e){return`csk_history_${e}`}function T(e,n){try{let t=n;t.length>200&&(t=t.slice(50),r.warn(`消息数量达到上限,已裁剪最早 50 条,当前 ${t.length} 条`));const o={messages:t,updatedAt:Date.now()};localStorage.setItem(B(e),JSON.stringify(o))}catch(e){e instanceof Error&&"QuotaExceededError"===e.name?r.error("localStorage 空间不足,会话历史保存失败。建议清空历史记录。"):r.error("保存会话历史失败",e)}}function z(e){try{localStorage.removeItem(B(e))}catch(e){r.warn("清空会话历史失败",e)}}const q="\0CODEBLOCK_",j="\0INLINECODE_";function H(e){if(!e||"string"!=typeof e)return"";const n=[];let t=e;t=t.replace(/```(\w*)\n([\s\S]*?)```/g,(e,t,r)=>{const o=n.length,s=$(r.trimEnd()),i=t?` class="language-${$(t)}"`:"";return n.push(`
${s}
`),`${q}${o}\0`});const r=[];t=t.replace(/`([^`\n]+)`/g,(e,n)=>{const t=r.length;return r.push(`${$(n)}`),`${j}${t}\0`}),t=$(t),t=P(t,q,n),t=P(t,j,r);const o=t.split("\n"),s=[];let i=!1,a="",c=!1,l=[];for(let e=0;e')){u(),p(),m(),s.push(n);continue}const t=n.match(/^(#{1,6})\s+(.+)/);if(t){u(),p(),m();const e=t[1].length;s.push(`${t[2]}`);continue}const r=n.match(/^>\s?(.*)/);if(r){u(),p(),c||(c=!0,s.push('
')),s.push(`

${d(r[1])}

`);continue}c&&m();const h=n.match(/^[\-\*]\s+(.+)/);if(h){u(),m(),i&&"ul"===a||(p(),i=!0,a="ul",s.push('":""),i=!1,a="")}function m(){c&&(s.push("
"),c=!1)}}function P(e,n,t){return e.replace(new RegExp(n.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")+"(\\d+)\0","g"),(e,n)=>t[parseInt(n)]||"")}let R,U=null,O=[],W=null,K=null,V=null,J=null,X=null,Y=null,G=null,Q=null,Z=!1,ee=!1;function ne(e,n){U=e,W=n.messagesContainer,K=n.inputEl,V=n.sendBtn,J=n.clearBtn,X=n.categorySelect,Y=n.historyPanel,G=n.showLoading,Q=n.hideLoading,R=e.categoryId,ee=!!e.categoryId||!!e.showCategorySwitch,function(){if(!K||!V)return;V.addEventListener("click",()=>oe()),K.addEventListener("keydown",e=>{"Enter"!==e.key||e.shiftKey||(e.preventDefault(),oe())}),K.addEventListener("input",()=>re()),J&&J.addEventListener("click",()=>function(){if(!U)return;if(!confirm(i("clear_confirm")))return;if(O=[],W){W.querySelectorAll(".csk-msg, .csk-loading").forEach(e=>e.remove())}J&&(J.style.display="none");z(U.integrateId);const e=function(){const e="undefined"!=typeof crypto&&crypto.randomUUID?crypto.randomUUID().substring(0,8):Math.random().toString(36).substring(2,10);return`sdk_${Date.now()}_${e}`}();c(e),w(U.integrateId,U.userId,e),r.lifecycleClear(U.integrateId),r.info(`新 chatId=${e}`)}())}(),e.showCategorySwitch&&X&&async function(){if(!X)return;try{const e=await async function(){const e=d("/category/tree");try{const n=await p(e);if(!n.ok)throw new m(h(n.status),`http_${n.status}`);const t=await n.json();return t.success&&Array.isArray(t.data)?(r.info(`加载分类树成功 count=${t.data.length}`),t.data):[]}catch(e){return e instanceof m?r.error(`加载分类树失败: ${e.message}`):r.error("加载分类树失败",e),[]}}();if(0===e.length)return;X.innerHTML=``;const n=(e,t=0)=>{for(const r of e){const e=document.createElement("option");e.value=String(r.id),e.textContent=`${" ".repeat(t)}${r.name}`,void 0!==R&&String(r.id)===String(R)&&(e.selected=!0),X.appendChild(e),r.children&&r.children.length>0&&n(r.children,t+1)}};n(e),r.info(`知识库分类加载成功 count=${e.length}`)}catch(e){r.error(i("category_load_error"),e)}}()}async function te(){if(U&&W&&(await x(),await async function(){if(!U||!W)return;const e=l();if(!e)return;try{const n=await b(e);n.messages.length>0&&(O=n.messages.map((e,n)=>({id:C(),role:"USER"===e.messageType?"user":"ai",content:e.content,timestamp:new Date(e.createTime).getTime()})),se(),r.info(`从后端加载 ${O.length} 条历史消息`),T(U.integrateId,O))}catch(e){r.warn("从后端加载历史消息失败",e)}}(),0===O.length)){const e=function(e){try{const n=localStorage.getItem(B(e));if(!n)return[];const t=JSON.parse(n);return t&&Array.isArray(t.messages)?(r.info(`加载历史消息 integrateId=${e} count=${t.messages.length}`),t.messages):[]}catch(e){return r.warn("加载会话历史失败",e),[]}}(U.integrateId);e.length>0&&(O=e,se(),r.info(`从本地缓存恢复 ${e.length} 条消息`))}}function re(){if(!V||!K)return;K.value.trim().length>0&&!Z?V.removeAttribute("disabled"):V.setAttribute("disabled","true")}async function oe(){if(!K||!U||Z)return;const e=K.value.trim();if(""===e)return;K.value="",re(),K.style.height="auto",Z=!0,re(),U.chatId||await x();const n=S();W&&A(W,e,n);const t={id:C(),role:"user",content:e,timestamp:n};O.push(t),J&&O.length>0&&(J.style.display="inline-flex"),W&&D(W),G&&G(),W&&D(W);try{let n;const t=S(),o=ee&&(void 0!==R||void 0!==U.categoryId);n=U.streaming?await async function(e,n,t){return new Promise((r,o)=>{let s=null,a="",c=!1;k(e,e=>{if(a+=e,!c&&W){Q&&Q();const{bubble:e}=function(e,n){const t=document.createElement("div");t.className="csk-msg csk-msg--ai";const r=document.createElement("div");r.className="csk-msg__bubble",r.innerHTML="";const o=document.createElement("div");return o.className="csk-msg__time",o.textContent=M(n),t.appendChild(r),t.appendChild(o),e.appendChild(t),{wrapper:t,bubble:r}}(W,n);s=e,c=!0}s&&(s.textContent=a),W&&D(W)},()=>{c||""!==a?(s&&a&&(s.innerHTML=H(a)),r(a)):g(e).then(r).catch(o)},e=>{a.length>0?(s&&(s.innerHTML=H(a+"\n\n"+i("stream_interrupted"))),r(a)):o(e)},R,t)})}(e,t,o):await g(e),Q&&Q(),!U.streaming&&W&&N(W,n,t,H);const s={id:C(),role:"ai",content:n,timestamp:t};O.push(s),T(U.integrateId,O),W&&D(W),o&&async function(e,n){try{const t=await f(e,R);if(t.length>0){const e=t.map(e=>{var n,t;return{documentId:e.documentId||"",title:e.title||"",sourceName:e.sourceName||"",chunkIndex:null!==(n=e.chunkIndex)&&void 0!==n?n:0,score:null!==(t=e.score)&&void 0!==t?t:0,snippet:e.snippet||""}});if(n.sources=e,W){const n=W.querySelector(".csk-msg--ai:last-of-type");n&&L(n,e)}U&&T(U.integrateId,O)}}catch(e){r.warn("获取引用来源失败",e)}}(e,s)}catch(e){Q&&Q();const n=e instanceof m?e.message:i("error_send");if(W){const e=document.createElement("div");e.className="csk-msg csk-msg--ai";const t=document.createElement("div");t.className="csk-msg__bubble",t.style.color="#DC2626",t.textContent=`⚠ ${n}`,e.appendChild(t),W.appendChild(e)}r.error(`发送失败 integrateId=${U.integrateId}`,e)}finally{Z=!1,re()}}function se(){if(!W)return;const e=W.querySelector(".csk-history-panel");W.querySelectorAll(".csk-msg, .csk-loading").forEach(e=>e.remove());for(const e of O)if("user"===e.role)A(W,e.content,e.timestamp);else{const n=N(W,e.content,e.timestamp,H);e.sources&&e.sources.length>0&&L(n,e.sources)}D(W),J&&O.length>0&&(J.style.display="inline-flex"),e&&!W.contains(e)&&W.appendChild(e)}async function ie(){if(!Y||!U)return;const e=Y.querySelector("#csk-history-list");if(e){e.innerHTML='
加载中...
';try{const n=await y(1,50,U.userId,U.integrateId);!function(e,n,t,r,o,s){if(e.innerHTML="",0===n.length){const n=document.createElement("div");return n.className="csk-history-panel__empty",n.innerHTML=`\n
💬
\n
${i("history_empty")}
\n `,void e.appendChild(n)}for(const a of n){const n=document.createElement("div");n.className="csk-history-item";const c=a.chatId||a.id;s&&c===s&&n.classList.add("csk-history-item--active");const l=document.createElement("div");l.className="csk-history-item__info";const d=document.createElement("div");d.className="csk-history-item__id",a.lastMessagePreview?d.textContent=a.lastMessagePreview.length>60?a.lastMessagePreview.substring(0,60)+"...":a.lastMessagePreview:d.textContent=c;const u=document.createElement("div");u.className="csk-history-item__meta";const p=[];void 0!==a.messageCount&&p.push(`${a.messageCount} 条消息`),a.lastMessageTime?p.push(a.lastMessageTime):a.createdAt&&p.push(a.createdAt),u.textContent=p.join(" · "),l.appendChild(d),l.appendChild(u);const m=document.createElement("div");m.className="csk-history-item__actions";const h=document.createElement("button");h.className="csk-history-action csk-history-action--export",h.setAttribute("title",i("history_export")),h.innerHTML='',h.addEventListener("click",e=>{e.stopPropagation(),r(a.id)});const g=document.createElement("button");g.className="csk-history-action csk-history-action--delete",g.setAttribute("title",i("history_delete")),g.innerHTML='',g.addEventListener("click",e=>{e.stopPropagation(),o(a.id)}),m.appendChild(h),m.appendChild(g),n.appendChild(l),n.appendChild(m),n.addEventListener("click",()=>{t(c)}),e.appendChild(n)}}(e,n.list.map(e=>({id:e.conversationId||"",chatId:e.conversationId||"",messageCount:e.messageCount,lastMessageTime:e.lastMessageTime,lastMessagePreview:e.lastMessagePreview,createdAt:e.firstMessageTime||e.createdAt})),e=>{!async function(e){if(!U||!W)return;r.info(`切换到会话 conversationId=${e}`),c(e),w(U.integrateId,U.userId,e),Y&&Y.classList.add("csk-history-panel--hidden");O=[];W.querySelectorAll(".csk-msg, .csk-loading").forEach(e=>e.remove());try{const n=await b(e);n.messages.length>0&&(O=n.messages.map(e=>({id:C(),role:"USER"===e.messageType?"user":"ai",content:e.content,timestamp:new Date(e.createTime).getTime()})),se(),r.info(`加载会话 ${e} 的 ${O.length} 条消息`),T(U.integrateId,O))}catch(n){r.warn(`加载会话消息失败 conversationId=${e}`,n)}J&&O.length>0&&(J.style.display="inline-flex")}(e)},e=>{window.open(d(`/conversation/${e}/export`),"_blank")},async e=>{if(!confirm(i("history_delete_confirm")))return;if(await async function(e){const n=d(`/conversation/${e}`);try{const t=await p(n,{method:"DELETE"});if(!t.ok)throw new m(h(t.status),`http_${t.status}`);const o=await t.json();return r.info(`删除会话 id=${e} success=${o.success}`),o.success||!1}catch(e){return r.error("删除会话失败",e),!1}}(e)){if(e===l()){if(O=[],W){W.querySelectorAll(".csk-msg, .csk-loading").forEach(e=>e.remove())}J&&(J.style.display="none")}ie()}},l())}catch(n){r.error(i("history_load_error"),n),e.innerHTML=`
${i("history_load_error")}
`}}}let ae=null,ce=!1,le=null,de=null,ue=null,pe=null,me=null,he=null,ge=null,ke=null,fe=null,ye=null,be=null;function xe(){de&&de.classList.remove("csk-window--hidden")}function _e(){de&&de.classList.add("csk-window--hidden")}function we(){de&&(de.classList.contains("csk-window--hidden")?(xe(),setTimeout(()=>{pe&&pe.focus()},100)):_e())}const ve={init:function(e){if(ce)return void r.warn("SDK 已初始化,请先调用 destroy() 再重新初始化");const t=function(e){var n,t,o,s,i,a;if(!e.integrateId||"string"!=typeof e.integrateId&&"number"!=typeof e.integrateId||"string"==typeof e.integrateId&&""===e.integrateId.trim())return r.error('integrateId 是必传参数(对应后端 roleId 客服角色 ID),请检查 init() 调用。示例:ChatbotSDK.init({ integrateId: 1, requestDomain: "https://api.example.com" })'),null;if(!e.requestDomain||"string"!=typeof e.requestDomain||""===e.requestDomain.trim())return r.error('requestDomain 是必传参数,请检查 init() 调用。示例:ChatbotSDK.init({ integrateId: 1, requestDomain: "https://api.example.com" })'),null;try{new URL(e.requestDomain)}catch(n){return r.error(`requestDomain 不是合法的 URL 格式:${e.requestDomain}。请提供完整的域名,如 https://api.example.com`),null}const c={integrateId:String(e.integrateId).trim(),requestDomain:e.requestDomain.replace(/\/+$/,""),userId:e.userId,categoryId:e.categoryId,showCategorySwitch:null!==(n=e.showCategorySwitch)&&void 0!==n&&n,title:e.title||"AI 智能助手",width:null!==(t=e.width)&&void 0!==t?t:380,position:"left-bottom"===e.position?"left-bottom":"right-bottom",primaryColor:e.primaryColor||"#4F46E5",launcherIcon:e.launcherIcon||'\n \n \n',showClear:null===(o=e.showClear)||void 0===o||o,showAdminPanel:null!==(s=e.showAdminPanel)&&void 0!==s&&s,streaming:null===(i=e.streaming)||void 0===i||i,locale:e.locale||"zh-CN",debug:null===(a=e.debug)||void 0===a||a,chatId:""};return r.info(`配置解析完成 integrateId(=roleId)=${c.integrateId} userId(=accountId)=${c.userId||"(未设置)"} requestDomain=${c.requestDomain}`),c}(e);if(!t)return;var c;ae=t,function(e){if(o[e])s=e;else{const n=e.split("-")[0],t=Object.keys(o).find(e=>e.startsWith(n));t&&(s=t)}}(ae.locale),c=ae.debug,n=c,function(e){a=e}(ae),I(ae),le=F(ae,we),document.body.appendChild(le);const l=function(e){const n=document.createElement("div");n.id="csk-window",n.className=`csk-root csk-window csk-window--${"left-bottom"===e.position?"left":"right"} csk-window--hidden`;const t=document.createElement("div");t.className="csk-header";const r=document.createElement("span");r.className="csk-header__title",r.textContent=e.title;const o=document.createElement("div");o.className="csk-header__actions";const s=document.createElement("button");s.className="csk-history-btn",s.setAttribute("title",i("history_title")),s.innerHTML='';const a=document.createElement("button");a.className="csk-header__btn csk-header__btn--minimize",a.setAttribute("title",i("minimize")),a.innerHTML='',a.addEventListener("click",()=>{n.classList.add("csk-window--hidden")});const c=document.createElement("button");c.className="csk-header__btn csk-header__btn--close",c.setAttribute("title",i("close")),c.innerHTML='',c.addEventListener("click",()=>{n.classList.add("csk-window--hidden")}),o.appendChild(s),o.appendChild(a),o.appendChild(c),t.appendChild(r),t.appendChild(o);const l=document.createElement("div");l.id="csk-messages",l.className="csk-messages";const d=document.createElement("div");d.className="csk-history-panel csk-history-panel--hidden",d.innerHTML=`\n
\n ${i("history_title")}\n \n
\n
\n `,l.appendChild(d);const u=d.querySelector("#csk-history-back");u&&u.addEventListener("click",()=>{d.classList.add("csk-history-panel--hidden")}),s.addEventListener("click",e=>{e.stopPropagation();const t=d.classList.contains("csk-history-panel--hidden");d.classList.toggle("csk-history-panel--hidden"),t&&n.dispatchEvent(new CustomEvent("csk:loadHistory"))});let p=null;if(e.showCategorySwitch){const e=document.createElement("div");e.className="csk-category-bar";const r=document.createElement("span");r.className="csk-category-bar__label",r.textContent="📚",p=document.createElement("select"),p.id="csk-category-select",p.className="csk-category-select",p.innerHTML=``,p.addEventListener("change",()=>{const e=p.value;n.dispatchEvent(new CustomEvent("csk:categoryChange",{detail:{categoryId:e?Number(e):void 0}}))}),e.appendChild(r),e.appendChild(p),n.appendChild(t),n.appendChild(l),n.appendChild(e)}else n.appendChild(t),n.appendChild(l);const m=document.createElement("div");m.className="csk-input-area";const h=document.createElement("textarea");h.id="csk-input",h.className="csk-input",h.setAttribute("placeholder",i("placeholder")),h.setAttribute("rows","1"),h.setAttribute("autofocus","");const g=document.createElement("button");g.id="csk-send-btn",g.className="csk-send-btn",g.setAttribute("title",i("send")),g.setAttribute("disabled","true"),g.innerHTML='',m.appendChild(h),m.appendChild(g),n.appendChild(m);let k=null;e.showClear&&(k=document.createElement("button"),k.className="csk-clear-btn",k.textContent=i("clear"),k.style.display="none",n.insertBefore(k,m));let f=null;return{window:n,messagesContainer:l,inputEl:h,sendBtn:g,clearBtn:k,categorySelect:p,historyPanel:d,showLoading:function(){if(f)return f.style.display="flex",f;const e=document.createElement("div");return e.className="csk-loading",e.innerHTML='\n
\n
\n
\n ',l.appendChild(e),f=e,e},hideLoading:function(){f&&f.parentNode&&(f.parentNode.removeChild(f),f=null)}}}(ae);de=l.window,ue=l.messagesContainer,pe=l.inputEl,me=l.sendBtn,he=l.clearBtn,ge=l.categorySelect,ke=l.historyPanel,fe=l.showLoading,ye=l.hideLoading,document.body.appendChild(de);const d=de.querySelector(".csk-header");d&&(be=function(e,n){let t=!1,r=0,o=0,s=0,i=0;const a=e=>{t=!0,r=e.clientX,o=e.clientY;const a=n.getBoundingClientRect();s=r-a.left,i=o-a.top,document.addEventListener("mousemove",c),document.addEventListener("mouseup",l)},c=e=>{if(!t)return;const r=e.clientX-s,o=e.clientY-i,a=window.innerWidth-n.offsetWidth,c=window.innerHeight-n.offsetHeight;n.style.right="auto",n.style.bottom="auto",n.style.left=`${Math.max(0,Math.min(r,a))}px`,n.style.top=`${Math.max(0,Math.min(o,c))}px`},l=()=>{t=!1,document.removeEventListener("mousemove",c),document.removeEventListener("mouseup",l)};return e.addEventListener("mousedown",a),()=>{e.removeEventListener("mousedown",a),document.removeEventListener("mousemove",c),document.removeEventListener("mouseup",l)}}(d,de)),ne(ae,{messagesContainer:ue,inputEl:pe,sendBtn:me,clearBtn:he,categorySelect:ge,historyPanel:ke,showLoading:fe,hideLoading:ye}),de.addEventListener("csk:categoryChange",e=>{var n;n=e.detail.categoryId,R=n,ee=void 0!==n,r.lifecycleCategoryChange(null!=n?n:"全部")}),de.addEventListener("csk:loadHistory",()=>{ie()}),ce=!0,r.lifecycleInit(ae.integrateId,ae.requestDomain),te().catch(e=>{r.warn("chatId 初始化失败,将在发送消息时重试",e)})},destroy:function(){if(!ce)return;le&&le.parentNode&&(le.parentNode.removeChild(le),le=null),de&&de.parentNode&&(de.parentNode.removeChild(de),de=null),be&&(be(),be=null),v&&v.parentNode&&(v.parentNode.removeChild(v),v=null),document.querySelectorAll("style[data-csk-sdk]").forEach(e=>e.remove());const e=null==ae?void 0:ae.integrateId;ae=null,ce=!1,ue=null,pe=null,me=null,he=null,ge=null,ke=null,fe=null,ye=null,r.lifecycleDestroy(e||"")},open:xe,close:_e,toggle:we,clearHistory:function(){ae&&(he?he.click():confirm("确定清空所有对话记录?")&&z(ae.integrateId))}};return"undefined"!=typeof window&&(window.ChatbotSDK=ve),ve}(); +var ChatbotSDK=function(){"use strict";const n="[ChatbotSDK]";let e=!0;const t={},r={info(t,r){e&&console.log(n,t,void 0!==r?r:"")},warn(t,r){e&&console.warn(n,t,void 0!==r?r:"")},error(e,t){console.error(n,e,void 0!==t?t:"")},time(n){t[n]=Date.now()},timeEnd(r,s){const o=t[r];if(void 0!==o){const i=Date.now()-o;if(delete t[r],e){const e=s?`${s} ${i}ms`:`${r} ${i}ms`;console.log(n,e)}return i}return 0},lifecycleInit(n,e){this.info(`初始化完成 integrateId=${n} requestDomain=${e}`)},lifecycleDestroy(n){this.info(`销毁实例 integrateId=${n}`)},lifecycleSend(n,e){this.info(`发送消息 integrateId=${n} length=${e}`),this.time(`send_${n}`)},lifecycleReply(n,e){const t=this.timeEnd(`send_${n}`,"AI 回复");this.info(`AI 回复 integrateId=${n} length=${e} duration=${t}ms`)},lifecycleError(n,e,t){this.timeEnd(`send_${n}`),this.error(`请求失败 integrateId=${n} status=${e} message=${t}`)},lifecycleClear(n){this.info(`清空会话 integrateId=${n}`)},lifecycleStreamDone(n,e){const t=this.timeEnd(`send_${n}`,"流式回复");this.info(`流式回复完成 integrateId=${n} length=${e} duration=${t}ms`)},lifecycleCategoryChange(n){this.info(`切换知识库分类 categoryId=${n}`)}};const s={"zh-CN":{title:"AI 智能助手",minimize:"最小化",close:"关闭",status_online:"在线",welcome_title:"你好,我是 AI 智能助手",welcome_desc:"有什么可以帮你的吗?在下方输入框开始提问吧~",placeholder:"输入您的问题...",send:"发送",loading:"正在思考...",stream_interrupted:"回复被中断",stream_unstable:"网络不稳定,内容可能不完整",category_placeholder:"选择知识库分类",category_all:"全部分类",category_load_error:"加载分类失败",source_title:"参考来源",source_count:"{n} 条参考来源",source_loading:"加载来源中...",clear:"清空对话",clear_confirm:"确定清空所有对话记录?",history_title:"历史会话",history_empty:"暂无历史会话",history_load_error:"加载会话列表失败",history_delete_confirm:"确定删除该会话?",history_export:"导出",history_delete:"删除",error_network:"网络连接失败,请检查网络",error_timeout:"请求超时,请稍后重试",error_server:"服务器异常,请稍后重试",error_cors:"跨域请求被拦截,请联系管理员将当前域名加入 API 白名单",error_auth:"鉴权失败,请联系管理员",error_forbidden:"无访问权限,请联系管理员配置",error_not_found:"请求的资源不存在",error_rate_limit:"请求过于频繁,请稍后重试",error_unavailable:"服务暂不可用,请稍后重试",error_unknown:"请求发生未知错误",error_send:"发送失败,请稍后重试",error_stream_unsupported:"浏览器不支持流式读取"},en:{title:"AI Assistant",minimize:"Minimize",close:"Close",status_online:"Online",welcome_title:"Hi, I am your AI assistant",welcome_desc:"How can I help you? Type your question below to get started.",placeholder:"Type your question...",send:"Send",loading:"Thinking...",stream_interrupted:"Response interrupted",stream_unstable:"Network unstable, content may be incomplete",category_placeholder:"Select category",category_all:"All categories",category_load_error:"Failed to load categories",source_title:"Sources",source_count:"{n} source(s)",source_loading:"Loading sources...",clear:"Clear chat",clear_confirm:"Clear all conversation history?",history_title:"History",history_empty:"No conversations yet",history_load_error:"Failed to load conversations",history_delete_confirm:"Delete this conversation?",history_export:"Export",history_delete:"Delete",error_network:"Network connection failed",error_timeout:"Request timed out, please try again",error_server:"Server error, please try again later",error_cors:"CORS request blocked. Please contact admin to whitelist your domain",error_auth:"Authentication failed, please contact admin",error_forbidden:"Access denied, please contact admin",error_not_found:"Resource not found",error_rate_limit:"Too many requests, please try again later",error_unavailable:"Service temporarily unavailable",error_unknown:"Unknown request error",error_send:"Failed to send, please try again",error_stream_unsupported:"Browser does not support streaming"}};let o="zh-CN";function i(n,e){let t=(s[o]||s["zh-CN"])[n]||s["zh-CN"][n]||n;if(e)for(const[n,r]of Object.entries(e))t=t.replace(`{${n}}`,String(r));return t}let a=null;function c(n){a&&(a.chatId=n)}function l(){return(null==a?void 0:a.chatId)||""}function d(n){if(!a)throw new Error("API 配置未初始化");return`${a.requestDomain.replace(/\/+$/,"")}${n.startsWith("/")?n:`/${n}`}`}function p(n,e,t){null!=t&&("string"==typeof t&&""===t.trim()||n.set(e,String(t)))}async function u(n,e={},t=3e4){const r=new AbortController,s=setTimeout(()=>r.abort(),t);try{return await fetch(n,Object.assign(Object.assign({},e),{signal:r.signal,mode:"cors",credentials:"include"}))}catch(n){if(n instanceof DOMException&&"AbortError"===n.name)throw new m(i("error_timeout"),"timeout");if(n instanceof TypeError&&n.message.includes("Failed to fetch"))throw new m(i("error_cors"),"cors");throw new m(i("error_network"),"network")}finally{clearTimeout(s)}}class m extends Error{constructor(n,e){super(n),this.name="CskError",this.type=e}}function h(n){switch(n){case 401:return i("error_auth");case 403:return i("error_forbidden");case 404:return i("error_not_found");case 429:return i("error_rate_limit");case 500:return i("error_server");case 502:case 503:return i("error_unavailable");default:return`${i("error_unknown")}(${n})`}}async function g(n){const e=function(n){const e=new URLSearchParams;return e.set("message",n),e.set("chatId",a.chatId),p(e,"roleId",a.integrateId),p(e,"accountId",a.userId),d(`/ai/assistant_app/chat/sync?${e.toString()}`)}(n);r.lifecycleSend(a.integrateId,n.length);try{const n=await u(e);if(!n.ok){const e=h(n.status);throw r.lifecycleError(a.integrateId,String(n.status),e),new m(e,`http_${n.status}`)}const t=await n.text();return r.lifecycleReply(a.integrateId,t.length),t}catch(n){if(n instanceof m)throw n;throw r.lifecycleError(a.integrateId,"unknown",String(n)),new m(i("error_unknown"),"unknown")}}async function k(n,e,t,s,o,c){var l;const g=c?function(n,e){const t=new URLSearchParams;return t.set("message",n),t.set("chatId",a.chatId),t.set("rewriteStrategy","REWRITE"),p(t,"roleId",a.integrateId),p(t,"accountId",a.userId),p(t,"categoryId",null!=e?e:a.categoryId),d(`/ai/assistant_app/chat/rag/sse?${t.toString()}`)}(n,o):function(n,e){const t=new URLSearchParams;return t.set("message",n),t.set("chatId",a.chatId),p(t,"roleId",a.integrateId),p(t,"accountId",a.userId),p(t,"categoryId",null!=e?e:a.categoryId),d(`/ai/assistant_app/chat/sse?${t.toString()}`)}(n,o);let k="";r.lifecycleSend(a.integrateId,n.length);try{const n=await u(g,{},6e4);if(!n.ok){const e=h(n.status);return r.lifecycleError(a.integrateId,String(n.status),e),void s(new m(e,`http_${n.status}`))}const o=null===(l=n.body)||void 0===l?void 0:l.getReader();if(!o)return void s(new m(i("error_stream_unsupported"),"stream_unsupported"));const c=new TextDecoder("utf-8",{stream:!0});let d="";try{for(;;){const{done:n,value:t}=await o.read();if(n)break;d+=c.decode(t,{stream:!0});const r=d.split("\n");d=r.pop()||"";for(const n of r){const t=n.trim();if(t&&!t.startsWith(":"))if(t.startsWith("data:")){const n=t.substring(5).trim();n&&(k+=n,e(n))}else{if("[DONE]"===t)break;t.startsWith("event:")||t.startsWith("id:")||t.startsWith("retry:")||(k+=t,e(t))}}}if(d.trim()){const n=d.trim();if(n.startsWith("data:")){const t=n.substring(5).trim();t&&(k+=t,e(t))}else"[DONE]"!==n&&(k+=n,e(n))}}catch(n){if(!(k.length>0))throw n;e("\n\n"+i("stream_unstable"))}finally{o.releaseLock()}r.lifecycleStreamDone(a.integrateId,k.length),t()}catch(n){n instanceof m?s(n):(r.lifecycleError(a.integrateId,"unknown",String(n)),s(new m(i("error_network"),"network")))}}async function f(n,e){const t=function(n,e){const t=new URLSearchParams;return t.set("message",n),t.set("chatId",a.chatId),t.set("rewriteStrategy","REWRITE"),p(t,"roleId",a.integrateId),p(t,"accountId",a.userId),p(t,"categoryId",null!=e?e:a.categoryId),d(`/ai/assistant_app/rag/sources?${t.toString()}`)}(n,e);try{const n=await u(t);if(!n.ok)throw new m(h(n.status),`http_${n.status}`);const e=await n.json();return e.success&&Array.isArray(e.data)?(r.info(`获取引用来源 count=${e.data.length}`),e.data):[]}catch(n){return r.error("获取引用来源失败",n),[]}}async function b(n=1,e=20,t,s){let o=`/conversation/list?page=${n}&size=${e}`;t&&(o+=`&accountId=${encodeURIComponent(t)}`),s&&(o+=`&roleId=${encodeURIComponent(s)}`);const i=d(o);try{const n=await u(i);if(!n.ok)throw new m(h(n.status),`http_${n.status}`);const e=await n.json();return{list:e.success&&Array.isArray(e.data)?e.data:[],total:e.total||0,pages:e.pages||0}}catch(n){return r.error("加载会话列表失败",n),{list:[],total:0,pages:0}}}async function x(n){const e=d(`/conversation/${n}/messages`);try{const n=await u(e);if(!n.ok)throw new m(h(n.status),`http_${n.status}`);const t=await n.json();return{messages:t.success&&Array.isArray(t.data)?t.data:[],total:t.total||0}}catch(n){return r.error("加载会话消息失败",n),{messages:[],total:0}}}async function y(){if(!a)return"";const n=function(n,e){try{return localStorage.getItem(_(n,e))||""}catch(n){return""}}(a.integrateId,a.userId);if(n)return a.chatId=n,r.info(`从缓存恢复 chatId=${n}`),n;try{const n=await b(1,5,a.userId,a.integrateId);if(n.list.length>0){const e=n.list[0],t=e.conversationId||e.chatId||"";if(t)return a.chatId=t,w(a.integrateId,a.userId,t),r.info(`从后端恢复会话 chatId=${t} messageCount=${e.messageCount}`),t}}catch(n){r.warn("查询后端会话列表失败,将生成新 chatId",n)}const e=function(){const n="undefined"!=typeof crypto&&crypto.randomUUID?crypto.randomUUID().substring(0,8):Math.random().toString(36).substring(2,10);return`sdk_${Date.now()}_${n}`}();return a.chatId=e,w(a.integrateId,a.userId,e),r.info(`生成新 chatId=${e}`),e}function _(n,e){return`csk_chatId_${n}${e?"_"+e:""}`}function w(n,e,t){try{t?localStorage.setItem(_(n,e),t):localStorage.removeItem(_(n,e))}catch(n){}}let v=null;function C(n){const e=I(n.primaryColor,-15),t=I(n.primaryColor,18),r=function(n){const e=n.match(/^#([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/);return e?`${parseInt(e[1],16)}, ${parseInt(e[2],16)}, ${parseInt(e[3],16)}`:"79, 70, 229"}(n.primaryColor);return`\n --csk-primary: ${n.primaryColor};\n --csk-primary-hover: ${e};\n --csk-primary-light: ${t};\n --csk-primary-rgb: ${r};\n --csk-bg-user: linear-gradient(135deg, ${n.primaryColor}, ${e});\n --csk-bg-ai: #ffffff;\n --csk-text-user: #ffffff;\n --csk-text-ai: #1F2937;\n --csk-window-width: ${n.width}px;\n --csk-radius: 16px;\n --csk-shadow-window: 0 12px 48px rgba(15, 23, 42, 0.18), 0 2px 8px rgba(15, 23, 42, 0.06);\n --csk-shadow-bubble: 0 1px 2px rgba(15, 23, 42, 0.06);\n --csk-border: #ECEEF2;\n --csk-bg-app: #F6F7F9;\n `}function I(n,e){const t=n.match(/^#([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/);if(!t)return n;const r=n=>Math.max(0,Math.min(255,n)),s=r(parseInt(t[1],16)+e),o=r(parseInt(t[2],16)+e),i=r(parseInt(t[3],16)+e);return`#${s.toString(16).padStart(2,"0")}${o.toString(16).padStart(2,"0")}${i.toString(16).padStart(2,"0")}`}function E(n){document.querySelector("style[data-csk-sdk]")||(v=document.createElement("style"),v.setAttribute("data-csk-sdk",""),v.textContent=function(n){return`\n/* ChatbotSDK 样式 - csk- 命名空间 */\n.csk-root {\n ${C(n)}\n font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans SC", "PingFang SC", "Microsoft YaHei", sans-serif;\n font-size: 14px;\n line-height: 1.55;\n color: #1F2937;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n box-sizing: border-box;\n}\n.csk-root *, .csk-root *::before, .csk-root *::after { box-sizing: border-box; }\n\n/* ========== 悬浮按钮 ========== */\n.csk-launcher {\n position: fixed;\n bottom: 24px;\n z-index: 9998;\n width: 58px;\n height: 58px;\n border-radius: 50%;\n background: var(--csk-bg-user);\n box-shadow: 0 8px 24px rgba(var(--csk-primary-rgb), 0.42), 0 2px 6px rgba(15, 23, 42, 0.12);\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n transition: transform 0.22s cubic-bezier(0.34, 1.56, 0.64, 1), box-shadow 0.22s ease;\n border: none;\n color: #fff;\n user-select: none;\n}\n.csk-launcher--right { right: 24px; }\n.csk-launcher--left { left: 24px; }\n.csk-launcher::after {\n content: '';\n position: absolute;\n inset: -4px;\n border-radius: 50%;\n border: 2px solid rgba(var(--csk-primary-rgb), 0.35);\n opacity: 0;\n animation: csk-ping 2.6s cubic-bezier(0, 0, 0.2, 1) infinite;\n pointer-events: none;\n}\n.csk-launcher:hover {\n transform: translateY(-2px) scale(1.05);\n box-shadow: 0 12px 32px rgba(var(--csk-primary-rgb), 0.5), 0 4px 10px rgba(15, 23, 42, 0.14);\n}\n.csk-launcher:active { transform: scale(0.94); }\n.csk-launcher svg { width: 28px; height: 28px; }\n\n@keyframes csk-ping {\n 0% { transform: scale(0.92); opacity: 0.7; }\n 70%, 100% { transform: scale(1.35); opacity: 0; }\n}\n\n/* ========== 聊天弹窗 ========== */\n.csk-window {\n position: fixed;\n bottom: 24px;\n z-index: 9999;\n width: var(--csk-window-width);\n height: 600px;\n max-height: calc(100vh - 48px);\n background: #fff;\n border-radius: var(--csk-radius);\n box-shadow: var(--csk-shadow-window);\n display: flex;\n flex-direction: column;\n overflow: hidden;\n transform-origin: bottom right;\n transition: opacity 0.24s ease, transform 0.24s cubic-bezier(0.34, 1.2, 0.64, 1), visibility 0.24s;\n opacity: 1;\n transform: translateY(0) scale(1);\n visibility: visible;\n pointer-events: auto;\n}\n.csk-window--right { right: 24px; transform-origin: bottom right; }\n.csk-window--left { left: 24px; transform-origin: bottom left; }\n.csk-window--hidden {\n opacity: 0;\n transform: translateY(12px) scale(0.96);\n visibility: hidden;\n pointer-events: none;\n}\n\n/* ========== 头部 ========== */\n.csk-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 12px 16px;\n min-height: 60px;\n background: var(--csk-bg-user);\n color: #fff;\n cursor: move;\n user-select: none;\n position: relative;\n flex-shrink: 0;\n}\n.csk-header::after {\n content: '';\n position: absolute;\n left: 0; right: 0; bottom: 0;\n height: 24px;\n background: linear-gradient(to bottom, rgba(0,0,0,0.04), transparent);\n pointer-events: none;\n}\n.csk-header__left {\n display: flex;\n align-items: center;\n gap: 12px;\n min-width: 0;\n}\n.csk-header__avatar {\n width: 38px;\n height: 38px;\n border-radius: 50%;\n background: rgba(255, 255, 255, 0.22);\n backdrop-filter: blur(4px);\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.25);\n}\n.csk-header__avatar svg { width: 22px; height: 22px; }\n.csk-header__info {\n display: flex;\n flex-direction: column;\n min-width: 0;\n}\n.csk-header__title {\n font-size: 15px;\n font-weight: 600;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n letter-spacing: 0.2px;\n}\n.csk-header__status {\n display: inline-flex;\n align-items: center;\n gap: 5px;\n font-size: 11.5px;\n opacity: 0.9;\n margin-top: 2px;\n}\n.csk-status-dot {\n width: 7px;\n height: 7px;\n border-radius: 50%;\n background: #6EE7B7;\n box-shadow: 0 0 0 0 rgba(110, 231, 183, 0.7);\n animation: csk-status-pulse 2s infinite;\n}\n@keyframes csk-status-pulse {\n 0% { box-shadow: 0 0 0 0 rgba(110, 231, 183, 0.7); }\n 70% { box-shadow: 0 0 0 6px rgba(110, 231, 183, 0); }\n 100% { box-shadow: 0 0 0 0 rgba(110, 231, 183, 0); }\n}\n.csk-header__actions {\n display: flex;\n align-items: center;\n gap: 2px;\n flex-shrink: 0;\n}\n.csk-header__btn,\n.csk-history-btn {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n height: 32px;\n border: none;\n background: transparent;\n color: #fff;\n cursor: pointer;\n border-radius: 8px;\n transition: background 0.15s, transform 0.15s;\n}\n.csk-header__btn:hover,\n.csk-history-btn:hover {\n background: rgba(255, 255, 255, 0.2);\n}\n.csk-header__btn:active,\n.csk-history-btn:active { transform: scale(0.92); }\n\n/* ========== 消息区 ========== */\n.csk-messages {\n flex: 1;\n overflow-y: auto;\n padding: 20px 16px 12px;\n background: var(--csk-bg-app);\n scroll-behavior: smooth;\n}\n.csk-messages::-webkit-scrollbar { width: 6px; }\n.csk-messages::-webkit-scrollbar-track { background: transparent; }\n.csk-messages::-webkit-scrollbar-thumb {\n background: #D8DCE3;\n border-radius: 3px;\n}\n.csk-messages::-webkit-scrollbar-thumb:hover { background: #C2C7D0; }\n\n/* 欢迎空状态 */\n.csk-welcome {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n text-align: center;\n padding: 48px 24px 32px;\n color: #6B7280;\n animation: csk-fade-in 0.3s ease;\n}\n.csk-welcome__avatar {\n width: 56px;\n height: 56px;\n border-radius: 50%;\n background: var(--csk-bg-user);\n color: #fff;\n display: flex;\n align-items: center;\n justify-content: center;\n margin-bottom: 14px;\n box-shadow: 0 6px 18px rgba(var(--csk-primary-rgb), 0.3);\n}\n.csk-welcome__avatar svg { width: 30px; height: 30px; }\n.csk-welcome__title {\n font-size: 15px;\n font-weight: 600;\n color: #1F2937;\n margin-bottom: 4px;\n}\n.csk-welcome__desc {\n font-size: 13px;\n color: #9CA3AF;\n line-height: 1.6;\n}\n\n/* 消息气泡 */\n.csk-msg {\n display: flex;\n margin-bottom: 18px;\n max-width: 100%;\n word-break: break-word;\n animation: csk-msg-in 0.28s cubic-bezier(0.22, 1, 0.36, 1);\n}\n.csk-msg--user {\n flex-direction: row-reverse;\n align-items: flex-end;\n}\n.csk-msg--ai {\n flex-direction: row;\n align-items: flex-start;\n}\n.csk-msg__avatar {\n width: 30px;\n height: 30px;\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n margin: 0 8px;\n box-shadow: var(--csk-shadow-bubble);\n}\n.csk-msg__avatar svg { width: 18px; height: 18px; }\n.csk-msg__avatar--ai {\n background: #fff;\n color: var(--csk-primary);\n border: 1px solid var(--csk-border);\n}\n.csk-msg__avatar--user {\n background: var(--csk-bg-user);\n color: #fff;\n}\n.csk-msg__content {\n display: flex;\n flex-direction: column;\n min-width: 0;\n max-width: calc(100% - 46px);\n}\n.csk-msg--user .csk-msg__content { align-items: flex-end; }\n.csk-msg--ai .csk-msg__content { align-items: flex-start; }\n.csk-msg__bubble {\n padding: 10px 14px;\n border-radius: 16px;\n font-size: 14px;\n line-height: 1.6;\n box-shadow: var(--csk-shadow-bubble);\n}\n.csk-msg--user .csk-msg__bubble {\n background: var(--csk-bg-user);\n color: var(--csk-text-user);\n border-radius: 16px 16px 4px 16px;\n}\n.csk-msg--ai .csk-msg__bubble {\n background: var(--csk-bg-ai);\n color: var(--csk-text-ai);\n border-radius: 16px 16px 16px 4px;\n border: 1px solid var(--csk-border);\n}\n.csk-msg__time {\n font-size: 11px;\n color: #9CA3AF;\n margin-top: 5px;\n padding: 0 4px;\n}\n\n@keyframes csk-msg-in {\n from { opacity: 0; transform: translateY(8px); }\n to { opacity: 1; transform: translateY(0); }\n}\n@keyframes csk-fade-in {\n from { opacity: 0; }\n to { opacity: 1; }\n}\n\n/* ========== Loading 动画 ========== */\n.csk-loading {\n display: flex;\n align-items: center;\n margin-bottom: 18px;\n animation: csk-msg-in 0.28s ease;\n}\n.csk-loading__avatar {\n width: 30px;\n height: 30px;\n border-radius: 50%;\n background: #fff;\n color: var(--csk-primary);\n border: 1px solid var(--csk-border);\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n margin: 0 8px;\n box-shadow: var(--csk-shadow-bubble);\n}\n.csk-loading__avatar svg { width: 18px; height: 18px; }\n.csk-loading__bubble {\n background: #fff;\n border: 1px solid var(--csk-border);\n border-radius: 16px 16px 16px 4px;\n padding: 12px 16px;\n display: flex;\n align-items: center;\n gap: 5px;\n}\n.csk-loading__dot {\n width: 7px;\n height: 7px;\n border-radius: 50%;\n background: #B4B9C2;\n animation: csk-bounce 1.4s ease-in-out infinite both;\n}\n.csk-loading__dot:nth-child(1) { animation-delay: 0s; }\n.csk-loading__dot:nth-child(2) { animation-delay: 0.16s; }\n.csk-loading__dot:nth-child(3) { animation-delay: 0.32s; }\n\n@keyframes csk-bounce {\n 0%, 80%, 100% { transform: scale(0.6); opacity: 0.6; }\n 40% { transform: scale(1); opacity: 1; }\n}\n\n/* ========== 输入区 ========== */\n.csk-input-area {\n padding: 10px 12px 14px;\n background: #fff;\n border-top: 1px solid var(--csk-border);\n flex-shrink: 0;\n}\n.csk-input-wrap {\n display: flex;\n align-items: flex-end;\n gap: 8px;\n background: var(--csk-bg-app);\n border: 1px solid var(--csk-border);\n border-radius: 14px;\n padding: 6px 6px 6px 14px;\n transition: border-color 0.2s, box-shadow 0.2s, background 0.2s;\n}\n.csk-input-wrap--focus {\n border-color: var(--csk-primary);\n background: #fff;\n box-shadow: 0 0 0 3px rgba(var(--csk-primary-rgb), 0.12);\n}\n.csk-input {\n flex: 1;\n border: none;\n background: transparent;\n padding: 8px 0;\n font-size: 14px;\n outline: none;\n font-family: inherit;\n resize: none;\n min-height: 22px;\n max-height: 120px;\n line-height: 1.5;\n color: #1F2937;\n}\n.csk-input::placeholder { color: #9CA3AF; }\n.csk-send-btn {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 36px;\n height: 36px;\n min-width: 36px;\n border: none;\n border-radius: 10px;\n background: var(--csk-bg-user);\n color: #fff;\n cursor: pointer;\n transition: transform 0.18s, box-shadow 0.18s, opacity 0.18s;\n box-shadow: 0 3px 10px rgba(var(--csk-primary-rgb), 0.3);\n}\n.csk-send-btn:hover:not(:disabled) {\n transform: translateY(-1px);\n box-shadow: 0 5px 14px rgba(var(--csk-primary-rgb), 0.4);\n}\n.csk-send-btn:active:not(:disabled) { transform: scale(0.92); }\n.csk-send-btn:disabled {\n background: #D1D5DB;\n box-shadow: none;\n cursor: not-allowed;\n opacity: 0.7;\n}\n.csk-send-btn svg { width: 18px; height: 18px; }\n\n/* ========== 清空按钮 ========== */\n.csk-clear-btn {\n display: inline-flex;\n align-items: center;\n gap: 5px;\n padding: 5px 12px;\n border: 1px solid var(--csk-border);\n border-radius: 999px;\n background: #fff;\n color: #6B7280;\n font-size: 12px;\n cursor: pointer;\n margin: 0 auto 8px;\n transition: all 0.15s;\n font-family: inherit;\n}\n.csk-clear-btn:hover {\n background: #FEF2F2;\n border-color: #FCA5A5;\n color: #DC2626;\n}\n\n/* ========== P1: 知识库分类下拉 ========== */\n.csk-category-bar {\n display: flex;\n align-items: center;\n padding: 8px 12px;\n border-top: 1px solid var(--csk-border);\n background: #FBFBFC;\n gap: 8px;\n flex-shrink: 0;\n}\n.csk-category-bar__label {\n font-size: 13px;\n white-space: nowrap;\n}\n.csk-category-select {\n flex: 1;\n padding: 6px 28px 6px 10px;\n border: 1px solid var(--csk-border);\n border-radius: 8px;\n font-size: 12.5px;\n color: #374151;\n background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%239CA3AF' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E") no-repeat right 9px center;\n appearance: none;\n -webkit-appearance: none;\n outline: none;\n cursor: pointer;\n font-family: inherit;\n transition: border-color 0.2s, box-shadow 0.2s;\n max-width: 220px;\n}\n.csk-category-select:focus {\n border-color: var(--csk-primary);\n box-shadow: 0 0 0 3px rgba(var(--csk-primary-rgb), 0.12);\n}\n\n/* ========== P1: RAG 引用来源卡片 ========== */\n.csk-sources {\n margin-top: 8px;\n border: 1px solid var(--csk-border);\n border-radius: 12px;\n overflow: hidden;\n font-size: 12px;\n max-width: 100%;\n background: #FAFBFC;\n}\n.csk-sources__header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 8px 12px;\n background: #F3F4F7;\n cursor: pointer;\n user-select: none;\n transition: background 0.15s;\n}\n.csk-sources__header:hover { background: #ECEEF2; }\n.csk-sources__title {\n display: flex;\n align-items: center;\n gap: 5px;\n font-weight: 500;\n color: #374151;\n}\n.csk-sources__arrow {\n transition: transform 0.2s;\n color: #9CA3AF;\n font-size: 10px;\n}\n.csk-sources--collapsed .csk-sources__arrow { transform: rotate(-90deg); }\n.csk-sources__body {\n border-top: 1px solid var(--csk-border);\n padding: 0;\n}\n.csk-sources--collapsed .csk-sources__body { display: none; }\n.csk-source-item {\n padding: 9px 12px;\n border-bottom: 1px solid #F0F1F4;\n transition: background 0.15s;\n}\n.csk-source-item:last-child { border-bottom: none; }\n.csk-source-item:hover { background: #fff; }\n.csk-source-item__name {\n font-weight: 500;\n color: #1F2937;\n margin-bottom: 3px;\n}\n.csk-source-item__snippet {\n color: #6B7280;\n line-height: 1.5;\n overflow: hidden;\n text-overflow: ellipsis;\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n}\n.csk-source-item__meta {\n font-size: 11px;\n color: #9CA3AF;\n margin-top: 4px;\n}\n\n/* ========== P1: Markdown 渲染样式 ========== */\n.csk-msg--ai .csk-msg__bubble .csk-md-p { margin: 0 0 8px; }\n.csk-msg--ai .csk-msg__bubble .csk-md-p:last-child { margin-bottom: 0; }\n.csk-msg--ai .csk-msg__bubble .csk-md-h1,\n.csk-msg--ai .csk-msg__bubble .csk-md-h2,\n.csk-msg--ai .csk-msg__bubble .csk-md-h3,\n.csk-msg--ai .csk-msg__bubble .csk-md-h4,\n.csk-msg--ai .csk-msg__bubble .csk-md-h5,\n.csk-msg--ai .csk-msg__bubble .csk-md-h6 {\n margin: 14px 0 6px;\n font-weight: 600;\n line-height: 1.3;\n color: #111827;\n}\n.csk-msg--ai .csk-msg__bubble .csk-md-h1 { font-size: 20px; }\n.csk-msg--ai .csk-msg__bubble .csk-md-h2 { font-size: 17px; }\n.csk-msg--ai .csk-msg__bubble .csk-md-h3 { font-size: 15px; }\n.csk-msg--ai .csk-msg__bubble .csk-md-h4 { font-size: 14px; }\n\n.csk-md-code-block {\n background: #1E293B;\n color: #E2E8F0;\n padding: 12px 14px;\n border-radius: 10px;\n overflow-x: auto;\n margin: 8px 0;\n font-size: 13px;\n line-height: 1.55;\n font-family: 'SF Mono', 'Consolas', 'Menlo', 'Monaco', monospace;\n}\n.csk-md-code-block code {\n background: none;\n padding: 0;\n border-radius: 0;\n font-size: inherit;\n color: inherit;\n}\n.csk-md-inline-code {\n background: rgba(var(--csk-primary-rgb), 0.1);\n color: var(--csk-primary);\n padding: 1px 6px;\n border-radius: 5px;\n font-size: 13px;\n font-family: 'SF Mono', 'Consolas', 'Menlo', 'Monaco', monospace;\n}\n.csk-msg--ai .csk-msg__bubble .csk-md-ul,\n.csk-msg--ai .csk-msg__bubble .csk-md-ol {\n padding-left: 22px;\n margin: 6px 0;\n}\n.csk-msg--ai .csk-msg__bubble .csk-md-ul li,\n.csk-msg--ai .csk-msg__bubble .csk-md-ol li { margin-bottom: 4px; }\n.csk-md-blockquote {\n border-left: 3px solid var(--csk-primary);\n padding: 2px 12px;\n margin: 8px 0;\n color: #6B7280;\n background: rgba(var(--csk-primary-rgb), 0.05);\n border-radius: 0 6px 6px 0;\n}\n.csk-md-link {\n color: var(--csk-primary);\n text-decoration: none;\n border-bottom: 1px solid rgba(var(--csk-primary-rgb), 0.3);\n transition: border-color 0.15s;\n}\n.csk-md-link:hover { border-bottom-color: var(--csk-primary); }\n.csk-md-hr {\n border: none;\n border-top: 1px solid var(--csk-border);\n margin: 12px 0;\n}\n\n/* ========== P2: 会话管理面板 ========== */\n.csk-history-panel {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: #fff;\n z-index: 10;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n animation: csk-slide-in 0.24s ease;\n}\n.csk-history-panel--hidden { display: none; }\n@keyframes csk-slide-in {\n from { transform: translateX(100%); opacity: 0.4; }\n to { transform: translateX(0); opacity: 1; }\n}\n.csk-history-panel__header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 14px 16px;\n border-bottom: 1px solid var(--csk-border);\n background: var(--csk-bg-app);\n flex-shrink: 0;\n}\n.csk-history-panel__title {\n font-size: 14px;\n font-weight: 600;\n color: #1F2937;\n}\n.csk-history-panel__back {\n display: flex;\n align-items: center;\n gap: 4px;\n padding: 5px 12px;\n border: 1px solid var(--csk-border);\n border-radius: 8px;\n background: #fff;\n color: #374151;\n font-size: 12px;\n cursor: pointer;\n transition: all 0.15s;\n font-family: inherit;\n}\n.csk-history-panel__back:hover { background: #F3F4F6; }\n.csk-history-panel__list {\n flex: 1;\n overflow-y: auto;\n padding: 10px;\n}\n.csk-history-panel__list::-webkit-scrollbar { width: 5px; }\n.csk-history-panel__list::-webkit-scrollbar-thumb { background: #E5E7EB; border-radius: 2px; }\n.csk-history-item {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 11px 12px;\n border-radius: 10px;\n cursor: pointer;\n transition: background 0.15s;\n margin-bottom: 5px;\n border: 1px solid transparent;\n}\n.csk-history-item:hover { background: #F3F4F6; }\n.csk-history-item--active {\n background: rgba(var(--csk-primary-rgb), 0.08);\n border-color: rgba(var(--csk-primary-rgb), 0.2);\n}\n.csk-history-item--active:hover { background: rgba(var(--csk-primary-rgb), 0.12); }\n.csk-history-item__info { flex: 1; min-width: 0; }\n.csk-history-item__id {\n font-size: 13px;\n font-weight: 500;\n color: #1F2937;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.csk-history-item__meta {\n font-size: 11px;\n color: #9CA3AF;\n margin-top: 3px;\n}\n.csk-history-item__actions {\n display: flex;\n gap: 4px;\n margin-left: 8px;\n opacity: 0;\n transition: opacity 0.15s;\n}\n.csk-history-item:hover .csk-history-item__actions { opacity: 1; }\n.csk-history-action {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 28px;\n height: 28px;\n border: none;\n border-radius: 7px;\n cursor: pointer;\n font-size: 12px;\n transition: all 0.15s;\n}\n.csk-history-action--export { background: #EFF6FF; color: #2563EB; }\n.csk-history-action--export:hover { background: #DBEAFE; }\n.csk-history-action--delete { background: #FEF2F2; color: #DC2626; }\n.csk-history-action--delete:hover { background: #FEE2E2; }\n.csk-history-panel__empty {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 48px 20px;\n color: #9CA3AF;\n font-size: 13px;\n text-align: center;\n}\n.csk-history-panel__empty-icon {\n font-size: 34px;\n margin-bottom: 10px;\n opacity: 0.5;\n}\n.csk-history-panel__loading {\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 24px;\n color: #9CA3AF;\n font-size: 13px;\n}\n.csk-history-panel__loadmore {\n display: block;\n width: 100%;\n padding: 10px;\n border: none;\n background: #F9FAFB;\n color: #6B7280;\n font-size: 12px;\n cursor: pointer;\n text-align: center;\n transition: background 0.15s;\n}\n.csk-history-panel__loadmore:hover { background: #F3F4F6; }\n\n/* ========== 移动端适配 ========== */\n@media (max-width: 480px) {\n .csk-window {\n width: 100vw !important;\n height: 100vh !important;\n max-height: 100vh;\n bottom: 0 !important;\n right: 0 !important;\n left: 0 !important;\n border-radius: 0;\n }\n .csk-window--hidden { transform: translateY(100%); }\n .csk-launcher { bottom: 20px; }\n .csk-launcher--right { right: 20px; }\n .csk-launcher--left { left: 20px; }\n}\n`}(n),document.head.appendChild(v))}function $(){return"undefined"!=typeof crypto&&crypto.randomUUID?crypto.randomUUID():"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,n=>{const e=16*Math.random()|0;return("x"===n?e:3&e|8).toString(16)})}function S(n){const e={"&":"&","<":"<",">":">",'"':""","'":"'"};return n.replace(/[&<>"']/g,n=>e[n]||n)}function N(){return Date.now()}const A='';function L(n,e){const t=document.createElement("div");t.id="csk-launcher",t.className="csk-launcher csk-launcher--"+("left-bottom"===n.position?"left":"right"),t.setAttribute("title",n.title),t.setAttribute("aria-label",n.title),t.setAttribute("role","button"),t.setAttribute("tabindex","0"),t.innerHTML=n.launcherIcon;const r=function(n,e){let t=null;return function(...r){null!==t&&clearTimeout(t),t=setTimeout(()=>{n.apply(this,r),t=null},e)}}(e,300);return t.addEventListener("click",r),t.addEventListener("keydown",n=>{"Enter"!==n.key&&" "!==n.key||(n.preventDefault(),r())}),t}function F(n,e,t){const r=document.createElement("div");r.className="csk-msg csk-msg--user";const s=document.createElement("div");s.className="csk-msg__avatar csk-msg__avatar--user",s.innerHTML='';const o=document.createElement("div");o.className="csk-msg__content";const i=document.createElement("div");i.className="csk-msg__bubble",i.textContent=e;const a=document.createElement("div");return a.className="csk-msg__time",a.textContent=T(t),o.appendChild(i),o.appendChild(a),r.appendChild(s),r.appendChild(o),n.appendChild(r),r}function M(n,e,t,r){const s=document.createElement("div");s.className="csk-msg csk-msg--ai";const o=document.createElement("div");o.className="csk-msg__avatar csk-msg__avatar--ai",o.innerHTML=A;const i=document.createElement("div");i.className="csk-msg__content";const a=document.createElement("div");a.className="csk-msg__bubble",r?a.innerHTML=r(e):a.textContent=e;const c=document.createElement("div");return c.className="csk-msg__time",c.textContent=T(t),i.appendChild(a),i.appendChild(c),s.appendChild(o),s.appendChild(i),n.appendChild(s),s}function D(n,e){const t=n.querySelector(".csk-sources");if(t&&t.remove(),!e||0===e.length)return;const r=document.createElement("div");r.className="csk-sources csk-sources--collapsed";const s=document.createElement("div");s.className="csk-sources__header";const o=document.createElement("span");o.className="csk-sources__title",o.textContent=`📚 ${i("source_count",{n:e.length})}`;const a=document.createElement("span");a.className="csk-sources__arrow",a.textContent="▼",s.appendChild(o),s.appendChild(a),s.addEventListener("click",()=>{r.classList.toggle("csk-sources--collapsed")});const c=document.createElement("div");c.className="csk-sources__body";for(const n of e){const e=document.createElement("div");e.className="csk-source-item";const t=document.createElement("div");if(t.className="csk-source-item__name",t.textContent=n.title||n.sourceName||"未知文档",n.snippet){const t=document.createElement("div");t.className="csk-source-item__snippet",t.textContent=n.snippet,e.appendChild(t)}const r=document.createElement("div");r.className="csk-source-item__meta";const s=[];n.sourceName&&s.push(n.sourceName),void 0!==n.chunkIndex&&s.push(`分块 #${n.chunkIndex}`),void 0!==n.score&&s.push(`相关度 ${(100*n.score).toFixed(0)}%`),r.textContent=s.join(" · "),e.appendChild(t),e.appendChild(r),c.appendChild(e)}r.appendChild(s),r.appendChild(c);const l=n.querySelector(".csk-msg__time");l&&l.parentNode?l.parentNode.insertBefore(r,l):n.appendChild(r)}function z(n){n.scrollTop=n.scrollHeight}function T(n){const e=new Date(n);return`${String(e.getHours()).padStart(2,"0")}:${String(e.getMinutes()).padStart(2,"0")}`}function H(n){return`csk_history_${n}`}function B(n,e){try{let t=e;t.length>200&&(t=t.slice(50),r.warn(`消息数量达到上限,已裁剪最早 50 条,当前 ${t.length} 条`));const s={messages:t,updatedAt:Date.now()};localStorage.setItem(H(n),JSON.stringify(s))}catch(n){n instanceof Error&&"QuotaExceededError"===n.name?r.error("localStorage 空间不足,会话历史保存失败。建议清空历史记录。"):r.error("保存会话历史失败",n)}}function q(n){try{localStorage.removeItem(H(n))}catch(n){r.warn("清空会话历史失败",n)}}const j="\0CODEBLOCK_",P="\0INLINECODE_";function R(n){if(!n||"string"!=typeof n)return"";const e=[];let t=n;t=t.replace(/```(\w*)\n([\s\S]*?)```/g,(n,t,r)=>{const s=e.length,o=S(r.trimEnd()),i=t?` class="language-${S(t)}"`:"";return e.push(`
${o}
`),`${j}${s}\0`});const r=[];t=t.replace(/`([^`\n]+)`/g,(n,e)=>{const t=r.length;return r.push(`${S(e)}`),`${P}${t}\0`}),t=S(t),t=U(t,j,e),t=U(t,P,r);const s=t.split("\n"),o=[];let i=!1,a="",c=!1,l=[];for(let n=0;n')){p(),u(),m(),o.push(e);continue}const t=e.match(/^(#{1,6})\s+(.+)/);if(t){p(),u(),m();const n=t[1].length;o.push(`${t[2]}`);continue}const r=e.match(/^>\s?(.*)/);if(r){p(),u(),c||(c=!0,o.push('
')),o.push(`

${d(r[1])}

`);continue}c&&m();const h=e.match(/^[\-\*]\s+(.+)/);if(h){p(),m(),i&&"ul"===a||(u(),i=!0,a="ul",o.push('
    ')),o.push(`
  • ${d(h[1])}
  • `);continue}const g=e.match(/^\d+\.\s+(.+)/);g?(p(),m(),i&&"ol"===a||(u(),i=!0,a="ol",o.push('
      ')),o.push(`
    1. ${d(g[1])}
    2. `)):""!==e.trim()?/^(\*{3,}|-{3,}|_{3,})$/.test(e.trim())?(p(),u(),m(),o.push('
      ')):(u(),m(),l.push(d(e))):(p(),u())}return p(),u(),m(),o.join("\n");function d(n){return n=(n=(n=(n=(n=(n=n.replace(/\*\*(.+?)\*\*/g,"$1")).replace(/__(.+?)__/g,"$1")).replace(/\*(.+?)\*/g,"$1")).replace(/(?$1")).replace(/~~(.+?)~~/g,"$1")).replace(/\[([^\]]+)\]\(([^)]+)\)/g,(n,e,t)=>`${e}`)}function p(){l.length>0&&(o.push(`

      ${l.join("
      ")}

      `),l=[])}function u(){i&&(o.push("ul"===a?"
":""),i=!1,a="")}function m(){c&&(o.push("
"),c=!1)}}function U(n,e,t){return n.replace(new RegExp(e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")+"(\\d+)\0","g"),(n,e)=>t[parseInt(e)]||"")}let O,W=null,Y=[],K=null,V=null,X=null,J=null,G=null,Q=null,Z=null,nn=null,en=null,tn=null,rn=!1,sn=!1;function on(n,e){W=n,K=e.messagesContainer,V=e.inputEl,X=e.inputEl.parentElement,J=e.sendBtn,G=e.clearBtn,Q=e.categorySelect,Z=e.historyPanel,nn=e.welcomeEl,en=e.showLoading,tn=e.hideLoading,O=n.categoryId,sn=!!n.categoryId||!!n.showCategorySwitch,function(){if(!V||!J)return;J.addEventListener("click",()=>dn()),V.addEventListener("keydown",n=>{"Enter"!==n.key||n.shiftKey||(n.preventDefault(),dn())}),V.addEventListener("input",()=>{ln(),function(){if(!V)return;V.style.height="auto",V.style.height=`${Math.min(V.scrollHeight,120)}px`}()}),V.addEventListener("focus",()=>{X&&X.classList.add("csk-input-wrap--focus")}),V.addEventListener("blur",()=>{X&&X.classList.remove("csk-input-wrap--focus")}),G&&G.addEventListener("click",()=>function(){if(!W)return;if(!confirm(i("clear_confirm")))return;if(Y=[],K){K.querySelectorAll(".csk-msg, .csk-loading").forEach(n=>n.remove())}G&&(G.style.display="none");cn(),q(W.integrateId);const n=function(){const n="undefined"!=typeof crypto&&crypto.randomUUID?crypto.randomUUID().substring(0,8):Math.random().toString(36).substring(2,10);return`sdk_${Date.now()}_${n}`}();c(n),w(W.integrateId,W.userId,n),r.lifecycleClear(W.integrateId),r.info(`新 chatId=${n}`)}())}(),n.showCategorySwitch&&Q&&async function(){if(!Q)return;try{const n=await async function(){const n=d("/category/tree");try{const e=await u(n);if(!e.ok)throw new m(h(e.status),`http_${e.status}`);const t=await e.json();return t.success&&Array.isArray(t.data)?(r.info(`加载分类树成功 count=${t.data.length}`),t.data):[]}catch(n){return n instanceof m?r.error(`加载分类树失败: ${n.message}`):r.error("加载分类树失败",n),[]}}();if(0===n.length)return;Q.innerHTML=``;const e=(n,t=0)=>{for(const r of n){const n=document.createElement("option");n.value=String(r.id),n.textContent=`${" ".repeat(t)}${r.name}`,void 0!==O&&String(r.id)===String(O)&&(n.selected=!0),Q.appendChild(n),r.children&&r.children.length>0&&e(r.children,t+1)}};e(n),r.info(`知识库分类加载成功 count=${n.length}`)}catch(n){r.error(i("category_load_error"),n)}}()}async function an(){if(W&&K&&(await y(),await async function(){if(!W||!K)return;const n=l();if(!n)return;try{const e=await x(n);e.messages.length>0&&(Y=e.messages.map((n,e)=>({id:$(),role:"USER"===n.messageType?"user":"ai",content:n.content,timestamp:new Date(n.createTime).getTime()})),pn(),r.info(`从后端加载 ${Y.length} 条历史消息`),B(W.integrateId,Y))}catch(n){r.warn("从后端加载历史消息失败",n)}}(),0===Y.length)){const n=function(n){try{const e=localStorage.getItem(H(n));if(!e)return[];const t=JSON.parse(e);return t&&Array.isArray(t.messages)?(r.info(`加载历史消息 integrateId=${n} count=${t.messages.length}`),t.messages):[]}catch(n){return r.warn("加载会话历史失败",n),[]}}(W.integrateId);n.length>0&&(Y=n,pn(),r.info(`从本地缓存恢复 ${n.length} 条消息`))}}function cn(){if(!nn)return;const n=Y.length>0||K&&K.querySelector(".csk-msg");nn.style.display=n?"none":""}function ln(){if(!J||!V)return;V.value.trim().length>0&&!rn?J.removeAttribute("disabled"):J.setAttribute("disabled","true")}async function dn(){if(!V||!W||rn)return;const n=V.value.trim();if(""===n)return;V.value="",ln(),V.style.height="auto",rn=!0,ln(),W.chatId||await y();const e=N();K&&F(K,n,e);const t={id:$(),role:"user",content:n,timestamp:e};Y.push(t),cn(),G&&Y.length>0&&(G.style.display="inline-flex"),K&&z(K),en&&en(),K&&z(K);try{let e;const t=N(),s=sn&&(void 0!==O||void 0!==W.categoryId);e=W.streaming?await async function(n,e,t){return new Promise((r,s)=>{let o=null,a="",c=!1;k(n,n=>{if(a+=n,!c&&K){tn&&tn();const{bubble:n}=function(n,e){const t=document.createElement("div");t.className="csk-msg csk-msg--ai";const r=document.createElement("div");r.className="csk-msg__avatar csk-msg__avatar--ai",r.innerHTML=A;const s=document.createElement("div");s.className="csk-msg__content";const o=document.createElement("div");o.className="csk-msg__bubble",o.innerHTML="";const i=document.createElement("div");return i.className="csk-msg__time",i.textContent=T(e),s.appendChild(o),s.appendChild(i),t.appendChild(r),t.appendChild(s),n.appendChild(t),{wrapper:t,bubble:o}}(K,e);o=n,c=!0}o&&(o.textContent=a),K&&z(K)},()=>{c||""!==a?(o&&a&&(o.innerHTML=R(a)),r(a)):g(n).then(r).catch(s)},n=>{a.length>0?(o&&(o.innerHTML=R(a+"\n\n"+i("stream_interrupted"))),r(a)):s(n)},O,t)})}(n,t,s):await g(n),tn&&tn(),!W.streaming&&K&&M(K,e,t,R);const o={id:$(),role:"ai",content:e,timestamp:t};Y.push(o),B(W.integrateId,Y),K&&z(K),s&&async function(n,e){try{const t=await f(n,O);if(t.length>0){const n=t.map(n=>{var e,t;return{documentId:n.documentId||"",title:n.title||"",sourceName:n.sourceName||"",chunkIndex:null!==(e=n.chunkIndex)&&void 0!==e?e:0,score:null!==(t=n.score)&&void 0!==t?t:0,snippet:n.snippet||""}});if(e.sources=n,K){const e=K.querySelector(".csk-msg--ai:last-of-type");e&&D(e,n)}W&&B(W.integrateId,Y)}}catch(n){r.warn("获取引用来源失败",n)}}(n,o)}catch(n){tn&&tn();const e=n instanceof m?n.message:i("error_send");if(K){const n=document.createElement("div");n.className="csk-msg csk-msg--ai";const t=document.createElement("div");t.className="csk-msg__bubble",t.style.color="#DC2626",t.textContent=`⚠ ${e}`,n.appendChild(t),K.appendChild(n)}r.error(`发送失败 integrateId=${W.integrateId}`,n)}finally{rn=!1,ln()}}function pn(){if(!K)return;const n=K.querySelector(".csk-history-panel");K.querySelectorAll(".csk-msg, .csk-loading").forEach(n=>n.remove());for(const n of Y)if("user"===n.role)F(K,n.content,n.timestamp);else{const e=M(K,n.content,n.timestamp,R);n.sources&&n.sources.length>0&&D(e,n.sources)}z(K),G&&Y.length>0&&(G.style.display="inline-flex"),cn(),n&&!K.contains(n)&&K.appendChild(n)}async function un(){if(!Z||!W)return;const n=Z.querySelector("#csk-history-list");if(n){n.innerHTML='
加载中...
';try{const e=await b(1,50,W.userId,W.integrateId);!function(n,e,t,r,s,o){if(n.innerHTML="",0===e.length){const e=document.createElement("div");return e.className="csk-history-panel__empty",e.innerHTML=`\n
💬
\n
${i("history_empty")}
\n `,void n.appendChild(e)}for(const a of e){const e=document.createElement("div");e.className="csk-history-item";const c=a.chatId||a.id;o&&c===o&&e.classList.add("csk-history-item--active");const l=document.createElement("div");l.className="csk-history-item__info";const d=document.createElement("div");d.className="csk-history-item__id",a.lastMessagePreview?d.textContent=a.lastMessagePreview.length>60?a.lastMessagePreview.substring(0,60)+"...":a.lastMessagePreview:d.textContent=c;const p=document.createElement("div");p.className="csk-history-item__meta";const u=[];void 0!==a.messageCount&&u.push(`${a.messageCount} 条消息`),a.lastMessageTime?u.push(a.lastMessageTime):a.createdAt&&u.push(a.createdAt),p.textContent=u.join(" · "),l.appendChild(d),l.appendChild(p);const m=document.createElement("div");m.className="csk-history-item__actions";const h=document.createElement("button");h.className="csk-history-action csk-history-action--export",h.setAttribute("title",i("history_export")),h.innerHTML='',h.addEventListener("click",n=>{n.stopPropagation(),r(a.id)});const g=document.createElement("button");g.className="csk-history-action csk-history-action--delete",g.setAttribute("title",i("history_delete")),g.innerHTML='',g.addEventListener("click",n=>{n.stopPropagation(),s(a.id)}),m.appendChild(h),m.appendChild(g),e.appendChild(l),e.appendChild(m),e.addEventListener("click",()=>{t(c)}),n.appendChild(e)}}(n,e.list.map(n=>({id:n.conversationId||"",chatId:n.conversationId||"",messageCount:n.messageCount,lastMessageTime:n.lastMessageTime,lastMessagePreview:n.lastMessagePreview,createdAt:n.firstMessageTime||n.createdAt})),n=>{!async function(n){if(!W||!K)return;r.info(`切换到会话 conversationId=${n}`),c(n),w(W.integrateId,W.userId,n),Z&&Z.classList.add("csk-history-panel--hidden");Y=[];K.querySelectorAll(".csk-msg, .csk-loading").forEach(n=>n.remove());try{const e=await x(n);e.messages.length>0&&(Y=e.messages.map(n=>({id:$(),role:"USER"===n.messageType?"user":"ai",content:n.content,timestamp:new Date(n.createTime).getTime()})),pn(),r.info(`加载会话 ${n} 的 ${Y.length} 条消息`),B(W.integrateId,Y))}catch(e){r.warn(`加载会话消息失败 conversationId=${n}`,e)}G&&Y.length>0&&(G.style.display="inline-flex");cn()}(n)},n=>{window.open(d(`/conversation/${n}/export`),"_blank")},async n=>{if(!confirm(i("history_delete_confirm")))return;if(await async function(n){const e=d(`/conversation/${n}`);try{const t=await u(e,{method:"DELETE"});if(!t.ok)throw new m(h(t.status),`http_${t.status}`);const s=await t.json();return r.info(`删除会话 id=${n} success=${s.success}`),s.success||!1}catch(n){return r.error("删除会话失败",n),!1}}(n)){if(n===l()){if(Y=[],K){K.querySelectorAll(".csk-msg, .csk-loading").forEach(n=>n.remove())}G&&(G.style.display="none"),cn()}un()}},l())}catch(e){r.error(i("history_load_error"),e),n.innerHTML=`
${i("history_load_error")}
`}}}let mn=null,hn=!1,gn=null,kn=null,fn=null,bn=null,xn=null,yn=null,_n=null,wn=null,vn=null,Cn=null,In=null;function En(){kn&&kn.classList.remove("csk-window--hidden")}function $n(){kn&&kn.classList.add("csk-window--hidden")}function Sn(){kn&&(kn.classList.contains("csk-window--hidden")?(En(),setTimeout(()=>{bn&&bn.focus()},100)):$n())}const Nn={init:function(n){if(hn)return void r.warn("SDK 已初始化,请先调用 destroy() 再重新初始化");const t=function(n){var e,t,s,o,i,a;if(!n.integrateId||"string"!=typeof n.integrateId&&"number"!=typeof n.integrateId||"string"==typeof n.integrateId&&""===n.integrateId.trim())return r.error('integrateId 是必传参数(对应后端 roleId 客服角色 ID),请检查 init() 调用。示例:ChatbotSDK.init({ integrateId: 1, requestDomain: "https://api.example.com" })'),null;if(!n.requestDomain||"string"!=typeof n.requestDomain||""===n.requestDomain.trim())return r.error('requestDomain 是必传参数,请检查 init() 调用。示例:ChatbotSDK.init({ integrateId: 1, requestDomain: "https://api.example.com" })'),null;try{new URL(n.requestDomain)}catch(e){return r.error(`requestDomain 不是合法的 URL 格式:${n.requestDomain}。请提供完整的域名,如 https://api.example.com`),null}const c={integrateId:String(n.integrateId).trim(),requestDomain:n.requestDomain.replace(/\/+$/,""),userId:n.userId,categoryId:n.categoryId,showCategorySwitch:null!==(e=n.showCategorySwitch)&&void 0!==e&&e,title:n.title||"AI 智能助手",width:null!==(t=n.width)&&void 0!==t?t:380,position:"left-bottom"===n.position?"left-bottom":"right-bottom",primaryColor:n.primaryColor||"#4F46E5",launcherIcon:n.launcherIcon||'\n \n \n',showClear:null===(s=n.showClear)||void 0===s||s,showAdminPanel:null!==(o=n.showAdminPanel)&&void 0!==o&&o,streaming:null===(i=n.streaming)||void 0===i||i,locale:n.locale||"zh-CN",debug:null===(a=n.debug)||void 0===a||a,chatId:""};return r.info(`配置解析完成 integrateId(=roleId)=${c.integrateId} userId(=accountId)=${c.userId||"(未设置)"} requestDomain=${c.requestDomain}`),c}(n);if(!t)return;var c;mn=t,function(n){if(s[n])o=n;else{const e=n.split("-")[0],t=Object.keys(s).find(n=>n.startsWith(e));t&&(o=t)}}(mn.locale),c=mn.debug,e=c,function(n){a=n}(mn),E(mn),gn=L(mn,Sn),document.body.appendChild(gn);const l=function(n){const e=document.createElement("div");e.id="csk-window",e.className=`csk-root csk-window csk-window--${"left-bottom"===n.position?"left":"right"} csk-window--hidden`;const t=document.createElement("div");t.className="csk-header";const r=document.createElement("div");r.className="csk-header__left";const s=document.createElement("div");s.className="csk-header__avatar",s.innerHTML=A;const o=document.createElement("div");o.className="csk-header__info";const a=document.createElement("span");a.className="csk-header__title",a.textContent=n.title;const c=document.createElement("span");c.className="csk-header__status",c.innerHTML=`${i("status_online")}`,o.appendChild(a),o.appendChild(c),r.appendChild(s),r.appendChild(o);const l=document.createElement("div");l.className="csk-header__actions";const d=document.createElement("button");d.className="csk-history-btn",d.setAttribute("title",i("history_title")),d.innerHTML='';const p=document.createElement("button");p.className="csk-header__btn csk-header__btn--minimize",p.setAttribute("title",i("minimize")),p.innerHTML='',p.addEventListener("click",()=>{e.classList.add("csk-window--hidden")});const u=document.createElement("button");u.className="csk-header__btn csk-header__btn--close",u.setAttribute("title",i("close")),u.innerHTML='',u.addEventListener("click",()=>{e.classList.add("csk-window--hidden")}),l.appendChild(d),l.appendChild(p),l.appendChild(u),t.appendChild(r),t.appendChild(l);const m=document.createElement("div");m.id="csk-messages",m.className="csk-messages";const h=document.createElement("div");h.className="csk-welcome",h.innerHTML=`\n
${A}
\n
${i("welcome_title")}
\n
${i("welcome_desc")}
\n `,m.appendChild(h);const g=document.createElement("div");g.className="csk-history-panel csk-history-panel--hidden",g.innerHTML=`\n
\n ${i("history_title")}\n \n
\n
\n `,m.appendChild(g);const k=g.querySelector("#csk-history-back");k&&k.addEventListener("click",()=>{g.classList.add("csk-history-panel--hidden")}),d.addEventListener("click",n=>{n.stopPropagation();const t=g.classList.contains("csk-history-panel--hidden");g.classList.toggle("csk-history-panel--hidden"),t&&e.dispatchEvent(new CustomEvent("csk:loadHistory"))});let f=null;if(n.showCategorySwitch){const n=document.createElement("div");n.className="csk-category-bar";const r=document.createElement("span");r.className="csk-category-bar__label",r.textContent="📚",f=document.createElement("select"),f.id="csk-category-select",f.className="csk-category-select",f.innerHTML=``,f.addEventListener("change",()=>{const n=f.value;e.dispatchEvent(new CustomEvent("csk:categoryChange",{detail:{categoryId:n?Number(n):void 0}}))}),n.appendChild(r),n.appendChild(f),e.appendChild(t),e.appendChild(m),e.appendChild(n)}else e.appendChild(t),e.appendChild(m);const b=document.createElement("div");b.className="csk-input-area";const x=document.createElement("div");x.className="csk-input-wrap";const y=document.createElement("textarea");y.id="csk-input",y.className="csk-input",y.setAttribute("placeholder",i("placeholder")),y.setAttribute("rows","1"),y.setAttribute("autofocus","");const _=document.createElement("button");_.id="csk-send-btn",_.className="csk-send-btn",_.setAttribute("title",i("send")),_.setAttribute("disabled","true"),_.innerHTML='',x.appendChild(y),x.appendChild(_),b.appendChild(x),e.appendChild(b);let w=null;n.showClear&&(w=document.createElement("button"),w.className="csk-clear-btn",w.textContent=i("clear"),w.style.display="none",e.insertBefore(w,b));let v=null;return{window:e,messagesContainer:m,inputEl:y,sendBtn:_,clearBtn:w,categorySelect:f,historyPanel:g,welcomeEl:h,showLoading:function(){if(v)return v.style.display="flex",v;const n=document.createElement("div");return n.className="csk-loading",n.innerHTML=`\n
${A}
\n
\n
\n
\n
\n
\n `,m.appendChild(n),v=n,n},hideLoading:function(){v&&v.parentNode&&(v.parentNode.removeChild(v),v=null)}}}(mn);kn=l.window,fn=l.messagesContainer,bn=l.inputEl,xn=l.sendBtn,yn=l.clearBtn,_n=l.categorySelect,wn=l.historyPanel,vn=l.showLoading,Cn=l.hideLoading,document.body.appendChild(kn);const d=kn.querySelector(".csk-header");d&&(In=function(n,e){let t=!1,r=0,s=0,o=0,i=0;const a=n=>{if(n.target.closest("button"))return;t=!0,r=n.clientX,s=n.clientY;const a=e.getBoundingClientRect();o=r-a.left,i=s-a.top,document.addEventListener("mousemove",c),document.addEventListener("mouseup",l)},c=n=>{if(!t)return;const r=n.clientX-o,s=n.clientY-i,a=window.innerWidth-e.offsetWidth,c=window.innerHeight-e.offsetHeight;e.style.right="auto",e.style.bottom="auto",e.style.left=`${Math.max(0,Math.min(r,a))}px`,e.style.top=`${Math.max(0,Math.min(s,c))}px`},l=()=>{t=!1,document.removeEventListener("mousemove",c),document.removeEventListener("mouseup",l)};return n.addEventListener("mousedown",a),()=>{n.removeEventListener("mousedown",a),document.removeEventListener("mousemove",c),document.removeEventListener("mouseup",l)}}(d,kn)),on(mn,{messagesContainer:fn,inputEl:bn,sendBtn:xn,clearBtn:yn,categorySelect:_n,historyPanel:wn,welcomeEl:l.welcomeEl,showLoading:vn,hideLoading:Cn}),kn.addEventListener("csk:categoryChange",n=>{var e;e=n.detail.categoryId,O=e,sn=void 0!==e,r.lifecycleCategoryChange(null!=e?e:"全部")}),kn.addEventListener("csk:loadHistory",()=>{un()}),hn=!0,r.lifecycleInit(mn.integrateId,mn.requestDomain),an().catch(n=>{r.warn("chatId 初始化失败,将在发送消息时重试",n)})},destroy:function(){if(!hn)return;gn&&gn.parentNode&&(gn.parentNode.removeChild(gn),gn=null),kn&&kn.parentNode&&(kn.parentNode.removeChild(kn),kn=null),In&&(In(),In=null),v&&v.parentNode&&(v.parentNode.removeChild(v),v=null),document.querySelectorAll("style[data-csk-sdk]").forEach(n=>n.remove());const n=null==mn?void 0:mn.integrateId;mn=null,hn=!1,fn=null,bn=null,xn=null,yn=null,_n=null,wn=null,vn=null,Cn=null,r.lifecycleDestroy(n||"")},open:En,close:$n,toggle:Sn,clearHistory:function(){mn&&(yn?yn.click():confirm("确定清空所有对话记录?")&&q(mn.integrateId))}};return"undefined"!=typeof window&&(window.ChatbotSDK=Nn),Nn}(); //# sourceMappingURL=chatbot-sdk.min.js.map diff --git a/client/dist/chatbot-sdk.min.js.map b/client/dist/chatbot-sdk.min.js.map index 1204c32..9ddd9fd 100644 --- a/client/dist/chatbot-sdk.min.js.map +++ b/client/dist/chatbot-sdk.min.js.map @@ -1 +1 @@ -{"version":3,"file":"chatbot-sdk.min.js","sources":["../src/logger.ts","../src/i18n.ts","../src/api.ts","../src/styles.ts","../src/utils.ts","../src/dom.ts","../src/storage.ts","../src/markdown.ts","../src/chat.ts","../src/index.ts","../src/config.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null],"names":["PREFIX","debugEnabled","timers","logger","info","msg","data","console","log","undefined","warn","error","time","label","Date","now","timeEnd","prefix","start","duration","lifecycleInit","integrateId","requestDomain","this","lifecycleDestroy","lifecycleSend","length","lifecycleReply","lifecycleError","status","message","lifecycleClear","lifecycleStreamDone","lifecycleCategoryChange","categoryId","dictionaries","title","minimize","close","placeholder","send","loading","stream_interrupted","stream_unstable","category_placeholder","category_all","category_load_error","source_title","source_count","source_loading","clear","clear_confirm","history_title","history_empty","history_load_error","history_delete_confirm","history_export","history_delete","error_network","error_timeout","error_server","error_cors","error_auth","error_forbidden","error_not_found","error_rate_limit","error_unavailable","error_unknown","error_send","error_stream_unsupported","en","currentLocale","t","key","params","text","k","v","Object","entries","replace","String","currentConfig","updateChatId","chatId","getChatId","buildUrl","path","Error","startsWith","setIfPresent","value","trim","set","async","safeFetch","url","options","timeout","controller","AbortController","timer","setTimeout","abort","fetch","assign","signal","mode","credentials","err","DOMException","name","CskError","TypeError","includes","clearTimeout","constructor","type","super","getHttpErrorMessage","chatRequest","URLSearchParams","userId","toString","buildChatUrl","response","ok","errorMsg","chatSSERequest","onChunk","onDone","onError","useRag","buildChatRAGSSEUrl","buildChatSSEUrl","totalText","REQUEST_TIMEOUT","reader","_a","body","getReader","decoder","TextDecoder","stream","buffer","done","read","decode","lines","split","pop","line","trimmed","substring","readErr","releaseLock","fetchRagSources","buildRagSourcesUrl","json","success","Array","isArray","fetchConversationList","page","size","accountId","roleId","encodeURIComponent","list","total","pages","fetchConversationMessages","conversationId","messages","initChatId","cachedChatId","localStorage","getItem","chatIdStorageKey","loadCachedChatId","result","latestConv","saveCachedChatId","messageCount","newChatId","random","crypto","randomUUID","Math","generateChatId","setItem","removeItem","styleElement","cssVars","config","darker","hex","amount","match","clamp","max","min","r","parseInt","g","b","padStart","adjustColor","primaryColor","width","injectStyles","document","querySelector","createElement","setAttribute","textContent","getStyles","head","appendChild","uuid","c","escapeHtml","map","ch","createLauncher","onClick","launcher","id","className","position","innerHTML","launcherIcon","debouncedClick","fn","delay","args","apply","debounce","addEventListener","e","preventDefault","renderUserBubble","container","timestamp","wrapper","bubble","formatTime","renderAIBubble","renderMd","renderSources","sources","existing","remove","sourcesEl","header","titleSpan","n","arrow","classList","toggle","src","item","sourceName","snippet","meta","metaParts","push","chunkIndex","score","toFixed","join","timeEl","insertBefore","scrollToBottom","scrollTop","scrollHeight","d","getHours","getMinutes","storageKey","saveMessages","slice","updatedAt","JSON","stringify","clearMessages","CODE_BLOCK_PREFIX","INLINE_CODE_PREFIX","renderMarkdown","codeBlocks","processed","_match","lang","code","idx","escapedCode","trimEnd","langClass","inlineCodes","restorePlaceholders","inList","listType","inBlockquote","paragraphBuffer","i","flushParagraph","closeList","closeBlockquote","headingMatch","level","quoteMatch","inlineFormat","ulMatch","olMatch","test","_m","linkText","replacements","RegExp","currentCategoryId","messagesContainer","inputEl","sendBtn","clearBtn","categorySelect","historyPanel","showLoadingFn","hideLoadingFn","isSending","initChat","cfg","dom","showLoading","hideLoading","showCategorySwitch","handleSend","shiftKey","updateSendBtnState","confirm","querySelectorAll","forEach","el","style","display","newId","generateNewChatId","handleClear","bindSendEvents","tree","fetchCategoryTree","addOptions","nodes","indent","node","option","repeat","selected","children","loadCategories","initChatHistory","role","messageType","content","createTime","getTime","renderHistory","loadHistoryFromBackend","cached","raw","parse","loadMessages","removeAttribute","height","userTimestamp","userMsg","aiContent","aiTimestamp","shouldUseRag","streaming","Promise","resolve","reject","bubbleEl","accumulated","streamStarted","chunk","createEmptyAIBubble","then","catch","sendStreamMessage","aiMsg","ragSources","s","documentId","_b","lastAiMsg","fetchAndRenderSources","errMsg","errorBubble","color","historyPanelEl","contains","loadHistoryConversations","listEl","items","onSelect","onExport","onDelete","activeChatId","empty","convId","add","idEl","lastMessagePreview","metaEl","lastMessageTime","createdAt","actionsEl","exportBtn","stopPropagation","deleteBtn","renderHistoryList","firstMessageTime","switchToConversation","window","open","method","deleteConversation","isInitialized","launcherEl","windowEl","dragCleanup","focus","ChatbotSDK","init","rawConfig","parsed","URL","_g","showClear","_c","showAdminPanel","_d","_e","locale","debug","_f","parseConfig","enabled","matched","keys","find","setLocale","setApiConfig","titleEl","actions","historyBtn","minimizeBtn","closeBtn","backBtn","isHidden","dispatchEvent","CustomEvent","categoryBar","categoryLabel","selectedId","detail","Number","inputArea","loadingEl","parentNode","removeChild","createChatWindow","headerEl","dragging","startX","startY","offsetX","offsetY","onMouseDown","clientX","clientY","rect","getBoundingClientRect","left","top","onMouseMove","onMouseUp","x","y","maxX","innerWidth","offsetWidth","maxY","innerHeight","offsetHeight","right","bottom","removeEventListener","enableDrag","destroy","oldIntegrateId","clearHistory","click"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"chatbot-sdk.min.js","sources":["../src/logger.ts","../src/i18n.ts","../src/api.ts","../src/styles.ts","../src/utils.ts","../src/dom.ts","../src/storage.ts","../src/markdown.ts","../src/chat.ts","../src/index.ts","../src/config.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null],"names":["PREFIX","debugEnabled","timers","logger","info","msg","data","console","log","undefined","warn","error","time","label","Date","now","timeEnd","prefix","start","duration","lifecycleInit","integrateId","requestDomain","this","lifecycleDestroy","lifecycleSend","length","lifecycleReply","lifecycleError","status","message","lifecycleClear","lifecycleStreamDone","lifecycleCategoryChange","categoryId","dictionaries","title","minimize","close","status_online","welcome_title","welcome_desc","placeholder","send","loading","stream_interrupted","stream_unstable","category_placeholder","category_all","category_load_error","source_title","source_count","source_loading","clear","clear_confirm","history_title","history_empty","history_load_error","history_delete_confirm","history_export","history_delete","error_network","error_timeout","error_server","error_cors","error_auth","error_forbidden","error_not_found","error_rate_limit","error_unavailable","error_unknown","error_send","error_stream_unsupported","en","currentLocale","t","key","params","text","k","v","Object","entries","replace","String","currentConfig","updateChatId","chatId","getChatId","buildUrl","path","Error","startsWith","setIfPresent","value","trim","set","async","safeFetch","url","options","timeout","controller","AbortController","timer","setTimeout","abort","fetch","assign","signal","mode","credentials","err","DOMException","name","CskError","TypeError","includes","clearTimeout","constructor","type","super","getHttpErrorMessage","chatRequest","URLSearchParams","userId","toString","buildChatUrl","response","ok","errorMsg","chatSSERequest","onChunk","onDone","onError","useRag","buildChatRAGSSEUrl","buildChatSSEUrl","totalText","REQUEST_TIMEOUT","reader","_a","body","getReader","decoder","TextDecoder","stream","buffer","done","read","decode","lines","split","pop","line","trimmed","substring","readErr","releaseLock","fetchRagSources","buildRagSourcesUrl","json","success","Array","isArray","fetchConversationList","page","size","accountId","roleId","encodeURIComponent","list","total","pages","fetchConversationMessages","conversationId","messages","initChatId","cachedChatId","localStorage","getItem","chatIdStorageKey","loadCachedChatId","result","latestConv","saveCachedChatId","messageCount","newChatId","random","crypto","randomUUID","Math","generateChatId","setItem","removeItem","styleElement","cssVars","config","darker","adjustColor","primaryColor","lighter","rgb","hex","match","parseInt","hexToRgb","width","amount","clamp","max","min","r","g","b","padStart","injectStyles","document","querySelector","createElement","setAttribute","textContent","getStyles","head","appendChild","uuid","c","escapeHtml","map","ch","BOT_ICON","createLauncher","onClick","launcher","id","className","position","innerHTML","launcherIcon","debouncedClick","fn","delay","args","apply","debounce","addEventListener","e","preventDefault","renderUserBubble","container","timestamp","wrapper","avatar","content","bubble","formatTime","renderAIBubble","renderMd","renderSources","sources","existing","remove","sourcesEl","header","titleSpan","n","arrow","classList","toggle","src","item","sourceName","snippet","meta","metaParts","push","chunkIndex","score","toFixed","join","timeEl","parentNode","insertBefore","scrollToBottom","scrollTop","scrollHeight","d","getHours","getMinutes","storageKey","saveMessages","slice","updatedAt","JSON","stringify","clearMessages","CODE_BLOCK_PREFIX","INLINE_CODE_PREFIX","renderMarkdown","codeBlocks","processed","_match","lang","code","idx","escapedCode","trimEnd","langClass","inlineCodes","restorePlaceholders","inList","listType","inBlockquote","paragraphBuffer","i","flushParagraph","closeList","closeBlockquote","headingMatch","level","quoteMatch","inlineFormat","ulMatch","olMatch","test","_m","linkText","replacements","RegExp","currentCategoryId","messagesContainer","inputEl","inputWrap","sendBtn","clearBtn","categorySelect","historyPanel","welcomeEl","showLoadingFn","hideLoadingFn","isSending","initChat","cfg","dom","parentElement","showLoading","hideLoading","showCategorySwitch","handleSend","shiftKey","updateSendBtnState","style","height","autoResizeInput","add","confirm","querySelectorAll","forEach","el","display","updateEmptyState","newId","generateNewChatId","handleClear","bindSendEvents","tree","fetchCategoryTree","addOptions","nodes","indent","node","option","repeat","selected","children","loadCategories","initChatHistory","role","messageType","createTime","getTime","renderHistory","loadHistoryFromBackend","cached","raw","parse","loadMessages","hasMessages","removeAttribute","userTimestamp","userMsg","aiContent","aiTimestamp","shouldUseRag","streaming","Promise","resolve","reject","bubbleEl","accumulated","streamStarted","chunk","createEmptyAIBubble","then","catch","sendStreamMessage","aiMsg","ragSources","s","documentId","_b","lastAiMsg","fetchAndRenderSources","errMsg","errorBubble","color","historyPanelEl","contains","loadHistoryConversations","listEl","items","onSelect","onExport","onDelete","activeChatId","empty","convId","idEl","lastMessagePreview","metaEl","lastMessageTime","createdAt","actionsEl","exportBtn","stopPropagation","deleteBtn","renderHistoryList","firstMessageTime","switchToConversation","window","open","method","deleteConversation","isInitialized","launcherEl","windowEl","dragCleanup","focus","ChatbotSDK","init","rawConfig","parsed","URL","_g","showClear","_c","showAdminPanel","_d","_e","locale","debug","_f","parseConfig","enabled","matched","keys","find","setLocale","setApiConfig","headerLeft","headerAvatar","headerInfo","titleEl","statusEl","actions","historyBtn","minimizeBtn","closeBtn","backBtn","isHidden","dispatchEvent","CustomEvent","categoryBar","categoryLabel","selectedId","detail","Number","inputArea","loadingEl","removeChild","createChatWindow","headerEl","dragging","startX","startY","offsetX","offsetY","onMouseDown","target","closest","clientX","clientY","rect","getBoundingClientRect","left","top","onMouseMove","onMouseUp","x","y","maxX","innerWidth","offsetWidth","maxY","innerHeight","offsetHeight","right","bottom","removeEventListener","enableDrag","destroy","oldIntegrateId","clearHistory","click"],"mappings":"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"} \ No newline at end of file diff --git a/client/src/chat.ts b/client/src/chat.ts index 0ff7ad2..a8fdcda 100644 --- a/client/src/chat.ts +++ b/client/src/chat.ts @@ -41,10 +41,12 @@ let config: ResolvedConfig | null = null; let messages: ChatMessage[] = []; let messagesContainer: HTMLElement | null = null; let inputEl: HTMLTextAreaElement | null = null; +let inputWrap: HTMLElement | null = null; let sendBtn: HTMLElement | null = null; let clearBtn: HTMLElement | null = null; let categorySelect: HTMLSelectElement | null = null; let historyPanel: HTMLElement | null = null; +let welcomeEl: HTMLElement | null = null; let showLoadingFn: (() => HTMLElement) | null = null; let hideLoadingFn: (() => void) | null = null; let isSending = false; @@ -67,6 +69,7 @@ export function initChat( clearBtn: HTMLElement | null; categorySelect: HTMLSelectElement | null; historyPanel: HTMLElement; + welcomeEl: HTMLElement; showLoading: () => HTMLElement; hideLoading: () => void; } @@ -74,10 +77,12 @@ export function initChat( config = cfg; messagesContainer = dom.messagesContainer; inputEl = dom.inputEl; + inputWrap = dom.inputEl.parentElement; sendBtn = dom.sendBtn; clearBtn = dom.clearBtn; categorySelect = dom.categorySelect; historyPanel = dom.historyPanel; + welcomeEl = dom.welcomeEl; showLoadingFn = dom.showLoading; hideLoadingFn = dom.hideLoading; @@ -162,13 +167,39 @@ function bindSendEvents(): void { } }); - inputEl.addEventListener('input', () => updateSendBtnState()); + inputEl.addEventListener('input', () => { + updateSendBtnState(); + autoResizeInput(); + }); + + // 输入框聚焦/失焦高亮容器 + inputEl.addEventListener('focus', () => { + if (inputWrap) inputWrap.classList.add('csk-input-wrap--focus'); + }); + inputEl.addEventListener('blur', () => { + if (inputWrap) inputWrap.classList.remove('csk-input-wrap--focus'); + }); if (clearBtn) { clearBtn.addEventListener('click', () => handleClear()); } } +/** 文本框自动撑高 */ +function autoResizeInput(): void { + if (!inputEl) return; + inputEl.style.height = 'auto'; + inputEl.style.height = `${Math.min(inputEl.scrollHeight, 120)}px`; +} + +/** 根据消息数量切换欢迎空状态显隐 */ +function updateEmptyState(): void { + if (!welcomeEl) return; + const hasMessages = messages.length > 0 || + (messagesContainer && messagesContainer.querySelector('.csk-msg')); + welcomeEl.style.display = hasMessages ? 'none' : ''; +} + /** 更新发送按钮状态 */ function updateSendBtnState(): void { if (!sendBtn || !inputEl) return; @@ -205,6 +236,7 @@ async function handleSend(): Promise { const userMsg: ChatMessage = { id: uuid(), role: 'user', content: text, timestamp: userTimestamp }; messages.push(userMsg); + updateEmptyState(); if (clearBtn && messages.length > 0) clearBtn.style.display = 'inline-flex'; if (messagesContainer) scrollToBottom(messagesContainer); @@ -369,6 +401,7 @@ function renderHistory(): void { scrollToBottom(messagesContainer); if (clearBtn && messages.length > 0) clearBtn.style.display = 'inline-flex'; + updateEmptyState(); if (historyPanelEl && !messagesContainer.contains(historyPanelEl)) { messagesContainer.appendChild(historyPanelEl); @@ -386,6 +419,7 @@ function handleClear(): void { msgs.forEach(el => el.remove()); } if (clearBtn) clearBtn.style.display = 'none'; + updateEmptyState(); clearMessages(config.integrateId); // 生成新的 chatId,开始新会话 @@ -456,6 +490,7 @@ export async function loadHistoryConversations(): Promise { msgs.forEach(el => el.remove()); } if (clearBtn) clearBtn.style.display = 'none'; + updateEmptyState(); } loadHistoryConversations(); } @@ -517,6 +552,7 @@ export async function switchToConversation(conversationId: string): Promise 0) { clearBtn.style.display = 'inline-flex'; } + updateEmptyState(); } /** 获取当前消息列表 */ diff --git a/client/src/dom.ts b/client/src/dom.ts index 0d77305..a119875 100644 --- a/client/src/dom.ts +++ b/client/src/dom.ts @@ -1,12 +1,24 @@ /** * DOM 构建模块 - 悬浮按钮 + 聊天弹窗容器 - * P1 新增:知识库分类下拉框、RAG 引用来源渲染 - * P2 新增:会话管理面板 + * + * 设计要点: + * - 头部含机器人头像 + 在线状态,增强产品感 + * - 消息气泡带头像,左右区分清晰 + * - 无消息时显示欢迎空状态 + * - 输入区采用圆角容器包裹文本框与发送按钮 */ import { ResolvedConfig, RagSource } from './types'; import { debounce } from './utils'; import { t } from './i18n'; +// ==================== 图标常量 ==================== + +/** 机器人头像图标(用于头部、欢迎态、AI 气泡、Loading) */ +const BOT_ICON = ``; + +/** 用户头像图标 */ +const USER_ICON = ``; + // ==================== 悬浮按钮 ==================== /** 创建悬浮按钮 */ @@ -48,6 +60,7 @@ export function createChatWindow(config: ResolvedConfig): { clearBtn: HTMLElement | null; categorySelect: HTMLSelectElement | null; historyPanel: HTMLElement; + welcomeEl: HTMLElement; showLoading: () => HTMLElement; hideLoading: () => void; } { @@ -60,10 +73,29 @@ export function createChatWindow(config: ResolvedConfig): { const header = document.createElement('div'); header.className = 'csk-header'; + const headerLeft = document.createElement('div'); + headerLeft.className = 'csk-header__left'; + + const headerAvatar = document.createElement('div'); + headerAvatar.className = 'csk-header__avatar'; + headerAvatar.innerHTML = BOT_ICON; + + const headerInfo = document.createElement('div'); + headerInfo.className = 'csk-header__info'; + const titleEl = document.createElement('span'); titleEl.className = 'csk-header__title'; titleEl.textContent = config.title; + const statusEl = document.createElement('span'); + statusEl.className = 'csk-header__status'; + statusEl.innerHTML = `${t('status_online')}`; + + headerInfo.appendChild(titleEl); + headerInfo.appendChild(statusEl); + headerLeft.appendChild(headerAvatar); + headerLeft.appendChild(headerInfo); + const actions = document.createElement('div'); actions.className = 'csk-header__actions'; @@ -94,7 +126,7 @@ export function createChatWindow(config: ResolvedConfig): { actions.appendChild(historyBtn); actions.appendChild(minimizeBtn); actions.appendChild(closeBtn); - header.appendChild(titleEl); + header.appendChild(headerLeft); header.appendChild(actions); // === 消息区 === @@ -102,6 +134,16 @@ export function createChatWindow(config: ResolvedConfig): { messagesContainer.id = 'csk-messages'; messagesContainer.className = 'csk-messages'; + // === 欢迎空状态 === + const welcomeEl = document.createElement('div'); + welcomeEl.className = 'csk-welcome'; + welcomeEl.innerHTML = ` +
${BOT_ICON}
+
${t('welcome_title')}
+
${t('welcome_desc')}
+ `; + messagesContainer.appendChild(welcomeEl); + // === 会话管理面板(P2,默认隐藏) === const historyPanel = document.createElement('div'); historyPanel.className = 'csk-history-panel csk-history-panel--hidden'; @@ -175,6 +217,9 @@ export function createChatWindow(config: ResolvedConfig): { const inputArea = document.createElement('div'); inputArea.className = 'csk-input-area'; + const inputWrap = document.createElement('div'); + inputWrap.className = 'csk-input-wrap'; + const inputEl = document.createElement('textarea'); inputEl.id = 'csk-input'; inputEl.className = 'csk-input'; @@ -189,8 +234,9 @@ export function createChatWindow(config: ResolvedConfig): { sendBtn.setAttribute('disabled', 'true'); sendBtn.innerHTML = ``; - inputArea.appendChild(inputEl); - inputArea.appendChild(sendBtn); + inputWrap.appendChild(inputEl); + inputWrap.appendChild(sendBtn); + inputArea.appendChild(inputWrap); windowEl.appendChild(inputArea); // 清空按钮(可选) @@ -215,9 +261,12 @@ export function createChatWindow(config: ResolvedConfig): { const el = document.createElement('div'); el.className = 'csk-loading'; el.innerHTML = ` -
-
-
+
${BOT_ICON}
+
+
+
+
+
`; messagesContainer.appendChild(el); loadingEl = el; @@ -239,6 +288,7 @@ export function createChatWindow(config: ResolvedConfig): { clearBtn, categorySelect, historyPanel, + welcomeEl, showLoading, hideLoading, }; @@ -255,6 +305,9 @@ export function enableDrag(headerEl: HTMLElement, windowEl: HTMLElement): () => let offsetY = 0; const onMouseDown = (e: MouseEvent) => { + // 忽略头部按钮点击触发的拖拽 + const target = e.target as HTMLElement; + if (target.closest('button')) return; dragging = true; startX = e.clientX; startY = e.clientY; @@ -301,6 +354,13 @@ export function renderUserBubble(container: HTMLElement, text: string, timestamp const wrapper = document.createElement('div'); wrapper.className = 'csk-msg csk-msg--user'; + const avatar = document.createElement('div'); + avatar.className = 'csk-msg__avatar csk-msg__avatar--user'; + avatar.innerHTML = USER_ICON; + + const content = document.createElement('div'); + content.className = 'csk-msg__content'; + const bubble = document.createElement('div'); bubble.className = 'csk-msg__bubble'; bubble.textContent = text; @@ -309,8 +369,10 @@ export function renderUserBubble(container: HTMLElement, text: string, timestamp time.className = 'csk-msg__time'; time.textContent = formatTime(timestamp); - wrapper.appendChild(bubble); - wrapper.appendChild(time); + content.appendChild(bubble); + content.appendChild(time); + wrapper.appendChild(avatar); + wrapper.appendChild(content); container.appendChild(wrapper); return wrapper; @@ -321,6 +383,13 @@ export function renderAIBubble(container: HTMLElement, text: string, timestamp: const wrapper = document.createElement('div'); wrapper.className = 'csk-msg csk-msg--ai'; + const avatar = document.createElement('div'); + avatar.className = 'csk-msg__avatar csk-msg__avatar--ai'; + avatar.innerHTML = BOT_ICON; + + const content = document.createElement('div'); + content.className = 'csk-msg__content'; + const bubble = document.createElement('div'); bubble.className = 'csk-msg__bubble'; // 支持 Markdown 渲染,传入渲染函数则使用,否则纯文本 @@ -334,8 +403,10 @@ export function renderAIBubble(container: HTMLElement, text: string, timestamp: time.className = 'csk-msg__time'; time.textContent = formatTime(timestamp); - wrapper.appendChild(bubble); - wrapper.appendChild(time); + content.appendChild(bubble); + content.appendChild(time); + wrapper.appendChild(avatar); + wrapper.appendChild(content); container.appendChild(wrapper); return wrapper; @@ -346,6 +417,13 @@ export function createEmptyAIBubble(container: HTMLElement, timestamp: number): const wrapper = document.createElement('div'); wrapper.className = 'csk-msg csk-msg--ai'; + const avatar = document.createElement('div'); + avatar.className = 'csk-msg__avatar csk-msg__avatar--ai'; + avatar.innerHTML = BOT_ICON; + + const content = document.createElement('div'); + content.className = 'csk-msg__content'; + const bubble = document.createElement('div'); bubble.className = 'csk-msg__bubble'; bubble.innerHTML = ''; @@ -354,8 +432,10 @@ export function createEmptyAIBubble(container: HTMLElement, timestamp: number): time.className = 'csk-msg__time'; time.textContent = formatTime(timestamp); - wrapper.appendChild(bubble); - wrapper.appendChild(time); + content.appendChild(bubble); + content.appendChild(time); + wrapper.appendChild(avatar); + wrapper.appendChild(content); container.appendChild(wrapper); return { wrapper, bubble }; @@ -429,10 +509,10 @@ export function renderSources(wrapper: HTMLElement, sources: RagSource[]): void sourcesEl.appendChild(header); sourcesEl.appendChild(body); - // 插入到气泡和时间戳之间 + // 插入到气泡和时间戳之间(时间戳在 content 容器内,故用其父节点插入) const timeEl = wrapper.querySelector('.csk-msg__time'); - if (timeEl) { - wrapper.insertBefore(sourcesEl, timeEl); + if (timeEl && timeEl.parentNode) { + timeEl.parentNode.insertBefore(sourcesEl, timeEl); } else { wrapper.appendChild(sourcesEl); } diff --git a/client/src/i18n.ts b/client/src/i18n.ts index ed604c0..1e3a15f 100644 --- a/client/src/i18n.ts +++ b/client/src/i18n.ts @@ -9,6 +9,11 @@ const dictionaries: Record> = { title: 'AI 智能助手', minimize: '最小化', close: '关闭', + status_online: '在线', + + // 欢迎空状态 + welcome_title: '你好,我是 AI 智能助手', + welcome_desc: '有什么可以帮你的吗?在下方输入框开始提问吧~', // 输入区 placeholder: '输入您的问题...', @@ -59,6 +64,11 @@ const dictionaries: Record> = { title: 'AI Assistant', minimize: 'Minimize', close: 'Close', + status_online: 'Online', + + // Welcome + welcome_title: 'Hi, I am your AI assistant', + welcome_desc: 'How can I help you? Type your question below to get started.', // Input placeholder: 'Type your question...', diff --git a/client/src/index.ts b/client/src/index.ts index eaa8b55..4bec3be 100644 --- a/client/src/index.ts +++ b/client/src/index.ts @@ -90,6 +90,7 @@ function init(rawConfig: SDKConfig): void { clearBtn, categorySelect, historyPanel, + welcomeEl: dom.welcomeEl, showLoading: showLoadingFn, hideLoading: hideLoadingFn, }); diff --git a/client/src/styles.ts b/client/src/styles.ts index 1f63281..f81b3e1 100644 --- a/client/src/styles.ts +++ b/client/src/styles.ts @@ -1,30 +1,45 @@ /** * 样式注入模块 - CSS 自动注入,csk- 命名空间隔离 - * P1 新增:知识库下拉框、RAG 引用来源卡片、Markdown 渲染样式 - * P2 新增:会话管理面板样式 + * + * 设计语言:现代克制、柔和阴影、圆角气泡、主色渐变、入场动效。 + * 主题色由配置驱动,通过 CSS 变量透传,可在运行时热替换。 */ import { ResolvedConfig } from './types'; let styleElement: HTMLStyleElement | null = null; +/** 将 hex 颜色解析为 "r, g, b" 字符串,用于 rgba() 拼接 */ +function hexToRgb(hex: string): string { + const match = hex.match(/^#([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/); + if (!match) return '79, 70, 229'; + return `${parseInt(match[1], 16)}, ${parseInt(match[2], 16)}, ${parseInt(match[3], 16)}`; +} + /** CSS 变量:将配置中的主题色转换为 CSS 自定义属性 */ function cssVars(config: ResolvedConfig): string { - // 简单的主色调加深(hover 用) const darker = adjustColor(config.primaryColor, -15); + const lighter = adjustColor(config.primaryColor, 18); + const rgb = hexToRgb(config.primaryColor); return ` --csk-primary: ${config.primaryColor}; --csk-primary-hover: ${darker}; - --csk-bg-user: var(--csk-primary); - --csk-bg-ai: #F3F4F6; - --csk-text-user: #FFFFFF; + --csk-primary-light: ${lighter}; + --csk-primary-rgb: ${rgb}; + --csk-bg-user: linear-gradient(135deg, ${config.primaryColor}, ${darker}); + --csk-bg-ai: #ffffff; + --csk-text-user: #ffffff; --csk-text-ai: #1F2937; --csk-window-width: ${config.width}px; + --csk-radius: 16px; + --csk-shadow-window: 0 12px 48px rgba(15, 23, 42, 0.18), 0 2px 8px rgba(15, 23, 42, 0.06); + --csk-shadow-bubble: 0 1px 2px rgba(15, 23, 42, 0.06); + --csk-border: #ECEEF2; + --csk-bg-app: #F6F7F9; `; } -/** 简单的颜色加深(HSL 方式) */ +/** 简单的颜色加深(按通道加减) */ function adjustColor(hex: string, amount: number): string { - // 如果是 hex 格式,简单地对每个通道加减 const match = hex.match(/^#([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/); if (!match) { return hex; @@ -42,68 +57,87 @@ function getStyles(config: ResolvedConfig): string { /* ChatbotSDK 样式 - csk- 命名空间 */ .csk-root { ${cssVars(config)} - font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans SC", sans-serif; + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans SC", "PingFang SC", "Microsoft YaHei", sans-serif; font-size: 14px; - line-height: 1.5; + line-height: 1.55; color: #1F2937; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + box-sizing: border-box; } +.csk-root *, .csk-root *::before, .csk-root *::after { box-sizing: border-box; } /* ========== 悬浮按钮 ========== */ .csk-launcher { position: fixed; - bottom: 20px; + bottom: 24px; z-index: 9998; - width: 56px; - height: 56px; + width: 58px; + height: 58px; border-radius: 50%; - background: #fff; - box-shadow: 0 4px 16px rgba(0, 0, 0, 0.15); + background: var(--csk-bg-user); + box-shadow: 0 8px 24px rgba(var(--csk-primary-rgb), 0.42), 0 2px 6px rgba(15, 23, 42, 0.12); display: flex; align-items: center; justify-content: center; cursor: pointer; - transition: all 0.2s ease; + transition: transform 0.22s cubic-bezier(0.34, 1.56, 0.64, 1), box-shadow 0.22s ease; border: none; - color: var(--csk-primary); + color: #fff; user-select: none; } -.csk-launcher--right { - right: 20px; -} -.csk-launcher--left { - left: 20px; +.csk-launcher--right { right: 24px; } +.csk-launcher--left { left: 24px; } +.csk-launcher::after { + content: ''; + position: absolute; + inset: -4px; + border-radius: 50%; + border: 2px solid rgba(var(--csk-primary-rgb), 0.35); + opacity: 0; + animation: csk-ping 2.6s cubic-bezier(0, 0, 0.2, 1) infinite; + pointer-events: none; } .csk-launcher:hover { - transform: scale(1.1); - box-shadow: 0 6px 24px rgba(0, 0, 0, 0.2); + transform: translateY(-2px) scale(1.05); + box-shadow: 0 12px 32px rgba(var(--csk-primary-rgb), 0.5), 0 4px 10px rgba(15, 23, 42, 0.14); } -.csk-launcher:active { - transform: scale(0.95); +.csk-launcher:active { transform: scale(0.94); } +.csk-launcher svg { width: 28px; height: 28px; } + +@keyframes csk-ping { + 0% { transform: scale(0.92); opacity: 0.7; } + 70%, 100% { transform: scale(1.35); opacity: 0; } } /* ========== 聊天弹窗 ========== */ .csk-window { position: fixed; - bottom: 20px; + bottom: 24px; z-index: 9999; width: var(--csk-window-width); - height: 560px; + height: 600px; + max-height: calc(100vh - 48px); background: #fff; - border-radius: 12px; - box-shadow: 0 8px 40px rgba(0, 0, 0, 0.18); + border-radius: var(--csk-radius); + box-shadow: var(--csk-shadow-window); display: flex; flex-direction: column; overflow: hidden; - transition: opacity 0.2s ease, transform 0.2s ease; -} -.csk-window--right { - right: 20px; -} -.csk-window--left { - left: 20px; + transform-origin: bottom right; + transition: opacity 0.24s ease, transform 0.24s cubic-bezier(0.34, 1.2, 0.64, 1), visibility 0.24s; + opacity: 1; + transform: translateY(0) scale(1); + visibility: visible; + pointer-events: auto; } +.csk-window--right { right: 24px; transform-origin: bottom right; } +.csk-window--left { left: 24px; transform-origin: bottom left; } .csk-window--hidden { - display: none; + opacity: 0; + transform: translateY(12px) scale(0.96); + visibility: hidden; + pointer-events: none; } /* ========== 头部 ========== */ @@ -111,14 +145,46 @@ function getStyles(config: ResolvedConfig): string { display: flex; align-items: center; justify-content: space-between; - padding: 0 16px; - height: 48px; - min-height: 48px; - background: var(--csk-primary); + padding: 12px 16px; + min-height: 60px; + background: var(--csk-bg-user); color: #fff; - border-radius: 12px 12px 0 0; cursor: move; user-select: none; + position: relative; + flex-shrink: 0; +} +.csk-header::after { + content: ''; + position: absolute; + left: 0; right: 0; bottom: 0; + height: 24px; + background: linear-gradient(to bottom, rgba(0,0,0,0.04), transparent); + pointer-events: none; +} +.csk-header__left { + display: flex; + align-items: center; + gap: 12px; + min-width: 0; +} +.csk-header__avatar { + width: 38px; + height: 38px; + border-radius: 50%; + background: rgba(255, 255, 255, 0.22); + backdrop-filter: blur(4px); + display: flex; + align-items: center; + justify-content: center; + flex-shrink: 0; + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.25); +} +.csk-header__avatar svg { width: 22px; height: 22px; } +.csk-header__info { + display: flex; + flex-direction: column; + min-width: 0; } .csk-header__title { font-size: 15px; @@ -126,13 +192,37 @@ function getStyles(config: ResolvedConfig): string { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; + letter-spacing: 0.2px; +} +.csk-header__status { + display: inline-flex; + align-items: center; + gap: 5px; + font-size: 11.5px; + opacity: 0.9; + margin-top: 2px; +} +.csk-status-dot { + width: 7px; + height: 7px; + border-radius: 50%; + background: #6EE7B7; + box-shadow: 0 0 0 0 rgba(110, 231, 183, 0.7); + animation: csk-status-pulse 2s infinite; +} +@keyframes csk-status-pulse { + 0% { box-shadow: 0 0 0 0 rgba(110, 231, 183, 0.7); } + 70% { box-shadow: 0 0 0 6px rgba(110, 231, 183, 0); } + 100% { box-shadow: 0 0 0 0 rgba(110, 231, 183, 0); } } .csk-header__actions { display: flex; align-items: center; - gap: 4px; + gap: 2px; + flex-shrink: 0; } -.csk-header__btn { +.csk-header__btn, +.csk-history-btn { display: flex; align-items: center; justify-content: center; @@ -142,84 +232,183 @@ function getStyles(config: ResolvedConfig): string { background: transparent; color: #fff; cursor: pointer; - border-radius: 6px; - transition: background 0.15s; + border-radius: 8px; + transition: background 0.15s, transform 0.15s; } -.csk-header__btn:hover { +.csk-header__btn:hover, +.csk-history-btn:hover { background: rgba(255, 255, 255, 0.2); } +.csk-header__btn:active, +.csk-history-btn:active { transform: scale(0.92); } /* ========== 消息区 ========== */ .csk-messages { flex: 1; overflow-y: auto; - padding: 16px; - background: #FAFAFA; + padding: 20px 16px 12px; + background: var(--csk-bg-app); scroll-behavior: smooth; } -.csk-messages::-webkit-scrollbar { - width: 5px; -} -.csk-messages::-webkit-scrollbar-track { - background: transparent; -} +.csk-messages::-webkit-scrollbar { width: 6px; } +.csk-messages::-webkit-scrollbar-track { background: transparent; } .csk-messages::-webkit-scrollbar-thumb { - background: #D1D5DB; + background: #D8DCE3; border-radius: 3px; } +.csk-messages::-webkit-scrollbar-thumb:hover { background: #C2C7D0; } + +/* 欢迎空状态 */ +.csk-welcome { + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + text-align: center; + padding: 48px 24px 32px; + color: #6B7280; + animation: csk-fade-in 0.3s ease; +} +.csk-welcome__avatar { + width: 56px; + height: 56px; + border-radius: 50%; + background: var(--csk-bg-user); + color: #fff; + display: flex; + align-items: center; + justify-content: center; + margin-bottom: 14px; + box-shadow: 0 6px 18px rgba(var(--csk-primary-rgb), 0.3); +} +.csk-welcome__avatar svg { width: 30px; height: 30px; } +.csk-welcome__title { + font-size: 15px; + font-weight: 600; + color: #1F2937; + margin-bottom: 4px; +} +.csk-welcome__desc { + font-size: 13px; + color: #9CA3AF; + line-height: 1.6; +} /* 消息气泡 */ .csk-msg { display: flex; - flex-direction: column; - margin-bottom: 16px; - max-width: 85%; + margin-bottom: 18px; + max-width: 100%; word-break: break-word; + animation: csk-msg-in 0.28s cubic-bezier(0.22, 1, 0.36, 1); } .csk-msg--user { - margin-left: auto; + flex-direction: row-reverse; align-items: flex-end; } .csk-msg--ai { - margin-right: auto; + flex-direction: row; align-items: flex-start; } +.csk-msg__avatar { + width: 30px; + height: 30px; + border-radius: 50%; + display: flex; + align-items: center; + justify-content: center; + flex-shrink: 0; + margin: 0 8px; + box-shadow: var(--csk-shadow-bubble); +} +.csk-msg__avatar svg { width: 18px; height: 18px; } +.csk-msg__avatar--ai { + background: #fff; + color: var(--csk-primary); + border: 1px solid var(--csk-border); +} +.csk-msg__avatar--user { + background: var(--csk-bg-user); + color: #fff; +} +.csk-msg__content { + display: flex; + flex-direction: column; + min-width: 0; + max-width: calc(100% - 46px); +} +.csk-msg--user .csk-msg__content { align-items: flex-end; } +.csk-msg--ai .csk-msg__content { align-items: flex-start; } .csk-msg__bubble { padding: 10px 14px; - border-radius: 12px; + border-radius: 16px; font-size: 14px; line-height: 1.6; + box-shadow: var(--csk-shadow-bubble); } .csk-msg--user .csk-msg__bubble { background: var(--csk-bg-user); color: var(--csk-text-user); - border-radius: 12px 12px 4px 12px; + border-radius: 16px 16px 4px 16px; } .csk-msg--ai .csk-msg__bubble { background: var(--csk-bg-ai); color: var(--csk-text-ai); - border-radius: 12px 12px 12px 4px; + border-radius: 16px 16px 16px 4px; + border: 1px solid var(--csk-border); } .csk-msg__time { font-size: 11px; color: #9CA3AF; - margin-top: 4px; + margin-top: 5px; padding: 0 4px; } +@keyframes csk-msg-in { + from { opacity: 0; transform: translateY(8px); } + to { opacity: 1; transform: translateY(0); } +} +@keyframes csk-fade-in { + from { opacity: 0; } + to { opacity: 1; } +} + /* ========== Loading 动画 ========== */ .csk-loading { display: flex; align-items: center; - gap: 6px; - padding: 12px 14px; - margin-bottom: 16px; + margin-bottom: 18px; + animation: csk-msg-in 0.28s ease; +} +.csk-loading__avatar { + width: 30px; + height: 30px; + border-radius: 50%; + background: #fff; + color: var(--csk-primary); + border: 1px solid var(--csk-border); + display: flex; + align-items: center; + justify-content: center; + flex-shrink: 0; + margin: 0 8px; + box-shadow: var(--csk-shadow-bubble); +} +.csk-loading__avatar svg { width: 18px; height: 18px; } +.csk-loading__bubble { + background: #fff; + border: 1px solid var(--csk-border); + border-radius: 16px 16px 16px 4px; + padding: 12px 16px; + display: flex; + align-items: center; + gap: 5px; } .csk-loading__dot { - width: 8px; - height: 8px; + width: 7px; + height: 7px; border-radius: 50%; - background: #D1D5DB; + background: #B4B9C2; animation: csk-bounce 1.4s ease-in-out infinite both; } .csk-loading__dot:nth-child(1) { animation-delay: 0s; } @@ -227,77 +416,93 @@ function getStyles(config: ResolvedConfig): string { .csk-loading__dot:nth-child(3) { animation-delay: 0.32s; } @keyframes csk-bounce { - 0%, 80%, 100% { transform: scale(0.6); } - 40% { transform: scale(1); } + 0%, 80%, 100% { transform: scale(0.6); opacity: 0.6; } + 40% { transform: scale(1); opacity: 1; } } /* ========== 输入区 ========== */ .csk-input-area { - display: flex; - align-items: center; - padding: 10px 12px; - border-top: 1px solid #E5E7EB; + padding: 10px 12px 14px; background: #fff; + border-top: 1px solid var(--csk-border); + flex-shrink: 0; +} +.csk-input-wrap { + display: flex; + align-items: flex-end; gap: 8px; + background: var(--csk-bg-app); + border: 1px solid var(--csk-border); + border-radius: 14px; + padding: 6px 6px 6px 14px; + transition: border-color 0.2s, box-shadow 0.2s, background 0.2s; +} +.csk-input-wrap--focus { + border-color: var(--csk-primary); + background: #fff; + box-shadow: 0 0 0 3px rgba(var(--csk-primary-rgb), 0.12); } .csk-input { flex: 1; - border: 1px solid #E5E7EB; - border-radius: 8px; - padding: 10px 12px; + border: none; + background: transparent; + padding: 8px 0; font-size: 14px; outline: none; - transition: border-color 0.2s; font-family: inherit; resize: none; - min-height: 20px; - max-height: 100px; -} -.csk-input:focus { - border-color: var(--csk-primary); -} -.csk-input::placeholder { - color: #9CA3AF; + min-height: 22px; + max-height: 120px; + line-height: 1.5; + color: #1F2937; } +.csk-input::placeholder { color: #9CA3AF; } .csk-send-btn { display: flex; align-items: center; justify-content: center; - width: 40px; - height: 40px; - min-width: 40px; + width: 36px; + height: 36px; + min-width: 36px; border: none; - border-radius: 8px; - background: var(--csk-primary); + border-radius: 10px; + background: var(--csk-bg-user); color: #fff; cursor: pointer; - transition: background 0.2s; + transition: transform 0.18s, box-shadow 0.18s, opacity 0.18s; + box-shadow: 0 3px 10px rgba(var(--csk-primary-rgb), 0.3); } -.csk-send-btn:hover { - background: var(--csk-primary-hover); +.csk-send-btn:hover:not(:disabled) { + transform: translateY(-1px); + box-shadow: 0 5px 14px rgba(var(--csk-primary-rgb), 0.4); } +.csk-send-btn:active:not(:disabled) { transform: scale(0.92); } .csk-send-btn:disabled { background: #D1D5DB; + box-shadow: none; cursor: not-allowed; + opacity: 0.7; } +.csk-send-btn svg { width: 18px; height: 18px; } /* ========== 清空按钮 ========== */ .csk-clear-btn { display: inline-flex; align-items: center; - gap: 4px; - padding: 6px 12px; - border: 1px solid #E5E7EB; - border-radius: 6px; + gap: 5px; + padding: 5px 12px; + border: 1px solid var(--csk-border); + border-radius: 999px; background: #fff; color: #6B7280; font-size: 12px; cursor: pointer; margin: 0 auto 8px; transition: all 0.15s; + font-family: inherit; } .csk-clear-btn:hover { - background: #FEE2E2; + background: #FEF2F2; border-color: #FCA5A5; color: #DC2626; } @@ -306,96 +511,91 @@ function getStyles(config: ResolvedConfig): string { .csk-category-bar { display: flex; align-items: center; - padding: 6px 12px; - border-top: 1px solid #E5E7EB; - background: #F9FAFB; + padding: 8px 12px; + border-top: 1px solid var(--csk-border); + background: #FBFBFC; gap: 8px; + flex-shrink: 0; } .csk-category-bar__label { - font-size: 12px; - color: #6B7280; + font-size: 13px; white-space: nowrap; } .csk-category-select { flex: 1; - padding: 5px 8px; - border: 1px solid #E5E7EB; - border-radius: 6px; - font-size: 12px; + padding: 6px 28px 6px 10px; + border: 1px solid var(--csk-border); + border-radius: 8px; + font-size: 12.5px; color: #374151; - background: #fff; + background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%239CA3AF' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E") no-repeat right 9px center; + appearance: none; + -webkit-appearance: none; outline: none; cursor: pointer; font-family: inherit; - transition: border-color 0.2s; - max-width: 200px; + transition: border-color 0.2s, box-shadow 0.2s; + max-width: 220px; } .csk-category-select:focus { border-color: var(--csk-primary); + box-shadow: 0 0 0 3px rgba(var(--csk-primary-rgb), 0.12); } /* ========== P1: RAG 引用来源卡片 ========== */ .csk-sources { margin-top: 8px; - border: 1px solid #E5E7EB; - border-radius: 8px; + border: 1px solid var(--csk-border); + border-radius: 12px; overflow: hidden; font-size: 12px; max-width: 100%; + background: #FAFBFC; } .csk-sources__header { display: flex; align-items: center; justify-content: space-between; padding: 8px 12px; - background: #F9FAFB; + background: #F3F4F7; cursor: pointer; user-select: none; transition: background 0.15s; } -.csk-sources__header:hover { - background: #F3F4F6; -} +.csk-sources__header:hover { background: #ECEEF2; } .csk-sources__title { display: flex; align-items: center; - gap: 4px; + gap: 5px; font-weight: 500; color: #374151; } .csk-sources__arrow { transition: transform 0.2s; color: #9CA3AF; + font-size: 10px; } -.csk-sources--collapsed .csk-sources__arrow { - transform: rotate(-90deg); -} +.csk-sources--collapsed .csk-sources__arrow { transform: rotate(-90deg); } .csk-sources__body { - border-top: 1px solid #E5E7EB; + border-top: 1px solid var(--csk-border); padding: 0; } -.csk-sources--collapsed .csk-sources__body { - display: none; -} +.csk-sources--collapsed .csk-sources__body { display: none; } .csk-source-item { - padding: 8px 12px; - border-bottom: 1px solid #F3F4F6; + padding: 9px 12px; + border-bottom: 1px solid #F0F1F4; transition: background 0.15s; } -.csk-source-item:last-child { - border-bottom: none; -} -.csk-source-item:hover { - background: #F9FAFB; -} +.csk-source-item:last-child { border-bottom: none; } +.csk-source-item:hover { background: #fff; } .csk-source-item__name { font-weight: 500; color: #1F2937; - margin-bottom: 2px; + margin-bottom: 3px; } .csk-source-item__snippet { color: #6B7280; - line-height: 1.4; + line-height: 1.5; overflow: hidden; text-overflow: ellipsis; display: -webkit-box; @@ -405,25 +605,22 @@ function getStyles(config: ResolvedConfig): string { .csk-source-item__meta { font-size: 11px; color: #9CA3AF; - margin-top: 2px; + margin-top: 4px; } /* ========== P1: Markdown 渲染样式 ========== */ -.csk-msg--ai .csk-msg__bubble .csk-md-p { - margin: 0 0 8px; -} -.csk-msg--ai .csk-msg__bubble .csk-md-p:last-child { - margin-bottom: 0; -} +.csk-msg--ai .csk-msg__bubble .csk-md-p { margin: 0 0 8px; } +.csk-msg--ai .csk-msg__bubble .csk-md-p:last-child { margin-bottom: 0; } .csk-msg--ai .csk-msg__bubble .csk-md-h1, .csk-msg--ai .csk-msg__bubble .csk-md-h2, .csk-msg--ai .csk-msg__bubble .csk-md-h3, .csk-msg--ai .csk-msg__bubble .csk-md-h4, .csk-msg--ai .csk-msg__bubble .csk-md-h5, .csk-msg--ai .csk-msg__bubble .csk-md-h6 { - margin: 12px 0 6px; + margin: 14px 0 6px; font-weight: 600; line-height: 1.3; + color: #111827; } .csk-msg--ai .csk-msg__bubble .csk-md-h1 { font-size: 20px; } .csk-msg--ai .csk-msg__bubble .csk-md-h2 { font-size: 17px; } @@ -434,12 +631,12 @@ function getStyles(config: ResolvedConfig): string { background: #1E293B; color: #E2E8F0; padding: 12px 14px; - border-radius: 8px; + border-radius: 10px; overflow-x: auto; margin: 8px 0; font-size: 13px; - line-height: 1.5; - font-family: 'SF Mono', 'Consolas', 'Menlo', monospace; + line-height: 1.55; + font-family: 'SF Mono', 'Consolas', 'Menlo', 'Monaco', monospace; } .csk-md-code-block code { background: none; @@ -449,61 +646,45 @@ function getStyles(config: ResolvedConfig): string { color: inherit; } .csk-md-inline-code { - background: #E5E7EB; - color: #DC2626; + background: rgba(var(--csk-primary-rgb), 0.1); + color: var(--csk-primary); padding: 1px 6px; - border-radius: 4px; + border-radius: 5px; font-size: 13px; - font-family: 'SF Mono', 'Consolas', 'Menlo', monospace; + font-family: 'SF Mono', 'Consolas', 'Menlo', 'Monaco', monospace; } .csk-msg--ai .csk-msg__bubble .csk-md-ul, .csk-msg--ai .csk-msg__bubble .csk-md-ol { - padding-left: 20px; + padding-left: 22px; margin: 6px 0; } .csk-msg--ai .csk-msg__bubble .csk-md-ul li, -.csk-msg--ai .csk-msg__bubble .csk-md-ol li { - margin-bottom: 4px; -} +.csk-msg--ai .csk-msg__bubble .csk-md-ol li { margin-bottom: 4px; } .csk-md-blockquote { border-left: 3px solid var(--csk-primary); - padding-left: 12px; + padding: 2px 12px; margin: 8px 0; color: #6B7280; + background: rgba(var(--csk-primary-rgb), 0.05); + border-radius: 0 6px 6px 0; } .csk-md-link { color: var(--csk-primary); text-decoration: none; + border-bottom: 1px solid rgba(var(--csk-primary-rgb), 0.3); + transition: border-color 0.15s; } -.csk-md-link:hover { - text-decoration: underline; -} +.csk-md-link:hover { border-bottom-color: var(--csk-primary); } .csk-md-hr { border: none; - border-top: 1px solid #E5E7EB; + border-top: 1px solid var(--csk-border); margin: 12px 0; } /* ========== P2: 会话管理面板 ========== */ -.csk-history-btn { - display: flex; - align-items: center; - justify-content: center; - width: 32px; - height: 32px; - border: none; - background: transparent; - color: #fff; - cursor: pointer; - border-radius: 6px; - transition: background 0.15s; -} -.csk-history-btn:hover { - background: rgba(255, 255, 255, 0.2); -} .csk-history-panel { position: absolute; - top: 48px; + top: 0; left: 0; right: 0; bottom: 0; @@ -512,17 +693,21 @@ function getStyles(config: ResolvedConfig): string { display: flex; flex-direction: column; overflow: hidden; + animation: csk-slide-in 0.24s ease; } -.csk-history-panel--hidden { - display: none; +.csk-history-panel--hidden { display: none; } +@keyframes csk-slide-in { + from { transform: translateX(100%); opacity: 0.4; } + to { transform: translateX(0); opacity: 1; } } .csk-history-panel__header { display: flex; align-items: center; justify-content: space-between; - padding: 12px 16px; - border-bottom: 1px solid #E5E7EB; - background: #F9FAFB; + padding: 14px 16px; + border-bottom: 1px solid var(--csk-border); + background: var(--csk-bg-app); + flex-shrink: 0; } .csk-history-panel__title { font-size: 14px; @@ -533,54 +718,42 @@ function getStyles(config: ResolvedConfig): string { display: flex; align-items: center; gap: 4px; - padding: 4px 10px; - border: 1px solid #E5E7EB; - border-radius: 6px; + padding: 5px 12px; + border: 1px solid var(--csk-border); + border-radius: 8px; background: #fff; color: #374151; font-size: 12px; cursor: pointer; transition: all 0.15s; + font-family: inherit; } -.csk-history-panel__back:hover { - background: #F3F4F6; -} +.csk-history-panel__back:hover { background: #F3F4F6; } .csk-history-panel__list { flex: 1; overflow-y: auto; - padding: 8px; -} -.csk-history-panel__list::-webkit-scrollbar { - width: 4px; -} -.csk-history-panel__list::-webkit-scrollbar-thumb { - background: #E5E7EB; - border-radius: 2px; + padding: 10px; } +.csk-history-panel__list::-webkit-scrollbar { width: 5px; } +.csk-history-panel__list::-webkit-scrollbar-thumb { background: #E5E7EB; border-radius: 2px; } .csk-history-item { display: flex; align-items: center; justify-content: space-between; - padding: 10px 12px; - border-radius: 8px; + padding: 11px 12px; + border-radius: 10px; cursor: pointer; transition: background 0.15s; - margin-bottom: 4px; -} -.csk-history-item:hover { - background: #F3F4F6; + margin-bottom: 5px; + border: 1px solid transparent; } +.csk-history-item:hover { background: #F3F4F6; } .csk-history-item--active { - background: #EEF2FF; - border-left: 3px solid var(--csk-primary); -} -.csk-history-item--active:hover { - background: #E0E7FF; -} -.csk-history-item__info { - flex: 1; - min-width: 0; + background: rgba(var(--csk-primary-rgb), 0.08); + border-color: rgba(var(--csk-primary-rgb), 0.2); } +.csk-history-item--active:hover { background: rgba(var(--csk-primary-rgb), 0.12); } +.csk-history-item__info { flex: 1; min-width: 0; } .csk-history-item__id { font-size: 13px; font-weight: 500; @@ -592,7 +765,7 @@ function getStyles(config: ResolvedConfig): string { .csk-history-item__meta { font-size: 11px; color: #9CA3AF; - margin-top: 2px; + margin-top: 3px; } .csk-history-item__actions { display: flex; @@ -601,9 +774,7 @@ function getStyles(config: ResolvedConfig): string { opacity: 0; transition: opacity 0.15s; } -.csk-history-item:hover .csk-history-item__actions { - opacity: 1; -} +.csk-history-item:hover .csk-history-item__actions { opacity: 1; } .csk-history-action { display: flex; align-items: center; @@ -611,45 +782,35 @@ function getStyles(config: ResolvedConfig): string { width: 28px; height: 28px; border: none; - border-radius: 6px; + border-radius: 7px; cursor: pointer; font-size: 12px; transition: all 0.15s; } -.csk-history-action--export { - background: #EFF6FF; - color: #2563EB; -} -.csk-history-action--export:hover { - background: #DBEAFE; -} -.csk-history-action--delete { - background: #FEF2F2; - color: #DC2626; -} -.csk-history-action--delete:hover { - background: #FEE2E2; -} +.csk-history-action--export { background: #EFF6FF; color: #2563EB; } +.csk-history-action--export:hover { background: #DBEAFE; } +.csk-history-action--delete { background: #FEF2F2; color: #DC2626; } +.csk-history-action--delete:hover { background: #FEE2E2; } .csk-history-panel__empty { display: flex; flex-direction: column; align-items: center; justify-content: center; - padding: 40px 20px; + padding: 48px 20px; color: #9CA3AF; font-size: 13px; text-align: center; } .csk-history-panel__empty-icon { - font-size: 32px; - margin-bottom: 8px; + font-size: 34px; + margin-bottom: 10px; opacity: 0.5; } .csk-history-panel__loading { display: flex; align-items: center; justify-content: center; - padding: 20px; + padding: 24px; color: #9CA3AF; font-size: 13px; } @@ -665,23 +826,23 @@ function getStyles(config: ResolvedConfig): string { text-align: center; transition: background 0.15s; } -.csk-history-panel__loadmore:hover { - background: #F3F4F6; -} +.csk-history-panel__loadmore:hover { background: #F3F4F6; } /* ========== 移动端适配 ========== */ @media (max-width: 480px) { .csk-window { width: 100vw !important; height: 100vh !important; + max-height: 100vh; bottom: 0 !important; right: 0 !important; left: 0 !important; border-radius: 0; } - .csk-header { - border-radius: 0; - } + .csk-window--hidden { transform: translateY(100%); } + .csk-launcher { bottom: 20px; } + .csk-launcher--right { right: 20px; } + .csk-launcher--left { left: 20px; } } `; } @@ -711,7 +872,10 @@ export function updateTheme(config: ResolvedConfig): void { } const vars = cssVars(config); vars.split(';').forEach((pair) => { - const [key, value] = pair.split(':').map((s) => s.trim()); + const idx = pair.indexOf(':'); + if (idx < 0) return; + const key = pair.slice(0, idx).trim(); + const value = pair.slice(idx + 1).trim(); if (key && value) { root.style.setProperty(key, value); } @@ -726,6 +890,5 @@ export function removeStyles(): void { styleElement.parentNode.removeChild(styleElement); styleElement = null; } - // 同时移除可能残留的其他 style 标签 document.querySelectorAll('style[data-csk-sdk]').forEach((el) => el.remove()); } diff --git a/src/main/resources/static/sdk/chatbot-sdk.js b/src/main/resources/static/sdk/chatbot-sdk.js index 909dff5..3128017 100644 --- a/src/main/resources/static/sdk/chatbot-sdk.js +++ b/src/main/resources/static/sdk/chatbot-sdk.js @@ -146,6 +146,10 @@ var ChatbotSDK = (function () { title: 'AI 智能助手', minimize: '最小化', close: '关闭', + status_online: '在线', + // 欢迎空状态 + welcome_title: '你好,我是 AI 智能助手', + welcome_desc: '有什么可以帮你的吗?在下方输入框开始提问吧~', // 输入区 placeholder: '输入您的问题...', send: '发送', @@ -189,6 +193,10 @@ var ChatbotSDK = (function () { title: 'AI Assistant', minimize: 'Minimize', close: 'Close', + status_online: 'Online', + // Welcome + welcome_title: 'Hi, I am your AI assistant', + welcome_desc: 'How can I help you? Type your question below to get started.', // Input placeholder: 'Type your question...', send: 'Send', @@ -714,23 +722,37 @@ var ChatbotSDK = (function () { } let styleElement = null; + /** 将 hex 颜色解析为 "r, g, b" 字符串,用于 rgba() 拼接 */ + function hexToRgb(hex) { + const match = hex.match(/^#([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/); + if (!match) + return '79, 70, 229'; + return `${parseInt(match[1], 16)}, ${parseInt(match[2], 16)}, ${parseInt(match[3], 16)}`; + } /** CSS 变量:将配置中的主题色转换为 CSS 自定义属性 */ function cssVars(config) { - // 简单的主色调加深(hover 用) const darker = adjustColor(config.primaryColor, -15); + const lighter = adjustColor(config.primaryColor, 18); + const rgb = hexToRgb(config.primaryColor); return ` --csk-primary: ${config.primaryColor}; --csk-primary-hover: ${darker}; - --csk-bg-user: var(--csk-primary); - --csk-bg-ai: #F3F4F6; - --csk-text-user: #FFFFFF; + --csk-primary-light: ${lighter}; + --csk-primary-rgb: ${rgb}; + --csk-bg-user: linear-gradient(135deg, ${config.primaryColor}, ${darker}); + --csk-bg-ai: #ffffff; + --csk-text-user: #ffffff; --csk-text-ai: #1F2937; --csk-window-width: ${config.width}px; + --csk-radius: 16px; + --csk-shadow-window: 0 12px 48px rgba(15, 23, 42, 0.18), 0 2px 8px rgba(15, 23, 42, 0.06); + --csk-shadow-bubble: 0 1px 2px rgba(15, 23, 42, 0.06); + --csk-border: #ECEEF2; + --csk-bg-app: #F6F7F9; `; } - /** 简单的颜色加深(HSL 方式) */ + /** 简单的颜色加深(按通道加减) */ function adjustColor(hex, amount) { - // 如果是 hex 格式,简单地对每个通道加减 const match = hex.match(/^#([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/); if (!match) { return hex; @@ -747,68 +769,87 @@ var ChatbotSDK = (function () { /* ChatbotSDK 样式 - csk- 命名空间 */ .csk-root { ${cssVars(config)} - font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans SC", sans-serif; + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans SC", "PingFang SC", "Microsoft YaHei", sans-serif; font-size: 14px; - line-height: 1.5; + line-height: 1.55; color: #1F2937; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + box-sizing: border-box; } +.csk-root *, .csk-root *::before, .csk-root *::after { box-sizing: border-box; } /* ========== 悬浮按钮 ========== */ .csk-launcher { position: fixed; - bottom: 20px; + bottom: 24px; z-index: 9998; - width: 56px; - height: 56px; + width: 58px; + height: 58px; border-radius: 50%; - background: #fff; - box-shadow: 0 4px 16px rgba(0, 0, 0, 0.15); + background: var(--csk-bg-user); + box-shadow: 0 8px 24px rgba(var(--csk-primary-rgb), 0.42), 0 2px 6px rgba(15, 23, 42, 0.12); display: flex; align-items: center; justify-content: center; cursor: pointer; - transition: all 0.2s ease; + transition: transform 0.22s cubic-bezier(0.34, 1.56, 0.64, 1), box-shadow 0.22s ease; border: none; - color: var(--csk-primary); + color: #fff; user-select: none; } -.csk-launcher--right { - right: 20px; -} -.csk-launcher--left { - left: 20px; +.csk-launcher--right { right: 24px; } +.csk-launcher--left { left: 24px; } +.csk-launcher::after { + content: ''; + position: absolute; + inset: -4px; + border-radius: 50%; + border: 2px solid rgba(var(--csk-primary-rgb), 0.35); + opacity: 0; + animation: csk-ping 2.6s cubic-bezier(0, 0, 0.2, 1) infinite; + pointer-events: none; } .csk-launcher:hover { - transform: scale(1.1); - box-shadow: 0 6px 24px rgba(0, 0, 0, 0.2); + transform: translateY(-2px) scale(1.05); + box-shadow: 0 12px 32px rgba(var(--csk-primary-rgb), 0.5), 0 4px 10px rgba(15, 23, 42, 0.14); } -.csk-launcher:active { - transform: scale(0.95); +.csk-launcher:active { transform: scale(0.94); } +.csk-launcher svg { width: 28px; height: 28px; } + +@keyframes csk-ping { + 0% { transform: scale(0.92); opacity: 0.7; } + 70%, 100% { transform: scale(1.35); opacity: 0; } } /* ========== 聊天弹窗 ========== */ .csk-window { position: fixed; - bottom: 20px; + bottom: 24px; z-index: 9999; width: var(--csk-window-width); - height: 560px; + height: 600px; + max-height: calc(100vh - 48px); background: #fff; - border-radius: 12px; - box-shadow: 0 8px 40px rgba(0, 0, 0, 0.18); + border-radius: var(--csk-radius); + box-shadow: var(--csk-shadow-window); display: flex; flex-direction: column; overflow: hidden; - transition: opacity 0.2s ease, transform 0.2s ease; -} -.csk-window--right { - right: 20px; -} -.csk-window--left { - left: 20px; + transform-origin: bottom right; + transition: opacity 0.24s ease, transform 0.24s cubic-bezier(0.34, 1.2, 0.64, 1), visibility 0.24s; + opacity: 1; + transform: translateY(0) scale(1); + visibility: visible; + pointer-events: auto; } +.csk-window--right { right: 24px; transform-origin: bottom right; } +.csk-window--left { left: 24px; transform-origin: bottom left; } .csk-window--hidden { - display: none; + opacity: 0; + transform: translateY(12px) scale(0.96); + visibility: hidden; + pointer-events: none; } /* ========== 头部 ========== */ @@ -816,14 +857,46 @@ var ChatbotSDK = (function () { display: flex; align-items: center; justify-content: space-between; - padding: 0 16px; - height: 48px; - min-height: 48px; - background: var(--csk-primary); + padding: 12px 16px; + min-height: 60px; + background: var(--csk-bg-user); color: #fff; - border-radius: 12px 12px 0 0; cursor: move; user-select: none; + position: relative; + flex-shrink: 0; +} +.csk-header::after { + content: ''; + position: absolute; + left: 0; right: 0; bottom: 0; + height: 24px; + background: linear-gradient(to bottom, rgba(0,0,0,0.04), transparent); + pointer-events: none; +} +.csk-header__left { + display: flex; + align-items: center; + gap: 12px; + min-width: 0; +} +.csk-header__avatar { + width: 38px; + height: 38px; + border-radius: 50%; + background: rgba(255, 255, 255, 0.22); + backdrop-filter: blur(4px); + display: flex; + align-items: center; + justify-content: center; + flex-shrink: 0; + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.25); +} +.csk-header__avatar svg { width: 22px; height: 22px; } +.csk-header__info { + display: flex; + flex-direction: column; + min-width: 0; } .csk-header__title { font-size: 15px; @@ -831,13 +904,37 @@ var ChatbotSDK = (function () { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; + letter-spacing: 0.2px; +} +.csk-header__status { + display: inline-flex; + align-items: center; + gap: 5px; + font-size: 11.5px; + opacity: 0.9; + margin-top: 2px; +} +.csk-status-dot { + width: 7px; + height: 7px; + border-radius: 50%; + background: #6EE7B7; + box-shadow: 0 0 0 0 rgba(110, 231, 183, 0.7); + animation: csk-status-pulse 2s infinite; +} +@keyframes csk-status-pulse { + 0% { box-shadow: 0 0 0 0 rgba(110, 231, 183, 0.7); } + 70% { box-shadow: 0 0 0 6px rgba(110, 231, 183, 0); } + 100% { box-shadow: 0 0 0 0 rgba(110, 231, 183, 0); } } .csk-header__actions { display: flex; align-items: center; - gap: 4px; + gap: 2px; + flex-shrink: 0; } -.csk-header__btn { +.csk-header__btn, +.csk-history-btn { display: flex; align-items: center; justify-content: center; @@ -847,84 +944,183 @@ var ChatbotSDK = (function () { background: transparent; color: #fff; cursor: pointer; - border-radius: 6px; - transition: background 0.15s; + border-radius: 8px; + transition: background 0.15s, transform 0.15s; } -.csk-header__btn:hover { +.csk-header__btn:hover, +.csk-history-btn:hover { background: rgba(255, 255, 255, 0.2); } +.csk-header__btn:active, +.csk-history-btn:active { transform: scale(0.92); } /* ========== 消息区 ========== */ .csk-messages { flex: 1; overflow-y: auto; - padding: 16px; - background: #FAFAFA; + padding: 20px 16px 12px; + background: var(--csk-bg-app); scroll-behavior: smooth; } -.csk-messages::-webkit-scrollbar { - width: 5px; -} -.csk-messages::-webkit-scrollbar-track { - background: transparent; -} +.csk-messages::-webkit-scrollbar { width: 6px; } +.csk-messages::-webkit-scrollbar-track { background: transparent; } .csk-messages::-webkit-scrollbar-thumb { - background: #D1D5DB; + background: #D8DCE3; border-radius: 3px; } +.csk-messages::-webkit-scrollbar-thumb:hover { background: #C2C7D0; } + +/* 欢迎空状态 */ +.csk-welcome { + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + text-align: center; + padding: 48px 24px 32px; + color: #6B7280; + animation: csk-fade-in 0.3s ease; +} +.csk-welcome__avatar { + width: 56px; + height: 56px; + border-radius: 50%; + background: var(--csk-bg-user); + color: #fff; + display: flex; + align-items: center; + justify-content: center; + margin-bottom: 14px; + box-shadow: 0 6px 18px rgba(var(--csk-primary-rgb), 0.3); +} +.csk-welcome__avatar svg { width: 30px; height: 30px; } +.csk-welcome__title { + font-size: 15px; + font-weight: 600; + color: #1F2937; + margin-bottom: 4px; +} +.csk-welcome__desc { + font-size: 13px; + color: #9CA3AF; + line-height: 1.6; +} /* 消息气泡 */ .csk-msg { display: flex; - flex-direction: column; - margin-bottom: 16px; - max-width: 85%; + margin-bottom: 18px; + max-width: 100%; word-break: break-word; + animation: csk-msg-in 0.28s cubic-bezier(0.22, 1, 0.36, 1); } .csk-msg--user { - margin-left: auto; + flex-direction: row-reverse; align-items: flex-end; } .csk-msg--ai { - margin-right: auto; + flex-direction: row; align-items: flex-start; } +.csk-msg__avatar { + width: 30px; + height: 30px; + border-radius: 50%; + display: flex; + align-items: center; + justify-content: center; + flex-shrink: 0; + margin: 0 8px; + box-shadow: var(--csk-shadow-bubble); +} +.csk-msg__avatar svg { width: 18px; height: 18px; } +.csk-msg__avatar--ai { + background: #fff; + color: var(--csk-primary); + border: 1px solid var(--csk-border); +} +.csk-msg__avatar--user { + background: var(--csk-bg-user); + color: #fff; +} +.csk-msg__content { + display: flex; + flex-direction: column; + min-width: 0; + max-width: calc(100% - 46px); +} +.csk-msg--user .csk-msg__content { align-items: flex-end; } +.csk-msg--ai .csk-msg__content { align-items: flex-start; } .csk-msg__bubble { padding: 10px 14px; - border-radius: 12px; + border-radius: 16px; font-size: 14px; line-height: 1.6; + box-shadow: var(--csk-shadow-bubble); } .csk-msg--user .csk-msg__bubble { background: var(--csk-bg-user); color: var(--csk-text-user); - border-radius: 12px 12px 4px 12px; + border-radius: 16px 16px 4px 16px; } .csk-msg--ai .csk-msg__bubble { background: var(--csk-bg-ai); color: var(--csk-text-ai); - border-radius: 12px 12px 12px 4px; + border-radius: 16px 16px 16px 4px; + border: 1px solid var(--csk-border); } .csk-msg__time { font-size: 11px; color: #9CA3AF; - margin-top: 4px; + margin-top: 5px; padding: 0 4px; } +@keyframes csk-msg-in { + from { opacity: 0; transform: translateY(8px); } + to { opacity: 1; transform: translateY(0); } +} +@keyframes csk-fade-in { + from { opacity: 0; } + to { opacity: 1; } +} + /* ========== Loading 动画 ========== */ .csk-loading { display: flex; align-items: center; - gap: 6px; - padding: 12px 14px; - margin-bottom: 16px; + margin-bottom: 18px; + animation: csk-msg-in 0.28s ease; +} +.csk-loading__avatar { + width: 30px; + height: 30px; + border-radius: 50%; + background: #fff; + color: var(--csk-primary); + border: 1px solid var(--csk-border); + display: flex; + align-items: center; + justify-content: center; + flex-shrink: 0; + margin: 0 8px; + box-shadow: var(--csk-shadow-bubble); +} +.csk-loading__avatar svg { width: 18px; height: 18px; } +.csk-loading__bubble { + background: #fff; + border: 1px solid var(--csk-border); + border-radius: 16px 16px 16px 4px; + padding: 12px 16px; + display: flex; + align-items: center; + gap: 5px; } .csk-loading__dot { - width: 8px; - height: 8px; + width: 7px; + height: 7px; border-radius: 50%; - background: #D1D5DB; + background: #B4B9C2; animation: csk-bounce 1.4s ease-in-out infinite both; } .csk-loading__dot:nth-child(1) { animation-delay: 0s; } @@ -932,77 +1128,93 @@ var ChatbotSDK = (function () { .csk-loading__dot:nth-child(3) { animation-delay: 0.32s; } @keyframes csk-bounce { - 0%, 80%, 100% { transform: scale(0.6); } - 40% { transform: scale(1); } + 0%, 80%, 100% { transform: scale(0.6); opacity: 0.6; } + 40% { transform: scale(1); opacity: 1; } } /* ========== 输入区 ========== */ .csk-input-area { - display: flex; - align-items: center; - padding: 10px 12px; - border-top: 1px solid #E5E7EB; + padding: 10px 12px 14px; background: #fff; + border-top: 1px solid var(--csk-border); + flex-shrink: 0; +} +.csk-input-wrap { + display: flex; + align-items: flex-end; gap: 8px; + background: var(--csk-bg-app); + border: 1px solid var(--csk-border); + border-radius: 14px; + padding: 6px 6px 6px 14px; + transition: border-color 0.2s, box-shadow 0.2s, background 0.2s; +} +.csk-input-wrap--focus { + border-color: var(--csk-primary); + background: #fff; + box-shadow: 0 0 0 3px rgba(var(--csk-primary-rgb), 0.12); } .csk-input { flex: 1; - border: 1px solid #E5E7EB; - border-radius: 8px; - padding: 10px 12px; + border: none; + background: transparent; + padding: 8px 0; font-size: 14px; outline: none; - transition: border-color 0.2s; font-family: inherit; resize: none; - min-height: 20px; - max-height: 100px; -} -.csk-input:focus { - border-color: var(--csk-primary); -} -.csk-input::placeholder { - color: #9CA3AF; + min-height: 22px; + max-height: 120px; + line-height: 1.5; + color: #1F2937; } +.csk-input::placeholder { color: #9CA3AF; } .csk-send-btn { display: flex; align-items: center; justify-content: center; - width: 40px; - height: 40px; - min-width: 40px; + width: 36px; + height: 36px; + min-width: 36px; border: none; - border-radius: 8px; - background: var(--csk-primary); + border-radius: 10px; + background: var(--csk-bg-user); color: #fff; cursor: pointer; - transition: background 0.2s; + transition: transform 0.18s, box-shadow 0.18s, opacity 0.18s; + box-shadow: 0 3px 10px rgba(var(--csk-primary-rgb), 0.3); } -.csk-send-btn:hover { - background: var(--csk-primary-hover); +.csk-send-btn:hover:not(:disabled) { + transform: translateY(-1px); + box-shadow: 0 5px 14px rgba(var(--csk-primary-rgb), 0.4); } +.csk-send-btn:active:not(:disabled) { transform: scale(0.92); } .csk-send-btn:disabled { background: #D1D5DB; + box-shadow: none; cursor: not-allowed; + opacity: 0.7; } +.csk-send-btn svg { width: 18px; height: 18px; } /* ========== 清空按钮 ========== */ .csk-clear-btn { display: inline-flex; align-items: center; - gap: 4px; - padding: 6px 12px; - border: 1px solid #E5E7EB; - border-radius: 6px; + gap: 5px; + padding: 5px 12px; + border: 1px solid var(--csk-border); + border-radius: 999px; background: #fff; color: #6B7280; font-size: 12px; cursor: pointer; margin: 0 auto 8px; transition: all 0.15s; + font-family: inherit; } .csk-clear-btn:hover { - background: #FEE2E2; + background: #FEF2F2; border-color: #FCA5A5; color: #DC2626; } @@ -1011,96 +1223,91 @@ var ChatbotSDK = (function () { .csk-category-bar { display: flex; align-items: center; - padding: 6px 12px; - border-top: 1px solid #E5E7EB; - background: #F9FAFB; + padding: 8px 12px; + border-top: 1px solid var(--csk-border); + background: #FBFBFC; gap: 8px; + flex-shrink: 0; } .csk-category-bar__label { - font-size: 12px; - color: #6B7280; + font-size: 13px; white-space: nowrap; } .csk-category-select { flex: 1; - padding: 5px 8px; - border: 1px solid #E5E7EB; - border-radius: 6px; - font-size: 12px; + padding: 6px 28px 6px 10px; + border: 1px solid var(--csk-border); + border-radius: 8px; + font-size: 12.5px; color: #374151; - background: #fff; + background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%239CA3AF' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E") no-repeat right 9px center; + appearance: none; + -webkit-appearance: none; outline: none; cursor: pointer; font-family: inherit; - transition: border-color 0.2s; - max-width: 200px; + transition: border-color 0.2s, box-shadow 0.2s; + max-width: 220px; } .csk-category-select:focus { border-color: var(--csk-primary); + box-shadow: 0 0 0 3px rgba(var(--csk-primary-rgb), 0.12); } /* ========== P1: RAG 引用来源卡片 ========== */ .csk-sources { margin-top: 8px; - border: 1px solid #E5E7EB; - border-radius: 8px; + border: 1px solid var(--csk-border); + border-radius: 12px; overflow: hidden; font-size: 12px; max-width: 100%; + background: #FAFBFC; } .csk-sources__header { display: flex; align-items: center; justify-content: space-between; padding: 8px 12px; - background: #F9FAFB; + background: #F3F4F7; cursor: pointer; user-select: none; transition: background 0.15s; } -.csk-sources__header:hover { - background: #F3F4F6; -} +.csk-sources__header:hover { background: #ECEEF2; } .csk-sources__title { display: flex; align-items: center; - gap: 4px; + gap: 5px; font-weight: 500; color: #374151; } .csk-sources__arrow { transition: transform 0.2s; color: #9CA3AF; + font-size: 10px; } -.csk-sources--collapsed .csk-sources__arrow { - transform: rotate(-90deg); -} +.csk-sources--collapsed .csk-sources__arrow { transform: rotate(-90deg); } .csk-sources__body { - border-top: 1px solid #E5E7EB; + border-top: 1px solid var(--csk-border); padding: 0; } -.csk-sources--collapsed .csk-sources__body { - display: none; -} +.csk-sources--collapsed .csk-sources__body { display: none; } .csk-source-item { - padding: 8px 12px; - border-bottom: 1px solid #F3F4F6; + padding: 9px 12px; + border-bottom: 1px solid #F0F1F4; transition: background 0.15s; } -.csk-source-item:last-child { - border-bottom: none; -} -.csk-source-item:hover { - background: #F9FAFB; -} +.csk-source-item:last-child { border-bottom: none; } +.csk-source-item:hover { background: #fff; } .csk-source-item__name { font-weight: 500; color: #1F2937; - margin-bottom: 2px; + margin-bottom: 3px; } .csk-source-item__snippet { color: #6B7280; - line-height: 1.4; + line-height: 1.5; overflow: hidden; text-overflow: ellipsis; display: -webkit-box; @@ -1110,25 +1317,22 @@ var ChatbotSDK = (function () { .csk-source-item__meta { font-size: 11px; color: #9CA3AF; - margin-top: 2px; + margin-top: 4px; } /* ========== P1: Markdown 渲染样式 ========== */ -.csk-msg--ai .csk-msg__bubble .csk-md-p { - margin: 0 0 8px; -} -.csk-msg--ai .csk-msg__bubble .csk-md-p:last-child { - margin-bottom: 0; -} +.csk-msg--ai .csk-msg__bubble .csk-md-p { margin: 0 0 8px; } +.csk-msg--ai .csk-msg__bubble .csk-md-p:last-child { margin-bottom: 0; } .csk-msg--ai .csk-msg__bubble .csk-md-h1, .csk-msg--ai .csk-msg__bubble .csk-md-h2, .csk-msg--ai .csk-msg__bubble .csk-md-h3, .csk-msg--ai .csk-msg__bubble .csk-md-h4, .csk-msg--ai .csk-msg__bubble .csk-md-h5, .csk-msg--ai .csk-msg__bubble .csk-md-h6 { - margin: 12px 0 6px; + margin: 14px 0 6px; font-weight: 600; line-height: 1.3; + color: #111827; } .csk-msg--ai .csk-msg__bubble .csk-md-h1 { font-size: 20px; } .csk-msg--ai .csk-msg__bubble .csk-md-h2 { font-size: 17px; } @@ -1139,12 +1343,12 @@ var ChatbotSDK = (function () { background: #1E293B; color: #E2E8F0; padding: 12px 14px; - border-radius: 8px; + border-radius: 10px; overflow-x: auto; margin: 8px 0; font-size: 13px; - line-height: 1.5; - font-family: 'SF Mono', 'Consolas', 'Menlo', monospace; + line-height: 1.55; + font-family: 'SF Mono', 'Consolas', 'Menlo', 'Monaco', monospace; } .csk-md-code-block code { background: none; @@ -1154,61 +1358,45 @@ var ChatbotSDK = (function () { color: inherit; } .csk-md-inline-code { - background: #E5E7EB; - color: #DC2626; + background: rgba(var(--csk-primary-rgb), 0.1); + color: var(--csk-primary); padding: 1px 6px; - border-radius: 4px; + border-radius: 5px; font-size: 13px; - font-family: 'SF Mono', 'Consolas', 'Menlo', monospace; + font-family: 'SF Mono', 'Consolas', 'Menlo', 'Monaco', monospace; } .csk-msg--ai .csk-msg__bubble .csk-md-ul, .csk-msg--ai .csk-msg__bubble .csk-md-ol { - padding-left: 20px; + padding-left: 22px; margin: 6px 0; } .csk-msg--ai .csk-msg__bubble .csk-md-ul li, -.csk-msg--ai .csk-msg__bubble .csk-md-ol li { - margin-bottom: 4px; -} +.csk-msg--ai .csk-msg__bubble .csk-md-ol li { margin-bottom: 4px; } .csk-md-blockquote { border-left: 3px solid var(--csk-primary); - padding-left: 12px; + padding: 2px 12px; margin: 8px 0; color: #6B7280; + background: rgba(var(--csk-primary-rgb), 0.05); + border-radius: 0 6px 6px 0; } .csk-md-link { color: var(--csk-primary); text-decoration: none; + border-bottom: 1px solid rgba(var(--csk-primary-rgb), 0.3); + transition: border-color 0.15s; } -.csk-md-link:hover { - text-decoration: underline; -} +.csk-md-link:hover { border-bottom-color: var(--csk-primary); } .csk-md-hr { border: none; - border-top: 1px solid #E5E7EB; + border-top: 1px solid var(--csk-border); margin: 12px 0; } /* ========== P2: 会话管理面板 ========== */ -.csk-history-btn { - display: flex; - align-items: center; - justify-content: center; - width: 32px; - height: 32px; - border: none; - background: transparent; - color: #fff; - cursor: pointer; - border-radius: 6px; - transition: background 0.15s; -} -.csk-history-btn:hover { - background: rgba(255, 255, 255, 0.2); -} .csk-history-panel { position: absolute; - top: 48px; + top: 0; left: 0; right: 0; bottom: 0; @@ -1217,17 +1405,21 @@ var ChatbotSDK = (function () { display: flex; flex-direction: column; overflow: hidden; + animation: csk-slide-in 0.24s ease; } -.csk-history-panel--hidden { - display: none; +.csk-history-panel--hidden { display: none; } +@keyframes csk-slide-in { + from { transform: translateX(100%); opacity: 0.4; } + to { transform: translateX(0); opacity: 1; } } .csk-history-panel__header { display: flex; align-items: center; justify-content: space-between; - padding: 12px 16px; - border-bottom: 1px solid #E5E7EB; - background: #F9FAFB; + padding: 14px 16px; + border-bottom: 1px solid var(--csk-border); + background: var(--csk-bg-app); + flex-shrink: 0; } .csk-history-panel__title { font-size: 14px; @@ -1238,54 +1430,42 @@ var ChatbotSDK = (function () { display: flex; align-items: center; gap: 4px; - padding: 4px 10px; - border: 1px solid #E5E7EB; - border-radius: 6px; + padding: 5px 12px; + border: 1px solid var(--csk-border); + border-radius: 8px; background: #fff; color: #374151; font-size: 12px; cursor: pointer; transition: all 0.15s; + font-family: inherit; } -.csk-history-panel__back:hover { - background: #F3F4F6; -} +.csk-history-panel__back:hover { background: #F3F4F6; } .csk-history-panel__list { flex: 1; overflow-y: auto; - padding: 8px; -} -.csk-history-panel__list::-webkit-scrollbar { - width: 4px; -} -.csk-history-panel__list::-webkit-scrollbar-thumb { - background: #E5E7EB; - border-radius: 2px; + padding: 10px; } +.csk-history-panel__list::-webkit-scrollbar { width: 5px; } +.csk-history-panel__list::-webkit-scrollbar-thumb { background: #E5E7EB; border-radius: 2px; } .csk-history-item { display: flex; align-items: center; justify-content: space-between; - padding: 10px 12px; - border-radius: 8px; + padding: 11px 12px; + border-radius: 10px; cursor: pointer; transition: background 0.15s; - margin-bottom: 4px; -} -.csk-history-item:hover { - background: #F3F4F6; + margin-bottom: 5px; + border: 1px solid transparent; } +.csk-history-item:hover { background: #F3F4F6; } .csk-history-item--active { - background: #EEF2FF; - border-left: 3px solid var(--csk-primary); -} -.csk-history-item--active:hover { - background: #E0E7FF; -} -.csk-history-item__info { - flex: 1; - min-width: 0; + background: rgba(var(--csk-primary-rgb), 0.08); + border-color: rgba(var(--csk-primary-rgb), 0.2); } +.csk-history-item--active:hover { background: rgba(var(--csk-primary-rgb), 0.12); } +.csk-history-item__info { flex: 1; min-width: 0; } .csk-history-item__id { font-size: 13px; font-weight: 500; @@ -1297,7 +1477,7 @@ var ChatbotSDK = (function () { .csk-history-item__meta { font-size: 11px; color: #9CA3AF; - margin-top: 2px; + margin-top: 3px; } .csk-history-item__actions { display: flex; @@ -1306,9 +1486,7 @@ var ChatbotSDK = (function () { opacity: 0; transition: opacity 0.15s; } -.csk-history-item:hover .csk-history-item__actions { - opacity: 1; -} +.csk-history-item:hover .csk-history-item__actions { opacity: 1; } .csk-history-action { display: flex; align-items: center; @@ -1316,45 +1494,35 @@ var ChatbotSDK = (function () { width: 28px; height: 28px; border: none; - border-radius: 6px; + border-radius: 7px; cursor: pointer; font-size: 12px; transition: all 0.15s; } -.csk-history-action--export { - background: #EFF6FF; - color: #2563EB; -} -.csk-history-action--export:hover { - background: #DBEAFE; -} -.csk-history-action--delete { - background: #FEF2F2; - color: #DC2626; -} -.csk-history-action--delete:hover { - background: #FEE2E2; -} +.csk-history-action--export { background: #EFF6FF; color: #2563EB; } +.csk-history-action--export:hover { background: #DBEAFE; } +.csk-history-action--delete { background: #FEF2F2; color: #DC2626; } +.csk-history-action--delete:hover { background: #FEE2E2; } .csk-history-panel__empty { display: flex; flex-direction: column; align-items: center; justify-content: center; - padding: 40px 20px; + padding: 48px 20px; color: #9CA3AF; font-size: 13px; text-align: center; } .csk-history-panel__empty-icon { - font-size: 32px; - margin-bottom: 8px; + font-size: 34px; + margin-bottom: 10px; opacity: 0.5; } .csk-history-panel__loading { display: flex; align-items: center; justify-content: center; - padding: 20px; + padding: 24px; color: #9CA3AF; font-size: 13px; } @@ -1370,23 +1538,23 @@ var ChatbotSDK = (function () { text-align: center; transition: background 0.15s; } -.csk-history-panel__loadmore:hover { - background: #F3F4F6; -} +.csk-history-panel__loadmore:hover { background: #F3F4F6; } /* ========== 移动端适配 ========== */ @media (max-width: 480px) { .csk-window { width: 100vw !important; height: 100vh !important; + max-height: 100vh; bottom: 0 !important; right: 0 !important; left: 0 !important; border-radius: 0; } - .csk-header { - border-radius: 0; - } + .csk-window--hidden { transform: translateY(100%); } + .csk-launcher { bottom: 20px; } + .csk-launcher--right { right: 20px; } + .csk-launcher--left { left: 20px; } } `; } @@ -1411,7 +1579,6 @@ var ChatbotSDK = (function () { styleElement.parentNode.removeChild(styleElement); styleElement = null; } - // 同时移除可能残留的其他 style 标签 document.querySelectorAll('style[data-csk-sdk]').forEach((el) => el.remove()); } @@ -1460,6 +1627,11 @@ var ChatbotSDK = (function () { return Date.now(); } + // ==================== 图标常量 ==================== + /** 机器人头像图标(用于头部、欢迎态、AI 气泡、Loading) */ + const BOT_ICON = ``; + /** 用户头像图标 */ + const USER_ICON = ``; // ==================== 悬浮按钮 ==================== /** 创建悬浮按钮 */ function createLauncher(config, onClick) { @@ -1494,9 +1666,23 @@ var ChatbotSDK = (function () { // === 头部 === const header = document.createElement('div'); header.className = 'csk-header'; + const headerLeft = document.createElement('div'); + headerLeft.className = 'csk-header__left'; + const headerAvatar = document.createElement('div'); + headerAvatar.className = 'csk-header__avatar'; + headerAvatar.innerHTML = BOT_ICON; + const headerInfo = document.createElement('div'); + headerInfo.className = 'csk-header__info'; const titleEl = document.createElement('span'); titleEl.className = 'csk-header__title'; titleEl.textContent = config.title; + const statusEl = document.createElement('span'); + statusEl.className = 'csk-header__status'; + statusEl.innerHTML = `${t('status_online')}`; + headerInfo.appendChild(titleEl); + headerInfo.appendChild(statusEl); + headerLeft.appendChild(headerAvatar); + headerLeft.appendChild(headerInfo); const actions = document.createElement('div'); actions.className = 'csk-header__actions'; // 历史会话按钮(P2) @@ -1523,12 +1709,21 @@ var ChatbotSDK = (function () { actions.appendChild(historyBtn); actions.appendChild(minimizeBtn); actions.appendChild(closeBtn); - header.appendChild(titleEl); + header.appendChild(headerLeft); header.appendChild(actions); // === 消息区 === const messagesContainer = document.createElement('div'); messagesContainer.id = 'csk-messages'; messagesContainer.className = 'csk-messages'; + // === 欢迎空状态 === + const welcomeEl = document.createElement('div'); + welcomeEl.className = 'csk-welcome'; + welcomeEl.innerHTML = ` +
${BOT_ICON}
+
${t('welcome_title')}
+
${t('welcome_desc')}
+ `; + messagesContainer.appendChild(welcomeEl); // === 会话管理面板(P2,默认隐藏) === const historyPanel = document.createElement('div'); historyPanel.className = 'csk-history-panel csk-history-panel--hidden'; @@ -1593,6 +1788,8 @@ var ChatbotSDK = (function () { // === 输入区 === const inputArea = document.createElement('div'); inputArea.className = 'csk-input-area'; + const inputWrap = document.createElement('div'); + inputWrap.className = 'csk-input-wrap'; const inputEl = document.createElement('textarea'); inputEl.id = 'csk-input'; inputEl.className = 'csk-input'; @@ -1605,8 +1802,9 @@ var ChatbotSDK = (function () { sendBtn.setAttribute('title', t('send')); sendBtn.setAttribute('disabled', 'true'); sendBtn.innerHTML = ``; - inputArea.appendChild(inputEl); - inputArea.appendChild(sendBtn); + inputWrap.appendChild(inputEl); + inputWrap.appendChild(sendBtn); + inputArea.appendChild(inputWrap); windowEl.appendChild(inputArea); // 清空按钮(可选) let clearBtn = null; @@ -1628,9 +1826,12 @@ var ChatbotSDK = (function () { const el = document.createElement('div'); el.className = 'csk-loading'; el.innerHTML = ` -
-
-
+
${BOT_ICON}
+
+
+
+
+
`; messagesContainer.appendChild(el); loadingEl = el; @@ -1650,6 +1851,7 @@ var ChatbotSDK = (function () { clearBtn, categorySelect, historyPanel, + welcomeEl, showLoading, hideLoading, }; @@ -1663,6 +1865,10 @@ var ChatbotSDK = (function () { let offsetX = 0; let offsetY = 0; const onMouseDown = (e) => { + // 忽略头部按钮点击触发的拖拽 + const target = e.target; + if (target.closest('button')) + return; dragging = true; startX = e.clientX; startY = e.clientY; @@ -1703,14 +1909,21 @@ var ChatbotSDK = (function () { function renderUserBubble(container, text, timestamp) { const wrapper = document.createElement('div'); wrapper.className = 'csk-msg csk-msg--user'; + const avatar = document.createElement('div'); + avatar.className = 'csk-msg__avatar csk-msg__avatar--user'; + avatar.innerHTML = USER_ICON; + const content = document.createElement('div'); + content.className = 'csk-msg__content'; const bubble = document.createElement('div'); bubble.className = 'csk-msg__bubble'; bubble.textContent = text; const time = document.createElement('div'); time.className = 'csk-msg__time'; time.textContent = formatTime(timestamp); - wrapper.appendChild(bubble); - wrapper.appendChild(time); + content.appendChild(bubble); + content.appendChild(time); + wrapper.appendChild(avatar); + wrapper.appendChild(content); container.appendChild(wrapper); return wrapper; } @@ -1718,6 +1931,11 @@ var ChatbotSDK = (function () { function renderAIBubble(container, text, timestamp, renderMd) { const wrapper = document.createElement('div'); wrapper.className = 'csk-msg csk-msg--ai'; + const avatar = document.createElement('div'); + avatar.className = 'csk-msg__avatar csk-msg__avatar--ai'; + avatar.innerHTML = BOT_ICON; + const content = document.createElement('div'); + content.className = 'csk-msg__content'; const bubble = document.createElement('div'); bubble.className = 'csk-msg__bubble'; // 支持 Markdown 渲染,传入渲染函数则使用,否则纯文本 @@ -1730,8 +1948,10 @@ var ChatbotSDK = (function () { const time = document.createElement('div'); time.className = 'csk-msg__time'; time.textContent = formatTime(timestamp); - wrapper.appendChild(bubble); - wrapper.appendChild(time); + content.appendChild(bubble); + content.appendChild(time); + wrapper.appendChild(avatar); + wrapper.appendChild(content); container.appendChild(wrapper); return wrapper; } @@ -1739,14 +1959,21 @@ var ChatbotSDK = (function () { function createEmptyAIBubble(container, timestamp) { const wrapper = document.createElement('div'); wrapper.className = 'csk-msg csk-msg--ai'; + const avatar = document.createElement('div'); + avatar.className = 'csk-msg__avatar csk-msg__avatar--ai'; + avatar.innerHTML = BOT_ICON; + const content = document.createElement('div'); + content.className = 'csk-msg__content'; const bubble = document.createElement('div'); bubble.className = 'csk-msg__bubble'; bubble.innerHTML = ''; const time = document.createElement('div'); time.className = 'csk-msg__time'; time.textContent = formatTime(timestamp); - wrapper.appendChild(bubble); - wrapper.appendChild(time); + content.appendChild(bubble); + content.appendChild(time); + wrapper.appendChild(avatar); + wrapper.appendChild(content); container.appendChild(wrapper); return { wrapper, bubble }; } @@ -1807,10 +2034,10 @@ var ChatbotSDK = (function () { } sourcesEl.appendChild(header); sourcesEl.appendChild(body); - // 插入到气泡和时间戳之间 + // 插入到气泡和时间戳之间(时间戳在 content 容器内,故用其父节点插入) const timeEl = wrapper.querySelector('.csk-msg__time'); - if (timeEl) { - wrapper.insertBefore(sourcesEl, timeEl); + if (timeEl && timeEl.parentNode) { + timeEl.parentNode.insertBefore(sourcesEl, timeEl); } else { wrapper.appendChild(sourcesEl); @@ -2162,10 +2389,12 @@ var ChatbotSDK = (function () { let messages = []; let messagesContainer$1 = null; let inputEl$1 = null; + let inputWrap = null; let sendBtn$1 = null; let clearBtn$1 = null; let categorySelect$1 = null; let historyPanel$1 = null; + let welcomeEl = null; let showLoadingFn$1 = null; let hideLoadingFn$1 = null; let isSending = false; @@ -2180,10 +2409,12 @@ var ChatbotSDK = (function () { config$1 = cfg; messagesContainer$1 = dom.messagesContainer; inputEl$1 = dom.inputEl; + inputWrap = dom.inputEl.parentElement; sendBtn$1 = dom.sendBtn; clearBtn$1 = dom.clearBtn; categorySelect$1 = dom.categorySelect; historyPanel$1 = dom.historyPanel; + welcomeEl = dom.welcomeEl; showLoadingFn$1 = dom.showLoading; hideLoadingFn$1 = dom.hideLoading; // 初始化知识库分类 @@ -2257,11 +2488,38 @@ var ChatbotSDK = (function () { handleSend(); } }); - inputEl$1.addEventListener('input', () => updateSendBtnState()); + inputEl$1.addEventListener('input', () => { + updateSendBtnState(); + autoResizeInput(); + }); + // 输入框聚焦/失焦高亮容器 + inputEl$1.addEventListener('focus', () => { + if (inputWrap) + inputWrap.classList.add('csk-input-wrap--focus'); + }); + inputEl$1.addEventListener('blur', () => { + if (inputWrap) + inputWrap.classList.remove('csk-input-wrap--focus'); + }); if (clearBtn$1) { clearBtn$1.addEventListener('click', () => handleClear()); } } + /** 文本框自动撑高 */ + function autoResizeInput() { + if (!inputEl$1) + return; + inputEl$1.style.height = 'auto'; + inputEl$1.style.height = `${Math.min(inputEl$1.scrollHeight, 120)}px`; + } + /** 根据消息数量切换欢迎空状态显隐 */ + function updateEmptyState() { + if (!welcomeEl) + return; + const hasMessages = messages.length > 0 || + (messagesContainer$1 && messagesContainer$1.querySelector('.csk-msg')); + welcomeEl.style.display = hasMessages ? 'none' : ''; + } /** 更新发送按钮状态 */ function updateSendBtnState() { if (!sendBtn$1 || !inputEl$1) @@ -2296,6 +2554,7 @@ var ChatbotSDK = (function () { renderUserBubble(messagesContainer$1, text, userTimestamp); const userMsg = { id: uuid(), role: 'user', content: text, timestamp: userTimestamp }; messages.push(userMsg); + updateEmptyState(); if (clearBtn$1 && messages.length > 0) clearBtn$1.style.display = 'inline-flex'; if (messagesContainer$1) @@ -2468,6 +2727,7 @@ var ChatbotSDK = (function () { scrollToBottom(messagesContainer$1); if (clearBtn$1 && messages.length > 0) clearBtn$1.style.display = 'inline-flex'; + updateEmptyState(); if (historyPanelEl && !messagesContainer$1.contains(historyPanelEl)) { messagesContainer$1.appendChild(historyPanelEl); } @@ -2485,6 +2745,7 @@ var ChatbotSDK = (function () { } if (clearBtn$1) clearBtn$1.style.display = 'none'; + updateEmptyState(); clearMessages(config$1.integrateId); // 生成新的 chatId,开始新会话 const newId = generateNewChatId(); @@ -2547,6 +2808,7 @@ var ChatbotSDK = (function () { } if (clearBtn$1) clearBtn$1.style.display = 'none'; + updateEmptyState(); } loadHistoryConversations(); } @@ -2601,6 +2863,7 @@ var ChatbotSDK = (function () { if (clearBtn$1 && messages.length > 0) { clearBtn$1.style.display = 'inline-flex'; } + updateEmptyState(); } // ==================== 单例状态 ==================== @@ -2665,6 +2928,7 @@ var ChatbotSDK = (function () { clearBtn, categorySelect, historyPanel, + welcomeEl: dom.welcomeEl, showLoading: showLoadingFn, hideLoading: hideLoadingFn, }); diff --git a/src/main/resources/static/sdk/chatbot-sdk.js.map b/src/main/resources/static/sdk/chatbot-sdk.js.map index 7168aee..868598b 100644 --- a/src/main/resources/static/sdk/chatbot-sdk.js.map +++ b/src/main/resources/static/sdk/chatbot-sdk.js.map @@ -1 +1 @@ -{"version":3,"file":"chatbot-sdk.js","sources":["../src/logger.ts","../src/config.ts","../src/i18n.ts","../src/api.ts","../src/styles.ts","../src/utils.ts","../src/dom.ts","../src/storage.ts","../src/markdown.ts","../src/chat.ts","../src/index.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null],"names":["config","messagesContainer","inputEl","sendBtn","clearBtn","categorySelect","historyPanel","showLoadingFn","hideLoadingFn"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"chatbot-sdk.js","sources":["../src/logger.ts","../src/config.ts","../src/i18n.ts","../src/api.ts","../src/styles.ts","../src/utils.ts","../src/dom.ts","../src/storage.ts","../src/markdown.ts","../src/chat.ts","../src/index.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null],"names":["config","messagesContainer","inputEl","sendBtn","clearBtn","categorySelect","historyPanel","showLoadingFn","hideLoadingFn"],"mappings":"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"} \ No newline at end of file diff --git a/src/main/resources/static/sdk/chatbot-sdk.min.js b/src/main/resources/static/sdk/chatbot-sdk.min.js index e858b94..18c79aa 100644 --- a/src/main/resources/static/sdk/chatbot-sdk.min.js +++ b/src/main/resources/static/sdk/chatbot-sdk.min.js @@ -1,2 +1,2 @@ -var ChatbotSDK=function(){"use strict";const e="[ChatbotSDK]";let n=!0;const t={},r={info(t,r){n&&console.log(e,t,void 0!==r?r:"")},warn(t,r){n&&console.warn(e,t,void 0!==r?r:"")},error(n,t){console.error(e,n,void 0!==t?t:"")},time(e){t[e]=Date.now()},timeEnd(r,o){const s=t[r];if(void 0!==s){const i=Date.now()-s;if(delete t[r],n){const n=o?`${o} ${i}ms`:`${r} ${i}ms`;console.log(e,n)}return i}return 0},lifecycleInit(e,n){this.info(`初始化完成 integrateId=${e} requestDomain=${n}`)},lifecycleDestroy(e){this.info(`销毁实例 integrateId=${e}`)},lifecycleSend(e,n){this.info(`发送消息 integrateId=${e} length=${n}`),this.time(`send_${e}`)},lifecycleReply(e,n){const t=this.timeEnd(`send_${e}`,"AI 回复");this.info(`AI 回复 integrateId=${e} length=${n} duration=${t}ms`)},lifecycleError(e,n,t){this.timeEnd(`send_${e}`),this.error(`请求失败 integrateId=${e} status=${n} message=${t}`)},lifecycleClear(e){this.info(`清空会话 integrateId=${e}`)},lifecycleStreamDone(e,n){const t=this.timeEnd(`send_${e}`,"流式回复");this.info(`流式回复完成 integrateId=${e} length=${n} duration=${t}ms`)},lifecycleCategoryChange(e){this.info(`切换知识库分类 categoryId=${e}`)}};const o={"zh-CN":{title:"AI 智能助手",minimize:"最小化",close:"关闭",placeholder:"输入您的问题...",send:"发送",loading:"正在思考...",stream_interrupted:"回复被中断",stream_unstable:"网络不稳定,内容可能不完整",category_placeholder:"选择知识库分类",category_all:"全部分类",category_load_error:"加载分类失败",source_title:"参考来源",source_count:"{n} 条参考来源",source_loading:"加载来源中...",clear:"清空对话",clear_confirm:"确定清空所有对话记录?",history_title:"历史会话",history_empty:"暂无历史会话",history_load_error:"加载会话列表失败",history_delete_confirm:"确定删除该会话?",history_export:"导出",history_delete:"删除",error_network:"网络连接失败,请检查网络",error_timeout:"请求超时,请稍后重试",error_server:"服务器异常,请稍后重试",error_cors:"跨域请求被拦截,请联系管理员将当前域名加入 API 白名单",error_auth:"鉴权失败,请联系管理员",error_forbidden:"无访问权限,请联系管理员配置",error_not_found:"请求的资源不存在",error_rate_limit:"请求过于频繁,请稍后重试",error_unavailable:"服务暂不可用,请稍后重试",error_unknown:"请求发生未知错误",error_send:"发送失败,请稍后重试",error_stream_unsupported:"浏览器不支持流式读取"},en:{title:"AI Assistant",minimize:"Minimize",close:"Close",placeholder:"Type your question...",send:"Send",loading:"Thinking...",stream_interrupted:"Response interrupted",stream_unstable:"Network unstable, content may be incomplete",category_placeholder:"Select category",category_all:"All categories",category_load_error:"Failed to load categories",source_title:"Sources",source_count:"{n} source(s)",source_loading:"Loading sources...",clear:"Clear chat",clear_confirm:"Clear all conversation history?",history_title:"History",history_empty:"No conversations yet",history_load_error:"Failed to load conversations",history_delete_confirm:"Delete this conversation?",history_export:"Export",history_delete:"Delete",error_network:"Network connection failed",error_timeout:"Request timed out, please try again",error_server:"Server error, please try again later",error_cors:"CORS request blocked. Please contact admin to whitelist your domain",error_auth:"Authentication failed, please contact admin",error_forbidden:"Access denied, please contact admin",error_not_found:"Resource not found",error_rate_limit:"Too many requests, please try again later",error_unavailable:"Service temporarily unavailable",error_unknown:"Unknown request error",error_send:"Failed to send, please try again",error_stream_unsupported:"Browser does not support streaming"}};let s="zh-CN";function i(e,n){let t=(o[s]||o["zh-CN"])[e]||o["zh-CN"][e]||e;if(n)for(const[e,r]of Object.entries(n))t=t.replace(`{${e}}`,String(r));return t}let a=null;function c(e){a&&(a.chatId=e)}function l(){return(null==a?void 0:a.chatId)||""}function d(e){if(!a)throw new Error("API 配置未初始化");return`${a.requestDomain.replace(/\/+$/,"")}${e.startsWith("/")?e:`/${e}`}`}function u(e,n,t){null!=t&&("string"==typeof t&&""===t.trim()||e.set(n,String(t)))}async function p(e,n={},t=3e4){const r=new AbortController,o=setTimeout(()=>r.abort(),t);try{return await fetch(e,Object.assign(Object.assign({},n),{signal:r.signal,mode:"cors",credentials:"include"}))}catch(e){if(e instanceof DOMException&&"AbortError"===e.name)throw new m(i("error_timeout"),"timeout");if(e instanceof TypeError&&e.message.includes("Failed to fetch"))throw new m(i("error_cors"),"cors");throw new m(i("error_network"),"network")}finally{clearTimeout(o)}}class m extends Error{constructor(e,n){super(e),this.name="CskError",this.type=n}}function h(e){switch(e){case 401:return i("error_auth");case 403:return i("error_forbidden");case 404:return i("error_not_found");case 429:return i("error_rate_limit");case 500:return i("error_server");case 502:case 503:return i("error_unavailable");default:return`${i("error_unknown")}(${e})`}}async function g(e){const n=function(e){const n=new URLSearchParams;return n.set("message",e),n.set("chatId",a.chatId),u(n,"roleId",a.integrateId),u(n,"accountId",a.userId),d(`/ai/assistant_app/chat/sync?${n.toString()}`)}(e);r.lifecycleSend(a.integrateId,e.length);try{const e=await p(n);if(!e.ok){const n=h(e.status);throw r.lifecycleError(a.integrateId,String(e.status),n),new m(n,`http_${e.status}`)}const t=await e.text();return r.lifecycleReply(a.integrateId,t.length),t}catch(e){if(e instanceof m)throw e;throw r.lifecycleError(a.integrateId,"unknown",String(e)),new m(i("error_unknown"),"unknown")}}async function k(e,n,t,o,s,c){var l;const g=c?function(e,n){const t=new URLSearchParams;return t.set("message",e),t.set("chatId",a.chatId),t.set("rewriteStrategy","REWRITE"),u(t,"roleId",a.integrateId),u(t,"accountId",a.userId),u(t,"categoryId",null!=n?n:a.categoryId),d(`/ai/assistant_app/chat/rag/sse?${t.toString()}`)}(e,s):function(e,n){const t=new URLSearchParams;return t.set("message",e),t.set("chatId",a.chatId),u(t,"roleId",a.integrateId),u(t,"accountId",a.userId),u(t,"categoryId",null!=n?n:a.categoryId),d(`/ai/assistant_app/chat/sse?${t.toString()}`)}(e,s);let k="";r.lifecycleSend(a.integrateId,e.length);try{const e=await p(g,{},6e4);if(!e.ok){const n=h(e.status);return r.lifecycleError(a.integrateId,String(e.status),n),void o(new m(n,`http_${e.status}`))}const s=null===(l=e.body)||void 0===l?void 0:l.getReader();if(!s)return void o(new m(i("error_stream_unsupported"),"stream_unsupported"));const c=new TextDecoder("utf-8",{stream:!0});let d="";try{for(;;){const{done:e,value:t}=await s.read();if(e)break;d+=c.decode(t,{stream:!0});const r=d.split("\n");d=r.pop()||"";for(const e of r){const t=e.trim();if(t&&!t.startsWith(":"))if(t.startsWith("data:")){const e=t.substring(5).trim();e&&(k+=e,n(e))}else{if("[DONE]"===t)break;t.startsWith("event:")||t.startsWith("id:")||t.startsWith("retry:")||(k+=t,n(t))}}}if(d.trim()){const e=d.trim();if(e.startsWith("data:")){const t=e.substring(5).trim();t&&(k+=t,n(t))}else"[DONE]"!==e&&(k+=e,n(e))}}catch(e){if(!(k.length>0))throw e;n("\n\n"+i("stream_unstable"))}finally{s.releaseLock()}r.lifecycleStreamDone(a.integrateId,k.length),t()}catch(e){e instanceof m?o(e):(r.lifecycleError(a.integrateId,"unknown",String(e)),o(new m(i("error_network"),"network")))}}async function f(e,n){const t=function(e,n){const t=new URLSearchParams;return t.set("message",e),t.set("chatId",a.chatId),t.set("rewriteStrategy","REWRITE"),u(t,"roleId",a.integrateId),u(t,"accountId",a.userId),u(t,"categoryId",null!=n?n:a.categoryId),d(`/ai/assistant_app/rag/sources?${t.toString()}`)}(e,n);try{const e=await p(t);if(!e.ok)throw new m(h(e.status),`http_${e.status}`);const n=await e.json();return n.success&&Array.isArray(n.data)?(r.info(`获取引用来源 count=${n.data.length}`),n.data):[]}catch(e){return r.error("获取引用来源失败",e),[]}}async function y(e=1,n=20,t,o){let s=`/conversation/list?page=${e}&size=${n}`;t&&(s+=`&accountId=${encodeURIComponent(t)}`),o&&(s+=`&roleId=${encodeURIComponent(o)}`);const i=d(s);try{const e=await p(i);if(!e.ok)throw new m(h(e.status),`http_${e.status}`);const n=await e.json();return{list:n.success&&Array.isArray(n.data)?n.data:[],total:n.total||0,pages:n.pages||0}}catch(e){return r.error("加载会话列表失败",e),{list:[],total:0,pages:0}}}async function b(e){const n=d(`/conversation/${e}/messages`);try{const e=await p(n);if(!e.ok)throw new m(h(e.status),`http_${e.status}`);const t=await e.json();return{messages:t.success&&Array.isArray(t.data)?t.data:[],total:t.total||0}}catch(e){return r.error("加载会话消息失败",e),{messages:[],total:0}}}async function x(){if(!a)return"";const e=function(e,n){try{return localStorage.getItem(_(e,n))||""}catch(e){return""}}(a.integrateId,a.userId);if(e)return a.chatId=e,r.info(`从缓存恢复 chatId=${e}`),e;try{const e=await y(1,5,a.userId,a.integrateId);if(e.list.length>0){const n=e.list[0],t=n.conversationId||n.chatId||"";if(t)return a.chatId=t,w(a.integrateId,a.userId,t),r.info(`从后端恢复会话 chatId=${t} messageCount=${n.messageCount}`),t}}catch(e){r.warn("查询后端会话列表失败,将生成新 chatId",e)}const n=function(){const e="undefined"!=typeof crypto&&crypto.randomUUID?crypto.randomUUID().substring(0,8):Math.random().toString(36).substring(2,10);return`sdk_${Date.now()}_${e}`}();return a.chatId=n,w(a.integrateId,a.userId,n),r.info(`生成新 chatId=${n}`),n}function _(e,n){return`csk_chatId_${e}${n?"_"+n:""}`}function w(e,n,t){try{t?localStorage.setItem(_(e,n),t):localStorage.removeItem(_(e,n))}catch(e){}}let v=null;function E(e){const n=function(e,n){const t=e.match(/^#([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/);if(!t)return e;const r=e=>Math.max(0,Math.min(255,e)),o=r(parseInt(t[1],16)+n),s=r(parseInt(t[2],16)+n),i=r(parseInt(t[3],16)+n);return`#${o.toString(16).padStart(2,"0")}${s.toString(16).padStart(2,"0")}${i.toString(16).padStart(2,"0")}`}(e.primaryColor,-15);return`\n --csk-primary: ${e.primaryColor};\n --csk-primary-hover: ${n};\n --csk-bg-user: var(--csk-primary);\n --csk-bg-ai: #F3F4F6;\n --csk-text-user: #FFFFFF;\n --csk-text-ai: #1F2937;\n --csk-window-width: ${e.width}px;\n `}function I(e){document.querySelector("style[data-csk-sdk]")||(v=document.createElement("style"),v.setAttribute("data-csk-sdk",""),v.textContent=function(e){return`\n/* ChatbotSDK 样式 - csk- 命名空间 */\n.csk-root {\n ${E(e)}\n font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans SC", sans-serif;\n font-size: 14px;\n line-height: 1.5;\n color: #1F2937;\n}\n\n/* ========== 悬浮按钮 ========== */\n.csk-launcher {\n position: fixed;\n bottom: 20px;\n z-index: 9998;\n width: 56px;\n height: 56px;\n border-radius: 50%;\n background: #fff;\n box-shadow: 0 4px 16px rgba(0, 0, 0, 0.15);\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n transition: all 0.2s ease;\n border: none;\n color: var(--csk-primary);\n user-select: none;\n}\n.csk-launcher--right {\n right: 20px;\n}\n.csk-launcher--left {\n left: 20px;\n}\n.csk-launcher:hover {\n transform: scale(1.1);\n box-shadow: 0 6px 24px rgba(0, 0, 0, 0.2);\n}\n.csk-launcher:active {\n transform: scale(0.95);\n}\n\n/* ========== 聊天弹窗 ========== */\n.csk-window {\n position: fixed;\n bottom: 20px;\n z-index: 9999;\n width: var(--csk-window-width);\n height: 560px;\n background: #fff;\n border-radius: 12px;\n box-shadow: 0 8px 40px rgba(0, 0, 0, 0.18);\n display: flex;\n flex-direction: column;\n overflow: hidden;\n transition: opacity 0.2s ease, transform 0.2s ease;\n}\n.csk-window--right {\n right: 20px;\n}\n.csk-window--left {\n left: 20px;\n}\n.csk-window--hidden {\n display: none;\n}\n\n/* ========== 头部 ========== */\n.csk-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 0 16px;\n height: 48px;\n min-height: 48px;\n background: var(--csk-primary);\n color: #fff;\n border-radius: 12px 12px 0 0;\n cursor: move;\n user-select: none;\n}\n.csk-header__title {\n font-size: 15px;\n font-weight: 600;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.csk-header__actions {\n display: flex;\n align-items: center;\n gap: 4px;\n}\n.csk-header__btn {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n height: 32px;\n border: none;\n background: transparent;\n color: #fff;\n cursor: pointer;\n border-radius: 6px;\n transition: background 0.15s;\n}\n.csk-header__btn:hover {\n background: rgba(255, 255, 255, 0.2);\n}\n\n/* ========== 消息区 ========== */\n.csk-messages {\n flex: 1;\n overflow-y: auto;\n padding: 16px;\n background: #FAFAFA;\n scroll-behavior: smooth;\n}\n.csk-messages::-webkit-scrollbar {\n width: 5px;\n}\n.csk-messages::-webkit-scrollbar-track {\n background: transparent;\n}\n.csk-messages::-webkit-scrollbar-thumb {\n background: #D1D5DB;\n border-radius: 3px;\n}\n\n/* 消息气泡 */\n.csk-msg {\n display: flex;\n flex-direction: column;\n margin-bottom: 16px;\n max-width: 85%;\n word-break: break-word;\n}\n.csk-msg--user {\n margin-left: auto;\n align-items: flex-end;\n}\n.csk-msg--ai {\n margin-right: auto;\n align-items: flex-start;\n}\n.csk-msg__bubble {\n padding: 10px 14px;\n border-radius: 12px;\n font-size: 14px;\n line-height: 1.6;\n}\n.csk-msg--user .csk-msg__bubble {\n background: var(--csk-bg-user);\n color: var(--csk-text-user);\n border-radius: 12px 12px 4px 12px;\n}\n.csk-msg--ai .csk-msg__bubble {\n background: var(--csk-bg-ai);\n color: var(--csk-text-ai);\n border-radius: 12px 12px 12px 4px;\n}\n.csk-msg__time {\n font-size: 11px;\n color: #9CA3AF;\n margin-top: 4px;\n padding: 0 4px;\n}\n\n/* ========== Loading 动画 ========== */\n.csk-loading {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 12px 14px;\n margin-bottom: 16px;\n}\n.csk-loading__dot {\n width: 8px;\n height: 8px;\n border-radius: 50%;\n background: #D1D5DB;\n animation: csk-bounce 1.4s ease-in-out infinite both;\n}\n.csk-loading__dot:nth-child(1) { animation-delay: 0s; }\n.csk-loading__dot:nth-child(2) { animation-delay: 0.16s; }\n.csk-loading__dot:nth-child(3) { animation-delay: 0.32s; }\n\n@keyframes csk-bounce {\n 0%, 80%, 100% { transform: scale(0.6); }\n 40% { transform: scale(1); }\n}\n\n/* ========== 输入区 ========== */\n.csk-input-area {\n display: flex;\n align-items: center;\n padding: 10px 12px;\n border-top: 1px solid #E5E7EB;\n background: #fff;\n gap: 8px;\n}\n.csk-input {\n flex: 1;\n border: 1px solid #E5E7EB;\n border-radius: 8px;\n padding: 10px 12px;\n font-size: 14px;\n outline: none;\n transition: border-color 0.2s;\n font-family: inherit;\n resize: none;\n min-height: 20px;\n max-height: 100px;\n}\n.csk-input:focus {\n border-color: var(--csk-primary);\n}\n.csk-input::placeholder {\n color: #9CA3AF;\n}\n.csk-send-btn {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 40px;\n height: 40px;\n min-width: 40px;\n border: none;\n border-radius: 8px;\n background: var(--csk-primary);\n color: #fff;\n cursor: pointer;\n transition: background 0.2s;\n}\n.csk-send-btn:hover {\n background: var(--csk-primary-hover);\n}\n.csk-send-btn:disabled {\n background: #D1D5DB;\n cursor: not-allowed;\n}\n\n/* ========== 清空按钮 ========== */\n.csk-clear-btn {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n padding: 6px 12px;\n border: 1px solid #E5E7EB;\n border-radius: 6px;\n background: #fff;\n color: #6B7280;\n font-size: 12px;\n cursor: pointer;\n margin: 0 auto 8px;\n transition: all 0.15s;\n}\n.csk-clear-btn:hover {\n background: #FEE2E2;\n border-color: #FCA5A5;\n color: #DC2626;\n}\n\n/* ========== P1: 知识库分类下拉 ========== */\n.csk-category-bar {\n display: flex;\n align-items: center;\n padding: 6px 12px;\n border-top: 1px solid #E5E7EB;\n background: #F9FAFB;\n gap: 8px;\n}\n.csk-category-bar__label {\n font-size: 12px;\n color: #6B7280;\n white-space: nowrap;\n}\n.csk-category-select {\n flex: 1;\n padding: 5px 8px;\n border: 1px solid #E5E7EB;\n border-radius: 6px;\n font-size: 12px;\n color: #374151;\n background: #fff;\n outline: none;\n cursor: pointer;\n font-family: inherit;\n transition: border-color 0.2s;\n max-width: 200px;\n}\n.csk-category-select:focus {\n border-color: var(--csk-primary);\n}\n\n/* ========== P1: RAG 引用来源卡片 ========== */\n.csk-sources {\n margin-top: 8px;\n border: 1px solid #E5E7EB;\n border-radius: 8px;\n overflow: hidden;\n font-size: 12px;\n max-width: 100%;\n}\n.csk-sources__header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 8px 12px;\n background: #F9FAFB;\n cursor: pointer;\n user-select: none;\n transition: background 0.15s;\n}\n.csk-sources__header:hover {\n background: #F3F4F6;\n}\n.csk-sources__title {\n display: flex;\n align-items: center;\n gap: 4px;\n font-weight: 500;\n color: #374151;\n}\n.csk-sources__arrow {\n transition: transform 0.2s;\n color: #9CA3AF;\n}\n.csk-sources--collapsed .csk-sources__arrow {\n transform: rotate(-90deg);\n}\n.csk-sources__body {\n border-top: 1px solid #E5E7EB;\n padding: 0;\n}\n.csk-sources--collapsed .csk-sources__body {\n display: none;\n}\n.csk-source-item {\n padding: 8px 12px;\n border-bottom: 1px solid #F3F4F6;\n transition: background 0.15s;\n}\n.csk-source-item:last-child {\n border-bottom: none;\n}\n.csk-source-item:hover {\n background: #F9FAFB;\n}\n.csk-source-item__name {\n font-weight: 500;\n color: #1F2937;\n margin-bottom: 2px;\n}\n.csk-source-item__snippet {\n color: #6B7280;\n line-height: 1.4;\n overflow: hidden;\n text-overflow: ellipsis;\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n}\n.csk-source-item__meta {\n font-size: 11px;\n color: #9CA3AF;\n margin-top: 2px;\n}\n\n/* ========== P1: Markdown 渲染样式 ========== */\n.csk-msg--ai .csk-msg__bubble .csk-md-p {\n margin: 0 0 8px;\n}\n.csk-msg--ai .csk-msg__bubble .csk-md-p:last-child {\n margin-bottom: 0;\n}\n.csk-msg--ai .csk-msg__bubble .csk-md-h1,\n.csk-msg--ai .csk-msg__bubble .csk-md-h2,\n.csk-msg--ai .csk-msg__bubble .csk-md-h3,\n.csk-msg--ai .csk-msg__bubble .csk-md-h4,\n.csk-msg--ai .csk-msg__bubble .csk-md-h5,\n.csk-msg--ai .csk-msg__bubble .csk-md-h6 {\n margin: 12px 0 6px;\n font-weight: 600;\n line-height: 1.3;\n}\n.csk-msg--ai .csk-msg__bubble .csk-md-h1 { font-size: 20px; }\n.csk-msg--ai .csk-msg__bubble .csk-md-h2 { font-size: 17px; }\n.csk-msg--ai .csk-msg__bubble .csk-md-h3 { font-size: 15px; }\n.csk-msg--ai .csk-msg__bubble .csk-md-h4 { font-size: 14px; }\n\n.csk-md-code-block {\n background: #1E293B;\n color: #E2E8F0;\n padding: 12px 14px;\n border-radius: 8px;\n overflow-x: auto;\n margin: 8px 0;\n font-size: 13px;\n line-height: 1.5;\n font-family: 'SF Mono', 'Consolas', 'Menlo', monospace;\n}\n.csk-md-code-block code {\n background: none;\n padding: 0;\n border-radius: 0;\n font-size: inherit;\n color: inherit;\n}\n.csk-md-inline-code {\n background: #E5E7EB;\n color: #DC2626;\n padding: 1px 6px;\n border-radius: 4px;\n font-size: 13px;\n font-family: 'SF Mono', 'Consolas', 'Menlo', monospace;\n}\n.csk-msg--ai .csk-msg__bubble .csk-md-ul,\n.csk-msg--ai .csk-msg__bubble .csk-md-ol {\n padding-left: 20px;\n margin: 6px 0;\n}\n.csk-msg--ai .csk-msg__bubble .csk-md-ul li,\n.csk-msg--ai .csk-msg__bubble .csk-md-ol li {\n margin-bottom: 4px;\n}\n.csk-md-blockquote {\n border-left: 3px solid var(--csk-primary);\n padding-left: 12px;\n margin: 8px 0;\n color: #6B7280;\n}\n.csk-md-link {\n color: var(--csk-primary);\n text-decoration: none;\n}\n.csk-md-link:hover {\n text-decoration: underline;\n}\n.csk-md-hr {\n border: none;\n border-top: 1px solid #E5E7EB;\n margin: 12px 0;\n}\n\n/* ========== P2: 会话管理面板 ========== */\n.csk-history-btn {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n height: 32px;\n border: none;\n background: transparent;\n color: #fff;\n cursor: pointer;\n border-radius: 6px;\n transition: background 0.15s;\n}\n.csk-history-btn:hover {\n background: rgba(255, 255, 255, 0.2);\n}\n.csk-history-panel {\n position: absolute;\n top: 48px;\n left: 0;\n right: 0;\n bottom: 0;\n background: #fff;\n z-index: 10;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n}\n.csk-history-panel--hidden {\n display: none;\n}\n.csk-history-panel__header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 12px 16px;\n border-bottom: 1px solid #E5E7EB;\n background: #F9FAFB;\n}\n.csk-history-panel__title {\n font-size: 14px;\n font-weight: 600;\n color: #1F2937;\n}\n.csk-history-panel__back {\n display: flex;\n align-items: center;\n gap: 4px;\n padding: 4px 10px;\n border: 1px solid #E5E7EB;\n border-radius: 6px;\n background: #fff;\n color: #374151;\n font-size: 12px;\n cursor: pointer;\n transition: all 0.15s;\n}\n.csk-history-panel__back:hover {\n background: #F3F4F6;\n}\n.csk-history-panel__list {\n flex: 1;\n overflow-y: auto;\n padding: 8px;\n}\n.csk-history-panel__list::-webkit-scrollbar {\n width: 4px;\n}\n.csk-history-panel__list::-webkit-scrollbar-thumb {\n background: #E5E7EB;\n border-radius: 2px;\n}\n.csk-history-item {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 10px 12px;\n border-radius: 8px;\n cursor: pointer;\n transition: background 0.15s;\n margin-bottom: 4px;\n}\n.csk-history-item:hover {\n background: #F3F4F6;\n}\n.csk-history-item--active {\n background: #EEF2FF;\n border-left: 3px solid var(--csk-primary);\n}\n.csk-history-item--active:hover {\n background: #E0E7FF;\n}\n.csk-history-item__info {\n flex: 1;\n min-width: 0;\n}\n.csk-history-item__id {\n font-size: 13px;\n font-weight: 500;\n color: #1F2937;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.csk-history-item__meta {\n font-size: 11px;\n color: #9CA3AF;\n margin-top: 2px;\n}\n.csk-history-item__actions {\n display: flex;\n gap: 4px;\n margin-left: 8px;\n opacity: 0;\n transition: opacity 0.15s;\n}\n.csk-history-item:hover .csk-history-item__actions {\n opacity: 1;\n}\n.csk-history-action {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 28px;\n height: 28px;\n border: none;\n border-radius: 6px;\n cursor: pointer;\n font-size: 12px;\n transition: all 0.15s;\n}\n.csk-history-action--export {\n background: #EFF6FF;\n color: #2563EB;\n}\n.csk-history-action--export:hover {\n background: #DBEAFE;\n}\n.csk-history-action--delete {\n background: #FEF2F2;\n color: #DC2626;\n}\n.csk-history-action--delete:hover {\n background: #FEE2E2;\n}\n.csk-history-panel__empty {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 40px 20px;\n color: #9CA3AF;\n font-size: 13px;\n text-align: center;\n}\n.csk-history-panel__empty-icon {\n font-size: 32px;\n margin-bottom: 8px;\n opacity: 0.5;\n}\n.csk-history-panel__loading {\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 20px;\n color: #9CA3AF;\n font-size: 13px;\n}\n.csk-history-panel__loadmore {\n display: block;\n width: 100%;\n padding: 10px;\n border: none;\n background: #F9FAFB;\n color: #6B7280;\n font-size: 12px;\n cursor: pointer;\n text-align: center;\n transition: background 0.15s;\n}\n.csk-history-panel__loadmore:hover {\n background: #F3F4F6;\n}\n\n/* ========== 移动端适配 ========== */\n@media (max-width: 480px) {\n .csk-window {\n width: 100vw !important;\n height: 100vh !important;\n bottom: 0 !important;\n right: 0 !important;\n left: 0 !important;\n border-radius: 0;\n }\n .csk-header {\n border-radius: 0;\n }\n}\n`}(e),document.head.appendChild(v))}function C(){return"undefined"!=typeof crypto&&crypto.randomUUID?crypto.randomUUID():"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>{const n=16*Math.random()|0;return("x"===e?n:3&n|8).toString(16)})}function $(e){const n={"&":"&","<":"<",">":">",'"':""","'":"'"};return e.replace(/[&<>"']/g,e=>n[e]||e)}function S(){return Date.now()}function F(e,n){const t=document.createElement("div");t.id="csk-launcher",t.className="csk-launcher csk-launcher--"+("left-bottom"===e.position?"left":"right"),t.setAttribute("title",e.title),t.setAttribute("aria-label",e.title),t.setAttribute("role","button"),t.setAttribute("tabindex","0"),t.innerHTML=e.launcherIcon;const r=function(e,n){let t=null;return function(...r){null!==t&&clearTimeout(t),t=setTimeout(()=>{e.apply(this,r),t=null},n)}}(n,300);return t.addEventListener("click",r),t.addEventListener("keydown",e=>{"Enter"!==e.key&&" "!==e.key||(e.preventDefault(),r())}),t}function A(e,n,t){const r=document.createElement("div");r.className="csk-msg csk-msg--user";const o=document.createElement("div");o.className="csk-msg__bubble",o.textContent=n;const s=document.createElement("div");return s.className="csk-msg__time",s.textContent=M(t),r.appendChild(o),r.appendChild(s),e.appendChild(r),r}function N(e,n,t,r){const o=document.createElement("div");o.className="csk-msg csk-msg--ai";const s=document.createElement("div");s.className="csk-msg__bubble",r?s.innerHTML=r(n):s.textContent=n;const i=document.createElement("div");return i.className="csk-msg__time",i.textContent=M(t),o.appendChild(s),o.appendChild(i),e.appendChild(o),o}function L(e,n){const t=e.querySelector(".csk-sources");if(t&&t.remove(),!n||0===n.length)return;const r=document.createElement("div");r.className="csk-sources csk-sources--collapsed";const o=document.createElement("div");o.className="csk-sources__header";const s=document.createElement("span");s.className="csk-sources__title",s.textContent=`📚 ${i("source_count",{n:n.length})}`;const a=document.createElement("span");a.className="csk-sources__arrow",a.textContent="▼",o.appendChild(s),o.appendChild(a),o.addEventListener("click",()=>{r.classList.toggle("csk-sources--collapsed")});const c=document.createElement("div");c.className="csk-sources__body";for(const e of n){const n=document.createElement("div");n.className="csk-source-item";const t=document.createElement("div");if(t.className="csk-source-item__name",t.textContent=e.title||e.sourceName||"未知文档",e.snippet){const t=document.createElement("div");t.className="csk-source-item__snippet",t.textContent=e.snippet,n.appendChild(t)}const r=document.createElement("div");r.className="csk-source-item__meta";const o=[];e.sourceName&&o.push(e.sourceName),void 0!==e.chunkIndex&&o.push(`分块 #${e.chunkIndex}`),void 0!==e.score&&o.push(`相关度 ${(100*e.score).toFixed(0)}%`),r.textContent=o.join(" · "),n.appendChild(t),n.appendChild(r),c.appendChild(n)}r.appendChild(o),r.appendChild(c);const l=e.querySelector(".csk-msg__time");l?e.insertBefore(r,l):e.appendChild(r)}function D(e){e.scrollTop=e.scrollHeight}function M(e){const n=new Date(e);return`${String(n.getHours()).padStart(2,"0")}:${String(n.getMinutes()).padStart(2,"0")}`}function B(e){return`csk_history_${e}`}function T(e,n){try{let t=n;t.length>200&&(t=t.slice(50),r.warn(`消息数量达到上限,已裁剪最早 50 条,当前 ${t.length} 条`));const o={messages:t,updatedAt:Date.now()};localStorage.setItem(B(e),JSON.stringify(o))}catch(e){e instanceof Error&&"QuotaExceededError"===e.name?r.error("localStorage 空间不足,会话历史保存失败。建议清空历史记录。"):r.error("保存会话历史失败",e)}}function z(e){try{localStorage.removeItem(B(e))}catch(e){r.warn("清空会话历史失败",e)}}const q="\0CODEBLOCK_",j="\0INLINECODE_";function H(e){if(!e||"string"!=typeof e)return"";const n=[];let t=e;t=t.replace(/```(\w*)\n([\s\S]*?)```/g,(e,t,r)=>{const o=n.length,s=$(r.trimEnd()),i=t?` class="language-${$(t)}"`:"";return n.push(`
${s}
`),`${q}${o}\0`});const r=[];t=t.replace(/`([^`\n]+)`/g,(e,n)=>{const t=r.length;return r.push(`${$(n)}`),`${j}${t}\0`}),t=$(t),t=P(t,q,n),t=P(t,j,r);const o=t.split("\n"),s=[];let i=!1,a="",c=!1,l=[];for(let e=0;e')){u(),p(),m(),s.push(n);continue}const t=n.match(/^(#{1,6})\s+(.+)/);if(t){u(),p(),m();const e=t[1].length;s.push(`${t[2]}`);continue}const r=n.match(/^>\s?(.*)/);if(r){u(),p(),c||(c=!0,s.push('
')),s.push(`

${d(r[1])}

`);continue}c&&m();const h=n.match(/^[\-\*]\s+(.+)/);if(h){u(),m(),i&&"ul"===a||(p(),i=!0,a="ul",s.push('
    ')),s.push(`
  • ${d(h[1])}
  • `);continue}const g=n.match(/^\d+\.\s+(.+)/);g?(u(),m(),i&&"ol"===a||(p(),i=!0,a="ol",s.push('
      ')),s.push(`
    1. ${d(g[1])}
    2. `)):""!==n.trim()?/^(\*{3,}|-{3,}|_{3,})$/.test(n.trim())?(u(),p(),m(),s.push('
      ')):(p(),m(),l.push(d(n))):(u(),p())}return u(),p(),m(),s.join("\n");function d(e){return e=(e=(e=(e=(e=(e=e.replace(/\*\*(.+?)\*\*/g,"$1")).replace(/__(.+?)__/g,"$1")).replace(/\*(.+?)\*/g,"$1")).replace(/(?$1")).replace(/~~(.+?)~~/g,"$1")).replace(/\[([^\]]+)\]\(([^)]+)\)/g,(e,n,t)=>`${n}`)}function u(){l.length>0&&(s.push(`

      ${l.join("
      ")}

      `),l=[])}function p(){i&&(s.push("ul"===a?"
":""),i=!1,a="")}function m(){c&&(s.push("
"),c=!1)}}function P(e,n,t){return e.replace(new RegExp(n.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")+"(\\d+)\0","g"),(e,n)=>t[parseInt(n)]||"")}let R,U=null,O=[],W=null,K=null,V=null,J=null,X=null,Y=null,G=null,Q=null,Z=!1,ee=!1;function ne(e,n){U=e,W=n.messagesContainer,K=n.inputEl,V=n.sendBtn,J=n.clearBtn,X=n.categorySelect,Y=n.historyPanel,G=n.showLoading,Q=n.hideLoading,R=e.categoryId,ee=!!e.categoryId||!!e.showCategorySwitch,function(){if(!K||!V)return;V.addEventListener("click",()=>oe()),K.addEventListener("keydown",e=>{"Enter"!==e.key||e.shiftKey||(e.preventDefault(),oe())}),K.addEventListener("input",()=>re()),J&&J.addEventListener("click",()=>function(){if(!U)return;if(!confirm(i("clear_confirm")))return;if(O=[],W){W.querySelectorAll(".csk-msg, .csk-loading").forEach(e=>e.remove())}J&&(J.style.display="none");z(U.integrateId);const e=function(){const e="undefined"!=typeof crypto&&crypto.randomUUID?crypto.randomUUID().substring(0,8):Math.random().toString(36).substring(2,10);return`sdk_${Date.now()}_${e}`}();c(e),w(U.integrateId,U.userId,e),r.lifecycleClear(U.integrateId),r.info(`新 chatId=${e}`)}())}(),e.showCategorySwitch&&X&&async function(){if(!X)return;try{const e=await async function(){const e=d("/category/tree");try{const n=await p(e);if(!n.ok)throw new m(h(n.status),`http_${n.status}`);const t=await n.json();return t.success&&Array.isArray(t.data)?(r.info(`加载分类树成功 count=${t.data.length}`),t.data):[]}catch(e){return e instanceof m?r.error(`加载分类树失败: ${e.message}`):r.error("加载分类树失败",e),[]}}();if(0===e.length)return;X.innerHTML=``;const n=(e,t=0)=>{for(const r of e){const e=document.createElement("option");e.value=String(r.id),e.textContent=`${" ".repeat(t)}${r.name}`,void 0!==R&&String(r.id)===String(R)&&(e.selected=!0),X.appendChild(e),r.children&&r.children.length>0&&n(r.children,t+1)}};n(e),r.info(`知识库分类加载成功 count=${e.length}`)}catch(e){r.error(i("category_load_error"),e)}}()}async function te(){if(U&&W&&(await x(),await async function(){if(!U||!W)return;const e=l();if(!e)return;try{const n=await b(e);n.messages.length>0&&(O=n.messages.map((e,n)=>({id:C(),role:"USER"===e.messageType?"user":"ai",content:e.content,timestamp:new Date(e.createTime).getTime()})),se(),r.info(`从后端加载 ${O.length} 条历史消息`),T(U.integrateId,O))}catch(e){r.warn("从后端加载历史消息失败",e)}}(),0===O.length)){const e=function(e){try{const n=localStorage.getItem(B(e));if(!n)return[];const t=JSON.parse(n);return t&&Array.isArray(t.messages)?(r.info(`加载历史消息 integrateId=${e} count=${t.messages.length}`),t.messages):[]}catch(e){return r.warn("加载会话历史失败",e),[]}}(U.integrateId);e.length>0&&(O=e,se(),r.info(`从本地缓存恢复 ${e.length} 条消息`))}}function re(){if(!V||!K)return;K.value.trim().length>0&&!Z?V.removeAttribute("disabled"):V.setAttribute("disabled","true")}async function oe(){if(!K||!U||Z)return;const e=K.value.trim();if(""===e)return;K.value="",re(),K.style.height="auto",Z=!0,re(),U.chatId||await x();const n=S();W&&A(W,e,n);const t={id:C(),role:"user",content:e,timestamp:n};O.push(t),J&&O.length>0&&(J.style.display="inline-flex"),W&&D(W),G&&G(),W&&D(W);try{let n;const t=S(),o=ee&&(void 0!==R||void 0!==U.categoryId);n=U.streaming?await async function(e,n,t){return new Promise((r,o)=>{let s=null,a="",c=!1;k(e,e=>{if(a+=e,!c&&W){Q&&Q();const{bubble:e}=function(e,n){const t=document.createElement("div");t.className="csk-msg csk-msg--ai";const r=document.createElement("div");r.className="csk-msg__bubble",r.innerHTML="";const o=document.createElement("div");return o.className="csk-msg__time",o.textContent=M(n),t.appendChild(r),t.appendChild(o),e.appendChild(t),{wrapper:t,bubble:r}}(W,n);s=e,c=!0}s&&(s.textContent=a),W&&D(W)},()=>{c||""!==a?(s&&a&&(s.innerHTML=H(a)),r(a)):g(e).then(r).catch(o)},e=>{a.length>0?(s&&(s.innerHTML=H(a+"\n\n"+i("stream_interrupted"))),r(a)):o(e)},R,t)})}(e,t,o):await g(e),Q&&Q(),!U.streaming&&W&&N(W,n,t,H);const s={id:C(),role:"ai",content:n,timestamp:t};O.push(s),T(U.integrateId,O),W&&D(W),o&&async function(e,n){try{const t=await f(e,R);if(t.length>0){const e=t.map(e=>{var n,t;return{documentId:e.documentId||"",title:e.title||"",sourceName:e.sourceName||"",chunkIndex:null!==(n=e.chunkIndex)&&void 0!==n?n:0,score:null!==(t=e.score)&&void 0!==t?t:0,snippet:e.snippet||""}});if(n.sources=e,W){const n=W.querySelector(".csk-msg--ai:last-of-type");n&&L(n,e)}U&&T(U.integrateId,O)}}catch(e){r.warn("获取引用来源失败",e)}}(e,s)}catch(e){Q&&Q();const n=e instanceof m?e.message:i("error_send");if(W){const e=document.createElement("div");e.className="csk-msg csk-msg--ai";const t=document.createElement("div");t.className="csk-msg__bubble",t.style.color="#DC2626",t.textContent=`⚠ ${n}`,e.appendChild(t),W.appendChild(e)}r.error(`发送失败 integrateId=${U.integrateId}`,e)}finally{Z=!1,re()}}function se(){if(!W)return;const e=W.querySelector(".csk-history-panel");W.querySelectorAll(".csk-msg, .csk-loading").forEach(e=>e.remove());for(const e of O)if("user"===e.role)A(W,e.content,e.timestamp);else{const n=N(W,e.content,e.timestamp,H);e.sources&&e.sources.length>0&&L(n,e.sources)}D(W),J&&O.length>0&&(J.style.display="inline-flex"),e&&!W.contains(e)&&W.appendChild(e)}async function ie(){if(!Y||!U)return;const e=Y.querySelector("#csk-history-list");if(e){e.innerHTML='
加载中...
';try{const n=await y(1,50,U.userId,U.integrateId);!function(e,n,t,r,o,s){if(e.innerHTML="",0===n.length){const n=document.createElement("div");return n.className="csk-history-panel__empty",n.innerHTML=`\n
💬
\n
${i("history_empty")}
\n `,void e.appendChild(n)}for(const a of n){const n=document.createElement("div");n.className="csk-history-item";const c=a.chatId||a.id;s&&c===s&&n.classList.add("csk-history-item--active");const l=document.createElement("div");l.className="csk-history-item__info";const d=document.createElement("div");d.className="csk-history-item__id",a.lastMessagePreview?d.textContent=a.lastMessagePreview.length>60?a.lastMessagePreview.substring(0,60)+"...":a.lastMessagePreview:d.textContent=c;const u=document.createElement("div");u.className="csk-history-item__meta";const p=[];void 0!==a.messageCount&&p.push(`${a.messageCount} 条消息`),a.lastMessageTime?p.push(a.lastMessageTime):a.createdAt&&p.push(a.createdAt),u.textContent=p.join(" · "),l.appendChild(d),l.appendChild(u);const m=document.createElement("div");m.className="csk-history-item__actions";const h=document.createElement("button");h.className="csk-history-action csk-history-action--export",h.setAttribute("title",i("history_export")),h.innerHTML='',h.addEventListener("click",e=>{e.stopPropagation(),r(a.id)});const g=document.createElement("button");g.className="csk-history-action csk-history-action--delete",g.setAttribute("title",i("history_delete")),g.innerHTML='',g.addEventListener("click",e=>{e.stopPropagation(),o(a.id)}),m.appendChild(h),m.appendChild(g),n.appendChild(l),n.appendChild(m),n.addEventListener("click",()=>{t(c)}),e.appendChild(n)}}(e,n.list.map(e=>({id:e.conversationId||"",chatId:e.conversationId||"",messageCount:e.messageCount,lastMessageTime:e.lastMessageTime,lastMessagePreview:e.lastMessagePreview,createdAt:e.firstMessageTime||e.createdAt})),e=>{!async function(e){if(!U||!W)return;r.info(`切换到会话 conversationId=${e}`),c(e),w(U.integrateId,U.userId,e),Y&&Y.classList.add("csk-history-panel--hidden");O=[];W.querySelectorAll(".csk-msg, .csk-loading").forEach(e=>e.remove());try{const n=await b(e);n.messages.length>0&&(O=n.messages.map(e=>({id:C(),role:"USER"===e.messageType?"user":"ai",content:e.content,timestamp:new Date(e.createTime).getTime()})),se(),r.info(`加载会话 ${e} 的 ${O.length} 条消息`),T(U.integrateId,O))}catch(n){r.warn(`加载会话消息失败 conversationId=${e}`,n)}J&&O.length>0&&(J.style.display="inline-flex")}(e)},e=>{window.open(d(`/conversation/${e}/export`),"_blank")},async e=>{if(!confirm(i("history_delete_confirm")))return;if(await async function(e){const n=d(`/conversation/${e}`);try{const t=await p(n,{method:"DELETE"});if(!t.ok)throw new m(h(t.status),`http_${t.status}`);const o=await t.json();return r.info(`删除会话 id=${e} success=${o.success}`),o.success||!1}catch(e){return r.error("删除会话失败",e),!1}}(e)){if(e===l()){if(O=[],W){W.querySelectorAll(".csk-msg, .csk-loading").forEach(e=>e.remove())}J&&(J.style.display="none")}ie()}},l())}catch(n){r.error(i("history_load_error"),n),e.innerHTML=`
${i("history_load_error")}
`}}}let ae=null,ce=!1,le=null,de=null,ue=null,pe=null,me=null,he=null,ge=null,ke=null,fe=null,ye=null,be=null;function xe(){de&&de.classList.remove("csk-window--hidden")}function _e(){de&&de.classList.add("csk-window--hidden")}function we(){de&&(de.classList.contains("csk-window--hidden")?(xe(),setTimeout(()=>{pe&&pe.focus()},100)):_e())}const ve={init:function(e){if(ce)return void r.warn("SDK 已初始化,请先调用 destroy() 再重新初始化");const t=function(e){var n,t,o,s,i,a;if(!e.integrateId||"string"!=typeof e.integrateId&&"number"!=typeof e.integrateId||"string"==typeof e.integrateId&&""===e.integrateId.trim())return r.error('integrateId 是必传参数(对应后端 roleId 客服角色 ID),请检查 init() 调用。示例:ChatbotSDK.init({ integrateId: 1, requestDomain: "https://api.example.com" })'),null;if(!e.requestDomain||"string"!=typeof e.requestDomain||""===e.requestDomain.trim())return r.error('requestDomain 是必传参数,请检查 init() 调用。示例:ChatbotSDK.init({ integrateId: 1, requestDomain: "https://api.example.com" })'),null;try{new URL(e.requestDomain)}catch(n){return r.error(`requestDomain 不是合法的 URL 格式:${e.requestDomain}。请提供完整的域名,如 https://api.example.com`),null}const c={integrateId:String(e.integrateId).trim(),requestDomain:e.requestDomain.replace(/\/+$/,""),userId:e.userId,categoryId:e.categoryId,showCategorySwitch:null!==(n=e.showCategorySwitch)&&void 0!==n&&n,title:e.title||"AI 智能助手",width:null!==(t=e.width)&&void 0!==t?t:380,position:"left-bottom"===e.position?"left-bottom":"right-bottom",primaryColor:e.primaryColor||"#4F46E5",launcherIcon:e.launcherIcon||'\n \n \n',showClear:null===(o=e.showClear)||void 0===o||o,showAdminPanel:null!==(s=e.showAdminPanel)&&void 0!==s&&s,streaming:null===(i=e.streaming)||void 0===i||i,locale:e.locale||"zh-CN",debug:null===(a=e.debug)||void 0===a||a,chatId:""};return r.info(`配置解析完成 integrateId(=roleId)=${c.integrateId} userId(=accountId)=${c.userId||"(未设置)"} requestDomain=${c.requestDomain}`),c}(e);if(!t)return;var c;ae=t,function(e){if(o[e])s=e;else{const n=e.split("-")[0],t=Object.keys(o).find(e=>e.startsWith(n));t&&(s=t)}}(ae.locale),c=ae.debug,n=c,function(e){a=e}(ae),I(ae),le=F(ae,we),document.body.appendChild(le);const l=function(e){const n=document.createElement("div");n.id="csk-window",n.className=`csk-root csk-window csk-window--${"left-bottom"===e.position?"left":"right"} csk-window--hidden`;const t=document.createElement("div");t.className="csk-header";const r=document.createElement("span");r.className="csk-header__title",r.textContent=e.title;const o=document.createElement("div");o.className="csk-header__actions";const s=document.createElement("button");s.className="csk-history-btn",s.setAttribute("title",i("history_title")),s.innerHTML='';const a=document.createElement("button");a.className="csk-header__btn csk-header__btn--minimize",a.setAttribute("title",i("minimize")),a.innerHTML='',a.addEventListener("click",()=>{n.classList.add("csk-window--hidden")});const c=document.createElement("button");c.className="csk-header__btn csk-header__btn--close",c.setAttribute("title",i("close")),c.innerHTML='',c.addEventListener("click",()=>{n.classList.add("csk-window--hidden")}),o.appendChild(s),o.appendChild(a),o.appendChild(c),t.appendChild(r),t.appendChild(o);const l=document.createElement("div");l.id="csk-messages",l.className="csk-messages";const d=document.createElement("div");d.className="csk-history-panel csk-history-panel--hidden",d.innerHTML=`\n
\n ${i("history_title")}\n \n
\n
\n `,l.appendChild(d);const u=d.querySelector("#csk-history-back");u&&u.addEventListener("click",()=>{d.classList.add("csk-history-panel--hidden")}),s.addEventListener("click",e=>{e.stopPropagation();const t=d.classList.contains("csk-history-panel--hidden");d.classList.toggle("csk-history-panel--hidden"),t&&n.dispatchEvent(new CustomEvent("csk:loadHistory"))});let p=null;if(e.showCategorySwitch){const e=document.createElement("div");e.className="csk-category-bar";const r=document.createElement("span");r.className="csk-category-bar__label",r.textContent="📚",p=document.createElement("select"),p.id="csk-category-select",p.className="csk-category-select",p.innerHTML=``,p.addEventListener("change",()=>{const e=p.value;n.dispatchEvent(new CustomEvent("csk:categoryChange",{detail:{categoryId:e?Number(e):void 0}}))}),e.appendChild(r),e.appendChild(p),n.appendChild(t),n.appendChild(l),n.appendChild(e)}else n.appendChild(t),n.appendChild(l);const m=document.createElement("div");m.className="csk-input-area";const h=document.createElement("textarea");h.id="csk-input",h.className="csk-input",h.setAttribute("placeholder",i("placeholder")),h.setAttribute("rows","1"),h.setAttribute("autofocus","");const g=document.createElement("button");g.id="csk-send-btn",g.className="csk-send-btn",g.setAttribute("title",i("send")),g.setAttribute("disabled","true"),g.innerHTML='',m.appendChild(h),m.appendChild(g),n.appendChild(m);let k=null;e.showClear&&(k=document.createElement("button"),k.className="csk-clear-btn",k.textContent=i("clear"),k.style.display="none",n.insertBefore(k,m));let f=null;return{window:n,messagesContainer:l,inputEl:h,sendBtn:g,clearBtn:k,categorySelect:p,historyPanel:d,showLoading:function(){if(f)return f.style.display="flex",f;const e=document.createElement("div");return e.className="csk-loading",e.innerHTML='\n
\n
\n
\n ',l.appendChild(e),f=e,e},hideLoading:function(){f&&f.parentNode&&(f.parentNode.removeChild(f),f=null)}}}(ae);de=l.window,ue=l.messagesContainer,pe=l.inputEl,me=l.sendBtn,he=l.clearBtn,ge=l.categorySelect,ke=l.historyPanel,fe=l.showLoading,ye=l.hideLoading,document.body.appendChild(de);const d=de.querySelector(".csk-header");d&&(be=function(e,n){let t=!1,r=0,o=0,s=0,i=0;const a=e=>{t=!0,r=e.clientX,o=e.clientY;const a=n.getBoundingClientRect();s=r-a.left,i=o-a.top,document.addEventListener("mousemove",c),document.addEventListener("mouseup",l)},c=e=>{if(!t)return;const r=e.clientX-s,o=e.clientY-i,a=window.innerWidth-n.offsetWidth,c=window.innerHeight-n.offsetHeight;n.style.right="auto",n.style.bottom="auto",n.style.left=`${Math.max(0,Math.min(r,a))}px`,n.style.top=`${Math.max(0,Math.min(o,c))}px`},l=()=>{t=!1,document.removeEventListener("mousemove",c),document.removeEventListener("mouseup",l)};return e.addEventListener("mousedown",a),()=>{e.removeEventListener("mousedown",a),document.removeEventListener("mousemove",c),document.removeEventListener("mouseup",l)}}(d,de)),ne(ae,{messagesContainer:ue,inputEl:pe,sendBtn:me,clearBtn:he,categorySelect:ge,historyPanel:ke,showLoading:fe,hideLoading:ye}),de.addEventListener("csk:categoryChange",e=>{var n;n=e.detail.categoryId,R=n,ee=void 0!==n,r.lifecycleCategoryChange(null!=n?n:"全部")}),de.addEventListener("csk:loadHistory",()=>{ie()}),ce=!0,r.lifecycleInit(ae.integrateId,ae.requestDomain),te().catch(e=>{r.warn("chatId 初始化失败,将在发送消息时重试",e)})},destroy:function(){if(!ce)return;le&&le.parentNode&&(le.parentNode.removeChild(le),le=null),de&&de.parentNode&&(de.parentNode.removeChild(de),de=null),be&&(be(),be=null),v&&v.parentNode&&(v.parentNode.removeChild(v),v=null),document.querySelectorAll("style[data-csk-sdk]").forEach(e=>e.remove());const e=null==ae?void 0:ae.integrateId;ae=null,ce=!1,ue=null,pe=null,me=null,he=null,ge=null,ke=null,fe=null,ye=null,r.lifecycleDestroy(e||"")},open:xe,close:_e,toggle:we,clearHistory:function(){ae&&(he?he.click():confirm("确定清空所有对话记录?")&&z(ae.integrateId))}};return"undefined"!=typeof window&&(window.ChatbotSDK=ve),ve}(); +var ChatbotSDK=function(){"use strict";const n="[ChatbotSDK]";let e=!0;const t={},r={info(t,r){e&&console.log(n,t,void 0!==r?r:"")},warn(t,r){e&&console.warn(n,t,void 0!==r?r:"")},error(e,t){console.error(n,e,void 0!==t?t:"")},time(n){t[n]=Date.now()},timeEnd(r,s){const o=t[r];if(void 0!==o){const i=Date.now()-o;if(delete t[r],e){const e=s?`${s} ${i}ms`:`${r} ${i}ms`;console.log(n,e)}return i}return 0},lifecycleInit(n,e){this.info(`初始化完成 integrateId=${n} requestDomain=${e}`)},lifecycleDestroy(n){this.info(`销毁实例 integrateId=${n}`)},lifecycleSend(n,e){this.info(`发送消息 integrateId=${n} length=${e}`),this.time(`send_${n}`)},lifecycleReply(n,e){const t=this.timeEnd(`send_${n}`,"AI 回复");this.info(`AI 回复 integrateId=${n} length=${e} duration=${t}ms`)},lifecycleError(n,e,t){this.timeEnd(`send_${n}`),this.error(`请求失败 integrateId=${n} status=${e} message=${t}`)},lifecycleClear(n){this.info(`清空会话 integrateId=${n}`)},lifecycleStreamDone(n,e){const t=this.timeEnd(`send_${n}`,"流式回复");this.info(`流式回复完成 integrateId=${n} length=${e} duration=${t}ms`)},lifecycleCategoryChange(n){this.info(`切换知识库分类 categoryId=${n}`)}};const s={"zh-CN":{title:"AI 智能助手",minimize:"最小化",close:"关闭",status_online:"在线",welcome_title:"你好,我是 AI 智能助手",welcome_desc:"有什么可以帮你的吗?在下方输入框开始提问吧~",placeholder:"输入您的问题...",send:"发送",loading:"正在思考...",stream_interrupted:"回复被中断",stream_unstable:"网络不稳定,内容可能不完整",category_placeholder:"选择知识库分类",category_all:"全部分类",category_load_error:"加载分类失败",source_title:"参考来源",source_count:"{n} 条参考来源",source_loading:"加载来源中...",clear:"清空对话",clear_confirm:"确定清空所有对话记录?",history_title:"历史会话",history_empty:"暂无历史会话",history_load_error:"加载会话列表失败",history_delete_confirm:"确定删除该会话?",history_export:"导出",history_delete:"删除",error_network:"网络连接失败,请检查网络",error_timeout:"请求超时,请稍后重试",error_server:"服务器异常,请稍后重试",error_cors:"跨域请求被拦截,请联系管理员将当前域名加入 API 白名单",error_auth:"鉴权失败,请联系管理员",error_forbidden:"无访问权限,请联系管理员配置",error_not_found:"请求的资源不存在",error_rate_limit:"请求过于频繁,请稍后重试",error_unavailable:"服务暂不可用,请稍后重试",error_unknown:"请求发生未知错误",error_send:"发送失败,请稍后重试",error_stream_unsupported:"浏览器不支持流式读取"},en:{title:"AI Assistant",minimize:"Minimize",close:"Close",status_online:"Online",welcome_title:"Hi, I am your AI assistant",welcome_desc:"How can I help you? Type your question below to get started.",placeholder:"Type your question...",send:"Send",loading:"Thinking...",stream_interrupted:"Response interrupted",stream_unstable:"Network unstable, content may be incomplete",category_placeholder:"Select category",category_all:"All categories",category_load_error:"Failed to load categories",source_title:"Sources",source_count:"{n} source(s)",source_loading:"Loading sources...",clear:"Clear chat",clear_confirm:"Clear all conversation history?",history_title:"History",history_empty:"No conversations yet",history_load_error:"Failed to load conversations",history_delete_confirm:"Delete this conversation?",history_export:"Export",history_delete:"Delete",error_network:"Network connection failed",error_timeout:"Request timed out, please try again",error_server:"Server error, please try again later",error_cors:"CORS request blocked. Please contact admin to whitelist your domain",error_auth:"Authentication failed, please contact admin",error_forbidden:"Access denied, please contact admin",error_not_found:"Resource not found",error_rate_limit:"Too many requests, please try again later",error_unavailable:"Service temporarily unavailable",error_unknown:"Unknown request error",error_send:"Failed to send, please try again",error_stream_unsupported:"Browser does not support streaming"}};let o="zh-CN";function i(n,e){let t=(s[o]||s["zh-CN"])[n]||s["zh-CN"][n]||n;if(e)for(const[n,r]of Object.entries(e))t=t.replace(`{${n}}`,String(r));return t}let a=null;function c(n){a&&(a.chatId=n)}function l(){return(null==a?void 0:a.chatId)||""}function d(n){if(!a)throw new Error("API 配置未初始化");return`${a.requestDomain.replace(/\/+$/,"")}${n.startsWith("/")?n:`/${n}`}`}function p(n,e,t){null!=t&&("string"==typeof t&&""===t.trim()||n.set(e,String(t)))}async function u(n,e={},t=3e4){const r=new AbortController,s=setTimeout(()=>r.abort(),t);try{return await fetch(n,Object.assign(Object.assign({},e),{signal:r.signal,mode:"cors",credentials:"include"}))}catch(n){if(n instanceof DOMException&&"AbortError"===n.name)throw new m(i("error_timeout"),"timeout");if(n instanceof TypeError&&n.message.includes("Failed to fetch"))throw new m(i("error_cors"),"cors");throw new m(i("error_network"),"network")}finally{clearTimeout(s)}}class m extends Error{constructor(n,e){super(n),this.name="CskError",this.type=e}}function h(n){switch(n){case 401:return i("error_auth");case 403:return i("error_forbidden");case 404:return i("error_not_found");case 429:return i("error_rate_limit");case 500:return i("error_server");case 502:case 503:return i("error_unavailable");default:return`${i("error_unknown")}(${n})`}}async function g(n){const e=function(n){const e=new URLSearchParams;return e.set("message",n),e.set("chatId",a.chatId),p(e,"roleId",a.integrateId),p(e,"accountId",a.userId),d(`/ai/assistant_app/chat/sync?${e.toString()}`)}(n);r.lifecycleSend(a.integrateId,n.length);try{const n=await u(e);if(!n.ok){const e=h(n.status);throw r.lifecycleError(a.integrateId,String(n.status),e),new m(e,`http_${n.status}`)}const t=await n.text();return r.lifecycleReply(a.integrateId,t.length),t}catch(n){if(n instanceof m)throw n;throw r.lifecycleError(a.integrateId,"unknown",String(n)),new m(i("error_unknown"),"unknown")}}async function k(n,e,t,s,o,c){var l;const g=c?function(n,e){const t=new URLSearchParams;return t.set("message",n),t.set("chatId",a.chatId),t.set("rewriteStrategy","REWRITE"),p(t,"roleId",a.integrateId),p(t,"accountId",a.userId),p(t,"categoryId",null!=e?e:a.categoryId),d(`/ai/assistant_app/chat/rag/sse?${t.toString()}`)}(n,o):function(n,e){const t=new URLSearchParams;return t.set("message",n),t.set("chatId",a.chatId),p(t,"roleId",a.integrateId),p(t,"accountId",a.userId),p(t,"categoryId",null!=e?e:a.categoryId),d(`/ai/assistant_app/chat/sse?${t.toString()}`)}(n,o);let k="";r.lifecycleSend(a.integrateId,n.length);try{const n=await u(g,{},6e4);if(!n.ok){const e=h(n.status);return r.lifecycleError(a.integrateId,String(n.status),e),void s(new m(e,`http_${n.status}`))}const o=null===(l=n.body)||void 0===l?void 0:l.getReader();if(!o)return void s(new m(i("error_stream_unsupported"),"stream_unsupported"));const c=new TextDecoder("utf-8",{stream:!0});let d="";try{for(;;){const{done:n,value:t}=await o.read();if(n)break;d+=c.decode(t,{stream:!0});const r=d.split("\n");d=r.pop()||"";for(const n of r){const t=n.trim();if(t&&!t.startsWith(":"))if(t.startsWith("data:")){const n=t.substring(5).trim();n&&(k+=n,e(n))}else{if("[DONE]"===t)break;t.startsWith("event:")||t.startsWith("id:")||t.startsWith("retry:")||(k+=t,e(t))}}}if(d.trim()){const n=d.trim();if(n.startsWith("data:")){const t=n.substring(5).trim();t&&(k+=t,e(t))}else"[DONE]"!==n&&(k+=n,e(n))}}catch(n){if(!(k.length>0))throw n;e("\n\n"+i("stream_unstable"))}finally{o.releaseLock()}r.lifecycleStreamDone(a.integrateId,k.length),t()}catch(n){n instanceof m?s(n):(r.lifecycleError(a.integrateId,"unknown",String(n)),s(new m(i("error_network"),"network")))}}async function f(n,e){const t=function(n,e){const t=new URLSearchParams;return t.set("message",n),t.set("chatId",a.chatId),t.set("rewriteStrategy","REWRITE"),p(t,"roleId",a.integrateId),p(t,"accountId",a.userId),p(t,"categoryId",null!=e?e:a.categoryId),d(`/ai/assistant_app/rag/sources?${t.toString()}`)}(n,e);try{const n=await u(t);if(!n.ok)throw new m(h(n.status),`http_${n.status}`);const e=await n.json();return e.success&&Array.isArray(e.data)?(r.info(`获取引用来源 count=${e.data.length}`),e.data):[]}catch(n){return r.error("获取引用来源失败",n),[]}}async function b(n=1,e=20,t,s){let o=`/conversation/list?page=${n}&size=${e}`;t&&(o+=`&accountId=${encodeURIComponent(t)}`),s&&(o+=`&roleId=${encodeURIComponent(s)}`);const i=d(o);try{const n=await u(i);if(!n.ok)throw new m(h(n.status),`http_${n.status}`);const e=await n.json();return{list:e.success&&Array.isArray(e.data)?e.data:[],total:e.total||0,pages:e.pages||0}}catch(n){return r.error("加载会话列表失败",n),{list:[],total:0,pages:0}}}async function x(n){const e=d(`/conversation/${n}/messages`);try{const n=await u(e);if(!n.ok)throw new m(h(n.status),`http_${n.status}`);const t=await n.json();return{messages:t.success&&Array.isArray(t.data)?t.data:[],total:t.total||0}}catch(n){return r.error("加载会话消息失败",n),{messages:[],total:0}}}async function y(){if(!a)return"";const n=function(n,e){try{return localStorage.getItem(_(n,e))||""}catch(n){return""}}(a.integrateId,a.userId);if(n)return a.chatId=n,r.info(`从缓存恢复 chatId=${n}`),n;try{const n=await b(1,5,a.userId,a.integrateId);if(n.list.length>0){const e=n.list[0],t=e.conversationId||e.chatId||"";if(t)return a.chatId=t,w(a.integrateId,a.userId,t),r.info(`从后端恢复会话 chatId=${t} messageCount=${e.messageCount}`),t}}catch(n){r.warn("查询后端会话列表失败,将生成新 chatId",n)}const e=function(){const n="undefined"!=typeof crypto&&crypto.randomUUID?crypto.randomUUID().substring(0,8):Math.random().toString(36).substring(2,10);return`sdk_${Date.now()}_${n}`}();return a.chatId=e,w(a.integrateId,a.userId,e),r.info(`生成新 chatId=${e}`),e}function _(n,e){return`csk_chatId_${n}${e?"_"+e:""}`}function w(n,e,t){try{t?localStorage.setItem(_(n,e),t):localStorage.removeItem(_(n,e))}catch(n){}}let v=null;function C(n){const e=I(n.primaryColor,-15),t=I(n.primaryColor,18),r=function(n){const e=n.match(/^#([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/);return e?`${parseInt(e[1],16)}, ${parseInt(e[2],16)}, ${parseInt(e[3],16)}`:"79, 70, 229"}(n.primaryColor);return`\n --csk-primary: ${n.primaryColor};\n --csk-primary-hover: ${e};\n --csk-primary-light: ${t};\n --csk-primary-rgb: ${r};\n --csk-bg-user: linear-gradient(135deg, ${n.primaryColor}, ${e});\n --csk-bg-ai: #ffffff;\n --csk-text-user: #ffffff;\n --csk-text-ai: #1F2937;\n --csk-window-width: ${n.width}px;\n --csk-radius: 16px;\n --csk-shadow-window: 0 12px 48px rgba(15, 23, 42, 0.18), 0 2px 8px rgba(15, 23, 42, 0.06);\n --csk-shadow-bubble: 0 1px 2px rgba(15, 23, 42, 0.06);\n --csk-border: #ECEEF2;\n --csk-bg-app: #F6F7F9;\n `}function I(n,e){const t=n.match(/^#([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/);if(!t)return n;const r=n=>Math.max(0,Math.min(255,n)),s=r(parseInt(t[1],16)+e),o=r(parseInt(t[2],16)+e),i=r(parseInt(t[3],16)+e);return`#${s.toString(16).padStart(2,"0")}${o.toString(16).padStart(2,"0")}${i.toString(16).padStart(2,"0")}`}function E(n){document.querySelector("style[data-csk-sdk]")||(v=document.createElement("style"),v.setAttribute("data-csk-sdk",""),v.textContent=function(n){return`\n/* ChatbotSDK 样式 - csk- 命名空间 */\n.csk-root {\n ${C(n)}\n font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans SC", "PingFang SC", "Microsoft YaHei", sans-serif;\n font-size: 14px;\n line-height: 1.55;\n color: #1F2937;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n box-sizing: border-box;\n}\n.csk-root *, .csk-root *::before, .csk-root *::after { box-sizing: border-box; }\n\n/* ========== 悬浮按钮 ========== */\n.csk-launcher {\n position: fixed;\n bottom: 24px;\n z-index: 9998;\n width: 58px;\n height: 58px;\n border-radius: 50%;\n background: var(--csk-bg-user);\n box-shadow: 0 8px 24px rgba(var(--csk-primary-rgb), 0.42), 0 2px 6px rgba(15, 23, 42, 0.12);\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n transition: transform 0.22s cubic-bezier(0.34, 1.56, 0.64, 1), box-shadow 0.22s ease;\n border: none;\n color: #fff;\n user-select: none;\n}\n.csk-launcher--right { right: 24px; }\n.csk-launcher--left { left: 24px; }\n.csk-launcher::after {\n content: '';\n position: absolute;\n inset: -4px;\n border-radius: 50%;\n border: 2px solid rgba(var(--csk-primary-rgb), 0.35);\n opacity: 0;\n animation: csk-ping 2.6s cubic-bezier(0, 0, 0.2, 1) infinite;\n pointer-events: none;\n}\n.csk-launcher:hover {\n transform: translateY(-2px) scale(1.05);\n box-shadow: 0 12px 32px rgba(var(--csk-primary-rgb), 0.5), 0 4px 10px rgba(15, 23, 42, 0.14);\n}\n.csk-launcher:active { transform: scale(0.94); }\n.csk-launcher svg { width: 28px; height: 28px; }\n\n@keyframes csk-ping {\n 0% { transform: scale(0.92); opacity: 0.7; }\n 70%, 100% { transform: scale(1.35); opacity: 0; }\n}\n\n/* ========== 聊天弹窗 ========== */\n.csk-window {\n position: fixed;\n bottom: 24px;\n z-index: 9999;\n width: var(--csk-window-width);\n height: 600px;\n max-height: calc(100vh - 48px);\n background: #fff;\n border-radius: var(--csk-radius);\n box-shadow: var(--csk-shadow-window);\n display: flex;\n flex-direction: column;\n overflow: hidden;\n transform-origin: bottom right;\n transition: opacity 0.24s ease, transform 0.24s cubic-bezier(0.34, 1.2, 0.64, 1), visibility 0.24s;\n opacity: 1;\n transform: translateY(0) scale(1);\n visibility: visible;\n pointer-events: auto;\n}\n.csk-window--right { right: 24px; transform-origin: bottom right; }\n.csk-window--left { left: 24px; transform-origin: bottom left; }\n.csk-window--hidden {\n opacity: 0;\n transform: translateY(12px) scale(0.96);\n visibility: hidden;\n pointer-events: none;\n}\n\n/* ========== 头部 ========== */\n.csk-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 12px 16px;\n min-height: 60px;\n background: var(--csk-bg-user);\n color: #fff;\n cursor: move;\n user-select: none;\n position: relative;\n flex-shrink: 0;\n}\n.csk-header::after {\n content: '';\n position: absolute;\n left: 0; right: 0; bottom: 0;\n height: 24px;\n background: linear-gradient(to bottom, rgba(0,0,0,0.04), transparent);\n pointer-events: none;\n}\n.csk-header__left {\n display: flex;\n align-items: center;\n gap: 12px;\n min-width: 0;\n}\n.csk-header__avatar {\n width: 38px;\n height: 38px;\n border-radius: 50%;\n background: rgba(255, 255, 255, 0.22);\n backdrop-filter: blur(4px);\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.25);\n}\n.csk-header__avatar svg { width: 22px; height: 22px; }\n.csk-header__info {\n display: flex;\n flex-direction: column;\n min-width: 0;\n}\n.csk-header__title {\n font-size: 15px;\n font-weight: 600;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n letter-spacing: 0.2px;\n}\n.csk-header__status {\n display: inline-flex;\n align-items: center;\n gap: 5px;\n font-size: 11.5px;\n opacity: 0.9;\n margin-top: 2px;\n}\n.csk-status-dot {\n width: 7px;\n height: 7px;\n border-radius: 50%;\n background: #6EE7B7;\n box-shadow: 0 0 0 0 rgba(110, 231, 183, 0.7);\n animation: csk-status-pulse 2s infinite;\n}\n@keyframes csk-status-pulse {\n 0% { box-shadow: 0 0 0 0 rgba(110, 231, 183, 0.7); }\n 70% { box-shadow: 0 0 0 6px rgba(110, 231, 183, 0); }\n 100% { box-shadow: 0 0 0 0 rgba(110, 231, 183, 0); }\n}\n.csk-header__actions {\n display: flex;\n align-items: center;\n gap: 2px;\n flex-shrink: 0;\n}\n.csk-header__btn,\n.csk-history-btn {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n height: 32px;\n border: none;\n background: transparent;\n color: #fff;\n cursor: pointer;\n border-radius: 8px;\n transition: background 0.15s, transform 0.15s;\n}\n.csk-header__btn:hover,\n.csk-history-btn:hover {\n background: rgba(255, 255, 255, 0.2);\n}\n.csk-header__btn:active,\n.csk-history-btn:active { transform: scale(0.92); }\n\n/* ========== 消息区 ========== */\n.csk-messages {\n flex: 1;\n overflow-y: auto;\n padding: 20px 16px 12px;\n background: var(--csk-bg-app);\n scroll-behavior: smooth;\n}\n.csk-messages::-webkit-scrollbar { width: 6px; }\n.csk-messages::-webkit-scrollbar-track { background: transparent; }\n.csk-messages::-webkit-scrollbar-thumb {\n background: #D8DCE3;\n border-radius: 3px;\n}\n.csk-messages::-webkit-scrollbar-thumb:hover { background: #C2C7D0; }\n\n/* 欢迎空状态 */\n.csk-welcome {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n text-align: center;\n padding: 48px 24px 32px;\n color: #6B7280;\n animation: csk-fade-in 0.3s ease;\n}\n.csk-welcome__avatar {\n width: 56px;\n height: 56px;\n border-radius: 50%;\n background: var(--csk-bg-user);\n color: #fff;\n display: flex;\n align-items: center;\n justify-content: center;\n margin-bottom: 14px;\n box-shadow: 0 6px 18px rgba(var(--csk-primary-rgb), 0.3);\n}\n.csk-welcome__avatar svg { width: 30px; height: 30px; }\n.csk-welcome__title {\n font-size: 15px;\n font-weight: 600;\n color: #1F2937;\n margin-bottom: 4px;\n}\n.csk-welcome__desc {\n font-size: 13px;\n color: #9CA3AF;\n line-height: 1.6;\n}\n\n/* 消息气泡 */\n.csk-msg {\n display: flex;\n margin-bottom: 18px;\n max-width: 100%;\n word-break: break-word;\n animation: csk-msg-in 0.28s cubic-bezier(0.22, 1, 0.36, 1);\n}\n.csk-msg--user {\n flex-direction: row-reverse;\n align-items: flex-end;\n}\n.csk-msg--ai {\n flex-direction: row;\n align-items: flex-start;\n}\n.csk-msg__avatar {\n width: 30px;\n height: 30px;\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n margin: 0 8px;\n box-shadow: var(--csk-shadow-bubble);\n}\n.csk-msg__avatar svg { width: 18px; height: 18px; }\n.csk-msg__avatar--ai {\n background: #fff;\n color: var(--csk-primary);\n border: 1px solid var(--csk-border);\n}\n.csk-msg__avatar--user {\n background: var(--csk-bg-user);\n color: #fff;\n}\n.csk-msg__content {\n display: flex;\n flex-direction: column;\n min-width: 0;\n max-width: calc(100% - 46px);\n}\n.csk-msg--user .csk-msg__content { align-items: flex-end; }\n.csk-msg--ai .csk-msg__content { align-items: flex-start; }\n.csk-msg__bubble {\n padding: 10px 14px;\n border-radius: 16px;\n font-size: 14px;\n line-height: 1.6;\n box-shadow: var(--csk-shadow-bubble);\n}\n.csk-msg--user .csk-msg__bubble {\n background: var(--csk-bg-user);\n color: var(--csk-text-user);\n border-radius: 16px 16px 4px 16px;\n}\n.csk-msg--ai .csk-msg__bubble {\n background: var(--csk-bg-ai);\n color: var(--csk-text-ai);\n border-radius: 16px 16px 16px 4px;\n border: 1px solid var(--csk-border);\n}\n.csk-msg__time {\n font-size: 11px;\n color: #9CA3AF;\n margin-top: 5px;\n padding: 0 4px;\n}\n\n@keyframes csk-msg-in {\n from { opacity: 0; transform: translateY(8px); }\n to { opacity: 1; transform: translateY(0); }\n}\n@keyframes csk-fade-in {\n from { opacity: 0; }\n to { opacity: 1; }\n}\n\n/* ========== Loading 动画 ========== */\n.csk-loading {\n display: flex;\n align-items: center;\n margin-bottom: 18px;\n animation: csk-msg-in 0.28s ease;\n}\n.csk-loading__avatar {\n width: 30px;\n height: 30px;\n border-radius: 50%;\n background: #fff;\n color: var(--csk-primary);\n border: 1px solid var(--csk-border);\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n margin: 0 8px;\n box-shadow: var(--csk-shadow-bubble);\n}\n.csk-loading__avatar svg { width: 18px; height: 18px; }\n.csk-loading__bubble {\n background: #fff;\n border: 1px solid var(--csk-border);\n border-radius: 16px 16px 16px 4px;\n padding: 12px 16px;\n display: flex;\n align-items: center;\n gap: 5px;\n}\n.csk-loading__dot {\n width: 7px;\n height: 7px;\n border-radius: 50%;\n background: #B4B9C2;\n animation: csk-bounce 1.4s ease-in-out infinite both;\n}\n.csk-loading__dot:nth-child(1) { animation-delay: 0s; }\n.csk-loading__dot:nth-child(2) { animation-delay: 0.16s; }\n.csk-loading__dot:nth-child(3) { animation-delay: 0.32s; }\n\n@keyframes csk-bounce {\n 0%, 80%, 100% { transform: scale(0.6); opacity: 0.6; }\n 40% { transform: scale(1); opacity: 1; }\n}\n\n/* ========== 输入区 ========== */\n.csk-input-area {\n padding: 10px 12px 14px;\n background: #fff;\n border-top: 1px solid var(--csk-border);\n flex-shrink: 0;\n}\n.csk-input-wrap {\n display: flex;\n align-items: flex-end;\n gap: 8px;\n background: var(--csk-bg-app);\n border: 1px solid var(--csk-border);\n border-radius: 14px;\n padding: 6px 6px 6px 14px;\n transition: border-color 0.2s, box-shadow 0.2s, background 0.2s;\n}\n.csk-input-wrap--focus {\n border-color: var(--csk-primary);\n background: #fff;\n box-shadow: 0 0 0 3px rgba(var(--csk-primary-rgb), 0.12);\n}\n.csk-input {\n flex: 1;\n border: none;\n background: transparent;\n padding: 8px 0;\n font-size: 14px;\n outline: none;\n font-family: inherit;\n resize: none;\n min-height: 22px;\n max-height: 120px;\n line-height: 1.5;\n color: #1F2937;\n}\n.csk-input::placeholder { color: #9CA3AF; }\n.csk-send-btn {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 36px;\n height: 36px;\n min-width: 36px;\n border: none;\n border-radius: 10px;\n background: var(--csk-bg-user);\n color: #fff;\n cursor: pointer;\n transition: transform 0.18s, box-shadow 0.18s, opacity 0.18s;\n box-shadow: 0 3px 10px rgba(var(--csk-primary-rgb), 0.3);\n}\n.csk-send-btn:hover:not(:disabled) {\n transform: translateY(-1px);\n box-shadow: 0 5px 14px rgba(var(--csk-primary-rgb), 0.4);\n}\n.csk-send-btn:active:not(:disabled) { transform: scale(0.92); }\n.csk-send-btn:disabled {\n background: #D1D5DB;\n box-shadow: none;\n cursor: not-allowed;\n opacity: 0.7;\n}\n.csk-send-btn svg { width: 18px; height: 18px; }\n\n/* ========== 清空按钮 ========== */\n.csk-clear-btn {\n display: inline-flex;\n align-items: center;\n gap: 5px;\n padding: 5px 12px;\n border: 1px solid var(--csk-border);\n border-radius: 999px;\n background: #fff;\n color: #6B7280;\n font-size: 12px;\n cursor: pointer;\n margin: 0 auto 8px;\n transition: all 0.15s;\n font-family: inherit;\n}\n.csk-clear-btn:hover {\n background: #FEF2F2;\n border-color: #FCA5A5;\n color: #DC2626;\n}\n\n/* ========== P1: 知识库分类下拉 ========== */\n.csk-category-bar {\n display: flex;\n align-items: center;\n padding: 8px 12px;\n border-top: 1px solid var(--csk-border);\n background: #FBFBFC;\n gap: 8px;\n flex-shrink: 0;\n}\n.csk-category-bar__label {\n font-size: 13px;\n white-space: nowrap;\n}\n.csk-category-select {\n flex: 1;\n padding: 6px 28px 6px 10px;\n border: 1px solid var(--csk-border);\n border-radius: 8px;\n font-size: 12.5px;\n color: #374151;\n background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%239CA3AF' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E") no-repeat right 9px center;\n appearance: none;\n -webkit-appearance: none;\n outline: none;\n cursor: pointer;\n font-family: inherit;\n transition: border-color 0.2s, box-shadow 0.2s;\n max-width: 220px;\n}\n.csk-category-select:focus {\n border-color: var(--csk-primary);\n box-shadow: 0 0 0 3px rgba(var(--csk-primary-rgb), 0.12);\n}\n\n/* ========== P1: RAG 引用来源卡片 ========== */\n.csk-sources {\n margin-top: 8px;\n border: 1px solid var(--csk-border);\n border-radius: 12px;\n overflow: hidden;\n font-size: 12px;\n max-width: 100%;\n background: #FAFBFC;\n}\n.csk-sources__header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 8px 12px;\n background: #F3F4F7;\n cursor: pointer;\n user-select: none;\n transition: background 0.15s;\n}\n.csk-sources__header:hover { background: #ECEEF2; }\n.csk-sources__title {\n display: flex;\n align-items: center;\n gap: 5px;\n font-weight: 500;\n color: #374151;\n}\n.csk-sources__arrow {\n transition: transform 0.2s;\n color: #9CA3AF;\n font-size: 10px;\n}\n.csk-sources--collapsed .csk-sources__arrow { transform: rotate(-90deg); }\n.csk-sources__body {\n border-top: 1px solid var(--csk-border);\n padding: 0;\n}\n.csk-sources--collapsed .csk-sources__body { display: none; }\n.csk-source-item {\n padding: 9px 12px;\n border-bottom: 1px solid #F0F1F4;\n transition: background 0.15s;\n}\n.csk-source-item:last-child { border-bottom: none; }\n.csk-source-item:hover { background: #fff; }\n.csk-source-item__name {\n font-weight: 500;\n color: #1F2937;\n margin-bottom: 3px;\n}\n.csk-source-item__snippet {\n color: #6B7280;\n line-height: 1.5;\n overflow: hidden;\n text-overflow: ellipsis;\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n}\n.csk-source-item__meta {\n font-size: 11px;\n color: #9CA3AF;\n margin-top: 4px;\n}\n\n/* ========== P1: Markdown 渲染样式 ========== */\n.csk-msg--ai .csk-msg__bubble .csk-md-p { margin: 0 0 8px; }\n.csk-msg--ai .csk-msg__bubble .csk-md-p:last-child { margin-bottom: 0; }\n.csk-msg--ai .csk-msg__bubble .csk-md-h1,\n.csk-msg--ai .csk-msg__bubble .csk-md-h2,\n.csk-msg--ai .csk-msg__bubble .csk-md-h3,\n.csk-msg--ai .csk-msg__bubble .csk-md-h4,\n.csk-msg--ai .csk-msg__bubble .csk-md-h5,\n.csk-msg--ai .csk-msg__bubble .csk-md-h6 {\n margin: 14px 0 6px;\n font-weight: 600;\n line-height: 1.3;\n color: #111827;\n}\n.csk-msg--ai .csk-msg__bubble .csk-md-h1 { font-size: 20px; }\n.csk-msg--ai .csk-msg__bubble .csk-md-h2 { font-size: 17px; }\n.csk-msg--ai .csk-msg__bubble .csk-md-h3 { font-size: 15px; }\n.csk-msg--ai .csk-msg__bubble .csk-md-h4 { font-size: 14px; }\n\n.csk-md-code-block {\n background: #1E293B;\n color: #E2E8F0;\n padding: 12px 14px;\n border-radius: 10px;\n overflow-x: auto;\n margin: 8px 0;\n font-size: 13px;\n line-height: 1.55;\n font-family: 'SF Mono', 'Consolas', 'Menlo', 'Monaco', monospace;\n}\n.csk-md-code-block code {\n background: none;\n padding: 0;\n border-radius: 0;\n font-size: inherit;\n color: inherit;\n}\n.csk-md-inline-code {\n background: rgba(var(--csk-primary-rgb), 0.1);\n color: var(--csk-primary);\n padding: 1px 6px;\n border-radius: 5px;\n font-size: 13px;\n font-family: 'SF Mono', 'Consolas', 'Menlo', 'Monaco', monospace;\n}\n.csk-msg--ai .csk-msg__bubble .csk-md-ul,\n.csk-msg--ai .csk-msg__bubble .csk-md-ol {\n padding-left: 22px;\n margin: 6px 0;\n}\n.csk-msg--ai .csk-msg__bubble .csk-md-ul li,\n.csk-msg--ai .csk-msg__bubble .csk-md-ol li { margin-bottom: 4px; }\n.csk-md-blockquote {\n border-left: 3px solid var(--csk-primary);\n padding: 2px 12px;\n margin: 8px 0;\n color: #6B7280;\n background: rgba(var(--csk-primary-rgb), 0.05);\n border-radius: 0 6px 6px 0;\n}\n.csk-md-link {\n color: var(--csk-primary);\n text-decoration: none;\n border-bottom: 1px solid rgba(var(--csk-primary-rgb), 0.3);\n transition: border-color 0.15s;\n}\n.csk-md-link:hover { border-bottom-color: var(--csk-primary); }\n.csk-md-hr {\n border: none;\n border-top: 1px solid var(--csk-border);\n margin: 12px 0;\n}\n\n/* ========== P2: 会话管理面板 ========== */\n.csk-history-panel {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: #fff;\n z-index: 10;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n animation: csk-slide-in 0.24s ease;\n}\n.csk-history-panel--hidden { display: none; }\n@keyframes csk-slide-in {\n from { transform: translateX(100%); opacity: 0.4; }\n to { transform: translateX(0); opacity: 1; }\n}\n.csk-history-panel__header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 14px 16px;\n border-bottom: 1px solid var(--csk-border);\n background: var(--csk-bg-app);\n flex-shrink: 0;\n}\n.csk-history-panel__title {\n font-size: 14px;\n font-weight: 600;\n color: #1F2937;\n}\n.csk-history-panel__back {\n display: flex;\n align-items: center;\n gap: 4px;\n padding: 5px 12px;\n border: 1px solid var(--csk-border);\n border-radius: 8px;\n background: #fff;\n color: #374151;\n font-size: 12px;\n cursor: pointer;\n transition: all 0.15s;\n font-family: inherit;\n}\n.csk-history-panel__back:hover { background: #F3F4F6; }\n.csk-history-panel__list {\n flex: 1;\n overflow-y: auto;\n padding: 10px;\n}\n.csk-history-panel__list::-webkit-scrollbar { width: 5px; }\n.csk-history-panel__list::-webkit-scrollbar-thumb { background: #E5E7EB; border-radius: 2px; }\n.csk-history-item {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 11px 12px;\n border-radius: 10px;\n cursor: pointer;\n transition: background 0.15s;\n margin-bottom: 5px;\n border: 1px solid transparent;\n}\n.csk-history-item:hover { background: #F3F4F6; }\n.csk-history-item--active {\n background: rgba(var(--csk-primary-rgb), 0.08);\n border-color: rgba(var(--csk-primary-rgb), 0.2);\n}\n.csk-history-item--active:hover { background: rgba(var(--csk-primary-rgb), 0.12); }\n.csk-history-item__info { flex: 1; min-width: 0; }\n.csk-history-item__id {\n font-size: 13px;\n font-weight: 500;\n color: #1F2937;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.csk-history-item__meta {\n font-size: 11px;\n color: #9CA3AF;\n margin-top: 3px;\n}\n.csk-history-item__actions {\n display: flex;\n gap: 4px;\n margin-left: 8px;\n opacity: 0;\n transition: opacity 0.15s;\n}\n.csk-history-item:hover .csk-history-item__actions { opacity: 1; }\n.csk-history-action {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 28px;\n height: 28px;\n border: none;\n border-radius: 7px;\n cursor: pointer;\n font-size: 12px;\n transition: all 0.15s;\n}\n.csk-history-action--export { background: #EFF6FF; color: #2563EB; }\n.csk-history-action--export:hover { background: #DBEAFE; }\n.csk-history-action--delete { background: #FEF2F2; color: #DC2626; }\n.csk-history-action--delete:hover { background: #FEE2E2; }\n.csk-history-panel__empty {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 48px 20px;\n color: #9CA3AF;\n font-size: 13px;\n text-align: center;\n}\n.csk-history-panel__empty-icon {\n font-size: 34px;\n margin-bottom: 10px;\n opacity: 0.5;\n}\n.csk-history-panel__loading {\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 24px;\n color: #9CA3AF;\n font-size: 13px;\n}\n.csk-history-panel__loadmore {\n display: block;\n width: 100%;\n padding: 10px;\n border: none;\n background: #F9FAFB;\n color: #6B7280;\n font-size: 12px;\n cursor: pointer;\n text-align: center;\n transition: background 0.15s;\n}\n.csk-history-panel__loadmore:hover { background: #F3F4F6; }\n\n/* ========== 移动端适配 ========== */\n@media (max-width: 480px) {\n .csk-window {\n width: 100vw !important;\n height: 100vh !important;\n max-height: 100vh;\n bottom: 0 !important;\n right: 0 !important;\n left: 0 !important;\n border-radius: 0;\n }\n .csk-window--hidden { transform: translateY(100%); }\n .csk-launcher { bottom: 20px; }\n .csk-launcher--right { right: 20px; }\n .csk-launcher--left { left: 20px; }\n}\n`}(n),document.head.appendChild(v))}function $(){return"undefined"!=typeof crypto&&crypto.randomUUID?crypto.randomUUID():"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,n=>{const e=16*Math.random()|0;return("x"===n?e:3&e|8).toString(16)})}function S(n){const e={"&":"&","<":"<",">":">",'"':""","'":"'"};return n.replace(/[&<>"']/g,n=>e[n]||n)}function N(){return Date.now()}const A='';function L(n,e){const t=document.createElement("div");t.id="csk-launcher",t.className="csk-launcher csk-launcher--"+("left-bottom"===n.position?"left":"right"),t.setAttribute("title",n.title),t.setAttribute("aria-label",n.title),t.setAttribute("role","button"),t.setAttribute("tabindex","0"),t.innerHTML=n.launcherIcon;const r=function(n,e){let t=null;return function(...r){null!==t&&clearTimeout(t),t=setTimeout(()=>{n.apply(this,r),t=null},e)}}(e,300);return t.addEventListener("click",r),t.addEventListener("keydown",n=>{"Enter"!==n.key&&" "!==n.key||(n.preventDefault(),r())}),t}function F(n,e,t){const r=document.createElement("div");r.className="csk-msg csk-msg--user";const s=document.createElement("div");s.className="csk-msg__avatar csk-msg__avatar--user",s.innerHTML='';const o=document.createElement("div");o.className="csk-msg__content";const i=document.createElement("div");i.className="csk-msg__bubble",i.textContent=e;const a=document.createElement("div");return a.className="csk-msg__time",a.textContent=T(t),o.appendChild(i),o.appendChild(a),r.appendChild(s),r.appendChild(o),n.appendChild(r),r}function M(n,e,t,r){const s=document.createElement("div");s.className="csk-msg csk-msg--ai";const o=document.createElement("div");o.className="csk-msg__avatar csk-msg__avatar--ai",o.innerHTML=A;const i=document.createElement("div");i.className="csk-msg__content";const a=document.createElement("div");a.className="csk-msg__bubble",r?a.innerHTML=r(e):a.textContent=e;const c=document.createElement("div");return c.className="csk-msg__time",c.textContent=T(t),i.appendChild(a),i.appendChild(c),s.appendChild(o),s.appendChild(i),n.appendChild(s),s}function D(n,e){const t=n.querySelector(".csk-sources");if(t&&t.remove(),!e||0===e.length)return;const r=document.createElement("div");r.className="csk-sources csk-sources--collapsed";const s=document.createElement("div");s.className="csk-sources__header";const o=document.createElement("span");o.className="csk-sources__title",o.textContent=`📚 ${i("source_count",{n:e.length})}`;const a=document.createElement("span");a.className="csk-sources__arrow",a.textContent="▼",s.appendChild(o),s.appendChild(a),s.addEventListener("click",()=>{r.classList.toggle("csk-sources--collapsed")});const c=document.createElement("div");c.className="csk-sources__body";for(const n of e){const e=document.createElement("div");e.className="csk-source-item";const t=document.createElement("div");if(t.className="csk-source-item__name",t.textContent=n.title||n.sourceName||"未知文档",n.snippet){const t=document.createElement("div");t.className="csk-source-item__snippet",t.textContent=n.snippet,e.appendChild(t)}const r=document.createElement("div");r.className="csk-source-item__meta";const s=[];n.sourceName&&s.push(n.sourceName),void 0!==n.chunkIndex&&s.push(`分块 #${n.chunkIndex}`),void 0!==n.score&&s.push(`相关度 ${(100*n.score).toFixed(0)}%`),r.textContent=s.join(" · "),e.appendChild(t),e.appendChild(r),c.appendChild(e)}r.appendChild(s),r.appendChild(c);const l=n.querySelector(".csk-msg__time");l&&l.parentNode?l.parentNode.insertBefore(r,l):n.appendChild(r)}function z(n){n.scrollTop=n.scrollHeight}function T(n){const e=new Date(n);return`${String(e.getHours()).padStart(2,"0")}:${String(e.getMinutes()).padStart(2,"0")}`}function H(n){return`csk_history_${n}`}function B(n,e){try{let t=e;t.length>200&&(t=t.slice(50),r.warn(`消息数量达到上限,已裁剪最早 50 条,当前 ${t.length} 条`));const s={messages:t,updatedAt:Date.now()};localStorage.setItem(H(n),JSON.stringify(s))}catch(n){n instanceof Error&&"QuotaExceededError"===n.name?r.error("localStorage 空间不足,会话历史保存失败。建议清空历史记录。"):r.error("保存会话历史失败",n)}}function q(n){try{localStorage.removeItem(H(n))}catch(n){r.warn("清空会话历史失败",n)}}const j="\0CODEBLOCK_",P="\0INLINECODE_";function R(n){if(!n||"string"!=typeof n)return"";const e=[];let t=n;t=t.replace(/```(\w*)\n([\s\S]*?)```/g,(n,t,r)=>{const s=e.length,o=S(r.trimEnd()),i=t?` class="language-${S(t)}"`:"";return e.push(`
${o}
`),`${j}${s}\0`});const r=[];t=t.replace(/`([^`\n]+)`/g,(n,e)=>{const t=r.length;return r.push(`${S(e)}`),`${P}${t}\0`}),t=S(t),t=U(t,j,e),t=U(t,P,r);const s=t.split("\n"),o=[];let i=!1,a="",c=!1,l=[];for(let n=0;n')){p(),u(),m(),o.push(e);continue}const t=e.match(/^(#{1,6})\s+(.+)/);if(t){p(),u(),m();const n=t[1].length;o.push(`${t[2]}`);continue}const r=e.match(/^>\s?(.*)/);if(r){p(),u(),c||(c=!0,o.push('
')),o.push(`

${d(r[1])}

`);continue}c&&m();const h=e.match(/^[\-\*]\s+(.+)/);if(h){p(),m(),i&&"ul"===a||(u(),i=!0,a="ul",o.push('
    ')),o.push(`
  • ${d(h[1])}
  • `);continue}const g=e.match(/^\d+\.\s+(.+)/);g?(p(),m(),i&&"ol"===a||(u(),i=!0,a="ol",o.push('
      ')),o.push(`
    1. ${d(g[1])}
    2. `)):""!==e.trim()?/^(\*{3,}|-{3,}|_{3,})$/.test(e.trim())?(p(),u(),m(),o.push('
      ')):(u(),m(),l.push(d(e))):(p(),u())}return p(),u(),m(),o.join("\n");function d(n){return n=(n=(n=(n=(n=(n=n.replace(/\*\*(.+?)\*\*/g,"$1")).replace(/__(.+?)__/g,"$1")).replace(/\*(.+?)\*/g,"$1")).replace(/(?$1")).replace(/~~(.+?)~~/g,"$1")).replace(/\[([^\]]+)\]\(([^)]+)\)/g,(n,e,t)=>`${e}`)}function p(){l.length>0&&(o.push(`

      ${l.join("
      ")}

      `),l=[])}function u(){i&&(o.push("ul"===a?"
":""),i=!1,a="")}function m(){c&&(o.push("
"),c=!1)}}function U(n,e,t){return n.replace(new RegExp(e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")+"(\\d+)\0","g"),(n,e)=>t[parseInt(e)]||"")}let O,W=null,Y=[],K=null,V=null,X=null,J=null,G=null,Q=null,Z=null,nn=null,en=null,tn=null,rn=!1,sn=!1;function on(n,e){W=n,K=e.messagesContainer,V=e.inputEl,X=e.inputEl.parentElement,J=e.sendBtn,G=e.clearBtn,Q=e.categorySelect,Z=e.historyPanel,nn=e.welcomeEl,en=e.showLoading,tn=e.hideLoading,O=n.categoryId,sn=!!n.categoryId||!!n.showCategorySwitch,function(){if(!V||!J)return;J.addEventListener("click",()=>dn()),V.addEventListener("keydown",n=>{"Enter"!==n.key||n.shiftKey||(n.preventDefault(),dn())}),V.addEventListener("input",()=>{ln(),function(){if(!V)return;V.style.height="auto",V.style.height=`${Math.min(V.scrollHeight,120)}px`}()}),V.addEventListener("focus",()=>{X&&X.classList.add("csk-input-wrap--focus")}),V.addEventListener("blur",()=>{X&&X.classList.remove("csk-input-wrap--focus")}),G&&G.addEventListener("click",()=>function(){if(!W)return;if(!confirm(i("clear_confirm")))return;if(Y=[],K){K.querySelectorAll(".csk-msg, .csk-loading").forEach(n=>n.remove())}G&&(G.style.display="none");cn(),q(W.integrateId);const n=function(){const n="undefined"!=typeof crypto&&crypto.randomUUID?crypto.randomUUID().substring(0,8):Math.random().toString(36).substring(2,10);return`sdk_${Date.now()}_${n}`}();c(n),w(W.integrateId,W.userId,n),r.lifecycleClear(W.integrateId),r.info(`新 chatId=${n}`)}())}(),n.showCategorySwitch&&Q&&async function(){if(!Q)return;try{const n=await async function(){const n=d("/category/tree");try{const e=await u(n);if(!e.ok)throw new m(h(e.status),`http_${e.status}`);const t=await e.json();return t.success&&Array.isArray(t.data)?(r.info(`加载分类树成功 count=${t.data.length}`),t.data):[]}catch(n){return n instanceof m?r.error(`加载分类树失败: ${n.message}`):r.error("加载分类树失败",n),[]}}();if(0===n.length)return;Q.innerHTML=``;const e=(n,t=0)=>{for(const r of n){const n=document.createElement("option");n.value=String(r.id),n.textContent=`${" ".repeat(t)}${r.name}`,void 0!==O&&String(r.id)===String(O)&&(n.selected=!0),Q.appendChild(n),r.children&&r.children.length>0&&e(r.children,t+1)}};e(n),r.info(`知识库分类加载成功 count=${n.length}`)}catch(n){r.error(i("category_load_error"),n)}}()}async function an(){if(W&&K&&(await y(),await async function(){if(!W||!K)return;const n=l();if(!n)return;try{const e=await x(n);e.messages.length>0&&(Y=e.messages.map((n,e)=>({id:$(),role:"USER"===n.messageType?"user":"ai",content:n.content,timestamp:new Date(n.createTime).getTime()})),pn(),r.info(`从后端加载 ${Y.length} 条历史消息`),B(W.integrateId,Y))}catch(n){r.warn("从后端加载历史消息失败",n)}}(),0===Y.length)){const n=function(n){try{const e=localStorage.getItem(H(n));if(!e)return[];const t=JSON.parse(e);return t&&Array.isArray(t.messages)?(r.info(`加载历史消息 integrateId=${n} count=${t.messages.length}`),t.messages):[]}catch(n){return r.warn("加载会话历史失败",n),[]}}(W.integrateId);n.length>0&&(Y=n,pn(),r.info(`从本地缓存恢复 ${n.length} 条消息`))}}function cn(){if(!nn)return;const n=Y.length>0||K&&K.querySelector(".csk-msg");nn.style.display=n?"none":""}function ln(){if(!J||!V)return;V.value.trim().length>0&&!rn?J.removeAttribute("disabled"):J.setAttribute("disabled","true")}async function dn(){if(!V||!W||rn)return;const n=V.value.trim();if(""===n)return;V.value="",ln(),V.style.height="auto",rn=!0,ln(),W.chatId||await y();const e=N();K&&F(K,n,e);const t={id:$(),role:"user",content:n,timestamp:e};Y.push(t),cn(),G&&Y.length>0&&(G.style.display="inline-flex"),K&&z(K),en&&en(),K&&z(K);try{let e;const t=N(),s=sn&&(void 0!==O||void 0!==W.categoryId);e=W.streaming?await async function(n,e,t){return new Promise((r,s)=>{let o=null,a="",c=!1;k(n,n=>{if(a+=n,!c&&K){tn&&tn();const{bubble:n}=function(n,e){const t=document.createElement("div");t.className="csk-msg csk-msg--ai";const r=document.createElement("div");r.className="csk-msg__avatar csk-msg__avatar--ai",r.innerHTML=A;const s=document.createElement("div");s.className="csk-msg__content";const o=document.createElement("div");o.className="csk-msg__bubble",o.innerHTML="";const i=document.createElement("div");return i.className="csk-msg__time",i.textContent=T(e),s.appendChild(o),s.appendChild(i),t.appendChild(r),t.appendChild(s),n.appendChild(t),{wrapper:t,bubble:o}}(K,e);o=n,c=!0}o&&(o.textContent=a),K&&z(K)},()=>{c||""!==a?(o&&a&&(o.innerHTML=R(a)),r(a)):g(n).then(r).catch(s)},n=>{a.length>0?(o&&(o.innerHTML=R(a+"\n\n"+i("stream_interrupted"))),r(a)):s(n)},O,t)})}(n,t,s):await g(n),tn&&tn(),!W.streaming&&K&&M(K,e,t,R);const o={id:$(),role:"ai",content:e,timestamp:t};Y.push(o),B(W.integrateId,Y),K&&z(K),s&&async function(n,e){try{const t=await f(n,O);if(t.length>0){const n=t.map(n=>{var e,t;return{documentId:n.documentId||"",title:n.title||"",sourceName:n.sourceName||"",chunkIndex:null!==(e=n.chunkIndex)&&void 0!==e?e:0,score:null!==(t=n.score)&&void 0!==t?t:0,snippet:n.snippet||""}});if(e.sources=n,K){const e=K.querySelector(".csk-msg--ai:last-of-type");e&&D(e,n)}W&&B(W.integrateId,Y)}}catch(n){r.warn("获取引用来源失败",n)}}(n,o)}catch(n){tn&&tn();const e=n instanceof m?n.message:i("error_send");if(K){const n=document.createElement("div");n.className="csk-msg csk-msg--ai";const t=document.createElement("div");t.className="csk-msg__bubble",t.style.color="#DC2626",t.textContent=`⚠ ${e}`,n.appendChild(t),K.appendChild(n)}r.error(`发送失败 integrateId=${W.integrateId}`,n)}finally{rn=!1,ln()}}function pn(){if(!K)return;const n=K.querySelector(".csk-history-panel");K.querySelectorAll(".csk-msg, .csk-loading").forEach(n=>n.remove());for(const n of Y)if("user"===n.role)F(K,n.content,n.timestamp);else{const e=M(K,n.content,n.timestamp,R);n.sources&&n.sources.length>0&&D(e,n.sources)}z(K),G&&Y.length>0&&(G.style.display="inline-flex"),cn(),n&&!K.contains(n)&&K.appendChild(n)}async function un(){if(!Z||!W)return;const n=Z.querySelector("#csk-history-list");if(n){n.innerHTML='
加载中...
';try{const e=await b(1,50,W.userId,W.integrateId);!function(n,e,t,r,s,o){if(n.innerHTML="",0===e.length){const e=document.createElement("div");return e.className="csk-history-panel__empty",e.innerHTML=`\n
💬
\n
${i("history_empty")}
\n `,void n.appendChild(e)}for(const a of e){const e=document.createElement("div");e.className="csk-history-item";const c=a.chatId||a.id;o&&c===o&&e.classList.add("csk-history-item--active");const l=document.createElement("div");l.className="csk-history-item__info";const d=document.createElement("div");d.className="csk-history-item__id",a.lastMessagePreview?d.textContent=a.lastMessagePreview.length>60?a.lastMessagePreview.substring(0,60)+"...":a.lastMessagePreview:d.textContent=c;const p=document.createElement("div");p.className="csk-history-item__meta";const u=[];void 0!==a.messageCount&&u.push(`${a.messageCount} 条消息`),a.lastMessageTime?u.push(a.lastMessageTime):a.createdAt&&u.push(a.createdAt),p.textContent=u.join(" · "),l.appendChild(d),l.appendChild(p);const m=document.createElement("div");m.className="csk-history-item__actions";const h=document.createElement("button");h.className="csk-history-action csk-history-action--export",h.setAttribute("title",i("history_export")),h.innerHTML='',h.addEventListener("click",n=>{n.stopPropagation(),r(a.id)});const g=document.createElement("button");g.className="csk-history-action csk-history-action--delete",g.setAttribute("title",i("history_delete")),g.innerHTML='',g.addEventListener("click",n=>{n.stopPropagation(),s(a.id)}),m.appendChild(h),m.appendChild(g),e.appendChild(l),e.appendChild(m),e.addEventListener("click",()=>{t(c)}),n.appendChild(e)}}(n,e.list.map(n=>({id:n.conversationId||"",chatId:n.conversationId||"",messageCount:n.messageCount,lastMessageTime:n.lastMessageTime,lastMessagePreview:n.lastMessagePreview,createdAt:n.firstMessageTime||n.createdAt})),n=>{!async function(n){if(!W||!K)return;r.info(`切换到会话 conversationId=${n}`),c(n),w(W.integrateId,W.userId,n),Z&&Z.classList.add("csk-history-panel--hidden");Y=[];K.querySelectorAll(".csk-msg, .csk-loading").forEach(n=>n.remove());try{const e=await x(n);e.messages.length>0&&(Y=e.messages.map(n=>({id:$(),role:"USER"===n.messageType?"user":"ai",content:n.content,timestamp:new Date(n.createTime).getTime()})),pn(),r.info(`加载会话 ${n} 的 ${Y.length} 条消息`),B(W.integrateId,Y))}catch(e){r.warn(`加载会话消息失败 conversationId=${n}`,e)}G&&Y.length>0&&(G.style.display="inline-flex");cn()}(n)},n=>{window.open(d(`/conversation/${n}/export`),"_blank")},async n=>{if(!confirm(i("history_delete_confirm")))return;if(await async function(n){const e=d(`/conversation/${n}`);try{const t=await u(e,{method:"DELETE"});if(!t.ok)throw new m(h(t.status),`http_${t.status}`);const s=await t.json();return r.info(`删除会话 id=${n} success=${s.success}`),s.success||!1}catch(n){return r.error("删除会话失败",n),!1}}(n)){if(n===l()){if(Y=[],K){K.querySelectorAll(".csk-msg, .csk-loading").forEach(n=>n.remove())}G&&(G.style.display="none"),cn()}un()}},l())}catch(e){r.error(i("history_load_error"),e),n.innerHTML=`
${i("history_load_error")}
`}}}let mn=null,hn=!1,gn=null,kn=null,fn=null,bn=null,xn=null,yn=null,_n=null,wn=null,vn=null,Cn=null,In=null;function En(){kn&&kn.classList.remove("csk-window--hidden")}function $n(){kn&&kn.classList.add("csk-window--hidden")}function Sn(){kn&&(kn.classList.contains("csk-window--hidden")?(En(),setTimeout(()=>{bn&&bn.focus()},100)):$n())}const Nn={init:function(n){if(hn)return void r.warn("SDK 已初始化,请先调用 destroy() 再重新初始化");const t=function(n){var e,t,s,o,i,a;if(!n.integrateId||"string"!=typeof n.integrateId&&"number"!=typeof n.integrateId||"string"==typeof n.integrateId&&""===n.integrateId.trim())return r.error('integrateId 是必传参数(对应后端 roleId 客服角色 ID),请检查 init() 调用。示例:ChatbotSDK.init({ integrateId: 1, requestDomain: "https://api.example.com" })'),null;if(!n.requestDomain||"string"!=typeof n.requestDomain||""===n.requestDomain.trim())return r.error('requestDomain 是必传参数,请检查 init() 调用。示例:ChatbotSDK.init({ integrateId: 1, requestDomain: "https://api.example.com" })'),null;try{new URL(n.requestDomain)}catch(e){return r.error(`requestDomain 不是合法的 URL 格式:${n.requestDomain}。请提供完整的域名,如 https://api.example.com`),null}const c={integrateId:String(n.integrateId).trim(),requestDomain:n.requestDomain.replace(/\/+$/,""),userId:n.userId,categoryId:n.categoryId,showCategorySwitch:null!==(e=n.showCategorySwitch)&&void 0!==e&&e,title:n.title||"AI 智能助手",width:null!==(t=n.width)&&void 0!==t?t:380,position:"left-bottom"===n.position?"left-bottom":"right-bottom",primaryColor:n.primaryColor||"#4F46E5",launcherIcon:n.launcherIcon||'\n \n \n',showClear:null===(s=n.showClear)||void 0===s||s,showAdminPanel:null!==(o=n.showAdminPanel)&&void 0!==o&&o,streaming:null===(i=n.streaming)||void 0===i||i,locale:n.locale||"zh-CN",debug:null===(a=n.debug)||void 0===a||a,chatId:""};return r.info(`配置解析完成 integrateId(=roleId)=${c.integrateId} userId(=accountId)=${c.userId||"(未设置)"} requestDomain=${c.requestDomain}`),c}(n);if(!t)return;var c;mn=t,function(n){if(s[n])o=n;else{const e=n.split("-")[0],t=Object.keys(s).find(n=>n.startsWith(e));t&&(o=t)}}(mn.locale),c=mn.debug,e=c,function(n){a=n}(mn),E(mn),gn=L(mn,Sn),document.body.appendChild(gn);const l=function(n){const e=document.createElement("div");e.id="csk-window",e.className=`csk-root csk-window csk-window--${"left-bottom"===n.position?"left":"right"} csk-window--hidden`;const t=document.createElement("div");t.className="csk-header";const r=document.createElement("div");r.className="csk-header__left";const s=document.createElement("div");s.className="csk-header__avatar",s.innerHTML=A;const o=document.createElement("div");o.className="csk-header__info";const a=document.createElement("span");a.className="csk-header__title",a.textContent=n.title;const c=document.createElement("span");c.className="csk-header__status",c.innerHTML=`${i("status_online")}`,o.appendChild(a),o.appendChild(c),r.appendChild(s),r.appendChild(o);const l=document.createElement("div");l.className="csk-header__actions";const d=document.createElement("button");d.className="csk-history-btn",d.setAttribute("title",i("history_title")),d.innerHTML='';const p=document.createElement("button");p.className="csk-header__btn csk-header__btn--minimize",p.setAttribute("title",i("minimize")),p.innerHTML='',p.addEventListener("click",()=>{e.classList.add("csk-window--hidden")});const u=document.createElement("button");u.className="csk-header__btn csk-header__btn--close",u.setAttribute("title",i("close")),u.innerHTML='',u.addEventListener("click",()=>{e.classList.add("csk-window--hidden")}),l.appendChild(d),l.appendChild(p),l.appendChild(u),t.appendChild(r),t.appendChild(l);const m=document.createElement("div");m.id="csk-messages",m.className="csk-messages";const h=document.createElement("div");h.className="csk-welcome",h.innerHTML=`\n
${A}
\n
${i("welcome_title")}
\n
${i("welcome_desc")}
\n `,m.appendChild(h);const g=document.createElement("div");g.className="csk-history-panel csk-history-panel--hidden",g.innerHTML=`\n
\n ${i("history_title")}\n \n
\n
\n `,m.appendChild(g);const k=g.querySelector("#csk-history-back");k&&k.addEventListener("click",()=>{g.classList.add("csk-history-panel--hidden")}),d.addEventListener("click",n=>{n.stopPropagation();const t=g.classList.contains("csk-history-panel--hidden");g.classList.toggle("csk-history-panel--hidden"),t&&e.dispatchEvent(new CustomEvent("csk:loadHistory"))});let f=null;if(n.showCategorySwitch){const n=document.createElement("div");n.className="csk-category-bar";const r=document.createElement("span");r.className="csk-category-bar__label",r.textContent="📚",f=document.createElement("select"),f.id="csk-category-select",f.className="csk-category-select",f.innerHTML=``,f.addEventListener("change",()=>{const n=f.value;e.dispatchEvent(new CustomEvent("csk:categoryChange",{detail:{categoryId:n?Number(n):void 0}}))}),n.appendChild(r),n.appendChild(f),e.appendChild(t),e.appendChild(m),e.appendChild(n)}else e.appendChild(t),e.appendChild(m);const b=document.createElement("div");b.className="csk-input-area";const x=document.createElement("div");x.className="csk-input-wrap";const y=document.createElement("textarea");y.id="csk-input",y.className="csk-input",y.setAttribute("placeholder",i("placeholder")),y.setAttribute("rows","1"),y.setAttribute("autofocus","");const _=document.createElement("button");_.id="csk-send-btn",_.className="csk-send-btn",_.setAttribute("title",i("send")),_.setAttribute("disabled","true"),_.innerHTML='',x.appendChild(y),x.appendChild(_),b.appendChild(x),e.appendChild(b);let w=null;n.showClear&&(w=document.createElement("button"),w.className="csk-clear-btn",w.textContent=i("clear"),w.style.display="none",e.insertBefore(w,b));let v=null;return{window:e,messagesContainer:m,inputEl:y,sendBtn:_,clearBtn:w,categorySelect:f,historyPanel:g,welcomeEl:h,showLoading:function(){if(v)return v.style.display="flex",v;const n=document.createElement("div");return n.className="csk-loading",n.innerHTML=`\n
${A}
\n
\n
\n
\n
\n
\n `,m.appendChild(n),v=n,n},hideLoading:function(){v&&v.parentNode&&(v.parentNode.removeChild(v),v=null)}}}(mn);kn=l.window,fn=l.messagesContainer,bn=l.inputEl,xn=l.sendBtn,yn=l.clearBtn,_n=l.categorySelect,wn=l.historyPanel,vn=l.showLoading,Cn=l.hideLoading,document.body.appendChild(kn);const d=kn.querySelector(".csk-header");d&&(In=function(n,e){let t=!1,r=0,s=0,o=0,i=0;const a=n=>{if(n.target.closest("button"))return;t=!0,r=n.clientX,s=n.clientY;const a=e.getBoundingClientRect();o=r-a.left,i=s-a.top,document.addEventListener("mousemove",c),document.addEventListener("mouseup",l)},c=n=>{if(!t)return;const r=n.clientX-o,s=n.clientY-i,a=window.innerWidth-e.offsetWidth,c=window.innerHeight-e.offsetHeight;e.style.right="auto",e.style.bottom="auto",e.style.left=`${Math.max(0,Math.min(r,a))}px`,e.style.top=`${Math.max(0,Math.min(s,c))}px`},l=()=>{t=!1,document.removeEventListener("mousemove",c),document.removeEventListener("mouseup",l)};return n.addEventListener("mousedown",a),()=>{n.removeEventListener("mousedown",a),document.removeEventListener("mousemove",c),document.removeEventListener("mouseup",l)}}(d,kn)),on(mn,{messagesContainer:fn,inputEl:bn,sendBtn:xn,clearBtn:yn,categorySelect:_n,historyPanel:wn,welcomeEl:l.welcomeEl,showLoading:vn,hideLoading:Cn}),kn.addEventListener("csk:categoryChange",n=>{var e;e=n.detail.categoryId,O=e,sn=void 0!==e,r.lifecycleCategoryChange(null!=e?e:"全部")}),kn.addEventListener("csk:loadHistory",()=>{un()}),hn=!0,r.lifecycleInit(mn.integrateId,mn.requestDomain),an().catch(n=>{r.warn("chatId 初始化失败,将在发送消息时重试",n)})},destroy:function(){if(!hn)return;gn&&gn.parentNode&&(gn.parentNode.removeChild(gn),gn=null),kn&&kn.parentNode&&(kn.parentNode.removeChild(kn),kn=null),In&&(In(),In=null),v&&v.parentNode&&(v.parentNode.removeChild(v),v=null),document.querySelectorAll("style[data-csk-sdk]").forEach(n=>n.remove());const n=null==mn?void 0:mn.integrateId;mn=null,hn=!1,fn=null,bn=null,xn=null,yn=null,_n=null,wn=null,vn=null,Cn=null,r.lifecycleDestroy(n||"")},open:En,close:$n,toggle:Sn,clearHistory:function(){mn&&(yn?yn.click():confirm("确定清空所有对话记录?")&&q(mn.integrateId))}};return"undefined"!=typeof window&&(window.ChatbotSDK=Nn),Nn}(); //# sourceMappingURL=chatbot-sdk.min.js.map diff --git a/src/main/resources/static/sdk/chatbot-sdk.min.js.map b/src/main/resources/static/sdk/chatbot-sdk.min.js.map index 1204c32..9ddd9fd 100644 --- a/src/main/resources/static/sdk/chatbot-sdk.min.js.map +++ b/src/main/resources/static/sdk/chatbot-sdk.min.js.map @@ -1 +1 @@ -{"version":3,"file":"chatbot-sdk.min.js","sources":["../src/logger.ts","../src/i18n.ts","../src/api.ts","../src/styles.ts","../src/utils.ts","../src/dom.ts","../src/storage.ts","../src/markdown.ts","../src/chat.ts","../src/index.ts","../src/config.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null],"names":["PREFIX","debugEnabled","timers","logger","info","msg","data","console","log","undefined","warn","error","time","label","Date","now","timeEnd","prefix","start","duration","lifecycleInit","integrateId","requestDomain","this","lifecycleDestroy","lifecycleSend","length","lifecycleReply","lifecycleError","status","message","lifecycleClear","lifecycleStreamDone","lifecycleCategoryChange","categoryId","dictionaries","title","minimize","close","placeholder","send","loading","stream_interrupted","stream_unstable","category_placeholder","category_all","category_load_error","source_title","source_count","source_loading","clear","clear_confirm","history_title","history_empty","history_load_error","history_delete_confirm","history_export","history_delete","error_network","error_timeout","error_server","error_cors","error_auth","error_forbidden","error_not_found","error_rate_limit","error_unavailable","error_unknown","error_send","error_stream_unsupported","en","currentLocale","t","key","params","text","k","v","Object","entries","replace","String","currentConfig","updateChatId","chatId","getChatId","buildUrl","path","Error","startsWith","setIfPresent","value","trim","set","async","safeFetch","url","options","timeout","controller","AbortController","timer","setTimeout","abort","fetch","assign","signal","mode","credentials","err","DOMException","name","CskError","TypeError","includes","clearTimeout","constructor","type","super","getHttpErrorMessage","chatRequest","URLSearchParams","userId","toString","buildChatUrl","response","ok","errorMsg","chatSSERequest","onChunk","onDone","onError","useRag","buildChatRAGSSEUrl","buildChatSSEUrl","totalText","REQUEST_TIMEOUT","reader","_a","body","getReader","decoder","TextDecoder","stream","buffer","done","read","decode","lines","split","pop","line","trimmed","substring","readErr","releaseLock","fetchRagSources","buildRagSourcesUrl","json","success","Array","isArray","fetchConversationList","page","size","accountId","roleId","encodeURIComponent","list","total","pages","fetchConversationMessages","conversationId","messages","initChatId","cachedChatId","localStorage","getItem","chatIdStorageKey","loadCachedChatId","result","latestConv","saveCachedChatId","messageCount","newChatId","random","crypto","randomUUID","Math","generateChatId","setItem","removeItem","styleElement","cssVars","config","darker","hex","amount","match","clamp","max","min","r","parseInt","g","b","padStart","adjustColor","primaryColor","width","injectStyles","document","querySelector","createElement","setAttribute","textContent","getStyles","head","appendChild","uuid","c","escapeHtml","map","ch","createLauncher","onClick","launcher","id","className","position","innerHTML","launcherIcon","debouncedClick","fn","delay","args","apply","debounce","addEventListener","e","preventDefault","renderUserBubble","container","timestamp","wrapper","bubble","formatTime","renderAIBubble","renderMd","renderSources","sources","existing","remove","sourcesEl","header","titleSpan","n","arrow","classList","toggle","src","item","sourceName","snippet","meta","metaParts","push","chunkIndex","score","toFixed","join","timeEl","insertBefore","scrollToBottom","scrollTop","scrollHeight","d","getHours","getMinutes","storageKey","saveMessages","slice","updatedAt","JSON","stringify","clearMessages","CODE_BLOCK_PREFIX","INLINE_CODE_PREFIX","renderMarkdown","codeBlocks","processed","_match","lang","code","idx","escapedCode","trimEnd","langClass","inlineCodes","restorePlaceholders","inList","listType","inBlockquote","paragraphBuffer","i","flushParagraph","closeList","closeBlockquote","headingMatch","level","quoteMatch","inlineFormat","ulMatch","olMatch","test","_m","linkText","replacements","RegExp","currentCategoryId","messagesContainer","inputEl","sendBtn","clearBtn","categorySelect","historyPanel","showLoadingFn","hideLoadingFn","isSending","initChat","cfg","dom","showLoading","hideLoading","showCategorySwitch","handleSend","shiftKey","updateSendBtnState","confirm","querySelectorAll","forEach","el","style","display","newId","generateNewChatId","handleClear","bindSendEvents","tree","fetchCategoryTree","addOptions","nodes","indent","node","option","repeat","selected","children","loadCategories","initChatHistory","role","messageType","content","createTime","getTime","renderHistory","loadHistoryFromBackend","cached","raw","parse","loadMessages","removeAttribute","height","userTimestamp","userMsg","aiContent","aiTimestamp","shouldUseRag","streaming","Promise","resolve","reject","bubbleEl","accumulated","streamStarted","chunk","createEmptyAIBubble","then","catch","sendStreamMessage","aiMsg","ragSources","s","documentId","_b","lastAiMsg","fetchAndRenderSources","errMsg","errorBubble","color","historyPanelEl","contains","loadHistoryConversations","listEl","items","onSelect","onExport","onDelete","activeChatId","empty","convId","add","idEl","lastMessagePreview","metaEl","lastMessageTime","createdAt","actionsEl","exportBtn","stopPropagation","deleteBtn","renderHistoryList","firstMessageTime","switchToConversation","window","open","method","deleteConversation","isInitialized","launcherEl","windowEl","dragCleanup","focus","ChatbotSDK","init","rawConfig","parsed","URL","_g","showClear","_c","showAdminPanel","_d","_e","locale","debug","_f","parseConfig","enabled","matched","keys","find","setLocale","setApiConfig","titleEl","actions","historyBtn","minimizeBtn","closeBtn","backBtn","isHidden","dispatchEvent","CustomEvent","categoryBar","categoryLabel","selectedId","detail","Number","inputArea","loadingEl","parentNode","removeChild","createChatWindow","headerEl","dragging","startX","startY","offsetX","offsetY","onMouseDown","clientX","clientY","rect","getBoundingClientRect","left","top","onMouseMove","onMouseUp","x","y","maxX","innerWidth","offsetWidth","maxY","innerHeight","offsetHeight","right","bottom","removeEventListener","enableDrag","destroy","oldIntegrateId","clearHistory","click"],"mappings":"uCAMA,MAAMA,EAAS,eAEf,IAAIC,GAAe,EAQnB,MAAMC,EAAiC,CAAA,EAE1BC,EAAS,CAEpB,IAAAC,CAAKC,EAAaC,GACZL,GACFM,QAAQC,IAAIR,EAAQK,OAAcI,IAATH,EAAqBA,EAAO,GAEzD,EAGA,IAAAI,CAAKL,EAAaC,GACZL,GACFM,QAAQG,KAAKV,EAAQK,OAAcI,IAATH,EAAqBA,EAAO,GAE1D,EAGA,KAAAK,CAAMN,EAAaC,GACjBC,QAAQI,MAAMX,EAAQK,OAAcI,IAATH,EAAqBA,EAAO,GACzD,EAGA,IAAAM,CAAKC,GACHX,EAAOW,GAASC,KAAKC,KACvB,EAGA,OAAAC,CAAQH,EAAeI,GACrB,MAAMC,EAAQhB,EAAOW,GACrB,QAAcJ,IAAVS,EAAqB,CACvB,MAAMC,EAAWL,KAAKC,MAAQG,EAE9B,UADOhB,EAAOW,GACVZ,EAAc,CAChB,MAAMI,EAAMY,EAAS,GAAGA,KAAUE,MAAe,GAAGN,KAASM,MAC7DZ,QAAQC,IAAIR,EAAQK,EACtB,CACA,OAAOc,CACT,CACA,OAAO,CACT,EAGA,aAAAC,CAAcC,EAAqBC,GACjCC,KAAKnB,KAAK,qBAAqBiB,mBAA6BC,IAC9D,EAGA,gBAAAE,CAAiBH,GACfE,KAAKnB,KAAK,oBAAoBiB,IAChC,EAGA,aAAAI,CAAcJ,EAAqBK,GACjCH,KAAKnB,KAAK,oBAAoBiB,YAAsBK,KACpDH,KAAKX,KAAK,QAAQS,IACpB,EAGA,cAAAM,CAAeN,EAAqBK,GAClC,MAAMP,EAAWI,KAAKP,QAAQ,QAAQK,IAAe,SACrDE,KAAKnB,KAAK,qBAAqBiB,YAAsBK,cAAmBP,MAC1E,EAGA,cAAAS,CAAeP,EAAqBQ,EAAgBC,GAClDP,KAAKP,QAAQ,QAAQK,KACrBE,KAAKZ,MAAM,oBAAoBU,YAAsBQ,aAAkBC,IACzE,EAGA,cAAAC,CAAeV,GACbE,KAAKnB,KAAK,oBAAoBiB,IAChC,EAGA,mBAAAW,CAAoBX,EAAqBK,GACvC,MAAMP,EAAWI,KAAKP,QAAQ,QAAQK,IAAe,QACrDE,KAAKnB,KAAK,sBAAsBiB,YAAsBK,cAAmBP,MAC3E,EAGA,uBAAAc,CAAwBC,GACtBX,KAAKnB,KAAK,sBAAsB8B,IAClC,GC/FF,MAAMC,EAAuD,CAC3D,QAAS,CAEPC,MAAO,UACPC,SAAU,MACVC,MAAO,KAGPC,YAAa,YACbC,KAAM,KAGNC,QAAS,UACTC,mBAAoB,QACpBC,gBAAiB,gBAGjBC,qBAAsB,UACtBC,aAAc,OACdC,oBAAqB,SACrBC,aAAc,OACdC,aAAc,YACdC,eAAgB,WAGhBC,MAAO,OACPC,cAAe,cAGfC,cAAe,OACfC,cAAe,SACfC,mBAAoB,WACpBC,uBAAwB,WACxBC,eAAgB,KAChBC,eAAgB,KAGhBC,cAAe,eACfC,cAAe,aACfC,aAAc,cACdC,WAAY,gCACZC,WAAY,cACZC,gBAAiB,iBACjBC,gBAAiB,WACjBC,iBAAkB,eAClBC,kBAAmB,eACnBC,cAAe,WACfC,WAAY,aACZC,yBAA0B,cAG5BC,GAAM,CAEJlC,MAAO,eACPC,SAAU,WACVC,MAAO,QAGPC,YAAa,wBACbC,KAAM,OAGNC,QAAS,cACTC,mBAAoB,uBACpBC,gBAAiB,8CAGjBC,qBAAsB,kBACtBC,aAAc,iBACdC,oBAAqB,4BACrBC,aAAc,UACdC,aAAc,gBACdC,eAAgB,qBAGhBC,MAAO,aACPC,cAAe,kCAGfC,cAAe,UACfC,cAAe,uBACfC,mBAAoB,+BACpBC,uBAAwB,4BACxBC,eAAgB,SAChBC,eAAgB,SAGhBC,cAAe,4BACfC,cAAe,sCACfC,aAAc,uCACdC,WAAY,sEACZC,WAAY,8CACZC,gBAAiB,sCACjBC,gBAAiB,qBACjBC,iBAAkB,4CAClBC,kBAAmB,kCACnBC,cAAe,wBACfC,WAAY,mCACZC,yBAA0B,uCAK9B,IAAIE,EAAgB,QAwBd,SAAUC,EAAEC,EAAaC,GAE7B,IAAIC,GADSxC,EAAaoC,IAAkBpC,EAAa,UACzCsC,IAAQtC,EAAa,SAASsC,IAAQA,EAGtD,GAAIC,EACF,IAAK,MAAOE,EAAGC,KAAMC,OAAOC,QAAQL,GAClCC,EAAOA,EAAKK,QAAQ,IAAIJ,KAAMK,OAAOJ,IAIzC,OAAOF,CACT,CCjIA,IAAIO,EAAuC,KAQrC,SAAUC,EAAaC,GACvBF,IACFA,EAAcE,OAASA,EAE3B,UAGgBC,IACd,OAAOH,eAAAA,EAAeE,SAAU,EAClC,CAGM,SAAUE,EAASC,GACvB,IAAKL,EACH,MAAM,IAAIM,MAAM,cAIlB,MAAO,GAFQN,EAAc5D,cAAc0D,QAAQ,OAAQ,MACzCO,EAAKE,WAAW,KAAOF,EAAO,IAAIA,KAEtD,CAKA,SAASG,EAAahB,EAAyBD,EAAakB,GACtDA,UACiB,iBAAVA,GAAuC,KAAjBA,EAAMC,QACvClB,EAAOmB,IAAIpB,EAAKQ,OAAOU,IACzB,CAyEAG,eAAeC,EACbC,EACAC,EAAuB,CAAA,EACvBC,EAlHsB,KAoHtB,MAAMC,EAAa,IAAIC,gBACjBC,EAAQC,WAAW,IAAMH,EAAWI,QAASL,GAEnD,IAOE,aANuBM,MAAMR,EAAGlB,OAAA2B,OAAA3B,OAAA2B,OAAA,CAAA,EAC3BR,GAAO,CACVS,OAAQP,EAAWO,OACnBC,KAAM,OACNC,YAAa,YAGjB,CAAE,MAAOC,GACP,GAAIA,aAAeC,cAA6B,eAAbD,EAAIE,KACrC,MAAM,IAAIC,EAASxC,EAAE,iBAAkB,WAEzC,GAAIqC,aAAeI,WAAaJ,EAAI/E,QAAQoF,SAAS,mBACnD,MAAM,IAAIF,EAASxC,EAAE,cAAe,QAEtC,MAAM,IAAIwC,EAASxC,EAAE,iBAAkB,UACzC,SACE2C,aAAad,EACf,CACF,CAGM,MAAOW,UAAiBxB,MAE5B,WAAA4B,CAAYtF,EAAiBuF,GAC3BC,MAAMxF,GACNP,KAAKwF,KAAO,WACZxF,KAAK8F,KAAOA,CACd,EAIF,SAASE,EAAoB1F,GAC3B,OAAQA,GACN,KAAK,IAAK,OAAO2C,EAAE,cACnB,KAAK,IAAK,OAAOA,EAAE,mBACnB,KAAK,IAAK,OAAOA,EAAE,mBACnB,KAAK,IAAK,OAAOA,EAAE,oBACnB,KAAK,IAAK,OAAOA,EAAE,gBACnB,KAAK,IACL,KAAK,IAAK,OAAOA,EAAE,qBACnB,QAAS,MAAO,GAAGA,EAAE,oBAAoB3C,KAE7C,CAOOiE,eAAe0B,EAAY1F,GAChC,MAAMkE,EA1HR,SAAsBlE,GACpB,MAAM4C,EAAS,IAAI+C,gBASnB,OARA/C,EAAOmB,IAAI,UAAW/D,GACtB4C,EAAOmB,IAAI,SAAUX,EAAeE,QAGpCM,EAAahB,EAAQ,SAAUQ,EAAe7D,aAE9CqE,EAAahB,EAAQ,YAAaQ,EAAewC,QAE1CpC,EAAS,+BAA+BZ,EAAOiD,aACxD,CA+GcC,CAAa9F,GACzB3B,EAAOsB,cAAcyD,EAAe7D,YAAaS,EAAQJ,QAEzD,IACE,MAAMmG,QAAiB9B,EAAUC,GACjC,IAAK6B,EAASC,GAAI,CAChB,MAAMC,EAAWR,EAAoBM,EAAShG,QAE9C,MADA1B,EAAOyB,eAAesD,EAAe7D,YAAa4D,OAAO4C,EAAShG,QAASkG,GACrE,IAAIf,EAASe,EAAU,QAAQF,EAAShG,SAChD,CAEA,MAAM8C,QAAakD,EAASlD,OAE5B,OADAxE,EAAOwB,eAAeuD,EAAe7D,YAAasD,EAAKjD,QAChDiD,CACT,CAAE,MAAOkC,GACP,GAAIA,aAAeG,EAAU,MAAMH,EAEnC,MADA1G,EAAOyB,eAAesD,EAAe7D,YAAa,UAAW4D,OAAO4B,IAC9D,IAAIG,EAASxC,EAAE,iBAAkB,UACzC,CACF,CAOOsB,eAAekC,EACpBlG,EACAmG,EACAC,EACAC,EACAjG,EACAkG,SAEA,MAAMpC,EAAMoC,EA7Hd,SAA4BtG,EAAiBI,GAC3C,MAAMwC,EAAS,IAAI+C,gBASnB,OARA/C,EAAOmB,IAAI,UAAW/D,GACtB4C,EAAOmB,IAAI,SAAUX,EAAeE,QACpCV,EAAOmB,IAAI,kBAAmB,WAE9BH,EAAahB,EAAQ,SAAUQ,EAAe7D,aAC9CqE,EAAahB,EAAQ,YAAaQ,EAAewC,QACjDhC,EAAahB,EAAQ,aAAcxC,QAAAA,EAAcgD,EAAehD,YAEzDoD,EAAS,kCAAkCZ,EAAOiD,aAC3D,CAmHMU,CAAmBvG,EAASI,GA7IlC,SAAyBJ,EAAiBI,GACxC,MAAMwC,EAAS,IAAI+C,gBAQnB,OAPA/C,EAAOmB,IAAI,UAAW/D,GACtB4C,EAAOmB,IAAI,SAAUX,EAAeE,QAEpCM,EAAahB,EAAQ,SAAUQ,EAAe7D,aAC9CqE,EAAahB,EAAQ,YAAaQ,EAAewC,QACjDhC,EAAahB,EAAQ,aAAcxC,QAAAA,EAAcgD,EAAehD,YAEzDoD,EAAS,8BAA8BZ,EAAOiD,aACvD,CAoIMW,CAAgBxG,EAASI,GAC7B,IAAIqG,EAAY,GAEhBpI,EAAOsB,cAAcyD,EAAe7D,YAAaS,EAAQJ,QAEzD,IACE,MAAMmG,QAAiB9B,EAAUC,EAAK,CAAA,EAAIwC,KAE1C,IAAKX,EAASC,GAAI,CAChB,MAAMC,EAAWR,EAAoBM,EAAShG,QAG9C,OAFA1B,EAAOyB,eAAesD,EAAe7D,YAAa4D,OAAO4C,EAAShG,QAASkG,QAC3EI,EAAQ,IAAInB,EAASe,EAAU,QAAQF,EAAShG,UAElD,CAEA,MAAM4G,EAAsB,QAAbC,EAAAb,EAASc,YAAI,IAAAD,OAAA,EAAAA,EAAEE,YAC9B,IAAKH,EAEH,YADAN,EAAQ,IAAInB,EAASxC,EAAE,4BAA6B,uBAItD,MAAMqE,EAAU,IAAIC,YAAY,QAAS,CAAEC,QAAQ,IACnD,IAAIC,EAAS,GAEb,IACE,OAAa,CACX,MAAMC,KAAEA,EAAItD,MAAEA,SAAgB8C,EAAOS,OACrC,GAAID,EAAM,MAEVD,GAAUH,EAAQM,OAAOxD,EAAO,CAAEoD,QAAQ,IAC1C,MAAMK,EAAQJ,EAAOK,MAAM,MAC3BL,EAASI,EAAME,OAAS,GAExB,IAAK,MAAMC,KAAQH,EAAO,CACxB,MAAMI,EAAUD,EAAK3D,OACrB,GAAK4D,IAAWA,EAAQ/D,WAAW,KAEnC,GAAI+D,EAAQ/D,WAAW,SAAU,CAC/B,MAAMnF,EAAOkJ,EAAQC,UAAU,GAAG7D,OAC9BtF,IAAQiI,GAAajI,EAAM2H,EAAQ3H,GACzC,KAAO,IAAgB,WAAZkJ,EACT,MACUA,EAAQ/D,WAAW,WAAc+D,EAAQ/D,WAAW,QAAW+D,EAAQ/D,WAAW,YAC5F8C,GAAaiB,EACbvB,EAAQuB,GACV,CACF,CACF,CAEA,GAAIR,EAAOpD,OAAQ,CACjB,MAAM4D,EAAUR,EAAOpD,OACvB,GAAI4D,EAAQ/D,WAAW,SAAU,CAC/B,MAAMnF,EAAOkJ,EAAQC,UAAU,GAAG7D,OAC9BtF,IAAQiI,GAAajI,EAAM2H,EAAQ3H,GACzC,KAAuB,WAAZkJ,IACTjB,GAAaiB,EACbvB,EAAQuB,GAEZ,CACF,CAAE,MAAOE,GACP,KAAInB,EAAU7G,OAAS,GAGrB,MAAMgI,EAFNzB,EAAQ,OAASzD,EAAE,mBAIvB,SACEiE,EAAOkB,aACT,CAEAxJ,EAAO6B,oBAAoBkD,EAAe7D,YAAakH,EAAU7G,QACjEwG,GACF,CAAE,MAAOrB,GACHA,aAAeG,EACjBmB,EAAQtB,IAER1G,EAAOyB,eAAesD,EAAe7D,YAAa,UAAW4D,OAAO4B,IACpEsB,EAAQ,IAAInB,EAASxC,EAAE,iBAAkB,YAE7C,CACF,CAwCOsB,eAAe8D,EAAgB9H,EAAiBI,GACrD,MAAM8D,EAvOR,SAA4BlE,EAAiBI,GAC3C,MAAMwC,EAAS,IAAI+C,gBASnB,OARA/C,EAAOmB,IAAI,UAAW/D,GACtB4C,EAAOmB,IAAI,SAAUX,EAAeE,QACpCV,EAAOmB,IAAI,kBAAmB,WAE9BH,EAAahB,EAAQ,SAAUQ,EAAe7D,aAC9CqE,EAAahB,EAAQ,YAAaQ,EAAewC,QACjDhC,EAAahB,EAAQ,aAAcxC,QAAAA,EAAcgD,EAAehD,YAEzDoD,EAAS,iCAAiCZ,EAAOiD,aAC1D,CA4NckC,CAAmB/H,EAASI,GACxC,IACE,MAAM2F,QAAiB9B,EAAUC,GACjC,IAAK6B,EAASC,GAAI,MAAM,IAAId,EAASO,EAAoBM,EAAShG,QAAS,QAAQgG,EAAShG,UAC5F,MAAMiI,QAA2CjC,EAASiC,OAC1D,OAAIA,EAAKC,SAAWC,MAAMC,QAAQH,EAAKxJ,OACrCH,EAAOC,KAAK,gBAAgB0J,EAAKxJ,KAAKoB,UAC/BoI,EAAKxJ,MAEP,EACT,CAAE,MAAOuG,GAEP,OADA1G,EAAOQ,MAAM,WAAYkG,GAClB,EACT,CACF,CAoBOf,eAAeoE,EACpBC,EAAe,EACfC,EAAe,GACfC,EACAC,GAMA,IAAI/E,EAAO,2BAA2B4E,UAAaC,IAC/CC,IAAW9E,GAAQ,cAAcgF,mBAAmBF,MACpDC,IAAQ/E,GAAQ,WAAWgF,mBAAmBD,MAClD,MAAMtE,EAAMV,EAASC,GAErB,IACE,MAAMsC,QAAiB9B,EAAUC,GACjC,IAAK6B,EAASC,GAAI,MAAM,IAAId,EAASO,EAAoBM,EAAShG,QAAS,QAAQgG,EAAShG,UAC5F,MAAMiI,QAA8CjC,EAASiC,OAC7D,MAAO,CACLU,KAAMV,EAAKC,SAAWC,MAAMC,QAAQH,EAAKxJ,MAAQwJ,EAAKxJ,KAAO,GAC7DmK,MAAOX,EAAKW,OAAS,EACrBC,MAAOZ,EAAKY,OAAS,EAEzB,CAAE,MAAO7D,GAEP,OADA1G,EAAOQ,MAAM,WAAYkG,GAClB,CAAE2D,KAAM,GAAIC,MAAO,EAAGC,MAAO,EACtC,CACF,CAKO5E,eAAe6E,EAA0BC,GAI9C,MAAM5E,EAAMV,EAAS,iBAAiBsF,cACtC,IACE,MAAM/C,QAAiB9B,EAAUC,GACjC,IAAK6B,EAASC,GAAI,MAAM,IAAId,EAASO,EAAoBM,EAAShG,QAAS,QAAQgG,EAAShG,UAC5F,MAAMiI,QAAajC,EAASiC,OAC5B,MAAO,CACLe,SAAUf,EAAKC,SAAWC,MAAMC,QAAQH,EAAKxJ,MAAQwJ,EAAKxJ,KAAO,GACjEmK,MAAOX,EAAKW,OAAS,EAEzB,CAAE,MAAO5D,GAEP,OADA1G,EAAOQ,MAAM,WAAYkG,GAClB,CAAEgE,SAAU,GAAIJ,MAAO,EAChC,CACF,CAqCO3E,eAAegF,IACpB,IAAK5F,EAAe,MAAO,GAG3B,MAAM6F,EA+CR,SAA0B1J,EAAqBqG,GAC7C,IACE,OAAOsD,aAAaC,QAAQC,EAAiB7J,EAAaqG,KAAY,EACxE,CAAE,MAAAgB,GACA,MAAO,EACT,CACF,CArDuByC,CAAiBjG,EAAc7D,YAAa6D,EAAcwC,QAC/E,GAAIqD,EAGF,OAFA7F,EAAcE,OAAS2F,EACvB5K,EAAOC,KAAK,gBAAgB2K,KACrBA,EAIT,IACE,MAAMK,QAAelB,EAAsB,EAAG,EAAGhF,EAAcwC,OAAQxC,EAAc7D,aACrF,GAAI+J,EAAOZ,KAAK9I,OAAS,EAAG,CAE1B,MAAM2J,EAAaD,EAAOZ,KAAK,GACzBpF,EAASiG,EAAWT,gBAAkBS,EAAWjG,QAAU,GACjE,GAAIA,EAIF,OAHAF,EAAcE,OAASA,EACvBkG,EAAiBpG,EAAc7D,YAAa6D,EAAcwC,OAAQtC,GAClEjF,EAAOC,KAAK,kBAAkBgF,kBAAuBiG,EAAWE,gBACzDnG,CAEX,CACF,CAAE,MAAOyB,GACP1G,EAAOO,KAAK,yBAA0BmG,EACxC,CAGA,MAAM2E,EAQR,WACE,MAAMC,EAA2B,oBAAXC,QAA0BA,OAAOC,WACnDD,OAAOC,aAAalC,UAAU,EAAG,GACjCmC,KAAKH,SAAS9D,SAAS,IAAI8B,UAAU,EAAG,IAC5C,MAAO,OAAO3I,KAAKC,SAAS0K,GAC9B,CAboBI,GAIlB,OAHA3G,EAAcE,OAASoG,EACvBF,EAAiBpG,EAAc7D,YAAa6D,EAAcwC,OAAQ8D,GAClErL,EAAOC,KAAK,cAAcoL,KACnBA,CACT,CAWA,SAASN,EAAiB7J,EAAqBqG,GAC7C,MAAO,cAAcrG,IAAcqG,EAAS,IAAMA,EAAS,IAC7D,UAYgB4D,EAAiBjK,EAAqBqG,EAAiBtC,GACrE,IACMA,EACF4F,aAAac,QAAQZ,EAAiB7J,EAAaqG,GAAStC,GAE5D4F,aAAae,WAAWb,EAAiB7J,EAAaqG,GAE1D,CAAE,MAAAgB,GAEF,CACF,CC3gBA,IAAIsD,EAAwC,KAG5C,SAASC,EAAQC,GAEf,MAAMC,EAaR,SAAqBC,EAAaC,GAEhC,MAAMC,EAAQF,EAAIE,MAAM,uDACxB,IAAKA,EACH,OAAOF,EAET,MAAMG,EAAS1H,GAAc+G,KAAKY,IAAI,EAAGZ,KAAKa,IAAI,IAAK5H,IACjD6H,EAAIH,EAAMI,SAASL,EAAM,GAAI,IAAMD,GACnCO,EAAIL,EAAMI,SAASL,EAAM,GAAI,IAAMD,GACnCQ,EAAIN,EAAMI,SAASL,EAAM,GAAI,IAAMD,GACzC,MAAO,IAAIK,EAAE/E,SAAS,IAAImF,SAAS,EAAG,OAAOF,EAAEjF,SAAS,IAAImF,SAAS,EAAG,OAAOD,EAAElF,SAAS,IAAImF,SAAS,EAAG,MAC5G,CAxBiBC,CAAYb,EAAOc,cAAc,IAChD,MAAO,wBACYd,EAAOc,2CACDb,8JAKDD,EAAOe,cAEjC,CA6pBM,SAAUC,EAAahB,GAEvBiB,SAASC,cAAc,yBAI3BpB,EAAemB,SAASE,cAAc,SACtCrB,EAAasB,aAAa,eAAgB,IAC1CtB,EAAauB,YAppBf,SAAmBrB,GACjB,MAAO,qDAGLD,EAAQC,guaAmoBZ,CAa6BsB,CAAUtB,GACrCiB,SAASM,KAAKC,YAAY1B,GAC5B,UC/qBgB2B,IACd,MAAsB,oBAAXjC,QAA0BA,OAAOC,WACnCD,OAAOC,aAGT,uCAAuC3G,QAAQ,QAAU4I,IAC9D,MAAMlB,EAAqB,GAAhBd,KAAKH,SAAiB,EAEjC,OADgB,MAANmC,EAAYlB,EAAS,EAAJA,EAAW,GAC7B/E,SAAS,KAEtB,CAGM,SAAUkG,EAAWlJ,GACzB,MAAMmJ,EAA8B,CAClC,IAAK,QACL,IAAK,OACL,IAAK,OACL,IAAK,SACL,IAAK,UAEP,OAAOnJ,EAAKK,QAAQ,WAAa+I,GAAOD,EAAIC,IAAOA,EACrD,UA4BgBhN,IACd,OAAOD,KAAKC,KACd,CCtDM,SAAUiN,EAAe9B,EAAwB+B,GACrD,MAAMC,EAAWf,SAASE,cAAc,OACxCa,EAASC,GAAK,eACdD,EAASE,UAAY,+BAAkD,gBAApBlC,EAAOmC,SAA6B,OAAS,SAChGH,EAASZ,aAAa,QAASpB,EAAO9J,OACtC8L,EAASZ,aAAa,aAAcpB,EAAO9J,OAC3C8L,EAASZ,aAAa,OAAQ,UAC9BY,EAASZ,aAAa,WAAY,KAGlCY,EAASI,UAAYpC,EAAOqC,aAG5B,MAAMC,EDcF,SACJC,EACAC,GAEA,IAAIrI,EAA8C,KAClD,OAAO,YAA4BsI,GACnB,OAAVtI,GACFc,aAAad,GAEfA,EAAQC,WAAW,KACjBmI,EAAGG,MAAMrN,KAAMoN,GACftI,EAAQ,MACPqI,EACL,CACF,CC5ByBG,CAASZ,EAAS,KAWzC,OAVAC,EAASY,iBAAiB,QAASN,GAGnCN,EAASY,iBAAiB,UAAYC,IACtB,UAAVA,EAAEtK,KAA6B,MAAVsK,EAAEtK,MACzBsK,EAAEC,iBACFR,OAIGN,CACT,UAsQgBe,EAAiBC,EAAwBvK,EAAcwK,GACrE,MAAMC,EAAUjC,SAASE,cAAc,OACvC+B,EAAQhB,UAAY,wBAEpB,MAAMiB,EAASlC,SAASE,cAAc,OACtCgC,EAAOjB,UAAY,kBACnBiB,EAAO9B,YAAc5I,EAErB,MAAM/D,EAAOuM,SAASE,cAAc,OAQpC,OAPAzM,EAAKwN,UAAY,gBACjBxN,EAAK2M,YAAc+B,EAAWH,GAE9BC,EAAQ1B,YAAY2B,GACpBD,EAAQ1B,YAAY9M,GACpBsO,EAAUxB,YAAY0B,GAEfA,CACT,CAGM,SAAUG,EAAeL,EAAwBvK,EAAcwK,EAAmBK,GACtF,MAAMJ,EAAUjC,SAASE,cAAc,OACvC+B,EAAQhB,UAAY,sBAEpB,MAAMiB,EAASlC,SAASE,cAAc,OACtCgC,EAAOjB,UAAY,kBAEfoB,EACFH,EAAOf,UAAYkB,EAAS7K,GAE5B0K,EAAO9B,YAAc5I,EAGvB,MAAM/D,EAAOuM,SAASE,cAAc,OAQpC,OAPAzM,EAAKwN,UAAY,gBACjBxN,EAAK2M,YAAc+B,EAAWH,GAE9BC,EAAQ1B,YAAY2B,GACpBD,EAAQ1B,YAAY9M,GACpBsO,EAAUxB,YAAY0B,GAEfA,CACT,CAyBM,SAAUK,EAAcL,EAAsBM,GAElD,MAAMC,EAAWP,EAAQhC,cAAc,gBAGvC,GAFIuC,GAAUA,EAASC,UAElBF,GAA8B,IAAnBA,EAAQhO,OAAc,OAEtC,MAAMmO,EAAY1C,SAASE,cAAc,OACzCwC,EAAUzB,UAAY,qCAGtB,MAAM0B,EAAS3C,SAASE,cAAc,OACtCyC,EAAO1B,UAAY,sBAEnB,MAAM2B,EAAY5C,SAASE,cAAc,QACzC0C,EAAU3B,UAAY,qBACtB2B,EAAUxC,YAAc,MAAM/I,EAAE,eAAgB,CAAEwL,EAAGN,EAAQhO,WAE7D,MAAMuO,EAAQ9C,SAASE,cAAc,QACrC4C,EAAM7B,UAAY,qBAClB6B,EAAM1C,YAAc,IAEpBuC,EAAOpC,YAAYqC,GACnBD,EAAOpC,YAAYuC,GAGnBH,EAAOhB,iBAAiB,QAAS,KAC/Be,EAAUK,UAAUC,OAAO,4BAI7B,MAAMxH,EAAOwE,SAASE,cAAc,OACpC1E,EAAKyF,UAAY,oBAEjB,IAAK,MAAMgC,KAAOV,EAAS,CACzB,MAAMW,EAAOlD,SAASE,cAAc,OACpCgD,EAAKjC,UAAY,kBAEjB,MAAMrH,EAAOoG,SAASE,cAAc,OAIpC,GAHAtG,EAAKqH,UAAY,wBACjBrH,EAAKwG,YAAc6C,EAAIhO,OAASgO,EAAIE,YAAc,OAE9CF,EAAIG,QAAS,CACf,MAAMA,EAAUpD,SAASE,cAAc,OACvCkD,EAAQnC,UAAY,2BACpBmC,EAAQhD,YAAc6C,EAAIG,QAC1BF,EAAK3C,YAAY6C,EACnB,CAEA,MAAMC,EAAOrD,SAASE,cAAc,OACpCmD,EAAKpC,UAAY,wBACjB,MAAMqC,EAAsB,GACxBL,EAAIE,YAAYG,EAAUC,KAAKN,EAAIE,iBAChB7P,IAAnB2P,EAAIO,YAA0BF,EAAUC,KAAK,OAAON,EAAIO,mBAC1ClQ,IAAd2P,EAAIQ,OAAqBH,EAAUC,KAAK,QAAoB,IAAZN,EAAIQ,OAAaC,QAAQ,OAC7EL,EAAKjD,YAAckD,EAAUK,KAAK,OAElCT,EAAK3C,YAAY3G,GACjBsJ,EAAK3C,YAAY8C,GACjB7H,EAAK+E,YAAY2C,EACnB,CAEAR,EAAUnC,YAAYoC,GACtBD,EAAUnC,YAAY/E,GAGtB,MAAMoI,EAAS3B,EAAQhC,cAAc,kBACjC2D,EACF3B,EAAQ4B,aAAanB,EAAWkB,GAEhC3B,EAAQ1B,YAAYmC,EAExB,CA8GM,SAAUoB,EAAe/B,GAC7BA,EAAUgC,UAAYhC,EAAUiC,YAClC,CAGA,SAAS7B,EAAWH,GAClB,MAAMiC,EAAI,IAAItQ,KAAKqO,GAGnB,MAAO,GAFIlK,OAAOmM,EAAEC,YAAYvE,SAAS,EAAG,QACjC7H,OAAOmM,EAAEE,cAAcxE,SAAS,EAAG,MAEhD,CCniBA,SAASyE,EAAWlQ,GAClB,MAAO,eAAoBA,GAC7B,CAKM,SAAUmQ,EAAanQ,EAAqBwJ,GAChD,IAEE,IAAIrB,EAAUqB,EACVrB,EAAQ9H,OAfK,MAgBf8H,EAAUA,EAAQiI,MAfL,IAgBbtR,EAAOO,KAAK,0BAAqC8I,EAAQ9H,aAG3D,MAAMpB,EAAkB,CACtBuK,SAAUrB,EACVkI,UAAW5Q,KAAKC,OAElBiK,aAAac,QAAQyF,EAAWlQ,GAAcsQ,KAAKC,UAAUtR,GAC/D,CAAE,MAAOyO,GACHA,aAAavJ,OAAoB,uBAAXuJ,EAAEhI,KAC1B5G,EAAOQ,MAAM,wCAEbR,EAAOQ,MAAM,WAAYoO,EAE7B,CACF,CA0BM,SAAU8C,EAAcxQ,GAC5B,IACE2J,aAAae,WAAWwF,EAAWlQ,GACrC,CAAE,MAAO0N,GACP5O,EAAOO,KAAK,WAAYqO,EAC1B,CACF,CC9DA,MAAM+C,EAAoB,eAGpBC,EAAqB,gBAOrB,SAAUC,EAAerN,GAC7B,IAAKA,GAAwB,iBAATA,EAAmB,MAAO,GAG9C,MAAMsN,EAAuB,GAC7B,IAAIC,EAAYvN,EAGhBuN,EAAYA,EAAUlN,QAAQ,2BAA4B,CAACmN,EAAQC,EAAMC,KACvE,MAAMC,EAAML,EAAWvQ,OACjB6Q,EAAc1E,EAAWwE,EAAKG,WAC9BC,EAAYL,EAAO,oBAAoBvE,EAAWuE,MAAW,GAEnE,OADAH,EAAWvB,KAAK,uCAAuC+B,KAAaF,kBAC7D,GAAGT,IAAoBQ,QAIhC,MAAMI,EAAwB,GAC9BR,EAAYA,EAAUlN,QAAQ,eAAgB,CAACmN,EAAQE,KACrD,MAAMC,EAAMI,EAAYhR,OAExB,OADAgR,EAAYhC,KAAK,oCAAoC7C,EAAWwE,aACzD,GAAGN,IAAqBO,QAIjCJ,EAAYrE,EAAWqE,GAGvBA,EAAYS,EAAoBT,EAAWJ,EAAmBG,GAC9DC,EAAYS,EAAoBT,EAAWH,EAAoBW,GAG/D,MAAMtJ,EAAQ8I,EAAU7I,MAAM,MACxB+B,EAAmB,GACzB,IAAIwH,GAAS,EACTC,EAAW,GACXC,GAAe,EACfC,EAA4B,GAEhC,IAAK,IAAIC,EAAI,EAAGA,EAAI5J,EAAM1H,OAAQsR,IAAK,CACrC,MAAMzJ,EAAOH,EAAM4J,GAGnB,GAAIzJ,EAAKrC,SAAS4K,IAAsBvI,EAAKrC,SAAS,mCAAoC,CACxF+L,IACAC,IACAC,IACA/H,EAAOsF,KAAKnH,GACZ,QACF,CAGA,MAAM6J,EAAe7J,EAAK+C,MAAM,oBAChC,GAAI8G,EAAc,CAChBH,IACAC,IACAC,IACA,MAAME,EAAQD,EAAa,GAAG1R,OAC9B0J,EAAOsF,KAAK,KAAK2C,oBAAwBA,MAAUD,EAAa,QAAQC,MACxE,QACF,CAGA,MAAMC,EAAa/J,EAAK+C,MAAM,gBAC9B,GAAIgH,EAAY,CACdL,IACAC,IACKJ,IACHA,GAAe,EACf1H,EAAOsF,KAAK,2CAEdtF,EAAOsF,KAAK,MAAM6C,EAAaD,EAAW,WAC1C,QACF,CAAWR,GACTK,IAIF,MAAMK,EAAUjK,EAAK+C,MAAM,kBAC3B,GAAIkH,EAAS,CACXP,IACAE,IACKP,GAAuB,OAAbC,IACbK,IACAN,GAAS,EACTC,EAAW,KACXzH,EAAOsF,KAAK,2BAEdtF,EAAOsF,KAAK,OAAO6C,EAAaC,EAAQ,YACxC,QACF,CAGA,MAAMC,EAAUlK,EAAK+C,MAAM,iBACvBmH,GACFR,IACAE,IACKP,GAAuB,OAAbC,IACbK,IACAN,GAAS,EACTC,EAAW,KACXzH,EAAOsF,KAAK,2BAEdtF,EAAOsF,KAAK,OAAO6C,EAAaE,EAAQ,aAKtB,KAAhBlK,EAAK3D,OAOL,yBAAyB8N,KAAKnK,EAAK3D,SACrCqN,IACAC,IACAC,IACA/H,EAAOsF,KAAK,4BAKdwC,IACAC,IACAJ,EAAgBrC,KAAK6C,EAAahK,MAjBhC0J,IACAC,IAiBJ,CAMA,OAJAD,IACAC,IACAC,IAEO/H,EAAO0F,KAAK,MAKnB,SAASyC,EAAa5O,GAepB,OALAA,GAFAA,GAFAA,GADAA,GAFAA,GADAA,EAAOA,EAAKK,QAAQ,iBAAkB,wBAC1BA,QAAQ,aAAc,wBAEtBA,QAAQ,aAAc,gBACtBA,QAAQ,wBAAyB,gBAEjCA,QAAQ,aAAc,kBAEtBA,QAAQ,2BAA4B,CAAC2O,EAAIC,EAAU5N,IAGtD,gCADS,gBAAgB0N,KAAK1N,GAAOA,EAAM,kDAC2C4N,QAGjG,CAGA,SAASX,IACHF,EAAgBrR,OAAS,IAC3B0J,EAAOsF,KAAK,uBAAuBqC,EAAgBjC,KAAK,eACxDiC,EAAkB,GAEtB,CAGA,SAASG,IACHN,IACFxH,EAAOsF,KAAkB,OAAbmC,EAAoB,QAAU,SAC1CD,GAAS,EACTC,EAAW,GAEf,CAGA,SAASM,IACHL,IACF1H,EAAOsF,KAAK,iBACZoC,GAAe,EAEnB,CACF,CAGA,SAASH,EAAoBhO,EAAc1D,EAAgB4S,GACzD,OAAOlP,EAAKK,QAAQ,IAAI8O,OAAmB7S,EAOhC+D,QAAQ,sBAAuB,QAPW,WAAc,KAAM,CAAC2O,EAAIrB,IACrEuB,EAAalH,SAAS2F,KAAS,GAE1C,CCvKA,IAaIyB,EAbA7H,EAAgC,KAChCrB,EAA0B,GAC1BmJ,EAAwC,KACxCC,EAAsC,KACtCC,EAA8B,KAC9BC,EAA+B,KAC/BC,EAA2C,KAC3CC,EAAmC,KACnCC,EAA4C,KAC5CC,EAAqC,KACrCC,GAAY,EAMZpM,IAAS,EAKP,SAAUqM,GACdC,EACAC,GAWAzI,EAASwI,EACTV,EAAoBW,EAAIX,kBACxBC,EAAUU,EAAIV,QACdC,EAAUS,EAAIT,QACdC,EAAWQ,EAAIR,SACfC,EAAiBO,EAAIP,eACrBC,EAAeM,EAAIN,aACnBC,EAAgBK,EAAIC,YACpBL,EAAgBI,EAAIE,YAGpBd,EAAoBW,EAAIxS,WACxBkG,KAAWsM,EAAIxS,cAAgBwS,EAAII,mBAmErC,WACE,IAAKb,IAAYC,EAAS,OAE1BA,EAAQpF,iBAAiB,QAAS,IAAMiG,MAExCd,EAAQnF,iBAAiB,UAAYC,IACrB,UAAVA,EAAEtK,KAAoBsK,EAAEiG,WAC1BjG,EAAEC,iBACF+F,QAIJd,EAAQnF,iBAAiB,QAAS,IAAMmG,MAEpCd,GACFA,EAASrF,iBAAiB,QAAS,IAmNvC,WACE,IAAK5C,EAAQ,OACb,IAAKgJ,QAAQ1Q,EAAE,kBAAmB,OAGlC,GADAqG,EAAW,GACPmJ,EAAmB,CACRA,EAAkBmB,iBAAiB,0BAC3CC,QAAQC,GAAMA,EAAGzF,SACxB,CACIuE,IAAUA,EAASmB,MAAMC,QAAU,QACvC1D,EAAc3F,EAAO7K,aAGrB,MAAMmU,EASR,WACE,MAAM/J,EAA2B,oBAAXC,QAA0BA,OAAOC,WACnDD,OAAOC,aAAalC,UAAU,EAAG,GACjCmC,KAAKH,SAAS9D,SAAS,IAAI8B,UAAU,EAAG,IAC5C,MAAO,OAAO3I,KAAKC,SAAS0K,GAC9B,CAdgBgK,GACdtQ,EAAaqQ,GACblK,EAAiBY,EAAO7K,YAAa6K,EAAOxE,OAAQ8N,GAEpDrV,EAAO4B,eAAemK,EAAO7K,aAC7BlB,EAAOC,KAAK,YAAYoV,IAC1B,CAtO6CE,GAE7C,CAjFEC,GAGIjB,EAAII,oBAAsBV,GA6OhCtO,iBACE,IAAKsO,EAAgB,OACrB,IACE,MAAMwB,QN1BH9P,iBACL,MAAME,EAAMV,EAAS,kBACrB,IACE,MAAMuC,QAAiB9B,EAAUC,GACjC,IAAK6B,EAASC,GAAI,MAAM,IAAId,EAASO,EAAoBM,EAAShG,QAAS,QAAQgG,EAAShG,UAC5F,MAAMiI,QAA0CjC,EAASiC,OACzD,OAAIA,EAAKC,SAAWC,MAAMC,QAAQH,EAAKxJ,OACrCH,EAAOC,KAAK,iBAAiB0J,EAAKxJ,KAAKoB,UAChCoI,EAAKxJ,MAEP,EACT,CAAE,MAAOuG,GAGP,OAFIA,aAAeG,EAAU7G,EAAOQ,MAAM,YAAYkG,EAAI/E,WACrD3B,EAAOQ,MAAM,UAAWkG,GACtB,EACT,CACF,CMUuBgP,GACnB,GAAoB,IAAhBD,EAAKlU,OAAc,OACvB0S,EAAe9F,UAAY,oBAAoB9J,EAAE,2BAEjD,MAAMsR,EAAa,CAACC,EAAoBC,EAAiB,KACvD,IAAK,MAAMC,KAAQF,EAAO,CACxB,MAAMG,EAAS/I,SAASE,cAAc,UACtC6I,EAAOvQ,MAAQV,OAAOgR,EAAK9H,IAC3B+H,EAAO3I,YAAc,GAAG,IAAI4I,OAAOH,KAAUC,EAAKlP,YACxBtG,IAAtBsT,GAAmC9O,OAAOgR,EAAK9H,MAAQlJ,OAAO8O,KAAoBmC,EAAOE,UAAW,GACxGhC,EAAgB1G,YAAYwI,GACxBD,EAAKI,UAAYJ,EAAKI,SAAS3U,OAAS,GAAGoU,EAAWG,EAAKI,SAAUL,EAAS,EACpF,GAEFF,EAAWF,GACXzV,EAAOC,KAAK,mBAAmBwV,EAAKlU,SACtC,CAAE,MAAOmF,GACP1G,EAAOQ,MAAM6D,EAAE,uBAAwBqC,EACzC,CACF,CAlQIyP,EAEJ,CAMOxQ,eAAeyQ,KACpB,GAAKrK,GAAW8H,UAGVlJ,UAmBRhF,iBACE,IAAKoG,IAAW8H,EAAmB,OAEnC,MAAM5O,EAASC,IACf,IAAKD,EAAQ,OAEb,IACE,MAAMgG,QAAeT,EAA0BvF,GAC3CgG,EAAOP,SAASnJ,OAAS,IAE3BmJ,EAAWO,EAAOP,SAASiD,IAAI,CAACzN,EAAKiS,KAAG,CACtCnE,GAAIR,IACJ6I,KAA0B,SAApBnW,EAAIoW,YAAyB,OAAS,KAC5CC,QAASrW,EAAIqW,QACbvH,UAAW,IAAIrO,KAAKT,EAAIsW,YAAYC,aAGtCC,KACA1W,EAAOC,KAAK,SAASyK,EAASnJ,gBAG9B8P,EAAatF,EAAO7K,YAAawJ,GAErC,CAAE,MAAOhE,GACP1G,EAAOO,KAAK,cAAemG,EAC7B,CACF,CA1CQiQ,GAGkB,IAApBjM,EAASnJ,QAAc,CACzB,MAAMqV,EFnEJ,SAAuB1V,GAC3B,IACE,MAAM2V,EAAMhM,aAAaC,QAAQsG,EAAWlQ,IAC5C,IAAK2V,EACH,MAAO,GAET,MAAM1W,EAAkBqR,KAAKsF,MAAMD,GACnC,OAAK1W,GAAS0J,MAAMC,QAAQ3J,EAAKuK,WAGjC1K,EAAOC,KAAK,sBAAsBiB,WAAqBf,EAAKuK,SAASnJ,UAC9DpB,EAAKuK,UAHH,EAIX,CAAE,MAAOkE,GAEP,OADA5O,EAAOO,KAAK,WAAYqO,GACjB,EACT,CACF,CEmDmBmI,CAAahL,EAAO7K,aAC/B0V,EAAOrV,OAAS,IAClBmJ,EAAWkM,EACXF,KACA1W,EAAOC,KAAK,WAAW2W,EAAOrV,cAElC,CACF,CAsDA,SAASuT,KACP,IAAKf,IAAYD,EAAS,OACVA,EAAQtO,MAAMC,OAAOlE,OAAS,IAC9B8S,EACdN,EAAQiD,gBAAgB,YAExBjD,EAAQ5G,aAAa,WAAY,OAErC,CAGAxH,eAAeiP,KACb,IAAKd,IAAY/H,GAAUsI,EAAW,OAEtC,MAAM7P,EAAOsP,EAAQtO,MAAMC,OAC3B,GAAa,KAATjB,EAAa,OAEjBsP,EAAQtO,MAAQ,GAChBsP,KACAhB,EAAQqB,MAAM8B,OAAS,OAEvB5C,GAAY,EACZS,KAGK/I,EAAO9G,cACJ0F,IAIR,MAAMuM,EAAgBtW,IAClBiT,GAAmB/E,EAAiB+E,EAAmBrP,EAAM0S,GACjE,MAAMC,EAAuB,CAAEnJ,GAAIR,IAAQ6I,KAAM,OAAQE,QAAS/R,EAAMwK,UAAWkI,GACnFxM,EAAS6F,KAAK4G,GAEVnD,GAAYtJ,EAASnJ,OAAS,IAAGyS,EAASmB,MAAMC,QAAU,eAC1DvB,GAAmB/C,EAAe+C,GAGlCM,GAAeA,IACfN,GAAmB/C,EAAe+C,GAGtC,IACE,IAAIuD,EACJ,MAAMC,EAAczW,IACd0W,EAAerP,UAAiC3H,IAAtBsT,QAAyDtT,IAAtByL,EAAOhK,YAGxEqV,EADErL,EAAOwL,gBAyCf5R,eAAiCnB,EAAc6S,EAAqBC,GAClE,OAAO,IAAIE,QAAQ,CAACC,EAASC,KAC3B,IAAIC,EAA+B,KAC/BC,EAAc,GACdC,GAAgB,EAEpBhQ,EACErD,EACCsT,IAEC,GADAF,GAAeE,GACVD,GAAiBhE,EAAmB,CACnCO,GAAeA,IACnB,MAAMlF,OAAEA,GHuEZ,SAA8BH,EAAwBC,GAC1D,MAAMC,EAAUjC,SAASE,cAAc,OACvC+B,EAAQhB,UAAY,sBAEpB,MAAMiB,EAASlC,SAASE,cAAc,OACtCgC,EAAOjB,UAAY,kBACnBiB,EAAOf,UAAY,GAEnB,MAAM1N,EAAOuM,SAASE,cAAc,OAQpC,OAPAzM,EAAKwN,UAAY,gBACjBxN,EAAK2M,YAAc+B,EAAWH,GAE9BC,EAAQ1B,YAAY2B,GACpBD,EAAQ1B,YAAY9M,GACpBsO,EAAUxB,YAAY0B,GAEf,CAAEA,UAASC,SACpB,CGxF6B6I,CAAoBlE,EAAmBwD,GAC1DM,EAAWzI,EACX2I,GAAgB,CAClB,CACIF,IAAUA,EAASvK,YAAcwK,GACjC/D,GAAmB/C,EAAe+C,IAExC,KACOgE,GAAiC,KAAhBD,GAIlBD,GAAYC,IAAaD,EAASxJ,UAAY0D,EAAe+F,IACjEH,EAAQG,IAJNvQ,EAAY7C,GAAMwT,KAAKP,GAASQ,MAAMP,IAMzClX,IACKoX,EAAYrW,OAAS,GACnBoW,IAAUA,EAASxJ,UAAY0D,EAAe+F,EAAc,OAASvT,EAAE,wBAC3EoT,EAAQG,IAERF,EAAOlX,IAGXoT,EACA0D,IAGN,CA/EwBY,CAAkB1T,EAAM6S,EAAaC,SAErCjQ,EAAY7C,GAG5B4P,GAAeA,KAEdrI,EAAOwL,WAAa1D,GACvBzE,EAAeyE,EAAmBuD,EAAWC,EAAaxF,GAE5D,MAAMsG,EAAqB,CAAEnK,GAAIR,IAAQ6I,KAAM,KAAME,QAASa,EAAWpI,UAAWqI,GACpF3M,EAAS6F,KAAK4H,GAEd9G,EAAatF,EAAO7K,YAAawJ,GAC7BmJ,GAAmB/C,EAAe+C,GAGlCyD,GAiER3R,eAAqChE,EAAiBwW,GACpD,IACE,MAAM5I,QAAgB9F,EAAgB9H,EAASiS,GAC/C,GAAIrE,EAAQhO,OAAS,EAAG,CACtB,MAAM6W,EAA0B7I,EAAQ5B,IAAI0K,YAAK,MAAA,CAC/CC,WAAYD,EAAEC,YAAc,GAC5BrW,MAAOoW,EAAEpW,OAAS,GAClBkO,WAAYkI,EAAElI,YAAc,GAC5BK,mBAAYjI,EAAA8P,EAAE7H,0BAAc,EAC5BC,cAAO8H,EAAAF,EAAE5H,qBAAS,EAClBL,QAASiI,EAAEjI,SAAW,MAGxB,GADA+H,EAAM5I,QAAU6I,EACZvE,EAAmB,CACrB,MAAM2E,EAAY3E,EAAkB5G,cAAc,6BAC9CuL,GAAWlJ,EAAckJ,EAA0BJ,EACzD,CACIrM,GAAQsF,EAAatF,EAAO7K,YAAawJ,EAC/C,CACF,CAAE,MAAOhE,GACP1G,EAAOO,KAAK,WAAYmG,EAC1B,CACF,CAvFsB+R,CAAsBjU,EAAM2T,EAChD,CAAE,MAAOzR,GACH0N,GAAeA,IAEnB,MAAMsE,EAAShS,aAAeG,EAAWH,EAAI/E,QAAU0C,EAAE,cACzD,GAAIwP,EAAmB,CACrB,MAAM8E,EAAc3L,SAASE,cAAc,OAC3CyL,EAAY1K,UAAY,sBACxB,MAAMiB,EAASlC,SAASE,cAAc,OACtCgC,EAAOjB,UAAY,kBACnBiB,EAAOiG,MAAMyD,MAAQ,UACrB1J,EAAO9B,YAAc,KAAKsL,IAC1BC,EAAYpL,YAAY2B,GACxB2E,EAAkBtG,YAAYoL,EAChC,CACA3Y,EAAOQ,MAAM,oBAAoBuL,EAAO7K,cAAewF,EACzD,SACE2N,GAAY,EACZS,IACF,CACF,CA+FA,SAAS4B,KACP,IAAK7C,EAAmB,OAExB,MAAMgF,EAAiBhF,EAAkB5G,cAAc,sBAC1C4G,EAAkBmB,iBAAiB,0BAC3CC,QAAQC,GAAMA,EAAGzF,UAEtB,IAAK,MAAMvP,KAAOwK,EAChB,GAAiB,SAAbxK,EAAImW,KACNvH,EAAiB+E,EAAmB3T,EAAIqW,QAASrW,EAAI8O,eAChD,CACL,MAAMC,EAAUG,EAAeyE,EAAmB3T,EAAIqW,QAASrW,EAAI8O,UAAW6C,GAC1E3R,EAAIqP,SAAWrP,EAAIqP,QAAQhO,OAAS,GAAG+N,EAAcL,EAAS/O,EAAIqP,QACxE,CAGFuB,EAAe+C,GACXG,GAAYtJ,EAASnJ,OAAS,IAAGyS,EAASmB,MAAMC,QAAU,eAE1DyD,IAAmBhF,EAAkBiF,SAASD,IAChDhF,EAAkBtG,YAAYsL,EAElC,CA0COlT,eAAeoT,KACpB,IAAK7E,IAAiBnI,EAAQ,OAE9B,MAAMiN,EAAS9E,EAAajH,cAAc,qBAC1C,GAAK+L,EAAL,CAEAA,EAAO7K,UAAY,uDAEnB,IACE,MAAMlD,QAAelB,EAAsB,EAAG,GAAIgC,EAAOxE,OAAQwE,EAAO7K,cH2BtE,SACJ8X,EACAC,EACAC,EACAC,EACAC,EACAC,GAKA,GAFAL,EAAO7K,UAAY,GAEE,IAAjB8K,EAAM1X,OAAc,CACtB,MAAM+X,EAAQtM,SAASE,cAAc,OAOrC,OANAoM,EAAMrL,UAAY,2BAClBqL,EAAMnL,UAAY,2EAEI9J,EAAE,oCAExB2U,EAAOzL,YAAY+L,EAErB,CAEA,IAAK,MAAMpJ,KAAQ+I,EAAO,CACxB,MAAM/D,EAAKlI,SAASE,cAAc,OAClCgI,EAAGjH,UAAY,mBAEf,MAAMsL,EAASrJ,EAAKjL,QAAUiL,EAAKlC,GAC/BqL,GAAgBE,IAAWF,GAC7BnE,EAAGnF,UAAUyJ,IAAI,4BAGnB,MAAMvZ,EAAO+M,SAASE,cAAc,OACpCjN,EAAKgO,UAAY,yBAEjB,MAAMwL,EAAOzM,SAASE,cAAc,OACpCuM,EAAKxL,UAAY,uBAEbiC,EAAKwJ,mBACPD,EAAKrM,YAAc8C,EAAKwJ,mBAAmBnY,OAAS,GAChD2O,EAAKwJ,mBAAmBpQ,UAAU,EAAG,IAAM,MAC3C4G,EAAKwJ,mBAETD,EAAKrM,YAAcmM,EAGrB,MAAMI,EAAS3M,SAASE,cAAc,OACtCyM,EAAO1L,UAAY,yBACnB,MAAMqC,EAAsB,QACFhQ,IAAtB4P,EAAK9E,cAA4BkF,EAAUC,KAAK,GAAGL,EAAK9E,oBACxD8E,EAAK0J,gBAAiBtJ,EAAUC,KAAKL,EAAK0J,iBACrC1J,EAAK2J,WAAWvJ,EAAUC,KAAKL,EAAK2J,WAC7CF,EAAOvM,YAAckD,EAAUK,KAAK,OAEpC1Q,EAAKsN,YAAYkM,GACjBxZ,EAAKsN,YAAYoM,GAEjB,MAAMG,EAAY9M,SAASE,cAAc,OACzC4M,EAAU7L,UAAY,4BAGtB,MAAM8L,EAAY/M,SAASE,cAAc,UACzC6M,EAAU9L,UAAY,gDACtB8L,EAAU5M,aAAa,QAAS9I,EAAE,mBAClC0V,EAAU5L,UAAY,8TACtB4L,EAAUpL,iBAAiB,QAAUC,IACnCA,EAAEoL,kBACFb,EAASjJ,EAAKlC,MAIhB,MAAMiM,EAAYjN,SAASE,cAAc,UACzC+M,EAAUhM,UAAY,gDACtBgM,EAAU9M,aAAa,QAAS9I,EAAE,mBAClC4V,EAAU9L,UAAY,yTACtB8L,EAAUtL,iBAAiB,QAAUC,IACnCA,EAAEoL,kBACFZ,EAASlJ,EAAKlC,MAGhB8L,EAAUvM,YAAYwM,GACtBD,EAAUvM,YAAY0M,GAEtB/E,EAAG3H,YAAYtN,GACfiV,EAAG3H,YAAYuM,GAGf5E,EAAGvG,iBAAiB,QAAS,KAC3BuK,EAASK,KAGXP,EAAOzL,YAAY2H,EACrB,CACF,CG7GIgF,CACElB,EAV+B/N,EAAOZ,KAAKsD,IAAIF,IAAC,CAChDO,GAAIP,EAAEhD,gBAAkB,GACxBxF,OAAQwI,EAAEhD,gBAAkB,GAC5BW,aAAcqC,EAAErC,aAChBwO,gBAAiBnM,EAAEmM,gBACnBF,mBAAoBjM,EAAEiM,mBACtBG,UAAWpM,EAAE0M,kBAAoB1M,EAAEoM,aAOlCpP,KAmCA9E,eAAoC8E,GACzC,IAAKsB,IAAW8H,EAAmB,OAEnC7T,EAAOC,KAAK,wBAAwBwK,KAGpCzF,EAAayF,GACbU,EAAiBY,EAAO7K,YAAa6K,EAAOxE,OAAQkD,GAGhDyJ,GACFA,EAAanE,UAAUyJ,IAAI,6BAI7B9O,EAAW,GACEmJ,EAAkBmB,iBAAiB,0BAC3CC,QAAQC,GAAMA,EAAGzF,UAGtB,IACE,MAAMxE,QAAeT,EAA0BC,GAC3CQ,EAAOP,SAASnJ,OAAS,IAC3BmJ,EAAWO,EAAOP,SAASiD,IAAKzN,IAAG,CACjC8N,GAAIR,IACJ6I,KAA0B,SAApBnW,EAAIoW,YAAyB,OAAS,KAC5CC,QAASrW,EAAIqW,QACbvH,UAAW,IAAIrO,KAAKT,EAAIsW,YAAYC,aAGtCC,KACA1W,EAAOC,KAAK,QAAQwK,OAAoBC,EAASnJ,cAGjD8P,EAAatF,EAAO7K,YAAawJ,GAErC,CAAE,MAAOhE,GACP1G,EAAOO,KAAK,2BAA2BkK,IAAkB/D,EAC3D,CAGIsN,GAAYtJ,EAASnJ,OAAS,IAChCyS,EAASmB,MAAMC,QAAU,cAE7B,CA9EQgF,CAAqB3P,IAGtBuD,IAAiBqM,OAAOC,KNEtBnV,EAAS,iBMF2C6I,YAAK,WAE5DrI,MAAOqI,IACL,IAAK+G,QAAQ1Q,EAAE,2BAA4B,OAE3C,SNrBDsB,eAAkC8E,GACvC,MAAM5E,EAAMV,EAAS,iBAAiBsF,KACtC,IACE,MAAM/C,QAAiB9B,EAAUC,EAAK,CAAE0U,OAAQ,WAChD,IAAK7S,EAASC,GAAI,MAAM,IAAId,EAASO,EAAoBM,EAAShG,QAAS,QAAQgG,EAAShG,UAC5F,MAAMiI,QAA0BjC,EAASiC,OAEzC,OADA3J,EAAOC,KAAK,WAAWwK,aAA0Bd,EAAKC,WAC/CD,EAAKC,UAAW,CACzB,CAAE,MAAOlD,GAEP,OADA1G,EAAOQ,MAAM,SAAUkG,IAChB,CACT,CACF,CMQyB8T,CAAmBxM,GAC5B,CAEN,GAAIA,IAAO9I,IAAa,CAEtB,GADAwF,EAAW,GACPmJ,EAAmB,CACRA,EAAkBmB,iBAAiB,0BAC3CC,QAAQC,GAAMA,EAAGzF,SACxB,CACIuE,IAAUA,EAASmB,MAAMC,QAAU,OACzC,CACA2D,IACF,GAGF7T,IAEJ,CAAE,MAAOwB,GACP1G,EAAOQ,MAAM6D,EAAE,sBAAuBqC,GACtCsS,EAAO7K,UAAY,gGAAgG9J,EAAE,mCACvH,CA/Ca,CAgDf,CChcA,IAAI0H,GAAgC,KAChC0O,IAAgB,EAChBC,GAAiC,KACjCC,GAA+B,KAC/B9G,GAAwC,KACxCC,GAAsC,KACtCC,GAA8B,KAC9BC,GAA+B,KAC/BC,GAA2C,KAC3CC,GAAmC,KACnCC,GAA4C,KAC5CC,GAAqC,KACrCwG,GAAmC,KA2GvC,SAASN,KACFK,IACLA,GAAS5K,UAAUN,OAAO,qBAC5B,CAEA,SAAStN,KACFwY,IACLA,GAAS5K,UAAUyJ,IAAI,qBACzB,CAEA,SAASxJ,KACF2K,KACDA,GAAS5K,UAAU+I,SAAS,uBAC9BwB,KACAnU,WAAW,KAAY2N,IAASA,GAAQ+G,SAAY,MAEpD1Y,KAEJ,CAUA,MAAM2Y,GAAiC,CACrCC,KAnIF,SAAcC,GACZ,GAAIP,GAEF,YADAza,EAAOO,KAAK,kCAKd,MAAM0a,ECzBF,SAAsBpE,mBAE1B,IAAKA,EAAI3V,aAA2C,iBAApB2V,EAAI3V,aAAuD,iBAApB2V,EAAI3V,aAC1C,iBAApB2V,EAAI3V,aAAuD,KAA3B2V,EAAI3V,YAAYuE,OAE3D,OADAzF,EAAOQ,MAAM,yIACN,KAIT,IAAKqW,EAAI1V,eAA8C,iBAAtB0V,EAAI1V,eAA2D,KAA7B0V,EAAI1V,cAAcsE,OAEnF,OADAzF,EAAOQ,MAAM,sHACN,KAIT,IACE,IAAI0a,IAAIrE,EAAI1V,cACd,CAAE,MAAAga,GAEA,OADAnb,EAAOQ,MAAM,8BAA8BqW,EAAI1V,oDACxC,IACT,CAGA,MAGM4K,EAAyB,CAC7B7K,YAJqB4D,OAAO+R,EAAI3V,aAAauE,OAK7CtE,cAAe0V,EAAI1V,cAAc0D,QAAQ,OAAQ,IACjD0C,OAAQsP,EAAItP,OACZxF,WAAY8U,EAAI9U,WAChB4S,2BAAoBpM,EAAAsO,EAAIlC,mCACxB1S,MAAO4U,EAAI5U,OAAS,UACpB6K,cAAOyL,EAAA1B,EAAI/J,qBAAS,IACpBoB,SAA2B,gBAAjB2I,EAAI3I,SAA6B,cAAgB,eAC3DrB,aAAcgK,EAAIhK,cAAgB,UAClCuB,aAAcyI,EAAIzI,cA5CQ,sTA6C1BgN,kBAAWC,EAAAxE,EAAIuE,0BACfE,uBAAgBC,EAAA1E,EAAIyE,+BACpB/D,kBAAWiE,EAAA3E,EAAIU,0BACfkE,OAAQ5E,EAAI4E,QAAU,QACtBC,cAAOC,EAAA9E,EAAI6E,sBACXzW,OAAQ,IAIV,OADAjF,EAAOC,KAAK,+BAA+B8L,EAAO7K,kCAAkC6K,EAAOxE,QAAU,yBAAyBwE,EAAO5K,iBAC9H4K,CACT,CDtBiB6P,CAAYZ,GAC3B,IAAKC,EAAQ,OTnCT,IAAmBY,ESoCvB9P,GAASkP,ERkEL,SAAoBQ,GACxB,GAAIzZ,EAAayZ,GACfrX,EAAgBqX,MACX,CAEL,MAAM3a,EAAS2a,EAAOvS,MAAM,KAAK,GAC3B4S,EAAUnX,OAAOoX,KAAK/Z,GAAcga,KAAKvX,GAAKA,EAAEa,WAAWxE,IAC7Dgb,IACF1X,EAAgB0X,EAGpB,CACF,CQ3EEG,CAAUlQ,GAAO0P,QTvCMI,ES0Cd9P,GAAO2P,MTzChB5b,EAAe+b,EEMX,SAAuB9P,GAC3BhH,EAAgBgH,CAClB,COoCEmQ,CAAanQ,IAGbgB,EAAahB,IAGb2O,GAAa7M,EAAe9B,GAAQiE,IACpChD,SAASxE,KAAK+E,YAAYmN,IAG1B,MAAMlG,EJxBF,SAA2BzI,GAY/B,MAAM4O,EAAW3N,SAASE,cAAc,OACxCyN,EAAS3M,GAAK,aACd2M,EAAS1M,UAAY,mCAAuD,gBAApBlC,EAAOmC,SAA6B,OAAS,6BAGrG,MAAMyB,EAAS3C,SAASE,cAAc,OACtCyC,EAAO1B,UAAY,aAEnB,MAAMkO,EAAUnP,SAASE,cAAc,QACvCiP,EAAQlO,UAAY,oBACpBkO,EAAQ/O,YAAcrB,EAAO9J,MAE7B,MAAMma,EAAUpP,SAASE,cAAc,OACvCkP,EAAQnO,UAAY,sBAGpB,MAAMoO,EAAarP,SAASE,cAAc,UAC1CmP,EAAWpO,UAAY,kBACvBoO,EAAWlP,aAAa,QAAS9I,EAAE,kBACnCgY,EAAWlO,UAAY,mQAGvB,MAAMmO,EAActP,SAASE,cAAc,UAC3CoP,EAAYrO,UAAY,4CACxBqO,EAAYnP,aAAa,QAAS9I,EAAE,aACpCiY,EAAYnO,UAAY,oOACxBmO,EAAY3N,iBAAiB,QAAS,KACpCgM,EAAS5K,UAAUyJ,IAAI,wBAIzB,MAAM+C,EAAWvP,SAASE,cAAc,UACxCqP,EAAStO,UAAY,yCACrBsO,EAASpP,aAAa,QAAS9I,EAAE,UACjCkY,EAASpO,UAAY,wQACrBoO,EAAS5N,iBAAiB,QAAS,KACjCgM,EAAS5K,UAAUyJ,IAAI,wBAGzB4C,EAAQ7O,YAAY8O,GACpBD,EAAQ7O,YAAY+O,GACpBF,EAAQ7O,YAAYgP,GACpB5M,EAAOpC,YAAY4O,GACnBxM,EAAOpC,YAAY6O,GAGnB,MAAMvI,EAAoB7G,SAASE,cAAc,OACjD2G,EAAkB7F,GAAK,eACvB6F,EAAkB5F,UAAY,eAG9B,MAAMiG,EAAelH,SAASE,cAAc,OAC5CgH,EAAajG,UAAY,8CACzBiG,EAAa/F,UAAY,+FAEoB9J,EAAE,yXAGvCA,EAAE,mHAKVwP,EAAkBtG,YAAY2G,GAG9B,MAAMsI,EAAUtI,EAAajH,cAAc,qBACvCuP,GACFA,EAAQ7N,iBAAiB,QAAS,KAChCuF,EAAanE,UAAUyJ,IAAI,+BAK/B6C,EAAW1N,iBAAiB,QAAUC,IACpCA,EAAEoL,kBACF,MAAMyC,EAAWvI,EAAanE,UAAU+I,SAAS,6BACjD5E,EAAanE,UAAUC,OAAO,6BAC1ByM,GAEF9B,EAAS+B,cAAc,IAAIC,YAAY,sBAK3C,IAAI1I,EAA2C,KAC/C,GAAIlI,EAAO4I,mBAAoB,CAC7B,MAAMiI,EAAc5P,SAASE,cAAc,OAC3C0P,EAAY3O,UAAY,mBAExB,MAAM4O,EAAgB7P,SAASE,cAAc,QAC7C2P,EAAc5O,UAAY,0BAC1B4O,EAAczP,YAAc,KAE5B6G,EAAiBjH,SAASE,cAAc,UACxC+G,EAAejG,GAAK,sBACpBiG,EAAehG,UAAY,sBAC3BgG,EAAe9F,UAAY,oBAAoB9J,EAAE,2BAGjD4P,EAAetF,iBAAiB,SAAU,KACxC,MAAMmO,EAAa7I,EAAgBzO,MACnCmV,EAAS+B,cAAc,IAAIC,YAAY,qBAAsB,CAC3DI,OAAQ,CAAEhb,WAAY+a,EAAaE,OAAOF,QAAcxc,QAI5Dsc,EAAYrP,YAAYsP,GACxBD,EAAYrP,YAAY0G,GAGxB0G,EAASpN,YAAYoC,GACrBgL,EAASpN,YAAYsG,GACrB8G,EAASpN,YAAYqP,EACvB,MACEjC,EAASpN,YAAYoC,GACrBgL,EAASpN,YAAYsG,GAIvB,MAAMoJ,EAAYjQ,SAASE,cAAc,OACzC+P,EAAUhP,UAAY,iBAEtB,MAAM6F,EAAU9G,SAASE,cAAc,YACvC4G,EAAQ9F,GAAK,YACb8F,EAAQ7F,UAAY,YACpB6F,EAAQ3G,aAAa,cAAe9I,EAAE,gBACtCyP,EAAQ3G,aAAa,OAAQ,KAC7B2G,EAAQ3G,aAAa,YAAa,IAElC,MAAM4G,EAAU/G,SAASE,cAAc,UACvC6G,EAAQ/F,GAAK,eACb+F,EAAQ9F,UAAY,eACpB8F,EAAQ5G,aAAa,QAAS9I,EAAE,SAChC0P,EAAQ5G,aAAa,WAAY,QACjC4G,EAAQ5F,UAAY,iRAEpB8O,EAAU1P,YAAYuG,GACtBmJ,EAAU1P,YAAYwG,GACtB4G,EAASpN,YAAY0P,GAGrB,IAAIjJ,EAA+B,KAC/BjI,EAAOqP,YACTpH,EAAWhH,SAASE,cAAc,UAClC8G,EAAS/F,UAAY,gBACrB+F,EAAS5G,YAAc/I,EAAE,SACzB2P,EAASmB,MAAMC,QAAU,OAEzBuF,EAAS9J,aAAamD,EAAUiJ,IAIlC,IAAIC,EAAgC,KA0BpC,MAAO,CACL7C,OAAQM,EACR9G,oBACAC,UACAC,UACAC,WACAC,iBACAC,eACAO,YAhCF,WACE,GAAIyI,EAEF,OADAA,EAAU/H,MAAMC,QAAU,OACnB8H,EAET,MAAMhI,EAAKlI,SAASE,cAAc,OASlC,OARAgI,EAAGjH,UAAY,cACfiH,EAAG/G,UAAY,6IAKf0F,EAAkBtG,YAAY2H,GAC9BgI,EAAYhI,EACLA,CACT,EAkBER,YAhBF,WACMwI,GAAaA,EAAUC,aACzBD,EAAUC,WAAWC,YAAYF,GACjCA,EAAY,KAEhB,EAaF,CIlLcG,CAAiBtR,IAC7B4O,GAAWnG,EAAI6F,OACfxG,GAAoBW,EAAIX,kBACxBC,GAAUU,EAAIV,QACdC,GAAUS,EAAIT,QACdC,GAAWQ,EAAIR,SACfC,GAAiBO,EAAIP,eACrBC,GAAeM,EAAIN,aACnBC,GAAgBK,EAAIC,YACpBL,GAAgBI,EAAIE,YACpB1H,SAASxE,KAAK+E,YAAYoN,IAG1B,MAAM2C,EAAW3C,GAAS1N,cAAc,eACpCqQ,IACF1C,GJwKE,SAAqB0C,EAAuB3C,GAChD,IAAI4C,GAAW,EACXC,EAAS,EACTC,EAAS,EACTC,EAAU,EACVC,EAAU,EAEd,MAAMC,EAAehP,IACnB2O,GAAW,EACXC,EAAS5O,EAAEiP,QACXJ,EAAS7O,EAAEkP,QACX,MAAMC,EAAOpD,EAASqD,wBACtBN,EAAUF,EAASO,EAAKE,KACxBN,EAAUF,EAASM,EAAKG,IACxBlR,SAAS2B,iBAAiB,YAAawP,GACvCnR,SAAS2B,iBAAiB,UAAWyP,IAGjCD,EAAevP,IACnB,IAAK2O,EAAU,OACf,MAAMc,EAAIzP,EAAEiP,QAAUH,EAChBY,EAAI1P,EAAEkP,QAAUH,EAEhBY,EAAOlE,OAAOmE,WAAa7D,EAAS8D,YACpCC,EAAOrE,OAAOsE,YAAchE,EAASiE,aAC3CjE,EAASxF,MAAM0J,MAAQ,OACvBlE,EAASxF,MAAM2J,OAAS,OACxBnE,EAASxF,MAAM8I,KAAO,GAAGxS,KAAKY,IAAI,EAAGZ,KAAKa,IAAI+R,EAAGE,QACjD5D,EAASxF,MAAM+I,IAAM,GAAGzS,KAAKY,IAAI,EAAGZ,KAAKa,IAAIgS,EAAGI,SAG5CN,EAAY,KAChBb,GAAW,EACXvQ,SAAS+R,oBAAoB,YAAaZ,GAC1CnR,SAAS+R,oBAAoB,UAAWX,IAM1C,OAHAd,EAAS3O,iBAAiB,YAAaiP,GAGhC,KACLN,EAASyB,oBAAoB,YAAanB,GAC1C5Q,SAAS+R,oBAAoB,YAAaZ,GAC1CnR,SAAS+R,oBAAoB,UAAWX,GAE5C,CIrNkBY,CAAW1B,EAAU3C,KAIrCrG,GAASvI,GAAQ,CACf8H,qBACAC,WACAC,WACAC,YACAC,kBACAC,gBACAO,YAAaN,GACbO,YAAaN,KAIfuG,GAAShM,iBAAiB,qBAAwBC,IDuT9C,IAAsB7M,ICtTZ6M,EAAEmO,OAAOhb,WDuTvB6R,EAAoB7R,EACpBkG,QAAwB3H,IAAfyB,EACT/B,EAAO8B,wBAAwBC,QAAAA,EAAc,KCxT5C,GAGD4Y,GAAShM,iBAAiB,kBAAmB,KAC3CoK,OAGF0B,IAAgB,EAChBza,EAAOiB,cAAc8K,GAAO7K,YAAa6K,GAAO5K,eAGhDiV,KAAkB6B,MAAMvR,IACtB1G,EAAOO,KAAK,yBAA0BmG,IAE1C,EAyDEuY,QAtDF,WACE,IAAKxE,GAAe,OAEhBC,IAAcA,GAAWyC,aAAczC,GAAWyC,WAAWC,YAAY1C,IAAaA,GAAa,MACnGC,IAAYA,GAASwC,aAAcxC,GAASwC,WAAWC,YAAYzC,IAAWA,GAAW,MACzFC,KAAeA,KAAeA,GAAc,MN2lB5C/O,GAAgBA,EAAasR,aAC/BtR,EAAasR,WAAWC,YAAYvR,GACpCA,EAAe,MAGjBmB,SAASgI,iBAAiB,uBAAuBC,QAASC,GAAOA,EAAGzF,UM5lBpE,MAAMyP,EAAiBnT,cAAM,EAANA,GAAQ7K,YAC/B6K,GAAS,KACT0O,IAAgB,EAChB5G,GAAoB,KACpBC,GAAU,KACVC,GAAU,KACVC,GAAW,KACXC,GAAiB,KACjBC,GAAe,KACfC,GAAgB,KAChBC,GAAgB,KAEhBpU,EAAOqB,iBAAiB6d,GAAkB,GAC5C,EAiCE5E,QACAnY,SACA6N,UACAmP,aAdF,WACOpT,KACDiI,GAAYA,GAASoL,QAChBrK,QAAQ,gBAAkBrD,EAAc3F,GAAO7K,aAC1D,SAasB,oBAAXmZ,SACRA,OAA8CS,WAAaA"} \ No newline at end of file +{"version":3,"file":"chatbot-sdk.min.js","sources":["../src/logger.ts","../src/i18n.ts","../src/api.ts","../src/styles.ts","../src/utils.ts","../src/dom.ts","../src/storage.ts","../src/markdown.ts","../src/chat.ts","../src/index.ts","../src/config.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null],"names":["PREFIX","debugEnabled","timers","logger","info","msg","data","console","log","undefined","warn","error","time","label","Date","now","timeEnd","prefix","start","duration","lifecycleInit","integrateId","requestDomain","this","lifecycleDestroy","lifecycleSend","length","lifecycleReply","lifecycleError","status","message","lifecycleClear","lifecycleStreamDone","lifecycleCategoryChange","categoryId","dictionaries","title","minimize","close","status_online","welcome_title","welcome_desc","placeholder","send","loading","stream_interrupted","stream_unstable","category_placeholder","category_all","category_load_error","source_title","source_count","source_loading","clear","clear_confirm","history_title","history_empty","history_load_error","history_delete_confirm","history_export","history_delete","error_network","error_timeout","error_server","error_cors","error_auth","error_forbidden","error_not_found","error_rate_limit","error_unavailable","error_unknown","error_send","error_stream_unsupported","en","currentLocale","t","key","params","text","k","v","Object","entries","replace","String","currentConfig","updateChatId","chatId","getChatId","buildUrl","path","Error","startsWith","setIfPresent","value","trim","set","async","safeFetch","url","options","timeout","controller","AbortController","timer","setTimeout","abort","fetch","assign","signal","mode","credentials","err","DOMException","name","CskError","TypeError","includes","clearTimeout","constructor","type","super","getHttpErrorMessage","chatRequest","URLSearchParams","userId","toString","buildChatUrl","response","ok","errorMsg","chatSSERequest","onChunk","onDone","onError","useRag","buildChatRAGSSEUrl","buildChatSSEUrl","totalText","REQUEST_TIMEOUT","reader","_a","body","getReader","decoder","TextDecoder","stream","buffer","done","read","decode","lines","split","pop","line","trimmed","substring","readErr","releaseLock","fetchRagSources","buildRagSourcesUrl","json","success","Array","isArray","fetchConversationList","page","size","accountId","roleId","encodeURIComponent","list","total","pages","fetchConversationMessages","conversationId","messages","initChatId","cachedChatId","localStorage","getItem","chatIdStorageKey","loadCachedChatId","result","latestConv","saveCachedChatId","messageCount","newChatId","random","crypto","randomUUID","Math","generateChatId","setItem","removeItem","styleElement","cssVars","config","darker","adjustColor","primaryColor","lighter","rgb","hex","match","parseInt","hexToRgb","width","amount","clamp","max","min","r","g","b","padStart","injectStyles","document","querySelector","createElement","setAttribute","textContent","getStyles","head","appendChild","uuid","c","escapeHtml","map","ch","BOT_ICON","createLauncher","onClick","launcher","id","className","position","innerHTML","launcherIcon","debouncedClick","fn","delay","args","apply","debounce","addEventListener","e","preventDefault","renderUserBubble","container","timestamp","wrapper","avatar","content","bubble","formatTime","renderAIBubble","renderMd","renderSources","sources","existing","remove","sourcesEl","header","titleSpan","n","arrow","classList","toggle","src","item","sourceName","snippet","meta","metaParts","push","chunkIndex","score","toFixed","join","timeEl","parentNode","insertBefore","scrollToBottom","scrollTop","scrollHeight","d","getHours","getMinutes","storageKey","saveMessages","slice","updatedAt","JSON","stringify","clearMessages","CODE_BLOCK_PREFIX","INLINE_CODE_PREFIX","renderMarkdown","codeBlocks","processed","_match","lang","code","idx","escapedCode","trimEnd","langClass","inlineCodes","restorePlaceholders","inList","listType","inBlockquote","paragraphBuffer","i","flushParagraph","closeList","closeBlockquote","headingMatch","level","quoteMatch","inlineFormat","ulMatch","olMatch","test","_m","linkText","replacements","RegExp","currentCategoryId","messagesContainer","inputEl","inputWrap","sendBtn","clearBtn","categorySelect","historyPanel","welcomeEl","showLoadingFn","hideLoadingFn","isSending","initChat","cfg","dom","parentElement","showLoading","hideLoading","showCategorySwitch","handleSend","shiftKey","updateSendBtnState","style","height","autoResizeInput","add","confirm","querySelectorAll","forEach","el","display","updateEmptyState","newId","generateNewChatId","handleClear","bindSendEvents","tree","fetchCategoryTree","addOptions","nodes","indent","node","option","repeat","selected","children","loadCategories","initChatHistory","role","messageType","createTime","getTime","renderHistory","loadHistoryFromBackend","cached","raw","parse","loadMessages","hasMessages","removeAttribute","userTimestamp","userMsg","aiContent","aiTimestamp","shouldUseRag","streaming","Promise","resolve","reject","bubbleEl","accumulated","streamStarted","chunk","createEmptyAIBubble","then","catch","sendStreamMessage","aiMsg","ragSources","s","documentId","_b","lastAiMsg","fetchAndRenderSources","errMsg","errorBubble","color","historyPanelEl","contains","loadHistoryConversations","listEl","items","onSelect","onExport","onDelete","activeChatId","empty","convId","idEl","lastMessagePreview","metaEl","lastMessageTime","createdAt","actionsEl","exportBtn","stopPropagation","deleteBtn","renderHistoryList","firstMessageTime","switchToConversation","window","open","method","deleteConversation","isInitialized","launcherEl","windowEl","dragCleanup","focus","ChatbotSDK","init","rawConfig","parsed","URL","_g","showClear","_c","showAdminPanel","_d","_e","locale","debug","_f","parseConfig","enabled","matched","keys","find","setLocale","setApiConfig","headerLeft","headerAvatar","headerInfo","titleEl","statusEl","actions","historyBtn","minimizeBtn","closeBtn","backBtn","isHidden","dispatchEvent","CustomEvent","categoryBar","categoryLabel","selectedId","detail","Number","inputArea","loadingEl","removeChild","createChatWindow","headerEl","dragging","startX","startY","offsetX","offsetY","onMouseDown","target","closest","clientX","clientY","rect","getBoundingClientRect","left","top","onMouseMove","onMouseUp","x","y","maxX","innerWidth","offsetWidth","maxY","innerHeight","offsetHeight","right","bottom","removeEventListener","enableDrag","destroy","oldIntegrateId","clearHistory","click"],"mappings":"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"} \ No newline at end of file