ibc-ai-web-sdk 2.0.2 → 2.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"index.umd.js","sources":["../src/utils/errorCodes.js","../src/core/AIChatClient.js","../node_modules/.pnpm/marked@18.0.5/node_modules/marked/lib/marked.esm.js","../node_modules/.pnpm/dompurify@3.4.8/node_modules/dompurify/dist/purify.es.mjs","../src/AIChatDialog.js","../src/index.js"],"sourcesContent":["/**\n * 错误码常量\n * 统一定义所有错误码,方便维护\n */\n\nconst ERROR_CODES = {\n // 成功\n SUCCESS: 200,\n\n // 客户端错误 (40000-49999)\n AGENT_NOT_FOUND: 40001, // 智能体不存在或已禁用\n PROMPT_EMPTY: 40002, // 提示词不能为空\n AUTH_FAILED: 40301, // 鉴权失败\n\n // 服务器错误 (50000-59999)\n NETWORK_ERROR: 500, // 网络请求失败\n SERVER_ERROR: 50001, // 服务器内部错误\n TIMEOUT_ERROR: 50002, // 请求超时\n\n // 取消\n REQUEST_CANCELLED: 0 // 请求已取消\n}\n\nexport default ERROR_CODES\n","import ERROR_CODES from '../utils/errorCodes.js'\n\nconst SUCCESS_CODES = new Set(['SUCCESS', '000000', '0', '200', 0, 200])\nconst DEFAULT_AUTH_CODES = new Set(['401', '403', '1005', 'S00001', 'ET0006', '999990'])\nconst START_EVENTS = new Set(['[START]'])\nconst ERROR_EVENTS = new Set(['[ERROR]', 'error'])\nconst META_EVENTS = new Set(['meta'])\nconst DONE_EVENTS = new Set(['[DONE]', 'done'])\nconst PLANNING_EVENTS = new Set(['planning', 'planning_progress', 'plan', 'plan_snapshot'])\nconst MESSAGE_EVENTS = new Set(['message'])\nconst THINKING_EVENTS = new Set(['[THINKING]'])\nconst PROGRESS_EVENTS = new Set(['[PROGRESS]'])\nconst TOOL_START_EVENTS = new Set(['[TOOL_START]'])\nconst TOOL_RESULT_EVENTS = new Set(['[TOOL_RESULT]'])\nconst TOOL_END_EVENTS = new Set(['[TOOL_END]'])\nconst NODE_START_EVENTS = new Set(['NODE_START'])\nconst NODE_PROGRESS_EVENTS = new Set(['NODE_PROGRESS'])\nconst NODE_COMPLETE_EVENTS = new Set(['NODE_COMPLETE'])\nconst WARNING_EVENTS = new Set(['[WARNING]'])\nconst HITL_EVENTS = new Set(['[HITL]'])\n\nconst RUNTIME_PLACEHOLDERS = [\n '请求已受理',\n '任务已受理',\n '正在思考',\n '正在执行...',\n '正在执行…',\n '正在执行',\n '结果处理中',\n '已进入助手运行时',\n '任务运行时',\n 'SSE 连接已建立'\n]\n\nfunction detectNetworkStatus () {\n return !(typeof navigator !== 'undefined' && navigator.onLine === false)\n}\n\nfunction createRequestId () {\n return 'req_' + Date.now().toString(36) + '_' + Math.random().toString(36).slice(2, 8)\n}\n\nfunction trimTrailingSlash (value) {\n return String(value || '').replace(/\\/+$/, '')\n}\n\nfunction joinUrl (base, path) {\n if (!base) return path\n if (/^https?:\\/\\//i.test(path)) return path\n return trimTrailingSlash(base) + '/' + String(path || '').replace(/^\\/+/, '')\n}\n\nfunction isRuntimePlaceholder (text) {\n const normalized = String(text || '').trim()\n return !!normalized && RUNTIME_PLACEHOLDERS.some((pattern) => normalized.includes(pattern))\n}\n\nfunction tryParseJson (text) {\n if (!text || typeof text !== 'string') return null\n try {\n return JSON.parse(text)\n } catch (e) {\n return null\n }\n}\n\nfunction parseSseBlock (block) {\n const lines = String(block || '').split('\\n')\n let event = 'message'\n const data = []\n for (const line of lines) {\n if (line.startsWith(':')) {\n continue\n }\n if (line.startsWith('event:')) {\n event = line.slice(6).trim()\n } else if (line.startsWith('data:')) {\n data.push(line.slice(5).replace(/^\\s/, ''))\n }\n }\n return { event, data: data.join('\\n') }\n}\n\nexport class AIChatClient {\n constructor (config = {}) {\n this.config = {\n apiBaseUrl: '',\n apiEndpoint: '/v1/app/completion',\n streamEndpoint: '/v1/app/completion/stream',\n stopEndpoint: '/v1/app/completion/stop',\n asyncEndpoint: '/v1/app/completion/async',\n attachmentUploadEndpoint: '/v1/app/attachment/upload',\n conversationQueryEndpoint: '/v1/app/conversation/query',\n conversationDeleteEndpoint: '/v1/app/conversation/delete',\n appDetailEndpoint: '/v1/app/{appId}',\n taskStatusEndpoint: '/v1/app/task/{taskId}',\n appListEndpoint: '/v1/app/list',\n runtimePermissionReplyEndpoint: '/v1/app/runtime/permission/reply',\n runtimeQuestionReplyEndpoint: '/v1/app/runtime/question/reply',\n runtimeQuestionRejectEndpoint: '/v1/app/runtime/question/reject',\n timeout: 60000,\n streamTimeout: 300000,\n maxRetries: 3,\n retryDelay: 1000,\n enableRetry: true,\n backgroundRefreshEnabled: true,\n backgroundRefreshIntervalMs: 5 * 60 * 1000,\n ...config\n }\n this.conversationId = config.conversationId || null\n this.currentRequestId = null\n this.abortController = null\n this.refreshTokenPromise = null\n this._backgroundTimer = null\n this._visibilityHandler = null\n\n if (this._shouldStartBackgroundRefresh()) {\n this.startBackgroundRefresh()\n }\n }\n\n buildUrl (path) {\n return joinUrl(this.config.apiBaseUrl || '', path)\n }\n\n buildHeaders (extra = {}) {\n const headers = { ...extra }\n if (this.config.token && !headers.Authorization) {\n headers.Authorization = /^Bearer\\s+/i.test(this.config.token) ? this.config.token : 'Bearer ' + this.config.token\n }\n if (this.config.headers && typeof this.config.headers === 'object') {\n Object.assign(headers, this.config.headers)\n }\n return headers\n }\n\n createError (code, message, extra = {}) {\n return {\n success: false,\n code,\n message,\n data: null,\n ...extra\n }\n }\n\n getAuthCodes () {\n const customCodes = Array.isArray(this.config.authErrorCodes) ? this.config.authErrorCodes : []\n return new Set([...DEFAULT_AUTH_CODES, ...customCodes.map(code => String(code))])\n }\n\n isAuthErrorCode (code) {\n return this.getAuthCodes().has(String(code))\n }\n\n isTokenExpiring () {\n const expiresAt = Number(this.config.tokenExpiresAt || 0)\n if (!expiresAt) return false\n const bufferMs = Number(this.config.tokenRefreshBufferMs ?? 60000)\n const normalizedExpiry = expiresAt < 10000000000 ? expiresAt * 1000 : expiresAt\n return Date.now() + bufferMs >= normalizedExpiry\n }\n\n applyTokenResult (result) {\n if (!result) return ''\n if (typeof result === 'string') {\n this.config.token = result\n return result\n }\n if (typeof result === 'object') {\n const nextToken = result.token || result.accessToken || result.authorization || ''\n if (nextToken) this.config.token = nextToken\n if (result.refreshToken) this.config.refreshToken = result.refreshToken\n\n const expireAt = result.expiresAt ?? result.expireAt\n const expireIn = result.expiresIn ?? result.expireIn\n\n if (expireAt) {\n const ea = Number(expireAt)\n this.config.tokenExpiresAt = ea < 10000000000 ? ea * 1000 : ea\n } else if (expireIn) {\n this.config.tokenExpiresAt = Date.now() + Number(expireIn) * 1000\n }\n\n if (result.headers && typeof result.headers === 'object') {\n this.config.headers = { ...(this.config.headers || {}), ...result.headers }\n }\n return nextToken\n }\n return ''\n }\n\n async refreshToken (reason = 'expired', { silent = false } = {}) {\n if (typeof this.config.refreshTokenFn !== 'function') {\n const error = new Error('Token 已过期且未配置 refreshTokenFn')\n if (!silent) {\n this.stopBackgroundRefresh()\n this.config.onTokenExpired?.(error)\n }\n throw error\n }\n if (!this.refreshTokenPromise) {\n this.refreshTokenPromise = Promise.resolve()\n .then(() => this.config.refreshTokenFn({\n token: this.config.token || '',\n refreshToken: this.config.refreshToken || '',\n userId: this.config.userId || '',\n reason\n }))\n .then((result) => {\n const token = this.applyTokenResult(result)\n if (this._shouldStartBackgroundRefresh()) {\n this.startBackgroundRefresh()\n }\n this.config.onTokenRefreshed?.({\n token: this.config.token || token,\n refreshToken: this.config.refreshToken || '',\n tokenExpiresAt: this.config.tokenExpiresAt,\n raw: result\n })\n return token\n })\n .catch((error) => {\n if (silent) {\n console.warn('[AIChatClient] Silent token refresh failed (reason=' + reason + '):', error.message)\n return this.config.token || ''\n }\n this.stopBackgroundRefresh()\n this.config.onTokenExpired?.(error)\n throw error\n })\n .finally(() => {\n this.refreshTokenPromise = null\n })\n }\n return this.refreshTokenPromise\n }\n\n _shouldStartBackgroundRefresh () {\n return this.config.backgroundRefreshEnabled !== false &&\n typeof this.config.refreshTokenFn === 'function' &&\n Number(this.config.tokenExpiresAt || 0) > 0\n }\n\n startBackgroundRefresh () {\n if (this._backgroundTimer || !this._shouldStartBackgroundRefresh()) return\n\n const interval = Math.max(30000, Number(this.config.backgroundRefreshIntervalMs || 5 * 60 * 1000))\n this._backgroundTimer = setInterval(() => {\n if (this.isTokenExpiring()) {\n this.refreshToken('scheduled', { silent: true })\n }\n }, interval)\n\n this._visibilityHandler = () => {\n if (document.visibilityState === 'visible' && this.isTokenExpiring()) {\n this.refreshToken('visibility', { silent: true })\n }\n }\n if (typeof document !== 'undefined') {\n document.addEventListener('visibilitychange', this._visibilityHandler)\n }\n }\n\n stopBackgroundRefresh () {\n if (this._backgroundTimer) {\n clearInterval(this._backgroundTimer)\n this._backgroundTimer = null\n }\n if (this._visibilityHandler) {\n if (typeof document !== 'undefined') {\n document.removeEventListener('visibilitychange', this._visibilityHandler)\n }\n this._visibilityHandler = null\n }\n }\n\n dispose () {\n this.stopBackgroundRefresh()\n this.cancelCurrentRequest()\n this.refreshTokenPromise = null\n }\n\n async ensureFreshToken () {\n if (this.isTokenExpiring()) {\n try {\n await this.refreshToken('preflight', { silent: true })\n } catch {\n // Preflight failed silently — proceed with old token, response 401 will trigger a non-silent retry\n }\n }\n }\n\n async runAuthFn () {\n if (!this.config.authFn) return\n try {\n await this.config.authFn(this.config.token || '', this.config.userId || '')\n } catch (error) {\n if (typeof this.config.refreshTokenFn !== 'function') {\n throw error\n }\n await this.refreshToken('authFn')\n await this.config.authFn(this.config.token || '', this.config.userId || '')\n }\n }\n\n parseResponse (raw) {\n if (raw && typeof raw === 'object' && raw.success === true && Object.prototype.hasOwnProperty.call(raw, 'data')) {\n return {\n success: true,\n code: raw.code || raw.errCode || 200,\n message: raw.message || raw.errMsg || '',\n data: raw.data || null,\n requestId: raw.requestId\n }\n }\n\n if (raw && typeof raw === 'object' && raw.bizContent) {\n const parsed = typeof raw.bizContent === 'string' ? tryParseJson(raw.bizContent) : raw.bizContent\n return {\n success: true,\n code: raw.code || raw.errCode || 200,\n message: raw.message || raw.errMsg || '',\n data: parsed,\n requestId: raw.requestId\n }\n }\n\n const rawCode = raw && (raw.code !== undefined ? raw.code : raw.errCode)\n const success = raw && (\n raw.success === true ||\n raw.rtnCode === 'SUCCESS' ||\n SUCCESS_CODES.has(rawCode)\n )\n return {\n success: !!success,\n code: rawCode || (success ? 200 : 0),\n message: (raw && (raw.message || raw.errMsg || raw.rtnMsg)) || '',\n data: (raw && (raw.data || raw.bizContent)) || null,\n requestId: raw && raw.requestId\n }\n }\n\n async requestJson (path, payload = {}, options = {}) {\n if (!detectNetworkStatus()) {\n return this.createError(ERROR_CODES.NETWORK_ERROR, '网络连接已断开,请检查网络后重试')\n }\n const controller = new AbortController()\n const timeout = options.timeout || this.config.timeout || 60000\n const timeoutId = timeout > 0 ? setTimeout(() => controller.abort(), timeout) : null\n try {\n await this.ensureFreshToken()\n const doRequest = async () => {\n const response = await fetch(this.buildUrl(path), {\n method: options.method || 'POST',\n headers: this.buildHeaders({ 'Content-Type': 'application/json' }),\n credentials: this.config.credentials || 'include',\n body: options.method === 'GET' ? undefined : JSON.stringify(payload),\n signal: controller.signal\n })\n if (!response.ok) {\n return this.createError(response.status, `HTTP ${response.status} ${response.statusText || ''}`.trim())\n }\n return this.parseResponse(await response.json())\n }\n let result = await doRequest()\n if (!options.skipAuthRefresh && this.isAuthErrorCode(result.code)) {\n await this.refreshToken('response')\n result = await doRequest()\n }\n return result\n } catch (error) {\n if (error && error.name === 'AbortError') {\n return this.createError(ERROR_CODES.TIMEOUT_ERROR, '请求超时,请稍后重试')\n }\n return this.createError(ERROR_CODES.NETWORK_ERROR, error.message || '网络请求失败,请稍后重试')\n } finally {\n if (timeoutId) clearTimeout(timeoutId)\n }\n }\n\n buildAppPayload (prompt, options = {}) {\n const requestId = options.requestId || createRequestId()\n const payload = {\n appId: options.appId || this.config.appId || this.config.agentAppId || null,\n prompt: String(prompt || '').trim(),\n userId: options.userId || this.config.userId || null,\n bizType: options.bizType || this.config.bizType || null,\n requestId\n }\n const conversationId = Object.prototype.hasOwnProperty.call(options, 'conversationId')\n ? options.conversationId\n : this.conversationId\n if (conversationId) payload.conversationId = conversationId\n const attachmentIds = options.attachmentIds || this.normalizeAttachmentIds(options.attachments)\n if (attachmentIds.length > 0) payload.attachmentIds = attachmentIds\n const bizParams = options.bizParams || options.extendInfo || this.config.extendInfo\n if (bizParams) payload.bizParams = typeof bizParams === 'string' ? bizParams : JSON.stringify(bizParams)\n return payload\n }\n\n normalizeAttachmentIds (attachments) {\n if (!Array.isArray(attachments)) return []\n return attachments\n .map((item) => typeof item === 'string' ? item : (item && (item.attachmentId || item.fileId || item.id)))\n .filter(Boolean)\n }\n\n async sendMessage (prompt, token, options = {}) {\n if (!prompt || !String(prompt).trim()) {\n return this.createError(ERROR_CODES.PROMPT_EMPTY, '提示词不能为空')\n }\n if (token) {\n this.config.token = token\n }\n try {\n await this.runAuthFn()\n } catch (error) {\n return this.createError(ERROR_CODES.AUTH_FAILED, '鉴权失败,无法使用智能体:' + (error.message || '未知错误'))\n }\n\n const retries = options.retries !== undefined ? options.retries : this.config.maxRetries\n let lastResponse = null\n for (let attempt = 0; attempt <= retries; attempt++) {\n if (attempt > 0) {\n await new Promise(resolve => setTimeout(resolve, (this.config.retryDelay || 1000) * Math.pow(2, attempt - 1)))\n }\n const payload = this.buildAppPayload(prompt, options)\n this.currentRequestId = payload.requestId\n lastResponse = await this.requestJson(options.endpoint || this.config.apiEndpoint, payload)\n if (lastResponse.success || !this.isRetryableError(lastResponse) || this.config.enableRetry === false) {\n break\n }\n }\n if (lastResponse && lastResponse.data && lastResponse.data.conversationId) {\n this.conversationId = lastResponse.data.conversationId\n }\n return lastResponse\n }\n\n isRetryableError (error) {\n const code = error && error.code\n return [\n ERROR_CODES.NETWORK_ERROR,\n ERROR_CODES.TIMEOUT_ERROR,\n ERROR_CODES.SERVER_ERROR,\n 500,\n 502,\n 503,\n 504\n ].includes(code)\n }\n\n async sendMessageStream (prompt, handlers = {}, options = {}) {\n if (!prompt || !String(prompt).trim()) {\n const error = this.createError(ERROR_CODES.PROMPT_EMPTY, '提示词不能为空')\n handlers.onError?.(error.message, error)\n return error\n }\n try {\n await this.runAuthFn()\n } catch (error) {\n return this.createError(ERROR_CODES.AUTH_FAILED, `鉴权失败,无法使用智能体:${error.message || '未知错误'}`)\n }\n try {\n return await this.executeMessageStream(prompt, handlers, options, false)\n } catch (error) {\n if (error && error.name === 'AbortError') {\n const message = '请求超时或已取消'\n handlers.onError?.(message, error.sseData || error)\n return this.createError(ERROR_CODES.REQUEST_CANCELLED, message)\n }\n if (error && error.authError) {\n const message = error.message || '鉴权失败'\n handlers.onError?.(message, error.sseData || error)\n return this.createError(ERROR_CODES.AUTH_FAILED, message)\n }\n const message = error.message || '流式请求失败'\n handlers.onError?.(message, error.sseData || error)\n return this.createError(ERROR_CODES.NETWORK_ERROR, message)\n }\n }\n\n async executeMessageStream (prompt, handlers, options, retriedAfterRefresh) {\n this.cancelCurrentRequest()\n this.abortController = new AbortController()\n const timeout = options.timeout || this.config.streamTimeout || this.config.timeout || 300000\n const timeoutId = timeout > 0 ? setTimeout(() => this.abortController.abort(), timeout) : null\n const payload = this.buildAppPayload(prompt, options)\n this.currentRequestId = payload.requestId\n let finalText = ''\n let doneCalled = false\n\n try {\n await this.ensureFreshToken()\n const response = await fetch(this.buildUrl(options.endpoint || this.config.streamEndpoint), {\n method: 'POST',\n headers: this.buildHeaders({ 'Content-Type': 'application/json', Accept: 'text/event-stream' }),\n credentials: this.config.credentials || 'include',\n body: JSON.stringify(payload),\n signal: this.abortController.signal\n })\n if (!response.ok || !response.body) {\n if (!retriedAfterRefresh && this.isAuthErrorCode(response.status)) {\n if (timeoutId) clearTimeout(timeoutId)\n await this.refreshToken('response')\n return this.executeMessageStream(prompt, handlers, options, true)\n }\n throw new Error(`流式请求失败:HTTP ${response.status}`)\n }\n\n const reader = response.body.getReader()\n const decoder = new TextDecoder()\n let buffer = ''\n while (true) {\n const { value, done } = await reader.read()\n if (done) break\n buffer += decoder.decode(value, { stream: true }).replace(/\\r\\n/g, '\\n')\n const parts = buffer.split('\\n\\n')\n buffer = parts.pop() || ''\n for (const part of parts) {\n if (!part.trim()) continue\n const { event, data } = parseSseBlock(part)\n this.handleSseEvent(event, data, handlers, (text) => {\n finalText = text\n }, () => {\n doneCalled = true\n })\n if (MESSAGE_EVENTS.has(event) && data && !data.startsWith('[META]') && !isRuntimePlaceholder(data) && !this.isEventLike(data)) {\n finalText += data\n }\n }\n }\n if (!doneCalled) {\n handlers.onDone?.(finalText)\n }\n return { success: true, code: 200, message: '', data: { content: finalText, conversationId: this.conversationId, requestId: payload.requestId } }\n } catch (error) {\n if (!retriedAfterRefresh && error && error.authError) {\n if (timeoutId) clearTimeout(timeoutId)\n await this.refreshToken('response')\n return this.executeMessageStream(prompt, handlers, options, true)\n }\n throw error\n } finally {\n if (timeoutId) clearTimeout(timeoutId)\n this.abortController = null\n }\n }\n\n handleSseEvent (event, data, handlers, setFinalText, markDone) {\n if (START_EVENTS.has(event)) {\n handlers.onStart?.()\n return\n }\n if (THINKING_EVENTS.has(event)) {\n if (data) handlers.onThinking?.(data)\n return\n }\n if (PROGRESS_EVENTS.has(event)) {\n const parsed = tryParseJson(data)\n handlers.onProgressEvent?.(parsed?.stage || '', parsed?.message || data || '')\n return\n }\n if (TOOL_START_EVENTS.has(event)) {\n const parsed = tryParseJson(data)\n handlers.onToolStart?.(parsed?.toolName || '', parsed?.toolCallId || '')\n return\n }\n if (TOOL_RESULT_EVENTS.has(event)) {\n const parsed = tryParseJson(data)\n handlers.onToolResult?.(parsed?.toolName || '', parsed?.text || data || '')\n return\n }\n if (TOOL_END_EVENTS.has(event)) {\n const parsed = tryParseJson(data)\n handlers.onToolEnd?.(parsed?.toolName || '', parsed?.toolCallId || '')\n return\n }\n if (NODE_START_EVENTS.has(event)) {\n const parts = (data || '').split('\\n')\n handlers.onNodeStart?.(parts[0] || '', parts.slice(1).join('\\n') || data || '')\n return\n }\n if (NODE_PROGRESS_EVENTS.has(event)) {\n const parts = (data || '').split('\\n')\n handlers.onNodeProgress?.(parts[0] || '', parts.slice(1).join('\\n') || data || '')\n return\n }\n if (NODE_COMPLETE_EVENTS.has(event)) {\n const parts = (data || '').split('\\n')\n handlers.onNodeComplete?.(parts[0] || '', parts.slice(1).join('\\n') || data || '')\n return\n }\n if (WARNING_EVENTS.has(event)) {\n const parsed = tryParseJson(data)\n handlers.onWarning?.(parsed?.message || data || '')\n return\n }\n if (HITL_EVENTS.has(event)) {\n const parsed = tryParseJson(data)\n if (parsed) {\n handlers.onHitlInterrupt?.({\n type: parsed.type || 'TOOL_CONFIRMATION',\n requestId: parsed.requestId || '',\n sessionId: parsed.sessionId || '',\n taskRunId: parsed.taskRunId || '',\n toolCalls: parsed.toolCalls || [],\n message: parsed.message || ''\n })\n }\n return\n }\n if (ERROR_EVENTS.has(event)) {\n const parsed = tryParseJson(data)\n const message = (parsed && (parsed.message || parsed.errorMessage)) || data || '流式请求失败'\n const code = parsed && (parsed.code || parsed.errCode || parsed.status)\n if (code && this.isAuthErrorCode(code)) {\n const error = new Error(message)\n error.authError = true\n error.code = code\n throw error\n }\n const error = new Error(message)\n error.sseData = parsed || data\n throw error\n }\n if ((META_EVENTS.has(event) || MESSAGE_EVENTS.has(event)) && data.startsWith('[META]')) {\n const meta = tryParseJson(data.slice('[META]'.length))\n if (meta) {\n if (meta.conversationId || meta.sessionId) this.conversationId = meta.conversationId || meta.sessionId\n handlers.onMeta?.(meta)\n }\n return\n }\n if (PLANNING_EVENTS.has(event) || (!MESSAGE_EVENTS.has(event) && !DONE_EVENTS.has(event))) {\n const parsed = tryParseJson(data)\n if (parsed && typeof parsed === 'object') {\n handlers.onPlanningEvent?.(parsed)\n } else if (data && !isRuntimePlaceholder(data)) {\n handlers.onProgress?.(data)\n }\n return\n }\n if (MESSAGE_EVENTS.has(event)) {\n if (!data || isRuntimePlaceholder(data) || this.isEventLike(data)) return\n handlers.onMessage?.(data)\n return\n }\n if (DONE_EVENTS.has(event)) {\n let finalText = ''\n if (data.startsWith('[META]')) {\n const meta = tryParseJson(data.slice('[META]'.length))\n if (meta) {\n if (meta.conversationId || meta.sessionId) this.conversationId = meta.conversationId || meta.sessionId\n handlers.onMeta?.(meta)\n }\n } else {\n const parsed = tryParseJson(data)\n if (parsed && typeof parsed === 'object') {\n if (parsed.conversationId || parsed.sessionId) this.conversationId = parsed.conversationId || parsed.sessionId\n finalText = parsed.response?.finalAnswer || parsed.response?.finalResult || parsed.response?.result || parsed.response?.summary || parsed.response?.answer || parsed.response?.output || parsed.finalAnswer || parsed.finalResult || parsed.result || parsed.summary || parsed.answer || parsed.output || ''\n handlers.onMeta?.({\n conversationId: parsed.conversationId || parsed.sessionId,\n taskRunId: parsed.taskRunId,\n traceId: parsed.traceId,\n inputTokens: parsed.inputTokens,\n outputTokens: parsed.outputTokens\n })\n }\n }\n if (finalText) setFinalText(finalText)\n markDone()\n handlers.onDone?.(finalText)\n }\n }\n\n isEventLike (text) {\n const trimmed = String(text || '').trim()\n if (trimmed.startsWith('[META]') || trimmed.startsWith('event:')) return true\n const parsed = tryParseJson(trimmed)\n return !!(parsed && typeof parsed === 'object' && (parsed.eventType || parsed.eventId || parsed.taskRunId || parsed.metadata || parsed.currentTask))\n }\n\n async stopCompletion (requestId = this.currentRequestId) {\n if (this.abortController) {\n this.abortController.abort()\n }\n if (!requestId) {\n return this.createError(ERROR_CODES.REQUEST_CANCELLED, '当前没有可停止的请求')\n }\n return this.requestJson(this.config.stopEndpoint, {\n requestId,\n userId: this.config.userId,\n appId: this.config.appId || this.config.agentAppId\n })\n }\n\n async uploadAttachment (file, options = {}) {\n if (!file) {\n return this.createError(ERROR_CODES.PROMPT_EMPTY, '文件不能为空')\n }\n const controller = new AbortController()\n const timeout = options.timeout || this.config.uploadTimeout || (this.config.timeout || 60000) * 5\n const timeoutId = timeout > 0 ? setTimeout(() => controller.abort(), timeout) : null\n try {\n await this.ensureFreshToken()\n const doUpload = async () => {\n const formData = new FormData()\n formData.append('file', file)\n formData.append('userId', options.userId || this.config.userId || '')\n if (options.fileType) formData.append('fileType', options.fileType)\n if (options.conversationId || this.conversationId) formData.append('conversationId', options.conversationId || this.conversationId)\n\n const headers = this.buildHeaders()\n delete headers['Content-Type']\n const response = await fetch(this.buildUrl(options.endpoint || this.config.attachmentUploadEndpoint), {\n method: 'POST',\n headers,\n credentials: this.config.credentials || 'include',\n body: formData,\n signal: controller.signal\n })\n if (!response.ok) {\n return this.createError(response.status, `HTTP ${response.status} ${response.statusText || ''}`.trim())\n }\n return this.parseResponse(await response.json())\n }\n let result = await doUpload()\n if (!options.skipAuthRefresh && this.isAuthErrorCode(result.code)) {\n await this.refreshToken('response')\n result = await doUpload()\n }\n return result\n } catch (error) {\n return this.createError(error && error.name === 'AbortError' ? ERROR_CODES.TIMEOUT_ERROR : ERROR_CODES.NETWORK_ERROR, error.message || '文件上传失败')\n } finally {\n if (timeoutId) clearTimeout(timeoutId)\n }\n }\n\n async queryConversation (options = {}) {\n const conversationId = options.conversationId || this.conversationId\n const appId = options.appId || this.config.appId || this.config.agentAppId\n if (!conversationId && !appId) {\n return this.createError(ERROR_CODES.PROMPT_EMPTY, '会话ID和应用ID不能同时为空')\n }\n return this.requestJson(this.config.conversationQueryEndpoint, {\n userId: options.userId || this.config.userId,\n requestId: options.requestId || createRequestId(),\n conversationId,\n appId,\n bizType: options.bizType || this.config.bizType,\n pageIndex: options.pageIndex || 1,\n pageSize: options.pageSize || 20\n })\n }\n\n async deleteConversation (conversationId = this.conversationId, options = {}) {\n if (!conversationId) {\n return this.createError(ERROR_CODES.PROMPT_EMPTY, '会话ID不能为空')\n }\n const response = await this.requestJson(this.config.conversationDeleteEndpoint, {\n userId: options.userId || this.config.userId,\n requestId: options.requestId || createRequestId(),\n conversationId,\n appId: options.appId || this.config.appId || this.config.agentAppId,\n bizType: options.bizType || this.config.bizType\n })\n if (response.success && conversationId === this.conversationId) {\n this.conversationId = null\n }\n return response\n }\n\n async asyncCompletion (prompt, options = {}) {\n const payload = this.buildAppPayload(prompt, options)\n this.currentRequestId = payload.requestId\n return this.requestJson(this.config.asyncEndpoint, payload)\n }\n\n async getTaskStatus (taskId, options = {}) {\n if (!taskId) {\n return this.createError(ERROR_CODES.PROMPT_EMPTY, '任务ID不能为空')\n }\n const path = (options.endpoint || this.config.taskStatusEndpoint).replace('{taskId}', encodeURIComponent(taskId))\n return this.requestJson(path, undefined, { method: 'GET', timeout: options.timeout })\n }\n\n async getAppDetail (appId = this.config.appId || this.config.agentAppId, options = {}) {\n if (!appId) {\n return this.createError(ERROR_CODES.AGENT_NOT_FOUND, '智能体应用ID不能为空')\n }\n const path = (options.endpoint || this.config.appDetailEndpoint).replace('{appId}', encodeURIComponent(appId))\n return this.requestJson(path, undefined, { method: 'GET', timeout: options.timeout })\n }\n\n async listApplications (options = {}) {\n const payload = {\n applicationType: options.applicationType,\n pageIndex: options.pageIndex || 1,\n pageSize: options.pageSize || 20,\n userId: this.config.userId,\n requestId: createRequestId()\n }\n return this.requestJson(options.endpoint || this.config.appListEndpoint, payload)\n }\n\n async replyPermission (request) {\n if (!request.sessionId || !request.requestId) {\n return this.createError(ERROR_CODES.PROMPT_EMPTY, 'sessionId和requestId不能为空')\n }\n const payload = {\n sessionId: request.sessionId,\n requestId: request.requestId,\n reply: request.reply || 'once',\n message: request.message || '',\n userId: this.config.userId,\n replyRequestId: createRequestId()\n }\n return this.requestJson(this.config.runtimePermissionReplyEndpoint, payload)\n }\n\n async replyQuestion (request) {\n if (!request.sessionId || !request.requestId) {\n return this.createError(ERROR_CODES.PROMPT_EMPTY, 'sessionId和requestId不能为空')\n }\n const payload = {\n sessionId: request.sessionId,\n requestId: request.requestId,\n answers: request.answers || [],\n userId: this.config.userId,\n replyRequestId: createRequestId()\n }\n return this.requestJson(this.config.runtimeQuestionReplyEndpoint, payload)\n }\n\n async rejectQuestion (request) {\n if (!request.sessionId || !request.requestId) {\n return this.createError(ERROR_CODES.PROMPT_EMPTY, 'sessionId和requestId不能为空')\n }\n const payload = {\n sessionId: request.sessionId,\n requestId: request.requestId,\n userId: this.config.userId,\n replyRequestId: createRequestId()\n }\n return this.requestJson(this.config.runtimeQuestionRejectEndpoint, payload)\n }\n\n setConversationId (conversationId) {\n this.conversationId = conversationId || null\n }\n\n clearConversation () {\n this.conversationId = null\n this.currentRequestId = null\n this.cancelCurrentRequest()\n }\n\n cancelCurrentRequest () {\n if (this.abortController) {\n this.abortController.abort()\n this.abortController = null\n }\n }\n\n updateConfig (newConfig) {\n const hadRefreshCapability = this._shouldStartBackgroundRefresh()\n Object.assign(this.config, newConfig || {})\n const hasRefreshCapability = this._shouldStartBackgroundRefresh()\n\n if (!hadRefreshCapability && hasRefreshCapability) {\n this.startBackgroundRefresh()\n } else if (hadRefreshCapability && !hasRefreshCapability) {\n this.stopBackgroundRefresh()\n }\n }\n}\n\nexport default AIChatClient\n","/**\n * marked v18.0.5 - a markdown parser\n * Copyright (c) 2018-2026, MarkedJS. (MIT License)\n * Copyright (c) 2011-2018, Christopher Jeffrey. (MIT License)\n * https://github.com/markedjs/marked\n */\n\n/**\n * DO NOT EDIT THIS FILE\n * The code in this file is generated from files in ./src/\n */\n\nfunction M(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}var T=M();function N(l){T=l}var _={exec:()=>null};function E(l){let e=[];return t=>{let n=Math.max(0,Math.min(3,t-1)),s=e[n];return s||(s=l(n),e[n]=s),s}}function d(l,e=\"\"){let t=typeof l==\"string\"?l:l.source,n={replace:(s,r)=>{let i=typeof r==\"string\"?r:r.source;return i=i.replace(m.caret,\"$1\"),t=t.replace(s,i),n},getRegex:()=>new RegExp(t,e)};return n}var Te=((l=\"\")=>{try{return!!new RegExp(\"(?<=1)(?<!1)\"+l)}catch{return!1}})(),m={codeRemoveIndent:/^(?: {1,4}| {0,3}\\t)/gm,outputLinkReplace:/\\\\([\\[\\]])/g,indentCodeCompensation:/^(\\s+)(?:```)/,beginningSpace:/^\\s+/,endingHash:/#$/,startingSpaceChar:/^ /,endingSpaceChar:/ $/,nonSpaceChar:/[^ ]/,newLineCharGlobal:/\\n/g,tabCharGlobal:/\\t/g,multipleSpaceGlobal:/\\s+/g,blankLine:/^[ \\t]*$/,doubleBlankLine:/\\n[ \\t]*\\n[ \\t]*$/,blockquoteStart:/^ {0,3}>/,blockquoteSetextReplace:/\\n {0,3}((?:=+|-+) *)(?=\\n|$)/g,blockquoteSetextReplace2:/^ {0,3}>[ \\t]?/gm,listReplaceNesting:/^ {1,4}(?=( {4})*[^ ])/g,listIsTask:/^\\[[ xX]\\] +\\S/,listReplaceTask:/^\\[[ xX]\\] +/,listTaskCheckbox:/\\[[ xX]\\]/,anyLine:/\\n.*\\n/,hrefBrackets:/^<(.*)>$/,tableDelimiter:/[:|]/,tableAlignChars:/^\\||\\| *$/g,tableRowBlankLine:/\\n[ \\t]*$/,tableAlignRight:/^ *-+: *$/,tableAlignCenter:/^ *:-+: *$/,tableAlignLeft:/^ *:-+ *$/,startATag:/^<a /i,endATag:/^<\\/a>/i,startPreScriptTag:/^<(pre|code|kbd|script)(\\s|>)/i,endPreScriptTag:/^<\\/(pre|code|kbd|script)(\\s|>)/i,startAngleBracket:/^</,endAngleBracket:/>$/,pedanticHrefTitle:/^([^'\"]*[^\\s])\\s+(['\"])(.*)\\2/,unicodeAlphaNumeric:/[\\p{L}\\p{N}]/u,escapeTest:/[&<>\"']/,escapeReplace:/[&<>\"']/g,escapeTestNoEncode:/[<>\"']|&(?!(#\\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\\w+);)/,escapeReplaceNoEncode:/[<>\"']|&(?!(#\\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\\w+);)/g,caret:/(^|[^\\[])\\^/g,percentDecode:/%25/g,findPipe:/\\|/g,splitPipe:/ \\|/,slashPipe:/\\\\\\|/g,carriageReturn:/\\r\\n|\\r/g,spaceLine:/^ +$/gm,notSpaceStart:/^\\S*/,endingNewline:/\\n$/,listItemRegex:l=>new RegExp(`^( {0,3}${l})((?:[\t ][^\\\\n]*)?(?:\\\\n|$))`),nextBulletRegex:E(l=>new RegExp(`^ {0,${l}}(?:[*+-]|\\\\d{1,9}[.)])((?:[ \t][^\\\\n]*)?(?:\\\\n|$))`)),hrRegex:E(l=>new RegExp(`^ {0,${l}}((?:- *){3,}|(?:_ *){3,}|(?:\\\\* *){3,})(?:\\\\n+|$)`)),fencesBeginRegex:E(l=>new RegExp(`^ {0,${l}}(?:\\`\\`\\`|~~~)`)),headingBeginRegex:E(l=>new RegExp(`^ {0,${l}}#`)),htmlBeginRegex:E(l=>new RegExp(`^ {0,${l}}<(?:[a-z].*>|!--)`,\"i\")),blockquoteBeginRegex:E(l=>new RegExp(`^ {0,${l}}>`))},Oe=/^(?:[ \\t]*(?:\\n|$))+/,we=/^((?: {4}| {0,3}\\t)[^\\n]+(?:\\n(?:[ \\t]*(?:\\n|$))*)?)+/,ye=/^ {0,3}(`{3,}(?=[^`\\n]*(?:\\n|$))|~{3,})([^\\n]*)(?:\\n|$)(?:|([\\s\\S]*?)(?:\\n|$))(?: {0,3}\\1[~`]* *(?=\\n|$)|$)/,B=/^ {0,3}((?:-[\\t ]*){3,}|(?:_[ \\t]*){3,}|(?:\\*[ \\t]*){3,})(?:\\n+|$)/,Pe=/^ {0,3}(#{1,6})(?=\\s|$)(.*)(?:\\n+|$)/,j=/ {0,3}(?:[*+-]|\\d{1,9}[.)])/,oe=/^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\\n(?!\\s*?\\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\\n {0,3}(=+|-+) *(?:\\n+|$)/,ae=d(oe).replace(/bull/g,j).replace(/blockCode/g,/(?: {4}| {0,3}\\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\\n>]+>\\n/).replace(/\\|table/g,\"\").getRegex(),Se=d(oe).replace(/bull/g,j).replace(/blockCode/g,/(?: {4}| {0,3}\\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\\n>]+>\\n/).replace(/table/g,/ {0,3}\\|?(?:[:\\- ]*\\|)+[\\:\\- ]*\\n/).getRegex(),F=/^([^\\n]+(?:\\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\\n)[^\\n]+)*)/,$e=/^[^\\n]+/,U=/(?!\\s*\\])(?:\\\\[\\s\\S]|[^\\[\\]\\\\])+/,Le=d(/^ {0,3}\\[(label)\\]: *(?:\\n[ \\t]*)?([^<\\s][^\\s]*|<.*?>)(?:(?: +(?:\\n[ \\t]*)?| *\\n[ \\t]*)(title))? *(?:\\n+|$)/).replace(\"label\",U).replace(\"title\",/(?:\"(?:\\\\\"?|[^\"\\\\])*\"|'[^'\\n]*(?:\\n[^'\\n]+)*\\n?'|\\([^()]*\\))/).getRegex(),_e=d(/^(bull)([ \\t][^\\n]*?)?(?:\\n|$)/).replace(/bull/g,j).getRegex(),H=\"address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul\",K=/<!--(?:-?>|[\\s\\S]*?(?:-->|$))/,ze=d(\"^ {0,3}(?:<(script|pre|style|textarea)[\\\\s>][\\\\s\\\\S]*?(?:</\\\\1>[^\\\\n]*\\\\n+|$)|comment[^\\\\n]*(\\\\n+|$)|<\\\\?[\\\\s\\\\S]*?(?:\\\\?>\\\\n*|$)|<![A-Z][\\\\s\\\\S]*?(?:>\\\\n*|$)|<!\\\\[CDATA\\\\[[\\\\s\\\\S]*?(?:\\\\]\\\\]>\\\\n*|$)|</?(tag)(?: +|\\\\n|/?>)[\\\\s\\\\S]*?(?:(?:\\\\n[ \t]*)+\\\\n|$)|<(?!script|pre|style|textarea)([a-z][\\\\w-]*)(?:attribute)*? */?>(?=[ \\\\t]*(?:\\\\n|$))[\\\\s\\\\S]*?(?:(?:\\\\n[ \t]*)+\\\\n|$)|</(?!script|pre|style|textarea)[a-z][\\\\w-]*\\\\s*>(?=[ \\\\t]*(?:\\\\n|$))[\\\\s\\\\S]*?(?:(?:\\\\n[ \t]*)+\\\\n|$))\",\"i\").replace(\"comment\",K).replace(\"tag\",H).replace(\"attribute\",/ +[a-zA-Z:_][\\w.:-]*(?: *= *\"[^\"\\n]*\"| *= *'[^'\\n]*'| *= *[^\\s\"'=<>`]+)?/).getRegex(),le=d(F).replace(\"hr\",B).replace(\"heading\",\" {0,3}#{1,6}(?:\\\\s|$)\").replace(\"|lheading\",\"\").replace(\"|table\",\"\").replace(\"blockquote\",\" {0,3}>\").replace(\"fences\",\" {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n\").replace(\"list\",\" {0,3}(?:[*+-]|1[.)])[ \\\\t]+[^ \\\\t\\\\n]\").replace(\"html\",\"</?(?:tag)(?: +|\\\\n|/?>)|<(?:script|pre|style|textarea|!--)\").replace(\"tag\",H).getRegex(),Me=d(/^( {0,3}> ?(paragraph|[^\\n]*)(?:\\n|$))+/).replace(\"paragraph\",le).getRegex(),W={blockquote:Me,code:we,def:Le,fences:ye,heading:Pe,hr:B,html:ze,lheading:ae,list:_e,newline:Oe,paragraph:le,table:_,text:$e},se=d(\"^ *([^\\\\n ].*)\\\\n {0,3}((?:\\\\| *)?:?-+:? *(?:\\\\| *:?-+:? *)*(?:\\\\| *)?)(?:\\\\n((?:(?! *\\\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\\\n|$))*)\\\\n*|$)\").replace(\"hr\",B).replace(\"heading\",\" {0,3}#{1,6}(?:\\\\s|$)\").replace(\"blockquote\",\" {0,3}>\").replace(\"code\",\"(?: {4}| {0,3}\t)[^\\\\n]\").replace(\"fences\",\" {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n\").replace(\"list\",\" {0,3}(?:[*+-]|1[.)])[ \\\\t]\").replace(\"html\",\"</?(?:tag)(?: +|\\\\n|/?>)|<(?:script|pre|style|textarea|!--)\").replace(\"tag\",H).getRegex(),Ee={...W,lheading:Se,table:se,paragraph:d(F).replace(\"hr\",B).replace(\"heading\",\" {0,3}#{1,6}(?:\\\\s|$)\").replace(\"|lheading\",\"\").replace(\"table\",se).replace(\"blockquote\",\" {0,3}>\").replace(\"fences\",\" {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n\").replace(\"list\",\" {0,3}(?:[*+-]|1[.)])[ \\\\t]+[^ \\\\t\\\\n]\").replace(\"html\",\"</?(?:tag)(?: +|\\\\n|/?>)|<(?:script|pre|style|textarea|!--)\").replace(\"tag\",H).getRegex()},Ie={...W,html:d(`^ *(?:comment *(?:\\\\n|\\\\s*$)|<(tag)[\\\\s\\\\S]+?</\\\\1> *(?:\\\\n{2,}|\\\\s*$)|<tag(?:\"[^\"]*\"|'[^']*'|\\\\s[^'\"/>\\\\s]*)*?/?> *(?:\\\\n{2,}|\\\\s*$))`).replace(\"comment\",K).replace(/tag/g,\"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\\\b)\\\\w+(?!:|[^\\\\w\\\\s@]*@)\\\\b\").getRegex(),def:/^ *\\[([^\\]]+)\\]: *<?([^\\s>]+)>?(?: +([\"(][^\\n]+[\")]))? *(?:\\n+|$)/,heading:/^(#{1,6})(.*)(?:\\n+|$)/,fences:_,lheading:/^(.+?)\\n {0,3}(=+|-+) *(?:\\n+|$)/,paragraph:d(F).replace(\"hr\",B).replace(\"heading\",` *#{1,6} *[^\n]`).replace(\"lheading\",ae).replace(\"|table\",\"\").replace(\"blockquote\",\" {0,3}>\").replace(\"|fences\",\"\").replace(\"|list\",\"\").replace(\"|html\",\"\").replace(\"|tag\",\"\").getRegex()},Ae=/^\\\\([!\"#$%&'()*+,\\-./:;<=>?@\\[\\]\\\\^_`{|}~])/,Ce=/^(`+)([^`]|[^`][\\s\\S]*?[^`])\\1(?!`)/,ue=/^( {2,}|\\\\)\\n(?!\\s*$)/,Be=/^(`+|[^`])(?:(?= {2,}\\n)|[\\s\\S]*?(?:(?=[\\\\<!\\[`*_]|\\b_|$)|[^ ](?= {2,}\\n)))/,I=/[\\p{P}\\p{S}]/u,Z=/[\\s\\p{P}\\p{S}]/u,X=/[^\\s\\p{P}\\p{S}]/u,De=d(/^((?![*_])punctSpace)/,\"u\").replace(/punctSpace/g,Z).getRegex(),pe=/(?!~)[\\p{P}\\p{S}]/u,qe=/(?!~)[\\s\\p{P}\\p{S}]/u,ve=/(?:[^\\s\\p{P}\\p{S}]|~)/u,He=d(/link|precode-code|html/,\"g\").replace(\"link\",/\\[(?:[^\\[\\]`]|(?<a>`+)[^`]+\\k<a>(?!`))*?\\]\\((?:\\\\[\\s\\S]|[^\\\\\\(\\)]|\\((?:\\\\[\\s\\S]|[^\\\\\\(\\)])*\\))*\\)/).replace(\"precode-\",Te?\"(?<!`)()\":\"(^^|[^`])\").replace(\"code\",/(?<b>`+)[^`]+\\k<b>(?!`)/).replace(\"html\",/<(?! )[^<>]*?>/).getRegex(),ce=/^(?:\\*+(?:((?!\\*)punct)|([^\\s*]))?)|^_+(?:((?!_)punct)|([^\\s_]))?/,Ze=d(ce,\"u\").replace(/punct/g,I).getRegex(),Ge=d(ce,\"u\").replace(/punct/g,pe).getRegex(),he=\"^[^_*]*?__[^_*]*?\\\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\\\*)punct(\\\\*+)(?=[\\\\s]|$)|notPunctSpace(\\\\*+)(?!\\\\*)(?=punctSpace|$)|(?!\\\\*)punctSpace(\\\\*+)(?=notPunctSpace)|[\\\\s](\\\\*+)(?!\\\\*)(?=punct)|(?!\\\\*)punct(\\\\*+)(?!\\\\*)(?=punct)|notPunctSpace(\\\\*+)(?=notPunctSpace)\",Ne=d(he,\"gu\").replace(/notPunctSpace/g,X).replace(/punctSpace/g,Z).replace(/punct/g,I).getRegex(),Qe=d(he,\"gu\").replace(/notPunctSpace/g,ve).replace(/punctSpace/g,qe).replace(/punct/g,pe).getRegex(),je=d(\"^[^_*]*?\\\\*\\\\*[^_*]*?_[^_*]*?(?=\\\\*\\\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)\",\"gu\").replace(/notPunctSpace/g,X).replace(/punctSpace/g,Z).replace(/punct/g,I).getRegex(),Fe=d(/^~~?(?:((?!~)punct)|[^\\s~])/,\"u\").replace(/punct/g,I).getRegex(),Ue=\"^[^~]+(?=[^~])|(?!~)punct(~~?)(?=[\\\\s]|$)|notPunctSpace(~~?)(?!~)(?=punctSpace|$)|(?!~)punctSpace(~~?)(?=notPunctSpace)|[\\\\s](~~?)(?!~)(?=punct)|(?!~)punct(~~?)(?!~)(?=punct)|notPunctSpace(~~?)(?=notPunctSpace)\",Ke=d(Ue,\"gu\").replace(/notPunctSpace/g,X).replace(/punctSpace/g,Z).replace(/punct/g,I).getRegex(),We=d(/\\\\(punct)/,\"gu\").replace(/punct/g,I).getRegex(),Xe=d(/^<(scheme:[^\\s\\x00-\\x1f<>]*|email)>/).replace(\"scheme\",/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace(\"email\",/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/).getRegex(),Je=d(K).replace(\"(?:-->|$)\",\"-->\").getRegex(),Ve=d(\"^comment|^</[a-zA-Z][\\\\w:-]*\\\\s*>|^<[a-zA-Z][\\\\w-]*(?:attribute)*?\\\\s*/?>|^<\\\\?[\\\\s\\\\S]*?\\\\?>|^<![a-zA-Z]+\\\\s[\\\\s\\\\S]*?>|^<!\\\\[CDATA\\\\[[\\\\s\\\\S]*?\\\\]\\\\]>\").replace(\"comment\",Je).replace(\"attribute\",/\\s+[a-zA-Z:_][\\w.:-]*(?:\\s*=\\s*\"[^\"]*\"|\\s*=\\s*'[^']*'|\\s*=\\s*[^\\s\"'=<>`]+)?/).getRegex(),v=/(?:\\[(?:\\\\[\\s\\S]|[^\\[\\]\\\\])*\\]|\\\\[\\s\\S]|`+(?!`)[^`]*?`+(?!`)|``+(?=\\])|[^\\[\\]\\\\`])*?/,Ye=d(/^!?\\[(label)\\]\\(\\s*(href)(?:(?:[ \\t]+(?:\\n[ \\t]*)?|\\n[ \\t]*)(title))?\\s*\\)/).replace(\"label\",v).replace(\"href\",/<(?:\\\\.|[^\\n<>\\\\])+>|[^ \\t\\n\\x00-\\x1f]*/).replace(\"title\",/\"(?:\\\\\"?|[^\"\\\\])*\"|'(?:\\\\'?|[^'\\\\])*'|\\((?:\\\\\\)?|[^)\\\\])*\\)/).getRegex(),ke=d(/^!?\\[(label)\\]\\[(ref)\\]/).replace(\"label\",v).replace(\"ref\",U).getRegex(),de=d(/^!?\\[(ref)\\](?:\\[\\])?/).replace(\"ref\",U).getRegex(),et=d(\"reflink|nolink(?!\\\\()\",\"g\").replace(\"reflink\",ke).replace(\"nolink\",de).getRegex(),ie=/[hH][tT][tT][pP][sS]?|[fF][tT][pP]/,J={_backpedal:_,anyPunctuation:We,autolink:Xe,blockSkip:He,br:ue,code:Ce,del:_,delLDelim:_,delRDelim:_,emStrongLDelim:Ze,emStrongRDelimAst:Ne,emStrongRDelimUnd:je,escape:Ae,link:Ye,nolink:de,punctuation:De,reflink:ke,reflinkSearch:et,tag:Ve,text:Be,url:_},tt={...J,link:d(/^!?\\[(label)\\]\\((.*?)\\)/).replace(\"label\",v).getRegex(),reflink:d(/^!?\\[(label)\\]\\s*\\[([^\\]]*)\\]/).replace(\"label\",v).getRegex()},Q={...J,emStrongRDelimAst:Qe,emStrongLDelim:Ge,delLDelim:Fe,delRDelim:Ke,url:d(/^((?:protocol):\\/\\/|www\\.)(?:[a-zA-Z0-9\\-]+\\.?)+[^\\s<]*|^email/).replace(\"protocol\",ie).replace(\"email\",/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/).getRegex(),_backpedal:/(?:[^?!.,:;*_'\"~()&]+|\\([^)]*\\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'\"~)]+(?!$))+/,del:/^(~~?)(?=[^\\s~])((?:\\\\[\\s\\S]|[^\\\\])*?(?:\\\\[\\s\\S]|[^\\s~\\\\]))\\1(?=[^~]|$)/,text:d(/^([`~]+|[^`~])(?:(?= {2,}\\n)|(?=[a-zA-Z0-9.!#$%&'*+\\/=?_`{\\|}~-]+@)|[\\s\\S]*?(?:(?=[\\\\<!\\[`*~_]|\\b_|protocol:\\/\\/|www\\.|$)|[^ ](?= {2,}\\n)|[^a-zA-Z0-9.!#$%&'*+\\/=?_`{\\|}~-](?=[a-zA-Z0-9.!#$%&'*+\\/=?_`{\\|}~-]+@)))/).replace(\"protocol\",ie).getRegex()},nt={...Q,br:d(ue).replace(\"{2,}\",\"*\").getRegex(),text:d(Q.text).replace(\"\\\\b_\",\"\\\\b_| {2,}\\\\n\").replace(/\\{2,\\}/g,\"*\").getRegex()},D={normal:W,gfm:Ee,pedantic:Ie},A={normal:J,gfm:Q,breaks:nt,pedantic:tt};var rt={\"&\":\"&amp;\",\"<\":\"&lt;\",\">\":\"&gt;\",'\"':\"&quot;\",\"'\":\"&#39;\"},ge=l=>rt[l];function O(l,e){if(e){if(m.escapeTest.test(l))return l.replace(m.escapeReplace,ge)}else if(m.escapeTestNoEncode.test(l))return l.replace(m.escapeReplaceNoEncode,ge);return l}function V(l){try{l=encodeURI(l).replace(m.percentDecode,\"%\")}catch{return null}return l}function Y(l,e){let t=l.replace(m.findPipe,(r,i,o)=>{let u=!1,a=i;for(;--a>=0&&o[a]===\"\\\\\";)u=!u;return u?\"|\":\" |\"}),n=t.split(m.splitPipe),s=0;if(n[0].trim()||n.shift(),n.length>0&&!n.at(-1)?.trim()&&n.pop(),e)if(n.length>e)n.splice(e);else for(;n.length<e;)n.push(\"\");for(;s<n.length;s++)n[s]=n[s].trim().replace(m.slashPipe,\"|\");return n}function $(l,e,t){let n=l.length;if(n===0)return\"\";let s=0;for(;s<n;){let r=l.charAt(n-s-1);if(r===e&&!t)s++;else if(r!==e&&t)s++;else break}return l.slice(0,n-s)}function ee(l){let e=l.split(`\n`),t=e.length-1;for(;t>=0&&m.blankLine.test(e[t]);)t--;return e.length-t<=2?l:e.slice(0,t+1).join(`\n`)}function fe(l,e){if(l.indexOf(e[1])===-1)return-1;let t=0;for(let n=0;n<l.length;n++)if(l[n]===\"\\\\\")n++;else if(l[n]===e[0])t++;else if(l[n]===e[1]&&(t--,t<0))return n;return t>0?-2:-1}function me(l,e=0){let t=e,n=\"\";for(let s of l)if(s===\"\t\"){let r=4-t%4;n+=\" \".repeat(r),t+=r}else n+=s,t++;return n}function xe(l,e,t,n,s){let r=e.href,i=e.title||null,o=l[1].replace(s.other.outputLinkReplace,\"$1\");n.state.inLink=!0;let u={type:l[0].charAt(0)===\"!\"?\"image\":\"link\",raw:t,href:r,title:i,text:o,tokens:n.inlineTokens(o)};return n.state.inLink=!1,u}function st(l,e,t){let n=l.match(t.other.indentCodeCompensation);if(n===null)return e;let s=n[1];return e.split(`\n`).map(r=>{let i=r.match(t.other.beginningSpace);if(i===null)return r;let[o]=i;return o.length>=s.length?r.slice(s.length):r}).join(`\n`)}var w=class{options;rules;lexer;constructor(e){this.options=e||T}space(e){let t=this.rules.block.newline.exec(e);if(t&&t[0].length>0)return{type:\"space\",raw:t[0]}}code(e){let t=this.rules.block.code.exec(e);if(t){let n=this.options.pedantic?t[0]:ee(t[0]),s=n.replace(this.rules.other.codeRemoveIndent,\"\");return{type:\"code\",raw:n,codeBlockStyle:\"indented\",text:s}}}fences(e){let t=this.rules.block.fences.exec(e);if(t){let n=t[0],s=st(n,t[3]||\"\",this.rules);return{type:\"code\",raw:n,lang:t[2]?t[2].trim().replace(this.rules.inline.anyPunctuation,\"$1\"):t[2],text:s}}}heading(e){let t=this.rules.block.heading.exec(e);if(t){let n=t[2].trim();if(this.rules.other.endingHash.test(n)){let s=$(n,\"#\");(this.options.pedantic||!s||this.rules.other.endingSpaceChar.test(s))&&(n=s.trim())}return{type:\"heading\",raw:$(t[0],`\n`),depth:t[1].length,text:n,tokens:this.lexer.inline(n)}}}hr(e){let t=this.rules.block.hr.exec(e);if(t)return{type:\"hr\",raw:$(t[0],`\n`)}}blockquote(e){let t=this.rules.block.blockquote.exec(e);if(t){let n=$(t[0],`\n`).split(`\n`),s=\"\",r=\"\",i=[];for(;n.length>0;){let o=!1,u=[],a;for(a=0;a<n.length;a++)if(this.rules.other.blockquoteStart.test(n[a]))u.push(n[a]),o=!0;else if(!o)u.push(n[a]);else break;n=n.slice(a);let c=u.join(`\n`),p=c.replace(this.rules.other.blockquoteSetextReplace,`\n $1`).replace(this.rules.other.blockquoteSetextReplace2,\"\");s=s?`${s}\n${c}`:c,r=r?`${r}\n${p}`:p;let k=this.lexer.state.top;if(this.lexer.state.top=!0,this.lexer.blockTokens(p,i,!0),this.lexer.state.top=k,n.length===0)break;let h=i.at(-1);if(h?.type===\"code\")break;if(h?.type===\"blockquote\"){let R=h,f=R.raw+`\n`+n.join(`\n`),S=this.blockquote(f);i[i.length-1]=S,s=s.substring(0,s.length-R.raw.length)+S.raw,r=r.substring(0,r.length-R.text.length)+S.text;break}else if(h?.type===\"list\"){let R=h,f=R.raw+`\n`+n.join(`\n`),S=this.list(f);i[i.length-1]=S,s=s.substring(0,s.length-h.raw.length)+S.raw,r=r.substring(0,r.length-R.raw.length)+S.raw,n=f.substring(i.at(-1).raw.length).split(`\n`);continue}}return{type:\"blockquote\",raw:s,tokens:i,text:r}}}list(e){let t=this.rules.block.list.exec(e);if(t){let n=t[1].trim(),s=n.length>1,r={type:\"list\",raw:\"\",ordered:s,start:s?+n.slice(0,-1):\"\",loose:!1,items:[]};n=s?`\\\\d{1,9}\\\\${n.slice(-1)}`:`\\\\${n}`,this.options.pedantic&&(n=s?n:\"[*+-]\");let i=this.rules.other.listItemRegex(n),o=!1;for(;e;){let a=!1,c=\"\",p=\"\";if(!(t=i.exec(e))||this.rules.block.hr.test(e))break;c=t[0],e=e.substring(c.length);let k=me(t[2].split(`\n`,1)[0],t[1].length),h=e.split(`\n`,1)[0],R=!k.trim(),f=0;if(this.options.pedantic?(f=2,p=k.trimStart()):R?f=t[1].length+1:(f=k.search(this.rules.other.nonSpaceChar),f=f>4?1:f,p=k.slice(f),f+=t[1].length),R&&this.rules.other.blankLine.test(h)&&(c+=h+`\n`,e=e.substring(h.length+1),a=!0),!a){let S=this.rules.other.nextBulletRegex(f),te=this.rules.other.hrRegex(f),ne=this.rules.other.fencesBeginRegex(f),re=this.rules.other.headingBeginRegex(f),be=this.rules.other.htmlBeginRegex(f),Re=this.rules.other.blockquoteBeginRegex(f);for(;e;){let G=e.split(`\n`,1)[0],C;if(h=G,this.options.pedantic?(h=h.replace(this.rules.other.listReplaceNesting,\" \"),C=h):C=h.replace(this.rules.other.tabCharGlobal,\" \"),ne.test(h)||re.test(h)||be.test(h)||Re.test(h)||S.test(h)||te.test(h))break;if(C.search(this.rules.other.nonSpaceChar)>=f||!h.trim())p+=`\n`+C.slice(f);else{if(R||k.replace(this.rules.other.tabCharGlobal,\" \").search(this.rules.other.nonSpaceChar)>=4||ne.test(k)||re.test(k)||te.test(k))break;p+=`\n`+h}R=!h.trim(),c+=G+`\n`,e=e.substring(G.length+1),k=C.slice(f)}}r.loose||(o?r.loose=!0:this.rules.other.doubleBlankLine.test(c)&&(o=!0)),r.items.push({type:\"list_item\",raw:c,task:!!this.options.gfm&&this.rules.other.listIsTask.test(p),loose:!1,text:p,tokens:[]}),r.raw+=c}let u=r.items.at(-1);if(u)u.raw=u.raw.trimEnd(),u.text=u.text.trimEnd();else return;r.raw=r.raw.trimEnd();for(let a of r.items){this.lexer.state.top=!1,a.tokens=this.lexer.blockTokens(a.text,[]);let c=a.tokens[0];if(a.task&&(c?.type===\"text\"||c?.type===\"paragraph\")){a.text=a.text.replace(this.rules.other.listReplaceTask,\"\"),c.raw=c.raw.replace(this.rules.other.listReplaceTask,\"\"),c.text=c.text.replace(this.rules.other.listReplaceTask,\"\");for(let k=this.lexer.inlineQueue.length-1;k>=0;k--)if(this.rules.other.listIsTask.test(this.lexer.inlineQueue[k].src)){this.lexer.inlineQueue[k].src=this.lexer.inlineQueue[k].src.replace(this.rules.other.listReplaceTask,\"\");break}let p=this.rules.other.listTaskCheckbox.exec(a.raw);if(p){let k={type:\"checkbox\",raw:p[0]+\" \",checked:p[0]!==\"[ ]\"};a.checked=k.checked,r.loose?a.tokens[0]&&[\"paragraph\",\"text\"].includes(a.tokens[0].type)&&\"tokens\"in a.tokens[0]&&a.tokens[0].tokens?(a.tokens[0].raw=k.raw+a.tokens[0].raw,a.tokens[0].text=k.raw+a.tokens[0].text,a.tokens[0].tokens.unshift(k)):a.tokens.unshift({type:\"paragraph\",raw:k.raw,text:k.raw,tokens:[k]}):a.tokens.unshift(k)}}else a.task&&(a.task=!1);if(!r.loose){let p=a.tokens.filter(h=>h.type===\"space\"),k=p.length>0&&p.some(h=>this.rules.other.anyLine.test(h.raw));r.loose=k}}if(r.loose)for(let a of r.items){a.loose=!0;for(let c of a.tokens)c.type===\"text\"&&(c.type=\"paragraph\")}return r}}html(e){let t=this.rules.block.html.exec(e);if(t){let n=ee(t[0]);return{type:\"html\",block:!0,raw:n,pre:t[1]===\"pre\"||t[1]===\"script\"||t[1]===\"style\",text:n}}}def(e){let t=this.rules.block.def.exec(e);if(t){let n=t[1].toLowerCase().replace(this.rules.other.multipleSpaceGlobal,\" \"),s=t[2]?t[2].replace(this.rules.other.hrefBrackets,\"$1\").replace(this.rules.inline.anyPunctuation,\"$1\"):\"\",r=t[3]?t[3].substring(1,t[3].length-1).replace(this.rules.inline.anyPunctuation,\"$1\"):t[3];return{type:\"def\",tag:n,raw:$(t[0],`\n`),href:s,title:r}}}table(e){let t=this.rules.block.table.exec(e);if(!t||!this.rules.other.tableDelimiter.test(t[2]))return;let n=Y(t[1]),s=t[2].replace(this.rules.other.tableAlignChars,\"\").split(\"|\"),r=t[3]?.trim()?t[3].replace(this.rules.other.tableRowBlankLine,\"\").split(`\n`):[],i={type:\"table\",raw:$(t[0],`\n`),header:[],align:[],rows:[]};if(n.length===s.length){for(let o of s)this.rules.other.tableAlignRight.test(o)?i.align.push(\"right\"):this.rules.other.tableAlignCenter.test(o)?i.align.push(\"center\"):this.rules.other.tableAlignLeft.test(o)?i.align.push(\"left\"):i.align.push(null);for(let o=0;o<n.length;o++)i.header.push({text:n[o],tokens:this.lexer.inline(n[o]),header:!0,align:i.align[o]});for(let o of r)i.rows.push(Y(o,i.header.length).map((u,a)=>({text:u,tokens:this.lexer.inline(u),header:!1,align:i.align[a]})));return i}}lheading(e){let t=this.rules.block.lheading.exec(e);if(t){let n=t[1].trim();return{type:\"heading\",raw:$(t[0],`\n`),depth:t[2].charAt(0)===\"=\"?1:2,text:n,tokens:this.lexer.inline(n)}}}paragraph(e){let t=this.rules.block.paragraph.exec(e);if(t){let n=t[1].charAt(t[1].length-1)===`\n`?t[1].slice(0,-1):t[1];return{type:\"paragraph\",raw:t[0],text:n,tokens:this.lexer.inline(n)}}}text(e){let t=this.rules.block.text.exec(e);if(t)return{type:\"text\",raw:t[0],text:t[0],tokens:this.lexer.inline(t[0])}}escape(e){let t=this.rules.inline.escape.exec(e);if(t)return{type:\"escape\",raw:t[0],text:t[1]}}tag(e){let t=this.rules.inline.tag.exec(e);if(t)return!this.lexer.state.inLink&&this.rules.other.startATag.test(t[0])?this.lexer.state.inLink=!0:this.lexer.state.inLink&&this.rules.other.endATag.test(t[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&this.rules.other.startPreScriptTag.test(t[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&this.rules.other.endPreScriptTag.test(t[0])&&(this.lexer.state.inRawBlock=!1),{type:\"html\",raw:t[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,block:!1,text:t[0]}}link(e){let t=this.rules.inline.link.exec(e);if(t){let n=t[2].trim();if(!this.options.pedantic&&this.rules.other.startAngleBracket.test(n)){if(!this.rules.other.endAngleBracket.test(n))return;let i=$(n.slice(0,-1),\"\\\\\");if((n.length-i.length)%2===0)return}else{let i=fe(t[2],\"()\");if(i===-2)return;if(i>-1){let u=(t[0].indexOf(\"!\")===0?5:4)+t[1].length+i;t[2]=t[2].substring(0,i),t[0]=t[0].substring(0,u).trim(),t[3]=\"\"}}let s=t[2],r=\"\";if(this.options.pedantic){let i=this.rules.other.pedanticHrefTitle.exec(s);i&&(s=i[1],r=i[3])}else r=t[3]?t[3].slice(1,-1):\"\";return s=s.trim(),this.rules.other.startAngleBracket.test(s)&&(this.options.pedantic&&!this.rules.other.endAngleBracket.test(n)?s=s.slice(1):s=s.slice(1,-1)),xe(t,{href:s&&s.replace(this.rules.inline.anyPunctuation,\"$1\"),title:r&&r.replace(this.rules.inline.anyPunctuation,\"$1\")},t[0],this.lexer,this.rules)}}reflink(e,t){let n;if((n=this.rules.inline.reflink.exec(e))||(n=this.rules.inline.nolink.exec(e))){let s=(n[2]||n[1]).replace(this.rules.other.multipleSpaceGlobal,\" \"),r=t[s.toLowerCase()];if(!r){let i=n[0].charAt(0);return{type:\"text\",raw:i,text:i}}return xe(n,r,n[0],this.lexer,this.rules)}}emStrong(e,t,n=\"\"){let s=this.rules.inline.emStrongLDelim.exec(e);if(!s||!s[1]&&!s[2]&&!s[3]&&!s[4]||s[4]&&n.match(this.rules.other.unicodeAlphaNumeric))return;if(!(s[1]||s[3]||\"\")||!n||this.rules.inline.punctuation.exec(n)){let i=[...s[0]].length-1,o,u,a=i,c=0,p=s[0][0]===\"*\"?this.rules.inline.emStrongRDelimAst:this.rules.inline.emStrongRDelimUnd;for(p.lastIndex=0,t=t.slice(-1*e.length+i);(s=p.exec(t))!==null;){if(o=s[1]||s[2]||s[3]||s[4]||s[5]||s[6],!o)continue;if(u=[...o].length,s[3]||s[4]){a+=u;continue}else if((s[5]||s[6])&&i%3&&!((i+u)%3)){c+=u;continue}if(a-=u,a>0)continue;u=Math.min(u,u+a+c);let k=[...s[0]][0].length,h=e.slice(0,i+s.index+k+u);if(Math.min(i,u)%2){let f=h.slice(1,-1);return{type:\"em\",raw:h,text:f,tokens:this.lexer.inlineTokens(f)}}let R=h.slice(2,-2);return{type:\"strong\",raw:h,text:R,tokens:this.lexer.inlineTokens(R)}}}}codespan(e){let t=this.rules.inline.code.exec(e);if(t){let n=t[2].replace(this.rules.other.newLineCharGlobal,\" \"),s=this.rules.other.nonSpaceChar.test(n),r=this.rules.other.startingSpaceChar.test(n)&&this.rules.other.endingSpaceChar.test(n);return s&&r&&(n=n.substring(1,n.length-1)),{type:\"codespan\",raw:t[0],text:n}}}br(e){let t=this.rules.inline.br.exec(e);if(t)return{type:\"br\",raw:t[0]}}del(e,t,n=\"\"){let s=this.rules.inline.delLDelim.exec(e);if(!s)return;if(!(s[1]||\"\")||!n||this.rules.inline.punctuation.exec(n)){let i=[...s[0]].length-1,o,u,a=i,c=this.rules.inline.delRDelim;for(c.lastIndex=0,t=t.slice(-1*e.length+i);(s=c.exec(t))!==null;){if(o=s[1]||s[2]||s[3]||s[4]||s[5]||s[6],!o||(u=[...o].length,u!==i))continue;if(s[3]||s[4]){a+=u;continue}if(a-=u,a>0)continue;u=Math.min(u,u+a);let p=[...s[0]][0].length,k=e.slice(0,i+s.index+p+u),h=k.slice(i,-i);return{type:\"del\",raw:k,text:h,tokens:this.lexer.inlineTokens(h)}}}}autolink(e){let t=this.rules.inline.autolink.exec(e);if(t){let n,s;return t[2]===\"@\"?(n=t[1],s=\"mailto:\"+n):(n=t[1],s=n),{type:\"link\",raw:t[0],text:n,href:s,tokens:[{type:\"text\",raw:n,text:n}]}}}url(e){let t;if(t=this.rules.inline.url.exec(e)){let n,s;if(t[2]===\"@\")n=t[0],s=\"mailto:\"+n;else{let r;do r=t[0],t[0]=this.rules.inline._backpedal.exec(t[0])?.[0]??\"\";while(r!==t[0]);n=t[0],t[1]===\"www.\"?s=\"http://\"+t[0]:s=t[0]}return{type:\"link\",raw:t[0],text:n,href:s,tokens:[{type:\"text\",raw:n,text:n}]}}}inlineText(e){let t=this.rules.inline.text.exec(e);if(t){let n=this.lexer.state.inRawBlock;return{type:\"text\",raw:t[0],text:t[0],escaped:n}}}};var x=class l{tokens;options;state;inlineQueue;tokenizer;constructor(e){this.tokens=[],this.tokens.links=Object.create(null),this.options=e||T,this.options.tokenizer=this.options.tokenizer||new w,this.tokenizer=this.options.tokenizer,this.tokenizer.options=this.options,this.tokenizer.lexer=this,this.inlineQueue=[],this.state={inLink:!1,inRawBlock:!1,top:!0};let t={other:m,block:D.normal,inline:A.normal};this.options.pedantic?(t.block=D.pedantic,t.inline=A.pedantic):this.options.gfm&&(t.block=D.gfm,this.options.breaks?t.inline=A.breaks:t.inline=A.gfm),this.tokenizer.rules=t}static get rules(){return{block:D,inline:A}}static lex(e,t){return new l(t).lex(e)}static lexInline(e,t){return new l(t).inlineTokens(e)}lex(e){e=e.replace(m.carriageReturn,`\n`),this.blockTokens(e,this.tokens);for(let t=0;t<this.inlineQueue.length;t++){let n=this.inlineQueue[t];this.inlineTokens(n.src,n.tokens)}return this.inlineQueue=[],this.tokens}blockTokens(e,t=[],n=!1){this.tokenizer.lexer=this,this.options.pedantic&&(e=e.replace(m.tabCharGlobal,\" \").replace(m.spaceLine,\"\"));let s=1/0;for(;e;){if(e.length<s)s=e.length;else{this.infiniteLoopError(e.charCodeAt(0));break}let r;if(this.options.extensions?.block?.some(o=>(r=o.call({lexer:this},e,t))?(e=e.substring(r.raw.length),t.push(r),!0):!1))continue;if(r=this.tokenizer.space(e)){e=e.substring(r.raw.length);let o=t.at(-1);r.raw.length===1&&o!==void 0?o.raw+=`\n`:t.push(r);continue}if(r=this.tokenizer.code(e)){e=e.substring(r.raw.length);let o=t.at(-1);o?.type===\"paragraph\"||o?.type===\"text\"?(o.raw+=(o.raw.endsWith(`\n`)?\"\":`\n`)+r.raw,o.text+=`\n`+r.text,this.inlineQueue.at(-1).src=o.text):t.push(r);continue}if(r=this.tokenizer.fences(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.heading(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.hr(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.blockquote(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.list(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.html(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.def(e)){e=e.substring(r.raw.length);let o=t.at(-1);o?.type===\"paragraph\"||o?.type===\"text\"?(o.raw+=(o.raw.endsWith(`\n`)?\"\":`\n`)+r.raw,o.text+=`\n`+r.raw,this.inlineQueue.at(-1).src=o.text):this.tokens.links[r.tag]||(this.tokens.links[r.tag]={href:r.href,title:r.title},t.push(r));continue}if(r=this.tokenizer.table(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.lheading(e)){e=e.substring(r.raw.length),t.push(r);continue}let i=e;if(this.options.extensions?.startBlock){let o=1/0,u=e.slice(1),a;this.options.extensions.startBlock.forEach(c=>{a=c.call({lexer:this},u),typeof a==\"number\"&&a>=0&&(o=Math.min(o,a))}),o<1/0&&o>=0&&(i=e.substring(0,o+1))}if(this.state.top&&(r=this.tokenizer.paragraph(i))){let o=t.at(-1);n&&o?.type===\"paragraph\"?(o.raw+=(o.raw.endsWith(`\n`)?\"\":`\n`)+r.raw,o.text+=`\n`+r.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=o.text):t.push(r),n=i.length!==e.length,e=e.substring(r.raw.length);continue}if(r=this.tokenizer.text(e)){e=e.substring(r.raw.length);let o=t.at(-1);o?.type===\"text\"?(o.raw+=(o.raw.endsWith(`\n`)?\"\":`\n`)+r.raw,o.text+=`\n`+r.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=o.text):t.push(r);continue}if(e){this.infiniteLoopError(e.charCodeAt(0));break}}return this.state.top=!0,t}inline(e,t=[]){return this.inlineQueue.push({src:e,tokens:t}),t}inlineTokens(e,t=[]){this.tokenizer.lexer=this;let n=e,s=null;if(this.tokens.links){let a=Object.keys(this.tokens.links);if(a.length>0)for(;(s=this.tokenizer.rules.inline.reflinkSearch.exec(n))!==null;)a.includes(s[0].slice(s[0].lastIndexOf(\"[\")+1,-1))&&(n=n.slice(0,s.index)+\"[\"+\"a\".repeat(s[0].length-2)+\"]\"+n.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}for(;(s=this.tokenizer.rules.inline.anyPunctuation.exec(n))!==null;)n=n.slice(0,s.index)+\"++\"+n.slice(this.tokenizer.rules.inline.anyPunctuation.lastIndex);let r;for(;(s=this.tokenizer.rules.inline.blockSkip.exec(n))!==null;)r=s[2]?s[2].length:0,n=n.slice(0,s.index+r)+\"[\"+\"a\".repeat(s[0].length-r-2)+\"]\"+n.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);n=this.options.hooks?.emStrongMask?.call({lexer:this},n)??n;let i=!1,o=\"\",u=1/0;for(;e;){if(e.length<u)u=e.length;else{this.infiniteLoopError(e.charCodeAt(0));break}i||(o=\"\"),i=!1;let a;if(this.options.extensions?.inline?.some(p=>(a=p.call({lexer:this},e,t))?(e=e.substring(a.raw.length),t.push(a),!0):!1))continue;if(a=this.tokenizer.escape(e)){e=e.substring(a.raw.length),t.push(a);continue}if(a=this.tokenizer.tag(e)){e=e.substring(a.raw.length),t.push(a);continue}if(a=this.tokenizer.link(e)){e=e.substring(a.raw.length),t.push(a);continue}if(a=this.tokenizer.reflink(e,this.tokens.links)){e=e.substring(a.raw.length);let p=t.at(-1);a.type===\"text\"&&p?.type===\"text\"?(p.raw+=a.raw,p.text+=a.text):t.push(a);continue}if(a=this.tokenizer.emStrong(e,n,o)){e=e.substring(a.raw.length),t.push(a);continue}if(a=this.tokenizer.codespan(e)){e=e.substring(a.raw.length),t.push(a);continue}if(a=this.tokenizer.br(e)){e=e.substring(a.raw.length),t.push(a);continue}if(a=this.tokenizer.del(e,n,o)){e=e.substring(a.raw.length),t.push(a);continue}if(a=this.tokenizer.autolink(e)){e=e.substring(a.raw.length),t.push(a);continue}if(!this.state.inLink&&(a=this.tokenizer.url(e))){e=e.substring(a.raw.length),t.push(a);continue}let c=e;if(this.options.extensions?.startInline){let p=1/0,k=e.slice(1),h;this.options.extensions.startInline.forEach(R=>{h=R.call({lexer:this},k),typeof h==\"number\"&&h>=0&&(p=Math.min(p,h))}),p<1/0&&p>=0&&(c=e.substring(0,p+1))}if(a=this.tokenizer.inlineText(c)){e=e.substring(a.raw.length),a.raw.slice(-1)!==\"_\"&&(o=a.raw.slice(-1)),i=!0;let p=t.at(-1);p?.type===\"text\"?(p.raw+=a.raw,p.text+=a.text):t.push(a);continue}if(e){this.infiniteLoopError(e.charCodeAt(0));break}}return t}infiniteLoopError(e){let t=\"Infinite loop on byte: \"+e;if(this.options.silent)console.error(t);else throw new Error(t)}};var y=class{options;parser;constructor(e){this.options=e||T}space(e){return\"\"}code({text:e,lang:t,escaped:n}){let s=(t||\"\").match(m.notSpaceStart)?.[0],r=e.replace(m.endingNewline,\"\")+`\n`;return s?'<pre><code class=\"language-'+O(s)+'\">'+(n?r:O(r,!0))+`</code></pre>\n`:\"<pre><code>\"+(n?r:O(r,!0))+`</code></pre>\n`}blockquote({tokens:e}){return`<blockquote>\n${this.parser.parse(e)}</blockquote>\n`}html({text:e}){return e}def(e){return\"\"}heading({tokens:e,depth:t}){return`<h${t}>${this.parser.parseInline(e)}</h${t}>\n`}hr(e){return`<hr>\n`}list(e){let t=e.ordered,n=e.start,s=\"\";for(let o=0;o<e.items.length;o++){let u=e.items[o];s+=this.listitem(u)}let r=t?\"ol\":\"ul\",i=t&&n!==1?' start=\"'+n+'\"':\"\";return\"<\"+r+i+`>\n`+s+\"</\"+r+`>\n`}listitem(e){return`<li>${this.parser.parse(e.tokens)}</li>\n`}checkbox({checked:e}){return\"<input \"+(e?'checked=\"\" ':\"\")+'disabled=\"\" type=\"checkbox\"> '}paragraph({tokens:e}){return`<p>${this.parser.parseInline(e)}</p>\n`}table(e){let t=\"\",n=\"\";for(let r=0;r<e.header.length;r++)n+=this.tablecell(e.header[r]);t+=this.tablerow({text:n});let s=\"\";for(let r=0;r<e.rows.length;r++){let i=e.rows[r];n=\"\";for(let o=0;o<i.length;o++)n+=this.tablecell(i[o]);s+=this.tablerow({text:n})}return s&&(s=`<tbody>${s}</tbody>`),`<table>\n<thead>\n`+t+`</thead>\n`+s+`</table>\n`}tablerow({text:e}){return`<tr>\n${e}</tr>\n`}tablecell(e){let t=this.parser.parseInline(e.tokens),n=e.header?\"th\":\"td\";return(e.align?`<${n} align=\"${e.align}\">`:`<${n}>`)+t+`</${n}>\n`}strong({tokens:e}){return`<strong>${this.parser.parseInline(e)}</strong>`}em({tokens:e}){return`<em>${this.parser.parseInline(e)}</em>`}codespan({text:e}){return`<code>${O(e,!0)}</code>`}br(e){return\"<br>\"}del({tokens:e}){return`<del>${this.parser.parseInline(e)}</del>`}link({href:e,title:t,tokens:n}){let s=this.parser.parseInline(n),r=V(e);if(r===null)return s;e=r;let i='<a href=\"'+e+'\"';return t&&(i+=' title=\"'+O(t)+'\"'),i+=\">\"+s+\"</a>\",i}image({href:e,title:t,text:n,tokens:s}){s&&(n=this.parser.parseInline(s,this.parser.textRenderer));let r=V(e);if(r===null)return O(n);e=r;let i=`<img src=\"${e}\" alt=\"${O(n)}\"`;return t&&(i+=` title=\"${O(t)}\"`),i+=\">\",i}text(e){return\"tokens\"in e&&e.tokens?this.parser.parseInline(e.tokens):\"escaped\"in e&&e.escaped?e.text:O(e.text)}};var L=class{strong({text:e}){return e}em({text:e}){return e}codespan({text:e}){return e}del({text:e}){return e}html({text:e}){return e}text({text:e}){return e}link({text:e}){return\"\"+e}image({text:e}){return\"\"+e}br(){return\"\"}checkbox({raw:e}){return e}};var b=class l{options;renderer;textRenderer;constructor(e){this.options=e||T,this.options.renderer=this.options.renderer||new y,this.renderer=this.options.renderer,this.renderer.options=this.options,this.renderer.parser=this,this.textRenderer=new L}static parse(e,t){return new l(t).parse(e)}static parseInline(e,t){return new l(t).parseInline(e)}parse(e){this.renderer.parser=this;let t=\"\";for(let n=0;n<e.length;n++){let s=e[n];if(this.options.extensions?.renderers?.[s.type]){let i=s,o=this.options.extensions.renderers[i.type].call({parser:this},i);if(o!==!1||![\"space\",\"hr\",\"heading\",\"code\",\"table\",\"blockquote\",\"list\",\"html\",\"def\",\"paragraph\",\"text\"].includes(i.type)){t+=o||\"\";continue}}let r=s;switch(r.type){case\"space\":{t+=this.renderer.space(r);break}case\"hr\":{t+=this.renderer.hr(r);break}case\"heading\":{t+=this.renderer.heading(r);break}case\"code\":{t+=this.renderer.code(r);break}case\"table\":{t+=this.renderer.table(r);break}case\"blockquote\":{t+=this.renderer.blockquote(r);break}case\"list\":{t+=this.renderer.list(r);break}case\"checkbox\":{t+=this.renderer.checkbox(r);break}case\"html\":{t+=this.renderer.html(r);break}case\"def\":{t+=this.renderer.def(r);break}case\"paragraph\":{t+=this.renderer.paragraph(r);break}case\"text\":{t+=this.renderer.text(r);break}default:{let i='Token with \"'+r.type+'\" type was not found.';if(this.options.silent)return console.error(i),\"\";throw new Error(i)}}}return t}parseInline(e,t=this.renderer){this.renderer.parser=this;let n=\"\";for(let s=0;s<e.length;s++){let r=e[s];if(this.options.extensions?.renderers?.[r.type]){let o=this.options.extensions.renderers[r.type].call({parser:this},r);if(o!==!1||![\"escape\",\"html\",\"link\",\"image\",\"strong\",\"em\",\"codespan\",\"br\",\"del\",\"text\"].includes(r.type)){n+=o||\"\";continue}}let i=r;switch(i.type){case\"escape\":{n+=t.text(i);break}case\"html\":{n+=t.html(i);break}case\"link\":{n+=t.link(i);break}case\"image\":{n+=t.image(i);break}case\"checkbox\":{n+=t.checkbox(i);break}case\"strong\":{n+=t.strong(i);break}case\"em\":{n+=t.em(i);break}case\"codespan\":{n+=t.codespan(i);break}case\"br\":{n+=t.br(i);break}case\"del\":{n+=t.del(i);break}case\"text\":{n+=t.text(i);break}default:{let o='Token with \"'+i.type+'\" type was not found.';if(this.options.silent)return console.error(o),\"\";throw new Error(o)}}}return n}};var P=class{options;block;constructor(e){this.options=e||T}static passThroughHooks=new Set([\"preprocess\",\"postprocess\",\"processAllTokens\",\"emStrongMask\"]);static passThroughHooksRespectAsync=new Set([\"preprocess\",\"postprocess\",\"processAllTokens\"]);preprocess(e){return e}postprocess(e){return e}processAllTokens(e){return e}emStrongMask(e){return e}provideLexer(e=this.block){return e?x.lex:x.lexInline}provideParser(e=this.block){return e?b.parse:b.parseInline}};var q=class{defaults=M();options=this.setOptions;parse=this.parseMarkdown(!0);parseInline=this.parseMarkdown(!1);Parser=b;Renderer=y;TextRenderer=L;Lexer=x;Tokenizer=w;Hooks=P;constructor(...e){this.use(...e)}walkTokens(e,t){let n=[];for(let s of e)switch(n=n.concat(t.call(this,s)),s.type){case\"table\":{let r=s;for(let i of r.header)n=n.concat(this.walkTokens(i.tokens,t));for(let i of r.rows)for(let o of i)n=n.concat(this.walkTokens(o.tokens,t));break}case\"list\":{let r=s;n=n.concat(this.walkTokens(r.items,t));break}default:{let r=s;this.defaults.extensions?.childTokens?.[r.type]?this.defaults.extensions.childTokens[r.type].forEach(i=>{let o=r[i].flat(1/0);n=n.concat(this.walkTokens(o,t))}):r.tokens&&(n=n.concat(this.walkTokens(r.tokens,t)))}}return n}use(...e){let t=this.defaults.extensions||{renderers:{},childTokens:{}};return e.forEach(n=>{let s={...n};if(s.async=this.defaults.async||s.async||!1,n.extensions&&(n.extensions.forEach(r=>{if(!r.name)throw new Error(\"extension name required\");if(\"renderer\"in r){let i=t.renderers[r.name];i?t.renderers[r.name]=function(...o){let u=r.renderer.apply(this,o);return u===!1&&(u=i.apply(this,o)),u}:t.renderers[r.name]=r.renderer}if(\"tokenizer\"in r){if(!r.level||r.level!==\"block\"&&r.level!==\"inline\")throw new Error(\"extension level must be 'block' or 'inline'\");let i=t[r.level];i?i.unshift(r.tokenizer):t[r.level]=[r.tokenizer],r.start&&(r.level===\"block\"?t.startBlock?t.startBlock.push(r.start):t.startBlock=[r.start]:r.level===\"inline\"&&(t.startInline?t.startInline.push(r.start):t.startInline=[r.start]))}\"childTokens\"in r&&r.childTokens&&(t.childTokens[r.name]=r.childTokens)}),s.extensions=t),n.renderer){let r=this.defaults.renderer||new y(this.defaults);for(let i in n.renderer){if(!(i in r))throw new Error(`renderer '${i}' does not exist`);if([\"options\",\"parser\"].includes(i))continue;let o=i,u=n.renderer[o],a=r[o];r[o]=(...c)=>{let p=u.apply(r,c);return p===!1&&(p=a.apply(r,c)),p||\"\"}}s.renderer=r}if(n.tokenizer){let r=this.defaults.tokenizer||new w(this.defaults);for(let i in n.tokenizer){if(!(i in r))throw new Error(`tokenizer '${i}' does not exist`);if([\"options\",\"rules\",\"lexer\"].includes(i))continue;let o=i,u=n.tokenizer[o],a=r[o];r[o]=(...c)=>{let p=u.apply(r,c);return p===!1&&(p=a.apply(r,c)),p}}s.tokenizer=r}if(n.hooks){let r=this.defaults.hooks||new P;for(let i in n.hooks){if(!(i in r))throw new Error(`hook '${i}' does not exist`);if([\"options\",\"block\"].includes(i))continue;let o=i,u=n.hooks[o],a=r[o];P.passThroughHooks.has(i)?r[o]=c=>{if(this.defaults.async&&P.passThroughHooksRespectAsync.has(i))return(async()=>{let k=await u.call(r,c);return a.call(r,k)})();let p=u.call(r,c);return a.call(r,p)}:r[o]=(...c)=>{if(this.defaults.async)return(async()=>{let k=await u.apply(r,c);return k===!1&&(k=await a.apply(r,c)),k})();let p=u.apply(r,c);return p===!1&&(p=a.apply(r,c)),p}}s.hooks=r}if(n.walkTokens){let r=this.defaults.walkTokens,i=n.walkTokens;s.walkTokens=function(o){let u=[];return u.push(i.call(this,o)),r&&(u=u.concat(r.call(this,o))),u}}this.defaults={...this.defaults,...s}}),this}setOptions(e){return this.defaults={...this.defaults,...e},this}lexer(e,t){return x.lex(e,t??this.defaults)}parser(e,t){return b.parse(e,t??this.defaults)}parseMarkdown(e){return(n,s)=>{let r={...s},i={...this.defaults,...r},o=this.onError(!!i.silent,!!i.async);if(this.defaults.async===!0&&r.async===!1)return o(new Error(\"marked(): The async option was set to true by an extension. Remove async: false from the parse options object to return a Promise.\"));if(typeof n>\"u\"||n===null)return o(new Error(\"marked(): input parameter is undefined or null\"));if(typeof n!=\"string\")return o(new Error(\"marked(): input parameter is of type \"+Object.prototype.toString.call(n)+\", string expected\"));if(i.hooks&&(i.hooks.options=i,i.hooks.block=e),i.async)return(async()=>{let u=i.hooks?await i.hooks.preprocess(n):n,c=await(i.hooks?await i.hooks.provideLexer(e):e?x.lex:x.lexInline)(u,i),p=i.hooks?await i.hooks.processAllTokens(c):c;i.walkTokens&&await Promise.all(this.walkTokens(p,i.walkTokens));let h=await(i.hooks?await i.hooks.provideParser(e):e?b.parse:b.parseInline)(p,i);return i.hooks?await i.hooks.postprocess(h):h})().catch(o);try{i.hooks&&(n=i.hooks.preprocess(n));let a=(i.hooks?i.hooks.provideLexer(e):e?x.lex:x.lexInline)(n,i);i.hooks&&(a=i.hooks.processAllTokens(a)),i.walkTokens&&this.walkTokens(a,i.walkTokens);let p=(i.hooks?i.hooks.provideParser(e):e?b.parse:b.parseInline)(a,i);return i.hooks&&(p=i.hooks.postprocess(p)),p}catch(u){return o(u)}}}onError(e,t){return n=>{if(n.message+=`\nPlease report this to https://github.com/markedjs/marked.`,e){let s=\"<p>An error occurred:</p><pre>\"+O(n.message+\"\",!0)+\"</pre>\";return t?Promise.resolve(s):s}if(t)return Promise.reject(n);throw n}}};var z=new q;function g(l,e){return z.parse(l,e)}g.options=g.setOptions=function(l){return z.setOptions(l),g.defaults=z.defaults,N(g.defaults),g};g.getDefaults=M;g.defaults=T;g.use=function(...l){return z.use(...l),g.defaults=z.defaults,N(g.defaults),g};g.walkTokens=function(l,e){return z.walkTokens(l,e)};g.parseInline=z.parseInline;g.Parser=b;g.parser=b.parse;g.Renderer=y;g.TextRenderer=L;g.Lexer=x;g.lexer=x.lex;g.Tokenizer=w;g.Hooks=P;g.parse=g;var Ft=g.options,Ut=g.setOptions,Kt=g.use,Wt=g.walkTokens,Xt=g.parseInline,Jt=g,Vt=b.parse,Yt=x.lex;export{P as Hooks,x as Lexer,q as Marked,b as Parser,y as Renderer,L as TextRenderer,w as Tokenizer,T as defaults,M as getDefaults,Yt as lexer,g as marked,Ft as options,Jt as parse,Xt as parseInline,Vt as parser,Ut as setOptions,Kt as use,Wt as walkTokens};\n//# sourceMappingURL=marked.esm.js.map\n","/*! @license DOMPurify 3.4.8 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.4.8/LICENSE */\n\nfunction _arrayLikeToArray(r, a) {\n (null == a || a > r.length) && (a = r.length);\n for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n return n;\n}\nfunction _arrayWithHoles(r) {\n if (Array.isArray(r)) return r;\n}\nfunction _iterableToArrayLimit(r, l) {\n var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (null != t) {\n var e,\n n,\n i,\n u,\n a = [],\n f = true,\n o = false;\n try {\n if (i = (t = t.call(r)).next, 0 === l) ; else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);\n } catch (r) {\n o = true, n = r;\n } finally {\n try {\n if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return;\n } finally {\n if (o) throw n;\n }\n }\n return a;\n }\n}\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nfunction _slicedToArray(r, e) {\n return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest();\n}\nfunction _unsupportedIterableToArray(r, a) {\n if (r) {\n if (\"string\" == typeof r) return _arrayLikeToArray(r, a);\n var t = {}.toString.call(r).slice(8, -1);\n return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0;\n }\n}\n\nconst entries = Object.entries,\n setPrototypeOf = Object.setPrototypeOf,\n isFrozen = Object.isFrozen,\n getPrototypeOf = Object.getPrototypeOf,\n getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nlet freeze = Object.freeze,\n seal = Object.seal,\n create = Object.create; // eslint-disable-line import/no-mutable-exports\nlet _ref = typeof Reflect !== 'undefined' && Reflect,\n apply = _ref.apply,\n construct = _ref.construct;\nif (!freeze) {\n freeze = function freeze(x) {\n return x;\n };\n}\nif (!seal) {\n seal = function seal(x) {\n return x;\n };\n}\nif (!apply) {\n apply = function apply(func, thisArg) {\n for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n args[_key - 2] = arguments[_key];\n }\n return func.apply(thisArg, args);\n };\n}\nif (!construct) {\n construct = function construct(Func) {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n return new Func(...args);\n };\n}\nconst arrayForEach = unapply(Array.prototype.forEach);\nconst arrayLastIndexOf = unapply(Array.prototype.lastIndexOf);\nconst arrayPop = unapply(Array.prototype.pop);\nconst arrayPush = unapply(Array.prototype.push);\nconst arraySplice = unapply(Array.prototype.splice);\nconst arrayIsArray = Array.isArray;\nconst stringToLowerCase = unapply(String.prototype.toLowerCase);\nconst stringToString = unapply(String.prototype.toString);\nconst stringMatch = unapply(String.prototype.match);\nconst stringReplace = unapply(String.prototype.replace);\nconst stringIndexOf = unapply(String.prototype.indexOf);\nconst stringTrim = unapply(String.prototype.trim);\nconst numberToString = unapply(Number.prototype.toString);\nconst booleanToString = unapply(Boolean.prototype.toString);\nconst bigintToString = typeof BigInt === 'undefined' ? null : unapply(BigInt.prototype.toString);\nconst symbolToString = typeof Symbol === 'undefined' ? null : unapply(Symbol.prototype.toString);\nconst objectHasOwnProperty = unapply(Object.prototype.hasOwnProperty);\nconst objectToString = unapply(Object.prototype.toString);\nconst regExpTest = unapply(RegExp.prototype.test);\nconst typeErrorCreate = unconstruct(TypeError);\n/**\n * Creates a new function that calls the given function with a specified thisArg and arguments.\n *\n * @param func - The function to be wrapped and called.\n * @returns A new function that calls the given function with a specified thisArg and arguments.\n */\nfunction unapply(func) {\n return function (thisArg) {\n if (thisArg instanceof RegExp) {\n thisArg.lastIndex = 0;\n }\n for (var _len3 = arguments.length, args = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {\n args[_key3 - 1] = arguments[_key3];\n }\n return apply(func, thisArg, args);\n };\n}\n/**\n * Creates a new function that constructs an instance of the given constructor function with the provided arguments.\n *\n * @param func - The constructor function to be wrapped and called.\n * @returns A new function that constructs an instance of the given constructor function with the provided arguments.\n */\nfunction unconstruct(Func) {\n return function () {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n return construct(Func, args);\n };\n}\n/**\n * Add properties to a lookup table\n *\n * @param set - The set to which elements will be added.\n * @param array - The array containing elements to be added to the set.\n * @param transformCaseFunc - An optional function to transform the case of each element before adding to the set.\n * @returns The modified set with added elements.\n */\nfunction addToSet(set, array) {\n let transformCaseFunc = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : stringToLowerCase;\n if (setPrototypeOf) {\n // Make 'in' and truthy checks like Boolean(set.constructor)\n // independent of any properties defined on Object.prototype.\n // Prevent prototype setters from intercepting set as a this value.\n setPrototypeOf(set, null);\n }\n if (!arrayIsArray(array)) {\n return set;\n }\n let l = array.length;\n while (l--) {\n let element = array[l];\n if (typeof element === 'string') {\n const lcElement = transformCaseFunc(element);\n if (lcElement !== element) {\n // Config presets (e.g. tags.js, attrs.js) are immutable.\n if (!isFrozen(array)) {\n array[l] = lcElement;\n }\n element = lcElement;\n }\n }\n set[element] = true;\n }\n return set;\n}\n/**\n * Clean up an array to harden against CSPP\n *\n * @param array - The array to be cleaned.\n * @returns The cleaned version of the array\n */\nfunction cleanArray(array) {\n for (let index = 0; index < array.length; index++) {\n const isPropertyExist = objectHasOwnProperty(array, index);\n if (!isPropertyExist) {\n array[index] = null;\n }\n }\n return array;\n}\n/**\n * Shallow clone an object\n *\n * @param object - The object to be cloned.\n * @returns A new object that copies the original.\n */\nfunction clone(object) {\n const newObject = create(null);\n for (const _ref2 of entries(object)) {\n var _ref3 = _slicedToArray(_ref2, 2);\n const property = _ref3[0];\n const value = _ref3[1];\n const isPropertyExist = objectHasOwnProperty(object, property);\n if (isPropertyExist) {\n if (arrayIsArray(value)) {\n newObject[property] = cleanArray(value);\n } else if (value && typeof value === 'object' && value.constructor === Object) {\n newObject[property] = clone(value);\n } else {\n newObject[property] = value;\n }\n }\n }\n return newObject;\n}\n/**\n * Convert non-node values into strings without depending on direct property access.\n *\n * @param value - The value to stringify.\n * @returns A string representation of the provided value.\n */\nfunction stringifyValue(value) {\n switch (typeof value) {\n case 'string':\n {\n return value;\n }\n case 'number':\n {\n return numberToString(value);\n }\n case 'boolean':\n {\n return booleanToString(value);\n }\n case 'bigint':\n {\n return bigintToString ? bigintToString(value) : '0';\n }\n case 'symbol':\n {\n return symbolToString ? symbolToString(value) : 'Symbol()';\n }\n case 'undefined':\n {\n return objectToString(value);\n }\n case 'function':\n case 'object':\n {\n if (value === null) {\n return objectToString(value);\n }\n const valueAsRecord = value;\n const valueToString = lookupGetter(valueAsRecord, 'toString');\n if (typeof valueToString === 'function') {\n const stringified = valueToString(valueAsRecord);\n return typeof stringified === 'string' ? stringified : objectToString(stringified);\n }\n return objectToString(value);\n }\n default:\n {\n return objectToString(value);\n }\n }\n}\n/**\n * This method automatically checks if the prop is function or getter and behaves accordingly.\n *\n * @param object - The object to look up the getter function in its prototype chain.\n * @param prop - The property name for which to find the getter function.\n * @returns The getter function found in the prototype chain or a fallback function.\n */\nfunction lookupGetter(object, prop) {\n while (object !== null) {\n const desc = getOwnPropertyDescriptor(object, prop);\n if (desc) {\n if (desc.get) {\n return unapply(desc.get);\n }\n if (typeof desc.value === 'function') {\n return unapply(desc.value);\n }\n }\n object = getPrototypeOf(object);\n }\n function fallbackValue() {\n return null;\n }\n return fallbackValue;\n}\nfunction isRegex(value) {\n try {\n regExpTest(value, '');\n return true;\n } catch (_unused) {\n return false;\n }\n}\n\nconst html$1 = freeze(['a', 'abbr', 'acronym', 'address', 'area', 'article', 'aside', 'audio', 'b', 'bdi', 'bdo', 'big', 'blink', 'blockquote', 'body', 'br', 'button', 'canvas', 'caption', 'center', 'cite', 'code', 'col', 'colgroup', 'content', 'data', 'datalist', 'dd', 'decorator', 'del', 'details', 'dfn', 'dialog', 'dir', 'div', 'dl', 'dt', 'element', 'em', 'fieldset', 'figcaption', 'figure', 'font', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'i', 'img', 'input', 'ins', 'kbd', 'label', 'legend', 'li', 'main', 'map', 'mark', 'marquee', 'menu', 'menuitem', 'meter', 'nav', 'nobr', 'ol', 'optgroup', 'option', 'output', 'p', 'picture', 'pre', 'progress', 'q', 'rp', 'rt', 'ruby', 's', 'samp', 'search', 'section', 'select', 'shadow', 'slot', 'small', 'source', 'spacer', 'span', 'strike', 'strong', 'style', 'sub', 'summary', 'sup', 'table', 'tbody', 'td', 'template', 'textarea', 'tfoot', 'th', 'thead', 'time', 'tr', 'track', 'tt', 'u', 'ul', 'var', 'video', 'wbr']);\nconst svg$1 = freeze(['svg', 'a', 'altglyph', 'altglyphdef', 'altglyphitem', 'animatecolor', 'animatemotion', 'animatetransform', 'circle', 'clippath', 'defs', 'desc', 'ellipse', 'enterkeyhint', 'exportparts', 'filter', 'font', 'g', 'glyph', 'glyphref', 'hkern', 'image', 'inputmode', 'line', 'lineargradient', 'marker', 'mask', 'metadata', 'mpath', 'part', 'path', 'pattern', 'polygon', 'polyline', 'radialgradient', 'rect', 'stop', 'style', 'switch', 'symbol', 'text', 'textpath', 'title', 'tref', 'tspan', 'view', 'vkern']);\nconst svgFilters = freeze(['feBlend', 'feColorMatrix', 'feComponentTransfer', 'feComposite', 'feConvolveMatrix', 'feDiffuseLighting', 'feDisplacementMap', 'feDistantLight', 'feDropShadow', 'feFlood', 'feFuncA', 'feFuncB', 'feFuncG', 'feFuncR', 'feGaussianBlur', 'feImage', 'feMerge', 'feMergeNode', 'feMorphology', 'feOffset', 'fePointLight', 'feSpecularLighting', 'feSpotLight', 'feTile', 'feTurbulence']);\n// List of SVG elements that are disallowed by default.\n// We still need to know them so that we can do namespace\n// checks properly in case one wants to add them to\n// allow-list.\nconst svgDisallowed = freeze(['animate', 'color-profile', 'cursor', 'discard', 'font-face', 'font-face-format', 'font-face-name', 'font-face-src', 'font-face-uri', 'foreignobject', 'hatch', 'hatchpath', 'mesh', 'meshgradient', 'meshpatch', 'meshrow', 'missing-glyph', 'script', 'set', 'solidcolor', 'unknown', 'use']);\nconst mathMl$1 = freeze(['math', 'menclose', 'merror', 'mfenced', 'mfrac', 'mglyph', 'mi', 'mlabeledtr', 'mmultiscripts', 'mn', 'mo', 'mover', 'mpadded', 'mphantom', 'mroot', 'mrow', 'ms', 'mspace', 'msqrt', 'mstyle', 'msub', 'msup', 'msubsup', 'mtable', 'mtd', 'mtext', 'mtr', 'munder', 'munderover', 'mprescripts']);\n// Similarly to SVG, we want to know all MathML elements,\n// even those that we disallow by default.\nconst mathMlDisallowed = freeze(['maction', 'maligngroup', 'malignmark', 'mlongdiv', 'mscarries', 'mscarry', 'msgroup', 'mstack', 'msline', 'msrow', 'semantics', 'annotation', 'annotation-xml', 'mprescripts', 'none']);\nconst text = freeze(['#text']);\n\nconst html = freeze(['accept', 'action', 'align', 'alt', 'autocapitalize', 'autocomplete', 'autopictureinpicture', 'autoplay', 'background', 'bgcolor', 'border', 'capture', 'cellpadding', 'cellspacing', 'checked', 'cite', 'class', 'clear', 'color', 'cols', 'colspan', 'command', 'commandfor', 'controls', 'controlslist', 'coords', 'crossorigin', 'datetime', 'decoding', 'default', 'dir', 'disabled', 'disablepictureinpicture', 'disableremoteplayback', 'download', 'draggable', 'enctype', 'enterkeyhint', 'exportparts', 'face', 'for', 'headers', 'height', 'hidden', 'high', 'href', 'hreflang', 'id', 'inert', 'inputmode', 'integrity', 'ismap', 'kind', 'label', 'lang', 'list', 'loading', 'loop', 'low', 'max', 'maxlength', 'media', 'method', 'min', 'minlength', 'multiple', 'muted', 'name', 'nonce', 'noshade', 'novalidate', 'nowrap', 'open', 'optimum', 'part', 'pattern', 'placeholder', 'playsinline', 'popover', 'popovertarget', 'popovertargetaction', 'poster', 'preload', 'pubdate', 'radiogroup', 'readonly', 'rel', 'required', 'rev', 'reversed', 'role', 'rows', 'rowspan', 'spellcheck', 'scope', 'selected', 'shape', 'size', 'sizes', 'slot', 'span', 'srclang', 'start', 'src', 'srcset', 'step', 'style', 'summary', 'tabindex', 'title', 'translate', 'type', 'usemap', 'valign', 'value', 'width', 'wrap', 'xmlns']);\nconst svg = freeze(['accent-height', 'accumulate', 'additive', 'alignment-baseline', 'amplitude', 'ascent', 'attributename', 'attributetype', 'azimuth', 'basefrequency', 'baseline-shift', 'begin', 'bias', 'by', 'class', 'clip', 'clippathunits', 'clip-path', 'clip-rule', 'color', 'color-interpolation', 'color-interpolation-filters', 'color-profile', 'color-rendering', 'cx', 'cy', 'd', 'dx', 'dy', 'diffuseconstant', 'direction', 'display', 'divisor', 'dur', 'edgemode', 'elevation', 'end', 'exponent', 'fill', 'fill-opacity', 'fill-rule', 'filter', 'filterunits', 'flood-color', 'flood-opacity', 'font-family', 'font-size', 'font-size-adjust', 'font-stretch', 'font-style', 'font-variant', 'font-weight', 'fx', 'fy', 'g1', 'g2', 'glyph-name', 'glyphref', 'gradientunits', 'gradienttransform', 'height', 'href', 'id', 'image-rendering', 'in', 'in2', 'intercept', 'k', 'k1', 'k2', 'k3', 'k4', 'kerning', 'keypoints', 'keysplines', 'keytimes', 'lang', 'lengthadjust', 'letter-spacing', 'kernelmatrix', 'kernelunitlength', 'lighting-color', 'local', 'marker-end', 'marker-mid', 'marker-start', 'markerheight', 'markerunits', 'markerwidth', 'maskcontentunits', 'maskunits', 'max', 'mask', 'mask-type', 'media', 'method', 'mode', 'min', 'name', 'numoctaves', 'offset', 'operator', 'opacity', 'order', 'orient', 'orientation', 'origin', 'overflow', 'paint-order', 'path', 'pathlength', 'patterncontentunits', 'patterntransform', 'patternunits', 'points', 'preservealpha', 'preserveaspectratio', 'primitiveunits', 'r', 'rx', 'ry', 'radius', 'refx', 'refy', 'repeatcount', 'repeatdur', 'restart', 'result', 'rotate', 'scale', 'seed', 'shape-rendering', 'slope', 'specularconstant', 'specularexponent', 'spreadmethod', 'startoffset', 'stddeviation', 'stitchtiles', 'stop-color', 'stop-opacity', 'stroke-dasharray', 'stroke-dashoffset', 'stroke-linecap', 'stroke-linejoin', 'stroke-miterlimit', 'stroke-opacity', 'stroke', 'stroke-width', 'style', 'surfacescale', 'systemlanguage', 'tabindex', 'tablevalues', 'targetx', 'targety', 'transform', 'transform-origin', 'text-anchor', 'text-decoration', 'text-rendering', 'textlength', 'type', 'u1', 'u2', 'unicode', 'values', 'viewbox', 'visibility', 'version', 'vert-adv-y', 'vert-origin-x', 'vert-origin-y', 'width', 'word-spacing', 'wrap', 'writing-mode', 'xchannelselector', 'ychannelselector', 'x', 'x1', 'x2', 'xmlns', 'y', 'y1', 'y2', 'z', 'zoomandpan']);\nconst mathMl = freeze(['accent', 'accentunder', 'align', 'bevelled', 'close', 'columnalign', 'columnlines', 'columnspacing', 'columnspan', 'denomalign', 'depth', 'dir', 'display', 'displaystyle', 'encoding', 'fence', 'frame', 'height', 'href', 'id', 'largeop', 'length', 'linethickness', 'lquote', 'lspace', 'mathbackground', 'mathcolor', 'mathsize', 'mathvariant', 'maxsize', 'minsize', 'movablelimits', 'notation', 'numalign', 'open', 'rowalign', 'rowlines', 'rowspacing', 'rowspan', 'rspace', 'rquote', 'scriptlevel', 'scriptminsize', 'scriptsizemultiplier', 'selection', 'separator', 'separators', 'stretchy', 'subscriptshift', 'supscriptshift', 'symmetric', 'voffset', 'width', 'xmlns']);\nconst xml = freeze(['xlink:href', 'xml:id', 'xlink:title', 'xml:space', 'xmlns:xlink']);\n\nconst MUSTACHE_EXPR = seal(/{{[\\w\\W]*|^[\\w\\W]*}}/g);\nconst ERB_EXPR = seal(/<%[\\w\\W]*|^[\\w\\W]*%>/g);\nconst TMPLIT_EXPR = seal(/\\${[\\w\\W]*/g);\nconst DATA_ATTR = seal(/^data-[\\-\\w.\\u00B7-\\uFFFF]+$/); // eslint-disable-line no-useless-escape\nconst ARIA_ATTR = seal(/^aria-[\\-\\w]+$/); // eslint-disable-line no-useless-escape\nconst IS_ALLOWED_URI = seal(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp|matrix):|[^a-z]|[a-z+.\\-]+(?:[^a-z+.\\-:]|$))/i // eslint-disable-line no-useless-escape\n);\nconst IS_SCRIPT_OR_DATA = seal(/^(?:\\w+script|data):/i);\nconst ATTR_WHITESPACE = seal(/[\\u0000-\\u0020\\u00A0\\u1680\\u180E\\u2000-\\u2029\\u205F\\u3000]/g // eslint-disable-line no-control-regex\n);\nconst DOCTYPE_NAME = seal(/^html$/i);\nconst CUSTOM_ELEMENT = seal(/^[a-z][.\\w]*(-[.\\w]+)+$/i);\n\n/* eslint-disable @typescript-eslint/indent */\n// https://developer.mozilla.org/en-US/docs/Web/API/Node/nodeType\nconst NODE_TYPE = {\n element: 1,\n attribute: 2,\n text: 3,\n cdataSection: 4,\n entityReference: 5,\n // Deprecated\n entityNode: 6,\n // Deprecated\n progressingInstruction: 7,\n comment: 8,\n document: 9,\n documentType: 10,\n documentFragment: 11,\n notation: 12 // Deprecated\n};\nconst getGlobal = function getGlobal() {\n return typeof window === 'undefined' ? null : window;\n};\n/**\n * Creates a no-op policy for internal use only.\n * Don't export this function outside this module!\n * @param trustedTypes The policy factory.\n * @param purifyHostElement The Script element used to load DOMPurify (to determine policy name suffix).\n * @return The policy created (or null, if Trusted Types\n * are not supported or creating the policy failed).\n */\nconst _createTrustedTypesPolicy = function _createTrustedTypesPolicy(trustedTypes, purifyHostElement) {\n if (typeof trustedTypes !== 'object' || typeof trustedTypes.createPolicy !== 'function') {\n return null;\n }\n // Allow the callers to control the unique policy name\n // by adding a data-tt-policy-suffix to the script element with the DOMPurify.\n // Policy creation with duplicate names throws in Trusted Types.\n let suffix = null;\n const ATTR_NAME = 'data-tt-policy-suffix';\n if (purifyHostElement && purifyHostElement.hasAttribute(ATTR_NAME)) {\n suffix = purifyHostElement.getAttribute(ATTR_NAME);\n }\n const policyName = 'dompurify' + (suffix ? '#' + suffix : '');\n try {\n return trustedTypes.createPolicy(policyName, {\n createHTML(html) {\n return html;\n },\n createScriptURL(scriptUrl) {\n return scriptUrl;\n }\n });\n } catch (_) {\n // Policy creation failed (most likely another DOMPurify script has\n // already run). Skip creating the policy, as this will only cause errors\n // if TT are enforced.\n console.warn('TrustedTypes policy ' + policyName + ' could not be created.');\n return null;\n }\n};\nconst _createHooksMap = function _createHooksMap() {\n return {\n afterSanitizeAttributes: [],\n afterSanitizeElements: [],\n afterSanitizeShadowDOM: [],\n beforeSanitizeAttributes: [],\n beforeSanitizeElements: [],\n beforeSanitizeShadowDOM: [],\n uponSanitizeAttribute: [],\n uponSanitizeElement: [],\n uponSanitizeShadowNode: []\n };\n};\nfunction createDOMPurify() {\n let window = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getGlobal();\n const DOMPurify = root => createDOMPurify(root);\n DOMPurify.version = '3.4.8';\n DOMPurify.removed = [];\n if (!window || !window.document || window.document.nodeType !== NODE_TYPE.document || !window.Element) {\n // Not running in a browser, provide a factory function\n // so that you can pass your own Window\n DOMPurify.isSupported = false;\n return DOMPurify;\n }\n let document = window.document;\n const originalDocument = document;\n const currentScript = originalDocument.currentScript;\n window.DocumentFragment;\n const HTMLTemplateElement = window.HTMLTemplateElement,\n Node = window.Node,\n Element = window.Element,\n NodeFilter = window.NodeFilter,\n _window$NamedNodeMap = window.NamedNodeMap;\n _window$NamedNodeMap === void 0 ? window.NamedNodeMap || window.MozNamedAttrMap : _window$NamedNodeMap;\n window.HTMLFormElement;\n const DOMParser = window.DOMParser,\n trustedTypes = window.trustedTypes;\n const ElementPrototype = Element.prototype;\n const cloneNode = lookupGetter(ElementPrototype, 'cloneNode');\n const remove = lookupGetter(ElementPrototype, 'remove');\n const getNextSibling = lookupGetter(ElementPrototype, 'nextSibling');\n const getChildNodes = lookupGetter(ElementPrototype, 'childNodes');\n const getParentNode = lookupGetter(ElementPrototype, 'parentNode');\n const getShadowRoot = lookupGetter(ElementPrototype, 'shadowRoot');\n const getAttributes = lookupGetter(ElementPrototype, 'attributes');\n const getNodeType = Node && Node.prototype ? lookupGetter(Node.prototype, 'nodeType') : null;\n const getNodeName = Node && Node.prototype ? lookupGetter(Node.prototype, 'nodeName') : null;\n // As per issue #47, the web-components registry is inherited by a\n // new document created via createHTMLDocument. As per the spec\n // (http://w3c.github.io/webcomponents/spec/custom/#creating-and-passing-registries)\n // a new empty registry is used when creating a template contents owner\n // document, so we use that as our parent document to ensure nothing\n // is inherited.\n if (typeof HTMLTemplateElement === 'function') {\n const template = document.createElement('template');\n if (template.content && template.content.ownerDocument) {\n document = template.content.ownerDocument;\n }\n }\n let trustedTypesPolicy;\n let emptyHTML = '';\n // Tracks whether we are already inside a call to the configured Trusted Types\n // policy's `createHTML`. If the supplied `TRUSTED_TYPES_POLICY.createHTML`\n // itself calls `DOMPurify.sanitize` (the cause of #1422), `sanitize` would\n // re-enter the policy and recurse until the stack overflows. We detect that\n // re-entry and throw a clear, actionable error instead.\n let IN_POLICY_CREATE_HTML = 0;\n const _createTrustedHTML = function _createTrustedHTML(html) {\n if (IN_POLICY_CREATE_HTML > 0) {\n throw typeErrorCreate('The configured TRUSTED_TYPES_POLICY.createHTML must not call ' + 'DOMPurify.sanitize, as that causes infinite recursion. Do not pass ' + 'a policy whose createHTML wraps DOMPurify as TRUSTED_TYPES_POLICY; ' + 'see the \"DOMPurify and Trusted Types\" section of the README.');\n }\n IN_POLICY_CREATE_HTML++;\n try {\n return trustedTypesPolicy.createHTML(html);\n } finally {\n IN_POLICY_CREATE_HTML--;\n }\n };\n const _document = document,\n implementation = _document.implementation,\n createNodeIterator = _document.createNodeIterator,\n createDocumentFragment = _document.createDocumentFragment,\n getElementsByTagName = _document.getElementsByTagName;\n const importNode = originalDocument.importNode;\n let hooks = _createHooksMap();\n /**\n * Expose whether this browser supports running the full DOMPurify.\n */\n DOMPurify.isSupported = typeof entries === 'function' && typeof getParentNode === 'function' && implementation && implementation.createHTMLDocument !== undefined;\n const MUSTACHE_EXPR$1 = MUSTACHE_EXPR,\n ERB_EXPR$1 = ERB_EXPR,\n TMPLIT_EXPR$1 = TMPLIT_EXPR,\n DATA_ATTR$1 = DATA_ATTR,\n ARIA_ATTR$1 = ARIA_ATTR,\n IS_SCRIPT_OR_DATA$1 = IS_SCRIPT_OR_DATA,\n ATTR_WHITESPACE$1 = ATTR_WHITESPACE,\n CUSTOM_ELEMENT$1 = CUSTOM_ELEMENT;\n let IS_ALLOWED_URI$1 = IS_ALLOWED_URI;\n /**\n * We consider the elements and attributes below to be safe. Ideally\n * don't add any new ones but feel free to remove unwanted ones.\n */\n /* allowed element names */\n let ALLOWED_TAGS = null;\n const DEFAULT_ALLOWED_TAGS = addToSet({}, [...html$1, ...svg$1, ...svgFilters, ...mathMl$1, ...text]);\n /* Allowed attribute names */\n let ALLOWED_ATTR = null;\n const DEFAULT_ALLOWED_ATTR = addToSet({}, [...html, ...svg, ...mathMl, ...xml]);\n /*\n * Configure how DOMPurify should handle custom elements and their attributes as well as customized built-in elements.\n * @property {RegExp|Function|null} tagNameCheck one of [null, regexPattern, predicate]. Default: `null` (disallow any custom elements)\n * @property {RegExp|Function|null} attributeNameCheck one of [null, regexPattern, predicate]. Default: `null` (disallow any attributes not on the allow list)\n * @property {boolean} allowCustomizedBuiltInElements allow custom elements derived from built-ins if they pass CUSTOM_ELEMENT_HANDLING.tagNameCheck. Default: `false`.\n */\n let CUSTOM_ELEMENT_HANDLING = Object.seal(create(null, {\n tagNameCheck: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: null\n },\n attributeNameCheck: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: null\n },\n allowCustomizedBuiltInElements: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: false\n }\n }));\n /* Explicitly forbidden tags (overrides ALLOWED_TAGS/ADD_TAGS) */\n let FORBID_TAGS = null;\n /* Explicitly forbidden attributes (overrides ALLOWED_ATTR/ADD_ATTR) */\n let FORBID_ATTR = null;\n /* Config object to store ADD_TAGS/ADD_ATTR functions (when used as functions) */\n const EXTRA_ELEMENT_HANDLING = Object.seal(create(null, {\n tagCheck: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: null\n },\n attributeCheck: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: null\n }\n }));\n /* Decide if ARIA attributes are okay */\n let ALLOW_ARIA_ATTR = true;\n /* Decide if custom data attributes are okay */\n let ALLOW_DATA_ATTR = true;\n /* Decide if unknown protocols are okay */\n let ALLOW_UNKNOWN_PROTOCOLS = false;\n /* Decide if self-closing tags in attributes are allowed.\n * Usually removed due to a mXSS issue in jQuery 3.0 */\n let ALLOW_SELF_CLOSE_IN_ATTR = true;\n /* Output should be safe for common template engines.\n * This means, DOMPurify removes data attributes, mustaches and ERB\n */\n let SAFE_FOR_TEMPLATES = false;\n /* Output should be safe even for XML used within HTML and alike.\n * This means, DOMPurify removes comments when containing risky content.\n */\n let SAFE_FOR_XML = true;\n /* Decide if document with <html>... should be returned */\n let WHOLE_DOCUMENT = false;\n /* Track whether config is already set on this instance of DOMPurify. */\n let SET_CONFIG = false;\n /* Decide if all elements (e.g. style, script) must be children of\n * document.body. By default, browsers might move them to document.head */\n let FORCE_BODY = false;\n /* Decide if a DOM `HTMLBodyElement` should be returned, instead of a html\n * string (or a TrustedHTML object if Trusted Types are supported).\n * If `WHOLE_DOCUMENT` is enabled a `HTMLHtmlElement` will be returned instead\n */\n let RETURN_DOM = false;\n /* Decide if a DOM `DocumentFragment` should be returned, instead of a html\n * string (or a TrustedHTML object if Trusted Types are supported) */\n let RETURN_DOM_FRAGMENT = false;\n /* Try to return a Trusted Type object instead of a string, return a string in\n * case Trusted Types are not supported */\n let RETURN_TRUSTED_TYPE = false;\n /* Output should be free from DOM clobbering attacks?\n * This sanitizes markups named with colliding, clobberable built-in DOM APIs.\n */\n let SANITIZE_DOM = true;\n /* Achieve full DOM Clobbering protection by isolating the namespace of named\n * properties and JS variables, mitigating attacks that abuse the HTML/DOM spec rules.\n *\n * HTML/DOM spec rules that enable DOM Clobbering:\n * - Named Access on Window (§7.3.3)\n * - DOM Tree Accessors (§3.1.5)\n * - Form Element Parent-Child Relations (§4.10.3)\n * - Iframe srcdoc / Nested WindowProxies (§4.8.5)\n * - HTMLCollection (§4.2.10.2)\n *\n * Namespace isolation is implemented by prefixing `id` and `name` attributes\n * with a constant string, i.e., `user-content-`\n */\n let SANITIZE_NAMED_PROPS = false;\n const SANITIZE_NAMED_PROPS_PREFIX = 'user-content-';\n /* Keep element content when removing element? */\n let KEEP_CONTENT = true;\n /* If a `Node` is passed to sanitize(), then performs sanitization in-place instead\n * of importing it into a new Document and returning a sanitized copy */\n let IN_PLACE = false;\n /* Allow usage of profiles like html, svg and mathMl */\n let USE_PROFILES = {};\n /* Tags to ignore content of when KEEP_CONTENT is true */\n let FORBID_CONTENTS = null;\n const DEFAULT_FORBID_CONTENTS = addToSet({}, ['annotation-xml', 'audio', 'colgroup', 'desc', 'foreignobject', 'head', 'iframe', 'math', 'mi', 'mn', 'mo', 'ms', 'mtext', 'noembed', 'noframes', 'noscript', 'plaintext', 'script', 'style', 'svg', 'template', 'thead', 'title', 'video', 'xmp']);\n /* Tags that are safe for data: URIs */\n let DATA_URI_TAGS = null;\n const DEFAULT_DATA_URI_TAGS = addToSet({}, ['audio', 'video', 'img', 'source', 'image', 'track']);\n /* Attributes safe for values like \"javascript:\" */\n let URI_SAFE_ATTRIBUTES = null;\n const DEFAULT_URI_SAFE_ATTRIBUTES = addToSet({}, ['alt', 'class', 'for', 'id', 'label', 'name', 'pattern', 'placeholder', 'role', 'summary', 'title', 'value', 'style', 'xmlns']);\n const MATHML_NAMESPACE = 'http://www.w3.org/1998/Math/MathML';\n const SVG_NAMESPACE = 'http://www.w3.org/2000/svg';\n const HTML_NAMESPACE = 'http://www.w3.org/1999/xhtml';\n /* Document namespace */\n let NAMESPACE = HTML_NAMESPACE;\n let IS_EMPTY_INPUT = false;\n /* Allowed XHTML+XML namespaces */\n let ALLOWED_NAMESPACES = null;\n const DEFAULT_ALLOWED_NAMESPACES = addToSet({}, [MATHML_NAMESPACE, SVG_NAMESPACE, HTML_NAMESPACE], stringToString);\n let MATHML_TEXT_INTEGRATION_POINTS = addToSet({}, ['mi', 'mo', 'mn', 'ms', 'mtext']);\n let HTML_INTEGRATION_POINTS = addToSet({}, ['annotation-xml']);\n // Certain elements are allowed in both SVG and HTML\n // namespace. We need to specify them explicitly\n // so that they don't get erroneously deleted from\n // HTML namespace.\n const COMMON_SVG_AND_HTML_ELEMENTS = addToSet({}, ['title', 'style', 'font', 'a', 'script']);\n /* Parsing of strict XHTML documents */\n let PARSER_MEDIA_TYPE = null;\n const SUPPORTED_PARSER_MEDIA_TYPES = ['application/xhtml+xml', 'text/html'];\n const DEFAULT_PARSER_MEDIA_TYPE = 'text/html';\n let transformCaseFunc = null;\n /* Keep a reference to config to pass to hooks */\n let CONFIG = null;\n /* Ideally, do not touch anything below this line */\n /* ______________________________________________ */\n const formElement = document.createElement('form');\n const isRegexOrFunction = function isRegexOrFunction(testValue) {\n return testValue instanceof RegExp || testValue instanceof Function;\n };\n /**\n * _parseConfig\n *\n * @param cfg optional config literal\n */\n // eslint-disable-next-line complexity\n const _parseConfig = function _parseConfig() {\n let cfg = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n if (CONFIG && CONFIG === cfg) {\n return;\n }\n /* Shield configuration object from tampering */\n if (!cfg || typeof cfg !== 'object') {\n cfg = {};\n }\n /* Shield configuration object from prototype pollution */\n cfg = clone(cfg);\n PARSER_MEDIA_TYPE =\n // eslint-disable-next-line unicorn/prefer-includes\n SUPPORTED_PARSER_MEDIA_TYPES.indexOf(cfg.PARSER_MEDIA_TYPE) === -1 ? DEFAULT_PARSER_MEDIA_TYPE : cfg.PARSER_MEDIA_TYPE;\n // HTML tags and attributes are not case-sensitive, converting to lowercase. Keeping XHTML as is.\n transformCaseFunc = PARSER_MEDIA_TYPE === 'application/xhtml+xml' ? stringToString : stringToLowerCase;\n /* Set configuration parameters */\n ALLOWED_TAGS = objectHasOwnProperty(cfg, 'ALLOWED_TAGS') && arrayIsArray(cfg.ALLOWED_TAGS) ? addToSet({}, cfg.ALLOWED_TAGS, transformCaseFunc) : DEFAULT_ALLOWED_TAGS;\n ALLOWED_ATTR = objectHasOwnProperty(cfg, 'ALLOWED_ATTR') && arrayIsArray(cfg.ALLOWED_ATTR) ? addToSet({}, cfg.ALLOWED_ATTR, transformCaseFunc) : DEFAULT_ALLOWED_ATTR;\n ALLOWED_NAMESPACES = objectHasOwnProperty(cfg, 'ALLOWED_NAMESPACES') && arrayIsArray(cfg.ALLOWED_NAMESPACES) ? addToSet({}, cfg.ALLOWED_NAMESPACES, stringToString) : DEFAULT_ALLOWED_NAMESPACES;\n URI_SAFE_ATTRIBUTES = objectHasOwnProperty(cfg, 'ADD_URI_SAFE_ATTR') && arrayIsArray(cfg.ADD_URI_SAFE_ATTR) ? addToSet(clone(DEFAULT_URI_SAFE_ATTRIBUTES), cfg.ADD_URI_SAFE_ATTR, transformCaseFunc) : DEFAULT_URI_SAFE_ATTRIBUTES;\n DATA_URI_TAGS = objectHasOwnProperty(cfg, 'ADD_DATA_URI_TAGS') && arrayIsArray(cfg.ADD_DATA_URI_TAGS) ? addToSet(clone(DEFAULT_DATA_URI_TAGS), cfg.ADD_DATA_URI_TAGS, transformCaseFunc) : DEFAULT_DATA_URI_TAGS;\n FORBID_CONTENTS = objectHasOwnProperty(cfg, 'FORBID_CONTENTS') && arrayIsArray(cfg.FORBID_CONTENTS) ? addToSet({}, cfg.FORBID_CONTENTS, transformCaseFunc) : DEFAULT_FORBID_CONTENTS;\n FORBID_TAGS = objectHasOwnProperty(cfg, 'FORBID_TAGS') && arrayIsArray(cfg.FORBID_TAGS) ? addToSet({}, cfg.FORBID_TAGS, transformCaseFunc) : clone({});\n FORBID_ATTR = objectHasOwnProperty(cfg, 'FORBID_ATTR') && arrayIsArray(cfg.FORBID_ATTR) ? addToSet({}, cfg.FORBID_ATTR, transformCaseFunc) : clone({});\n USE_PROFILES = objectHasOwnProperty(cfg, 'USE_PROFILES') ? cfg.USE_PROFILES && typeof cfg.USE_PROFILES === 'object' ? clone(cfg.USE_PROFILES) : cfg.USE_PROFILES : false;\n ALLOW_ARIA_ATTR = cfg.ALLOW_ARIA_ATTR !== false; // Default true\n ALLOW_DATA_ATTR = cfg.ALLOW_DATA_ATTR !== false; // Default true\n ALLOW_UNKNOWN_PROTOCOLS = cfg.ALLOW_UNKNOWN_PROTOCOLS || false; // Default false\n ALLOW_SELF_CLOSE_IN_ATTR = cfg.ALLOW_SELF_CLOSE_IN_ATTR !== false; // Default true\n SAFE_FOR_TEMPLATES = cfg.SAFE_FOR_TEMPLATES || false; // Default false\n SAFE_FOR_XML = cfg.SAFE_FOR_XML !== false; // Default true\n WHOLE_DOCUMENT = cfg.WHOLE_DOCUMENT || false; // Default false\n RETURN_DOM = cfg.RETURN_DOM || false; // Default false\n RETURN_DOM_FRAGMENT = cfg.RETURN_DOM_FRAGMENT || false; // Default false\n RETURN_TRUSTED_TYPE = cfg.RETURN_TRUSTED_TYPE || false; // Default false\n FORCE_BODY = cfg.FORCE_BODY || false; // Default false\n SANITIZE_DOM = cfg.SANITIZE_DOM !== false; // Default true\n SANITIZE_NAMED_PROPS = cfg.SANITIZE_NAMED_PROPS || false; // Default false\n KEEP_CONTENT = cfg.KEEP_CONTENT !== false; // Default true\n IN_PLACE = cfg.IN_PLACE || false; // Default false\n IS_ALLOWED_URI$1 = isRegex(cfg.ALLOWED_URI_REGEXP) ? cfg.ALLOWED_URI_REGEXP : IS_ALLOWED_URI; // Default regexp\n NAMESPACE = typeof cfg.NAMESPACE === 'string' ? cfg.NAMESPACE : HTML_NAMESPACE; // Default HTML namespace\n MATHML_TEXT_INTEGRATION_POINTS = objectHasOwnProperty(cfg, 'MATHML_TEXT_INTEGRATION_POINTS') && cfg.MATHML_TEXT_INTEGRATION_POINTS && typeof cfg.MATHML_TEXT_INTEGRATION_POINTS === 'object' ? clone(cfg.MATHML_TEXT_INTEGRATION_POINTS) : addToSet({}, ['mi', 'mo', 'mn', 'ms', 'mtext']); // Default built-in map\n HTML_INTEGRATION_POINTS = objectHasOwnProperty(cfg, 'HTML_INTEGRATION_POINTS') && cfg.HTML_INTEGRATION_POINTS && typeof cfg.HTML_INTEGRATION_POINTS === 'object' ? clone(cfg.HTML_INTEGRATION_POINTS) : addToSet({}, ['annotation-xml']); // Default built-in map\n const customElementHandling = objectHasOwnProperty(cfg, 'CUSTOM_ELEMENT_HANDLING') && cfg.CUSTOM_ELEMENT_HANDLING && typeof cfg.CUSTOM_ELEMENT_HANDLING === 'object' ? clone(cfg.CUSTOM_ELEMENT_HANDLING) : create(null);\n CUSTOM_ELEMENT_HANDLING = create(null);\n if (objectHasOwnProperty(customElementHandling, 'tagNameCheck') && isRegexOrFunction(customElementHandling.tagNameCheck)) {\n CUSTOM_ELEMENT_HANDLING.tagNameCheck = customElementHandling.tagNameCheck; // Default undefined\n }\n if (objectHasOwnProperty(customElementHandling, 'attributeNameCheck') && isRegexOrFunction(customElementHandling.attributeNameCheck)) {\n CUSTOM_ELEMENT_HANDLING.attributeNameCheck = customElementHandling.attributeNameCheck; // Default undefined\n }\n if (objectHasOwnProperty(customElementHandling, 'allowCustomizedBuiltInElements') && typeof customElementHandling.allowCustomizedBuiltInElements === 'boolean') {\n CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements = customElementHandling.allowCustomizedBuiltInElements; // Default undefined\n }\n if (SAFE_FOR_TEMPLATES) {\n ALLOW_DATA_ATTR = false;\n }\n if (RETURN_DOM_FRAGMENT) {\n RETURN_DOM = true;\n }\n /* Parse profile info */\n if (USE_PROFILES) {\n ALLOWED_TAGS = addToSet({}, text);\n ALLOWED_ATTR = create(null);\n if (USE_PROFILES.html === true) {\n addToSet(ALLOWED_TAGS, html$1);\n addToSet(ALLOWED_ATTR, html);\n }\n if (USE_PROFILES.svg === true) {\n addToSet(ALLOWED_TAGS, svg$1);\n addToSet(ALLOWED_ATTR, svg);\n addToSet(ALLOWED_ATTR, xml);\n }\n if (USE_PROFILES.svgFilters === true) {\n addToSet(ALLOWED_TAGS, svgFilters);\n addToSet(ALLOWED_ATTR, svg);\n addToSet(ALLOWED_ATTR, xml);\n }\n if (USE_PROFILES.mathMl === true) {\n addToSet(ALLOWED_TAGS, mathMl$1);\n addToSet(ALLOWED_ATTR, mathMl);\n addToSet(ALLOWED_ATTR, xml);\n }\n }\n /* Always reset function-based ADD_TAGS / ADD_ATTR checks to prevent\n * leaking across calls when switching from function to array config */\n EXTRA_ELEMENT_HANDLING.tagCheck = null;\n EXTRA_ELEMENT_HANDLING.attributeCheck = null;\n /* Merge configuration parameters */\n if (objectHasOwnProperty(cfg, 'ADD_TAGS')) {\n if (typeof cfg.ADD_TAGS === 'function') {\n EXTRA_ELEMENT_HANDLING.tagCheck = cfg.ADD_TAGS;\n } else if (arrayIsArray(cfg.ADD_TAGS)) {\n if (ALLOWED_TAGS === DEFAULT_ALLOWED_TAGS) {\n ALLOWED_TAGS = clone(ALLOWED_TAGS);\n }\n addToSet(ALLOWED_TAGS, cfg.ADD_TAGS, transformCaseFunc);\n }\n }\n if (objectHasOwnProperty(cfg, 'ADD_ATTR')) {\n if (typeof cfg.ADD_ATTR === 'function') {\n EXTRA_ELEMENT_HANDLING.attributeCheck = cfg.ADD_ATTR;\n } else if (arrayIsArray(cfg.ADD_ATTR)) {\n if (ALLOWED_ATTR === DEFAULT_ALLOWED_ATTR) {\n ALLOWED_ATTR = clone(ALLOWED_ATTR);\n }\n addToSet(ALLOWED_ATTR, cfg.ADD_ATTR, transformCaseFunc);\n }\n }\n if (objectHasOwnProperty(cfg, 'ADD_URI_SAFE_ATTR') && arrayIsArray(cfg.ADD_URI_SAFE_ATTR)) {\n addToSet(URI_SAFE_ATTRIBUTES, cfg.ADD_URI_SAFE_ATTR, transformCaseFunc);\n }\n if (objectHasOwnProperty(cfg, 'FORBID_CONTENTS') && arrayIsArray(cfg.FORBID_CONTENTS)) {\n if (FORBID_CONTENTS === DEFAULT_FORBID_CONTENTS) {\n FORBID_CONTENTS = clone(FORBID_CONTENTS);\n }\n addToSet(FORBID_CONTENTS, cfg.FORBID_CONTENTS, transformCaseFunc);\n }\n if (objectHasOwnProperty(cfg, 'ADD_FORBID_CONTENTS') && arrayIsArray(cfg.ADD_FORBID_CONTENTS)) {\n if (FORBID_CONTENTS === DEFAULT_FORBID_CONTENTS) {\n FORBID_CONTENTS = clone(FORBID_CONTENTS);\n }\n addToSet(FORBID_CONTENTS, cfg.ADD_FORBID_CONTENTS, transformCaseFunc);\n }\n /* Add #text in case KEEP_CONTENT is set to true */\n if (KEEP_CONTENT) {\n ALLOWED_TAGS['#text'] = true;\n }\n /* Add html, head and body to ALLOWED_TAGS in case WHOLE_DOCUMENT is true */\n if (WHOLE_DOCUMENT) {\n addToSet(ALLOWED_TAGS, ['html', 'head', 'body']);\n }\n /* Add tbody to ALLOWED_TAGS in case tables are permitted, see #286, #365 */\n if (ALLOWED_TAGS.table) {\n addToSet(ALLOWED_TAGS, ['tbody']);\n delete FORBID_TAGS.tbody;\n }\n if (cfg.TRUSTED_TYPES_POLICY) {\n if (typeof cfg.TRUSTED_TYPES_POLICY.createHTML !== 'function') {\n throw typeErrorCreate('TRUSTED_TYPES_POLICY configuration option must provide a \"createHTML\" hook.');\n }\n if (typeof cfg.TRUSTED_TYPES_POLICY.createScriptURL !== 'function') {\n throw typeErrorCreate('TRUSTED_TYPES_POLICY configuration option must provide a \"createScriptURL\" hook.');\n }\n // Overwrite existing TrustedTypes policy.\n const previousTrustedTypesPolicy = trustedTypesPolicy;\n trustedTypesPolicy = cfg.TRUSTED_TYPES_POLICY;\n // Sign local variables required by `sanitize`. If the supplied policy's\n // `createHTML` is circular (i.e. it calls `DOMPurify.sanitize`), this\n // throws via the re-entrancy guard. Restore the previous policy first so\n // the instance is not left in a poisoned state. See #1422.\n try {\n emptyHTML = _createTrustedHTML('');\n } catch (error) {\n trustedTypesPolicy = previousTrustedTypesPolicy;\n throw error;\n }\n } else {\n // Uninitialized policy, attempt to initialize the internal dompurify policy.\n if (trustedTypesPolicy === undefined && cfg.TRUSTED_TYPES_POLICY !== null) {\n trustedTypesPolicy = _createTrustedTypesPolicy(trustedTypes, currentScript);\n }\n // If creating the internal policy succeeded sign internal variables.\n // Note: a falsy `trustedTypesPolicy` (null when policy creation failed or\n // was skipped via `TRUSTED_TYPES_POLICY: null`, or undefined when no\n // policy has been initialized yet) must be excluded here, otherwise we\n // would call `.createHTML` on a non-policy and throw. See #1422.\n if (trustedTypesPolicy && typeof emptyHTML === 'string') {\n emptyHTML = _createTrustedHTML('');\n }\n }\n /*\n * Mirror the clone-before-mutate pattern already applied above for\n * cfg.ADD_TAGS / cfg.ADD_ATTR: if any uponSanitize* hook is\n * registered AND the set still points at the default constant,\n * clone it. The hook then mutates the clone (in-call widening\n * still works exactly as documented) and the next default-cfg\n * call rebinds to the untouched original via the reassignment at\n * the top of this function.\n */\n if ((hooks.uponSanitizeElement.length > 0 || hooks.uponSanitizeAttribute.length > 0) && ALLOWED_TAGS === DEFAULT_ALLOWED_TAGS) {\n ALLOWED_TAGS = clone(ALLOWED_TAGS);\n }\n if (hooks.uponSanitizeAttribute.length > 0 && ALLOWED_ATTR === DEFAULT_ALLOWED_ATTR) {\n ALLOWED_ATTR = clone(ALLOWED_ATTR);\n }\n // Prevent further manipulation of configuration.\n // Not available in IE8, Safari 5, etc.\n if (freeze) {\n freeze(cfg);\n }\n CONFIG = cfg;\n };\n /* Keep track of all possible SVG and MathML tags\n * so that we can perform the namespace checks\n * correctly. */\n const ALL_SVG_TAGS = addToSet({}, [...svg$1, ...svgFilters, ...svgDisallowed]);\n const ALL_MATHML_TAGS = addToSet({}, [...mathMl$1, ...mathMlDisallowed]);\n /**\n * @param element a DOM element whose namespace is being checked\n * @returns Return false if the element has a\n * namespace that a spec-compliant parser would never\n * return. Return true otherwise.\n */\n const _checkValidNamespace = function _checkValidNamespace(element) {\n let parent = getParentNode(element);\n // In JSDOM, if we're inside shadow DOM, then parentNode\n // can be null. We just simulate parent in this case.\n if (!parent || !parent.tagName) {\n parent = {\n namespaceURI: NAMESPACE,\n tagName: 'template'\n };\n }\n const tagName = stringToLowerCase(element.tagName);\n const parentTagName = stringToLowerCase(parent.tagName);\n if (!ALLOWED_NAMESPACES[element.namespaceURI]) {\n return false;\n }\n if (element.namespaceURI === SVG_NAMESPACE) {\n // The only way to switch from HTML namespace to SVG\n // is via <svg>. If it happens via any other tag, then\n // it should be killed.\n if (parent.namespaceURI === HTML_NAMESPACE) {\n return tagName === 'svg';\n }\n // The only way to switch from MathML to SVG is via`\n // svg if parent is either <annotation-xml> or MathML\n // text integration points.\n if (parent.namespaceURI === MATHML_NAMESPACE) {\n return tagName === 'svg' && (parentTagName === 'annotation-xml' || MATHML_TEXT_INTEGRATION_POINTS[parentTagName]);\n }\n // We only allow elements that are defined in SVG\n // spec. All others are disallowed in SVG namespace.\n return Boolean(ALL_SVG_TAGS[tagName]);\n }\n if (element.namespaceURI === MATHML_NAMESPACE) {\n // The only way to switch from HTML namespace to MathML\n // is via <math>. If it happens via any other tag, then\n // it should be killed.\n if (parent.namespaceURI === HTML_NAMESPACE) {\n return tagName === 'math';\n }\n // The only way to switch from SVG to MathML is via\n // <math> and HTML integration points\n if (parent.namespaceURI === SVG_NAMESPACE) {\n return tagName === 'math' && HTML_INTEGRATION_POINTS[parentTagName];\n }\n // We only allow elements that are defined in MathML\n // spec. All others are disallowed in MathML namespace.\n return Boolean(ALL_MATHML_TAGS[tagName]);\n }\n if (element.namespaceURI === HTML_NAMESPACE) {\n // The only way to switch from SVG to HTML is via\n // HTML integration points, and from MathML to HTML\n // is via MathML text integration points\n if (parent.namespaceURI === SVG_NAMESPACE && !HTML_INTEGRATION_POINTS[parentTagName]) {\n return false;\n }\n if (parent.namespaceURI === MATHML_NAMESPACE && !MATHML_TEXT_INTEGRATION_POINTS[parentTagName]) {\n return false;\n }\n // We disallow tags that are specific for MathML\n // or SVG and should never appear in HTML namespace\n return !ALL_MATHML_TAGS[tagName] && (COMMON_SVG_AND_HTML_ELEMENTS[tagName] || !ALL_SVG_TAGS[tagName]);\n }\n // For XHTML and XML documents that support custom namespaces\n if (PARSER_MEDIA_TYPE === 'application/xhtml+xml' && ALLOWED_NAMESPACES[element.namespaceURI]) {\n return true;\n }\n // The code should never reach this place (this means\n // that the element somehow got namespace that is not\n // HTML, SVG, MathML or allowed via ALLOWED_NAMESPACES).\n // Return false just in case.\n return false;\n };\n /**\n * _forceRemove\n *\n * @param node a DOM node\n */\n const _forceRemove = function _forceRemove(node) {\n arrayPush(DOMPurify.removed, {\n element: node\n });\n try {\n // eslint-disable-next-line unicorn/prefer-dom-node-remove\n getParentNode(node).removeChild(node);\n } catch (_) {\n remove(node);\n }\n };\n /**\n * _removeAttribute\n *\n * @param name an Attribute name\n * @param element a DOM node\n */\n const _removeAttribute = function _removeAttribute(name, element) {\n try {\n arrayPush(DOMPurify.removed, {\n attribute: element.getAttributeNode(name),\n from: element\n });\n } catch (_) {\n arrayPush(DOMPurify.removed, {\n attribute: null,\n from: element\n });\n }\n element.removeAttribute(name);\n // We void attribute values for unremovable \"is\" attributes\n if (name === 'is') {\n if (RETURN_DOM || RETURN_DOM_FRAGMENT) {\n try {\n _forceRemove(element);\n } catch (_) {}\n } else {\n try {\n element.setAttribute(name, '');\n } catch (_) {}\n }\n }\n };\n /**\n * _initDocument\n *\n * @param dirty - a string of dirty markup\n * @return a DOM, filled with the dirty markup\n */\n const _initDocument = function _initDocument(dirty) {\n /* Create a HTML document */\n let doc = null;\n let leadingWhitespace = null;\n if (FORCE_BODY) {\n dirty = '<remove></remove>' + dirty;\n } else {\n /* If FORCE_BODY isn't used, leading whitespace needs to be preserved manually */\n const matches = stringMatch(dirty, /^[\\r\\n\\t ]+/);\n leadingWhitespace = matches && matches[0];\n }\n if (PARSER_MEDIA_TYPE === 'application/xhtml+xml' && NAMESPACE === HTML_NAMESPACE) {\n // Root of XHTML doc must contain xmlns declaration (see https://www.w3.org/TR/xhtml1/normative.html#strict)\n dirty = '<html xmlns=\"http://www.w3.org/1999/xhtml\"><head></head><body>' + dirty + '</body></html>';\n }\n const dirtyPayload = trustedTypesPolicy ? _createTrustedHTML(dirty) : dirty;\n /*\n * Use the DOMParser API by default, fallback later if needs be\n * DOMParser not work for svg when has multiple root element.\n */\n if (NAMESPACE === HTML_NAMESPACE) {\n try {\n doc = new DOMParser().parseFromString(dirtyPayload, PARSER_MEDIA_TYPE);\n } catch (_) {}\n }\n /* Use createHTMLDocument in case DOMParser is not available */\n if (!doc || !doc.documentElement) {\n doc = implementation.createDocument(NAMESPACE, 'template', null);\n try {\n doc.documentElement.innerHTML = IS_EMPTY_INPUT ? emptyHTML : dirtyPayload;\n } catch (_) {\n // Syntax error if dirtyPayload is invalid xml\n }\n }\n const body = doc.body || doc.documentElement;\n if (dirty && leadingWhitespace) {\n body.insertBefore(document.createTextNode(leadingWhitespace), body.childNodes[0] || null);\n }\n /* Work on whole document or just its body */\n if (NAMESPACE === HTML_NAMESPACE) {\n return getElementsByTagName.call(doc, WHOLE_DOCUMENT ? 'html' : 'body')[0];\n }\n return WHOLE_DOCUMENT ? doc.documentElement : body;\n };\n /**\n * Creates a NodeIterator object that you can use to traverse filtered lists of nodes or elements in a document.\n *\n * @param root The root element or node to start traversing on.\n * @return The created NodeIterator\n */\n const _createNodeIterator = function _createNodeIterator(root) {\n return createNodeIterator.call(root.ownerDocument || root, root,\n // eslint-disable-next-line no-bitwise\n NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_COMMENT | NodeFilter.SHOW_TEXT | NodeFilter.SHOW_PROCESSING_INSTRUCTION | NodeFilter.SHOW_CDATA_SECTION, null);\n };\n /**\n * Strip template-engine expressions ({{...}}, ${...}, <%...%>) from the\n * character data of an element subtree. Used as the final safety net for\n * SAFE_FOR_TEMPLATES on every DOM-returning code path so that expressions\n * which only form after text-node normalization (e.g. fragments split across\n * stripped elements) cannot survive into a template-evaluating framework.\n *\n * Walks text/comment/CDATA/processing-instruction nodes and mutates `.data`\n * in place rather than round-tripping through innerHTML. This preserves\n * descendant node references (important for IN_PLACE callers), avoids a\n * serialize/reparse cycle, and reads literal character data — which means\n * `<%...%>` in text content matches the ERB regex against its real bytes\n * instead of the HTML-entity-escaped form innerHTML would produce.\n *\n * Attribute values are not visited here; SAFE_FOR_TEMPLATES handling for\n * attributes is performed during the per-node `_sanitizeAttributes` pass.\n *\n * @param node The root element whose character data should be scrubbed.\n */\n const _scrubTemplateExpressions2 = function _scrubTemplateExpressions(node) {\n var _node$querySelectorAl, _node$querySelectorAl2;\n node.normalize();\n const walker = createNodeIterator.call(node.ownerDocument || node, node,\n // eslint-disable-next-line no-bitwise\n NodeFilter.SHOW_TEXT | NodeFilter.SHOW_COMMENT | NodeFilter.SHOW_CDATA_SECTION | NodeFilter.SHOW_PROCESSING_INSTRUCTION, null);\n let currentNode = walker.nextNode();\n while (currentNode) {\n let data = currentNode.data;\n arrayForEach([MUSTACHE_EXPR$1, ERB_EXPR$1, TMPLIT_EXPR$1], expr => {\n data = stringReplace(data, expr, ' ');\n });\n currentNode.data = data;\n currentNode = walker.nextNode();\n }\n // NodeIterator does not descend into <template>.content per the DOM spec,\n // so we must explicitly recurse into each template's content fragment,\n // mirroring the approach used by _sanitizeShadowDOM.\n const templates = (_node$querySelectorAl = (_node$querySelectorAl2 = node.querySelectorAll) === null || _node$querySelectorAl2 === void 0 ? void 0 : _node$querySelectorAl2.call(node, 'template')) !== null && _node$querySelectorAl !== void 0 ? _node$querySelectorAl : [];\n arrayForEach(Array.from(templates), tmpl => {\n if (_isDocumentFragment(tmpl.content)) {\n _scrubTemplateExpressions2(tmpl.content);\n }\n });\n };\n /**\n * _isClobbered\n *\n * Detect DOM-clobbering on HTMLFormElement nodes. Form is the only HTML\n * interface with [LegacyOverrideBuiltIns]; a descendant element with a\n * `name` attribute matching a prototype property shadows that property\n * on direct reads. We use this check at the IN_PLACE entry-point and\n * during attribute sanitization to refuse clobbered forms.\n *\n * @param element element to check for clobbering attacks\n * @return true if clobbered, false if safe\n */\n const _isClobbered = function _isClobbered(element) {\n // Realm-independent tag-name probe. If we can't determine the tag\n // name at all, we can't reason about clobbering — return false\n // (the caller's other defences still apply).\n const realTagName = getNodeName ? getNodeName(element) : null;\n if (typeof realTagName !== 'string') {\n return false;\n }\n if (transformCaseFunc(realTagName) !== 'form') {\n return false;\n }\n return typeof element.nodeName !== 'string' || typeof element.textContent !== 'string' || typeof element.removeChild !== 'function' ||\n // Realm-safe NamedNodeMap detection: equality against the cached\n // prototype getter. Clobbered .attributes (e.g. <input name=\"attributes\">)\n // makes the direct read diverge from the cached read; a clean form\n // (same-realm OR foreign-realm) has both reads pointing at the same\n // canonical NamedNodeMap.\n element.attributes !== getAttributes(element) || typeof element.removeAttribute !== 'function' || typeof element.setAttribute !== 'function' || typeof element.namespaceURI !== 'string' || typeof element.insertBefore !== 'function' || typeof element.hasChildNodes !== 'function' ||\n // NodeType clobbering probe. Cached Node.prototype.nodeType getter\n // returns the integer 1 for any Element regardless of realm; direct\n // read on a clobbered form (e.g. <input name=\"nodeType\">) returns\n // the named child element. Cheap addition — nodeType is read from\n // an internal slot, no serialization cost — and removes a residual\n // clobbering surface used by several mXSS / PI / comment branches\n // in _sanitizeElements that compare currentNode.nodeType directly.\n element.nodeType !== getNodeType(element) ||\n // HTMLFormElement has [LegacyOverrideBuiltIns]: a descendant named\n // \"childNodes\" shadows the prototype getter. Direct reads of\n // form.childNodes from a clobbered form return the named child\n // instead of the real NodeList, so any walk that reads it directly\n // skips the form's real children. Compare the direct read to the\n // cached Node.prototype getter — when the form's named-property\n // getter intercepts the read, the two values differ and we flag\n // the form. This catches every clobbering child type (input,\n // select, etc.) regardless of whether the named child happens to\n // carry a numeric .length, which a typeof-based probe would miss\n // (e.g. HTMLSelectElement.length is a defined unsigned-long).\n element.childNodes !== getChildNodes(element);\n };\n /**\n * Checks whether the given value is a DocumentFragment from any realm.\n *\n * The realm-independent replacement reads `nodeType` through the cached\n * Node.prototype getter and compares to the DOCUMENT_FRAGMENT_NODE\n * constant (11). nodeType is a numeric value resolved from the node's\n * internal slot, identical across realms for the same kind of node.\n *\n * @param value object to check\n * @return true if value is a DocumentFragment-shaped node from any realm\n */\n const _isDocumentFragment = function _isDocumentFragment(value) {\n if (!getNodeType || typeof value !== 'object' || value === null) {\n return false;\n }\n try {\n return getNodeType(value) === NODE_TYPE.documentFragment;\n } catch (_) {\n return false;\n }\n };\n /**\n * Checks whether the given object is a DOM node, including nodes that\n * originate from a different window/realm (e.g. an iframe's\n * contentDocument). The previous `value instanceof Node` check was\n * realm-bound: nodes from a different window failed it, causing\n * sanitize() to silently stringify them and reset IN_PLACE to false,\n * returning the original node unsanitized. See GHSA-4w3q-35jp-p934.\n *\n * @param value object to check whether it's a DOM node\n * @return true if value is a DOM node from any realm\n */\n const _isNode = function _isNode(value) {\n if (!getNodeType || typeof value !== 'object' || value === null) {\n return false;\n }\n try {\n return typeof getNodeType(value) === 'number';\n } catch (_) {\n return false;\n }\n };\n function _executeHooks(hooks, currentNode, data) {\n arrayForEach(hooks, hook => {\n hook.call(DOMPurify, currentNode, data, CONFIG);\n });\n }\n /**\n * _sanitizeElements\n *\n * @protect nodeName\n * @protect textContent\n * @protect removeChild\n * @param currentNode to check for permission to exist\n * @return true if node was killed, false if left alive\n */\n const _sanitizeElements = function _sanitizeElements(currentNode) {\n let content = null;\n /* Execute a hook if present */\n _executeHooks(hooks.beforeSanitizeElements, currentNode, null);\n /* Check if element is clobbered or can clobber */\n if (_isClobbered(currentNode)) {\n _forceRemove(currentNode);\n return true;\n }\n /* Now let's check the element's type and name */\n const tagName = transformCaseFunc(getNodeName ? getNodeName(currentNode) : currentNode.nodeName);\n /* Execute a hook if present */\n _executeHooks(hooks.uponSanitizeElement, currentNode, {\n tagName,\n allowedTags: ALLOWED_TAGS\n });\n /* Detect mXSS attempts abusing namespace confusion */\n if (SAFE_FOR_XML && currentNode.hasChildNodes() && !_isNode(currentNode.firstElementChild) && regExpTest(/<[/\\w!]/g, currentNode.innerHTML) && regExpTest(/<[/\\w!]/g, currentNode.textContent)) {\n _forceRemove(currentNode);\n return true;\n }\n /* Remove risky CSS construction leading to mXSS */\n if (SAFE_FOR_XML && currentNode.namespaceURI === HTML_NAMESPACE && tagName === 'style' && _isNode(currentNode.firstElementChild)) {\n _forceRemove(currentNode);\n return true;\n }\n /* Remove any occurrence of processing instructions */\n if (currentNode.nodeType === NODE_TYPE.progressingInstruction) {\n _forceRemove(currentNode);\n return true;\n }\n /* Remove any kind of possibly harmful comments */\n if (SAFE_FOR_XML && currentNode.nodeType === NODE_TYPE.comment && regExpTest(/<[/\\w]/g, currentNode.data)) {\n _forceRemove(currentNode);\n return true;\n }\n /* Remove element if anything forbids its presence */\n if (FORBID_TAGS[tagName] || !(EXTRA_ELEMENT_HANDLING.tagCheck instanceof Function && EXTRA_ELEMENT_HANDLING.tagCheck(tagName)) && !ALLOWED_TAGS[tagName]) {\n /* Check if we have a custom element to handle */\n if (!FORBID_TAGS[tagName] && _isBasicCustomElement(tagName)) {\n if (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, tagName)) {\n return false;\n }\n if (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(tagName)) {\n return false;\n }\n }\n /* Keep content except for bad-listed elements.\n Use the cached prototype getters exclusively — the previous code\n had `|| currentNode.parentNode` / `|| currentNode.childNodes`\n fallbacks, but the cached getters always return the canonical\n value (or null for a real parent-less node), so the fallback\n path was dead in safe cases and a clobbering surface in unsafe\n ones. Falsy cached results stay falsy; the `if (childNodes &&\n parentNode)` check already gates correctly. */\n if (KEEP_CONTENT && !FORBID_CONTENTS[tagName]) {\n const parentNode = getParentNode(currentNode);\n const childNodes = getChildNodes(currentNode);\n if (childNodes && parentNode) {\n const childCount = childNodes.length;\n for (let i = childCount - 1; i >= 0; --i) {\n const childClone = cloneNode(childNodes[i], true);\n parentNode.insertBefore(childClone, getNextSibling(currentNode));\n }\n }\n }\n _forceRemove(currentNode);\n return true;\n }\n /* Check whether element has a valid namespace.\n Realm-safe check (GHSA-hpcv-96wg-7vj8): use the cached Node.prototype\n nodeType getter rather than `instanceof Element`, which is realm-\n bound and short-circuits to false for any node minted in a different\n realm — letting a foreign-realm element with a forbidden namespace\n slip past the namespace check entirely. */\n const nt = getNodeType ? getNodeType(currentNode) : currentNode.nodeType;\n if (nt === NODE_TYPE.element && !_checkValidNamespace(currentNode)) {\n _forceRemove(currentNode);\n return true;\n }\n /* Make sure that older browsers don't get fallback-tag mXSS */\n if ((tagName === 'noscript' || tagName === 'noembed' || tagName === 'noframes') && regExpTest(/<\\/no(script|embed|frames)/i, currentNode.innerHTML)) {\n _forceRemove(currentNode);\n return true;\n }\n /* Sanitize element content to be template-safe */\n if (SAFE_FOR_TEMPLATES && currentNode.nodeType === NODE_TYPE.text) {\n /* Get the element's text content */\n content = currentNode.textContent;\n arrayForEach([MUSTACHE_EXPR$1, ERB_EXPR$1, TMPLIT_EXPR$1], expr => {\n content = stringReplace(content, expr, ' ');\n });\n if (currentNode.textContent !== content) {\n arrayPush(DOMPurify.removed, {\n element: currentNode.cloneNode()\n });\n currentNode.textContent = content;\n }\n }\n /* Execute a hook if present */\n _executeHooks(hooks.afterSanitizeElements, currentNode, null);\n return false;\n };\n /**\n * _isValidAttribute\n *\n * @param lcTag Lowercase tag name of containing element.\n * @param lcName Lowercase attribute name.\n * @param value Attribute value.\n * @return Returns true if `value` is valid, otherwise false.\n */\n // eslint-disable-next-line complexity\n const _isValidAttribute = function _isValidAttribute(lcTag, lcName, value) {\n /* FORBID_ATTR must always win, even if ADD_ATTR predicate would allow it */\n if (FORBID_ATTR[lcName]) {\n return false;\n }\n /* Make sure attribute cannot clobber */\n if (SANITIZE_DOM && (lcName === 'id' || lcName === 'name') && (value in document || value in formElement)) {\n return false;\n }\n const nameIsPermitted = ALLOWED_ATTR[lcName] || EXTRA_ELEMENT_HANDLING.attributeCheck instanceof Function && EXTRA_ELEMENT_HANDLING.attributeCheck(lcName, lcTag);\n /* Allow valid data-* attributes: At least one character after \"-\"\n (https://html.spec.whatwg.org/multipage/dom.html#embedding-custom-non-visible-data-with-the-data-*-attributes)\n XML-compatible (https://html.spec.whatwg.org/multipage/infrastructure.html#xml-compatible and http://www.w3.org/TR/xml/#d0e804)\n We don't need to check the value; it's always URI safe. */\n if (ALLOW_DATA_ATTR && !FORBID_ATTR[lcName] && regExpTest(DATA_ATTR$1, lcName)) ; else if (ALLOW_ARIA_ATTR && regExpTest(ARIA_ATTR$1, lcName)) ; else if (!nameIsPermitted || FORBID_ATTR[lcName]) {\n if (\n // First condition does a very basic check if a) it's basically a valid custom element tagname AND\n // b) if the tagName passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck\n // and c) if the attribute name passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.attributeNameCheck\n _isBasicCustomElement(lcTag) && (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, lcTag) || CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(lcTag)) && (CUSTOM_ELEMENT_HANDLING.attributeNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.attributeNameCheck, lcName) || CUSTOM_ELEMENT_HANDLING.attributeNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.attributeNameCheck(lcName, lcTag)) ||\n // Alternative, second condition checks if it's an `is`-attribute, AND\n // the value passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck\n lcName === 'is' && CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements && (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, value) || CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(value))) ; else {\n return false;\n }\n /* Check value is safe. First, is attr inert? If so, is safe */\n } else if (URI_SAFE_ATTRIBUTES[lcName]) ; else if (regExpTest(IS_ALLOWED_URI$1, stringReplace(value, ATTR_WHITESPACE$1, ''))) ; else if ((lcName === 'src' || lcName === 'xlink:href' || lcName === 'href') && lcTag !== 'script' && stringIndexOf(value, 'data:') === 0 && DATA_URI_TAGS[lcTag]) ; else if (ALLOW_UNKNOWN_PROTOCOLS && !regExpTest(IS_SCRIPT_OR_DATA$1, stringReplace(value, ATTR_WHITESPACE$1, ''))) ; else if (value) {\n return false;\n } else ;\n return true;\n };\n /* Names the HTML spec reserves from valid-custom-element-name; these must\n * never be treated as basic custom elements even when a permissive\n * CUSTOM_ELEMENT_HANDLING.tagNameCheck is configured. */\n const RESERVED_CUSTOM_ELEMENT_NAMES = addToSet({}, ['annotation-xml', 'color-profile', 'font-face', 'font-face-format', 'font-face-name', 'font-face-src', 'font-face-uri', 'missing-glyph']);\n /**\n * _isBasicCustomElement\n * checks if at least one dash is included in tagName, and it's not the first char\n * for more sophisticated checking see https://github.com/sindresorhus/validate-element-name\n *\n * @param tagName name of the tag of the node to sanitize\n * @returns Returns true if the tag name meets the basic criteria for a custom element, otherwise false.\n */\n const _isBasicCustomElement = function _isBasicCustomElement(tagName) {\n return !RESERVED_CUSTOM_ELEMENT_NAMES[stringToLowerCase(tagName)] && regExpTest(CUSTOM_ELEMENT$1, tagName);\n };\n /**\n * _sanitizeAttributes\n *\n * @protect attributes\n * @protect nodeName\n * @protect removeAttribute\n * @protect setAttribute\n *\n * @param currentNode to sanitize\n */\n const _sanitizeAttributes = function _sanitizeAttributes(currentNode) {\n /* Execute a hook if present */\n _executeHooks(hooks.beforeSanitizeAttributes, currentNode, null);\n const attributes = currentNode.attributes;\n /* Check if we have attributes; if not we might have a text node */\n if (!attributes || _isClobbered(currentNode)) {\n return;\n }\n const hookEvent = {\n attrName: '',\n attrValue: '',\n keepAttr: true,\n allowedAttributes: ALLOWED_ATTR,\n forceKeepAttr: undefined\n };\n let l = attributes.length;\n /* Go backwards over all attributes; safely remove bad ones */\n while (l--) {\n const attr = attributes[l];\n const name = attr.name,\n namespaceURI = attr.namespaceURI,\n attrValue = attr.value;\n const lcName = transformCaseFunc(name);\n const initValue = attrValue;\n let value = name === 'value' ? initValue : stringTrim(initValue);\n /* Execute a hook if present */\n hookEvent.attrName = lcName;\n hookEvent.attrValue = value;\n hookEvent.keepAttr = true;\n hookEvent.forceKeepAttr = undefined; // Allows developers to see this is a property they can set\n _executeHooks(hooks.uponSanitizeAttribute, currentNode, hookEvent);\n value = hookEvent.attrValue;\n /* Full DOM Clobbering protection via namespace isolation,\n * Prefix id and name attributes with `user-content-`\n */\n if (SANITIZE_NAMED_PROPS && (lcName === 'id' || lcName === 'name') && stringIndexOf(value, SANITIZE_NAMED_PROPS_PREFIX) !== 0) {\n // Remove the attribute with this value\n _removeAttribute(name, currentNode);\n // Prefix the value and later re-create the attribute with the sanitized value\n value = SANITIZE_NAMED_PROPS_PREFIX + value;\n }\n // Else: already prefixed, leave the attribute alone — the prefix is\n // itself the clobbering protection, and re-applying it is incorrect.\n /* Work around a security issue with comments inside attributes */\n if (SAFE_FOR_XML && regExpTest(/((--!?|])>)|<\\/(style|script|title|xmp|textarea|noscript|iframe|noembed|noframes)/i, value)) {\n _removeAttribute(name, currentNode);\n continue;\n }\n /* Make sure we cannot easily use animated hrefs, even if animations are allowed */\n if (lcName === 'attributename' && stringMatch(value, 'href')) {\n _removeAttribute(name, currentNode);\n continue;\n }\n /* Did the hooks approve of the attribute? */\n if (hookEvent.forceKeepAttr) {\n continue;\n }\n /* Did the hooks approve of the attribute? */\n if (!hookEvent.keepAttr) {\n _removeAttribute(name, currentNode);\n continue;\n }\n /* Work around a security issue in jQuery 3.0 */\n if (!ALLOW_SELF_CLOSE_IN_ATTR && regExpTest(/\\/>/i, value)) {\n _removeAttribute(name, currentNode);\n continue;\n }\n /* Sanitize attribute content to be template-safe */\n if (SAFE_FOR_TEMPLATES) {\n arrayForEach([MUSTACHE_EXPR$1, ERB_EXPR$1, TMPLIT_EXPR$1], expr => {\n value = stringReplace(value, expr, ' ');\n });\n }\n /* Is `value` valid for this attribute? */\n const lcTag = transformCaseFunc(currentNode.nodeName);\n if (!_isValidAttribute(lcTag, lcName, value)) {\n _removeAttribute(name, currentNode);\n continue;\n }\n /* Handle attributes that require Trusted Types */\n if (trustedTypesPolicy && typeof trustedTypes === 'object' && typeof trustedTypes.getAttributeType === 'function') {\n if (namespaceURI) ; else {\n switch (trustedTypes.getAttributeType(lcTag, lcName)) {\n case 'TrustedHTML':\n {\n value = _createTrustedHTML(value);\n break;\n }\n case 'TrustedScriptURL':\n {\n value = trustedTypesPolicy.createScriptURL(value);\n break;\n }\n }\n }\n }\n /* Handle invalid data-* attribute set by try-catching it */\n if (value !== initValue) {\n try {\n if (namespaceURI) {\n currentNode.setAttributeNS(namespaceURI, name, value);\n } else {\n /* Fallback to setAttribute() for browser-unrecognized namespaces e.g. \"x-schema\". */\n currentNode.setAttribute(name, value);\n }\n if (_isClobbered(currentNode)) {\n _forceRemove(currentNode);\n } else {\n arrayPop(DOMPurify.removed);\n }\n } catch (_) {\n _removeAttribute(name, currentNode);\n }\n }\n }\n /* Execute a hook if present */\n _executeHooks(hooks.afterSanitizeAttributes, currentNode, null);\n };\n /**\n * _sanitizeShadowDOM\n *\n * @param fragment to iterate over recursively\n */\n const _sanitizeShadowDOM2 = function _sanitizeShadowDOM(fragment) {\n let shadowNode = null;\n const shadowIterator = _createNodeIterator(fragment);\n /* Execute a hook if present */\n _executeHooks(hooks.beforeSanitizeShadowDOM, fragment, null);\n while (shadowNode = shadowIterator.nextNode()) {\n /* Execute a hook if present */\n _executeHooks(hooks.uponSanitizeShadowNode, shadowNode, null);\n /* Sanitize tags and elements */\n _sanitizeElements(shadowNode);\n /* Check attributes next */\n _sanitizeAttributes(shadowNode);\n /* Deep shadow DOM detected.\n Realm-safe check (GHSA-hpcv-96wg-7vj8): use nodeType against the\n DOCUMENT_FRAGMENT_NODE constant rather than instanceof, so we\n recurse into <template>.content from foreign realms too. */\n if (_isDocumentFragment(shadowNode.content)) {\n _sanitizeShadowDOM2(shadowNode.content);\n }\n /* An element iterated here may itself host an attached\n shadow root. The default NodeIterator does not enter shadow\n trees, so a shadow root nested inside template.content was\n previously reached by no walk at all (the pre-pass at\n _sanitizeAttachedShadowRoots descends via childNodes, which\n doesn't enter template.content; the template-content recursion\n above iterates the content but never inspected shadowRoot).\n Walk it explicitly. The nodeType guard avoids reading\n shadowRoot off text / comment / CDATA / PI nodes that the\n iterator also surfaces. */\n const shadowNodeType = getNodeType ? getNodeType(shadowNode) : shadowNode.nodeType;\n if (shadowNodeType === NODE_TYPE.element) {\n const innerSr = getShadowRoot ? getShadowRoot(shadowNode) : shadowNode.shadowRoot;\n if (_isDocumentFragment(innerSr)) {\n _sanitizeAttachedShadowRoots2(innerSr);\n _sanitizeShadowDOM2(innerSr);\n }\n }\n }\n /* Execute a hook if present */\n _executeHooks(hooks.afterSanitizeShadowDOM, fragment, null);\n };\n /**\n * _sanitizeAttachedShadowRoots\n *\n * Walks `root` and feeds every attached shadow root we encounter into\n * the existing _sanitizeShadowDOM pipeline. The default node iterator\n * does not descend into shadow trees, so nodes inside an attached\n * shadow root would otherwise be skipped entirely.\n *\n * Two real input paths put attached shadow roots in front of us:\n * 1. IN_PLACE on a DOM node that already has shadow roots attached.\n * 2. DOM-node input where importNode(dirty, true) deep-clones the\n * shadow root because it was created with `clonable: true`.\n *\n * This pass runs once, up front, so the main iteration loop (and the\n * existing _sanitizeShadowDOM template-content recursion) stay\n * untouched — string-input paths are not affected.\n *\n * @param root the subtree root to walk for attached shadow roots\n */\n const _sanitizeAttachedShadowRoots2 = function _sanitizeAttachedShadowRoots(root) {\n const nodeType = getNodeType ? getNodeType(root) : root.nodeType;\n if (nodeType === NODE_TYPE.element) {\n const sr = getShadowRoot ? getShadowRoot(root) : root.shadowRoot;\n // Realm-safe check (GHSA-hpcv-96wg-7vj8): use nodeType-based\n // detection rather than `instanceof DocumentFragment`, which is\n // realm-bound and silently skipped shadow roots whose host element\n // belonged to a foreign realm (e.g. iframe.contentDocument\n // attachShadow). A foreign-realm ShadowRoot extends the foreign\n // realm's DocumentFragment, not ours, so the old instanceof check\n // returned false and the shadow subtree was never walked.\n if (_isDocumentFragment(sr)) {\n // Recurse first so that nested shadow roots are reached even if\n // _sanitizeShadowDOM removes hosts at this level.\n _sanitizeAttachedShadowRoots2(sr);\n _sanitizeShadowDOM2(sr);\n }\n }\n // Snapshot children before recursing. Sanitization of one subtree\n // (e.g. via an uponSanitizeShadowNode hook) may detach siblings,\n // and naive nextSibling traversal would silently skip the rest of\n // the list once a node is detached.\n const childNodes = getChildNodes ? getChildNodes(root) : root.childNodes;\n if (!childNodes) {\n return;\n }\n const snapshot = [];\n arrayForEach(childNodes, child => {\n arrayPush(snapshot, child);\n });\n for (const child of snapshot) {\n _sanitizeAttachedShadowRoots2(child);\n }\n /* When the root is a <template>, also descend into root.content */\n if (nodeType === NODE_TYPE.element) {\n const rootName = getNodeName ? getNodeName(root) : null;\n if (typeof rootName === 'string' && transformCaseFunc(rootName) === 'template') {\n const content = root.content;\n if (_isDocumentFragment(content)) {\n _sanitizeAttachedShadowRoots2(content);\n }\n }\n }\n };\n // eslint-disable-next-line complexity\n DOMPurify.sanitize = function (dirty) {\n let cfg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n let body = null;\n let importedNode = null;\n let currentNode = null;\n let returnNode = null;\n /* Make sure we have a string to sanitize.\n DO NOT return early, as this will return the wrong type if\n the user has requested a DOM object rather than a string */\n IS_EMPTY_INPUT = !dirty;\n if (IS_EMPTY_INPUT) {\n dirty = '<!-->';\n }\n /* Stringify, in case dirty is an object */\n if (typeof dirty !== 'string' && !_isNode(dirty)) {\n dirty = stringifyValue(dirty);\n if (typeof dirty !== 'string') {\n throw typeErrorCreate('dirty is not a string, aborting');\n }\n }\n /* Return dirty HTML if DOMPurify cannot run */\n if (!DOMPurify.isSupported) {\n return dirty;\n }\n /* Assign config vars */\n if (!SET_CONFIG) {\n _parseConfig(cfg);\n }\n /* Clean up removed elements */\n DOMPurify.removed = [];\n /* Check if dirty is correctly typed for IN_PLACE */\n if (typeof dirty === 'string') {\n IN_PLACE = false;\n }\n if (IN_PLACE) {\n /* Do some early pre-sanitization to avoid unsafe root nodes.\n Read nodeName through the cached prototype getter — a clobbering\n child named \"nodeName\" on the form root would otherwise shadow\n the property and let this check skip the root-allowlist\n validation entirely. */\n const nn = getNodeName ? getNodeName(dirty) : dirty.nodeName;\n if (typeof nn === 'string') {\n const tagName = transformCaseFunc(nn);\n if (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName]) {\n throw typeErrorCreate('root node is forbidden and cannot be sanitized in-place');\n }\n }\n /* Pre-flight the root through _isClobbered. The iterator-driven\n removal path can not detach a parent-less root: _forceRemove\n falls through to Element.prototype.remove(), which per spec\n is a no-op on a node with no parent. A clobbered root would\n then survive the main loop with its attributes uninspected,\n because _sanitizeAttributes early-returns on _isClobbered. The\n result would be an attacker-controlled form, complete with any\n event-handler attributes the caller passed in, handed back to\n the application unsanitized. Refuse to sanitize such a root\n the same way we refuse a forbidden tag. GHSA-r47g-fvhr-h676. */\n if (_isClobbered(dirty)) {\n throw typeErrorCreate('root node is clobbered and cannot be sanitized in-place');\n }\n /* Sanitize attached shadow roots before the main iterator runs.\n The iterator does not descend into shadow trees. */\n _sanitizeAttachedShadowRoots2(dirty);\n } else if (_isNode(dirty)) {\n /* If dirty is a DOM element, append to an empty document to avoid\n elements being stripped by the parser */\n body = _initDocument('<!---->');\n importedNode = body.ownerDocument.importNode(dirty, true);\n if (importedNode.nodeType === NODE_TYPE.element && importedNode.nodeName === 'BODY') {\n /* Node is already a body, use as is */\n body = importedNode;\n } else if (importedNode.nodeName === 'HTML') {\n body = importedNode;\n } else {\n // eslint-disable-next-line unicorn/prefer-dom-node-append\n body.appendChild(importedNode);\n }\n /* Clonable shadow roots are deep-cloned by importNode(); sanitize\n them before the main iterator runs, since the iterator does not\n descend into shadow trees. The walk routes every read through a\n cached prototype getter so clobbering descendants on a form root\n cannot hide a shadow host from this pass. */\n _sanitizeAttachedShadowRoots2(importedNode);\n } else {\n /* Exit directly if we have nothing to do */\n if (!RETURN_DOM && !SAFE_FOR_TEMPLATES && !WHOLE_DOCUMENT &&\n // eslint-disable-next-line unicorn/prefer-includes\n dirty.indexOf('<') === -1) {\n return trustedTypesPolicy && RETURN_TRUSTED_TYPE ? _createTrustedHTML(dirty) : dirty;\n }\n /* Initialize the document to work on */\n body = _initDocument(dirty);\n /* Check we have a DOM node from the data */\n if (!body) {\n return RETURN_DOM ? null : RETURN_TRUSTED_TYPE ? emptyHTML : '';\n }\n }\n /* Remove first element node (ours) if FORCE_BODY is set */\n if (body && FORCE_BODY) {\n _forceRemove(body.firstChild);\n }\n /* Get node iterator */\n const nodeIterator = _createNodeIterator(IN_PLACE ? dirty : body);\n /* Now start iterating over the created document */\n while (currentNode = nodeIterator.nextNode()) {\n /* Sanitize tags and elements */\n _sanitizeElements(currentNode);\n /* Check attributes next */\n _sanitizeAttributes(currentNode);\n /* Shadow DOM detected, sanitize it.\n Realm-safe check (GHSA-hpcv-96wg-7vj8): nodeType-based detection\n instead of instanceof, so foreign-realm <template>.content is\n walked correctly. */\n if (_isDocumentFragment(currentNode.content)) {\n _sanitizeShadowDOM2(currentNode.content);\n }\n }\n /* If we sanitized `dirty` in-place, return it. */\n if (IN_PLACE) {\n if (SAFE_FOR_TEMPLATES) {\n _scrubTemplateExpressions2(dirty);\n }\n return dirty;\n }\n /* Return sanitized string or DOM */\n if (RETURN_DOM) {\n if (SAFE_FOR_TEMPLATES) {\n _scrubTemplateExpressions2(body);\n }\n if (RETURN_DOM_FRAGMENT) {\n returnNode = createDocumentFragment.call(body.ownerDocument);\n while (body.firstChild) {\n // eslint-disable-next-line unicorn/prefer-dom-node-append\n returnNode.appendChild(body.firstChild);\n }\n } else {\n returnNode = body;\n }\n if (ALLOWED_ATTR.shadowroot || ALLOWED_ATTR.shadowrootmode) {\n /*\n AdoptNode() is not used because internal state is not reset\n (e.g. the past names map of a HTMLFormElement), this is safe\n in theory but we would rather not risk another attack vector.\n The state that is cloned by importNode() is explicitly defined\n by the specs.\n */\n returnNode = importNode.call(originalDocument, returnNode, true);\n }\n return returnNode;\n }\n let serializedHTML = WHOLE_DOCUMENT ? body.outerHTML : body.innerHTML;\n /* Serialize doctype if allowed */\n if (WHOLE_DOCUMENT && ALLOWED_TAGS['!doctype'] && body.ownerDocument && body.ownerDocument.doctype && body.ownerDocument.doctype.name && regExpTest(DOCTYPE_NAME, body.ownerDocument.doctype.name)) {\n serializedHTML = '<!DOCTYPE ' + body.ownerDocument.doctype.name + '>\\n' + serializedHTML;\n }\n /* Sanitize final string template-safe */\n if (SAFE_FOR_TEMPLATES) {\n arrayForEach([MUSTACHE_EXPR$1, ERB_EXPR$1, TMPLIT_EXPR$1], expr => {\n serializedHTML = stringReplace(serializedHTML, expr, ' ');\n });\n }\n return trustedTypesPolicy && RETURN_TRUSTED_TYPE ? _createTrustedHTML(serializedHTML) : serializedHTML;\n };\n DOMPurify.setConfig = function () {\n let cfg = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n _parseConfig(cfg);\n SET_CONFIG = true;\n };\n DOMPurify.clearConfig = function () {\n CONFIG = null;\n SET_CONFIG = false;\n };\n DOMPurify.isValidAttribute = function (tag, attr, value) {\n /* Initialize shared config vars if necessary. */\n if (!CONFIG) {\n _parseConfig({});\n }\n const lcTag = transformCaseFunc(tag);\n const lcName = transformCaseFunc(attr);\n return _isValidAttribute(lcTag, lcName, value);\n };\n DOMPurify.addHook = function (entryPoint, hookFunction) {\n if (typeof hookFunction !== 'function') {\n return;\n }\n arrayPush(hooks[entryPoint], hookFunction);\n };\n DOMPurify.removeHook = function (entryPoint, hookFunction) {\n if (hookFunction !== undefined) {\n const index = arrayLastIndexOf(hooks[entryPoint], hookFunction);\n return index === -1 ? undefined : arraySplice(hooks[entryPoint], index, 1)[0];\n }\n return arrayPop(hooks[entryPoint]);\n };\n DOMPurify.removeHooks = function (entryPoint) {\n hooks[entryPoint] = [];\n };\n DOMPurify.removeAllHooks = function () {\n hooks = _createHooksMap();\n };\n return DOMPurify;\n}\nvar purify = createDOMPurify();\n\nexport { purify as default };\n//# sourceMappingURL=purify.es.mjs.map\n","/**\n * AIChatDialog - 纯JavaScript实现的AI对话组件 (Web Components)\n * 样式与功能完全对齐 Vue 版本(1:1 复刻)\n * \n * @author IBC AI Team\n * @version 2.1.0\n */\n\n // 导入 marked Markdown 解析库 + DOMPurify XSS防护\n import AIChatClient from './core/AIChatClient.js';\n import { marked } from 'marked';\n import DOMPurify from 'dompurify';\n\n // 运行时占位符(对齐 portal)\n const RUNTIME_PLACEHOLDERS = [\n '请求已受理', '任务已受理', '正在思考', '正在执行',\n '结果处理中', '已进入助手运行时', '任务运行时',\n 'SSE 连接已建立'\n ];\n const DEFAULT_DIALOG_TOP = '96px';\n\n // ========== marked 配置(安全且功能完整) ==========\n marked.setOptions({\n breaks: true, // 支持GFM换行(单换行变<br>)\n gfm: true, // GitHub Flavored Markdown\n headerIds: false, // 不生成标题id\n mangle: false // 不转义邮箱\n });\n\n // Vue themes.js 的 camelCase key → JS _themeVars CSS变量名 映射表\n const THEME_COLOR_KEY_MAP = {\n primary: '--ai-primary',\n primaryLight: '--ai-primary-light',\n primaryDark: '--ai-primary-dark',\n secondary: '--ai-secondary',\n background: '--ai-bg', // background → --ai-bg\n backgroundGradient: '--ai-bg-gradient', // backgroundGradient → --ai-bg-gradient\n text: '--ai-text',\n textSecondary: '--ai-text-secondary',\n userBubble: '--ai-user-bubble-gradient', // userBubble → --ai-user-bubble-gradient\n aiBubble: '--ai-ai-bubble-bg', // aiBubble → --ai-ai-bubble-bg\n headerGradient: '--ai-header-gradient',\n border: '--ai-border',\n shadow: '--ai-shadow',\n inputBackground: '--ai-input-bg', // inputBackground → --ai-input-bg\n inputBorder: '--ai-input-border', // inputBorder → --ai-input-border\n loading: '--ai-loading',\n success: '--ai-success',\n error: '--ai-error',\n warning: '--ai-warning'\n };\n\n // ========== 16种预设主题(与Vue版themes.js完全一致) ==========\n const PRESET_THEMES = {\n DEFAULT: { colors: { primary: '#1890ff', primaryLight: '#40a9ff', primaryDark: '#096dd9', secondary: '#722ed1', background: '#ffffff', backgroundGradient: '#f8fafc', text: '#1e293b', textSecondary: '#64748b', userBubble: 'linear-gradient(135deg, #1890ff, #40a9ff)', aiBubble: '#ffffff', headerGradient: 'linear-gradient(90deg, rgba(24,144,255,0.08), rgba(114,46,209,0.08))', border: 'rgba(24,144,255,0.15)', shadow: 'rgba(24,144,255,0.12)', inputBackground: '#f8fafc', inputBorder: '#e2e8f0' } },\n DARK: { colors: { primary: '#40a9ff', primaryLight: '#69c0ff', primaryDark: '#1890ff', secondary: '#9254de', background: '#0f172a', backgroundGradient: '#1e293b', text: '#f1f5f9', textSecondary: '#94a3b8', userBubble: 'linear-gradient(135deg, #1890ff, #40a9ff)', aiBubble: '#1e293b', headerGradient: 'linear-gradient(90deg, rgba(64,169,255,0.15), rgba(146,84,222,0.15))', border: 'rgba(64,169,255,0.3)', shadow: 'rgba(0,0,0,0.3)', inputBackground: '#1e293b', inputBorder: '#334155' } },\n FRESH: { colors: { primary: '#52c41a', primaryLight: '#73d13d', primaryDark: '#389e0d', secondary: '#1890ff', background: '#ffffff', backgroundGradient: '#f6ffed', text: '#1e293b', textSecondary: '#64748b', userBubble: 'linear-gradient(135deg, #52c41a, #73d13d)', aiBubble: '#ffffff', headerGradient: 'linear-gradient(90deg, rgba(82,196,26,0.08), rgba(24,144,255,0.08))', border: 'rgba(82,196,26,0.15)', shadow: 'rgba(82,196,26,0.12)', inputBackground: '#f6ffed', inputBorder: '#d9f7be' } },\n VIBRANT: { colors: { primary: '#fa8c16', primaryLight: '#ffa940', primaryDark: '#d46b08', secondary: '#f5222d', background: '#ffffff', backgroundGradient: '#fff7e6', text: '#1e293b', textSecondary: '#64748b', userBubble: 'linear-gradient(135deg, #fa8c16, #ffa940)', aiBubble: '#ffffff', headerGradient: 'linear-gradient(90deg, rgba(250,140,22,0.08), rgba(245,34,45,0.08))', border: 'rgba(250,140,22,0.15)', shadow: 'rgba(250,140,22,0.12)', inputBackground: '#fff7e6', inputBorder: '#ffd591' } },\n ROMANTIC: { colors: { primary: '#eb2f96', primaryLight: '#fb6f92', primaryDark: '#c41d7f', secondary: '#722ed1', background: '#ffffff', backgroundGradient: '#fff0f6', text: '#1e293b', textSecondary: '#64748b', userBubble: 'linear-gradient(135deg, #eb2f96, #fb6f92)', aiBubble: '#ffffff', headerGradient: 'linear-gradient(90deg, rgba(235,47,150,0.08), rgba(114,46,209,0.08))', border: 'rgba(235,47,150,0.15)', shadow: 'rgba(235,47,150,0.12)', inputBackground: '#fff0f6', inputBorder: '#ffadd2' } },\n PURPLE: { colors: { primary: '#722ed1', primaryLight: '#9254de', primaryDark: '#531dab', secondary: '#1890ff', background: '#ffffff', backgroundGradient: '#f9f0ff', text: '#1e293b', textSecondary: '#64748b', userBubble: 'linear-gradient(135deg, #722ed1, #9254de)', aiBubble: '#ffffff', headerGradient: 'linear-gradient(90deg, rgba(114,46,209,0.08), rgba(24,144,255,0.08))', border: 'rgba(114,46,209,0.15)', shadow: 'rgba(114,46,209,0.12)', inputBackground: '#f9f0ff', inputBorder: '#d3adf7' } },\n OCEAN: { colors: { primary: '#0077b6', primaryLight: '#00b4d8', primaryDark: '#023e8a', secondary: '#00b4d8', background: '#ffffff', backgroundGradient: '#f0f9ff', text: '#1e293b', textSecondary: '#64748b', userBubble: 'linear-gradient(135deg, #0077b6, #00b4d8)', aiBubble: '#ffffff', headerGradient: 'linear-gradient(90deg, rgba(0,119,182,0.08), rgba(0,180,216,0.08))', border: 'rgba(0,119,182,0.15)', shadow: 'rgba(0,119,182,0.12)', inputBackground: '#f0f9ff', inputBorder: '#bae6fd' } },\n TWILIGHT: { colors: { primary: '#9333ea', primaryLight: '#a855f7', primaryDark: '#7e22ce', secondary: '#ec4899', background: '#ffffff', backgroundGradient: '#faf5ff', text: '#1e293b', textSecondary: '#64748b', userBubble: 'linear-gradient(135deg, #9333ea, #ec4899)', aiBubble: '#ffffff', headerGradient: 'linear-gradient(90deg, rgba(147,51,234,0.08), rgba(236,72,153,0.08))', border: 'rgba(147,51,234,0.15)', shadow: 'rgba(147,51,234,0.12)', inputBackground: '#faf5ff', inputBorder: '#e9d5ff' } },\n MINT: { colors: { primary: '#14b8a6', primaryLight: '#2dd4bf', primaryDark: '#0d9488', secondary: '#06b6d4', background: '#ffffff', backgroundGradient: '#f0fdfa', text: '#1e293b', textSecondary: '#64748b', userBubble: 'linear-gradient(135deg, #14b8a6, #2dd4bf)', aiBubble: '#ffffff', headerGradient: 'linear-gradient(90deg, rgba(20,184,166,0.08), rgba(6,182,212,0.08))', border: 'rgba(20,184,166,0.15)', shadow: 'rgba(20,184,166,0.12)', inputBackground: '#f0fdfa', inputBorder: '#99f6e4' } },\n ROSE: { colors: { primary: '#e11d48', primaryLight: '#fb7185', primaryDark: '#be123c', secondary: '#f43f5e', background: '#ffffff', backgroundGradient: '#fff1f2', text: '#1e293b', textSecondary: '#64748b', userBubble: 'linear-gradient(135deg, #e11d48, #fb7185)', aiBubble: '#ffffff', headerGradient: 'linear-gradient(90deg, rgba(225,29,72,0.08), rgba(244,63,94,0.08))', border: 'rgba(225,29,72,0.15)', shadow: 'rgba(225,29,72,0.12)', inputBackground: '#fff1f2', inputBorder: '#fecdd3' } },\n AURORA: { colors: { primary: '#0ea5e9', primaryLight: '#38bdf8', primaryDark: '#0284c7', secondary: '#10b981', background: '#ffffff', backgroundGradient: '#f0f9ff', text: '#1e293b', textSecondary: '#64748b', userBubble: 'linear-gradient(135deg, #0ea5e9, #10b981)', aiBubble: '#ffffff', headerGradient: 'linear-gradient(90deg, rgba(14,165,233,0.08), rgba(16,185,129,0.08))', border: 'rgba(14,165,233,0.15)', shadow: 'rgba(14,165,233,0.12)', inputBackground: '#f0f9ff', inputBorder: '#bae6fd' } },\n LAVENDER: { colors: { primary: '#8b5cf6', primaryLight: '#a78bfa', primaryDark: '#7c3aed', secondary: '#c084fc', background: '#ffffff', backgroundGradient: '#faf5ff', text: '#1e293b', textSecondary: '#64748b', userBubble: 'linear-gradient(135deg, #8b5cf6, #c084fc)', aiBubble: '#ffffff', headerGradient: 'linear-gradient(90deg, rgba(139,92,246,0.08), rgba(192,132,252,0.08))', border: 'rgba(139,92,246,0.15)', shadow: 'rgba(139,92,246,0.12)', inputBackground: '#faf5ff', inputBorder: '#ddd6fe' } },\n CORAL: { colors: { primary: '#f97316', primaryLight: '#fb923c', primaryDark: '#ea580c', secondary: '#f43f5e', background: '#ffffff', backgroundGradient: '#fff7ed', text: '#1e293b', textSecondary: '#64748b', userBubble: 'linear-gradient(135deg, #f97316, #fb923c)', aiBubble: '#ffffff', headerGradient: 'linear-gradient(90deg, rgba(249,115,22,0.08), rgba(244,63,94,0.08))', border: 'rgba(249,115,22,0.15)', shadow: 'rgba(249,115,22,0.12)', inputBackground: '#fff7ed', inputBorder: '#fed7aa' } },\n JADE: { colors: { primary: '#059669', primaryLight: '#10b981', primaryDark: '#047857', secondary: '#34d399', background: '#ffffff', backgroundGradient: '#f0fdf4', text: '#1e293b', textSecondary: '#64748b', userBubble: 'linear-gradient(135deg, #059669, #10b981)', aiBubble: '#ffffff', headerGradient: 'linear-gradient(90deg, rgba(5,150,105,0.08), rgba(52,211,153,0.08))', border: 'rgba(5,150,105,0.15)', shadow: 'rgba(5,150,105,0.12)', inputBackground: '#f0fdf4', inputBorder: '#bbf7d0' } },\n STARSKY: { colors: { primary: '#6366f1', primaryLight: '#818cf8', primaryDark: '#4f46e5', secondary: '#a855f7', background: '#0f172a', backgroundGradient: '#1e1b4b', text: '#e2e8f0', textSecondary: '#94a3b8', userBubble: 'linear-gradient(135deg, #6366f1, #a855f7)', aiBubble: '#1e1b4b', headerGradient: 'linear-gradient(90deg, rgba(99,102,241,0.15), rgba(168,85,247,0.15))', border: 'rgba(99,102,241,0.3)', shadow: 'rgba(0,0,0,0.3)', inputBackground: '#1e1b4b', inputBorder: '#312e81' } },\n SUNSET: { colors: { primary: '#ea580c', primaryLight: '#f97316', primaryDark: '#c2410c', secondary: '#dc2626', background: '#ffffff', backgroundGradient: '#fff8f0', text: '#1e293b', textSecondary: '#64748b', userBubble: 'linear-gradient(135deg, #ea580c, #dc2626)', aiBubble: '#ffffff', headerGradient: 'linear-gradient(90deg, rgba(234,88,12,0.08), rgba(220,38,38,0.08))', border: 'rgba(234,88,12,0.15)', shadow: 'rgba(234,88,12,0.12)', inputBackground: '#fff8f0', inputBorder: '#fed7aa' } }\n };\n\n class AIChatDialog extends HTMLElement {\n static get observedAttributes() { return ['visible']; }\n\n constructor() {\n super();\n this.attachShadow({ mode: 'open' });\n this._messages = [];\n this._isLoading = false;\n this._config = null;\n this._mockMode = false;\n this._isDragging = false;\n this._isExpanded = false;\n this._chatClient = null;\n this._attachments = [];\n this._dragStartX = 0;\n this._dragStartY = 0;\n this._dialogX = 0;\n this._dialogY = 0;\n this._appDetail = null;\n this._historyVisible = false;\n this._historyRecords = [];\n this._historyLoading = false;\n this._historyLoaded = false;\n this._historyPageIndex = 1;\n this._historyHasMore = false;\n // P2-17: 移动端检测状态\n this._isMobile = false;\n // Streaming: per-chunk render, RAF typewriter when has runtime events\n this._streamTextEl = null;\n this._streamInitDone = false;\n this._streamFullText = '';\n this._streamVisibleLength = 0;\n this._streamTypeRaf = null;\n this._streaming = false;\n // Runtime panel DOM reference for incremental updates\n this._runtimePanelEl = null;\n this._runtimeEventsContainerEl = null;\n this._runtimeStatusEl = null;\n this._runtimeCountEl = null;\n\n // ====== 默认主题配置(与 themes.js DEFAULT_THEME 完全一致) ======\n this._themeVars = {\n '--ai-primary': '#1890ff',\n '--ai-primary-light': '#40a9ff',\n '--ai-primary-dark': '#096dd9',\n '--ai-secondary': '#722ed1',\n '--ai-bg': '#ffffff',\n '--ai-bg-gradient': '#f8fafc',\n '--ai-text': '#1e293b',\n '--ai-text-secondary': '#64748b',\n '--ai-user-bubble-gradient': 'linear-gradient(135deg, #1890ff, #40a9ff)',\n '--ai-ai-bubble-bg': '#ffffff',\n '--ai-header-gradient': 'linear-gradient(90deg, rgba(24, 144, 255, 0.08), rgba(114, 46, 209, 0.08))',\n '--ai-border': 'rgba(24, 144, 255, 0.15)',\n '--ai-shadow': 'rgba(24, 144, 255, 0.12)',\n '--ai-input-bg': '#f8fafc',\n '--ai-input-border': '#e2e8f0',\n '--ai-loading': '#64748b',\n '--ai-success': '#52c41a',\n '--ai-error': '#ff4d4f',\n '--ai-warning': '#faad14',\n '--ai-radius-dialog': '16px',\n '--ai-radius-bubble': '18px', /* 气泡实际用 18px 但 border-radius: var(--ai-radius-bubble) */\n '--ai-radius-button': '50%',\n '--ai-radius-input': '28px',\n '--ai-radius-small': '6px',\n '--ai-radius-medium': '12px',\n '--ai-font-title': '15px',\n '--ai-font-welcome-text': '17px',\n '--ai-font-welcome-desc': '13px',\n '--ai-font-message': '14px',\n '--ai-font-time': '11px',\n '--ai-font-small': '11px',\n '--ai-shadow-dialog': '0 0 30px rgba(24, 144, 255, 0.12), 0 8px 32px rgba(0, 0, 0, 0.1)',\n '--ai-shadow-bubble': '0 2px 8px rgba(0, 0, 0, 0.06)',\n '--ai-shadow-user-bubble': '0 4px 12px rgba(24, 144, 255, 0.25)',\n '--ai-shadow-button': '0 4px 12px rgba(24, 144, 255, 0.35)'\n };\n\n this.render();\n this.bindEvents();\n }\n\n // ==================== 生命周期 ====================\n\n connectedCallback() {\n // P1-8: 网络状态监控(与Vue版一致)\n this._handleOnline = () => {\n const tip = this.shadowRoot.querySelector('.network-tip');\n if (tip) tip.remove();\n };\n this._handleOffline = () => {\n if (!this.shadowRoot.querySelector('.network-tip')) {\n const tip = document.createElement('div');\n tip.className = 'network-tip';\n tip.textContent = '网络连接已断开,请检查网络后重试';\n this._dialog?.prepend(tip);\n setTimeout(() => tip.remove(), 5000);\n }\n };\n window.addEventListener('online', this._handleOnline);\n window.addEventListener('offline', this._handleOffline);\n\n // P2-17: 移动端环境检测(与Vue版 detectEnvironment 一致)\n this._detectMobile();\n // P2-17: 窗口resize时重新检测移动端\n this._handleResize = () => {\n const wasMobile = this._isMobile;\n this._detectMobile();\n // 检测结果变化时,重新应用布局\n if (wasMobile !== this._isMobile && this._dialog) {\n this._applyMobileLayout();\n }\n };\n window.addEventListener('resize', this._handleResize);\n\n // 恢复后台Token刷新定时器(SPA路由切换后 re-attach 场景)\n if (this._chatClient) this._chatClient.startBackgroundRefresh();\n }\n\n disconnectedCallback() {\n // P1-8: 清理网络状态监听\n if (this._handleOnline) window.removeEventListener('online', this._handleOnline);\n if (this._handleOffline) window.removeEventListener('offline', this._handleOffline);\n // P2-17: 清理resize监听\n if (this._handleResize) window.removeEventListener('resize', this._handleResize);\n // 暂停后台Token刷新定时器(detach时停止,re-attach时由connectedCallback恢复)\n if (this._chatClient) {\n this._chatClient.stopBackgroundRefresh();\n this._chatClient.cancelCurrentRequest();\n }\n }\n\n // P2-17: 移动端4维检测(与Vue版 isMobileDevice 计算属性完全一致)\n _detectMobile() {\n // 1. 优先使用显式配置\n if (this._config?.mobileMode !== undefined) {\n this._isMobile = !!this._config.mobileMode;\n return;\n }\n\n // 2. 微信小程序环境检测\n if (typeof wx !== 'undefined' && wx.getSystemInfoSync) {\n this._isMobile = true;\n return;\n }\n\n // 3. 浏览器环境\n if (typeof window === 'undefined') { this._isMobile = false; return; }\n\n // 4. User Agent 正则匹配\n const ua = navigator.userAgent || '';\n const isMobileUA = /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(ua);\n\n // 5. 屏幕宽度 < 768px + 触摸支持\n const isSmallScreen = window.innerWidth < 768;\n const hasTouch = 'ontouchstart' in window || navigator.maxTouchPoints > 0;\n\n // 综合判断:UA匹配 或 (小屏幕+触摸)\n this._isMobile = isMobileUA || (isSmallScreen && hasTouch);\n }\n\n // P2-17: 应用移动端/桌面端布局(自动全屏或恢复浮动气泡)\n _applyMobileLayout() {\n if (!this._dialog) return;\n if (this._isMobile) {\n // 移动端:强制全屏(与Vue版 dialogStyle 一致)\n this._dialog.style.width = '100vw';\n this._dialog.style.height = '100vh';\n this._dialog.style.maxHeight = 'none';\n this._dialog.style.minHeight = '0';\n this._dialog.style.left = '0';\n this._dialog.style.top = '0';\n this._dialog.style.right = 'auto';\n this._dialog.style.bottom = 'auto';\n this._dialog.style.borderRadius = '0';\n this._dialog.classList.add('mobile-mode');\n // 移动端隐藏展开按钮\n if (this._expandBtn) this._expandBtn.style.display = 'none';\n } else {\n // 桌面端:恢复默认尺寸\n if (!this._isExpanded) {\n this._dialog.style.width = 'min(420px, calc(100vw - 48px))';\n this._dialog.style.height = 'min(640px, 80vh)';\n this._dialog.style.maxHeight = '';\n this._dialog.style.minHeight = '';\n this._dialog.style.left = this._dialogX ? this._dialogX + 'px' : 'auto';\n this._dialog.style.right = this._dialogX ? 'auto' : '24px';\n this._dialog.style.top = this._dialogY ? this._dialogY + 'px' : DEFAULT_DIALOG_TOP;\n this._dialog.style.bottom = 'auto';\n }\n this._dialog.classList.remove('mobile-mode');\n // 清除移动端留下的内联border-radius,让CSS变量(--ai-radius-dialog)重新接管\n this._dialog.style.borderRadius = '';\n // 恢复展开按钮\n if (this._expandBtn) this._expandBtn.style.display = '';\n }\n }\n\n attributeChangedCallback(name, oldValue, newValue) {\n if (name === 'visible') {\n const visible = this.hasAttribute('visible');\n if (visible) this.showDialog(); else this.hideDialog();\n }\n }\n\n // ==================== 属性访问器 ====================\n\n get visible() { return this.hasAttribute('visible'); }\n set visible(v) { v ? this.setAttribute('visible', '') : this.removeAttribute('visible'); }\n get messages() { return this._messages; }\n get isLoading() { return this._isLoading; }\n get config() { return this._config; }\n\n // ==================== 公共API ====================\n\n init(config = {}) {\n this._config = {\n apiBaseUrl: '',\n apiEndpoint: '/v1/app/completion',\n streamEndpoint: '/v1/app/completion/stream',\n stopEndpoint: '/v1/app/completion/stop',\n attachmentUploadEndpoint: '/v1/app/attachment/upload',\n conversationQueryEndpoint: '/v1/app/conversation/query',\n conversationDeleteEndpoint: '/v1/app/conversation/delete',\n appDetailEndpoint: '/v1/app/{appId}',\n appId: '',\n userId: '',\n bizType: '',\n token: '',\n refreshToken: '',\n tokenExpiresAt: 0,\n tokenRefreshBufferMs: 60000,\n refreshTokenFn: null,\n onTokenRefreshed: null,\n onTokenExpired: null,\n authErrorCodes: [],\n title: 'AI 助手',\n welcomeText: 'Hi,我是智能助手 ~\\n欢迎随时提问',\n welcomeDesc: '全新自动化能力上线:任务交给我,自动帮你搞定!',\n footerDisclaimer: '推荐和回答由 AI 生成,仅供参考',\n footerIdentity: '',\n theme: 'default',\n enableDrag: true,\n // P0: 自定义请求头透传(与Vue版一致)\n headers: {},\n // P0: 扩展信息随请求发送\n extendInfo: {},\n // P0: 请求超时控制(毫秒,默认60s)\n timeout: 60000,\n // P0: 自动重试次数\n maxRetries: 3,\n // P1-11: 输入框字数限制(默认500,与Vue版一致)\n maxLength: 500,\n // P1-12: 最大消息数(替代硬编码50)\n maxMessages: 50,\n historyPageSize: 20,\n historyDays: 30,\n // P2-17: 移动端模式(undefined=自动检测, true=强制移动端(全屏), false=强制桌面端)\n mobileMode: undefined,\n authFn: null,\n onLoad: null,\n onError: null,\n suggestions: [\n { label: '帮我购买一台轻量应用服务器用于部署应用', value: '帮我购买一台轻量应用服务器用于部署应用' },\n { label: '帮我为我的域名申请并配置SSL证书', value: '帮我为我的域名申请并配置SSL证书' }\n ],\n ...config\n };\n if (!this._config.appId && this._config.agentAppId) this._config.appId = this._config.agentAppId;\n this._chatClient = new AIChatClient(this._config);\n if (this._conversationId) this._chatClient.setConversationId(this._conversationId);\n this.applyConfig();\n this.loadAppDetail();\n // 触发 onLoad 回调(与Vue版一致)\n if (this._config?.onLoad) this._config.onLoad(this);\n this.dispatchEvent(new CustomEvent('init', { detail: { config: this._config } }));\n return this;\n }\n\n open() { this.visible = true; if (this._config?.onOpen) this._config.onOpen(); this.dispatchEvent(new CustomEvent('open')); return this; }\n close() { this.visible = false; this._isExpanded = false; if (this._config?.onClose) this._config.onClose(); this.dispatchEvent(new CustomEvent('close')); return this; }\n toggle(forceState) { if (forceState !== undefined) this.visible = !!forceState; else this.visible = !this.visible; return this; }\n destroy() { if (this._chatClient) this._chatClient.dispose(); if (this.parentNode) this.parentNode.removeChild(this); }\n\n addMessage(message) {\n if (!message || !message.content) return this;\n const msg = {\n id: message.id || `msg_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`,\n type: message.type || (message.role === 'user' ? 'user' : 'ai'),\n content: message.content,\n time: message.time || message.timestamp || this.formatTime(),\n copied: false,\n errorType: message.errorType || null,\n ...message\n };\n this._messages.push(msg);\n // P1-12: 最大消息数限制(可配置,默认50)\n const maxMsg = this._config?.maxMessages ?? 50;\n if (this._messages.length > maxMsg) this._messages = this._messages.slice(-maxMsg);\n this.renderMessages({ forceScroll: true });\n return this;\n }\n\n clearMessages() { this._messages = []; this.renderMessages(); return this; }\n setLoading(loading) { \n this._isLoading = loading; \n this.updateLoadingUI(); \n // P1-9: 触发 loading-change 事件(与Vue版一致)\n this.dispatchEvent(new CustomEvent('loading-change', { detail: { loading } }));\n return this; \n }\n updateConfig(config) {\n if (!this._config) this.init(config);\n else {\n Object.assign(this._config, config);\n if (!this._config.appId && this._config.agentAppId) this._config.appId = this._config.agentAppId;\n if (this._chatClient) this._chatClient.updateConfig(this._config);\n this.loadAppDetail();\n }\n this.applyConfig();\n return this;\n }\n enableMockMode() { this._mockMode = true; return this; }\n disableMockMode() { this._mockMode = false; return this; }\n\n // ==================== 显示/隐藏 ====================\n\n showDialog() {\n const dialog = this.shadowRoot.querySelector('.ai-chat-dialog');\n const btn = this.shadowRoot.querySelector('.float-button');\n if (dialog) dialog.classList.add('dialog-visible');\n if (btn) btn.style.display = 'none';\n // P2-17: 显示时应用移动端/桌面端布局\n if (dialog) this._applyMobileLayout();\n }\n\n hideDialog() {\n const dialog = this.shadowRoot.querySelector('.ai-chat-dialog');\n const btn = this.shadowRoot.querySelector('.float-button');\n if (dialog) dialog.classList.remove('dialog-visible');\n if (btn) btn.style.display = 'flex';\n }\n\n // ==================== 渲染(完整CSS对齐theme.css) ====================\n\n render() {\n const cssVarsStr = Object.entries(this._themeVars).map(([k, v]) => `${k}:${v};`).join('\\n ');\n\n this.shadowRoot.innerHTML = `\n<style>\n /* ====== CSS 变量(与Vue版DEFAULT_THEME一致) ====== */\n :host {\n ${cssVarsStr}\n display: block;\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n z-index: 1000;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif;\n --ai-primary: #2563eb;\n --ai-primary-light: #3b82f6;\n --ai-primary-dark: #1d4ed8;\n --ai-secondary: #475569;\n --ai-bg: #ffffff;\n --ai-bg-gradient: #f8fafc;\n --ai-text: #111827;\n --ai-text-secondary: #64748b;\n --ai-border: #e5e7eb;\n --ai-shadow: rgba(15, 23, 42, 0.08);\n --ai-input-bg: #ffffff;\n --ai-input-border: #d8dee8;\n --ai-radius-dialog: 0;\n --ai-radius-bubble: 10px;\n }\n\n /* ====== 外层容器(与Vue .ai-float-container 一致) ====== */\n .ai-float-container { position: relative; }\n\n /* ====== 对话框主体(与Vue .ai-chat-dialog 完全一致) ====== */\n .ai-chat-dialog {\n position: fixed;\n top: 96px;\n right: 24px;\n bottom: auto;\n width: min(420px, calc(100vw - 48px));\n height: min(640px, 80vh);\n background: var(--ai-bg);\n border-radius: 16px;\n border: 1px solid rgba(226, 232, 240, 0.78);\n box-shadow: 0 18px 44px rgba(15, 23, 42, 0.16);\n display: flex;\n flex-direction: column;\n min-height: 0;\n overflow: hidden;\n transition: opacity 0.26s ease, transform 0.26s ease;\n backdrop-filter: none;\n opacity: 0;\n transform: translateX(18px);\n pointer-events: none;\n }\n /* 显示状态 */\n .ai-chat-dialog.dialog-visible {\n opacity: 1;\n transform: translateX(0);\n pointer-events: auto;\n }\n\n /* 外发光效果(::before 伪元素)*/\n .ai-chat-dialog::before {\n display: none;\n }\n .ai-chat-dialog:not(.expanded) { cursor: default; }\n .ai-chat-dialog.dragging { transition: none; }\n\n /* ========== 头部样式(与Vue .dialog-header 完全一致) ========== */\n .dialog-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n min-height: 54px;\n padding: 0 16px 0 20px;\n background: #ffffff;\n color: var(--ai-text);\n cursor: default;\n user-select: none;\n position: relative;\n flex-shrink: 0;\n }\n /* 底部微妙阴影分隔 */\n .dialog-header::after { display: none; }\n .ai-chat-dialog.expanded .dialog-header { cursor: default; }\n .dialog-header:active { cursor: grabbing; }\n .header-left {\n display: flex;\n align-items: center;\n min-width: 0;\n }\n .robot-icon {\n display: none;\n }\n @keyframes gentlePulse { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.06); } }\n .header-title {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n font-size: 15px;\n font-weight: 650;\n color: var(--ai-text);\n letter-spacing: 0;\n }\n .header-right { display: flex; align-items: center; gap: 8px; margin-left: 12px; }\n .header-icon {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 24px;\n height: 24px;\n font-size: 14px;\n cursor: pointer;\n color: var(--ai-text-secondary);\n transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);\n border-radius: 6px;\n background: transparent;\n border: none;\n }\n .new-chat-btn {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 24px;\n height: 24px;\n border-radius: 6px;\n border: none;\n background: transparent;\n color: var(--ai-text-secondary);\n cursor: pointer;\n padding: 0;\n transition: color 0.18s ease, background 0.18s ease;\n }\n .new-chat-btn:hover {\n color: #111827;\n background: #f3f4f6;\n }\n .new-chat-btn svg {\n width: 20px;\n height: 20px;\n stroke: currentColor;\n }\n .history-btn svg {\n width: 19px;\n height: 19px;\n stroke: currentColor;\n }\n .header-icon svg {\n width: 20px;\n height: 20px;\n flex-shrink: 0;\n }\n .header-icon svg path { stroke: currentColor; fill: none; }\n .header-icon:hover {\n color: #111827;\n background: #f3f4f6;\n }\n\n /* ========== 主体样式(与Vue .dialog-body 完全一致) ========== */\n .dialog-body {\n flex: 1;\n flex-basis: 0;\n min-height: 0;\n overflow-y: auto;\n overscroll-behavior: contain;\n -webkit-overflow-scrolling: touch;\n padding: 18px 28px 22px;\n background: linear-gradient(180deg, #f7faff 0, #ffffff 184px);\n scrollbar-width: thin;\n scrollbar-color: transparent transparent;\n }\n .dialog-body::-webkit-scrollbar { width: 4px; }\n .dialog-body::-webkit-scrollbar-track { background: transparent; }\n .dialog-body::-webkit-scrollbar-thumb {\n background: var(--ai-border);\n border-radius: 10px;\n opacity: 0.3;\n }\n .dialog-body::-webkit-scrollbar-thumb:hover { opacity: 0.6; }\n\n /* ========== 欢迎页(与Vue .empty-state / .welcome-content 完全一致) ========== */\n .empty-state {\n height: 100%;\n display: flex;\n flex-direction: column;\n justify-content: flex-start;\n align-items: stretch;\n text-align: left;\n padding: 0 0 18px;\n }\n .welcome-content { margin-bottom: 0; width: 100%; }\n @keyframes floatUp { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-8px); } }\n\n /* 欢迎标题 - 渐变品牌色 */\n .welcome-text {\n white-space: pre-line;\n font-size: 24px;\n line-height: 1.32;\n margin-bottom: 10px;\n font-weight: 800;\n letter-spacing: 0;\n color: #111827;\n background: none;\n -webkit-text-fill-color: currentColor;\n }\n .welcome-desc {\n font-size: 14px;\n color: var(--ai-text-secondary);\n line-height: 1.58;\n max-width: 360px;\n margin: 0 0 20px;\n }\n\n /* 快捷建议按钮组(与Vue .quick-suggestions / .suggestion-chip 一致) */\n .quick-suggestions {\n display: flex;\n flex-direction: column;\n flex-wrap: nowrap;\n justify-content: flex-start;\n gap: 10px;\n margin-top: 0;\n max-width: none;\n animation: none;\n }\n @keyframes fadeInUp {\n from { opacity: 0; transform: translateY(12px); }\n to { opacity: 1; transform: translateY(0); }\n }\n .suggestion-chip {\n display: inline-flex;\n align-items: center;\n justify-content: space-between;\n gap: 12px;\n width: 100%;\n min-height: 40px;\n padding: 0 18px;\n border-radius: 30px;\n font-size: 12px;\n color: #1f2937;\n background: #ffffff;\n border: 1px solid #dfe5ee;\n cursor: pointer;\n transition: border-color 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease;\n white-space: normal;\n user-select: none;\n box-sizing: border-box;\n box-shadow: 0 4px 12px rgba(15, 23, 42, 0.03);\n }\n .suggestion-chip::after {\n content: '→';\n color: #111827;\n font-size: 18px;\n line-height: 1;\n }\n .suggestion-chip:hover {\n color: #111827;\n background: #ffffff;\n border-color: #cbd5e1;\n box-shadow: 0 8px 22px rgba(15, 23, 42, 0.08);\n transform: translateY(-1px);\n }\n .suggestion-chip:active { transform: translateY(0) scale(0.97); }\n .suggestion-chip .chip-icon { font-size: 17px; opacity: 0.85; color: #f97316; }\n .suggestion-chip:hover .chip-icon { opacity: 1; }\n\n .history-view {\n height: 100%;\n display: flex;\n flex-direction: column;\n min-height: 0;\n }\n .history-head {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 12px;\n margin-bottom: 14px;\n }\n .history-title {\n font-size: 15px;\n font-weight: 650;\n color: var(--ai-text);\n }\n .history-back {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n border: none;\n background: transparent;\n color: var(--ai-text-secondary);\n cursor: pointer;\n font-size: 13px;\n padding: 4px 0;\n }\n .history-back:hover { color: var(--ai-primary); }\n .history-list {\n flex: 1;\n min-height: 0;\n overflow-y: auto;\n display: flex;\n flex-direction: column;\n gap: 8px;\n }\n .history-item {\n width: 100%;\n text-align: left;\n border: 1px solid #e5e7eb;\n background: #fff;\n border-radius: 8px;\n padding: 10px 12px;\n cursor: pointer;\n transition: border-color 0.18s ease, background 0.18s ease;\n }\n .history-item:hover {\n border-color: #cbd5e1;\n background: #f8fafc;\n }\n .history-item-title {\n color: #111827;\n font-size: 13px;\n font-weight: 600;\n line-height: 1.45;\n overflow: hidden;\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n }\n .history-item-preview {\n margin-top: 5px;\n color: var(--ai-text-secondary);\n font-size: 12px;\n line-height: 1.45;\n overflow: hidden;\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n }\n .history-empty,\n .history-loading {\n color: var(--ai-text-secondary);\n font-size: 13px;\n line-height: 1.6;\n padding: 28px 0;\n text-align: center;\n }\n .history-load-more {\n display: block;\n width: 100%;\n margin: 10px 0 0;\n padding: 8px 0;\n border: none;\n border-radius: 8px;\n background: rgba(24, 144, 255, 0.06);\n color: var(--ai-primary, #1890ff);\n font-size: 13px;\n font-weight: 500;\n cursor: pointer;\n transition: background 0.18s ease;\n }\n .history-load-more:hover {\n background: rgba(24, 144, 255, 0.12);\n }\n\n /* ========== 消息列表(与Vue .message-list 一致) ==========*/\n .message-list {\n display: flex;\n flex-direction: column;\n gap: 9px;\n min-height: min-content;\n }\n .message-item {\n display: flex;\n gap: 0;\n max-width: 100%;\n width: 100%;\n animation: messageSlideIn 0.35s cubic-bezier(0.4, 0, 0.2, 1);\n }\n @keyframes messageSlideIn {\n from { opacity: 0; transform: translateY(10px) scale(0.98); }\n to { opacity: 1; transform: translateY(0) scale(1); }\n }\n .message-item.user { justify-content: flex-end; align-self: stretch; }\n .message-item.ai { justify-content: flex-start; align-self: stretch; }\n\n /* ========== 头像(与Vue .message-avatar 一致) ========== */\n .message-avatar {\n display: none;\n }\n .message-item.user .message-avatar {\n background: #eef2ff;\n color: #2563eb;\n box-shadow: none;\n }\n .message-item.ai .message-avatar {\n background: #f1f5f9;\n color: #334155;\n box-shadow: none;\n }\n .message-item.ai .message-avatar::after { display: none; }\n @keyframes avatarGlow {\n from { opacity: 0.4; }\n to { opacity: 0.85; }\n }\n\n .message-content {\n display: flex;\n flex-direction: column;\n gap: 5px;\n min-width: 0;\n }\n .message-item.ai .message-content { width: 100%; }\n .message-item.user .message-content { max-width: 86%; }\n .message-item.user .message-content { align-items: flex-end; }\n\n /* ========== 消息气泡(与Vue .message-bubble 一致) ========== */\n .message-bubble {\n padding: 12px 14px;\n border-radius: 8px;\n font-size: var(--ai-font-message);\n line-height: 1.65;\n word-wrap: break-word;\n }\n .message-item.user .message-bubble {\n background: #eff6ff;\n color: #1e3a8a;\n border: 1px solid #dbeafe;\n border-bottom-right-radius: 8px;\n box-shadow: none;\n }\n .message-item.ai .message-bubble {\n box-sizing: border-box;\n background: #ffffff;\n color: var(--ai-text);\n border: none;\n border-bottom-left-radius: 8px;\n box-shadow: none;\n width: 100%;\n padding: 12px 14px;\n }\n\n /* ========== Markdown 内容样式(marked渲染结果) ========== */\n .message-text {\n overflow-wrap: break-word;\n word-break: break-word;\n }\n .message-text p { margin: 4px 0; }\n .message-text p:first-child { margin-top: 0; }\n .message-text p:last-child { margin-bottom: 0; }\n\n /* 标题 */\n .message-text h1, .message-text h2, .message-text h3,\n .message-text h4, .message-text h5, .message-text h6 {\n margin: 12px 0 6px; font-weight: 600; line-height: 1.4;\n }\n .message-text h1 { font-size: 1.25em; }\n .message-text h2 { font-size: 1.15em; border-bottom: 1px solid var(--ai-border); padding-bottom: 4px; }\n .message-text h3 { font-size: 1.08em; }\n\n /* 行内代码 + 代码块 */\n .message-text code {\n font-family: 'Cascadia Code', 'Fira Code', 'JetBrains Mono', Consolas, monospace;\n font-size: 0.88em;\n background: rgba(24, 144, 255, 0.1);\n color: var(--ai-primary, #1890ff);\n padding: 2px 5px;\n border-radius: 4px;\n }\n .message-text pre {\n margin: 10px 0;\n border-radius: 8px;\n overflow-x: auto;\n background: #1e293b;\n color: #e2e8f0;\n }\n .message-text pre code {\n display: block;\n padding: 12px 14px;\n background: none;\n color: inherit;\n font-size: 0.85em;\n line-height: 1.55;\n border-radius: 0;\n }\n\n /* 列表 */\n .message-text ul, .message-text ol { margin: 8px 0; padding-left: 20px; }\n .message-text li { margin: 3px 0; }\n .message-text li::marker { color: var(--ai-primary, #1890ff); }\n\n /* 引用块 */\n .message-text blockquote {\n margin: 10px 0;\n padding: 8px 14px;\n border-left: 3px solid var(--ai-primary, #1890ff);\n background: rgba(24, 144, 255, 0.05);\n color: var(--ai-text-secondary, #64748b);\n border-radius: 0 6px 6px 0;\n }\n\n /* 表格 */\n .message-text table {\n width: 100%;\n margin: 10px 0;\n border-collapse: collapse;\n font-size: 0.93em;\n }\n .message-text th, .message-text td {\n padding: 7px 10px;\n border: 1px solid var(--ai-border, #e2e8f0);\n text-align: left;\n }\n .message-text th {\n background: rgba(24, 144, 255, 0.08);\n font-weight: 600;\n }\n\n /* 链接 */\n .message-text a {\n color: var(--ai-primary, #1890ff);\n text-decoration: none;\n transition: opacity 0.15s;\n }\n .message-text a:hover { text-decoration: underline; opacity: 0.85; }\n\n /* 分隔线 */\n .message-text hr {\n margin: 12px 0;\n border: none;\n border-top: 1px solid var(--ai-border, #e2e8f0);\n }\n\n /* 图片(限制宽度防撑破) */\n .message-text img {\n max-width: 100%;\n border-radius: 6px;\n margin: 8px 0;\n }\n\n /* 加载状态 - 三点脉冲动画(与Vue一致) */\n .message-bubble.loading {\n display: flex;\n align-items: center;\n gap: 6px;\n color: var(--ai-text-secondary);\n border: none;\n background: transparent;\n padding: 4px 0;\n min-height: 44px;\n }\n .message-bubble.loading .thinking-text {\n color: var(--ai-text-secondary);\n font-size: 13px;\n margin-right: 4px;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"PingFang SC\", sans-serif;\n }\n .message-bubble.loading .typing-indicator {\n display: inline-flex;\n align-items: center;\n gap: 5px;\n }\n .message-bubble.loading .typing-dot {\n width: 7px;\n height: 7px;\n border-radius: 50%;\n background: var(--ai-primary);\n animation: typingBounce 1.4s ease-in-out infinite;\n }\n .message-bubble.loading .typing-dot:nth-child(2) { animation-delay: 0s; }\n .message-bubble.loading .typing-dot:nth-child(3) { animation-delay: 0.16s; }\n .message-bubble.loading .typing-dot:nth-child(4) { animation-delay: 0.32s; }\n @keyframes typingBounce {\n 0%, 60%, 100% { transform: translateY(0); opacity: 0.35; }\n 30% { transform: translateY(-8px); opacity: 1; }\n }\n .message-text { margin: 0; word-break: break-word; font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"PingFang SC\", sans-serif; }\n\n /* ========== 操作栏(与Vue .message-actions-bar 一致) ========== */\n .message-actions-bar {\n display: flex;\n align-items: center;\n justify-content: flex-start;\n gap: 10px;\n margin-top: 8px;\n }\n .action-icons { display: flex; gap: 5px; }\n .action-icon {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n height: 32px;\n border-radius: 9px;\n cursor: pointer;\n transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);\n color: var(--ai-text-secondary);\n background: transparent;\n font-size: 14px;\n border: none;\n }\n .action-icon svg {\n width: 16px;\n height: 16px;\n stroke: currentColor;\n flex-shrink: 0;\n }\n .action-icon:hover {\n color: var(--ai-primary);\n background: var(--ai-shadow);\n transform: translateY(-1px);\n }\n .action-icon:active { transform: translateY(0) scale(0.95); }\n .action-icon.copied {\n color: var(--ai-success);\n background: rgba(16, 185, 129, 0.08);\n }\n\n /* ========== 底部输入框(与Vue .dialog-footer 一致) ========== */\n .dialog-footer {\n padding: 8px 18px 14px;\n background: var(--ai-bg);\n position: relative;\n flex-shrink: 0;\n }\n /* 顶部微妙分隔线 */\n .dialog-footer::before {\n content: none;\n position: absolute;\n top: 0;\n left: 24px;\n right: 24px;\n height: 1px;\n background: linear-gradient(90deg, transparent, var(--ai-border), transparent);\n opacity: 0.4;\n }\n\n .input-container {\n position: relative;\n display: flex;\n flex-direction: column;\n width: 100%;\n background: #ffffff;\n border: 1px solid #dfe5ee;\n border-radius: 4px;\n overflow: hidden;\n padding: 0;\n min-height: 86px;\n cursor: text;\n z-index: 2;\n transition: border-color 0.18s ease, box-shadow 0.18s ease;\n box-shadow: 0 1px 4px rgba(15, 23, 42, 0.04);\n }\n .input-container:focus-within {\n border-color: var(--ai-primary);\n background: #ffffff;\n box-shadow: 0 0 0 2px rgba(37, 99, 235, 0.07), 0 2px 8px rgba(15, 23, 42, 0.06);\n transform: none;\n }\n .input-container:has(.message-input:disabled) { opacity: 0.55; cursor: not-allowed; }\n\n .message-input {\n width: 100%;\n min-height: 44px;\n max-height: 132px;\n border: none;\n background: transparent;\n font-size: var(--ai-font-message);\n color: var(--ai-text);\n outline: none;\n padding: 10px 12px 6px;\n line-height: 1.5;\n resize: none;\n overflow-y: hidden;\n box-sizing: border-box;\n }\n .message-input::placeholder { color: #9ca3af; font-style: normal; }\n .message-input:disabled { cursor: not-allowed; }\n .attachment-input { display: none; }\n .input-tools {\n display: flex;\n align-items: center;\n justify-content: space-between;\n min-height: 36px;\n padding: 0 8px 8px 8px;\n }\n .input-tool {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 28px;\n height: 28px;\n border-radius: 4px;\n border: none;\n color: #4b5563;\n font-size: 17px;\n cursor: pointer;\n }\n .input-tool svg {\n width: 18px;\n height: 18px;\n }\n .input-tool:hover {\n background: #f3f4f6;\n color: #111827;\n }\n .input-tool.has-attachment {\n color: var(--ai-primary);\n background: rgba(37, 99, 235, 0.08);\n }\n .input-tool.attach-tool { display: none; }\n\n /* 发送按钮(与Vue .send-btn 完全一致,含光泽动画)*/\n .send-btn {\n margin-left: auto;\n flex-shrink: 0;\n width: 28px;\n height: 28px;\n border-radius: 50%;\n border: none;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n background: var(--ai-primary);\n color: #fff;\n transition: background 0.18s ease, transform 0.18s ease;\n box-shadow: none;\n overflow: hidden;\n padding: 0;\n }\n .send-btn::before { display: none; }\n .send-btn:hover:not(:disabled) {\n transform: none;\n background: var(--ai-primary);\n box-shadow: none;\n }\n .send-btn:active:not(:disabled) { transform: translateY(0) scale(0.95); }\n .send-btn:disabled {\n background: #e5e7eb;\n cursor: not-allowed;\n color: #94A3B8;\n box-shadow: none;\n }\n .send-btn:disabled::before { display: none; }\n .send-btn svg {\n width: 16px;\n height: 16px;\n position: relative;\n z-index: 1;\n filter: none;\n transform: rotate(-45deg);\n }\n .footer-note {\n display: flex;\n justify-content: space-between;\n gap: 12px;\n padding: 10px 2px 0;\n color: #b5bbc5;\n font-size: 12px;\n line-height: 1;\n }\n .footer-note-left,\n .footer-note-right {\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n }\n\n /* ========== 悬浮按钮(与Vue .float-button 一致,含彩虹边框动画) ========== */\n .float-button {\n position: fixed;\n right: 32px;\n bottom: 24px;\n width: auto;\n height: 44px;\n min-width: 104px;\n gap: 8px;\n padding: 0 16px;\n border-radius: 22px;\n background: #ffffff;\n border: 1px solid #dfe5ee;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n box-shadow: 0 6px 18px rgba(15, 23, 42, 0.1);\n transition: border-color 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease;\n z-index: 1;\n overflow: hidden;\n }\n .float-button::before { content: 'AI 助手'; font-size: 14px; font-weight: 600; color: #111827; }\n @keyframes gradientRotate { to { transform: rotate(360deg); } }\n .float-button:hover {\n transform: translateY(-1px);\n border-color: #cbd5e1;\n box-shadow: 0 10px 24px rgba(15, 23, 42, 0.14);\n }\n .float-button:hover::before { opacity: 1; animation-play-state: initial; }\n\n /* 错误提示toast */\n .error-toast {\n position: absolute;\n top: 60px;\n left: 50%;\n transform: translateX(-50%);\n background: #fef2f2;\n border: 1px solid #fecaca;\n color: #dc2626;\n padding: 8px 16px;\n border-radius: 10px;\n font-size: 13px;\n z-index: 10;\n white-space: nowrap;\n animation: fadeInOut 3s forwards;\n }\n\n /* P1-8: 网络状态离线提示条 */\n .network-tip {\n position: absolute;\n top: 0; left: 0; right: 0;\n background: #fef3c7;\n border-bottom: 1px solid #fcd34d;\n color: #92400e;\n padding: 8px 12px;\n font-size: 13px;\n text-align: center;\n z-index: 10;\n border-radius: var(--ai-radius-l) var(--ai-radius-l) 0 0;\n }\n\n @keyframes fadeInOut {\n 0% { opacity: 0; transform: translateX(-50%) translateY(-8px); }\n 10% { opacity: 1; transform: translateX(-50%) translateY(0); }\n 80% { opacity: 1; transform: translateX(-50%) translateY(0); }\n 100% { opacity: 0; transform: translateX(-50%) translateY(-8px); }\n }\n\n /* P2-17: JS驱动移动端全屏模式样式(与Vue dialogStyle isMobile分支一致) */\n .ai-chat-dialog.mobile-mode {\n position: fixed !important;\n width: 100vw !important;\n height: 100vh !important;\n left: 0 !important;\n top: 0 !important;\n right: auto !important;\n bottom: auto !important;\n border-radius: 0 !important;\n max-width: none !important;\n max-height: none !important;\n }\n .mobile-mode .dialog-header {\n min-height: calc(54px + env(safe-area-inset-top));\n padding: env(safe-area-inset-top) 14px 0 16px;\n }\n .mobile-mode .header-title { font-size: 15px; }\n .mobile-mode .header-icon { width: 34px; height: 34px; }\n .mobile-mode .new-chat-btn { width: 34px; height: 34px; }\n .mobile-mode .dialog-body { padding: 16px 14px; }\n .mobile-mode .message-item { max-width: 100%; width: 100%; }\n .mobile-mode .message-bubble { padding: 11px 15px; font-size: 14px; }\n .mobile-mode .dialog-footer { padding: 12px 14px; padding-bottom: max(12px, env(safe-area-inset-bottom)); }\n .mobile-mode .input-container { border-radius: 4px; min-height: 86px; }\n .mobile-mode .message-input { font-size: 16px; padding: 10px 12px 6px; } /* iOS防自动缩放 */\n .mobile-mode .send-btn { width: 28px; height: 28px; }\n .mobile-mode .expand-btn { display: none !important; } /* 移动端隐藏展开按钮 */\n\n /* ========== 执行过程面板 ========== */\n .runtime-panel {\n margin-top: 8px;\n border: 1px solid rgba(24, 144, 255, 0.12);\n background: linear-gradient(180deg, rgba(248, 250, 252, 0.96), rgba(255, 255, 255, 0.96));\n border-radius: 10px;\n overflow: hidden;\n }\n .runtime-header {\n display: grid;\n grid-template-columns: auto 1fr auto auto;\n align-items: center;\n gap: 8px;\n padding: 9px 10px;\n font-size: 12px;\n color: var(--ai-text-secondary, #64748b);\n cursor: pointer;\n user-select: none;\n }\n .runtime-header:hover { color: var(--ai-primary, #1890ff); }\n .runtime-header .arrow { transition: transform 0.2s; font-size: 10px; }\n .runtime-header .arrow.expanded { transform: rotate(90deg); }\n .runtime-title {\n min-width: 0;\n display: flex;\n flex-direction: column;\n gap: 2px;\n }\n .runtime-title-main {\n color: var(--ai-text);\n font-weight: 600;\n line-height: 1.25;\n }\n .runtime-title-sub {\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n color: var(--ai-text-secondary);\n font-size: 11px;\n line-height: 1.25;\n }\n .runtime-status {\n padding: 2px 8px;\n border-radius: 999px;\n font-size: 10px;\n font-weight: 600;\n white-space: nowrap;\n }\n .runtime-status.running { background: #dbeafe; color: #1d4ed8; }\n .runtime-status.completed { background: #dcfce7; color: #166534; }\n .runtime-status.error { background: #fee2e2; color: #991b1b; }\n .runtime-count {\n min-width: 20px;\n color: var(--ai-text-secondary);\n font-size: 10px;\n text-align: right;\n }\n .runtime-progress {\n height: 2px;\n background: rgba(24, 144, 255, 0.08);\n overflow: hidden;\n }\n .runtime-progress-bar {\n height: 100%;\n width: 42%;\n background: linear-gradient(90deg, transparent, var(--ai-primary), transparent);\n animation: runtimeProgress 1.45s ease-in-out infinite;\n }\n .runtime-progress.completed .runtime-progress-bar,\n .runtime-progress.error .runtime-progress-bar {\n width: 100%;\n animation: none;\n background: currentColor;\n }\n .runtime-progress.completed { color: #22c55e; }\n .runtime-progress.error { color: #ef4444; }\n @keyframes runtimeProgress {\n 0% { transform: translateX(-120%); }\n 100% { transform: translateX(260%); }\n }\n .runtime-events {\n padding: 6px 10px 9px;\n border-top: 1px solid rgba(15, 23, 42, 0.05);\n max-height: 120px;\n overflow-y: auto;\n overscroll-behavior: contain;\n scrollbar-width: thin;\n scrollbar-color: rgba(148, 163, 184, 0.5) transparent;\n }\n .runtime-events::-webkit-scrollbar { width: 4px; }\n .runtime-events::-webkit-scrollbar-track { background: transparent; }\n .runtime-events::-webkit-scrollbar-thumb {\n background: rgba(148, 163, 184, 0.45);\n border-radius: 999px;\n }\n .runtime-event {\n display: grid;\n grid-template-columns: 14px 1fr;\n align-items: flex-start;\n gap: 7px;\n padding: 4px 0;\n font-size: 11px; color: var(--ai-text-secondary, #64748b);\n }\n .runtime-event-icon {\n width: 7px;\n height: 7px;\n border-radius: 50%;\n background: rgba(24, 144, 255, 0.42);\n margin: 6px auto 0;\n font-size: 0;\n }\n .runtime-event:last-child .runtime-event-icon {\n background: var(--ai-primary);\n box-shadow: 0 0 0 4px rgba(24, 144, 255, 0.1);\n }\n /* Spinner on the folded panel header indicating latest event is running */\n .runtime-title-running .runtime-title-spinner {\n display: inline-block;\n width: 10px;\n height: 10px;\n border: 2px solid rgba(24, 144, 255, 0.25);\n border-top-color: var(--ai-primary);\n border-radius: 50%;\n margin-right: 4px;\n vertical-align: middle;\n animation: runtimeSpinner 0.8s linear infinite;\n }\n .runtime-title-running .runtime-title-text {\n display: inline;\n }\n .runtime-title-not-running .runtime-title-spinner {\n display: none;\n }\n @keyframes runtimeSpinner {\n to { transform: rotate(360deg); }\n }\n .runtime-event-text { flex: 1; line-height: 1.5; }\n .hidden { display: none !important; }\n\n /* ========== 移动端适配(与Vue @media 一致) ========== */\n @media screen and (max-width: 768px) {\n :host { top: 0; right: 0; bottom: 0; }\n .ai-chat-dialog { border-radius: 0 !important; right: 0; top: 0; bottom: 0; width: 100vw; }\n .dialog-header { min-height: 54px; padding: 0 14px 0 16px; }\n .header-title { font-size: 15px; }\n .header-icon { width: 34px; height: 34px; }\n .new-chat-btn { width: 34px; height: 34px; }\n .dialog-body { padding: 16px 18px 16px; }\n .message-list { gap: 9px; }\n .message-item { max-width: 100%; width: 100%; }\n .message-bubble { padding: 11px 15px; font-size: 14px; }\n .welcome-text { font-size: 22px; line-height: 1.3; margin-bottom: 9px; }\n .welcome-desc { font-size: 13px; line-height: 1.55; margin-bottom: 18px; }\n .quick-suggestions { gap: 10px; margin-top: 0; }\n .suggestion-chip { min-height: 40px; padding: 0 16px; font-size: 12px; border-radius: 30px; box-sizing: border-box; }\n .dialog-footer { padding: 12px 14px 16px; }\n .input-container { border-radius: 4px; min-height: 86px; }\n .runtime-events { max-height: 94px; }\n .message-input { font-size: 16px; padding: 10px 12px 6px; min-height: 44px; }\n .send-btn { width: 28px; height: 28px; }\n .float-button { height: 42px; min-width: 96px; }\n .action-icon { width: 30px; height: 30px; }\n }\n\n /* ========== 暗色主题覆盖(theme: 'dark') ========== */\n :host(.dark-theme) .ai-chat-dialog {\n box-shadow: 0 8px 32px rgba(0, 0, 0, 0.5), 0 2px 8px rgba(0, 0, 0, 0.3);\n }\n :host(.dark-theme) .input-container {\n background: var(--ai-input-bg);\n border-color: var(--ai-input-border);\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.22);\n }\n :host(.dark-theme) .input-container:focus-within {\n background: var(--ai-input-bg);\n box-shadow: 0 0 0 2px rgba(110, 168, 254, 0.18), 0 4px 14px rgba(0, 0, 0, 0.24);\n }\n :host(.dark-theme) .message-input {\n background: transparent;\n color: var(--ai-text);\n }\n :host(.dark-theme) .message-input::placeholder { color: var(--ai-text-secondary); }\n :host(.dark-theme) .empty-state { background: var(--ai-bg-gradient); }\n :host(.dark-theme) .welcome-text { color: var(--ai-text); }\n :host(.dark-theme) .welcome-desc { color: var(--ai-text-secondary); }\n :host(.dark-theme) .dialog-body { background: var(--ai-bg-gradient); }\n :host(.dark-theme) pre code { background: #0d1117; color: #c9d1d9; }\n :host(.dark-theme) blockquote { background: rgba(110, 168, 254, 0.08); }\n :host(.dark-theme) th { background: rgba(110, 168, 254, 0.12); }\n :host(.dark-theme) hr { border-top-color: var(--ai-border); }\n</style>\n\n<div class=\"ai-float-container\">\n <!-- 对话框 -->\n <div class=\"ai-chat-dialog\">\n <!-- 头部(含展开/关闭按钮) -->\n <div class=\"dialog-header\">\n <div class=\"header-left\">\n <span class=\"header-title\">${this.escapeHtml(this._config?.title || 'AI 助手')}</span>\n </div>\n <div class=\"header-right\">\n <button class=\"new-chat-btn history-btn\" type=\"button\" title=\"历史记录\" aria-label=\"历史记录\">\n <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M3 12a9 9 0 1 0 3-6.7\"/><path d=\"M3 4v5h5\"/><path d=\"M12 7v5l3 2\"/></svg>\n </button>\n <button class=\"new-chat-btn new-session-btn\" type=\"button\" title=\"新会话\" aria-label=\"新会话\">\n <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M12 5v14\"/><path d=\"M5 12h14\"/></svg>\n </button>\n <span class=\"header-icon expand-btn\" title=\"放大\" aria-label=\"放大\">\n <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n <path d=\"M8 3H5a2 2 0 0 0-2 2v3m18 0V5a2 2 0 0 0-2-2h-3m0 18h3a2 2 0 0 0 2-2v-3M3 16v3a2 2 0 0 0 2 2h3\"/>\n </svg>\n </span>\n <span class=\"header-icon close-btn\" title=\"关闭\" aria-label=\"关闭\">\n <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke-width=\"2.5\" stroke-linecap=\"round\">\n <path d=\"M18 6L6 18\"/><path d=\"M6 6l12 12\"/>\n </svg>\n </span>\n </div>\n </div>\n\n <!-- 消息区域 -->\n <div class=\"dialog-body\" id=\"messagesContainer\"></div>\n\n <!-- 输入区域 -->\n <div class=\"dialog-footer\">\n <div class=\"input-container\" id=\"inputContainer\">\n <textarea class=\"message-input\" id=\"msgInput\"\n placeholder=\"请输入您的问题...\" autocomplete=\"off\" rows=\"2\"></textarea>\n <div class=\"input-tools\">\n <button class=\"input-tool attach-tool\" id=\"attachBtn\" type=\"button\" title=\"上传附件\" aria-label=\"上传附件\">\n <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M21.44 11.05 12.25 20.24a6 6 0 0 1-8.49-8.49l9.19-9.19a4 4 0 0 1 5.66 5.66l-9.2 9.19a2 2 0 0 1-2.83-2.83l8.49-8.48\"/></svg>\n </button>\n <input class=\"attachment-input\" id=\"attachmentInput\" type=\"file\" multiple />\n <button class=\"send-btn\" id=\"sendBtn\" aria-label=\"发送\" disabled>\n <svg viewBox=\"0 0 24 24\" fill=\"currentColor\"><path d=\"M2.01 21L23 12 2.01 3 2 10l15 2-15 2z\"/></svg>\n </button>\n </div>\n </div>\n <div class=\"footer-note\">\n <span class=\"footer-note-left\">${this.escapeHtml(this._config?.footerDisclaimer || '')}</span>\n <span class=\"footer-note-right\">${this.escapeHtml(this._config?.footerIdentity || '')}</span>\n </div>\n </div>\n </div>\n\n <!-- 悬浮按钮 -->\n <div class=\"float-button\" id=\"floatBtn\" title=\"打开AI助手\"></div>\n</div>\n`;\n\n // 缓存DOM引用\n this._dialog = this.shadowRoot.querySelector('.ai-chat-dialog');\n this._body = this.shadowRoot.querySelector('#messagesContainer');\n this._input = this.shadowRoot.querySelector('#msgInput');\n this._sendBtn = this.shadowRoot.querySelector('#sendBtn');\n this._attachBtn = this.shadowRoot.querySelector('#attachBtn');\n this._attachmentInput = this.shadowRoot.querySelector('#attachmentInput');\n this._closeBtn = this.shadowRoot.querySelector('.close-btn');\n this._expandBtn = this.shadowRoot.querySelector('.expand-btn');\n this._newChatBtn = this.shadowRoot.querySelector('.new-session-btn');\n this._historyBtn = this.shadowRoot.querySelector('.history-btn');\n this._floatBtn = this.shadowRoot.querySelector('#floatBtn');\n this._inputContainer = this.shadowRoot.querySelector('#inputContainer');\n\n this.renderMessages({ forceScroll: true });\n }\n\n bindEvents() {\n requestAnimationFrame(() => {\n // 关闭按钮\n if (this._closeBtn) this._closeBtn.addEventListener('click', () => this.close());\n\n // 展开/收起按钮\n if (this._expandBtn) this._expandBtn.addEventListener('click', () => this.toggleExpand());\n\n // 新会话按钮\n if (this._newChatBtn) this._newChatBtn.addEventListener('click', () => this.clearChat());\n\n // 历史记录按钮\n if (this._historyBtn) this._historyBtn.addEventListener('click', () => this.toggleHistory());\n\n // 悬浮按钮打开\n if (this._floatBtn) this._floatBtn.addEventListener('click', () => this.open());\n\n // 发送按钮\n if (this._sendBtn) this._sendBtn.addEventListener('click', () => this.handleSend());\n\n // 附件选择\n if (this._attachBtn && this._attachmentInput) {\n this._attachBtn.addEventListener('click', () => this._attachmentInput.click());\n this._attachmentInput.addEventListener('change', () => this._handleAttachmentSelect());\n }\n\n // 输入回车发送\n if (this._input) {\n this._autoResizeInput();\n this._updateSendButtonState();\n this._input.addEventListener('input', () => {\n this._autoResizeInput();\n this._updateSendButtonState();\n });\n this._input.addEventListener('keydown', (e) => {\n if (e.key === 'Enter' && !e.shiftKey) { e.preventDefault(); this.handleSend(); }\n });\n }\n\n // 拖拽\n if (this._dialog && this._config?.enableDrag !== false) this.initDraggable();\n });\n }\n\n // ==================== 展开/收起 ====================\n\n toggleExpand() {\n this._isExpanded = !this._isExpanded;\n const dlg = this._dialog;\n if (!dlg) return;\n\n // P2-17: 移动端始终全屏,展开/收起无意义(与Vue版 dialogStyle 一致)\n if (this._isMobile) {\n this._isExpanded = false; // 移动端不记录展开状态\n return;\n }\n\n if (this._isExpanded) {\n dlg.classList.add('expanded');\n dlg.style.width = 'min(560px, calc(100vw - 48px))';\n dlg.style.height = 'min(640px, 80vh)';\n dlg.style.maxHeight = '';\n dlg.style.minHeight = '';\n dlg.style.left = 'auto';\n dlg.style.top = DEFAULT_DIALOG_TOP;\n dlg.style.right = '24px';\n dlg.style.bottom = 'auto';\n // 切换展开图标为还原图标\n this._expandBtn.innerHTML = `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M8 3v3a2 2 0 01-2 2H3m18 0h-3a2 2 0 00-2-2V3m0 18v-3a2 2 0 012-2h3M3 16h3a2 2 0 002 2v3\"/></svg>`;\n this._expandBtn.title = '缩小';\n } else {\n dlg.classList.remove('expanded');\n dlg.style.width = 'min(420px, calc(100vw - 48px))';\n dlg.style.height = 'min(640px, 80vh)';\n dlg.style.maxHeight = '';\n dlg.style.minHeight = '';\n dlg.style.left = this._dialogX ? this._dialogX + 'px' : 'auto';\n dlg.style.right = this._dialogX ? 'auto' : '24px';\n dlg.style.top = this._dialogY ? this._dialogY + 'px' : DEFAULT_DIALOG_TOP;\n dlg.style.bottom = 'auto';\n // 还原为放大图标\n this._expandBtn.innerHTML = `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M8 3H5a2 2 0 0 0-2 2v3m18 0V5a2 2 0 0 0-2-2h-3m0 18h3a2 2 0 0 0 2-2v-3M3 16v3a2 2 0 0 0 2 2h3\"/></svg>`;\n this._expandBtn.title = '放大';\n }\n\n this.dispatchEvent(new CustomEvent('expand', { detail: this._isExpanded }));\n }\n\n // ==================== 拖拽(与Vue startDrag/onDrag/stopDrag 一致) ====================\n\n initDraggable() {\n const header = this.shadowRoot?.querySelector('.dialog-header');\n if (!header) return;\n\n const startDrag = (clientX, clientY) => {\n // P2-17: 移动端禁用拖拽(与Vue版 startTouchDrag: if(isExpanded || isMobile) return 一致)\n if (this._isExpanded || this._isMobile) return;\n this._isDragging = true;\n this._dialog.classList.add('dragging');\n const rect = this._dialog.getBoundingClientRect();\n this._dragStartX = clientX - rect.left;\n this._dragStartY = clientY - rect.top;\n };\n\n const onDrag = (clientX, clientY) => {\n if (!this._isDragging) return;\n this._dialogX = clientX - this._dragStartX;\n this._dialogY = clientY - this._dragStartY;\n this._dialog.style.left = this._dialogX + 'px';\n this._dialog.style.right = 'auto';\n this._dialog.style.top = this._dialogY + 'px';\n this._dialog.style.bottom = 'auto';\n };\n\n const stopDrag = () => {\n if (this._isDragging) {\n this._isDragging = false;\n this._dialog.classList.remove('dragging');\n }\n };\n\n // 鼠标事件(桌面端)\n header.addEventListener('mousedown', (e) => {\n if (e.target.closest('button, .header-icon')) return;\n startDrag(e.clientX, e.clientY);\n e.preventDefault();\n });\n document.addEventListener('mousemove', (e) => { onDrag(e.clientX, e.clientY); });\n document.addEventListener('mouseup', stopDrag);\n\n // P1-7: 触摸事件(移动端,与Vue版一致)\n header.addEventListener('touchstart', (e) => {\n if (this._isExpanded) return;\n if (e.target.closest('button, .header-icon')) return;\n const touch = e.touches[0];\n startDrag(touch.clientX, touch.clientY);\n }, { passive: true });\n document.addEventListener('touchmove', (e) => {\n if (!this._isDragging) return;\n const touch = e.touches[0];\n onDrag(touch.clientX, touch.clientY);\n }, { passive: true });\n document.addEventListener('touchend', stopDrag);\n }\n\n applyConfig() {\n if (!this._config) return;\n // 更新标题\n const titleEl = this.shadowRoot.querySelector('.header-title');\n if (titleEl && this._config.title) titleEl.textContent = this._config.title;\n\n // 更新placeholder\n if (this._input && this._config.placeholder) this._input.placeholder = this._config.placeholder;\n // P1-11: 动态设置输入框最大长度\n if (this._input && this._config.maxLength) this._input.maxLength = this._config.maxLength;\n\n // ====== 主题处理:16种字符串预设 + 对象自定义 ======\n const t = this._config.theme;\n const host = this.shadowRoot.host;\n\n if (typeof t === 'string') {\n if (t !== 'default') {\n // 先重置为默认值,再覆盖预设主题(避免残留)\n this._resetThemeVars();\n const preset = PRESET_THEMES[t.toUpperCase()];\n if (preset) {\n Object.entries(preset.colors).forEach(([k, v]) => {\n const cssVarKey = THEME_COLOR_KEY_MAP[k];\n if (cssVarKey) this._themeVars[cssVarKey] = v;\n });\n if (preset.borderRadius) Object.entries(preset.borderRadius).forEach(([k, v]) => { this._themeVars[`--ai-radius-${k}`] = v; });\n if (preset.fontSize) Object.entries(preset.fontSize).forEach(([k, v]) => { this._themeVars[`--ai-font-${k}`] = v; });\n } else {\n console.warn(`[AIChatDialog] Unknown theme: \"${t}\", using default`);\n }\n } else {\n // 'default' → 完全恢复默认值\n this._resetThemeVars();\n }\n host.classList.toggle('dark-theme', ['dark', 'starsky'].includes(t.toLowerCase()));\n }\n\n // 对象形式自定义主题 - 也先重置再合并\n if (t && typeof t === 'object') {\n this._resetThemeVars();\n if (t.colors) Object.entries(t.colors).forEach(([k, v]) => { if (v) this._themeVars[`--ai-${k}`] = v; });\n if (t.borderRadius) Object.entries(t.borderRadius).forEach(([k, v]) => { if (v) this._themeVars[`--ai-radius-${k}`] = v; });\n if (t.fontSize) Object.entries(t.fontSize).forEach(([k, v]) => { if (v) this._themeVars[`--ai-font-${k}`] = v; });\n host.classList.remove('dark-theme');\n }\n\n // 应用所有CSS变量到host\n Object.entries(this._themeVars).forEach(([k, v]) => host.style.setProperty(k, v));\n }\n\n async loadAppDetail() {\n const appId = this._config?.appId || this._config?.agentAppId;\n if (!appId || !this._chatClient) return;\n try {\n const response = await this._chatClient.getAppDetail(appId);\n if (!response?.success || !response.data) return;\n const detail = response.data;\n this._appDetail = detail;\n const parsed = this._parsePrologue(detail.basicUsageTip || detail.prologue || '');\n if (detail.name && (!this._config.title || this._config.title === 'AI 助手' || this._config.title === 'AI 智能助手')) {\n this._config.title = detail.name;\n }\n if (detail.name) {\n this._config.welcomeText = detail.name;\n }\n const desc = parsed.text || detail.description || detail.prologue || '';\n if (desc) {\n this._config.welcomeDesc = desc;\n }\n if (parsed.questions.length > 0) {\n this._config.suggestions = parsed.questions.map(question => ({ label: question, value: question }));\n }\n this.applyConfig();\n if (this._messages.length === 0 && !this._historyVisible) this.renderMessages();\n this.dispatchEvent(new CustomEvent('app-detail-loaded', { detail }));\n } catch (error) {\n console.warn('[AIChatDialog] 应用信息加载失败:', error);\n }\n }\n\n _parsePrologue(prologue) {\n const lines = String(prologue || '')\n .split(/\\r?\\n/)\n .map(line => line.trim())\n .filter(Boolean);\n const textLines = [];\n const questions = [];\n lines.forEach(line => {\n const question = line.replace(/^[-*]\\s+/, '').trim();\n if (/^[-*]\\s+/.test(line)) {\n questions.push(question);\n } else {\n textLines.push(line);\n }\n });\n return {\n text: textLines.join('\\n'),\n questions\n };\n }\n\n // ==================== 渲染消息(与Vue模板结构一致) ====================\n\n renderMessages(options = {}) {\n if (!this._body) return;\n if (this._historyVisible) {\n this.renderHistoryView();\n return;\n }\n const shouldStickToBottom = options.forceScroll === true || this._shouldAutoScroll();\n const prevScrollTop = this._body.scrollTop || 0;\n\n if (this._messages.length === 0) {\n // 空状态欢迎页(与Vue template lines 30-48 一致)\n const suggestions = this._config?.suggestions || [];\n let chipsHtml = '';\n if (suggestions.length > 0) {\n chipsHtml = '<div class=\"quick-suggestions\">' +\n suggestions.map(s => `<span class=\"suggestion-chip\" data-value=\"${this.escapeAttr(s.value || s.label)}\"><span class=\"chip-icon\">💡</span>${this.escapeHtml(s.label)}</span>`).join('') +\n '</div>';\n }\n this._body.innerHTML = `\n <div class=\"empty-state\">\n <div class=\"welcome-content\">\n <p class=\"welcome-text\">${this.escapeHtml(this._config?.welcomeText || '您好!我是 AI 智能助理')}</p>\n <p class=\"welcome-desc\">${this.escapeHtml(this._config?.welcomeDesc || '我可以帮您解答系统使用问题')}</p>\n ${chipsHtml}\n </div>\n </div>`;\n // 绑定建议点击\n this._body.querySelectorAll('.suggestion-chip').forEach(chip => {\n chip.addEventListener('click', () => {\n const val = chip.dataset.value || chip.textContent.replace(/[💡\\s]/g, '');\n this._input.value = val;\n this._autoResizeInput();\n this.handleSend();\n });\n });\n } else {\n // 消息列表(与Vue template lines 50-83 一致)\n let html = '<div class=\"message-list\">';\n const runtimeExists = this._messages.some(m => m.type === 'ai' && m._runtimeEvents && m._runtimeEvents.length > 0);\n this._messages.forEach((msg, idx) => {\n const hasRuntimeEvents = msg.type === 'ai' && msg._runtimeEvents && msg._runtimeEvents.length > 0;\n const showInitialLoading = msg._isStreaming && !msg.content && !hasRuntimeEvents && !runtimeExists;\n const bubbleClass = [\n 'message-bubble',\n showInitialLoading ? 'loading' : ''\n ].filter(Boolean).join(' ');\n let bubbleContent = '';\n if (showInitialLoading) {\n bubbleContent = '<span class=\"thinking-text\">思考中</span><span class=\"typing-indicator\"><span class=\"typing-dot\"></span><span class=\"typing-dot\"></span><span class=\"typing-dot\"></span></span>';\n } else {\n const textToRender = msg._isStreaming ? (msg.content || '') : (msg.content || '');\n bubbleContent = msg._isStreaming || textToRender\n ? `<div class=\"message-text\">${msg.type === 'ai' ? this.parseMarkdown(textToRender) : this.escapeHtml(textToRender)}</div>`\n : '';\n }\n html += `<div class=\"message-item ${msg.type}\">\n <div class=\"message-content\">\n ${hasRuntimeEvents ? this._buildRuntimePanel(msg, idx) : ''}\n ${bubbleContent ? `<div class=\"${bubbleClass}\">${bubbleContent}</div>` : ''}\n ${!msg._isStreaming ? `<div class=\"message-actions-bar\">\n ${msg.type === 'ai' ? `<div class=\"action-icons\">\n <span class=\"action-icon copy-btn${msg.copied ? ' copied' : ''}\" data-idx=\"${idx}\" title=\"${msg.copied ? '已复制' : '复制'}\">${msg.copied ? '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke-width=\"2\"><path d=\"m20 6-11 11-5-5\"/></svg>' : '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke-width=\"2\"><rect x=\"9\" y=\"9\" width=\"13\" height=\"13\" rx=\"2\"/><path d=\"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1\"/></svg>'}</span>\n <span class=\"action-icon regenerate-btn\" data-idx=\"${idx}\" title=\"重新回答\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke-width=\"2\"><path d=\"M21 12a9 9 0 1 1-2.64-6.36\"/><path d=\"M21 3v6h-6\"/></svg></span>\n </div>` : ''}\n </div>` : ''}\n </div>\n </div>`;\n });\n\n // 加载状态 — 有执行过程时不展示思考中\n if (this._isLoading && !runtimeExists) {\n html += '<div class=\"message-item ai\">' +\n '<div class=\"message-content\">' +\n '<div class=\"message-bubble loading\"><span class=\"thinking-text\">思考中</span><span class=\"typing-indicator\"><span class=\"typing-dot\"></span><span class=\"typing-dot\"></span><span class=\"typing-dot\"></span></span></div>' +\n '</div>' +\n '</div>';\n }\n\n html += '</div>';\n this._body.innerHTML = html;\n\n // 绑定复制事件\n this._body.querySelectorAll('.copy-btn').forEach(btn => {\n btn.addEventListener('click', () => {\n const idx = parseInt(btn.dataset.idx);\n const msg = this._messages[idx];\n if (msg) this.copyMessage(msg.content, idx);\n });\n });\n\n // 绑定重新生成事件\n this._body.querySelectorAll('.regenerate-btn').forEach(btn => {\n btn.addEventListener('click', () => {\n const idx = parseInt(btn.dataset.idx);\n this.regenerate(idx);\n });\n });\n\n // 绑定执行过程面板折叠/展开(Shadow DOM 下 inline onclick 不可靠)\n this._body.querySelectorAll('.runtime-header').forEach(header => {\n header.addEventListener('click', () => {\n const panel = header.closest('.runtime-panel');\n const evts = panel ? panel.querySelector('.runtime-events') : null;\n if (evts) evts.classList.toggle('hidden');\n const arrow = header.querySelector('.arrow');\n if (arrow) arrow.classList.toggle('expanded');\n });\n });\n }\n\n if (shouldStickToBottom) {\n this.scrollToBottom();\n } else {\n requestAnimationFrame(() => {\n if (this._body) this._body.scrollTop = prevScrollTop;\n });\n }\n }\n\n renderHistoryView() {\n if (!this._body) return;\n const records = this._getFilteredHistoryRecords();\n const bodyHtml = this._historyLoading\n ? '<div class=\"history-loading\">正在加载历史记录...</div>'\n : records.length > 0\n ? `<div class=\"history-list\">${records.map((record, idx) => this._buildHistoryItem(record, idx)).join('')}</div>`\n + (this._historyHasMore\n ? '<button class=\"history-load-more\" type=\"button\">加载更多...</button>'\n : '')\n : '<div class=\"history-empty\">暂无历史记录</div>';\n this._body.innerHTML = `\n <div class=\"history-view\">\n <div class=\"history-head\">\n <div class=\"history-title\">历史记录</div>\n <button class=\"history-back\" type=\"button\">返回对话</button>\n </div>\n ${bodyHtml}\n </div>`;\n const back = this._body.querySelector('.history-back');\n if (back) back.addEventListener('click', () => {\n this._historyVisible = false;\n this.renderMessages({ forceScroll: true });\n });\n this._body.querySelectorAll('.history-item').forEach(item => {\n item.addEventListener('click', () => {\n const idx = Number(item.dataset.idx);\n const record = records[idx];\n if (record) this.openHistoryRecord(record);\n });\n });\n const loadMore = this._body.querySelector('.history-load-more');\n if (loadMore) loadMore.addEventListener('click', () => {\n this.loadHistoryRecords(true);\n });\n }\n\n _buildHistoryItem(record, idx) {\n const title = record.prompt || record.question || record.content || '未命名对话';\n const preview = record.replyText || record.answer || '';\n return `<button class=\"history-item\" type=\"button\" data-idx=\"${idx}\">\n <div class=\"history-item-title\">${this.escapeHtml(title)}</div>\n ${preview ? `<div class=\"history-item-preview\">${this.escapeHtml(preview)}</div>` : ''}\n </button>`;\n }\n\n _getFilteredHistoryRecords() {\n const records = Array.isArray(this._historyRecords) ? this._historyRecords : [];\n const grouped = new Map();\n records.forEach(record => {\n const key = record.conversationId || record.recordId || record.requestId;\n if (!key) {\n grouped.set('_noKey_' + Math.random() + '_' + grouped.size, record);\n return;\n }\n const existing = grouped.get(key);\n if (!existing) {\n grouped.set(key, record);\n } else {\n // 保留conversationId非空的记录,或createTime更新的记录\n const existConv = existing.conversationId;\n const recConv = record.conversationId;\n if (!existConv && recConv) {\n grouped.set(key, record);\n } else if (existConv || !recConv) {\n const existTime = existing.createTime ? Date.parse(String(existing.createTime).replace(/-/g, '/')) : 0;\n const recTime = record.createTime ? Date.parse(String(record.createTime).replace(/-/g, '/')) : 0;\n if (recTime > existTime) grouped.set(key, record);\n }\n }\n });\n let result = Array.from(grouped.values());\n const days = Number(this._config?.historyDays || 0);\n if (!days) return result;\n const minTime = Date.now() - days * 24 * 60 * 60 * 1000;\n return result.filter(record => {\n const time = record.createTime ? Date.parse(String(record.createTime).replace(/-/g, '/')) : NaN;\n return Number.isNaN(time) || time >= minTime;\n });\n }\n\n async toggleHistory() {\n this._historyVisible = !this._historyVisible;\n if (this._historyVisible) {\n if (this._historyLoaded) {\n this.renderHistoryView();\n }\n await this.loadHistoryRecords();\n } else {\n this.renderMessages();\n }\n }\n\n async loadHistoryRecords(append = false) {\n if (!this._chatClient) this._chatClient = new AIChatClient(this._config || {});\n const appId = this._config?.appId || this._config?.agentAppId;\n if (!appId) {\n this.showToast('应用ID不能为空');\n this._historyVisible = false;\n return;\n }\n this._historyLoading = true;\n this.renderHistoryView();\n try {\n const pageSize = this._config?.historyPageSize || 20;\n const pageIndex = append ? (this._historyPageIndex || 1) + 1 : 1;\n const days = Number(this._config?.historyDays || 0);\n const queryOpts = {\n appId,\n bizType: this._config?.bizType,\n pageIndex,\n pageSize\n };\n if (days > 0) {\n queryOpts.startTime = new Date(Date.now() - days * 24 * 60 * 60 * 1000).toISOString();\n }\n const response = await this._chatClient.queryConversation(queryOpts);\n if (response.success) {\n const newRecords = response.data?.records || [];\n if (append) {\n this._historyRecords = (this._historyRecords || []).concat(newRecords);\n } else {\n this._historyRecords = newRecords;\n }\n this._historyPageIndex = pageIndex;\n this._historyHasMore = newRecords.length >= pageSize;\n this._historyLoaded = true;\n } else {\n this.showToast(response.message || '历史记录加载失败');\n }\n } catch (e) {\n this.showToast('历史记录加载失败');\n console.error('loadHistoryRecords error', e);\n if (!append) this._historyRecords = [];\n } finally {\n this._historyLoading = false;\n this.renderHistoryView();\n }\n }\n\n async openHistoryRecord(record) {\n const conversationId = record.conversationId;\n if (conversationId) {\n try {\n const response = await this._chatClient.queryConversation({\n conversationId,\n pageIndex: 1,\n pageSize: 50\n });\n if (response.success && response.data?.records?.length) {\n this._conversationId = conversationId;\n this._chatClient.setConversationId(conversationId);\n this._messages = this._recordsToMessages(response.data.records);\n this._historyVisible = false;\n this.renderMessages({ forceScroll: true });\n return;\n }\n } catch (e) {}\n }\n this._conversationId = conversationId || null;\n if (conversationId) this._chatClient.setConversationId(conversationId);\n this._messages = this._recordsToMessages([record]);\n this._historyVisible = false;\n this.renderMessages({ forceScroll: true });\n }\n\n _recordsToMessages(records) {\n return [...records].reverse().flatMap(record => {\n const messages = [];\n const prompt = record.prompt || record.question || record.content;\n const reply = record.replyText || record.answer;\n if (prompt) {\n messages.push({\n id: `history_user_${record.recordId || record.requestId || this.generateId()}`,\n type: 'user',\n content: prompt,\n attachments: record.attachments || []\n });\n }\n if (reply) {\n messages.push({\n id: `history_ai_${record.recordId || record.requestId || this.generateId()}`,\n type: 'ai',\n content: reply,\n copied: false,\n _status: 'completed'\n });\n }\n return messages;\n });\n }\n\n updateLoadingUI() {\n this.renderMessages();\n if (this._input) this._input.disabled = this._isLoading || this._streaming;\n if (this._attachBtn) this._attachBtn.disabled = this._isLoading || this._streaming;\n this._updateSendButtonState();\n }\n\n scrollToBottom() {\n if (this._body) requestAnimationFrame(() => { this._body.scrollTop = this._body.scrollHeight; });\n }\n\n _shouldAutoScroll() {\n if (!this._body) return true;\n const distanceToBottom = this._body.scrollHeight - this._body.scrollTop - this._body.clientHeight;\n return distanceToBottom < 80;\n }\n\n _autoResizeInput() {\n if (!this._input) return;\n this._input.style.height = 'auto';\n const maxHeight = 132;\n const nextHeight = Math.min(this._input.scrollHeight, maxHeight);\n this._input.style.height = `${nextHeight}px`;\n this._input.style.overflowY = this._input.scrollHeight > maxHeight ? 'auto' : 'hidden';\n }\n\n _updateSendButtonState() {\n if (!this._sendBtn) return;\n const hasText = !!(this._input && this._input.value.trim());\n const hasAttachments = this._attachments && this._attachments.length > 0;\n this._sendBtn.disabled = this._isLoading || (!hasText && !hasAttachments);\n }\n\n _handleAttachmentSelect() {\n if (!this._attachmentInput) return;\n this._attachments = Array.from(this._attachmentInput.files || []);\n if (this._attachBtn) {\n this._attachBtn.classList.toggle('has-attachment', this._attachments.length > 0);\n this._attachBtn.title = this._attachments.length > 0 ? `已选择 ${this._attachments.length} 个附件` : '上传附件';\n }\n this._updateSendButtonState();\n }\n\n // ==================== 发送消息(与Vue sendMessage 一致) ====================\n\n async handleSend() {\n const content = this._input ? this._input.value.trim() : '';\n const attachments = [...(this._attachments || [])];\n if (!content && attachments.length === 0) {\n this.showToast(this._config?.emptyMessageError || '请输入消息内容');\n return;\n }\n if (this._isLoading) return;\n\n // P1-11: 字数限制检查\n const maxLen = this._config?.maxLength ?? 500;\n if (content.length > maxLen) {\n this.showToast(`输入内容不能超过${maxLen}个字符(当前${content.length}字)`);\n return;\n }\n\n // 防抖:500ms内不允许重复发送\n const now = Date.now();\n if (this._lastSendTime && now - this._lastSendTime < 500) return;\n this._lastSendTime = now;\n\n this._input.value = '';\n this._autoResizeInput();\n this._attachments = [];\n if (this._attachmentInput) this._attachmentInput.value = '';\n if (this._attachBtn) {\n this._attachBtn.classList.remove('has-attachment');\n this._attachBtn.title = '上传附件';\n }\n this._updateSendButtonState();\n\n const attachmentText = attachments.length > 0\n ? attachments.map(file => `附件:${file.name}`).join('\\n')\n : '';\n const displayContent = content || attachmentText;\n\n const userMsg = {\n id: this.generateId(),\n type: 'user',\n content: displayContent,\n time: this.formatTime(),\n attachments: attachments.map(file => ({ name: file.name, size: file.size, type: file.type }))\n };\n\n this._messages.push(userMsg);\n // P1-12: 使用可配置的maxMessages替代硬编码50\n const maxMsg = this._config?.maxMessages ?? 50;\n if (this._messages.length > maxMsg) this._messages = this._messages.slice(-maxMsg);\n\n if (this._config?.onMessageSend) this._config.onMessageSend(userMsg);\n this.dispatchEvent(new CustomEvent('message-send', { detail: userMsg }));\n\n this.setLoading(true);\n\n try {\n for (const file of attachments) {\n await this.uploadAttachment(file).catch(err => console.warn('[AIChatDialog] 附件上传失败:', err));\n }\n await this.sendMessageToAI(content || attachmentText);\n } catch (err) {\n console.error('[AIChatDialog] Error:', err);\n this.handleError(err);\n } finally {\n this.setLoading(false);\n }\n }\n\n async sendMessageToAI(content, options = {}) {\n if (this._mockMode) {\n await this.mockResponse(content);\n } else {\n // 先创建流式占位消息(一个 loading),directApiCall 更新它\n const msgId = options.messageId || this.generateId();\n if (!options.messageId) {\n this._messages.push({ id: msgId, type: 'ai', content: '', _isStreaming: true, time: this.formatTime() });\n }\n this.renderMessages({ forceScroll: true });\n this._streaming = true;\n this.setLoading(false); // 关掉全局 loading,用消息级 loading 替代\n this.updateLoadingUI(); // re-lock input via _streaming flag\n await this._directApiCallStream(msgId, content, options.streamOptions || {});\n }\n }\n\n async mockResponse(userContent) {\n await new Promise(r => setTimeout(r, 600 + Math.random() * 800));\n\n const responses = [\n `关于\"${(userContent || '').substring(0, 20)}\"这个问题,我来为您详细解答...`,\n `这是一个很好的问题!根据我的理解:\\n\\n1. 首先,我们需要分析需求\\n2. 其次,设计实现方案\\n3. 最后,进行测试验证`,\n `收到您的问题。让我来帮您分析一下...\\n\\n根据您的描述,我建议您可以按照以下步骤操作:`,\n `感谢您的提问!以下是我的看法:\\n\\n• 第一点很关键,需要注意细节\\n• 第二点值得关注\\n• 第三点是核心所在`,\n ];\n const mockContent = responses[Math.floor(Math.random() * responses.length)];\n\n // 流式效果\n const tempId = this.generateId();\n this._messages.push({ id: tempId, type: 'ai', content: '', _isStreaming: true });\n this.renderMessages();\n\n for (let i = 0; i < mockContent.length; i++) {\n await new Promise(r => setTimeout(r, 12 + Math.random() * 20));\n const msgIdx = this._messages.findIndex(m => m.id === tempId);\n if (msgIdx >= 0) {\n this._messages[msgIdx].content = mockContent.substring(0, i + 1);\n this.updateStreamingBubble(tempId, mockContent.substring(0, i + 1));\n }\n }\n this.finalizeStream(tempId);\n\n if (this._config?.onMessageReceived) this._config.onMessageReceived({ content: mockContent, done: true });\n this.dispatchEvent(new CustomEvent('message-received', { detail: { content: mockContent } }));\n }\n\n updateStreamingBubble(msgId, content) {\n const shouldStickToBottom = this._shouldAutoScroll();\n const bubbles = this._body?.querySelectorAll('.message-bubble.loading');\n if (bubbles && bubbles.length > 0) {\n const lastLoading = bubbles[bubbles.length - 1];\n if (lastLoading) lastLoading.innerHTML = `<div class=\"message-text\">${this.parseMarkdown(content)}</div>`;\n }\n if (shouldStickToBottom) this.scrollToBottom();\n }\n\n finalizeStream(msgId) {\n const idx = this._messages.findIndex(m => m.id === msgId);\n if (idx >= 0) delete this._messages[idx]._isStreaming;\n this.renderMessages();\n }\n\n // P0: 会话ID管理\n _conversationId = null;\n\n async _directApiCallStream(msgId, content, requestOptions = {}) {\n if (!this._chatClient) {\n this._chatClient = new AIChatClient(this._config || {});\n }\n if (Object.prototype.hasOwnProperty.call(requestOptions, 'conversationId')) {\n this._chatClient.setConversationId(requestOptions.conversationId || null);\n } else if (this._conversationId) {\n this._chatClient.setConversationId(this._conversationId);\n }\n let streamText = '';\n try {\n const response = await this._chatClient.sendMessageStream(content, {\n onMessage: (chunk) => {\n if (!this._isPlaceholder(chunk) && !this._isEventLike(chunk)) {\n streamText += chunk;\n this._updateMsg(msgId, streamText);\n }\n },\n onProgress: (message) => {\n if (message && message.trim() && !this._isPlaceholder(message)) {\n this._addRuntimeEvent(msgId, { _type: 'PROGRESS', _text: message, _icon: '📋' });\n }\n },\n onNodeStart: (name, detail) => {\n const title = name || '节点执行';\n this._addRuntimeEvent(msgId, { _type: 'NODE_START', _text: title, _detail: detail || '', _icon: '🚀' });\n },\n onNodeProgress: (name, detail) => {\n const title = name || '节点执行中';\n this._addRuntimeEvent(msgId, { _type: 'NODE_PROGRESS', _text: title, _detail: detail || '', _icon: '🔄' });\n },\n onNodeComplete: (name, detail) => {\n const title = name || '节点完成';\n this._addRuntimeEvent(msgId, { _type: 'NODE_COMPLETE', _text: title, _detail: detail || '', _icon: '✅' });\n },\n onToolStart: (name, callId) => {\n const title = name || '工具调用';\n this._addRuntimeEvent(msgId, { _type: 'TOOL_START', _text: title, _icon: '🔧' });\n },\n onToolResult: (name, result) => {\n const title = name ? name + ' 返回结果' : '工具返回结果';\n this._addRuntimeEvent(msgId, { _type: 'TOOL_RESULT', _text: title, _detail: result || '', _icon: '📦' });\n },\n onToolEnd: (name, callId) => {\n const title = name ? name + ' 执行完成' : '工具执行完成';\n this._addRuntimeEvent(msgId, { _type: 'TOOL_END', _text: title, _icon: '✅' });\n },\n onWarning: (message) => {\n if (message && message.trim() && !this._isPlaceholder(message)) {\n this._addRuntimeEvent(msgId, { _type: 'WARNING', _text: message, _icon: '⚠️' });\n }\n },\n onPlanningEvent: (event) => {\n const msg = event?.message || event?.metadata?.title || event?.metadata?.detail || event?.currentTask?.name || '';\n if (msg && String(msg).trim() && !this._isPlaceholder(msg)) {\n const itemKind = event?.metadata?.itemKind || event?.currentTask?.type || '';\n this._addRuntimeEvent(msgId, { _type: 'PLANNING', _text: String(msg), _icon: itemKind === 'reasoning' ? '🧠' : '📋' });\n }\n },\n onMeta: (meta) => {\n const conversationId = meta?.conversationId || meta?.sessionId;\n if (conversationId) {\n this._conversationId = conversationId;\n }\n const taskRunId = meta?.taskRunId;\n if (taskRunId) {\n const idx = this._messages.findIndex(m => m.id === msgId);\n if (idx >= 0) this._messages[idx].taskRunId = taskRunId;\n }\n },\n onDone: (finalText) => {\n if (finalText && !this._isPlaceholder(finalText) && !this._isEventLike(finalText)) {\n streamText = finalText;\n this._updateMsg(msgId, finalText);\n }\n },\n onError: (message) => {\n this._updateMsg(msgId, '错误: ' + (message || '流式请求失败'));\n }\n }, requestOptions);\n if (response?.success) {\n if (response.data?.conversationId) {\n this._conversationId = response.data.conversationId;\n } else if (this._chatClient.conversationId) {\n this._conversationId = this._chatClient.conversationId;\n }\n // 兜底:流式成功但未收到正文时,从会话接口拉取结果\n if (!streamText.trim() && this._conversationId) {\n this._updateMsg(msgId, '(等待AI处理...)');\n const result = await this._fetchConversationResult(this._conversationId);\n streamText = result;\n }\n } else {\n return;\n }\n\n this._finalizeMsg(msgId, streamText || '(无回复)');\n this.dispatchEvent(new CustomEvent('message-received', { detail: { content: streamText } }));\n if (this._config?.onMessageReceived) this._config.onMessageReceived(streamText);\n\n } catch (e) {\n if (e.name === 'AbortError') {\n this._updateMsg(msgId, '(请求超时或已取消)');\n } else {\n console.error('[AIChatDialog] 流式失败:', e);\n this._updateMsg(msgId, '网络错误: ' + (e.message || '请检查连接'));\n }\n }\n }\n\n _getStreamTextEl() {\n if (this._streamTextEl && this._body.contains(this._streamTextEl)) {\n return this._streamTextEl;\n }\n const msgItems = this._body?.querySelectorAll('.message-item.ai') || [];\n for (let i = msgItems.length - 1; i >= 0; i--) {\n const textEl = msgItems[i].querySelector('.message-text');\n if (textEl) {\n this._streamTextEl = textEl;\n return textEl;\n }\n // Bubble still in loading state (typing dots only, no .message-text)\n // Replace loading bubble with proper text bubble for first chunk\n const bubble = msgItems[i].querySelector('.message-bubble.loading');\n if (bubble) {\n bubble.classList.remove('loading');\n bubble.innerHTML = ''; // 移除思考中和动点\n const textEl = document.createElement('div');\n textEl.className = 'message-text';\n bubble.appendChild(textEl);\n this._streamTextEl = textEl;\n return textEl;\n }\n }\n return null;\n }\n\n _updateMsg(msgId, content) {\n const idx = this._messages.findIndex(m => m.id === msgId);\n if (idx < 0) return;\n this._messages[idx].content = content;\n\n // Detect if there are runtime events (for typewriter mode check)\n const hasRuntime = !!(this._messages[idx]._runtimeEvents && this._messages[idx]._runtimeEvents.length > 0);\n\n // Accumulate full content\n if (content.startsWith(this._streamFullText)) {\n this._streamFullText = content;\n } else {\n this._streamFullText = content;\n this._streamVisibleLength = 0;\n }\n\n const el = this._getStreamTextEl();\n if (el) {\n if (hasRuntime) {\n // Start RAF typewriter\n if (!this._streamTypeRaf) {\n const tick = () => {\n const pending = this._streamFullText;\n if (this._streamVisibleLength >= pending.length) {\n this._streamTypeRaf = null;\n return;\n }\n this._streamVisibleLength = Math.min(this._streamVisibleLength + 1, pending.length);\n const curEl = this._getStreamTextEl();\n if (curEl) {\n curEl.innerHTML = this.parseMarkdown(pending.slice(0, this._streamVisibleLength));\n }\n if (this._shouldAutoScroll()) this.scrollToBottom();\n this._streamTypeRaf = requestAnimationFrame(tick);\n };\n this._streamTypeRaf = requestAnimationFrame(tick);\n }\n } else {\n // Direct render: no typewriter\n el.innerHTML = this.parseMarkdown(content);\n this._streamFullText = '';\n this._streamVisibleLength = 0;\n }\n if (this._shouldAutoScroll()) this.scrollToBottom();\n } else if (!this._streamInitDone) {\n this._streamInitDone = true;\n this.renderMessages();\n }\n }\n\n _finalizeMsg(msgId, content) {\n this._streaming = false;\n this.updateLoadingUI();\n const idx = this._messages.findIndex(m => m.id === msgId);\n if (idx >= 0) {\n this._messages[idx].content = content;\n delete this._messages[idx]._isStreaming;\n this._messages[idx].time = this.formatTime();\n this._messages[idx]._status = content && !content.startsWith('(') ? 'completed' : 'error';\n if (this._streamTypeRaf) {\n cancelAnimationFrame(this._streamTypeRaf);\n this._streamTypeRaf = null;\n }\n this._streamTextEl = null;\n this._streamInitDone = false;\n this._runtimePanelEl = null;\n this._runtimeEventsContainerEl = null;\n this.renderMessages();\n }\n }\n\n // 运行时占位符过滤(对齐 portal)\n _isPlaceholder(text) {\n if (!text || typeof text !== 'string') return false\n const p = text.trim()\n if (!p) return true\n return RUNTIME_PLACEHOLDERS.some(k => p.includes(k))\n }\n _isEventLike(text) {\n if (!text || typeof text !== 'string') return false\n const t = text.trim()\n if (t.startsWith('[META]') || t.startsWith('event:')) return true\n try { const j = JSON.parse(t); return j && typeof j === 'object' && (j.eventType || j.metadata) } catch(e) {}\n return false\n }\n\n\n // 运行时事件管理 – incremental DOM, no renderMessages\n _addRuntimeEvent(msgId, event) {\n const idx = this._messages.findIndex(m => m.id === msgId)\n if (idx < 0) return\n if (!this._messages[idx]._runtimeEvents) this._messages[idx]._runtimeEvents = []\n const last = this._messages[idx]._runtimeEvents[this._messages[idx]._runtimeEvents.length - 1]\n if (last && last._text === event._text) return\n this._messages[idx]._runtimeEvents.push(event)\n const isRunning = !['NODE_COMPLETE', 'TOOL_END', 'TOOL_RESULT'].includes(event._type)\n\n // Path 1: panel DOM exists and is alive – incremental append\n if (this._runtimeEventsContainerEl && this._body.contains(this._runtimeEventsContainerEl)) {\n const row = document.createElement('div')\n row.className = 'runtime-event'\n row.innerHTML = '<span class=\"runtime-event-icon\"></span><span class=\"runtime-event-text\">' + this.escapeHtml(event._text) + '</span>'\n this._runtimeEventsContainerEl.appendChild(row)\n // Update header sub-title\n const subTitle = this._runtimePanelEl?.querySelector('.runtime-title-sub')\n if (subTitle) {\n const isRunning = !['NODE_COMPLETE', 'TOOL_END', 'TOOL_RESULT'].includes(event._type)\n subTitle.className = 'runtime-title-sub ' + (isRunning ? 'runtime-title-running' : 'runtime-title-not-running')\n subTitle.innerHTML = '<span class=\"runtime-title-spinner\"></span><span class=\"runtime-title-text\">' + this.escapeHtml(event._text) + '</span>'\n }\n // Update count\n const countEl = this._runtimePanelEl?.querySelector('.runtime-count')\n if (countEl) countEl.textContent = this._messages[idx]._runtimeEvents.length\n if (this._shouldAutoScroll()) this.scrollToBottom()\n return\n }\n\n // Path 2: first event – inject runtime panel DOM next to the streaming bubble\n const msgContent = this._findStreamingMessageContent()\n if (msgContent) {\n // Remove loading bubble (思考中) since runtime panel is taking over\n const loadingBubble = msgContent.querySelector('.message-bubble.loading')\n if (loadingBubble) {\n // Replace with an empty text bubble so typewriter can use it\n loadingBubble.classList.remove('loading')\n loadingBubble.innerHTML = ''\n const textEl = document.createElement('div')\n textEl.className = 'message-text'\n loadingBubble.appendChild(textEl)\n }\n }\n if (msgContent && !msgContent.querySelector('.runtime-panel')) {\n const panel = this._createRuntimePanelDOM(this._messages[idx])\n msgContent.insertBefore(panel, msgContent.firstChild)\n this._runtimePanelEl = panel\n this._runtimeEventsContainerEl = panel.querySelector('.runtime-events')\n if (this._shouldAutoScroll()) this.scrollToBottom()\n return\n }\n }\n\n _findStreamingMessageContent() {\n const aiItems = this._body?.querySelectorAll('.message-item.ai') || []\n for (let i = aiItems.length - 1; i >= 0; i--) {\n const content = aiItems[i].querySelector('.message-content')\n if (content) return content\n }\n return null\n }\n\n _createRuntimePanelDOM(msg) {\n const events = msg._runtimeEvents || []\n const status = msg._isStreaming ? 'running' : (msg._status || 'running')\n const statusLabel = status === 'completed' ? '\\u5df2\\u5b8c\\u6210' : (status === 'error' ? '\\u9519\\u8bef' : '\\u6267\\u884c\\u4e2d')\n const latest = events[events.length - 1]?._text || ''\n const latestEvent = events[events.length - 1] || {}\n const isLatestRunning = msg._isStreaming && !['NODE_COMPLETE', 'TOOL_END', 'TOOL_RESULT'].includes(latestEvent._type)\n\n const panel = document.createElement('div')\n panel.className = 'runtime-panel'\n\n const header = document.createElement('div')\n header.className = 'runtime-header'\n header.onclick = function () {\n var evts = panel.querySelector('.runtime-events')\n if (evts) evts.classList.toggle('hidden')\n var arrow = header.querySelector('.arrow')\n if (arrow) arrow.classList.toggle('expanded')\n }\n var titleClass = isLatestRunning ? 'runtime-title-sub runtime-title-running' : 'runtime-title-sub runtime-title-not-running'\n header.innerHTML =\n '<span class=\"arrow\">\\u25b6</span>' +\n '<span class=\"runtime-title\">' +\n '<span class=\"runtime-title-main\">\\u6267\\u884c\\u8fc7\\u7a0b</span>' +\n '<span class=\"' + titleClass + '\"><span class=\"runtime-title-spinner\"></span><span class=\"runtime-title-text\">' + this.escapeHtml(latest) + '</span></span>' +\n '</span>' +\n '<span class=\"runtime-status running\">' + statusLabel + '</span>' +\n '<span class=\"runtime-count\">' + events.length + '</span>'\n panel.appendChild(header)\n\n const progress = document.createElement('div')\n progress.className = 'runtime-progress running'\n progress.innerHTML = '<div class=\"runtime-progress-bar\"></div>'\n panel.appendChild(progress)\n\n const eventsContainer = document.createElement('div')\n eventsContainer.className = 'runtime-events hidden'\n events.forEach(function (e) {\n const row = document.createElement('div')\n row.className = 'runtime-event'\n row.innerHTML = '<span class=\"runtime-event-icon\"></span><span class=\"runtime-event-text\">' + this.escapeHtml(e._text) + '</span>'\n eventsContainer.appendChild(row)\n }.bind(this))\n panel.appendChild(eventsContainer)\n\n return panel\n }\n\n _buildRuntimePanel(msg, msgIdx) {\n const events = msg._runtimeEvents || []\n if (events.length === 0) return ''\n const status = msg._isStreaming ? 'running' : (msg._status || 'running')\n const statusLabel = status === 'completed' ? '\\u5df2\\u5b8c\\u6210' : (status === 'error' ? '\\u9519\\u8bef' : '\\u6267\\u884c\\u4e2d')\n const collapsed = !!(msg.content && String(msg.content).trim()) || status === 'completed' || status === 'error'\n const latest = events[events.length - 1]?._text || ''\n let eventsHtml = ''\n events.forEach(function (e) {\n eventsHtml += '<div class=\"runtime-event\"><span class=\"runtime-event-icon\"></span><span class=\"runtime-event-text\">' + this.escapeHtml(e._text) + '</span></div>'\n }.bind(this))\n var arrowClass = collapsed ? '' : ' expanded'\n return '<div class=\"runtime-panel\">' +\n '<div class=\"runtime-header\">' +\n '<span class=\"arrow' + arrowClass + '\">▶</span>' +\n '<span class=\"runtime-title\">' +\n '<span class=\"runtime-title-main\">\\u6267\\u884c\\u8fc7\\u7a0b</span>' +\n '<span class=\"runtime-title-sub\">' + this.escapeHtml(latest) + '</span>' +\n '</span>' +\n '<span class=\"runtime-status ' + status + '\">' + statusLabel + '</span>' +\n '<span class=\"runtime-count\">' + events.length + '</span>' +\n '</div>' +\n '<div class=\"runtime-progress ' + status + '\"><div class=\"runtime-progress-bar\"></div></div>' +\n '<div class=\"runtime-events' + (collapsed ? ' hidden' : '') + '\">' + eventsHtml + '</div>' +\n '</div>'\n }\n\n async _fetchConversationResult(conversationId) {\n for (let i = 0; i < 8; i++) {\n await new Promise(r => setTimeout(r, 1000));\n try {\n const response = await this._chatClient.queryConversation({ conversationId, pageIndex: 1, pageSize: 1 });\n if (response.success && response.data?.records?.length > 0) {\n const record = response.data.records[0];\n const txt = record.replyText || record.content || record.answer;\n if (txt && txt.trim()) return txt;\n }\n } catch(e) {}\n }\n return '(AI 处理超时,请稍后查看对话记录)';\n }\n\n // ==================== 重新生成(与Vue regenerate 一致) ====================\n\n async regenerate(index) {\n if (this._isLoading) return;\n const aiMessage = this._messages[index];\n if (!aiMessage || aiMessage.type !== 'ai') return;\n let userQuestion = '';\n for (let i = index - 1; i >= 0; i--) {\n if (this._messages[i].type === 'user') {\n userQuestion = this._messages[i].content;\n break;\n }\n }\n if (!userQuestion) return;\n Object.assign(aiMessage, {\n content: '',\n _isStreaming: true,\n _runtimeEvents: [],\n _status: 'running',\n copied: false,\n time: this.formatTime(),\n taskRunId: null\n });\n this.renderMessages({ forceScroll: true });\n\n this.setLoading(true);\n try {\n await this.sendMessageToAI(userQuestion, {\n messageId: aiMessage.id,\n streamOptions: {\n conversationId: ''\n }\n });\n } catch (err) {\n console.error('[AIChatDialog] Regenerate error:', err);\n this.handleError(err);\n } finally {\n this.setLoading(false);\n }\n }\n\n showToast(msg) {\n const toast = document.createElement('div');\n toast.className = 'error-toast';\n toast.textContent = msg;\n this._dialog?.appendChild(toast);\n setTimeout(() => toast.remove(), 3000);\n }\n\n // P1-6: 精细化错误处理(与Vue版 handleErrorMsg 一致,按HTTP状态码+业务错误码分类)\n handleError(err) {\n let displayMsg = '抱歉,网络请求失败,请稍后重试';\n const errMsg = err?.message || '';\n\n // 按错误类型分类\n if (errMsg.includes('Failed to fetch') || errMsg.includes('NetworkError') || errMsg.includes('网络')) {\n displayMsg = '网络连接失败,请检查网络后重试';\n } else if (errMsg.includes('AbortError') || errMsg.includes('超时') || errMsg.includes('timeout')) {\n displayMsg = '请求超时,请稍后重试';\n } else if (errMsg.match(/HTTP 40[13]/)) {\n displayMsg = '请求参数有误,请检查后重新发送';\n } else if (errMsg.includes('HTTP 403') || errMsg.includes('鉴权失败') || errMsg.includes('未授权')) {\n displayMsg = '鉴权失败,请重新登录后再试';\n } else if (errMsg.includes('HTTP 404')) {\n displayMsg = '服务地址不存在,请联系管理员';\n } else if (errMsg.match(/HTTP 4\\d\\d/)) {\n displayMsg = `请求异常(${errMsg}),请稍后重试`;\n } else if (errMsg.includes('HTTP 500') || errMsg.includes('Internal Server Error')) {\n displayMsg = '服务器内部错误,请稍后重试';\n } else if (errMsg.includes('HTTP 502') || errMsg.includes('HTTP 503') || errMsg.includes('HTTP 504')) {\n displayMsg = '服务暂时不可用,请稍后重试';\n } else if (errMsg.match(/HTTP 5\\d\\d/)) {\n displayMsg = `服务器错误(${errMsg}),请稍后重试`;\n } else if (errMsg) {\n displayMsg = '抱歉,' + errMsg;\n }\n\n this.addMessage({ type: 'ai', content: displayMsg, time: this.formatTime(), errorType: 'network_error' });\n if (this._config?.onError) this._config.onError(err);\n this.dispatchEvent(new CustomEvent('error', { detail: err }));\n }\n\n // ==================== 复制(与Vue copyMessage 一致) ====================\n\n async copyContent(text) {\n // P1-10: 微信环境优先使用 wx.setClipboardData(与Vue版一致)\n if (typeof wx !== 'undefined' && wx.setClipboardData) {\n return new Promise((resolve, reject) => {\n wx.setClipboardData({ data: text, success: resolve, fail: () => {\n try { this._fallbackCopy(text); resolve(); } catch (e) { reject(e); }\n } });\n });\n }\n if (navigator.clipboard && navigator.clipboard.writeText) {\n try {\n await navigator.clipboard.writeText(text);\n return;\n } catch (e) {\n this._fallbackCopy(text);\n return;\n }\n }\n this._fallbackCopy(text);\n }\n\n _fallbackCopy(text) {\n const ta = document.createElement('textarea');\n ta.value = text;\n document.body.appendChild(ta);\n ta.select();\n document.execCommand('copy');\n document.body.removeChild(ta);\n }\n\n async copyMessage(content, idx) {\n try {\n await this.copyContent(content);\n if (this._messages[idx]) this._messages[idx].copied = true;\n this.renderMessages();\n setTimeout(() => { if (this._messages[idx]) { this._messages[idx].copied = false; this.renderMessages(); } }, 2000);\n } catch (e) {\n this.showToast('复制失败,请手动选择文本复制');\n }\n }\n\n clearChat() {\n this._messages = [];\n this._attachments = [];\n this._historyVisible = false;\n if (this._attachmentInput) this._attachmentInput.value = '';\n if (this._attachBtn) {\n this._attachBtn.classList.remove('has-attachment');\n this._attachBtn.title = '上传附件';\n }\n this._updateSendButtonState();\n // P0-4: 清除会话ID,开启新会话\n this._conversationId = null;\n if (this._chatClient) this._chatClient.clearConversation();\n this.renderMessages();\n this.dispatchEvent(new CustomEvent('clear'));\n }\n\n async stopGeneration() {\n if (this._chatClient) {\n await this._chatClient.stopCompletion();\n }\n this.setLoading(false);\n const streaming = [...this._messages].reverse().find(m => m.type === 'ai' && m._isStreaming);\n if (streaming) this._finalizeMsg(streaming.id, streaming.content || '(已停止)');\n this.dispatchEvent(new CustomEvent('stop'));\n }\n\n async uploadAttachment(file, options = {}) {\n if (!this._chatClient) this._chatClient = new AIChatClient(this._config || {});\n const response = await this._chatClient.uploadAttachment(file, options);\n if (response.success) {\n this.dispatchEvent(new CustomEvent('attachment-uploaded', { detail: response.data }));\n } else {\n this.dispatchEvent(new CustomEvent('error', { detail: response }));\n }\n return response;\n }\n\n // ==================== 工具函数 ====================\n\n generateId() { return `msg_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`; }\n\n formatTime() {\n const n = new Date();\n return `${String(n.getHours()).padStart(2, '0')}:${String(n.getMinutes()).padStart(2, '0')}`;\n }\n\n escapeHtml(s) {\n if (!s) return '';\n const d = document.createElement('div');\n d.textContent = s;\n return d.innerHTML.replace(/\\n/g, '<br>');\n }\n\n escapeAttr(s) {\n if (!s) return '';\n return s.replace(/&/g, '&amp;').replace(/\"/g, '&quot;').replace(/'/g, '&#39;').replace(/</g, '&lt;').replace(/>/g, '&gt;');\n }\n\n /**\n * 重置 _themeVars 为默认值(主题切换时调用,防止残留)\n */\n _resetThemeVars() {\n Object.assign(this._themeVars, {\n // 颜色\n '--ai-primary': '#1890ff', '--ai-primary-light': '#40a9ff', '--ai-primary-dark': '#096dd9',\n '--ai-secondary': '#722ed1',\n '--ai-bg': '#ffffff', '--ai-bg-gradient': '#f8fafc',\n '--ai-text': '#1e293b', '--ai-text-secondary': '#64748b',\n '--ai-user-bubble-gradient': 'linear-gradient(135deg, #1890ff, #40a9ff)',\n '--ai-ai-bubble-bg': '#ffffff',\n '--ai-header-gradient': 'linear-gradient(90deg, rgba(24, 144, 255, 0.08), rgba(114, 46, 209, 0.08))',\n '--ai-border': 'rgba(24, 144, 255, 0.15)', '--ai-shadow': 'rgba(24, 144, 255, 0.12)',\n '--ai-input-bg': '#f8fafc', '--ai-input-border': '#e2e8f0',\n '--ai-loading': '#64748b', '--ai-success': '#52c41a', '--ai-error': '#ff4d4f', '--ai-warning': '#faad14',\n // 圆角\n '--ai-radius-dialog': '16px', '--ai-radius-bubble': '18px',\n '--ai-radius-button': '50%', '--ai-radius-input': '28px',\n '--ai-radius-small': '6px', '--ai-radius-medium': '12px',\n // 字号\n '--ai-font-title': '15px', '--ai-font-welcome-text': '17px',\n '--ai-font-welcome-desc': '13px', '--ai-font-message': '14px',\n '--ai-font-time': '11px', '--ai-font-small': '11px'\n });\n }\n\n /**\n * Markdown → HTML 解析(仅用于AI回复,用户消息保持纯文本)\n * 使用 marked + DOMPurify 双重保障安全\n */\n parseMarkdown(text) {\n if (!text) return '';\n try {\n // marked 解析 markdown\n const rawHtml = marked.parse(text);\n // DOMPurify 净化HTML(防止XSS攻击)\n return DOMPurify.sanitize(rawHtml, {\n ALLOWED_TAGS: [\n 'p', 'br', 'strong', 'b', 'em', 'i', 'u', 's', 'del',\n 'h1', 'h2', 'h3', 'h4', 'h5', 'h6',\n 'ul', 'ol', 'li', 'blockquote', 'pre', 'code',\n 'a', 'img', 'table', 'thead', 'tbody', 'tr', 'th', 'td',\n 'hr', 'div', 'span', 'sup', 'sub'\n ],\n ALLOWED_ATTR: ['href', 'target', 'src', 'alt', 'title', 'class', 'id']\n });\n } catch (e) {\n console.warn('[AIChatDialog] Markdown解析失败,回退为纯文本:', e);\n return this.escapeHtml(text);\n }\n }\n}\n\n// 注册自定义元素\nif (!customElements.get('ai-chat-dialog')) {\n customElements.define('ai-chat-dialog', AIChatDialog);\n}\n\nexport default AIChatDialog;\nexport { AIChatDialog };\n\nif (typeof window !== 'undefined') {\n window.AIChatDialog = AIChatDialog;\n}\n","/**\n * IBC AI Web SDK - 纯JavaScript版本\n * 支持任意前端框架:Vue, React, Angular, 原生HTML等\n * \n * @author IBC AI Team\n * @version 2.0.0\n */\n\n// 导出组件\nimport { AIChatDialog } from './AIChatDialog.js';\nimport { AIChatClient } from './core/AIChatClient.js';\n\nexport { AIChatDialog } from './AIChatDialog.js';\nexport { default as AIChatDialogDefault } from './AIChatDialog.js';\nexport { AIChatClient } from './core/AIChatClient.js';\nexport { default as AIChatClientDefault } from './core/AIChatClient.js';\n\n// 快速初始化函数\nexport function createAIChatDialog(options = {}) {\n // 创建自定义元素实例\n const dialog = document.createElement('ai-chat-dialog');\n \n // 设置属性\n if (options.title) dialog.setAttribute('title', options.title);\n if (options.placeholder) dialog.setAttribute('placeholder', options.placeholder);\n if (options.width) dialog.style.setProperty('--dialog-width', `${options.width}px`);\n if (options.height) dialog.style.setProperty('--dialog-height', `${options.height}px`);\n \n // 添加到DOM(隐藏状态)\n document.body.appendChild(dialog);\n \n // 初始化配置\n if (Object.keys(options).length > 0) {\n dialog.init(options);\n }\n \n return dialog;\n}\n\n// Vue插件安装方式(向后兼容)\nexport function installVuePlugin(Vue) {\n if (!Vue) {\n console.warn('[AI Web SDK] Vue instance not provided');\n return;\n }\n \n // 注册全局组件包装器\n Vue.component('AiChatWrapper', {\n props: {\n visible: { type: Boolean, default: false },\n config: { type: Object, default: () => ({}) }\n },\n \n data() {\n return {\n dialogInstance: null\n };\n },\n \n watch: {\n visible: {\n immediate: true,\n handler(val) {\n this.$nextTick(() => {\n if (val) {\n this.open();\n } else {\n this.close();\n }\n });\n }\n },\n config: {\n deep: true,\n handler() {\n if (this.dialogInstance) {\n this.dialogInstance.updateConfig(this.config);\n }\n }\n }\n },\n \n mounted() {\n this.initDialog();\n },\n \n beforeDestroy() {\n if (this.dialogInstance) {\n this.dialogInstance.destroy();\n }\n },\n\n beforeUnmount() {\n if (this.dialogInstance) {\n this.dialogInstance.destroy();\n }\n },\n \n methods: {\n initDialog() {\n this.dialogInstance = createAIChatDialog(this.config || {});\n \n // 监听事件并转发\n const events = ['open', 'close', 'message-send', 'message-received', 'error'];\n events.forEach(event => {\n this.dialogInstance.addEventListener(event, (e) => {\n this.$emit(event, e.detail);\n });\n });\n },\n \n open() {\n if (this.dialogInstance) {\n this.dialogInstance.open();\n }\n },\n \n close() {\n if (this.dialogInstance) {\n this.dialogInstance.close();\n }\n }\n },\n \n render(h) {\n // 渲染一个不可见的div作为挂载点\n return h('div', { style: 'display: none;' });\n }\n });\n}\n\n// React Hook(可选) — 通过 window.React 获取 hooks,兼容 CDN 全局引入\n/* global React */\nexport function useAIChat(options = {}) {\n if (typeof React === 'undefined') {\n console.warn('[AI Web SDK] React is not loaded, useAIChat skipped')\n return { open: () => {}, close: () => {}, isVisible: false, messages: [], isLoading: false }\n }\n const { useState, useRef, useEffect } = React\n\n const [isVisible, setIsVisible] = useState(false)\n const [messages, setMessages] = useState([])\n const [isLoading, setIsLoading] = useState(false)\n const dialogRef = useRef(null)\n\n useEffect(() => {\n if (!dialogRef.current) {\n dialogRef.current = createAIChatDialog(options);\n \n // 监听事件\n dialogRef.current.addEventListener('message-send', (e) => {\n setMessages(prev => [...prev, e.detail]);\n });\n \n dialogRef.current.addEventListener('message-received', (e) => {\n setMessages(prev => [...prev, { \n id: Date.now(), \n role: 'assistant', \n content: e.detail.content,\n timestamp: new Date().toISOString()\n }]);\n setIsLoading(false);\n });\n\n dialogRef.current.addEventListener('error', () => {\n setIsLoading(false);\n });\n }\n\n return () => {\n if (dialogRef.current) {\n dialogRef.current.destroy();\n dialogRef.current = null;\n }\n };\n }, []);\n\n return {\n open: () => { setIsVisible(true); dialogRef.current?.open(); },\n close: () => { setIsVisible(false); dialogRef.current?.close(); },\n toggle: () => { dialogRef.current?.toggle(); },\n sendMessage: (content) => { \n if (dialogRef.current) {\n const input = dialogRef.current.shadowRoot?.querySelector('.ai-textarea');\n if (input) {\n input.value = content;\n input.dispatchEvent(new Event('input'));\n }\n dialogRef.current.handleSend?.() || dialogRef.current.shadowRoot?.querySelector('.ai-send-btn')?.click();\n }\n },\n clearMessages: () => { dialogRef.current?.clearMessages(); setMessages([]); },\n isVisible,\n messages,\n isLoading,\n ref: dialogRef\n };\n}\n\n// 默认导出\nexport default {\n AIChatDialog,\n AIChatClient,\n createAIChatDialog,\n installVuePlugin,\n useAIChat,\n version: '2.0.0'\n};\n\n// 全局暴露(UMD/浏览器环境)\nif (typeof window !== 'undefined') {\n window.AICreateChatDialog = createAIChatDialog;\n window.AIWebSDK = {\n version: '2.0.0',\n create: createAIChatDialog,\n AIChatDialog,\n AIChatClient,\n installVuePlugin\n };\n}\n"],"names":["ERROR_CODES","AGENT_NOT_FOUND","PROMPT_EMPTY","AUTH_FAILED","NETWORK_ERROR","SERVER_ERROR","TIMEOUT_ERROR","REQUEST_CANCELLED","SUCCESS_CODES","Set","DEFAULT_AUTH_CODES","START_EVENTS","ERROR_EVENTS","META_EVENTS","DONE_EVENTS","PLANNING_EVENTS","MESSAGE_EVENTS","THINKING_EVENTS","PROGRESS_EVENTS","TOOL_START_EVENTS","TOOL_RESULT_EVENTS","TOOL_END_EVENTS","NODE_START_EVENTS","NODE_PROGRESS_EVENTS","NODE_COMPLETE_EVENTS","WARNING_EVENTS","HITL_EVENTS","RUNTIME_PLACEHOLDERS","detectNetworkStatus","navigator","onLine","createRequestId","Date","now","toString","Math","random","slice","trimTrailingSlash","value","String","replace","joinUrl","base","path","test","isRuntimePlaceholder","text","normalized","trim","some","pattern","includes","tryParseJson","JSON","parse","e","parseSseBlock","block","lines","split","event","data","line","startsWith","push","join","AIChatClient","constructor","config","apiBaseUrl","apiEndpoint","streamEndpoint","stopEndpoint","asyncEndpoint","attachmentUploadEndpoint","conversationQueryEndpoint","conversationDeleteEndpoint","appDetailEndpoint","taskStatusEndpoint","appListEndpoint","runtimePermissionReplyEndpoint","runtimeQuestionReplyEndpoint","runtimeQuestionRejectEndpoint","timeout","streamTimeout","maxRetries","retryDelay","enableRetry","backgroundRefreshEnabled","backgroundRefreshIntervalMs","conversationId","currentRequestId","abortController","refreshTokenPromise","_backgroundTimer","_visibilityHandler","_shouldStartBackgroundRefresh","startBackgroundRefresh","buildUrl","buildHeaders","extra","headers","token","Authorization","Object","assign","createError","code","message","success","getAuthCodes","customCodes","Array","isArray","authErrorCodes","map","isAuthErrorCode","has","isTokenExpiring","expiresAt","Number","tokenExpiresAt","bufferMs","tokenRefreshBufferMs","normalizedExpiry","applyTokenResult","result","nextToken","accessToken","authorization","refreshToken","expireAt","expireIn","expiresIn","ea","reason","silent","refreshTokenFn","error","Error","stopBackgroundRefresh","onTokenExpired","Promise","resolve","then","userId","onTokenRefreshed","raw","catch","console","warn","finally","interval","max","setInterval","document","visibilityState","addEventListener","clearInterval","removeEventListener","dispose","cancelCurrentRequest","ensureFreshToken","runAuthFn","authFn","parseResponse","prototype","hasOwnProperty","call","errCode","errMsg","requestId","bizContent","parsed","rawCode","undefined","rtnCode","rtnMsg","requestJson","payload","options","controller","AbortController","timeoutId","setTimeout","abort","doRequest","response","fetch","method","credentials","body","stringify","signal","ok","status","statusText","json","skipAuthRefresh","name","clearTimeout","buildAppPayload","prompt","appId","agentAppId","bizType","attachmentIds","normalizeAttachmentIds","attachments","length","bizParams","extendInfo","item","attachmentId","fileId","id","filter","Boolean","sendMessage","retries","lastResponse","attempt","pow","endpoint","isRetryableError","sendMessageStream","handlers","onError","executeMessageStream","sseData","authError","retriedAfterRefresh","finalText","doneCalled","Accept","reader","getReader","decoder","TextDecoder","buffer","done","read","decode","stream","parts","pop","part","handleSseEvent","isEventLike","onDone","content","setFinalText","markDone","onStart","onThinking","onProgressEvent","stage","onToolStart","toolName","toolCallId","onToolResult","onToolEnd","onNodeStart","onNodeProgress","onNodeComplete","onWarning","onHitlInterrupt","type","sessionId","taskRunId","toolCalls","errorMessage","meta","onMeta","onPlanningEvent","onProgress","onMessage","finalAnswer","finalResult","summary","answer","output","traceId","inputTokens","outputTokens","trimmed","eventType","eventId","metadata","currentTask","stopCompletion","uploadAttachment","file","uploadTimeout","doUpload","formData","FormData","append","fileType","queryConversation","pageIndex","pageSize","deleteConversation","asyncCompletion","getTaskStatus","taskId","encodeURIComponent","getAppDetail","listApplications","applicationType","replyPermission","request","reply","replyRequestId","replyQuestion","answers","rejectQuestion","setConversationId","clearConversation","updateConfig","newConfig","hadRefreshCapability","hasRefreshCapability","DEFAULT_DIALOG_TOP","marked","setOptions","breaks","gfm","headerIds","mangle","THEME_COLOR_KEY_MAP","primary","primaryLight","primaryDark","secondary","background","backgroundGradient","textSecondary","userBubble","aiBubble","headerGradient","border","shadow","inputBackground","inputBorder","loading","warning","PRESET_THEMES","DEFAULT","colors","DARK","FRESH","VIBRANT","ROMANTIC","PURPLE","OCEAN","TWILIGHT","MINT","ROSE","AURORA","LAVENDER","CORAL","JADE","STARSKY","SUNSET","AIChatDialog","HTMLElement","observedAttributes","attachShadow","mode","_messages","_isLoading","_config","_mockMode","_isDragging","_isExpanded","_chatClient","_attachments","_dragStartX","_dragStartY","_dialogX","_dialogY","_appDetail","_historyVisible","_historyRecords","_historyLoading","_historyLoaded","_historyPageIndex","_historyHasMore","_isMobile","_streamTextEl","_streamInitDone","_streamFullText","_streamVisibleLength","_streamTypeRaf","_streaming","_runtimePanelEl","_runtimeEventsContainerEl","_runtimeStatusEl","_runtimeCountEl","_themeVars","render","bindEvents","connectedCallback","_handleOnline","tip","shadowRoot","querySelector","remove","_handleOffline","createElement","className","textContent","_dialog","prepend","window","_detectMobile","_handleResize","wasMobile","_applyMobileLayout","disconnectedCallback","mobileMode","wx","getSystemInfoSync","ua","userAgent","isMobileUA","isSmallScreen","innerWidth","hasTouch","maxTouchPoints","style","width","height","maxHeight","minHeight","left","top","right","bottom","borderRadius","classList","add","_expandBtn","display","attributeChangedCallback","oldValue","newValue","visible","hasAttribute","showDialog","hideDialog","v","setAttribute","removeAttribute","messages","isLoading","init","title","welcomeText","welcomeDesc","footerDisclaimer","footerIdentity","theme","enableDrag","maxLength","maxMessages","historyPageSize","historyDays","onLoad","suggestions","label","_conversationId","applyConfig","loadAppDetail","dispatchEvent","CustomEvent","detail","open","onOpen","close","onClose","toggle","forceState","destroy","parentNode","removeChild","addMessage","msg","substr","role","time","timestamp","formatTime","copied","errorType","maxMsg","renderMessages","forceScroll","clearMessages","setLoading","updateLoadingUI","enableMockMode","disableMockMode","dialog","btn","cssVarsStr","entries","k","innerHTML","escapeHtml","_body","_input","_sendBtn","_attachBtn","_attachmentInput","_closeBtn","_newChatBtn","_historyBtn","_floatBtn","_inputContainer","requestAnimationFrame","toggleExpand","clearChat","toggleHistory","handleSend","click","_handleAttachmentSelect","_autoResizeInput","_updateSendButtonState","key","shiftKey","preventDefault","initDraggable","dlg","header","startDrag","clientX","clientY","rect","getBoundingClientRect","onDrag","stopDrag","target","closest","touch","touches","passive","titleEl","placeholder","t","host","_resetThemeVars","preset","toUpperCase","forEach","cssVarKey","fontSize","toLowerCase","setProperty","_parsePrologue","basicUsageTip","prologue","desc","description","questions","question","textLines","renderHistoryView","shouldStickToBottom","_shouldAutoScroll","prevScrollTop","scrollTop","chipsHtml","s","escapeAttr","querySelectorAll","chip","val","dataset","html","runtimeExists","m","_runtimeEvents","idx","hasRuntimeEvents","showInitialLoading","_isStreaming","bubbleClass","bubbleContent","textToRender","parseMarkdown","_buildRuntimePanel","parseInt","copyMessage","regenerate","panel","evts","arrow","scrollToBottom","records","_getFilteredHistoryRecords","bodyHtml","record","_buildHistoryItem","back","openHistoryRecord","loadMore","loadHistoryRecords","preview","replyText","grouped","Map","recordId","set","size","existing","get","existConv","recConv","existTime","createTime","recTime","from","values","days","minTime","NaN","isNaN","showToast","queryOpts","startTime","toISOString","newRecords","concat","_recordsToMessages","reverse","flatMap","generateId","_status","disabled","scrollHeight","distanceToBottom","clientHeight","nextHeight","min","overflowY","hasText","hasAttachments","files","emptyMessageError","maxLen","_lastSendTime","attachmentText","displayContent","userMsg","onMessageSend","err","sendMessageToAI","handleError","mockResponse","msgId","messageId","_directApiCallStream","streamOptions","userContent","r","responses","substring","mockContent","floor","tempId","i","msgIdx","findIndex","updateStreamingBubble","finalizeStream","onMessageReceived","bubbles","lastLoading","requestOptions","streamText","chunk","_isPlaceholder","_isEventLike","_updateMsg","_addRuntimeEvent","_type","_text","_icon","_detail","callId","itemKind","_fetchConversationResult","_finalizeMsg","_getStreamTextEl","contains","msgItems","textEl","bubble","appendChild","hasRuntime","el","tick","pending","curEl","cancelAnimationFrame","p","j","last","row","subTitle","isRunning","countEl","msgContent","_findStreamingMessageContent","loadingBubble","_createRuntimePanelDOM","insertBefore","firstChild","aiItems","events","statusLabel","latest","latestEvent","isLatestRunning","onclick","titleClass","progress","eventsContainer","bind","collapsed","eventsHtml","arrowClass","txt","index","aiMessage","userQuestion","toast","displayMsg","match","copyContent","setClipboardData","reject","fail","_fallbackCopy","clipboard","writeText","ta","select","execCommand","stopGeneration","streaming","find","n","getHours","padStart","getMinutes","d","rawHtml","DOMPurify","sanitize","ALLOWED_TAGS","ALLOWED_ATTR","customElements","define","createAIChatDialog","keys","installVuePlugin","Vue","component","props","default","dialogInstance","watch","immediate","handler","$nextTick","deep","mounted","initDialog","beforeDestroy","beforeUnmount","methods","$emit","h","useAIChat","React","isVisible","useState","useRef","useEffect","setIsVisible","setMessages","setIsLoading","dialogRef","current","prev","input","Event","ref","version","AICreateChatDialog","AIWebSDK","create"],"mappings":"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AAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,MAAM,EAAE,CAAC,EAAE,IAAI,GAAG,MAAM,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,G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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A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","x_google_ignoreList":[2,3]}
1
+ {"version":3,"file":"index.umd.js","sources":["../src/utils/errorCodes.js","../src/core/AIChatClient.js","../node_modules/.pnpm/marked@18.0.5/node_modules/marked/lib/marked.esm.js","../node_modules/.pnpm/dompurify@3.4.8/node_modules/dompurify/dist/purify.es.mjs","../src/AIChatDialog.js","../src/index.js"],"sourcesContent":["/**\n * 错误码常量\n * 统一定义所有错误码,方便维护\n */\n\nconst ERROR_CODES = {\n // 成功\n SUCCESS: 200,\n\n // 客户端错误 (40000-49999)\n AGENT_NOT_FOUND: 40001, // 智能体不存在或已禁用\n PROMPT_EMPTY: 40002, // 提示词不能为空\n AUTH_FAILED: 40301, // 鉴权失败\n\n // 服务器错误 (50000-59999)\n NETWORK_ERROR: 500, // 网络请求失败\n SERVER_ERROR: 50001, // 服务器内部错误\n TIMEOUT_ERROR: 50002, // 请求超时\n\n // 取消\n REQUEST_CANCELLED: 0 // 请求已取消\n}\n\nexport default ERROR_CODES\n","import ERROR_CODES from '../utils/errorCodes.js'\n\nconst SUCCESS_CODES = new Set(['SUCCESS', '000000', '0', '200', 0, 200])\nconst DEFAULT_AUTH_CODES = new Set(['401', '403', '1005', 'S00001', 'ET0006', '999990'])\nconst START_EVENTS = new Set(['[START]'])\nconst ERROR_EVENTS = new Set(['[ERROR]', 'error'])\nconst META_EVENTS = new Set(['meta'])\nconst DONE_EVENTS = new Set(['[DONE]', 'done'])\nconst PLANNING_EVENTS = new Set(['planning', 'planning_progress', 'plan', 'plan_snapshot'])\nconst MESSAGE_EVENTS = new Set(['message'])\nconst THINKING_EVENTS = new Set(['[THINKING]'])\nconst PROGRESS_EVENTS = new Set(['[PROGRESS]'])\nconst TOOL_START_EVENTS = new Set(['[TOOL_START]'])\nconst TOOL_RESULT_EVENTS = new Set(['[TOOL_RESULT]'])\nconst TOOL_END_EVENTS = new Set(['[TOOL_END]'])\nconst NODE_START_EVENTS = new Set(['NODE_START'])\nconst NODE_PROGRESS_EVENTS = new Set(['NODE_PROGRESS'])\nconst NODE_COMPLETE_EVENTS = new Set(['NODE_COMPLETE'])\nconst WARNING_EVENTS = new Set(['[WARNING]'])\nconst HITL_EVENTS = new Set(['[HITL]'])\n\nconst RUNTIME_PLACEHOLDERS = [\n '请求已受理',\n '任务已受理',\n '正在思考',\n '正在执行...',\n '正在执行…',\n '正在执行',\n '结果处理中',\n '已进入助手运行时',\n '任务运行时',\n 'SSE 连接已建立'\n]\n\nfunction detectNetworkStatus () {\n return !(typeof navigator !== 'undefined' && navigator.onLine === false)\n}\n\nfunction createRequestId () {\n return 'req_' + Date.now().toString(36) + '_' + Math.random().toString(36).slice(2, 8)\n}\n\nfunction trimTrailingSlash (value) {\n return String(value || '').replace(/\\/+$/, '')\n}\n\nfunction joinUrl (base, path) {\n if (!base) return path\n if (/^https?:\\/\\//i.test(path)) return path\n return trimTrailingSlash(base) + '/' + String(path || '').replace(/^\\/+/, '')\n}\n\nfunction isRuntimePlaceholder (text) {\n const normalized = String(text || '').trim()\n return !!normalized && RUNTIME_PLACEHOLDERS.some((pattern) => normalized.includes(pattern))\n}\n\nfunction tryParseJson (text) {\n if (!text || typeof text !== 'string') return null\n try {\n return JSON.parse(text)\n } catch (e) {\n return null\n }\n}\n\nfunction parseSseBlock (block) {\n const lines = String(block || '').split('\\n')\n let event = 'message'\n const data = []\n for (const line of lines) {\n if (line.startsWith(':')) {\n continue\n }\n if (line.startsWith('event:')) {\n event = line.slice(6).trim()\n } else if (line.startsWith('data:')) {\n data.push(line.slice(5).replace(/^\\s/, ''))\n }\n }\n return { event, data: data.join('\\n') }\n}\n\nexport class AIChatClient {\n constructor (config = {}) {\n this.config = {\n apiBaseUrl: '',\n apiEndpoint: '/v1/app/completion',\n streamEndpoint: '/v1/app/completion/stream',\n stopEndpoint: '/v1/app/completion/stop',\n asyncEndpoint: '/v1/app/completion/async',\n attachmentUploadEndpoint: '/v1/app/attachment/upload',\n conversationQueryEndpoint: '/v1/app/conversation/query',\n conversationDeleteEndpoint: '/v1/app/conversation/delete',\n appDetailEndpoint: '/v1/app/{appId}',\n taskStatusEndpoint: '/v1/app/task/{taskId}',\n appListEndpoint: '/v1/app/list',\n runtimePermissionReplyEndpoint: '/v1/app/runtime/permission/reply',\n runtimeQuestionReplyEndpoint: '/v1/app/runtime/question/reply',\n runtimeQuestionRejectEndpoint: '/v1/app/runtime/question/reject',\n timeout: 60000,\n streamTimeout: 300000,\n maxRetries: 3,\n retryDelay: 1000,\n enableRetry: true,\n backgroundRefreshEnabled: true,\n backgroundRefreshIntervalMs: 5 * 60 * 1000,\n ...config\n }\n this.conversationId = config.conversationId || null\n this.currentRequestId = null\n this.abortController = null\n this.refreshTokenPromise = null\n this._backgroundTimer = null\n this._visibilityHandler = null\n\n if (this._shouldStartBackgroundRefresh()) {\n this.startBackgroundRefresh()\n }\n }\n\n buildUrl (path) {\n return joinUrl(this.config.apiBaseUrl || '', path)\n }\n\n buildHeaders (extra = {}) {\n const headers = { ...extra }\n if (this.config.token && !headers.Authorization) {\n headers.Authorization = /^Bearer\\s+/i.test(this.config.token) ? this.config.token : 'Bearer ' + this.config.token\n }\n if (this.config.headers && typeof this.config.headers === 'object') {\n Object.assign(headers, this.config.headers)\n }\n return headers\n }\n\n createError (code, message, extra = {}) {\n return {\n success: false,\n code,\n message,\n data: null,\n ...extra\n }\n }\n\n getAuthCodes () {\n const customCodes = Array.isArray(this.config.authErrorCodes) ? this.config.authErrorCodes : []\n return new Set([...DEFAULT_AUTH_CODES, ...customCodes.map(code => String(code))])\n }\n\n isAuthErrorCode (code) {\n return this.getAuthCodes().has(String(code))\n }\n\n isTokenExpiring () {\n const expiresAt = Number(this.config.tokenExpiresAt || 0)\n if (!expiresAt) return false\n const bufferMs = Number(this.config.tokenRefreshBufferMs ?? 60000)\n const normalizedExpiry = expiresAt < 10000000000 ? expiresAt * 1000 : expiresAt\n return Date.now() + bufferMs >= normalizedExpiry\n }\n\n applyTokenResult (result) {\n if (!result) return ''\n if (typeof result === 'string') {\n this.config.token = result\n return result\n }\n if (typeof result === 'object') {\n const nextToken = result.token || result.accessToken || result.authorization || ''\n if (nextToken) this.config.token = nextToken\n if (result.refreshToken) this.config.refreshToken = result.refreshToken\n\n const expireAt = result.expiresAt ?? result.expireAt\n const expireIn = result.expiresIn ?? result.expireIn\n\n if (expireAt) {\n const ea = Number(expireAt)\n this.config.tokenExpiresAt = ea < 10000000000 ? ea * 1000 : ea\n } else if (expireIn) {\n this.config.tokenExpiresAt = Date.now() + Number(expireIn) * 1000\n }\n\n if (result.headers && typeof result.headers === 'object') {\n this.config.headers = { ...(this.config.headers || {}), ...result.headers }\n }\n return nextToken\n }\n return ''\n }\n\n async refreshToken (reason = 'expired', { silent = false } = {}) {\n if (typeof this.config.refreshTokenFn !== 'function') {\n const error = new Error('Token 已过期且未配置 refreshTokenFn')\n if (!silent) {\n this.stopBackgroundRefresh()\n this.config.onTokenExpired?.(error)\n }\n throw error\n }\n if (!this.refreshTokenPromise) {\n this.refreshTokenPromise = Promise.resolve()\n .then(() => this.config.refreshTokenFn({\n token: this.config.token || '',\n refreshToken: this.config.refreshToken || '',\n userId: this.config.userId || '',\n reason\n }))\n .then((result) => {\n const token = this.applyTokenResult(result)\n if (this._shouldStartBackgroundRefresh()) {\n this.startBackgroundRefresh()\n }\n this.config.onTokenRefreshed?.({\n token: this.config.token || token,\n refreshToken: this.config.refreshToken || '',\n tokenExpiresAt: this.config.tokenExpiresAt,\n raw: result\n })\n return token\n })\n .catch((error) => {\n if (silent) {\n console.warn('[AIChatClient] Silent token refresh failed (reason=' + reason + '):', error.message)\n return this.config.token || ''\n }\n this.stopBackgroundRefresh()\n this.config.onTokenExpired?.(error)\n throw error\n })\n .finally(() => {\n this.refreshTokenPromise = null\n })\n }\n return this.refreshTokenPromise\n }\n\n _shouldStartBackgroundRefresh () {\n return this.config.backgroundRefreshEnabled !== false &&\n typeof this.config.refreshTokenFn === 'function' &&\n Number(this.config.tokenExpiresAt || 0) > 0\n }\n\n startBackgroundRefresh () {\n if (this._backgroundTimer || !this._shouldStartBackgroundRefresh()) return\n\n const interval = Math.max(30000, Number(this.config.backgroundRefreshIntervalMs || 5 * 60 * 1000))\n this._backgroundTimer = setInterval(() => {\n if (this.isTokenExpiring()) {\n this.refreshToken('scheduled', { silent: true })\n }\n }, interval)\n\n this._visibilityHandler = () => {\n if (document.visibilityState === 'visible' && this.isTokenExpiring()) {\n this.refreshToken('visibility', { silent: true })\n }\n }\n if (typeof document !== 'undefined') {\n document.addEventListener('visibilitychange', this._visibilityHandler)\n }\n }\n\n stopBackgroundRefresh () {\n if (this._backgroundTimer) {\n clearInterval(this._backgroundTimer)\n this._backgroundTimer = null\n }\n if (this._visibilityHandler) {\n if (typeof document !== 'undefined') {\n document.removeEventListener('visibilitychange', this._visibilityHandler)\n }\n this._visibilityHandler = null\n }\n }\n\n dispose () {\n this.stopBackgroundRefresh()\n this.cancelCurrentRequest()\n this.refreshTokenPromise = null\n }\n\n async ensureFreshToken () {\n if (this.isTokenExpiring()) {\n try {\n await this.refreshToken('preflight', { silent: true })\n } catch {\n // Preflight failed silently — proceed with old token, response 401 will trigger a non-silent retry\n }\n }\n }\n\n async runAuthFn () {\n if (!this.config.authFn) return\n try {\n await this.config.authFn(this.config.token || '', this.config.userId || '')\n } catch (error) {\n if (typeof this.config.refreshTokenFn !== 'function') {\n throw error\n }\n await this.refreshToken('authFn')\n await this.config.authFn(this.config.token || '', this.config.userId || '')\n }\n }\n\n parseResponse (raw) {\n if (raw && typeof raw === 'object' && raw.success === true && Object.prototype.hasOwnProperty.call(raw, 'data')) {\n return {\n success: true,\n code: raw.code || raw.errCode || 200,\n message: raw.message || raw.errMsg || '',\n data: raw.data || null,\n requestId: raw.requestId\n }\n }\n\n if (raw && typeof raw === 'object' && raw.bizContent) {\n const parsed = typeof raw.bizContent === 'string' ? tryParseJson(raw.bizContent) : raw.bizContent\n return {\n success: true,\n code: raw.code || raw.errCode || 200,\n message: raw.message || raw.errMsg || '',\n data: parsed,\n requestId: raw.requestId\n }\n }\n\n const rawCode = raw && (raw.code !== undefined ? raw.code : raw.errCode)\n const success = raw && (\n raw.success === true ||\n raw.rtnCode === 'SUCCESS' ||\n SUCCESS_CODES.has(rawCode)\n )\n return {\n success: !!success,\n code: rawCode || (success ? 200 : 0),\n message: (raw && (raw.message || raw.errMsg || raw.rtnMsg)) || '',\n data: (raw && (raw.data || raw.bizContent)) || null,\n requestId: raw && raw.requestId\n }\n }\n\n async requestJson (path, payload = {}, options = {}) {\n if (!detectNetworkStatus()) {\n return this.createError(ERROR_CODES.NETWORK_ERROR, '网络连接已断开,请检查网络后重试')\n }\n const controller = new AbortController()\n const timeout = options.timeout || this.config.timeout || 60000\n const timeoutId = timeout > 0 ? setTimeout(() => controller.abort(), timeout) : null\n try {\n await this.ensureFreshToken()\n const doRequest = async () => {\n const response = await fetch(this.buildUrl(path), {\n method: options.method || 'POST',\n headers: this.buildHeaders({ 'Content-Type': 'application/json' }),\n credentials: this.config.credentials || 'include',\n body: options.method === 'GET' ? undefined : JSON.stringify(payload),\n signal: controller.signal\n })\n if (!response.ok) {\n return this.createError(response.status, `HTTP ${response.status} ${response.statusText || ''}`.trim())\n }\n return this.parseResponse(await response.json())\n }\n let result = await doRequest()\n if (!options.skipAuthRefresh && this.isAuthErrorCode(result.code)) {\n await this.refreshToken('response')\n result = await doRequest()\n }\n return result\n } catch (error) {\n if (error && error.name === 'AbortError') {\n return this.createError(ERROR_CODES.TIMEOUT_ERROR, '请求超时,请稍后重试')\n }\n return this.createError(ERROR_CODES.NETWORK_ERROR, error.message || '网络请求失败,请稍后重试')\n } finally {\n if (timeoutId) clearTimeout(timeoutId)\n }\n }\n\n buildAppPayload (prompt, options = {}) {\n const requestId = options.requestId || createRequestId()\n const payload = {\n appId: options.appId || this.config.appId || this.config.agentAppId || null,\n prompt: String(prompt || '').trim(),\n userId: options.userId || this.config.userId || null,\n bizType: options.bizType || this.config.bizType || null,\n requestId\n }\n const conversationId = Object.prototype.hasOwnProperty.call(options, 'conversationId')\n ? options.conversationId\n : this.conversationId\n if (conversationId) payload.conversationId = conversationId\n const attachmentIds = options.attachmentIds || this.normalizeAttachmentIds(options.attachments)\n if (attachmentIds.length > 0) payload.attachmentIds = attachmentIds\n const bizParams = options.bizParams || options.extendInfo || this.config.extendInfo\n if (bizParams) payload.bizParams = typeof bizParams === 'string' ? bizParams : JSON.stringify(bizParams)\n return payload\n }\n\n normalizeAttachmentIds (attachments) {\n if (!Array.isArray(attachments)) return []\n return attachments\n .map((item) => typeof item === 'string' ? item : (item && (item.attachmentId || item.fileId || item.id)))\n .filter(Boolean)\n }\n\n async sendMessage (prompt, token, options = {}) {\n if (!prompt || !String(prompt).trim()) {\n return this.createError(ERROR_CODES.PROMPT_EMPTY, '提示词不能为空')\n }\n if (token) {\n this.config.token = token\n }\n try {\n await this.runAuthFn()\n } catch (error) {\n return this.createError(ERROR_CODES.AUTH_FAILED, '鉴权失败,无法使用智能体:' + (error.message || '未知错误'))\n }\n\n const retries = options.retries !== undefined ? options.retries : this.config.maxRetries\n let lastResponse = null\n for (let attempt = 0; attempt <= retries; attempt++) {\n if (attempt > 0) {\n await new Promise(resolve => setTimeout(resolve, (this.config.retryDelay || 1000) * Math.pow(2, attempt - 1)))\n }\n const payload = this.buildAppPayload(prompt, options)\n this.currentRequestId = payload.requestId\n lastResponse = await this.requestJson(options.endpoint || this.config.apiEndpoint, payload)\n if (lastResponse.success || !this.isRetryableError(lastResponse) || this.config.enableRetry === false) {\n break\n }\n }\n if (lastResponse && lastResponse.data && lastResponse.data.conversationId) {\n this.conversationId = lastResponse.data.conversationId\n }\n return lastResponse\n }\n\n isRetryableError (error) {\n const code = error && error.code\n return [\n ERROR_CODES.NETWORK_ERROR,\n ERROR_CODES.TIMEOUT_ERROR,\n ERROR_CODES.SERVER_ERROR,\n 500,\n 502,\n 503,\n 504\n ].includes(code)\n }\n\n async sendMessageStream (prompt, handlers = {}, options = {}) {\n if (!prompt || !String(prompt).trim()) {\n const error = this.createError(ERROR_CODES.PROMPT_EMPTY, '提示词不能为空')\n handlers.onError?.(error.message, error)\n return error\n }\n try {\n await this.runAuthFn()\n } catch (error) {\n return this.createError(ERROR_CODES.AUTH_FAILED, `鉴权失败,无法使用智能体:${error.message || '未知错误'}`)\n }\n try {\n return await this.executeMessageStream(prompt, handlers, options, false)\n } catch (error) {\n if (error && error.name === 'AbortError') {\n const message = '请求超时或已取消'\n handlers.onError?.(message, error.sseData || error)\n return this.createError(ERROR_CODES.REQUEST_CANCELLED, message)\n }\n if (error && error.authError) {\n const message = error.message || '鉴权失败'\n handlers.onError?.(message, error.sseData || error)\n return this.createError(ERROR_CODES.AUTH_FAILED, message)\n }\n const message = error.message || '流式请求失败'\n handlers.onError?.(message, error.sseData || error)\n return this.createError(ERROR_CODES.NETWORK_ERROR, message)\n }\n }\n\n async executeMessageStream (prompt, handlers, options, retriedAfterRefresh) {\n this.cancelCurrentRequest()\n this.abortController = new AbortController()\n const timeout = options.timeout || this.config.streamTimeout || this.config.timeout || 300000\n const timeoutId = timeout > 0 ? setTimeout(() => this.abortController.abort(), timeout) : null\n const payload = this.buildAppPayload(prompt, options)\n this.currentRequestId = payload.requestId\n let finalText = ''\n let doneCalled = false\n\n try {\n await this.ensureFreshToken()\n const response = await fetch(this.buildUrl(options.endpoint || this.config.streamEndpoint), {\n method: 'POST',\n headers: this.buildHeaders({ 'Content-Type': 'application/json', Accept: 'text/event-stream' }),\n credentials: this.config.credentials || 'include',\n body: JSON.stringify(payload),\n signal: this.abortController.signal\n })\n if (!response.ok || !response.body) {\n if (!retriedAfterRefresh && this.isAuthErrorCode(response.status)) {\n if (timeoutId) clearTimeout(timeoutId)\n await this.refreshToken('response')\n return this.executeMessageStream(prompt, handlers, options, true)\n }\n throw new Error(`流式请求失败:HTTP ${response.status}`)\n }\n\n const reader = response.body.getReader()\n const decoder = new TextDecoder()\n let buffer = ''\n while (true) {\n const { value, done } = await reader.read()\n if (done) break\n buffer += decoder.decode(value, { stream: true }).replace(/\\r\\n/g, '\\n')\n const parts = buffer.split('\\n\\n')\n buffer = parts.pop() || ''\n for (const part of parts) {\n if (!part.trim()) continue\n const { event, data } = parseSseBlock(part)\n this.handleSseEvent(event, data, handlers, (text) => {\n finalText = text\n }, () => {\n doneCalled = true\n })\n if (MESSAGE_EVENTS.has(event) && data && !data.startsWith('[META]') && !isRuntimePlaceholder(data) && !this.isEventLike(data)) {\n finalText += data\n }\n }\n }\n if (!doneCalled) {\n handlers.onDone?.(finalText)\n }\n return { success: true, code: 200, message: '', data: { content: finalText, conversationId: this.conversationId, requestId: payload.requestId } }\n } catch (error) {\n if (!retriedAfterRefresh && error && error.authError) {\n if (timeoutId) clearTimeout(timeoutId)\n await this.refreshToken('response')\n return this.executeMessageStream(prompt, handlers, options, true)\n }\n throw error\n } finally {\n if (timeoutId) clearTimeout(timeoutId)\n this.abortController = null\n }\n }\n\n handleSseEvent (event, data, handlers, setFinalText, markDone) {\n if (START_EVENTS.has(event)) {\n handlers.onStart?.()\n return\n }\n if (THINKING_EVENTS.has(event)) {\n if (data) handlers.onThinking?.(data)\n return\n }\n if (PROGRESS_EVENTS.has(event)) {\n const parsed = tryParseJson(data)\n handlers.onProgressEvent?.(parsed?.stage || '', parsed?.message || data || '')\n return\n }\n if (TOOL_START_EVENTS.has(event)) {\n const parsed = tryParseJson(data)\n handlers.onToolStart?.(parsed?.toolName || '', parsed?.toolCallId || '')\n return\n }\n if (TOOL_RESULT_EVENTS.has(event)) {\n const parsed = tryParseJson(data)\n handlers.onToolResult?.(parsed?.toolName || '', parsed?.text || data || '')\n return\n }\n if (TOOL_END_EVENTS.has(event)) {\n const parsed = tryParseJson(data)\n handlers.onToolEnd?.(parsed?.toolName || '', parsed?.toolCallId || '')\n return\n }\n if (NODE_START_EVENTS.has(event)) {\n const parts = (data || '').split('\\n')\n handlers.onNodeStart?.(parts[0] || '', parts.slice(1).join('\\n') || data || '')\n return\n }\n if (NODE_PROGRESS_EVENTS.has(event)) {\n const parts = (data || '').split('\\n')\n handlers.onNodeProgress?.(parts[0] || '', parts.slice(1).join('\\n') || data || '')\n return\n }\n if (NODE_COMPLETE_EVENTS.has(event)) {\n const parts = (data || '').split('\\n')\n handlers.onNodeComplete?.(parts[0] || '', parts.slice(1).join('\\n') || data || '')\n return\n }\n if (WARNING_EVENTS.has(event)) {\n const parsed = tryParseJson(data)\n handlers.onWarning?.(parsed?.message || data || '')\n return\n }\n if (HITL_EVENTS.has(event)) {\n const parsed = tryParseJson(data)\n if (parsed) {\n handlers.onHitlInterrupt?.({\n type: parsed.type || 'TOOL_CONFIRMATION',\n requestId: parsed.requestId || '',\n sessionId: parsed.sessionId || '',\n taskRunId: parsed.taskRunId || '',\n toolCalls: parsed.toolCalls || [],\n message: parsed.message || ''\n })\n }\n return\n }\n if (ERROR_EVENTS.has(event)) {\n const parsed = tryParseJson(data)\n const message = (parsed && (parsed.message || parsed.errorMessage)) || data || '流式请求失败'\n const code = parsed && (parsed.code || parsed.errCode || parsed.status)\n if (code && this.isAuthErrorCode(code)) {\n const error = new Error(message)\n error.authError = true\n error.code = code\n throw error\n }\n const error = new Error(message)\n error.sseData = parsed || data\n throw error\n }\n if ((META_EVENTS.has(event) || MESSAGE_EVENTS.has(event)) && data.startsWith('[META]')) {\n const meta = tryParseJson(data.slice('[META]'.length))\n if (meta) {\n if (meta.conversationId || meta.sessionId) this.conversationId = meta.conversationId || meta.sessionId\n handlers.onMeta?.(meta)\n }\n return\n }\n if (PLANNING_EVENTS.has(event) || (!MESSAGE_EVENTS.has(event) && !DONE_EVENTS.has(event))) {\n const parsed = tryParseJson(data)\n if (parsed && typeof parsed === 'object') {\n handlers.onPlanningEvent?.(parsed)\n } else if (data && !isRuntimePlaceholder(data)) {\n handlers.onProgress?.(data)\n }\n return\n }\n if (MESSAGE_EVENTS.has(event)) {\n // 后端通过空 data 块表示逻辑换行,空字符串需保留传递给上层处理\n if (isRuntimePlaceholder(data) || this.isEventLike(data)) return\n handlers.onMessage?.(data || '\\n')\n return\n }\n if (DONE_EVENTS.has(event)) {\n let finalText = ''\n if (data.startsWith('[META]')) {\n const meta = tryParseJson(data.slice('[META]'.length))\n if (meta) {\n if (meta.conversationId || meta.sessionId) this.conversationId = meta.conversationId || meta.sessionId\n handlers.onMeta?.(meta)\n }\n } else {\n const parsed = tryParseJson(data)\n if (parsed && typeof parsed === 'object') {\n if (parsed.conversationId || parsed.sessionId) this.conversationId = parsed.conversationId || parsed.sessionId\n finalText = parsed.response?.finalAnswer || parsed.response?.finalResult || parsed.response?.result || parsed.response?.summary || parsed.response?.answer || parsed.response?.output || parsed.finalAnswer || parsed.finalResult || parsed.result || parsed.summary || parsed.answer || parsed.output || ''\n handlers.onMeta?.({\n conversationId: parsed.conversationId || parsed.sessionId,\n taskRunId: parsed.taskRunId,\n traceId: parsed.traceId,\n inputTokens: parsed.inputTokens,\n outputTokens: parsed.outputTokens\n })\n }\n }\n if (finalText) setFinalText(finalText)\n markDone()\n handlers.onDone?.(finalText)\n }\n }\n\n isEventLike (text) {\n const trimmed = String(text || '').trim()\n if (trimmed.startsWith('[META]') || trimmed.startsWith('event:')) return true\n const parsed = tryParseJson(trimmed)\n return !!(parsed && typeof parsed === 'object' && (parsed.eventType || parsed.eventId || parsed.taskRunId || parsed.metadata || parsed.currentTask))\n }\n\n async stopCompletion (requestId = this.currentRequestId) {\n if (this.abortController) {\n this.abortController.abort()\n }\n if (!requestId) {\n return this.createError(ERROR_CODES.REQUEST_CANCELLED, '当前没有可停止的请求')\n }\n return this.requestJson(this.config.stopEndpoint, {\n requestId,\n userId: this.config.userId,\n appId: this.config.appId || this.config.agentAppId\n })\n }\n\n async uploadAttachment (file, options = {}) {\n if (!file) {\n return this.createError(ERROR_CODES.PROMPT_EMPTY, '文件不能为空')\n }\n const controller = new AbortController()\n const timeout = options.timeout || this.config.uploadTimeout || (this.config.timeout || 60000) * 5\n const timeoutId = timeout > 0 ? setTimeout(() => controller.abort(), timeout) : null\n try {\n await this.ensureFreshToken()\n const doUpload = async () => {\n const formData = new FormData()\n formData.append('file', file)\n formData.append('userId', options.userId || this.config.userId || '')\n if (options.fileType) formData.append('fileType', options.fileType)\n if (options.conversationId || this.conversationId) formData.append('conversationId', options.conversationId || this.conversationId)\n\n const headers = this.buildHeaders()\n delete headers['Content-Type']\n const response = await fetch(this.buildUrl(options.endpoint || this.config.attachmentUploadEndpoint), {\n method: 'POST',\n headers,\n credentials: this.config.credentials || 'include',\n body: formData,\n signal: controller.signal\n })\n if (!response.ok) {\n return this.createError(response.status, `HTTP ${response.status} ${response.statusText || ''}`.trim())\n }\n return this.parseResponse(await response.json())\n }\n let result = await doUpload()\n if (!options.skipAuthRefresh && this.isAuthErrorCode(result.code)) {\n await this.refreshToken('response')\n result = await doUpload()\n }\n return result\n } catch (error) {\n return this.createError(error && error.name === 'AbortError' ? ERROR_CODES.TIMEOUT_ERROR : ERROR_CODES.NETWORK_ERROR, error.message || '文件上传失败')\n } finally {\n if (timeoutId) clearTimeout(timeoutId)\n }\n }\n\n async queryConversation (options = {}) {\n const conversationId = options.conversationId || this.conversationId\n const appId = options.appId || this.config.appId || this.config.agentAppId\n if (!conversationId && !appId) {\n return this.createError(ERROR_CODES.PROMPT_EMPTY, '会话ID和应用ID不能同时为空')\n }\n return this.requestJson(this.config.conversationQueryEndpoint, {\n userId: options.userId || this.config.userId,\n requestId: options.requestId || createRequestId(),\n conversationId,\n appId,\n bizType: options.bizType || this.config.bizType,\n pageIndex: options.pageIndex || 1,\n pageSize: options.pageSize || 20\n })\n }\n\n async deleteConversation (conversationId = this.conversationId, options = {}) {\n if (!conversationId) {\n return this.createError(ERROR_CODES.PROMPT_EMPTY, '会话ID不能为空')\n }\n const response = await this.requestJson(this.config.conversationDeleteEndpoint, {\n userId: options.userId || this.config.userId,\n requestId: options.requestId || createRequestId(),\n conversationId,\n appId: options.appId || this.config.appId || this.config.agentAppId,\n bizType: options.bizType || this.config.bizType\n })\n if (response.success && conversationId === this.conversationId) {\n this.conversationId = null\n }\n return response\n }\n\n async asyncCompletion (prompt, options = {}) {\n const payload = this.buildAppPayload(prompt, options)\n this.currentRequestId = payload.requestId\n return this.requestJson(this.config.asyncEndpoint, payload)\n }\n\n async getTaskStatus (taskId, options = {}) {\n if (!taskId) {\n return this.createError(ERROR_CODES.PROMPT_EMPTY, '任务ID不能为空')\n }\n const path = (options.endpoint || this.config.taskStatusEndpoint).replace('{taskId}', encodeURIComponent(taskId))\n return this.requestJson(path, undefined, { method: 'GET', timeout: options.timeout })\n }\n\n async getAppDetail (appId = this.config.appId || this.config.agentAppId, options = {}) {\n if (!appId) {\n return this.createError(ERROR_CODES.AGENT_NOT_FOUND, '智能体应用ID不能为空')\n }\n const path = (options.endpoint || this.config.appDetailEndpoint).replace('{appId}', encodeURIComponent(appId))\n return this.requestJson(path, undefined, { method: 'GET', timeout: options.timeout })\n }\n\n async listApplications (options = {}) {\n const payload = {\n applicationType: options.applicationType,\n pageIndex: options.pageIndex || 1,\n pageSize: options.pageSize || 20,\n userId: this.config.userId,\n requestId: createRequestId()\n }\n return this.requestJson(options.endpoint || this.config.appListEndpoint, payload)\n }\n\n async replyPermission (request) {\n if (!request.sessionId || !request.requestId) {\n return this.createError(ERROR_CODES.PROMPT_EMPTY, 'sessionId和requestId不能为空')\n }\n const payload = {\n sessionId: request.sessionId,\n requestId: request.requestId,\n reply: request.reply || 'once',\n message: request.message || '',\n userId: this.config.userId,\n replyRequestId: createRequestId()\n }\n return this.requestJson(this.config.runtimePermissionReplyEndpoint, payload)\n }\n\n async replyQuestion (request) {\n if (!request.sessionId || !request.requestId) {\n return this.createError(ERROR_CODES.PROMPT_EMPTY, 'sessionId和requestId不能为空')\n }\n const payload = {\n sessionId: request.sessionId,\n requestId: request.requestId,\n answers: request.answers || [],\n userId: this.config.userId,\n replyRequestId: createRequestId()\n }\n return this.requestJson(this.config.runtimeQuestionReplyEndpoint, payload)\n }\n\n async rejectQuestion (request) {\n if (!request.sessionId || !request.requestId) {\n return this.createError(ERROR_CODES.PROMPT_EMPTY, 'sessionId和requestId不能为空')\n }\n const payload = {\n sessionId: request.sessionId,\n requestId: request.requestId,\n userId: this.config.userId,\n replyRequestId: createRequestId()\n }\n return this.requestJson(this.config.runtimeQuestionRejectEndpoint, payload)\n }\n\n setConversationId (conversationId) {\n this.conversationId = conversationId || null\n }\n\n clearConversation () {\n this.conversationId = null\n this.currentRequestId = null\n this.cancelCurrentRequest()\n }\n\n cancelCurrentRequest () {\n if (this.abortController) {\n this.abortController.abort()\n this.abortController = null\n }\n }\n\n updateConfig (newConfig) {\n const hadRefreshCapability = this._shouldStartBackgroundRefresh()\n Object.assign(this.config, newConfig || {})\n const hasRefreshCapability = this._shouldStartBackgroundRefresh()\n\n if (!hadRefreshCapability && hasRefreshCapability) {\n this.startBackgroundRefresh()\n } else if (hadRefreshCapability && !hasRefreshCapability) {\n this.stopBackgroundRefresh()\n }\n }\n}\n\nexport default AIChatClient\n","/**\n * marked v18.0.5 - a markdown parser\n * Copyright (c) 2018-2026, MarkedJS. (MIT License)\n * Copyright (c) 2011-2018, Christopher Jeffrey. (MIT License)\n * https://github.com/markedjs/marked\n */\n\n/**\n * DO NOT EDIT THIS FILE\n * The code in this file is generated from files in ./src/\n */\n\nfunction M(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}var T=M();function N(l){T=l}var _={exec:()=>null};function E(l){let e=[];return t=>{let n=Math.max(0,Math.min(3,t-1)),s=e[n];return s||(s=l(n),e[n]=s),s}}function d(l,e=\"\"){let t=typeof l==\"string\"?l:l.source,n={replace:(s,r)=>{let i=typeof r==\"string\"?r:r.source;return i=i.replace(m.caret,\"$1\"),t=t.replace(s,i),n},getRegex:()=>new RegExp(t,e)};return n}var Te=((l=\"\")=>{try{return!!new RegExp(\"(?<=1)(?<!1)\"+l)}catch{return!1}})(),m={codeRemoveIndent:/^(?: {1,4}| {0,3}\\t)/gm,outputLinkReplace:/\\\\([\\[\\]])/g,indentCodeCompensation:/^(\\s+)(?:```)/,beginningSpace:/^\\s+/,endingHash:/#$/,startingSpaceChar:/^ /,endingSpaceChar:/ $/,nonSpaceChar:/[^ ]/,newLineCharGlobal:/\\n/g,tabCharGlobal:/\\t/g,multipleSpaceGlobal:/\\s+/g,blankLine:/^[ \\t]*$/,doubleBlankLine:/\\n[ \\t]*\\n[ \\t]*$/,blockquoteStart:/^ {0,3}>/,blockquoteSetextReplace:/\\n {0,3}((?:=+|-+) *)(?=\\n|$)/g,blockquoteSetextReplace2:/^ {0,3}>[ \\t]?/gm,listReplaceNesting:/^ {1,4}(?=( {4})*[^ ])/g,listIsTask:/^\\[[ xX]\\] +\\S/,listReplaceTask:/^\\[[ xX]\\] +/,listTaskCheckbox:/\\[[ xX]\\]/,anyLine:/\\n.*\\n/,hrefBrackets:/^<(.*)>$/,tableDelimiter:/[:|]/,tableAlignChars:/^\\||\\| *$/g,tableRowBlankLine:/\\n[ \\t]*$/,tableAlignRight:/^ *-+: *$/,tableAlignCenter:/^ *:-+: *$/,tableAlignLeft:/^ *:-+ *$/,startATag:/^<a /i,endATag:/^<\\/a>/i,startPreScriptTag:/^<(pre|code|kbd|script)(\\s|>)/i,endPreScriptTag:/^<\\/(pre|code|kbd|script)(\\s|>)/i,startAngleBracket:/^</,endAngleBracket:/>$/,pedanticHrefTitle:/^([^'\"]*[^\\s])\\s+(['\"])(.*)\\2/,unicodeAlphaNumeric:/[\\p{L}\\p{N}]/u,escapeTest:/[&<>\"']/,escapeReplace:/[&<>\"']/g,escapeTestNoEncode:/[<>\"']|&(?!(#\\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\\w+);)/,escapeReplaceNoEncode:/[<>\"']|&(?!(#\\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\\w+);)/g,caret:/(^|[^\\[])\\^/g,percentDecode:/%25/g,findPipe:/\\|/g,splitPipe:/ \\|/,slashPipe:/\\\\\\|/g,carriageReturn:/\\r\\n|\\r/g,spaceLine:/^ +$/gm,notSpaceStart:/^\\S*/,endingNewline:/\\n$/,listItemRegex:l=>new RegExp(`^( {0,3}${l})((?:[\t ][^\\\\n]*)?(?:\\\\n|$))`),nextBulletRegex:E(l=>new RegExp(`^ {0,${l}}(?:[*+-]|\\\\d{1,9}[.)])((?:[ \t][^\\\\n]*)?(?:\\\\n|$))`)),hrRegex:E(l=>new RegExp(`^ {0,${l}}((?:- *){3,}|(?:_ *){3,}|(?:\\\\* *){3,})(?:\\\\n+|$)`)),fencesBeginRegex:E(l=>new RegExp(`^ {0,${l}}(?:\\`\\`\\`|~~~)`)),headingBeginRegex:E(l=>new RegExp(`^ {0,${l}}#`)),htmlBeginRegex:E(l=>new RegExp(`^ {0,${l}}<(?:[a-z].*>|!--)`,\"i\")),blockquoteBeginRegex:E(l=>new RegExp(`^ {0,${l}}>`))},Oe=/^(?:[ \\t]*(?:\\n|$))+/,we=/^((?: {4}| {0,3}\\t)[^\\n]+(?:\\n(?:[ \\t]*(?:\\n|$))*)?)+/,ye=/^ {0,3}(`{3,}(?=[^`\\n]*(?:\\n|$))|~{3,})([^\\n]*)(?:\\n|$)(?:|([\\s\\S]*?)(?:\\n|$))(?: {0,3}\\1[~`]* *(?=\\n|$)|$)/,B=/^ {0,3}((?:-[\\t ]*){3,}|(?:_[ \\t]*){3,}|(?:\\*[ \\t]*){3,})(?:\\n+|$)/,Pe=/^ {0,3}(#{1,6})(?=\\s|$)(.*)(?:\\n+|$)/,j=/ {0,3}(?:[*+-]|\\d{1,9}[.)])/,oe=/^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\\n(?!\\s*?\\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\\n {0,3}(=+|-+) *(?:\\n+|$)/,ae=d(oe).replace(/bull/g,j).replace(/blockCode/g,/(?: {4}| {0,3}\\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\\n>]+>\\n/).replace(/\\|table/g,\"\").getRegex(),Se=d(oe).replace(/bull/g,j).replace(/blockCode/g,/(?: {4}| {0,3}\\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\\n>]+>\\n/).replace(/table/g,/ {0,3}\\|?(?:[:\\- ]*\\|)+[\\:\\- ]*\\n/).getRegex(),F=/^([^\\n]+(?:\\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\\n)[^\\n]+)*)/,$e=/^[^\\n]+/,U=/(?!\\s*\\])(?:\\\\[\\s\\S]|[^\\[\\]\\\\])+/,Le=d(/^ {0,3}\\[(label)\\]: *(?:\\n[ \\t]*)?([^<\\s][^\\s]*|<.*?>)(?:(?: +(?:\\n[ \\t]*)?| *\\n[ \\t]*)(title))? *(?:\\n+|$)/).replace(\"label\",U).replace(\"title\",/(?:\"(?:\\\\\"?|[^\"\\\\])*\"|'[^'\\n]*(?:\\n[^'\\n]+)*\\n?'|\\([^()]*\\))/).getRegex(),_e=d(/^(bull)([ \\t][^\\n]*?)?(?:\\n|$)/).replace(/bull/g,j).getRegex(),H=\"address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul\",K=/<!--(?:-?>|[\\s\\S]*?(?:-->|$))/,ze=d(\"^ {0,3}(?:<(script|pre|style|textarea)[\\\\s>][\\\\s\\\\S]*?(?:</\\\\1>[^\\\\n]*\\\\n+|$)|comment[^\\\\n]*(\\\\n+|$)|<\\\\?[\\\\s\\\\S]*?(?:\\\\?>\\\\n*|$)|<![A-Z][\\\\s\\\\S]*?(?:>\\\\n*|$)|<!\\\\[CDATA\\\\[[\\\\s\\\\S]*?(?:\\\\]\\\\]>\\\\n*|$)|</?(tag)(?: +|\\\\n|/?>)[\\\\s\\\\S]*?(?:(?:\\\\n[ \t]*)+\\\\n|$)|<(?!script|pre|style|textarea)([a-z][\\\\w-]*)(?:attribute)*? */?>(?=[ \\\\t]*(?:\\\\n|$))[\\\\s\\\\S]*?(?:(?:\\\\n[ \t]*)+\\\\n|$)|</(?!script|pre|style|textarea)[a-z][\\\\w-]*\\\\s*>(?=[ \\\\t]*(?:\\\\n|$))[\\\\s\\\\S]*?(?:(?:\\\\n[ \t]*)+\\\\n|$))\",\"i\").replace(\"comment\",K).replace(\"tag\",H).replace(\"attribute\",/ +[a-zA-Z:_][\\w.:-]*(?: *= *\"[^\"\\n]*\"| *= *'[^'\\n]*'| *= *[^\\s\"'=<>`]+)?/).getRegex(),le=d(F).replace(\"hr\",B).replace(\"heading\",\" {0,3}#{1,6}(?:\\\\s|$)\").replace(\"|lheading\",\"\").replace(\"|table\",\"\").replace(\"blockquote\",\" {0,3}>\").replace(\"fences\",\" {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n\").replace(\"list\",\" {0,3}(?:[*+-]|1[.)])[ \\\\t]+[^ \\\\t\\\\n]\").replace(\"html\",\"</?(?:tag)(?: +|\\\\n|/?>)|<(?:script|pre|style|textarea|!--)\").replace(\"tag\",H).getRegex(),Me=d(/^( {0,3}> ?(paragraph|[^\\n]*)(?:\\n|$))+/).replace(\"paragraph\",le).getRegex(),W={blockquote:Me,code:we,def:Le,fences:ye,heading:Pe,hr:B,html:ze,lheading:ae,list:_e,newline:Oe,paragraph:le,table:_,text:$e},se=d(\"^ *([^\\\\n ].*)\\\\n {0,3}((?:\\\\| *)?:?-+:? *(?:\\\\| *:?-+:? *)*(?:\\\\| *)?)(?:\\\\n((?:(?! *\\\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\\\n|$))*)\\\\n*|$)\").replace(\"hr\",B).replace(\"heading\",\" {0,3}#{1,6}(?:\\\\s|$)\").replace(\"blockquote\",\" {0,3}>\").replace(\"code\",\"(?: {4}| {0,3}\t)[^\\\\n]\").replace(\"fences\",\" {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n\").replace(\"list\",\" {0,3}(?:[*+-]|1[.)])[ \\\\t]\").replace(\"html\",\"</?(?:tag)(?: +|\\\\n|/?>)|<(?:script|pre|style|textarea|!--)\").replace(\"tag\",H).getRegex(),Ee={...W,lheading:Se,table:se,paragraph:d(F).replace(\"hr\",B).replace(\"heading\",\" {0,3}#{1,6}(?:\\\\s|$)\").replace(\"|lheading\",\"\").replace(\"table\",se).replace(\"blockquote\",\" {0,3}>\").replace(\"fences\",\" {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n\").replace(\"list\",\" {0,3}(?:[*+-]|1[.)])[ \\\\t]+[^ \\\\t\\\\n]\").replace(\"html\",\"</?(?:tag)(?: +|\\\\n|/?>)|<(?:script|pre|style|textarea|!--)\").replace(\"tag\",H).getRegex()},Ie={...W,html:d(`^ *(?:comment *(?:\\\\n|\\\\s*$)|<(tag)[\\\\s\\\\S]+?</\\\\1> *(?:\\\\n{2,}|\\\\s*$)|<tag(?:\"[^\"]*\"|'[^']*'|\\\\s[^'\"/>\\\\s]*)*?/?> *(?:\\\\n{2,}|\\\\s*$))`).replace(\"comment\",K).replace(/tag/g,\"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\\\b)\\\\w+(?!:|[^\\\\w\\\\s@]*@)\\\\b\").getRegex(),def:/^ *\\[([^\\]]+)\\]: *<?([^\\s>]+)>?(?: +([\"(][^\\n]+[\")]))? *(?:\\n+|$)/,heading:/^(#{1,6})(.*)(?:\\n+|$)/,fences:_,lheading:/^(.+?)\\n {0,3}(=+|-+) *(?:\\n+|$)/,paragraph:d(F).replace(\"hr\",B).replace(\"heading\",` *#{1,6} *[^\n]`).replace(\"lheading\",ae).replace(\"|table\",\"\").replace(\"blockquote\",\" {0,3}>\").replace(\"|fences\",\"\").replace(\"|list\",\"\").replace(\"|html\",\"\").replace(\"|tag\",\"\").getRegex()},Ae=/^\\\\([!\"#$%&'()*+,\\-./:;<=>?@\\[\\]\\\\^_`{|}~])/,Ce=/^(`+)([^`]|[^`][\\s\\S]*?[^`])\\1(?!`)/,ue=/^( {2,}|\\\\)\\n(?!\\s*$)/,Be=/^(`+|[^`])(?:(?= {2,}\\n)|[\\s\\S]*?(?:(?=[\\\\<!\\[`*_]|\\b_|$)|[^ ](?= {2,}\\n)))/,I=/[\\p{P}\\p{S}]/u,Z=/[\\s\\p{P}\\p{S}]/u,X=/[^\\s\\p{P}\\p{S}]/u,De=d(/^((?![*_])punctSpace)/,\"u\").replace(/punctSpace/g,Z).getRegex(),pe=/(?!~)[\\p{P}\\p{S}]/u,qe=/(?!~)[\\s\\p{P}\\p{S}]/u,ve=/(?:[^\\s\\p{P}\\p{S}]|~)/u,He=d(/link|precode-code|html/,\"g\").replace(\"link\",/\\[(?:[^\\[\\]`]|(?<a>`+)[^`]+\\k<a>(?!`))*?\\]\\((?:\\\\[\\s\\S]|[^\\\\\\(\\)]|\\((?:\\\\[\\s\\S]|[^\\\\\\(\\)])*\\))*\\)/).replace(\"precode-\",Te?\"(?<!`)()\":\"(^^|[^`])\").replace(\"code\",/(?<b>`+)[^`]+\\k<b>(?!`)/).replace(\"html\",/<(?! )[^<>]*?>/).getRegex(),ce=/^(?:\\*+(?:((?!\\*)punct)|([^\\s*]))?)|^_+(?:((?!_)punct)|([^\\s_]))?/,Ze=d(ce,\"u\").replace(/punct/g,I).getRegex(),Ge=d(ce,\"u\").replace(/punct/g,pe).getRegex(),he=\"^[^_*]*?__[^_*]*?\\\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\\\*)punct(\\\\*+)(?=[\\\\s]|$)|notPunctSpace(\\\\*+)(?!\\\\*)(?=punctSpace|$)|(?!\\\\*)punctSpace(\\\\*+)(?=notPunctSpace)|[\\\\s](\\\\*+)(?!\\\\*)(?=punct)|(?!\\\\*)punct(\\\\*+)(?!\\\\*)(?=punct)|notPunctSpace(\\\\*+)(?=notPunctSpace)\",Ne=d(he,\"gu\").replace(/notPunctSpace/g,X).replace(/punctSpace/g,Z).replace(/punct/g,I).getRegex(),Qe=d(he,\"gu\").replace(/notPunctSpace/g,ve).replace(/punctSpace/g,qe).replace(/punct/g,pe).getRegex(),je=d(\"^[^_*]*?\\\\*\\\\*[^_*]*?_[^_*]*?(?=\\\\*\\\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)\",\"gu\").replace(/notPunctSpace/g,X).replace(/punctSpace/g,Z).replace(/punct/g,I).getRegex(),Fe=d(/^~~?(?:((?!~)punct)|[^\\s~])/,\"u\").replace(/punct/g,I).getRegex(),Ue=\"^[^~]+(?=[^~])|(?!~)punct(~~?)(?=[\\\\s]|$)|notPunctSpace(~~?)(?!~)(?=punctSpace|$)|(?!~)punctSpace(~~?)(?=notPunctSpace)|[\\\\s](~~?)(?!~)(?=punct)|(?!~)punct(~~?)(?!~)(?=punct)|notPunctSpace(~~?)(?=notPunctSpace)\",Ke=d(Ue,\"gu\").replace(/notPunctSpace/g,X).replace(/punctSpace/g,Z).replace(/punct/g,I).getRegex(),We=d(/\\\\(punct)/,\"gu\").replace(/punct/g,I).getRegex(),Xe=d(/^<(scheme:[^\\s\\x00-\\x1f<>]*|email)>/).replace(\"scheme\",/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace(\"email\",/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/).getRegex(),Je=d(K).replace(\"(?:-->|$)\",\"-->\").getRegex(),Ve=d(\"^comment|^</[a-zA-Z][\\\\w:-]*\\\\s*>|^<[a-zA-Z][\\\\w-]*(?:attribute)*?\\\\s*/?>|^<\\\\?[\\\\s\\\\S]*?\\\\?>|^<![a-zA-Z]+\\\\s[\\\\s\\\\S]*?>|^<!\\\\[CDATA\\\\[[\\\\s\\\\S]*?\\\\]\\\\]>\").replace(\"comment\",Je).replace(\"attribute\",/\\s+[a-zA-Z:_][\\w.:-]*(?:\\s*=\\s*\"[^\"]*\"|\\s*=\\s*'[^']*'|\\s*=\\s*[^\\s\"'=<>`]+)?/).getRegex(),v=/(?:\\[(?:\\\\[\\s\\S]|[^\\[\\]\\\\])*\\]|\\\\[\\s\\S]|`+(?!`)[^`]*?`+(?!`)|``+(?=\\])|[^\\[\\]\\\\`])*?/,Ye=d(/^!?\\[(label)\\]\\(\\s*(href)(?:(?:[ \\t]+(?:\\n[ \\t]*)?|\\n[ \\t]*)(title))?\\s*\\)/).replace(\"label\",v).replace(\"href\",/<(?:\\\\.|[^\\n<>\\\\])+>|[^ \\t\\n\\x00-\\x1f]*/).replace(\"title\",/\"(?:\\\\\"?|[^\"\\\\])*\"|'(?:\\\\'?|[^'\\\\])*'|\\((?:\\\\\\)?|[^)\\\\])*\\)/).getRegex(),ke=d(/^!?\\[(label)\\]\\[(ref)\\]/).replace(\"label\",v).replace(\"ref\",U).getRegex(),de=d(/^!?\\[(ref)\\](?:\\[\\])?/).replace(\"ref\",U).getRegex(),et=d(\"reflink|nolink(?!\\\\()\",\"g\").replace(\"reflink\",ke).replace(\"nolink\",de).getRegex(),ie=/[hH][tT][tT][pP][sS]?|[fF][tT][pP]/,J={_backpedal:_,anyPunctuation:We,autolink:Xe,blockSkip:He,br:ue,code:Ce,del:_,delLDelim:_,delRDelim:_,emStrongLDelim:Ze,emStrongRDelimAst:Ne,emStrongRDelimUnd:je,escape:Ae,link:Ye,nolink:de,punctuation:De,reflink:ke,reflinkSearch:et,tag:Ve,text:Be,url:_},tt={...J,link:d(/^!?\\[(label)\\]\\((.*?)\\)/).replace(\"label\",v).getRegex(),reflink:d(/^!?\\[(label)\\]\\s*\\[([^\\]]*)\\]/).replace(\"label\",v).getRegex()},Q={...J,emStrongRDelimAst:Qe,emStrongLDelim:Ge,delLDelim:Fe,delRDelim:Ke,url:d(/^((?:protocol):\\/\\/|www\\.)(?:[a-zA-Z0-9\\-]+\\.?)+[^\\s<]*|^email/).replace(\"protocol\",ie).replace(\"email\",/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/).getRegex(),_backpedal:/(?:[^?!.,:;*_'\"~()&]+|\\([^)]*\\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'\"~)]+(?!$))+/,del:/^(~~?)(?=[^\\s~])((?:\\\\[\\s\\S]|[^\\\\])*?(?:\\\\[\\s\\S]|[^\\s~\\\\]))\\1(?=[^~]|$)/,text:d(/^([`~]+|[^`~])(?:(?= {2,}\\n)|(?=[a-zA-Z0-9.!#$%&'*+\\/=?_`{\\|}~-]+@)|[\\s\\S]*?(?:(?=[\\\\<!\\[`*~_]|\\b_|protocol:\\/\\/|www\\.|$)|[^ ](?= {2,}\\n)|[^a-zA-Z0-9.!#$%&'*+\\/=?_`{\\|}~-](?=[a-zA-Z0-9.!#$%&'*+\\/=?_`{\\|}~-]+@)))/).replace(\"protocol\",ie).getRegex()},nt={...Q,br:d(ue).replace(\"{2,}\",\"*\").getRegex(),text:d(Q.text).replace(\"\\\\b_\",\"\\\\b_| {2,}\\\\n\").replace(/\\{2,\\}/g,\"*\").getRegex()},D={normal:W,gfm:Ee,pedantic:Ie},A={normal:J,gfm:Q,breaks:nt,pedantic:tt};var rt={\"&\":\"&amp;\",\"<\":\"&lt;\",\">\":\"&gt;\",'\"':\"&quot;\",\"'\":\"&#39;\"},ge=l=>rt[l];function O(l,e){if(e){if(m.escapeTest.test(l))return l.replace(m.escapeReplace,ge)}else if(m.escapeTestNoEncode.test(l))return l.replace(m.escapeReplaceNoEncode,ge);return l}function V(l){try{l=encodeURI(l).replace(m.percentDecode,\"%\")}catch{return null}return l}function Y(l,e){let t=l.replace(m.findPipe,(r,i,o)=>{let u=!1,a=i;for(;--a>=0&&o[a]===\"\\\\\";)u=!u;return u?\"|\":\" |\"}),n=t.split(m.splitPipe),s=0;if(n[0].trim()||n.shift(),n.length>0&&!n.at(-1)?.trim()&&n.pop(),e)if(n.length>e)n.splice(e);else for(;n.length<e;)n.push(\"\");for(;s<n.length;s++)n[s]=n[s].trim().replace(m.slashPipe,\"|\");return n}function $(l,e,t){let n=l.length;if(n===0)return\"\";let s=0;for(;s<n;){let r=l.charAt(n-s-1);if(r===e&&!t)s++;else if(r!==e&&t)s++;else break}return l.slice(0,n-s)}function ee(l){let e=l.split(`\n`),t=e.length-1;for(;t>=0&&m.blankLine.test(e[t]);)t--;return e.length-t<=2?l:e.slice(0,t+1).join(`\n`)}function fe(l,e){if(l.indexOf(e[1])===-1)return-1;let t=0;for(let n=0;n<l.length;n++)if(l[n]===\"\\\\\")n++;else if(l[n]===e[0])t++;else if(l[n]===e[1]&&(t--,t<0))return n;return t>0?-2:-1}function me(l,e=0){let t=e,n=\"\";for(let s of l)if(s===\"\t\"){let r=4-t%4;n+=\" \".repeat(r),t+=r}else n+=s,t++;return n}function xe(l,e,t,n,s){let r=e.href,i=e.title||null,o=l[1].replace(s.other.outputLinkReplace,\"$1\");n.state.inLink=!0;let u={type:l[0].charAt(0)===\"!\"?\"image\":\"link\",raw:t,href:r,title:i,text:o,tokens:n.inlineTokens(o)};return n.state.inLink=!1,u}function st(l,e,t){let n=l.match(t.other.indentCodeCompensation);if(n===null)return e;let s=n[1];return e.split(`\n`).map(r=>{let i=r.match(t.other.beginningSpace);if(i===null)return r;let[o]=i;return o.length>=s.length?r.slice(s.length):r}).join(`\n`)}var w=class{options;rules;lexer;constructor(e){this.options=e||T}space(e){let t=this.rules.block.newline.exec(e);if(t&&t[0].length>0)return{type:\"space\",raw:t[0]}}code(e){let t=this.rules.block.code.exec(e);if(t){let n=this.options.pedantic?t[0]:ee(t[0]),s=n.replace(this.rules.other.codeRemoveIndent,\"\");return{type:\"code\",raw:n,codeBlockStyle:\"indented\",text:s}}}fences(e){let t=this.rules.block.fences.exec(e);if(t){let n=t[0],s=st(n,t[3]||\"\",this.rules);return{type:\"code\",raw:n,lang:t[2]?t[2].trim().replace(this.rules.inline.anyPunctuation,\"$1\"):t[2],text:s}}}heading(e){let t=this.rules.block.heading.exec(e);if(t){let n=t[2].trim();if(this.rules.other.endingHash.test(n)){let s=$(n,\"#\");(this.options.pedantic||!s||this.rules.other.endingSpaceChar.test(s))&&(n=s.trim())}return{type:\"heading\",raw:$(t[0],`\n`),depth:t[1].length,text:n,tokens:this.lexer.inline(n)}}}hr(e){let t=this.rules.block.hr.exec(e);if(t)return{type:\"hr\",raw:$(t[0],`\n`)}}blockquote(e){let t=this.rules.block.blockquote.exec(e);if(t){let n=$(t[0],`\n`).split(`\n`),s=\"\",r=\"\",i=[];for(;n.length>0;){let o=!1,u=[],a;for(a=0;a<n.length;a++)if(this.rules.other.blockquoteStart.test(n[a]))u.push(n[a]),o=!0;else if(!o)u.push(n[a]);else break;n=n.slice(a);let c=u.join(`\n`),p=c.replace(this.rules.other.blockquoteSetextReplace,`\n $1`).replace(this.rules.other.blockquoteSetextReplace2,\"\");s=s?`${s}\n${c}`:c,r=r?`${r}\n${p}`:p;let k=this.lexer.state.top;if(this.lexer.state.top=!0,this.lexer.blockTokens(p,i,!0),this.lexer.state.top=k,n.length===0)break;let h=i.at(-1);if(h?.type===\"code\")break;if(h?.type===\"blockquote\"){let R=h,f=R.raw+`\n`+n.join(`\n`),S=this.blockquote(f);i[i.length-1]=S,s=s.substring(0,s.length-R.raw.length)+S.raw,r=r.substring(0,r.length-R.text.length)+S.text;break}else if(h?.type===\"list\"){let R=h,f=R.raw+`\n`+n.join(`\n`),S=this.list(f);i[i.length-1]=S,s=s.substring(0,s.length-h.raw.length)+S.raw,r=r.substring(0,r.length-R.raw.length)+S.raw,n=f.substring(i.at(-1).raw.length).split(`\n`);continue}}return{type:\"blockquote\",raw:s,tokens:i,text:r}}}list(e){let t=this.rules.block.list.exec(e);if(t){let n=t[1].trim(),s=n.length>1,r={type:\"list\",raw:\"\",ordered:s,start:s?+n.slice(0,-1):\"\",loose:!1,items:[]};n=s?`\\\\d{1,9}\\\\${n.slice(-1)}`:`\\\\${n}`,this.options.pedantic&&(n=s?n:\"[*+-]\");let i=this.rules.other.listItemRegex(n),o=!1;for(;e;){let a=!1,c=\"\",p=\"\";if(!(t=i.exec(e))||this.rules.block.hr.test(e))break;c=t[0],e=e.substring(c.length);let k=me(t[2].split(`\n`,1)[0],t[1].length),h=e.split(`\n`,1)[0],R=!k.trim(),f=0;if(this.options.pedantic?(f=2,p=k.trimStart()):R?f=t[1].length+1:(f=k.search(this.rules.other.nonSpaceChar),f=f>4?1:f,p=k.slice(f),f+=t[1].length),R&&this.rules.other.blankLine.test(h)&&(c+=h+`\n`,e=e.substring(h.length+1),a=!0),!a){let S=this.rules.other.nextBulletRegex(f),te=this.rules.other.hrRegex(f),ne=this.rules.other.fencesBeginRegex(f),re=this.rules.other.headingBeginRegex(f),be=this.rules.other.htmlBeginRegex(f),Re=this.rules.other.blockquoteBeginRegex(f);for(;e;){let G=e.split(`\n`,1)[0],C;if(h=G,this.options.pedantic?(h=h.replace(this.rules.other.listReplaceNesting,\" \"),C=h):C=h.replace(this.rules.other.tabCharGlobal,\" \"),ne.test(h)||re.test(h)||be.test(h)||Re.test(h)||S.test(h)||te.test(h))break;if(C.search(this.rules.other.nonSpaceChar)>=f||!h.trim())p+=`\n`+C.slice(f);else{if(R||k.replace(this.rules.other.tabCharGlobal,\" \").search(this.rules.other.nonSpaceChar)>=4||ne.test(k)||re.test(k)||te.test(k))break;p+=`\n`+h}R=!h.trim(),c+=G+`\n`,e=e.substring(G.length+1),k=C.slice(f)}}r.loose||(o?r.loose=!0:this.rules.other.doubleBlankLine.test(c)&&(o=!0)),r.items.push({type:\"list_item\",raw:c,task:!!this.options.gfm&&this.rules.other.listIsTask.test(p),loose:!1,text:p,tokens:[]}),r.raw+=c}let u=r.items.at(-1);if(u)u.raw=u.raw.trimEnd(),u.text=u.text.trimEnd();else return;r.raw=r.raw.trimEnd();for(let a of r.items){this.lexer.state.top=!1,a.tokens=this.lexer.blockTokens(a.text,[]);let c=a.tokens[0];if(a.task&&(c?.type===\"text\"||c?.type===\"paragraph\")){a.text=a.text.replace(this.rules.other.listReplaceTask,\"\"),c.raw=c.raw.replace(this.rules.other.listReplaceTask,\"\"),c.text=c.text.replace(this.rules.other.listReplaceTask,\"\");for(let k=this.lexer.inlineQueue.length-1;k>=0;k--)if(this.rules.other.listIsTask.test(this.lexer.inlineQueue[k].src)){this.lexer.inlineQueue[k].src=this.lexer.inlineQueue[k].src.replace(this.rules.other.listReplaceTask,\"\");break}let p=this.rules.other.listTaskCheckbox.exec(a.raw);if(p){let k={type:\"checkbox\",raw:p[0]+\" \",checked:p[0]!==\"[ ]\"};a.checked=k.checked,r.loose?a.tokens[0]&&[\"paragraph\",\"text\"].includes(a.tokens[0].type)&&\"tokens\"in a.tokens[0]&&a.tokens[0].tokens?(a.tokens[0].raw=k.raw+a.tokens[0].raw,a.tokens[0].text=k.raw+a.tokens[0].text,a.tokens[0].tokens.unshift(k)):a.tokens.unshift({type:\"paragraph\",raw:k.raw,text:k.raw,tokens:[k]}):a.tokens.unshift(k)}}else a.task&&(a.task=!1);if(!r.loose){let p=a.tokens.filter(h=>h.type===\"space\"),k=p.length>0&&p.some(h=>this.rules.other.anyLine.test(h.raw));r.loose=k}}if(r.loose)for(let a of r.items){a.loose=!0;for(let c of a.tokens)c.type===\"text\"&&(c.type=\"paragraph\")}return r}}html(e){let t=this.rules.block.html.exec(e);if(t){let n=ee(t[0]);return{type:\"html\",block:!0,raw:n,pre:t[1]===\"pre\"||t[1]===\"script\"||t[1]===\"style\",text:n}}}def(e){let t=this.rules.block.def.exec(e);if(t){let n=t[1].toLowerCase().replace(this.rules.other.multipleSpaceGlobal,\" \"),s=t[2]?t[2].replace(this.rules.other.hrefBrackets,\"$1\").replace(this.rules.inline.anyPunctuation,\"$1\"):\"\",r=t[3]?t[3].substring(1,t[3].length-1).replace(this.rules.inline.anyPunctuation,\"$1\"):t[3];return{type:\"def\",tag:n,raw:$(t[0],`\n`),href:s,title:r}}}table(e){let t=this.rules.block.table.exec(e);if(!t||!this.rules.other.tableDelimiter.test(t[2]))return;let n=Y(t[1]),s=t[2].replace(this.rules.other.tableAlignChars,\"\").split(\"|\"),r=t[3]?.trim()?t[3].replace(this.rules.other.tableRowBlankLine,\"\").split(`\n`):[],i={type:\"table\",raw:$(t[0],`\n`),header:[],align:[],rows:[]};if(n.length===s.length){for(let o of s)this.rules.other.tableAlignRight.test(o)?i.align.push(\"right\"):this.rules.other.tableAlignCenter.test(o)?i.align.push(\"center\"):this.rules.other.tableAlignLeft.test(o)?i.align.push(\"left\"):i.align.push(null);for(let o=0;o<n.length;o++)i.header.push({text:n[o],tokens:this.lexer.inline(n[o]),header:!0,align:i.align[o]});for(let o of r)i.rows.push(Y(o,i.header.length).map((u,a)=>({text:u,tokens:this.lexer.inline(u),header:!1,align:i.align[a]})));return i}}lheading(e){let t=this.rules.block.lheading.exec(e);if(t){let n=t[1].trim();return{type:\"heading\",raw:$(t[0],`\n`),depth:t[2].charAt(0)===\"=\"?1:2,text:n,tokens:this.lexer.inline(n)}}}paragraph(e){let t=this.rules.block.paragraph.exec(e);if(t){let n=t[1].charAt(t[1].length-1)===`\n`?t[1].slice(0,-1):t[1];return{type:\"paragraph\",raw:t[0],text:n,tokens:this.lexer.inline(n)}}}text(e){let t=this.rules.block.text.exec(e);if(t)return{type:\"text\",raw:t[0],text:t[0],tokens:this.lexer.inline(t[0])}}escape(e){let t=this.rules.inline.escape.exec(e);if(t)return{type:\"escape\",raw:t[0],text:t[1]}}tag(e){let t=this.rules.inline.tag.exec(e);if(t)return!this.lexer.state.inLink&&this.rules.other.startATag.test(t[0])?this.lexer.state.inLink=!0:this.lexer.state.inLink&&this.rules.other.endATag.test(t[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&this.rules.other.startPreScriptTag.test(t[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&this.rules.other.endPreScriptTag.test(t[0])&&(this.lexer.state.inRawBlock=!1),{type:\"html\",raw:t[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,block:!1,text:t[0]}}link(e){let t=this.rules.inline.link.exec(e);if(t){let n=t[2].trim();if(!this.options.pedantic&&this.rules.other.startAngleBracket.test(n)){if(!this.rules.other.endAngleBracket.test(n))return;let i=$(n.slice(0,-1),\"\\\\\");if((n.length-i.length)%2===0)return}else{let i=fe(t[2],\"()\");if(i===-2)return;if(i>-1){let u=(t[0].indexOf(\"!\")===0?5:4)+t[1].length+i;t[2]=t[2].substring(0,i),t[0]=t[0].substring(0,u).trim(),t[3]=\"\"}}let s=t[2],r=\"\";if(this.options.pedantic){let i=this.rules.other.pedanticHrefTitle.exec(s);i&&(s=i[1],r=i[3])}else r=t[3]?t[3].slice(1,-1):\"\";return s=s.trim(),this.rules.other.startAngleBracket.test(s)&&(this.options.pedantic&&!this.rules.other.endAngleBracket.test(n)?s=s.slice(1):s=s.slice(1,-1)),xe(t,{href:s&&s.replace(this.rules.inline.anyPunctuation,\"$1\"),title:r&&r.replace(this.rules.inline.anyPunctuation,\"$1\")},t[0],this.lexer,this.rules)}}reflink(e,t){let n;if((n=this.rules.inline.reflink.exec(e))||(n=this.rules.inline.nolink.exec(e))){let s=(n[2]||n[1]).replace(this.rules.other.multipleSpaceGlobal,\" \"),r=t[s.toLowerCase()];if(!r){let i=n[0].charAt(0);return{type:\"text\",raw:i,text:i}}return xe(n,r,n[0],this.lexer,this.rules)}}emStrong(e,t,n=\"\"){let s=this.rules.inline.emStrongLDelim.exec(e);if(!s||!s[1]&&!s[2]&&!s[3]&&!s[4]||s[4]&&n.match(this.rules.other.unicodeAlphaNumeric))return;if(!(s[1]||s[3]||\"\")||!n||this.rules.inline.punctuation.exec(n)){let i=[...s[0]].length-1,o,u,a=i,c=0,p=s[0][0]===\"*\"?this.rules.inline.emStrongRDelimAst:this.rules.inline.emStrongRDelimUnd;for(p.lastIndex=0,t=t.slice(-1*e.length+i);(s=p.exec(t))!==null;){if(o=s[1]||s[2]||s[3]||s[4]||s[5]||s[6],!o)continue;if(u=[...o].length,s[3]||s[4]){a+=u;continue}else if((s[5]||s[6])&&i%3&&!((i+u)%3)){c+=u;continue}if(a-=u,a>0)continue;u=Math.min(u,u+a+c);let k=[...s[0]][0].length,h=e.slice(0,i+s.index+k+u);if(Math.min(i,u)%2){let f=h.slice(1,-1);return{type:\"em\",raw:h,text:f,tokens:this.lexer.inlineTokens(f)}}let R=h.slice(2,-2);return{type:\"strong\",raw:h,text:R,tokens:this.lexer.inlineTokens(R)}}}}codespan(e){let t=this.rules.inline.code.exec(e);if(t){let n=t[2].replace(this.rules.other.newLineCharGlobal,\" \"),s=this.rules.other.nonSpaceChar.test(n),r=this.rules.other.startingSpaceChar.test(n)&&this.rules.other.endingSpaceChar.test(n);return s&&r&&(n=n.substring(1,n.length-1)),{type:\"codespan\",raw:t[0],text:n}}}br(e){let t=this.rules.inline.br.exec(e);if(t)return{type:\"br\",raw:t[0]}}del(e,t,n=\"\"){let s=this.rules.inline.delLDelim.exec(e);if(!s)return;if(!(s[1]||\"\")||!n||this.rules.inline.punctuation.exec(n)){let i=[...s[0]].length-1,o,u,a=i,c=this.rules.inline.delRDelim;for(c.lastIndex=0,t=t.slice(-1*e.length+i);(s=c.exec(t))!==null;){if(o=s[1]||s[2]||s[3]||s[4]||s[5]||s[6],!o||(u=[...o].length,u!==i))continue;if(s[3]||s[4]){a+=u;continue}if(a-=u,a>0)continue;u=Math.min(u,u+a);let p=[...s[0]][0].length,k=e.slice(0,i+s.index+p+u),h=k.slice(i,-i);return{type:\"del\",raw:k,text:h,tokens:this.lexer.inlineTokens(h)}}}}autolink(e){let t=this.rules.inline.autolink.exec(e);if(t){let n,s;return t[2]===\"@\"?(n=t[1],s=\"mailto:\"+n):(n=t[1],s=n),{type:\"link\",raw:t[0],text:n,href:s,tokens:[{type:\"text\",raw:n,text:n}]}}}url(e){let t;if(t=this.rules.inline.url.exec(e)){let n,s;if(t[2]===\"@\")n=t[0],s=\"mailto:\"+n;else{let r;do r=t[0],t[0]=this.rules.inline._backpedal.exec(t[0])?.[0]??\"\";while(r!==t[0]);n=t[0],t[1]===\"www.\"?s=\"http://\"+t[0]:s=t[0]}return{type:\"link\",raw:t[0],text:n,href:s,tokens:[{type:\"text\",raw:n,text:n}]}}}inlineText(e){let t=this.rules.inline.text.exec(e);if(t){let n=this.lexer.state.inRawBlock;return{type:\"text\",raw:t[0],text:t[0],escaped:n}}}};var x=class l{tokens;options;state;inlineQueue;tokenizer;constructor(e){this.tokens=[],this.tokens.links=Object.create(null),this.options=e||T,this.options.tokenizer=this.options.tokenizer||new w,this.tokenizer=this.options.tokenizer,this.tokenizer.options=this.options,this.tokenizer.lexer=this,this.inlineQueue=[],this.state={inLink:!1,inRawBlock:!1,top:!0};let t={other:m,block:D.normal,inline:A.normal};this.options.pedantic?(t.block=D.pedantic,t.inline=A.pedantic):this.options.gfm&&(t.block=D.gfm,this.options.breaks?t.inline=A.breaks:t.inline=A.gfm),this.tokenizer.rules=t}static get rules(){return{block:D,inline:A}}static lex(e,t){return new l(t).lex(e)}static lexInline(e,t){return new l(t).inlineTokens(e)}lex(e){e=e.replace(m.carriageReturn,`\n`),this.blockTokens(e,this.tokens);for(let t=0;t<this.inlineQueue.length;t++){let n=this.inlineQueue[t];this.inlineTokens(n.src,n.tokens)}return this.inlineQueue=[],this.tokens}blockTokens(e,t=[],n=!1){this.tokenizer.lexer=this,this.options.pedantic&&(e=e.replace(m.tabCharGlobal,\" \").replace(m.spaceLine,\"\"));let s=1/0;for(;e;){if(e.length<s)s=e.length;else{this.infiniteLoopError(e.charCodeAt(0));break}let r;if(this.options.extensions?.block?.some(o=>(r=o.call({lexer:this},e,t))?(e=e.substring(r.raw.length),t.push(r),!0):!1))continue;if(r=this.tokenizer.space(e)){e=e.substring(r.raw.length);let o=t.at(-1);r.raw.length===1&&o!==void 0?o.raw+=`\n`:t.push(r);continue}if(r=this.tokenizer.code(e)){e=e.substring(r.raw.length);let o=t.at(-1);o?.type===\"paragraph\"||o?.type===\"text\"?(o.raw+=(o.raw.endsWith(`\n`)?\"\":`\n`)+r.raw,o.text+=`\n`+r.text,this.inlineQueue.at(-1).src=o.text):t.push(r);continue}if(r=this.tokenizer.fences(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.heading(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.hr(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.blockquote(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.list(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.html(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.def(e)){e=e.substring(r.raw.length);let o=t.at(-1);o?.type===\"paragraph\"||o?.type===\"text\"?(o.raw+=(o.raw.endsWith(`\n`)?\"\":`\n`)+r.raw,o.text+=`\n`+r.raw,this.inlineQueue.at(-1).src=o.text):this.tokens.links[r.tag]||(this.tokens.links[r.tag]={href:r.href,title:r.title},t.push(r));continue}if(r=this.tokenizer.table(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.lheading(e)){e=e.substring(r.raw.length),t.push(r);continue}let i=e;if(this.options.extensions?.startBlock){let o=1/0,u=e.slice(1),a;this.options.extensions.startBlock.forEach(c=>{a=c.call({lexer:this},u),typeof a==\"number\"&&a>=0&&(o=Math.min(o,a))}),o<1/0&&o>=0&&(i=e.substring(0,o+1))}if(this.state.top&&(r=this.tokenizer.paragraph(i))){let o=t.at(-1);n&&o?.type===\"paragraph\"?(o.raw+=(o.raw.endsWith(`\n`)?\"\":`\n`)+r.raw,o.text+=`\n`+r.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=o.text):t.push(r),n=i.length!==e.length,e=e.substring(r.raw.length);continue}if(r=this.tokenizer.text(e)){e=e.substring(r.raw.length);let o=t.at(-1);o?.type===\"text\"?(o.raw+=(o.raw.endsWith(`\n`)?\"\":`\n`)+r.raw,o.text+=`\n`+r.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=o.text):t.push(r);continue}if(e){this.infiniteLoopError(e.charCodeAt(0));break}}return this.state.top=!0,t}inline(e,t=[]){return this.inlineQueue.push({src:e,tokens:t}),t}inlineTokens(e,t=[]){this.tokenizer.lexer=this;let n=e,s=null;if(this.tokens.links){let a=Object.keys(this.tokens.links);if(a.length>0)for(;(s=this.tokenizer.rules.inline.reflinkSearch.exec(n))!==null;)a.includes(s[0].slice(s[0].lastIndexOf(\"[\")+1,-1))&&(n=n.slice(0,s.index)+\"[\"+\"a\".repeat(s[0].length-2)+\"]\"+n.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}for(;(s=this.tokenizer.rules.inline.anyPunctuation.exec(n))!==null;)n=n.slice(0,s.index)+\"++\"+n.slice(this.tokenizer.rules.inline.anyPunctuation.lastIndex);let r;for(;(s=this.tokenizer.rules.inline.blockSkip.exec(n))!==null;)r=s[2]?s[2].length:0,n=n.slice(0,s.index+r)+\"[\"+\"a\".repeat(s[0].length-r-2)+\"]\"+n.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);n=this.options.hooks?.emStrongMask?.call({lexer:this},n)??n;let i=!1,o=\"\",u=1/0;for(;e;){if(e.length<u)u=e.length;else{this.infiniteLoopError(e.charCodeAt(0));break}i||(o=\"\"),i=!1;let a;if(this.options.extensions?.inline?.some(p=>(a=p.call({lexer:this},e,t))?(e=e.substring(a.raw.length),t.push(a),!0):!1))continue;if(a=this.tokenizer.escape(e)){e=e.substring(a.raw.length),t.push(a);continue}if(a=this.tokenizer.tag(e)){e=e.substring(a.raw.length),t.push(a);continue}if(a=this.tokenizer.link(e)){e=e.substring(a.raw.length),t.push(a);continue}if(a=this.tokenizer.reflink(e,this.tokens.links)){e=e.substring(a.raw.length);let p=t.at(-1);a.type===\"text\"&&p?.type===\"text\"?(p.raw+=a.raw,p.text+=a.text):t.push(a);continue}if(a=this.tokenizer.emStrong(e,n,o)){e=e.substring(a.raw.length),t.push(a);continue}if(a=this.tokenizer.codespan(e)){e=e.substring(a.raw.length),t.push(a);continue}if(a=this.tokenizer.br(e)){e=e.substring(a.raw.length),t.push(a);continue}if(a=this.tokenizer.del(e,n,o)){e=e.substring(a.raw.length),t.push(a);continue}if(a=this.tokenizer.autolink(e)){e=e.substring(a.raw.length),t.push(a);continue}if(!this.state.inLink&&(a=this.tokenizer.url(e))){e=e.substring(a.raw.length),t.push(a);continue}let c=e;if(this.options.extensions?.startInline){let p=1/0,k=e.slice(1),h;this.options.extensions.startInline.forEach(R=>{h=R.call({lexer:this},k),typeof h==\"number\"&&h>=0&&(p=Math.min(p,h))}),p<1/0&&p>=0&&(c=e.substring(0,p+1))}if(a=this.tokenizer.inlineText(c)){e=e.substring(a.raw.length),a.raw.slice(-1)!==\"_\"&&(o=a.raw.slice(-1)),i=!0;let p=t.at(-1);p?.type===\"text\"?(p.raw+=a.raw,p.text+=a.text):t.push(a);continue}if(e){this.infiniteLoopError(e.charCodeAt(0));break}}return t}infiniteLoopError(e){let t=\"Infinite loop on byte: \"+e;if(this.options.silent)console.error(t);else throw new Error(t)}};var y=class{options;parser;constructor(e){this.options=e||T}space(e){return\"\"}code({text:e,lang:t,escaped:n}){let s=(t||\"\").match(m.notSpaceStart)?.[0],r=e.replace(m.endingNewline,\"\")+`\n`;return s?'<pre><code class=\"language-'+O(s)+'\">'+(n?r:O(r,!0))+`</code></pre>\n`:\"<pre><code>\"+(n?r:O(r,!0))+`</code></pre>\n`}blockquote({tokens:e}){return`<blockquote>\n${this.parser.parse(e)}</blockquote>\n`}html({text:e}){return e}def(e){return\"\"}heading({tokens:e,depth:t}){return`<h${t}>${this.parser.parseInline(e)}</h${t}>\n`}hr(e){return`<hr>\n`}list(e){let t=e.ordered,n=e.start,s=\"\";for(let o=0;o<e.items.length;o++){let u=e.items[o];s+=this.listitem(u)}let r=t?\"ol\":\"ul\",i=t&&n!==1?' start=\"'+n+'\"':\"\";return\"<\"+r+i+`>\n`+s+\"</\"+r+`>\n`}listitem(e){return`<li>${this.parser.parse(e.tokens)}</li>\n`}checkbox({checked:e}){return\"<input \"+(e?'checked=\"\" ':\"\")+'disabled=\"\" type=\"checkbox\"> '}paragraph({tokens:e}){return`<p>${this.parser.parseInline(e)}</p>\n`}table(e){let t=\"\",n=\"\";for(let r=0;r<e.header.length;r++)n+=this.tablecell(e.header[r]);t+=this.tablerow({text:n});let s=\"\";for(let r=0;r<e.rows.length;r++){let i=e.rows[r];n=\"\";for(let o=0;o<i.length;o++)n+=this.tablecell(i[o]);s+=this.tablerow({text:n})}return s&&(s=`<tbody>${s}</tbody>`),`<table>\n<thead>\n`+t+`</thead>\n`+s+`</table>\n`}tablerow({text:e}){return`<tr>\n${e}</tr>\n`}tablecell(e){let t=this.parser.parseInline(e.tokens),n=e.header?\"th\":\"td\";return(e.align?`<${n} align=\"${e.align}\">`:`<${n}>`)+t+`</${n}>\n`}strong({tokens:e}){return`<strong>${this.parser.parseInline(e)}</strong>`}em({tokens:e}){return`<em>${this.parser.parseInline(e)}</em>`}codespan({text:e}){return`<code>${O(e,!0)}</code>`}br(e){return\"<br>\"}del({tokens:e}){return`<del>${this.parser.parseInline(e)}</del>`}link({href:e,title:t,tokens:n}){let s=this.parser.parseInline(n),r=V(e);if(r===null)return s;e=r;let i='<a href=\"'+e+'\"';return t&&(i+=' title=\"'+O(t)+'\"'),i+=\">\"+s+\"</a>\",i}image({href:e,title:t,text:n,tokens:s}){s&&(n=this.parser.parseInline(s,this.parser.textRenderer));let r=V(e);if(r===null)return O(n);e=r;let i=`<img src=\"${e}\" alt=\"${O(n)}\"`;return t&&(i+=` title=\"${O(t)}\"`),i+=\">\",i}text(e){return\"tokens\"in e&&e.tokens?this.parser.parseInline(e.tokens):\"escaped\"in e&&e.escaped?e.text:O(e.text)}};var L=class{strong({text:e}){return e}em({text:e}){return e}codespan({text:e}){return e}del({text:e}){return e}html({text:e}){return e}text({text:e}){return e}link({text:e}){return\"\"+e}image({text:e}){return\"\"+e}br(){return\"\"}checkbox({raw:e}){return e}};var b=class l{options;renderer;textRenderer;constructor(e){this.options=e||T,this.options.renderer=this.options.renderer||new y,this.renderer=this.options.renderer,this.renderer.options=this.options,this.renderer.parser=this,this.textRenderer=new L}static parse(e,t){return new l(t).parse(e)}static parseInline(e,t){return new l(t).parseInline(e)}parse(e){this.renderer.parser=this;let t=\"\";for(let n=0;n<e.length;n++){let s=e[n];if(this.options.extensions?.renderers?.[s.type]){let i=s,o=this.options.extensions.renderers[i.type].call({parser:this},i);if(o!==!1||![\"space\",\"hr\",\"heading\",\"code\",\"table\",\"blockquote\",\"list\",\"html\",\"def\",\"paragraph\",\"text\"].includes(i.type)){t+=o||\"\";continue}}let r=s;switch(r.type){case\"space\":{t+=this.renderer.space(r);break}case\"hr\":{t+=this.renderer.hr(r);break}case\"heading\":{t+=this.renderer.heading(r);break}case\"code\":{t+=this.renderer.code(r);break}case\"table\":{t+=this.renderer.table(r);break}case\"blockquote\":{t+=this.renderer.blockquote(r);break}case\"list\":{t+=this.renderer.list(r);break}case\"checkbox\":{t+=this.renderer.checkbox(r);break}case\"html\":{t+=this.renderer.html(r);break}case\"def\":{t+=this.renderer.def(r);break}case\"paragraph\":{t+=this.renderer.paragraph(r);break}case\"text\":{t+=this.renderer.text(r);break}default:{let i='Token with \"'+r.type+'\" type was not found.';if(this.options.silent)return console.error(i),\"\";throw new Error(i)}}}return t}parseInline(e,t=this.renderer){this.renderer.parser=this;let n=\"\";for(let s=0;s<e.length;s++){let r=e[s];if(this.options.extensions?.renderers?.[r.type]){let o=this.options.extensions.renderers[r.type].call({parser:this},r);if(o!==!1||![\"escape\",\"html\",\"link\",\"image\",\"strong\",\"em\",\"codespan\",\"br\",\"del\",\"text\"].includes(r.type)){n+=o||\"\";continue}}let i=r;switch(i.type){case\"escape\":{n+=t.text(i);break}case\"html\":{n+=t.html(i);break}case\"link\":{n+=t.link(i);break}case\"image\":{n+=t.image(i);break}case\"checkbox\":{n+=t.checkbox(i);break}case\"strong\":{n+=t.strong(i);break}case\"em\":{n+=t.em(i);break}case\"codespan\":{n+=t.codespan(i);break}case\"br\":{n+=t.br(i);break}case\"del\":{n+=t.del(i);break}case\"text\":{n+=t.text(i);break}default:{let o='Token with \"'+i.type+'\" type was not found.';if(this.options.silent)return console.error(o),\"\";throw new Error(o)}}}return n}};var P=class{options;block;constructor(e){this.options=e||T}static passThroughHooks=new Set([\"preprocess\",\"postprocess\",\"processAllTokens\",\"emStrongMask\"]);static passThroughHooksRespectAsync=new Set([\"preprocess\",\"postprocess\",\"processAllTokens\"]);preprocess(e){return e}postprocess(e){return e}processAllTokens(e){return e}emStrongMask(e){return e}provideLexer(e=this.block){return e?x.lex:x.lexInline}provideParser(e=this.block){return e?b.parse:b.parseInline}};var q=class{defaults=M();options=this.setOptions;parse=this.parseMarkdown(!0);parseInline=this.parseMarkdown(!1);Parser=b;Renderer=y;TextRenderer=L;Lexer=x;Tokenizer=w;Hooks=P;constructor(...e){this.use(...e)}walkTokens(e,t){let n=[];for(let s of e)switch(n=n.concat(t.call(this,s)),s.type){case\"table\":{let r=s;for(let i of r.header)n=n.concat(this.walkTokens(i.tokens,t));for(let i of r.rows)for(let o of i)n=n.concat(this.walkTokens(o.tokens,t));break}case\"list\":{let r=s;n=n.concat(this.walkTokens(r.items,t));break}default:{let r=s;this.defaults.extensions?.childTokens?.[r.type]?this.defaults.extensions.childTokens[r.type].forEach(i=>{let o=r[i].flat(1/0);n=n.concat(this.walkTokens(o,t))}):r.tokens&&(n=n.concat(this.walkTokens(r.tokens,t)))}}return n}use(...e){let t=this.defaults.extensions||{renderers:{},childTokens:{}};return e.forEach(n=>{let s={...n};if(s.async=this.defaults.async||s.async||!1,n.extensions&&(n.extensions.forEach(r=>{if(!r.name)throw new Error(\"extension name required\");if(\"renderer\"in r){let i=t.renderers[r.name];i?t.renderers[r.name]=function(...o){let u=r.renderer.apply(this,o);return u===!1&&(u=i.apply(this,o)),u}:t.renderers[r.name]=r.renderer}if(\"tokenizer\"in r){if(!r.level||r.level!==\"block\"&&r.level!==\"inline\")throw new Error(\"extension level must be 'block' or 'inline'\");let i=t[r.level];i?i.unshift(r.tokenizer):t[r.level]=[r.tokenizer],r.start&&(r.level===\"block\"?t.startBlock?t.startBlock.push(r.start):t.startBlock=[r.start]:r.level===\"inline\"&&(t.startInline?t.startInline.push(r.start):t.startInline=[r.start]))}\"childTokens\"in r&&r.childTokens&&(t.childTokens[r.name]=r.childTokens)}),s.extensions=t),n.renderer){let r=this.defaults.renderer||new y(this.defaults);for(let i in n.renderer){if(!(i in r))throw new Error(`renderer '${i}' does not exist`);if([\"options\",\"parser\"].includes(i))continue;let o=i,u=n.renderer[o],a=r[o];r[o]=(...c)=>{let p=u.apply(r,c);return p===!1&&(p=a.apply(r,c)),p||\"\"}}s.renderer=r}if(n.tokenizer){let r=this.defaults.tokenizer||new w(this.defaults);for(let i in n.tokenizer){if(!(i in r))throw new Error(`tokenizer '${i}' does not exist`);if([\"options\",\"rules\",\"lexer\"].includes(i))continue;let o=i,u=n.tokenizer[o],a=r[o];r[o]=(...c)=>{let p=u.apply(r,c);return p===!1&&(p=a.apply(r,c)),p}}s.tokenizer=r}if(n.hooks){let r=this.defaults.hooks||new P;for(let i in n.hooks){if(!(i in r))throw new Error(`hook '${i}' does not exist`);if([\"options\",\"block\"].includes(i))continue;let o=i,u=n.hooks[o],a=r[o];P.passThroughHooks.has(i)?r[o]=c=>{if(this.defaults.async&&P.passThroughHooksRespectAsync.has(i))return(async()=>{let k=await u.call(r,c);return a.call(r,k)})();let p=u.call(r,c);return a.call(r,p)}:r[o]=(...c)=>{if(this.defaults.async)return(async()=>{let k=await u.apply(r,c);return k===!1&&(k=await a.apply(r,c)),k})();let p=u.apply(r,c);return p===!1&&(p=a.apply(r,c)),p}}s.hooks=r}if(n.walkTokens){let r=this.defaults.walkTokens,i=n.walkTokens;s.walkTokens=function(o){let u=[];return u.push(i.call(this,o)),r&&(u=u.concat(r.call(this,o))),u}}this.defaults={...this.defaults,...s}}),this}setOptions(e){return this.defaults={...this.defaults,...e},this}lexer(e,t){return x.lex(e,t??this.defaults)}parser(e,t){return b.parse(e,t??this.defaults)}parseMarkdown(e){return(n,s)=>{let r={...s},i={...this.defaults,...r},o=this.onError(!!i.silent,!!i.async);if(this.defaults.async===!0&&r.async===!1)return o(new Error(\"marked(): The async option was set to true by an extension. Remove async: false from the parse options object to return a Promise.\"));if(typeof n>\"u\"||n===null)return o(new Error(\"marked(): input parameter is undefined or null\"));if(typeof n!=\"string\")return o(new Error(\"marked(): input parameter is of type \"+Object.prototype.toString.call(n)+\", string expected\"));if(i.hooks&&(i.hooks.options=i,i.hooks.block=e),i.async)return(async()=>{let u=i.hooks?await i.hooks.preprocess(n):n,c=await(i.hooks?await i.hooks.provideLexer(e):e?x.lex:x.lexInline)(u,i),p=i.hooks?await i.hooks.processAllTokens(c):c;i.walkTokens&&await Promise.all(this.walkTokens(p,i.walkTokens));let h=await(i.hooks?await i.hooks.provideParser(e):e?b.parse:b.parseInline)(p,i);return i.hooks?await i.hooks.postprocess(h):h})().catch(o);try{i.hooks&&(n=i.hooks.preprocess(n));let a=(i.hooks?i.hooks.provideLexer(e):e?x.lex:x.lexInline)(n,i);i.hooks&&(a=i.hooks.processAllTokens(a)),i.walkTokens&&this.walkTokens(a,i.walkTokens);let p=(i.hooks?i.hooks.provideParser(e):e?b.parse:b.parseInline)(a,i);return i.hooks&&(p=i.hooks.postprocess(p)),p}catch(u){return o(u)}}}onError(e,t){return n=>{if(n.message+=`\nPlease report this to https://github.com/markedjs/marked.`,e){let s=\"<p>An error occurred:</p><pre>\"+O(n.message+\"\",!0)+\"</pre>\";return t?Promise.resolve(s):s}if(t)return Promise.reject(n);throw n}}};var z=new q;function g(l,e){return z.parse(l,e)}g.options=g.setOptions=function(l){return z.setOptions(l),g.defaults=z.defaults,N(g.defaults),g};g.getDefaults=M;g.defaults=T;g.use=function(...l){return z.use(...l),g.defaults=z.defaults,N(g.defaults),g};g.walkTokens=function(l,e){return z.walkTokens(l,e)};g.parseInline=z.parseInline;g.Parser=b;g.parser=b.parse;g.Renderer=y;g.TextRenderer=L;g.Lexer=x;g.lexer=x.lex;g.Tokenizer=w;g.Hooks=P;g.parse=g;var Ft=g.options,Ut=g.setOptions,Kt=g.use,Wt=g.walkTokens,Xt=g.parseInline,Jt=g,Vt=b.parse,Yt=x.lex;export{P as Hooks,x as Lexer,q as Marked,b as Parser,y as Renderer,L as TextRenderer,w as Tokenizer,T as defaults,M as getDefaults,Yt as lexer,g as marked,Ft as options,Jt as parse,Xt as parseInline,Vt as parser,Ut as setOptions,Kt as use,Wt as walkTokens};\n//# sourceMappingURL=marked.esm.js.map\n","/*! @license DOMPurify 3.4.8 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.4.8/LICENSE */\n\nfunction _arrayLikeToArray(r, a) {\n (null == a || a > r.length) && (a = r.length);\n for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n return n;\n}\nfunction _arrayWithHoles(r) {\n if (Array.isArray(r)) return r;\n}\nfunction _iterableToArrayLimit(r, l) {\n var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (null != t) {\n var e,\n n,\n i,\n u,\n a = [],\n f = true,\n o = false;\n try {\n if (i = (t = t.call(r)).next, 0 === l) ; else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);\n } catch (r) {\n o = true, n = r;\n } finally {\n try {\n if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return;\n } finally {\n if (o) throw n;\n }\n }\n return a;\n }\n}\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nfunction _slicedToArray(r, e) {\n return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest();\n}\nfunction _unsupportedIterableToArray(r, a) {\n if (r) {\n if (\"string\" == typeof r) return _arrayLikeToArray(r, a);\n var t = {}.toString.call(r).slice(8, -1);\n return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0;\n }\n}\n\nconst entries = Object.entries,\n setPrototypeOf = Object.setPrototypeOf,\n isFrozen = Object.isFrozen,\n getPrototypeOf = Object.getPrototypeOf,\n getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nlet freeze = Object.freeze,\n seal = Object.seal,\n create = Object.create; // eslint-disable-line import/no-mutable-exports\nlet _ref = typeof Reflect !== 'undefined' && Reflect,\n apply = _ref.apply,\n construct = _ref.construct;\nif (!freeze) {\n freeze = function freeze(x) {\n return x;\n };\n}\nif (!seal) {\n seal = function seal(x) {\n return x;\n };\n}\nif (!apply) {\n apply = function apply(func, thisArg) {\n for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n args[_key - 2] = arguments[_key];\n }\n return func.apply(thisArg, args);\n };\n}\nif (!construct) {\n construct = function construct(Func) {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n return new Func(...args);\n };\n}\nconst arrayForEach = unapply(Array.prototype.forEach);\nconst arrayLastIndexOf = unapply(Array.prototype.lastIndexOf);\nconst arrayPop = unapply(Array.prototype.pop);\nconst arrayPush = unapply(Array.prototype.push);\nconst arraySplice = unapply(Array.prototype.splice);\nconst arrayIsArray = Array.isArray;\nconst stringToLowerCase = unapply(String.prototype.toLowerCase);\nconst stringToString = unapply(String.prototype.toString);\nconst stringMatch = unapply(String.prototype.match);\nconst stringReplace = unapply(String.prototype.replace);\nconst stringIndexOf = unapply(String.prototype.indexOf);\nconst stringTrim = unapply(String.prototype.trim);\nconst numberToString = unapply(Number.prototype.toString);\nconst booleanToString = unapply(Boolean.prototype.toString);\nconst bigintToString = typeof BigInt === 'undefined' ? null : unapply(BigInt.prototype.toString);\nconst symbolToString = typeof Symbol === 'undefined' ? null : unapply(Symbol.prototype.toString);\nconst objectHasOwnProperty = unapply(Object.prototype.hasOwnProperty);\nconst objectToString = unapply(Object.prototype.toString);\nconst regExpTest = unapply(RegExp.prototype.test);\nconst typeErrorCreate = unconstruct(TypeError);\n/**\n * Creates a new function that calls the given function with a specified thisArg and arguments.\n *\n * @param func - The function to be wrapped and called.\n * @returns A new function that calls the given function with a specified thisArg and arguments.\n */\nfunction unapply(func) {\n return function (thisArg) {\n if (thisArg instanceof RegExp) {\n thisArg.lastIndex = 0;\n }\n for (var _len3 = arguments.length, args = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {\n args[_key3 - 1] = arguments[_key3];\n }\n return apply(func, thisArg, args);\n };\n}\n/**\n * Creates a new function that constructs an instance of the given constructor function with the provided arguments.\n *\n * @param func - The constructor function to be wrapped and called.\n * @returns A new function that constructs an instance of the given constructor function with the provided arguments.\n */\nfunction unconstruct(Func) {\n return function () {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n return construct(Func, args);\n };\n}\n/**\n * Add properties to a lookup table\n *\n * @param set - The set to which elements will be added.\n * @param array - The array containing elements to be added to the set.\n * @param transformCaseFunc - An optional function to transform the case of each element before adding to the set.\n * @returns The modified set with added elements.\n */\nfunction addToSet(set, array) {\n let transformCaseFunc = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : stringToLowerCase;\n if (setPrototypeOf) {\n // Make 'in' and truthy checks like Boolean(set.constructor)\n // independent of any properties defined on Object.prototype.\n // Prevent prototype setters from intercepting set as a this value.\n setPrototypeOf(set, null);\n }\n if (!arrayIsArray(array)) {\n return set;\n }\n let l = array.length;\n while (l--) {\n let element = array[l];\n if (typeof element === 'string') {\n const lcElement = transformCaseFunc(element);\n if (lcElement !== element) {\n // Config presets (e.g. tags.js, attrs.js) are immutable.\n if (!isFrozen(array)) {\n array[l] = lcElement;\n }\n element = lcElement;\n }\n }\n set[element] = true;\n }\n return set;\n}\n/**\n * Clean up an array to harden against CSPP\n *\n * @param array - The array to be cleaned.\n * @returns The cleaned version of the array\n */\nfunction cleanArray(array) {\n for (let index = 0; index < array.length; index++) {\n const isPropertyExist = objectHasOwnProperty(array, index);\n if (!isPropertyExist) {\n array[index] = null;\n }\n }\n return array;\n}\n/**\n * Shallow clone an object\n *\n * @param object - The object to be cloned.\n * @returns A new object that copies the original.\n */\nfunction clone(object) {\n const newObject = create(null);\n for (const _ref2 of entries(object)) {\n var _ref3 = _slicedToArray(_ref2, 2);\n const property = _ref3[0];\n const value = _ref3[1];\n const isPropertyExist = objectHasOwnProperty(object, property);\n if (isPropertyExist) {\n if (arrayIsArray(value)) {\n newObject[property] = cleanArray(value);\n } else if (value && typeof value === 'object' && value.constructor === Object) {\n newObject[property] = clone(value);\n } else {\n newObject[property] = value;\n }\n }\n }\n return newObject;\n}\n/**\n * Convert non-node values into strings without depending on direct property access.\n *\n * @param value - The value to stringify.\n * @returns A string representation of the provided value.\n */\nfunction stringifyValue(value) {\n switch (typeof value) {\n case 'string':\n {\n return value;\n }\n case 'number':\n {\n return numberToString(value);\n }\n case 'boolean':\n {\n return booleanToString(value);\n }\n case 'bigint':\n {\n return bigintToString ? bigintToString(value) : '0';\n }\n case 'symbol':\n {\n return symbolToString ? symbolToString(value) : 'Symbol()';\n }\n case 'undefined':\n {\n return objectToString(value);\n }\n case 'function':\n case 'object':\n {\n if (value === null) {\n return objectToString(value);\n }\n const valueAsRecord = value;\n const valueToString = lookupGetter(valueAsRecord, 'toString');\n if (typeof valueToString === 'function') {\n const stringified = valueToString(valueAsRecord);\n return typeof stringified === 'string' ? stringified : objectToString(stringified);\n }\n return objectToString(value);\n }\n default:\n {\n return objectToString(value);\n }\n }\n}\n/**\n * This method automatically checks if the prop is function or getter and behaves accordingly.\n *\n * @param object - The object to look up the getter function in its prototype chain.\n * @param prop - The property name for which to find the getter function.\n * @returns The getter function found in the prototype chain or a fallback function.\n */\nfunction lookupGetter(object, prop) {\n while (object !== null) {\n const desc = getOwnPropertyDescriptor(object, prop);\n if (desc) {\n if (desc.get) {\n return unapply(desc.get);\n }\n if (typeof desc.value === 'function') {\n return unapply(desc.value);\n }\n }\n object = getPrototypeOf(object);\n }\n function fallbackValue() {\n return null;\n }\n return fallbackValue;\n}\nfunction isRegex(value) {\n try {\n regExpTest(value, '');\n return true;\n } catch (_unused) {\n return false;\n }\n}\n\nconst html$1 = freeze(['a', 'abbr', 'acronym', 'address', 'area', 'article', 'aside', 'audio', 'b', 'bdi', 'bdo', 'big', 'blink', 'blockquote', 'body', 'br', 'button', 'canvas', 'caption', 'center', 'cite', 'code', 'col', 'colgroup', 'content', 'data', 'datalist', 'dd', 'decorator', 'del', 'details', 'dfn', 'dialog', 'dir', 'div', 'dl', 'dt', 'element', 'em', 'fieldset', 'figcaption', 'figure', 'font', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'i', 'img', 'input', 'ins', 'kbd', 'label', 'legend', 'li', 'main', 'map', 'mark', 'marquee', 'menu', 'menuitem', 'meter', 'nav', 'nobr', 'ol', 'optgroup', 'option', 'output', 'p', 'picture', 'pre', 'progress', 'q', 'rp', 'rt', 'ruby', 's', 'samp', 'search', 'section', 'select', 'shadow', 'slot', 'small', 'source', 'spacer', 'span', 'strike', 'strong', 'style', 'sub', 'summary', 'sup', 'table', 'tbody', 'td', 'template', 'textarea', 'tfoot', 'th', 'thead', 'time', 'tr', 'track', 'tt', 'u', 'ul', 'var', 'video', 'wbr']);\nconst svg$1 = freeze(['svg', 'a', 'altglyph', 'altglyphdef', 'altglyphitem', 'animatecolor', 'animatemotion', 'animatetransform', 'circle', 'clippath', 'defs', 'desc', 'ellipse', 'enterkeyhint', 'exportparts', 'filter', 'font', 'g', 'glyph', 'glyphref', 'hkern', 'image', 'inputmode', 'line', 'lineargradient', 'marker', 'mask', 'metadata', 'mpath', 'part', 'path', 'pattern', 'polygon', 'polyline', 'radialgradient', 'rect', 'stop', 'style', 'switch', 'symbol', 'text', 'textpath', 'title', 'tref', 'tspan', 'view', 'vkern']);\nconst svgFilters = freeze(['feBlend', 'feColorMatrix', 'feComponentTransfer', 'feComposite', 'feConvolveMatrix', 'feDiffuseLighting', 'feDisplacementMap', 'feDistantLight', 'feDropShadow', 'feFlood', 'feFuncA', 'feFuncB', 'feFuncG', 'feFuncR', 'feGaussianBlur', 'feImage', 'feMerge', 'feMergeNode', 'feMorphology', 'feOffset', 'fePointLight', 'feSpecularLighting', 'feSpotLight', 'feTile', 'feTurbulence']);\n// List of SVG elements that are disallowed by default.\n// We still need to know them so that we can do namespace\n// checks properly in case one wants to add them to\n// allow-list.\nconst svgDisallowed = freeze(['animate', 'color-profile', 'cursor', 'discard', 'font-face', 'font-face-format', 'font-face-name', 'font-face-src', 'font-face-uri', 'foreignobject', 'hatch', 'hatchpath', 'mesh', 'meshgradient', 'meshpatch', 'meshrow', 'missing-glyph', 'script', 'set', 'solidcolor', 'unknown', 'use']);\nconst mathMl$1 = freeze(['math', 'menclose', 'merror', 'mfenced', 'mfrac', 'mglyph', 'mi', 'mlabeledtr', 'mmultiscripts', 'mn', 'mo', 'mover', 'mpadded', 'mphantom', 'mroot', 'mrow', 'ms', 'mspace', 'msqrt', 'mstyle', 'msub', 'msup', 'msubsup', 'mtable', 'mtd', 'mtext', 'mtr', 'munder', 'munderover', 'mprescripts']);\n// Similarly to SVG, we want to know all MathML elements,\n// even those that we disallow by default.\nconst mathMlDisallowed = freeze(['maction', 'maligngroup', 'malignmark', 'mlongdiv', 'mscarries', 'mscarry', 'msgroup', 'mstack', 'msline', 'msrow', 'semantics', 'annotation', 'annotation-xml', 'mprescripts', 'none']);\nconst text = freeze(['#text']);\n\nconst html = freeze(['accept', 'action', 'align', 'alt', 'autocapitalize', 'autocomplete', 'autopictureinpicture', 'autoplay', 'background', 'bgcolor', 'border', 'capture', 'cellpadding', 'cellspacing', 'checked', 'cite', 'class', 'clear', 'color', 'cols', 'colspan', 'command', 'commandfor', 'controls', 'controlslist', 'coords', 'crossorigin', 'datetime', 'decoding', 'default', 'dir', 'disabled', 'disablepictureinpicture', 'disableremoteplayback', 'download', 'draggable', 'enctype', 'enterkeyhint', 'exportparts', 'face', 'for', 'headers', 'height', 'hidden', 'high', 'href', 'hreflang', 'id', 'inert', 'inputmode', 'integrity', 'ismap', 'kind', 'label', 'lang', 'list', 'loading', 'loop', 'low', 'max', 'maxlength', 'media', 'method', 'min', 'minlength', 'multiple', 'muted', 'name', 'nonce', 'noshade', 'novalidate', 'nowrap', 'open', 'optimum', 'part', 'pattern', 'placeholder', 'playsinline', 'popover', 'popovertarget', 'popovertargetaction', 'poster', 'preload', 'pubdate', 'radiogroup', 'readonly', 'rel', 'required', 'rev', 'reversed', 'role', 'rows', 'rowspan', 'spellcheck', 'scope', 'selected', 'shape', 'size', 'sizes', 'slot', 'span', 'srclang', 'start', 'src', 'srcset', 'step', 'style', 'summary', 'tabindex', 'title', 'translate', 'type', 'usemap', 'valign', 'value', 'width', 'wrap', 'xmlns']);\nconst svg = freeze(['accent-height', 'accumulate', 'additive', 'alignment-baseline', 'amplitude', 'ascent', 'attributename', 'attributetype', 'azimuth', 'basefrequency', 'baseline-shift', 'begin', 'bias', 'by', 'class', 'clip', 'clippathunits', 'clip-path', 'clip-rule', 'color', 'color-interpolation', 'color-interpolation-filters', 'color-profile', 'color-rendering', 'cx', 'cy', 'd', 'dx', 'dy', 'diffuseconstant', 'direction', 'display', 'divisor', 'dur', 'edgemode', 'elevation', 'end', 'exponent', 'fill', 'fill-opacity', 'fill-rule', 'filter', 'filterunits', 'flood-color', 'flood-opacity', 'font-family', 'font-size', 'font-size-adjust', 'font-stretch', 'font-style', 'font-variant', 'font-weight', 'fx', 'fy', 'g1', 'g2', 'glyph-name', 'glyphref', 'gradientunits', 'gradienttransform', 'height', 'href', 'id', 'image-rendering', 'in', 'in2', 'intercept', 'k', 'k1', 'k2', 'k3', 'k4', 'kerning', 'keypoints', 'keysplines', 'keytimes', 'lang', 'lengthadjust', 'letter-spacing', 'kernelmatrix', 'kernelunitlength', 'lighting-color', 'local', 'marker-end', 'marker-mid', 'marker-start', 'markerheight', 'markerunits', 'markerwidth', 'maskcontentunits', 'maskunits', 'max', 'mask', 'mask-type', 'media', 'method', 'mode', 'min', 'name', 'numoctaves', 'offset', 'operator', 'opacity', 'order', 'orient', 'orientation', 'origin', 'overflow', 'paint-order', 'path', 'pathlength', 'patterncontentunits', 'patterntransform', 'patternunits', 'points', 'preservealpha', 'preserveaspectratio', 'primitiveunits', 'r', 'rx', 'ry', 'radius', 'refx', 'refy', 'repeatcount', 'repeatdur', 'restart', 'result', 'rotate', 'scale', 'seed', 'shape-rendering', 'slope', 'specularconstant', 'specularexponent', 'spreadmethod', 'startoffset', 'stddeviation', 'stitchtiles', 'stop-color', 'stop-opacity', 'stroke-dasharray', 'stroke-dashoffset', 'stroke-linecap', 'stroke-linejoin', 'stroke-miterlimit', 'stroke-opacity', 'stroke', 'stroke-width', 'style', 'surfacescale', 'systemlanguage', 'tabindex', 'tablevalues', 'targetx', 'targety', 'transform', 'transform-origin', 'text-anchor', 'text-decoration', 'text-rendering', 'textlength', 'type', 'u1', 'u2', 'unicode', 'values', 'viewbox', 'visibility', 'version', 'vert-adv-y', 'vert-origin-x', 'vert-origin-y', 'width', 'word-spacing', 'wrap', 'writing-mode', 'xchannelselector', 'ychannelselector', 'x', 'x1', 'x2', 'xmlns', 'y', 'y1', 'y2', 'z', 'zoomandpan']);\nconst mathMl = freeze(['accent', 'accentunder', 'align', 'bevelled', 'close', 'columnalign', 'columnlines', 'columnspacing', 'columnspan', 'denomalign', 'depth', 'dir', 'display', 'displaystyle', 'encoding', 'fence', 'frame', 'height', 'href', 'id', 'largeop', 'length', 'linethickness', 'lquote', 'lspace', 'mathbackground', 'mathcolor', 'mathsize', 'mathvariant', 'maxsize', 'minsize', 'movablelimits', 'notation', 'numalign', 'open', 'rowalign', 'rowlines', 'rowspacing', 'rowspan', 'rspace', 'rquote', 'scriptlevel', 'scriptminsize', 'scriptsizemultiplier', 'selection', 'separator', 'separators', 'stretchy', 'subscriptshift', 'supscriptshift', 'symmetric', 'voffset', 'width', 'xmlns']);\nconst xml = freeze(['xlink:href', 'xml:id', 'xlink:title', 'xml:space', 'xmlns:xlink']);\n\nconst MUSTACHE_EXPR = seal(/{{[\\w\\W]*|^[\\w\\W]*}}/g);\nconst ERB_EXPR = seal(/<%[\\w\\W]*|^[\\w\\W]*%>/g);\nconst TMPLIT_EXPR = seal(/\\${[\\w\\W]*/g);\nconst DATA_ATTR = seal(/^data-[\\-\\w.\\u00B7-\\uFFFF]+$/); // eslint-disable-line no-useless-escape\nconst ARIA_ATTR = seal(/^aria-[\\-\\w]+$/); // eslint-disable-line no-useless-escape\nconst IS_ALLOWED_URI = seal(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp|matrix):|[^a-z]|[a-z+.\\-]+(?:[^a-z+.\\-:]|$))/i // eslint-disable-line no-useless-escape\n);\nconst IS_SCRIPT_OR_DATA = seal(/^(?:\\w+script|data):/i);\nconst ATTR_WHITESPACE = seal(/[\\u0000-\\u0020\\u00A0\\u1680\\u180E\\u2000-\\u2029\\u205F\\u3000]/g // eslint-disable-line no-control-regex\n);\nconst DOCTYPE_NAME = seal(/^html$/i);\nconst CUSTOM_ELEMENT = seal(/^[a-z][.\\w]*(-[.\\w]+)+$/i);\n\n/* eslint-disable @typescript-eslint/indent */\n// https://developer.mozilla.org/en-US/docs/Web/API/Node/nodeType\nconst NODE_TYPE = {\n element: 1,\n attribute: 2,\n text: 3,\n cdataSection: 4,\n entityReference: 5,\n // Deprecated\n entityNode: 6,\n // Deprecated\n progressingInstruction: 7,\n comment: 8,\n document: 9,\n documentType: 10,\n documentFragment: 11,\n notation: 12 // Deprecated\n};\nconst getGlobal = function getGlobal() {\n return typeof window === 'undefined' ? null : window;\n};\n/**\n * Creates a no-op policy for internal use only.\n * Don't export this function outside this module!\n * @param trustedTypes The policy factory.\n * @param purifyHostElement The Script element used to load DOMPurify (to determine policy name suffix).\n * @return The policy created (or null, if Trusted Types\n * are not supported or creating the policy failed).\n */\nconst _createTrustedTypesPolicy = function _createTrustedTypesPolicy(trustedTypes, purifyHostElement) {\n if (typeof trustedTypes !== 'object' || typeof trustedTypes.createPolicy !== 'function') {\n return null;\n }\n // Allow the callers to control the unique policy name\n // by adding a data-tt-policy-suffix to the script element with the DOMPurify.\n // Policy creation with duplicate names throws in Trusted Types.\n let suffix = null;\n const ATTR_NAME = 'data-tt-policy-suffix';\n if (purifyHostElement && purifyHostElement.hasAttribute(ATTR_NAME)) {\n suffix = purifyHostElement.getAttribute(ATTR_NAME);\n }\n const policyName = 'dompurify' + (suffix ? '#' + suffix : '');\n try {\n return trustedTypes.createPolicy(policyName, {\n createHTML(html) {\n return html;\n },\n createScriptURL(scriptUrl) {\n return scriptUrl;\n }\n });\n } catch (_) {\n // Policy creation failed (most likely another DOMPurify script has\n // already run). Skip creating the policy, as this will only cause errors\n // if TT are enforced.\n console.warn('TrustedTypes policy ' + policyName + ' could not be created.');\n return null;\n }\n};\nconst _createHooksMap = function _createHooksMap() {\n return {\n afterSanitizeAttributes: [],\n afterSanitizeElements: [],\n afterSanitizeShadowDOM: [],\n beforeSanitizeAttributes: [],\n beforeSanitizeElements: [],\n beforeSanitizeShadowDOM: [],\n uponSanitizeAttribute: [],\n uponSanitizeElement: [],\n uponSanitizeShadowNode: []\n };\n};\nfunction createDOMPurify() {\n let window = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getGlobal();\n const DOMPurify = root => createDOMPurify(root);\n DOMPurify.version = '3.4.8';\n DOMPurify.removed = [];\n if (!window || !window.document || window.document.nodeType !== NODE_TYPE.document || !window.Element) {\n // Not running in a browser, provide a factory function\n // so that you can pass your own Window\n DOMPurify.isSupported = false;\n return DOMPurify;\n }\n let document = window.document;\n const originalDocument = document;\n const currentScript = originalDocument.currentScript;\n window.DocumentFragment;\n const HTMLTemplateElement = window.HTMLTemplateElement,\n Node = window.Node,\n Element = window.Element,\n NodeFilter = window.NodeFilter,\n _window$NamedNodeMap = window.NamedNodeMap;\n _window$NamedNodeMap === void 0 ? window.NamedNodeMap || window.MozNamedAttrMap : _window$NamedNodeMap;\n window.HTMLFormElement;\n const DOMParser = window.DOMParser,\n trustedTypes = window.trustedTypes;\n const ElementPrototype = Element.prototype;\n const cloneNode = lookupGetter(ElementPrototype, 'cloneNode');\n const remove = lookupGetter(ElementPrototype, 'remove');\n const getNextSibling = lookupGetter(ElementPrototype, 'nextSibling');\n const getChildNodes = lookupGetter(ElementPrototype, 'childNodes');\n const getParentNode = lookupGetter(ElementPrototype, 'parentNode');\n const getShadowRoot = lookupGetter(ElementPrototype, 'shadowRoot');\n const getAttributes = lookupGetter(ElementPrototype, 'attributes');\n const getNodeType = Node && Node.prototype ? lookupGetter(Node.prototype, 'nodeType') : null;\n const getNodeName = Node && Node.prototype ? lookupGetter(Node.prototype, 'nodeName') : null;\n // As per issue #47, the web-components registry is inherited by a\n // new document created via createHTMLDocument. As per the spec\n // (http://w3c.github.io/webcomponents/spec/custom/#creating-and-passing-registries)\n // a new empty registry is used when creating a template contents owner\n // document, so we use that as our parent document to ensure nothing\n // is inherited.\n if (typeof HTMLTemplateElement === 'function') {\n const template = document.createElement('template');\n if (template.content && template.content.ownerDocument) {\n document = template.content.ownerDocument;\n }\n }\n let trustedTypesPolicy;\n let emptyHTML = '';\n // Tracks whether we are already inside a call to the configured Trusted Types\n // policy's `createHTML`. If the supplied `TRUSTED_TYPES_POLICY.createHTML`\n // itself calls `DOMPurify.sanitize` (the cause of #1422), `sanitize` would\n // re-enter the policy and recurse until the stack overflows. We detect that\n // re-entry and throw a clear, actionable error instead.\n let IN_POLICY_CREATE_HTML = 0;\n const _createTrustedHTML = function _createTrustedHTML(html) {\n if (IN_POLICY_CREATE_HTML > 0) {\n throw typeErrorCreate('The configured TRUSTED_TYPES_POLICY.createHTML must not call ' + 'DOMPurify.sanitize, as that causes infinite recursion. Do not pass ' + 'a policy whose createHTML wraps DOMPurify as TRUSTED_TYPES_POLICY; ' + 'see the \"DOMPurify and Trusted Types\" section of the README.');\n }\n IN_POLICY_CREATE_HTML++;\n try {\n return trustedTypesPolicy.createHTML(html);\n } finally {\n IN_POLICY_CREATE_HTML--;\n }\n };\n const _document = document,\n implementation = _document.implementation,\n createNodeIterator = _document.createNodeIterator,\n createDocumentFragment = _document.createDocumentFragment,\n getElementsByTagName = _document.getElementsByTagName;\n const importNode = originalDocument.importNode;\n let hooks = _createHooksMap();\n /**\n * Expose whether this browser supports running the full DOMPurify.\n */\n DOMPurify.isSupported = typeof entries === 'function' && typeof getParentNode === 'function' && implementation && implementation.createHTMLDocument !== undefined;\n const MUSTACHE_EXPR$1 = MUSTACHE_EXPR,\n ERB_EXPR$1 = ERB_EXPR,\n TMPLIT_EXPR$1 = TMPLIT_EXPR,\n DATA_ATTR$1 = DATA_ATTR,\n ARIA_ATTR$1 = ARIA_ATTR,\n IS_SCRIPT_OR_DATA$1 = IS_SCRIPT_OR_DATA,\n ATTR_WHITESPACE$1 = ATTR_WHITESPACE,\n CUSTOM_ELEMENT$1 = CUSTOM_ELEMENT;\n let IS_ALLOWED_URI$1 = IS_ALLOWED_URI;\n /**\n * We consider the elements and attributes below to be safe. Ideally\n * don't add any new ones but feel free to remove unwanted ones.\n */\n /* allowed element names */\n let ALLOWED_TAGS = null;\n const DEFAULT_ALLOWED_TAGS = addToSet({}, [...html$1, ...svg$1, ...svgFilters, ...mathMl$1, ...text]);\n /* Allowed attribute names */\n let ALLOWED_ATTR = null;\n const DEFAULT_ALLOWED_ATTR = addToSet({}, [...html, ...svg, ...mathMl, ...xml]);\n /*\n * Configure how DOMPurify should handle custom elements and their attributes as well as customized built-in elements.\n * @property {RegExp|Function|null} tagNameCheck one of [null, regexPattern, predicate]. Default: `null` (disallow any custom elements)\n * @property {RegExp|Function|null} attributeNameCheck one of [null, regexPattern, predicate]. Default: `null` (disallow any attributes not on the allow list)\n * @property {boolean} allowCustomizedBuiltInElements allow custom elements derived from built-ins if they pass CUSTOM_ELEMENT_HANDLING.tagNameCheck. Default: `false`.\n */\n let CUSTOM_ELEMENT_HANDLING = Object.seal(create(null, {\n tagNameCheck: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: null\n },\n attributeNameCheck: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: null\n },\n allowCustomizedBuiltInElements: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: false\n }\n }));\n /* Explicitly forbidden tags (overrides ALLOWED_TAGS/ADD_TAGS) */\n let FORBID_TAGS = null;\n /* Explicitly forbidden attributes (overrides ALLOWED_ATTR/ADD_ATTR) */\n let FORBID_ATTR = null;\n /* Config object to store ADD_TAGS/ADD_ATTR functions (when used as functions) */\n const EXTRA_ELEMENT_HANDLING = Object.seal(create(null, {\n tagCheck: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: null\n },\n attributeCheck: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: null\n }\n }));\n /* Decide if ARIA attributes are okay */\n let ALLOW_ARIA_ATTR = true;\n /* Decide if custom data attributes are okay */\n let ALLOW_DATA_ATTR = true;\n /* Decide if unknown protocols are okay */\n let ALLOW_UNKNOWN_PROTOCOLS = false;\n /* Decide if self-closing tags in attributes are allowed.\n * Usually removed due to a mXSS issue in jQuery 3.0 */\n let ALLOW_SELF_CLOSE_IN_ATTR = true;\n /* Output should be safe for common template engines.\n * This means, DOMPurify removes data attributes, mustaches and ERB\n */\n let SAFE_FOR_TEMPLATES = false;\n /* Output should be safe even for XML used within HTML and alike.\n * This means, DOMPurify removes comments when containing risky content.\n */\n let SAFE_FOR_XML = true;\n /* Decide if document with <html>... should be returned */\n let WHOLE_DOCUMENT = false;\n /* Track whether config is already set on this instance of DOMPurify. */\n let SET_CONFIG = false;\n /* Decide if all elements (e.g. style, script) must be children of\n * document.body. By default, browsers might move them to document.head */\n let FORCE_BODY = false;\n /* Decide if a DOM `HTMLBodyElement` should be returned, instead of a html\n * string (or a TrustedHTML object if Trusted Types are supported).\n * If `WHOLE_DOCUMENT` is enabled a `HTMLHtmlElement` will be returned instead\n */\n let RETURN_DOM = false;\n /* Decide if a DOM `DocumentFragment` should be returned, instead of a html\n * string (or a TrustedHTML object if Trusted Types are supported) */\n let RETURN_DOM_FRAGMENT = false;\n /* Try to return a Trusted Type object instead of a string, return a string in\n * case Trusted Types are not supported */\n let RETURN_TRUSTED_TYPE = false;\n /* Output should be free from DOM clobbering attacks?\n * This sanitizes markups named with colliding, clobberable built-in DOM APIs.\n */\n let SANITIZE_DOM = true;\n /* Achieve full DOM Clobbering protection by isolating the namespace of named\n * properties and JS variables, mitigating attacks that abuse the HTML/DOM spec rules.\n *\n * HTML/DOM spec rules that enable DOM Clobbering:\n * - Named Access on Window (§7.3.3)\n * - DOM Tree Accessors (§3.1.5)\n * - Form Element Parent-Child Relations (§4.10.3)\n * - Iframe srcdoc / Nested WindowProxies (§4.8.5)\n * - HTMLCollection (§4.2.10.2)\n *\n * Namespace isolation is implemented by prefixing `id` and `name` attributes\n * with a constant string, i.e., `user-content-`\n */\n let SANITIZE_NAMED_PROPS = false;\n const SANITIZE_NAMED_PROPS_PREFIX = 'user-content-';\n /* Keep element content when removing element? */\n let KEEP_CONTENT = true;\n /* If a `Node` is passed to sanitize(), then performs sanitization in-place instead\n * of importing it into a new Document and returning a sanitized copy */\n let IN_PLACE = false;\n /* Allow usage of profiles like html, svg and mathMl */\n let USE_PROFILES = {};\n /* Tags to ignore content of when KEEP_CONTENT is true */\n let FORBID_CONTENTS = null;\n const DEFAULT_FORBID_CONTENTS = addToSet({}, ['annotation-xml', 'audio', 'colgroup', 'desc', 'foreignobject', 'head', 'iframe', 'math', 'mi', 'mn', 'mo', 'ms', 'mtext', 'noembed', 'noframes', 'noscript', 'plaintext', 'script', 'style', 'svg', 'template', 'thead', 'title', 'video', 'xmp']);\n /* Tags that are safe for data: URIs */\n let DATA_URI_TAGS = null;\n const DEFAULT_DATA_URI_TAGS = addToSet({}, ['audio', 'video', 'img', 'source', 'image', 'track']);\n /* Attributes safe for values like \"javascript:\" */\n let URI_SAFE_ATTRIBUTES = null;\n const DEFAULT_URI_SAFE_ATTRIBUTES = addToSet({}, ['alt', 'class', 'for', 'id', 'label', 'name', 'pattern', 'placeholder', 'role', 'summary', 'title', 'value', 'style', 'xmlns']);\n const MATHML_NAMESPACE = 'http://www.w3.org/1998/Math/MathML';\n const SVG_NAMESPACE = 'http://www.w3.org/2000/svg';\n const HTML_NAMESPACE = 'http://www.w3.org/1999/xhtml';\n /* Document namespace */\n let NAMESPACE = HTML_NAMESPACE;\n let IS_EMPTY_INPUT = false;\n /* Allowed XHTML+XML namespaces */\n let ALLOWED_NAMESPACES = null;\n const DEFAULT_ALLOWED_NAMESPACES = addToSet({}, [MATHML_NAMESPACE, SVG_NAMESPACE, HTML_NAMESPACE], stringToString);\n let MATHML_TEXT_INTEGRATION_POINTS = addToSet({}, ['mi', 'mo', 'mn', 'ms', 'mtext']);\n let HTML_INTEGRATION_POINTS = addToSet({}, ['annotation-xml']);\n // Certain elements are allowed in both SVG and HTML\n // namespace. We need to specify them explicitly\n // so that they don't get erroneously deleted from\n // HTML namespace.\n const COMMON_SVG_AND_HTML_ELEMENTS = addToSet({}, ['title', 'style', 'font', 'a', 'script']);\n /* Parsing of strict XHTML documents */\n let PARSER_MEDIA_TYPE = null;\n const SUPPORTED_PARSER_MEDIA_TYPES = ['application/xhtml+xml', 'text/html'];\n const DEFAULT_PARSER_MEDIA_TYPE = 'text/html';\n let transformCaseFunc = null;\n /* Keep a reference to config to pass to hooks */\n let CONFIG = null;\n /* Ideally, do not touch anything below this line */\n /* ______________________________________________ */\n const formElement = document.createElement('form');\n const isRegexOrFunction = function isRegexOrFunction(testValue) {\n return testValue instanceof RegExp || testValue instanceof Function;\n };\n /**\n * _parseConfig\n *\n * @param cfg optional config literal\n */\n // eslint-disable-next-line complexity\n const _parseConfig = function _parseConfig() {\n let cfg = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n if (CONFIG && CONFIG === cfg) {\n return;\n }\n /* Shield configuration object from tampering */\n if (!cfg || typeof cfg !== 'object') {\n cfg = {};\n }\n /* Shield configuration object from prototype pollution */\n cfg = clone(cfg);\n PARSER_MEDIA_TYPE =\n // eslint-disable-next-line unicorn/prefer-includes\n SUPPORTED_PARSER_MEDIA_TYPES.indexOf(cfg.PARSER_MEDIA_TYPE) === -1 ? DEFAULT_PARSER_MEDIA_TYPE : cfg.PARSER_MEDIA_TYPE;\n // HTML tags and attributes are not case-sensitive, converting to lowercase. Keeping XHTML as is.\n transformCaseFunc = PARSER_MEDIA_TYPE === 'application/xhtml+xml' ? stringToString : stringToLowerCase;\n /* Set configuration parameters */\n ALLOWED_TAGS = objectHasOwnProperty(cfg, 'ALLOWED_TAGS') && arrayIsArray(cfg.ALLOWED_TAGS) ? addToSet({}, cfg.ALLOWED_TAGS, transformCaseFunc) : DEFAULT_ALLOWED_TAGS;\n ALLOWED_ATTR = objectHasOwnProperty(cfg, 'ALLOWED_ATTR') && arrayIsArray(cfg.ALLOWED_ATTR) ? addToSet({}, cfg.ALLOWED_ATTR, transformCaseFunc) : DEFAULT_ALLOWED_ATTR;\n ALLOWED_NAMESPACES = objectHasOwnProperty(cfg, 'ALLOWED_NAMESPACES') && arrayIsArray(cfg.ALLOWED_NAMESPACES) ? addToSet({}, cfg.ALLOWED_NAMESPACES, stringToString) : DEFAULT_ALLOWED_NAMESPACES;\n URI_SAFE_ATTRIBUTES = objectHasOwnProperty(cfg, 'ADD_URI_SAFE_ATTR') && arrayIsArray(cfg.ADD_URI_SAFE_ATTR) ? addToSet(clone(DEFAULT_URI_SAFE_ATTRIBUTES), cfg.ADD_URI_SAFE_ATTR, transformCaseFunc) : DEFAULT_URI_SAFE_ATTRIBUTES;\n DATA_URI_TAGS = objectHasOwnProperty(cfg, 'ADD_DATA_URI_TAGS') && arrayIsArray(cfg.ADD_DATA_URI_TAGS) ? addToSet(clone(DEFAULT_DATA_URI_TAGS), cfg.ADD_DATA_URI_TAGS, transformCaseFunc) : DEFAULT_DATA_URI_TAGS;\n FORBID_CONTENTS = objectHasOwnProperty(cfg, 'FORBID_CONTENTS') && arrayIsArray(cfg.FORBID_CONTENTS) ? addToSet({}, cfg.FORBID_CONTENTS, transformCaseFunc) : DEFAULT_FORBID_CONTENTS;\n FORBID_TAGS = objectHasOwnProperty(cfg, 'FORBID_TAGS') && arrayIsArray(cfg.FORBID_TAGS) ? addToSet({}, cfg.FORBID_TAGS, transformCaseFunc) : clone({});\n FORBID_ATTR = objectHasOwnProperty(cfg, 'FORBID_ATTR') && arrayIsArray(cfg.FORBID_ATTR) ? addToSet({}, cfg.FORBID_ATTR, transformCaseFunc) : clone({});\n USE_PROFILES = objectHasOwnProperty(cfg, 'USE_PROFILES') ? cfg.USE_PROFILES && typeof cfg.USE_PROFILES === 'object' ? clone(cfg.USE_PROFILES) : cfg.USE_PROFILES : false;\n ALLOW_ARIA_ATTR = cfg.ALLOW_ARIA_ATTR !== false; // Default true\n ALLOW_DATA_ATTR = cfg.ALLOW_DATA_ATTR !== false; // Default true\n ALLOW_UNKNOWN_PROTOCOLS = cfg.ALLOW_UNKNOWN_PROTOCOLS || false; // Default false\n ALLOW_SELF_CLOSE_IN_ATTR = cfg.ALLOW_SELF_CLOSE_IN_ATTR !== false; // Default true\n SAFE_FOR_TEMPLATES = cfg.SAFE_FOR_TEMPLATES || false; // Default false\n SAFE_FOR_XML = cfg.SAFE_FOR_XML !== false; // Default true\n WHOLE_DOCUMENT = cfg.WHOLE_DOCUMENT || false; // Default false\n RETURN_DOM = cfg.RETURN_DOM || false; // Default false\n RETURN_DOM_FRAGMENT = cfg.RETURN_DOM_FRAGMENT || false; // Default false\n RETURN_TRUSTED_TYPE = cfg.RETURN_TRUSTED_TYPE || false; // Default false\n FORCE_BODY = cfg.FORCE_BODY || false; // Default false\n SANITIZE_DOM = cfg.SANITIZE_DOM !== false; // Default true\n SANITIZE_NAMED_PROPS = cfg.SANITIZE_NAMED_PROPS || false; // Default false\n KEEP_CONTENT = cfg.KEEP_CONTENT !== false; // Default true\n IN_PLACE = cfg.IN_PLACE || false; // Default false\n IS_ALLOWED_URI$1 = isRegex(cfg.ALLOWED_URI_REGEXP) ? cfg.ALLOWED_URI_REGEXP : IS_ALLOWED_URI; // Default regexp\n NAMESPACE = typeof cfg.NAMESPACE === 'string' ? cfg.NAMESPACE : HTML_NAMESPACE; // Default HTML namespace\n MATHML_TEXT_INTEGRATION_POINTS = objectHasOwnProperty(cfg, 'MATHML_TEXT_INTEGRATION_POINTS') && cfg.MATHML_TEXT_INTEGRATION_POINTS && typeof cfg.MATHML_TEXT_INTEGRATION_POINTS === 'object' ? clone(cfg.MATHML_TEXT_INTEGRATION_POINTS) : addToSet({}, ['mi', 'mo', 'mn', 'ms', 'mtext']); // Default built-in map\n HTML_INTEGRATION_POINTS = objectHasOwnProperty(cfg, 'HTML_INTEGRATION_POINTS') && cfg.HTML_INTEGRATION_POINTS && typeof cfg.HTML_INTEGRATION_POINTS === 'object' ? clone(cfg.HTML_INTEGRATION_POINTS) : addToSet({}, ['annotation-xml']); // Default built-in map\n const customElementHandling = objectHasOwnProperty(cfg, 'CUSTOM_ELEMENT_HANDLING') && cfg.CUSTOM_ELEMENT_HANDLING && typeof cfg.CUSTOM_ELEMENT_HANDLING === 'object' ? clone(cfg.CUSTOM_ELEMENT_HANDLING) : create(null);\n CUSTOM_ELEMENT_HANDLING = create(null);\n if (objectHasOwnProperty(customElementHandling, 'tagNameCheck') && isRegexOrFunction(customElementHandling.tagNameCheck)) {\n CUSTOM_ELEMENT_HANDLING.tagNameCheck = customElementHandling.tagNameCheck; // Default undefined\n }\n if (objectHasOwnProperty(customElementHandling, 'attributeNameCheck') && isRegexOrFunction(customElementHandling.attributeNameCheck)) {\n CUSTOM_ELEMENT_HANDLING.attributeNameCheck = customElementHandling.attributeNameCheck; // Default undefined\n }\n if (objectHasOwnProperty(customElementHandling, 'allowCustomizedBuiltInElements') && typeof customElementHandling.allowCustomizedBuiltInElements === 'boolean') {\n CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements = customElementHandling.allowCustomizedBuiltInElements; // Default undefined\n }\n if (SAFE_FOR_TEMPLATES) {\n ALLOW_DATA_ATTR = false;\n }\n if (RETURN_DOM_FRAGMENT) {\n RETURN_DOM = true;\n }\n /* Parse profile info */\n if (USE_PROFILES) {\n ALLOWED_TAGS = addToSet({}, text);\n ALLOWED_ATTR = create(null);\n if (USE_PROFILES.html === true) {\n addToSet(ALLOWED_TAGS, html$1);\n addToSet(ALLOWED_ATTR, html);\n }\n if (USE_PROFILES.svg === true) {\n addToSet(ALLOWED_TAGS, svg$1);\n addToSet(ALLOWED_ATTR, svg);\n addToSet(ALLOWED_ATTR, xml);\n }\n if (USE_PROFILES.svgFilters === true) {\n addToSet(ALLOWED_TAGS, svgFilters);\n addToSet(ALLOWED_ATTR, svg);\n addToSet(ALLOWED_ATTR, xml);\n }\n if (USE_PROFILES.mathMl === true) {\n addToSet(ALLOWED_TAGS, mathMl$1);\n addToSet(ALLOWED_ATTR, mathMl);\n addToSet(ALLOWED_ATTR, xml);\n }\n }\n /* Always reset function-based ADD_TAGS / ADD_ATTR checks to prevent\n * leaking across calls when switching from function to array config */\n EXTRA_ELEMENT_HANDLING.tagCheck = null;\n EXTRA_ELEMENT_HANDLING.attributeCheck = null;\n /* Merge configuration parameters */\n if (objectHasOwnProperty(cfg, 'ADD_TAGS')) {\n if (typeof cfg.ADD_TAGS === 'function') {\n EXTRA_ELEMENT_HANDLING.tagCheck = cfg.ADD_TAGS;\n } else if (arrayIsArray(cfg.ADD_TAGS)) {\n if (ALLOWED_TAGS === DEFAULT_ALLOWED_TAGS) {\n ALLOWED_TAGS = clone(ALLOWED_TAGS);\n }\n addToSet(ALLOWED_TAGS, cfg.ADD_TAGS, transformCaseFunc);\n }\n }\n if (objectHasOwnProperty(cfg, 'ADD_ATTR')) {\n if (typeof cfg.ADD_ATTR === 'function') {\n EXTRA_ELEMENT_HANDLING.attributeCheck = cfg.ADD_ATTR;\n } else if (arrayIsArray(cfg.ADD_ATTR)) {\n if (ALLOWED_ATTR === DEFAULT_ALLOWED_ATTR) {\n ALLOWED_ATTR = clone(ALLOWED_ATTR);\n }\n addToSet(ALLOWED_ATTR, cfg.ADD_ATTR, transformCaseFunc);\n }\n }\n if (objectHasOwnProperty(cfg, 'ADD_URI_SAFE_ATTR') && arrayIsArray(cfg.ADD_URI_SAFE_ATTR)) {\n addToSet(URI_SAFE_ATTRIBUTES, cfg.ADD_URI_SAFE_ATTR, transformCaseFunc);\n }\n if (objectHasOwnProperty(cfg, 'FORBID_CONTENTS') && arrayIsArray(cfg.FORBID_CONTENTS)) {\n if (FORBID_CONTENTS === DEFAULT_FORBID_CONTENTS) {\n FORBID_CONTENTS = clone(FORBID_CONTENTS);\n }\n addToSet(FORBID_CONTENTS, cfg.FORBID_CONTENTS, transformCaseFunc);\n }\n if (objectHasOwnProperty(cfg, 'ADD_FORBID_CONTENTS') && arrayIsArray(cfg.ADD_FORBID_CONTENTS)) {\n if (FORBID_CONTENTS === DEFAULT_FORBID_CONTENTS) {\n FORBID_CONTENTS = clone(FORBID_CONTENTS);\n }\n addToSet(FORBID_CONTENTS, cfg.ADD_FORBID_CONTENTS, transformCaseFunc);\n }\n /* Add #text in case KEEP_CONTENT is set to true */\n if (KEEP_CONTENT) {\n ALLOWED_TAGS['#text'] = true;\n }\n /* Add html, head and body to ALLOWED_TAGS in case WHOLE_DOCUMENT is true */\n if (WHOLE_DOCUMENT) {\n addToSet(ALLOWED_TAGS, ['html', 'head', 'body']);\n }\n /* Add tbody to ALLOWED_TAGS in case tables are permitted, see #286, #365 */\n if (ALLOWED_TAGS.table) {\n addToSet(ALLOWED_TAGS, ['tbody']);\n delete FORBID_TAGS.tbody;\n }\n if (cfg.TRUSTED_TYPES_POLICY) {\n if (typeof cfg.TRUSTED_TYPES_POLICY.createHTML !== 'function') {\n throw typeErrorCreate('TRUSTED_TYPES_POLICY configuration option must provide a \"createHTML\" hook.');\n }\n if (typeof cfg.TRUSTED_TYPES_POLICY.createScriptURL !== 'function') {\n throw typeErrorCreate('TRUSTED_TYPES_POLICY configuration option must provide a \"createScriptURL\" hook.');\n }\n // Overwrite existing TrustedTypes policy.\n const previousTrustedTypesPolicy = trustedTypesPolicy;\n trustedTypesPolicy = cfg.TRUSTED_TYPES_POLICY;\n // Sign local variables required by `sanitize`. If the supplied policy's\n // `createHTML` is circular (i.e. it calls `DOMPurify.sanitize`), this\n // throws via the re-entrancy guard. Restore the previous policy first so\n // the instance is not left in a poisoned state. See #1422.\n try {\n emptyHTML = _createTrustedHTML('');\n } catch (error) {\n trustedTypesPolicy = previousTrustedTypesPolicy;\n throw error;\n }\n } else {\n // Uninitialized policy, attempt to initialize the internal dompurify policy.\n if (trustedTypesPolicy === undefined && cfg.TRUSTED_TYPES_POLICY !== null) {\n trustedTypesPolicy = _createTrustedTypesPolicy(trustedTypes, currentScript);\n }\n // If creating the internal policy succeeded sign internal variables.\n // Note: a falsy `trustedTypesPolicy` (null when policy creation failed or\n // was skipped via `TRUSTED_TYPES_POLICY: null`, or undefined when no\n // policy has been initialized yet) must be excluded here, otherwise we\n // would call `.createHTML` on a non-policy and throw. See #1422.\n if (trustedTypesPolicy && typeof emptyHTML === 'string') {\n emptyHTML = _createTrustedHTML('');\n }\n }\n /*\n * Mirror the clone-before-mutate pattern already applied above for\n * cfg.ADD_TAGS / cfg.ADD_ATTR: if any uponSanitize* hook is\n * registered AND the set still points at the default constant,\n * clone it. The hook then mutates the clone (in-call widening\n * still works exactly as documented) and the next default-cfg\n * call rebinds to the untouched original via the reassignment at\n * the top of this function.\n */\n if ((hooks.uponSanitizeElement.length > 0 || hooks.uponSanitizeAttribute.length > 0) && ALLOWED_TAGS === DEFAULT_ALLOWED_TAGS) {\n ALLOWED_TAGS = clone(ALLOWED_TAGS);\n }\n if (hooks.uponSanitizeAttribute.length > 0 && ALLOWED_ATTR === DEFAULT_ALLOWED_ATTR) {\n ALLOWED_ATTR = clone(ALLOWED_ATTR);\n }\n // Prevent further manipulation of configuration.\n // Not available in IE8, Safari 5, etc.\n if (freeze) {\n freeze(cfg);\n }\n CONFIG = cfg;\n };\n /* Keep track of all possible SVG and MathML tags\n * so that we can perform the namespace checks\n * correctly. */\n const ALL_SVG_TAGS = addToSet({}, [...svg$1, ...svgFilters, ...svgDisallowed]);\n const ALL_MATHML_TAGS = addToSet({}, [...mathMl$1, ...mathMlDisallowed]);\n /**\n * @param element a DOM element whose namespace is being checked\n * @returns Return false if the element has a\n * namespace that a spec-compliant parser would never\n * return. Return true otherwise.\n */\n const _checkValidNamespace = function _checkValidNamespace(element) {\n let parent = getParentNode(element);\n // In JSDOM, if we're inside shadow DOM, then parentNode\n // can be null. We just simulate parent in this case.\n if (!parent || !parent.tagName) {\n parent = {\n namespaceURI: NAMESPACE,\n tagName: 'template'\n };\n }\n const tagName = stringToLowerCase(element.tagName);\n const parentTagName = stringToLowerCase(parent.tagName);\n if (!ALLOWED_NAMESPACES[element.namespaceURI]) {\n return false;\n }\n if (element.namespaceURI === SVG_NAMESPACE) {\n // The only way to switch from HTML namespace to SVG\n // is via <svg>. If it happens via any other tag, then\n // it should be killed.\n if (parent.namespaceURI === HTML_NAMESPACE) {\n return tagName === 'svg';\n }\n // The only way to switch from MathML to SVG is via`\n // svg if parent is either <annotation-xml> or MathML\n // text integration points.\n if (parent.namespaceURI === MATHML_NAMESPACE) {\n return tagName === 'svg' && (parentTagName === 'annotation-xml' || MATHML_TEXT_INTEGRATION_POINTS[parentTagName]);\n }\n // We only allow elements that are defined in SVG\n // spec. All others are disallowed in SVG namespace.\n return Boolean(ALL_SVG_TAGS[tagName]);\n }\n if (element.namespaceURI === MATHML_NAMESPACE) {\n // The only way to switch from HTML namespace to MathML\n // is via <math>. If it happens via any other tag, then\n // it should be killed.\n if (parent.namespaceURI === HTML_NAMESPACE) {\n return tagName === 'math';\n }\n // The only way to switch from SVG to MathML is via\n // <math> and HTML integration points\n if (parent.namespaceURI === SVG_NAMESPACE) {\n return tagName === 'math' && HTML_INTEGRATION_POINTS[parentTagName];\n }\n // We only allow elements that are defined in MathML\n // spec. All others are disallowed in MathML namespace.\n return Boolean(ALL_MATHML_TAGS[tagName]);\n }\n if (element.namespaceURI === HTML_NAMESPACE) {\n // The only way to switch from SVG to HTML is via\n // HTML integration points, and from MathML to HTML\n // is via MathML text integration points\n if (parent.namespaceURI === SVG_NAMESPACE && !HTML_INTEGRATION_POINTS[parentTagName]) {\n return false;\n }\n if (parent.namespaceURI === MATHML_NAMESPACE && !MATHML_TEXT_INTEGRATION_POINTS[parentTagName]) {\n return false;\n }\n // We disallow tags that are specific for MathML\n // or SVG and should never appear in HTML namespace\n return !ALL_MATHML_TAGS[tagName] && (COMMON_SVG_AND_HTML_ELEMENTS[tagName] || !ALL_SVG_TAGS[tagName]);\n }\n // For XHTML and XML documents that support custom namespaces\n if (PARSER_MEDIA_TYPE === 'application/xhtml+xml' && ALLOWED_NAMESPACES[element.namespaceURI]) {\n return true;\n }\n // The code should never reach this place (this means\n // that the element somehow got namespace that is not\n // HTML, SVG, MathML or allowed via ALLOWED_NAMESPACES).\n // Return false just in case.\n return false;\n };\n /**\n * _forceRemove\n *\n * @param node a DOM node\n */\n const _forceRemove = function _forceRemove(node) {\n arrayPush(DOMPurify.removed, {\n element: node\n });\n try {\n // eslint-disable-next-line unicorn/prefer-dom-node-remove\n getParentNode(node).removeChild(node);\n } catch (_) {\n remove(node);\n }\n };\n /**\n * _removeAttribute\n *\n * @param name an Attribute name\n * @param element a DOM node\n */\n const _removeAttribute = function _removeAttribute(name, element) {\n try {\n arrayPush(DOMPurify.removed, {\n attribute: element.getAttributeNode(name),\n from: element\n });\n } catch (_) {\n arrayPush(DOMPurify.removed, {\n attribute: null,\n from: element\n });\n }\n element.removeAttribute(name);\n // We void attribute values for unremovable \"is\" attributes\n if (name === 'is') {\n if (RETURN_DOM || RETURN_DOM_FRAGMENT) {\n try {\n _forceRemove(element);\n } catch (_) {}\n } else {\n try {\n element.setAttribute(name, '');\n } catch (_) {}\n }\n }\n };\n /**\n * _initDocument\n *\n * @param dirty - a string of dirty markup\n * @return a DOM, filled with the dirty markup\n */\n const _initDocument = function _initDocument(dirty) {\n /* Create a HTML document */\n let doc = null;\n let leadingWhitespace = null;\n if (FORCE_BODY) {\n dirty = '<remove></remove>' + dirty;\n } else {\n /* If FORCE_BODY isn't used, leading whitespace needs to be preserved manually */\n const matches = stringMatch(dirty, /^[\\r\\n\\t ]+/);\n leadingWhitespace = matches && matches[0];\n }\n if (PARSER_MEDIA_TYPE === 'application/xhtml+xml' && NAMESPACE === HTML_NAMESPACE) {\n // Root of XHTML doc must contain xmlns declaration (see https://www.w3.org/TR/xhtml1/normative.html#strict)\n dirty = '<html xmlns=\"http://www.w3.org/1999/xhtml\"><head></head><body>' + dirty + '</body></html>';\n }\n const dirtyPayload = trustedTypesPolicy ? _createTrustedHTML(dirty) : dirty;\n /*\n * Use the DOMParser API by default, fallback later if needs be\n * DOMParser not work for svg when has multiple root element.\n */\n if (NAMESPACE === HTML_NAMESPACE) {\n try {\n doc = new DOMParser().parseFromString(dirtyPayload, PARSER_MEDIA_TYPE);\n } catch (_) {}\n }\n /* Use createHTMLDocument in case DOMParser is not available */\n if (!doc || !doc.documentElement) {\n doc = implementation.createDocument(NAMESPACE, 'template', null);\n try {\n doc.documentElement.innerHTML = IS_EMPTY_INPUT ? emptyHTML : dirtyPayload;\n } catch (_) {\n // Syntax error if dirtyPayload is invalid xml\n }\n }\n const body = doc.body || doc.documentElement;\n if (dirty && leadingWhitespace) {\n body.insertBefore(document.createTextNode(leadingWhitespace), body.childNodes[0] || null);\n }\n /* Work on whole document or just its body */\n if (NAMESPACE === HTML_NAMESPACE) {\n return getElementsByTagName.call(doc, WHOLE_DOCUMENT ? 'html' : 'body')[0];\n }\n return WHOLE_DOCUMENT ? doc.documentElement : body;\n };\n /**\n * Creates a NodeIterator object that you can use to traverse filtered lists of nodes or elements in a document.\n *\n * @param root The root element or node to start traversing on.\n * @return The created NodeIterator\n */\n const _createNodeIterator = function _createNodeIterator(root) {\n return createNodeIterator.call(root.ownerDocument || root, root,\n // eslint-disable-next-line no-bitwise\n NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_COMMENT | NodeFilter.SHOW_TEXT | NodeFilter.SHOW_PROCESSING_INSTRUCTION | NodeFilter.SHOW_CDATA_SECTION, null);\n };\n /**\n * Strip template-engine expressions ({{...}}, ${...}, <%...%>) from the\n * character data of an element subtree. Used as the final safety net for\n * SAFE_FOR_TEMPLATES on every DOM-returning code path so that expressions\n * which only form after text-node normalization (e.g. fragments split across\n * stripped elements) cannot survive into a template-evaluating framework.\n *\n * Walks text/comment/CDATA/processing-instruction nodes and mutates `.data`\n * in place rather than round-tripping through innerHTML. This preserves\n * descendant node references (important for IN_PLACE callers), avoids a\n * serialize/reparse cycle, and reads literal character data — which means\n * `<%...%>` in text content matches the ERB regex against its real bytes\n * instead of the HTML-entity-escaped form innerHTML would produce.\n *\n * Attribute values are not visited here; SAFE_FOR_TEMPLATES handling for\n * attributes is performed during the per-node `_sanitizeAttributes` pass.\n *\n * @param node The root element whose character data should be scrubbed.\n */\n const _scrubTemplateExpressions2 = function _scrubTemplateExpressions(node) {\n var _node$querySelectorAl, _node$querySelectorAl2;\n node.normalize();\n const walker = createNodeIterator.call(node.ownerDocument || node, node,\n // eslint-disable-next-line no-bitwise\n NodeFilter.SHOW_TEXT | NodeFilter.SHOW_COMMENT | NodeFilter.SHOW_CDATA_SECTION | NodeFilter.SHOW_PROCESSING_INSTRUCTION, null);\n let currentNode = walker.nextNode();\n while (currentNode) {\n let data = currentNode.data;\n arrayForEach([MUSTACHE_EXPR$1, ERB_EXPR$1, TMPLIT_EXPR$1], expr => {\n data = stringReplace(data, expr, ' ');\n });\n currentNode.data = data;\n currentNode = walker.nextNode();\n }\n // NodeIterator does not descend into <template>.content per the DOM spec,\n // so we must explicitly recurse into each template's content fragment,\n // mirroring the approach used by _sanitizeShadowDOM.\n const templates = (_node$querySelectorAl = (_node$querySelectorAl2 = node.querySelectorAll) === null || _node$querySelectorAl2 === void 0 ? void 0 : _node$querySelectorAl2.call(node, 'template')) !== null && _node$querySelectorAl !== void 0 ? _node$querySelectorAl : [];\n arrayForEach(Array.from(templates), tmpl => {\n if (_isDocumentFragment(tmpl.content)) {\n _scrubTemplateExpressions2(tmpl.content);\n }\n });\n };\n /**\n * _isClobbered\n *\n * Detect DOM-clobbering on HTMLFormElement nodes. Form is the only HTML\n * interface with [LegacyOverrideBuiltIns]; a descendant element with a\n * `name` attribute matching a prototype property shadows that property\n * on direct reads. We use this check at the IN_PLACE entry-point and\n * during attribute sanitization to refuse clobbered forms.\n *\n * @param element element to check for clobbering attacks\n * @return true if clobbered, false if safe\n */\n const _isClobbered = function _isClobbered(element) {\n // Realm-independent tag-name probe. If we can't determine the tag\n // name at all, we can't reason about clobbering — return false\n // (the caller's other defences still apply).\n const realTagName = getNodeName ? getNodeName(element) : null;\n if (typeof realTagName !== 'string') {\n return false;\n }\n if (transformCaseFunc(realTagName) !== 'form') {\n return false;\n }\n return typeof element.nodeName !== 'string' || typeof element.textContent !== 'string' || typeof element.removeChild !== 'function' ||\n // Realm-safe NamedNodeMap detection: equality against the cached\n // prototype getter. Clobbered .attributes (e.g. <input name=\"attributes\">)\n // makes the direct read diverge from the cached read; a clean form\n // (same-realm OR foreign-realm) has both reads pointing at the same\n // canonical NamedNodeMap.\n element.attributes !== getAttributes(element) || typeof element.removeAttribute !== 'function' || typeof element.setAttribute !== 'function' || typeof element.namespaceURI !== 'string' || typeof element.insertBefore !== 'function' || typeof element.hasChildNodes !== 'function' ||\n // NodeType clobbering probe. Cached Node.prototype.nodeType getter\n // returns the integer 1 for any Element regardless of realm; direct\n // read on a clobbered form (e.g. <input name=\"nodeType\">) returns\n // the named child element. Cheap addition — nodeType is read from\n // an internal slot, no serialization cost — and removes a residual\n // clobbering surface used by several mXSS / PI / comment branches\n // in _sanitizeElements that compare currentNode.nodeType directly.\n element.nodeType !== getNodeType(element) ||\n // HTMLFormElement has [LegacyOverrideBuiltIns]: a descendant named\n // \"childNodes\" shadows the prototype getter. Direct reads of\n // form.childNodes from a clobbered form return the named child\n // instead of the real NodeList, so any walk that reads it directly\n // skips the form's real children. Compare the direct read to the\n // cached Node.prototype getter — when the form's named-property\n // getter intercepts the read, the two values differ and we flag\n // the form. This catches every clobbering child type (input,\n // select, etc.) regardless of whether the named child happens to\n // carry a numeric .length, which a typeof-based probe would miss\n // (e.g. HTMLSelectElement.length is a defined unsigned-long).\n element.childNodes !== getChildNodes(element);\n };\n /**\n * Checks whether the given value is a DocumentFragment from any realm.\n *\n * The realm-independent replacement reads `nodeType` through the cached\n * Node.prototype getter and compares to the DOCUMENT_FRAGMENT_NODE\n * constant (11). nodeType is a numeric value resolved from the node's\n * internal slot, identical across realms for the same kind of node.\n *\n * @param value object to check\n * @return true if value is a DocumentFragment-shaped node from any realm\n */\n const _isDocumentFragment = function _isDocumentFragment(value) {\n if (!getNodeType || typeof value !== 'object' || value === null) {\n return false;\n }\n try {\n return getNodeType(value) === NODE_TYPE.documentFragment;\n } catch (_) {\n return false;\n }\n };\n /**\n * Checks whether the given object is a DOM node, including nodes that\n * originate from a different window/realm (e.g. an iframe's\n * contentDocument). The previous `value instanceof Node` check was\n * realm-bound: nodes from a different window failed it, causing\n * sanitize() to silently stringify them and reset IN_PLACE to false,\n * returning the original node unsanitized. See GHSA-4w3q-35jp-p934.\n *\n * @param value object to check whether it's a DOM node\n * @return true if value is a DOM node from any realm\n */\n const _isNode = function _isNode(value) {\n if (!getNodeType || typeof value !== 'object' || value === null) {\n return false;\n }\n try {\n return typeof getNodeType(value) === 'number';\n } catch (_) {\n return false;\n }\n };\n function _executeHooks(hooks, currentNode, data) {\n arrayForEach(hooks, hook => {\n hook.call(DOMPurify, currentNode, data, CONFIG);\n });\n }\n /**\n * _sanitizeElements\n *\n * @protect nodeName\n * @protect textContent\n * @protect removeChild\n * @param currentNode to check for permission to exist\n * @return true if node was killed, false if left alive\n */\n const _sanitizeElements = function _sanitizeElements(currentNode) {\n let content = null;\n /* Execute a hook if present */\n _executeHooks(hooks.beforeSanitizeElements, currentNode, null);\n /* Check if element is clobbered or can clobber */\n if (_isClobbered(currentNode)) {\n _forceRemove(currentNode);\n return true;\n }\n /* Now let's check the element's type and name */\n const tagName = transformCaseFunc(getNodeName ? getNodeName(currentNode) : currentNode.nodeName);\n /* Execute a hook if present */\n _executeHooks(hooks.uponSanitizeElement, currentNode, {\n tagName,\n allowedTags: ALLOWED_TAGS\n });\n /* Detect mXSS attempts abusing namespace confusion */\n if (SAFE_FOR_XML && currentNode.hasChildNodes() && !_isNode(currentNode.firstElementChild) && regExpTest(/<[/\\w!]/g, currentNode.innerHTML) && regExpTest(/<[/\\w!]/g, currentNode.textContent)) {\n _forceRemove(currentNode);\n return true;\n }\n /* Remove risky CSS construction leading to mXSS */\n if (SAFE_FOR_XML && currentNode.namespaceURI === HTML_NAMESPACE && tagName === 'style' && _isNode(currentNode.firstElementChild)) {\n _forceRemove(currentNode);\n return true;\n }\n /* Remove any occurrence of processing instructions */\n if (currentNode.nodeType === NODE_TYPE.progressingInstruction) {\n _forceRemove(currentNode);\n return true;\n }\n /* Remove any kind of possibly harmful comments */\n if (SAFE_FOR_XML && currentNode.nodeType === NODE_TYPE.comment && regExpTest(/<[/\\w]/g, currentNode.data)) {\n _forceRemove(currentNode);\n return true;\n }\n /* Remove element if anything forbids its presence */\n if (FORBID_TAGS[tagName] || !(EXTRA_ELEMENT_HANDLING.tagCheck instanceof Function && EXTRA_ELEMENT_HANDLING.tagCheck(tagName)) && !ALLOWED_TAGS[tagName]) {\n /* Check if we have a custom element to handle */\n if (!FORBID_TAGS[tagName] && _isBasicCustomElement(tagName)) {\n if (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, tagName)) {\n return false;\n }\n if (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(tagName)) {\n return false;\n }\n }\n /* Keep content except for bad-listed elements.\n Use the cached prototype getters exclusively — the previous code\n had `|| currentNode.parentNode` / `|| currentNode.childNodes`\n fallbacks, but the cached getters always return the canonical\n value (or null for a real parent-less node), so the fallback\n path was dead in safe cases and a clobbering surface in unsafe\n ones. Falsy cached results stay falsy; the `if (childNodes &&\n parentNode)` check already gates correctly. */\n if (KEEP_CONTENT && !FORBID_CONTENTS[tagName]) {\n const parentNode = getParentNode(currentNode);\n const childNodes = getChildNodes(currentNode);\n if (childNodes && parentNode) {\n const childCount = childNodes.length;\n for (let i = childCount - 1; i >= 0; --i) {\n const childClone = cloneNode(childNodes[i], true);\n parentNode.insertBefore(childClone, getNextSibling(currentNode));\n }\n }\n }\n _forceRemove(currentNode);\n return true;\n }\n /* Check whether element has a valid namespace.\n Realm-safe check (GHSA-hpcv-96wg-7vj8): use the cached Node.prototype\n nodeType getter rather than `instanceof Element`, which is realm-\n bound and short-circuits to false for any node minted in a different\n realm — letting a foreign-realm element with a forbidden namespace\n slip past the namespace check entirely. */\n const nt = getNodeType ? getNodeType(currentNode) : currentNode.nodeType;\n if (nt === NODE_TYPE.element && !_checkValidNamespace(currentNode)) {\n _forceRemove(currentNode);\n return true;\n }\n /* Make sure that older browsers don't get fallback-tag mXSS */\n if ((tagName === 'noscript' || tagName === 'noembed' || tagName === 'noframes') && regExpTest(/<\\/no(script|embed|frames)/i, currentNode.innerHTML)) {\n _forceRemove(currentNode);\n return true;\n }\n /* Sanitize element content to be template-safe */\n if (SAFE_FOR_TEMPLATES && currentNode.nodeType === NODE_TYPE.text) {\n /* Get the element's text content */\n content = currentNode.textContent;\n arrayForEach([MUSTACHE_EXPR$1, ERB_EXPR$1, TMPLIT_EXPR$1], expr => {\n content = stringReplace(content, expr, ' ');\n });\n if (currentNode.textContent !== content) {\n arrayPush(DOMPurify.removed, {\n element: currentNode.cloneNode()\n });\n currentNode.textContent = content;\n }\n }\n /* Execute a hook if present */\n _executeHooks(hooks.afterSanitizeElements, currentNode, null);\n return false;\n };\n /**\n * _isValidAttribute\n *\n * @param lcTag Lowercase tag name of containing element.\n * @param lcName Lowercase attribute name.\n * @param value Attribute value.\n * @return Returns true if `value` is valid, otherwise false.\n */\n // eslint-disable-next-line complexity\n const _isValidAttribute = function _isValidAttribute(lcTag, lcName, value) {\n /* FORBID_ATTR must always win, even if ADD_ATTR predicate would allow it */\n if (FORBID_ATTR[lcName]) {\n return false;\n }\n /* Make sure attribute cannot clobber */\n if (SANITIZE_DOM && (lcName === 'id' || lcName === 'name') && (value in document || value in formElement)) {\n return false;\n }\n const nameIsPermitted = ALLOWED_ATTR[lcName] || EXTRA_ELEMENT_HANDLING.attributeCheck instanceof Function && EXTRA_ELEMENT_HANDLING.attributeCheck(lcName, lcTag);\n /* Allow valid data-* attributes: At least one character after \"-\"\n (https://html.spec.whatwg.org/multipage/dom.html#embedding-custom-non-visible-data-with-the-data-*-attributes)\n XML-compatible (https://html.spec.whatwg.org/multipage/infrastructure.html#xml-compatible and http://www.w3.org/TR/xml/#d0e804)\n We don't need to check the value; it's always URI safe. */\n if (ALLOW_DATA_ATTR && !FORBID_ATTR[lcName] && regExpTest(DATA_ATTR$1, lcName)) ; else if (ALLOW_ARIA_ATTR && regExpTest(ARIA_ATTR$1, lcName)) ; else if (!nameIsPermitted || FORBID_ATTR[lcName]) {\n if (\n // First condition does a very basic check if a) it's basically a valid custom element tagname AND\n // b) if the tagName passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck\n // and c) if the attribute name passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.attributeNameCheck\n _isBasicCustomElement(lcTag) && (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, lcTag) || CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(lcTag)) && (CUSTOM_ELEMENT_HANDLING.attributeNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.attributeNameCheck, lcName) || CUSTOM_ELEMENT_HANDLING.attributeNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.attributeNameCheck(lcName, lcTag)) ||\n // Alternative, second condition checks if it's an `is`-attribute, AND\n // the value passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck\n lcName === 'is' && CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements && (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, value) || CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(value))) ; else {\n return false;\n }\n /* Check value is safe. First, is attr inert? If so, is safe */\n } else if (URI_SAFE_ATTRIBUTES[lcName]) ; else if (regExpTest(IS_ALLOWED_URI$1, stringReplace(value, ATTR_WHITESPACE$1, ''))) ; else if ((lcName === 'src' || lcName === 'xlink:href' || lcName === 'href') && lcTag !== 'script' && stringIndexOf(value, 'data:') === 0 && DATA_URI_TAGS[lcTag]) ; else if (ALLOW_UNKNOWN_PROTOCOLS && !regExpTest(IS_SCRIPT_OR_DATA$1, stringReplace(value, ATTR_WHITESPACE$1, ''))) ; else if (value) {\n return false;\n } else ;\n return true;\n };\n /* Names the HTML spec reserves from valid-custom-element-name; these must\n * never be treated as basic custom elements even when a permissive\n * CUSTOM_ELEMENT_HANDLING.tagNameCheck is configured. */\n const RESERVED_CUSTOM_ELEMENT_NAMES = addToSet({}, ['annotation-xml', 'color-profile', 'font-face', 'font-face-format', 'font-face-name', 'font-face-src', 'font-face-uri', 'missing-glyph']);\n /**\n * _isBasicCustomElement\n * checks if at least one dash is included in tagName, and it's not the first char\n * for more sophisticated checking see https://github.com/sindresorhus/validate-element-name\n *\n * @param tagName name of the tag of the node to sanitize\n * @returns Returns true if the tag name meets the basic criteria for a custom element, otherwise false.\n */\n const _isBasicCustomElement = function _isBasicCustomElement(tagName) {\n return !RESERVED_CUSTOM_ELEMENT_NAMES[stringToLowerCase(tagName)] && regExpTest(CUSTOM_ELEMENT$1, tagName);\n };\n /**\n * _sanitizeAttributes\n *\n * @protect attributes\n * @protect nodeName\n * @protect removeAttribute\n * @protect setAttribute\n *\n * @param currentNode to sanitize\n */\n const _sanitizeAttributes = function _sanitizeAttributes(currentNode) {\n /* Execute a hook if present */\n _executeHooks(hooks.beforeSanitizeAttributes, currentNode, null);\n const attributes = currentNode.attributes;\n /* Check if we have attributes; if not we might have a text node */\n if (!attributes || _isClobbered(currentNode)) {\n return;\n }\n const hookEvent = {\n attrName: '',\n attrValue: '',\n keepAttr: true,\n allowedAttributes: ALLOWED_ATTR,\n forceKeepAttr: undefined\n };\n let l = attributes.length;\n /* Go backwards over all attributes; safely remove bad ones */\n while (l--) {\n const attr = attributes[l];\n const name = attr.name,\n namespaceURI = attr.namespaceURI,\n attrValue = attr.value;\n const lcName = transformCaseFunc(name);\n const initValue = attrValue;\n let value = name === 'value' ? initValue : stringTrim(initValue);\n /* Execute a hook if present */\n hookEvent.attrName = lcName;\n hookEvent.attrValue = value;\n hookEvent.keepAttr = true;\n hookEvent.forceKeepAttr = undefined; // Allows developers to see this is a property they can set\n _executeHooks(hooks.uponSanitizeAttribute, currentNode, hookEvent);\n value = hookEvent.attrValue;\n /* Full DOM Clobbering protection via namespace isolation,\n * Prefix id and name attributes with `user-content-`\n */\n if (SANITIZE_NAMED_PROPS && (lcName === 'id' || lcName === 'name') && stringIndexOf(value, SANITIZE_NAMED_PROPS_PREFIX) !== 0) {\n // Remove the attribute with this value\n _removeAttribute(name, currentNode);\n // Prefix the value and later re-create the attribute with the sanitized value\n value = SANITIZE_NAMED_PROPS_PREFIX + value;\n }\n // Else: already prefixed, leave the attribute alone — the prefix is\n // itself the clobbering protection, and re-applying it is incorrect.\n /* Work around a security issue with comments inside attributes */\n if (SAFE_FOR_XML && regExpTest(/((--!?|])>)|<\\/(style|script|title|xmp|textarea|noscript|iframe|noembed|noframes)/i, value)) {\n _removeAttribute(name, currentNode);\n continue;\n }\n /* Make sure we cannot easily use animated hrefs, even if animations are allowed */\n if (lcName === 'attributename' && stringMatch(value, 'href')) {\n _removeAttribute(name, currentNode);\n continue;\n }\n /* Did the hooks approve of the attribute? */\n if (hookEvent.forceKeepAttr) {\n continue;\n }\n /* Did the hooks approve of the attribute? */\n if (!hookEvent.keepAttr) {\n _removeAttribute(name, currentNode);\n continue;\n }\n /* Work around a security issue in jQuery 3.0 */\n if (!ALLOW_SELF_CLOSE_IN_ATTR && regExpTest(/\\/>/i, value)) {\n _removeAttribute(name, currentNode);\n continue;\n }\n /* Sanitize attribute content to be template-safe */\n if (SAFE_FOR_TEMPLATES) {\n arrayForEach([MUSTACHE_EXPR$1, ERB_EXPR$1, TMPLIT_EXPR$1], expr => {\n value = stringReplace(value, expr, ' ');\n });\n }\n /* Is `value` valid for this attribute? */\n const lcTag = transformCaseFunc(currentNode.nodeName);\n if (!_isValidAttribute(lcTag, lcName, value)) {\n _removeAttribute(name, currentNode);\n continue;\n }\n /* Handle attributes that require Trusted Types */\n if (trustedTypesPolicy && typeof trustedTypes === 'object' && typeof trustedTypes.getAttributeType === 'function') {\n if (namespaceURI) ; else {\n switch (trustedTypes.getAttributeType(lcTag, lcName)) {\n case 'TrustedHTML':\n {\n value = _createTrustedHTML(value);\n break;\n }\n case 'TrustedScriptURL':\n {\n value = trustedTypesPolicy.createScriptURL(value);\n break;\n }\n }\n }\n }\n /* Handle invalid data-* attribute set by try-catching it */\n if (value !== initValue) {\n try {\n if (namespaceURI) {\n currentNode.setAttributeNS(namespaceURI, name, value);\n } else {\n /* Fallback to setAttribute() for browser-unrecognized namespaces e.g. \"x-schema\". */\n currentNode.setAttribute(name, value);\n }\n if (_isClobbered(currentNode)) {\n _forceRemove(currentNode);\n } else {\n arrayPop(DOMPurify.removed);\n }\n } catch (_) {\n _removeAttribute(name, currentNode);\n }\n }\n }\n /* Execute a hook if present */\n _executeHooks(hooks.afterSanitizeAttributes, currentNode, null);\n };\n /**\n * _sanitizeShadowDOM\n *\n * @param fragment to iterate over recursively\n */\n const _sanitizeShadowDOM2 = function _sanitizeShadowDOM(fragment) {\n let shadowNode = null;\n const shadowIterator = _createNodeIterator(fragment);\n /* Execute a hook if present */\n _executeHooks(hooks.beforeSanitizeShadowDOM, fragment, null);\n while (shadowNode = shadowIterator.nextNode()) {\n /* Execute a hook if present */\n _executeHooks(hooks.uponSanitizeShadowNode, shadowNode, null);\n /* Sanitize tags and elements */\n _sanitizeElements(shadowNode);\n /* Check attributes next */\n _sanitizeAttributes(shadowNode);\n /* Deep shadow DOM detected.\n Realm-safe check (GHSA-hpcv-96wg-7vj8): use nodeType against the\n DOCUMENT_FRAGMENT_NODE constant rather than instanceof, so we\n recurse into <template>.content from foreign realms too. */\n if (_isDocumentFragment(shadowNode.content)) {\n _sanitizeShadowDOM2(shadowNode.content);\n }\n /* An element iterated here may itself host an attached\n shadow root. The default NodeIterator does not enter shadow\n trees, so a shadow root nested inside template.content was\n previously reached by no walk at all (the pre-pass at\n _sanitizeAttachedShadowRoots descends via childNodes, which\n doesn't enter template.content; the template-content recursion\n above iterates the content but never inspected shadowRoot).\n Walk it explicitly. The nodeType guard avoids reading\n shadowRoot off text / comment / CDATA / PI nodes that the\n iterator also surfaces. */\n const shadowNodeType = getNodeType ? getNodeType(shadowNode) : shadowNode.nodeType;\n if (shadowNodeType === NODE_TYPE.element) {\n const innerSr = getShadowRoot ? getShadowRoot(shadowNode) : shadowNode.shadowRoot;\n if (_isDocumentFragment(innerSr)) {\n _sanitizeAttachedShadowRoots2(innerSr);\n _sanitizeShadowDOM2(innerSr);\n }\n }\n }\n /* Execute a hook if present */\n _executeHooks(hooks.afterSanitizeShadowDOM, fragment, null);\n };\n /**\n * _sanitizeAttachedShadowRoots\n *\n * Walks `root` and feeds every attached shadow root we encounter into\n * the existing _sanitizeShadowDOM pipeline. The default node iterator\n * does not descend into shadow trees, so nodes inside an attached\n * shadow root would otherwise be skipped entirely.\n *\n * Two real input paths put attached shadow roots in front of us:\n * 1. IN_PLACE on a DOM node that already has shadow roots attached.\n * 2. DOM-node input where importNode(dirty, true) deep-clones the\n * shadow root because it was created with `clonable: true`.\n *\n * This pass runs once, up front, so the main iteration loop (and the\n * existing _sanitizeShadowDOM template-content recursion) stay\n * untouched — string-input paths are not affected.\n *\n * @param root the subtree root to walk for attached shadow roots\n */\n const _sanitizeAttachedShadowRoots2 = function _sanitizeAttachedShadowRoots(root) {\n const nodeType = getNodeType ? getNodeType(root) : root.nodeType;\n if (nodeType === NODE_TYPE.element) {\n const sr = getShadowRoot ? getShadowRoot(root) : root.shadowRoot;\n // Realm-safe check (GHSA-hpcv-96wg-7vj8): use nodeType-based\n // detection rather than `instanceof DocumentFragment`, which is\n // realm-bound and silently skipped shadow roots whose host element\n // belonged to a foreign realm (e.g. iframe.contentDocument\n // attachShadow). A foreign-realm ShadowRoot extends the foreign\n // realm's DocumentFragment, not ours, so the old instanceof check\n // returned false and the shadow subtree was never walked.\n if (_isDocumentFragment(sr)) {\n // Recurse first so that nested shadow roots are reached even if\n // _sanitizeShadowDOM removes hosts at this level.\n _sanitizeAttachedShadowRoots2(sr);\n _sanitizeShadowDOM2(sr);\n }\n }\n // Snapshot children before recursing. Sanitization of one subtree\n // (e.g. via an uponSanitizeShadowNode hook) may detach siblings,\n // and naive nextSibling traversal would silently skip the rest of\n // the list once a node is detached.\n const childNodes = getChildNodes ? getChildNodes(root) : root.childNodes;\n if (!childNodes) {\n return;\n }\n const snapshot = [];\n arrayForEach(childNodes, child => {\n arrayPush(snapshot, child);\n });\n for (const child of snapshot) {\n _sanitizeAttachedShadowRoots2(child);\n }\n /* When the root is a <template>, also descend into root.content */\n if (nodeType === NODE_TYPE.element) {\n const rootName = getNodeName ? getNodeName(root) : null;\n if (typeof rootName === 'string' && transformCaseFunc(rootName) === 'template') {\n const content = root.content;\n if (_isDocumentFragment(content)) {\n _sanitizeAttachedShadowRoots2(content);\n }\n }\n }\n };\n // eslint-disable-next-line complexity\n DOMPurify.sanitize = function (dirty) {\n let cfg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n let body = null;\n let importedNode = null;\n let currentNode = null;\n let returnNode = null;\n /* Make sure we have a string to sanitize.\n DO NOT return early, as this will return the wrong type if\n the user has requested a DOM object rather than a string */\n IS_EMPTY_INPUT = !dirty;\n if (IS_EMPTY_INPUT) {\n dirty = '<!-->';\n }\n /* Stringify, in case dirty is an object */\n if (typeof dirty !== 'string' && !_isNode(dirty)) {\n dirty = stringifyValue(dirty);\n if (typeof dirty !== 'string') {\n throw typeErrorCreate('dirty is not a string, aborting');\n }\n }\n /* Return dirty HTML if DOMPurify cannot run */\n if (!DOMPurify.isSupported) {\n return dirty;\n }\n /* Assign config vars */\n if (!SET_CONFIG) {\n _parseConfig(cfg);\n }\n /* Clean up removed elements */\n DOMPurify.removed = [];\n /* Check if dirty is correctly typed for IN_PLACE */\n if (typeof dirty === 'string') {\n IN_PLACE = false;\n }\n if (IN_PLACE) {\n /* Do some early pre-sanitization to avoid unsafe root nodes.\n Read nodeName through the cached prototype getter — a clobbering\n child named \"nodeName\" on the form root would otherwise shadow\n the property and let this check skip the root-allowlist\n validation entirely. */\n const nn = getNodeName ? getNodeName(dirty) : dirty.nodeName;\n if (typeof nn === 'string') {\n const tagName = transformCaseFunc(nn);\n if (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName]) {\n throw typeErrorCreate('root node is forbidden and cannot be sanitized in-place');\n }\n }\n /* Pre-flight the root through _isClobbered. The iterator-driven\n removal path can not detach a parent-less root: _forceRemove\n falls through to Element.prototype.remove(), which per spec\n is a no-op on a node with no parent. A clobbered root would\n then survive the main loop with its attributes uninspected,\n because _sanitizeAttributes early-returns on _isClobbered. The\n result would be an attacker-controlled form, complete with any\n event-handler attributes the caller passed in, handed back to\n the application unsanitized. Refuse to sanitize such a root\n the same way we refuse a forbidden tag. GHSA-r47g-fvhr-h676. */\n if (_isClobbered(dirty)) {\n throw typeErrorCreate('root node is clobbered and cannot be sanitized in-place');\n }\n /* Sanitize attached shadow roots before the main iterator runs.\n The iterator does not descend into shadow trees. */\n _sanitizeAttachedShadowRoots2(dirty);\n } else if (_isNode(dirty)) {\n /* If dirty is a DOM element, append to an empty document to avoid\n elements being stripped by the parser */\n body = _initDocument('<!---->');\n importedNode = body.ownerDocument.importNode(dirty, true);\n if (importedNode.nodeType === NODE_TYPE.element && importedNode.nodeName === 'BODY') {\n /* Node is already a body, use as is */\n body = importedNode;\n } else if (importedNode.nodeName === 'HTML') {\n body = importedNode;\n } else {\n // eslint-disable-next-line unicorn/prefer-dom-node-append\n body.appendChild(importedNode);\n }\n /* Clonable shadow roots are deep-cloned by importNode(); sanitize\n them before the main iterator runs, since the iterator does not\n descend into shadow trees. The walk routes every read through a\n cached prototype getter so clobbering descendants on a form root\n cannot hide a shadow host from this pass. */\n _sanitizeAttachedShadowRoots2(importedNode);\n } else {\n /* Exit directly if we have nothing to do */\n if (!RETURN_DOM && !SAFE_FOR_TEMPLATES && !WHOLE_DOCUMENT &&\n // eslint-disable-next-line unicorn/prefer-includes\n dirty.indexOf('<') === -1) {\n return trustedTypesPolicy && RETURN_TRUSTED_TYPE ? _createTrustedHTML(dirty) : dirty;\n }\n /* Initialize the document to work on */\n body = _initDocument(dirty);\n /* Check we have a DOM node from the data */\n if (!body) {\n return RETURN_DOM ? null : RETURN_TRUSTED_TYPE ? emptyHTML : '';\n }\n }\n /* Remove first element node (ours) if FORCE_BODY is set */\n if (body && FORCE_BODY) {\n _forceRemove(body.firstChild);\n }\n /* Get node iterator */\n const nodeIterator = _createNodeIterator(IN_PLACE ? dirty : body);\n /* Now start iterating over the created document */\n while (currentNode = nodeIterator.nextNode()) {\n /* Sanitize tags and elements */\n _sanitizeElements(currentNode);\n /* Check attributes next */\n _sanitizeAttributes(currentNode);\n /* Shadow DOM detected, sanitize it.\n Realm-safe check (GHSA-hpcv-96wg-7vj8): nodeType-based detection\n instead of instanceof, so foreign-realm <template>.content is\n walked correctly. */\n if (_isDocumentFragment(currentNode.content)) {\n _sanitizeShadowDOM2(currentNode.content);\n }\n }\n /* If we sanitized `dirty` in-place, return it. */\n if (IN_PLACE) {\n if (SAFE_FOR_TEMPLATES) {\n _scrubTemplateExpressions2(dirty);\n }\n return dirty;\n }\n /* Return sanitized string or DOM */\n if (RETURN_DOM) {\n if (SAFE_FOR_TEMPLATES) {\n _scrubTemplateExpressions2(body);\n }\n if (RETURN_DOM_FRAGMENT) {\n returnNode = createDocumentFragment.call(body.ownerDocument);\n while (body.firstChild) {\n // eslint-disable-next-line unicorn/prefer-dom-node-append\n returnNode.appendChild(body.firstChild);\n }\n } else {\n returnNode = body;\n }\n if (ALLOWED_ATTR.shadowroot || ALLOWED_ATTR.shadowrootmode) {\n /*\n AdoptNode() is not used because internal state is not reset\n (e.g. the past names map of a HTMLFormElement), this is safe\n in theory but we would rather not risk another attack vector.\n The state that is cloned by importNode() is explicitly defined\n by the specs.\n */\n returnNode = importNode.call(originalDocument, returnNode, true);\n }\n return returnNode;\n }\n let serializedHTML = WHOLE_DOCUMENT ? body.outerHTML : body.innerHTML;\n /* Serialize doctype if allowed */\n if (WHOLE_DOCUMENT && ALLOWED_TAGS['!doctype'] && body.ownerDocument && body.ownerDocument.doctype && body.ownerDocument.doctype.name && regExpTest(DOCTYPE_NAME, body.ownerDocument.doctype.name)) {\n serializedHTML = '<!DOCTYPE ' + body.ownerDocument.doctype.name + '>\\n' + serializedHTML;\n }\n /* Sanitize final string template-safe */\n if (SAFE_FOR_TEMPLATES) {\n arrayForEach([MUSTACHE_EXPR$1, ERB_EXPR$1, TMPLIT_EXPR$1], expr => {\n serializedHTML = stringReplace(serializedHTML, expr, ' ');\n });\n }\n return trustedTypesPolicy && RETURN_TRUSTED_TYPE ? _createTrustedHTML(serializedHTML) : serializedHTML;\n };\n DOMPurify.setConfig = function () {\n let cfg = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n _parseConfig(cfg);\n SET_CONFIG = true;\n };\n DOMPurify.clearConfig = function () {\n CONFIG = null;\n SET_CONFIG = false;\n };\n DOMPurify.isValidAttribute = function (tag, attr, value) {\n /* Initialize shared config vars if necessary. */\n if (!CONFIG) {\n _parseConfig({});\n }\n const lcTag = transformCaseFunc(tag);\n const lcName = transformCaseFunc(attr);\n return _isValidAttribute(lcTag, lcName, value);\n };\n DOMPurify.addHook = function (entryPoint, hookFunction) {\n if (typeof hookFunction !== 'function') {\n return;\n }\n arrayPush(hooks[entryPoint], hookFunction);\n };\n DOMPurify.removeHook = function (entryPoint, hookFunction) {\n if (hookFunction !== undefined) {\n const index = arrayLastIndexOf(hooks[entryPoint], hookFunction);\n return index === -1 ? undefined : arraySplice(hooks[entryPoint], index, 1)[0];\n }\n return arrayPop(hooks[entryPoint]);\n };\n DOMPurify.removeHooks = function (entryPoint) {\n hooks[entryPoint] = [];\n };\n DOMPurify.removeAllHooks = function () {\n hooks = _createHooksMap();\n };\n return DOMPurify;\n}\nvar purify = createDOMPurify();\n\nexport { purify as default };\n//# sourceMappingURL=purify.es.mjs.map\n","/**\n * AIChatDialog - 纯JavaScript实现的AI对话组件 (Web Components)\n * 样式与功能完全对齐 Vue 版本(1:1 复刻)\n * \n * @author IBC AI Team\n * @version 2.1.0\n */\n\n // 导入 marked Markdown 解析库 + DOMPurify XSS防护\n import AIChatClient from './core/AIChatClient.js';\n import { marked } from 'marked';\n import DOMPurify from 'dompurify';\n\n // 运行时占位符(对齐 portal)\n const RUNTIME_PLACEHOLDERS = [\n '请求已受理', '任务已受理', '正在思考', '正在执行',\n '结果处理中', '已进入助手运行时', '任务运行时',\n 'SSE 连接已建立'\n ];\n const DEFAULT_DIALOG_TOP = '96px';\n\n // ========== marked 配置(安全且功能完整) ==========\n marked.setOptions({\n breaks: true, // 支持GFM换行(单换行变<br>)\n gfm: true, // GitHub Flavored Markdown\n headerIds: false, // 不生成标题id\n mangle: false // 不转义邮箱\n });\n\n // Vue themes.js 的 camelCase key → JS _themeVars CSS变量名 映射表\n const THEME_COLOR_KEY_MAP = {\n primary: '--ai-primary',\n primaryLight: '--ai-primary-light',\n primaryDark: '--ai-primary-dark',\n secondary: '--ai-secondary',\n background: '--ai-bg', // background → --ai-bg\n backgroundGradient: '--ai-bg-gradient', // backgroundGradient → --ai-bg-gradient\n text: '--ai-text',\n textSecondary: '--ai-text-secondary',\n userBubble: '--ai-user-bubble-gradient', // userBubble → --ai-user-bubble-gradient\n aiBubble: '--ai-ai-bubble-bg', // aiBubble → --ai-ai-bubble-bg\n headerGradient: '--ai-header-gradient',\n border: '--ai-border',\n shadow: '--ai-shadow',\n inputBackground: '--ai-input-bg', // inputBackground → --ai-input-bg\n inputBorder: '--ai-input-border', // inputBorder → --ai-input-border\n loading: '--ai-loading',\n success: '--ai-success',\n error: '--ai-error',\n warning: '--ai-warning'\n };\n\n // ========== 16种预设主题(与Vue版themes.js完全一致) ==========\n const PRESET_THEMES = {\n DEFAULT: { colors: { primary: '#1890ff', primaryLight: '#40a9ff', primaryDark: '#096dd9', secondary: '#722ed1', background: '#ffffff', backgroundGradient: '#f8fafc', text: '#1e293b', textSecondary: '#64748b', userBubble: 'linear-gradient(135deg, #1890ff, #40a9ff)', aiBubble: '#ffffff', headerGradient: 'linear-gradient(90deg, rgba(24,144,255,0.08), rgba(114,46,209,0.08))', border: 'rgba(24,144,255,0.15)', shadow: 'rgba(24,144,255,0.12)', inputBackground: '#f8fafc', inputBorder: '#e2e8f0' } },\n DARK: { colors: { primary: '#40a9ff', primaryLight: '#69c0ff', primaryDark: '#1890ff', secondary: '#9254de', background: '#0f172a', backgroundGradient: '#1e293b', text: '#f1f5f9', textSecondary: '#94a3b8', userBubble: 'linear-gradient(135deg, #1890ff, #40a9ff)', aiBubble: '#1e293b', headerGradient: 'linear-gradient(90deg, rgba(64,169,255,0.15), rgba(146,84,222,0.15))', border: 'rgba(64,169,255,0.3)', shadow: 'rgba(0,0,0,0.3)', inputBackground: '#1e293b', inputBorder: '#334155' } },\n FRESH: { colors: { primary: '#52c41a', primaryLight: '#73d13d', primaryDark: '#389e0d', secondary: '#1890ff', background: '#ffffff', backgroundGradient: '#f6ffed', text: '#1e293b', textSecondary: '#64748b', userBubble: 'linear-gradient(135deg, #52c41a, #73d13d)', aiBubble: '#ffffff', headerGradient: 'linear-gradient(90deg, rgba(82,196,26,0.08), rgba(24,144,255,0.08))', border: 'rgba(82,196,26,0.15)', shadow: 'rgba(82,196,26,0.12)', inputBackground: '#f6ffed', inputBorder: '#d9f7be' } },\n VIBRANT: { colors: { primary: '#fa8c16', primaryLight: '#ffa940', primaryDark: '#d46b08', secondary: '#f5222d', background: '#ffffff', backgroundGradient: '#fff7e6', text: '#1e293b', textSecondary: '#64748b', userBubble: 'linear-gradient(135deg, #fa8c16, #ffa940)', aiBubble: '#ffffff', headerGradient: 'linear-gradient(90deg, rgba(250,140,22,0.08), rgba(245,34,45,0.08))', border: 'rgba(250,140,22,0.15)', shadow: 'rgba(250,140,22,0.12)', inputBackground: '#fff7e6', inputBorder: '#ffd591' } },\n ROMANTIC: { colors: { primary: '#eb2f96', primaryLight: '#fb6f92', primaryDark: '#c41d7f', secondary: '#722ed1', background: '#ffffff', backgroundGradient: '#fff0f6', text: '#1e293b', textSecondary: '#64748b', userBubble: 'linear-gradient(135deg, #eb2f96, #fb6f92)', aiBubble: '#ffffff', headerGradient: 'linear-gradient(90deg, rgba(235,47,150,0.08), rgba(114,46,209,0.08))', border: 'rgba(235,47,150,0.15)', shadow: 'rgba(235,47,150,0.12)', inputBackground: '#fff0f6', inputBorder: '#ffadd2' } },\n PURPLE: { colors: { primary: '#722ed1', primaryLight: '#9254de', primaryDark: '#531dab', secondary: '#1890ff', background: '#ffffff', backgroundGradient: '#f9f0ff', text: '#1e293b', textSecondary: '#64748b', userBubble: 'linear-gradient(135deg, #722ed1, #9254de)', aiBubble: '#ffffff', headerGradient: 'linear-gradient(90deg, rgba(114,46,209,0.08), rgba(24,144,255,0.08))', border: 'rgba(114,46,209,0.15)', shadow: 'rgba(114,46,209,0.12)', inputBackground: '#f9f0ff', inputBorder: '#d3adf7' } },\n OCEAN: { colors: { primary: '#0077b6', primaryLight: '#00b4d8', primaryDark: '#023e8a', secondary: '#00b4d8', background: '#ffffff', backgroundGradient: '#f0f9ff', text: '#1e293b', textSecondary: '#64748b', userBubble: 'linear-gradient(135deg, #0077b6, #00b4d8)', aiBubble: '#ffffff', headerGradient: 'linear-gradient(90deg, rgba(0,119,182,0.08), rgba(0,180,216,0.08))', border: 'rgba(0,119,182,0.15)', shadow: 'rgba(0,119,182,0.12)', inputBackground: '#f0f9ff', inputBorder: '#bae6fd' } },\n TWILIGHT: { colors: { primary: '#9333ea', primaryLight: '#a855f7', primaryDark: '#7e22ce', secondary: '#ec4899', background: '#ffffff', backgroundGradient: '#faf5ff', text: '#1e293b', textSecondary: '#64748b', userBubble: 'linear-gradient(135deg, #9333ea, #ec4899)', aiBubble: '#ffffff', headerGradient: 'linear-gradient(90deg, rgba(147,51,234,0.08), rgba(236,72,153,0.08))', border: 'rgba(147,51,234,0.15)', shadow: 'rgba(147,51,234,0.12)', inputBackground: '#faf5ff', inputBorder: '#e9d5ff' } },\n MINT: { colors: { primary: '#14b8a6', primaryLight: '#2dd4bf', primaryDark: '#0d9488', secondary: '#06b6d4', background: '#ffffff', backgroundGradient: '#f0fdfa', text: '#1e293b', textSecondary: '#64748b', userBubble: 'linear-gradient(135deg, #14b8a6, #2dd4bf)', aiBubble: '#ffffff', headerGradient: 'linear-gradient(90deg, rgba(20,184,166,0.08), rgba(6,182,212,0.08))', border: 'rgba(20,184,166,0.15)', shadow: 'rgba(20,184,166,0.12)', inputBackground: '#f0fdfa', inputBorder: '#99f6e4' } },\n ROSE: { colors: { primary: '#e11d48', primaryLight: '#fb7185', primaryDark: '#be123c', secondary: '#f43f5e', background: '#ffffff', backgroundGradient: '#fff1f2', text: '#1e293b', textSecondary: '#64748b', userBubble: 'linear-gradient(135deg, #e11d48, #fb7185)', aiBubble: '#ffffff', headerGradient: 'linear-gradient(90deg, rgba(225,29,72,0.08), rgba(244,63,94,0.08))', border: 'rgba(225,29,72,0.15)', shadow: 'rgba(225,29,72,0.12)', inputBackground: '#fff1f2', inputBorder: '#fecdd3' } },\n AURORA: { colors: { primary: '#0ea5e9', primaryLight: '#38bdf8', primaryDark: '#0284c7', secondary: '#10b981', background: '#ffffff', backgroundGradient: '#f0f9ff', text: '#1e293b', textSecondary: '#64748b', userBubble: 'linear-gradient(135deg, #0ea5e9, #10b981)', aiBubble: '#ffffff', headerGradient: 'linear-gradient(90deg, rgba(14,165,233,0.08), rgba(16,185,129,0.08))', border: 'rgba(14,165,233,0.15)', shadow: 'rgba(14,165,233,0.12)', inputBackground: '#f0f9ff', inputBorder: '#bae6fd' } },\n LAVENDER: { colors: { primary: '#8b5cf6', primaryLight: '#a78bfa', primaryDark: '#7c3aed', secondary: '#c084fc', background: '#ffffff', backgroundGradient: '#faf5ff', text: '#1e293b', textSecondary: '#64748b', userBubble: 'linear-gradient(135deg, #8b5cf6, #c084fc)', aiBubble: '#ffffff', headerGradient: 'linear-gradient(90deg, rgba(139,92,246,0.08), rgba(192,132,252,0.08))', border: 'rgba(139,92,246,0.15)', shadow: 'rgba(139,92,246,0.12)', inputBackground: '#faf5ff', inputBorder: '#ddd6fe' } },\n CORAL: { colors: { primary: '#f97316', primaryLight: '#fb923c', primaryDark: '#ea580c', secondary: '#f43f5e', background: '#ffffff', backgroundGradient: '#fff7ed', text: '#1e293b', textSecondary: '#64748b', userBubble: 'linear-gradient(135deg, #f97316, #fb923c)', aiBubble: '#ffffff', headerGradient: 'linear-gradient(90deg, rgba(249,115,22,0.08), rgba(244,63,94,0.08))', border: 'rgba(249,115,22,0.15)', shadow: 'rgba(249,115,22,0.12)', inputBackground: '#fff7ed', inputBorder: '#fed7aa' } },\n JADE: { colors: { primary: '#059669', primaryLight: '#10b981', primaryDark: '#047857', secondary: '#34d399', background: '#ffffff', backgroundGradient: '#f0fdf4', text: '#1e293b', textSecondary: '#64748b', userBubble: 'linear-gradient(135deg, #059669, #10b981)', aiBubble: '#ffffff', headerGradient: 'linear-gradient(90deg, rgba(5,150,105,0.08), rgba(52,211,153,0.08))', border: 'rgba(5,150,105,0.15)', shadow: 'rgba(5,150,105,0.12)', inputBackground: '#f0fdf4', inputBorder: '#bbf7d0' } },\n STARSKY: { colors: { primary: '#6366f1', primaryLight: '#818cf8', primaryDark: '#4f46e5', secondary: '#a855f7', background: '#0f172a', backgroundGradient: '#1e1b4b', text: '#e2e8f0', textSecondary: '#94a3b8', userBubble: 'linear-gradient(135deg, #6366f1, #a855f7)', aiBubble: '#1e1b4b', headerGradient: 'linear-gradient(90deg, rgba(99,102,241,0.15), rgba(168,85,247,0.15))', border: 'rgba(99,102,241,0.3)', shadow: 'rgba(0,0,0,0.3)', inputBackground: '#1e1b4b', inputBorder: '#312e81' } },\n SUNSET: { colors: { primary: '#ea580c', primaryLight: '#f97316', primaryDark: '#c2410c', secondary: '#dc2626', background: '#ffffff', backgroundGradient: '#fff8f0', text: '#1e293b', textSecondary: '#64748b', userBubble: 'linear-gradient(135deg, #ea580c, #dc2626)', aiBubble: '#ffffff', headerGradient: 'linear-gradient(90deg, rgba(234,88,12,0.08), rgba(220,38,38,0.08))', border: 'rgba(234,88,12,0.15)', shadow: 'rgba(234,88,12,0.12)', inputBackground: '#fff8f0', inputBorder: '#fed7aa' } }\n };\n\n class AIChatDialog extends HTMLElement {\n static get observedAttributes() { return ['visible']; }\n\n constructor() {\n super();\n this.attachShadow({ mode: 'open' });\n this._messages = [];\n this._isLoading = false;\n this._config = null;\n this._mockMode = false;\n this._isDragging = false;\n this._isExpanded = false;\n this._chatClient = null;\n this._attachments = [];\n this._dragStartX = 0;\n this._dragStartY = 0;\n this._dialogX = 0;\n this._dialogY = 0;\n this._appDetail = null;\n this._historyVisible = false;\n this._historyRecords = [];\n this._historyLoading = false;\n this._historyLoaded = false;\n this._historyPageIndex = 1;\n this._historyHasMore = false;\n // P2-17: 移动端检测状态\n this._isMobile = false;\n // Streaming: per-chunk render, RAF typewriter when has runtime events\n this._streamTextEl = null;\n this._streamInitDone = false;\n this._streamFullText = '';\n this._streamVisibleLength = 0;\n this._streamTypeRaf = null;\n this._streaming = false;\n // Runtime panel DOM reference for incremental updates\n this._runtimePanelEl = null;\n this._runtimeEventsContainerEl = null;\n this._runtimeStatusEl = null;\n this._runtimeCountEl = null;\n\n // ====== 默认主题配置(与 themes.js DEFAULT_THEME 完全一致) ======\n this._themeVars = {\n '--ai-primary': '#1890ff',\n '--ai-primary-light': '#40a9ff',\n '--ai-primary-dark': '#096dd9',\n '--ai-secondary': '#722ed1',\n '--ai-bg': '#ffffff',\n '--ai-bg-gradient': '#f8fafc',\n '--ai-text': '#1e293b',\n '--ai-text-secondary': '#64748b',\n '--ai-user-bubble-gradient': 'linear-gradient(135deg, #1890ff, #40a9ff)',\n '--ai-ai-bubble-bg': '#ffffff',\n '--ai-header-gradient': 'linear-gradient(90deg, rgba(24, 144, 255, 0.08), rgba(114, 46, 209, 0.08))',\n '--ai-border': 'rgba(24, 144, 255, 0.15)',\n '--ai-shadow': 'rgba(24, 144, 255, 0.12)',\n '--ai-input-bg': '#f8fafc',\n '--ai-input-border': '#e2e8f0',\n '--ai-loading': '#64748b',\n '--ai-success': '#52c41a',\n '--ai-error': '#ff4d4f',\n '--ai-warning': '#faad14',\n '--ai-radius-dialog': '16px',\n '--ai-radius-bubble': '18px', /* 气泡实际用 18px 但 border-radius: var(--ai-radius-bubble) */\n '--ai-radius-button': '50%',\n '--ai-radius-input': '28px',\n '--ai-radius-small': '6px',\n '--ai-radius-medium': '12px',\n '--ai-font-title': '15px',\n '--ai-font-welcome-text': '17px',\n '--ai-font-welcome-desc': '13px',\n '--ai-font-message': '14px',\n '--ai-font-time': '11px',\n '--ai-font-small': '11px',\n '--ai-shadow-dialog': '0 0 30px rgba(24, 144, 255, 0.12), 0 8px 32px rgba(0, 0, 0, 0.1)',\n '--ai-shadow-bubble': '0 2px 8px rgba(0, 0, 0, 0.06)',\n '--ai-shadow-user-bubble': '0 4px 12px rgba(24, 144, 255, 0.25)',\n '--ai-shadow-button': '0 4px 12px rgba(24, 144, 255, 0.35)'\n };\n\n this.render();\n this.bindEvents();\n }\n\n // ==================== 生命周期 ====================\n\n connectedCallback() {\n // P1-8: 网络状态监控(与Vue版一致)\n this._handleOnline = () => {\n const tip = this.shadowRoot.querySelector('.network-tip');\n if (tip) tip.remove();\n };\n this._handleOffline = () => {\n if (!this.shadowRoot.querySelector('.network-tip')) {\n const tip = document.createElement('div');\n tip.className = 'network-tip';\n tip.textContent = '网络连接已断开,请检查网络后重试';\n this._dialog?.prepend(tip);\n setTimeout(() => tip.remove(), 5000);\n }\n };\n window.addEventListener('online', this._handleOnline);\n window.addEventListener('offline', this._handleOffline);\n\n // P2-17: 移动端环境检测(与Vue版 detectEnvironment 一致)\n this._detectMobile();\n // P2-17: 窗口resize时重新检测移动端\n this._handleResize = () => {\n const wasMobile = this._isMobile;\n this._detectMobile();\n // 检测结果变化时,重新应用布局\n if (wasMobile !== this._isMobile && this._dialog) {\n this._applyMobileLayout();\n }\n };\n window.addEventListener('resize', this._handleResize);\n\n // 恢复后台Token刷新定时器(SPA路由切换后 re-attach 场景)\n if (this._chatClient) this._chatClient.startBackgroundRefresh();\n }\n\n disconnectedCallback() {\n // P1-8: 清理网络状态监听\n if (this._handleOnline) window.removeEventListener('online', this._handleOnline);\n if (this._handleOffline) window.removeEventListener('offline', this._handleOffline);\n // P2-17: 清理resize监听\n if (this._handleResize) window.removeEventListener('resize', this._handleResize);\n // 暂停后台Token刷新定时器(detach时停止,re-attach时由connectedCallback恢复)\n if (this._chatClient) {\n this._chatClient.stopBackgroundRefresh();\n this._chatClient.cancelCurrentRequest();\n }\n }\n\n // P2-17: 移动端4维检测(与Vue版 isMobileDevice 计算属性完全一致)\n _detectMobile() {\n // 1. 优先使用显式配置\n if (this._config?.mobileMode !== undefined) {\n this._isMobile = !!this._config.mobileMode;\n return;\n }\n\n // 2. 微信小程序环境检测\n if (typeof wx !== 'undefined' && wx.getSystemInfoSync) {\n this._isMobile = true;\n return;\n }\n\n // 3. 浏览器环境\n if (typeof window === 'undefined') { this._isMobile = false; return; }\n\n // 4. User Agent 正则匹配\n const ua = navigator.userAgent || '';\n const isMobileUA = /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(ua);\n\n // 5. 屏幕宽度 < 768px + 触摸支持\n const isSmallScreen = window.innerWidth < 768;\n const hasTouch = 'ontouchstart' in window || navigator.maxTouchPoints > 0;\n\n // 综合判断:UA匹配 或 (小屏幕+触摸)\n this._isMobile = isMobileUA || (isSmallScreen && hasTouch);\n }\n\n // P2-17: 应用移动端/桌面端布局(自动全屏或恢复浮动气泡)\n _applyMobileLayout() {\n if (!this._dialog) return;\n if (this._isMobile) {\n // 移动端:强制全屏(与Vue版 dialogStyle 一致)\n this._dialog.style.width = '100vw';\n this._dialog.style.height = '100vh';\n this._dialog.style.maxHeight = 'none';\n this._dialog.style.minHeight = '0';\n this._dialog.style.left = '0';\n this._dialog.style.top = '0';\n this._dialog.style.right = 'auto';\n this._dialog.style.bottom = 'auto';\n this._dialog.style.borderRadius = '0';\n this._dialog.classList.add('mobile-mode');\n // 移动端隐藏展开按钮\n if (this._expandBtn) this._expandBtn.style.display = 'none';\n } else {\n // 桌面端:恢复默认尺寸\n if (!this._isExpanded) {\n this._dialog.style.width = 'min(420px, calc(100vw - 48px))';\n this._dialog.style.height = 'min(640px, 80vh)';\n this._dialog.style.maxHeight = '';\n this._dialog.style.minHeight = '';\n this._dialog.style.left = this._dialogX ? this._dialogX + 'px' : 'auto';\n this._dialog.style.right = this._dialogX ? 'auto' : '24px';\n this._dialog.style.top = this._dialogY ? this._dialogY + 'px' : DEFAULT_DIALOG_TOP;\n this._dialog.style.bottom = 'auto';\n }\n this._dialog.classList.remove('mobile-mode');\n // 清除移动端留下的内联border-radius,让CSS变量(--ai-radius-dialog)重新接管\n this._dialog.style.borderRadius = '';\n // 恢复展开按钮\n if (this._expandBtn) this._expandBtn.style.display = '';\n }\n }\n\n attributeChangedCallback(name, oldValue, newValue) {\n if (name === 'visible') {\n const visible = this.hasAttribute('visible');\n if (visible) this.showDialog(); else this.hideDialog();\n }\n }\n\n // ==================== 属性访问器 ====================\n\n get visible() { return this.hasAttribute('visible'); }\n set visible(v) { v ? this.setAttribute('visible', '') : this.removeAttribute('visible'); }\n get messages() { return this._messages; }\n get isLoading() { return this._isLoading; }\n get config() { return this._config; }\n\n // ==================== 公共API ====================\n\n init(config = {}) {\n this._config = {\n apiBaseUrl: '',\n apiEndpoint: '/v1/app/completion',\n streamEndpoint: '/v1/app/completion/stream',\n stopEndpoint: '/v1/app/completion/stop',\n attachmentUploadEndpoint: '/v1/app/attachment/upload',\n conversationQueryEndpoint: '/v1/app/conversation/query',\n conversationDeleteEndpoint: '/v1/app/conversation/delete',\n appDetailEndpoint: '/v1/app/{appId}',\n appId: '',\n userId: '',\n bizType: '',\n token: '',\n refreshToken: '',\n tokenExpiresAt: 0,\n tokenRefreshBufferMs: 60000,\n refreshTokenFn: null,\n onTokenRefreshed: null,\n onTokenExpired: null,\n authErrorCodes: [],\n title: 'AI 助手',\n welcomeText: 'Hi,我是智能助手 ~\\n欢迎随时提问',\n welcomeDesc: '全新自动化能力上线:任务交给我,自动帮你搞定!',\n footerDisclaimer: '推荐和回答由 AI 生成,仅供参考',\n footerIdentity: '',\n theme: 'default',\n enableDrag: true,\n // P0: 自定义请求头透传(与Vue版一致)\n headers: {},\n // P0: 扩展信息随请求发送\n extendInfo: {},\n // P0: 请求超时控制(毫秒,默认60s)\n timeout: 60000,\n // P0: 自动重试次数\n maxRetries: 3,\n // P1-11: 输入框字数限制(默认500,与Vue版一致)\n maxLength: 500,\n // P1-12: 最大消息数(替代硬编码50)\n maxMessages: 50,\n historyPageSize: 20,\n historyDays: 30,\n // P2-17: 移动端模式(undefined=自动检测, true=强制移动端(全屏), false=强制桌面端)\n mobileMode: undefined,\n authFn: null,\n onLoad: null,\n onError: null,\n suggestions: [\n { label: '帮我购买一台轻量应用服务器用于部署应用', value: '帮我购买一台轻量应用服务器用于部署应用' },\n { label: '帮我为我的域名申请并配置SSL证书', value: '帮我为我的域名申请并配置SSL证书' }\n ],\n ...config\n };\n if (!this._config.appId && this._config.agentAppId) this._config.appId = this._config.agentAppId;\n this._chatClient = new AIChatClient(this._config);\n if (this._conversationId) this._chatClient.setConversationId(this._conversationId);\n this.applyConfig();\n this.loadAppDetail();\n // 触发 onLoad 回调(与Vue版一致)\n if (this._config?.onLoad) this._config.onLoad(this);\n this.dispatchEvent(new CustomEvent('init', { detail: { config: this._config } }));\n return this;\n }\n\n open() { this.visible = true; if (this._config?.onOpen) this._config.onOpen(); this.dispatchEvent(new CustomEvent('open')); return this; }\n close() { this.visible = false; this._isExpanded = false; if (this._config?.onClose) this._config.onClose(); this.dispatchEvent(new CustomEvent('close')); return this; }\n toggle(forceState) { if (forceState !== undefined) this.visible = !!forceState; else this.visible = !this.visible; return this; }\n destroy() { if (this._chatClient) this._chatClient.dispose(); if (this.parentNode) this.parentNode.removeChild(this); }\n\n addMessage(message) {\n if (!message || !message.content) return this;\n const msg = {\n id: message.id || `msg_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`,\n type: message.type || (message.role === 'user' ? 'user' : 'ai'),\n content: message.content,\n time: message.time || message.timestamp || this.formatTime(),\n copied: false,\n errorType: message.errorType || null,\n ...message\n };\n this._messages.push(msg);\n // P1-12: 最大消息数限制(可配置,默认50)\n const maxMsg = this._config?.maxMessages ?? 50;\n if (this._messages.length > maxMsg) this._messages = this._messages.slice(-maxMsg);\n this.renderMessages({ forceScroll: true });\n return this;\n }\n\n clearMessages() { this._messages = []; this.renderMessages(); return this; }\n setLoading(loading) { \n this._isLoading = loading; \n this.updateLoadingUI(); \n // P1-9: 触发 loading-change 事件(与Vue版一致)\n this.dispatchEvent(new CustomEvent('loading-change', { detail: { loading } }));\n return this; \n }\n updateConfig(config) {\n if (!this._config) this.init(config);\n else {\n Object.assign(this._config, config);\n if (!this._config.appId && this._config.agentAppId) this._config.appId = this._config.agentAppId;\n if (this._chatClient) this._chatClient.updateConfig(this._config);\n this.loadAppDetail();\n }\n this.applyConfig();\n return this;\n }\n enableMockMode() { this._mockMode = true; return this; }\n disableMockMode() { this._mockMode = false; return this; }\n\n // ==================== 显示/隐藏 ====================\n\n showDialog() {\n const dialog = this.shadowRoot.querySelector('.ai-chat-dialog');\n const btn = this.shadowRoot.querySelector('.float-button');\n if (dialog) dialog.classList.add('dialog-visible');\n if (btn) btn.style.display = 'none';\n // P2-17: 显示时应用移动端/桌面端布局\n if (dialog) this._applyMobileLayout();\n }\n\n hideDialog() {\n const dialog = this.shadowRoot.querySelector('.ai-chat-dialog');\n const btn = this.shadowRoot.querySelector('.float-button');\n if (dialog) dialog.classList.remove('dialog-visible');\n if (btn) btn.style.display = 'flex';\n }\n\n // ==================== 渲染(完整CSS对齐theme.css) ====================\n\n render() {\n const cssVarsStr = Object.entries(this._themeVars).map(([k, v]) => `${k}:${v};`).join('\\n ');\n\n this.shadowRoot.innerHTML = `\n<style>\n /* ====== CSS 变量(与Vue版DEFAULT_THEME一致) ====== */\n :host {\n ${cssVarsStr}\n display: block;\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n z-index: 1000;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif;\n --ai-primary: #2563eb;\n --ai-primary-light: #3b82f6;\n --ai-primary-dark: #1d4ed8;\n --ai-secondary: #475569;\n --ai-bg: #ffffff;\n --ai-bg-gradient: #f8fafc;\n --ai-text: #111827;\n --ai-text-secondary: #64748b;\n --ai-border: #e5e7eb;\n --ai-shadow: rgba(15, 23, 42, 0.08);\n --ai-input-bg: #ffffff;\n --ai-input-border: #d8dee8;\n --ai-radius-dialog: 0;\n --ai-radius-bubble: 10px;\n }\n\n /* ====== 外层容器(与Vue .ai-float-container 一致) ====== */\n .ai-float-container { position: relative; }\n\n /* ====== 对话框主体(与Vue .ai-chat-dialog 完全一致) ====== */\n .ai-chat-dialog {\n position: fixed;\n top: 96px;\n right: 24px;\n bottom: auto;\n width: min(420px, calc(100vw - 48px));\n height: min(640px, 80vh);\n background: var(--ai-bg);\n border-radius: 16px;\n border: 1px solid rgba(226, 232, 240, 0.78);\n box-shadow: 0 18px 44px rgba(15, 23, 42, 0.16);\n display: flex;\n flex-direction: column;\n min-height: 0;\n overflow: hidden;\n transition: opacity 0.26s ease, transform 0.26s ease;\n backdrop-filter: none;\n opacity: 0;\n transform: translateX(18px);\n pointer-events: none;\n }\n /* 显示状态 */\n .ai-chat-dialog.dialog-visible {\n opacity: 1;\n transform: translateX(0);\n pointer-events: auto;\n }\n\n /* 外发光效果(::before 伪元素)*/\n .ai-chat-dialog::before {\n display: none;\n }\n .ai-chat-dialog:not(.expanded) { cursor: default; }\n .ai-chat-dialog.dragging { transition: none; }\n\n /* ========== 头部样式(与Vue .dialog-header 完全一致) ========== */\n .dialog-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n min-height: 54px;\n padding: 0 16px 0 20px;\n background: #ffffff;\n color: var(--ai-text);\n cursor: default;\n user-select: none;\n position: relative;\n flex-shrink: 0;\n }\n /* 底部微妙阴影分隔 */\n .dialog-header::after { display: none; }\n .ai-chat-dialog.expanded .dialog-header { cursor: default; }\n .dialog-header:active { cursor: grabbing; }\n .header-left {\n display: flex;\n align-items: center;\n min-width: 0;\n }\n .robot-icon {\n display: none;\n }\n @keyframes gentlePulse { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.06); } }\n .header-title {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n font-size: 15px;\n font-weight: 650;\n color: var(--ai-text);\n letter-spacing: 0;\n }\n .header-right { display: flex; align-items: center; gap: 8px; margin-left: 12px; }\n .header-icon {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 24px;\n height: 24px;\n font-size: 14px;\n cursor: pointer;\n color: var(--ai-text-secondary);\n transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);\n border-radius: 6px;\n background: transparent;\n border: none;\n }\n .new-chat-btn {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 24px;\n height: 24px;\n border-radius: 6px;\n border: none;\n background: transparent;\n color: var(--ai-text-secondary);\n cursor: pointer;\n padding: 0;\n transition: color 0.18s ease, background 0.18s ease;\n }\n .new-chat-btn:hover {\n color: #111827;\n background: #f3f4f6;\n }\n .new-chat-btn svg {\n width: 20px;\n height: 20px;\n stroke: currentColor;\n }\n .history-btn svg {\n width: 19px;\n height: 19px;\n stroke: currentColor;\n }\n .header-icon svg {\n width: 20px;\n height: 20px;\n flex-shrink: 0;\n }\n .header-icon svg path { stroke: currentColor; fill: none; }\n .header-icon:hover {\n color: #111827;\n background: #f3f4f6;\n }\n\n /* ========== 主体样式(与Vue .dialog-body 完全一致) ========== */\n .dialog-body {\n flex: 1;\n flex-basis: 0;\n min-height: 0;\n overflow-y: auto;\n overscroll-behavior: contain;\n -webkit-overflow-scrolling: touch;\n padding: 18px 28px 22px;\n background: linear-gradient(180deg, #f7faff 0, #ffffff 184px);\n scrollbar-width: thin;\n scrollbar-color: transparent transparent;\n }\n .dialog-body::-webkit-scrollbar { width: 4px; }\n .dialog-body::-webkit-scrollbar-track { background: transparent; }\n .dialog-body::-webkit-scrollbar-thumb {\n background: var(--ai-border);\n border-radius: 10px;\n opacity: 0.3;\n }\n .dialog-body::-webkit-scrollbar-thumb:hover { opacity: 0.6; }\n\n /* ========== 欢迎页(与Vue .empty-state / .welcome-content 完全一致) ========== */\n .empty-state {\n height: 100%;\n display: flex;\n flex-direction: column;\n justify-content: flex-start;\n align-items: stretch;\n text-align: left;\n padding: 0 0 18px;\n }\n .welcome-content { margin-bottom: 0; width: 100%; }\n @keyframes floatUp { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-8px); } }\n\n /* 欢迎标题 - 渐变品牌色 */\n .welcome-text {\n white-space: pre-line;\n font-size: 24px;\n line-height: 1.32;\n margin-bottom: 10px;\n font-weight: 800;\n letter-spacing: 0;\n color: #111827;\n background: none;\n -webkit-text-fill-color: currentColor;\n }\n .welcome-desc {\n font-size: 14px;\n color: var(--ai-text-secondary);\n line-height: 1.58;\n max-width: 360px;\n margin: 0 0 20px;\n }\n\n /* 快捷建议按钮组(与Vue .quick-suggestions / .suggestion-chip 一致) */\n .quick-suggestions {\n display: flex;\n flex-direction: column;\n flex-wrap: nowrap;\n justify-content: flex-start;\n gap: 10px;\n margin-top: 0;\n max-width: none;\n animation: none;\n }\n @keyframes fadeInUp {\n from { opacity: 0; transform: translateY(12px); }\n to { opacity: 1; transform: translateY(0); }\n }\n .suggestion-chip {\n display: inline-flex;\n align-items: center;\n justify-content: space-between;\n gap: 12px;\n width: 100%;\n min-height: 40px;\n padding: 0 18px;\n border-radius: 30px;\n font-size: 12px;\n color: #1f2937;\n background: #ffffff;\n border: 1px solid #dfe5ee;\n cursor: pointer;\n transition: border-color 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease;\n white-space: normal;\n user-select: none;\n box-sizing: border-box;\n box-shadow: 0 4px 12px rgba(15, 23, 42, 0.03);\n }\n .suggestion-chip::after {\n content: '→';\n color: #111827;\n font-size: 18px;\n line-height: 1;\n }\n .suggestion-chip:hover {\n color: #111827;\n background: #ffffff;\n border-color: #cbd5e1;\n box-shadow: 0 8px 22px rgba(15, 23, 42, 0.08);\n transform: translateY(-1px);\n }\n .suggestion-chip:active { transform: translateY(0) scale(0.97); }\n .suggestion-chip .chip-icon { font-size: 17px; opacity: 0.85; color: #f97316; }\n .suggestion-chip:hover .chip-icon { opacity: 1; }\n\n .history-view {\n height: 100%;\n display: flex;\n flex-direction: column;\n min-height: 0;\n }\n .history-head {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 12px;\n margin-bottom: 14px;\n }\n .history-title {\n font-size: 15px;\n font-weight: 650;\n color: var(--ai-text);\n }\n .history-back {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n border: none;\n background: transparent;\n color: var(--ai-text-secondary);\n cursor: pointer;\n font-size: 13px;\n padding: 4px 0;\n }\n .history-back:hover { color: var(--ai-primary); }\n .history-list {\n flex: 1;\n min-height: 0;\n overflow-y: auto;\n display: flex;\n flex-direction: column;\n gap: 8px;\n }\n .history-item {\n width: 100%;\n text-align: left;\n border: 1px solid #e5e7eb;\n background: #fff;\n border-radius: 8px;\n padding: 10px 12px;\n cursor: pointer;\n transition: border-color 0.18s ease, background 0.18s ease;\n }\n .history-item:hover {\n border-color: #cbd5e1;\n background: #f8fafc;\n }\n .history-item-title {\n color: #111827;\n font-size: 13px;\n font-weight: 600;\n line-height: 1.45;\n overflow: hidden;\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n }\n .history-item-preview {\n margin-top: 5px;\n color: var(--ai-text-secondary);\n font-size: 12px;\n line-height: 1.45;\n overflow: hidden;\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n }\n .history-empty,\n .history-loading {\n color: var(--ai-text-secondary);\n font-size: 13px;\n line-height: 1.6;\n padding: 28px 0;\n text-align: center;\n }\n .history-load-more {\n display: block;\n width: 100%;\n margin: 10px 0 0;\n padding: 8px 0;\n border: none;\n border-radius: 8px;\n background: rgba(24, 144, 255, 0.06);\n color: var(--ai-primary, #1890ff);\n font-size: 13px;\n font-weight: 500;\n cursor: pointer;\n transition: background 0.18s ease;\n }\n .history-load-more:hover {\n background: rgba(24, 144, 255, 0.12);\n }\n\n /* ========== 消息列表(与Vue .message-list 一致) ==========*/\n .message-list {\n display: flex;\n flex-direction: column;\n gap: 9px;\n min-height: min-content;\n }\n .message-item {\n display: flex;\n gap: 0;\n max-width: 100%;\n width: 100%;\n animation: messageSlideIn 0.35s cubic-bezier(0.4, 0, 0.2, 1);\n }\n @keyframes messageSlideIn {\n from { opacity: 0; transform: translateY(10px) scale(0.98); }\n to { opacity: 1; transform: translateY(0) scale(1); }\n }\n .message-item.user { justify-content: flex-end; align-self: stretch; }\n .message-item.ai { justify-content: flex-start; align-self: stretch; }\n\n /* ========== 头像(与Vue .message-avatar 一致) ========== */\n .message-avatar {\n display: none;\n }\n .message-item.user .message-avatar {\n background: #eef2ff;\n color: #2563eb;\n box-shadow: none;\n }\n .message-item.ai .message-avatar {\n background: #f1f5f9;\n color: #334155;\n box-shadow: none;\n }\n .message-item.ai .message-avatar::after { display: none; }\n @keyframes avatarGlow {\n from { opacity: 0.4; }\n to { opacity: 0.85; }\n }\n\n .message-content {\n display: flex;\n flex-direction: column;\n gap: 5px;\n min-width: 0;\n }\n .message-item.ai .message-content { width: 100%; }\n .message-item.user .message-content { max-width: 86%; }\n .message-item.user .message-content { align-items: flex-end; }\n\n /* ========== 消息气泡(与Vue .message-bubble 一致) ========== */\n .message-bubble {\n padding: 12px 14px;\n border-radius: 8px;\n font-size: var(--ai-font-message);\n line-height: 1.65;\n word-wrap: break-word;\n }\n .message-item.user .message-bubble {\n background: #eff6ff;\n color: #1e3a8a;\n border: 1px solid #dbeafe;\n border-bottom-right-radius: 8px;\n box-shadow: none;\n }\n .message-item.ai .message-bubble {\n box-sizing: border-box;\n background: #ffffff;\n color: var(--ai-text);\n border: none;\n border-bottom-left-radius: 8px;\n box-shadow: none;\n width: 100%;\n padding: 12px 14px;\n }\n\n /* ========== Markdown 内容样式(marked渲染结果) ========== */\n .message-text {\n overflow-wrap: break-word;\n word-break: break-word;\n }\n .message-text p { margin: 4px 0; }\n .message-text p:first-child { margin-top: 0; }\n .message-text p:last-child { margin-bottom: 0; }\n\n /* 标题 */\n .message-text h1, .message-text h2, .message-text h3,\n .message-text h4, .message-text h5, .message-text h6 {\n margin: 12px 0 6px; font-weight: 600; line-height: 1.4;\n }\n .message-text h1 { font-size: 1.25em; }\n .message-text h2 { font-size: 1.15em; border-bottom: 1px solid var(--ai-border); padding-bottom: 4px; }\n .message-text h3 { font-size: 1.08em; }\n\n /* 行内代码 + 代码块 */\n .message-text code {\n font-family: 'Cascadia Code', 'Fira Code', 'JetBrains Mono', Consolas, monospace;\n font-size: 0.88em;\n background: rgba(24, 144, 255, 0.1);\n color: var(--ai-primary, #1890ff);\n padding: 2px 5px;\n border-radius: 4px;\n }\n .message-text pre {\n margin: 10px 0;\n border-radius: 8px;\n overflow-x: auto;\n background: #1e293b;\n color: #e2e8f0;\n }\n .message-text pre code {\n display: block;\n padding: 12px 14px;\n background: none;\n color: inherit;\n font-size: 0.85em;\n line-height: 1.55;\n border-radius: 0;\n }\n\n /* 列表 */\n .message-text ul, .message-text ol { margin: 8px 0; padding-left: 20px; }\n .message-text li { margin: 3px 0; }\n .message-text li::marker { color: var(--ai-primary, #1890ff); }\n\n /* 引用块 */\n .message-text blockquote {\n margin: 10px 0;\n padding: 8px 14px;\n border-left: 3px solid var(--ai-primary, #1890ff);\n background: rgba(24, 144, 255, 0.05);\n color: var(--ai-text-secondary, #64748b);\n border-radius: 0 6px 6px 0;\n }\n\n /* 表格 */\n .message-text table {\n width: 100%;\n margin: 10px 0;\n border-collapse: collapse;\n font-size: 0.93em;\n }\n .message-text th, .message-text td {\n padding: 7px 10px;\n border: 1px solid var(--ai-border, #e2e8f0);\n text-align: left;\n }\n .message-text th {\n background: rgba(24, 144, 255, 0.08);\n font-weight: 600;\n }\n\n /* 链接 */\n .message-text a {\n color: var(--ai-primary, #1890ff);\n text-decoration: none;\n transition: opacity 0.15s;\n }\n .message-text a:hover { text-decoration: underline; opacity: 0.85; }\n\n /* 分隔线 */\n .message-text hr {\n margin: 12px 0;\n border: none;\n border-top: 1px solid var(--ai-border, #e2e8f0);\n }\n\n /* 图片(限制宽度防撑破) */\n .message-text img {\n max-width: 100%;\n border-radius: 6px;\n margin: 8px 0;\n }\n\n /* 加载状态 - 三点脉冲动画(与Vue一致) */\n .message-bubble.loading {\n display: flex;\n align-items: center;\n gap: 6px;\n color: var(--ai-text-secondary);\n border: none;\n background: transparent;\n padding: 4px 0;\n min-height: 44px;\n }\n .message-bubble.loading .thinking-text {\n color: var(--ai-text-secondary);\n font-size: 13px;\n margin-right: 4px;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"PingFang SC\", sans-serif;\n }\n .message-bubble.loading .typing-indicator {\n display: inline-flex;\n align-items: center;\n gap: 5px;\n }\n .message-bubble.loading .typing-dot {\n width: 7px;\n height: 7px;\n border-radius: 50%;\n background: var(--ai-primary);\n animation: typingBounce 1.4s ease-in-out infinite;\n }\n .message-bubble.loading .typing-dot:nth-child(2) { animation-delay: 0s; }\n .message-bubble.loading .typing-dot:nth-child(3) { animation-delay: 0.16s; }\n .message-bubble.loading .typing-dot:nth-child(4) { animation-delay: 0.32s; }\n @keyframes typingBounce {\n 0%, 60%, 100% { transform: translateY(0); opacity: 0.35; }\n 30% { transform: translateY(-8px); opacity: 1; }\n }\n .message-text { margin: 0; word-break: break-word; font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"PingFang SC\", sans-serif; }\n\n /* ========== 操作栏(与Vue .message-actions-bar 一致) ========== */\n .message-actions-bar {\n display: flex;\n align-items: center;\n justify-content: flex-start;\n gap: 10px;\n margin-top: 8px;\n }\n .action-icons { display: flex; gap: 5px; }\n .action-icon {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n height: 32px;\n border-radius: 9px;\n cursor: pointer;\n transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);\n color: var(--ai-text-secondary);\n background: transparent;\n font-size: 14px;\n border: none;\n }\n .action-icon svg {\n width: 16px;\n height: 16px;\n stroke: currentColor;\n flex-shrink: 0;\n }\n .action-icon:hover {\n color: var(--ai-primary);\n background: var(--ai-shadow);\n transform: translateY(-1px);\n }\n .action-icon:active { transform: translateY(0) scale(0.95); }\n .action-icon.copied {\n color: var(--ai-success);\n background: rgba(16, 185, 129, 0.08);\n }\n\n /* ========== 底部输入框(与Vue .dialog-footer 一致) ========== */\n .dialog-footer {\n padding: 8px 18px 14px;\n background: var(--ai-bg);\n position: relative;\n flex-shrink: 0;\n }\n /* 顶部微妙分隔线 */\n .dialog-footer::before {\n content: none;\n position: absolute;\n top: 0;\n left: 24px;\n right: 24px;\n height: 1px;\n background: linear-gradient(90deg, transparent, var(--ai-border), transparent);\n opacity: 0.4;\n }\n\n .input-container {\n position: relative;\n display: flex;\n flex-direction: column;\n width: 100%;\n background: #ffffff;\n border: 1px solid #dfe5ee;\n border-radius: 4px;\n overflow: hidden;\n padding: 0;\n min-height: 86px;\n cursor: text;\n z-index: 2;\n transition: border-color 0.18s ease, box-shadow 0.18s ease;\n box-shadow: 0 1px 4px rgba(15, 23, 42, 0.04);\n }\n .input-container:focus-within {\n border-color: var(--ai-primary);\n background: #ffffff;\n box-shadow: 0 0 0 2px rgba(37, 99, 235, 0.07), 0 2px 8px rgba(15, 23, 42, 0.06);\n transform: none;\n }\n .input-container:has(.message-input:disabled) { opacity: 0.55; cursor: not-allowed; }\n\n .message-input {\n width: 100%;\n min-height: 44px;\n max-height: 132px;\n border: none;\n background: transparent;\n font-size: var(--ai-font-message);\n color: var(--ai-text);\n outline: none;\n padding: 10px 12px 6px;\n line-height: 1.5;\n resize: none;\n overflow-y: hidden;\n box-sizing: border-box;\n }\n .message-input::placeholder { color: #9ca3af; font-style: normal; }\n .message-input:disabled { cursor: not-allowed; }\n .attachment-input { display: none; }\n .input-tools {\n display: flex;\n align-items: center;\n justify-content: space-between;\n min-height: 36px;\n padding: 0 8px 8px 8px;\n }\n .input-tool {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 28px;\n height: 28px;\n border-radius: 4px;\n border: none;\n color: #4b5563;\n font-size: 17px;\n cursor: pointer;\n }\n .input-tool svg {\n width: 18px;\n height: 18px;\n }\n .input-tool:hover {\n background: #f3f4f6;\n color: #111827;\n }\n .input-tool.has-attachment {\n color: var(--ai-primary);\n background: rgba(37, 99, 235, 0.08);\n }\n .input-tool.attach-tool { display: none; }\n\n /* 发送按钮(与Vue .send-btn 完全一致,含光泽动画)*/\n .send-btn {\n margin-left: auto;\n flex-shrink: 0;\n width: 28px;\n height: 28px;\n border-radius: 50%;\n border: none;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n background: var(--ai-primary);\n color: #fff;\n transition: background 0.18s ease, transform 0.18s ease;\n box-shadow: none;\n overflow: hidden;\n padding: 0;\n }\n .send-btn::before { display: none; }\n .send-btn:hover:not(:disabled) {\n transform: none;\n background: var(--ai-primary);\n box-shadow: none;\n }\n .send-btn:active:not(:disabled) { transform: translateY(0) scale(0.95); }\n .send-btn:disabled {\n background: #e5e7eb;\n cursor: not-allowed;\n color: #94A3B8;\n box-shadow: none;\n }\n .send-btn:disabled::before { display: none; }\n .send-btn svg {\n width: 16px;\n height: 16px;\n position: relative;\n z-index: 1;\n filter: none;\n transform: rotate(-45deg);\n }\n .footer-note {\n display: flex;\n justify-content: space-between;\n gap: 12px;\n padding: 10px 2px 0;\n color: #b5bbc5;\n font-size: 12px;\n line-height: 1;\n }\n .footer-note-left,\n .footer-note-right {\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n }\n\n /* ========== 悬浮按钮(与Vue .float-button 一致,含彩虹边框动画) ========== */\n .float-button {\n position: fixed;\n right: 32px;\n bottom: 24px;\n width: auto;\n height: 44px;\n min-width: 104px;\n gap: 8px;\n padding: 0 16px;\n border-radius: 22px;\n background: #ffffff;\n border: 1px solid #dfe5ee;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n box-shadow: 0 6px 18px rgba(15, 23, 42, 0.1);\n transition: border-color 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease;\n z-index: 1;\n overflow: hidden;\n }\n .float-button::before { content: 'AI 助手'; font-size: 14px; font-weight: 600; color: #111827; }\n @keyframes gradientRotate { to { transform: rotate(360deg); } }\n .float-button:hover {\n transform: translateY(-1px);\n border-color: #cbd5e1;\n box-shadow: 0 10px 24px rgba(15, 23, 42, 0.14);\n }\n .float-button:hover::before { opacity: 1; animation-play-state: initial; }\n\n /* 错误提示toast */\n .error-toast {\n position: absolute;\n top: 60px;\n left: 50%;\n transform: translateX(-50%);\n background: #fef2f2;\n border: 1px solid #fecaca;\n color: #dc2626;\n padding: 8px 16px;\n border-radius: 10px;\n font-size: 13px;\n z-index: 10;\n white-space: nowrap;\n animation: fadeInOut 3s forwards;\n }\n\n /* P1-8: 网络状态离线提示条 */\n .network-tip {\n position: absolute;\n top: 0; left: 0; right: 0;\n background: #fef3c7;\n border-bottom: 1px solid #fcd34d;\n color: #92400e;\n padding: 8px 12px;\n font-size: 13px;\n text-align: center;\n z-index: 10;\n border-radius: var(--ai-radius-l) var(--ai-radius-l) 0 0;\n }\n\n @keyframes fadeInOut {\n 0% { opacity: 0; transform: translateX(-50%) translateY(-8px); }\n 10% { opacity: 1; transform: translateX(-50%) translateY(0); }\n 80% { opacity: 1; transform: translateX(-50%) translateY(0); }\n 100% { opacity: 0; transform: translateX(-50%) translateY(-8px); }\n }\n\n /* P2-17: JS驱动移动端全屏模式样式(与Vue dialogStyle isMobile分支一致) */\n .ai-chat-dialog.mobile-mode {\n position: fixed !important;\n width: 100vw !important;\n height: 100vh !important;\n left: 0 !important;\n top: 0 !important;\n right: auto !important;\n bottom: auto !important;\n border-radius: 0 !important;\n max-width: none !important;\n max-height: none !important;\n }\n .mobile-mode .dialog-header {\n min-height: calc(54px + env(safe-area-inset-top));\n padding: env(safe-area-inset-top) 14px 0 16px;\n }\n .mobile-mode .header-title { font-size: 15px; }\n .mobile-mode .header-icon { width: 34px; height: 34px; }\n .mobile-mode .new-chat-btn { width: 34px; height: 34px; }\n .mobile-mode .dialog-body { padding: 16px 14px; }\n .mobile-mode .message-item { max-width: 100%; width: 100%; }\n .mobile-mode .message-bubble { padding: 11px 15px; font-size: 14px; }\n .mobile-mode .dialog-footer { padding: 12px 14px; padding-bottom: max(12px, env(safe-area-inset-bottom)); }\n .mobile-mode .input-container { border-radius: 4px; min-height: 86px; }\n .mobile-mode .message-input { font-size: 16px; padding: 10px 12px 6px; } /* iOS防自动缩放 */\n .mobile-mode .send-btn { width: 28px; height: 28px; }\n .mobile-mode .expand-btn { display: none !important; } /* 移动端隐藏展开按钮 */\n\n /* ========== 执行过程面板 ========== */\n .runtime-panel {\n margin-top: 8px;\n border: 1px solid rgba(24, 144, 255, 0.12);\n background: linear-gradient(180deg, rgba(248, 250, 252, 0.96), rgba(255, 255, 255, 0.96));\n border-radius: 10px;\n overflow: hidden;\n }\n .runtime-header {\n display: grid;\n grid-template-columns: auto 1fr auto auto;\n align-items: center;\n gap: 8px;\n padding: 9px 10px;\n font-size: 12px;\n color: var(--ai-text-secondary, #64748b);\n cursor: pointer;\n user-select: none;\n }\n .runtime-header:hover { color: var(--ai-primary, #1890ff); }\n .runtime-header .arrow { transition: transform 0.2s; font-size: 10px; }\n .runtime-header .arrow.expanded { transform: rotate(90deg); }\n .runtime-title {\n min-width: 0;\n display: flex;\n flex-direction: column;\n gap: 2px;\n }\n .runtime-title-main {\n color: var(--ai-text);\n font-weight: 600;\n line-height: 1.25;\n }\n .runtime-title-sub {\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n color: var(--ai-text-secondary);\n font-size: 11px;\n line-height: 1.25;\n }\n .runtime-status {\n padding: 2px 8px;\n border-radius: 999px;\n font-size: 10px;\n font-weight: 600;\n white-space: nowrap;\n }\n .runtime-status.running { background: #dbeafe; color: #1d4ed8; }\n .runtime-status.completed { background: #dcfce7; color: #166534; }\n .runtime-status.error { background: #fee2e2; color: #991b1b; }\n .runtime-count {\n min-width: 20px;\n color: var(--ai-text-secondary);\n font-size: 10px;\n text-align: right;\n }\n .runtime-progress {\n height: 2px;\n background: rgba(24, 144, 255, 0.08);\n overflow: hidden;\n }\n .runtime-progress-bar {\n height: 100%;\n width: 42%;\n background: linear-gradient(90deg, transparent, var(--ai-primary), transparent);\n animation: runtimeProgress 1.45s ease-in-out infinite;\n }\n .runtime-progress.completed .runtime-progress-bar,\n .runtime-progress.error .runtime-progress-bar {\n width: 100%;\n animation: none;\n background: currentColor;\n }\n .runtime-progress.completed { color: #22c55e; }\n .runtime-progress.error { color: #ef4444; }\n @keyframes runtimeProgress {\n 0% { transform: translateX(-120%); }\n 100% { transform: translateX(260%); }\n }\n .runtime-events {\n padding: 6px 10px 9px;\n border-top: 1px solid rgba(15, 23, 42, 0.05);\n max-height: 120px;\n overflow-y: auto;\n overscroll-behavior: contain;\n scrollbar-width: thin;\n scrollbar-color: rgba(148, 163, 184, 0.5) transparent;\n }\n .runtime-events::-webkit-scrollbar { width: 4px; }\n .runtime-events::-webkit-scrollbar-track { background: transparent; }\n .runtime-events::-webkit-scrollbar-thumb {\n background: rgba(148, 163, 184, 0.45);\n border-radius: 999px;\n }\n .runtime-event {\n display: grid;\n grid-template-columns: 14px 1fr;\n align-items: flex-start;\n gap: 7px;\n padding: 4px 0;\n font-size: 11px; color: var(--ai-text-secondary, #64748b);\n }\n .runtime-event-icon {\n width: 7px;\n height: 7px;\n border-radius: 50%;\n background: rgba(24, 144, 255, 0.42);\n margin: 6px auto 0;\n font-size: 0;\n }\n .runtime-event:last-child .runtime-event-icon {\n background: var(--ai-primary);\n box-shadow: 0 0 0 4px rgba(24, 144, 255, 0.1);\n }\n /* Spinner on the folded panel header indicating latest event is running */\n .runtime-title-running .runtime-title-spinner {\n display: inline-block;\n width: 10px;\n height: 10px;\n border: 2px solid rgba(24, 144, 255, 0.25);\n border-top-color: var(--ai-primary);\n border-radius: 50%;\n margin-right: 4px;\n vertical-align: middle;\n animation: runtimeSpinner 0.8s linear infinite;\n }\n .runtime-title-running .runtime-title-text {\n display: inline;\n }\n .runtime-title-not-running .runtime-title-spinner {\n display: none;\n }\n @keyframes runtimeSpinner {\n to { transform: rotate(360deg); }\n }\n .runtime-event-text { flex: 1; line-height: 1.5; }\n .hidden { display: none !important; }\n\n /* ========== 移动端适配(与Vue @media 一致) ========== */\n @media screen and (max-width: 768px) {\n :host { top: 0; right: 0; bottom: 0; }\n .ai-chat-dialog { border-radius: 0 !important; right: 0; top: 0; bottom: 0; width: 100vw; }\n .dialog-header { min-height: 54px; padding: 0 14px 0 16px; }\n .header-title { font-size: 15px; }\n .header-icon { width: 34px; height: 34px; }\n .new-chat-btn { width: 34px; height: 34px; }\n .dialog-body { padding: 16px 18px 16px; }\n .message-list { gap: 9px; }\n .message-item { max-width: 100%; width: 100%; }\n .message-bubble { padding: 11px 15px; font-size: 14px; }\n .welcome-text { font-size: 22px; line-height: 1.3; margin-bottom: 9px; }\n .welcome-desc { font-size: 13px; line-height: 1.55; margin-bottom: 18px; }\n .quick-suggestions { gap: 10px; margin-top: 0; }\n .suggestion-chip { min-height: 40px; padding: 0 16px; font-size: 12px; border-radius: 30px; box-sizing: border-box; }\n .dialog-footer { padding: 12px 14px 16px; }\n .input-container { border-radius: 4px; min-height: 86px; }\n .runtime-events { max-height: 94px; }\n .message-input { font-size: 16px; padding: 10px 12px 6px; min-height: 44px; }\n .send-btn { width: 28px; height: 28px; }\n .float-button { height: 42px; min-width: 96px; }\n .action-icon { width: 30px; height: 30px; }\n }\n\n /* ========== 暗色主题覆盖(theme: 'dark') ========== */\n :host(.dark-theme) .ai-chat-dialog {\n box-shadow: 0 8px 32px rgba(0, 0, 0, 0.5), 0 2px 8px rgba(0, 0, 0, 0.3);\n }\n :host(.dark-theme) .input-container {\n background: var(--ai-input-bg);\n border-color: var(--ai-input-border);\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.22);\n }\n :host(.dark-theme) .input-container:focus-within {\n background: var(--ai-input-bg);\n box-shadow: 0 0 0 2px rgba(110, 168, 254, 0.18), 0 4px 14px rgba(0, 0, 0, 0.24);\n }\n :host(.dark-theme) .message-input {\n background: transparent;\n color: var(--ai-text);\n }\n :host(.dark-theme) .message-input::placeholder { color: var(--ai-text-secondary); }\n :host(.dark-theme) .empty-state { background: var(--ai-bg-gradient); }\n :host(.dark-theme) .welcome-text { color: var(--ai-text); }\n :host(.dark-theme) .welcome-desc { color: var(--ai-text-secondary); }\n :host(.dark-theme) .dialog-body { background: var(--ai-bg-gradient); }\n :host(.dark-theme) pre code { background: #0d1117; color: #c9d1d9; }\n :host(.dark-theme) blockquote { background: rgba(110, 168, 254, 0.08); }\n :host(.dark-theme) th { background: rgba(110, 168, 254, 0.12); }\n :host(.dark-theme) hr { border-top-color: var(--ai-border); }\n</style>\n\n<div class=\"ai-float-container\">\n <!-- 对话框 -->\n <div class=\"ai-chat-dialog\">\n <!-- 头部(含展开/关闭按钮) -->\n <div class=\"dialog-header\">\n <div class=\"header-left\">\n <span class=\"header-title\">${this.escapeHtml(this._config?.title || 'AI 助手')}</span>\n </div>\n <div class=\"header-right\">\n <button class=\"new-chat-btn history-btn\" type=\"button\" title=\"历史记录\" aria-label=\"历史记录\">\n <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M3 12a9 9 0 1 0 3-6.7\"/><path d=\"M3 4v5h5\"/><path d=\"M12 7v5l3 2\"/></svg>\n </button>\n <button class=\"new-chat-btn new-session-btn\" type=\"button\" title=\"新会话\" aria-label=\"新会话\">\n <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M12 5v14\"/><path d=\"M5 12h14\"/></svg>\n </button>\n <span class=\"header-icon expand-btn\" title=\"放大\" aria-label=\"放大\">\n <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n <path d=\"M8 3H5a2 2 0 0 0-2 2v3m18 0V5a2 2 0 0 0-2-2h-3m0 18h3a2 2 0 0 0 2-2v-3M3 16v3a2 2 0 0 0 2 2h3\"/>\n </svg>\n </span>\n <span class=\"header-icon close-btn\" title=\"关闭\" aria-label=\"关闭\">\n <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke-width=\"2.5\" stroke-linecap=\"round\">\n <path d=\"M18 6L6 18\"/><path d=\"M6 6l12 12\"/>\n </svg>\n </span>\n </div>\n </div>\n\n <!-- 消息区域 -->\n <div class=\"dialog-body\" id=\"messagesContainer\"></div>\n\n <!-- 输入区域 -->\n <div class=\"dialog-footer\">\n <div class=\"input-container\" id=\"inputContainer\">\n <textarea class=\"message-input\" id=\"msgInput\"\n placeholder=\"请输入您的问题...\" autocomplete=\"off\" rows=\"2\"></textarea>\n <div class=\"input-tools\">\n <button class=\"input-tool attach-tool\" id=\"attachBtn\" type=\"button\" title=\"上传附件\" aria-label=\"上传附件\">\n <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M21.44 11.05 12.25 20.24a6 6 0 0 1-8.49-8.49l9.19-9.19a4 4 0 0 1 5.66 5.66l-9.2 9.19a2 2 0 0 1-2.83-2.83l8.49-8.48\"/></svg>\n </button>\n <input class=\"attachment-input\" id=\"attachmentInput\" type=\"file\" multiple />\n <button class=\"send-btn\" id=\"sendBtn\" aria-label=\"发送\" disabled>\n <svg viewBox=\"0 0 24 24\" fill=\"currentColor\"><path d=\"M2.01 21L23 12 2.01 3 2 10l15 2-15 2z\"/></svg>\n </button>\n </div>\n </div>\n <div class=\"footer-note\">\n <span class=\"footer-note-left\">${this.escapeHtml(this._config?.footerDisclaimer || '')}</span>\n <span class=\"footer-note-right\">${this.escapeHtml(this._config?.footerIdentity || '')}</span>\n </div>\n </div>\n </div>\n\n <!-- 悬浮按钮 -->\n <div class=\"float-button\" id=\"floatBtn\" title=\"打开AI助手\"></div>\n</div>\n`;\n\n // 缓存DOM引用\n this._dialog = this.shadowRoot.querySelector('.ai-chat-dialog');\n this._body = this.shadowRoot.querySelector('#messagesContainer');\n this._input = this.shadowRoot.querySelector('#msgInput');\n this._sendBtn = this.shadowRoot.querySelector('#sendBtn');\n this._attachBtn = this.shadowRoot.querySelector('#attachBtn');\n this._attachmentInput = this.shadowRoot.querySelector('#attachmentInput');\n this._closeBtn = this.shadowRoot.querySelector('.close-btn');\n this._expandBtn = this.shadowRoot.querySelector('.expand-btn');\n this._newChatBtn = this.shadowRoot.querySelector('.new-session-btn');\n this._historyBtn = this.shadowRoot.querySelector('.history-btn');\n this._floatBtn = this.shadowRoot.querySelector('#floatBtn');\n this._inputContainer = this.shadowRoot.querySelector('#inputContainer');\n\n this.renderMessages({ forceScroll: true });\n }\n\n bindEvents() {\n requestAnimationFrame(() => {\n // 关闭按钮\n if (this._closeBtn) this._closeBtn.addEventListener('click', () => this.close());\n\n // 展开/收起按钮\n if (this._expandBtn) this._expandBtn.addEventListener('click', () => this.toggleExpand());\n\n // 新会话按钮\n if (this._newChatBtn) this._newChatBtn.addEventListener('click', () => this.clearChat());\n\n // 历史记录按钮\n if (this._historyBtn) this._historyBtn.addEventListener('click', () => this.toggleHistory());\n\n // 悬浮按钮打开\n if (this._floatBtn) this._floatBtn.addEventListener('click', () => this.open());\n\n // 发送按钮\n if (this._sendBtn) this._sendBtn.addEventListener('click', () => this.handleSend());\n\n // 附件选择\n if (this._attachBtn && this._attachmentInput) {\n this._attachBtn.addEventListener('click', () => this._attachmentInput.click());\n this._attachmentInput.addEventListener('change', () => this._handleAttachmentSelect());\n }\n\n // 输入回车发送\n if (this._input) {\n this._autoResizeInput();\n this._updateSendButtonState();\n this._input.addEventListener('input', () => {\n this._autoResizeInput();\n this._updateSendButtonState();\n });\n this._input.addEventListener('keydown', (e) => {\n if (e.key === 'Enter' && !e.shiftKey) { e.preventDefault(); this.handleSend(); }\n });\n }\n\n // 拖拽\n if (this._dialog && this._config?.enableDrag !== false) this.initDraggable();\n });\n }\n\n // ==================== 展开/收起 ====================\n\n toggleExpand() {\n this._isExpanded = !this._isExpanded;\n const dlg = this._dialog;\n if (!dlg) return;\n\n // P2-17: 移动端始终全屏,展开/收起无意义(与Vue版 dialogStyle 一致)\n if (this._isMobile) {\n this._isExpanded = false; // 移动端不记录展开状态\n return;\n }\n\n if (this._isExpanded) {\n dlg.classList.add('expanded');\n dlg.style.width = 'min(560px, calc(100vw - 48px))';\n dlg.style.height = 'min(640px, 80vh)';\n dlg.style.maxHeight = '';\n dlg.style.minHeight = '';\n dlg.style.left = 'auto';\n dlg.style.top = DEFAULT_DIALOG_TOP;\n dlg.style.right = '24px';\n dlg.style.bottom = 'auto';\n // 切换展开图标为还原图标\n this._expandBtn.innerHTML = `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M8 3v3a2 2 0 01-2 2H3m18 0h-3a2 2 0 00-2-2V3m0 18v-3a2 2 0 012-2h3M3 16h3a2 2 0 002 2v3\"/></svg>`;\n this._expandBtn.title = '缩小';\n } else {\n dlg.classList.remove('expanded');\n dlg.style.width = 'min(420px, calc(100vw - 48px))';\n dlg.style.height = 'min(640px, 80vh)';\n dlg.style.maxHeight = '';\n dlg.style.minHeight = '';\n dlg.style.left = this._dialogX ? this._dialogX + 'px' : 'auto';\n dlg.style.right = this._dialogX ? 'auto' : '24px';\n dlg.style.top = this._dialogY ? this._dialogY + 'px' : DEFAULT_DIALOG_TOP;\n dlg.style.bottom = 'auto';\n // 还原为放大图标\n this._expandBtn.innerHTML = `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M8 3H5a2 2 0 0 0-2 2v3m18 0V5a2 2 0 0 0-2-2h-3m0 18h3a2 2 0 0 0 2-2v-3M3 16v3a2 2 0 0 0 2 2h3\"/></svg>`;\n this._expandBtn.title = '放大';\n }\n\n this.dispatchEvent(new CustomEvent('expand', { detail: this._isExpanded }));\n }\n\n // ==================== 拖拽(与Vue startDrag/onDrag/stopDrag 一致) ====================\n\n initDraggable() {\n const header = this.shadowRoot?.querySelector('.dialog-header');\n if (!header) return;\n\n const startDrag = (clientX, clientY) => {\n // P2-17: 移动端禁用拖拽(与Vue版 startTouchDrag: if(isExpanded || isMobile) return 一致)\n if (this._isExpanded || this._isMobile) return;\n this._isDragging = true;\n this._dialog.classList.add('dragging');\n const rect = this._dialog.getBoundingClientRect();\n this._dragStartX = clientX - rect.left;\n this._dragStartY = clientY - rect.top;\n };\n\n const onDrag = (clientX, clientY) => {\n if (!this._isDragging) return;\n this._dialogX = clientX - this._dragStartX;\n this._dialogY = clientY - this._dragStartY;\n this._dialog.style.left = this._dialogX + 'px';\n this._dialog.style.right = 'auto';\n this._dialog.style.top = this._dialogY + 'px';\n this._dialog.style.bottom = 'auto';\n };\n\n const stopDrag = () => {\n if (this._isDragging) {\n this._isDragging = false;\n this._dialog.classList.remove('dragging');\n }\n };\n\n // 鼠标事件(桌面端)\n header.addEventListener('mousedown', (e) => {\n if (e.target.closest('button, .header-icon')) return;\n startDrag(e.clientX, e.clientY);\n e.preventDefault();\n });\n document.addEventListener('mousemove', (e) => { onDrag(e.clientX, e.clientY); });\n document.addEventListener('mouseup', stopDrag);\n\n // P1-7: 触摸事件(移动端,与Vue版一致)\n header.addEventListener('touchstart', (e) => {\n if (this._isExpanded) return;\n if (e.target.closest('button, .header-icon')) return;\n const touch = e.touches[0];\n startDrag(touch.clientX, touch.clientY);\n }, { passive: true });\n document.addEventListener('touchmove', (e) => {\n if (!this._isDragging) return;\n const touch = e.touches[0];\n onDrag(touch.clientX, touch.clientY);\n }, { passive: true });\n document.addEventListener('touchend', stopDrag);\n }\n\n applyConfig() {\n if (!this._config) return;\n // 更新标题\n const titleEl = this.shadowRoot.querySelector('.header-title');\n if (titleEl && this._config.title) titleEl.textContent = this._config.title;\n\n // 更新placeholder\n if (this._input && this._config.placeholder) this._input.placeholder = this._config.placeholder;\n // P1-11: 动态设置输入框最大长度\n if (this._input && this._config.maxLength) this._input.maxLength = this._config.maxLength;\n\n // ====== 主题处理:16种字符串预设 + 对象自定义 ======\n const t = this._config.theme;\n const host = this.shadowRoot.host;\n\n if (typeof t === 'string') {\n if (t !== 'default') {\n // 先重置为默认值,再覆盖预设主题(避免残留)\n this._resetThemeVars();\n const preset = PRESET_THEMES[t.toUpperCase()];\n if (preset) {\n Object.entries(preset.colors).forEach(([k, v]) => {\n const cssVarKey = THEME_COLOR_KEY_MAP[k];\n if (cssVarKey) this._themeVars[cssVarKey] = v;\n });\n if (preset.borderRadius) Object.entries(preset.borderRadius).forEach(([k, v]) => { this._themeVars[`--ai-radius-${k}`] = v; });\n if (preset.fontSize) Object.entries(preset.fontSize).forEach(([k, v]) => { this._themeVars[`--ai-font-${k}`] = v; });\n } else {\n console.warn(`[AIChatDialog] Unknown theme: \"${t}\", using default`);\n }\n } else {\n // 'default' → 完全恢复默认值\n this._resetThemeVars();\n }\n host.classList.toggle('dark-theme', ['dark', 'starsky'].includes(t.toLowerCase()));\n }\n\n // 对象形式自定义主题 - 也先重置再合并\n if (t && typeof t === 'object') {\n this._resetThemeVars();\n if (t.colors) Object.entries(t.colors).forEach(([k, v]) => { if (v) this._themeVars[`--ai-${k}`] = v; });\n if (t.borderRadius) Object.entries(t.borderRadius).forEach(([k, v]) => { if (v) this._themeVars[`--ai-radius-${k}`] = v; });\n if (t.fontSize) Object.entries(t.fontSize).forEach(([k, v]) => { if (v) this._themeVars[`--ai-font-${k}`] = v; });\n host.classList.remove('dark-theme');\n }\n\n // 应用所有CSS变量到host\n Object.entries(this._themeVars).forEach(([k, v]) => host.style.setProperty(k, v));\n }\n\n async loadAppDetail() {\n const appId = this._config?.appId || this._config?.agentAppId;\n if (!appId || !this._chatClient) return;\n try {\n const response = await this._chatClient.getAppDetail(appId);\n if (!response?.success || !response.data) return;\n const detail = response.data;\n this._appDetail = detail;\n const parsed = this._parsePrologue(detail.basicUsageTip || detail.prologue || '');\n if (detail.name && (!this._config.title || this._config.title === 'AI 助手' || this._config.title === 'AI 智能助手')) {\n this._config.title = detail.name;\n }\n if (detail.name) {\n this._config.welcomeText = detail.name;\n }\n const desc = parsed.text || detail.description || detail.prologue || '';\n if (desc) {\n this._config.welcomeDesc = desc;\n }\n if (parsed.questions.length > 0) {\n this._config.suggestions = parsed.questions.map(question => ({ label: question, value: question }));\n }\n this.applyConfig();\n if (this._messages.length === 0 && !this._historyVisible) this.renderMessages();\n this.dispatchEvent(new CustomEvent('app-detail-loaded', { detail }));\n } catch (error) {\n console.warn('[AIChatDialog] 应用信息加载失败:', error);\n }\n }\n\n _parsePrologue(prologue) {\n const lines = String(prologue || '')\n .split(/\\r?\\n/)\n .map(line => line.trim())\n .filter(Boolean);\n const textLines = [];\n const questions = [];\n lines.forEach(line => {\n const question = line.replace(/^[-*]\\s+/, '').trim();\n if (/^[-*]\\s+/.test(line)) {\n questions.push(question);\n } else {\n textLines.push(line);\n }\n });\n return {\n text: textLines.join('\\n'),\n questions\n };\n }\n\n // ==================== 渲染消息(与Vue模板结构一致) ====================\n\n renderMessages(options = {}) {\n if (!this._body) return;\n if (this._historyVisible) {\n this.renderHistoryView();\n return;\n }\n const shouldStickToBottom = options.forceScroll === true || this._shouldAutoScroll();\n const prevScrollTop = this._body.scrollTop || 0;\n\n if (this._messages.length === 0) {\n // 空状态欢迎页(与Vue template lines 30-48 一致)\n const suggestions = this._config?.suggestions || [];\n let chipsHtml = '';\n if (suggestions.length > 0) {\n chipsHtml = '<div class=\"quick-suggestions\">' +\n suggestions.map(s => `<span class=\"suggestion-chip\" data-value=\"${this.escapeAttr(s.value || s.label)}\"><span class=\"chip-icon\">💡</span>${this.escapeHtml(s.label)}</span>`).join('') +\n '</div>';\n }\n this._body.innerHTML = `\n <div class=\"empty-state\">\n <div class=\"welcome-content\">\n <p class=\"welcome-text\">${this.escapeHtml(this._config?.welcomeText || '您好!我是 AI 智能助理')}</p>\n <p class=\"welcome-desc\">${this.escapeHtml(this._config?.welcomeDesc || '我可以帮您解答系统使用问题')}</p>\n ${chipsHtml}\n </div>\n </div>`;\n // 绑定建议点击\n this._body.querySelectorAll('.suggestion-chip').forEach(chip => {\n chip.addEventListener('click', () => {\n const val = chip.dataset.value || chip.textContent.replace(/[💡\\s]/g, '');\n this._input.value = val;\n this._autoResizeInput();\n this.handleSend();\n });\n });\n } else {\n // 消息列表(与Vue template lines 50-83 一致)\n let html = '<div class=\"message-list\">';\n const runtimeExists = this._messages.some(m => m.type === 'ai' && m._runtimeEvents && m._runtimeEvents.length > 0);\n this._messages.forEach((msg, idx) => {\n const hasRuntimeEvents = msg.type === 'ai' && msg._runtimeEvents && msg._runtimeEvents.length > 0;\n const showInitialLoading = msg._isStreaming && !msg.content && !hasRuntimeEvents && !runtimeExists;\n const bubbleClass = [\n 'message-bubble',\n showInitialLoading ? 'loading' : ''\n ].filter(Boolean).join(' ');\n let bubbleContent = '';\n if (showInitialLoading) {\n bubbleContent = '<span class=\"thinking-text\">思考中</span><span class=\"typing-indicator\"><span class=\"typing-dot\"></span><span class=\"typing-dot\"></span><span class=\"typing-dot\"></span></span>';\n } else {\n const textToRender = msg._isStreaming ? (msg.content || '') : (msg.content || '');\n bubbleContent = msg._isStreaming || textToRender\n ? `<div class=\"message-text\">${msg.type === 'ai' ? this.parseMarkdown(textToRender) : this.escapeHtml(textToRender)}</div>`\n : '';\n }\n html += `<div class=\"message-item ${msg.type}\">\n <div class=\"message-content\">\n ${hasRuntimeEvents ? this._buildRuntimePanel(msg, idx) : ''}\n ${bubbleContent ? `<div class=\"${bubbleClass}\">${bubbleContent}</div>` : ''}\n ${!msg._isStreaming ? `<div class=\"message-actions-bar\">\n ${msg.type === 'ai' ? `<div class=\"action-icons\">\n <span class=\"action-icon copy-btn${msg.copied ? ' copied' : ''}\" data-idx=\"${idx}\" title=\"${msg.copied ? '已复制' : '复制'}\">${msg.copied ? '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke-width=\"2\"><path d=\"m20 6-11 11-5-5\"/></svg>' : '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke-width=\"2\"><rect x=\"9\" y=\"9\" width=\"13\" height=\"13\" rx=\"2\"/><path d=\"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1\"/></svg>'}</span>\n <span class=\"action-icon regenerate-btn\" data-idx=\"${idx}\" title=\"重新回答\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke-width=\"2\"><path d=\"M21 12a9 9 0 1 1-2.64-6.36\"/><path d=\"M21 3v6h-6\"/></svg></span>\n </div>` : ''}\n </div>` : ''}\n </div>\n </div>`;\n });\n\n // 加载状态 — 有执行过程时不展示思考中\n if (this._isLoading && !runtimeExists) {\n html += '<div class=\"message-item ai\">' +\n '<div class=\"message-content\">' +\n '<div class=\"message-bubble loading\"><span class=\"thinking-text\">思考中</span><span class=\"typing-indicator\"><span class=\"typing-dot\"></span><span class=\"typing-dot\"></span><span class=\"typing-dot\"></span></span></div>' +\n '</div>' +\n '</div>';\n }\n\n html += '</div>';\n this._body.innerHTML = html;\n\n // 绑定复制事件\n this._body.querySelectorAll('.copy-btn').forEach(btn => {\n btn.addEventListener('click', () => {\n const idx = parseInt(btn.dataset.idx);\n const msg = this._messages[idx];\n if (msg) this.copyMessage(msg.content, idx);\n });\n });\n\n // 绑定重新生成事件\n this._body.querySelectorAll('.regenerate-btn').forEach(btn => {\n btn.addEventListener('click', () => {\n const idx = parseInt(btn.dataset.idx);\n this.regenerate(idx);\n });\n });\n\n // 绑定执行过程面板折叠/展开(Shadow DOM 下 inline onclick 不可靠)\n this._body.querySelectorAll('.runtime-header').forEach(header => {\n header.addEventListener('click', () => {\n const panel = header.closest('.runtime-panel');\n const evts = panel ? panel.querySelector('.runtime-events') : null;\n if (evts) evts.classList.toggle('hidden');\n const arrow = header.querySelector('.arrow');\n if (arrow) arrow.classList.toggle('expanded');\n });\n });\n }\n\n if (shouldStickToBottom) {\n this.scrollToBottom();\n } else {\n requestAnimationFrame(() => {\n if (this._body) this._body.scrollTop = prevScrollTop;\n });\n }\n }\n\n renderHistoryView() {\n if (!this._body) return;\n const records = this._getFilteredHistoryRecords();\n const bodyHtml = this._historyLoading\n ? '<div class=\"history-loading\">正在加载历史记录...</div>'\n : records.length > 0\n ? `<div class=\"history-list\">${records.map((record, idx) => this._buildHistoryItem(record, idx)).join('')}</div>`\n + (this._historyHasMore\n ? '<button class=\"history-load-more\" type=\"button\">加载更多...</button>'\n : '')\n : '<div class=\"history-empty\">暂无历史记录</div>';\n this._body.innerHTML = `\n <div class=\"history-view\">\n <div class=\"history-head\">\n <div class=\"history-title\">历史记录</div>\n <button class=\"history-back\" type=\"button\">返回对话</button>\n </div>\n ${bodyHtml}\n </div>`;\n const back = this._body.querySelector('.history-back');\n if (back) back.addEventListener('click', () => {\n this._historyVisible = false;\n this.renderMessages({ forceScroll: true });\n });\n this._body.querySelectorAll('.history-item').forEach(item => {\n item.addEventListener('click', () => {\n const idx = Number(item.dataset.idx);\n const record = records[idx];\n if (record) this.openHistoryRecord(record);\n });\n });\n const loadMore = this._body.querySelector('.history-load-more');\n if (loadMore) loadMore.addEventListener('click', () => {\n this.loadHistoryRecords(true);\n });\n }\n\n _buildHistoryItem(record, idx) {\n const title = record.prompt || record.question || record.content || '未命名对话';\n const preview = record.replyText || record.answer || '';\n return `<button class=\"history-item\" type=\"button\" data-idx=\"${idx}\">\n <div class=\"history-item-title\">${this.escapeHtml(title)}</div>\n ${preview ? `<div class=\"history-item-preview\">${this.escapeHtml(preview)}</div>` : ''}\n </button>`;\n }\n\n _getFilteredHistoryRecords() {\n const records = Array.isArray(this._historyRecords) ? this._historyRecords : [];\n const grouped = new Map();\n records.forEach(record => {\n const key = record.conversationId || record.recordId || record.requestId;\n if (!key) {\n grouped.set('_noKey_' + Math.random() + '_' + grouped.size, record);\n return;\n }\n const existing = grouped.get(key);\n if (!existing) {\n grouped.set(key, record);\n } else {\n // 保留conversationId非空的记录,或createTime更新的记录\n const existConv = existing.conversationId;\n const recConv = record.conversationId;\n if (!existConv && recConv) {\n grouped.set(key, record);\n } else if (existConv || !recConv) {\n const existTime = existing.createTime ? Date.parse(String(existing.createTime).replace(/-/g, '/')) : 0;\n const recTime = record.createTime ? Date.parse(String(record.createTime).replace(/-/g, '/')) : 0;\n if (recTime > existTime) grouped.set(key, record);\n }\n }\n });\n let result = Array.from(grouped.values());\n const days = Number(this._config?.historyDays || 0);\n if (!days) return result;\n const minTime = Date.now() - days * 24 * 60 * 60 * 1000;\n return result.filter(record => {\n const time = record.createTime ? Date.parse(String(record.createTime).replace(/-/g, '/')) : NaN;\n return Number.isNaN(time) || time >= minTime;\n });\n }\n\n async toggleHistory() {\n this._historyVisible = !this._historyVisible;\n if (this._historyVisible) {\n if (this._historyLoaded) {\n this.renderHistoryView();\n }\n await this.loadHistoryRecords();\n } else {\n this.renderMessages();\n }\n }\n\n async loadHistoryRecords(append = false) {\n if (!this._chatClient) this._chatClient = new AIChatClient(this._config || {});\n const appId = this._config?.appId || this._config?.agentAppId;\n if (!appId) {\n this.showToast('应用ID不能为空');\n this._historyVisible = false;\n return;\n }\n this._historyLoading = true;\n this.renderHistoryView();\n try {\n const pageSize = this._config?.historyPageSize || 20;\n const pageIndex = append ? (this._historyPageIndex || 1) + 1 : 1;\n const days = Number(this._config?.historyDays || 0);\n const queryOpts = {\n appId,\n bizType: this._config?.bizType,\n pageIndex,\n pageSize\n };\n if (days > 0) {\n queryOpts.startTime = new Date(Date.now() - days * 24 * 60 * 60 * 1000).toISOString();\n }\n const response = await this._chatClient.queryConversation(queryOpts);\n if (response.success) {\n const newRecords = response.data?.records || [];\n if (append) {\n this._historyRecords = (this._historyRecords || []).concat(newRecords);\n } else {\n this._historyRecords = newRecords;\n }\n this._historyPageIndex = pageIndex;\n this._historyHasMore = newRecords.length >= pageSize;\n this._historyLoaded = true;\n } else {\n this.showToast(response.message || '历史记录加载失败');\n }\n } catch (e) {\n this.showToast('历史记录加载失败');\n console.error('loadHistoryRecords error', e);\n if (!append) this._historyRecords = [];\n } finally {\n this._historyLoading = false;\n this.renderHistoryView();\n }\n }\n\n async openHistoryRecord(record) {\n const conversationId = record.conversationId;\n if (conversationId) {\n try {\n const response = await this._chatClient.queryConversation({\n conversationId,\n pageIndex: 1,\n pageSize: 50\n });\n if (response.success && response.data?.records?.length) {\n this._conversationId = conversationId;\n this._chatClient.setConversationId(conversationId);\n this._messages = this._recordsToMessages(response.data.records);\n this._historyVisible = false;\n this.renderMessages({ forceScroll: true });\n return;\n }\n } catch (e) {}\n }\n this._conversationId = conversationId || null;\n if (conversationId) this._chatClient.setConversationId(conversationId);\n this._messages = this._recordsToMessages([record]);\n this._historyVisible = false;\n this.renderMessages({ forceScroll: true });\n }\n\n _recordsToMessages(records) {\n return [...records].reverse().flatMap(record => {\n const messages = [];\n const prompt = record.prompt || record.question || record.content;\n const reply = record.replyText || record.answer;\n if (prompt) {\n messages.push({\n id: `history_user_${record.recordId || record.requestId || this.generateId()}`,\n type: 'user',\n content: prompt,\n attachments: record.attachments || []\n });\n }\n if (reply) {\n messages.push({\n id: `history_ai_${record.recordId || record.requestId || this.generateId()}`,\n type: 'ai',\n content: reply,\n copied: false,\n _status: 'completed'\n });\n }\n return messages;\n });\n }\n\n updateLoadingUI() {\n this.renderMessages();\n if (this._input) this._input.disabled = this._isLoading || this._streaming;\n if (this._attachBtn) this._attachBtn.disabled = this._isLoading || this._streaming;\n this._updateSendButtonState();\n }\n\n scrollToBottom() {\n if (this._body) requestAnimationFrame(() => { this._body.scrollTop = this._body.scrollHeight; });\n }\n\n _shouldAutoScroll() {\n if (!this._body) return true;\n const distanceToBottom = this._body.scrollHeight - this._body.scrollTop - this._body.clientHeight;\n return distanceToBottom < 80;\n }\n\n _autoResizeInput() {\n if (!this._input) return;\n this._input.style.height = 'auto';\n const maxHeight = 132;\n const nextHeight = Math.min(this._input.scrollHeight, maxHeight);\n this._input.style.height = `${nextHeight}px`;\n this._input.style.overflowY = this._input.scrollHeight > maxHeight ? 'auto' : 'hidden';\n }\n\n _updateSendButtonState() {\n if (!this._sendBtn) return;\n const hasText = !!(this._input && this._input.value.trim());\n const hasAttachments = this._attachments && this._attachments.length > 0;\n this._sendBtn.disabled = this._isLoading || (!hasText && !hasAttachments);\n }\n\n _handleAttachmentSelect() {\n if (!this._attachmentInput) return;\n this._attachments = Array.from(this._attachmentInput.files || []);\n if (this._attachBtn) {\n this._attachBtn.classList.toggle('has-attachment', this._attachments.length > 0);\n this._attachBtn.title = this._attachments.length > 0 ? `已选择 ${this._attachments.length} 个附件` : '上传附件';\n }\n this._updateSendButtonState();\n }\n\n // ==================== 发送消息(与Vue sendMessage 一致) ====================\n\n async handleSend() {\n const content = this._input ? this._input.value.trim() : '';\n const attachments = [...(this._attachments || [])];\n if (!content && attachments.length === 0) {\n this.showToast(this._config?.emptyMessageError || '请输入消息内容');\n return;\n }\n if (this._isLoading) return;\n\n // P1-11: 字数限制检查\n const maxLen = this._config?.maxLength ?? 500;\n if (content.length > maxLen) {\n this.showToast(`输入内容不能超过${maxLen}个字符(当前${content.length}字)`);\n return;\n }\n\n // 防抖:500ms内不允许重复发送\n const now = Date.now();\n if (this._lastSendTime && now - this._lastSendTime < 500) return;\n this._lastSendTime = now;\n\n this._input.value = '';\n this._autoResizeInput();\n this._attachments = [];\n if (this._attachmentInput) this._attachmentInput.value = '';\n if (this._attachBtn) {\n this._attachBtn.classList.remove('has-attachment');\n this._attachBtn.title = '上传附件';\n }\n this._updateSendButtonState();\n\n const attachmentText = attachments.length > 0\n ? attachments.map(file => `附件:${file.name}`).join('\\n')\n : '';\n const displayContent = content || attachmentText;\n\n const userMsg = {\n id: this.generateId(),\n type: 'user',\n content: displayContent,\n time: this.formatTime(),\n attachments: attachments.map(file => ({ name: file.name, size: file.size, type: file.type }))\n };\n\n this._messages.push(userMsg);\n // P1-12: 使用可配置的maxMessages替代硬编码50\n const maxMsg = this._config?.maxMessages ?? 50;\n if (this._messages.length > maxMsg) this._messages = this._messages.slice(-maxMsg);\n\n if (this._config?.onMessageSend) this._config.onMessageSend(userMsg);\n this.dispatchEvent(new CustomEvent('message-send', { detail: userMsg }));\n\n this.setLoading(true);\n\n try {\n for (const file of attachments) {\n await this.uploadAttachment(file).catch(err => console.warn('[AIChatDialog] 附件上传失败:', err));\n }\n await this.sendMessageToAI(content || attachmentText);\n } catch (err) {\n console.error('[AIChatDialog] Error:', err);\n this.handleError(err);\n } finally {\n this.setLoading(false);\n }\n }\n\n async sendMessageToAI(content, options = {}) {\n if (this._mockMode) {\n await this.mockResponse(content);\n } else {\n // 先创建流式占位消息(一个 loading),directApiCall 更新它\n const msgId = options.messageId || this.generateId();\n if (!options.messageId) {\n this._messages.push({ id: msgId, type: 'ai', content: '', _isStreaming: true, time: this.formatTime() });\n }\n this.renderMessages({ forceScroll: true });\n this._streaming = true;\n this.setLoading(false); // 关掉全局 loading,用消息级 loading 替代\n this.updateLoadingUI(); // re-lock input via _streaming flag\n await this._directApiCallStream(msgId, content, options.streamOptions || {});\n }\n }\n\n async mockResponse(userContent) {\n await new Promise(r => setTimeout(r, 600 + Math.random() * 800));\n\n const responses = [\n `关于\"${(userContent || '').substring(0, 20)}\"这个问题,我来为您详细解答...`,\n `这是一个很好的问题!根据我的理解:\\n\\n1. 首先,我们需要分析需求\\n2. 其次,设计实现方案\\n3. 最后,进行测试验证`,\n `收到您的问题。让我来帮您分析一下...\\n\\n根据您的描述,我建议您可以按照以下步骤操作:`,\n `感谢您的提问!以下是我的看法:\\n\\n• 第一点很关键,需要注意细节\\n• 第二点值得关注\\n• 第三点是核心所在`,\n ];\n const mockContent = responses[Math.floor(Math.random() * responses.length)];\n\n // 流式效果\n const tempId = this.generateId();\n this._messages.push({ id: tempId, type: 'ai', content: '', _isStreaming: true });\n this.renderMessages();\n\n for (let i = 0; i < mockContent.length; i++) {\n await new Promise(r => setTimeout(r, 12 + Math.random() * 20));\n const msgIdx = this._messages.findIndex(m => m.id === tempId);\n if (msgIdx >= 0) {\n this._messages[msgIdx].content = mockContent.substring(0, i + 1);\n this.updateStreamingBubble(tempId, mockContent.substring(0, i + 1));\n }\n }\n this.finalizeStream(tempId);\n\n if (this._config?.onMessageReceived) this._config.onMessageReceived({ content: mockContent, done: true });\n this.dispatchEvent(new CustomEvent('message-received', { detail: { content: mockContent } }));\n }\n\n updateStreamingBubble(msgId, content) {\n const shouldStickToBottom = this._shouldAutoScroll();\n const bubbles = this._body?.querySelectorAll('.message-bubble.loading');\n if (bubbles && bubbles.length > 0) {\n const lastLoading = bubbles[bubbles.length - 1];\n if (lastLoading) lastLoading.innerHTML = `<div class=\"message-text\">${this.parseMarkdown(content)}</div>`;\n }\n if (shouldStickToBottom) this.scrollToBottom();\n }\n\n finalizeStream(msgId) {\n const idx = this._messages.findIndex(m => m.id === msgId);\n if (idx >= 0) delete this._messages[idx]._isStreaming;\n this.renderMessages();\n }\n\n // P0: 会话ID管理\n _conversationId = null;\n\n async _directApiCallStream(msgId, content, requestOptions = {}) {\n if (!this._chatClient) {\n this._chatClient = new AIChatClient(this._config || {});\n }\n if (Object.prototype.hasOwnProperty.call(requestOptions, 'conversationId')) {\n this._chatClient.setConversationId(requestOptions.conversationId || null);\n } else if (this._conversationId) {\n this._chatClient.setConversationId(this._conversationId);\n }\n let streamText = '';\n try {\n const response = await this._chatClient.sendMessageStream(content, {\n onMessage: (chunk) => {\n if (!this._isPlaceholder(chunk) && !this._isEventLike(chunk)) {\n if (!chunk) chunk = '\\n';\n streamText += chunk;\n this._updateMsg(msgId, streamText);\n }\n },\n onProgress: (message) => {\n if (message && message.trim() && !this._isPlaceholder(message)) {\n this._addRuntimeEvent(msgId, { _type: 'PROGRESS', _text: message, _icon: '📋' });\n }\n },\n onNodeStart: (name, detail) => {\n const title = name || '节点执行';\n this._addRuntimeEvent(msgId, { _type: 'NODE_START', _text: title, _detail: detail || '', _icon: '🚀' });\n },\n onNodeProgress: (name, detail) => {\n const title = name || '节点执行中';\n this._addRuntimeEvent(msgId, { _type: 'NODE_PROGRESS', _text: title, _detail: detail || '', _icon: '🔄' });\n },\n onNodeComplete: (name, detail) => {\n const title = name || '节点完成';\n this._addRuntimeEvent(msgId, { _type: 'NODE_COMPLETE', _text: title, _detail: detail || '', _icon: '✅' });\n },\n onToolStart: (name, callId) => {\n const title = name || '工具调用';\n this._addRuntimeEvent(msgId, { _type: 'TOOL_START', _text: title, _icon: '🔧' });\n },\n onToolResult: (name, result) => {\n const title = name ? name + ' 返回结果' : '工具返回结果';\n this._addRuntimeEvent(msgId, { _type: 'TOOL_RESULT', _text: title, _detail: result || '', _icon: '📦' });\n },\n onToolEnd: (name, callId) => {\n const title = name ? name + ' 执行完成' : '工具执行完成';\n this._addRuntimeEvent(msgId, { _type: 'TOOL_END', _text: title, _icon: '✅' });\n },\n onWarning: (message) => {\n if (message && message.trim() && !this._isPlaceholder(message)) {\n this._addRuntimeEvent(msgId, { _type: 'WARNING', _text: message, _icon: '⚠️' });\n }\n },\n onPlanningEvent: (event) => {\n const msg = event?.message || event?.metadata?.title || event?.metadata?.detail || event?.currentTask?.name || '';\n if (msg && String(msg).trim() && !this._isPlaceholder(msg)) {\n const itemKind = event?.metadata?.itemKind || event?.currentTask?.type || '';\n this._addRuntimeEvent(msgId, { _type: 'PLANNING', _text: String(msg), _icon: itemKind === 'reasoning' ? '🧠' : '📋' });\n }\n },\n onMeta: (meta) => {\n const conversationId = meta?.conversationId || meta?.sessionId;\n if (conversationId) {\n this._conversationId = conversationId;\n }\n const taskRunId = meta?.taskRunId;\n if (taskRunId) {\n const idx = this._messages.findIndex(m => m.id === msgId);\n if (idx >= 0) this._messages[idx].taskRunId = taskRunId;\n }\n },\n onDone: (finalText) => {\n if (finalText && !this._isPlaceholder(finalText) && !this._isEventLike(finalText)) {\n streamText = finalText;\n this._updateMsg(msgId, finalText);\n }\n },\n onError: (message) => {\n this._updateMsg(msgId, '错误: ' + (message || '流式请求失败'));\n }\n }, requestOptions);\n if (response?.success) {\n if (response.data?.conversationId) {\n this._conversationId = response.data.conversationId;\n } else if (this._chatClient.conversationId) {\n this._conversationId = this._chatClient.conversationId;\n }\n // 兜底:流式成功但未收到正文时,从会话接口拉取结果\n if (!streamText.trim() && this._conversationId) {\n this._updateMsg(msgId, '(等待AI处理...)');\n const result = await this._fetchConversationResult(this._conversationId);\n streamText = result;\n }\n } else {\n return;\n }\n\n this._finalizeMsg(msgId, streamText || '(无回复)');\n this.dispatchEvent(new CustomEvent('message-received', { detail: { content: streamText } }));\n if (this._config?.onMessageReceived) this._config.onMessageReceived(streamText);\n\n } catch (e) {\n if (e.name === 'AbortError') {\n this._updateMsg(msgId, '(请求超时或已取消)');\n } else {\n console.error('[AIChatDialog] 流式失败:', e);\n this._updateMsg(msgId, '网络错误: ' + (e.message || '请检查连接'));\n }\n }\n }\n\n _getStreamTextEl() {\n if (this._streamTextEl && this._body.contains(this._streamTextEl)) {\n return this._streamTextEl;\n }\n const msgItems = this._body?.querySelectorAll('.message-item.ai') || [];\n for (let i = msgItems.length - 1; i >= 0; i--) {\n const textEl = msgItems[i].querySelector('.message-text');\n if (textEl) {\n this._streamTextEl = textEl;\n return textEl;\n }\n // Bubble still in loading state (typing dots only, no .message-text)\n // Replace loading bubble with proper text bubble for first chunk\n const bubble = msgItems[i].querySelector('.message-bubble.loading');\n if (bubble) {\n bubble.classList.remove('loading');\n bubble.innerHTML = ''; // 移除思考中和动点\n const textEl = document.createElement('div');\n textEl.className = 'message-text';\n bubble.appendChild(textEl);\n this._streamTextEl = textEl;\n return textEl;\n }\n }\n return null;\n }\n\n _updateMsg(msgId, content) {\n const idx = this._messages.findIndex(m => m.id === msgId);\n if (idx < 0) return;\n this._messages[idx].content = content;\n\n // Detect if there are runtime events (for typewriter mode check)\n const hasRuntime = !!(this._messages[idx]._runtimeEvents && this._messages[idx]._runtimeEvents.length > 0);\n\n // Accumulate full content\n if (content.startsWith(this._streamFullText)) {\n this._streamFullText = content;\n } else {\n this._streamFullText = content;\n this._streamVisibleLength = 0;\n }\n\n const el = this._getStreamTextEl();\n if (el) {\n if (hasRuntime) {\n // Start RAF typewriter\n if (!this._streamTypeRaf) {\n const tick = () => {\n const pending = this._streamFullText;\n if (this._streamVisibleLength >= pending.length) {\n this._streamTypeRaf = null;\n return;\n }\n this._streamVisibleLength = Math.min(this._streamVisibleLength + 1, pending.length);\n const curEl = this._getStreamTextEl();\n if (curEl) {\n curEl.innerHTML = this.parseMarkdown(pending.slice(0, this._streamVisibleLength));\n }\n if (this._shouldAutoScroll()) this.scrollToBottom();\n this._streamTypeRaf = requestAnimationFrame(tick);\n };\n this._streamTypeRaf = requestAnimationFrame(tick);\n }\n } else {\n // Direct render: no typewriter\n el.innerHTML = this.parseMarkdown(content);\n this._streamFullText = '';\n this._streamVisibleLength = 0;\n }\n if (this._shouldAutoScroll()) this.scrollToBottom();\n } else if (!this._streamInitDone) {\n this._streamInitDone = true;\n this.renderMessages();\n }\n }\n\n _finalizeMsg(msgId, content) {\n this._streaming = false;\n this.updateLoadingUI();\n const idx = this._messages.findIndex(m => m.id === msgId);\n if (idx >= 0) {\n this._messages[idx].content = content;\n delete this._messages[idx]._isStreaming;\n this._messages[idx].time = this.formatTime();\n this._messages[idx]._status = content && !content.startsWith('(') ? 'completed' : 'error';\n if (this._streamTypeRaf) {\n cancelAnimationFrame(this._streamTypeRaf);\n this._streamTypeRaf = null;\n }\n this._streamTextEl = null;\n this._streamInitDone = false;\n this._runtimePanelEl = null;\n this._runtimeEventsContainerEl = null;\n this.renderMessages();\n }\n }\n\n // 运行时占位符过滤(对齐 portal)\n _isPlaceholder(text) {\n if (!text || typeof text !== 'string') return false\n if (text === '\\n' || text === '\\n\\n') return false\n const p = text.trim()\n if (!p) return true\n return RUNTIME_PLACEHOLDERS.some(k => p.includes(k))\n }\n _isEventLike(text) {\n if (!text || typeof text !== 'string') return false\n const t = text.trim()\n if (t.startsWith('[META]') || t.startsWith('event:')) return true\n try { const j = JSON.parse(t); return j && typeof j === 'object' && (j.eventType || j.metadata) } catch(e) {}\n return false\n }\n\n\n // 运行时事件管理 – incremental DOM, no renderMessages\n _addRuntimeEvent(msgId, event) {\n const idx = this._messages.findIndex(m => m.id === msgId)\n if (idx < 0) return\n if (!this._messages[idx]._runtimeEvents) this._messages[idx]._runtimeEvents = []\n const last = this._messages[idx]._runtimeEvents[this._messages[idx]._runtimeEvents.length - 1]\n if (last && last._text === event._text) return\n this._messages[idx]._runtimeEvents.push(event)\n const isRunning = !['NODE_COMPLETE', 'TOOL_END', 'TOOL_RESULT'].includes(event._type)\n\n // Path 1: panel DOM exists and is alive – incremental append\n if (this._runtimeEventsContainerEl && this._body.contains(this._runtimeEventsContainerEl)) {\n const row = document.createElement('div')\n row.className = 'runtime-event'\n row.innerHTML = '<span class=\"runtime-event-icon\"></span><span class=\"runtime-event-text\">' + this.escapeHtml(event._text) + '</span>'\n this._runtimeEventsContainerEl.appendChild(row)\n // Update header sub-title\n const subTitle = this._runtimePanelEl?.querySelector('.runtime-title-sub')\n if (subTitle) {\n const isRunning = !['NODE_COMPLETE', 'TOOL_END', 'TOOL_RESULT'].includes(event._type)\n subTitle.className = 'runtime-title-sub ' + (isRunning ? 'runtime-title-running' : 'runtime-title-not-running')\n subTitle.innerHTML = '<span class=\"runtime-title-spinner\"></span><span class=\"runtime-title-text\">' + this.escapeHtml(event._text) + '</span>'\n }\n // Update count\n const countEl = this._runtimePanelEl?.querySelector('.runtime-count')\n if (countEl) countEl.textContent = this._messages[idx]._runtimeEvents.length\n if (this._shouldAutoScroll()) this.scrollToBottom()\n return\n }\n\n // Path 2: first event – inject runtime panel DOM next to the streaming bubble\n const msgContent = this._findStreamingMessageContent()\n if (msgContent) {\n // Remove loading bubble (思考中) since runtime panel is taking over\n const loadingBubble = msgContent.querySelector('.message-bubble.loading')\n if (loadingBubble) {\n // Replace with an empty text bubble so typewriter can use it\n loadingBubble.classList.remove('loading')\n loadingBubble.innerHTML = ''\n const textEl = document.createElement('div')\n textEl.className = 'message-text'\n loadingBubble.appendChild(textEl)\n }\n }\n if (msgContent && !msgContent.querySelector('.runtime-panel')) {\n const panel = this._createRuntimePanelDOM(this._messages[idx])\n msgContent.insertBefore(panel, msgContent.firstChild)\n this._runtimePanelEl = panel\n this._runtimeEventsContainerEl = panel.querySelector('.runtime-events')\n if (this._shouldAutoScroll()) this.scrollToBottom()\n return\n }\n }\n\n _findStreamingMessageContent() {\n const aiItems = this._body?.querySelectorAll('.message-item.ai') || []\n for (let i = aiItems.length - 1; i >= 0; i--) {\n const content = aiItems[i].querySelector('.message-content')\n if (content) return content\n }\n return null\n }\n\n _createRuntimePanelDOM(msg) {\n const events = msg._runtimeEvents || []\n const status = msg._isStreaming ? 'running' : (msg._status || 'running')\n const statusLabel = status === 'completed' ? '\\u5df2\\u5b8c\\u6210' : (status === 'error' ? '\\u9519\\u8bef' : '\\u6267\\u884c\\u4e2d')\n const latest = events[events.length - 1]?._text || ''\n const latestEvent = events[events.length - 1] || {}\n const isLatestRunning = msg._isStreaming && !['NODE_COMPLETE', 'TOOL_END', 'TOOL_RESULT'].includes(latestEvent._type)\n\n const panel = document.createElement('div')\n panel.className = 'runtime-panel'\n\n const header = document.createElement('div')\n header.className = 'runtime-header'\n header.onclick = function () {\n var evts = panel.querySelector('.runtime-events')\n if (evts) evts.classList.toggle('hidden')\n var arrow = header.querySelector('.arrow')\n if (arrow) arrow.classList.toggle('expanded')\n }\n var titleClass = isLatestRunning ? 'runtime-title-sub runtime-title-running' : 'runtime-title-sub runtime-title-not-running'\n header.innerHTML =\n '<span class=\"arrow\">\\u25b6</span>' +\n '<span class=\"runtime-title\">' +\n '<span class=\"runtime-title-main\">\\u6267\\u884c\\u8fc7\\u7a0b</span>' +\n '<span class=\"' + titleClass + '\"><span class=\"runtime-title-spinner\"></span><span class=\"runtime-title-text\">' + this.escapeHtml(latest) + '</span></span>' +\n '</span>' +\n '<span class=\"runtime-status running\">' + statusLabel + '</span>' +\n '<span class=\"runtime-count\">' + events.length + '</span>'\n panel.appendChild(header)\n\n const progress = document.createElement('div')\n progress.className = 'runtime-progress running'\n progress.innerHTML = '<div class=\"runtime-progress-bar\"></div>'\n panel.appendChild(progress)\n\n const eventsContainer = document.createElement('div')\n eventsContainer.className = 'runtime-events hidden'\n events.forEach(function (e) {\n const row = document.createElement('div')\n row.className = 'runtime-event'\n row.innerHTML = '<span class=\"runtime-event-icon\"></span><span class=\"runtime-event-text\">' + this.escapeHtml(e._text) + '</span>'\n eventsContainer.appendChild(row)\n }.bind(this))\n panel.appendChild(eventsContainer)\n\n return panel\n }\n\n _buildRuntimePanel(msg, msgIdx) {\n const events = msg._runtimeEvents || []\n if (events.length === 0) return ''\n const status = msg._isStreaming ? 'running' : (msg._status || 'running')\n const statusLabel = status === 'completed' ? '\\u5df2\\u5b8c\\u6210' : (status === 'error' ? '\\u9519\\u8bef' : '\\u6267\\u884c\\u4e2d')\n const collapsed = !!(msg.content && String(msg.content).trim()) || status === 'completed' || status === 'error'\n const latest = events[events.length - 1]?._text || ''\n let eventsHtml = ''\n events.forEach(function (e) {\n eventsHtml += '<div class=\"runtime-event\"><span class=\"runtime-event-icon\"></span><span class=\"runtime-event-text\">' + this.escapeHtml(e._text) + '</span></div>'\n }.bind(this))\n var arrowClass = collapsed ? '' : ' expanded'\n return '<div class=\"runtime-panel\">' +\n '<div class=\"runtime-header\">' +\n '<span class=\"arrow' + arrowClass + '\">▶</span>' +\n '<span class=\"runtime-title\">' +\n '<span class=\"runtime-title-main\">\\u6267\\u884c\\u8fc7\\u7a0b</span>' +\n '<span class=\"runtime-title-sub\">' + this.escapeHtml(latest) + '</span>' +\n '</span>' +\n '<span class=\"runtime-status ' + status + '\">' + statusLabel + '</span>' +\n '<span class=\"runtime-count\">' + events.length + '</span>' +\n '</div>' +\n '<div class=\"runtime-progress ' + status + '\"><div class=\"runtime-progress-bar\"></div></div>' +\n '<div class=\"runtime-events' + (collapsed ? ' hidden' : '') + '\">' + eventsHtml + '</div>' +\n '</div>'\n }\n\n async _fetchConversationResult(conversationId) {\n for (let i = 0; i < 8; i++) {\n await new Promise(r => setTimeout(r, 1000));\n try {\n const response = await this._chatClient.queryConversation({ conversationId, pageIndex: 1, pageSize: 1 });\n if (response.success && response.data?.records?.length > 0) {\n const record = response.data.records[0];\n const txt = record.replyText || record.content || record.answer;\n if (txt && txt.trim()) return txt;\n }\n } catch(e) {}\n }\n return '(AI 处理超时,请稍后查看对话记录)';\n }\n\n // ==================== 重新生成(与Vue regenerate 一致) ====================\n\n async regenerate(index) {\n if (this._isLoading) return;\n const aiMessage = this._messages[index];\n if (!aiMessage || aiMessage.type !== 'ai') return;\n let userQuestion = '';\n for (let i = index - 1; i >= 0; i--) {\n if (this._messages[i].type === 'user') {\n userQuestion = this._messages[i].content;\n break;\n }\n }\n if (!userQuestion) return;\n Object.assign(aiMessage, {\n content: '',\n _isStreaming: true,\n _runtimeEvents: [],\n _status: 'running',\n copied: false,\n time: this.formatTime(),\n taskRunId: null\n });\n this.renderMessages({ forceScroll: true });\n\n this.setLoading(true);\n try {\n await this.sendMessageToAI(userQuestion, {\n messageId: aiMessage.id,\n streamOptions: {\n conversationId: ''\n }\n });\n } catch (err) {\n console.error('[AIChatDialog] Regenerate error:', err);\n this.handleError(err);\n } finally {\n this.setLoading(false);\n }\n }\n\n showToast(msg) {\n const toast = document.createElement('div');\n toast.className = 'error-toast';\n toast.textContent = msg;\n this._dialog?.appendChild(toast);\n setTimeout(() => toast.remove(), 3000);\n }\n\n // P1-6: 精细化错误处理(与Vue版 handleErrorMsg 一致,按HTTP状态码+业务错误码分类)\n handleError(err) {\n let displayMsg = '抱歉,网络请求失败,请稍后重试';\n const errMsg = err?.message || '';\n\n // 按错误类型分类\n if (errMsg.includes('Failed to fetch') || errMsg.includes('NetworkError') || errMsg.includes('网络')) {\n displayMsg = '网络连接失败,请检查网络后重试';\n } else if (errMsg.includes('AbortError') || errMsg.includes('超时') || errMsg.includes('timeout')) {\n displayMsg = '请求超时,请稍后重试';\n } else if (errMsg.match(/HTTP 40[13]/)) {\n displayMsg = '请求参数有误,请检查后重新发送';\n } else if (errMsg.includes('HTTP 403') || errMsg.includes('鉴权失败') || errMsg.includes('未授权')) {\n displayMsg = '鉴权失败,请重新登录后再试';\n } else if (errMsg.includes('HTTP 404')) {\n displayMsg = '服务地址不存在,请联系管理员';\n } else if (errMsg.match(/HTTP 4\\d\\d/)) {\n displayMsg = `请求异常(${errMsg}),请稍后重试`;\n } else if (errMsg.includes('HTTP 500') || errMsg.includes('Internal Server Error')) {\n displayMsg = '服务器内部错误,请稍后重试';\n } else if (errMsg.includes('HTTP 502') || errMsg.includes('HTTP 503') || errMsg.includes('HTTP 504')) {\n displayMsg = '服务暂时不可用,请稍后重试';\n } else if (errMsg.match(/HTTP 5\\d\\d/)) {\n displayMsg = `服务器错误(${errMsg}),请稍后重试`;\n } else if (errMsg) {\n displayMsg = '抱歉,' + errMsg;\n }\n\n this.addMessage({ type: 'ai', content: displayMsg, time: this.formatTime(), errorType: 'network_error' });\n if (this._config?.onError) this._config.onError(err);\n this.dispatchEvent(new CustomEvent('error', { detail: err }));\n }\n\n // ==================== 复制(与Vue copyMessage 一致) ====================\n\n async copyContent(text) {\n // P1-10: 微信环境优先使用 wx.setClipboardData(与Vue版一致)\n if (typeof wx !== 'undefined' && wx.setClipboardData) {\n return new Promise((resolve, reject) => {\n wx.setClipboardData({ data: text, success: resolve, fail: () => {\n try { this._fallbackCopy(text); resolve(); } catch (e) { reject(e); }\n } });\n });\n }\n if (navigator.clipboard && navigator.clipboard.writeText) {\n try {\n await navigator.clipboard.writeText(text);\n return;\n } catch (e) {\n this._fallbackCopy(text);\n return;\n }\n }\n this._fallbackCopy(text);\n }\n\n _fallbackCopy(text) {\n const ta = document.createElement('textarea');\n ta.value = text;\n document.body.appendChild(ta);\n ta.select();\n document.execCommand('copy');\n document.body.removeChild(ta);\n }\n\n async copyMessage(content, idx) {\n try {\n await this.copyContent(content);\n if (this._messages[idx]) this._messages[idx].copied = true;\n this.renderMessages();\n setTimeout(() => { if (this._messages[idx]) { this._messages[idx].copied = false; this.renderMessages(); } }, 2000);\n } catch (e) {\n this.showToast('复制失败,请手动选择文本复制');\n }\n }\n\n clearChat() {\n this._messages = [];\n this._attachments = [];\n this._historyVisible = false;\n if (this._attachmentInput) this._attachmentInput.value = '';\n if (this._attachBtn) {\n this._attachBtn.classList.remove('has-attachment');\n this._attachBtn.title = '上传附件';\n }\n this._updateSendButtonState();\n // P0-4: 清除会话ID,开启新会话\n this._conversationId = null;\n if (this._chatClient) this._chatClient.clearConversation();\n this.renderMessages();\n this.dispatchEvent(new CustomEvent('clear'));\n }\n\n async stopGeneration() {\n if (this._chatClient) {\n await this._chatClient.stopCompletion();\n }\n this.setLoading(false);\n const streaming = [...this._messages].reverse().find(m => m.type === 'ai' && m._isStreaming);\n if (streaming) this._finalizeMsg(streaming.id, streaming.content || '(已停止)');\n this.dispatchEvent(new CustomEvent('stop'));\n }\n\n async uploadAttachment(file, options = {}) {\n if (!this._chatClient) this._chatClient = new AIChatClient(this._config || {});\n const response = await this._chatClient.uploadAttachment(file, options);\n if (response.success) {\n this.dispatchEvent(new CustomEvent('attachment-uploaded', { detail: response.data }));\n } else {\n this.dispatchEvent(new CustomEvent('error', { detail: response }));\n }\n return response;\n }\n\n // ==================== 工具函数 ====================\n\n generateId() { return `msg_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`; }\n\n formatTime() {\n const n = new Date();\n return `${String(n.getHours()).padStart(2, '0')}:${String(n.getMinutes()).padStart(2, '0')}`;\n }\n\n escapeHtml(s) {\n if (!s) return '';\n const d = document.createElement('div');\n d.textContent = s;\n return d.innerHTML.replace(/\\n/g, '<br>');\n }\n\n escapeAttr(s) {\n if (!s) return '';\n return s.replace(/&/g, '&amp;').replace(/\"/g, '&quot;').replace(/'/g, '&#39;').replace(/</g, '&lt;').replace(/>/g, '&gt;');\n }\n\n /**\n * 重置 _themeVars 为默认值(主题切换时调用,防止残留)\n */\n _resetThemeVars() {\n Object.assign(this._themeVars, {\n // 颜色\n '--ai-primary': '#1890ff', '--ai-primary-light': '#40a9ff', '--ai-primary-dark': '#096dd9',\n '--ai-secondary': '#722ed1',\n '--ai-bg': '#ffffff', '--ai-bg-gradient': '#f8fafc',\n '--ai-text': '#1e293b', '--ai-text-secondary': '#64748b',\n '--ai-user-bubble-gradient': 'linear-gradient(135deg, #1890ff, #40a9ff)',\n '--ai-ai-bubble-bg': '#ffffff',\n '--ai-header-gradient': 'linear-gradient(90deg, rgba(24, 144, 255, 0.08), rgba(114, 46, 209, 0.08))',\n '--ai-border': 'rgba(24, 144, 255, 0.15)', '--ai-shadow': 'rgba(24, 144, 255, 0.12)',\n '--ai-input-bg': '#f8fafc', '--ai-input-border': '#e2e8f0',\n '--ai-loading': '#64748b', '--ai-success': '#52c41a', '--ai-error': '#ff4d4f', '--ai-warning': '#faad14',\n // 圆角\n '--ai-radius-dialog': '16px', '--ai-radius-bubble': '18px',\n '--ai-radius-button': '50%', '--ai-radius-input': '28px',\n '--ai-radius-small': '6px', '--ai-radius-medium': '12px',\n // 字号\n '--ai-font-title': '15px', '--ai-font-welcome-text': '17px',\n '--ai-font-welcome-desc': '13px', '--ai-font-message': '14px',\n '--ai-font-time': '11px', '--ai-font-small': '11px'\n });\n }\n\n /**\n * Markdown → HTML 解析(仅用于AI回复,用户消息保持纯文本)\n * 使用 marked + DOMPurify 双重保障安全\n */\n parseMarkdown(text) {\n if (!text) return '';\n try {\n // 逐行规范化标题:确保 # 后跟空格(如 \"####4.2\" → \"#### 4.2\")\n const lines = text.split('\\n');\n text = lines.map(line => line.replace(/^(\\s{0,3}#{1,6})([^\\s#].*)$/, '$1 $2')).join('\\n');\n // marked 解析 markdown\n const rawHtml = marked.parse(text);\n // DOMPurify 净化HTML(防止XSS攻击)\n return DOMPurify.sanitize(rawHtml, {\n ALLOWED_TAGS: [\n 'p', 'br', 'strong', 'b', 'em', 'i', 'u', 's', 'del',\n 'h1', 'h2', 'h3', 'h4', 'h5', 'h6',\n 'ul', 'ol', 'li', 'blockquote', 'pre', 'code',\n 'a', 'img', 'table', 'thead', 'tbody', 'tr', 'th', 'td',\n 'hr', 'div', 'span', 'sup', 'sub'\n ],\n ALLOWED_ATTR: ['href', 'target', 'src', 'alt', 'title', 'class', 'id']\n });\n } catch (e) {\n console.warn('[AIChatDialog] Markdown解析失败,回退为纯文本:', e);\n return this.escapeHtml(text);\n }\n }\n}\n\n// 注册自定义元素\nif (!customElements.get('ai-chat-dialog')) {\n customElements.define('ai-chat-dialog', AIChatDialog);\n}\n\nexport default AIChatDialog;\nexport { AIChatDialog };\n\nif (typeof window !== 'undefined') {\n window.AIChatDialog = AIChatDialog;\n}\n","/**\n * IBC AI Web SDK - 纯JavaScript版本\n * 支持任意前端框架:Vue, React, Angular, 原生HTML等\n * \n * @author IBC AI Team\n * @version 2.0.0\n */\n\n// 导出组件\nimport { AIChatDialog } from './AIChatDialog.js';\nimport { AIChatClient } from './core/AIChatClient.js';\n\nexport { AIChatDialog } from './AIChatDialog.js';\nexport { default as AIChatDialogDefault } from './AIChatDialog.js';\nexport { AIChatClient } from './core/AIChatClient.js';\nexport { default as AIChatClientDefault } from './core/AIChatClient.js';\n\n// 快速初始化函数\nexport function createAIChatDialog(options = {}) {\n // 创建自定义元素实例\n const dialog = document.createElement('ai-chat-dialog');\n \n // 设置属性\n if (options.title) dialog.setAttribute('title', options.title);\n if (options.placeholder) dialog.setAttribute('placeholder', options.placeholder);\n if (options.width) dialog.style.setProperty('--dialog-width', `${options.width}px`);\n if (options.height) dialog.style.setProperty('--dialog-height', `${options.height}px`);\n \n // 添加到DOM(隐藏状态)\n document.body.appendChild(dialog);\n \n // 初始化配置\n if (Object.keys(options).length > 0) {\n dialog.init(options);\n }\n \n return dialog;\n}\n\n// Vue插件安装方式(向后兼容)\nexport function installVuePlugin(Vue) {\n if (!Vue) {\n console.warn('[AI Web SDK] Vue instance not provided');\n return;\n }\n \n // 注册全局组件包装器\n Vue.component('AiChatWrapper', {\n props: {\n visible: { type: Boolean, default: false },\n config: { type: Object, default: () => ({}) }\n },\n \n data() {\n return {\n dialogInstance: null\n };\n },\n \n watch: {\n visible: {\n immediate: true,\n handler(val) {\n this.$nextTick(() => {\n if (val) {\n this.open();\n } else {\n this.close();\n }\n });\n }\n },\n config: {\n deep: true,\n handler() {\n if (this.dialogInstance) {\n this.dialogInstance.updateConfig(this.config);\n }\n }\n }\n },\n \n mounted() {\n this.initDialog();\n },\n \n beforeDestroy() {\n if (this.dialogInstance) {\n this.dialogInstance.destroy();\n }\n },\n\n beforeUnmount() {\n if (this.dialogInstance) {\n this.dialogInstance.destroy();\n }\n },\n \n methods: {\n initDialog() {\n this.dialogInstance = createAIChatDialog(this.config || {});\n \n // 监听事件并转发\n const events = ['open', 'close', 'message-send', 'message-received', 'error'];\n events.forEach(event => {\n this.dialogInstance.addEventListener(event, (e) => {\n this.$emit(event, e.detail);\n });\n });\n },\n \n open() {\n if (this.dialogInstance) {\n this.dialogInstance.open();\n }\n },\n \n close() {\n if (this.dialogInstance) {\n this.dialogInstance.close();\n }\n }\n },\n \n render(h) {\n // 渲染一个不可见的div作为挂载点\n return h('div', { style: 'display: none;' });\n }\n });\n}\n\n// React Hook(可选) — 通过 window.React 获取 hooks,兼容 CDN 全局引入\n/* global React */\nexport function useAIChat(options = {}) {\n if (typeof React === 'undefined') {\n console.warn('[AI Web SDK] React is not loaded, useAIChat skipped')\n return { open: () => {}, close: () => {}, isVisible: false, messages: [], isLoading: false }\n }\n const { useState, useRef, useEffect } = React\n\n const [isVisible, setIsVisible] = useState(false)\n const [messages, setMessages] = useState([])\n const [isLoading, setIsLoading] = useState(false)\n const dialogRef = useRef(null)\n\n useEffect(() => {\n if (!dialogRef.current) {\n dialogRef.current = createAIChatDialog(options);\n \n // 监听事件\n dialogRef.current.addEventListener('message-send', (e) => {\n setMessages(prev => [...prev, e.detail]);\n });\n \n dialogRef.current.addEventListener('message-received', (e) => {\n setMessages(prev => [...prev, { \n id: Date.now(), \n role: 'assistant', \n content: e.detail.content,\n timestamp: new Date().toISOString()\n }]);\n setIsLoading(false);\n });\n\n dialogRef.current.addEventListener('error', () => {\n setIsLoading(false);\n });\n }\n\n return () => {\n if (dialogRef.current) {\n dialogRef.current.destroy();\n dialogRef.current = null;\n }\n };\n }, []);\n\n return {\n open: () => { setIsVisible(true); dialogRef.current?.open(); },\n close: () => { setIsVisible(false); dialogRef.current?.close(); },\n toggle: () => { dialogRef.current?.toggle(); },\n sendMessage: (content) => { \n if (dialogRef.current) {\n const input = dialogRef.current.shadowRoot?.querySelector('.ai-textarea');\n if (input) {\n input.value = content;\n input.dispatchEvent(new Event('input'));\n }\n dialogRef.current.handleSend?.() || dialogRef.current.shadowRoot?.querySelector('.ai-send-btn')?.click();\n }\n },\n clearMessages: () => { dialogRef.current?.clearMessages(); setMessages([]); },\n isVisible,\n messages,\n isLoading,\n ref: dialogRef\n };\n}\n\n// 默认导出\nexport default {\n AIChatDialog,\n AIChatClient,\n createAIChatDialog,\n installVuePlugin,\n useAIChat,\n version: '2.0.0'\n};\n\n// 全局暴露(UMD/浏览器环境)\nif (typeof window !== 'undefined') {\n window.AICreateChatDialog = createAIChatDialog;\n window.AIWebSDK = {\n version: '2.0.0',\n create: createAIChatDialog,\n AIChatDialog,\n AIChatClient,\n installVuePlugin\n };\n}\n"],"names":["ERROR_CODES","AGENT_NOT_FOUND","PROMPT_EMPTY","AUTH_FAILED","NETWORK_ERROR","SERVER_ERROR","TIMEOUT_ERROR","REQUEST_CANCELLED","SUCCESS_CODES","Set","DEFAULT_AUTH_CODES","START_EVENTS","ERROR_EVENTS","META_EVENTS","DONE_EVENTS","PLANNING_EVENTS","MESSAGE_EVENTS","THINKING_EVENTS","PROGRESS_EVENTS","TOOL_START_EVENTS","TOOL_RESULT_EVENTS","TOOL_END_EVENTS","NODE_START_EVENTS","NODE_PROGRESS_EVENTS","NODE_COMPLETE_EVENTS","WARNING_EVENTS","HITL_EVENTS","RUNTIME_PLACEHOLDERS","detectNetworkStatus","navigator","onLine","createRequestId","Date","now","toString","Math","random","slice","trimTrailingSlash","value","String","replace","joinUrl","base","path","test","isRuntimePlaceholder","text","normalized","trim","some","pattern","includes","tryParseJson","JSON","parse","e","parseSseBlock","block","lines","split","event","data","line","startsWith","push","join","AIChatClient","constructor","config","apiBaseUrl","apiEndpoint","streamEndpoint","stopEndpoint","asyncEndpoint","attachmentUploadEndpoint","conversationQueryEndpoint","conversationDeleteEndpoint","appDetailEndpoint","taskStatusEndpoint","appListEndpoint","runtimePermissionReplyEndpoint","runtimeQuestionReplyEndpoint","runtimeQuestionRejectEndpoint","timeout","streamTimeout","maxRetries","retryDelay","enableRetry","backgroundRefreshEnabled","backgroundRefreshIntervalMs","conversationId","currentRequestId","abortController","refreshTokenPromise","_backgroundTimer","_visibilityHandler","_shouldStartBackgroundRefresh","startBackgroundRefresh","buildUrl","buildHeaders","extra","headers","token","Authorization","Object","assign","createError","code","message","success","getAuthCodes","customCodes","Array","isArray","authErrorCodes","map","isAuthErrorCode","has","isTokenExpiring","expiresAt","Number","tokenExpiresAt","bufferMs","tokenRefreshBufferMs","normalizedExpiry","applyTokenResult","result","nextToken","accessToken","authorization","refreshToken","expireAt","expireIn","expiresIn","ea","reason","silent","refreshTokenFn","error","Error","stopBackgroundRefresh","onTokenExpired","Promise","resolve","then","userId","onTokenRefreshed","raw","catch","console","warn","finally","interval","max","setInterval","document","visibilityState","addEventListener","clearInterval","removeEventListener","dispose","cancelCurrentRequest","ensureFreshToken","runAuthFn","authFn","parseResponse","prototype","hasOwnProperty","call","errCode","errMsg","requestId","bizContent","parsed","rawCode","undefined","rtnCode","rtnMsg","requestJson","payload","options","controller","AbortController","timeoutId","setTimeout","abort","doRequest","response","fetch","method","credentials","body","stringify","signal","ok","status","statusText","json","skipAuthRefresh","name","clearTimeout","buildAppPayload","prompt","appId","agentAppId","bizType","attachmentIds","normalizeAttachmentIds","attachments","length","bizParams","extendInfo","item","attachmentId","fileId","id","filter","Boolean","sendMessage","retries","lastResponse","attempt","pow","endpoint","isRetryableError","sendMessageStream","handlers","onError","executeMessageStream","sseData","authError","retriedAfterRefresh","finalText","doneCalled","Accept","reader","getReader","decoder","TextDecoder","buffer","done","read","decode","stream","parts","pop","part","handleSseEvent","isEventLike","onDone","content","setFinalText","markDone","onStart","onThinking","onProgressEvent","stage","onToolStart","toolName","toolCallId","onToolResult","onToolEnd","onNodeStart","onNodeProgress","onNodeComplete","onWarning","onHitlInterrupt","type","sessionId","taskRunId","toolCalls","errorMessage","meta","onMeta","onPlanningEvent","onProgress","onMessage","finalAnswer","finalResult","summary","answer","output","traceId","inputTokens","outputTokens","trimmed","eventType","eventId","metadata","currentTask","stopCompletion","uploadAttachment","file","uploadTimeout","doUpload","formData","FormData","append","fileType","queryConversation","pageIndex","pageSize","deleteConversation","asyncCompletion","getTaskStatus","taskId","encodeURIComponent","getAppDetail","listApplications","applicationType","replyPermission","request","reply","replyRequestId","replyQuestion","answers","rejectQuestion","setConversationId","clearConversation","updateConfig","newConfig","hadRefreshCapability","hasRefreshCapability","DEFAULT_DIALOG_TOP","marked","setOptions","breaks","gfm","headerIds","mangle","THEME_COLOR_KEY_MAP","primary","primaryLight","primaryDark","secondary","background","backgroundGradient","textSecondary","userBubble","aiBubble","headerGradient","border","shadow","inputBackground","inputBorder","loading","warning","PRESET_THEMES","DEFAULT","colors","DARK","FRESH","VIBRANT","ROMANTIC","PURPLE","OCEAN","TWILIGHT","MINT","ROSE","AURORA","LAVENDER","CORAL","JADE","STARSKY","SUNSET","AIChatDialog","HTMLElement","observedAttributes","attachShadow","mode","_messages","_isLoading","_config","_mockMode","_isDragging","_isExpanded","_chatClient","_attachments","_dragStartX","_dragStartY","_dialogX","_dialogY","_appDetail","_historyVisible","_historyRecords","_historyLoading","_historyLoaded","_historyPageIndex","_historyHasMore","_isMobile","_streamTextEl","_streamInitDone","_streamFullText","_streamVisibleLength","_streamTypeRaf","_streaming","_runtimePanelEl","_runtimeEventsContainerEl","_runtimeStatusEl","_runtimeCountEl","_themeVars","render","bindEvents","connectedCallback","_handleOnline","tip","shadowRoot","querySelector","remove","_handleOffline","createElement","className","textContent","_dialog","prepend","window","_detectMobile","_handleResize","wasMobile","_applyMobileLayout","disconnectedCallback","mobileMode","wx","getSystemInfoSync","ua","userAgent","isMobileUA","isSmallScreen","innerWidth","hasTouch","maxTouchPoints","style","width","height","maxHeight","minHeight","left","top","right","bottom","borderRadius","classList","add","_expandBtn","display","attributeChangedCallback","oldValue","newValue","visible","hasAttribute","showDialog","hideDialog","v","setAttribute","removeAttribute","messages","isLoading","init","title","welcomeText","welcomeDesc","footerDisclaimer","footerIdentity","theme","enableDrag","maxLength","maxMessages","historyPageSize","historyDays","onLoad","suggestions","label","_conversationId","applyConfig","loadAppDetail","dispatchEvent","CustomEvent","detail","open","onOpen","close","onClose","toggle","forceState","destroy","parentNode","removeChild","addMessage","msg","substr","role","time","timestamp","formatTime","copied","errorType","maxMsg","renderMessages","forceScroll","clearMessages","setLoading","updateLoadingUI","enableMockMode","disableMockMode","dialog","btn","cssVarsStr","entries","k","innerHTML","escapeHtml","_body","_input","_sendBtn","_attachBtn","_attachmentInput","_closeBtn","_newChatBtn","_historyBtn","_floatBtn","_inputContainer","requestAnimationFrame","toggleExpand","clearChat","toggleHistory","handleSend","click","_handleAttachmentSelect","_autoResizeInput","_updateSendButtonState","key","shiftKey","preventDefault","initDraggable","dlg","header","startDrag","clientX","clientY","rect","getBoundingClientRect","onDrag","stopDrag","target","closest","touch","touches","passive","titleEl","placeholder","t","host","_resetThemeVars","preset","toUpperCase","forEach","cssVarKey","fontSize","toLowerCase","setProperty","_parsePrologue","basicUsageTip","prologue","desc","description","questions","question","textLines","renderHistoryView","shouldStickToBottom","_shouldAutoScroll","prevScrollTop","scrollTop","chipsHtml","s","escapeAttr","querySelectorAll","chip","val","dataset","html","runtimeExists","m","_runtimeEvents","idx","hasRuntimeEvents","showInitialLoading","_isStreaming","bubbleClass","bubbleContent","textToRender","parseMarkdown","_buildRuntimePanel","parseInt","copyMessage","regenerate","panel","evts","arrow","scrollToBottom","records","_getFilteredHistoryRecords","bodyHtml","record","_buildHistoryItem","back","openHistoryRecord","loadMore","loadHistoryRecords","preview","replyText","grouped","Map","recordId","set","size","existing","get","existConv","recConv","existTime","createTime","recTime","from","values","days","minTime","NaN","isNaN","showToast","queryOpts","startTime","toISOString","newRecords","concat","_recordsToMessages","reverse","flatMap","generateId","_status","disabled","scrollHeight","distanceToBottom","clientHeight","nextHeight","min","overflowY","hasText","hasAttachments","files","emptyMessageError","maxLen","_lastSendTime","attachmentText","displayContent","userMsg","onMessageSend","err","sendMessageToAI","handleError","mockResponse","msgId","messageId","_directApiCallStream","streamOptions","userContent","r","responses","substring","mockContent","floor","tempId","i","msgIdx","findIndex","updateStreamingBubble","finalizeStream","onMessageReceived","bubbles","lastLoading","requestOptions","streamText","chunk","_isPlaceholder","_isEventLike","_updateMsg","_addRuntimeEvent","_type","_text","_icon","_detail","callId","itemKind","_fetchConversationResult","_finalizeMsg","_getStreamTextEl","contains","msgItems","textEl","bubble","appendChild","hasRuntime","el","tick","pending","curEl","cancelAnimationFrame","p","j","last","row","subTitle","isRunning","countEl","msgContent","_findStreamingMessageContent","loadingBubble","_createRuntimePanelDOM","insertBefore","firstChild","aiItems","events","statusLabel","latest","latestEvent","isLatestRunning","onclick","titleClass","progress","eventsContainer","bind","collapsed","eventsHtml","arrowClass","txt","index","aiMessage","userQuestion","toast","displayMsg","match","copyContent","setClipboardData","reject","fail","_fallbackCopy","clipboard","writeText","ta","select","execCommand","stopGeneration","streaming","find","n","getHours","padStart","getMinutes","d","rawHtml","DOMPurify","sanitize","ALLOWED_TAGS","ALLOWED_ATTR","customElements","define","createAIChatDialog","keys","installVuePlugin","Vue","component","props","default","dialogInstance","watch","immediate","handler","$nextTick","deep","mounted","initDialog","beforeDestroy","beforeUnmount","methods","$emit","h","useAIChat","React","isVisible","useState","useRef","useEffect","setIsVisible","setMessages","setIsLoading","dialogRef","current","prev","input","Event","ref","version","AICreateChatDialog","AIWebSDK","create"],"mappings":"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C,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,MAAM,EAAE,CAAC,EAAE,IAAI,GAAG,MAAM,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAA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ACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAC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","x_google_ignoreList":[2,3]}