@scienjoy/sj-digital-human-assistant-adaptive 1.0.0

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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sjDigitalHumanAssistantAdaptive.umd.js","sources":["../../utils/src/index.js","../src/index.js"],"sourcesContent":["// src/utils/index.js 公共工具方法\n\"use strict\";\n\n// 防抖函数\nexport function debounce(fn, delay) {\n if (typeof fn !== \"function\") return;\n var timer = null;\n return function () {\n var that = this;\n var args = arguments;\n clearTimeout(timer);\n timer = setTimeout(function () {\n fn.apply(that, args);\n }, delay || 100);\n };\n}\n\n// 对象合并(兼容ES5)\nexport function objectAssign(target) {\n if (target == null) throw new TypeError(\"Cannot convert undefined or null to object\");\n var to = Object(target);\n for (var i = 1; i < arguments.length; i++) {\n var nextSource = arguments[i];\n if (nextSource != null) {\n for (var nextKey in nextSource) {\n if (Object.prototype.hasOwnProperty.call(nextSource, nextKey)) {\n to[nextKey] = nextSource[nextKey];\n }\n }\n }\n }\n return to;\n}\n\n// 其他公共方法:DOM查询、样式设置等\nexport function querySelector(el, selector) {\n return el.querySelector(selector);\n}","import Hls from 'hls.js';\nimport { AliRTS } from 'aliyun-rts-sdk';\nimport { debounce } from '../../utils/src/index.js';\n\n\"use strict\";\n\nfunction SjDigitalHumanAssistantAdaptive(options) {\n\toptions = options || {};\n\tthis.config = this._assign({}, {\n\t\tbaseUrl: \"\",\n\t\twindowTitle: \"数字人助手\",\n\t\tdefaultPlayText: \"\",\n\t\treconnectInterval: 1,\n\t\tmaxReconnectTimes: 10,\n\t\tsecretKey: \"abc999\",\n\t\taccessToken: \"aaaaaaa\",\n\t\twindowWidth: \"300px\",\n\t\twindowHeight: \"550px\",\n\t\tavatarId: 1,\n\t\tisVideoFullscreen: true,\n\t\thlsClass: Hls,\n\t\taliRtsClass: AliRTS,\n\t\tcontainer: typeof document !== \"undefined\" ? document.body : null,\n\t\tzIndex: 9999,\n\t\tmobileBreakpoint: 768\n\t}, options);\n\n\tthis.state = {\n\t\tisConnected: false,\n\t\tisConnecting: false,\n\t\tisSSEConnected: false,\n\t\tisAutoplayBlocked: true,\n\t\tisMediaReady: false,\n\t\tisVideoFullscreen: !!this.config.isVideoFullscreen,\n\t\thasAvatarUrl: true,\n\t\tqueueCount: 0,\n\t\tisTextInputMode: true,\n\t\tisRecording: false,\n\t\tshowReconnectDialog: false,\n\t\tneedManualPlay: false,\n\t\tisIOSWechat: this._isIOSWechat(),\n\t\tisReceivingReply: false,\n\t\tcurrentAiMessage: this.config.defaultPlayText || \"\",\n\t\tcurrentReconnectTimes: 0,\n\t\tisManualDisconnect: false,\n\t\tisWaitingReconnect: false,\n\t\tisMobileDevice: true,\n\t\tdragPosition: null,\n\t\tisDragging: false,\n\t\tdragMoved: false,\n\t\tsessionid: \"\",\n\t\tchatSessionId: \"\",\n\t\tcurrentHlsUrl: \"\",\n\t\tcurrentRtsUrl: \"\",\n\t\tvideoEleBg: \"\",\n\t\tposterBgUrl: \"\",\n\t\tdefaultVideoUrl: \"\",\n\t\tavatarPic: \"\",\n\t\tshowToastFlag: false,\n\t\ttoastMessage: \"\",\n\t\tplayingVoiceId: null,\n\t\thasUnmuted: false\n\t};\n\n\tthis.drag = {\n\t\tstartClientX: 0,\n\t\tstartClientY: 0,\n\t\tstartLeft: 0,\n\t\tstartTop: 0\n\t};\n\n\tthis.stream = {\n\t\thls: null,\n\t\taliRts: null,\n\t\tsseReader: null,\n\t\tsseReconnectTimer: null,\n\t\treconnectTimer: null\n\t};\n\n\tthis.audio = {\n\t\tmediaStream: null,\n\t\taudioContext: null,\n\t\tsourceNode: null,\n\t\tprocessorNode: null,\n\t\tchunks: [],\n\t\tstartTime: 0,\n\t\tpermissionPromise: null,\n\t\tcurrentVoiceAudio: null\n\t};\n\n\tthis.dom = {};\n\tthis.chatMessages = [];\n\tthis.sseReconnectCount = 0;\n\tthis.toastTimer = null;\n\tthis.blockClickTimer = null;\n\tthis.reconnectDialogCallback = null;\n\tthis.resizeHandler = null;\n\tthis.stopRequestedBeforeStart = false;\n\tthis.isButtonPressed = false;\n\tthis.permissionCheckTimer = null;\n\n\tif (!this.config.baseUrl) {\n\t\tthrow new Error(\"[SjDigitalHumanAssistantAdaptive] baseUrl is required\");\n\t}\n\n\tthis.init();\n}\n\nSjDigitalHumanAssistantAdaptive.prototype._assign = function (target) {\n\tif (target == null) {\n\t\tthrow new TypeError(\"Cannot convert undefined or null to object\");\n\t}\n\ttarget = Object(target);\n\tfor (var i = 1; i < arguments.length; i++) {\n\t\tvar source = arguments[i];\n\t\tif (!source) {\n\t\t\tcontinue;\n\t\t}\n\t\tfor (var key in source) {\n\t\t\tif (Object.prototype.hasOwnProperty.call(source, key)) {\n\t\t\t\ttarget[key] = source[key];\n\t\t\t}\n\t\t}\n\t}\n\treturn target;\n};\n\nSjDigitalHumanAssistantAdaptive.prototype.init = function () {\n\tthis.state.isMobileDevice = this.detectMobileDevice();\n\tthis.injectStyle();\n\tthis.mountDom();\n\tthis.updateRemBase();\n\tthis.bindEvent();\n\tthis.syncDeviceMode();\n\tthis.renderInitialMessages();\n\tthis.bootstrap();\n};\n\nSjDigitalHumanAssistantAdaptive.prototype.injectStyle = function () {\n\tif (document.getElementById(\"sj-digital-human-adaptive-style\")) {\n\t\treturn;\n\t}\n\tvar css = [\n\t\t\".sjdha-root{--sjdha-rem:50px;position:fixed;right:16px;bottom:16px;display:flex;flex-direction:column;background:#f5f5f5;border-radius:calc(var(--sjdha-rem) * 0.2);overflow:hidden;box-shadow:0 calc(var(--sjdha-rem) * 0.2) calc(var(--sjdha-rem) * 0.5) rgba(15,23,42,.18);z-index:\" + this.config.zIndex + \";font-family:'Microsoft YaHei','PingFang SC',sans-serif;color:#232323;font-size:calc(var(--sjdha-rem) * 0.28);-webkit-text-size-adjust:100%;touch-action:pan-x pan-y}\",\n\t\t\".sjdha-root,.sjdha-root *{box-sizing:border-box}\",\n\t\t\".sjdha-root.device-mobile{left:0;right:0;top:0;bottom:0;width:100%;height:100dvh;max-width:none;border-radius:0}\",\n\t\t\".sjdha-root.device-web{width:300px;height:550px;max-width:calc(100vw - 24px);max-height:calc(100vh - 24px)}\",\n\t\t\".sjdha-root.video-fullscreen .sjdha-video-area{flex:none;height:calc(100% - calc(var(--sjdha-rem) * 1.16));min-height:calc(100% - calc(var(--sjdha-rem) * 1.16))}\",\n\t\t\".sjdha-root.video-split .sjdha-video-area{flex:none;height:40%;min-height:calc(var(--sjdha-rem) * 4)}\",\n\t\t\".sjdha-root.video-fullscreen.device-mobile .sjdha-video-area{height:calc(100% - calc(var(--sjdha-rem) * 1.16) - env(safe-area-inset-bottom));min-height:calc(100% - calc(var(--sjdha-rem) * 1.16) - env(safe-area-inset-bottom))}\",\n\t\t\".sjdha-video-area{position:relative;flex:1;min-height:calc(var(--sjdha-rem) * 4);background-size:100% 100%;background-position:center top;cursor:grab;overflow:hidden}\",\n\t\t\".sjdha-video-area:before{content:'';position:absolute;inset:0;backdrop-filter:blur(8px);z-index:0}\",\n\t\t\".sjdha-digital-human{position:relative;z-index:1;width:100%;height:100%;display:flex;align-items:center;justify-content:center;overflow:hidden}\",\n\t\t\".sjdha-video{position:absolute;left:50%;top:0;transform:translateX(-50%);width:auto;height:100%;background:transparent;object-fit:contain}\",\n\t\t\".sjdha-queue{position:absolute;left:50%;bottom:calc(var(--sjdha-rem) * 0.21);transform:translateX(-50%);padding:calc(var(--sjdha-rem) * 0.16) calc(var(--sjdha-rem) * 0.32);border-radius:999px;background:rgba(15,23,42,.55);backdrop-filter:blur(calc(var(--sjdha-rem) * 0.08));color:#fff;font-size:calc(var(--sjdha-rem) * 0.2);white-space:nowrap;z-index:10;display:none}\",\n\t\t\".sjdha-fullscreen-btn{position:absolute;top:calc(var(--sjdha-rem) * 0.9);right:calc(var(--sjdha-rem) * 0.3);width:calc(var(--sjdha-rem) * 0.6);height:calc(var(--sjdha-rem) * 0.6);border:0;border-radius:50%;background:rgba(15,23,42,.45);color:#fff;font-size:calc(var(--sjdha-rem) * 0.28);line-height:calc(var(--sjdha-rem) * 0.6);text-align:center;cursor:pointer;z-index:20;display:flex;align-items:center;justify-content:center}\",\n\t\t\".sjdha-fullscreen-btn:disabled{opacity:.45;cursor:not-allowed}\",\n\t\t\".sjdha-autoplay-overlay{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:calc(var(--sjdha-rem) * 0.16);background:rgba(0,0,0,.45);color:#fff;z-index:30;font-size:calc(var(--sjdha-rem) * 0.28)}\",\n\t\t\".sjdha-autoplay-overlay.hidden{display:none}\",\n\t\t\".sjdha-manual-play{display:flex;flex-direction:column;align-items:center;gap:calc(var(--sjdha-rem) * 0.16);cursor:pointer}\",\n\t\t\".sjdha-autoplay-icon{width:calc(var(--sjdha-rem) * 1.12);height:calc(var(--sjdha-rem) * 1.12);border-radius:50%;display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,.25);font-size:calc(var(--sjdha-rem) * 0.48)}\",\n\t\t\".sjdha-autoplay-spinner{width:calc(var(--sjdha-rem) * 0.8);height:calc(var(--sjdha-rem) * 0.8);border-radius:50%;border:3px solid rgba(255,255,255,.35);border-top-color:#fff;animation:sjdha-spin .8s linear infinite}\",\n\t\t\".sjdha-ai-response{position:absolute;left:calc(var(--sjdha-rem) * 0.32);right:calc(var(--sjdha-rem) * 0.32);bottom:calc(var(--sjdha-rem) * 1.2);padding:calc(var(--sjdha-rem) * 0.32) calc(var(--sjdha-rem) * 0.32) calc(var(--sjdha-rem) * 0.45);background:rgba(255,255,255,.95);border-radius:calc(var(--sjdha-rem) * 0.24);box-shadow:0 calc(var(--sjdha-rem) * 0.08) calc(var(--sjdha-rem) * 0.24) rgba(0,0,0,.1);z-index:15;display:none}\",\n\t\t\".sjdha-ai-response-label{font-size:calc(var(--sjdha-rem) * 0.28);color:#509aff;font-weight:600;text-align:center;margin-bottom:calc(var(--sjdha-rem) * 0.05)}\",\n\t\t\".sjdha-ai-response-content{-ms-overflow-style: none;scrollbar-width: none;font-size:calc(var(--sjdha-rem) * 0.3);line-height:1.5;max-height:calc(var(--sjdha-rem) * 2.4);overflow:auto;text-align:center;word-break:break-word}\",\n\t\t\".sjdha-chat-area{height:60%;min-height:calc(var(--sjdha-rem) * 4);background:#fff;margin-top:calc(var(--sjdha-rem) * -0.15);display:flex;flex-direction:column;position:relative;z-index:9}\",\n\t\t\".sjdha-chat-area.hidden{display:none}\",\n\t\t\".sjdha-chat-date{padding:calc(var(--sjdha-rem) * 0.33) 0 calc(var(--sjdha-rem) * 0.23);text-align:center;font-size:calc(var(--sjdha-rem) * 0.26);line-height:calc(var(--sjdha-rem) * 0.26);color:#888}\",\n\t\t\".sjdha-chat-list{flex:1;padding:calc(var(--sjdha-rem) * 0.1) calc(var(--sjdha-rem) * 0.16) calc(var(--sjdha-rem) * 1.28);overflow-y:auto;-ms-overflow-style:none;scrollbar-width:none;-webkit-overflow-scrolling:touch}\",\n\t\t\".sjdha-chat-list::-webkit-scrollbar{display:none}\",\n\t\t\".sjdha-time-label{text-align:center;padding:calc(var(--sjdha-rem) * 0.4) 0 calc(var(--sjdha-rem) * 0.2);font-size:calc(var(--sjdha-rem) * 0.26);color:#888}\",\n\t\t\".sjdha-chat-item{display:flex;max-width:85%;margin-bottom:calc(var(--sjdha-rem) * 0.26);text-align:left}\",\n\t\t\".sjdha-chat-item.system{margin-right:auto}\",\n\t\t\".sjdha-chat-item.user{margin-left:auto;flex-direction:row-reverse}\",\n\t\t\".sjdha-avatar{width:calc(var(--sjdha-rem) * 0.8);height:calc(var(--sjdha-rem) * 0.8);border-radius:50%;background:#f0f0f0 center/cover no-repeat;flex-shrink:0;margin:0 calc(var(--sjdha-rem) * 0.12)}\",\n\t\t\".sjdha-chat-item.system .sjdha-avatar{margin-right:calc(var(--sjdha-rem) * 0.22)}\",\n\t\t\".sjdha-chat-item.user .sjdha-avatar{margin-left:calc(var(--sjdha-rem) * 0.22);background-image:url('https://szr-data.xiu361.cn/img/szr_video/szr_button/user-avatar.png')}\",\n\t\t\".sjdha-bubble{position:relative;padding:calc(var(--sjdha-rem) * 0.16) calc(var(--sjdha-rem) * 0.28);border-radius:calc(var(--sjdha-rem) * 0.2);line-height:1.4;font-size:calc(var(--sjdha-rem) * 0.28);word-break:break-word;display:flex;align-items:center;min-height:calc(var(--sjdha-rem) * 0.28)}\",\n\t\t\".sjdha-chat-item.system .sjdha-bubble{background:#fff;color:#333;box-shadow:0 4px 12px rgba(15,23,42,.06)}\",\n\t\t\".sjdha-chat-item.system .sjdha-bubble:before{content:'';position:absolute;left:calc(var(--sjdha-rem) * -0.11);top:calc(var(--sjdha-rem) * 0.34);border-top:calc(var(--sjdha-rem) * 0.12) solid transparent;border-bottom:calc(var(--sjdha-rem) * 0.12) solid transparent;border-right:calc(var(--sjdha-rem) * 0.12) solid #fff}\",\n\t\t\".sjdha-chat-item.user .sjdha-bubble{background:#509aff;color:#fff}\",\n\t\t\".sjdha-chat-item.user .sjdha-bubble:after{content:'';position:absolute;right:calc(var(--sjdha-rem) * -0.11);top:calc(var(--sjdha-rem) * 0.34);border-top:calc(var(--sjdha-rem) * 0.12) solid transparent;border-bottom:calc(var(--sjdha-rem) * 0.12) solid transparent;border-left:calc(var(--sjdha-rem) * 0.12) solid #509aff}\",\n\t\t\".sjdha-voice-bubble{cursor:pointer;min-width:calc(var(--sjdha-rem) * 0.8);justify-content:space-between;gap:calc(var(--sjdha-rem) * 0.16);padding:calc(var(--sjdha-rem) * 0.2) calc(var(--sjdha-rem) * 0.32)}\",\n\t\t\".sjdha-voice-icon{width:calc(var(--sjdha-rem) * 0.4);height:calc(var(--sjdha-rem) * 0.4);background:url('https://szr-data.xiu361.cn/img/szr_video/szr_button/play-voice-icon.png') no-repeat center center;background-size:contain;position:relative}\",\n\t\t\".sjdha-voice-icon.playing{animation:sjdha-voice-play 1s ease-in-out infinite}\",\n\t\t\".sjdha-voice-icon.playing:before,.sjdha-voice-icon.playing:after{display:none}\",\n\t\t\".sjdha-input-bar{position:absolute;left:0;right:0;bottom:0;height:calc(var(--sjdha-rem) * 1.16);padding:calc(var(--sjdha-rem) * 0.16);display:flex;align-items:center;gap:calc(var(--sjdha-rem) * 0.16);background:#fff;border-top:1px solid #edf2f7}\",\n\t\t\".sjdha-root.video-fullscreen .sjdha-chat-area{position:absolute;left:0;right:0;bottom:0;height:calc(var(--sjdha-rem) * 1.16);min-height:calc(var(--sjdha-rem) * 1.16);background:transparent;border-radius:0;padding:0;z-index:40}\",\n\t\t\".sjdha-root.video-fullscreen .sjdha-chat-list{flex:none;height:0;padding:0;overflow:hidden}\",\n\t\t\".sjdha-root.video-fullscreen.device-mobile .sjdha-chat-area{height:calc(calc(var(--sjdha-rem) * 1.16) + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom)}\",\n\t\t\".sjdha-mode-btn,.sjdha-send-btn,.sjdha-voice-input{border:0;border-radius:calc(var(--sjdha-rem) * 0.16);height:calc(var(--sjdha-rem) * 0.84)}\",\n\t\t\".sjdha-mode-btn{width:calc(var(--sjdha-rem) * 0.66);background:#eff6ff;color:#3b82f6;font-size:calc(var(--sjdha-rem) * 0.36);cursor:pointer;flex-shrink:0;padding:0}\",\n\t\t\".sjdha-input-wrap{flex:1;height:calc(var(--sjdha-rem) * 0.84);border:1px solid #dbeafe;border-radius:calc(var(--sjdha-rem) * 0.16);overflow:hidden;background:#f5f5f5;display:flex;align-items:center;padding:0 calc(var(--sjdha-rem) * 0.16)}\",\n\t\t\".sjdha-input{width:100%;height:100%;padding:0 calc(var(--sjdha-rem) * 0.08);border:0;outline:none;font-size:16px;background:transparent;-webkit-text-size-adjust:100%;touch-action:manipulation;appearance:none;-webkit-appearance:none}\",\n\t\t\".sjdha-voice-input{flex:1;background:#f5f5f5;color:#1a1a1a;font-size:calc(var(--sjdha-rem) * 0.28);font-weight:600;cursor:pointer;user-select:none;-webkit-user-select:none;touch-action:manipulation}\",\n\t\t\".sjdha-send-btn{min-width:calc(var(--sjdha-rem) * 1.04);padding:0 calc(var(--sjdha-rem) * 0.32);background:#509aff;color:#fff;cursor:pointer;font-size:calc(var(--sjdha-rem) * 0.28)}\",\n\t\t\".sjdha-send-btn:disabled{opacity:.55;cursor:not-allowed}\",\n\t\t\".sjdha-recording{position:absolute;inset:0;display:none;align-items:center;justify-content:center;background:rgba(15,23,42,.5);z-index:40}\",\n\t\t\".sjdha-recording.show{display:flex}\",\n\t\t\".sjdha-recording-card{display:flex;flex-direction:column;align-items:center;gap:calc(var(--sjdha-rem) * 0.24);padding:calc(var(--sjdha-rem) * 0.6) calc(var(--sjdha-rem) * 0.8);border-radius:calc(var(--sjdha-rem) * 0.24);background:rgba(15,23,42,.85);color:#fff}\",\n\t\t\".sjdha-wave{display:flex;align-items:flex-end;gap:calc(var(--sjdha-rem) * 0.08);height:calc(var(--sjdha-rem) * 0.64)}\",\n\t\t\".sjdha-wave span{width:calc(var(--sjdha-rem) * 0.08);border-radius:999px;background:#fff;animation:sjdha-wave 1.1s ease-in-out infinite}\",\n\t\t\".sjdha-dialog-overlay,.sjdha-toast{position:absolute;inset:0;display:none;align-items:center;justify-content:center;z-index:50}\",\n\t\t\".sjdha-dialog-overlay.show,.sjdha-toast.show{display:flex}\",\n\t\t\".sjdha-dialog-overlay{background:rgba(15,23,42,.45)}\",\n\t\t\".sjdha-dialog{width:calc(var(--sjdha-rem) * 5.2);padding:calc(var(--sjdha-rem) * 0.36);background:#fff;border-radius:calc(var(--sjdha-rem) * 0.28);box-shadow:0 calc(var(--sjdha-rem) * 0.24) calc(var(--sjdha-rem) * 0.64) rgba(15,23,42,.22)}\",\n\t\t\".sjdha-dialog-content{font-size:calc(var(--sjdha-rem) * 0.3);line-height:1.5;color:#1e293b;text-align:center}\",\n\t\t\".sjdha-dialog-footer{margin-top:16px;display:flex;justify-content:center}\",\n\t\t\".sjdha-dialog-btn{height:calc(var(--sjdha-rem) * 0.68);padding:0 calc(var(--sjdha-rem) * 0.36);border:0;border-radius:calc(var(--sjdha-rem) * 0.2);background:#509aff;color:#fff;cursor:pointer}\",\n\t\t\".sjdha-toast{pointer-events:none}\",\n\t\t\".sjdha-toast-content{padding:calc(var(--sjdha-rem) * 0.2) calc(var(--sjdha-rem) * 0.32);border-radius:999px;background:rgba(15,23,42,.8);color:#fff;font-size:calc(var(--sjdha-rem) * 0.26)}\",\n\t\t\".sjdha-root.device-web{font-size:14px;min-height:467px;display:grid;grid-template-columns:1fr;grid-template-rows:188px minmax(0,1fr);align-items:stretch;border-radius:20px;box-shadow:0 18px 48px rgba(15,23,42,.18);border:1px solid rgba(148,163,184,.22);z-index:1000}\",\n\t\t\".sjdha-root.device-web.video-fullscreen{grid-template-rows:minmax(0,1fr) auto}\",\n\t\t\".sjdha-root.device-web.video-fullscreen .sjdha-video-area{grid-column:1;grid-row:1;height:100%;min-height:0}\",\n\t\t\".sjdha-root.device-web.video-split .sjdha-video-area{height:auto;min-height:188px}\",\n\t\t\".sjdha-root.device-web .sjdha-video-area{grid-column:1;grid-row:1;min-height:0;height:auto;cursor:move;user-select:none}\",\n\t\t\".sjdha-root.device-web .sjdha-video-area:before{backdrop-filter:blur(10px)}\",\n\t\t\".sjdha-root.device-web .sjdha-queue{bottom:14px;padding:6px 12px;font-size:12px;backdrop-filter:blur(8px)}\",\n\t\t\".sjdha-root.device-web .sjdha-fullscreen-btn{top:24px;right:24px;width:44px;height:44px;font-size:16px;line-height:44px}\",\n\t\t\".sjdha-root.device-web .sjdha-autoplay-overlay{gap:10px;font-size:14px}\",\n\t\t\".sjdha-root.device-web .sjdha-manual-play{gap:10px}\",\n\t\t\".sjdha-root.device-web .sjdha-autoplay-icon{width:56px;height:56px;font-size:22px}\",\n\t\t\".sjdha-root.device-web .sjdha-autoplay-spinner{width:50px;height:50px}\",\n\t\t\".sjdha-root.device-web .sjdha-ai-response{left:14px;right:14px;bottom:22px;padding:12px 14px 14px;border-radius:14px;background:rgba(255,255,255,.92);box-shadow:0 8px 24px rgba(0,0,0,.1)}\",\n\t\t\".sjdha-root.device-web .sjdha-ai-response-label{font-size:12px;margin-bottom:4px}\",\n\t\t\".sjdha-root.device-web .sjdha-ai-response-content{font-size:16px;max-height:100px;scrollbar-width:none;-ms-overflow-style:none}\",\n\t\t\".sjdha-root.device-web .sjdha-chat-area{grid-column:1;grid-row:2;min-height:0;height:auto;margin-top:0;user-select:none;overflow:hidden;background:rgba(255,255,255,.92)}\",\n\t\t\".sjdha-root.device-web.video-fullscreen .sjdha-chat-area{display:flex;position:static;height:auto;min-height:auto;background:transparent;border:none;box-shadow:none;backdrop-filter:none;border-radius:0;overflow:visible;padding:0}\",\n\t\t\".sjdha-root.device-web .sjdha-chat-date{padding:12px 0 10px;font-size:12px;line-height:1.4}\",\n\t\t\".sjdha-root.device-web .sjdha-time-label{padding:12px 0 6px;font-size:12px;line-height:1.4}\",\n\t\t\".sjdha-root.device-web .sjdha-chat-list{flex:1;padding:0 12px 12px;box-sizing:border-box}\",\n\t\t\".sjdha-root.device-web .sjdha-chat-item{margin-bottom:10px;max-width:88%}\",\n\t\t\".sjdha-root.device-web .sjdha-avatar{width:28px;height:28px;margin:0 8px;box-shadow:0 6px 14px rgba(80,154,255,.12)}\",\n\t\t\".sjdha-root.device-web .sjdha-chat-item.system .sjdha-avatar{margin-right:8px}\",\n\t\t\".sjdha-root.device-web .sjdha-chat-item.user .sjdha-avatar{margin-left:8px}\",\n\t\t\".sjdha-root.device-web .sjdha-bubble{padding:10px 12px;border-radius:14px;font-size:14px;line-height:1.5;min-height:16px;box-shadow:0 6px 16px rgba(15,23,42,.05)}\",\n\t\t\".sjdha-root.device-web .sjdha-chat-item.system .sjdha-bubble{background:#fff}\",\n\t\t\".sjdha-root.device-web .sjdha-chat-item.system .sjdha-bubble:before{left:-8px;top:12px;border-top:8px solid transparent;border-bottom:8px solid transparent;border-right:8px solid #fff}\",\n\t\t\".sjdha-root.device-web .sjdha-chat-item.user .sjdha-bubble{background:linear-gradient(135deg,#509aff 0%,#2f7bf3 100%)}\",\n\t\t\".sjdha-root.device-web .sjdha-chat-item.user .sjdha-bubble:after{right:-8px;top:12px;border-top:8px solid transparent;border-bottom:8px solid transparent;border-left:8px solid #2f7bf3}\",\n\t\t\".sjdha-root.device-web .sjdha-voice-bubble{min-width:40px;gap:8px;justify-content:space-between}\",\n\t\t\".sjdha-root.device-web .sjdha-voice-icon{width:24px;height:24px}\",\n\t\t\".sjdha-root.device-web .sjdha-input-bar{position:static;height:auto;min-height:auto;padding:10px;gap:10px;background:rgba(255,255,255,.92);box-shadow:0 10px 24px rgba(15,23,42,.08);box-sizing:border-box}\",\n\t\t\".sjdha-root.device-web .sjdha-mode-btn,.sjdha-root.device-web .sjdha-send-btn,.sjdha-root.device-web .sjdha-voice-input{height:38px;border-radius:12px}\",\n\t\t\".sjdha-root.device-web .sjdha-mode-btn{width:36px;font-size:18px}\",\n\t\t\".sjdha-root.device-web .sjdha-input-wrap{height:38px;border-radius:12px;padding:0 10px;background:#f2f5fa;border:none}\",\n\t\t\".sjdha-root.device-web .sjdha-input{padding:0;font-size:13px}\",\n\t\t\".sjdha-root.device-web .sjdha-voice-input{font-size:13px;background:#f2f5fa}\",\n\t\t\".sjdha-root.device-web .sjdha-send-btn{min-width:60px;padding:0 14px;font-size:14px;background:linear-gradient(135deg,#509aff 0%,#2f7bf3 100%)}\",\n\t\t\".sjdha-root.device-web .sjdha-recording-card{gap:12px;padding:24px 30px;border-radius:16px}\",\n\t\t\".sjdha-root.device-web .sjdha-wave{gap:4px;height:32px}\",\n\t\t\".sjdha-root.device-web .sjdha-wave span{width:4px}\",\n\t\t\".sjdha-root.device-web .sjdha-dialog{width:260px;padding:18px;border-radius:14px;box-shadow:0 12px 32px rgba(15,23,42,.22)}\",\n\t\t\".sjdha-root.device-web .sjdha-dialog-content{font-size:15px}\",\n\t\t\".sjdha-root.device-web .sjdha-dialog-btn{height:34px;padding:0 18px;border-radius:10px}\",\n\t\t\".sjdha-root.device-web .sjdha-toast-content{padding:10px 16px;font-size:13px}\",\n\t\t\"@keyframes sjdha-spin{to{transform:rotate(360deg)}}\",\n\t\t\"@keyframes sjdha-pulse{0%{transform:scale(.8);opacity:.8}100%{transform:scale(1.6);opacity:0}}\",\n\t\t\"@keyframes sjdha-voice-play{0%,100%{opacity:1}50%{opacity:.5}}\",\n\t\t\"@keyframes sjdha-wave{0%,100%{height:calc(var(--sjdha-rem) * 0.16);opacity:.45}50%{height:calc(var(--sjdha-rem) * 0.64);opacity:1}}\",\n\t\t\"@media (max-width:768px){.sjdha-root{width:100%!important;height:100dvh!important;max-width:none!important;max-height:none!important;left:0!important;top:0!important;right:0!important;bottom:0!important;border-radius:0}}\"\n\t].join(\"\");\n\tvar style = document.createElement(\"style\");\n\tstyle.id = \"sj-digital-human-adaptive-style\";\n\tstyle.type = \"text/css\";\n\tstyle.textContent = css;\n\tdocument.head.appendChild(style);\n};\n\nSjDigitalHumanAssistantAdaptive.prototype.mountDom = function () {\n\tvar root = document.createElement(\"div\");\n\troot.className = \"sjdha-root\";\n\troot.innerHTML = [\n\t\t'<div class=\"sjdha-video-area\">',\n\t\t' <div class=\"sjdha-digital-human\">',\n\t\t' <video class=\"sjdha-video\" playsinline webkit-playsinline x5-video-player-type=\"h5\" x5-video-player-fullscreen=\"true\" x5-video-orientation=\"portraint\" autoplay loop muted></video>',\n\t\t' <div class=\"sjdha-queue\"></div>',\n\t\t' <button type=\"button\" class=\"sjdha-fullscreen-btn\"></button>',\n\t\t' <div class=\"sjdha-autoplay-overlay\">',\n\t\t' <div class=\"sjdha-manual-play\" style=\"display:none\">',\n\t\t' <div class=\"sjdha-autoplay-icon\">▶</div>',\n\t\t' <span>点击开始对话</span>',\n\t\t' </div>',\n\t\t' <div class=\"sjdha-autoplay-spinner\"></div>',\n\t\t' </div>',\n\t\t' <div class=\"sjdha-ai-response\">',\n\t\t' <div class=\"sjdha-ai-response-label\">正在播报</div>',\n\t\t' <div class=\"sjdha-ai-response-content\"></div>',\n\t\t' </div>',\n\t\t' </div>',\n\t\t'</div>',\n\t\t'<div class=\"sjdha-chat-area\">',\n\t\t' <div class=\"sjdha-chat-list\"><div class=\"sjdha-chat-date\"></div></div>',\n\t\t' <div class=\"sjdha-input-bar\">',\n\t\t' <button type=\"button\" class=\"sjdha-mode-btn\"></button>',\n\t\t' <div class=\"sjdha-input-wrap\"><input class=\"sjdha-input\" type=\"text\" placeholder=\"请输入聊天内容...\"></div>',\n\t\t' <button type=\"button\" class=\"sjdha-voice-input\" style=\"display:none\">按住 说话</button>',\n\t\t' <button type=\"button\" class=\"sjdha-send-btn\">发送</button>',\n\t\t' </div>',\n\t\t'</div>',\n\t\t'<div class=\"sjdha-recording\">',\n\t\t' <div class=\"sjdha-recording-card\">',\n\t\t' <div class=\"sjdha-wave\"><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span></div>',\n\t\t' <div>松开 发送</div>',\n\t\t' </div>',\n\t\t'</div>',\n\t\t'<div class=\"sjdha-dialog-overlay\">',\n\t\t' <div class=\"sjdha-dialog\">',\n\t\t' <div class=\"sjdha-dialog-content\">离开会话时间过长,是否重连?</div>',\n\t\t' <div class=\"sjdha-dialog-footer\"><button type=\"button\" class=\"sjdha-dialog-btn\">确认</button></div>',\n\t\t' </div>',\n\t\t'</div>',\n\t\t'<div class=\"sjdha-toast\"><div class=\"sjdha-toast-content\"></div></div>'\n\t].join(\"\");\n\n\t(this.config.container || document.body).appendChild(root);\n\n\tthis.dom.root = root;\n\tthis.dom.videoArea = root.querySelector(\".sjdha-video-area\");\n\tthis.dom.video = root.querySelector(\".sjdha-video\");\n\tthis.dom.queue = root.querySelector(\".sjdha-queue\");\n\tthis.dom.fullscreenBtn = root.querySelector(\".sjdha-fullscreen-btn\");\n\tthis.dom.autoplayOverlay = root.querySelector(\".sjdha-autoplay-overlay\");\n\tthis.dom.manualPlay = root.querySelector(\".sjdha-manual-play\");\n\tthis.dom.autoplaySpinner = root.querySelector(\".sjdha-autoplay-spinner\");\n\tthis.dom.aiResponse = root.querySelector(\".sjdha-ai-response\");\n\tthis.dom.aiResponseContent = root.querySelector(\".sjdha-ai-response-content\");\n\tthis.dom.chatArea = root.querySelector(\".sjdha-chat-area\");\n\tthis.dom.chatDate = root.querySelector(\".sjdha-chat-date\");\n\tthis.dom.chatList = root.querySelector(\".sjdha-chat-list\");\n\tthis.dom.modeBtn = root.querySelector(\".sjdha-mode-btn\");\n\tthis.dom.inputWrap = root.querySelector(\".sjdha-input-wrap\");\n\tthis.dom.input = root.querySelector(\".sjdha-input\");\n\tthis.dom.voiceInput = root.querySelector(\".sjdha-voice-input\");\n\tthis.dom.sendBtn = root.querySelector(\".sjdha-send-btn\");\n\tthis.dom.recording = root.querySelector(\".sjdha-recording\");\n\tthis.dom.dialog = root.querySelector(\".sjdha-dialog-overlay\");\n\tthis.dom.dialogConfirm = root.querySelector(\".sjdha-dialog-btn\");\n\tthis.dom.toast = root.querySelector(\".sjdha-toast\");\n\tthis.dom.toastContent = root.querySelector(\".sjdha-toast-content\");\n\n\tthis.dom.input.value = \"\";\n\tthis.dom.chatDate.textContent = this._formatDateHeader();\n\tthis._refreshModeButton();\n\tthis._refreshFullscreenButton();\n};\n\nSjDigitalHumanAssistantAdaptive.prototype.bindEvent = function () {\n\tvar that = this;\n\n\tthis.dom.fullscreenBtn.addEventListener(\"click\", function (event) {\n\t\tevent.stopPropagation();\n\t\tthat.toggleVideoFullscreen();\n\t});\n\n\tthis.dom.manualPlay.addEventListener(\"click\", function (event) {\n\t\tevent.stopPropagation();\n\t\tthat.handleManualPlay();\n\t});\n\n\tthis.dom.root.addEventListener(\"click\", function () {\n\t\tthat.handleContainerClick();\n\t});\n\n\tthis.dom.sendBtn.addEventListener(\"click\", function () {\n\t\tthat.sendMessage();\n\t});\n\n\tthis.dom.input.addEventListener(\"keyup\", function (event) {\n\t\tif (event.key === \"Enter\") {\n\t\t\tthat.sendMessage();\n\t\t}\n\t});\n\n\tthis.dom.input.addEventListener(\"input\", function () {\n\t\tthat.renderStatus();\n\t});\n\n\tthis.dom.modeBtn.addEventListener(\"click\", function () {\n\t\tthat.toggleInputMode();\n\t});\n\n\tthis.dom.voiceInput.addEventListener(\"touchstart\", function (event) {\n\t\tevent.preventDefault();\n\t\tthat.startVoiceInput();\n\t}, { passive: false });\n\n\tthis.dom.voiceInput.addEventListener(\"touchend\", function (event) {\n\t\tevent.preventDefault();\n\t\tthat.stopVoiceInput();\n\t}, { passive: false });\n\n\tthis.dom.voiceInput.addEventListener(\"touchcancel\", function (event) {\n\t\tevent.preventDefault();\n\t\tthat.stopVoiceInput();\n\t}, { passive: false });\n\n\tthis.dom.voiceInput.addEventListener(\"mousedown\", function (event) {\n\t\tevent.preventDefault();\n\t\tthat.startVoiceInput();\n\t});\n\n\tthis.dom.dialogConfirm.addEventListener(\"click\", function () {\n\t\tthat.onReconnectConfirm();\n\t});\n\n\tthis.dom.videoArea.addEventListener(\"mousedown\", function (event) {\n\t\tthat.handleVideoAreaMouseDown(event);\n\t});\n\n\tthis.resizeHandler = debounce(function () {\n\t\tthat.handleResize();\n\t}, 100);\n\n\tdocument.addEventListener(\"mouseup\", function () {\n\t\tthat.stopVoiceInput();\n\t});\n\tdocument.addEventListener(\"mousemove\", function (event) {\n\t\tthat.onDocMouseMove(event);\n\t});\n\tdocument.addEventListener(\"mouseup\", function () {\n\t\tthat.onDocMouseUp();\n\t});\n\twindow.addEventListener(\"resize\", this.resizeHandler);\n\twindow.addEventListener(\"beforeunload\", function () {\n\t\tthat.destroy();\n\t});\n\n\tthis.dom.video.addEventListener(\"playing\", function () {\n\t\tthat.markVideoReady();\n\t});\n};\n\nSjDigitalHumanAssistantAdaptive.prototype.bootstrap = async function () {\n\ttry {\n\t\tawait this.getSessionId();\n\t\tawait this.getPageDefaultData();\n\t\tthis.startConnection();\n\t} catch (error) {\n\t\tconsole.error(\"[SjDigitalHumanAssistantAdaptive] bootstrap failed\", error);\n\t\tthis.showToast(\"初始化失败,请稍后重试\");\n\t}\n};\n\nSjDigitalHumanAssistantAdaptive.prototype.renderInitialMessages = function () {\n\tif (this.config.defaultPlayText) {\n\t\tthis.chatMessages.push({ type: \"system\", msg: this.config.defaultPlayText });\n\t\tthis.renderChatList();\n\t}\n};\n\nSjDigitalHumanAssistantAdaptive.prototype.detectMobileDevice = function () {\n\tif (typeof window === \"undefined\") {\n\t\treturn true;\n\t}\n\tvar narrowViewport = window.innerWidth <= this.config.mobileBreakpoint;\n\tvar coarsePointer = window.matchMedia && window.matchMedia(\"(pointer: coarse)\").matches;\n\tvar hasTouchPoints = navigator.maxTouchPoints > 0 || \"ontouchstart\" in window;\n\tvar mobileUA = /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini|Mobile|HarmonyOS|Windows Phone/i.test(navigator.userAgent);\n\treturn !!(narrowViewport || (mobileUA && hasTouchPoints) || coarsePointer);\n};\n\nSjDigitalHumanAssistantAdaptive.prototype.syncDeviceMode = function () {\n\tthis.state.isMobileDevice = this.detectMobileDevice();\n\tthis.updateRemBase();\n\tthis.dom.root.classList.toggle(\"device-mobile\", this.state.isMobileDevice);\n\tthis.dom.root.classList.toggle(\"device-web\", !this.state.isMobileDevice);\n\tthis.dom.root.classList.toggle(\"video-fullscreen\", !!this.state.isVideoFullscreen);\n\tthis.dom.root.classList.toggle(\"video-split\", !this.state.hasAvatarUrl);\n\n\tif (!this.state.isMobileDevice) {\n\t\tthis.dom.root.style.width = this._normalizeSize(this.config.windowWidth) || \"300px\";\n\t\tthis.dom.root.style.height = this._normalizeSize(this.config.windowHeight) || \"550px\";\n\t\tif (!this.state.dragPosition) {\n\t\t\tthis.dom.root.style.right = \"24px\";\n\t\t\tthis.dom.root.style.bottom = \"24px\";\n\t\t}\n\t} else {\n\t\tthis.state.dragPosition = null;\n\t\tthis.dom.root.style.left = \"0\";\n\t\tthis.dom.root.style.top = \"0\";\n\t\tthis.dom.root.style.right = \"0\";\n\t\tthis.dom.root.style.bottom = \"0\";\n\t}\n\n\t// 在全屏模式下保留输入栏可见,但隐藏聊天列表;非全屏时恢复默认显示\n\tif (this.state.isVideoFullscreen) {\n\t\tthis.dom.chatArea.classList.remove(\"hidden\");\n\t\t// 全屏时隐藏聊天列表\n this.dom.chatList.style.display = \"none\";\n\t\t// 保证输入区在全屏下仍可见并按当前模式显示文本/语音控件\n\t\tthis.dom.inputWrap.style.display = this.state.isTextInputMode ? \"block\" : \"none\";\n\t\tthis.dom.sendBtn.style.display = this.state.isTextInputMode ? \"block\" : \"none\";\n\t\tthis.dom.voiceInput.style.display = this.state.isTextInputMode ? \"none\" : \"block\";\n\t} else {\n\t\t// 恢复聊天列表所有子项显示\n\t\tthis.dom.chatList.style.display = \"block\";\n\t\tthis.dom.chatArea.classList.remove(\"hidden\");\n\t}\n\tthis.dom.aiResponse.style.display = this.state.isVideoFullscreen && this.state.currentAiMessage ? \"block\" : \"none\";\n this._refreshFullscreenButton();\n\tthis.dom.fullscreenBtn.style.display = this.state.hasAvatarUrl ? \"flex\" : \"none\";\n};\n\nSjDigitalHumanAssistantAdaptive.prototype.handleResize = function () {\n\tthis.updateRemBase();\n\tthis.syncDeviceMode();\n\tthis.clampDragPositionOnResize();\n};\n\nSjDigitalHumanAssistantAdaptive.prototype.toggleVideoFullscreen = function () {\n\tthis.state.isVideoFullscreen = !this.state.isVideoFullscreen;\n\tthis.syncDeviceMode();\n\tif (!this.state.isVideoFullscreen) {\n\t\tthis.scrollChatToBottom();\n\t}\n};\n\nSjDigitalHumanAssistantAdaptive.prototype.handleVideoAreaMouseDown = function (event) {\n\tif (this.state.isMobileDevice || event.button !== 0 || this._isInteractiveDragTarget(event.target)) {\n\t\treturn;\n\t}\n\tevent.preventDefault();\n\tvar rect = this.dom.root.getBoundingClientRect();\n\tthis.drag.startClientX = event.clientX;\n\tthis.drag.startClientY = event.clientY;\n\tthis.drag.startLeft = rect.left;\n\tthis.drag.startTop = rect.top;\n\tthis.state.isDragging = true;\n\tthis.state.dragMoved = false;\n\tthis.state.dragPosition = { left: rect.left, top: rect.top };\n\tthis.dom.videoArea.style.cursor = \"grabbing\";\n};\n\nSjDigitalHumanAssistantAdaptive.prototype.onDocMouseMove = function (event) {\n\tif (!this.state.isDragging) {\n\t\treturn;\n\t}\n\tvar dx = event.clientX - this.drag.startClientX;\n\tvar dy = event.clientY - this.drag.startClientY;\n\tif (!this.state.dragMoved && (Math.abs(dx) > 2 || Math.abs(dy) > 2)) {\n\t\tthis.state.dragMoved = true;\n\t}\n\tvar rect = this.dom.root.getBoundingClientRect();\n\tvar next = this._clampPosition(this.drag.startLeft + dx, this.drag.startTop + dy, rect.width, rect.height);\n\tthis.state.dragPosition = next;\n\tthis.dom.root.style.left = next.left + \"px\";\n\tthis.dom.root.style.top = next.top + \"px\";\n\tthis.dom.root.style.right = \"auto\";\n\tthis.dom.root.style.bottom = \"auto\";\n};\n\nSjDigitalHumanAssistantAdaptive.prototype.onDocMouseUp = function () {\n\tif (!this.state.isDragging) {\n\t\treturn;\n\t}\n\tthis.state.isDragging = false;\n\tthis.dom.videoArea.style.cursor = \"grab\";\n\tif (this.state.dragMoved) {\n\t\tvar that = this;\n\t\twindow.addEventListener(\"click\", function blockClick(event) {\n\t\t\tevent.preventDefault();\n\t\t\tevent.stopPropagation();\n\t\t\twindow.removeEventListener(\"click\", blockClick, true);\n\t\t}, true);\n\t}\n};\n\nSjDigitalHumanAssistantAdaptive.prototype.clampDragPositionOnResize = function () {\n\tif (!this.state.dragPosition || this.state.isMobileDevice) {\n\t\treturn;\n\t}\n\tvar rect = this.dom.root.getBoundingClientRect();\n\tvar next = this._clampPosition(this.state.dragPosition.left, this.state.dragPosition.top, rect.width, rect.height);\n\tthis.state.dragPosition = next;\n\tthis.dom.root.style.left = next.left + \"px\";\n\tthis.dom.root.style.top = next.top + \"px\";\n };\n\nSjDigitalHumanAssistantAdaptive.prototype.handleContainerClick = function () {\n\tif (this.state.hasUnmuted) {\n\t\treturn;\n\t}\n\tif (this.dom.video && this.dom.video.muted) {\n\t\tthis.dom.video.muted = false;\n\t\tif (this.dom.video.paused) {\n\t\t\tthis.dom.video.play();\n\t\t}\n\t\tthis.state.hasUnmuted = true;\n\t}\n};\n\nSjDigitalHumanAssistantAdaptive.prototype.handleManualPlay = async function () {\n\tif (!this.dom.video || !this.state.isMediaReady) {\n\t\treturn;\n\t}\n\ttry {\n\t\tawait this.dom.video.play();\n\t\tthis.dom.video.muted = false;\n\t\tthis.state.isAutoplayBlocked = false;\n\t\tthis.renderAutoplayState();\n\t} catch (error) {\n\t\tthis.showToast(\"视频播放失败,请点击按钮重试\");\n\t}\n};\n\nSjDigitalHumanAssistantAdaptive.prototype.toggleInputMode = function () {\n\tif (this.state.isTextInputMode && !this.state.isSSEConnected) {\n\t\tthis.showToast(\"消息服务未连接,请稍后再试\");\n\t\treturn;\n\t}\n\tthis.state.isTextInputMode = !this.state.isTextInputMode;\n\tthis._refreshModeButton();\n\tthis.dom.inputWrap.style.display = this.state.isTextInputMode ? \"block\" : \"none\";\n\tthis.dom.sendBtn.style.display = this.state.isTextInputMode ? \"block\" : \"none\";\n\tthis.dom.voiceInput.style.display = this.state.isTextInputMode ? \"none\" : \"block\";\n\tif (!this.state.isTextInputMode) {\n\t\tthis.ensureRecorder();\n\t} else {\n\t\tthis.releaseRecorder();\n\t}\n};\n\nSjDigitalHumanAssistantAdaptive.prototype.sendMessage = async function () {\n\tvar text = (this.dom.input.value || \"\").replace(/^\\s+|\\s+$/g, \"\");\n\tif (!text) {\n\t\treturn;\n\t}\n\tif (!this.state.isSSEConnected) {\n\t\tthis.showToast(\"消息服务未连接,请稍后再试\");\n\t\treturn;\n\t}\n\tawait this.digitalHumanInterruptTalk();\n\tthis.state.isReceivingReply = false;\n\tthis.state.currentAiMessage = \"\";\n\tvar now = Date.now();\n\tthis.chatMessages.push({\n\t\ttype: \"user\",\n\t\tmsg: text,\n\t\ttimestamp: now,\n\t\tshowTime: this.shouldShowTimeLabel(now)\n\t});\n\tthis.dom.input.value = \"\";\n\tthis.renderStatus();\n\tthis.renderChatList();\n\tthis.scrollChatToBottom();\n\tawait this.digitalHumanChat(text, \"chat\");\n};\n\nSjDigitalHumanAssistantAdaptive.prototype.receiveMessage = function (text) {\n\tvar cleanText = (text || \"\").replace(/^\\s+|\\s+$/g, \"\");\n\tif (!cleanText) {\n\t\treturn;\n\t}\n\tvar last = this.chatMessages[this.chatMessages.length - 1];\n\tif (this.state.isReceivingReply && last && last.type === \"system\") {\n\t\tlast.msg += cleanText;\n\t\tthis.state.currentAiMessage += cleanText;\n\t} else {\n\t\tthis.chatMessages.push({ type: \"system\", msg: cleanText });\n\t\tthis.state.isReceivingReply = true;\n\t\tthis.state.currentAiMessage = cleanText;\n\t}\n\tthis.renderChatList();\n\tthis.scrollChatToBottom();\n\tthis.renderAiResponse();\n};\n\nSjDigitalHumanAssistantAdaptive.prototype.renderChatList = function () {\n\tvar list = this.dom.chatList;\n\tvar avatarStyle = this.state.avatarPic ? ' style=\"background-image:url(' + this._escapeHtml(this.state.avatarPic) + ')\"' : \"\";\n\tvar html = \"\";\n\tfor (var i = 0; i < this.chatMessages.length; i++) {\n\t\tvar msg = this.chatMessages[i];\n\t\tif (!msg) {\n\t\t\tcontinue;\n\t\t}\n\t\tif (msg.type === \"user\" && msg.showTime && msg.timestamp) {\n\t\t\thtml += '<div class=\"sjdha-time-label\"><span>' + this._escapeHtml(this.formatMessageTime(msg.timestamp)) + '</span></div>';\n\t\t}\n\t\tif (msg.type === \"system\" && msg.msg) {\n\t\t\thtml += '<div class=\"sjdha-chat-item system\"><div class=\"sjdha-avatar\"' + avatarStyle + '></div><div class=\"sjdha-bubble\">' + this._escapeHtml(msg.msg) + '</div></div>';\n\t\t} else if (msg.type === \"user\" && (msg.msg || msg.voiceUrl)) {\n\t\t\tif (msg.voiceUrl) {\n\t\t\t\thtml += '<div class=\"sjdha-chat-item user\" data-voice-index=\"' + i + '\"><div class=\"sjdha-avatar\"></div><div class=\"sjdha-bubble sjdha-voice-bubble\"><div>' + this._escapeHtml(String(msg.duration || 0)) + '\"</div><div class=\"sjdha-voice-icon' + (this.state.playingVoiceId === i ? ' playing' : '') + '\"></div></div></div>';\n\t\t\t} else {\n\t\t\t\thtml += '<div class=\"sjdha-chat-item user\"><div class=\"sjdha-avatar\"></div><div class=\"sjdha-bubble\">' + this._escapeHtml(msg.msg) + '</div></div>';\n\t\t\t}\n\t\t}\n\t}\n\t// 如果用户将 .sjdha-chat-date 放入了 chat-list,保留其原始 HTML,避免被覆盖\n\tvar dateHtml = \"\";\n\ttry {\n\t\tif (this.dom.chatDate && this.dom.chatDate.parentElement === list) {\n\t\t\tdateHtml = this.dom.chatDate.outerHTML || \"\";\n\t\t}\n\t} catch (e) {\n\t\tdateHtml = \"\";\n\t}\n\tlist.innerHTML = dateHtml + html;\n\n\t// 重新绑定 chatDate 引用(如果存在于 list 中的话)\n\tif (list.querySelector) {\n\t\tvar newDate = list.querySelector('.sjdha-chat-date');\n\t\tif (newDate) {\n\t\t\tthis.dom.chatDate = newDate;\n\t\t}\n\t}\n\n\tvar voiceNodes = list.querySelectorAll(\"[data-voice-index]\");\n\tvar that = this;\n\tfor (var j = 0; j < voiceNodes.length; j++) {\n\t\tvoiceNodes[j].addEventListener(\"click\", function () {\n\t\t\tvar idx = parseInt(this.getAttribute(\"data-voice-index\"), 10);\n\t\t\tthat.playVoice(that.chatMessages[idx], idx);\n\t\t});\n\t}\n\n\tthis.renderAiResponse();\n};\n\nSjDigitalHumanAssistantAdaptive.prototype.renderAiResponse = function () {\n\tthis.dom.aiResponseContent.textContent = this.state.currentAiMessage || \"\";\n\tthis.dom.aiResponse.style.display = this.state.isVideoFullscreen && this.state.currentAiMessage ? \"block\" : \"none\";\n};\n\nSjDigitalHumanAssistantAdaptive.prototype.scrollChatToBottom = function () {\n\tvar that = this;\n\tsetTimeout(function () {\n\t\tthat.dom.chatList.scrollTop = that.dom.chatList.scrollHeight;\n\t\tthat.dom.aiResponseContent.scrollTop = that.dom.aiResponseContent.scrollHeight;\n\t}, 0);\n};\n\nSjDigitalHumanAssistantAdaptive.prototype.startConnection = function () {\n\tvar that = this;\n\tif (this.state.isConnected || this.state.isConnecting) {\n\t\treturn;\n\t}\n\n\tvar hlsUrl = this.state.currentHlsUrl;\n\tvar rtsUrl = this.state.currentRtsUrl;\n\n\tif (!hlsUrl && !rtsUrl) {\n\t\tif (this.state.defaultVideoUrl) {\n\t\t\tthis.dom.video.src = this.state.defaultVideoUrl;\n\t\t\tthis.state.isMediaReady = true;\n\t\t\tthis.dom.video.play().then(function () {\n\t\t\t\tthat.state.isAutoplayBlocked = false;\n\t\t\t\tthat.renderAutoplayState();\n\t\t\t}).catch(function () {\n\t\t\t\tthat.state.isAutoplayBlocked = true;\n\t\t\t\tthat.renderAutoplayState();\n\t\t\t});\n\t\t}\n\t\treturn;\n\t}\n\n\tthis.state.isConnecting = true;\n\tthis.state.isManualDisconnect = false;\n\tthis.renderStatus();\n\tthis.cleanupVideo();\n\tthis.destroyRts();\n\n\tif (rtsUrl) {\n\t\tthis.tryPlayWithRts(rtsUrl, hlsUrl);\n\t\treturn;\n\t}\n\tthis.playWithHls(hlsUrl);\n};\n\nSjDigitalHumanAssistantAdaptive.prototype.tryPlayWithRts = function (rtsUrl, hlsUrl) {\n\tvar AliRtsCtor = this.config.aliRtsClass;\n\tvar that = this;\n\tif (!AliRtsCtor || !AliRtsCtor.createClient) {\n\t\tthis.playWithHls(hlsUrl);\n\t\treturn;\n\t}\n\tthis.stream.aliRts = AliRtsCtor.createClient();\n\tif (this.stream.aliRts.on) {\n\t\tthis.stream.aliRts.on(\"onError\", function (error) {\n\t\t\tconsole.error(\"[SjDigitalHumanAssistantAdaptive] RTS error\", error);\n\t\t});\n\t}\n\tthis.stream.aliRts.isSupport({ isReceiveVideo: true }).then(function () {\n\t\tthat.subscribeRts(rtsUrl, hlsUrl);\n\t}).catch(function () {\n\t\tthat.destroyRts();\n\t\tthat.playWithHls(hlsUrl);\n\t});\n};\n\nSjDigitalHumanAssistantAdaptive.prototype.subscribeRts = function (rtsUrl, hlsUrl) {\n\tvar that = this;\n\tthis.stream.aliRts.subscribe(rtsUrl, {\n\t\tmediaTimeout: 6000,\n\t\tretryTimes: 3,\n\t\tretryInterval: 2000\n\t}).then(function (remoteStream) {\n\t\tif (remoteStream && remoteStream.play) {\n\t\t\tremoteStream.play(that.dom.video);\n\t\t}\n\t\tthat.state.isMediaReady = true;\n\t\tthat.state.isConnected = true;\n\t\tthat.state.isConnecting = false;\n\t\tthat.state.currentReconnectTimes = 0;\n\t\tthat.clearReconnectTimer();\n\t\tthat.dom.video.play().then(function () {\n\t\t\tthat.state.isAutoplayBlocked = false;\n\t\t\tthat.renderAutoplayState();\n\t\t}).catch(function () {\n\t\t\tthat.state.isAutoplayBlocked = true;\n\t\t\tthat.renderAutoplayState();\n\t\t});\n\t\tthat.renderStatus();\n\t}).catch(function () {\n\t\tthat.destroyRts();\n\t\tthat.playWithHls(hlsUrl);\n\t});\n};\n\nSjDigitalHumanAssistantAdaptive.prototype.playWithHls = function (hlsUrl) {\n\tvar that = this;\n\tvar HlsCtor = this.config.hlsClass;\n\tif (!hlsUrl) {\n\t\tthis.state.isConnecting = false;\n\t\tthis.renderStatus();\n\t\tthis.reconnect();\n\t\treturn;\n\t}\n\n\tif (this.stream.hls && this.stream.hls.destroy) {\n\t\tthis.stream.hls.destroy();\n\t\tthis.stream.hls = null;\n\t}\n\n\tif (HlsCtor && HlsCtor.isSupported && HlsCtor.isSupported()) {\n\t\tthis.stream.hls = new HlsCtor({\n\t\t\tmaxBufferLength: 30,\n\t\t\tmaxMaxBufferLength: 60,\n\t\t\tliveSyncDurationCount: 2,\n\t\t\tfragLoadingMaxRetry: 10,\n\t\t\tfragLoadingRetryDelay: 1000,\n\t\t\tmanifestLoadingMaxRetry: 4,\n\t\t\tlevelLoadingMaxRetry: 4,\n\t\t\tenableWorker: true,\n\t\t\tlowLatencyMode: false\n\t\t});\n\t\tthis.stream.hls.loadSource(hlsUrl);\n\t\tthis.stream.hls.attachMedia(this.dom.video);\n\t\tthis.stream.hls.on(HlsCtor.Events.MANIFEST_PARSED, function () {\n\t\t\tthat.state.isMediaReady = true;\n\t\t\tthat.dom.video.play().then(function () {\n\t\t\t\tthat.state.isAutoplayBlocked = false;\n\t\t\t\tthat.renderAutoplayState();\n\t\t\t}).catch(function () {\n\t\t\t\tthat.state.isAutoplayBlocked = true;\n\t\t\t\tthat.renderAutoplayState();\n\t\t\t});\n\t\t});\n\t\tthis.stream.hls.on(HlsCtor.Events.ERROR, function (event, data) {\n\t\t\tif (data && data.fatal) {\n\t\t\t\tthat.state.isConnected = false;\n\t\t\t\tthat.state.isConnecting = false;\n\t\t\t\tthat.renderStatus();\n\t\t\t\tthat.reconnect();\n\t\t\t}\n\t\t});\n\t} else if (this.dom.video.canPlayType(\"application/vnd.apple.mpegurl\")) {\n\t\tthis.dom.video.src = hlsUrl;\n\t\tthis.dom.video.load();\n\t\tthis.dom.video.addEventListener(\"loadedmetadata\", function onLoaded() {\n\t\t\tthat.dom.video.removeEventListener(\"loadedmetadata\", onLoaded);\n\t\t\tthat.state.isConnected = true;\n\t\t\tthat.state.isConnecting = false;\n\t\t\tthat.state.isMediaReady = true;\n\t\t\tthat.state.currentReconnectTimes = 0;\n\t\t\tthat.clearReconnectTimer();\n\t\t\tthat.renderStatus();\n\t\t});\n\t\tthis.dom.video.play().then(function () {\n\t\t\tthat.state.isAutoplayBlocked = false;\n\t\t\tthat.renderAutoplayState();\n\t\t}).catch(function () {\n\t\t\tthat.state.isAutoplayBlocked = true;\n\t\t\tthat.renderAutoplayState();\n\t\t});\n\t} else {\n\t\tthis.state.isConnecting = false;\n\t\tthis.renderStatus();\n\t\tthis.reconnect();\n\t}\n};\n\nSjDigitalHumanAssistantAdaptive.prototype.markVideoReady = function () {\n\tthis.state.isConnected = true;\n\tthis.state.isConnecting = false;\n\tthis.state.currentReconnectTimes = 0;\n\tthis.state.isMediaReady = true;\n\tthis.clearReconnectTimer();\n\tthis.renderStatus();\n\tthis.state.isAutoplayBlocked = false;\n\tthis.state.needManualPlay = false;\n\tthis.renderAutoplayState();\n};\n\nSjDigitalHumanAssistantAdaptive.prototype.renderStatus = function () {\n\tthis.dom.sendBtn.disabled = !this.state.isSSEConnected || !(this.dom.input.value || \"\").replace(/^\\s+|\\s+$/g, \"\");\n};\n\nSjDigitalHumanAssistantAdaptive.prototype.renderAutoplayState = function () {\n\tvar overlayVisible = this.state.isAutoplayBlocked;\n\tthis.dom.autoplayOverlay.classList.toggle(\"hidden\", !overlayVisible);\n\tthis.dom.manualPlay.style.display = this.state.needManualPlay ? \"flex\" : \"none\";\n\tthis.dom.autoplaySpinner.style.display = this.state.needManualPlay ? \"none\" : \"block\";\n};\n\nSjDigitalHumanAssistantAdaptive.prototype.reconnect = function () {\n\tvar that = this;\n\tif (this.state.isManualDisconnect || this.state.isConnected || this.state.isConnecting || this.state.isWaitingReconnect) {\n\t\treturn;\n\t}\n\tif (this.config.maxReconnectTimes !== -1 && this.state.currentReconnectTimes >= this.config.maxReconnectTimes) {\n\t\treturn;\n\t}\n\tthis.state.isWaitingReconnect = true;\n\tthis.state.currentReconnectTimes += 1;\n\tthis.stream.reconnectTimer = setTimeout(function () {\n\t\tthat.state.isWaitingReconnect = false;\n\t\tif (!that.state.isConnected && !that.state.isConnecting) {\n\t\t\tthat.startConnection();\n\t\t}\n\t}, this.config.reconnectInterval * 1000);\n};\n\nSjDigitalHumanAssistantAdaptive.prototype.clearReconnectTimer = function () {\n\tif (this.stream.reconnectTimer) {\n\t\tclearTimeout(this.stream.reconnectTimer);\n\t\tthis.stream.reconnectTimer = null;\n\t}\n\tthis.state.isWaitingReconnect = false;\n};\n\nSjDigitalHumanAssistantAdaptive.prototype.startSSE = function () {\n\tvar that = this;\n\tif (!this.state.chatSessionId) {\n\t\treturn;\n\t}\n\tfetch(this._buildUrl(\"/stream_llm\"), {\n\t\tmethod: \"POST\",\n\t\theaders: { \"Content-Type\": \"application/json\" },\n\t\tbody: JSON.stringify({\n\t\t\tchatSessionId: parseInt(this.state.chatSessionId, 10),\n\t\t\tsessionid: parseInt(this.state.sessionid || 0, 10)\n\t\t})\n\t}).then(function (response) {\n\t\tthat.state.isSSEConnected = true;\n\t\tthat.sseReconnectCount = 0;\n\t\tthat.renderStatus();\n\t\tif (!that.state.hasAvatarUrl) {\n\t\t\tthat.fetchSessionStatus();\n\t\t}\n\t\tif (!response.body) {\n\t\t\treturn;\n\t\t}\n\t\tthat.stream.sseReader = response.body.getReader();\n\t\tthat.consumeSSE();\n\t}).catch(function (error) {\n\t\tconsole.error(\"[SjDigitalHumanAssistantAdaptive] SSE failed\", error);\n\t\tthat.state.isSSEConnected = false;\n\t\tthat.renderStatus();\n\t});\n};\n\nSjDigitalHumanAssistantAdaptive.prototype.consumeSSE = function () {\n\tvar that = this;\n\tvar buffer = \"\";\n\tfunction read() {\n\t\tif (!that.stream.sseReader) {\n\t\t\treturn;\n\t\t}\n\t\tthat.stream.sseReader.read().then(function (result) {\n\t\t\tif (result.done) {\n\t\t\t\tthat.state.isSSEConnected = false;\n\t\t\t\tthat.renderStatus();\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tbuffer += new TextDecoder().decode(result.value);\n\t\t\tvar lines = buffer.split(\"\\n\");\n\t\t\tbuffer = lines.pop() || \"\";\n\t\t\tfor (var i = 0; i < lines.length; i++) {\n\t\t\t\tthat.handleSSELine(lines[i]);\n\t\t\t}\n\t\t\tread();\n\t\t}).catch(function () {\n\t\t\tthat.reconnectSSE();\n\t\t});\n\t}\n\tread();\n};\n\nSjDigitalHumanAssistantAdaptive.prototype.handleSSELine = function (line) {\n\tif (!line || line.indexOf(\"data:\") !== 0) {\n\t\treturn;\n\t}\n\tvar rawData = line.slice(5).replace(/^\\s+|\\s+$/g, \"\");\n\tif (!rawData || rawData === \"<endofanswer>\") {\n\t\treturn;\n\t}\n\tif (rawData.indexOf(\"[ERROR]\") !== -1) {\n\t\tif (rawData === \"[ERROR] Disconnected by server\") {\n\t\t\tthis.promptReconnect();\n\t\t\treturn;\n\t\t}\n\t\tthis.reconnectSSE();\n\t\treturn;\n\t}\n\ttry {\n\t\tvar jsonData = JSON.parse(rawData);\n\t\tif (jsonData && jsonData.text) {\n\t\t\tif (jsonData.text.indexOf(\"[ERROR]\") !== -1) {\n\t\t\t\tthis.reconnectSSE();\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis.receiveMessage(jsonData.text);\n\t\t\treturn;\n\t\t}\n\t\tif (typeof jsonData === \"string\") {\n\t\t\tthis.receiveMessage(jsonData);\n\t\t\treturn;\n\t\t}\n\t} catch (error) {\n\t\tthis.receiveMessage(rawData);\n\t}\n};\n\nSjDigitalHumanAssistantAdaptive.prototype.reconnectSSE = function () {\n\tvar that = this;\n\tif (this.sseReconnectCount >= 5) {\n\t\treturn;\n\t}\n\tthis.sseReconnectCount += 1;\n\tif (this.stream.sseReader) {\n\t\tthis.stream.sseReader.cancel();\n\t\tthis.stream.sseReader = null;\n\t}\n\tthis.state.isSSEConnected = false;\n\tthis.renderStatus();\n\tif (this.stream.sseReconnectTimer) {\n\t\tclearTimeout(this.stream.sseReconnectTimer);\n\t}\n\tthis.stream.sseReconnectTimer = setTimeout(function () {\n\t\tthat.startSSE();\n\t}, 1000);\n};\n\nSjDigitalHumanAssistantAdaptive.prototype.promptReconnect = function () {\n\tvar that = this;\n\tthis.state.showReconnectDialog = true;\n\tthis.dom.dialog.classList.add(\"show\");\n\tthis.state.isConnected = false;\n\tthis.state.isMediaReady = false;\n\tthis.state.isAutoplayBlocked = true;\n\tthis.state.isConnecting = false;\n\tthis.state.isSSEConnected = false;\n\tthis.renderAutoplayState();\n\tthis.renderStatus();\n\tif (this.stream.sseReader) {\n\t\tthis.stream.sseReader.cancel();\n\t\tthis.stream.sseReader = null;\n\t}\n\tif (this.stream.hls && this.stream.hls.destroy) {\n\t\tthis.stream.hls.destroy();\n\t\tthis.stream.hls = null;\n\t}\n\tthis.destroyRts();\n\tthis.cleanupVideo();\n\tthis.reconnectDialogCallback = async function () {\n\t\tawait that.getSessionId();\n\t\tthat.startConnection();\n\t};\n};\n\nSjDigitalHumanAssistantAdaptive.prototype.onReconnectConfirm = async function () {\n\tthis.state.showReconnectDialog = false;\n\tthis.dom.dialog.classList.remove(\"show\");\n\tif (this.reconnectDialogCallback) {\n\t\tawait this.reconnectDialogCallback();\n\t\tthis.reconnectDialogCallback = null;\n\t}\n};\n\nSjDigitalHumanAssistantAdaptive.prototype.digitalHumanChat = async function (text, type) {\n\tif (!this.state.isSSEConnected) {\n\t\treturn;\n\t}\n\ttype = type || \"echo\";\n\ttry {\n\t\tawait this._request(\"/human\", \"POST\", {\n\t\t\tchatSessionId: parseInt(this.state.chatSessionId, 10),\n\t\t\tsessionid: parseInt(this.state.sessionid || 0, 10),\n\t\t\ttype: type,\n\t\t\ttext: text\n\t\t});\n\t} catch (error) {\n\t\tconsole.error(\"[SjDigitalHumanAssistantAdaptive] send chat failed\", error);\n\t}\n};\n\nSjDigitalHumanAssistantAdaptive.prototype.digitalHumanInterruptTalk = async function () {\n\tif (!this.state.chatSessionId) {\n\t\treturn;\n\t}\n\ttry {\n\t\tawait this._request(\"/interrupt_talk\", \"POST\", {\n\t\t\tchatSessionId: parseInt(this.state.chatSessionId, 10),\n\t\t\tsessionid: parseInt(this.state.sessionid || 0, 10)\n\t\t});\n\t} catch (error) {\n\t\tconsole.error(\"[SjDigitalHumanAssistantAdaptive] interrupt failed\", error);\n\t}\n};\n\nSjDigitalHumanAssistantAdaptive.prototype.getPageDefaultData = async function () {\n\tvar response = await fetch(this._buildUrl(\"/daxi/avatar/info?id=\" + this.config.avatarId), {\n\t\tmethod: \"GET\"\n\t});\n\tif (!response.ok) {\n\t\tthrow new Error(\"get default data failed\");\n\t}\n\tvar result = await response.json();\n\tvar entity = result && result.data && result.data.entities ? result.data.entities[0] : null;\n\tif (!entity) {\n\t\treturn;\n\t}\n\tthis.state.posterBgUrl = entity.imageDefault || \"\";\n\tthis.state.videoEleBg = entity.coverImageUrl || \"\";\n\tthis.state.defaultVideoUrl = entity.videoDefault || \"\";\n\tthis.state.avatarPic = entity.characterAvatar || \"\";\n\tif (this.state.posterBgUrl) {\n\t\tthis.dom.video.setAttribute(\"poster\", this.state.posterBgUrl);\n\t}\n\tif (this.state.videoEleBg) {\n\t\tthis.dom.videoArea.style.backgroundImage = \"url(\" + this.state.videoEleBg + \")\";\n\t}\n\tthis.renderChatList();\n};\n\nSjDigitalHumanAssistantAdaptive.prototype.getSessionId = async function () {\n\tvar result = await this._request(\"/connect\", \"POST\", {\n\t\taccessToken: this.config.accessToken\n\t});\n\tthis.state.chatSessionId = result && result.chatSessionId != null ? String(result.chatSessionId) : \"\";\n\tthis.state.sessionid = result && result.sessionid != null ? String(result.sessionid) : \"\";\n\tif (this.state.chatSessionId) {\n\t\tthis.startSSE();\n\t}\n\tif (result && result.sessionid != null && Number(result.sessionid) >= 0) {\n\t\tvar urlItem = result.sessionid && Number(result.sessionid) === 0 ? result.sessionid : \"\";\n\t\tif (result.hlsAvatarUrl) {\n\t\t\tthis.state.currentRtsUrl = \"artc://\" + String(result.hlsAvatarUrl).replace(/^https:\\/\\//, \"\").replace(/\\.m3u8$/, \"\") + urlItem;\n\t\t}\n\t}\n\tif (result && result.hlsAvatarUrl) {\n\t\tthis.state.currentHlsUrl = result.hlsAvatarUrl;\n\t\tthis.state.hasAvatarUrl = true;\n\t} else {\n\t\tthis.state.currentHlsUrl = \"\";\n\t\tthis.state.currentRtsUrl = \"\";\n\t\tthis.state.hasAvatarUrl = false;\n\t\tthis.state.isVideoFullscreen = false;\n\t}\n\tthis.syncDeviceMode();\n\treturn result;\n};\n\nSjDigitalHumanAssistantAdaptive.prototype.fetchSessionStatus = async function () {\n\ttry {\n\t\tvar result = await this._request(\"/session_status\", \"GET\");\n\t\tvar activeSessions = result && result.active_chat_sessions ? result.active_chat_sessions : 0;\n\t\tvar maxSessions = result && result.max_sessions ? result.max_sessions : 0;\n\t\tvar waitingCount = activeSessions - maxSessions;\n\t\tthis.state.queueCount = waitingCount > 0 ? waitingCount : 0;\n\t\tthis.dom.queue.textContent = this.state.queueCount ? \"语音回复排队中,前方\" + this.state.queueCount + \"人\" : \"\";\n\t\tthis.dom.queue.style.display = this.state.queueCount ? \"block\" : \"none\";\n\t} catch (error) {\n\t\tconsole.error(\"[SjDigitalHumanAssistantAdaptive] session status failed\", error);\n\t}\n};\n\nSjDigitalHumanAssistantAdaptive.prototype.ensureRecorder = async function () {\n\tif (this.audio.mediaStream || this.audio.permissionPromise) {\n\t\treturn this.audio.permissionPromise || Promise.resolve(true);\n\t}\n\tvar that = this;\n\tthis.audio.permissionPromise = navigator.mediaDevices.getUserMedia({ audio: true }).then(function (stream) {\n\t\tthat.audio.mediaStream = stream;\n\t\tthat.audio.permissionPromise = null;\n\t\treturn true;\n\t}).catch(function () {\n\t\tthat.audio.permissionPromise = null;\n\t\tthat.showToast(\"无法访问麦克风\");\n\t\treturn false;\n\t});\n\treturn this.audio.permissionPromise;\n};\n\nSjDigitalHumanAssistantAdaptive.prototype.startVoiceInput = async function () {\n\tif (this.state.isRecording) {\n\t\treturn;\n\t}\n\tthis.stopRequestedBeforeStart = false;\n\tthis.isButtonPressed = true;\n\tif (this.dom.video) {\n\t\tthis.dom.video.muted = true;\n\t}\n\tawait this.digitalHumanInterruptTalk();\n\tif (this.stopRequestedBeforeStart || !this.isButtonPressed) {\n\t\tthis.isButtonPressed = false;\n\t\treturn;\n\t}\n\tvar ready = await this.ensureRecorder();\n\tif (!ready || this.stopRequestedBeforeStart || !this.isButtonPressed) {\n\t\tthis.isButtonPressed = false;\n\t\treturn;\n\t}\n\tthis.beginRecordStream();\n\tthis.state.isRecording = true;\n\tthis.dom.recording.classList.add(\"show\");\n};\n\nSjDigitalHumanAssistantAdaptive.prototype.beginRecordStream = function () {\n\tvar AudioContextCtor = window.AudioContext || window.webkitAudioContext;\n\tif (!this.audio.mediaStream || !AudioContextCtor) {\n\t\treturn;\n\t}\n\tthis.audio.audioContext = new AudioContextCtor();\n\tthis.audio.sourceNode = this.audio.audioContext.createMediaStreamSource(this.audio.mediaStream);\n\tthis.audio.processorNode = this.audio.audioContext.createScriptProcessor(4096, 1, 1);\n\tthis.audio.chunks = [];\n\tthis.audio.startTime = Date.now();\n\tvar that = this;\n\tthis.audio.processorNode.onaudioprocess = function (event) {\n\t\tvar input = event.inputBuffer.getChannelData(0);\n\t\tthat.audio.chunks.push(new Float32Array(input));\n\t};\n\tthis.audio.sourceNode.connect(this.audio.processorNode);\n\tthis.audio.processorNode.connect(this.audio.audioContext.destination);\n};\n\nSjDigitalHumanAssistantAdaptive.prototype.stopVoiceInput = function () {\n\tthis.stopRequestedBeforeStart = true;\n\tthis.isButtonPressed = false;\n\tif (this.dom.video) {\n\t\tthis.dom.video.muted = false;\n\t}\n\tif (!this.state.isRecording) {\n\t\treturn;\n\t}\n\tthis.state.isRecording = false;\n\tthis.dom.recording.classList.remove(\"show\");\n\tvar duration = Math.round((Date.now() - this.audio.startTime) / 1000);\n\tvar blob = this.finishRecordStream();\n\tif (!blob || duration < 1) {\n\t\tthis.showToast(\"录音时间太短\");\n\t\treturn;\n\t}\n\tthis.sendVoiceMessage(blob, duration);\n};\n\nSjDigitalHumanAssistantAdaptive.prototype.finishRecordStream = function () {\n\tif (!this.audio.audioContext) {\n\t\treturn null;\n\t}\n\tif (this.audio.processorNode) {\n\t\tthis.audio.processorNode.disconnect();\n\t\tthis.audio.processorNode = null;\n\t}\n\tif (this.audio.sourceNode) {\n\t\tthis.audio.sourceNode.disconnect();\n\t\tthis.audio.sourceNode = null;\n\t}\n\tvar sampleRate = this.audio.audioContext.sampleRate;\n\tthis.audio.audioContext.close();\n\tthis.audio.audioContext = null;\n\tvar merged = this.mergeAudioChunks(this.audio.chunks);\n\tthis.audio.chunks = [];\n\tif (!merged.length) {\n\t\treturn null;\n\t}\n\tvar downsampled = this.downsampleBuffer(merged, sampleRate, 16000);\n\treturn this.encodeWav(downsampled, 16000);\n};\n\nSjDigitalHumanAssistantAdaptive.prototype.releaseRecorder = function () {\n\tthis.stopRequestedBeforeStart = true;\n\tthis.isButtonPressed = false;\n\tthis.state.isRecording = false;\n\tif (this.dom.recording) {\n\t\tthis.dom.recording.classList.remove(\"show\");\n\t}\n\tif (this.audio.processorNode) {\n\t\tthis.audio.processorNode.disconnect();\n\t\tthis.audio.processorNode = null;\n\t}\n\tif (this.audio.sourceNode) {\n\t\tthis.audio.sourceNode.disconnect();\n\t\tthis.audio.sourceNode = null;\n\t}\n\tif (this.audio.audioContext) {\n\t\tthis.audio.audioContext.close();\n\t\tthis.audio.audioContext = null;\n\t}\n\tif (this.audio.mediaStream) {\n\t\tvar tracks = this.audio.mediaStream.getTracks();\n\t\tfor (var i = 0; i < tracks.length; i++) {\n\t\t\ttracks[i].stop();\n\t\t}\n\t\tthis.audio.mediaStream = null;\n\t}\n\tthis.audio.permissionPromise = null;\n\tthis.audio.chunks = [];\n\tif (this.dom.video) {\n\t\tthis.dom.video.muted = false;\n\t}\n};\n\nSjDigitalHumanAssistantAdaptive.prototype.sendVoiceMessage = async function (blob, durationSec) {\n\tvar voiceUrl = URL.createObjectURL(blob);\n\tvar now = Date.now();\n\tthis.chatMessages.push({\n\t\ttype: \"user\",\n\t\tmsg: \"[语音]\",\n\t\ttimestamp: now,\n\t\tshowTime: this.shouldShowTimeLabel(now),\n\t\tvoiceUrl: voiceUrl,\n\t\tduration: durationSec\n\t});\n\tthis.renderChatList();\n\tthis.scrollChatToBottom();\n\ttry {\n\t\tvar formData = new FormData();\n\t\tformData.append(\"audio\", blob, \"recording.wav\");\n\t\tformData.append(\"duration\", String(durationSec));\n\t\tformData.append(\"chatSessionId\", this.state.chatSessionId);\n\t\tformData.append(\"sessionid\", this.state.sessionid);\n\t\tvar response = await fetch(this._buildUrl(\"/stt\"), {\n\t\t\tmethod: \"POST\",\n\t\t\tbody: formData\n\t\t});\n\t\tif (!response.ok) {\n\t\t\tthrow new Error(\"voice post failed\");\n\t\t}\n\t\tvar result = await response.json();\n\t\tif (result && result.result) {\n\t\t\tawait this.digitalHumanChat(String(result.result).replace(/^\\s+|\\s+$/g, \"\"), \"chat\");\n\t\t}\n\t} catch (error) {\n\t\tconsole.error(\"[SjDigitalHumanAssistantAdaptive] send voice failed\", error);\n\t}\n};\n\nSjDigitalHumanAssistantAdaptive.prototype.playVoice = async function (msg, idx) {\n\tvar that = this;\n\tif (!msg || !msg.voiceUrl) {\n\t\treturn;\n\t}\n\tif (this.audio.currentVoiceAudio) {\n\t\tthis.audio.currentVoiceAudio.pause();\n\t\tthis.audio.currentVoiceAudio = null;\n\t}\n\tif (this.state.playingVoiceId === idx) {\n\t\tthis.state.playingVoiceId = null;\n\t\tthis.renderChatList();\n\t\treturn;\n\t}\n\tawait this.digitalHumanInterruptTalk();\n\tthis.state.playingVoiceId = idx;\n\tthis.renderChatList();\n\tvar audio = new Audio(msg.voiceUrl);\n\tthis.audio.currentVoiceAudio = audio;\n\taudio.play();\n\taudio.onended = function () {\n\t\tthat.state.playingVoiceId = null;\n\t\tthat.audio.currentVoiceAudio = null;\n\t\tthat.renderChatList();\n\t};\n};\n\nSjDigitalHumanAssistantAdaptive.prototype.showToast = function (message) {\n\tvar that = this;\n\tthis.state.toastMessage = message;\n\tthis.dom.toastContent.textContent = message;\n\tthis.dom.toast.classList.add(\"show\");\n\tif (this.toastTimer) {\n\t\tclearTimeout(this.toastTimer);\n\t}\n\tthis.toastTimer = setTimeout(function () {\n\t\tthat.dom.toast.classList.remove(\"show\");\n\t}, 2000);\n};\n\nSjDigitalHumanAssistantAdaptive.prototype.cleanupVideo = function () {\n\tthis.dom.video.pause();\n\tthis.dom.video.srcObject = null;\n\tthis.dom.video.src = \"\";\n\tthis.dom.video.load();\n};\n\nSjDigitalHumanAssistantAdaptive.prototype.destroyRts = function () {\n\tif (this.stream.aliRts && this.stream.aliRts.unsubscribe) {\n\t\ttry {\n\t\t\tthis.stream.aliRts.unsubscribe();\n\t\t} catch (error) {\n\t\t\tconsole.warn(\"[SjDigitalHumanAssistantAdaptive] unsubscribe rts failed\", error);\n\t\t}\n\t}\n\tthis.stream.aliRts = null;\n};\n\nSjDigitalHumanAssistantAdaptive.prototype.destroy = function () {\n\tif (this.stream.sseReader) {\n\t\tthis.stream.sseReader.cancel();\n\t\tthis.stream.sseReader = null;\n\t}\n\tif (this.stream.sseReconnectTimer) {\n\t\tclearTimeout(this.stream.sseReconnectTimer);\n\t}\n\tthis.clearReconnectTimer();\n\tthis.destroyRts();\n\tif (this.stream.hls && this.stream.hls.destroy) {\n\t\tthis.stream.hls.destroy();\n\t\tthis.stream.hls = null;\n\t}\n\tif (this.audio.currentVoiceAudio) {\n\t\tthis.audio.currentVoiceAudio.pause();\n\t}\n\tthis.releaseRecorder();\n // 清理视频元素\n if (this.dom.video) {\n this.dom.video.pause();\n this.dom.video.srcObject = null;\n this.dom.video.src = '';\n this.dom.video.load();\n }\n\tif (this.dom.root && this.dom.root.parentNode) {\n\t\tthis.dom.root.parentNode.removeChild(this.dom.root);\n\t}\n};\n\nSjDigitalHumanAssistantAdaptive.prototype._request = async function (path, method, data) {\n\tvar requestInit = {\n\t\tmethod: method || \"GET\",\n\t\theaders: {}\n\t};\n\tif (requestInit.method !== \"GET\") {\n\t\trequestInit.headers[\"Content-Type\"] = \"application/json\";\n\t\trequestInit.body = JSON.stringify(data || {});\n\t}\n\tvar response = await fetch(this._buildUrl(path), requestInit);\n\tif (!response.ok) {\n\t\tthrow new Error(\"request failed: \" + response.status);\n\t}\n\treturn response.json();\n};\n\nSjDigitalHumanAssistantAdaptive.prototype._buildUrl = function (path) {\n\tvar ts = String(Math.floor(Date.now() / 1000));\n\tvar separator = path.indexOf(\"?\") === -1 ? \"?\" : \"&\";\n\tvar sign = this._md5(this.config.secretKey + ts);\n\treturn this.config.baseUrl.replace(/\\/$/, \"\") + path + separator + \"timestamp=\" + encodeURIComponent(ts) + \"&sign=\" + encodeURIComponent(sign);\n};\n\nSjDigitalHumanAssistantAdaptive.prototype._normalizeSize = function (value) {\n\tif (value === undefined || value === null || value === \"\") {\n\t\treturn undefined;\n\t}\n\treturn typeof value === \"number\" ? value + \"px\" : String(value);\n};\n\nSjDigitalHumanAssistantAdaptive.prototype._getRemBase = function () {\n\tif (typeof window === \"undefined\") {\n\t\treturn 50;\n\t}\n\tvar viewportWidth = 375;\n\tif (window.visualViewport && window.visualViewport.width) {\n\t\tviewportWidth = window.visualViewport.width;\n\t} else if (window.innerWidth) {\n\t\tviewportWidth = window.innerWidth;\n\t} else if (document.documentElement && document.documentElement.clientWidth) {\n\t\tviewportWidth = document.documentElement.clientWidth;\n\t}\n\tvar width = Math.max(320, Math.min(viewportWidth, 750));\n\treturn width / 7.5;\n};\n\nSjDigitalHumanAssistantAdaptive.prototype.updateRemBase = function () {\n\tif (!this.dom || !this.dom.root) {\n\t\treturn;\n\t}\n\tvar isMobileDevice = this.detectMobileDevice();\n\tthis.dom.root.style.setProperty(\"--sjdha-rem\", (isMobileDevice ? this._getRemBase() : 50) + \"px\");\n};\n\nSjDigitalHumanAssistantAdaptive.prototype._isInteractiveDragTarget = function (target) {\n\treturn !!(target && target.closest && target.closest(\"button,input,.sjdha-manual-play\"));\n};\n\nSjDigitalHumanAssistantAdaptive.prototype._clampPosition = function (left, top, width, height) {\n\tvar maxLeft = Math.max(0, window.innerWidth - width);\n\tvar maxTop = Math.max(0, window.innerHeight - height);\n\treturn {\n\t\tleft: Math.max(0, Math.min(left, maxLeft)),\n\t\ttop: Math.max(0, Math.min(top, maxTop))\n\t};\n};\n\nSjDigitalHumanAssistantAdaptive.prototype._refreshModeButton = function () {\n\tthis.dom.modeBtn.style.cssText = this.state.isTextInputMode ? \"background: url('https://szr-data.xiu361.cn/img/szr_video/szr_button/voice-btn.png') no-repeat center center;background-size: contain;\" : \"background: url('https://szr-data.xiu361.cn/img/szr_video/szr_button/text-btn.png') no-repeat center center;background-size: contain;\";\n};\n\nSjDigitalHumanAssistantAdaptive.prototype._refreshFullscreenButton = function () {\n\tthis.dom.fullscreenBtn.style.cssText = this.state.isVideoFullscreen ? \"background: url('https://szr-data.xiu361.cn/img/szr_video/szr_button/reduce-btn.png') no-repeat center center;background-size: contain;\" : \"background: url('https://szr-data.xiu361.cn/img/szr_video/szr_button/magnify-btn.png') no-repeat center center;background-size: contain;\";\n};\n\nSjDigitalHumanAssistantAdaptive.prototype._formatDateHeader = function () {\n\tvar now = new Date();\n\treturn \"今天 \" + now.getFullYear() + \"年\" + (now.getMonth() + 1) + \"月\" + now.getDate() + \"日\";\n};\n\nSjDigitalHumanAssistantAdaptive.prototype.formatMessageTime = function (timestamp) {\n\tvar date = new Date(timestamp);\n\tvar hours = date.getHours();\n\tvar minutes = String(date.getMinutes()).padStart(2, \"0\");\n\tvar period = hours < 12 ? \"上午\" : \"下午\";\n\tvar displayHour = hours < 12 ? hours : (hours === 12 ? 12 : hours - 12);\n\treturn period + \" \" + displayHour + \":\" + minutes;\n};\n\nSjDigitalHumanAssistantAdaptive.prototype.shouldShowTimeLabel = function (currentTimestamp) {\n\tfor (var i = this.chatMessages.length - 1; i >= 0; i--) {\n\t\tvar msg = this.chatMessages[i];\n\t\tif (msg && msg.type === \"user\" && msg.timestamp) {\n\t\t\treturn currentTimestamp - msg.timestamp > 180000;\n\t\t}\n\t}\n\treturn false;\n};\n\nSjDigitalHumanAssistantAdaptive.prototype._isIOSWechat = function () {\n\treturn /iPhone|iPad|iPod/i.test(navigator.userAgent) && /MicroMessenger/i.test(navigator.userAgent);\n};\n\nSjDigitalHumanAssistantAdaptive.prototype._escapeHtml = function (value) {\n\treturn String(value == null ? \"\" : value)\n\t\t.replace(/&/g, \"&amp;\")\n\t\t.replace(/</g, \"&lt;\")\n\t\t.replace(/>/g, \"&gt;\")\n\t\t.replace(/\\\"/g, \"&quot;\")\n\t\t.replace(/'/g, \"&#39;\");\n};\n\nSjDigitalHumanAssistantAdaptive.prototype.mergeAudioChunks = function (chunks) {\n\tvar length = 0;\n\tvar i;\n\tfor (i = 0; i < chunks.length; i++) {\n\t\tlength += chunks[i].length;\n\t}\n\tvar result = new Float32Array(length);\n\tvar offset = 0;\n\tfor (i = 0; i < chunks.length; i++) {\n\t\tresult.set(chunks[i], offset);\n\t\toffset += chunks[i].length;\n\t}\n\treturn result;\n};\n\nSjDigitalHumanAssistantAdaptive.prototype.downsampleBuffer = function (buffer, sampleRate, outSampleRate) {\n\tif (outSampleRate === sampleRate) {\n\t\treturn buffer;\n\t}\n\tvar ratio = sampleRate / outSampleRate;\n\tvar newLength = Math.round(buffer.length / ratio);\n\tvar result = new Float32Array(newLength);\n\tvar offsetResult = 0;\n\tvar offsetBuffer = 0;\n\twhile (offsetResult < result.length) {\n\t\tvar nextOffsetBuffer = Math.round((offsetResult + 1) * ratio);\n\t\tvar accum = 0;\n\t\tvar count = 0;\n\t\tvar i;\n\t\tfor (i = offsetBuffer; i < nextOffsetBuffer && i < buffer.length; i++) {\n\t\t\taccum += buffer[i];\n\t\t\tcount += 1;\n\t\t}\n\t\tresult[offsetResult] = accum / count;\n\t\toffsetResult += 1;\n\t\toffsetBuffer = nextOffsetBuffer;\n\t}\n\treturn result;\n};\n\nSjDigitalHumanAssistantAdaptive.prototype.encodeWav = function (samples, sampleRate) {\n\tvar buffer = new ArrayBuffer(44 + samples.length * 2);\n\tvar view = new DataView(buffer);\n\tthis.writeString(view, 0, \"RIFF\");\n\tview.setUint32(4, 36 + samples.length * 2, true);\n\tthis.writeString(view, 8, \"WAVE\");\n\tthis.writeString(view, 12, \"fmt \");\n\tview.setUint32(16, 16, true);\n\tview.setUint16(20, 1, true);\n\tview.setUint16(22, 1, true);\n\tview.setUint32(24, sampleRate, true);\n\tview.setUint32(28, sampleRate * 2, true);\n\tview.setUint16(32, 2, true);\n\tview.setUint16(34, 16, true);\n\tthis.writeString(view, 36, \"data\");\n\tview.setUint32(40, samples.length * 2, true);\n\tthis.floatTo16BitPCM(view, 44, samples);\n\treturn new Blob([view], { type: \"audio/wav\" });\n};\n\nSjDigitalHumanAssistantAdaptive.prototype.writeString = function (view, offset, value) {\n\tfor (var i = 0; i < value.length; i++) {\n\t\tview.setUint8(offset + i, value.charCodeAt(i));\n\t}\n};\n\nSjDigitalHumanAssistantAdaptive.prototype.floatTo16BitPCM = function (view, offset, input) {\n\tfor (var i = 0; i < input.length; i++, offset += 2) {\n\t\tvar sample = Math.max(-1, Math.min(1, input[i]));\n\t\tview.setInt16(offset, sample < 0 ? sample * 32768 : sample * 32767, true);\n\t}\n};\n\nSjDigitalHumanAssistantAdaptive.prototype._md5 = function (string) {\n\tfunction safeAdd(x, y) {\n\t\tvar lsw = (x & 65535) + (y & 65535);\n\t\tvar msw = (x >> 16) + (y >> 16) + (lsw >> 16);\n\t\treturn (msw << 16) | (lsw & 65535);\n\t}\n\tfunction bitRotateLeft(num, cnt) {\n\t\treturn (num << cnt) | (num >>> (32 - cnt));\n\t}\n\tfunction md5cmn(q, a, b, x, s, t) {\n\t\treturn safeAdd(bitRotateLeft(safeAdd(safeAdd(a, q), safeAdd(x, t)), s), b);\n\t}\n\tfunction md5ff(a, b, c, d, x, s, t) {\n\t\treturn md5cmn((b & c) | ((~b) & d), a, b, x, s, t);\n\t}\n\tfunction md5gg(a, b, c, d, x, s, t) {\n\t\treturn md5cmn((b & d) | (c & (~d)), a, b, x, s, t);\n\t}\n\tfunction md5hh(a, b, c, d, x, s, t) {\n\t\treturn md5cmn(b ^ c ^ d, a, b, x, s, t);\n\t}\n\tfunction md5ii(a, b, c, d, x, s, t) {\n\t\treturn md5cmn(c ^ (b | (~d)), a, b, x, s, t);\n\t}\n\tfunction binlMD5(x, len) {\n\t\tx[len >> 5] |= 128 << (len % 32);\n\t\tx[(((len + 64) >>> 9) << 4) + 14] = len;\n\t\tvar i;\n\t\tvar olda;\n\t\tvar oldb;\n\t\tvar oldc;\n\t\tvar oldd;\n\t\tvar a = 1732584193;\n\t\tvar b = -271733879;\n\t\tvar c = -1732584194;\n\t\tvar d = 271733878;\n\t\tfor (i = 0; i < x.length; i += 16) {\n\t\t\tolda = a;\n\t\t\toldb = b;\n\t\t\toldc = c;\n\t\t\toldd = d;\n\t\t\ta = md5ff(a, b, c, d, x[i], 7, -680876936);\n\t\t\td = md5ff(d, a, b, c, x[i + 1], 12, -389564586);\n\t\t\tc = md5ff(c, d, a, b, x[i + 2], 17, 606105819);\n\t\t\tb = md5ff(b, c, d, a, x[i + 3], 22, -1044525330);\n\t\t\ta = md5ff(a, b, c, d, x[i + 4], 7, -176418897);\n\t\t\td = md5ff(d, a, b, c, x[i + 5], 12, 1200080426);\n\t\t\tc = md5ff(c, d, a, b, x[i + 6], 17, -1473231341);\n\t\t\tb = md5ff(b, c, d, a, x[i + 7], 22, -45705983);\n\t\t\ta = md5ff(a, b, c, d, x[i + 8], 7, 1770035416);\n\t\t\td = md5ff(d, a, b, c, x[i + 9], 12, -1958414417);\n\t\t\tc = md5ff(c, d, a, b, x[i + 10], 17, -42063);\n\t\t\tb = md5ff(b, c, d, a, x[i + 11], 22, -1990404162);\n\t\t\ta = md5ff(a, b, c, d, x[i + 12], 7, 1804603682);\n\t\t\td = md5ff(d, a, b, c, x[i + 13], 12, -40341101);\n\t\t\tc = md5ff(c, d, a, b, x[i + 14], 17, -1502002290);\n\t\t\tb = md5ff(b, c, d, a, x[i + 15], 22, 1236535329);\n\t\t\ta = md5gg(a, b, c, d, x[i + 1], 5, -165796510);\n\t\t\td = md5gg(d, a, b, c, x[i + 6], 9, -1069501632);\n\t\t\tc = md5gg(c, d, a, b, x[i + 11], 14, 643717713);\n\t\t\tb = md5gg(b, c, d, a, x[i], 20, -373897302);\n\t\t\ta = md5gg(a, b, c, d, x[i + 5], 5, -701558691);\n\t\t\td = md5gg(d, a, b, c, x[i + 10], 9, 38016083);\n\t\t\tc = md5gg(c, d, a, b, x[i + 15], 14, -660478335);\n\t\t\tb = md5gg(b, c, d, a, x[i + 4], 20, -405537848);\n\t\t\ta = md5gg(a, b, c, d, x[i + 9], 5, 568446438);\n\t\t\td = md5gg(d, a, b, c, x[i + 14], 9, -1019803690);\n\t\t\tc = md5gg(c, d, a, b, x[i + 3], 14, -187363961);\n\t\t\tb = md5gg(b, c, d, a, x[i + 8], 20, 1163531501);\n\t\t\ta = md5gg(a, b, c, d, x[i + 13], 5, -1444681467);\n\t\t\td = md5gg(d, a, b, c, x[i + 2], 9, -51403784);\n\t\t\tc = md5gg(c, d, a, b, x[i + 7], 14, 1735328473);\n\t\t\tb = md5gg(b, c, d, a, x[i + 12], 20, -1926607734);\n\t\t\ta = md5hh(a, b, c, d, x[i + 5], 4, -378558);\n\t\t\td = md5hh(d, a, b, c, x[i + 8], 11, -2022574463);\n\t\t\tc = md5hh(c, d, a, b, x[i + 11], 16, 1839030562);\n\t\t\tb = md5hh(b, c, d, a, x[i + 14], 23, -35309556);\n\t\t\ta = md5hh(a, b, c, d, x[i + 1], 4, -1530992060);\n\t\t\td = md5hh(d, a, b, c, x[i + 4], 11, 1272893353);\n\t\t\tc = md5hh(c, d, a, b, x[i + 7], 16, -155497632);\n\t\t\tb = md5hh(b, c, d, a, x[i + 10], 23, -1094730640);\n\t\t\ta = md5hh(a, b, c, d, x[i + 13], 4, 681279174);\n\t\t\td = md5hh(d, a, b, c, x[i], 11, -358537222);\n\t\t\tc = md5hh(c, d, a, b, x[i + 3], 16, -722521979);\n\t\t\tb = md5hh(b, c, d, a, x[i + 6], 23, 76029189);\n\t\t\ta = md5hh(a, b, c, d, x[i + 9], 4, -640364487);\n\t\t\td = md5hh(d, a, b, c, x[i + 12], 11, -421815835);\n\t\t\tc = md5hh(c, d, a, b, x[i + 15], 16, 530742520);\n\t\t\tb = md5hh(b, c, d, a, x[i + 2], 23, -995338651);\n\t\t\ta = md5ii(a, b, c, d, x[i], 6, -198630844);\n\t\t\td = md5ii(d, a, b, c, x[i + 7], 10, 1126891415);\n\t\t\tc = md5ii(c, d, a, b, x[i + 14], 15, -1416354905);\n\t\t\tb = md5ii(b, c, d, a, x[i + 5], 21, -57434055);\n\t\t\ta = md5ii(a, b, c, d, x[i + 12], 6, 1700485571);\n\t\t\td = md5ii(d, a, b, c, x[i + 3], 10, -1894986606);\n\t\t\tc = md5ii(c, d, a, b, x[i + 10], 15, -1051523);\n\t\t\tb = md5ii(b, c, d, a, x[i + 1], 21, -2054922799);\n\t\t\ta = md5ii(a, b, c, d, x[i + 8], 6, 1873313359);\n\t\t\td = md5ii(d, a, b, c, x[i + 15], 10, -30611744);\n\t\t\tc = md5ii(c, d, a, b, x[i + 6], 15, -1560198380);\n\t\t\tb = md5ii(b, c, d, a, x[i + 13], 21, 1309151649);\n\t\t\ta = md5ii(a, b, c, d, x[i + 4], 6, -145523070);\n\t\t\td = md5ii(d, a, b, c, x[i + 11], 10, -1120210379);\n\t\t\tc = md5ii(c, d, a, b, x[i + 2], 15, 718787259);\n\t\t\tb = md5ii(b, c, d, a, x[i + 9], 21, -343485551);\n\t\t\ta = safeAdd(a, olda);\n\t\t\tb = safeAdd(b, oldb);\n\t\t\tc = safeAdd(c, oldc);\n\t\t\td = safeAdd(d, oldd);\n\t\t}\n\t\treturn [a, b, c, d];\n\t}\n\tfunction binl2rstr(input) {\n\t\tvar i;\n\t\tvar output = \"\";\n\t\tfor (i = 0; i < input.length * 32; i += 8) {\n\t\t\toutput += String.fromCharCode((input[i >> 5] >>> (i % 32)) & 255);\n\t\t}\n\t\treturn output;\n\t}\n\tfunction rstr2binl(input) {\n\t\tvar i;\n\t\tvar output = [];\n\t\toutput[(input.length >> 2) - 1] = undefined;\n\t\tfor (i = 0; i < output.length; i += 1) {\n\t\t\toutput[i] = 0;\n\t\t}\n\t\tfor (i = 0; i < input.length * 8; i += 8) {\n\t\t\toutput[i >> 5] |= (input.charCodeAt(i / 8) & 255) << (i % 32);\n\t\t}\n\t\treturn output;\n\t}\n\tfunction rstrMD5(s) {\n\t\treturn binl2rstr(binlMD5(rstr2binl(s), s.length * 8));\n\t}\n\tfunction rstr2hex(input) {\n\t\tvar hexTab = \"0123456789abcdef\";\n\t\tvar output = \"\";\n\t\tvar x;\n\t\tvar i;\n\t\tfor (i = 0; i < input.length; i += 1) {\n\t\t\tx = input.charCodeAt(i);\n\t\t\toutput += hexTab.charAt((x >>> 4) & 15) + hexTab.charAt(x & 15);\n\t\t}\n\t\treturn output;\n\t}\n\tfunction str2rstrUTF8(input) {\n\t\treturn unescape(encodeURIComponent(input));\n\t}\n\treturn rstr2hex(rstrMD5(str2rstrUTF8(string)));\n};\n\nexport default SjDigitalHumanAssistantAdaptive;\n"],"names":["debounce","fn","delay","timer","that","args","arguments","clearTimeout","setTimeout","apply","SjDigitalHumanAssistantAdaptive","options","config","_assign","baseUrl","windowTitle","defaultPlayText","reconnectInterval","maxReconnectTimes","secretKey","accessToken","windowWidth","windowHeight","avatarId","isVideoFullscreen","hlsClass","Hls","aliRtsClass","AliRTS","container","document","body","zIndex","mobileBreakpoint","state","isConnected","isConnecting","isSSEConnected","isAutoplayBlocked","isMediaReady","hasAvatarUrl","queueCount","isTextInputMode","isRecording","showReconnectDialog","needManualPlay","isIOSWechat","_isIOSWechat","isReceivingReply","currentAiMessage","currentReconnectTimes","isManualDisconnect","isWaitingReconnect","isMobileDevice","dragPosition","isDragging","dragMoved","sessionid","chatSessionId","currentHlsUrl","currentRtsUrl","videoEleBg","posterBgUrl","defaultVideoUrl","avatarPic","showToastFlag","toastMessage","playingVoiceId","hasUnmuted","drag","startClientX","startClientY","startLeft","startTop","stream","hls","aliRts","sseReader","sseReconnectTimer","reconnectTimer","audio","mediaStream","audioContext","sourceNode","processorNode","chunks","startTime","permissionPromise","currentVoiceAudio","dom","chatMessages","sseReconnectCount","toastTimer","blockClickTimer","reconnectDialogCallback","resizeHandler","stopRequestedBeforeStart","isButtonPressed","permissionCheckTimer","Error","init","prototype","target","TypeError","Object","i","length","source","key","hasOwnProperty","call","detectMobileDevice","injectStyle","mountDom","updateRemBase","bindEvent","syncDeviceMode","renderInitialMessages","bootstrap","getElementById","css","join","style","createElement","id","type","textContent","head","appendChild","root","className","innerHTML","videoArea","querySelector","video","queue","fullscreenBtn","autoplayOverlay","manualPlay","autoplaySpinner","aiResponse","aiResponseContent","chatArea","chatDate","chatList","modeBtn","inputWrap","input","voiceInput","sendBtn","recording","dialog","dialogConfirm","toast","toastContent","value","_formatDateHeader","_refreshModeButton","_refreshFullscreenButton","addEventListener","event","stopPropagation","toggleVideoFullscreen","handleManualPlay","handleContainerClick","sendMessage","renderStatus","toggleInputMode","preventDefault","startVoiceInput","passive","stopVoiceInput","onReconnectConfirm","handleVideoAreaMouseDown","handleResize","onDocMouseMove","onDocMouseUp","window","destroy","markVideoReady","_asyncToGenerator","_regenerator","m","_callee","_t","w","_context","p","n","getSessionId","getPageDefaultData","startConnection","v","console","error","showToast","a","push","msg","renderChatList","narrowViewport","innerWidth","coarsePointer","matchMedia","matches","hasTouchPoints","navigator","maxTouchPoints","mobileUA","test","userAgent","classList","toggle","width","_normalizeSize","height","right","bottom","left","top","remove","display","clampDragPositionOnResize","scrollChatToBottom","button","_isInteractiveDragTarget","rect","getBoundingClientRect","clientX","clientY","cursor","dx","dy","Math","abs","next","_clampPosition","blockClick","removeEventListener","muted","paused","play","_callee2","_context2","renderAutoplayState","ensureRecorder","releaseRecorder","_callee3","text","now","_context3","replace","digitalHumanInterruptTalk","Date","timestamp","showTime","shouldShowTimeLabel","digitalHumanChat","receiveMessage","cleanText","last","renderAiResponse","list","avatarStyle","_escapeHtml","html","formatMessageTime","voiceUrl","String","duration","dateHtml","parentElement","outerHTML","e","newDate","voiceNodes","querySelectorAll","j","idx","parseInt","getAttribute","playVoice","scrollTop","scrollHeight","hlsUrl","rtsUrl","src","then","catch","cleanupVideo","destroyRts","tryPlayWithRts","playWithHls","AliRtsCtor","createClient","on","isSupport","isReceiveVideo","subscribeRts","subscribe","mediaTimeout","retryTimes","retryInterval","remoteStream","clearReconnectTimer","HlsCtor","reconnect","isSupported","maxBufferLength","maxMaxBufferLength","liveSyncDurationCount","fragLoadingMaxRetry","fragLoadingRetryDelay","manifestLoadingMaxRetry","levelLoadingMaxRetry","enableWorker","lowLatencyMode","loadSource","attachMedia","Events","MANIFEST_PARSED","ERROR","data","fatal","canPlayType","load","onLoaded","disabled","overlayVisible","startSSE","fetch","_buildUrl","method","headers","JSON","stringify","response","fetchSessionStatus","getReader","consumeSSE","buffer","read","result","done","TextDecoder","decode","lines","split","pop","handleSSELine","reconnectSSE","line","indexOf","rawData","slice","promptReconnect","jsonData","parse","cancel","add","_callee4","_context4","_callee5","_context5","_ref6","_callee6","_t3","_context6","_request","_x","_x2","_callee7","_t4","_context7","_callee8","entity","_context8","ok","json","entities","imageDefault","coverImageUrl","videoDefault","characterAvatar","setAttribute","backgroundImage","_callee9","urlItem","_context9","Number","hlsAvatarUrl","_callee0","activeSessions","maxSessions","waitingCount","_t5","_context0","active_chat_sessions","max_sessions","_callee1","_context1","Promise","resolve","mediaDevices","getUserMedia","_callee10","ready","_context10","beginRecordStream","AudioContextCtor","AudioContext","webkitAudioContext","createMediaStreamSource","createScriptProcessor","onaudioprocess","inputBuffer","getChannelData","Float32Array","connect","destination","round","blob","finishRecordStream","sendVoiceMessage","disconnect","sampleRate","close","merged","mergeAudioChunks","downsampled","downsampleBuffer","encodeWav","tracks","getTracks","stop","_ref11","_callee11","durationSec","formData","_t6","_context11","URL","createObjectURL","FormData","append","_x3","_x4","_ref12","_callee12","_context12","pause","Audio","onended","_x5","_x6","message","srcObject","unsubscribe","warn","parentNode","removeChild","_ref13","_callee13","path","requestInit","_context13","status","_x7","_x8","_x9","ts","floor","separator","sign","_md5","encodeURIComponent","undefined","_getRemBase","viewportWidth","visualViewport","documentElement","clientWidth","max","min","setProperty","closest","maxLeft","maxTop","innerHeight","cssText","getFullYear","getMonth","getDate","date","hours","getHours","minutes","getMinutes","padStart","period","displayHour","currentTimestamp","offset","set","outSampleRate","ratio","newLength","offsetResult","offsetBuffer","nextOffsetBuffer","accum","count","samples","ArrayBuffer","view","DataView","writeString","setUint32","setUint16","floatTo16BitPCM","Blob","setUint8","charCodeAt","sample","setInt16","string","safeAdd","x","y","lsw","msw","bitRotateLeft","num","cnt","md5cmn","q","b","s","t","md5ff","c","d","md5gg","md5hh","md5ii","binlMD5","len","olda","oldb","oldc","oldd","binl2rstr","output","fromCharCode","rstr2binl","rstrMD5","rstr2hex","hexTab","charAt","str2rstrUTF8","unescape"],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ !function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e(require("hls.js"),require("aliyun-rts-sdk")):"function"==typeof define&&define.amd?define(["hls.js","aliyun-rts-sdk"],e):(t="undefined"!=typeof globalThis?globalThis:t||self).SjDigitalHumanAssistantAdaptive=e(t.Hls,t.aliyunRtsSdk)}(this,function(t,e){"use strict";function s(t,e,s,a,i,o,n){try{var r=t[o](n),d=r.value}catch(t){return void s(t)}r.done?e(d):Promise.resolve(d).then(a,i)}function a(t){return function(){var e=this,a=arguments;return new Promise(function(i,o){var n=t.apply(e,a);function r(t){s(n,i,o,r,d,"next",t)}function d(t){s(n,i,o,r,d,"throw",t)}r(void 0)})}}function i(){
2
+ /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */
3
+ var t,e,s="function"==typeof Symbol?Symbol:{},a=s.iterator||"@@iterator",n=s.toStringTag||"@@toStringTag";function r(s,a,i,n){var r=a&&a.prototype instanceof c?a:c,h=Object.create(r.prototype);return o(h,"_invoke",function(s,a,i){var o,n,r,c=0,h=i||[],l=!1,u={p:0,n:0,v:t,a:p,f:p.bind(t,4),d:function(e,s){return o=e,n=0,r=t,u.n=s,d}};function p(s,a){for(n=s,r=a,e=0;!l&&c&&!i&&e<h.length;e++){var i,o=h[e],p=u.p,m=o[2];s>3?(i=m===a)&&(r=o[(n=o[4])?5:(n=3,3)],o[4]=o[5]=t):o[0]<=p&&((i=s<2&&p<o[1])?(n=0,u.v=a,u.n=o[1]):p<m&&(i=s<3||o[0]>a||a>m)&&(o[4]=s,o[5]=a,u.n=m,n=0))}if(i||s>1)return d;throw l=!0,a}return function(i,h,m){if(c>1)throw TypeError("Generator is already running");for(l&&1===h&&p(h,m),n=h,r=m;(e=n<2?t:r)||!l;){o||(n?n<3?(n>1&&(u.n=-1),p(n,r)):u.n=r:u.v=r);try{if(c=2,o){if(n||(i="next"),e=o[i]){if(!(e=e.call(o,r)))throw TypeError("iterator result is not an object");if(!e.done)return e;r=e.value,n<2&&(n=0)}else 1===n&&(e=o.return)&&e.call(o),n<2&&(r=TypeError("The iterator does not provide a '"+i+"' method"),n=1);o=t}else if((e=(l=u.n<0)?r:s.call(a,u))!==d)break}catch(e){o=t,n=1,r=e}finally{c=1}}return{value:e,done:l}}}(s,i,n),!0),h}var d={};function c(){}function h(){}function l(){}e=Object.getPrototypeOf;var u=[][a]?e(e([][a]())):(o(e={},a,function(){return this}),e),p=l.prototype=c.prototype=Object.create(u);function m(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,l):(t.__proto__=l,o(t,n,"GeneratorFunction")),t.prototype=Object.create(p),t}return h.prototype=l,o(p,"constructor",l),o(l,"constructor",h),h.displayName="GeneratorFunction",o(l,n,"GeneratorFunction"),o(p),o(p,n,"Generator"),o(p,a,function(){return this}),o(p,"toString",function(){return"[object Generator]"}),(i=function(){return{w:r,m:m}})()}function o(t,e,s,a){var i=Object.defineProperty;try{i({},"",{})}catch(t){i=0}o=function(t,e,s,a){function n(e,s){o(t,e,function(t){return this._invoke(e,s,t)})}e?i?i(t,e,{value:s,enumerable:!a,configurable:!a,writable:!a}):t[e]=s:(n("next",0),n("throw",1),n("return",2))},o(t,e,s,a)}function n(s){if(s=s||{},this.config=this._assign({},{baseUrl:"",windowTitle:"数字人助手",defaultPlayText:"",reconnectInterval:1,maxReconnectTimes:10,secretKey:"abc999",accessToken:"aaaaaaa",windowWidth:"300px",windowHeight:"550px",avatarId:1,isVideoFullscreen:!0,hlsClass:t,aliRtsClass:e.AliRTS,container:"undefined"!=typeof document?document.body:null,zIndex:9999,mobileBreakpoint:768},s),this.state={isConnected:!1,isConnecting:!1,isSSEConnected:!1,isAutoplayBlocked:!0,isMediaReady:!1,isVideoFullscreen:!!this.config.isVideoFullscreen,hasAvatarUrl:!0,queueCount:0,isTextInputMode:!0,isRecording:!1,showReconnectDialog:!1,needManualPlay:!1,isIOSWechat:this._isIOSWechat(),isReceivingReply:!1,currentAiMessage:this.config.defaultPlayText||"",currentReconnectTimes:0,isManualDisconnect:!1,isWaitingReconnect:!1,isMobileDevice:!0,dragPosition:null,isDragging:!1,dragMoved:!1,sessionid:"",chatSessionId:"",currentHlsUrl:"",currentRtsUrl:"",videoEleBg:"",posterBgUrl:"",defaultVideoUrl:"",avatarPic:"",showToastFlag:!1,toastMessage:"",playingVoiceId:null,hasUnmuted:!1},this.drag={startClientX:0,startClientY:0,startLeft:0,startTop:0},this.stream={hls:null,aliRts:null,sseReader:null,sseReconnectTimer:null,reconnectTimer:null},this.audio={mediaStream:null,audioContext:null,sourceNode:null,processorNode:null,chunks:[],startTime:0,permissionPromise:null,currentVoiceAudio:null},this.dom={},this.chatMessages=[],this.sseReconnectCount=0,this.toastTimer=null,this.blockClickTimer=null,this.reconnectDialogCallback=null,this.resizeHandler=null,this.stopRequestedBeforeStart=!1,this.isButtonPressed=!1,this.permissionCheckTimer=null,!this.config.baseUrl)throw new Error("[SjDigitalHumanAssistantAdaptive] baseUrl is required");this.init()}return n.prototype._assign=function(t){if(null==t)throw new TypeError("Cannot convert undefined or null to object");t=Object(t);for(var e=1;e<arguments.length;e++){var s=arguments[e];if(s)for(var a in s)Object.prototype.hasOwnProperty.call(s,a)&&(t[a]=s[a])}return t},n.prototype.init=function(){this.state.isMobileDevice=this.detectMobileDevice(),this.injectStyle(),this.mountDom(),this.updateRemBase(),this.bindEvent(),this.syncDeviceMode(),this.renderInitialMessages(),this.bootstrap()},n.prototype.injectStyle=function(){if(!document.getElementById("sj-digital-human-adaptive-style")){var t=[".sjdha-root{--sjdha-rem:50px;position:fixed;right:16px;bottom:16px;display:flex;flex-direction:column;background:#f5f5f5;border-radius:calc(var(--sjdha-rem) * 0.2);overflow:hidden;box-shadow:0 calc(var(--sjdha-rem) * 0.2) calc(var(--sjdha-rem) * 0.5) rgba(15,23,42,.18);z-index:"+this.config.zIndex+";font-family:'Microsoft YaHei','PingFang SC',sans-serif;color:#232323;font-size:calc(var(--sjdha-rem) * 0.28);-webkit-text-size-adjust:100%;touch-action:pan-x pan-y}",".sjdha-root,.sjdha-root *{box-sizing:border-box}",".sjdha-root.device-mobile{left:0;right:0;top:0;bottom:0;width:100%;height:100dvh;max-width:none;border-radius:0}",".sjdha-root.device-web{width:300px;height:550px;max-width:calc(100vw - 24px);max-height:calc(100vh - 24px)}",".sjdha-root.video-fullscreen .sjdha-video-area{flex:none;height:calc(100% - calc(var(--sjdha-rem) * 1.16));min-height:calc(100% - calc(var(--sjdha-rem) * 1.16))}",".sjdha-root.video-split .sjdha-video-area{flex:none;height:40%;min-height:calc(var(--sjdha-rem) * 4)}",".sjdha-root.video-fullscreen.device-mobile .sjdha-video-area{height:calc(100% - calc(var(--sjdha-rem) * 1.16) - env(safe-area-inset-bottom));min-height:calc(100% - calc(var(--sjdha-rem) * 1.16) - env(safe-area-inset-bottom))}",".sjdha-video-area{position:relative;flex:1;min-height:calc(var(--sjdha-rem) * 4);background-size:100% 100%;background-position:center top;cursor:grab;overflow:hidden}",".sjdha-video-area:before{content:'';position:absolute;inset:0;backdrop-filter:blur(8px);z-index:0}",".sjdha-digital-human{position:relative;z-index:1;width:100%;height:100%;display:flex;align-items:center;justify-content:center;overflow:hidden}",".sjdha-video{position:absolute;left:50%;top:0;transform:translateX(-50%);width:auto;height:100%;background:transparent;object-fit:contain}",".sjdha-queue{position:absolute;left:50%;bottom:calc(var(--sjdha-rem) * 0.21);transform:translateX(-50%);padding:calc(var(--sjdha-rem) * 0.16) calc(var(--sjdha-rem) * 0.32);border-radius:999px;background:rgba(15,23,42,.55);backdrop-filter:blur(calc(var(--sjdha-rem) * 0.08));color:#fff;font-size:calc(var(--sjdha-rem) * 0.2);white-space:nowrap;z-index:10;display:none}",".sjdha-fullscreen-btn{position:absolute;top:calc(var(--sjdha-rem) * 0.9);right:calc(var(--sjdha-rem) * 0.3);width:calc(var(--sjdha-rem) * 0.6);height:calc(var(--sjdha-rem) * 0.6);border:0;border-radius:50%;background:rgba(15,23,42,.45);color:#fff;font-size:calc(var(--sjdha-rem) * 0.28);line-height:calc(var(--sjdha-rem) * 0.6);text-align:center;cursor:pointer;z-index:20;display:flex;align-items:center;justify-content:center}",".sjdha-fullscreen-btn:disabled{opacity:.45;cursor:not-allowed}",".sjdha-autoplay-overlay{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:calc(var(--sjdha-rem) * 0.16);background:rgba(0,0,0,.45);color:#fff;z-index:30;font-size:calc(var(--sjdha-rem) * 0.28)}",".sjdha-autoplay-overlay.hidden{display:none}",".sjdha-manual-play{display:flex;flex-direction:column;align-items:center;gap:calc(var(--sjdha-rem) * 0.16);cursor:pointer}",".sjdha-autoplay-icon{width:calc(var(--sjdha-rem) * 1.12);height:calc(var(--sjdha-rem) * 1.12);border-radius:50%;display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,.25);font-size:calc(var(--sjdha-rem) * 0.48)}",".sjdha-autoplay-spinner{width:calc(var(--sjdha-rem) * 0.8);height:calc(var(--sjdha-rem) * 0.8);border-radius:50%;border:3px solid rgba(255,255,255,.35);border-top-color:#fff;animation:sjdha-spin .8s linear infinite}",".sjdha-ai-response{position:absolute;left:calc(var(--sjdha-rem) * 0.32);right:calc(var(--sjdha-rem) * 0.32);bottom:calc(var(--sjdha-rem) * 1.2);padding:calc(var(--sjdha-rem) * 0.32) calc(var(--sjdha-rem) * 0.32) calc(var(--sjdha-rem) * 0.45);background:rgba(255,255,255,.95);border-radius:calc(var(--sjdha-rem) * 0.24);box-shadow:0 calc(var(--sjdha-rem) * 0.08) calc(var(--sjdha-rem) * 0.24) rgba(0,0,0,.1);z-index:15;display:none}",".sjdha-ai-response-label{font-size:calc(var(--sjdha-rem) * 0.28);color:#509aff;font-weight:600;text-align:center;margin-bottom:calc(var(--sjdha-rem) * 0.05)}",".sjdha-ai-response-content{-ms-overflow-style: none;scrollbar-width: none;font-size:calc(var(--sjdha-rem) * 0.3);line-height:1.5;max-height:calc(var(--sjdha-rem) * 2.4);overflow:auto;text-align:center;word-break:break-word}",".sjdha-chat-area{height:60%;min-height:calc(var(--sjdha-rem) * 4);background:#fff;margin-top:calc(var(--sjdha-rem) * -0.15);display:flex;flex-direction:column;position:relative;z-index:9}",".sjdha-chat-area.hidden{display:none}",".sjdha-chat-date{padding:calc(var(--sjdha-rem) * 0.33) 0 calc(var(--sjdha-rem) * 0.23);text-align:center;font-size:calc(var(--sjdha-rem) * 0.26);line-height:calc(var(--sjdha-rem) * 0.26);color:#888}",".sjdha-chat-list{flex:1;padding:calc(var(--sjdha-rem) * 0.1) calc(var(--sjdha-rem) * 0.16) calc(var(--sjdha-rem) * 1.28);overflow-y:auto;-ms-overflow-style:none;scrollbar-width:none;-webkit-overflow-scrolling:touch}",".sjdha-chat-list::-webkit-scrollbar{display:none}",".sjdha-time-label{text-align:center;padding:calc(var(--sjdha-rem) * 0.4) 0 calc(var(--sjdha-rem) * 0.2);font-size:calc(var(--sjdha-rem) * 0.26);color:#888}",".sjdha-chat-item{display:flex;max-width:85%;margin-bottom:calc(var(--sjdha-rem) * 0.26);text-align:left}",".sjdha-chat-item.system{margin-right:auto}",".sjdha-chat-item.user{margin-left:auto;flex-direction:row-reverse}",".sjdha-avatar{width:calc(var(--sjdha-rem) * 0.8);height:calc(var(--sjdha-rem) * 0.8);border-radius:50%;background:#f0f0f0 center/cover no-repeat;flex-shrink:0;margin:0 calc(var(--sjdha-rem) * 0.12)}",".sjdha-chat-item.system .sjdha-avatar{margin-right:calc(var(--sjdha-rem) * 0.22)}",".sjdha-chat-item.user .sjdha-avatar{margin-left:calc(var(--sjdha-rem) * 0.22);background-image:url('https://szr-data.xiu361.cn/img/szr_video/szr_button/user-avatar.png')}",".sjdha-bubble{position:relative;padding:calc(var(--sjdha-rem) * 0.16) calc(var(--sjdha-rem) * 0.28);border-radius:calc(var(--sjdha-rem) * 0.2);line-height:1.4;font-size:calc(var(--sjdha-rem) * 0.28);word-break:break-word;display:flex;align-items:center;min-height:calc(var(--sjdha-rem) * 0.28)}",".sjdha-chat-item.system .sjdha-bubble{background:#fff;color:#333;box-shadow:0 4px 12px rgba(15,23,42,.06)}",".sjdha-chat-item.system .sjdha-bubble:before{content:'';position:absolute;left:calc(var(--sjdha-rem) * -0.11);top:calc(var(--sjdha-rem) * 0.34);border-top:calc(var(--sjdha-rem) * 0.12) solid transparent;border-bottom:calc(var(--sjdha-rem) * 0.12) solid transparent;border-right:calc(var(--sjdha-rem) * 0.12) solid #fff}",".sjdha-chat-item.user .sjdha-bubble{background:#509aff;color:#fff}",".sjdha-chat-item.user .sjdha-bubble:after{content:'';position:absolute;right:calc(var(--sjdha-rem) * -0.11);top:calc(var(--sjdha-rem) * 0.34);border-top:calc(var(--sjdha-rem) * 0.12) solid transparent;border-bottom:calc(var(--sjdha-rem) * 0.12) solid transparent;border-left:calc(var(--sjdha-rem) * 0.12) solid #509aff}",".sjdha-voice-bubble{cursor:pointer;min-width:calc(var(--sjdha-rem) * 0.8);justify-content:space-between;gap:calc(var(--sjdha-rem) * 0.16);padding:calc(var(--sjdha-rem) * 0.2) calc(var(--sjdha-rem) * 0.32)}",".sjdha-voice-icon{width:calc(var(--sjdha-rem) * 0.4);height:calc(var(--sjdha-rem) * 0.4);background:url('https://szr-data.xiu361.cn/img/szr_video/szr_button/play-voice-icon.png') no-repeat center center;background-size:contain;position:relative}",".sjdha-voice-icon.playing{animation:sjdha-voice-play 1s ease-in-out infinite}",".sjdha-voice-icon.playing:before,.sjdha-voice-icon.playing:after{display:none}",".sjdha-input-bar{position:absolute;left:0;right:0;bottom:0;height:calc(var(--sjdha-rem) * 1.16);padding:calc(var(--sjdha-rem) * 0.16);display:flex;align-items:center;gap:calc(var(--sjdha-rem) * 0.16);background:#fff;border-top:1px solid #edf2f7}",".sjdha-root.video-fullscreen .sjdha-chat-area{position:absolute;left:0;right:0;bottom:0;height:calc(var(--sjdha-rem) * 1.16);min-height:calc(var(--sjdha-rem) * 1.16);background:transparent;border-radius:0;padding:0;z-index:40}",".sjdha-root.video-fullscreen .sjdha-chat-list{flex:none;height:0;padding:0;overflow:hidden}",".sjdha-root.video-fullscreen.device-mobile .sjdha-chat-area{height:calc(calc(var(--sjdha-rem) * 1.16) + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom)}",".sjdha-mode-btn,.sjdha-send-btn,.sjdha-voice-input{border:0;border-radius:calc(var(--sjdha-rem) * 0.16);height:calc(var(--sjdha-rem) * 0.84)}",".sjdha-mode-btn{width:calc(var(--sjdha-rem) * 0.66);background:#eff6ff;color:#3b82f6;font-size:calc(var(--sjdha-rem) * 0.36);cursor:pointer;flex-shrink:0;padding:0}",".sjdha-input-wrap{flex:1;height:calc(var(--sjdha-rem) * 0.84);border:1px solid #dbeafe;border-radius:calc(var(--sjdha-rem) * 0.16);overflow:hidden;background:#f5f5f5;display:flex;align-items:center;padding:0 calc(var(--sjdha-rem) * 0.16)}",".sjdha-input{width:100%;height:100%;padding:0 calc(var(--sjdha-rem) * 0.08);border:0;outline:none;font-size:16px;background:transparent;-webkit-text-size-adjust:100%;touch-action:manipulation;appearance:none;-webkit-appearance:none}",".sjdha-voice-input{flex:1;background:#f5f5f5;color:#1a1a1a;font-size:calc(var(--sjdha-rem) * 0.28);font-weight:600;cursor:pointer;user-select:none;-webkit-user-select:none;touch-action:manipulation}",".sjdha-send-btn{min-width:calc(var(--sjdha-rem) * 1.04);padding:0 calc(var(--sjdha-rem) * 0.32);background:#509aff;color:#fff;cursor:pointer;font-size:calc(var(--sjdha-rem) * 0.28)}",".sjdha-send-btn:disabled{opacity:.55;cursor:not-allowed}",".sjdha-recording{position:absolute;inset:0;display:none;align-items:center;justify-content:center;background:rgba(15,23,42,.5);z-index:40}",".sjdha-recording.show{display:flex}",".sjdha-recording-card{display:flex;flex-direction:column;align-items:center;gap:calc(var(--sjdha-rem) * 0.24);padding:calc(var(--sjdha-rem) * 0.6) calc(var(--sjdha-rem) * 0.8);border-radius:calc(var(--sjdha-rem) * 0.24);background:rgba(15,23,42,.85);color:#fff}",".sjdha-wave{display:flex;align-items:flex-end;gap:calc(var(--sjdha-rem) * 0.08);height:calc(var(--sjdha-rem) * 0.64)}",".sjdha-wave span{width:calc(var(--sjdha-rem) * 0.08);border-radius:999px;background:#fff;animation:sjdha-wave 1.1s ease-in-out infinite}",".sjdha-dialog-overlay,.sjdha-toast{position:absolute;inset:0;display:none;align-items:center;justify-content:center;z-index:50}",".sjdha-dialog-overlay.show,.sjdha-toast.show{display:flex}",".sjdha-dialog-overlay{background:rgba(15,23,42,.45)}",".sjdha-dialog{width:calc(var(--sjdha-rem) * 5.2);padding:calc(var(--sjdha-rem) * 0.36);background:#fff;border-radius:calc(var(--sjdha-rem) * 0.28);box-shadow:0 calc(var(--sjdha-rem) * 0.24) calc(var(--sjdha-rem) * 0.64) rgba(15,23,42,.22)}",".sjdha-dialog-content{font-size:calc(var(--sjdha-rem) * 0.3);line-height:1.5;color:#1e293b;text-align:center}",".sjdha-dialog-footer{margin-top:16px;display:flex;justify-content:center}",".sjdha-dialog-btn{height:calc(var(--sjdha-rem) * 0.68);padding:0 calc(var(--sjdha-rem) * 0.36);border:0;border-radius:calc(var(--sjdha-rem) * 0.2);background:#509aff;color:#fff;cursor:pointer}",".sjdha-toast{pointer-events:none}",".sjdha-toast-content{padding:calc(var(--sjdha-rem) * 0.2) calc(var(--sjdha-rem) * 0.32);border-radius:999px;background:rgba(15,23,42,.8);color:#fff;font-size:calc(var(--sjdha-rem) * 0.26)}",".sjdha-root.device-web{font-size:14px;min-height:467px;display:grid;grid-template-columns:1fr;grid-template-rows:188px minmax(0,1fr);align-items:stretch;border-radius:20px;box-shadow:0 18px 48px rgba(15,23,42,.18);border:1px solid rgba(148,163,184,.22);z-index:1000}",".sjdha-root.device-web.video-fullscreen{grid-template-rows:minmax(0,1fr) auto}",".sjdha-root.device-web.video-fullscreen .sjdha-video-area{grid-column:1;grid-row:1;height:100%;min-height:0}",".sjdha-root.device-web.video-split .sjdha-video-area{height:auto;min-height:188px}",".sjdha-root.device-web .sjdha-video-area{grid-column:1;grid-row:1;min-height:0;height:auto;cursor:move;user-select:none}",".sjdha-root.device-web .sjdha-video-area:before{backdrop-filter:blur(10px)}",".sjdha-root.device-web .sjdha-queue{bottom:14px;padding:6px 12px;font-size:12px;backdrop-filter:blur(8px)}",".sjdha-root.device-web .sjdha-fullscreen-btn{top:24px;right:24px;width:44px;height:44px;font-size:16px;line-height:44px}",".sjdha-root.device-web .sjdha-autoplay-overlay{gap:10px;font-size:14px}",".sjdha-root.device-web .sjdha-manual-play{gap:10px}",".sjdha-root.device-web .sjdha-autoplay-icon{width:56px;height:56px;font-size:22px}",".sjdha-root.device-web .sjdha-autoplay-spinner{width:50px;height:50px}",".sjdha-root.device-web .sjdha-ai-response{left:14px;right:14px;bottom:22px;padding:12px 14px 14px;border-radius:14px;background:rgba(255,255,255,.92);box-shadow:0 8px 24px rgba(0,0,0,.1)}",".sjdha-root.device-web .sjdha-ai-response-label{font-size:12px;margin-bottom:4px}",".sjdha-root.device-web .sjdha-ai-response-content{font-size:16px;max-height:100px;scrollbar-width:none;-ms-overflow-style:none}",".sjdha-root.device-web .sjdha-chat-area{grid-column:1;grid-row:2;min-height:0;height:auto;margin-top:0;user-select:none;overflow:hidden;background:rgba(255,255,255,.92)}",".sjdha-root.device-web.video-fullscreen .sjdha-chat-area{display:flex;position:static;height:auto;min-height:auto;background:transparent;border:none;box-shadow:none;backdrop-filter:none;border-radius:0;overflow:visible;padding:0}",".sjdha-root.device-web .sjdha-chat-date{padding:12px 0 10px;font-size:12px;line-height:1.4}",".sjdha-root.device-web .sjdha-time-label{padding:12px 0 6px;font-size:12px;line-height:1.4}",".sjdha-root.device-web .sjdha-chat-list{flex:1;padding:0 12px 12px;box-sizing:border-box}",".sjdha-root.device-web .sjdha-chat-item{margin-bottom:10px;max-width:88%}",".sjdha-root.device-web .sjdha-avatar{width:28px;height:28px;margin:0 8px;box-shadow:0 6px 14px rgba(80,154,255,.12)}",".sjdha-root.device-web .sjdha-chat-item.system .sjdha-avatar{margin-right:8px}",".sjdha-root.device-web .sjdha-chat-item.user .sjdha-avatar{margin-left:8px}",".sjdha-root.device-web .sjdha-bubble{padding:10px 12px;border-radius:14px;font-size:14px;line-height:1.5;min-height:16px;box-shadow:0 6px 16px rgba(15,23,42,.05)}",".sjdha-root.device-web .sjdha-chat-item.system .sjdha-bubble{background:#fff}",".sjdha-root.device-web .sjdha-chat-item.system .sjdha-bubble:before{left:-8px;top:12px;border-top:8px solid transparent;border-bottom:8px solid transparent;border-right:8px solid #fff}",".sjdha-root.device-web .sjdha-chat-item.user .sjdha-bubble{background:linear-gradient(135deg,#509aff 0%,#2f7bf3 100%)}",".sjdha-root.device-web .sjdha-chat-item.user .sjdha-bubble:after{right:-8px;top:12px;border-top:8px solid transparent;border-bottom:8px solid transparent;border-left:8px solid #2f7bf3}",".sjdha-root.device-web .sjdha-voice-bubble{min-width:40px;gap:8px;justify-content:space-between}",".sjdha-root.device-web .sjdha-voice-icon{width:24px;height:24px}",".sjdha-root.device-web .sjdha-input-bar{position:static;height:auto;min-height:auto;padding:10px;gap:10px;background:rgba(255,255,255,.92);box-shadow:0 10px 24px rgba(15,23,42,.08);box-sizing:border-box}",".sjdha-root.device-web .sjdha-mode-btn,.sjdha-root.device-web .sjdha-send-btn,.sjdha-root.device-web .sjdha-voice-input{height:38px;border-radius:12px}",".sjdha-root.device-web .sjdha-mode-btn{width:36px;font-size:18px}",".sjdha-root.device-web .sjdha-input-wrap{height:38px;border-radius:12px;padding:0 10px;background:#f2f5fa;border:none}",".sjdha-root.device-web .sjdha-input{padding:0;font-size:13px}",".sjdha-root.device-web .sjdha-voice-input{font-size:13px;background:#f2f5fa}",".sjdha-root.device-web .sjdha-send-btn{min-width:60px;padding:0 14px;font-size:14px;background:linear-gradient(135deg,#509aff 0%,#2f7bf3 100%)}",".sjdha-root.device-web .sjdha-recording-card{gap:12px;padding:24px 30px;border-radius:16px}",".sjdha-root.device-web .sjdha-wave{gap:4px;height:32px}",".sjdha-root.device-web .sjdha-wave span{width:4px}",".sjdha-root.device-web .sjdha-dialog{width:260px;padding:18px;border-radius:14px;box-shadow:0 12px 32px rgba(15,23,42,.22)}",".sjdha-root.device-web .sjdha-dialog-content{font-size:15px}",".sjdha-root.device-web .sjdha-dialog-btn{height:34px;padding:0 18px;border-radius:10px}",".sjdha-root.device-web .sjdha-toast-content{padding:10px 16px;font-size:13px}","@keyframes sjdha-spin{to{transform:rotate(360deg)}}","@keyframes sjdha-pulse{0%{transform:scale(.8);opacity:.8}100%{transform:scale(1.6);opacity:0}}","@keyframes sjdha-voice-play{0%,100%{opacity:1}50%{opacity:.5}}","@keyframes sjdha-wave{0%,100%{height:calc(var(--sjdha-rem) * 0.16);opacity:.45}50%{height:calc(var(--sjdha-rem) * 0.64);opacity:1}}","@media (max-width:768px){.sjdha-root{width:100%!important;height:100dvh!important;max-width:none!important;max-height:none!important;left:0!important;top:0!important;right:0!important;bottom:0!important;border-radius:0}}"].join(""),e=document.createElement("style");e.id="sj-digital-human-adaptive-style",e.type="text/css",e.textContent=t,document.head.appendChild(e)}},n.prototype.mountDom=function(){var t=document.createElement("div");t.className="sjdha-root",t.innerHTML=['<div class="sjdha-video-area">',' <div class="sjdha-digital-human">',' <video class="sjdha-video" playsinline webkit-playsinline x5-video-player-type="h5" x5-video-player-fullscreen="true" x5-video-orientation="portraint" autoplay loop muted></video>',' <div class="sjdha-queue"></div>',' <button type="button" class="sjdha-fullscreen-btn"></button>',' <div class="sjdha-autoplay-overlay">',' <div class="sjdha-manual-play" style="display:none">',' <div class="sjdha-autoplay-icon">▶</div>'," <span>点击开始对话</span>"," </div>",' <div class="sjdha-autoplay-spinner"></div>'," </div>",' <div class="sjdha-ai-response">',' <div class="sjdha-ai-response-label">正在播报</div>',' <div class="sjdha-ai-response-content"></div>'," </div>"," </div>","</div>",'<div class="sjdha-chat-area">',' <div class="sjdha-chat-list"><div class="sjdha-chat-date"></div></div>',' <div class="sjdha-input-bar">',' <button type="button" class="sjdha-mode-btn"></button>',' <div class="sjdha-input-wrap"><input class="sjdha-input" type="text" placeholder="请输入聊天内容..."></div>',' <button type="button" class="sjdha-voice-input" style="display:none">按住 说话</button>',' <button type="button" class="sjdha-send-btn">发送</button>'," </div>","</div>",'<div class="sjdha-recording">',' <div class="sjdha-recording-card">',' <div class="sjdha-wave"><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span></div>'," <div>松开 发送</div>"," </div>","</div>",'<div class="sjdha-dialog-overlay">',' <div class="sjdha-dialog">',' <div class="sjdha-dialog-content">离开会话时间过长,是否重连?</div>',' <div class="sjdha-dialog-footer"><button type="button" class="sjdha-dialog-btn">确认</button></div>'," </div>","</div>",'<div class="sjdha-toast"><div class="sjdha-toast-content"></div></div>'].join(""),(this.config.container||document.body).appendChild(t),this.dom.root=t,this.dom.videoArea=t.querySelector(".sjdha-video-area"),this.dom.video=t.querySelector(".sjdha-video"),this.dom.queue=t.querySelector(".sjdha-queue"),this.dom.fullscreenBtn=t.querySelector(".sjdha-fullscreen-btn"),this.dom.autoplayOverlay=t.querySelector(".sjdha-autoplay-overlay"),this.dom.manualPlay=t.querySelector(".sjdha-manual-play"),this.dom.autoplaySpinner=t.querySelector(".sjdha-autoplay-spinner"),this.dom.aiResponse=t.querySelector(".sjdha-ai-response"),this.dom.aiResponseContent=t.querySelector(".sjdha-ai-response-content"),this.dom.chatArea=t.querySelector(".sjdha-chat-area"),this.dom.chatDate=t.querySelector(".sjdha-chat-date"),this.dom.chatList=t.querySelector(".sjdha-chat-list"),this.dom.modeBtn=t.querySelector(".sjdha-mode-btn"),this.dom.inputWrap=t.querySelector(".sjdha-input-wrap"),this.dom.input=t.querySelector(".sjdha-input"),this.dom.voiceInput=t.querySelector(".sjdha-voice-input"),this.dom.sendBtn=t.querySelector(".sjdha-send-btn"),this.dom.recording=t.querySelector(".sjdha-recording"),this.dom.dialog=t.querySelector(".sjdha-dialog-overlay"),this.dom.dialogConfirm=t.querySelector(".sjdha-dialog-btn"),this.dom.toast=t.querySelector(".sjdha-toast"),this.dom.toastContent=t.querySelector(".sjdha-toast-content"),this.dom.input.value="",this.dom.chatDate.textContent=this._formatDateHeader(),this._refreshModeButton(),this._refreshFullscreenButton()},n.prototype.bindEvent=function(){var t=this;this.dom.fullscreenBtn.addEventListener("click",function(e){e.stopPropagation(),t.toggleVideoFullscreen()}),this.dom.manualPlay.addEventListener("click",function(e){e.stopPropagation(),t.handleManualPlay()}),this.dom.root.addEventListener("click",function(){t.handleContainerClick()}),this.dom.sendBtn.addEventListener("click",function(){t.sendMessage()}),this.dom.input.addEventListener("keyup",function(e){"Enter"===e.key&&t.sendMessage()}),this.dom.input.addEventListener("input",function(){t.renderStatus()}),this.dom.modeBtn.addEventListener("click",function(){t.toggleInputMode()}),this.dom.voiceInput.addEventListener("touchstart",function(e){e.preventDefault(),t.startVoiceInput()},{passive:!1}),this.dom.voiceInput.addEventListener("touchend",function(e){e.preventDefault(),t.stopVoiceInput()},{passive:!1}),this.dom.voiceInput.addEventListener("touchcancel",function(e){e.preventDefault(),t.stopVoiceInput()},{passive:!1}),this.dom.voiceInput.addEventListener("mousedown",function(e){e.preventDefault(),t.startVoiceInput()}),this.dom.dialogConfirm.addEventListener("click",function(){t.onReconnectConfirm()}),this.dom.videoArea.addEventListener("mousedown",function(e){t.handleVideoAreaMouseDown(e)}),this.resizeHandler=function(t,e){if("function"==typeof t){var s=null;return function(){var a=this,i=arguments;clearTimeout(s),s=setTimeout(function(){t.apply(a,i)},e)}}}(function(){t.handleResize()},100),document.addEventListener("mouseup",function(){t.stopVoiceInput()}),document.addEventListener("mousemove",function(e){t.onDocMouseMove(e)}),document.addEventListener("mouseup",function(){t.onDocMouseUp()}),window.addEventListener("resize",this.resizeHandler),window.addEventListener("beforeunload",function(){t.destroy()}),this.dom.video.addEventListener("playing",function(){t.markVideoReady()})},n.prototype.bootstrap=a(i().m(function t(){var e;return i().w(function(t){for(;;)switch(t.p=t.n){case 0:return t.p=0,t.n=1,this.getSessionId();case 1:return t.n=2,this.getPageDefaultData();case 2:this.startConnection(),t.n=4;break;case 3:t.p=3,e=t.v,console.error("[SjDigitalHumanAssistantAdaptive] bootstrap failed",e),this.showToast("初始化失败,请稍后重试");case 4:return t.a(2)}},t,this,[[0,3]])})),n.prototype.renderInitialMessages=function(){this.config.defaultPlayText&&(this.chatMessages.push({type:"system",msg:this.config.defaultPlayText}),this.renderChatList())},n.prototype.detectMobileDevice=function(){if("undefined"==typeof window)return!0;var t=window.innerWidth<=this.config.mobileBreakpoint,e=window.matchMedia&&window.matchMedia("(pointer: coarse)").matches,s=navigator.maxTouchPoints>0||"ontouchstart"in window,a=/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini|Mobile|HarmonyOS|Windows Phone/i.test(navigator.userAgent);return!!(t||a&&s||e)},n.prototype.syncDeviceMode=function(){this.state.isMobileDevice=this.detectMobileDevice(),this.updateRemBase(),this.dom.root.classList.toggle("device-mobile",this.state.isMobileDevice),this.dom.root.classList.toggle("device-web",!this.state.isMobileDevice),this.dom.root.classList.toggle("video-fullscreen",!!this.state.isVideoFullscreen),this.dom.root.classList.toggle("video-split",!this.state.hasAvatarUrl),this.state.isMobileDevice?(this.state.dragPosition=null,this.dom.root.style.left="0",this.dom.root.style.top="0",this.dom.root.style.right="0",this.dom.root.style.bottom="0"):(this.dom.root.style.width=this._normalizeSize(this.config.windowWidth)||"300px",this.dom.root.style.height=this._normalizeSize(this.config.windowHeight)||"550px",this.state.dragPosition||(this.dom.root.style.right="24px",this.dom.root.style.bottom="24px")),this.state.isVideoFullscreen?(this.dom.chatArea.classList.remove("hidden"),this.dom.chatList.style.display="none",this.dom.inputWrap.style.display=this.state.isTextInputMode?"block":"none",this.dom.sendBtn.style.display=this.state.isTextInputMode?"block":"none",this.dom.voiceInput.style.display=this.state.isTextInputMode?"none":"block"):(this.dom.chatList.style.display="block",this.dom.chatArea.classList.remove("hidden")),this.dom.aiResponse.style.display=this.state.isVideoFullscreen&&this.state.currentAiMessage?"block":"none",this._refreshFullscreenButton(),this.dom.fullscreenBtn.style.display=this.state.hasAvatarUrl?"flex":"none"},n.prototype.handleResize=function(){this.updateRemBase(),this.syncDeviceMode(),this.clampDragPositionOnResize()},n.prototype.toggleVideoFullscreen=function(){this.state.isVideoFullscreen=!this.state.isVideoFullscreen,this.syncDeviceMode(),this.state.isVideoFullscreen||this.scrollChatToBottom()},n.prototype.handleVideoAreaMouseDown=function(t){if(!this.state.isMobileDevice&&0===t.button&&!this._isInteractiveDragTarget(t.target)){t.preventDefault();var e=this.dom.root.getBoundingClientRect();this.drag.startClientX=t.clientX,this.drag.startClientY=t.clientY,this.drag.startLeft=e.left,this.drag.startTop=e.top,this.state.isDragging=!0,this.state.dragMoved=!1,this.state.dragPosition={left:e.left,top:e.top},this.dom.videoArea.style.cursor="grabbing"}},n.prototype.onDocMouseMove=function(t){if(this.state.isDragging){var e=t.clientX-this.drag.startClientX,s=t.clientY-this.drag.startClientY;!this.state.dragMoved&&(Math.abs(e)>2||Math.abs(s)>2)&&(this.state.dragMoved=!0);var a=this.dom.root.getBoundingClientRect(),i=this._clampPosition(this.drag.startLeft+e,this.drag.startTop+s,a.width,a.height);this.state.dragPosition=i,this.dom.root.style.left=i.left+"px",this.dom.root.style.top=i.top+"px",this.dom.root.style.right="auto",this.dom.root.style.bottom="auto"}},n.prototype.onDocMouseUp=function(){this.state.isDragging&&(this.state.isDragging=!1,this.dom.videoArea.style.cursor="grab",this.state.dragMoved&&window.addEventListener("click",function t(e){e.preventDefault(),e.stopPropagation(),window.removeEventListener("click",t,!0)},!0))},n.prototype.clampDragPositionOnResize=function(){if(this.state.dragPosition&&!this.state.isMobileDevice){var t=this.dom.root.getBoundingClientRect(),e=this._clampPosition(this.state.dragPosition.left,this.state.dragPosition.top,t.width,t.height);this.state.dragPosition=e,this.dom.root.style.left=e.left+"px",this.dom.root.style.top=e.top+"px"}},n.prototype.handleContainerClick=function(){this.state.hasUnmuted||this.dom.video&&this.dom.video.muted&&(this.dom.video.muted=!1,this.dom.video.paused&&this.dom.video.play(),this.state.hasUnmuted=!0)},n.prototype.handleManualPlay=a(i().m(function t(){return i().w(function(t){for(;;)switch(t.p=t.n){case 0:if(this.dom.video&&this.state.isMediaReady){t.n=1;break}return t.a(2);case 1:return t.p=1,t.n=2,this.dom.video.play();case 2:this.dom.video.muted=!1,this.state.isAutoplayBlocked=!1,this.renderAutoplayState(),t.n=4;break;case 3:t.p=3,t.v,this.showToast("视频播放失败,请点击按钮重试");case 4:return t.a(2)}},t,this,[[1,3]])})),n.prototype.toggleInputMode=function(){!this.state.isTextInputMode||this.state.isSSEConnected?(this.state.isTextInputMode=!this.state.isTextInputMode,this._refreshModeButton(),this.dom.inputWrap.style.display=this.state.isTextInputMode?"block":"none",this.dom.sendBtn.style.display=this.state.isTextInputMode?"block":"none",this.dom.voiceInput.style.display=this.state.isTextInputMode?"none":"block",this.state.isTextInputMode?this.releaseRecorder():this.ensureRecorder()):this.showToast("消息服务未连接,请稍后再试")},n.prototype.sendMessage=a(i().m(function t(){var e,s;return i().w(function(t){for(;;)switch(t.n){case 0:if(e=(this.dom.input.value||"").replace(/^\s+|\s+$/g,"")){t.n=1;break}return t.a(2);case 1:if(this.state.isSSEConnected){t.n=2;break}return this.showToast("消息服务未连接,请稍后再试"),t.a(2);case 2:return t.n=3,this.digitalHumanInterruptTalk();case 3:return this.state.isReceivingReply=!1,this.state.currentAiMessage="",s=Date.now(),this.chatMessages.push({type:"user",msg:e,timestamp:s,showTime:this.shouldShowTimeLabel(s)}),this.dom.input.value="",this.renderStatus(),this.renderChatList(),this.scrollChatToBottom(),t.n=4,this.digitalHumanChat(e,"chat");case 4:return t.a(2)}},t,this)})),n.prototype.receiveMessage=function(t){var e=(t||"").replace(/^\s+|\s+$/g,"");if(e){var s=this.chatMessages[this.chatMessages.length-1];this.state.isReceivingReply&&s&&"system"===s.type?(s.msg+=e,this.state.currentAiMessage+=e):(this.chatMessages.push({type:"system",msg:e}),this.state.isReceivingReply=!0,this.state.currentAiMessage=e),this.renderChatList(),this.scrollChatToBottom(),this.renderAiResponse()}},n.prototype.renderChatList=function(){for(var t=this.dom.chatList,e=this.state.avatarPic?' style="background-image:url('+this._escapeHtml(this.state.avatarPic)+')"':"",s="",a=0;a<this.chatMessages.length;a++){var i=this.chatMessages[a];i&&("user"===i.type&&i.showTime&&i.timestamp&&(s+='<div class="sjdha-time-label"><span>'+this._escapeHtml(this.formatMessageTime(i.timestamp))+"</span></div>"),"system"===i.type&&i.msg?s+='<div class="sjdha-chat-item system"><div class="sjdha-avatar"'+e+'></div><div class="sjdha-bubble">'+this._escapeHtml(i.msg)+"</div></div>":"user"===i.type&&(i.msg||i.voiceUrl)&&(i.voiceUrl?s+='<div class="sjdha-chat-item user" data-voice-index="'+a+'"><div class="sjdha-avatar"></div><div class="sjdha-bubble sjdha-voice-bubble"><div>'+this._escapeHtml(String(i.duration||0))+'"</div><div class="sjdha-voice-icon'+(this.state.playingVoiceId===a?" playing":"")+'"></div></div></div>':s+='<div class="sjdha-chat-item user"><div class="sjdha-avatar"></div><div class="sjdha-bubble">'+this._escapeHtml(i.msg)+"</div></div>"))}var o="";try{this.dom.chatDate&&this.dom.chatDate.parentElement===t&&(o=this.dom.chatDate.outerHTML||"")}catch(t){o=""}if(t.innerHTML=o+s,t.querySelector){var n=t.querySelector(".sjdha-chat-date");n&&(this.dom.chatDate=n)}for(var r=t.querySelectorAll("[data-voice-index]"),d=this,c=0;c<r.length;c++)r[c].addEventListener("click",function(){var t=parseInt(this.getAttribute("data-voice-index"),10);d.playVoice(d.chatMessages[t],t)});this.renderAiResponse()},n.prototype.renderAiResponse=function(){this.dom.aiResponseContent.textContent=this.state.currentAiMessage||"",this.dom.aiResponse.style.display=this.state.isVideoFullscreen&&this.state.currentAiMessage?"block":"none"},n.prototype.scrollChatToBottom=function(){var t=this;setTimeout(function(){t.dom.chatList.scrollTop=t.dom.chatList.scrollHeight,t.dom.aiResponseContent.scrollTop=t.dom.aiResponseContent.scrollHeight},0)},n.prototype.startConnection=function(){var t=this;if(!this.state.isConnected&&!this.state.isConnecting){var e=this.state.currentHlsUrl,s=this.state.currentRtsUrl;e||s?(this.state.isConnecting=!0,this.state.isManualDisconnect=!1,this.renderStatus(),this.cleanupVideo(),this.destroyRts(),s?this.tryPlayWithRts(s,e):this.playWithHls(e)):this.state.defaultVideoUrl&&(this.dom.video.src=this.state.defaultVideoUrl,this.state.isMediaReady=!0,this.dom.video.play().then(function(){t.state.isAutoplayBlocked=!1,t.renderAutoplayState()}).catch(function(){t.state.isAutoplayBlocked=!0,t.renderAutoplayState()}))}},n.prototype.tryPlayWithRts=function(t,e){var s=this.config.aliRtsClass,a=this;s&&s.createClient?(this.stream.aliRts=s.createClient(),this.stream.aliRts.on&&this.stream.aliRts.on("onError",function(t){console.error("[SjDigitalHumanAssistantAdaptive] RTS error",t)}),this.stream.aliRts.isSupport({isReceiveVideo:!0}).then(function(){a.subscribeRts(t,e)}).catch(function(){a.destroyRts(),a.playWithHls(e)})):this.playWithHls(e)},n.prototype.subscribeRts=function(t,e){var s=this;this.stream.aliRts.subscribe(t,{mediaTimeout:6e3,retryTimes:3,retryInterval:2e3}).then(function(t){t&&t.play&&t.play(s.dom.video),s.state.isMediaReady=!0,s.state.isConnected=!0,s.state.isConnecting=!1,s.state.currentReconnectTimes=0,s.clearReconnectTimer(),s.dom.video.play().then(function(){s.state.isAutoplayBlocked=!1,s.renderAutoplayState()}).catch(function(){s.state.isAutoplayBlocked=!0,s.renderAutoplayState()}),s.renderStatus()}).catch(function(){s.destroyRts(),s.playWithHls(e)})},n.prototype.playWithHls=function(t){var e=this,s=this.config.hlsClass;if(!t)return this.state.isConnecting=!1,this.renderStatus(),void this.reconnect();this.stream.hls&&this.stream.hls.destroy&&(this.stream.hls.destroy(),this.stream.hls=null),s&&s.isSupported&&s.isSupported()?(this.stream.hls=new s({maxBufferLength:30,maxMaxBufferLength:60,liveSyncDurationCount:2,fragLoadingMaxRetry:10,fragLoadingRetryDelay:1e3,manifestLoadingMaxRetry:4,levelLoadingMaxRetry:4,enableWorker:!0,lowLatencyMode:!1}),this.stream.hls.loadSource(t),this.stream.hls.attachMedia(this.dom.video),this.stream.hls.on(s.Events.MANIFEST_PARSED,function(){e.state.isMediaReady=!0,e.dom.video.play().then(function(){e.state.isAutoplayBlocked=!1,e.renderAutoplayState()}).catch(function(){e.state.isAutoplayBlocked=!0,e.renderAutoplayState()})}),this.stream.hls.on(s.Events.ERROR,function(t,s){s&&s.fatal&&(e.state.isConnected=!1,e.state.isConnecting=!1,e.renderStatus(),e.reconnect())})):this.dom.video.canPlayType("application/vnd.apple.mpegurl")?(this.dom.video.src=t,this.dom.video.load(),this.dom.video.addEventListener("loadedmetadata",function t(){e.dom.video.removeEventListener("loadedmetadata",t),e.state.isConnected=!0,e.state.isConnecting=!1,e.state.isMediaReady=!0,e.state.currentReconnectTimes=0,e.clearReconnectTimer(),e.renderStatus()}),this.dom.video.play().then(function(){e.state.isAutoplayBlocked=!1,e.renderAutoplayState()}).catch(function(){e.state.isAutoplayBlocked=!0,e.renderAutoplayState()})):(this.state.isConnecting=!1,this.renderStatus(),this.reconnect())},n.prototype.markVideoReady=function(){this.state.isConnected=!0,this.state.isConnecting=!1,this.state.currentReconnectTimes=0,this.state.isMediaReady=!0,this.clearReconnectTimer(),this.renderStatus(),this.state.isAutoplayBlocked=!1,this.state.needManualPlay=!1,this.renderAutoplayState()},n.prototype.renderStatus=function(){this.dom.sendBtn.disabled=!this.state.isSSEConnected||!(this.dom.input.value||"").replace(/^\s+|\s+$/g,"")},n.prototype.renderAutoplayState=function(){var t=this.state.isAutoplayBlocked;this.dom.autoplayOverlay.classList.toggle("hidden",!t),this.dom.manualPlay.style.display=this.state.needManualPlay?"flex":"none",this.dom.autoplaySpinner.style.display=this.state.needManualPlay?"none":"block"},n.prototype.reconnect=function(){var t=this;this.state.isManualDisconnect||this.state.isConnected||this.state.isConnecting||this.state.isWaitingReconnect||-1!==this.config.maxReconnectTimes&&this.state.currentReconnectTimes>=this.config.maxReconnectTimes||(this.state.isWaitingReconnect=!0,this.state.currentReconnectTimes+=1,this.stream.reconnectTimer=setTimeout(function(){t.state.isWaitingReconnect=!1,t.state.isConnected||t.state.isConnecting||t.startConnection()},1e3*this.config.reconnectInterval))},n.prototype.clearReconnectTimer=function(){this.stream.reconnectTimer&&(clearTimeout(this.stream.reconnectTimer),this.stream.reconnectTimer=null),this.state.isWaitingReconnect=!1},n.prototype.startSSE=function(){var t=this;this.state.chatSessionId&&fetch(this._buildUrl("/stream_llm"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({chatSessionId:parseInt(this.state.chatSessionId,10),sessionid:parseInt(this.state.sessionid||0,10)})}).then(function(e){t.state.isSSEConnected=!0,t.sseReconnectCount=0,t.renderStatus(),t.state.hasAvatarUrl||t.fetchSessionStatus(),e.body&&(t.stream.sseReader=e.body.getReader(),t.consumeSSE())}).catch(function(e){console.error("[SjDigitalHumanAssistantAdaptive] SSE failed",e),t.state.isSSEConnected=!1,t.renderStatus()})},n.prototype.consumeSSE=function(){var t=this,e="";!function s(){t.stream.sseReader&&t.stream.sseReader.read().then(function(a){if(a.done)return t.state.isSSEConnected=!1,void t.renderStatus();var i=(e+=(new TextDecoder).decode(a.value)).split("\n");e=i.pop()||"";for(var o=0;o<i.length;o++)t.handleSSELine(i[o]);s()}).catch(function(){t.reconnectSSE()})}()},n.prototype.handleSSELine=function(t){if(t&&0===t.indexOf("data:")){var e=t.slice(5).replace(/^\s+|\s+$/g,"");if(e&&"<endofanswer>"!==e){if(-1!==e.indexOf("[ERROR]"))return"[ERROR] Disconnected by server"===e?void this.promptReconnect():void this.reconnectSSE();try{var s=JSON.parse(e);if(s&&s.text)return-1!==s.text.indexOf("[ERROR]")?void this.reconnectSSE():void this.receiveMessage(s.text);if("string"==typeof s)return void this.receiveMessage(s)}catch(t){this.receiveMessage(e)}}}},n.prototype.reconnectSSE=function(){var t=this;this.sseReconnectCount>=5||(this.sseReconnectCount+=1,this.stream.sseReader&&(this.stream.sseReader.cancel(),this.stream.sseReader=null),this.state.isSSEConnected=!1,this.renderStatus(),this.stream.sseReconnectTimer&&clearTimeout(this.stream.sseReconnectTimer),this.stream.sseReconnectTimer=setTimeout(function(){t.startSSE()},1e3))},n.prototype.promptReconnect=function(){var t=this;this.state.showReconnectDialog=!0,this.dom.dialog.classList.add("show"),this.state.isConnected=!1,this.state.isMediaReady=!1,this.state.isAutoplayBlocked=!0,this.state.isConnecting=!1,this.state.isSSEConnected=!1,this.renderAutoplayState(),this.renderStatus(),this.stream.sseReader&&(this.stream.sseReader.cancel(),this.stream.sseReader=null),this.stream.hls&&this.stream.hls.destroy&&(this.stream.hls.destroy(),this.stream.hls=null),this.destroyRts(),this.cleanupVideo(),this.reconnectDialogCallback=a(i().m(function e(){return i().w(function(e){for(;;)switch(e.n){case 0:return e.n=1,t.getSessionId();case 1:t.startConnection();case 2:return e.a(2)}},e)}))},n.prototype.onReconnectConfirm=a(i().m(function t(){return i().w(function(t){for(;;)switch(t.n){case 0:if(this.state.showReconnectDialog=!1,this.dom.dialog.classList.remove("show"),!this.reconnectDialogCallback){t.n=2;break}return t.n=1,this.reconnectDialogCallback();case 1:this.reconnectDialogCallback=null;case 2:return t.a(2)}},t,this)})),n.prototype.digitalHumanChat=function(){var t=a(i().m(function t(e,s){var a;return i().w(function(t){for(;;)switch(t.p=t.n){case 0:if(this.state.isSSEConnected){t.n=1;break}return t.a(2);case 1:return s=s||"echo",t.p=2,t.n=3,this._request("/human","POST",{chatSessionId:parseInt(this.state.chatSessionId,10),sessionid:parseInt(this.state.sessionid||0,10),type:s,text:e});case 3:t.n=5;break;case 4:t.p=4,a=t.v,console.error("[SjDigitalHumanAssistantAdaptive] send chat failed",a);case 5:return t.a(2)}},t,this,[[2,4]])}));return function(e,s){return t.apply(this,arguments)}}(),n.prototype.digitalHumanInterruptTalk=a(i().m(function t(){var e;return i().w(function(t){for(;;)switch(t.p=t.n){case 0:if(this.state.chatSessionId){t.n=1;break}return t.a(2);case 1:return t.p=1,t.n=2,this._request("/interrupt_talk","POST",{chatSessionId:parseInt(this.state.chatSessionId,10),sessionid:parseInt(this.state.sessionid||0,10)});case 2:t.n=4;break;case 3:t.p=3,e=t.v,console.error("[SjDigitalHumanAssistantAdaptive] interrupt failed",e);case 4:return t.a(2)}},t,this,[[1,3]])})),n.prototype.getPageDefaultData=a(i().m(function t(){var e,s,a;return i().w(function(t){for(;;)switch(t.n){case 0:return t.n=1,fetch(this._buildUrl("/daxi/avatar/info?id="+this.config.avatarId),{method:"GET"});case 1:if((e=t.v).ok){t.n=2;break}throw new Error("get default data failed");case 2:return t.n=3,e.json();case 3:if(s=t.v,a=s&&s.data&&s.data.entities?s.data.entities[0]:null){t.n=4;break}return t.a(2);case 4:this.state.posterBgUrl=a.imageDefault||"",this.state.videoEleBg=a.coverImageUrl||"",this.state.defaultVideoUrl=a.videoDefault||"",this.state.avatarPic=a.characterAvatar||"",this.state.posterBgUrl&&this.dom.video.setAttribute("poster",this.state.posterBgUrl),this.state.videoEleBg&&(this.dom.videoArea.style.backgroundImage="url("+this.state.videoEleBg+")"),this.renderChatList();case 5:return t.a(2)}},t,this)})),n.prototype.getSessionId=a(i().m(function t(){var e,s;return i().w(function(t){for(;;)switch(t.n){case 0:return t.n=1,this._request("/connect","POST",{accessToken:this.config.accessToken});case 1:return e=t.v,this.state.chatSessionId=e&&null!=e.chatSessionId?String(e.chatSessionId):"",this.state.sessionid=e&&null!=e.sessionid?String(e.sessionid):"",this.state.chatSessionId&&this.startSSE(),e&&null!=e.sessionid&&Number(e.sessionid)>=0&&(s=e.sessionid&&0===Number(e.sessionid)?e.sessionid:"",e.hlsAvatarUrl&&(this.state.currentRtsUrl="artc://"+String(e.hlsAvatarUrl).replace(/^https:\/\//,"").replace(/\.m3u8$/,"")+s)),e&&e.hlsAvatarUrl?(this.state.currentHlsUrl=e.hlsAvatarUrl,this.state.hasAvatarUrl=!0):(this.state.currentHlsUrl="",this.state.currentRtsUrl="",this.state.hasAvatarUrl=!1,this.state.isVideoFullscreen=!1),this.syncDeviceMode(),t.a(2,e)}},t,this)})),n.prototype.fetchSessionStatus=a(i().m(function t(){var e,s,a,o,n;return i().w(function(t){for(;;)switch(t.p=t.n){case 0:return t.p=0,t.n=1,this._request("/session_status","GET");case 1:e=t.v,s=e&&e.active_chat_sessions?e.active_chat_sessions:0,a=e&&e.max_sessions?e.max_sessions:0,o=s-a,this.state.queueCount=o>0?o:0,this.dom.queue.textContent=this.state.queueCount?"语音回复排队中,前方"+this.state.queueCount+"人":"",this.dom.queue.style.display=this.state.queueCount?"block":"none",t.n=3;break;case 2:t.p=2,n=t.v,console.error("[SjDigitalHumanAssistantAdaptive] session status failed",n);case 3:return t.a(2)}},t,this,[[0,2]])})),n.prototype.ensureRecorder=a(i().m(function t(){var e;return i().w(function(t){for(;;)switch(t.n){case 0:if(!this.audio.mediaStream&&!this.audio.permissionPromise){t.n=1;break}return t.a(2,this.audio.permissionPromise||Promise.resolve(!0));case 1:return e=this,this.audio.permissionPromise=navigator.mediaDevices.getUserMedia({audio:!0}).then(function(t){return e.audio.mediaStream=t,e.audio.permissionPromise=null,!0}).catch(function(){return e.audio.permissionPromise=null,e.showToast("无法访问麦克风"),!1}),t.a(2,this.audio.permissionPromise)}},t,this)})),n.prototype.startVoiceInput=a(i().m(function t(){return i().w(function(t){for(;;)switch(t.n){case 0:if(!this.state.isRecording){t.n=1;break}return t.a(2);case 1:return this.stopRequestedBeforeStart=!1,this.isButtonPressed=!0,this.dom.video&&(this.dom.video.muted=!0),t.n=2,this.digitalHumanInterruptTalk();case 2:if(!this.stopRequestedBeforeStart&&this.isButtonPressed){t.n=3;break}return this.isButtonPressed=!1,t.a(2);case 3:return t.n=4,this.ensureRecorder();case 4:if(t.v&&!this.stopRequestedBeforeStart&&this.isButtonPressed){t.n=5;break}return this.isButtonPressed=!1,t.a(2);case 5:this.beginRecordStream(),this.state.isRecording=!0,this.dom.recording.classList.add("show");case 6:return t.a(2)}},t,this)})),n.prototype.beginRecordStream=function(){var t=window.AudioContext||window.webkitAudioContext;if(this.audio.mediaStream&&t){this.audio.audioContext=new t,this.audio.sourceNode=this.audio.audioContext.createMediaStreamSource(this.audio.mediaStream),this.audio.processorNode=this.audio.audioContext.createScriptProcessor(4096,1,1),this.audio.chunks=[],this.audio.startTime=Date.now();var e=this;this.audio.processorNode.onaudioprocess=function(t){var s=t.inputBuffer.getChannelData(0);e.audio.chunks.push(new Float32Array(s))},this.audio.sourceNode.connect(this.audio.processorNode),this.audio.processorNode.connect(this.audio.audioContext.destination)}},n.prototype.stopVoiceInput=function(){if(this.stopRequestedBeforeStart=!0,this.isButtonPressed=!1,this.dom.video&&(this.dom.video.muted=!1),this.state.isRecording){this.state.isRecording=!1,this.dom.recording.classList.remove("show");var t=Math.round((Date.now()-this.audio.startTime)/1e3),e=this.finishRecordStream();!e||t<1?this.showToast("录音时间太短"):this.sendVoiceMessage(e,t)}},n.prototype.finishRecordStream=function(){if(!this.audio.audioContext)return null;this.audio.processorNode&&(this.audio.processorNode.disconnect(),this.audio.processorNode=null),this.audio.sourceNode&&(this.audio.sourceNode.disconnect(),this.audio.sourceNode=null);var t=this.audio.audioContext.sampleRate;this.audio.audioContext.close(),this.audio.audioContext=null;var e=this.mergeAudioChunks(this.audio.chunks);if(this.audio.chunks=[],!e.length)return null;var s=this.downsampleBuffer(e,t,16e3);return this.encodeWav(s,16e3)},n.prototype.releaseRecorder=function(){if(this.stopRequestedBeforeStart=!0,this.isButtonPressed=!1,this.state.isRecording=!1,this.dom.recording&&this.dom.recording.classList.remove("show"),this.audio.processorNode&&(this.audio.processorNode.disconnect(),this.audio.processorNode=null),this.audio.sourceNode&&(this.audio.sourceNode.disconnect(),this.audio.sourceNode=null),this.audio.audioContext&&(this.audio.audioContext.close(),this.audio.audioContext=null),this.audio.mediaStream){for(var t=this.audio.mediaStream.getTracks(),e=0;e<t.length;e++)t[e].stop();this.audio.mediaStream=null}this.audio.permissionPromise=null,this.audio.chunks=[],this.dom.video&&(this.dom.video.muted=!1)},n.prototype.sendVoiceMessage=function(){var t=a(i().m(function t(e,s){var a,o,n,r,d,c;return i().w(function(t){for(;;)switch(t.p=t.n){case 0:return a=URL.createObjectURL(e),o=Date.now(),this.chatMessages.push({type:"user",msg:"[语音]",timestamp:o,showTime:this.shouldShowTimeLabel(o),voiceUrl:a,duration:s}),this.renderChatList(),this.scrollChatToBottom(),t.p=1,(n=new FormData).append("audio",e,"recording.wav"),n.append("duration",String(s)),n.append("chatSessionId",this.state.chatSessionId),n.append("sessionid",this.state.sessionid),t.n=2,fetch(this._buildUrl("/stt"),{method:"POST",body:n});case 2:if((r=t.v).ok){t.n=3;break}throw new Error("voice post failed");case 3:return t.n=4,r.json();case 4:if(!(d=t.v)||!d.result){t.n=5;break}return t.n=5,this.digitalHumanChat(String(d.result).replace(/^\s+|\s+$/g,""),"chat");case 5:t.n=7;break;case 6:t.p=6,c=t.v,console.error("[SjDigitalHumanAssistantAdaptive] send voice failed",c);case 7:return t.a(2)}},t,this,[[1,6]])}));return function(e,s){return t.apply(this,arguments)}}(),n.prototype.playVoice=function(){var t=a(i().m(function t(e,s){var a,o;return i().w(function(t){for(;;)switch(t.n){case 0:if(a=this,e&&e.voiceUrl){t.n=1;break}return t.a(2);case 1:if(this.audio.currentVoiceAudio&&(this.audio.currentVoiceAudio.pause(),this.audio.currentVoiceAudio=null),this.state.playingVoiceId!==s){t.n=2;break}return this.state.playingVoiceId=null,this.renderChatList(),t.a(2);case 2:return t.n=3,this.digitalHumanInterruptTalk();case 3:this.state.playingVoiceId=s,this.renderChatList(),o=new Audio(e.voiceUrl),this.audio.currentVoiceAudio=o,o.play(),o.onended=function(){a.state.playingVoiceId=null,a.audio.currentVoiceAudio=null,a.renderChatList()};case 4:return t.a(2)}},t,this)}));return function(e,s){return t.apply(this,arguments)}}(),n.prototype.showToast=function(t){var e=this;this.state.toastMessage=t,this.dom.toastContent.textContent=t,this.dom.toast.classList.add("show"),this.toastTimer&&clearTimeout(this.toastTimer),this.toastTimer=setTimeout(function(){e.dom.toast.classList.remove("show")},2e3)},n.prototype.cleanupVideo=function(){this.dom.video.pause(),this.dom.video.srcObject=null,this.dom.video.src="",this.dom.video.load()},n.prototype.destroyRts=function(){if(this.stream.aliRts&&this.stream.aliRts.unsubscribe)try{this.stream.aliRts.unsubscribe()}catch(t){console.warn("[SjDigitalHumanAssistantAdaptive] unsubscribe rts failed",t)}this.stream.aliRts=null},n.prototype.destroy=function(){this.stream.sseReader&&(this.stream.sseReader.cancel(),this.stream.sseReader=null),this.stream.sseReconnectTimer&&clearTimeout(this.stream.sseReconnectTimer),this.clearReconnectTimer(),this.destroyRts(),this.stream.hls&&this.stream.hls.destroy&&(this.stream.hls.destroy(),this.stream.hls=null),this.audio.currentVoiceAudio&&this.audio.currentVoiceAudio.pause(),this.releaseRecorder(),this.dom.video&&(this.dom.video.pause(),this.dom.video.srcObject=null,this.dom.video.src="",this.dom.video.load()),this.dom.root&&this.dom.root.parentNode&&this.dom.root.parentNode.removeChild(this.dom.root)},n.prototype._request=function(){var t=a(i().m(function t(e,s,a){var o,n;return i().w(function(t){for(;;)switch(t.n){case 0:return"GET"!==(o={method:s||"GET",headers:{}}).method&&(o.headers["Content-Type"]="application/json",o.body=JSON.stringify(a||{})),t.n=1,fetch(this._buildUrl(e),o);case 1:if((n=t.v).ok){t.n=2;break}throw new Error("request failed: "+n.status);case 2:return t.a(2,n.json())}},t,this)}));return function(e,s,a){return t.apply(this,arguments)}}(),n.prototype._buildUrl=function(t){var e=String(Math.floor(Date.now()/1e3)),s=-1===t.indexOf("?")?"?":"&",a=this._md5(this.config.secretKey+e);return this.config.baseUrl.replace(/\/$/,"")+t+s+"timestamp="+encodeURIComponent(e)+"&sign="+encodeURIComponent(a)},n.prototype._normalizeSize=function(t){if(null!=t&&""!==t)return"number"==typeof t?t+"px":String(t)},n.prototype._getRemBase=function(){if("undefined"==typeof window)return 50;var t=375;return window.visualViewport&&window.visualViewport.width?t=window.visualViewport.width:window.innerWidth?t=window.innerWidth:document.documentElement&&document.documentElement.clientWidth&&(t=document.documentElement.clientWidth),Math.max(320,Math.min(t,750))/7.5},n.prototype.updateRemBase=function(){if(this.dom&&this.dom.root){var t=this.detectMobileDevice();this.dom.root.style.setProperty("--sjdha-rem",(t?this._getRemBase():50)+"px")}},n.prototype._isInteractiveDragTarget=function(t){return!!(t&&t.closest&&t.closest("button,input,.sjdha-manual-play"))},n.prototype._clampPosition=function(t,e,s,a){var i=Math.max(0,window.innerWidth-s),o=Math.max(0,window.innerHeight-a);return{left:Math.max(0,Math.min(t,i)),top:Math.max(0,Math.min(e,o))}},n.prototype._refreshModeButton=function(){this.dom.modeBtn.style.cssText=this.state.isTextInputMode?"background: url('https://szr-data.xiu361.cn/img/szr_video/szr_button/voice-btn.png') no-repeat center center;background-size: contain;":"background: url('https://szr-data.xiu361.cn/img/szr_video/szr_button/text-btn.png') no-repeat center center;background-size: contain;"},n.prototype._refreshFullscreenButton=function(){this.dom.fullscreenBtn.style.cssText=this.state.isVideoFullscreen?"background: url('https://szr-data.xiu361.cn/img/szr_video/szr_button/reduce-btn.png') no-repeat center center;background-size: contain;":"background: url('https://szr-data.xiu361.cn/img/szr_video/szr_button/magnify-btn.png') no-repeat center center;background-size: contain;"},n.prototype._formatDateHeader=function(){var t=new Date;return"今天 "+t.getFullYear()+"年"+(t.getMonth()+1)+"月"+t.getDate()+"日"},n.prototype.formatMessageTime=function(t){var e=new Date(t),s=e.getHours();return(s<12?"上午":"下午")+" "+(s<12?s:12===s?12:s-12)+":"+String(e.getMinutes()).padStart(2,"0")},n.prototype.shouldShowTimeLabel=function(t){for(var e=this.chatMessages.length-1;e>=0;e--){var s=this.chatMessages[e];if(s&&"user"===s.type&&s.timestamp)return t-s.timestamp>18e4}return!1},n.prototype._isIOSWechat=function(){return/iPhone|iPad|iPod/i.test(navigator.userAgent)&&/MicroMessenger/i.test(navigator.userAgent)},n.prototype._escapeHtml=function(t){return String(null==t?"":t).replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/\"/g,"&quot;").replace(/'/g,"&#39;")},n.prototype.mergeAudioChunks=function(t){var e,s=0;for(e=0;e<t.length;e++)s+=t[e].length;var a=new Float32Array(s),i=0;for(e=0;e<t.length;e++)a.set(t[e],i),i+=t[e].length;return a},n.prototype.downsampleBuffer=function(t,e,s){if(s===e)return t;for(var a=e/s,i=Math.round(t.length/a),o=new Float32Array(i),n=0,r=0;n<o.length;){var d,c=Math.round((n+1)*a),h=0,l=0;for(d=r;d<c&&d<t.length;d++)h+=t[d],l+=1;o[n]=h/l,n+=1,r=c}return o},n.prototype.encodeWav=function(t,e){var s=new ArrayBuffer(44+2*t.length),a=new DataView(s);return this.writeString(a,0,"RIFF"),a.setUint32(4,36+2*t.length,!0),this.writeString(a,8,"WAVE"),this.writeString(a,12,"fmt "),a.setUint32(16,16,!0),a.setUint16(20,1,!0),a.setUint16(22,1,!0),a.setUint32(24,e,!0),a.setUint32(28,2*e,!0),a.setUint16(32,2,!0),a.setUint16(34,16,!0),this.writeString(a,36,"data"),a.setUint32(40,2*t.length,!0),this.floatTo16BitPCM(a,44,t),new Blob([a],{type:"audio/wav"})},n.prototype.writeString=function(t,e,s){for(var a=0;a<s.length;a++)t.setUint8(e+a,s.charCodeAt(a))},n.prototype.floatTo16BitPCM=function(t,e,s){for(var a=0;a<s.length;a++,e+=2){var i=Math.max(-1,Math.min(1,s[a]));t.setInt16(e,i<0?32768*i:32767*i,!0)}},n.prototype._md5=function(t){function e(t,e){var s=(65535&t)+(65535&e);return(t>>16)+(e>>16)+(s>>16)<<16|65535&s}function s(t,s,a,i,o,n){return e((r=e(e(s,t),e(i,n)))<<(d=o)|r>>>32-d,a);var r,d}function a(t,e,a,i,o,n,r){return s(e&a|~e&i,t,e,o,n,r)}function i(t,e,a,i,o,n,r){return s(e&i|a&~i,t,e,o,n,r)}function o(t,e,a,i,o,n,r){return s(e^a^i,t,e,o,n,r)}function n(t,e,a,i,o,n,r){return s(a^(e|~i),t,e,o,n,r)}return function(t){var e,s,a="0123456789abcdef",i="";for(s=0;s<t.length;s+=1)e=t.charCodeAt(s),i+=a.charAt(e>>>4&15)+a.charAt(15&e);return i}(function(t){var e,s="";for(e=0;e<32*t.length;e+=8)s+=String.fromCharCode(t[e>>5]>>>e%32&255);return s}(function(t,s){var r,d,c,h,l;t[s>>5]|=128<<s%32,t[14+(s+64>>>9<<4)]=s;var u=1732584193,p=-271733879,m=-1732584194,v=271733878;for(r=0;r<t.length;r+=16)d=u,c=p,h=m,l=v,u=a(u,p,m,v,t[r],7,-680876936),v=a(v,u,p,m,t[r+1],12,-389564586),m=a(m,v,u,p,t[r+2],17,606105819),p=a(p,m,v,u,t[r+3],22,-1044525330),u=a(u,p,m,v,t[r+4],7,-176418897),v=a(v,u,p,m,t[r+5],12,1200080426),m=a(m,v,u,p,t[r+6],17,-1473231341),p=a(p,m,v,u,t[r+7],22,-45705983),u=a(u,p,m,v,t[r+8],7,1770035416),v=a(v,u,p,m,t[r+9],12,-1958414417),m=a(m,v,u,p,t[r+10],17,-42063),p=a(p,m,v,u,t[r+11],22,-1990404162),u=a(u,p,m,v,t[r+12],7,1804603682),v=a(v,u,p,m,t[r+13],12,-40341101),m=a(m,v,u,p,t[r+14],17,-1502002290),u=i(u,p=a(p,m,v,u,t[r+15],22,1236535329),m,v,t[r+1],5,-165796510),v=i(v,u,p,m,t[r+6],9,-1069501632),m=i(m,v,u,p,t[r+11],14,643717713),p=i(p,m,v,u,t[r],20,-373897302),u=i(u,p,m,v,t[r+5],5,-701558691),v=i(v,u,p,m,t[r+10],9,38016083),m=i(m,v,u,p,t[r+15],14,-660478335),p=i(p,m,v,u,t[r+4],20,-405537848),u=i(u,p,m,v,t[r+9],5,568446438),v=i(v,u,p,m,t[r+14],9,-1019803690),m=i(m,v,u,p,t[r+3],14,-187363961),p=i(p,m,v,u,t[r+8],20,1163531501),u=i(u,p,m,v,t[r+13],5,-1444681467),v=i(v,u,p,m,t[r+2],9,-51403784),m=i(m,v,u,p,t[r+7],14,1735328473),u=o(u,p=i(p,m,v,u,t[r+12],20,-1926607734),m,v,t[r+5],4,-378558),v=o(v,u,p,m,t[r+8],11,-2022574463),m=o(m,v,u,p,t[r+11],16,1839030562),p=o(p,m,v,u,t[r+14],23,-35309556),u=o(u,p,m,v,t[r+1],4,-1530992060),v=o(v,u,p,m,t[r+4],11,1272893353),m=o(m,v,u,p,t[r+7],16,-155497632),p=o(p,m,v,u,t[r+10],23,-1094730640),u=o(u,p,m,v,t[r+13],4,681279174),v=o(v,u,p,m,t[r],11,-358537222),m=o(m,v,u,p,t[r+3],16,-722521979),p=o(p,m,v,u,t[r+6],23,76029189),u=o(u,p,m,v,t[r+9],4,-640364487),v=o(v,u,p,m,t[r+12],11,-421815835),m=o(m,v,u,p,t[r+15],16,530742520),u=n(u,p=o(p,m,v,u,t[r+2],23,-995338651),m,v,t[r],6,-198630844),v=n(v,u,p,m,t[r+7],10,1126891415),m=n(m,v,u,p,t[r+14],15,-1416354905),p=n(p,m,v,u,t[r+5],21,-57434055),u=n(u,p,m,v,t[r+12],6,1700485571),v=n(v,u,p,m,t[r+3],10,-1894986606),m=n(m,v,u,p,t[r+10],15,-1051523),p=n(p,m,v,u,t[r+1],21,-2054922799),u=n(u,p,m,v,t[r+8],6,1873313359),v=n(v,u,p,m,t[r+15],10,-30611744),m=n(m,v,u,p,t[r+6],15,-1560198380),p=n(p,m,v,u,t[r+13],21,1309151649),u=n(u,p,m,v,t[r+4],6,-145523070),v=n(v,u,p,m,t[r+11],10,-1120210379),m=n(m,v,u,p,t[r+2],15,718787259),p=n(p,m,v,u,t[r+9],21,-343485551),u=e(u,d),p=e(p,c),m=e(m,h),v=e(v,l);return[u,p,m,v]}(function(t){var e,s=[];for(s[(t.length>>2)-1]=void 0,e=0;e<s.length;e+=1)s[e]=0;for(e=0;e<8*t.length;e+=8)s[e>>5]|=(255&t.charCodeAt(e/8))<<e%32;return s}(r=unescape(encodeURIComponent(t))),8*r.length)));var r},n});
4
+ //# sourceMappingURL=sjDigitalHumanAssistantAdaptive.umd.min.js.map