xinyao-assistant-sdk 1.0.11263 → 1.0.11264

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.
@@ -3,4 +3,4 @@
3
3
  * eventsource.js
4
4
  * Available under MIT License (MIT)
5
5
  * https://github.com/Yaffle/EventSource/
6
- */n=i,o=i.exports,function(e){var t=e.setTimeout,i=e.clearTimeout,s=e.XMLHttpRequest,r=e.XDomainRequest,a=e.ActiveXObject,l=e.EventSource,c=e.document,d=e.Promise,p=e.fetch,u=e.Response,h=e.TextDecoder,m=e.TextEncoder,g=e.AbortController;if("undefined"==typeof window||void 0===c||"readyState"in c||null!=c.body||(c.readyState="loading",window.addEventListener("load",function(e){c.readyState="complete"},!1)),null==s&&null!=a&&(s=function(){return new a("Microsoft.XMLHTTP")}),null==Object.create&&(Object.create=function(e){function t(){}return t.prototype=e,new t}),Date.now||(Date.now=function(){return(new Date).getTime()}),null==g){var f=p;p=function(e,t){var n=t.signal;return f(e,{headers:t.headers,credentials:t.credentials,cache:t.cache}).then(function(e){var t=e.body.getReader();return n._reader=t,n._aborted&&n._reader.cancel(),{status:e.status,statusText:e.statusText,headers:e.headers,body:{getReader:function(){return t}}}})},g=function(){this.signal={_reader:null,_aborted:!1},this.abort=function(){null!=this.signal._reader&&this.signal._reader.cancel(),this.signal._aborted=!0}}}function x(){this.bitsNeeded=0,this.codePoint=0}x.prototype.decode=function(e){function t(e,t,n){if(1===n)return e>=128>>t&&e<<t<=2047;if(2===n)return e>=2048>>t&&e<<t<=55295||e>=57344>>t&&e<<t<=65535;if(3===n)return e>=65536>>t&&e<<t<=1114111;throw new Error}function n(e,t){if(6===e)return t>>6>15?3:t>31?2:1;if(12===e)return t>15?3:2;if(18===e)return 3;throw new Error}for(var o=65533,i="",s=this.bitsNeeded,r=this.codePoint,a=0;a<e.length;a+=1){var l=e[a];0!==s&&(l<128||l>191||!t(r<<6|63&l,s-6,n(s,r)))&&(s=0,r=o,i+=String.fromCharCode(r)),0===s?(l>=0&&l<=127?(s=0,r=l):l>=192&&l<=223?(s=6,r=31&l):l>=224&&l<=239?(s=12,r=15&l):l>=240&&l<=247?(s=18,r=7&l):(s=0,r=o),0===s||t(r,s,n(s,r))||(s=0,r=o)):(s-=6,r=r<<6|63&l),0===s&&(r<=65535?i+=String.fromCharCode(r):(i+=String.fromCharCode(55296+(r-65535-1>>10)),i+=String.fromCharCode(56320+(r-65535-1&1023))))}return this.bitsNeeded=s,this.codePoint=r,i},null!=h&&null!=m&&function(){try{return"test"===(new h).decode((new m).encode("test"),{stream:!0})}catch(e){console.debug("TextDecoder does not support streaming option. Using polyfill instead: "+e)}return!1}()||(h=x);var y=function(){};function v(e){this.withCredentials=!1,this.readyState=0,this.status=0,this.statusText="",this.responseText="",this.onprogress=y,this.onload=y,this.onerror=y,this.onreadystatechange=y,this._contentType="",this._xhr=e,this._sendTimeout=0,this._abort=y}function b(e){return e.replace(/[A-Z]/g,function(e){return String.fromCharCode(e.charCodeAt(0)+32)})}function C(e){for(var t=Object.create(null),n=e.split("\r\n"),o=0;o<n.length;o+=1){var i=n[o].split(": "),s=i.shift(),r=i.join(": ");t[b(s)]=r}this._map=t}function w(){}function A(e){this._headers=e}function E(){}function S(){this._listeners=Object.create(null)}function k(e){t(function(){throw e},0)}function N(e){this.type=e,this.target=void 0}function T(e,t){N.call(this,e),this.data=t.data,this.lastEventId=t.lastEventId}function M(e,t){N.call(this,e),this.status=t.status,this.statusText=t.statusText,this.headers=t.headers}function B(e,t){N.call(this,e),this.error=t.error}v.prototype.open=function(e,n){this._abort(!0);var o=this,r=this._xhr,a=1,l=0;this._abort=function(e){0!==o._sendTimeout&&(i(o._sendTimeout),o._sendTimeout=0),1!==a&&2!==a&&3!==a||(a=4,r.onload=y,r.onerror=y,r.onabort=y,r.onprogress=y,r.onreadystatechange=y,r.abort(),0!==l&&(i(l),l=0),e||(o.readyState=4,o.onabort(null),o.onreadystatechange())),a=0};var c=function(){if(1===a){var e=0,t="",n=void 0;if("contentType"in r)e=200,t="OK",n=r.contentType;else try{e=r.status,t=r.statusText,n=r.getResponseHeader("Content-Type")}catch(i){e=0,t="",n=void 0}0!==e&&(a=2,o.readyState=2,o.status=e,o.statusText=t,o._contentType=n,o.onreadystatechange())}},d=function(){if(c(),2===a||3===a){a=3;var e="";try{e=r.responseText}catch(t){}o.readyState=3,o.responseText=e,o.onprogress()}},p=function(e,t){if(null!=t&&null!=t.preventDefault||(t={preventDefault:y}),d(),1===a||2===a||3===a){if(a=4,0!==l&&(i(l),l=0),o.readyState=4,"load"===e)o.onload(t);else if("error"===e)o.onerror(t);else{if("abort"!==e)throw new TypeError;o.onabort(t)}o.onreadystatechange()}},u=function(){l=t(function(){u()},500),3===r.readyState&&d()};"onload"in r&&(r.onload=function(e){p("load",e)}),"onerror"in r&&(r.onerror=function(e){p("error",e)}),"onabort"in r&&(r.onabort=function(e){p("abort",e)}),"onprogress"in r&&(r.onprogress=d),"onreadystatechange"in r&&(r.onreadystatechange=function(e){!function(e){null!=r&&(4===r.readyState?"onload"in r&&"onerror"in r&&"onabort"in r||p(""===r.responseText?"error":"load",e):3===r.readyState?"onprogress"in r||d():2===r.readyState&&c())}(e)}),!("contentType"in r)&&"ontimeout"in s.prototype||(n+=(-1===n.indexOf("?")?"?":"&")+"padding=true"),r.open(e,n,!0),"readyState"in r&&(l=t(function(){u()},0))},v.prototype.abort=function(){this._abort(!1)},v.prototype.getResponseHeader=function(e){return this._contentType},v.prototype.setRequestHeader=function(e,t){var n=this._xhr;"setRequestHeader"in n&&n.setRequestHeader(e,t)},v.prototype.getAllResponseHeaders=function(){return null!=this._xhr.getAllResponseHeaders&&this._xhr.getAllResponseHeaders()||""},v.prototype.send=function(){if("ontimeout"in s.prototype&&("sendAsBinary"in s.prototype||"mozAnon"in s.prototype)||null==c||null==c.readyState||"complete"===c.readyState){var e=this._xhr;"withCredentials"in e&&(e.withCredentials=this.withCredentials);try{e.send(void 0)}catch(o){throw o}}else{var n=this;n._sendTimeout=t(function(){n._sendTimeout=0,n.send()},4)}},C.prototype.get=function(e){return this._map[b(e)]},null!=s&&null==s.HEADERS_RECEIVED&&(s.HEADERS_RECEIVED=2),w.prototype.open=function(e,t,n,o,i,r,a){e.open("GET",i);var l=0;for(var c in e.onprogress=function(){var t=e.responseText.slice(l);l+=t.length,n(t)},e.onerror=function(e){e.preventDefault(),o(new Error("NetworkError"))},e.onload=function(){o(null)},e.onabort=function(){o(null)},e.onreadystatechange=function(){if(e.readyState===s.HEADERS_RECEIVED){var n=e.status,o=e.statusText,i=e.getResponseHeader("Content-Type"),r=e.getAllResponseHeaders();t(n,o,i,new C(r))}},e.withCredentials=r,a)Object.prototype.hasOwnProperty.call(a,c)&&e.setRequestHeader(c,a[c]);return e.send(),e},A.prototype.get=function(e){return this._headers.get(e)},E.prototype.open=function(e,t,n,o,i,s,r){var a=null,l=new g,c=l.signal,u=new h;return p(i,{headers:r,credentials:s?"include":"same-origin",signal:c,cache:"no-store"}).then(function(e){return a=e.body.getReader(),t(e.status,e.statusText,e.headers.get("Content-Type"),new A(e.headers)),new d(function(e,t){var o=function(){a.read().then(function(t){if(t.done)e(void 0);else{var i=u.decode(t.value,{stream:!0});n(i),o()}}).catch(function(e){t(e)})};o()})}).catch(function(e){return"AbortError"===e.name?void 0:e}).then(function(e){o(e)}),{abort:function(){null!=a&&a.cancel(),l.abort()}}},S.prototype.dispatchEvent=function(e){e.target=this;var t=this._listeners[e.type];if(null!=t)for(var n=t.length,o=0;o<n;o+=1){var i=t[o];try{"function"==typeof i.handleEvent?i.handleEvent(e):i.call(this,e)}catch(s){k(s)}}},S.prototype.addEventListener=function(e,t){e=String(e);var n=this._listeners,o=n[e];null==o&&(o=[],n[e]=o);for(var i=!1,s=0;s<o.length;s+=1)o[s]===t&&(i=!0);i||o.push(t)},S.prototype.removeEventListener=function(e,t){e=String(e);var n=this._listeners,o=n[e];if(null!=o){for(var i=[],s=0;s<o.length;s+=1)o[s]!==t&&i.push(o[s]);0===i.length?delete n[e]:n[e]=i}},T.prototype=Object.create(N.prototype),M.prototype=Object.create(N.prototype),B.prototype=Object.create(N.prototype);var D=-1,I=-1,L=/^text\/event\-stream(;.*)?$/i,H=function(e,t){var n=null==e?t:parseInt(e,10);return n!=n&&(n=t),R(n)},R=function(e){return Math.min(Math.max(e,1e3),18e6)},P=function(e,t,n){try{"function"==typeof t&&t.call(e,n)}catch(o){k(o)}};function z(e,n){S.call(this),n=n||{},this.onopen=void 0,this.onmessage=void 0,this.onerror=void 0,this.url=void 0,this.readyState=void 0,this.withCredentials=void 0,this.headers=void 0,this._close=void 0,function(e,n,o){n=String(n);var a=Boolean(o.withCredentials),l=o.lastEventIdQueryParameterName||"lastEventId",c=R(1e3),d=H(o.heartbeatTimeout,45e3),p="",u=c,h=!1,m=0,g=o.headers||{},f=o.Transport,x=j&&null==f?void 0:new v(null!=f?new f:null!=s&&"withCredentials"in s.prototype||null==r?new s:new r),y=null!=f&&"string"!=typeof f?new f:null==x?new E:new w,b=void 0,C=0,A=D,S="",k="",N="",z="",O=0,q=0,Q=0,F=function(t,n,o,i){if(0===A)if(200===t&&null!=o&&L.test(o)){A=1,h=Date.now(),u=c,e.readyState=1;var s=new M("open",{status:t,statusText:n,headers:i});e.dispatchEvent(s),P(e,e.onopen,s)}else{var r="";200!==t?(n&&(n=n.replace(/\s+/g," ")),r="EventSource's response has a status "+t+" "+n+" that is not 200. Aborting the connection."):r="EventSource's response has a Content-Type specifying an unsupported type: "+(null==o?"-":o.replace(/\s+/g," "))+". Aborting the connection.",K(),s=new M("error",{status:t,statusText:n,headers:i}),e.dispatchEvent(s),P(e,e.onerror,s),console.error(r)}},U=function(n){if(1===A){for(var o=-1,s=0;s<n.length;s+=1)(l=n.charCodeAt(s))!=="\n".charCodeAt(0)&&l!=="\r".charCodeAt(0)||(o=s);var r=(-1!==o?z:"")+n.slice(0,o+1);z=(-1===o?z:"")+n.slice(o+1),""!==n&&(h=Date.now(),m+=n.length);for(var a=0;a<r.length;a+=1){var l=r.charCodeAt(a);if(O===I&&l==="\n".charCodeAt(0))O=0;else if(O===I&&(O=0),l==="\r".charCodeAt(0)||l==="\n".charCodeAt(0)){if(0!==O){1===O&&(Q=a+1);var g=r.slice(q,Q-1),f=r.slice(Q+(Q<a&&r.charCodeAt(Q)===" ".charCodeAt(0)?1:0),a);"data"===g?(S+="\n",S+=f):"id"===g?k=f:"event"===g?N=f:"retry"===g?(c=H(f,c),u=c):"heartbeatTimeout"===g&&(d=H(f,d),0!==C&&(i(C),C=t(function(){Y()},d)))}if(0===O){if(""!==S){p=k,""===N&&(N="message");var x=new T(N,{data:S.slice(1),lastEventId:k});if(e.dispatchEvent(x),"open"===N?P(e,e.onopen,x):"message"===N?P(e,e.onmessage,x):"error"===N&&P(e,e.onerror,x),2===A)return}S="",N=""}O=l==="\r".charCodeAt(0)?I:0}else 0===O&&(q=a,O=1),1===O?l===":".charCodeAt(0)&&(Q=a+1,O=2):2===O&&(O=3)}}},G=function(n){if(1===A||0===A){A=D,0!==C&&(i(C),C=0),C=t(function(){Y()},u),u=R(Math.min(16*c,2*u)),e.readyState=0;var o=new B("error",{error:n});e.dispatchEvent(o),P(e,e.onerror,o),null!=n&&console.error(n)}},K=function(){A=2,null!=b&&(b.abort(),b=void 0),0!==C&&(i(C),C=0),e.readyState=2},Y=function(){if(C=0,A===D){h=!1,m=0,C=t(function(){Y()},d),A=0,S="",N="",k=p,z="",q=0,Q=0,O=0;var o=n;if("data:"!==n.slice(0,5)&&"blob:"!==n.slice(0,5)&&""!==p){var i=n.indexOf("?");o=-1===i?n:n.slice(0,i+1)+n.slice(i+1).replace(/(?:^|&)([^=&]*)(?:=[^&]*)?/g,function(e,t){return t===l?"":e}),o+=(-1===n.indexOf("?")?"?":"&")+l+"="+encodeURIComponent(p)}var s=e.withCredentials,r={Accept:"text/event-stream"},a=e.headers;if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(r[c]=a[c]);try{b=y.open(x,F,U,G,o,s,r)}catch(g){throw K(),g}}else if(h||null==b){var u=Math.max((h||Date.now())+d-Date.now(),1);h=!1,C=t(function(){Y()},u)}else G(new Error("No activity within "+d+" milliseconds. "+(0===A?"No response received.":m+" chars received.")+" Reconnecting.")),null!=b&&(b.abort(),b=void 0)};e.url=n,e.readyState=0,e.withCredentials=a,e.headers=g,e._close=K,Y()}(this,e,n)}var j=null!=p&&null!=u&&"body"in u.prototype;z.prototype=Object.create(S.prototype),z.prototype.CONNECTING=0,z.prototype.OPEN=1,z.prototype.CLOSED=2,z.prototype.close=function(){this._close()},z.CONNECTING=0,z.OPEN=1,z.CLOSED=2,z.prototype.withCredentials=void 0;var O,q,Q=l;null==s||null!=l&&"withCredentials"in l.prototype||(Q=z),(O=o).EventSourcePolyfill=z,O.NativeEventSource=l,void 0!==(q=void(O.EventSource=Q))&&(n.exports=q)}("undefined"==typeof globalThis?"undefined"!=typeof window?window:"undefined"!=typeof self?self:e:globalThis);var s,r,a=i.exports,l={exports:{}},c={exports:{}};s="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",r={rotl:function(e,t){return e<<t|e>>>32-t},rotr:function(e,t){return e<<32-t|e>>>t},endian:function(e){if(e.constructor==Number)return 16711935&r.rotl(e,8)|4278255360&r.rotl(e,24);for(var t=0;t<e.length;t++)e[t]=r.endian(e[t]);return e},randomBytes:function(e){for(var t=[];e>0;e--)t.push(Math.floor(256*Math.random()));return t},bytesToWords:function(e){for(var t=[],n=0,o=0;n<e.length;n++,o+=8)t[o>>>5]|=e[n]<<24-o%32;return t},wordsToBytes:function(e){for(var t=[],n=0;n<32*e.length;n+=8)t.push(e[n>>>5]>>>24-n%32&255);return t},bytesToHex:function(e){for(var t=[],n=0;n<e.length;n++)t.push((e[n]>>>4).toString(16)),t.push((15&e[n]).toString(16));return t.join("")},hexToBytes:function(e){for(var t=[],n=0;n<e.length;n+=2)t.push(parseInt(e.substr(n,2),16));return t},bytesToBase64:function(e){for(var t=[],n=0;n<e.length;n+=3)for(var o=e[n]<<16|e[n+1]<<8|e[n+2],i=0;i<4;i++)8*n+6*i<=8*e.length?t.push(s.charAt(o>>>6*(3-i)&63)):t.push("=");return t.join("")},base64ToBytes:function(e){e=e.replace(/[^A-Z0-9+\/]/gi,"");for(var t=[],n=0,o=0;n<e.length;o=++n%4)0!=o&&t.push((s.indexOf(e.charAt(n-1))&Math.pow(2,-2*o+8)-1)<<2*o|s.indexOf(e.charAt(n))>>>6-2*o);return t}},c.exports=r;var d,p,u,h,m,g=c.exports,f={utf8:{stringToBytes:function(e){return f.bin.stringToBytes(unescape(encodeURIComponent(e)))},bytesToString:function(e){return decodeURIComponent(escape(f.bin.bytesToString(e)))}},bin:{stringToBytes:function(e){for(var t=[],n=0;n<e.length;n++)t.push(255&e.charCodeAt(n));return t},bytesToString:function(e){for(var t=[],n=0;n<e.length;n++)t.push(String.fromCharCode(e[n]));return t.join("")}}},x=f,y=function(e){return null!=e&&(v(e)||function(e){return"function"==typeof e.readFloatLE&&"function"==typeof e.slice&&v(e.slice(0,0))}(e)||!!e._isBuffer)};function v(e){return!!e.constructor&&"function"==typeof e.constructor.isBuffer&&e.constructor.isBuffer(e)}d=g,p=x.utf8,u=y,h=x.bin,(m=function(e,t){e.constructor==String?e=t&&"binary"===t.encoding?h.stringToBytes(e):p.stringToBytes(e):u(e)?e=Array.prototype.slice.call(e,0):Array.isArray(e)||e.constructor===Uint8Array||(e=e.toString());for(var n=d.bytesToWords(e),o=8*e.length,i=1732584193,s=-271733879,r=-1732584194,a=271733878,l=0;l<n.length;l++)n[l]=16711935&(n[l]<<8|n[l]>>>24)|4278255360&(n[l]<<24|n[l]>>>8);n[o>>>5]|=128<<o%32,n[14+(o+64>>>9<<4)]=o;var c=m._ff,g=m._gg,f=m._hh,x=m._ii;for(l=0;l<n.length;l+=16){var y=i,v=s,b=r,C=a;i=c(i,s,r,a,n[l+0],7,-680876936),a=c(a,i,s,r,n[l+1],12,-389564586),r=c(r,a,i,s,n[l+2],17,606105819),s=c(s,r,a,i,n[l+3],22,-1044525330),i=c(i,s,r,a,n[l+4],7,-176418897),a=c(a,i,s,r,n[l+5],12,1200080426),r=c(r,a,i,s,n[l+6],17,-1473231341),s=c(s,r,a,i,n[l+7],22,-45705983),i=c(i,s,r,a,n[l+8],7,1770035416),a=c(a,i,s,r,n[l+9],12,-1958414417),r=c(r,a,i,s,n[l+10],17,-42063),s=c(s,r,a,i,n[l+11],22,-1990404162),i=c(i,s,r,a,n[l+12],7,1804603682),a=c(a,i,s,r,n[l+13],12,-40341101),r=c(r,a,i,s,n[l+14],17,-1502002290),i=g(i,s=c(s,r,a,i,n[l+15],22,1236535329),r,a,n[l+1],5,-165796510),a=g(a,i,s,r,n[l+6],9,-1069501632),r=g(r,a,i,s,n[l+11],14,643717713),s=g(s,r,a,i,n[l+0],20,-373897302),i=g(i,s,r,a,n[l+5],5,-701558691),a=g(a,i,s,r,n[l+10],9,38016083),r=g(r,a,i,s,n[l+15],14,-660478335),s=g(s,r,a,i,n[l+4],20,-405537848),i=g(i,s,r,a,n[l+9],5,568446438),a=g(a,i,s,r,n[l+14],9,-1019803690),r=g(r,a,i,s,n[l+3],14,-187363961),s=g(s,r,a,i,n[l+8],20,1163531501),i=g(i,s,r,a,n[l+13],5,-1444681467),a=g(a,i,s,r,n[l+2],9,-51403784),r=g(r,a,i,s,n[l+7],14,1735328473),i=f(i,s=g(s,r,a,i,n[l+12],20,-1926607734),r,a,n[l+5],4,-378558),a=f(a,i,s,r,n[l+8],11,-2022574463),r=f(r,a,i,s,n[l+11],16,1839030562),s=f(s,r,a,i,n[l+14],23,-35309556),i=f(i,s,r,a,n[l+1],4,-1530992060),a=f(a,i,s,r,n[l+4],11,1272893353),r=f(r,a,i,s,n[l+7],16,-155497632),s=f(s,r,a,i,n[l+10],23,-1094730640),i=f(i,s,r,a,n[l+13],4,681279174),a=f(a,i,s,r,n[l+0],11,-358537222),r=f(r,a,i,s,n[l+3],16,-722521979),s=f(s,r,a,i,n[l+6],23,76029189),i=f(i,s,r,a,n[l+9],4,-640364487),a=f(a,i,s,r,n[l+12],11,-421815835),r=f(r,a,i,s,n[l+15],16,530742520),i=x(i,s=f(s,r,a,i,n[l+2],23,-995338651),r,a,n[l+0],6,-198630844),a=x(a,i,s,r,n[l+7],10,1126891415),r=x(r,a,i,s,n[l+14],15,-1416354905),s=x(s,r,a,i,n[l+5],21,-57434055),i=x(i,s,r,a,n[l+12],6,1700485571),a=x(a,i,s,r,n[l+3],10,-1894986606),r=x(r,a,i,s,n[l+10],15,-1051523),s=x(s,r,a,i,n[l+1],21,-2054922799),i=x(i,s,r,a,n[l+8],6,1873313359),a=x(a,i,s,r,n[l+15],10,-30611744),r=x(r,a,i,s,n[l+6],15,-1560198380),s=x(s,r,a,i,n[l+13],21,1309151649),i=x(i,s,r,a,n[l+4],6,-145523070),a=x(a,i,s,r,n[l+11],10,-1120210379),r=x(r,a,i,s,n[l+2],15,718787259),s=x(s,r,a,i,n[l+9],21,-343485551),i=i+y>>>0,s=s+v>>>0,r=r+b>>>0,a=a+C>>>0}return d.endian([i,s,r,a])})._ff=function(e,t,n,o,i,s,r){var a=e+(t&n|~t&o)+(i>>>0)+r;return(a<<s|a>>>32-s)+t},m._gg=function(e,t,n,o,i,s,r){var a=e+(t&o|n&~o)+(i>>>0)+r;return(a<<s|a>>>32-s)+t},m._hh=function(e,t,n,o,i,s,r){var a=e+(t^n^o)+(i>>>0)+r;return(a<<s|a>>>32-s)+t},m._ii=function(e,t,n,o,i,s,r){var a=e+(n^(t|~o))+(i>>>0)+r;return(a<<s|a>>>32-s)+t},m._blocksize=16,m._digestsize=16,l.exports=function(e,t){if(null==e)throw new Error("Illegal argument "+e);var n=d.wordsToBytes(m(e,t));return t&&t.asBytes?n:t&&t.asString?h.bytesToString(n):d.bytesToHex(n)};const b=t(l.exports);!function(){if(!document.querySelector("#seat-assistant-styles")){const e=document.createElement("style");e.id="seat-assistant-styles",e.textContent="\n /* 坐席辅助弹窗样式 */\n .seat-assistant-popup {\n position: fixed;\n top: 10vh;\n right: calc((100% - 1300px) / 2);\n width: 1300px;\n height: 80vh;\n background: white;\n box-shadow: 0 4px 12px rgba(0,0,0,0.15);\n z-index: 10000;\n display: flex;\n border-radius: 5px;\n flex-direction: column;\n overflow: hidden;\n }\n \n .flex_two_text{\n display: flex;\n padding: 0 13px;\n height: 34px;\n line-height: 34px;\n background: #f2f2f2;\n justify-content: space-between;\n align-items: center;\n border: 1px solid #c9c9c9;\n border-radius: 6px;\n }\n .fw{\n font-weight: bold;\n font-size: 14px;\n }\n .btn_gundong{\n color: #4B91E1;\n font-weight: normal;\n font-size: 14px;\n cursor: pointer;\n }\n\n .popup-title-bar {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 8px 16px;\n color: #fff;\n background-color: #61c0ff;\n border-bottom: 1px solid #ddd;\n }\n\n .popup-title-bar h3 {\n margin: 0;\n font-size: 16px;\n font-weight: 600;\n }\n\n .popup-close-btn {\n background: none;\n border: none;\n font-size: 24px;\n cursor: pointer;\n color: #fff;\n padding: 0;\n width: 30px;\n height: 30px;\n display: flex;\n align-items: center;\n justify-content: center;\n }\n\n .popup-content-area {\n flex: 1;\n display: flex;\n overflow: hidden;\n padding: 5px;\n background: #eaeef2;\n }\n\n .left-panel {\n flex: 1;\n margin-right: 10px;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n }\n\n .user-portrait {\n flex: .3;\n border-bottom: 1px solid #eee;\n overflow-y: auto;\n background: #fff;\n border-radius: 6px;\n }\n\n .user-tags-container {\n margin-top: 10px;\n padding: 0 10px 10px 10px;\n border-radius: 4px;\n }\n\n .user-tags-title {\n font-size: 13px;\n font-weight: bold;\n color: #333;\n margin-bottom: 8px;\n }\n\n .user-tags-list {\n display: flex;\n flex-wrap: wrap;\n gap: 8px;\n }\n\n .user-tag-item {\n display: inline-block;\n padding: 4px 12px;\n background: #facd91;\n color: #333;\n font-size: 12px;\n border-radius: 4px;\n white-space: nowrap;\n }\n\n .smart-form-filling {\n flex: .7;\n overflow-y: auto;\n margin-top: 10px;\n }\n\n .form-filling-container {\n display: flex;\n flex-direction: column;\n height: calc(100% - 35px);\n padding: 10px 10px 0 10px;\n }\n\n .form-filling-header {\n display: flex;\n height: 34px;\n line-height: 34px;\n background: #81d3f8;\n color: white;\n font-weight: bold;\n font-size: 13px;\n border-radius: 6px 6px 0 0;\n align-items: center;\n border: 1px solid #81d3f8;\n }\n\n .form-filling-header-item {\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 12px;\n color: #000;\n border-right: 1px solid rgba(255,255,255,0.3);\n }\n\n .form-filling-header-item:last-child {\n border-right: none;\n }\n\n .form-filling-header-item.seq { width: 36px; }\n .form-filling-header-item.name { width: 90px; }\n .form-filling-header-item.input { flex: 1; }\n .form-filling-header-item.action { width: 40px; }\n\n .form-filling-body {\n flex: 1;\n overflow-y: auto;\n background: #fff;\n border: 1px solid #e9ecef;\n border-top: none;\n }\n\n .form-filling-row {\n display: flex;\n border-bottom: 1px solid #e9ecef;\n align-items: stretch;\n font-size: 12px;\n min-height: 34px;\n }\n\n .form-filling-row:last-child {\n /*border-bottom: none;*/\n }\n\n .form-filling-row:hover {\n background-color: #f0f7ff;\n }\n\n .form-filling-row-item {\n display: flex;\n align-items: center;\n border-right: 1px solid #e9ecef;\n padding: 0 8px;\n }\n\n .form-filling-row-item:last-child {\n border-right: none;\n }\n\n .form-filling-row-item.seq {\n width: 36px;\n justify-content: center;\n flex-shrink: 0;\n }\n .form-filling-row-item.name {\n width: 90px;\n flex-shrink: 0;\n font-weight: 500;\n }\n .form-filling-row-item.input {\n flex: 1;\n }\n .form-filling-row-item.action {\n width: 40px;\n justify-content: center;\n flex-shrink: 0;\n }\n\n .form-filling-footer {\n padding: 10px;\n text-align: center;\n border: 1px solid #e9ecef;\n border-top: none;\n background: #fff;\n border-radius: 0 0 6px 6px;\n }\n\n .form-filling-footer .submit-btn {\n background: #81d3f8;\n color: white;\n border: none;\n padding: 8px 24px;\n border-radius: 4px;\n cursor: pointer;\n font-size: 13px;\n transition: all 0.3s;\n box-shadow: 0 2px 4px rgba(64, 150, 255, 0.3);\n }\n\n .form-filling-footer .submit-btn:hover {\n background: linear-gradient(180deg, #5cb8ff 0%, #4facfe 100%);\n transform: translateY(-1px);\n box-shadow: 0 4px 8px rgba(64, 150, 255, 0.4);\n }\n\n .form-filling-footer .submit-btn:active {\n background: linear-gradient(180deg, #4096ff 0%, #3b8ee6 100%);\n transform: translateY(0);\n }\n\n .form-filling-row .copy-btn {\n background: #81d3f8;\n border: none;\n padding: 4px;\n border-radius: 4px;\n cursor: pointer;\n transition: all 0.2s;\n display: flex;\n align-items: center;\n justify-content: center;\n }\n\n .form-filling-row .copy-btn:hover {\n background: #4fbeef\n }\n\n .form-filling-row .copy-btn:active {\n background: #4fbeef;\n }\n\n .form-filling-row-item.input input[type=\"text\"],\n .form-filling-row-item.input textarea,\n .form-filling-row-item.input select {\n width: 100%;\n /*padding: 6px 8px;\n border: 1px solid #d9d9d9;\n border-radius: 4px;*/\n border: none;\n font-size: 12px;\n box-sizing: border-box;\n transition: all 0.3s;\n outline: none;\n user-select: none; /* 禁止选中 */\n pointer-events: none; /* 禁止点击 */\n background: none;\n }\n\n .form-filling-row-item.input input[type=\"text\"]:focus,\n .form-filling-row-item.input textarea:focus,\n .form-filling-row-item.input select:focus {\n /*border-color: #4096ff;\n box-shadow: 0 0 0 2px rgba(64, 150, 255, 0.2);*/\n outline: none;\n }\n\n .form-filling-row-item.input textarea {\n resize: vertical;\n min-height: 60px;\n }\n\n .form-filling-row-item.name .required-mark {\n color: #ff4d4f;\n margin-right: 2px;\n font-weight: bold;\n display: none;\n }\n\n .middle-panel {\n width: 620px;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n margin-right: 10px;\n }\n\n .thought-navigation {\n height: 265px;\n overflow-y: auto;\n margin-bottom: 10px;\n }\n\n .speech-recommendation {\n flex: 1;\n overflow-y: auto;\n }\n \n .jphs-tit{\n padding: 12px 12px;\n font-size: 14px;\n color: #6e6565;\n }\n \n .recommendation-container {\n display: flex;\n flex-direction: row;\n height: calc(100% - 35px);\n font-weight: bold;\n }\n\n /* 右侧容器:包含话术详情和最新推荐,上下排列 */\n .recommendation-right-wrap {\n flex: 1;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n }\n\n .recommendation-tabs-wrap{\n width:20%;\n flex-shrink: 0;\n flex-wrap: wrap;\n font-weight: normal;\n border-bottom: 1px solid #ddd;\n border-left: 1px solid #ddd;\n padding-bottom: 10px;\n overflow-y: auto;\n font-size: 14px;\n }\n \n .recommendation-tabs {\n \n }\n \n \n .recommendation-tab {\n padding: 8px 12px;\n border-radius: 4px;\n cursor: pointer;\n margin-right: 4px;\n margin-bottom: 8px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n font-size: 12px;\n }\n \n .recommendation-tab.active {\n background-color: #4096ff;\n color: #fff;\n font-weight: bold;\n }\n \n .recommendation-content {\n flex: 1;\n overflow-y: auto;\n padding: 10px;\n background-color: #fff;\n border: 1px solid #ddd;\n border-radius: 4px 4px 0 0;\n min-height: 100px;\n }\n \n .recommendation-item {\n padding: 10px;\n }\n \n .recommendation-header {\n margin-bottom: 10px;\n padding-bottom: 10px;\n border-bottom: 1px solid #eee;\n }\n \n .recommendation-header h5 {\n margin: 0 0 5px 0;\n color: #333;\n font-size: 14px;\n }\n \n .recommendation-meta {\n font-size: 12px;\n color: #666;\n }\n \n .recommendation-content-text {\n margin: 10px 0;\n line-height: 1.5;\n font-size: 12px;\n font-weight: normal;\n }\n \n .recommendation-score {\n font-size: 12px;\n color: #999;\n font-style: italic;\n }\n \n .new_recommend_title{\n margin: 0 0 5px 0;\n color: #4096ff;\n font-size: 13px;\n margin-bottom: 10px;\n padding-bottom: 10px;\n border-bottom: 1px solid #eee;\n }\n .new_recommend_content{\n margin: 10px 0;\n line-height: 1.5;\n font-size: 12px;\n font-weight: normal;\n }\n .topNewRecommendation-content{\n flex: 0 0 auto;\n max-height: 150px;\n overflow-y: auto;\n padding: 10px;\n background-color: #fff;\n border: 1px solid #ddd;\n border-top: none;\n border-radius: 0 0 4px 4px;\n }\n \n \n .entry-id, .source, .entry-update-time {\n margin-right: 10px;\n color: #999;\n font-size: 10px;\n font-weight: normal;\n }\n\n .right-panel {\n flex: 1;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n }\n\n .speech-to-text-content {\n \n }\n .speech-to-text-content-wrap{\n height: calc(80vh - 200px);\n flex: 1;\n padding: 8px;\n overflow-y: auto;\n white-space: pre-wrap;\n background: #fff;\n }\n \n #speech-to-text-content-wrap {\n scroll-behavior: smooth;\n }\n \n #seat-assistant-auto-container{\n \n }\n \n \n .popup-content-area .speech-to-info {\n height: 100px;\n width: 100%;\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: center;\n gap: 10px;\n align-content: center;\n border-bottom: 1px solid #eee;\n margin-bottom: 10px;\n background: #fff;\n }\n .popup-content-area .speech-info-item {\n width: 45%;\n border: 1px solid #b0adad;\n color: #3e3434;\n border-radius: 5px;\n padding: 4px 8px;\n font-size: 12px;\n display: flex;\n align-items: center;\n }\n\n /* 1. 定义关键帧动画 */\n\n /* 呼吸效果:控制阴影扩散、缩放和亮度变化 */\n @keyframes pulse-glow {\n 0% {\n box-shadow: 0 0 0 0 rgba(24, 144, 255, 0.7);\n transform: scale(1);\n filter: brightness(1);\n }\n 50% {\n /* 中间态:阴影最大,稍微放大,亮度最高 */\n box-shadow: 0 0 0 15px rgba(24, 144, 255, 0);\n transform: scale(1.05);\n filter: brightness(1.15);\n }\n 100% {\n box-shadow: 0 0 0 0 rgba(24, 144, 255, 0);\n transform: scale(1);\n filter: brightness(1);\n }\n }\n \n /* 内部流光效果:增加一点动态的光泽感 */\n @keyframes inner-shimmer {\n 0% {\n background-position: 0% 50%;\n }\n 50% {\n background-position: 100% 50%;\n }\n 100% {\n background-position: 0% 50%;\n }\n }\n \n /* 2. 应用样式 */\n .minimized-popup-btn {\n pointer-events: auto;\n position: fixed;\n bottom: 20px;\n right: 20px;\n width: 60px;\n height: 60px;\n \n /* 修改背景为渐变色,配合流光动画 */\n background: linear-gradient(135deg, #1890ff 0%, #40a9ff 50%, #1890ff 100%);\n background-size: 200% 200%;\n \n color: white;\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: move;\n z-index: 10001;\n \n /* 初始阴影 */\n box-shadow: 0 4px 12px rgba(24, 144, 255, 0.4);\n \n font-size: 12px;\n text-align: center;\n user-select: none;\n \n /* 应用动画 */\n /* pulse-glow: 名称 | 3s: 时长(较慢) | infinite: 无限循环 | cubic-bezier: 缓动函数(让节奏有快有慢) */\n animation: \n pulse-glow 2.5s infinite cubic-bezier(0.4, 0, 0.6, 1),\n inner-shimmer 4s infinite ease-in-out;\n \n /* 确保动画性能 */\n will-change: transform, box-shadow, background-position;\n transition: transform 0.2s ease, box-shadow 0.2s ease;\n }\n \n /* 3. 悬停状态:停止闪烁,给予反馈 */\n .minimized-popup-btn:hover {\n /* 暂停动画 */\n animation-play-state: paused;\n \n /* 悬停时固定在一个高亮状态 */\n transform: scale(1.1);\n box-shadow: 0 8px 20px rgba(24, 144, 255, 0.6);\n filter: brightness(1.1);\n cursor: pointer; /* 悬停时也可以改为 pointer 提示可点击,如果必须拖拽则保持 move */\n }\n \n /* 可选:如果是拖拽状态,可以加一个类 .is-dragging 来完全移除阴影防止视觉干扰 */\n .minimized-popup-btn.is-dragging {\n animation: none;\n box-shadow: 0 4px 12px rgba(0,0,0,0.2);\n opacity: 0.9;\n }\n\n /* 各面板标题样式 */\n .popup-content-area .left-panel h4,\n .popup-content-area .middle-panel h4 {\n margin-top: 0;\n font-size: 14px;\n color: #333;\n }\n\n /* 内容区域滚动条样式 */\n .popup-content-area .user-portrait,\n .popup-content-area .smart-form-filling,\n .popup-content-area .thought-navigation,\n .popup-content-area .speech-recommendation,\n .popup-content-area .speech-to-text-content {\n overflow-y: auto;\n background:#fff;\n border-radius: 6px 6px 0 0;\n }\n\n /* 思路导航区域样式 */\n .popup-content-area .thought-navigation-container {\n display: flex;\n flex-direction: column;\n height: calc(100% - 40px);\n gap: 10px;\n }\n\n .popup-content-area .navigation-top-section {\n flex: 0 0 auto;\n }\n\n .popup-content-area .navigation-middle-section {\n height: auto;\n }\n\n .popup-content-area .navigation-bottom-section {\n flex: 0 0 auto;\n }\n\n /* 节点索引容器 */\n .popup-content-area .node-index-container {\n display: flex;\n gap: 8px;\n flex-wrap: wrap;\n padding: 8px;\n background: #fff;\n border-radius: 4px;\n border: 1px solid #e9ecef;\n }\n\n .popup-content-area .node-item {\n display: flex;\n flex-direction: column;\n align-items: center;\n padding: 6px 12px;\n cursor: pointer;\n transition: all 0.2s ease;\n min-width: 60px;\n }\n\n .popup-content-area .node-item:hover {\n border-color: #4096ff;\n transform: translateY(-2px);\n box-shadow: 0 2px 8px rgba(64, 150, 255, 0.2);\n }\n\n .popup-content-area .node-item.active {\n /*background: #4096ff;\n border-color: #4096ff;*/\n color: #389e0d;\n }\n \n\n .popup-content-area .node-index {\n font-size: 12px;\n margin-bottom: 8px;\n width: 20px;\n height: 20px;\n background: #515151;\n text-align: center;\n line-height: 20px;\n border-radius: 20px;\n color: #fff;\n }\n\n .popup-content-area .node-name {\n font-size: 11px;\n text-align: center;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n max-width: 80px;\n }\n \n .popup-content-area .node-item.active .node-index {\n background: #389e0d;\n }\n .popup-content-area .node-item.active .node-name{\n color: #389e0d;\n }\n .popup-content-area .node-item-line{\n line-height: 29px;\n }\n\n /* 当前节点内容 */\n .popup-content-area .current-node-content {\n padding: 0px 15px;\n border-radius: 6px;\n display: flex;\n flex-direction: column;\n }\n\n .popup-content-area .current-node-title {\n font-size: 12px;\n font-weight: bold;\n color: #389e0d;\n padding-bottom: 8px;\n }\n\n .popup-content-area .current-node-prompt {\n font-size: 12px;\n line-height: 1.5;\n color: #389e0d;\n word-break: break-all;\n height: 36px;\n overflow-y: auto;\n }\n\n /* 下一节点内容 */\n .popup-content-area .next-node-content {\n padding: 12px;\n border-radius: 6px;\n }\n\n .popup-content-area .next-node-title {\n font-size: 12px;\n font-weight: bold;\n color: #333;\n padding-bottom: 6px;\n }\n\n .popup-content-area .next-node-prompt {\n font-size: 12px;\n line-height: 1.4;\n color: #555;\n word-break: break-all;\n height: 36px;\n overflow-y: auto;\n }\n\n /* 结束提示 */\n .popup-content-area .end-content {\n padding: 15px;\n text-align: center;\n background: #fffbe6;\n border: 1px solid #ffe58f;\n border-radius: 6px;\n }\n\n .popup-content-area .end-message {\n font-size: 13px;\n color: #d48806;\n font-style: italic;\n }\n\n .user-portrait::-webkit-scrollbar,\n .smart-form-filling::-webkit-scrollbar,\n .thought-navigation::-webkit-scrollbar,\n .speech-recommendation::-webkit-scrollbar,\n .speech-to-text-content::-webkit-scrollbar {\n width: 6px;\n }\n\n .user-portrait::-webkit-scrollbar-track,\n .smart-form-filling::-webkit-scrollbar-track,\n .thought-navigation::-webkit-scrollbar-track,\n .speech-recommendation::-webkit-scrollbar-track,\n .speech-to-text-content::-webkit-scrollbar-track {\n background: #f1f1f1;\n }\n\n .user-portrait::-webkit-scrollbar-thumb,\n .smart-form-filling::-webkit-scrollbar-thumb,\n .thought-navigation::-webkit-scrollbar-thumb,\n .speech-recommendation::-webkit-scrollbar-thumb,\n .speech-to-text-content::-webkit-scrollbar-thumb {\n background: #c1c1c1;\n border-radius: 3px;\n }\n\n .user-portrait::-webkit-scrollbar-thumb:hover,\n .smart-form-filling::-webkit-scrollbar-thumb:hover,\n .thought-navigation::-webkit-scrollbar-thumb:hover,\n .speech-recommendation::-webkit-scrollbar-thumb:hover,\n .speech-to-text-content::-webkit-scrollbar-thumb:hover {\n background: #a8a8a8;\n }\n\n /* 消息项样式 */\n .popup-content-area .message-item {\n margin-bottom: 10px;\n padding: 8px;\n border-radius: 4px;\n }\n\n\n\n .popup-content-area .assistant-message {\n background-color: #f6f6f6;\n border-left: 3px solid #ccc;\n }\n\n .popup-content-area .role-label {\n font-weight: bold;\n margin-right: 8px;\n color: #1890ff;\n }\n\n .popup-content-area .assistant-message .role-label {\n color: #666;\n }\n \n .popup-content-area .agent-message-layout {\n display: flex;\n justify-content: flex-end;\n }\n .popup-content-area .user-message-layout{\n display: flex;\n justify-content: flex-start;\n }\n .popup-content-area .user-time{\n text-align: left;\n color: #A0A0A0;\n font-size: 12px;\n margin-bottom: 7px;\n }\n .popup-content-area .agent-time{\n text-align: right;\n color: #A0A0A0;\n font-size: 12px;\n margin-bottom: 7px;\n }\n .popup-content-area .agent-content,.popup-content-area .user-content{\n width: calc(100% - 90px);\n display: inline-block;\n }\n .popup-content-area .agent-content{\n text-align: right;\n }\n .popup-content-area .user-content{\n text-align: left;\n }\n .popup-content-area .agent-text{\n background: #f2f2f2;\n border: 1px solid #e5e5e5;\n padding: 8px 13px;\n border-radius: 10px;\n font-size: 12px;\n display: inline-block;\n text-align: left;\n }\n .popup-content-area .user-text{\n font-size: 12px;\n background: #4d8ff1;\n border: 1px solid #3b5e91;\n padding: 8px 13px;\n border-radius: 10px;\n color: #fff;\n background: #7caaef;\n border: 1px solid #4875b6;\n display: inline-block;\n }\n .popup-content-area .user-avatar{\n margin-top: 20px;\n width:30px;\n height:30px;\n background: url('data:image/png;base64,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');\n background-size: 100% 100%;\n margin-right: 5px;\n }\n .popup-content-area .agent-avatar{\n margin-top: 20px;\n width:30px;\n height:30px;\n background: url('data:image/png;base64,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');\n background-size: 100% 100%;\n margin-left: 5px;\n }\n .popup-content-area .incomplete-sentence {\n border: 1px solid red;\n transition: 1s;\n }\n \n ",document.head.appendChild(e)}}();class C{constructor(e,t=null){this.container=e,this.isOpen=!0,this.formattedSseMessages=[],this.sdkInstance=t,this.mapNodes=[],this.currentNodeIndex=0,this.qcsData=[],this.createPopup(),this.bindEvents()}clearAllContent(){const e=this.popupContainer.querySelector(".user-portrait");e&&(e.innerHTML='<h4 class="flex_two_text">客户画像</h4>');const t=this.popupContainer.querySelector(".smart-form-filling");t&&(t.innerHTML='<h4 class="flex_two_text">智能填单</h4><div>智能填单区域</div>');const n=this.popupContainer.querySelector(".thought-navigation");n&&(n.innerHTML='<h4 class="flex_two_text">思路导航</h4><div>对话思路引导区域</div>');const o=this.popupContainer.querySelector(".speech-recommendation");o&&(o.innerHTML='<h4 class="flex_two_text">话术推荐</h4>');const i=this.popupContainer.querySelector("#speech-to-text-content");i&&(i.innerHTML="");const s=this.popupContainer.querySelector("#speech-to-info");s&&(s.innerHTML='\n <div class="speech-info-item" id="speech-rate-monitor">坐席语速监测</div>\n <div class="speech-info-item" id="interrupt-monitor">坐席抢话监测</div>\n <div class="speech-info-item" id="agent-emotion-monitor">坐席情绪监测</div>\n <div class="speech-info-item" id="user-emotion-monitor">客户情绪监测</div>\n <div class="speech-info-item" id="violation-count-monitor">坐席违禁次数</div>\n <div class="speech-info-item" id="user-sentiment-monitor">客户舆情监测</div>\n '),this.formattedSseMessages=[],this.mapNodes=[],this.currentNodeIndex=0,this.currentTags=[],this.qcsData=[]}createPopup(){this.popupContainer=document.createElement("div"),this.popupContainer.className="seat-assistant-popup",this.popupContainer.style.display=this.isOpen?"flex":"none";const e=document.createElement("div");e.className="popup-title-bar";const t=document.createElement("h3");t.textContent="智能坐席助手";const n=document.createElement("button");n.innerHTML="&times;",n.className="popup-close-btn",e.appendChild(t),e.appendChild(n);const o=document.createElement("div");o.className="popup-content-area";const i=document.createElement("div");i.className="left-panel";const s=document.createElement("div");s.className="user-portrait",s.innerHTML='<h4 class="flex_two_text">客户画像</h4>';const r=document.createElement("div");r.className="smart-form-filling",r.innerHTML='<h4 class="flex_two_text">智能填单</h4><div>智能填单区域</div>',i.appendChild(s),i.appendChild(r);const a=document.createElement("div");a.className="middle-panel";const l=document.createElement("div");l.className="thought-navigation",l.innerHTML='<h4 class="flex_two_text">思路导航</h4><div>对话思路引导区域</div>';const c=document.createElement("div");c.className="speech-recommendation",c.innerHTML='<h4 class="flex_two_text">话术推荐</h4><div>推荐的话术显示区域</div>',a.appendChild(l),a.appendChild(c);const d=document.createElement("div");d.className="right-panel";const p=document.createElement("h4");p.className="flex_two_text",p.innerHTML='<span class="fw">通话监测</span> <span class="btn_gundong">暂停滚动</span>';const u=document.createElement("div");u.id="speech-to-info",u.className="speech-to-info",u.innerHTML='\n <div class="speech-info-item" id="speech-rate-monitor">坐席语速监测</div>\n <div class="speech-info-item" id="interrupt-monitor">坐席抢话监测</div>\n <div class="speech-info-item" id="agent-emotion-monitor">坐席情绪监测</div>\n <div class="speech-info-item" id="user-emotion-monitor">客户情绪监测</div>\n <div class="speech-info-item" id="violation-count-monitor">坐席违禁次数</div>\n <div class="speech-info-item" id="user-sentiment-monitor">客户舆情监测</div>\n ';const h=document.createElement("div");h.id="speech-to-text-content-wrap",h.className="speech-to-text-content-wrap",h.innerHTML='<div id="speech-to-text-content" class="speech-to-text-content"></div>',d.appendChild(p),d.appendChild(u),d.appendChild(h),o.appendChild(i),o.appendChild(a),o.appendChild(d),this.popupContainer.appendChild(e),this.popupContainer.appendChild(o),this.container.appendChild(this.popupContainer),this.minimizedBtn=document.createElement("div"),this.minimizedBtn.className="minimized-popup-btn",this.minimizedBtn.style.display=this.isOpen?"none":"flex",this.minimizedBtn.textContent="坐席助手",this.container.appendChild(this.minimizedBtn)}bindEvents(){this.popupContainer.querySelector(".popup-close-btn").addEventListener("click",()=>{this.togglePopup()}),this.minimizedBtn.addEventListener("click",()=>{this.togglePopup()}),this.bindDragEvents()}bindDragEvents(){let e=!1,t=0,n=0,o=0,i=0;const s=this.popupContainer.querySelector(".popup-title-bar");s&&(s.addEventListener("mousedown",r=>{if(r.target===s||"H3"===r.target.tagName){e=!0,t=r.clientX,n=r.clientY;const s=this.popupContainer.getBoundingClientRect();o=s.left,i=s.top,r.preventDefault()}}),document.addEventListener("mousemove",s=>{if(!e)return;const r=s.clientX-t,a=s.clientY-n;let l=o+r,c=i+a;const d=window.innerWidth,p=window.innerHeight,u=this.popupContainer.getBoundingClientRect(),h=u.width,m=u.height;l=Math.max(0,Math.min(l,d-h+750)),c=Math.max(0,Math.min(c,p-m+300)),this.popupContainer.style.position="fixed",this.popupContainer.style.left=l+"px",this.popupContainer.style.top=c+"px",this.popupContainer.style.right="auto",this.popupContainer.style.bottom="auto"}),document.addEventListener("mouseup",t=>{e&&(e=!1,t.preventDefault())}),this.bindMinimizedBtnDrag())}bindMinimizedBtnDrag(){let e=!1,t=0,n=0;this.minimizedBtn.addEventListener("mousedown",o=>{e=!0;const i=this.minimizedBtn.getBoundingClientRect();t=o.clientX-i.left,n=o.clientY-i.top,o.preventDefault()}),document.addEventListener("mousemove",o=>{if(!e)return;const i=o.clientX-t,s=o.clientY-n,r=window.innerWidth,a=window.innerHeight,l=Math.max(0,Math.min(i,r-60)),c=Math.max(0,Math.min(s,a-60));this.minimizedBtn.style.left=l+"px",this.minimizedBtn.style.top=c+"px",this.minimizedBtn.style.right="auto",this.minimizedBtn.style.bottom="auto"}),document.addEventListener("mouseup",t=>{e=!1,t.preventDefault()})}togglePopup(){this.isOpen=!this.isOpen,this.isOpen?(this.popupContainer.style.display="flex",this.minimizedBtn.style.display="none",document.getElementById("seat-assistant-auto-container").classList.remove("disable-pointer-events")):(this.popupContainer.style.display="none",this.minimizedBtn.style.display="flex",document.getElementById("seat-assistant-auto-container").classList.add("disable-pointer-events"))}setCategories(e){this.categories=e}setMapNodes(e){if(!Array.isArray(e))return void console.warn("思路导航数据格式错误,应为数组");e.every(e=>"number"==typeof e.id&&"string"==typeof e.template_id&&"string"==typeof e.map_name&&"string"==typeof e.map_prompt)?(this.mapNodes=e,this.currentNodeIndex=0,this.renderThoughtNavigation()):console.warn("思路导航节点数据结构不正确")}setQcsData(e){e&&Array.isArray(e)?(this.qcsData=e,console.log("📋 popup组件质检配置已设置:",e),this.initMonitorDisplay(e)):console.warn("传入的QCS数据无效,应为数组")}initMonitorDisplay(e){e&&0!==e.length&&e.forEach(e=>{const{item_target:t,item_type:n,id:o}=e;let i=null;if(1===t?1===n?i="speech-rate-monitor":2===n?i="agent-emotion-monitor":3===n&&(i="violation-count-monitor"):2===t&&(4===n?i="user-emotion-monitor":5===n&&(i="user-sentiment-monitor")),i){const e=document.getElementById(i);e&&e.setAttribute("data-qcs-id",o)}})}getMonitorName(e){if(!this.qcsData||0===this.qcsData.length)return"";const t={"speech-rate-monitor":{item_target:1,item_type:1},"agent-emotion-monitor":{item_target:1,item_type:2},"violation-count-monitor":{item_target:1,item_type:3},"user-emotion-monitor":{item_target:2,item_type:4},"user-sentiment-monitor":{item_target:2,item_type:5}}[e];if(!t)return"";const n=this.qcsData.find(e=>e.item_target===t.item_target&&e.item_type===t.item_type);return n?n.item_name:""}renderThoughtNavigation(){const e=this.popupContainer.querySelector(".thought-navigation");if(!e)return void console.warn("未找到思路导航容器");if(!this.mapNodes||0===this.mapNodes.length)return void(e.innerHTML='<h4 class="flex_two_text">思路导航</h4><div>对话思路引导区域</div>');const t=this.mapNodes[this.currentNodeIndex],n=this.mapNodes[this.currentNodeIndex+1]||null,o=document.createElement("div");o.className="thought-navigation-container";const i=document.createElement("div");i.className="navigation-top-section";const s=document.createElement("div");s.className="node-index-container",this.mapNodes.forEach((e,t)=>{const n=document.createElement("div");n.className="node-item "+(t===this.currentNodeIndex?"active":""),n.innerHTML=`\n <div class="node-index">${t+1}</div>\n <div class="node-name">${e.map_name}</div>\n `,n.addEventListener("click",()=>{this.currentNodeIndex=t,this.renderThoughtNavigation()});const o=document.createElement("div");o.className="node-item-line",o.innerHTML="---",s.appendChild(n),t!==this.mapNodes.length-1&&s.appendChild(o)}),i.appendChild(s);const r=document.createElement("div");r.className="navigation-middle-section";const a=document.createElement("div");a.className="current-node-content",a.innerHTML=`\n <div class="current-node-title">当前节点:${t.map_name}</div>\n <div class="current-node-prompt">${t.map_prompt}</div>\n `,r.appendChild(a);const l=document.createElement("div");if(l.className="navigation-bottom-section",n){const e=document.createElement("div");e.className="next-node-content",e.innerHTML=`\n <div class="next-node-title">下一步:${n.map_name}</div>\n <div class="next-node-prompt">${n.map_prompt}</div>\n `,l.appendChild(e)}else{const e=document.createElement("div");e.className="end-content",e.innerHTML='<div class="end-message">已到达最后一个节点</div>',l.appendChild(e)}o.appendChild(i),o.appendChild(r),o.appendChild(l),e.innerHTML='<h4 class="flex_two_text">思路导航</h4>',e.appendChild(o)}nextNode(){this.currentNodeIndex<this.mapNodes.length-1&&(this.currentNodeIndex++,this.renderThoughtNavigation())}prevNode(){this.currentNodeIndex>0&&(this.currentNodeIndex--,this.renderThoughtNavigation())}async getKnowledgeRecommendation(e){try{const t={query:e,categorys:[{category_id:this.categories?this.categories.category_id:"",top:this.categories?this.categories.top_n:5,score:.1}]};if(this.sdkInstance&&"function"==typeof this.sdkInstance.post){return await this.sdkInstance.post("/api/v1/agent/ccms/assist/xy-sdk/prompt-recommend",t)}{console.warn("SDK instance not available, using direct fetch");const e=await fetch("/api/v1/agent/ccms/assist/xy-sdk/prompt-recommend",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)});if(!e.ok)throw new Error(`HTTP error! status: ${e.status}`);return await e.json()}}catch(t){return console.error("获取知识推荐失败:",t),null}}lzprenderSpeechRecommendation(e){if(!e||!e.result)return;const t=this.popupContainer.querySelector(".speech-recommendation");if(!t)return;if(0===e.result.length)return;let n=t.querySelector(".recommendation-container");if(!n){n=document.createElement("div"),n.className="recommendation-container";const e=document.createElement("div");e.className="recommendation-tabs-wrap",e.innerHTML='<div class="jphs-tit">客户意图</div><div class="recommendation-tabs"></div>';const o=document.createElement("div");o.className="recommendation-content";const i=document.createElement("div");i.className="topNewRecommendation-content",n.appendChild(e),n.appendChild(o),n.appendChild(i),t.appendChild(n)}const o=n.querySelector(".recommendation-tabs"),i=n.querySelector(".recommendation-content"),s=n.querySelector(".topNewRecommendation-content"),r={};if(o.querySelectorAll(".recommendation-tab").forEach(e=>{const t=e.getAttribute("data-entry-id");t&&(r[t]=e)}),e.result.forEach((e,t)=>{if(!r[e.entry_id]){const t=document.createElement("div");t.className="recommendation-tab",t.textContent=e.entry_title,t.setAttribute("data-entry-id",e.entry_id),t.addEventListener("click",()=>{o.querySelectorAll(".recommendation-tab").forEach(e=>{e.classList.remove("active")}),t.classList.add("active"),i.innerHTML=`\n <div class="recommendation-item">\n <div class="recommendation-header">\n <h5>${e.entry_title}</h5>\n <div class="recommendation-meta">\n ${e.source?`<span class="source">来源: ${e.source}</span>`:""}\n <span class="source">阈值: ${e.max_score}</span>\n <span class="entry-update-time">更新时间: ${e.entry_id}</span>\n </div>\n </div>\n <div class="recommendation-content-text">\n ${e.content}\n </div>\n <div class="recommendation-score" style="display: none">\n \n </div>\n \n </div>\n `}),o.prepend(t),1!==o.children.length||o.querySelector(".active")||t.click()}}),e.result.length>0&&(s.innerHTML=`<div class="new_recommend_title">最新推荐: ${e.result[0].entry_title}</div><div class="new_recommend_content">${e.result[0].content}</div>`),o.children.length>0&&!o.querySelector(".active")){const e=o.firstElementChild;e&&e.click()}}renderSpeechRecommendation(e){var t,n;if(!(null==e?void 0:e.result)||!Array.isArray(e.result)||0===e.result.length)return void console.warn("[lzp_recomm] 无有效的推荐数据");const o=null==(t=this.popupContainer)?void 0:t.querySelector(".speech-recommendation");if(!o)return void console.warn("[lzp_recomm] 未找到语音推荐根容器");let i=o.querySelector(".recommendation-container");if(!i){i=document.createElement("div"),i.className="recommendation-container";const e=document.createElement("div");e.className="recommendation-tabs-wrap",e.innerHTML='\n <div class="jphs-tit">客户意图</div>\n <div class="recommendation-tabs"></div>\n ';const t=document.createElement("div");t.className="recommendation-right-wrap";const n=document.createElement("div");n.className="recommendation-content";const s=document.createElement("div");s.className="topNewRecommendation-content",t.append(n,s),i.append(e,t),o.append(i)}const s=i.querySelector(".recommendation-tabs"),r=i.querySelector(".recommendation-content"),a=i.querySelector(".topNewRecommendation-content"),l={};s.querySelectorAll(".recommendation-tab").forEach(e=>{const t=e.dataset.entryId;t&&(l[t]=e)}),this.lzp_recomm_isClickLocked=this.lzp_recomm_isClickLocked||!1,e.result.forEach(e=>{if(l[e.entry_id])return;const{entry_id:t,entry_title:n=""}=e||{},o=document.createElement("div");o.className="recommendation-tab",o.textContent=n,o.dataset.entryId=t,o.addEventListener("click",()=>{this.lzp_recomm_handleTabClick(o,s,r,e)}),s.prepend(o)});const c=e.result[0];c&&(a.innerHTML=`\n <div class="new_recommend_title">最新推荐: ${c.entry_title}</div>\n <div class="new_recommend_content">${c.content}</div>\n `),!s.querySelector(".active")&&s.children.length>0&&(null==(n=s.firstElementChild)||n.click())}lzp_recomm_handleTabClick(e,t,n,o){if(!e||!t||!n||this.lzp_recomm_isClickLocked)return;this.lzp_recomm_isClickLocked=!0,e.classList.add("active"),t.querySelectorAll(".recommendation-tab").forEach(t=>{t!==e&&t.classList.remove("active")}),n.innerHTML="";const{entry_title:i="",content:s="",source:r="",max_score:a="",entry_id:l="",entry_update_time:c=""}=o||{};n.innerHTML=`\n <div class="recommendation-item">\n <div class="recommendation-header">\n <h5>${this.lzp_recomm_escapeHtml(i)}</h5>\n <div class="recommendation-meta">\n ${r?`<span class="source">来源: ${this.lzp_recomm_escapeHtml(r)}</span>`:""}\n <span class="source">阈值: ${this.lzp_recomm_escapeHtml(String(a))}</span>\n <span class="entry-update-time">更新时间: ${this.lzp_recomm_escapeHtml(c)}</span>\n </div>\n </div>\n <div class="recommendation-content-text">\n ${this.lzp_recomm_escapeHtml(s)}\n </div>\n <div class="recommendation-score" style="display: none">\n </div>\n </div>\n `,this.lzp_recomm_isClickLocked=!1}lzp_recomm_escapeHtml(e){return"string"!=typeof e?"":e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#039;")}handleSseData(e){const{role:t,text:n,sentence_end:o}=e;this.upHtml(e),"user"===t&&!0===o&&(this.getKnowledgeRecommendation(n).then(e=>{e&&0===e.code&&e.result&&this.renderSpeechRecommendation(e)}),this.getWorkOrderFilling(n).then(e=>{e&&0===e.code&&e.result&&this.renderWorkOrderFilling(e.result)})),"agent"===t&&!0===o&&this.getMapGuideLight(n).then(e=>{e&&0===e.code&&e.result&&this.renderMapGuideLight(e.result)}),"agent"===t&&this.updateMonitorInfo(e)}updateMonitorInfo(e){if(void 0!==e.speech_rate&&null!==e.speech_rate){const t=document.getElementById("speech-rate-monitor");if(t){const n=this.getMonitorName("speech-rate-monitor")||"坐席语速",o=e.speech_rate,i=this.getSpeechRateRange(),{min_speed:s,max_speed:r}=i;let a=!0;s&&r&&(a=o>=s&&o<=r);const l=a?"green":"red",c=a?"正常":"异常",d=`语速:${o} 字/分钟,正常范围:${s||"-"} ~ ${r||"-"}`;t.innerHTML=`<span style="color: ${l}" title="${d}">${n}:${c}</span>`}}if(void 0!==e.is_interrupt&&null!==e.is_interrupt){const t=document.getElementById("interrupt-monitor");if(t){const n=e.is_interrupt,o=!0===n?"red":"green",i=!0===n?"异常":"正常";t.innerHTML=`<span style="color: ${o}">坐席抢话:${i}</span>`}}if(void 0!==e.agent_emotion&&null!==e.agent_emotion){const t=document.getElementById("agent-emotion-monitor");if(t){const n=this.getMonitorName("agent-emotion-monitor")||"坐席情绪";t.textContent=`${n}:${e.agent_emotion}`}}if(void 0!==e.user_emotion&&null!==e.user_emotion){const t=document.getElementById("user-emotion-monitor");if(t){const n=this.getMonitorName("user-emotion-monitor")||"客户情绪";t.textContent=`${n}:${e.user_emotion}`}}if(void 0!==e.violation_count&&null!==e.violation_count){const t=document.getElementById("violation-count-monitor");if(t){const n=this.getMonitorName("violation-count-monitor")||"坐席违禁词";t.textContent=`${n}:${e.violation_count}`}}if(void 0!==e.user_sentiment&&null!==e.user_sentiment){const t=document.getElementById("user-sentiment-monitor");if(t){const n=this.getMonitorName("user-sentiment-monitor")||"客户舆情";t.textContent=`${n}:${e.user_sentiment}`}}}getSpeechRateRange(){if(!this.qcsData||0===this.qcsData.length)return{min_speed:null,max_speed:null};const e=this.qcsData.find(e=>1===e.item_target&&1===e.item_type);if(!e||!e.item_rule)return{min_speed:null,max_speed:null};try{const t=JSON.parse(e.item_rule);return{min_speed:t.min_speed||null,max_speed:t.max_speed||null}}catch(t){return console.warn("解析语速配置规则失败:",t),{min_speed:null,max_speed:null}}}async getMapGuideLight(e){try{if(!this.sdkInstance)return console.warn("SDK实例不存在,无法请求思路导航点亮"),null;const t=this.sdkInstance.skill_queue_list;let n="";if(t&&t.length>0&&(n=t[0].map_guide_template_id||""),!n)return console.warn("缺少map_guide_template_id参数,无法请求思路导航点亮"),null;const o=this.buildHistoryChat(),i={map_guide_template_id:n,answer:e,finished_nodes:this.getFinishedNodes(),history_chat:o};console.log("思路导航点亮请求参数",i);return await this.sdkInstance.post("/api/v1/agent/ccms/assist/xy-sdk/map-light",i)}catch(t){return console.error("获取思路导航点亮数据失败:",t),null}}getFinishedNodes(){if(!this.mapNodes||0===this.mapNodes.length)return"";return this.mapNodes.slice(0,this.currentNodeIndex).map(e=>e.map_name).filter(e=>e).join(",")}renderMapGuideLight(e){if(!e)return;const{hit_node_name:t,hit_node_id:n,hit_prompt:o,next_node:i}=e;console.log("思路导航点亮接口返回:",e),console.log("当前mapNodes:",this.mapNodes);let s=-1;null!=n&&(s=this.mapNodes.findIndex(e=>Number(e.id)===Number(n)||String(e.id)===String(n)),console.log("通过ID查找结果, hit_node_id:",n,", targetIndex:",s)),-1===s&&t&&(s=this.mapNodes.findIndex(e=>e.map_name===t||!(!e.map_name.includes(t)&&!t.includes(e.map_name))),console.log("通过名称查找结果, hit_node_name:",t,", targetIndex:",s)),-1!==s?(this.currentNodeIndex=s,this.renderThoughtNavigation(),console.log("思路导航点亮成功:",t||n,"节点索引:",s),o&&(this.mapNodes[s].map_prompt=o,this.renderThoughtNavigation(),console.log("已更新话术提示:",o))):(console.warn("未找到匹配的思路导航节点:",t,n),console.warn("当前mapNodes数据:",JSON.stringify(this.mapNodes))),null!=i&&""!==i&&console.log("下一步建议节点ID:",i)}updateCurrentNodePrompt(e){!e||this.currentNodeIndex<0||this.currentNodeIndex>=this.mapNodes.length||(this.mapNodes[this.currentNodeIndex].map_prompt=e,this.renderThoughtNavigation())}async getWorkOrderFilling(e){try{if(!this.sdkInstance)return console.warn("SDK实例不存在,无法请求智能填单"),null;const t=this.sdkInstance.skill_queue_list;let n="";if(t&&t.length>0&&(n=t[0].work_order_template_id||""),!n)return console.warn("缺少work_order_template_id参数,无法请求智能填单"),null;const o=this.buildHistoryChat();console.log("历史数据",o),console.log("sseMessageHistory原始数据",this.sdkInstance.sseMessageHistory);const i={query:e,work_order_template_id:n,history_chat:o};console.log("智能填单请求参数",i);return await this.sdkInstance.post("/api/v1/agent/ccms/assist/xy-sdk/add-work-order",i)}catch(t){return console.error("获取智能填单数据失败:",t),null}}buildHistoryChat(){if(!this.sdkInstance||!this.sdkInstance.sseMessageHistory)return[];return this.sdkInstance.sseMessageHistory.filter(e=>!0===e.sentence_end).map(e=>({role:e.role,content:e.text||""}))}renderWorkOrderFilling(e){if(!e)return;const{work_order:t,tags:n}=e;t&&this.fillWorkOrderFields(t),n&&this.updateUserPortrait(n)}fillWorkOrderFields(e){if(!e||""===e.trim())return;const t=e.split(",").map(e=>{const t=e.split(":");return{key:t[0]?t[0].trim():"",value:t[1]?t[1].trim():""}}).filter(e=>""!==e.key&&'""'!==e.key&&"''"!==e.key&&""!==e.value&&'""'!==e.value&&"''"!==e.value);if(0===t.length)return;const n=this.popupContainer.querySelectorAll(".form-filling-row");n&&0!==n.length&&n.forEach(e=>{const n=e.querySelector(".form-filling-row-item.name");if(!n)return;const o=n.textContent.replace("*","").trim(),i=t.find(e=>e.key===o);if(!i)return;const s=e.querySelector(".form-filling-row-item.input");if(!s)return;const r=s.querySelector("input, textarea");r&&i.value&&(r.value=i.value,r.style.transition="background-color 0.3s",r.style.backgroundColor="#e6f7ff",setTimeout(()=>{r.style.backgroundColor=""},1e3))})}updateUserPortrait(e){const t=this.popupContainer.querySelector(".user-portrait");if(!t)return;if(!e||["","无","无标签","null","undefined","none"].includes(e.trim().toLowerCase()))return;let n=t.querySelector(".user-tags-container");if(n||(n=document.createElement("div"),n.className="user-tags-container",t.appendChild(n)),e&&"无标签"!==e&&"无"!==e){const t=e.split(",").map(e=>e.trim()).filter(e=>e);const o=[...this.currentTags||[],...t],i=[...new Set(o)];this.currentTags=i;const s=i.map(e=>`<span class="user-tag-item">${e}</span>`).join("");n.innerHTML=`<div class="user-tags-list">${s}</div>`}}setFormattedSseMessages(e){const t=e(this.formattedSseMessages);this.formattedSseMessages=t,this.updateSpeechToTextDisplay()}updateSpeechToTextDisplay(){const e=document.getElementById("speech-to-text-content");e&&(e.innerHTML="",this.formattedSseMessages.forEach((t,n)=>{const o=t.data||t,i=o.role,s=o.text,r=o.sentence_end,a=o.times,l=document.createElement("div");if(l.className=`message-item ${i}-message`,!1===r&&l.classList.add("incomplete-sentence"),"user"===i){const e=document.createElement("div");e.className="user-message-layout";const t=document.createElement("div");t.className="user-avatar";const n=document.createElement("div");n.className="user-content";const o=document.createElement("div");o.className="user-time",o.textContent=a;const i=document.createElement("div");i.className="user-text",i.textContent=s;const r=document.createElement("div");r.className="user-extra-info",n.appendChild(o),n.appendChild(i),n.appendChild(r),e.appendChild(t),e.appendChild(n),l.appendChild(e)}else{const e=document.createElement("div");e.className="agent-message-layout";const t=document.createElement("div");t.className="agent-content";const n=document.createElement("div");n.className="agent-time",n.textContent=a;const o=document.createElement("div");o.className="agent-text",o.textContent=s;const i=document.createElement("div");i.className="agent-extra-info",t.appendChild(n),t.appendChild(o),t.appendChild(i);const r=document.createElement("div");r.className="agent-avatar",e.appendChild(t),e.appendChild(r),l.appendChild(e)}e.appendChild(l)}))}upHtml(e){const t=document.getElementById("speech-to-text-content");if(t)if("user"===e.role&&!1===e.sentence_end){const n=t.querySelectorAll(".user-message");if(n.length>0){const o=n[n.length-1];if(o.classList.contains("incomplete-sentence")){const t=o.querySelector(".user-text");t&&(t.textContent=e.text)}else this.appendMessageToDisplay(t,e)}else this.appendMessageToDisplay(t,e)}else if("agent"===e.role&&!1===e.sentence_end){const n=t.querySelectorAll(".agent-message");if(n.length>0){const o=n[n.length-1];if(o.classList.contains("incomplete-sentence")){const t=o.querySelector(".agent-text");t&&(t.textContent=e.text)}else this.appendMessageToDisplay(t,e)}else this.appendMessageToDisplay(t,e)}else if("user"===e.role&&!0===e.sentence_end){const n=t.querySelectorAll(".user-message");if(n.length>0){const o=n[n.length-1];if(o.classList.contains("incomplete-sentence")){const t=o.querySelector(".user-text");t&&(t.textContent=e.text),o.classList.remove("incomplete-sentence")}else this.appendMessageToDisplay(t,e)}else this.appendMessageToDisplay(t,e)}else if("agent"===e.role&&!0===e.sentence_end){const n=t.querySelectorAll(".agent-message");if(n.length>0){const o=n[n.length-1];if(o.classList.contains("incomplete-sentence")){const t=o.querySelector(".agent-text");t&&(t.textContent=e.text),o.classList.remove("incomplete-sentence")}else this.appendMessageToDisplay(t,e)}else this.appendMessageToDisplay(t,e)}}appendMessageToDisplay(e,t){const n=document.createElement("div");if(n.className=`message-item ${t.role}-message`,!1===t.sentence_end&&n.classList.add("incomplete-sentence"),"user"===t.role){const e=document.createElement("div");e.className="user-message-layout";const o=document.createElement("div");o.className="user-avatar";const i=document.createElement("div");i.className="user-content";const s=document.createElement("div");s.className="user-time",s.textContent=t.times||"";const r=document.createElement("div");r.className="user-text",r.textContent=t.text;const a=document.createElement("div");a.className="user-extra-info",i.appendChild(s),i.appendChild(r),i.appendChild(a),e.appendChild(o),e.appendChild(i),n.appendChild(e)}else{const e=document.createElement("div");e.className="agent-message-layout";const o=document.createElement("div");o.className="agent-content";const i=document.createElement("div");i.className="agent-time",i.textContent=t.times||"";const s=document.createElement("div");s.className="agent-text",s.textContent=t.text;const r=document.createElement("div");r.className="agent-extra-info",o.appendChild(i),o.appendChild(s),o.appendChild(r);const a=document.createElement("div");a.className="agent-avatar",e.appendChild(o),e.appendChild(a),n.appendChild(e)}e.appendChild(n);const o=document.getElementById("speech-to-text-content-wrap");o&&(o.scrollTop=o.scrollHeight)}initWorkOrderFields(){this.workOrderFields=[]}setWorkOrderFields(e){Array.isArray(e)?(this.workOrderFields=e,this.renderWorkOrderFields()):console.warn("智能填单字段数据格式错误,应为数组")}renderWorkOrderFields(){const e=this.popupContainer.querySelector(".smart-form-filling");if(!e)return void console.warn("未找到智能填单容器");if(!this.workOrderFields||0===this.workOrderFields.length)return void(e.innerHTML='<h4 class="flex_two_text">智能填单</h4><div>智能填单区域</div>');e.innerHTML='<h4 class="flex_two_text">智能填单</h4>';const t=document.createElement("div");t.className="form-filling-container";const n=document.createElement("div");n.className="form-filling-header",n.innerHTML='\n <div class="form-filling-header-item seq">序号</div>\n <div class="form-filling-header-item name">内容</div>\n <div class="form-filling-header-item input">信息提取</div>\n <div class="form-filling-header-item action">操作</div>\n ',t.appendChild(n);const o=document.createElement("div");o.className="form-filling-body",this.workOrderFields.forEach((e,t)=>{const n=document.createElement("div");n.className="form-filling-row";const i=document.createElement("div");i.className="form-filling-row-item seq",i.textContent=t+1,n.appendChild(i);const s=document.createElement("div");s.className="form-filling-row-item name";const r=1===e.require?'<span class="required-mark">*</span>':"";s.innerHTML=`${r}${e.field_name}`,s.title=e.description||"",n.appendChild(s);const a=document.createElement("div");a.className="form-filling-row-item input",a.readOnly=!0,this.renderFieldInput(a,e),n.appendChild(a);const l=document.createElement("div");l.className="form-filling-row-item action";const c=document.createElement("button");c.className="copy-btn",c.type="button";const d=document.createElement("img");d.src="https://files.xinyaoai.com/web/img/ivsSDK/copy.png",d.style.width="16px",d.style.height="16px",d.style.border="none",d.style.objectFit="contain",d.style.pointerEvents="none",c.appendChild(d),c.addEventListener("click",e=>{e.preventDefault();const t=c.closest(".form-filling-row");if(!t)return;const n=t.querySelector(".form-filling-row-item.input");if(!n)return;const o=n.querySelector("input, textarea, select");if(!o)return;const i=o.value;this.copyFieldValue(i)}),l.appendChild(c),n.appendChild(l),o.appendChild(n)}),t.appendChild(o);const i=document.createElement("div");i.className="form-filling-footer";const s=document.createElement("button");s.className="submit-btn",s.textContent="一键填单",s.addEventListener("click",()=>{this.submitWorkOrder()}),i.appendChild(s),t.appendChild(i),e.appendChild(t)}renderFieldInput(e,t){const{input_type:n,data_opt:o,default_value:i,input_tips:s,description:r}=t;switch(n){case"input":const n=document.createElement("input");n.type="text",n.value=i||"",n.placeholder=s||"",e.appendChild(n);break;case"text_area":const r=document.createElement("textarea");r.value=i||"",r.placeholder=s||"",e.appendChild(r);break;case"radio":const a=document.createElement("div");if(o){o.split(",").forEach((e,n)=>{const o=document.createElement("label");o.style.marginRight="10px";const s=document.createElement("input");s.type="radio",s.name=`field_${t.field_id}`,s.value=e.trim(),s.checked=e.trim()===i,o.appendChild(s),o.appendChild(document.createTextNode(e.trim())),a.appendChild(o)})}e.appendChild(a);break;case"select":const l=document.createElement("select");if(o){o.split(",").forEach(e=>{const t=document.createElement("option");t.value=e.trim(),t.textContent=e.trim(),e.trim()===i&&(t.selected=!0),l.appendChild(t)})}e.appendChild(l);break;case"checkbox":const c=document.createElement("div");if(o){o.split(",").forEach((e,t)=>{const n=document.createElement("label");n.style.marginRight="10px";const o=document.createElement("input");o.type="checkbox",o.value=e.trim(),n.appendChild(o),n.appendChild(document.createTextNode(e.trim())),c.appendChild(n)})}e.appendChild(c);break;case"date_picker":const d=document.createElement("input");d.type="date",d.value=i||"",e.appendChild(d);break;case"date_range_picker":const p=document.createElement("div"),u=document.createElement("input");u.type="date",u.placeholder="开始日期",p.appendChild(u),p.appendChild(document.createTextNode(" - "));const h=document.createElement("input");h.type="date",h.placeholder="结束日期",p.appendChild(h),e.appendChild(p);break;case"date_picker_time":const m=document.createElement("input");m.type="datetime-local",m.value=i||"",e.appendChild(m);break;case"input_number":const g=document.createElement("input");g.type="number",g.value=i||"",g.placeholder=s||"",e.appendChild(g);break;default:const f=document.createElement("input");f.type="text",f.value=i||"",f.placeholder=s||"",e.appendChild(f)}}copyFieldValue(e){e?navigator.clipboard.writeText(e).then(()=>{console.log("已复制字段值:",e)}).catch(e=>{console.error("复制失败:",e)}):console.log("输入框为空,不复制")}submitWorkOrder(){console.log("提交工单")}destroy(){if(this.popupContainer){const e=this.popupContainer.querySelector(".popup-close-btn");e&&e.removeEventListener("click",this.togglePopup.bind(this))}this.minimizedBtn&&(this.minimizedBtn.removeEventListener("click",this.togglePopup.bind(this)),document.removeEventListener("mousemove",this.handleMouseMove),document.removeEventListener("mouseup",this.handleMouseUp)),this.popupContainer&&this.popupContainer.parentNode&&this.popupContainer.parentNode.removeChild(this.popupContainer),this.minimizedBtn&&this.minimizedBtn.parentNode&&this.minimizedBtn.parentNode.removeChild(this.minimizedBtn),this.container=null,this.popupContainer=null,this.minimizedBtn=null,this.sdkInstance=null,this.formattedSseMessages=[],this.mapNodes=[],this.currentNodeIndex=0,this.workOrderFields=[],console.log("SeatAssistantPopup组件已销毁")}initWorkOrderFields(){this.workOrderFields=[]}setWorkOrderFields(e){Array.isArray(e)?(this.workOrderFields=e,this.renderWorkOrderFields()):console.warn("智能填单字段数据格式错误,应为数组")}}"undefined"!=typeof module&&module.exports?module.exports=C:"undefined"!=typeof window&&(window.SeatAssistantPopup=C);module.exports=class{constructor(e={}){this.url=e.url,this.app_key=e.app_key,this.app_secret=e.app_secret,this.onMessage=e.onMessage||(()=>{}),this.onError=e.onError||(()=>{}),this.onOpen=e.onOpen||(()=>{}),this.onAudioData=e.onAudioData||(()=>{}),this.onAudioNegotiationSuccess=e.onAudioNegotiationSuccess||(()=>{}),this.onConnectSSE=e.onConnectSSE||(()=>{}),this.onCreateSeatAssistantPopup=e.onCreateSeatAssistantPopup||(()=>{}),this.autoCreatePopup=e.autoCreatePopup||!1,this.eventSource=null,this.categorys=null,this.skill_queue_list=this.validateSkillQueueList(e.skill_queue_list||[]),this.negotiationResult=null,this.seatAssistantPopup=null,this.autoPopupContainer=null,this.sseMessageHistory=[],this.enableDownloadSseData=e.enableDownloadSseData||!1,this.enableSaveDialogs=e.enableSaveDialogs||!1,this.saveDialogParams={app_id:e.app_id||"",call_id:e.call_id||"",session_id:e.session_id||""},this.autoCreatePopup&&this.initSeatAssistantPopup()}generateAuthToken(){const e=Math.floor(Date.now()/1e3);return`${this.app_key}:${e}:${b(`${this.app_secret}:${e}`)}`}getAuthHeaders(){return{Authorization:`${this.generateAuthToken()}`,"Content-Type":"application/json"}}clearSeatAssistantPopupContent(){this.sseMessageHistory=[],this.seatAssistantPopup&&this.seatAssistantPopup.clearAllContent()}async post(e,t){const n=this.generateAuthToken(),o=await fetch(`${this.url}${e}`,{method:"POST",headers:{Authorization:`${n}`,"Content-Type":"application/json","User-Agent":"XY-ASSIST-SDK"},body:JSON.stringify(t)});if(!o.ok){const e=await o.text(),t=new Error(`HTTP error! status: ${o.status}, message: ${e}`);throw this.onError&&this.onError({type:"http_error",error:t,status:o.status,timestamp:Date.now()}),t}return await o.json()}async audioNegotiation(e){const t=await this.post("/api/v1/agent/ccms/assist/xy-sdk/audio-nego",e);return this.negotiationResult=t,this.onAudioNegotiationSuccess&&this.onAudioNegotiationSuccess({type:"audio_negotiation_success",data:t,timestamp:Date.now()}),this.autoCreatePopup&&this.autoCreateSeatAssistantPopup(),t}connectSSEWithNegotiationResult(){if(!this.negotiationResult||!this.negotiationResult.result){const e=new Error("没有有效的协商结果,请先执行音频协商");throw this.onError&&this.onError({type:"connection_error",error:e,timestamp:Date.now()}),e}const{sse_addr:e,client_id:t,timestamp:n,token:o}=this.negotiationResult.result;if(!e||!t){const e=new Error("协商结果中缺少sse_addr或client_id");throw this.onError&&this.onError({type:"connection_error",error:e,timestamp:Date.now()}),e}const i=`http://${e}/sse?client_id=${t}&timestamp=${n}&token=${o}`;this.connectSSEWithURL(i),this.onConnectSSE&&this.onConnectSSE({type:"sse_connection_with_negotiation",sseUrl:i,client_id:t,sse_addr:e,timestamp:Date.now()})}connectSSEWithURL(e){this.eventSource=new a.EventSourcePolyfill(e,{heartbeatTimeout:6e5,withCredentials:!1}),this.eventSource.onmessage=e=>{const t=JSON.parse(e.data);this.onMessage({type:"sse_message",data:t,timestamp:Date.now()}),this.handleSseMessageForPopup(t),this.recordSseMessage(t)},this.eventSource.onerror=e=>{this.onError({type:"sse_error",error:e,timestamp:Date.now()})},this.eventSource.onopen=()=>{this.onOpen()}}connectSSE(e=!0){const t=this;if(e&&this.negotiationResult&&this.negotiationResult.result&&this.negotiationResult.result.sse_addr)this.autoCreatePopup&&!this.hasSeatAssistantPopup()&&this.autoCreateSeatAssistantPopup(),this.connectSSEWithNegotiationResult();else{const e=this.generateAuthToken(),n=`${this.url}/api/v1/agent/sse?auth=${e}`;this.autoCreatePopup&&!this.hasSeatAssistantPopup()&&this.autoCreateSeatAssistantPopup(),this.eventSource=new a.EventSourcePolyfill(n,{heartbeatTimeout:6e5,withCredentials:!1}),this.eventSource.onmessage=function(e){const n=JSON.parse(e.data);t.onMessage({type:"sse_message",data:n,timestamp:Date.now()}),t.handleSseMessageForPopup(n),t.recordSseMessage(n)},this.eventSource.onerror=function(e){t.onError({type:"sse_error",error:e,timestamp:Date.now()})},this.eventSource.onopen=function(){t.onOpen()}}}disconnectSSE(){this.eventSource&&(this.eventSource.close(),this.eventSource=null)}handleSseMessageForPopup(e){if(e.role&&e.text&&void 0!==e.sentence_end&&this.seatAssistantPopup){const t=new Date,n=`${t.getFullYear()}-${String(t.getMonth()+1).padStart(2,"0")}-${String(t.getDate()).padStart(2,"0")} ${String(t.getHours()).padStart(2,"0")}:${String(t.getMinutes()).padStart(2,"0")}:${String(t.getSeconds()).padStart(2,"0")}`;e.times=n,this.seatAssistantPopup.handleSseData(e)}}initSeatAssistantPopup(){if(!this.seatAssistantPopup){const e=this.ensurePopupContainer();this.seatAssistantPopup=new C(e,this),this.hideSeatAssistantPopup(),this.seatAssistantPopup&&"function"==typeof this.seatAssistantPopup.initWorkOrderFields&&this.seatAssistantPopup.initWorkOrderFields(),this.onCreateSeatAssistantPopup&&this.onCreateSeatAssistantPopup({type:"seat_assistant_popup_created",popup:this.seatAssistantPopup,timestamp:Date.now()})}}ensurePopupContainer(){return this.autoPopupContainer||(this.autoPopupContainer=document.createElement("div"),this.autoPopupContainer.id="seat-assistant-auto-container",document.getElementById("root").appendChild(this.autoPopupContainer)),this.autoPopupContainer}hasSeatAssistantPopup(){return!!this.seatAssistantPopup}showSeatAssistantPopup(){this.seatAssistantPopup&&(this.seatAssistantPopup.isOpen=!0,this.seatAssistantPopup.popupContainer.style.display="flex",this.seatAssistantPopup.minimizedBtn.style.display="none")}hideSeatAssistantPopup(){this.seatAssistantPopup&&(this.seatAssistantPopup.isOpen=!1,this.seatAssistantPopup.popupContainer.style.display="none",this.seatAssistantPopup.minimizedBtn.style.display="flex")}autoCreateSeatAssistantPopup(){this.hasSeatAssistantPopup()?(this.showSeatAssistantPopup(),document.getElementById("seat-assistant-auto-container").classList.remove("disable-pointer-events")):this.initSeatAssistantPopup()}validateSkillQueueList(e){if(!Array.isArray(e))throw new Error("skill_queue_list must be an array");return e.map(e=>({skill_id:"string"==typeof e.skill_id?e.skill_id:"",gold_prompt_template_id:"string"==typeof e.gold_prompt_template_id?e.gold_prompt_template_id:"",map_guide_template_id:"string"==typeof e.map_guide_template_id?e.map_guide_template_id:"",realtime_inspect_template_id:"string"==typeof e.realtime_inspect_template_id?e.realtime_inspect_template_id:"",work_order_template_id:"string"==typeof e.work_order_template_id?e.work_order_template_id:""}))}setWorkOrderFields(e){Array.isArray(e)?this.seatAssistantPopup&&"function"==typeof this.seatAssistantPopup.setWorkOrderFields&&this.seatAssistantPopup.setWorkOrderFields(e):console.warn("智能填单字段数据格式错误,应为数组")}validateCategory(e){return"object"==typeof e&&null!==e&&"number"==typeof e.id&&"string"==typeof e.template_id&&"string"==typeof e.category_id&&"number"==typeof e.top_n}setCategories(e){if(!this.validateCategory(e))throw new Error("Category must be an object with id(number), template_id(string), category_id(string), and top_n(number)");this.categorys=e,this.seatAssistantPopup&&"function"==typeof this.seatAssistantPopup.setCategories&&this.seatAssistantPopup.setCategories(e),this.onCategoriesSet&&this.onCategoriesSet({type:"categories_set",categories:e,timestamp:Date.now()})}setSkillQueueList(e){this.skill_queue_list=this.validateSkillQueueList(e)}setMapNodes(e){if(!e)return;if(!Array.isArray(e))return void console.warn("思路导航数据格式错误,应为数组");e.every(e=>"number"==typeof e.id&&"string"==typeof e.template_id&&"string"==typeof e.map_name&&"string"==typeof e.map_prompt)?(this.seatAssistantPopup&&"function"==typeof this.seatAssistantPopup.setMapNodes&&this.seatAssistantPopup.setMapNodes(e),this.onMapNodesSet&&this.onMapNodesSet({type:"map_nodes_set",mapNodes:e,timestamp:Date.now()})):console.warn("思路导航节点数据结构不正确")}setQcsData(e){e&&Array.isArray(e)?(this.qcsData=e,this.seatAssistantPopup&&"function"==typeof this.seatAssistantPopup.setQcsData&&this.seatAssistantPopup.setQcsData(e),console.log("📋 质检配置已设置:",e)):console.warn("传入的QCS数据无效,应为数组")}recordSseMessage(e){e.role&&e.text&&void 0!==e.sentence_end?this.sseMessageHistory.push({...e,timestamp:Date.now()}):console.log("📋 跳过非对话消息:",e)}downloadSseDataAsTxt(){if(!this.sseMessageHistory||0===this.sseMessageHistory.length)return void console.warn("没有SSE消息数据可下载");const e=this.sseMessageHistory.map(e=>`[${new Date(e.timestamp).toLocaleString("zh-CN")}] ${"user"===e.role?"用户":"坐席"}: ${e.text||""} ${e.sentence_end?"[完整]":"[进行中]"}`).join("\n\n"),t=new Blob([e],{type:"text/plain;charset=utf-8"}),n=URL.createObjectURL(t),o=document.createElement("a");o.href=n,o.download=`sse-data-${Date.now()}.txt`,document.body.appendChild(o),o.click(),setTimeout(()=>{document.body.removeChild(o),URL.revokeObjectURL(n)},100),console.log("SSE数据已下载为txt文件")}async saveDialogsToBackend(e={}){let t=e.app_id||this.saveDialogParams.app_id||"",n=e.session_id||this.saveDialogParams.session_id||"",o=e.call_id||this.saveDialogParams.call_id||"",i=e.dialogs||null;if(!i){if(!this.sseMessageHistory||0===this.sseMessageHistory.length)return console.warn("没有对话数据可保存"),{success:!1,count:0,reason:"no_data"};i=this.buildFinalDialogsBySpeakingOrder()}if(!i||0===i.length)return console.warn("没有完整的对话数据可保存"),{success:!1,count:0,reason:"no_complete_data"};if(!t||!n||!o)throw console.error("缺少必要的保存参数:app_id、session_id 或 call_id",{app_id:t,session_id:n,call_id:o}),new Error("缺少必要的保存参数:app_id、session_id 或 call_id");try{const e=i.map(e=>({app_id:t,session_id:n,call_id:o,dialog_type:"user"===e.role?2:1,dialog_text:e.text||""})),s={dialogs:e};console.log(`📤 准备保存 ${e.length} 条完整对话数据到后台...`,{app_id:t,session_id:n,call_id:o}),console.log("📤 对话数据:",i);const r=await this.post("/api/v1/agent/ccms/assist/xy-sdk/save-dialogs",s);return console.log(`✅ 成功保存 ${e.length} 条对话数据`),{success:!0,count:e.length,result:r}}catch(s){throw console.error("❌ 保存对话数据失败:",s),this.onError&&this.onError({type:"save_dialogs_error",error:s,timestamp:Date.now()}),s}}buildFinalDialogsBySpeakingOrder(){const e=[],t=[];for(const n of this.sseMessageHistory){const{role:o,text:i,sentence_end:s}=n;if(t.includes(o)||t.push(o),!1===s);else{const n={role:o,text:i,sentence_end:!0},s=t.indexOf(o);let r=0;for(let o=0;o<e.length;o++){const n=e[o].role;t.indexOf(n)<=s&&(r=o+1)}e.splice(r,0,n)}}return console.log("📋 buildFinalDialogsBySpeakingOrder:",{speakingOrder:t,result:e}),e}async endSession(e={}){const t=void 0!==e.downloadTxt?e.downloadTxt:this.enableDownloadSseData,n=void 0!==e.saveToBackend?e.saveToBackend:this.enableSaveDialogs;if(t&&this.downloadSseDataAsTxt(),n)try{await this.saveDialogsToBackend({app_id:e.app_id,session_id:e.session_id,call_id:e.call_id,dialogs:e.dialogs})}catch(o){console.error("保存对话数据时出错:",o)}this.sseMessageHistory=[]}destroy(e=!0){if(this.disconnectSSE(),this.seatAssistantPopup){try{this.seatAssistantPopup.destroy()}catch(t){console.warn("销毁弹窗组件时出错:",t)}this.seatAssistantPopup=null}if(e&&this.autoPopupContainer)try{this.autoPopupContainer.parentNode&&this.autoPopupContainer.parentNode.removeChild(this.autoPopupContainer),this.autoPopupContainer=null}catch(t){console.warn("移除弹窗DOM容器时出错:",t)}this.onMessage=null,this.onError=null,this.onOpen=null,this.onAudioData=null,this.onAudioNegotiationSuccess=null,this.onConnectSSE=null,this.onCreateSeatAssistantPopup=null,this.onCategoriesSet=null,this.onMapNodesSet=null,this.onDestroy=null,this.negotiationResult=null,this.categorys=null,this.skill_queue_list=[],this.sseMessageHistory=[],this.onDestroy&&this.onDestroy({type:"sdk_destroyed",timestamp:Date.now(),removedDom:e}),console.log("AgentAssistantSDK实例已销毁")}};
6
+ */n=i,o=i.exports,function(e){var t=e.setTimeout,i=e.clearTimeout,s=e.XMLHttpRequest,r=e.XDomainRequest,a=e.ActiveXObject,l=e.EventSource,c=e.document,d=e.Promise,p=e.fetch,u=e.Response,m=e.TextDecoder,h=e.TextEncoder,g=e.AbortController;if("undefined"==typeof window||void 0===c||"readyState"in c||null!=c.body||(c.readyState="loading",window.addEventListener("load",function(e){c.readyState="complete"},!1)),null==s&&null!=a&&(s=function(){return new a("Microsoft.XMLHTTP")}),null==Object.create&&(Object.create=function(e){function t(){}return t.prototype=e,new t}),Date.now||(Date.now=function(){return(new Date).getTime()}),null==g){var f=p;p=function(e,t){var n=t.signal;return f(e,{headers:t.headers,credentials:t.credentials,cache:t.cache}).then(function(e){var t=e.body.getReader();return n._reader=t,n._aborted&&n._reader.cancel(),{status:e.status,statusText:e.statusText,headers:e.headers,body:{getReader:function(){return t}}}})},g=function(){this.signal={_reader:null,_aborted:!1},this.abort=function(){null!=this.signal._reader&&this.signal._reader.cancel(),this.signal._aborted=!0}}}function x(){this.bitsNeeded=0,this.codePoint=0}x.prototype.decode=function(e){function t(e,t,n){if(1===n)return e>=128>>t&&e<<t<=2047;if(2===n)return e>=2048>>t&&e<<t<=55295||e>=57344>>t&&e<<t<=65535;if(3===n)return e>=65536>>t&&e<<t<=1114111;throw new Error}function n(e,t){if(6===e)return t>>6>15?3:t>31?2:1;if(12===e)return t>15?3:2;if(18===e)return 3;throw new Error}for(var o=65533,i="",s=this.bitsNeeded,r=this.codePoint,a=0;a<e.length;a+=1){var l=e[a];0!==s&&(l<128||l>191||!t(r<<6|63&l,s-6,n(s,r)))&&(s=0,r=o,i+=String.fromCharCode(r)),0===s?(l>=0&&l<=127?(s=0,r=l):l>=192&&l<=223?(s=6,r=31&l):l>=224&&l<=239?(s=12,r=15&l):l>=240&&l<=247?(s=18,r=7&l):(s=0,r=o),0===s||t(r,s,n(s,r))||(s=0,r=o)):(s-=6,r=r<<6|63&l),0===s&&(r<=65535?i+=String.fromCharCode(r):(i+=String.fromCharCode(55296+(r-65535-1>>10)),i+=String.fromCharCode(56320+(r-65535-1&1023))))}return this.bitsNeeded=s,this.codePoint=r,i},null!=m&&null!=h&&function(){try{return"test"===(new m).decode((new h).encode("test"),{stream:!0})}catch(e){console.debug("TextDecoder does not support streaming option. Using polyfill instead: "+e)}return!1}()||(m=x);var y=function(){};function v(e){this.withCredentials=!1,this.readyState=0,this.status=0,this.statusText="",this.responseText="",this.onprogress=y,this.onload=y,this.onerror=y,this.onreadystatechange=y,this._contentType="",this._xhr=e,this._sendTimeout=0,this._abort=y}function b(e){return e.replace(/[A-Z]/g,function(e){return String.fromCharCode(e.charCodeAt(0)+32)})}function C(e){for(var t=Object.create(null),n=e.split("\r\n"),o=0;o<n.length;o+=1){var i=n[o].split(": "),s=i.shift(),r=i.join(": ");t[b(s)]=r}this._map=t}function w(){}function A(e){this._headers=e}function E(){}function S(){this._listeners=Object.create(null)}function k(e){t(function(){throw e},0)}function N(e){this.type=e,this.target=void 0}function T(e,t){N.call(this,e),this.data=t.data,this.lastEventId=t.lastEventId}function M(e,t){N.call(this,e),this.status=t.status,this.statusText=t.statusText,this.headers=t.headers}function B(e,t){N.call(this,e),this.error=t.error}v.prototype.open=function(e,n){this._abort(!0);var o=this,r=this._xhr,a=1,l=0;this._abort=function(e){0!==o._sendTimeout&&(i(o._sendTimeout),o._sendTimeout=0),1!==a&&2!==a&&3!==a||(a=4,r.onload=y,r.onerror=y,r.onabort=y,r.onprogress=y,r.onreadystatechange=y,r.abort(),0!==l&&(i(l),l=0),e||(o.readyState=4,o.onabort(null),o.onreadystatechange())),a=0};var c=function(){if(1===a){var e=0,t="",n=void 0;if("contentType"in r)e=200,t="OK",n=r.contentType;else try{e=r.status,t=r.statusText,n=r.getResponseHeader("Content-Type")}catch(i){e=0,t="",n=void 0}0!==e&&(a=2,o.readyState=2,o.status=e,o.statusText=t,o._contentType=n,o.onreadystatechange())}},d=function(){if(c(),2===a||3===a){a=3;var e="";try{e=r.responseText}catch(t){}o.readyState=3,o.responseText=e,o.onprogress()}},p=function(e,t){if(null!=t&&null!=t.preventDefault||(t={preventDefault:y}),d(),1===a||2===a||3===a){if(a=4,0!==l&&(i(l),l=0),o.readyState=4,"load"===e)o.onload(t);else if("error"===e)o.onerror(t);else{if("abort"!==e)throw new TypeError;o.onabort(t)}o.onreadystatechange()}},u=function(){l=t(function(){u()},500),3===r.readyState&&d()};"onload"in r&&(r.onload=function(e){p("load",e)}),"onerror"in r&&(r.onerror=function(e){p("error",e)}),"onabort"in r&&(r.onabort=function(e){p("abort",e)}),"onprogress"in r&&(r.onprogress=d),"onreadystatechange"in r&&(r.onreadystatechange=function(e){!function(e){null!=r&&(4===r.readyState?"onload"in r&&"onerror"in r&&"onabort"in r||p(""===r.responseText?"error":"load",e):3===r.readyState?"onprogress"in r||d():2===r.readyState&&c())}(e)}),!("contentType"in r)&&"ontimeout"in s.prototype||(n+=(-1===n.indexOf("?")?"?":"&")+"padding=true"),r.open(e,n,!0),"readyState"in r&&(l=t(function(){u()},0))},v.prototype.abort=function(){this._abort(!1)},v.prototype.getResponseHeader=function(e){return this._contentType},v.prototype.setRequestHeader=function(e,t){var n=this._xhr;"setRequestHeader"in n&&n.setRequestHeader(e,t)},v.prototype.getAllResponseHeaders=function(){return null!=this._xhr.getAllResponseHeaders&&this._xhr.getAllResponseHeaders()||""},v.prototype.send=function(){if("ontimeout"in s.prototype&&("sendAsBinary"in s.prototype||"mozAnon"in s.prototype)||null==c||null==c.readyState||"complete"===c.readyState){var e=this._xhr;"withCredentials"in e&&(e.withCredentials=this.withCredentials);try{e.send(void 0)}catch(o){throw o}}else{var n=this;n._sendTimeout=t(function(){n._sendTimeout=0,n.send()},4)}},C.prototype.get=function(e){return this._map[b(e)]},null!=s&&null==s.HEADERS_RECEIVED&&(s.HEADERS_RECEIVED=2),w.prototype.open=function(e,t,n,o,i,r,a){e.open("GET",i);var l=0;for(var c in e.onprogress=function(){var t=e.responseText.slice(l);l+=t.length,n(t)},e.onerror=function(e){e.preventDefault(),o(new Error("NetworkError"))},e.onload=function(){o(null)},e.onabort=function(){o(null)},e.onreadystatechange=function(){if(e.readyState===s.HEADERS_RECEIVED){var n=e.status,o=e.statusText,i=e.getResponseHeader("Content-Type"),r=e.getAllResponseHeaders();t(n,o,i,new C(r))}},e.withCredentials=r,a)Object.prototype.hasOwnProperty.call(a,c)&&e.setRequestHeader(c,a[c]);return e.send(),e},A.prototype.get=function(e){return this._headers.get(e)},E.prototype.open=function(e,t,n,o,i,s,r){var a=null,l=new g,c=l.signal,u=new m;return p(i,{headers:r,credentials:s?"include":"same-origin",signal:c,cache:"no-store"}).then(function(e){return a=e.body.getReader(),t(e.status,e.statusText,e.headers.get("Content-Type"),new A(e.headers)),new d(function(e,t){var o=function(){a.read().then(function(t){if(t.done)e(void 0);else{var i=u.decode(t.value,{stream:!0});n(i),o()}}).catch(function(e){t(e)})};o()})}).catch(function(e){return"AbortError"===e.name?void 0:e}).then(function(e){o(e)}),{abort:function(){null!=a&&a.cancel(),l.abort()}}},S.prototype.dispatchEvent=function(e){e.target=this;var t=this._listeners[e.type];if(null!=t)for(var n=t.length,o=0;o<n;o+=1){var i=t[o];try{"function"==typeof i.handleEvent?i.handleEvent(e):i.call(this,e)}catch(s){k(s)}}},S.prototype.addEventListener=function(e,t){e=String(e);var n=this._listeners,o=n[e];null==o&&(o=[],n[e]=o);for(var i=!1,s=0;s<o.length;s+=1)o[s]===t&&(i=!0);i||o.push(t)},S.prototype.removeEventListener=function(e,t){e=String(e);var n=this._listeners,o=n[e];if(null!=o){for(var i=[],s=0;s<o.length;s+=1)o[s]!==t&&i.push(o[s]);0===i.length?delete n[e]:n[e]=i}},T.prototype=Object.create(N.prototype),M.prototype=Object.create(N.prototype),B.prototype=Object.create(N.prototype);var D=-1,I=-1,L=/^text\/event\-stream(;.*)?$/i,H=function(e,t){var n=null==e?t:parseInt(e,10);return n!=n&&(n=t),R(n)},R=function(e){return Math.min(Math.max(e,1e3),18e6)},P=function(e,t,n){try{"function"==typeof t&&t.call(e,n)}catch(o){k(o)}};function z(e,n){S.call(this),n=n||{},this.onopen=void 0,this.onmessage=void 0,this.onerror=void 0,this.url=void 0,this.readyState=void 0,this.withCredentials=void 0,this.headers=void 0,this._close=void 0,function(e,n,o){n=String(n);var a=Boolean(o.withCredentials),l=o.lastEventIdQueryParameterName||"lastEventId",c=R(1e3),d=H(o.heartbeatTimeout,45e3),p="",u=c,m=!1,h=0,g=o.headers||{},f=o.Transport,x=q&&null==f?void 0:new v(null!=f?new f:null!=s&&"withCredentials"in s.prototype||null==r?new s:new r),y=null!=f&&"string"!=typeof f?new f:null==x?new E:new w,b=void 0,C=0,A=D,S="",k="",N="",z="",j=0,O=0,Q=0,F=function(t,n,o,i){if(0===A)if(200===t&&null!=o&&L.test(o)){A=1,m=Date.now(),u=c,e.readyState=1;var s=new M("open",{status:t,statusText:n,headers:i});e.dispatchEvent(s),P(e,e.onopen,s)}else{var r="";200!==t?(n&&(n=n.replace(/\s+/g," ")),r="EventSource's response has a status "+t+" "+n+" that is not 200. Aborting the connection."):r="EventSource's response has a Content-Type specifying an unsupported type: "+(null==o?"-":o.replace(/\s+/g," "))+". Aborting the connection.",K(),s=new M("error",{status:t,statusText:n,headers:i}),e.dispatchEvent(s),P(e,e.onerror,s),console.error(r)}},U=function(n){if(1===A){for(var o=-1,s=0;s<n.length;s+=1)(l=n.charCodeAt(s))!=="\n".charCodeAt(0)&&l!=="\r".charCodeAt(0)||(o=s);var r=(-1!==o?z:"")+n.slice(0,o+1);z=(-1===o?z:"")+n.slice(o+1),""!==n&&(m=Date.now(),h+=n.length);for(var a=0;a<r.length;a+=1){var l=r.charCodeAt(a);if(j===I&&l==="\n".charCodeAt(0))j=0;else if(j===I&&(j=0),l==="\r".charCodeAt(0)||l==="\n".charCodeAt(0)){if(0!==j){1===j&&(Q=a+1);var g=r.slice(O,Q-1),f=r.slice(Q+(Q<a&&r.charCodeAt(Q)===" ".charCodeAt(0)?1:0),a);"data"===g?(S+="\n",S+=f):"id"===g?k=f:"event"===g?N=f:"retry"===g?(c=H(f,c),u=c):"heartbeatTimeout"===g&&(d=H(f,d),0!==C&&(i(C),C=t(function(){Y()},d)))}if(0===j){if(""!==S){p=k,""===N&&(N="message");var x=new T(N,{data:S.slice(1),lastEventId:k});if(e.dispatchEvent(x),"open"===N?P(e,e.onopen,x):"message"===N?P(e,e.onmessage,x):"error"===N&&P(e,e.onerror,x),2===A)return}S="",N=""}j=l==="\r".charCodeAt(0)?I:0}else 0===j&&(O=a,j=1),1===j?l===":".charCodeAt(0)&&(Q=a+1,j=2):2===j&&(j=3)}}},G=function(n){if(1===A||0===A){A=D,0!==C&&(i(C),C=0),C=t(function(){Y()},u),u=R(Math.min(16*c,2*u)),e.readyState=0;var o=new B("error",{error:n});e.dispatchEvent(o),P(e,e.onerror,o),null!=n&&console.error(n)}},K=function(){A=2,null!=b&&(b.abort(),b=void 0),0!==C&&(i(C),C=0),e.readyState=2},Y=function(){if(C=0,A===D){m=!1,h=0,C=t(function(){Y()},d),A=0,S="",N="",k=p,z="",O=0,Q=0,j=0;var o=n;if("data:"!==n.slice(0,5)&&"blob:"!==n.slice(0,5)&&""!==p){var i=n.indexOf("?");o=-1===i?n:n.slice(0,i+1)+n.slice(i+1).replace(/(?:^|&)([^=&]*)(?:=[^&]*)?/g,function(e,t){return t===l?"":e}),o+=(-1===n.indexOf("?")?"?":"&")+l+"="+encodeURIComponent(p)}var s=e.withCredentials,r={Accept:"text/event-stream"},a=e.headers;if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(r[c]=a[c]);try{b=y.open(x,F,U,G,o,s,r)}catch(g){throw K(),g}}else if(m||null==b){var u=Math.max((m||Date.now())+d-Date.now(),1);m=!1,C=t(function(){Y()},u)}else G(new Error("No activity within "+d+" milliseconds. "+(0===A?"No response received.":h+" chars received.")+" Reconnecting.")),null!=b&&(b.abort(),b=void 0)};e.url=n,e.readyState=0,e.withCredentials=a,e.headers=g,e._close=K,Y()}(this,e,n)}var q=null!=p&&null!=u&&"body"in u.prototype;z.prototype=Object.create(S.prototype),z.prototype.CONNECTING=0,z.prototype.OPEN=1,z.prototype.CLOSED=2,z.prototype.close=function(){this._close()},z.CONNECTING=0,z.OPEN=1,z.CLOSED=2,z.prototype.withCredentials=void 0;var j,O,Q=l;null==s||null!=l&&"withCredentials"in l.prototype||(Q=z),(j=o).EventSourcePolyfill=z,j.NativeEventSource=l,void 0!==(O=void(j.EventSource=Q))&&(n.exports=O)}("undefined"==typeof globalThis?"undefined"!=typeof window?window:"undefined"!=typeof self?self:e:globalThis);var s,r,a=i.exports,l={exports:{}},c={exports:{}};s="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",r={rotl:function(e,t){return e<<t|e>>>32-t},rotr:function(e,t){return e<<32-t|e>>>t},endian:function(e){if(e.constructor==Number)return 16711935&r.rotl(e,8)|4278255360&r.rotl(e,24);for(var t=0;t<e.length;t++)e[t]=r.endian(e[t]);return e},randomBytes:function(e){for(var t=[];e>0;e--)t.push(Math.floor(256*Math.random()));return t},bytesToWords:function(e){for(var t=[],n=0,o=0;n<e.length;n++,o+=8)t[o>>>5]|=e[n]<<24-o%32;return t},wordsToBytes:function(e){for(var t=[],n=0;n<32*e.length;n+=8)t.push(e[n>>>5]>>>24-n%32&255);return t},bytesToHex:function(e){for(var t=[],n=0;n<e.length;n++)t.push((e[n]>>>4).toString(16)),t.push((15&e[n]).toString(16));return t.join("")},hexToBytes:function(e){for(var t=[],n=0;n<e.length;n+=2)t.push(parseInt(e.substr(n,2),16));return t},bytesToBase64:function(e){for(var t=[],n=0;n<e.length;n+=3)for(var o=e[n]<<16|e[n+1]<<8|e[n+2],i=0;i<4;i++)8*n+6*i<=8*e.length?t.push(s.charAt(o>>>6*(3-i)&63)):t.push("=");return t.join("")},base64ToBytes:function(e){e=e.replace(/[^A-Z0-9+\/]/gi,"");for(var t=[],n=0,o=0;n<e.length;o=++n%4)0!=o&&t.push((s.indexOf(e.charAt(n-1))&Math.pow(2,-2*o+8)-1)<<2*o|s.indexOf(e.charAt(n))>>>6-2*o);return t}},c.exports=r;var d,p,u,m,h,g=c.exports,f={utf8:{stringToBytes:function(e){return f.bin.stringToBytes(unescape(encodeURIComponent(e)))},bytesToString:function(e){return decodeURIComponent(escape(f.bin.bytesToString(e)))}},bin:{stringToBytes:function(e){for(var t=[],n=0;n<e.length;n++)t.push(255&e.charCodeAt(n));return t},bytesToString:function(e){for(var t=[],n=0;n<e.length;n++)t.push(String.fromCharCode(e[n]));return t.join("")}}},x=f,y=function(e){return null!=e&&(v(e)||function(e){return"function"==typeof e.readFloatLE&&"function"==typeof e.slice&&v(e.slice(0,0))}(e)||!!e._isBuffer)};function v(e){return!!e.constructor&&"function"==typeof e.constructor.isBuffer&&e.constructor.isBuffer(e)}d=g,p=x.utf8,u=y,m=x.bin,(h=function(e,t){e.constructor==String?e=t&&"binary"===t.encoding?m.stringToBytes(e):p.stringToBytes(e):u(e)?e=Array.prototype.slice.call(e,0):Array.isArray(e)||e.constructor===Uint8Array||(e=e.toString());for(var n=d.bytesToWords(e),o=8*e.length,i=1732584193,s=-271733879,r=-1732584194,a=271733878,l=0;l<n.length;l++)n[l]=16711935&(n[l]<<8|n[l]>>>24)|4278255360&(n[l]<<24|n[l]>>>8);n[o>>>5]|=128<<o%32,n[14+(o+64>>>9<<4)]=o;var c=h._ff,g=h._gg,f=h._hh,x=h._ii;for(l=0;l<n.length;l+=16){var y=i,v=s,b=r,C=a;i=c(i,s,r,a,n[l+0],7,-680876936),a=c(a,i,s,r,n[l+1],12,-389564586),r=c(r,a,i,s,n[l+2],17,606105819),s=c(s,r,a,i,n[l+3],22,-1044525330),i=c(i,s,r,a,n[l+4],7,-176418897),a=c(a,i,s,r,n[l+5],12,1200080426),r=c(r,a,i,s,n[l+6],17,-1473231341),s=c(s,r,a,i,n[l+7],22,-45705983),i=c(i,s,r,a,n[l+8],7,1770035416),a=c(a,i,s,r,n[l+9],12,-1958414417),r=c(r,a,i,s,n[l+10],17,-42063),s=c(s,r,a,i,n[l+11],22,-1990404162),i=c(i,s,r,a,n[l+12],7,1804603682),a=c(a,i,s,r,n[l+13],12,-40341101),r=c(r,a,i,s,n[l+14],17,-1502002290),i=g(i,s=c(s,r,a,i,n[l+15],22,1236535329),r,a,n[l+1],5,-165796510),a=g(a,i,s,r,n[l+6],9,-1069501632),r=g(r,a,i,s,n[l+11],14,643717713),s=g(s,r,a,i,n[l+0],20,-373897302),i=g(i,s,r,a,n[l+5],5,-701558691),a=g(a,i,s,r,n[l+10],9,38016083),r=g(r,a,i,s,n[l+15],14,-660478335),s=g(s,r,a,i,n[l+4],20,-405537848),i=g(i,s,r,a,n[l+9],5,568446438),a=g(a,i,s,r,n[l+14],9,-1019803690),r=g(r,a,i,s,n[l+3],14,-187363961),s=g(s,r,a,i,n[l+8],20,1163531501),i=g(i,s,r,a,n[l+13],5,-1444681467),a=g(a,i,s,r,n[l+2],9,-51403784),r=g(r,a,i,s,n[l+7],14,1735328473),i=f(i,s=g(s,r,a,i,n[l+12],20,-1926607734),r,a,n[l+5],4,-378558),a=f(a,i,s,r,n[l+8],11,-2022574463),r=f(r,a,i,s,n[l+11],16,1839030562),s=f(s,r,a,i,n[l+14],23,-35309556),i=f(i,s,r,a,n[l+1],4,-1530992060),a=f(a,i,s,r,n[l+4],11,1272893353),r=f(r,a,i,s,n[l+7],16,-155497632),s=f(s,r,a,i,n[l+10],23,-1094730640),i=f(i,s,r,a,n[l+13],4,681279174),a=f(a,i,s,r,n[l+0],11,-358537222),r=f(r,a,i,s,n[l+3],16,-722521979),s=f(s,r,a,i,n[l+6],23,76029189),i=f(i,s,r,a,n[l+9],4,-640364487),a=f(a,i,s,r,n[l+12],11,-421815835),r=f(r,a,i,s,n[l+15],16,530742520),i=x(i,s=f(s,r,a,i,n[l+2],23,-995338651),r,a,n[l+0],6,-198630844),a=x(a,i,s,r,n[l+7],10,1126891415),r=x(r,a,i,s,n[l+14],15,-1416354905),s=x(s,r,a,i,n[l+5],21,-57434055),i=x(i,s,r,a,n[l+12],6,1700485571),a=x(a,i,s,r,n[l+3],10,-1894986606),r=x(r,a,i,s,n[l+10],15,-1051523),s=x(s,r,a,i,n[l+1],21,-2054922799),i=x(i,s,r,a,n[l+8],6,1873313359),a=x(a,i,s,r,n[l+15],10,-30611744),r=x(r,a,i,s,n[l+6],15,-1560198380),s=x(s,r,a,i,n[l+13],21,1309151649),i=x(i,s,r,a,n[l+4],6,-145523070),a=x(a,i,s,r,n[l+11],10,-1120210379),r=x(r,a,i,s,n[l+2],15,718787259),s=x(s,r,a,i,n[l+9],21,-343485551),i=i+y>>>0,s=s+v>>>0,r=r+b>>>0,a=a+C>>>0}return d.endian([i,s,r,a])})._ff=function(e,t,n,o,i,s,r){var a=e+(t&n|~t&o)+(i>>>0)+r;return(a<<s|a>>>32-s)+t},h._gg=function(e,t,n,o,i,s,r){var a=e+(t&o|n&~o)+(i>>>0)+r;return(a<<s|a>>>32-s)+t},h._hh=function(e,t,n,o,i,s,r){var a=e+(t^n^o)+(i>>>0)+r;return(a<<s|a>>>32-s)+t},h._ii=function(e,t,n,o,i,s,r){var a=e+(n^(t|~o))+(i>>>0)+r;return(a<<s|a>>>32-s)+t},h._blocksize=16,h._digestsize=16,l.exports=function(e,t){if(null==e)throw new Error("Illegal argument "+e);var n=d.wordsToBytes(h(e,t));return t&&t.asBytes?n:t&&t.asString?m.bytesToString(n):d.bytesToHex(n)};const b=t(l.exports);!function(){if(!document.querySelector("#seat-assistant-styles")){const e=document.createElement("style");e.id="seat-assistant-styles",e.textContent="\n /* 坐席辅助弹窗样式 */\n .seat-assistant-popup {\n position: fixed;\n top: 10vh;\n right: calc((100% - 1300px) / 2);\n width: 1300px;\n height: 80vh;\n background: white;\n box-shadow: 0 4px 12px rgba(0,0,0,0.15);\n z-index: 10000;\n display: flex;\n border-radius: 5px;\n flex-direction: column;\n overflow: hidden;\n }\n \n .flex_two_text{\n display: flex;\n padding: 0 13px;\n height: 34px;\n line-height: 34px;\n background: #f2f2f2;\n justify-content: space-between;\n align-items: center;\n border: 1px solid #c9c9c9;\n border-radius: 6px;\n }\n .fw{\n font-weight: bold;\n font-size: 14px;\n }\n .btn_gundong{\n color: #4B91E1;\n font-weight: normal;\n font-size: 14px;\n cursor: pointer;\n }\n\n .popup-title-bar {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 8px 16px;\n color: #fff;\n background-color: #61c0ff;\n border-bottom: 1px solid #ddd;\n }\n\n .popup-title-bar h3 {\n margin: 0;\n font-size: 16px;\n font-weight: 600;\n }\n\n .popup-close-btn {\n background: none;\n border: none;\n font-size: 24px;\n cursor: pointer;\n color: #fff;\n padding: 0;\n width: 30px;\n height: 30px;\n display: flex;\n align-items: center;\n justify-content: center;\n }\n\n .popup-content-area {\n flex: 1;\n display: flex;\n overflow: hidden;\n padding: 5px;\n background: #eaeef2;\n }\n\n .left-panel {\n flex: 1;\n margin-right: 10px;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n }\n\n .user-portrait {\n flex: .3;\n border-bottom: 1px solid #eee;\n overflow-y: auto;\n background: #fff;\n border-radius: 6px;\n }\n\n .user-tags-container {\n margin-top: 10px;\n padding: 0 10px 10px 10px;\n border-radius: 4px;\n }\n\n .user-tags-title {\n font-size: 13px;\n font-weight: bold;\n color: #333;\n margin-bottom: 8px;\n }\n\n .user-tags-list {\n display: flex;\n flex-wrap: wrap;\n gap: 8px;\n }\n\n .user-tag-item {\n display: inline-block;\n padding: 4px 12px;\n background: #facd91;\n color: #333;\n font-size: 12px;\n border-radius: 4px;\n white-space: nowrap;\n }\n\n .smart-form-filling {\n flex: .7;\n overflow-y: auto;\n margin-top: 10px;\n }\n\n .form-filling-container {\n display: flex;\n flex-direction: column;\n height: calc(100% - 35px);\n padding: 10px 10px 0 10px;\n }\n\n .form-filling-header {\n display: flex;\n height: 34px;\n line-height: 34px;\n background: #81d3f8;\n color: white;\n font-weight: bold;\n font-size: 13px;\n border-radius: 6px 6px 0 0;\n align-items: center;\n border: 1px solid #81d3f8;\n }\n\n .form-filling-header-item {\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 12px;\n color: #000;\n border-right: 1px solid rgba(255,255,255,0.3);\n }\n\n .form-filling-header-item:last-child {\n border-right: none;\n }\n\n .form-filling-header-item.seq { width: 36px; }\n .form-filling-header-item.name { width: 90px; }\n .form-filling-header-item.input { flex: 1; }\n .form-filling-header-item.action { width: 40px; }\n\n .form-filling-body {\n flex: 1;\n overflow-y: auto;\n background: #fff;\n border: 1px solid #e9ecef;\n border-top: none;\n }\n\n .form-filling-row {\n display: flex;\n border-bottom: 1px solid #e9ecef;\n align-items: stretch;\n font-size: 12px;\n min-height: 34px;\n }\n\n .form-filling-row:last-child {\n /*border-bottom: none;*/\n }\n\n .form-filling-row:hover {\n background-color: #f0f7ff;\n }\n\n .form-filling-row-item {\n display: flex;\n align-items: center;\n border-right: 1px solid #e9ecef;\n padding: 0 8px;\n }\n\n .form-filling-row-item:last-child {\n border-right: none;\n }\n\n .form-filling-row-item.seq {\n width: 36px;\n justify-content: center;\n flex-shrink: 0;\n }\n .form-filling-row-item.name {\n width: 90px;\n flex-shrink: 0;\n font-weight: 500;\n }\n .form-filling-row-item.input {\n flex: 1;\n }\n .form-filling-row-item.action {\n width: 40px;\n justify-content: center;\n flex-shrink: 0;\n }\n\n .form-filling-footer {\n padding: 10px;\n text-align: center;\n border: 1px solid #e9ecef;\n border-top: none;\n background: #fff;\n border-radius: 0 0 6px 6px;\n }\n\n .form-filling-footer .submit-btn {\n background: #81d3f8;\n color: white;\n border: none;\n padding: 8px 24px;\n border-radius: 4px;\n cursor: pointer;\n font-size: 13px;\n transition: all 0.3s;\n box-shadow: 0 2px 4px rgba(64, 150, 255, 0.3);\n }\n\n .form-filling-footer .submit-btn:hover {\n background: linear-gradient(180deg, #5cb8ff 0%, #4facfe 100%);\n transform: translateY(-1px);\n box-shadow: 0 4px 8px rgba(64, 150, 255, 0.4);\n }\n\n .form-filling-footer .submit-btn:active {\n background: linear-gradient(180deg, #4096ff 0%, #3b8ee6 100%);\n transform: translateY(0);\n }\n\n .form-filling-row .copy-btn {\n background: #81d3f8;\n border: none;\n padding: 4px;\n border-radius: 4px;\n cursor: pointer;\n transition: all 0.2s;\n display: flex;\n align-items: center;\n justify-content: center;\n }\n\n .form-filling-row .copy-btn:hover {\n background: #4fbeef\n }\n\n .form-filling-row .copy-btn:active {\n background: #4fbeef;\n }\n\n .form-filling-row-item.input input[type=\"text\"],\n .form-filling-row-item.input textarea,\n .form-filling-row-item.input select {\n width: 100%;\n /*padding: 6px 8px;\n border: 1px solid #d9d9d9;\n border-radius: 4px;*/\n border: none;\n font-size: 12px;\n box-sizing: border-box;\n transition: all 0.3s;\n outline: none;\n user-select: none; /* 禁止选中 */\n pointer-events: none; /* 禁止点击 */\n background: none;\n }\n\n .form-filling-row-item.input input[type=\"text\"]:focus,\n .form-filling-row-item.input textarea:focus,\n .form-filling-row-item.input select:focus {\n /*border-color: #4096ff;\n box-shadow: 0 0 0 2px rgba(64, 150, 255, 0.2);*/\n outline: none;\n }\n\n .form-filling-row-item.input textarea {\n resize: vertical;\n min-height: 60px;\n }\n\n .form-filling-row-item.name .required-mark {\n color: #ff4d4f;\n margin-right: 2px;\n font-weight: bold;\n display: none;\n }\n\n .middle-panel {\n width: 620px;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n margin-right: 10px;\n }\n\n .thought-navigation {\n height: 265px;\n overflow-y: auto;\n margin-bottom: 10px;\n }\n\n .speech-recommendation {\n flex: 1;\n overflow-y: auto;\n }\n \n .jphs-tit{\n padding: 12px 12px;\n font-size: 14px;\n color: #6e6565;\n }\n \n .recommendation-container {\n display: flex;\n flex-direction: row;\n height: calc(100% - 35px);\n font-weight: bold;\n }\n\n /* 右侧容器:包含话术详情和最新推荐,上下排列 */\n .recommendation-right-wrap {\n flex: 1;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n }\n\n .recommendation-tabs-wrap{\n width:20%;\n flex-shrink: 0;\n flex-wrap: wrap;\n font-weight: normal;\n border-bottom: 1px solid #ddd;\n border-left: 1px solid #ddd;\n padding-bottom: 10px;\n overflow-y: auto;\n font-size: 14px;\n }\n \n .recommendation-tabs {\n \n }\n \n \n .recommendation-tab {\n padding: 8px 12px;\n border-radius: 4px;\n cursor: pointer;\n margin-right: 4px;\n margin-bottom: 8px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n font-size: 12px;\n }\n \n .recommendation-tab.active {\n background-color: #4096ff;\n color: #fff;\n font-weight: bold;\n }\n \n .recommendation-content {\n flex: 1;\n overflow-y: auto;\n padding: 10px;\n background-color: #fff;\n border: 1px solid #ddd;\n border-radius: 4px 4px 0 0;\n min-height: 100px;\n }\n \n .recommendation-item {\n padding: 10px;\n }\n \n .recommendation-header {\n margin-bottom: 10px;\n padding-bottom: 10px;\n border-bottom: 1px solid #eee;\n }\n \n .recommendation-header h5 {\n margin: 0 0 5px 0;\n color: #333;\n font-size: 14px;\n }\n \n .recommendation-meta {\n font-size: 12px;\n color: #666;\n }\n \n .recommendation-content-text {\n margin: 10px 0;\n line-height: 1.5;\n font-size: 12px;\n font-weight: normal;\n }\n \n .recommendation-score {\n font-size: 12px;\n color: #999;\n font-style: italic;\n }\n \n .new_recommend_title{\n margin: 0 0 5px 0;\n color: #4096ff;\n font-size: 13px;\n margin-bottom: 10px;\n padding-bottom: 10px;\n border-bottom: 1px solid #eee;\n }\n .new_recommend_content{\n margin: 10px 0;\n line-height: 1.5;\n font-size: 12px;\n font-weight: normal;\n }\n .topNewRecommendation-content{\n flex: 0 0 auto;\n max-height: 150px;\n overflow-y: auto;\n padding: 10px;\n background-color: #fff;\n border: 1px solid #ddd;\n border-top: none;\n border-radius: 0 0 4px 4px;\n }\n \n \n .entry-id, .source, .entry-update-time {\n margin-right: 10px;\n color: #999;\n font-size: 10px;\n font-weight: normal;\n }\n\n .right-panel {\n flex: 1;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n }\n\n .speech-to-text-content {\n \n }\n .speech-to-text-content-wrap{\n height: calc(80vh - 200px);\n flex: 1;\n padding: 8px;\n overflow-y: auto;\n white-space: pre-wrap;\n background: #fff;\n }\n \n #speech-to-text-content-wrap {\n scroll-behavior: smooth;\n }\n \n #seat-assistant-auto-container{\n \n }\n \n \n .popup-content-area .speech-to-info {\n height: 100px;\n width: 100%;\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: center;\n gap: 10px;\n align-content: center;\n border-bottom: 1px solid #eee;\n margin-bottom: 10px;\n background: #fff;\n }\n .popup-content-area .speech-info-item {\n width: 45%;\n border: 1px solid #b0adad;\n color: #3e3434;\n border-radius: 5px;\n padding: 4px 8px;\n font-size: 12px;\n display: flex;\n align-items: center;\n position: relative;\n }\n\n /* 监测名称样式 */\n .speech-info-item .monitor-name {\n flex-shrink: 0;\n }\n\n /* 监测详情(正常/异常状态文字) */\n .speech-info-item .monitor-detail {\n margin-left: 4px;\n }\n\n /* 监测状态文字样式(正常/异常) */\n .monitor-status {\n font-weight: bold;\n }\n\n /* 预设的浮动提示框(默认隐藏) */\n .speech-info-item .monitor-tooltip {\n position: absolute;\n bottom: calc(100% + 8px);\n left: 50%;\n transform: translateX(-50%);\n background: #fff;\n border: 1px solid #ddd;\n border-radius: 4px;\n padding: 8px 12px;\n font-size: 12px;\n color: #333;\n box-shadow: 0 2px 8px rgba(0,0,0,0.15);\n white-space: pre-line;\n max-width: 200px;\n z-index: 100;\n display: none;\n }\n\n /* hover时显示提示框 */\n .speech-info-item:hover .monitor-tooltip {\n display: block;\n }\n\n /* 提示框小箭头 */\n .speech-info-item .monitor-tooltip::after {\n content: '';\n position: absolute;\n bottom: -6px;\n left: 50%;\n transform: translateX(-50%);\n border-left: 6px solid transparent;\n border-right: 6px solid transparent;\n border-top: 6px solid #fff;\n }\n\n .speech-info-item .monitor-tooltip::before {\n content: '';\n position: absolute;\n bottom: -7px;\n left: 50%;\n transform: translateX(-50%);\n border-left: 7px solid transparent;\n border-right: 7px solid transparent;\n border-top: 7px solid #ddd;\n }\n\n /* 1. 定义关键帧动画 */\n\n /* 呼吸效果:控制阴影扩散、缩放和亮度变化 */\n @keyframes pulse-glow {\n 0% {\n box-shadow: 0 0 0 0 rgba(24, 144, 255, 0.7);\n transform: scale(1);\n filter: brightness(1);\n }\n 50% {\n /* 中间态:阴影最大,稍微放大,亮度最高 */\n box-shadow: 0 0 0 15px rgba(24, 144, 255, 0);\n transform: scale(1.05);\n filter: brightness(1.15);\n }\n 100% {\n box-shadow: 0 0 0 0 rgba(24, 144, 255, 0);\n transform: scale(1);\n filter: brightness(1);\n }\n }\n \n /* 内部流光效果:增加一点动态的光泽感 */\n @keyframes inner-shimmer {\n 0% {\n background-position: 0% 50%;\n }\n 50% {\n background-position: 100% 50%;\n }\n 100% {\n background-position: 0% 50%;\n }\n }\n \n /* 2. 应用样式 */\n .minimized-popup-btn {\n pointer-events: auto;\n position: fixed;\n bottom: 20px;\n right: 20px;\n width: 60px;\n height: 60px;\n \n /* 修改背景为渐变色,配合流光动画 */\n background: linear-gradient(135deg, #1890ff 0%, #40a9ff 50%, #1890ff 100%);\n background-size: 200% 200%;\n \n color: white;\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: move;\n z-index: 10001;\n \n /* 初始阴影 */\n box-shadow: 0 4px 12px rgba(24, 144, 255, 0.4);\n \n font-size: 12px;\n text-align: center;\n user-select: none;\n \n /* 应用动画 */\n /* pulse-glow: 名称 | 3s: 时长(较慢) | infinite: 无限循环 | cubic-bezier: 缓动函数(让节奏有快有慢) */\n animation: \n pulse-glow 2.5s infinite cubic-bezier(0.4, 0, 0.6, 1),\n inner-shimmer 4s infinite ease-in-out;\n \n /* 确保动画性能 */\n will-change: transform, box-shadow, background-position;\n transition: transform 0.2s ease, box-shadow 0.2s ease;\n }\n \n /* 3. 悬停状态:停止闪烁,给予反馈 */\n .minimized-popup-btn:hover {\n /* 暂停动画 */\n animation-play-state: paused;\n \n /* 悬停时固定在一个高亮状态 */\n transform: scale(1.1);\n box-shadow: 0 8px 20px rgba(24, 144, 255, 0.6);\n filter: brightness(1.1);\n cursor: pointer; /* 悬停时也可以改为 pointer 提示可点击,如果必须拖拽则保持 move */\n }\n \n /* 可选:如果是拖拽状态,可以加一个类 .is-dragging 来完全移除阴影防止视觉干扰 */\n .minimized-popup-btn.is-dragging {\n animation: none;\n box-shadow: 0 4px 12px rgba(0,0,0,0.2);\n opacity: 0.9;\n }\n\n /* 各面板标题样式 */\n .popup-content-area .left-panel h4,\n .popup-content-area .middle-panel h4 {\n margin-top: 0;\n font-size: 14px;\n color: #333;\n }\n\n /* 内容区域滚动条样式 */\n .popup-content-area .user-portrait,\n .popup-content-area .smart-form-filling,\n .popup-content-area .thought-navigation,\n .popup-content-area .speech-recommendation,\n .popup-content-area .speech-to-text-content {\n overflow-y: auto;\n background:#fff;\n border-radius: 6px 6px 0 0;\n }\n\n /* 思路导航区域样式 */\n .popup-content-area .thought-navigation-container {\n display: flex;\n flex-direction: column;\n height: calc(100% - 40px);\n gap: 10px;\n }\n\n .popup-content-area .navigation-top-section {\n flex: 0 0 auto;\n }\n\n .popup-content-area .navigation-middle-section {\n height: auto;\n }\n\n .popup-content-area .navigation-bottom-section {\n flex: 0 0 auto;\n }\n\n /* 节点索引容器 */\n .popup-content-area .node-index-container {\n display: flex;\n gap: 8px;\n flex-wrap: wrap;\n padding: 8px;\n background: #fff;\n border-radius: 4px;\n border: 1px solid #e9ecef;\n }\n\n .popup-content-area .node-item {\n display: flex;\n flex-direction: column;\n align-items: center;\n padding: 6px 12px;\n cursor: pointer;\n transition: all 0.2s ease;\n min-width: 60px;\n }\n\n .popup-content-area .node-item:hover {\n border-color: #4096ff;\n transform: translateY(-2px);\n box-shadow: 0 2px 8px rgba(64, 150, 255, 0.2);\n }\n\n .popup-content-area .node-item.active {\n /*background: #4096ff;\n border-color: #4096ff;*/\n color: #389e0d;\n }\n \n\n .popup-content-area .node-index {\n font-size: 12px;\n margin-bottom: 8px;\n width: 20px;\n height: 20px;\n background: #515151;\n text-align: center;\n line-height: 20px;\n border-radius: 20px;\n color: #fff;\n }\n\n .popup-content-area .node-name {\n font-size: 11px;\n text-align: center;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n max-width: 80px;\n }\n \n .popup-content-area .node-item.active .node-index {\n background: #389e0d;\n }\n .popup-content-area .node-item.active .node-name{\n color: #389e0d;\n }\n .popup-content-area .node-item-line{\n line-height: 29px;\n }\n\n /* 当前节点内容 */\n .popup-content-area .current-node-content {\n padding: 0px 15px;\n border-radius: 6px;\n display: flex;\n flex-direction: column;\n }\n\n .popup-content-area .current-node-title {\n font-size: 12px;\n font-weight: bold;\n color: #389e0d;\n padding-bottom: 8px;\n }\n\n .popup-content-area .current-node-prompt {\n font-size: 12px;\n line-height: 1.5;\n color: #389e0d;\n word-break: break-all;\n height: 36px;\n overflow-y: auto;\n }\n\n /* 下一节点内容 */\n .popup-content-area .next-node-content {\n padding: 12px;\n border-radius: 6px;\n }\n\n .popup-content-area .next-node-title {\n font-size: 12px;\n font-weight: bold;\n color: #333;\n padding-bottom: 6px;\n }\n\n .popup-content-area .next-node-prompt {\n font-size: 12px;\n line-height: 1.4;\n color: #555;\n word-break: break-all;\n height: 36px;\n overflow-y: auto;\n }\n\n /* 结束提示 */\n .popup-content-area .end-content {\n padding: 15px;\n text-align: center;\n background: #fffbe6;\n border: 1px solid #ffe58f;\n border-radius: 6px;\n }\n\n .popup-content-area .end-message {\n font-size: 13px;\n color: #d48806;\n font-style: italic;\n }\n\n .user-portrait::-webkit-scrollbar,\n .smart-form-filling::-webkit-scrollbar,\n .thought-navigation::-webkit-scrollbar,\n .speech-recommendation::-webkit-scrollbar,\n .speech-to-text-content::-webkit-scrollbar {\n width: 6px;\n }\n\n .user-portrait::-webkit-scrollbar-track,\n .smart-form-filling::-webkit-scrollbar-track,\n .thought-navigation::-webkit-scrollbar-track,\n .speech-recommendation::-webkit-scrollbar-track,\n .speech-to-text-content::-webkit-scrollbar-track {\n background: #f1f1f1;\n }\n\n .user-portrait::-webkit-scrollbar-thumb,\n .smart-form-filling::-webkit-scrollbar-thumb,\n .thought-navigation::-webkit-scrollbar-thumb,\n .speech-recommendation::-webkit-scrollbar-thumb,\n .speech-to-text-content::-webkit-scrollbar-thumb {\n background: #c1c1c1;\n border-radius: 3px;\n }\n\n .user-portrait::-webkit-scrollbar-thumb:hover,\n .smart-form-filling::-webkit-scrollbar-thumb:hover,\n .thought-navigation::-webkit-scrollbar-thumb:hover,\n .speech-recommendation::-webkit-scrollbar-thumb:hover,\n .speech-to-text-content::-webkit-scrollbar-thumb:hover {\n background: #a8a8a8;\n }\n\n /* 消息项样式 */\n .popup-content-area .message-item {\n margin-bottom: 10px;\n padding: 8px;\n border-radius: 4px;\n }\n\n\n\n .popup-content-area .assistant-message {\n background-color: #f6f6f6;\n border-left: 3px solid #ccc;\n }\n\n .popup-content-area .role-label {\n font-weight: bold;\n margin-right: 8px;\n color: #1890ff;\n }\n\n .popup-content-area .assistant-message .role-label {\n color: #666;\n }\n \n .popup-content-area .agent-message-layout {\n display: flex;\n justify-content: flex-end;\n }\n .popup-content-area .user-message-layout{\n display: flex;\n justify-content: flex-start;\n }\n .popup-content-area .user-time{\n text-align: left;\n color: #A0A0A0;\n font-size: 12px;\n margin-bottom: 7px;\n }\n .popup-content-area .agent-time{\n text-align: right;\n color: #A0A0A0;\n font-size: 12px;\n margin-bottom: 7px;\n }\n .popup-content-area .agent-content,.popup-content-area .user-content{\n width: calc(100% - 90px);\n display: inline-block;\n }\n .popup-content-area .agent-content{\n text-align: right;\n }\n .popup-content-area .user-content{\n text-align: left;\n }\n .popup-content-area .agent-text{\n background: #f2f2f2;\n border: 1px solid #e5e5e5;\n padding: 8px 13px;\n border-radius: 10px;\n font-size: 12px;\n display: inline-block;\n text-align: left;\n }\n .popup-content-area .user-text{\n font-size: 12px;\n background: #4d8ff1;\n border: 1px solid #3b5e91;\n padding: 8px 13px;\n border-radius: 10px;\n color: #fff;\n background: #7caaef;\n border: 1px solid #4875b6;\n display: inline-block;\n }\n .popup-content-area .user-avatar{\n margin-top: 20px;\n width:30px;\n height:30px;\n background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAYAAACtWK6eAAAQAElEQVR4Aex9CZwUxdn3v3pmL/a+lz3YG1gWhQUBEWLUF0SCGNTXM17EeATQ1+s1h4khgkc+lbzCAsGbJBrUJB4YiCKiIiJoFFSEZbnkvnfZ+5jp+p6adZaZ3ZnZObpnenp6fl3T3XU8V9W/66mjZyQYH8MChgXcWsAAiFvTGAmGBQADIEFsBUt28uSFW3hZ9XY+ZuEOflF1Db96UQ2/dVEtv2fhdv5buv99dS3/Bd3PXFjDb6jexn9Mec9dvIMPXbib58zm3KivINaXYGUYXFhBgTB7DTcvqOGDF23nU6hxz6IG//jCWr6MGvvHdM1FsFhRjyjUMuBTyFjJGP7GGZZwjicBPET3DzKOx+i+GgxLmYQ3KO+Hsoyv0YlDmbWwCjoUvqTwNoXFBLBf0fkaAtKY6q08HcZHUQsYAPHDnI99zpMXb+cXU6N8jMJyaqA7M/PQKTFs5cDbYFhAZO8Dx1XU2MfRtdLHcCI4hcLtBLBH6PwyAelTZsJxkqVOgJKAuoR6qVsEaCndOPy0gIoA8VMijRajxnY+Nb65FL5ITEK9DCynRvkLCheTyCUUtHKkCFASUG+lXuppAVoCy0GS+wVy365f8i3vrxVBw0EOAyBuakk0JHKRbqaG9RoFTo3tfcr6AIUqCmF1EFgEKG4i9+3PFjMEWD4V45353/Kzw0qREAhrAMTB6NRLlNH44V4CxIeiIZGL9Cwl/zcFvR1jGMODJjPWk66cHgQLyFWcqDclldAn4gFCoCigp+k95Ld/R71ELY0fniDDnkshcg6OWeQqvivAQraoXlDLz4sc5T1rGpEAWfI5j6KGcCOF1QSKvfQ0fZL89gGeTRUZqWSLmRLHGgLLXhq7zJlfy4dEhuautQxPgLjWpc9YGqRWUsU/ZUnCSWoIL1K4oM9CkZuhgAO/MXFsIZutoh72ikg0RUQAhPzrc6mSX6VB6jdUyXdSSKBgHN5bYAL1sK9Sj7KFet2Z3hcL/5y6BsiftvOJNABdQf71h1RVEfkEJL0VO6hHGUK9bjU9bPZTuG92BKzs6xIgYpBJs1ErrMC7NBM1WbEWYhCyWyCPLh7PrMU+svPddK3bQ1cAWbSNn0kV9ooYZNJslAEM9ZttLtl5HvUmteR+TVefXfA56AIgYhMgVdAfuYTNYLgyEDMaZf2yQBm5X88TUNZSPUzwi4JGC4U9QKq38Z9brNhBFXSXRm0cSWKNp3pYRSB5fnENF25Y2OsetgAhV2oUzaisZhIWUS1kUDAOjViAQDJdZqghoNyhEZH8FiMsAUJz8r8nV2ojzagY6xh+V73qBeMJKPPJ7Xp3fg0fpjo3lRiEFUBooW8s9RobOMeDKtnDIKu8BSaaGDYRUO5TnrT6FMMGILSe8Uta6PuEeo3R6ptFFQ6RTvRxAsnbC7bx4nAyhOYBIgZ7ZNi3aD3j0XAyrCGrSwtMkSSItyGvcZmqwUhNA4R6jaky8DnZbSoF49CHBZJJjZepbsWuabrU9qFZgNBY49fUa7xFg/EcbZvQkM4vC3CI927enV/L8/0qH6RCmgQIPV2W0ljj4SDZwGATOgtMNHGsX7yNa3Y2UlMAqd7FC6nn+Jh6jhtCV2fhyDmsZc6XJaymh+LNWtRCMwBZuJWfAws+op5DjV8B0aLtDZkcLcDxLK1vaW76XhMAofWNH3MT1jDAeKvPsdFE2DWtb/1+YQ1fqCW1Qw6QRTX8RlrfED+QFq0lwxiyhMgCDDNoWv/lEHHvxTakACG/cwZneBHGx7CAswWuobbx1mwNvJAVMoCQv3kXODTVnTrXkXFns0CovjimZu7ASpoGjgmVCIJvSABCT4e7OccfhQBGMCzg1gIcF9I08NuvbuEhc7+DDhDbFmiOeW6NYiQYFnC2wITjUXgLIGfcOT4od0EFCK1x/ExsgQ6KZgYT3ViA2sykhbV4PRQKBQ0gNOa4gtY4ngmFkgZPHViA48c0BfyXYGsSFIAs2MYvoDHHq8FWzuCnbQv4LB3DddXb+VM+lwuggOoAoTntCknCsgBkNIoaFui2AC0m30neyK+6I1S+UBUgj2/m8aTQS6RDJgXjMCygiAXIG3mExrPXK0KsDyKqAiQuFn+hAVbY/Z9GHzYzkjVgARrP/plcd9X37akGEPIVHyMlLtWALQ0RdGoBJmHpkhqu6i/aqAIQ0f2Ra/ULndaLoZZGLEBtrNTC8LwLcRSLUhwgC7byM6jnMKZzFasig1AfFphKi89z+sjjd7LiAKEZqz+RNCHdP0P8jSOCLEDj3N+IVybUUFlRgJBr9SQYzlFDUIOmYQFPFmAcixbv4Fme8viTphhABILJtbrHHyGMMoYFFLBArmzFAgXoOJFQBCB/2MYTmYygrnA6aWHcGBYQFmC4ksYjt4tLpUJvgPhBOcEE4VoV+lHUKGJYQFEL0Hhk3jN7uGK/3hgwQBbV8GnguEVRLQ1ihgX8t0BcRwee8L+4c8mAAcKBPziTNO4MC4TcApctrOGK/HRUQAChgfkjYBgYcnMYAhgW6GkBhkfEXsCe0b7e+w0Q8Z8PNLUWtF2Vvipm5I94C+T1i0XAC4h+A8QkYTZ8/BjZDQsE1QIMd5OXMyIQnn4B5PuB+bRAGBtlDQsEwwIMCOjXGv0CCA3MfxMM5QwehgUCtoB4VbeW+/33GT4DhGYHbqGB+ciABTcIGBYIkgU4h99jZZ8BQuC4P0h6GWwMCyhiAXKzxtIK+7X+EPMJIAu2c/G3vmX+MFK5jKbJx/EmFFi3Y2T7u5jS+jSmtVTjiuYncW3zI7ixeTZ+1vxr3NL0S0w7/AR+uusuXLfnV7hy70OYtv9xTD5UjbEn/olBjeuR2b4HUbxD07pqVTgaFtznj2w+AYQy3+0Pk0grY+adKLNsxg/aX7eB4brmubio9XmM6HwfudZdyJT3I4UfQzxvQDRvA+Nyl4miyMJ0FS23IsFyEmkdB9C/dQcqTn2EccdewdQD/4frd9+PKQfnY2j9+8ho30u5jcNLC1Qt3MZ/4mXe7mxdNdJ96/6CuiixCUyxPS7uOYVvSp6lFue0v4UrWp7A+W1/w+DODTYweKtRhznOq6zZbbsw+uRbuOTAPFy27xGMPvEGstt3eVU2kjMxCXf6qr/XAOEMs3wlHgn5Y+UmjOx4D5e1zMeP2p5DZecnSOCngqZ6SudRDD31AaYcIP4UKuk6ztoYNP7hxIjcrNGLavklvsjsFUBo5uoqcFT6QljveaPQgWEdH2JaWzVGEEDS5YMhVzmHepExJ94gV2wegWYNJFhDLpPWBJA5Zvgik1cAoa5JuFe+0NVRXmdVmHhSdK63jS1Gd6xEolzvnCGAOyYHUNihaIKljtyuNzF1/zwMbNzgkGJc0ozWJHrgj/LWEn0CpHo7H0PzyOd5S1DP+QZ2/gfTWqtxTvubSJGPKq5qdEeTojTTaZA//tjfaCZsIQqbNytKO5yJkav1M2/l7xMghDi/5o+9FSAc8sXSNO0P21+DCBnWA6qJnNCiPOiEsP1ba/FfR16gmbBXEW1tEVERHRjDT5Z8zqO8MUKfAKGFwaD8xKM3woYiT651J37U9jxE76Em/zqWhSjeqSYLWkv5BJMPL0Zu63ZV+YQB8fjOZFztjZweAbJwO7+MXO5UbwjpMc8QmpGa3Poc0q3qD8DbeL+gmDC9fR8uOrQIZ9SvDgo/rTKh8d50b2TzCBDy1a7whoge84ynRb5xtKYhQaGRsysjOcTxIE84jTq5HBccfRGJlhMOUkTQJcP5S77l/fvS2C1A5u3jcTT+8Kob6otJuKVf2LYUFbTIF0y5ozpbg8nOxquoaRMuPPgn22q9LSLCvizRuLwvld0CJKYNl/VVWI/pU1qfRaFla1BVa2BpSGv4Lqg87cySLccw8cgzkQkSa99t3C1AaOwxzW7ESDn/uHUhcq07gq5uk5wUdJ6ODM1yO00FV0ceSMjNml/L8x1t0fPaJUBmd/3t7n/3zKzn+6mtS5Bl3RcSFaNatTH1OvlQNVI6joTEBqFiapLhceuJS4BkRuHiUAkcCr5j25cjx7o7FKxximUgrWmv4rz9JXjZ/kcRZ23wt3j4lZM8t3WXACEtp1CIiGNIx3oM7VwXMl1b5ISQ8XbH+MLDz9CaTLu7ZH3Fc0x+bhtPdKeUO4D81F0BPcWXW/6DcR1vhlSl6JbGkPJ3xTy9fR/OPSr+WtJVqv7iaP5wsjutegFkUS0/211mPcUXWr7FeW2vhVSlOpaNlGb1tq4Eolxh81cYUbcyEBJhU5ZJmORO2F4AkWVc6C6zXuIlbkFV55qQq9PeER1yGTwJMLzuHeS3bPOURS9pN7lTpBdAGIPuV88FODJDNGNlr4g6loXMulr7rWbPVSdXwMydxiOalTUAwaSF2/lwV+WdAPL9YGWoq4x6icu27tFE79HZ5mR6zZo3s2MvRkaAq0UdwwWuKsGpltpM0P17H8M71pz+kQSE5nMC/ZF+ak9omPvBtbL+A+S07fSjZPgU4cBEV9I6AQQyfugqk17iBnV+hgHWmpCrw1s7Qy6DrwJUnvrQ1yLhlZ9jvCuBnQDCGX7gKpNe4sotX4RclWPIQ2rj/pDL4asAYlaruPlLX4uFU/6ExTV8dE+BnQBCNy4HKj0LheO9mNbtH6LVckd7Sa1tjrdhdT1U9V4ktOaQgWE9JSBMdEVVb+UDyQ/T9rxjl6h+fZdpoPeokwqQ0qjNdQ9vjJrZtgeFzd94kzUs89B6yOCegncDhJkxqGeiXu6zrXtRYgl9xbLUc3EoPbznQQbQAqJe2kVPPTjHmT3jTgNERnnPRL3cl1o2hVyVg3FjkRqbg6z8c1AXkx9yefwVoLD1G8RZGv0tru1yHJU9BewGCJdQ2jNRL/f5IZ65apLSkJ7Y5d7GSAxydvjOhYhfRRnQ+rVemoazHozm351j0A0QyCjpkaaLW/ECVLIc2veuG/uNQWxUfLc9s9NLUJ/jdvtPdz6tXoTlOMRLYy7azp1wcBogDBd5SSOsshUG+fXZnsY5bi5FbvKQntHI6H8W6jLDczyS01qLaGtrL530EGGVUQSHz2mAOETq6bLAui1k6lhYDKKSx7rln5k/Doezf+Q2XasJ4u8dctqC/2pyMOwhSRjgyMcGkCdqeIZjpF6uU+UjCKV71ZBwPlJisz2aMz+3CkdKb/WYR4uJ/XUKEAY4zaDYANKPI1eLlRCoTKHcsVsXNwLpSb0mRVyqlJeUiYbBd6IpKtNluhYj+7fqswehtcA8R3vbAGI19R69O2YK1+t06kFCIfspcwHS0s73iXVaXCLiKn6Kg4nhsZlB/PuVcLV8UjIcMnNnLNgAQjOPnvyAcFDLpYwp8mGX8WpGinFHSvaVfrGIMZkxoGwKDqW63DfnF001CyV2HlOTfGhoMzhhwQYQyMgKjTTqck0PAUCicmcFrFRB0Q9xpP8UtJsSAqalJoGkzuNqkg8V7bMdGUu2G4Z021lHX7FoQRxvQ+oLKAAAEABJREFUDKpGLO9exfjl5QyHpewGHE3SrsuVrE+AONWhDSCMI80pVgc3qZbguldKgsNu/uR+qcgtnYKj+Zei2ay9Z1hi51G7qLo6z17DzXaFbAChkXuqPcI4+24BNcDhKEVu5hBEDboeR5LHOEaH/DrJoksXC/1zkYLvP3aAOA1Mvk8Lwim8WbShH9QGh91C/aLjkVcyAccHXI36MN7saNdHy+d2Ccl2+WwAoa9Ye4Rx9s4C+6JHIC7v595lVjBXTnopMobciOMFV+FYQqWClA1SdguYOBLt14QNgHPE2SOMc98W2BV/MQZk+rbO0TdV33LkZJShf/k0NJT+DEdSx6JdMqrQNwu6zy3LiLen2gACZgDEbhBP52YpFQdTrkZpinbeLUtLykZe0QXA4FtxJHsSGqJzPKlgpHlhAZN0Gg9dAAHavCgXVlkSTLJi8lphxqHY0bCkXoq8eKedCIrxCJRQfEwC8nLPQlrlzagvuQFHM85DfazTvrtAWURMefKouvFgB4ju9i43mQvxbcpt2Bk90u+KbWP9sDd2HOrTpyM3/QdIiU31m1YwC2YkFyC3YBwyKq5He8UdOJ47FSdovGJh0YqIcSI6FzuypqKjSJ9/IWO1oNluKN0CpJGbMLBfItLTJ6Am6SfYG10FC7xrIMdMBdgZex7qCBiF6WcjIzbJbq+wO8eT7DnZZyK7fBpih/8v6ktuwrG8S3GEephjScNRFzsAbV6u2B9NPBP786+GRO7c4Lwz0cS0vdLvb2WZYtC9wmwDCAd0t6mmSZbQTCBJlSwYnJiDwswL0JF1E44mTcXhuLE4FlWOE6YiWzhqHoi9cT/AzsTLcShjFlKyr0JZ+kjkxsT6a2PNlstIzkP/rCHIox6mf+kUZFZcj4Qz/wfyGfejceBtNgAJEHWFm9EyaCasQ++FueoB5JZNRVFmKTJNnTb92si+tgudfVk5TtlVsgGEVtLr7RF6OrdYmZM68VGJyE4ciP5p5yAr6xJk5FxuC9nZU1GYNhplSUUEihhEk0GcCkbATbQ5CqnxGRAAOh1ykNQvBTFRrh8UjfQQ0qNpYk6hGw9dAGE4CR1+mmHSoVbaUanOqk/73nYW6+oiydQ2gJCLpcs9Aw0qVSDZLeKPdpmhXjbr3g42gJAjorsxiKi5Uzr1kYVuoQ4t1DvTgzXUYijOn6Z4NzoStQFENuGIY6RervXqAmihfhqstqajBVEUlYExZyx0aSnjsKJcNELslOFiqVYTdfRUVY14CAlTr3jIkb0NIKwDBx0j9XJtAcMBS7Re1NGUHns7YzQlj1LCSNRkHGnZADKzkumyBxGK1naEVUUKkTUfmmhsd9gapXk5/RFQBpz+vMUGEH8IhUuZ76wGQJSuqx3t+rWpxLHX0V6OAHnPMUEv12I6cpdO3YFQ1dEeHbutnRZ852jX0wDh2O2YoKfr7wyAKFadx61mHNWpeyWM1L8Cu8TZHk4DhEGfP5VHmu61RkMM2OnSOAK0gM4fNseuZMzqaKLTAAF0CxDhZu3ujPTZLMdq9/96n0Wfg3NhEVow3yLOjqEbIJyhxjFBb9f7DTcr4CoVrpUIARPSKAFaA/mqp2jdAMn6EqH7n4CeUqlwX0sAOaJj31kFk/UiubXD9a7eXhnDNII6iV4Y6AbIlVcysTl8c5jq5pXYW9r1XcFeGcHPTAfp4VKjc4AwGb3+W64bIMJunGOdOOs17OiMxX4d+9Bq1tu37XFqkg85bXKvOmYOYh/3FMQJIEzCB9D5Z0tHP51rqLx639EEh8e1JOVZBp2ixNALHEIIJ4BYAN0DJBIqGwp/IuGhIstwuVDuBJA7y9kxxlCrsH01R+5bYyzidZ1EjFvK8L4rozgBRGTgMv4hznoOB2nhUO8DTqXqL1ImNmYNZBtc2awXQGSOVa4y6i3u6444iF2petNLSX02tfdDhEyNv+TObr0Acsdg5rKrcUcgXONPWs1Y25IAmr0IVxVUlVu4Vhvb4lXl4Q3xYOSh2dt33PHpBRCRkZbcl4mz3sM+SzQ+bkvUu5o+63eI1jzeb4kcu0QBK90ZySVAyM1a4a6A3uK30oD9C3Il9KaXv/o0yCYsb0rxt3j4leNYc9sg5vZXfVwCRGrH2+Gnqf8Sf06uxFYak/hPQR8l6cGI1yMJHKLaJCwXJ3fBJUBmnMnqyDl32+24IxbO8WtbExDpO37/3pSGdu6ySYRz1XqWvcMPgAiKNA55Q5wjKaxqSYYYl0SSznZd32pOQT25V/b7CDgLFdfPrGQeX/Nw+7iwSHhdUIi0sLI5GRva9Pmr5a7qUvzA99KGDByOwD1qNIPZZxt3CxDbqjoiayxib0Cb2+PwNj1R7fd6PW/viMVLDcKtIn9Br0p60Isaf5+L4pTHPQWaH37Nfaq+Uw7SE/UV8snFO9h61HQ9TUx80Bo5U7ku6vDTGQOZ0/vnLvLAI0COReNVKuT0ji7dR8whfpnxLZrV2d6pn/dIOBhWtyTh6wif2mYcL3jTkD0CZHYxa6PO96/eENJrHgs1qA9o0WyTDhrUMasZy2mMtbNTv79r5WU75DTG9mox3CNAvmfWGyDfJ0TSaSO5JG9SbyK2YISb3mLx7xOaxn6jKTUiB+M964sx/JXG2A09413d9wkQ8tPEPvlNrgpHWpzYuCe2YKygAbx4r0Tr+rdwBrEI+npjCr6hhVCudYGDJ99z3rLqEyCCELlZS8TZCF0WEK/tvtOSjPfIlxfvanfFaudbuIWbaCbuDZpkENto2j0PNbUjeHAk+WhGOfvQW1ZeAYR6kT+RK67bH7j21lg984nXUN8mt+tDmg06Sv59z/Rg37fRKrjYMiN6jI20liP+yDTYMmidH83MLvZFRq8AIggS4YXibITeFhAvXwn//h/k42+ghrnfErwfqWuQJXxL6xmrqDf7W2MaxJaZugj4a7TeteBVzDezBjGvBud2al4DRGaYT4WaKKh6hDPxE9SLbCbXZgXNFC1tSMca6lnEjFEHjQWU1EvwEa6TAOWyxnR8THx208xUp8J8lJRZC7ToIf+Ur3J4DRDbqF/CH31lEKn5xaa/WnqyizWHFxsy8HYTjVmak7CuLRFftMdDuEKiUYstHvVWE9qpcYvdtM3UIwgAiD1htbT+8hVNLwt3SUw1/5uA9xIBQvRUYvCtBbcujOp3G/Uez/oqr9cAEYQ7GjGPBuyN4toI3lkgmlakMmM4EvpFITUxCkkJMUhKjkNyajziUhOBlGS0JaeiLjEdRxMz0JiUhs7kFESlJCExNQHpqXFITY6lsjHITDQjO44hNXgeHHTzYXjCH10kXwrdXcXqKf//o2AcbiwQbwZKEzh+mMlxVYGMn5ZwXJ7PcUEWx6g0YFgKx0BKz4/jyI3tOxT0AwYlclSldpW/MKeL7u2lMq4awHFJHsdISsuNA0zMjVBG9KaZ5czrqV1Hc/kEEFHwaDkeo/MBCsZBFogzAcXxHOPTZVxRwHF9oYyJ2RwVSRxqP+lTo7oANiqNgJIrY3qxjB/lyAQYWXXepHrYHOS9PuqvsD4DZDZjFmL4sL8MQ1hOEdaMWZEhfYWh8bsxuT/HjUUyJtFTfWgKkB4d2qU4M/UgA+Jh66lE73UZ9VyjEjchBqLjR6R+Vs0qZ2JPoV/6+wwQwYUYLqa62CiuIyUkS7tQYvoXRpn/gIGm15DEv0Bhv9ACok/by82IavsHRkY9STIvQ6rnd4P6JBeWGTgeCkRuvwBiY8gxGzr/mFgH8qX3MSxqMSpNLyBH+hRmtHZp3bkJh1sauq41+t3Q+p9uyTKkLagwLyU9nkMWOx3fnUGfF0tc/SC1L6r6DZAZg9hKMPzZF2bhlDeDbcZQ0zMYYFqDeBx0KXpjc9dPGa/cthSnWk+6zBPsyK8Pb8TGAxvQ1NmJ1u/lc5QhWdqDMvMbNt3Spa8dk/R1zVBvZfhtoEpJgRCwAg9Q+WYKujkS2D4MMi/DQPPfEc88765ppSf0gjVXYcNXN2PBu6Pxzra/hMwOh5v2YcnaW/CPj87BinXjsHnv0+Dc4laeJGkvBplexWDTX5Es7XSbL2wTZDxwZzk7Fqj8AQGEBNgPjl8GKoQWypvQjiLTuzjD/AzS2RavRNrdGI8Tx8Rbm4ClfQ/WfzWdGultONLkusfxiqgfmVbXvozn35+AQ4dOvwP0+R6xCbtvYmlSDSpNL6LM9E/ES0f6LhAeOd4l12qREqIGBBAhAAlSzRhWiutwDSmsFpXmF5ArrSWv0fuB957je3upfOjQc3iOGuuq7a/0SlM64lTrYTy7bgbWfnkDOtqce4H6uvdR3y57zTJL+hIVBJRMtsnrMlrNyGT8r1KyBQwQIQjnuJdaFnlc4i68ghiEDzH/GQnsgE+Ct/MUNDZ87LJMR9t2rNv0Ezyz7g6caAm4l3fJ4+Ndf8fi9yZi/4GnXaZzmsHad8q3TQ/RaEK5+R8oMrn9qVqXvLQUyYD7Zwxmvf6M018ZFQHIzIFsK2TchTD6CEBUEDDEINwfsU91SrC0fuOx6IEDi/E09SYf7Pinx3y+JLZ2nMTS9Xfhvc+vRlvrVo9F65v8A2eu9DH1qEsRdi4Xw79nDGSPezSKj4mKAETwFK4W9SJ+L8gIGsEKWWwThpBLlcpq/WZ50svG196yBR98cSWeX38vGtsb/OYnCm7c8ybmr5qA3fuqxW2foal1T5953GVIZjtsLpdYFHWXR2PxLSYJdyotk2IAEYKZZcyk8z4Kmj1ypU9QRm6EmQblgQhZ1+SbS7Z331NYvHoSNuxd7Rtbys25jFc++w1WbLycpm699x7amr2bbCAWLo9ocrkGml5DnvSRy3QtRTKOGbeXMv+feG6UURQg4leyaTxyuxteIY8W440ikzLzCbK1w2d9Wpo+w8pPJ2HZF494XXbnsU/x1KpJ2LpbbIHzupgtI5eb0C4HXsWFplUoMS230dTiF00SLaR1uaVqyBa49XpINWsQW0EgEesjPVJCeyvA4e94w5XknXKbq2iv4rbteBBPvXcpao9/4zH/ii3z8dJHk1Bfv8ZjPk+J7RbvZ7I80cmRNtKaycuesoQkjdrauhnlbJZazBUHiBCUQPIIAzRjTaXBIXS0WFvFye9Qd3I5lq2dhH9tfb4XjfrmPXj6oxuwccs9kK3NvdJ9iWhRCCCCZ5q0FUNp7CautRA4UC9x3KymLKoARAh8tBPTaREx5Jt+UqRdULLnELqJYLUE1nBtNDqP4LOvb8XTH89AXctxEYV1O1+1jVUOHlbm+dJhUXb2PYntQpH0b5usIf+ScRNN6daoKYdqAJldyTrAcD11gSHbpBRPK8NDTKdXlxU1JFPutb6DB5/G02smYMWOt7HqP9eivceiXyBymyXmtri/CbmmdciQvJ8s8JePx3IM98wazN70mEeBRNUAImQT6yM09XatuA52iEEDhtDKsFp8TaZExUhLpgQMLxiK/OjPkJVxnmJ0BaEYs0mcFJxHoFgAAAjcSURBVA9iditF+Ukjr+QkyP/fzHIWlN9HUBUgQtuflzOxLDtdXAcrmGChqdzXEUXTlGrxVAogaSmjcMlZM9E/pdQm6viycRhedhUkqZ/tPtCvWDM1p0CJuCk/yLQMCZJv091uSHkdTdoso8XAu70uEGBG1QEi5KOe5EU6K7Y/hmh5PIppSjKZ7fCYJ9BEFmAPwqQYVBZNxXmDL4TEzE7ilGSU4aKqW5CcPAaBfmLV6UBsYplYB0qlN2GG/zN6NkLefnG8R+C4xtvsSuQLCkCEoASSJ2jWYa64VjNkSN8iS/pCTRY22jHRSbazP1/JySMw4YybMCjnTLfFY6MS8F8VE1BacDlYDwC5LdQjQTInw0SP3B7Rit7Gs0PIN/k/De2tMDSW3WiVcLm3+ZXKFzSACIFnDWS/JUXniWs1gnCt8qQP1SDdi2Z8TEqvuD4jmISy/Iup4U9GYlxGn9lFhmF5g3HukGuRmDRS3PoUoqLzfcrvb+Zc6ROkSVsdiyt6TRj/NioG0+4sZ4Ht1fFDqqACRMhHayT30nk+BcWPXNOHiGcHFafrimBSXJKraLdxSUln4NyKa3Fm/jC3edwlpCcWYOKQi1CYe6m7LC7jY2KyXcarEVkgrVHF1RLgYFZMua2Iuio1BO+DZtABIuQhd+t/6KwoSBLYPuRLa4lscI6k2BivGRXnTcWEIZcgI6nQ6zKuMo4cMARjK25Bv8ThrpJ7xcXGpPeKUysinqniam21yrj45xXM/12XASocEoAImW0g4XhSXCsR8k1rwaDsopgnuVKlfTDHneEpC+Ljz8C4ihtRVeB+rOGRgIvE/slZmFQ5Gfm5V7hIdY5KiUtxjlD5Ltfmaim2bvclJEy6YzDbrbLYHsmHDCBCqpmD2H00JnlIXAcS0qQapDH1fGBXsgkwJiUOdZVki8snd2jC0CnITlZ+HMAgYfSAgRg5eAbi4t27bHnJvrmBUOCTLX0eMBUGrDVzXDizjNyCgKkFRiCkABGi05jkdwQSMS4Rt34FJSrFH8aZSb19/Lj4oRgx+HZqwENgYirOsZLAhSmpuHDIJOT0v5LunI/o2DKkxsY6RwbhLpVtg3hgBcBquYVhotgZ7ppGcGNDDhChLoFkHoHkBnHtaxCVISrF13JK5K/MiEdq+qRuUlk5V9BYYzKKUoLn+5tMUTinsBxnlt+JmH5Du2Upyz2n+zrYF34/sBieI9f7Epqtag+2zO74aQIgQjgCyV8IJBNoreSIuPc2+F0Z3jLoI9/YogpkZVyAMwbdhfFFAxFlUm6PVh+snZLL0hMxofISFOReiaK8H2NwVoFTejBvxANLPLh85DlnZjn7mY9lVM+uGYAITQkkq5mE8QSS9eK+ryAqQVRGX/nUTI+Nisf4srEoT41Xk41XtGNMDKMGlGNEwemexKuCKmTy5cHFGW6mnuNBFcQImKSmACK0oYHZDlpQFP6B2J4iotyGTPal2zQjIbQWEA+uZOZ5AooehDsZx7mzylnvl2JCK343d80BxC4ZPVGmM4Z77fc9zzGsDulSYO9c96Rp3CtrgXTpa/cEGd6gWfkxMwaxtdDKx4UcmgWIkHVGOZsHGRfQda/J9Wwp5O9ikVjG4ckCGZLbV4ofpPHGpbMq2AlP5bWQpmmACAPNHMzWmBMwgq6dXK4M5uHpRJmNI/QWMKMVmWyzoyC11GtMIu9gjmOklq81DxBhvNtyWQsZdTpdi3CqHzuKWHaSbo1D6xbIMW3oEpHhmfY4DJtZwd7tigiP77AAiN2UBJIXoxmGDpBW77THGWdtWyCR7QOXcRW5VLfeU8AC+6WLEKgaVgAR9rmlnO3PkLZc14mE3eLeCNq2gEWO+sOswexVbUvpXjqlAOKegwopw4of/nR08S9LrDxKsc2OKogZ0SQtPG6bzK3njir93S/D2RBhCRC7wc8q+d19jEkXWBEX4p/YsEtknL+3wKOjSh6oGFnyqKancL+X1eMprAEiNBte9NCas4ofGMY5wmZmRMitx8C5eR2XpQlVxXN/rRf9wh4g9ooYUTL3QWbmY8DwV3uccQ6OBTjM22lVfMaIktnjR5Q+tDo4XIPDRTcAEeYaXvDwxqqiudczSBeB83/B+KhqARmmvQy4JxUYNqJ47mJVmYWIeBgAxHfLDC9+6J2qkocv5mDXgLF1vlMwSniyAOfSEWo4v5bAhg0vnvvH4uLZQfrdH09SqZMmqUNWG1RHFM9ZVlU0Zzy4fAsYPtaGVGEsBZf2M4YHY5g0fFjx3EerimfXh7E2Xomua4DYLVBV8siz5Hr9gAbyV1AFv22PN85eW6CGHjD3d7R3Dh9eNHdOZfHsw16XDPOMEQEQex3RQP7vVMFTaWV3IgHFGMzbDeP+vJkeKndaY8wj6AHz+JiKRzW/udC9Kv6lRBRA7CYaUTr3PQLK9Vzmo2QZv6eB5vcbhuw5Ivp8EhwvgfHrhheZR9BDZcFZubNbItUiEQkQe2WPKH3485Glc2fTQPNsK9jZEQyWblBEm83lVSVzr6sqevglxmYr8/dUdoOH4TmiAeJYX2cVz9nQEyyU/gEFvR67yc18QfQUjqCoLJhtbJN2qHEDIA7GsF/awVJVPPd8wFIMyNM5sIzSw9rVoPHEWg7+KwLFONKthNzMn4qewgAF1aybwwCIG8PYo6uKH9tTVfzIi7QQdg01qniaMr4QDI+DsZU0dtlnz6fBcwONJcQa0GLI7CexUdYMGk+cO6L44ccIFJ9oUF5NimQAxMdqoSnjVVVFc++n9ZUfDS+eO8Aqd6ZAYuMJLLczxqqJ3Ad0HUzgiD9L/Ip4vgKG30iSdIno9QjMyTSWGE/nGVWlc16uyI+8GSiqi4APAyABmvCs0j+cqiqcs47AsmR40Zw7qEGeT9cDDllOxXLJWilzTg2W3c0EeKjXIVdN/KTRl+TqbAP4HmIvfgfsFD3tO+hapkbezIETlH8/ON9BDV+8W/wZpX1E4WVyk+ZQuZsEKKNh7k/8EigMI55XE3AfHlb40HLR61Fe41DAAv8fAAD//ygH+9EAAAAGSURBVAMA2K2weD45Y50AAAAASUVORK5CYII=');\n background-size: 100% 100%;\n margin-right: 5px;\n }\n .popup-content-area .agent-avatar{\n margin-top: 20px;\n width:30px;\n height:30px;\n background: url('data:image/png;base64,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');\n background-size: 100% 100%;\n margin-left: 5px;\n }\n .popup-content-area .incomplete-sentence {\n border: 1px solid red;\n transition: 1s;\n }\n \n ",document.head.appendChild(e)}}();class C{constructor(e,t=null){this.container=e,this.isOpen=!0,this.formattedSseMessages=[],this.sdkInstance=t,this.mapNodes=[],this.currentNodeIndex=0,this.qcsData=[],this.createPopup(),this.bindEvents()}clearAllContent(){const e=this.popupContainer.querySelector(".user-portrait");e&&(e.innerHTML='<h4 class="flex_two_text">客户画像</h4>');const t=this.popupContainer.querySelector(".smart-form-filling");t&&(t.innerHTML='<h4 class="flex_two_text">智能填单</h4><div>智能填单区域</div>');const n=this.popupContainer.querySelector(".thought-navigation");n&&(n.innerHTML='<h4 class="flex_two_text">思路导航</h4><div>对话思路引导区域</div>');const o=this.popupContainer.querySelector(".speech-recommendation");o&&(o.innerHTML='<h4 class="flex_two_text">话术推荐</h4>');const i=this.popupContainer.querySelector("#speech-to-text-content");i&&(i.innerHTML="");const s=this.popupContainer.querySelector("#speech-to-info");s&&(s.innerHTML='\n <div class="speech-info-item" id="speech-rate-monitor">\n <span class="monitor-name">坐席语速监测</span>\n <span class="monitor-detail"></span>\n </div>\n <div class="speech-info-item" id="interrupt-monitor">\n <span class="monitor-name">坐席抢话监测</span>\n <span class="monitor-detail"></span>\n </div>\n <div class="speech-info-item" id="agent-emotion-monitor">\n <span class="monitor-name">坐席情绪监测</span>\n <span class="monitor-detail"></span>\n </div>\n <div class="speech-info-item" id="user-emotion-monitor">\n <span class="monitor-name">客户情绪监测</span>\n <span class="monitor-detail"></span>\n </div>\n <div class="speech-info-item" id="violation-count-monitor">\n <span class="monitor-name">坐席违禁次数</span>\n <span class="monitor-detail"></span>\n </div>\n <div class="speech-info-item" id="user-sentiment-monitor">\n <span class="monitor-name">客户舆情监测</span>\n <span class="monitor-detail"></span>\n </div>\n '),this.formattedSseMessages=[],this.mapNodes=[],this.currentNodeIndex=0,this.currentTags=[],this.qcsData=[]}createPopup(){this.popupContainer=document.createElement("div"),this.popupContainer.className="seat-assistant-popup",this.popupContainer.style.display=this.isOpen?"flex":"none";const e=document.createElement("div");e.className="popup-title-bar";const t=document.createElement("h3");t.textContent="智能坐席助手";const n=document.createElement("button");n.innerHTML="&times;",n.className="popup-close-btn",e.appendChild(t),e.appendChild(n);const o=document.createElement("div");o.className="popup-content-area";const i=document.createElement("div");i.className="left-panel";const s=document.createElement("div");s.className="user-portrait",s.innerHTML='<h4 class="flex_two_text">客户画像</h4>';const r=document.createElement("div");r.className="smart-form-filling",r.innerHTML='<h4 class="flex_two_text">智能填单</h4><div>智能填单区域</div>',i.appendChild(s),i.appendChild(r);const a=document.createElement("div");a.className="middle-panel";const l=document.createElement("div");l.className="thought-navigation",l.innerHTML='<h4 class="flex_two_text">思路导航</h4><div>对话思路引导区域</div>';const c=document.createElement("div");c.className="speech-recommendation",c.innerHTML='<h4 class="flex_two_text">话术推荐</h4><div>推荐的话术显示区域</div>',a.appendChild(l),a.appendChild(c);const d=document.createElement("div");d.className="right-panel";const p=document.createElement("h4");p.className="flex_two_text",p.innerHTML='<span class="fw">通话监测</span> <span class="btn_gundong">暂停滚动</span>';const u=document.createElement("div");u.id="speech-to-info",u.className="speech-to-info",u.innerHTML='\n <div class="speech-info-item" id="speech-rate-monitor">\n <span class="monitor-name">坐席语速监测</span>\n <span class="monitor-detail"></span>\n </div>\n <div class="speech-info-item" id="interrupt-monitor">\n <span class="monitor-name">坐席抢话监测</span>\n <span class="monitor-detail"></span>\n </div>\n <div class="speech-info-item" id="agent-emotion-monitor">\n <span class="monitor-name">坐席情绪监测</span>\n <span class="monitor-detail"></span>\n </div>\n <div class="speech-info-item" id="user-emotion-monitor">\n <span class="monitor-name">客户情绪监测</span>\n <span class="monitor-detail"></span>\n </div>\n <div class="speech-info-item" id="violation-count-monitor">\n <span class="monitor-name">坐席违禁次数</span>\n <span class="monitor-detail"></span>\n </div>\n <div class="speech-info-item" id="user-sentiment-monitor">\n <span class="monitor-name">客户舆情监测</span>\n <span class="monitor-detail"></span>\n </div>\n ';const m=document.createElement("div");m.id="speech-to-text-content-wrap",m.className="speech-to-text-content-wrap",m.innerHTML='<div id="speech-to-text-content" class="speech-to-text-content"></div>',d.appendChild(p),d.appendChild(u),d.appendChild(m),o.appendChild(i),o.appendChild(a),o.appendChild(d),this.popupContainer.appendChild(e),this.popupContainer.appendChild(o),this.container.appendChild(this.popupContainer),this.minimizedBtn=document.createElement("div"),this.minimizedBtn.className="minimized-popup-btn",this.minimizedBtn.style.display=this.isOpen?"none":"flex",this.minimizedBtn.textContent="坐席助手",this.container.appendChild(this.minimizedBtn)}bindEvents(){this.popupContainer.querySelector(".popup-close-btn").addEventListener("click",()=>{this.togglePopup()}),this.minimizedBtn.addEventListener("click",()=>{this.togglePopup()}),this.bindDragEvents()}bindDragEvents(){let e=!1,t=0,n=0,o=0,i=0;const s=this.popupContainer.querySelector(".popup-title-bar");s&&(s.addEventListener("mousedown",r=>{if(r.target===s||"H3"===r.target.tagName){e=!0,t=r.clientX,n=r.clientY;const s=this.popupContainer.getBoundingClientRect();o=s.left,i=s.top,r.preventDefault()}}),document.addEventListener("mousemove",s=>{if(!e)return;const r=s.clientX-t,a=s.clientY-n;let l=o+r,c=i+a;const d=window.innerWidth,p=window.innerHeight,u=this.popupContainer.getBoundingClientRect(),m=u.width,h=u.height;l=Math.max(0,Math.min(l,d-m+750)),c=Math.max(0,Math.min(c,p-h+300)),this.popupContainer.style.position="fixed",this.popupContainer.style.left=l+"px",this.popupContainer.style.top=c+"px",this.popupContainer.style.right="auto",this.popupContainer.style.bottom="auto"}),document.addEventListener("mouseup",t=>{e&&(e=!1,t.preventDefault())}),this.bindMinimizedBtnDrag())}bindMinimizedBtnDrag(){let e=!1,t=0,n=0;this.minimizedBtn.addEventListener("mousedown",o=>{e=!0;const i=this.minimizedBtn.getBoundingClientRect();t=o.clientX-i.left,n=o.clientY-i.top,o.preventDefault()}),document.addEventListener("mousemove",o=>{if(!e)return;const i=o.clientX-t,s=o.clientY-n,r=window.innerWidth,a=window.innerHeight,l=Math.max(0,Math.min(i,r-60)),c=Math.max(0,Math.min(s,a-60));this.minimizedBtn.style.left=l+"px",this.minimizedBtn.style.top=c+"px",this.minimizedBtn.style.right="auto",this.minimizedBtn.style.bottom="auto"}),document.addEventListener("mouseup",t=>{e=!1,t.preventDefault()})}togglePopup(){this.isOpen=!this.isOpen,this.isOpen?(this.popupContainer.style.display="flex",this.minimizedBtn.style.display="none",document.getElementById("seat-assistant-auto-container").classList.remove("disable-pointer-events")):(this.popupContainer.style.display="none",this.minimizedBtn.style.display="flex",document.getElementById("seat-assistant-auto-container").classList.add("disable-pointer-events"))}setCategories(e){this.categories=e}setMapNodes(e){if(!Array.isArray(e))return void console.warn("思路导航数据格式错误,应为数组");e.every(e=>"number"==typeof e.id&&"string"==typeof e.template_id&&"string"==typeof e.map_name&&"string"==typeof e.map_prompt)?(this.mapNodes=e,this.currentNodeIndex=0,this.renderThoughtNavigation()):console.warn("思路导航节点数据结构不正确")}setQcsData(e){e&&Array.isArray(e)?(this.qcsData=e,console.log("📋 popup组件质检配置已设置:",e),this.initMonitorDisplay(e)):console.warn("传入的QCS数据无效,应为数组")}initMonitorDisplay(e){e&&0!==e.length&&e.forEach(e=>{const{item_target:t,item_type:n,id:o}=e;let i=null;if(1===t?1===n?i="speech-rate-monitor":2===n?i="agent-emotion-monitor":3===n&&(i="violation-count-monitor"):2===t&&(4===n?i="user-emotion-monitor":5===n&&(i="user-sentiment-monitor")),i){const e=document.getElementById(i);e&&e.setAttribute("data-qcs-id",o)}})}getMonitorName(e){if(!this.qcsData||0===this.qcsData.length)return"";const t={"speech-rate-monitor":{item_target:1,item_type:1},"agent-emotion-monitor":{item_target:1,item_type:2},"violation-count-monitor":{item_target:1,item_type:3},"user-emotion-monitor":{item_target:2,item_type:4},"user-sentiment-monitor":{item_target:2,item_type:5}}[e];if(!t)return"";const n=this.qcsData.find(e=>e.item_target===t.item_target&&e.item_type===t.item_type);return n?n.item_name:""}renderThoughtNavigation(){const e=this.popupContainer.querySelector(".thought-navigation");if(!e)return void console.warn("未找到思路导航容器");if(!this.mapNodes||0===this.mapNodes.length)return void(e.innerHTML='<h4 class="flex_two_text">思路导航</h4><div>对话思路引导区域</div>');const t=this.mapNodes[this.currentNodeIndex],n=this.mapNodes[this.currentNodeIndex+1]||null,o=document.createElement("div");o.className="thought-navigation-container";const i=document.createElement("div");i.className="navigation-top-section";const s=document.createElement("div");s.className="node-index-container",this.mapNodes.forEach((e,t)=>{const n=document.createElement("div");n.className="node-item "+(t===this.currentNodeIndex?"active":""),n.innerHTML=`\n <div class="node-index">${t+1}</div>\n <div class="node-name">${e.map_name}</div>\n `,n.addEventListener("click",()=>{this.currentNodeIndex=t,this.renderThoughtNavigation()});const o=document.createElement("div");o.className="node-item-line",o.innerHTML="---",s.appendChild(n),t!==this.mapNodes.length-1&&s.appendChild(o)}),i.appendChild(s);const r=document.createElement("div");r.className="navigation-middle-section";const a=document.createElement("div");a.className="current-node-content",a.innerHTML=`\n <div class="current-node-title">当前节点:${t.map_name}</div>\n <div class="current-node-prompt">${t.map_prompt}</div>\n `,r.appendChild(a);const l=document.createElement("div");if(l.className="navigation-bottom-section",n){const e=document.createElement("div");e.className="next-node-content",e.innerHTML=`\n <div class="next-node-title">下一步:${n.map_name}</div>\n <div class="next-node-prompt">${n.map_prompt}</div>\n `,l.appendChild(e)}else{const e=document.createElement("div");e.className="end-content",e.innerHTML='<div class="end-message">已到达最后一个节点</div>',l.appendChild(e)}o.appendChild(i),o.appendChild(r),o.appendChild(l),e.innerHTML='<h4 class="flex_two_text">思路导航</h4>',e.appendChild(o)}nextNode(){this.currentNodeIndex<this.mapNodes.length-1&&(this.currentNodeIndex++,this.renderThoughtNavigation())}prevNode(){this.currentNodeIndex>0&&(this.currentNodeIndex--,this.renderThoughtNavigation())}async getKnowledgeRecommendation(e){try{const t={query:e,categorys:[{category_id:this.categories?this.categories.category_id:"",top:this.categories?this.categories.top_n:5,score:.1}]};if(this.sdkInstance&&"function"==typeof this.sdkInstance.post){return await this.sdkInstance.post("/api/v1/agent/ccms/assist/xy-sdk/prompt-recommend",t)}{console.warn("SDK instance not available, using direct fetch");const e=await fetch("/api/v1/agent/ccms/assist/xy-sdk/prompt-recommend",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)});if(!e.ok)throw new Error(`HTTP error! status: ${e.status}`);return await e.json()}}catch(t){return console.error("获取知识推荐失败:",t),null}}lzprenderSpeechRecommendation(e){if(!e||!e.result)return;const t=this.popupContainer.querySelector(".speech-recommendation");if(!t)return;if(0===e.result.length)return;let n=t.querySelector(".recommendation-container");if(!n){n=document.createElement("div"),n.className="recommendation-container";const e=document.createElement("div");e.className="recommendation-tabs-wrap",e.innerHTML='<div class="jphs-tit">客户意图</div><div class="recommendation-tabs"></div>';const o=document.createElement("div");o.className="recommendation-content";const i=document.createElement("div");i.className="topNewRecommendation-content",n.appendChild(e),n.appendChild(o),n.appendChild(i),t.appendChild(n)}const o=n.querySelector(".recommendation-tabs"),i=n.querySelector(".recommendation-content"),s=n.querySelector(".topNewRecommendation-content"),r={};if(o.querySelectorAll(".recommendation-tab").forEach(e=>{const t=e.getAttribute("data-entry-id");t&&(r[t]=e)}),e.result.forEach((e,t)=>{if(!r[e.entry_id]){const t=document.createElement("div");t.className="recommendation-tab",t.textContent=e.entry_title,t.setAttribute("data-entry-id",e.entry_id),t.addEventListener("click",()=>{o.querySelectorAll(".recommendation-tab").forEach(e=>{e.classList.remove("active")}),t.classList.add("active"),i.innerHTML=`\n <div class="recommendation-item">\n <div class="recommendation-header">\n <h5>${e.entry_title}</h5>\n <div class="recommendation-meta">\n ${e.source?`<span class="source">来源: ${e.source}</span>`:""}\n <span class="source">阈值: ${e.max_score}</span>\n <span class="entry-update-time">更新时间: ${e.entry_id}</span>\n </div>\n </div>\n <div class="recommendation-content-text">\n ${e.content}\n </div>\n <div class="recommendation-score" style="display: none">\n \n </div>\n \n </div>\n `}),o.prepend(t),1!==o.children.length||o.querySelector(".active")||t.click()}}),e.result.length>0&&(s.innerHTML=`<div class="new_recommend_title">最新推荐: ${e.result[0].entry_title}</div><div class="new_recommend_content">${e.result[0].content}</div>`),o.children.length>0&&!o.querySelector(".active")){const e=o.firstElementChild;e&&e.click()}}renderSpeechRecommendation(e){var t,n;if(!(null==e?void 0:e.result)||!Array.isArray(e.result)||0===e.result.length)return void console.warn("[lzp_recomm] 无有效的推荐数据");const o=null==(t=this.popupContainer)?void 0:t.querySelector(".speech-recommendation");if(!o)return void console.warn("[lzp_recomm] 未找到语音推荐根容器");let i=o.querySelector(".recommendation-container");if(!i){i=document.createElement("div"),i.className="recommendation-container";const e=document.createElement("div");e.className="recommendation-tabs-wrap",e.innerHTML='\n <div class="jphs-tit">客户意图</div>\n <div class="recommendation-tabs"></div>\n ';const t=document.createElement("div");t.className="recommendation-right-wrap";const n=document.createElement("div");n.className="recommendation-content";const s=document.createElement("div");s.className="topNewRecommendation-content",t.append(n,s),i.append(e,t),o.append(i)}const s=i.querySelector(".recommendation-tabs"),r=i.querySelector(".recommendation-content"),a=i.querySelector(".topNewRecommendation-content"),l={};s.querySelectorAll(".recommendation-tab").forEach(e=>{const t=e.dataset.entryId;t&&(l[t]=e)}),this.lzp_recomm_isClickLocked=this.lzp_recomm_isClickLocked||!1,e.result.forEach(e=>{if(l[e.entry_id])return;const{entry_id:t,entry_title:n=""}=e||{},o=document.createElement("div");o.className="recommendation-tab",o.textContent=n,o.dataset.entryId=t,o.addEventListener("click",()=>{this.lzp_recomm_handleTabClick(o,s,r,e)}),s.prepend(o)});const c=e.result[0];c&&(a.innerHTML=`\n <div class="new_recommend_title">最新推荐: ${c.entry_title}</div>\n <div class="new_recommend_content">${c.content}</div>\n `),!s.querySelector(".active")&&s.children.length>0&&(null==(n=s.firstElementChild)||n.click())}lzp_recomm_handleTabClick(e,t,n,o){if(!e||!t||!n||this.lzp_recomm_isClickLocked)return;this.lzp_recomm_isClickLocked=!0,e.classList.add("active"),t.querySelectorAll(".recommendation-tab").forEach(t=>{t!==e&&t.classList.remove("active")}),n.innerHTML="";const{entry_title:i="",content:s="",source:r="",max_score:a="",entry_id:l="",entry_update_time:c=""}=o||{};n.innerHTML=`\n <div class="recommendation-item">\n <div class="recommendation-header">\n <h5>${this.lzp_recomm_escapeHtml(i)}</h5>\n <div class="recommendation-meta">\n ${r?`<span class="source">来源: ${this.lzp_recomm_escapeHtml(r)}</span>`:""}\n <span class="source">阈值: ${this.lzp_recomm_escapeHtml(String(a))}</span>\n <span class="entry-update-time">更新时间: ${this.lzp_recomm_escapeHtml(c)}</span>\n </div>\n </div>\n <div class="recommendation-content-text">\n ${this.lzp_recomm_escapeHtml(s)}\n </div>\n <div class="recommendation-score" style="display: none">\n </div>\n </div>\n `,this.lzp_recomm_isClickLocked=!1}lzp_recomm_escapeHtml(e){return"string"!=typeof e?"":e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#039;")}handleSseData(e){const{role:t,text:n,sentence_end:o}=e;this.upHtml(e),"user"===t&&!0===o&&(this.getKnowledgeRecommendation(n).then(e=>{e&&0===e.code&&e.result&&this.renderSpeechRecommendation(e)}),this.getWorkOrderFilling(n).then(e=>{e&&0===e.code&&e.result&&this.renderWorkOrderFilling(e.result)})),"agent"===t&&!0===o&&this.getMapGuideLight(n).then(e=>{e&&0===e.code&&e.result&&this.renderMapGuideLight(e.result)}),"agent"===t&&this.updateMonitorInfo(e)}updateMonitorInfo(e){if(void 0!==e.speech_rate&&null!==e.speech_rate){const t=document.getElementById("speech-rate-monitor");if(t){const n=this.getMonitorName("speech-rate-monitor")||"坐席语速",o=e.speech_rate,i=this.getSpeechRateRange(),{min_speed:s,max_speed:r}=i;let a=!0;s&&r&&(a=o>=s&&o<=r);const l=a?"green":"red",c=a?"正常":"异常",d=`语速:${o} 字/分钟\n正常范围:${s||"-"} ~ ${r||"-"}`,p=t.querySelector(".monitor-name");p&&(p.textContent=`${n}:`);const u=t.querySelector(".monitor-detail");u&&(u.innerHTML=`<span class="monitor-status" style="color: ${l}">${c}</span>`);let m=t.querySelector(".monitor-tooltip");m||(m=document.createElement("div"),m.className="monitor-tooltip",t.appendChild(m)),m.textContent=d}}if(void 0!==e.is_interrupt&&null!==e.is_interrupt){const t=document.getElementById("interrupt-monitor");if(t){const n=e.is_interrupt,o=!0===n?"red":"green",i=!0===n?"异常":"正常",s=t.querySelector(".monitor-name");s&&(s.textContent="坐席抢话:");const r=t.querySelector(".monitor-detail");r&&(r.innerHTML=`<span class="monitor-status" style="color: ${o}">${i}</span>`)}}if(void 0!==e.agent_emotion&&null!==e.agent_emotion){const t=document.getElementById("agent-emotion-monitor");if(t){const n=this.getMonitorName("agent-emotion-monitor")||"坐席情绪",o=t.querySelector(".monitor-name");o&&(o.textContent=`${n}:`);const i=t.querySelector(".monitor-detail");i&&(i.textContent=e.agent_emotion)}}if(void 0!==e.user_emotion&&null!==e.user_emotion){const t=document.getElementById("user-emotion-monitor");if(t){const n=this.getMonitorName("user-emotion-monitor")||"客户情绪",o=t.querySelector(".monitor-name");o&&(o.textContent=`${n}:`);const i=t.querySelector(".monitor-detail");i&&(i.textContent=e.user_emotion)}}if(void 0!==e.violation_count&&null!==e.violation_count){const t=document.getElementById("violation-count-monitor");if(t){const n=this.getMonitorName("violation-count-monitor")||"坐席违禁词",o=t.querySelector(".monitor-name");o&&(o.textContent=`${n}:`);const i=t.querySelector(".monitor-detail");i&&(i.textContent=e.violation_count)}}if(void 0!==e.user_sentiment&&null!==e.user_sentiment){const t=document.getElementById("user-sentiment-monitor");if(t){const n=this.getMonitorName("user-sentiment-monitor")||"客户舆情",o=t.querySelector(".monitor-name");o&&(o.textContent=`${n}:`);const i=t.querySelector(".monitor-detail");i&&(i.textContent=e.user_sentiment)}}}getSpeechRateRange(){if(!this.qcsData||0===this.qcsData.length)return{min_speed:null,max_speed:null};const e=this.qcsData.find(e=>1===e.item_target&&1===e.item_type);if(!e||!e.item_rule)return{min_speed:null,max_speed:null};try{const t=JSON.parse(e.item_rule);return{min_speed:t.min_speed||null,max_speed:t.max_speed||null}}catch(t){return console.warn("解析语速配置规则失败:",t),{min_speed:null,max_speed:null}}}async getMapGuideLight(e){try{if(!this.sdkInstance)return console.warn("SDK实例不存在,无法请求思路导航点亮"),null;const t=this.sdkInstance.skill_queue_list;let n="";if(t&&t.length>0&&(n=t[0].map_guide_template_id||""),!n)return console.warn("缺少map_guide_template_id参数,无法请求思路导航点亮"),null;const o=this.buildHistoryChat(),i={map_guide_template_id:n,answer:e,finished_nodes:this.getFinishedNodes(),history_chat:o};console.log("思路导航点亮请求参数",i);return await this.sdkInstance.post("/api/v1/agent/ccms/assist/xy-sdk/map-light",i)}catch(t){return console.error("获取思路导航点亮数据失败:",t),null}}getFinishedNodes(){if(!this.mapNodes||0===this.mapNodes.length)return"";return this.mapNodes.slice(0,this.currentNodeIndex).map(e=>e.map_name).filter(e=>e).join(",")}renderMapGuideLight(e){if(!e)return;const{hit_node_name:t,hit_node_id:n,hit_prompt:o,next_node:i}=e;console.log("思路导航点亮接口返回:",e),console.log("当前mapNodes:",this.mapNodes);let s=-1;null!=n&&(s=this.mapNodes.findIndex(e=>Number(e.id)===Number(n)||String(e.id)===String(n)),console.log("通过ID查找结果, hit_node_id:",n,", targetIndex:",s)),-1===s&&t&&(s=this.mapNodes.findIndex(e=>e.map_name===t||!(!e.map_name.includes(t)&&!t.includes(e.map_name))),console.log("通过名称查找结果, hit_node_name:",t,", targetIndex:",s)),-1!==s?(this.currentNodeIndex=s,this.renderThoughtNavigation(),console.log("思路导航点亮成功:",t||n,"节点索引:",s),o&&(this.mapNodes[s].map_prompt=o,this.renderThoughtNavigation(),console.log("已更新话术提示:",o))):(console.warn("未找到匹配的思路导航节点:",t,n),console.warn("当前mapNodes数据:",JSON.stringify(this.mapNodes))),null!=i&&""!==i&&console.log("下一步建议节点ID:",i)}updateCurrentNodePrompt(e){!e||this.currentNodeIndex<0||this.currentNodeIndex>=this.mapNodes.length||(this.mapNodes[this.currentNodeIndex].map_prompt=e,this.renderThoughtNavigation())}async getWorkOrderFilling(e){try{if(!this.sdkInstance)return console.warn("SDK实例不存在,无法请求智能填单"),null;const t=this.sdkInstance.skill_queue_list;let n="";if(t&&t.length>0&&(n=t[0].work_order_template_id||""),!n)return console.warn("缺少work_order_template_id参数,无法请求智能填单"),null;const o=this.buildHistoryChat();console.log("历史数据",o),console.log("sseMessageHistory原始数据",this.sdkInstance.sseMessageHistory);const i={query:e,work_order_template_id:n,history_chat:o};console.log("智能填单请求参数",i);return await this.sdkInstance.post("/api/v1/agent/ccms/assist/xy-sdk/add-work-order",i)}catch(t){return console.error("获取智能填单数据失败:",t),null}}buildHistoryChat(){if(!this.sdkInstance||!this.sdkInstance.sseMessageHistory)return[];return this.sdkInstance.sseMessageHistory.filter(e=>!0===e.sentence_end).map(e=>({role:e.role,content:e.text||""}))}renderWorkOrderFilling(e){if(!e)return;const{work_order:t,tags:n}=e;t&&this.fillWorkOrderFields(t),n&&this.updateUserPortrait(n)}fillWorkOrderFields(e){if(!e||""===e.trim())return;const t=e.split(",").map(e=>{const t=e.split(":");return{key:t[0]?t[0].trim():"",value:t[1]?t[1].trim():""}}).filter(e=>""!==e.key&&'""'!==e.key&&"''"!==e.key&&""!==e.value&&'""'!==e.value&&"''"!==e.value);if(0===t.length)return;const n=this.popupContainer.querySelectorAll(".form-filling-row");n&&0!==n.length&&n.forEach(e=>{const n=e.querySelector(".form-filling-row-item.name");if(!n)return;const o=n.textContent.replace("*","").trim(),i=t.find(e=>e.key===o);if(!i)return;const s=e.querySelector(".form-filling-row-item.input");if(!s)return;const r=s.querySelector("input, textarea");r&&i.value&&(r.value=i.value,r.style.transition="background-color 0.3s",r.style.backgroundColor="#e6f7ff",setTimeout(()=>{r.style.backgroundColor=""},1e3))})}updateUserPortrait(e){const t=this.popupContainer.querySelector(".user-portrait");if(!t)return;if(!e||["","无","无标签","null","undefined","none"].includes(e.trim().toLowerCase()))return;let n=t.querySelector(".user-tags-container");if(n||(n=document.createElement("div"),n.className="user-tags-container",t.appendChild(n)),e&&"无标签"!==e&&"无"!==e){const t=e.split(",").map(e=>e.trim()).filter(e=>e);const o=[...this.currentTags||[],...t],i=[...new Set(o)];this.currentTags=i;const s=i.map(e=>`<span class="user-tag-item">${e}</span>`).join("");n.innerHTML=`<div class="user-tags-list">${s}</div>`}}setFormattedSseMessages(e){const t=e(this.formattedSseMessages);this.formattedSseMessages=t,this.updateSpeechToTextDisplay()}updateSpeechToTextDisplay(){const e=document.getElementById("speech-to-text-content");e&&(e.innerHTML="",this.formattedSseMessages.forEach((t,n)=>{const o=t.data||t,i=o.role,s=o.text,r=o.sentence_end,a=o.times,l=document.createElement("div");if(l.className=`message-item ${i}-message`,!1===r&&l.classList.add("incomplete-sentence"),"user"===i){const e=document.createElement("div");e.className="user-message-layout";const t=document.createElement("div");t.className="user-avatar";const n=document.createElement("div");n.className="user-content";const o=document.createElement("div");o.className="user-time",o.textContent=a;const i=document.createElement("div");i.className="user-text",i.textContent=s;const r=document.createElement("div");r.className="user-extra-info",n.appendChild(o),n.appendChild(i),n.appendChild(r),e.appendChild(t),e.appendChild(n),l.appendChild(e)}else{const e=document.createElement("div");e.className="agent-message-layout";const t=document.createElement("div");t.className="agent-content";const n=document.createElement("div");n.className="agent-time",n.textContent=a;const o=document.createElement("div");o.className="agent-text",o.textContent=s;const i=document.createElement("div");i.className="agent-extra-info",t.appendChild(n),t.appendChild(o),t.appendChild(i);const r=document.createElement("div");r.className="agent-avatar",e.appendChild(t),e.appendChild(r),l.appendChild(e)}e.appendChild(l)}))}upHtml(e){const t=document.getElementById("speech-to-text-content");if(t)if("user"===e.role&&!1===e.sentence_end){const n=t.querySelectorAll(".user-message");if(n.length>0){const o=n[n.length-1];if(o.classList.contains("incomplete-sentence")){const t=o.querySelector(".user-text");t&&(t.textContent=e.text)}else this.appendMessageToDisplay(t,e)}else this.appendMessageToDisplay(t,e)}else if("agent"===e.role&&!1===e.sentence_end){const n=t.querySelectorAll(".agent-message");if(n.length>0){const o=n[n.length-1];if(o.classList.contains("incomplete-sentence")){const t=o.querySelector(".agent-text");t&&(t.textContent=e.text)}else this.appendMessageToDisplay(t,e)}else this.appendMessageToDisplay(t,e)}else if("user"===e.role&&!0===e.sentence_end){const n=t.querySelectorAll(".user-message");if(n.length>0){const o=n[n.length-1];if(o.classList.contains("incomplete-sentence")){const t=o.querySelector(".user-text");t&&(t.textContent=e.text),o.classList.remove("incomplete-sentence")}else this.appendMessageToDisplay(t,e)}else this.appendMessageToDisplay(t,e)}else if("agent"===e.role&&!0===e.sentence_end){const n=t.querySelectorAll(".agent-message");if(n.length>0){const o=n[n.length-1];if(o.classList.contains("incomplete-sentence")){const t=o.querySelector(".agent-text");t&&(t.textContent=e.text),o.classList.remove("incomplete-sentence")}else this.appendMessageToDisplay(t,e)}else this.appendMessageToDisplay(t,e)}}appendMessageToDisplay(e,t){const n=document.createElement("div");if(n.className=`message-item ${t.role}-message`,!1===t.sentence_end&&n.classList.add("incomplete-sentence"),"user"===t.role){const e=document.createElement("div");e.className="user-message-layout";const o=document.createElement("div");o.className="user-avatar";const i=document.createElement("div");i.className="user-content";const s=document.createElement("div");s.className="user-time",s.textContent=t.times||"";const r=document.createElement("div");r.className="user-text",r.textContent=t.text;const a=document.createElement("div");a.className="user-extra-info",i.appendChild(s),i.appendChild(r),i.appendChild(a),e.appendChild(o),e.appendChild(i),n.appendChild(e)}else{const e=document.createElement("div");e.className="agent-message-layout";const o=document.createElement("div");o.className="agent-content";const i=document.createElement("div");i.className="agent-time",i.textContent=t.times||"";const s=document.createElement("div");s.className="agent-text",s.textContent=t.text;const r=document.createElement("div");r.className="agent-extra-info",o.appendChild(i),o.appendChild(s),o.appendChild(r);const a=document.createElement("div");a.className="agent-avatar",e.appendChild(o),e.appendChild(a),n.appendChild(e)}e.appendChild(n);const o=document.getElementById("speech-to-text-content-wrap");o&&(o.scrollTop=o.scrollHeight)}initWorkOrderFields(){this.workOrderFields=[]}setWorkOrderFields(e){Array.isArray(e)?(this.workOrderFields=e,this.renderWorkOrderFields()):console.warn("智能填单字段数据格式错误,应为数组")}renderWorkOrderFields(){const e=this.popupContainer.querySelector(".smart-form-filling");if(!e)return void console.warn("未找到智能填单容器");if(!this.workOrderFields||0===this.workOrderFields.length)return void(e.innerHTML='<h4 class="flex_two_text">智能填单</h4><div>智能填单区域</div>');e.innerHTML='<h4 class="flex_two_text">智能填单</h4>';const t=document.createElement("div");t.className="form-filling-container";const n=document.createElement("div");n.className="form-filling-header",n.innerHTML='\n <div class="form-filling-header-item seq">序号</div>\n <div class="form-filling-header-item name">内容</div>\n <div class="form-filling-header-item input">信息提取</div>\n <div class="form-filling-header-item action">操作</div>\n ',t.appendChild(n);const o=document.createElement("div");o.className="form-filling-body",this.workOrderFields.forEach((e,t)=>{const n=document.createElement("div");n.className="form-filling-row";const i=document.createElement("div");i.className="form-filling-row-item seq",i.textContent=t+1,n.appendChild(i);const s=document.createElement("div");s.className="form-filling-row-item name";const r=1===e.require?'<span class="required-mark">*</span>':"";s.innerHTML=`${r}${e.field_name}`,s.title=e.description||"",n.appendChild(s);const a=document.createElement("div");a.className="form-filling-row-item input",a.readOnly=!0,this.renderFieldInput(a,e),n.appendChild(a);const l=document.createElement("div");l.className="form-filling-row-item action";const c=document.createElement("button");c.className="copy-btn",c.type="button";const d=document.createElement("img");d.src="https://files.xinyaoai.com/web/img/ivsSDK/copy.png",d.style.width="16px",d.style.height="16px",d.style.border="none",d.style.objectFit="contain",d.style.pointerEvents="none",c.appendChild(d),c.addEventListener("click",e=>{e.preventDefault();const t=c.closest(".form-filling-row");if(!t)return;const n=t.querySelector(".form-filling-row-item.input");if(!n)return;const o=n.querySelector("input, textarea, select");if(!o)return;const i=o.value;this.copyFieldValue(i)}),l.appendChild(c),n.appendChild(l),o.appendChild(n)}),t.appendChild(o);const i=document.createElement("div");i.className="form-filling-footer";const s=document.createElement("button");s.className="submit-btn",s.textContent="一键填单",s.addEventListener("click",()=>{this.submitWorkOrder()}),i.appendChild(s),t.appendChild(i),e.appendChild(t)}renderFieldInput(e,t){const{input_type:n,data_opt:o,default_value:i,input_tips:s,description:r}=t;switch(n){case"input":const n=document.createElement("input");n.type="text",n.value=i||"",n.placeholder=s||"",e.appendChild(n);break;case"text_area":const r=document.createElement("textarea");r.value=i||"",r.placeholder=s||"",e.appendChild(r);break;case"radio":const a=document.createElement("div");if(o){o.split(",").forEach((e,n)=>{const o=document.createElement("label");o.style.marginRight="10px";const s=document.createElement("input");s.type="radio",s.name=`field_${t.field_id}`,s.value=e.trim(),s.checked=e.trim()===i,o.appendChild(s),o.appendChild(document.createTextNode(e.trim())),a.appendChild(o)})}e.appendChild(a);break;case"select":const l=document.createElement("select");if(o){o.split(",").forEach(e=>{const t=document.createElement("option");t.value=e.trim(),t.textContent=e.trim(),e.trim()===i&&(t.selected=!0),l.appendChild(t)})}e.appendChild(l);break;case"checkbox":const c=document.createElement("div");if(o){o.split(",").forEach((e,t)=>{const n=document.createElement("label");n.style.marginRight="10px";const o=document.createElement("input");o.type="checkbox",o.value=e.trim(),n.appendChild(o),n.appendChild(document.createTextNode(e.trim())),c.appendChild(n)})}e.appendChild(c);break;case"date_picker":const d=document.createElement("input");d.type="date",d.value=i||"",e.appendChild(d);break;case"date_range_picker":const p=document.createElement("div"),u=document.createElement("input");u.type="date",u.placeholder="开始日期",p.appendChild(u),p.appendChild(document.createTextNode(" - "));const m=document.createElement("input");m.type="date",m.placeholder="结束日期",p.appendChild(m),e.appendChild(p);break;case"date_picker_time":const h=document.createElement("input");h.type="datetime-local",h.value=i||"",e.appendChild(h);break;case"input_number":const g=document.createElement("input");g.type="number",g.value=i||"",g.placeholder=s||"",e.appendChild(g);break;default:const f=document.createElement("input");f.type="text",f.value=i||"",f.placeholder=s||"",e.appendChild(f)}}copyFieldValue(e){e?navigator.clipboard.writeText(e).then(()=>{console.log("已复制字段值:",e)}).catch(e=>{console.error("复制失败:",e)}):console.log("输入框为空,不复制")}submitWorkOrder(){console.log("提交工单")}destroy(){if(this.popupContainer){const e=this.popupContainer.querySelector(".popup-close-btn");e&&e.removeEventListener("click",this.togglePopup.bind(this))}this.minimizedBtn&&(this.minimizedBtn.removeEventListener("click",this.togglePopup.bind(this)),document.removeEventListener("mousemove",this.handleMouseMove),document.removeEventListener("mouseup",this.handleMouseUp)),this.popupContainer&&this.popupContainer.parentNode&&this.popupContainer.parentNode.removeChild(this.popupContainer),this.minimizedBtn&&this.minimizedBtn.parentNode&&this.minimizedBtn.parentNode.removeChild(this.minimizedBtn),this.container=null,this.popupContainer=null,this.minimizedBtn=null,this.sdkInstance=null,this.formattedSseMessages=[],this.mapNodes=[],this.currentNodeIndex=0,this.workOrderFields=[],console.log("SeatAssistantPopup组件已销毁")}initWorkOrderFields(){this.workOrderFields=[]}setWorkOrderFields(e){Array.isArray(e)?(this.workOrderFields=e,this.renderWorkOrderFields()):console.warn("智能填单字段数据格式错误,应为数组")}}"undefined"!=typeof module&&module.exports?module.exports=C:"undefined"!=typeof window&&(window.SeatAssistantPopup=C);module.exports=class{constructor(e={}){this.url=e.url,this.app_key=e.app_key,this.app_secret=e.app_secret,this.onMessage=e.onMessage||(()=>{}),this.onError=e.onError||(()=>{}),this.onOpen=e.onOpen||(()=>{}),this.onAudioData=e.onAudioData||(()=>{}),this.onAudioNegotiationSuccess=e.onAudioNegotiationSuccess||(()=>{}),this.onConnectSSE=e.onConnectSSE||(()=>{}),this.onCreateSeatAssistantPopup=e.onCreateSeatAssistantPopup||(()=>{}),this.autoCreatePopup=e.autoCreatePopup||!1,this.eventSource=null,this.categorys=null,this.skill_queue_list=this.validateSkillQueueList(e.skill_queue_list||[]),this.negotiationResult=null,this.seatAssistantPopup=null,this.autoPopupContainer=null,this.sseMessageHistory=[],this.enableDownloadSseData=e.enableDownloadSseData||!1,this.enableSaveDialogs=e.enableSaveDialogs||!1,this.saveDialogParams={app_id:e.app_id||"",call_id:e.call_id||"",session_id:e.session_id||""},this.autoCreatePopup&&this.initSeatAssistantPopup()}generateAuthToken(){const e=Math.floor(Date.now()/1e3);return`${this.app_key}:${e}:${b(`${this.app_secret}:${e}`)}`}getAuthHeaders(){return{Authorization:`${this.generateAuthToken()}`,"Content-Type":"application/json"}}clearSeatAssistantPopupContent(){this.sseMessageHistory=[],this.seatAssistantPopup&&this.seatAssistantPopup.clearAllContent()}async post(e,t){const n=this.generateAuthToken(),o=await fetch(`${this.url}${e}`,{method:"POST",headers:{Authorization:`${n}`,"Content-Type":"application/json","User-Agent":"XY-ASSIST-SDK"},body:JSON.stringify(t)});if(!o.ok){const e=await o.text(),t=new Error(`HTTP error! status: ${o.status}, message: ${e}`);throw this.onError&&this.onError({type:"http_error",error:t,status:o.status,timestamp:Date.now()}),t}return await o.json()}async audioNegotiation(e){const t=await this.post("/api/v1/agent/ccms/assist/xy-sdk/audio-nego",e);return this.negotiationResult=t,this.onAudioNegotiationSuccess&&this.onAudioNegotiationSuccess({type:"audio_negotiation_success",data:t,timestamp:Date.now()}),this.autoCreatePopup&&this.autoCreateSeatAssistantPopup(),t}connectSSEWithNegotiationResult(){if(!this.negotiationResult||!this.negotiationResult.result){const e=new Error("没有有效的协商结果,请先执行音频协商");throw this.onError&&this.onError({type:"connection_error",error:e,timestamp:Date.now()}),e}const{sse_addr:e,client_id:t,timestamp:n,token:o}=this.negotiationResult.result;if(!e||!t){const e=new Error("协商结果中缺少sse_addr或client_id");throw this.onError&&this.onError({type:"connection_error",error:e,timestamp:Date.now()}),e}const i=`http://${e}/sse?client_id=${t}&timestamp=${n}&token=${o}`;this.connectSSEWithURL(i),this.onConnectSSE&&this.onConnectSSE({type:"sse_connection_with_negotiation",sseUrl:i,client_id:t,sse_addr:e,timestamp:Date.now()})}connectSSEWithURL(e){this.eventSource=new a.EventSourcePolyfill(e,{heartbeatTimeout:6e5,withCredentials:!1}),this.eventSource.onmessage=e=>{const t=JSON.parse(e.data);this.onMessage({type:"sse_message",data:t,timestamp:Date.now()}),this.handleSseMessageForPopup(t),this.recordSseMessage(t)},this.eventSource.onerror=e=>{this.onError({type:"sse_error",error:e,timestamp:Date.now()})},this.eventSource.onopen=()=>{this.onOpen()}}connectSSE(e=!0){const t=this;if(e&&this.negotiationResult&&this.negotiationResult.result&&this.negotiationResult.result.sse_addr)this.autoCreatePopup&&!this.hasSeatAssistantPopup()&&this.autoCreateSeatAssistantPopup(),this.connectSSEWithNegotiationResult();else{const e=this.generateAuthToken(),n=`${this.url}/api/v1/agent/sse?auth=${e}`;this.autoCreatePopup&&!this.hasSeatAssistantPopup()&&this.autoCreateSeatAssistantPopup(),this.eventSource=new a.EventSourcePolyfill(n,{heartbeatTimeout:6e5,withCredentials:!1}),this.eventSource.onmessage=function(e){const n=JSON.parse(e.data);t.onMessage({type:"sse_message",data:n,timestamp:Date.now()}),t.handleSseMessageForPopup(n),t.recordSseMessage(n)},this.eventSource.onerror=function(e){t.onError({type:"sse_error",error:e,timestamp:Date.now()})},this.eventSource.onopen=function(){t.onOpen()}}}disconnectSSE(){this.eventSource&&(this.eventSource.close(),this.eventSource=null)}handleSseMessageForPopup(e){if(e.role&&e.text&&void 0!==e.sentence_end&&this.seatAssistantPopup){const t=new Date,n=`${t.getFullYear()}-${String(t.getMonth()+1).padStart(2,"0")}-${String(t.getDate()).padStart(2,"0")} ${String(t.getHours()).padStart(2,"0")}:${String(t.getMinutes()).padStart(2,"0")}:${String(t.getSeconds()).padStart(2,"0")}`;e.times=n,this.seatAssistantPopup.handleSseData(e)}}initSeatAssistantPopup(){if(!this.seatAssistantPopup){const e=this.ensurePopupContainer();this.seatAssistantPopup=new C(e,this),this.hideSeatAssistantPopup(),this.seatAssistantPopup&&"function"==typeof this.seatAssistantPopup.initWorkOrderFields&&this.seatAssistantPopup.initWorkOrderFields(),this.onCreateSeatAssistantPopup&&this.onCreateSeatAssistantPopup({type:"seat_assistant_popup_created",popup:this.seatAssistantPopup,timestamp:Date.now()})}}ensurePopupContainer(){return this.autoPopupContainer||(this.autoPopupContainer=document.createElement("div"),this.autoPopupContainer.id="seat-assistant-auto-container",document.getElementById("root").appendChild(this.autoPopupContainer)),this.autoPopupContainer}hasSeatAssistantPopup(){return!!this.seatAssistantPopup}showSeatAssistantPopup(){this.seatAssistantPopup&&(this.seatAssistantPopup.isOpen=!0,this.seatAssistantPopup.popupContainer.style.display="flex",this.seatAssistantPopup.minimizedBtn.style.display="none")}hideSeatAssistantPopup(){this.seatAssistantPopup&&(this.seatAssistantPopup.isOpen=!1,this.seatAssistantPopup.popupContainer.style.display="none",this.seatAssistantPopup.minimizedBtn.style.display="flex")}autoCreateSeatAssistantPopup(){this.hasSeatAssistantPopup()?(this.showSeatAssistantPopup(),document.getElementById("seat-assistant-auto-container").classList.remove("disable-pointer-events")):this.initSeatAssistantPopup()}validateSkillQueueList(e){if(!Array.isArray(e))throw new Error("skill_queue_list must be an array");return e.map(e=>({skill_id:"string"==typeof e.skill_id?e.skill_id:"",gold_prompt_template_id:"string"==typeof e.gold_prompt_template_id?e.gold_prompt_template_id:"",map_guide_template_id:"string"==typeof e.map_guide_template_id?e.map_guide_template_id:"",realtime_inspect_template_id:"string"==typeof e.realtime_inspect_template_id?e.realtime_inspect_template_id:"",work_order_template_id:"string"==typeof e.work_order_template_id?e.work_order_template_id:""}))}setWorkOrderFields(e){Array.isArray(e)?this.seatAssistantPopup&&"function"==typeof this.seatAssistantPopup.setWorkOrderFields&&this.seatAssistantPopup.setWorkOrderFields(e):console.warn("智能填单字段数据格式错误,应为数组")}validateCategory(e){return"object"==typeof e&&null!==e&&"number"==typeof e.id&&"string"==typeof e.template_id&&"string"==typeof e.category_id&&"number"==typeof e.top_n}setCategories(e){if(!this.validateCategory(e))throw new Error("Category must be an object with id(number), template_id(string), category_id(string), and top_n(number)");this.categorys=e,this.seatAssistantPopup&&"function"==typeof this.seatAssistantPopup.setCategories&&this.seatAssistantPopup.setCategories(e),this.onCategoriesSet&&this.onCategoriesSet({type:"categories_set",categories:e,timestamp:Date.now()})}setSkillQueueList(e){this.skill_queue_list=this.validateSkillQueueList(e)}setMapNodes(e){if(!e)return;if(!Array.isArray(e))return void console.warn("思路导航数据格式错误,应为数组");e.every(e=>"number"==typeof e.id&&"string"==typeof e.template_id&&"string"==typeof e.map_name&&"string"==typeof e.map_prompt)?(this.seatAssistantPopup&&"function"==typeof this.seatAssistantPopup.setMapNodes&&this.seatAssistantPopup.setMapNodes(e),this.onMapNodesSet&&this.onMapNodesSet({type:"map_nodes_set",mapNodes:e,timestamp:Date.now()})):console.warn("思路导航节点数据结构不正确")}setQcsData(e){e&&Array.isArray(e)?(this.qcsData=e,this.seatAssistantPopup&&"function"==typeof this.seatAssistantPopup.setQcsData&&this.seatAssistantPopup.setQcsData(e),console.log("📋 质检配置已设置:",e)):console.warn("传入的QCS数据无效,应为数组")}recordSseMessage(e){e.role&&e.text&&void 0!==e.sentence_end?this.sseMessageHistory.push({...e,timestamp:Date.now()}):console.log("📋 跳过非对话消息:",e)}downloadSseDataAsTxt(){if(!this.sseMessageHistory||0===this.sseMessageHistory.length)return void console.warn("没有SSE消息数据可下载");const e=this.sseMessageHistory.map(e=>`[${new Date(e.timestamp).toLocaleString("zh-CN")}] ${"user"===e.role?"用户":"坐席"}: ${e.text||""} ${e.sentence_end?"[完整]":"[进行中]"}`).join("\n\n"),t=new Blob([e],{type:"text/plain;charset=utf-8"}),n=URL.createObjectURL(t),o=document.createElement("a");o.href=n,o.download=`sse-data-${Date.now()}.txt`,document.body.appendChild(o),o.click(),setTimeout(()=>{document.body.removeChild(o),URL.revokeObjectURL(n)},100),console.log("SSE数据已下载为txt文件")}async saveDialogsToBackend(e={}){let t=e.app_id||this.saveDialogParams.app_id||"",n=e.session_id||this.saveDialogParams.session_id||"",o=e.call_id||this.saveDialogParams.call_id||"",i=e.dialogs||null;if(!i){if(!this.sseMessageHistory||0===this.sseMessageHistory.length)return console.warn("没有对话数据可保存"),{success:!1,count:0,reason:"no_data"};i=this.buildFinalDialogsBySpeakingOrder()}if(!i||0===i.length)return console.warn("没有完整的对话数据可保存"),{success:!1,count:0,reason:"no_complete_data"};if(!t||!n||!o)throw console.error("缺少必要的保存参数:app_id、session_id 或 call_id",{app_id:t,session_id:n,call_id:o}),new Error("缺少必要的保存参数:app_id、session_id 或 call_id");try{const e=i.map(e=>({app_id:t,session_id:n,call_id:o,dialog_type:"user"===e.role?2:1,dialog_text:e.text||""})),s={dialogs:e};console.log(`📤 准备保存 ${e.length} 条完整对话数据到后台...`,{app_id:t,session_id:n,call_id:o}),console.log("📤 对话数据:",i);const r=await this.post("/api/v1/agent/ccms/assist/xy-sdk/save-dialogs",s);return console.log(`✅ 成功保存 ${e.length} 条对话数据`),{success:!0,count:e.length,result:r}}catch(s){throw console.error("❌ 保存对话数据失败:",s),this.onError&&this.onError({type:"save_dialogs_error",error:s,timestamp:Date.now()}),s}}buildFinalDialogsBySpeakingOrder(){const e=[],t=[];for(const n of this.sseMessageHistory){const{role:o,text:i,sentence_end:s}=n;if(t.includes(o)||t.push(o),!1===s);else{const n={role:o,text:i,sentence_end:!0},s=t.indexOf(o);let r=0;for(let o=0;o<e.length;o++){const n=e[o].role;t.indexOf(n)<=s&&(r=o+1)}e.splice(r,0,n)}}return console.log("📋 buildFinalDialogsBySpeakingOrder:",{speakingOrder:t,result:e}),e}async endSession(e={}){const t=void 0!==e.downloadTxt?e.downloadTxt:this.enableDownloadSseData,n=void 0!==e.saveToBackend?e.saveToBackend:this.enableSaveDialogs;if(t&&this.downloadSseDataAsTxt(),n)try{await this.saveDialogsToBackend({app_id:e.app_id,session_id:e.session_id,call_id:e.call_id,dialogs:e.dialogs})}catch(o){console.error("保存对话数据时出错:",o)}this.sseMessageHistory=[]}destroy(e=!0){if(this.disconnectSSE(),this.seatAssistantPopup){try{this.seatAssistantPopup.destroy()}catch(t){console.warn("销毁弹窗组件时出错:",t)}this.seatAssistantPopup=null}if(e&&this.autoPopupContainer)try{this.autoPopupContainer.parentNode&&this.autoPopupContainer.parentNode.removeChild(this.autoPopupContainer),this.autoPopupContainer=null}catch(t){console.warn("移除弹窗DOM容器时出错:",t)}this.onMessage=null,this.onError=null,this.onOpen=null,this.onAudioData=null,this.onAudioNegotiationSuccess=null,this.onConnectSSE=null,this.onCreateSeatAssistantPopup=null,this.onCategoriesSet=null,this.onMapNodesSet=null,this.onDestroy=null,this.negotiationResult=null,this.categorys=null,this.skill_queue_list=[],this.sseMessageHistory=[],this.onDestroy&&this.onDestroy({type:"sdk_destroyed",timestamp:Date.now(),removedDom:e}),console.log("AgentAssistantSDK实例已销毁")}};