ysyt-agent-sdk 1.0.13 → 1.0.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- @font-face{font-family:ysyt;src:url(../fonts/iconfont.woff2?t=1750839875481) format("woff2"),url(../fonts/iconfont.woff?t=1750839875481) format("woff"),url(../fonts/iconfont.ttf?t=1750839875481) format("truetype")}.ysyt{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:ysyt,serif!important;font-size:18px;font-style:normal}.icon-shouji:before{content:"\e692"}.icon-20gl-phoneSip:before{content:"\e924"}.icon-dianhua:before{content:"\e842"}.icon-quxiao:before{content:"\e676"}.icon-jieting:before{content:"\e60a"}.icon-boda:before{content:"\e679"}.icon-kaishi:before{content:"\e800"}.icon-guaji:before{content:"\e732"}.icon-manyidu:before{content:"\e600"}.icon-zixun:before{content:"\e71f"}.icon-zanting:before{content:"\ea81"}.icon-zhuanjie1:before{content:"\e601"}.icon-microphone:before{content:"\e661"}.icon-guanbimaikefeng:before{content:"\e603"}.icon-manglu:before{content:"\e65d"}.icon-shang:before{content:"\e60f"}.icon-xia:before{content:"\e64c"}.icon-kongxian:before{content:"\ed94"}#ysyt-body{position:absolute;z-index:9999999}#ysyt-body,.ysyt-phone-body{align-items:center;display:flex}.ysyt-phone-body{border-radius:30px 10px 0 30px;height:30px;padding:5px 15px;user-select:none}.ysyt-phone-body .ysyt-title{color:#fff;cursor:pointer;font-size:14px;padding-right:10px;position:relative;width:100px}.ysyt-phone-body .select-icon{color:#fff;display:none;font-size:10px;left:calc(50% - 4px);position:absolute;top:100%;z-index:9999999}.ysyt-select{background:#fff;border-radius:4px;box-shadow:0 4px 8px rgba(0,0,0,.1);height:0;overflow:hidden;position:absolute;top:calc(100% + 8px);transition:height .1s ease-in;width:100%;z-index:9999999}.ysyt-select-body{position:relative}.ysyt-select-body>div{color:rgba(0,0,0,.6);padding:5px 4px;text-align:center}.ysyt-select-body>div:hover{background:#ecf5ff;color:#2b96ea}.ysyt-action-body{align-items:center;color:#3356ec;display:flex;font-size:25px;gap:0 10px;height:39px;padding:0 10px}.ysyt-action-body>*{cursor:pointer}.content-call-key{color:rgba(0,0,0,.6);font-size:16px;padding:10px;width:250px}.content-call-key>my-input::part(wrapper){--tw-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px 0 rgba(0,0,0,.06);border:none;border-radius:30px;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);height:25px;width:220px}.content-call-key>my-input::part(wrapper-input){text-align:center}#wifi-body>img{width:18px}.network-body{color:rgba(0,0,0,.7);font-size:12px;padding:5px 10px}.network-body>div{align-items:center;display:flex;margin-bottom:5px}.network-body>div>div{color:#000;width:50px}#ysyt-devices-body{align-items:center;display:flex;margin-right:15px;width:130px}.my-icon{font-size:22px}.agent-list-item{align-items:center;display:flex;justify-content:space-between;padding:10px}
1
+ @font-face{font-family:ysyt;src:url(../fonts/iconfont.woff2?t=1750839875481) format("woff2"),url(../fonts/iconfont.woff?t=1750839875481) format("woff"),url(../fonts/iconfont.ttf?t=1750839875481) format("truetype")}.ysyt{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:ysyt,serif!important;font-size:18px;font-style:normal}.icon-shouji:before{content:"\e692"}.icon-20gl-phoneSip:before{content:"\e924"}.icon-dianhua:before{content:"\e842"}.icon-quxiao:before{content:"\e676"}.icon-jieting:before{content:"\e60a"}.icon-boda:before{content:"\e679"}.icon-kaishi:before{content:"\e800"}.icon-guaji:before{content:"\e732"}.icon-manyidu:before{content:"\e600"}.icon-zixun:before{content:"\e71f"}.icon-zanting:before{content:"\ea81"}.icon-zhuanjie1:before{content:"\e601"}.icon-microphone:before{content:"\e661"}.icon-guanbimaikefeng:before{content:"\e603"}.icon-manglu:before{content:"\e65d"}.icon-shang:before{content:"\e60f"}.icon-xia:before{content:"\e64c"}.icon-kongxian:before{content:"\ed94"}#ysyt-body,.ysyt-phone-body{align-items:center;display:flex}.ysyt-phone-body{border-radius:30px 10px 0 30px;height:30px;padding:5px 15px;user-select:none}.ysyt-phone-body .ysyt-title{color:#fff;cursor:pointer;font-size:14px;padding-right:10px;position:relative;width:100px}.ysyt-phone-body .select-icon{color:#fff;display:none;font-size:10px;left:calc(50% - 4px);position:absolute;top:100%;z-index:9999999}.ysyt-select{background:#fff;border-radius:4px;box-shadow:0 4px 8px rgba(0,0,0,.1);height:0;overflow:hidden;position:absolute;top:calc(100% + 8px);transition:height .1s ease-in;width:100%;z-index:9999999}.ysyt-select-body{position:relative}.ysyt-select-body>div{color:rgba(0,0,0,.6);padding:5px 4px;text-align:center}.ysyt-select-body>div:hover{background:#ecf5ff;color:#2b96ea}.ysyt-action-body{align-items:center;color:#3356ec;display:flex;font-size:25px;gap:0 10px;height:30px;padding:0 10px}.ysyt-action-body>*{cursor:pointer}.content-call-key{color:rgba(0,0,0,.6);font-size:16px;padding:10px;width:250px}.content-call-key>my-input::part(wrapper){--tw-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px 0 rgba(0,0,0,.06);border:none;border-radius:30px;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);height:25px;width:220px}.content-call-key>my-input::part(wrapper-input){text-align:center}#wifi-body>img{width:18px}.network-body{color:rgba(0,0,0,.7);font-size:12px;padding:5px 10px}.network-body>div{align-items:center;display:flex;margin-bottom:5px}.network-body>div>div{color:#000;width:50px}.my-icon{font-size:22px}.agent-list-item{align-items:center;display:flex;justify-content:space-between;padding:10px}#ysyt-devices-body{align-items:center;display:flex;justify-content:center;margin-right:15px;position:relative;width:130px}
@@ -173,6 +173,7 @@ const Zs=e=>(t,s)=>{void 0!==s?s.addInitializer(()=>{customElements.define(e,t)}
173
173
 
174
174
  .trigger {
175
175
  display: inline-block;
176
+ cursor: pointer;
176
177
  }
177
178
 
178
179
  .popover {
@@ -187,6 +188,8 @@ const Zs=e=>(t,s)=>{void 0!==s?s.addInitializer(()=>{customElements.define(e,t)}
187
188
  opacity 0.2s ease,
188
189
  transform 0.2s ease;
189
190
  pointer-events: none;
191
+ min-width: 100px;
192
+ padding: 0px;
190
193
  }
191
194
 
192
195
  .popover.visible {
@@ -216,7 +219,6 @@ const Zs=e=>(t,s)=>{void 0!==s?s.addInitializer(()=>{customElements.define(e,t)}
216
219
 
217
220
  .arrow[data-placement='top'] {
218
221
  bottom: -6px;
219
- left: 10px;
220
222
  border-width: 6px 6px 0 6px;
221
223
  border-color: #fff transparent transparent transparent;
222
224
  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.05);
@@ -224,26 +226,23 @@ const Zs=e=>(t,s)=>{void 0!==s?s.addInitializer(()=>{customElements.define(e,t)}
224
226
 
225
227
  .arrow[data-placement='bottom'] {
226
228
  top: -6px;
227
- left: 10px;
228
229
  border-width: 0 6px 6px 6px;
229
230
  border-color: transparent transparent #fff transparent;
230
231
  box-shadow: 0 -2px 5px rgba(0, 0, 0, 0.05);
231
232
  }
232
233
 
233
234
  .arrow[data-placement='left'] {
234
- top: 10px;
235
235
  right: -6px;
236
236
  border-width: 6px 0 6px 6px;
237
237
  border-color: transparent transparent transparent #fff;
238
238
  }
239
239
 
240
240
  .arrow[data-placement='right'] {
241
- top: 10px;
242
241
  left: -6px;
243
242
  border-width: 6px 6px 6px 0;
244
243
  border-color: transparent #fff transparent transparent;
245
244
  }
246
- `}firstUpdated(){this.triggerEl=this.renderRoot.querySelector(".trigger"),this.popoverEl=this.renderRoot.querySelector(".popover"),"click"===this.triggerType?(this.triggerEl.addEventListener("click",this.onTogglePopover),document.addEventListener("click",this.onOutsideClick)):(this.triggerEl.addEventListener("mouseenter",this.showPopover),this.triggerEl.addEventListener("mouseleave",this.hidePopoverDelayed),this.popoverEl.addEventListener("mouseenter",this.clearHideTimer),this.popoverEl.addEventListener("mouseleave",this.hidePopoverDelayed))}disconnectedCallback(){super.disconnectedCallback(),document.removeEventListener("click",this.onOutsideClick)}updatePosition(){const e=this.triggerEl.getBoundingClientRect(),t=this.popoverEl;let s=0,i=0;switch(this.placement){case"top":s=e.top-t.offsetHeight-8,i=e.left;break;case"bottom":s=e.bottom+8,i=e.left;break;case"left":s=e.top,i=e.left-t.offsetWidth-8;break;case"right":s=e.top,i=e.right+8}t.style.top=`${s}px`,t.style.left=`${i}px`,t.setAttribute("data-placement",this.placement)}render(){return Ds`
245
+ `}firstUpdated(){this.triggerEl=this.renderRoot.querySelector(".trigger"),this.popoverEl=this.renderRoot.querySelector(".popover"),"click"===this.triggerType?(this.triggerEl.addEventListener("click",this.onTogglePopover),document.addEventListener("click",this.onOutsideClick)):(this.triggerEl.addEventListener("mouseenter",this.showPopover),this.triggerEl.addEventListener("mouseleave",this.hidePopoverDelayed),this.popoverEl.addEventListener("mouseenter",this.clearHideTimer),this.popoverEl.addEventListener("mouseleave",this.hidePopoverDelayed))}disconnectedCallback(){super.disconnectedCallback(),document.removeEventListener("click",this.onOutsideClick),this.triggerEl&&("click"===this.triggerType?(this.triggerEl.removeEventListener("click",this.onTogglePopover),document.removeEventListener("click",this.onOutsideClick)):(this.triggerEl.removeEventListener("mouseenter",this.showPopover),this.triggerEl.removeEventListener("mouseleave",this.hidePopoverDelayed),this.popoverEl.removeEventListener("mouseenter",this.clearHideTimer),this.popoverEl.removeEventListener("mouseleave",this.hidePopoverDelayed)))}updatePosition(){const e=this.triggerEl.getBoundingClientRect(),t=this.popoverEl;let s=0,i=0;switch(this.placement){case"top":s=e.top-t.offsetHeight-8,i=e.left+(e.width-t.offsetWidth)/2;break;case"bottom":s=e.bottom+8,i=e.left+(e.width-t.offsetWidth)/2;break;case"left":s=e.top+(e.height-t.offsetHeight)/2,i=e.left-t.offsetWidth-8;break;case"right":s=e.top+(e.height-t.offsetHeight)/2,i=e.right+8}t.style.top=`${s}px`,t.style.left=`${i}px`,t.setAttribute("data-placement",this.placement);const r=this.renderRoot.querySelector(".arrow");if(r)if("top"===this.placement||"bottom"===this.placement){const s=e.left+e.width/2-i-6;r.style.left=`${Math.min(Math.max(s,10),t.offsetWidth-16)}px`,r.style.top=""}else{const i=e.top+e.height/2-s-6;r.style.top=`${Math.min(Math.max(i,10),t.offsetHeight-16)}px`,r.style.left=""}}render(){return Ds`
247
246
  <div class="trigger">
248
247
  <slot name="trigger"></slot>
249
248
  </div>
@@ -554,7 +553,7 @@ const Zs=e=>(t,s)=>{void 0!==s?s.addInitializer(()=>{customElements.define(e,t)}
554
553
  `:null}
555
554
  </div>
556
555
  </div>
557
- `:Ds``}_onCancel(){this.dispatchEvent(new CustomEvent("cancel")),this.visible=!1}_onOk(){this.dispatchEvent(new CustomEvent("ok"))}_onMaskClick(){this._onCancel()}};jt([ei({type:Boolean})],ki.prototype,"visible",void 0),jt([ei({type:Boolean})],ki.prototype,"showFooter",void 0),jt([ei({type:String})],ki.prototype,"width",void 0),jt([ei({type:String})],ki.prototype,"title",void 0),ki=jt([Zs("my-modal-wrapper")],ki);class Ni{constructor(){this.roleData={agentInfo:()=>{if(!pi.agentInfo?.agent_no)throw new Error("请先登录")},requestInfo:e=>{if(!e.data)throw new Error("请传入参数")},changeDevice:e=>{if(!e)throw new Error('Parameter "device" is required');const{answer_devices:t}=pi.agentInfo;if(!t.split(",").map(e=>Number(e)).includes(e))throw new Error("当前设备不支持")},changeState:(e,t)=>{if(!e)throw new Error('Parameter "state" is required');if(!t)throw new Error('Parameter "state_name" is required');if(2===e&&"通话中"===t)throw new Error("当前状态不支持");if(![1,2].includes(e))throw new Error("当前状态不支持")}}}async _agentLogin(e){try{const s=await(t={agent_no:e},ui(`${hi}/agent/login`,t));pi.agentInfo=s.data}catch(e){throw console.log(e),new Error("登录失败")}var t}async changeDevice(e){try{this.roleData.agentInfo(),this.roleData.requestInfo(e);const{data:t,success:s}=e,{device:i}=t;this.roleData.changeDevice(i);const{agent_no:r}=pi.agentInfo;await(e=>ui(`${hi}/device/change`,e))({agent_no:r,answer_device:i}),dt.updateAnswerDevice(i),s?.({code:0,msg:"请求成功"})}catch(e){throw console.log(e),new Error("切换设备失败")}}async changeState(e){try{pi.autoStateTimer&&(clearTimeout(pi.autoStateTimer),pi.autoStateTimer=null),this.roleData.agentInfo(),this.roleData.requestInfo(e);const{data:t,success:s}=e,{state:i,state_name:r}=t;this.roleData.changeState(i,r);const{agent_no:n}=pi.agentInfo;await(e=>ui(`${hi}/state/change`,e))({agent_no:n,state_name:r,state:i}),i===et.IDLE?dt.updateActionConfigs(wi):i===et.BUSY&&dt.updateActionConfigs(yi),pi.stateObject={state:i,state_name:r},s?.({code:0,msg:"请求成功"})}catch(e){console.log(e)}}async getIdleAgentList(e){const{agent_no:t}=pi.agentInfo;try{this.roleData.agentInfo();const s=await(e=>ui(`${hi}/agent/free`,e))({agent_no:t});e.success?.(s)}catch(e){console.log(e)}}async getAgentState(e){try{const t=await ui(`${ci}/agent/statecfg/list`,{}),s=(t.data||[]).filter(e=>0===e.enable).filter(e=>0!==e.state&&3!==e.state).map(e=>({state:e.state,state_name:e.state_name})).reverse();e.success?.({...t,data:s})}catch(e){console.log(e)}}}class Hi{constructor({container:e,rttHTML:t,statusParams:s},i){this.VoiceSDKInstance=i,this.apiClient=new Ni,this.isOpenSelect=!1,this.statusParams={state:et.IDLE,statusName:"空闲"},this.consultShow=!1,this.modalRoot=null,this.agentStateData=[],this.handleNetworkInfoChange=e=>{this.rttHTML&&this.renderRtt(e.rttObject)},this.handleCallInfoChange=e=>{this.render()},this.hiddenSelect=()=>{if(!this.isOpenSelect)return;const e=document.querySelector(".ysyt-select");e.style.height="0px",setTimeout(()=>{e.style.padding="0px"},100),this.isOpenSelect=!1,this.render()},this.toggle=e=>{e.stopPropagation(),this.isOpenSelect=!this.isOpenSelect;const t=document.querySelector(".ysyt-select");this.isOpenSelect?(t.style.height=t.scrollHeight+"px",t.style.padding="4px 0px",this.render()):this.hiddenSelect()},this.changeStatus=async e=>{const{state:t,statusName:s}=e;await this.apiClient.changeState({data:{state:t,state_name:s},success:()=>{this.statusParams=e;const t=document.getElementById("my-timer");t?.reset(),this.hiddenSelect()}})},this.onChangeDevices=async e=>{await this.apiClient.changeDevice({data:{device:e},success:({code:t})=>{0===t&&(1!==e&&this.VoiceSDKInstance.destroyRtc(),ni("切换成功"))}})},this.ruleCall=async e=>{if(e)try{await this.VoiceSDKInstance.call_api.makeCall(e)}catch(e){console.error(e)}},this.onCall=()=>{const e=document.querySelector("my-input");this.ruleCall(e.value)},this.renderCallPopover=()=>Ds`
556
+ `:Ds``}_onCancel(){this.dispatchEvent(new CustomEvent("cancel")),this.visible=!1}_onOk(){this.dispatchEvent(new CustomEvent("ok"))}_onMaskClick(){this._onCancel()}};jt([ei({type:Boolean})],ki.prototype,"visible",void 0),jt([ei({type:Boolean})],ki.prototype,"showFooter",void 0),jt([ei({type:String})],ki.prototype,"width",void 0),jt([ei({type:String})],ki.prototype,"title",void 0),ki=jt([Zs("my-modal-wrapper")],ki);class Ni{constructor(){this.roleData={agentInfo:()=>{if(!pi.agentInfo?.agent_no)throw new Error("请先登录")},requestInfo:e=>{if(!e.data)throw new Error("请传入参数")},changeDevice:e=>{if(!e)throw new Error('Parameter "device" is required');const{answer_devices:t}=pi.agentInfo;if(!t.split(",").map(e=>Number(e)).includes(e))throw new Error("当前设备不支持")},changeState:(e,t)=>{if(!e)throw new Error('Parameter "state" is required');if(!t)throw new Error('Parameter "state_name" is required');if(2===e&&"通话中"===t)throw new Error("当前状态不支持");if(![1,2].includes(e))throw new Error("当前状态不支持")}}}async _agentLogin(e){try{const s=await(t={agent_no:e},ui(`${hi}/agent/login`,t));pi.agentInfo=s.data}catch(e){throw console.log(e),new Error("登录失败")}var t}async changeDevice(e){try{this.roleData.agentInfo(),this.roleData.requestInfo(e);const{data:t,success:s}=e,{device:i}=t;this.roleData.changeDevice(i);const{agent_no:r}=pi.agentInfo;await(e=>ui(`${hi}/device/change`,e))({agent_no:r,answer_device:i}),dt.updateAnswerDevice(i),s?.({code:0,msg:"请求成功"})}catch(e){throw console.log(e),new Error("切换设备失败")}}async changeState(e){try{pi.autoStateTimer&&(clearTimeout(pi.autoStateTimer),pi.autoStateTimer=null),this.roleData.agentInfo(),this.roleData.requestInfo(e);const{data:t,success:s}=e,{state:i,state_name:r}=t;this.roleData.changeState(i,r);const{agent_no:n}=pi.agentInfo;await(e=>ui(`${hi}/state/change`,e))({agent_no:n,state_name:r,state:i}),i===et.IDLE?dt.updateActionConfigs(wi):i===et.BUSY&&dt.updateActionConfigs(yi),pi.stateObject={state:i,state_name:r},s?.({code:0,msg:"请求成功"})}catch(e){console.log(e)}}async getIdleAgentList(e){const{agent_no:t}=pi.agentInfo;try{this.roleData.agentInfo();const s=await(e=>ui(`${hi}/agent/free`,e))({agent_no:t});e.success?.(s)}catch(e){console.log(e)}}async getAgentState(e){try{const t=await ui(`${ci}/agent/statecfg/list`,{}),s=(t.data||[]).filter(e=>0===e.enable).filter(e=>0!==e.state&&3!==e.state).map(e=>({state:e.state,state_name:e.state_name})).reverse();e.success?.({...t,data:s})}catch(e){console.log(e)}}}class Hi{constructor({container:e,rttHTML:t,statusParams:s},i){this.VoiceSDKInstance=i,this.apiClient=new Ni,this.isOpenSelect=!1,this.statusParams={state:et.IDLE,statusName:"空闲"},this.consultShow=!1,this.modalRoot=null,this.agentStateData=[],this.handleNetworkInfoChange=e=>{this.rttHTML&&this.renderRtt(e.rttObject)},this.handleCallInfoChange=e=>{this.render()},this.hiddenSelect=()=>{if(!this.isOpenSelect)return;const e=document.querySelector(".ysyt-select");e.style.height="0px",setTimeout(()=>{e.style.padding="0px"},100),this.isOpenSelect=!1,this.render()},this.toggle=e=>{e.stopPropagation(),this.isOpenSelect=!this.isOpenSelect;const t=document.querySelector(".ysyt-select");this.isOpenSelect?(t.style.height=t.scrollHeight+"px",t.style.padding="4px 0px",this.render()):this.hiddenSelect()},this.changeStatus=async e=>{const{state:t,statusName:s}=e;await this.apiClient.changeState({data:{state:t,state_name:s},success:()=>{this.statusParams=e;const t=document.getElementById("my-timer");t?.reset(),this.hiddenSelect()}})},this.onChangeDevices=async e=>{await this.apiClient.changeDevice({data:{device:e},success:({code:t})=>{0===t&&(1!==e&&this.VoiceSDKInstance.destroyRtc(),ni("切换成功"),this.render())}})},this.ruleCall=async e=>{if(e)try{await this.VoiceSDKInstance.call_api.makeCall(e)}catch(e){console.error(e)}},this.onCall=()=>{const e=document.querySelector("my-input");this.ruleCall(e.value)},this.renderCallPopover=()=>Ds`
558
557
  <my-popover>
559
558
  <div slot="trigger">
560
559
  <my-tooltip content="拨打">
@@ -659,16 +658,16 @@ const Zs=e=>(t,s)=>{void 0!==s?s.addInitializer(()=>{customElements.define(e,t)}
659
658
  </div>`}
660
659
  </div>
661
660
  </my-modal-wrapper>
662
- `;Ws(i,this.modalRoot)}})}catch(e){oi(e)}}getActionConfigs(){const{show_satisfaction:e}=pi.agentInfo,t=dt.get("isHold"),s=dt.get("isMuted"),i=dt.get("actionConfigs").filter(i=>(0!==e||"satisfaction"!==i)&&(!(!t&&"unhold"===i)&&((!t||"hold"!==i)&&((!s||"mute"!==i)&&!(!s&&"unmute"===i)))));return[{render:this.renderCallPopover,type:"call_number"},{render:this.renderAnswer,type:"answer"},{render:this.renderReject,type:"reject"},{render:this.renderHangup,type:"hangup"},{render:this.renderDialer,type:"dtmf"},{render:this.renderUnhold,type:"unhold"},{render:this.renderHold,type:"hold"},{render:this.renderMute,type:"mute"},{render:this.renderUnmute,type:"unmute"},{render:this.renderSatisfaction,type:"satisfaction"},{render:this.renderConsult,type:"consult"},{render:this.renderTransfer,type:"transfer"},{render:this.renderConsultTransfer,type:"consult_transfer"}].filter(({type:e})=>i.includes(e))}async render(){const{displayText:e}=dt.getState(),{default_device:t,answer_devices:s,show_satisfaction:i}=pi.agentInfo,r=(s||"").split(","),n=this.getActionConfigs(),o={...vi},{statusColor:a}=o,c=document.querySelector("head");if(c){const e=Ds`
661
+ `;Ws(i,this.modalRoot)}})}catch(e){oi(e)}}getActionConfigs(){const{show_satisfaction:e}=pi.agentInfo,t=dt.get("isHold"),s=dt.get("isMuted"),i=dt.get("actionConfigs").filter(i=>(0!==e||"satisfaction"!==i)&&(!(!t&&"unhold"===i)&&((!t||"hold"!==i)&&((!s||"mute"!==i)&&!(!s&&"unmute"===i)))));return[{render:this.renderCallPopover,type:"call_number"},{render:this.renderAnswer,type:"answer"},{render:this.renderReject,type:"reject"},{render:this.renderHangup,type:"hangup"},{render:this.renderDialer,type:"dtmf"},{render:this.renderUnhold,type:"unhold"},{render:this.renderHold,type:"hold"},{render:this.renderMute,type:"mute"},{render:this.renderUnmute,type:"unmute"},{render:this.renderSatisfaction,type:"satisfaction"},{render:this.renderConsult,type:"consult"},{render:this.renderTransfer,type:"transfer"},{render:this.renderConsultTransfer,type:"consult_transfer"}].filter(({type:e})=>i.includes(e))}async render(){const{displayText:e,answerDevice:t}=dt.getState(),{default_device:s,answer_devices:i,show_satisfaction:r}=pi.agentInfo,n=(i||"").split(","),o=this.getActionConfigs(),a={...vi},{statusColor:c}=a,h=document.querySelector("head");if(h){const e=Ds`
663
662
  <style>
664
663
  .ysyt-phone-body {
665
- background: ${a[this.statusParams.state]};
664
+ background: ${c[this.statusParams.state]};
666
665
  }
667
666
  .ysyt-action-body {
668
- border-bottom: 1px solid ${a[this.statusParams.state]};
667
+ border-bottom: 1px solid ${c[this.statusParams.state]};
669
668
  }
670
669
  </style>
671
- `;Ws(e,c)}const h=Ds`
670
+ `;Ws(e,h)}const d=Ds`
672
671
  <i class="ysyt icon-shang select-icon" style="${this.isOpenSelect?"display: block;":"display: none;"}"></i>
673
672
  <div
674
673
  class="ysyt-select"
@@ -685,30 +684,30 @@ const Zs=e=>(t,s)=>{void 0!==s?s.addInitializer(()=>{customElements.define(e,t)}
685
684
  `)}
686
685
  </div>
687
686
  </div>
688
- `,d=Ds`
687
+ `,l=Ds`
689
688
  <div id="ysyt-body">
690
689
  <div id="ysyt-devices-body">
691
690
  <my-select
692
691
  width="100px"
693
- value="${String(t)}"
692
+ value="${String(s)}"
694
693
  placeholder=""
695
694
  @change=${e=>this.onChangeDevices(Number(e.detail.value))}
696
695
  >
697
- ${r.includes("1")?Ds`
696
+ ${n.includes("1")?Ds`
698
697
  <select-option value="1">
699
698
  <div style="display: flex; align-items: center; gap: 8px;">
700
699
  <img src="${"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAC0AAAAtCAYAAAA6GuKaAAAAAXNSR0IArs4c6QAAAjhJREFUaEPtmM1WwjAQhWeAF0I34kZ5MuDJqBtxo7wQEE9CkzNNk8yktIl4YKOHRvPl9s5PBuEOP3iHzPCALvXWxEq/HBfvGmp2AfPz8/m0LQXp78NCa1gEtQF1hbUfVLirBZ6EXh3neweL0CjAnVZaodpoeIW4/lqemtKKB6E76rawFM48V2oPCM1heV7/CWircMoCr9+LrVa8hk16SufArH7mqoZNboKuZZMetLXG4enMZhatsl1fMij/F7RUuZwYGCvLRJWWQDtPA4DUTmOARwORg6bApdNeD1qaEWy6Kw2s31QwQxigRLWr4eNO3xPyGJfGLDRnoTH8G/of8d5DqX0MijvUVLCuwwxtwPmae14FWm/K+bZW3xENRKtUCsweqkZ7muwvODBJCzuFVdimiAu6GvmaheZKdY3KyELToIz5Nxe8d1lGaPCCH9KLsgia9s2xsk3BU8HprzOeb2/60pZADC0Bp2tMagqMGULBawJ+pt6k8FnQUhu4rNOmDg1vBG3BYorSv0upngXd8XdESZvi9AHpjMSlPmbs4I8vQiOKbOgccP8Alxk00uFOqkYMgh4CPqTIxFrkwdAlwCeBdj0KmflJ0xanfKphu0lpunEnY2QWi+BFJDG9Gg3a2cXLtznBZ+G5tnhUaH9TqqDUNvSNxcYSk0B34Iny5vvWOnaNfhP6d5PTydrU/XNS6F6h8Q8QMnNgHu4vKwLtb2qrJf3eKi4pPlWguXTHPX9AcwqN9fwulf4FD/s5TOGFiLYAAAAASUVORK5CYII="}" width="16" alt="" /><span style="font-size: 14px">软电话</span>
701
700
  </div>
702
701
  </select-option>
703
702
  `:""}
704
- ${r.includes("2")?Ds`
703
+ ${n.includes("2")?Ds`
705
704
  <select-option value="2">
706
705
  <div style="display: flex; align-items: center; gap: 8px;">
707
706
  <img src="${"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAC0AAAAtCAYAAAA6GuKaAAAAAXNSR0IArs4c6QAAAWtJREFUaEPtWdFNAzEMdW6Ewgo3BzBOYYi2Q0DHKcxxK0BHaNA7cIVEVD0n8Uck31dVOfbLyzvn9JxkwCcNiFmqQd8fl8eWDX9u5/fa9WbQm9dlnyZ5yFmaQF8BZzmcX+a9ZQMm0HfH5QSwKcnKUr7Ih6XYv9gkO/yHfF/b+YnNRYMGw4IiFczcAlOTlwf9tmQUPz/P9BqWOZwgYlm2aQAbgO7Msm5KZccSQoFGp7hkOUF7SeTAMsjGZZEd3hUX0CyI2jgX0GC6uWMUdqQt1AX0kJoO0H9k4to9gulgutCS9HIJeYQ8Qh7cV0j0aeUpukdBMSGPkMeNRhLyCHmEPIibdujLJcyawgm7+R7T9GPz9nx8bTHSgNQpAev2u1wuYBWuKWt+q+fMxruBtnjIVqN8tZEN3jdl9a5MjzgJAHA9RvzWuUvrC6kzHHYKsNa2Fr0ybl1Ysnh/rWPX6VYHnF1SmJnuUrUxyZCgvwFf6/M9kuThSwAAAABJRU5ErkJggg=="}" width="16" alt="" /><span style="font-size: 14px">手机模式</span>
708
707
  </div>
709
708
  </select-option>
710
709
  `:""}
711
- ${r.includes("3")?Ds`
710
+ ${n.includes("3")?Ds`
712
711
  <select-option value="3">
713
712
  <div style="display: flex; align-items: center; gap: 8px;">
714
713
  <img src="${"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAC0AAAAtCAYAAAA6GuKaAAAAAXNSR0IArs4c6QAAAq5JREFUaEPtmWFywiAQhcEr6Als79F6LdsZdab1WsZ7tJ7AXiF0lmYzC9mFDUGrM/qrmrB8PB7LQq25w4+9Q2bzgL7WrD2UvhmlF8/vr865jXXueD7tt1PAIBZtf/76aPA7PKPf4Xf6Pn2WtMdiud46YzZ9R9Y2P9+fqxLw+dPbwTgXQNvZbIUw8+XaGRJ/0LcxkDV2IJwIHTSytuk7LADnAGDgCOFns20P8NvPae+ZuEFiGxaadtIHpqqPBPcqEsh4plLQg/6tbVhoqZNYfY1VKBC1AwUfBf03+PDDBQg6KFCcTjUoB/Hoos7ag9gT2g+hESphgbGKUygUAKcds4TK0x1TEbTvqEBxaANtMSOhXZJKg4edO5rZrMFMUwxdCk4zgyZ70BkhsxR5WmEPyeOphUbboBXqQTM5M7eZ4ELjVPHKdikviEM3kkSeVilNO5GUE5Xudqx4kANoZpHDO8Hi7GZcD41bbmYT4Tah3KzUeM7viEqL5GxRA5CLIdYe/a5IiprBtHczorFRzQHI0AqL9DvdyFpk6gDkKo9YRMoKuS1/KpzUXl1PSxbIVXCXAM+eEft0JVjgPzJIFjooLYU8rAWvdXTLQsc1hmgTcpzi1kDNo5sKmhY58LdYY0RnSqydnbUv9Lg25ejm+9culKAm1tbaUfAaR7dR0HGxTk/O3MC9HUDh7mOt3QVXBgX1uFia5pQvKf6lmKWx1PaQKruc4pcQoQg6ziipxZmDHsRSlATF0AOPJ+41aoNPgu7BndtgGpPqlLHgqTiToREm3jxK4TWVYzVozuddTvWXhjeptJhdME/DzRK5u4gHEd9CpQZaVekYRLothTQZvEuugDW2uih04Hdafwhe0R7brgIdWAf+G9C2weV6yjbc+K4OrVmQuXce0DmFaj2/S6V/Ae/pt8oTAp/jAAAAAElFTkSuQmCC"}" width="16" alt="" /><span style="font-size: 14px">SIP话机</span>
@@ -728,14 +727,14 @@ const Zs=e=>(t,s)=>{void 0!==s?s.addInitializer(()=>{customElements.define(e,t)}
728
727
  <span>${t}</span>
729
728
  `:void 0)(this.statusParams)}
730
729
  <i class="ysyt icon-xia"></i>
731
- ${h}
730
+ ${d}
732
731
  `}
733
732
  </div>
734
733
  <timer-component id="my-timer"></timer-component>
735
734
  </div>
736
- <div class="ysyt-action-body">${n.map(e=>e.render())}</div>
735
+ <div class="ysyt-action-body">${o.map(e=>e.render())}</div>
737
736
  </div>
738
- `;Ws(d,this.container)}async renderRtt(e){const{outCallIsAnswer:t}=dt.getState(),s=e?.rtt||500,i=Ds`
737
+ `;Ws(l,this.container)}async renderRtt(e){const{outCallIsAnswer:t}=dt.getState(),s=e?.rtt||500,i=Ds`
739
738
  <my-popover triggerType="hover">
740
739
  <div slot="trigger" id="wifi-body">
741
740
  ${s>=250?Ds`<img src="${"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAC0AAAAtCAYAAAA6GuKaAAAAAXNSR0IArs4c6QAAAlVJREFUaEPtmGFuwyAMhU2PtU1qOVmbk5FKW4+1TCawkcQYG2i3aM2fqirBn83zc1IDO7zMDpnhCf2oU+teaefcKYW31o69k6mGTuDOAWoBmwGNCVwBYKxNSAUdQDWQkiIPuMhae5EsxjUi6ARWUk1pbGrdIIFnoZWwqXbx+NPrqJAQLmXhSWghLELGo1U1m3MuSiFKLXc6JPwGOmyY28yD1jYQRSZIYAP+DV2obnfYdQIF+EV8Dx2AHVGJu8Mq4X3VDSMHUSe3WAV3L8eF0BNxs9XoNpwU2mF0CdwSv6fDxIeRWFrkyYEjNMoi+q9YDkKHyRUT41wlCRBxhqhptCDRWC24S41aRDIMcT2jaCKGZsXESr6aQmM1NRNUBK8Z46mE1tWMumX9W+DHxUkYA7eMcbH+maFCnVxx3xI05SzFTTXCZnok62BZ6MxmYt11AM/G4qCxidIpqfJuDXSm0fWVTgz+pBk0E7wFx/gMn4fRwLv4KTC+EXExxZbHVW6ClwuAOQJMjMWZEWC6GriJ31ByMZug56pOZx6WDD20wFdDT/DqKmDTDKrBq6BnOVDTESXgZ5Z/owGIus5Jx4wGPqy2aWuhV/6NsGbgGm6Wkk9iMVAM3NQM6huwKj+V1jfX6pSqJFIFrT1Oaj1WXmOF6R6/Bt2S+N2gWypZSqg7NOEsVbrlwLtC560QuoL3hqYeZWfnrrC2u4zxdNPgw9R/J2HZwda6xRr+f1d6OXQ2B/t3NU2D1z1fPMw9thrHBpS/AJT8Of7eVdPSoK3rntCtFZTev8tKfwHUBxjzil9I5gAAAABJRU5ErkJggg=="}" alt="" />`:""}
@@ -173,6 +173,7 @@ const Xs=e=>(t,s)=>{void 0!==s?s.addInitializer(()=>{customElements.define(e,t)}
173
173
 
174
174
  .trigger {
175
175
  display: inline-block;
176
+ cursor: pointer;
176
177
  }
177
178
 
178
179
  .popover {
@@ -187,6 +188,8 @@ const Xs=e=>(t,s)=>{void 0!==s?s.addInitializer(()=>{customElements.define(e,t)}
187
188
  opacity 0.2s ease,
188
189
  transform 0.2s ease;
189
190
  pointer-events: none;
191
+ min-width: 100px;
192
+ padding: 0px;
190
193
  }
191
194
 
192
195
  .popover.visible {
@@ -216,7 +219,6 @@ const Xs=e=>(t,s)=>{void 0!==s?s.addInitializer(()=>{customElements.define(e,t)}
216
219
 
217
220
  .arrow[data-placement='top'] {
218
221
  bottom: -6px;
219
- left: 10px;
220
222
  border-width: 6px 6px 0 6px;
221
223
  border-color: #fff transparent transparent transparent;
222
224
  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.05);
@@ -224,26 +226,23 @@ const Xs=e=>(t,s)=>{void 0!==s?s.addInitializer(()=>{customElements.define(e,t)}
224
226
 
225
227
  .arrow[data-placement='bottom'] {
226
228
  top: -6px;
227
- left: 10px;
228
229
  border-width: 0 6px 6px 6px;
229
230
  border-color: transparent transparent #fff transparent;
230
231
  box-shadow: 0 -2px 5px rgba(0, 0, 0, 0.05);
231
232
  }
232
233
 
233
234
  .arrow[data-placement='left'] {
234
- top: 10px;
235
235
  right: -6px;
236
236
  border-width: 6px 0 6px 6px;
237
237
  border-color: transparent transparent transparent #fff;
238
238
  }
239
239
 
240
240
  .arrow[data-placement='right'] {
241
- top: 10px;
242
241
  left: -6px;
243
242
  border-width: 6px 6px 6px 0;
244
243
  border-color: transparent #fff transparent transparent;
245
244
  }
246
- `}firstUpdated(){this.triggerEl=this.renderRoot.querySelector(".trigger"),this.popoverEl=this.renderRoot.querySelector(".popover"),"click"===this.triggerType?(this.triggerEl.addEventListener("click",this.onTogglePopover),document.addEventListener("click",this.onOutsideClick)):(this.triggerEl.addEventListener("mouseenter",this.showPopover),this.triggerEl.addEventListener("mouseleave",this.hidePopoverDelayed),this.popoverEl.addEventListener("mouseenter",this.clearHideTimer),this.popoverEl.addEventListener("mouseleave",this.hidePopoverDelayed))}disconnectedCallback(){super.disconnectedCallback(),document.removeEventListener("click",this.onOutsideClick)}updatePosition(){const e=this.triggerEl.getBoundingClientRect(),t=this.popoverEl;let s=0,i=0;switch(this.placement){case"top":s=e.top-t.offsetHeight-8,i=e.left;break;case"bottom":s=e.bottom+8,i=e.left;break;case"left":s=e.top,i=e.left-t.offsetWidth-8;break;case"right":s=e.top,i=e.right+8}t.style.top=`${s}px`,t.style.left=`${i}px`,t.setAttribute("data-placement",this.placement)}render(){return xs`
245
+ `}firstUpdated(){this.triggerEl=this.renderRoot.querySelector(".trigger"),this.popoverEl=this.renderRoot.querySelector(".popover"),"click"===this.triggerType?(this.triggerEl.addEventListener("click",this.onTogglePopover),document.addEventListener("click",this.onOutsideClick)):(this.triggerEl.addEventListener("mouseenter",this.showPopover),this.triggerEl.addEventListener("mouseleave",this.hidePopoverDelayed),this.popoverEl.addEventListener("mouseenter",this.clearHideTimer),this.popoverEl.addEventListener("mouseleave",this.hidePopoverDelayed))}disconnectedCallback(){super.disconnectedCallback(),document.removeEventListener("click",this.onOutsideClick),this.triggerEl&&("click"===this.triggerType?(this.triggerEl.removeEventListener("click",this.onTogglePopover),document.removeEventListener("click",this.onOutsideClick)):(this.triggerEl.removeEventListener("mouseenter",this.showPopover),this.triggerEl.removeEventListener("mouseleave",this.hidePopoverDelayed),this.popoverEl.removeEventListener("mouseenter",this.clearHideTimer),this.popoverEl.removeEventListener("mouseleave",this.hidePopoverDelayed)))}updatePosition(){const e=this.triggerEl.getBoundingClientRect(),t=this.popoverEl;let s=0,i=0;switch(this.placement){case"top":s=e.top-t.offsetHeight-8,i=e.left+(e.width-t.offsetWidth)/2;break;case"bottom":s=e.bottom+8,i=e.left+(e.width-t.offsetWidth)/2;break;case"left":s=e.top+(e.height-t.offsetHeight)/2,i=e.left-t.offsetWidth-8;break;case"right":s=e.top+(e.height-t.offsetHeight)/2,i=e.right+8}t.style.top=`${s}px`,t.style.left=`${i}px`,t.setAttribute("data-placement",this.placement);const r=this.renderRoot.querySelector(".arrow");if(r)if("top"===this.placement||"bottom"===this.placement){const s=e.left+e.width/2-i-6;r.style.left=`${Math.min(Math.max(s,10),t.offsetWidth-16)}px`,r.style.top=""}else{const i=e.top+e.height/2-s-6;r.style.top=`${Math.min(Math.max(i,10),t.offsetHeight-16)}px`,r.style.left=""}}render(){return xs`
247
246
  <div class="trigger">
248
247
  <slot name="trigger"></slot>
249
248
  </div>
@@ -554,7 +553,7 @@ const Xs=e=>(t,s)=>{void 0!==s?s.addInitializer(()=>{customElements.define(e,t)}
554
553
  `:null}
555
554
  </div>
556
555
  </div>
557
- `:xs``}_onCancel(){this.dispatchEvent(new CustomEvent("cancel")),this.visible=!1}_onOk(){this.dispatchEvent(new CustomEvent("ok"))}_onMaskClick(){this._onCancel()}};Bt([ti({type:Boolean})],Ni.prototype,"visible",void 0),Bt([ti({type:Boolean})],Ni.prototype,"showFooter",void 0),Bt([ti({type:String})],Ni.prototype,"width",void 0),Bt([ti({type:String})],Ni.prototype,"title",void 0),Ni=Bt([Xs("my-modal-wrapper")],Ni);class Hi{constructor(){this.roleData={agentInfo:()=>{if(!fi.agentInfo?.agent_no)throw new Error("请先登录")},requestInfo:e=>{if(!e.data)throw new Error("请传入参数")},changeDevice:e=>{if(!e)throw new Error('Parameter "device" is required');const{answer_devices:t}=fi.agentInfo;if(!t.split(",").map(e=>Number(e)).includes(e))throw new Error("当前设备不支持")},changeState:(e,t)=>{if(!e)throw new Error('Parameter "state" is required');if(!t)throw new Error('Parameter "state_name" is required');if(2===e&&"通话中"===t)throw new Error("当前状态不支持");if(![1,2].includes(e))throw new Error("当前状态不支持")}}}async _agentLogin(e){try{const s=await(t={agent_no:e},pi(`${di}/agent/login`,t));fi.agentInfo=s.data}catch(e){throw console.log(e),new Error("登录失败")}var t}async changeDevice(e){try{this.roleData.agentInfo(),this.roleData.requestInfo(e);const{data:t,success:s}=e,{device:i}=t;this.roleData.changeDevice(i);const{agent_no:r}=fi.agentInfo;await(e=>pi(`${di}/device/change`,e))({agent_no:r,answer_device:i}),dt.updateAnswerDevice(i),s?.({code:0,msg:"请求成功"})}catch(e){throw console.log(e),new Error("切换设备失败")}}async changeState(e){try{fi.autoStateTimer&&(clearTimeout(fi.autoStateTimer),fi.autoStateTimer=null),this.roleData.agentInfo(),this.roleData.requestInfo(e);const{data:t,success:s}=e,{state:i,state_name:r}=t;this.roleData.changeState(i,r);const{agent_no:n}=fi.agentInfo;await(e=>pi(`${di}/state/change`,e))({agent_no:n,state_name:r,state:i}),i===et.IDLE?dt.updateActionConfigs(yi):i===et.BUSY&&dt.updateActionConfigs(bi),fi.stateObject={state:i,state_name:r},s?.({code:0,msg:"请求成功"})}catch(e){console.log(e)}}async getIdleAgentList(e){const{agent_no:t}=fi.agentInfo;try{this.roleData.agentInfo();const s=await(e=>pi(`${di}/agent/free`,e))({agent_no:t});e.success?.(s)}catch(e){console.log(e)}}async getAgentState(e){try{const t=await pi(`${hi}/agent/statecfg/list`,{}),s=(t.data||[]).filter(e=>0===e.enable).filter(e=>0!==e.state&&3!==e.state).map(e=>({state:e.state,state_name:e.state_name})).reverse();e.success?.({...t,data:s})}catch(e){console.log(e)}}}class Pi{constructor({container:e,rttHTML:t,statusParams:s},i){this.VoiceSDKInstance=i,this.apiClient=new Hi,this.isOpenSelect=!1,this.statusParams={state:et.IDLE,statusName:"空闲"},this.consultShow=!1,this.modalRoot=null,this.agentStateData=[],this.handleNetworkInfoChange=e=>{this.rttHTML&&this.renderRtt(e.rttObject)},this.handleCallInfoChange=e=>{this.render()},this.hiddenSelect=()=>{if(!this.isOpenSelect)return;const e=document.querySelector(".ysyt-select");e.style.height="0px",setTimeout(()=>{e.style.padding="0px"},100),this.isOpenSelect=!1,this.render()},this.toggle=e=>{e.stopPropagation(),this.isOpenSelect=!this.isOpenSelect;const t=document.querySelector(".ysyt-select");this.isOpenSelect?(t.style.height=t.scrollHeight+"px",t.style.padding="4px 0px",this.render()):this.hiddenSelect()},this.changeStatus=async e=>{const{state:t,statusName:s}=e;await this.apiClient.changeState({data:{state:t,state_name:s},success:()=>{this.statusParams=e;const t=document.getElementById("my-timer");t?.reset(),this.hiddenSelect()}})},this.onChangeDevices=async e=>{await this.apiClient.changeDevice({data:{device:e},success:({code:t})=>{0===t&&(1!==e&&this.VoiceSDKInstance.destroyRtc(),oi("切换成功"))}})},this.ruleCall=async e=>{if(e)try{await this.VoiceSDKInstance.call_api.makeCall(e)}catch(e){console.error(e)}},this.onCall=()=>{const e=document.querySelector("my-input");this.ruleCall(e.value)},this.renderCallPopover=()=>xs`
556
+ `:xs``}_onCancel(){this.dispatchEvent(new CustomEvent("cancel")),this.visible=!1}_onOk(){this.dispatchEvent(new CustomEvent("ok"))}_onMaskClick(){this._onCancel()}};Bt([ti({type:Boolean})],Ni.prototype,"visible",void 0),Bt([ti({type:Boolean})],Ni.prototype,"showFooter",void 0),Bt([ti({type:String})],Ni.prototype,"width",void 0),Bt([ti({type:String})],Ni.prototype,"title",void 0),Ni=Bt([Xs("my-modal-wrapper")],Ni);class Hi{constructor(){this.roleData={agentInfo:()=>{if(!fi.agentInfo?.agent_no)throw new Error("请先登录")},requestInfo:e=>{if(!e.data)throw new Error("请传入参数")},changeDevice:e=>{if(!e)throw new Error('Parameter "device" is required');const{answer_devices:t}=fi.agentInfo;if(!t.split(",").map(e=>Number(e)).includes(e))throw new Error("当前设备不支持")},changeState:(e,t)=>{if(!e)throw new Error('Parameter "state" is required');if(!t)throw new Error('Parameter "state_name" is required');if(2===e&&"通话中"===t)throw new Error("当前状态不支持");if(![1,2].includes(e))throw new Error("当前状态不支持")}}}async _agentLogin(e){try{const s=await(t={agent_no:e},pi(`${di}/agent/login`,t));fi.agentInfo=s.data}catch(e){throw console.log(e),new Error("登录失败")}var t}async changeDevice(e){try{this.roleData.agentInfo(),this.roleData.requestInfo(e);const{data:t,success:s}=e,{device:i}=t;this.roleData.changeDevice(i);const{agent_no:r}=fi.agentInfo;await(e=>pi(`${di}/device/change`,e))({agent_no:r,answer_device:i}),dt.updateAnswerDevice(i),s?.({code:0,msg:"请求成功"})}catch(e){throw console.log(e),new Error("切换设备失败")}}async changeState(e){try{fi.autoStateTimer&&(clearTimeout(fi.autoStateTimer),fi.autoStateTimer=null),this.roleData.agentInfo(),this.roleData.requestInfo(e);const{data:t,success:s}=e,{state:i,state_name:r}=t;this.roleData.changeState(i,r);const{agent_no:n}=fi.agentInfo;await(e=>pi(`${di}/state/change`,e))({agent_no:n,state_name:r,state:i}),i===et.IDLE?dt.updateActionConfigs(yi):i===et.BUSY&&dt.updateActionConfigs(bi),fi.stateObject={state:i,state_name:r},s?.({code:0,msg:"请求成功"})}catch(e){console.log(e)}}async getIdleAgentList(e){const{agent_no:t}=fi.agentInfo;try{this.roleData.agentInfo();const s=await(e=>pi(`${di}/agent/free`,e))({agent_no:t});e.success?.(s)}catch(e){console.log(e)}}async getAgentState(e){try{const t=await pi(`${hi}/agent/statecfg/list`,{}),s=(t.data||[]).filter(e=>0===e.enable).filter(e=>0!==e.state&&3!==e.state).map(e=>({state:e.state,state_name:e.state_name})).reverse();e.success?.({...t,data:s})}catch(e){console.log(e)}}}class Pi{constructor({container:e,rttHTML:t,statusParams:s},i){this.VoiceSDKInstance=i,this.apiClient=new Hi,this.isOpenSelect=!1,this.statusParams={state:et.IDLE,statusName:"空闲"},this.consultShow=!1,this.modalRoot=null,this.agentStateData=[],this.handleNetworkInfoChange=e=>{this.rttHTML&&this.renderRtt(e.rttObject)},this.handleCallInfoChange=e=>{this.render()},this.hiddenSelect=()=>{if(!this.isOpenSelect)return;const e=document.querySelector(".ysyt-select");e.style.height="0px",setTimeout(()=>{e.style.padding="0px"},100),this.isOpenSelect=!1,this.render()},this.toggle=e=>{e.stopPropagation(),this.isOpenSelect=!this.isOpenSelect;const t=document.querySelector(".ysyt-select");this.isOpenSelect?(t.style.height=t.scrollHeight+"px",t.style.padding="4px 0px",this.render()):this.hiddenSelect()},this.changeStatus=async e=>{const{state:t,statusName:s}=e;await this.apiClient.changeState({data:{state:t,state_name:s},success:()=>{this.statusParams=e;const t=document.getElementById("my-timer");t?.reset(),this.hiddenSelect()}})},this.onChangeDevices=async e=>{await this.apiClient.changeDevice({data:{device:e},success:({code:t})=>{0===t&&(1!==e&&this.VoiceSDKInstance.destroyRtc(),oi("切换成功"),this.render())}})},this.ruleCall=async e=>{if(e)try{await this.VoiceSDKInstance.call_api.makeCall(e)}catch(e){console.error(e)}},this.onCall=()=>{const e=document.querySelector("my-input");this.ruleCall(e.value)},this.renderCallPopover=()=>xs`
558
557
  <my-popover>
559
558
  <div slot="trigger">
560
559
  <my-tooltip content="拨打">
@@ -659,16 +658,16 @@ const Xs=e=>(t,s)=>{void 0!==s?s.addInitializer(()=>{customElements.define(e,t)}
659
658
  </div>`}
660
659
  </div>
661
660
  </my-modal-wrapper>
662
- `;Ys(i,this.modalRoot)}})}catch(e){ai(e)}}getActionConfigs(){const{show_satisfaction:e}=fi.agentInfo,t=dt.get("isHold"),s=dt.get("isMuted"),i=dt.get("actionConfigs").filter(i=>(0!==e||"satisfaction"!==i)&&(!(!t&&"unhold"===i)&&((!t||"hold"!==i)&&((!s||"mute"!==i)&&!(!s&&"unmute"===i)))));return[{render:this.renderCallPopover,type:"call_number"},{render:this.renderAnswer,type:"answer"},{render:this.renderReject,type:"reject"},{render:this.renderHangup,type:"hangup"},{render:this.renderDialer,type:"dtmf"},{render:this.renderUnhold,type:"unhold"},{render:this.renderHold,type:"hold"},{render:this.renderMute,type:"mute"},{render:this.renderUnmute,type:"unmute"},{render:this.renderSatisfaction,type:"satisfaction"},{render:this.renderConsult,type:"consult"},{render:this.renderTransfer,type:"transfer"},{render:this.renderConsultTransfer,type:"consult_transfer"}].filter(({type:e})=>i.includes(e))}async render(){const{displayText:e}=dt.getState(),{default_device:t,answer_devices:s,show_satisfaction:i}=fi.agentInfo,r=(s||"").split(","),n=this.getActionConfigs(),o={...wi},{statusColor:a}=o,c=document.querySelector("head");if(c){const e=xs`
661
+ `;Ys(i,this.modalRoot)}})}catch(e){ai(e)}}getActionConfigs(){const{show_satisfaction:e}=fi.agentInfo,t=dt.get("isHold"),s=dt.get("isMuted"),i=dt.get("actionConfigs").filter(i=>(0!==e||"satisfaction"!==i)&&(!(!t&&"unhold"===i)&&((!t||"hold"!==i)&&((!s||"mute"!==i)&&!(!s&&"unmute"===i)))));return[{render:this.renderCallPopover,type:"call_number"},{render:this.renderAnswer,type:"answer"},{render:this.renderReject,type:"reject"},{render:this.renderHangup,type:"hangup"},{render:this.renderDialer,type:"dtmf"},{render:this.renderUnhold,type:"unhold"},{render:this.renderHold,type:"hold"},{render:this.renderMute,type:"mute"},{render:this.renderUnmute,type:"unmute"},{render:this.renderSatisfaction,type:"satisfaction"},{render:this.renderConsult,type:"consult"},{render:this.renderTransfer,type:"transfer"},{render:this.renderConsultTransfer,type:"consult_transfer"}].filter(({type:e})=>i.includes(e))}async render(){const{displayText:e,answerDevice:t}=dt.getState(),{default_device:s,answer_devices:i,show_satisfaction:r}=fi.agentInfo,n=(i||"").split(","),o=this.getActionConfigs(),a={...wi},{statusColor:c}=a,h=document.querySelector("head");if(h){const e=xs`
663
662
  <style>
664
663
  .ysyt-phone-body {
665
- background: ${a[this.statusParams.state]};
664
+ background: ${c[this.statusParams.state]};
666
665
  }
667
666
  .ysyt-action-body {
668
- border-bottom: 1px solid ${a[this.statusParams.state]};
667
+ border-bottom: 1px solid ${c[this.statusParams.state]};
669
668
  }
670
669
  </style>
671
- `;Ys(e,c)}const h=xs`
670
+ `;Ys(e,h)}const d=xs`
672
671
  <i class="ysyt icon-shang select-icon" style="${this.isOpenSelect?"display: block;":"display: none;"}"></i>
673
672
  <div
674
673
  class="ysyt-select"
@@ -685,30 +684,30 @@ const Xs=e=>(t,s)=>{void 0!==s?s.addInitializer(()=>{customElements.define(e,t)}
685
684
  `)}
686
685
  </div>
687
686
  </div>
688
- `,d=xs`
687
+ `,l=xs`
689
688
  <div id="ysyt-body">
690
689
  <div id="ysyt-devices-body">
691
690
  <my-select
692
691
  width="100px"
693
- value="${String(t)}"
692
+ value="${String(s)}"
694
693
  placeholder=""
695
694
  @change=${e=>this.onChangeDevices(Number(e.detail.value))}
696
695
  >
697
- ${r.includes("1")?xs`
696
+ ${n.includes("1")?xs`
698
697
  <select-option value="1">
699
698
  <div style="display: flex; align-items: center; gap: 8px;">
700
699
  <img src="${"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAC0AAAAtCAYAAAA6GuKaAAAAAXNSR0IArs4c6QAAAjhJREFUaEPtmM1WwjAQhWeAF0I34kZ5MuDJqBtxo7wQEE9CkzNNk8yktIl4YKOHRvPl9s5PBuEOP3iHzPCALvXWxEq/HBfvGmp2AfPz8/m0LQXp78NCa1gEtQF1hbUfVLirBZ6EXh3neweL0CjAnVZaodpoeIW4/lqemtKKB6E76rawFM48V2oPCM1heV7/CWircMoCr9+LrVa8hk16SufArH7mqoZNboKuZZMetLXG4enMZhatsl1fMij/F7RUuZwYGCvLRJWWQDtPA4DUTmOARwORg6bApdNeD1qaEWy6Kw2s31QwQxigRLWr4eNO3xPyGJfGLDRnoTH8G/of8d5DqX0MijvUVLCuwwxtwPmae14FWm/K+bZW3xENRKtUCsweqkZ7muwvODBJCzuFVdimiAu6GvmaheZKdY3KyELToIz5Nxe8d1lGaPCCH9KLsgia9s2xsk3BU8HprzOeb2/60pZADC0Bp2tMagqMGULBawJ+pt6k8FnQUhu4rNOmDg1vBG3BYorSv0upngXd8XdESZvi9AHpjMSlPmbs4I8vQiOKbOgccP8Alxk00uFOqkYMgh4CPqTIxFrkwdAlwCeBdj0KmflJ0xanfKphu0lpunEnY2QWi+BFJDG9Gg3a2cXLtznBZ+G5tnhUaH9TqqDUNvSNxcYSk0B34Iny5vvWOnaNfhP6d5PTydrU/XNS6F6h8Q8QMnNgHu4vKwLtb2qrJf3eKi4pPlWguXTHPX9AcwqN9fwulf4FD/s5TOGFiLYAAAAASUVORK5CYII="}" width="16" alt="" /><span style="font-size: 14px">软电话</span>
701
700
  </div>
702
701
  </select-option>
703
702
  `:""}
704
- ${r.includes("2")?xs`
703
+ ${n.includes("2")?xs`
705
704
  <select-option value="2">
706
705
  <div style="display: flex; align-items: center; gap: 8px;">
707
706
  <img src="${"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAC0AAAAtCAYAAAA6GuKaAAAAAXNSR0IArs4c6QAAAWtJREFUaEPtWdFNAzEMdW6Ewgo3BzBOYYi2Q0DHKcxxK0BHaNA7cIVEVD0n8Uck31dVOfbLyzvn9JxkwCcNiFmqQd8fl8eWDX9u5/fa9WbQm9dlnyZ5yFmaQF8BZzmcX+a9ZQMm0HfH5QSwKcnKUr7Ih6XYv9gkO/yHfF/b+YnNRYMGw4IiFczcAlOTlwf9tmQUPz/P9BqWOZwgYlm2aQAbgO7Msm5KZccSQoFGp7hkOUF7SeTAMsjGZZEd3hUX0CyI2jgX0GC6uWMUdqQt1AX0kJoO0H9k4to9gulgutCS9HIJeYQ8Qh7cV0j0aeUpukdBMSGPkMeNRhLyCHmEPIibdujLJcyawgm7+R7T9GPz9nx8bTHSgNQpAev2u1wuYBWuKWt+q+fMxruBtnjIVqN8tZEN3jdl9a5MjzgJAHA9RvzWuUvrC6kzHHYKsNa2Fr0ybl1Ysnh/rWPX6VYHnF1SmJnuUrUxyZCgvwFf6/M9kuThSwAAAABJRU5ErkJggg=="}" width="16" alt="" /><span style="font-size: 14px">手机模式</span>
708
707
  </div>
709
708
  </select-option>
710
709
  `:""}
711
- ${r.includes("3")?xs`
710
+ ${n.includes("3")?xs`
712
711
  <select-option value="3">
713
712
  <div style="display: flex; align-items: center; gap: 8px;">
714
713
  <img src="${"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAC0AAAAtCAYAAAA6GuKaAAAAAXNSR0IArs4c6QAAAq5JREFUaEPtmWFywiAQhcEr6Als79F6LdsZdab1WsZ7tJ7AXiF0lmYzC9mFDUGrM/qrmrB8PB7LQq25w4+9Q2bzgL7WrD2UvhmlF8/vr865jXXueD7tt1PAIBZtf/76aPA7PKPf4Xf6Pn2WtMdiud46YzZ9R9Y2P9+fqxLw+dPbwTgXQNvZbIUw8+XaGRJ/0LcxkDV2IJwIHTSytuk7LADnAGDgCOFns20P8NvPae+ZuEFiGxaadtIHpqqPBPcqEsh4plLQg/6tbVhoqZNYfY1VKBC1AwUfBf03+PDDBQg6KFCcTjUoB/Hoos7ag9gT2g+hESphgbGKUygUAKcds4TK0x1TEbTvqEBxaANtMSOhXZJKg4edO5rZrMFMUwxdCk4zgyZ70BkhsxR5WmEPyeOphUbboBXqQTM5M7eZ4ELjVPHKdikviEM3kkSeVilNO5GUE5Xudqx4kANoZpHDO8Hi7GZcD41bbmYT4Tah3KzUeM7viEqL5GxRA5CLIdYe/a5IiprBtHczorFRzQHI0AqL9DvdyFpk6gDkKo9YRMoKuS1/KpzUXl1PSxbIVXCXAM+eEft0JVjgPzJIFjooLYU8rAWvdXTLQsc1hmgTcpzi1kDNo5sKmhY58LdYY0RnSqydnbUv9Lg25ejm+9culKAm1tbaUfAaR7dR0HGxTk/O3MC9HUDh7mOt3QVXBgX1uFia5pQvKf6lmKWx1PaQKruc4pcQoQg6ziipxZmDHsRSlATF0AOPJ+41aoNPgu7BndtgGpPqlLHgqTiToREm3jxK4TWVYzVozuddTvWXhjeptJhdME/DzRK5u4gHEd9CpQZaVekYRLothTQZvEuugDW2uih04Hdafwhe0R7brgIdWAf+G9C2weV6yjbc+K4OrVmQuXce0DmFaj2/S6V/Ae/pt8oTAp/jAAAAAElFTkSuQmCC"}" width="16" alt="" /><span style="font-size: 14px">SIP话机</span>
@@ -728,14 +727,14 @@ const Xs=e=>(t,s)=>{void 0!==s?s.addInitializer(()=>{customElements.define(e,t)}
728
727
  <span>${t}</span>
729
728
  `:void 0)(this.statusParams)}
730
729
  <i class="ysyt icon-xia"></i>
731
- ${h}
730
+ ${d}
732
731
  `}
733
732
  </div>
734
733
  <timer-component id="my-timer"></timer-component>
735
734
  </div>
736
- <div class="ysyt-action-body">${n.map(e=>e.render())}</div>
735
+ <div class="ysyt-action-body">${o.map(e=>e.render())}</div>
737
736
  </div>
738
- `;Ys(d,this.container)}async renderRtt(e){const{outCallIsAnswer:t}=dt.getState(),s=e?.rtt||500,i=xs`
737
+ `;Ys(l,this.container)}async renderRtt(e){const{outCallIsAnswer:t}=dt.getState(),s=e?.rtt||500,i=xs`
739
738
  <my-popover triggerType="hover">
740
739
  <div slot="trigger" id="wifi-body">
741
740
  ${s>=250?xs`<img src="${"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAC0AAAAtCAYAAAA6GuKaAAAAAXNSR0IArs4c6QAAAlVJREFUaEPtmGFuwyAMhU2PtU1qOVmbk5FKW4+1TCawkcQYG2i3aM2fqirBn83zc1IDO7zMDpnhCf2oU+teaefcKYW31o69k6mGTuDOAWoBmwGNCVwBYKxNSAUdQDWQkiIPuMhae5EsxjUi6ARWUk1pbGrdIIFnoZWwqXbx+NPrqJAQLmXhSWghLELGo1U1m3MuSiFKLXc6JPwGOmyY28yD1jYQRSZIYAP+DV2obnfYdQIF+EV8Dx2AHVGJu8Mq4X3VDSMHUSe3WAV3L8eF0BNxs9XoNpwU2mF0CdwSv6fDxIeRWFrkyYEjNMoi+q9YDkKHyRUT41wlCRBxhqhptCDRWC24S41aRDIMcT2jaCKGZsXESr6aQmM1NRNUBK8Z46mE1tWMumX9W+DHxUkYA7eMcbH+maFCnVxx3xI05SzFTTXCZnok62BZ6MxmYt11AM/G4qCxidIpqfJuDXSm0fWVTgz+pBk0E7wFx/gMn4fRwLv4KTC+EXExxZbHVW6ClwuAOQJMjMWZEWC6GriJ31ByMZug56pOZx6WDD20wFdDT/DqKmDTDKrBq6BnOVDTESXgZ5Z/owGIus5Jx4wGPqy2aWuhV/6NsGbgGm6Wkk9iMVAM3NQM6huwKj+V1jfX6pSqJFIFrT1Oaj1WXmOF6R6/Bt2S+N2gWypZSqg7NOEsVbrlwLtC560QuoL3hqYeZWfnrrC2u4zxdNPgw9R/J2HZwda6xRr+f1d6OXQ2B/t3NU2D1z1fPMw9thrHBpS/AJT8Of7eVdPSoK3rntCtFZTev8tKfwHUBxjzil9I5gAAAABJRU5ErkJggg=="}" alt="" />`:""}
@@ -173,6 +173,7 @@ const Zs=e=>(t,s)=>{void 0!==s?s.addInitializer(()=>{customElements.define(e,t)}
173
173
 
174
174
  .trigger {
175
175
  display: inline-block;
176
+ cursor: pointer;
176
177
  }
177
178
 
178
179
  .popover {
@@ -187,6 +188,8 @@ const Zs=e=>(t,s)=>{void 0!==s?s.addInitializer(()=>{customElements.define(e,t)}
187
188
  opacity 0.2s ease,
188
189
  transform 0.2s ease;
189
190
  pointer-events: none;
191
+ min-width: 100px;
192
+ padding: 0px;
190
193
  }
191
194
 
192
195
  .popover.visible {
@@ -216,7 +219,6 @@ const Zs=e=>(t,s)=>{void 0!==s?s.addInitializer(()=>{customElements.define(e,t)}
216
219
 
217
220
  .arrow[data-placement='top'] {
218
221
  bottom: -6px;
219
- left: 10px;
220
222
  border-width: 6px 6px 0 6px;
221
223
  border-color: #fff transparent transparent transparent;
222
224
  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.05);
@@ -224,26 +226,23 @@ const Zs=e=>(t,s)=>{void 0!==s?s.addInitializer(()=>{customElements.define(e,t)}
224
226
 
225
227
  .arrow[data-placement='bottom'] {
226
228
  top: -6px;
227
- left: 10px;
228
229
  border-width: 0 6px 6px 6px;
229
230
  border-color: transparent transparent #fff transparent;
230
231
  box-shadow: 0 -2px 5px rgba(0, 0, 0, 0.05);
231
232
  }
232
233
 
233
234
  .arrow[data-placement='left'] {
234
- top: 10px;
235
235
  right: -6px;
236
236
  border-width: 6px 0 6px 6px;
237
237
  border-color: transparent transparent transparent #fff;
238
238
  }
239
239
 
240
240
  .arrow[data-placement='right'] {
241
- top: 10px;
242
241
  left: -6px;
243
242
  border-width: 6px 6px 6px 0;
244
243
  border-color: transparent #fff transparent transparent;
245
244
  }
246
- `}firstUpdated(){this.triggerEl=this.renderRoot.querySelector(".trigger"),this.popoverEl=this.renderRoot.querySelector(".popover"),"click"===this.triggerType?(this.triggerEl.addEventListener("click",this.onTogglePopover),document.addEventListener("click",this.onOutsideClick)):(this.triggerEl.addEventListener("mouseenter",this.showPopover),this.triggerEl.addEventListener("mouseleave",this.hidePopoverDelayed),this.popoverEl.addEventListener("mouseenter",this.clearHideTimer),this.popoverEl.addEventListener("mouseleave",this.hidePopoverDelayed))}disconnectedCallback(){super.disconnectedCallback(),document.removeEventListener("click",this.onOutsideClick)}updatePosition(){const e=this.triggerEl.getBoundingClientRect(),t=this.popoverEl;let s=0,i=0;switch(this.placement){case"top":s=e.top-t.offsetHeight-8,i=e.left;break;case"bottom":s=e.bottom+8,i=e.left;break;case"left":s=e.top,i=e.left-t.offsetWidth-8;break;case"right":s=e.top,i=e.right+8}t.style.top=`${s}px`,t.style.left=`${i}px`,t.setAttribute("data-placement",this.placement)}render(){return Ds`
245
+ `}firstUpdated(){this.triggerEl=this.renderRoot.querySelector(".trigger"),this.popoverEl=this.renderRoot.querySelector(".popover"),"click"===this.triggerType?(this.triggerEl.addEventListener("click",this.onTogglePopover),document.addEventListener("click",this.onOutsideClick)):(this.triggerEl.addEventListener("mouseenter",this.showPopover),this.triggerEl.addEventListener("mouseleave",this.hidePopoverDelayed),this.popoverEl.addEventListener("mouseenter",this.clearHideTimer),this.popoverEl.addEventListener("mouseleave",this.hidePopoverDelayed))}disconnectedCallback(){super.disconnectedCallback(),document.removeEventListener("click",this.onOutsideClick),this.triggerEl&&("click"===this.triggerType?(this.triggerEl.removeEventListener("click",this.onTogglePopover),document.removeEventListener("click",this.onOutsideClick)):(this.triggerEl.removeEventListener("mouseenter",this.showPopover),this.triggerEl.removeEventListener("mouseleave",this.hidePopoverDelayed),this.popoverEl.removeEventListener("mouseenter",this.clearHideTimer),this.popoverEl.removeEventListener("mouseleave",this.hidePopoverDelayed)))}updatePosition(){const e=this.triggerEl.getBoundingClientRect(),t=this.popoverEl;let s=0,i=0;switch(this.placement){case"top":s=e.top-t.offsetHeight-8,i=e.left+(e.width-t.offsetWidth)/2;break;case"bottom":s=e.bottom+8,i=e.left+(e.width-t.offsetWidth)/2;break;case"left":s=e.top+(e.height-t.offsetHeight)/2,i=e.left-t.offsetWidth-8;break;case"right":s=e.top+(e.height-t.offsetHeight)/2,i=e.right+8}t.style.top=`${s}px`,t.style.left=`${i}px`,t.setAttribute("data-placement",this.placement);const r=this.renderRoot.querySelector(".arrow");if(r)if("top"===this.placement||"bottom"===this.placement){const s=e.left+e.width/2-i-6;r.style.left=`${Math.min(Math.max(s,10),t.offsetWidth-16)}px`,r.style.top=""}else{const i=e.top+e.height/2-s-6;r.style.top=`${Math.min(Math.max(i,10),t.offsetHeight-16)}px`,r.style.left=""}}render(){return Ds`
247
246
  <div class="trigger">
248
247
  <slot name="trigger"></slot>
249
248
  </div>
@@ -554,7 +553,7 @@ const Zs=e=>(t,s)=>{void 0!==s?s.addInitializer(()=>{customElements.define(e,t)}
554
553
  `:null}
555
554
  </div>
556
555
  </div>
557
- `:Ds``}_onCancel(){this.dispatchEvent(new CustomEvent("cancel")),this.visible=!1}_onOk(){this.dispatchEvent(new CustomEvent("ok"))}_onMaskClick(){this._onCancel()}};jt([ei({type:Boolean})],ki.prototype,"visible",void 0),jt([ei({type:Boolean})],ki.prototype,"showFooter",void 0),jt([ei({type:String})],ki.prototype,"width",void 0),jt([ei({type:String})],ki.prototype,"title",void 0),ki=jt([Zs("my-modal-wrapper")],ki);class Ni{constructor(){this.roleData={agentInfo:()=>{if(!pi.agentInfo?.agent_no)throw new Error("请先登录")},requestInfo:e=>{if(!e.data)throw new Error("请传入参数")},changeDevice:e=>{if(!e)throw new Error('Parameter "device" is required');const{answer_devices:t}=pi.agentInfo;if(!t.split(",").map(e=>Number(e)).includes(e))throw new Error("当前设备不支持")},changeState:(e,t)=>{if(!e)throw new Error('Parameter "state" is required');if(!t)throw new Error('Parameter "state_name" is required');if(2===e&&"通话中"===t)throw new Error("当前状态不支持");if(![1,2].includes(e))throw new Error("当前状态不支持")}}}async _agentLogin(e){try{const s=await(t={agent_no:e},ui(`${hi}/agent/login`,t));pi.agentInfo=s.data}catch(e){throw console.log(e),new Error("登录失败")}var t}async changeDevice(e){try{this.roleData.agentInfo(),this.roleData.requestInfo(e);const{data:t,success:s}=e,{device:i}=t;this.roleData.changeDevice(i);const{agent_no:r}=pi.agentInfo;await(e=>ui(`${hi}/device/change`,e))({agent_no:r,answer_device:i}),dt.updateAnswerDevice(i),s?.({code:0,msg:"请求成功"})}catch(e){throw console.log(e),new Error("切换设备失败")}}async changeState(e){try{pi.autoStateTimer&&(clearTimeout(pi.autoStateTimer),pi.autoStateTimer=null),this.roleData.agentInfo(),this.roleData.requestInfo(e);const{data:t,success:s}=e,{state:i,state_name:r}=t;this.roleData.changeState(i,r);const{agent_no:n}=pi.agentInfo;await(e=>ui(`${hi}/state/change`,e))({agent_no:n,state_name:r,state:i}),i===et.IDLE?dt.updateActionConfigs(wi):i===et.BUSY&&dt.updateActionConfigs(yi),pi.stateObject={state:i,state_name:r},s?.({code:0,msg:"请求成功"})}catch(e){console.log(e)}}async getIdleAgentList(e){const{agent_no:t}=pi.agentInfo;try{this.roleData.agentInfo();const s=await(e=>ui(`${hi}/agent/free`,e))({agent_no:t});e.success?.(s)}catch(e){console.log(e)}}async getAgentState(e){try{const t=await ui(`${ci}/agent/statecfg/list`,{}),s=(t.data||[]).filter(e=>0===e.enable).filter(e=>0!==e.state&&3!==e.state).map(e=>({state:e.state,state_name:e.state_name})).reverse();e.success?.({...t,data:s})}catch(e){console.log(e)}}}class Hi{constructor({container:e,rttHTML:t,statusParams:s},i){this.VoiceSDKInstance=i,this.apiClient=new Ni,this.isOpenSelect=!1,this.statusParams={state:et.IDLE,statusName:"空闲"},this.consultShow=!1,this.modalRoot=null,this.agentStateData=[],this.handleNetworkInfoChange=e=>{this.rttHTML&&this.renderRtt(e.rttObject)},this.handleCallInfoChange=e=>{this.render()},this.hiddenSelect=()=>{if(!this.isOpenSelect)return;const e=document.querySelector(".ysyt-select");e.style.height="0px",setTimeout(()=>{e.style.padding="0px"},100),this.isOpenSelect=!1,this.render()},this.toggle=e=>{e.stopPropagation(),this.isOpenSelect=!this.isOpenSelect;const t=document.querySelector(".ysyt-select");this.isOpenSelect?(t.style.height=t.scrollHeight+"px",t.style.padding="4px 0px",this.render()):this.hiddenSelect()},this.changeStatus=async e=>{const{state:t,statusName:s}=e;await this.apiClient.changeState({data:{state:t,state_name:s},success:()=>{this.statusParams=e;const t=document.getElementById("my-timer");t?.reset(),this.hiddenSelect()}})},this.onChangeDevices=async e=>{await this.apiClient.changeDevice({data:{device:e},success:({code:t})=>{0===t&&(1!==e&&this.VoiceSDKInstance.destroyRtc(),ni("切换成功"))}})},this.ruleCall=async e=>{if(e)try{await this.VoiceSDKInstance.call_api.makeCall(e)}catch(e){console.error(e)}},this.onCall=()=>{const e=document.querySelector("my-input");this.ruleCall(e.value)},this.renderCallPopover=()=>Ds`
556
+ `:Ds``}_onCancel(){this.dispatchEvent(new CustomEvent("cancel")),this.visible=!1}_onOk(){this.dispatchEvent(new CustomEvent("ok"))}_onMaskClick(){this._onCancel()}};jt([ei({type:Boolean})],ki.prototype,"visible",void 0),jt([ei({type:Boolean})],ki.prototype,"showFooter",void 0),jt([ei({type:String})],ki.prototype,"width",void 0),jt([ei({type:String})],ki.prototype,"title",void 0),ki=jt([Zs("my-modal-wrapper")],ki);class Ni{constructor(){this.roleData={agentInfo:()=>{if(!pi.agentInfo?.agent_no)throw new Error("请先登录")},requestInfo:e=>{if(!e.data)throw new Error("请传入参数")},changeDevice:e=>{if(!e)throw new Error('Parameter "device" is required');const{answer_devices:t}=pi.agentInfo;if(!t.split(",").map(e=>Number(e)).includes(e))throw new Error("当前设备不支持")},changeState:(e,t)=>{if(!e)throw new Error('Parameter "state" is required');if(!t)throw new Error('Parameter "state_name" is required');if(2===e&&"通话中"===t)throw new Error("当前状态不支持");if(![1,2].includes(e))throw new Error("当前状态不支持")}}}async _agentLogin(e){try{const s=await(t={agent_no:e},ui(`${hi}/agent/login`,t));pi.agentInfo=s.data}catch(e){throw console.log(e),new Error("登录失败")}var t}async changeDevice(e){try{this.roleData.agentInfo(),this.roleData.requestInfo(e);const{data:t,success:s}=e,{device:i}=t;this.roleData.changeDevice(i);const{agent_no:r}=pi.agentInfo;await(e=>ui(`${hi}/device/change`,e))({agent_no:r,answer_device:i}),dt.updateAnswerDevice(i),s?.({code:0,msg:"请求成功"})}catch(e){throw console.log(e),new Error("切换设备失败")}}async changeState(e){try{pi.autoStateTimer&&(clearTimeout(pi.autoStateTimer),pi.autoStateTimer=null),this.roleData.agentInfo(),this.roleData.requestInfo(e);const{data:t,success:s}=e,{state:i,state_name:r}=t;this.roleData.changeState(i,r);const{agent_no:n}=pi.agentInfo;await(e=>ui(`${hi}/state/change`,e))({agent_no:n,state_name:r,state:i}),i===et.IDLE?dt.updateActionConfigs(wi):i===et.BUSY&&dt.updateActionConfigs(yi),pi.stateObject={state:i,state_name:r},s?.({code:0,msg:"请求成功"})}catch(e){console.log(e)}}async getIdleAgentList(e){const{agent_no:t}=pi.agentInfo;try{this.roleData.agentInfo();const s=await(e=>ui(`${hi}/agent/free`,e))({agent_no:t});e.success?.(s)}catch(e){console.log(e)}}async getAgentState(e){try{const t=await ui(`${ci}/agent/statecfg/list`,{}),s=(t.data||[]).filter(e=>0===e.enable).filter(e=>0!==e.state&&3!==e.state).map(e=>({state:e.state,state_name:e.state_name})).reverse();e.success?.({...t,data:s})}catch(e){console.log(e)}}}class Hi{constructor({container:e,rttHTML:t,statusParams:s},i){this.VoiceSDKInstance=i,this.apiClient=new Ni,this.isOpenSelect=!1,this.statusParams={state:et.IDLE,statusName:"空闲"},this.consultShow=!1,this.modalRoot=null,this.agentStateData=[],this.handleNetworkInfoChange=e=>{this.rttHTML&&this.renderRtt(e.rttObject)},this.handleCallInfoChange=e=>{this.render()},this.hiddenSelect=()=>{if(!this.isOpenSelect)return;const e=document.querySelector(".ysyt-select");e.style.height="0px",setTimeout(()=>{e.style.padding="0px"},100),this.isOpenSelect=!1,this.render()},this.toggle=e=>{e.stopPropagation(),this.isOpenSelect=!this.isOpenSelect;const t=document.querySelector(".ysyt-select");this.isOpenSelect?(t.style.height=t.scrollHeight+"px",t.style.padding="4px 0px",this.render()):this.hiddenSelect()},this.changeStatus=async e=>{const{state:t,statusName:s}=e;await this.apiClient.changeState({data:{state:t,state_name:s},success:()=>{this.statusParams=e;const t=document.getElementById("my-timer");t?.reset(),this.hiddenSelect()}})},this.onChangeDevices=async e=>{await this.apiClient.changeDevice({data:{device:e},success:({code:t})=>{0===t&&(1!==e&&this.VoiceSDKInstance.destroyRtc(),ni("切换成功"),this.render())}})},this.ruleCall=async e=>{if(e)try{await this.VoiceSDKInstance.call_api.makeCall(e)}catch(e){console.error(e)}},this.onCall=()=>{const e=document.querySelector("my-input");this.ruleCall(e.value)},this.renderCallPopover=()=>Ds`
558
557
  <my-popover>
559
558
  <div slot="trigger">
560
559
  <my-tooltip content="拨打">
@@ -659,16 +658,16 @@ const Zs=e=>(t,s)=>{void 0!==s?s.addInitializer(()=>{customElements.define(e,t)}
659
658
  </div>`}
660
659
  </div>
661
660
  </my-modal-wrapper>
662
- `;Ws(i,this.modalRoot)}})}catch(e){oi(e)}}getActionConfigs(){const{show_satisfaction:e}=pi.agentInfo,t=dt.get("isHold"),s=dt.get("isMuted"),i=dt.get("actionConfigs").filter(i=>(0!==e||"satisfaction"!==i)&&(!(!t&&"unhold"===i)&&((!t||"hold"!==i)&&((!s||"mute"!==i)&&!(!s&&"unmute"===i)))));return[{render:this.renderCallPopover,type:"call_number"},{render:this.renderAnswer,type:"answer"},{render:this.renderReject,type:"reject"},{render:this.renderHangup,type:"hangup"},{render:this.renderDialer,type:"dtmf"},{render:this.renderUnhold,type:"unhold"},{render:this.renderHold,type:"hold"},{render:this.renderMute,type:"mute"},{render:this.renderUnmute,type:"unmute"},{render:this.renderSatisfaction,type:"satisfaction"},{render:this.renderConsult,type:"consult"},{render:this.renderTransfer,type:"transfer"},{render:this.renderConsultTransfer,type:"consult_transfer"}].filter(({type:e})=>i.includes(e))}async render(){const{displayText:e}=dt.getState(),{default_device:t,answer_devices:s,show_satisfaction:i}=pi.agentInfo,r=(s||"").split(","),n=this.getActionConfigs(),o={...vi},{statusColor:a}=o,c=document.querySelector("head");if(c){const e=Ds`
661
+ `;Ws(i,this.modalRoot)}})}catch(e){oi(e)}}getActionConfigs(){const{show_satisfaction:e}=pi.agentInfo,t=dt.get("isHold"),s=dt.get("isMuted"),i=dt.get("actionConfigs").filter(i=>(0!==e||"satisfaction"!==i)&&(!(!t&&"unhold"===i)&&((!t||"hold"!==i)&&((!s||"mute"!==i)&&!(!s&&"unmute"===i)))));return[{render:this.renderCallPopover,type:"call_number"},{render:this.renderAnswer,type:"answer"},{render:this.renderReject,type:"reject"},{render:this.renderHangup,type:"hangup"},{render:this.renderDialer,type:"dtmf"},{render:this.renderUnhold,type:"unhold"},{render:this.renderHold,type:"hold"},{render:this.renderMute,type:"mute"},{render:this.renderUnmute,type:"unmute"},{render:this.renderSatisfaction,type:"satisfaction"},{render:this.renderConsult,type:"consult"},{render:this.renderTransfer,type:"transfer"},{render:this.renderConsultTransfer,type:"consult_transfer"}].filter(({type:e})=>i.includes(e))}async render(){const{displayText:e,answerDevice:t}=dt.getState(),{default_device:s,answer_devices:i,show_satisfaction:r}=pi.agentInfo,n=(i||"").split(","),o=this.getActionConfigs(),a={...vi},{statusColor:c}=a,h=document.querySelector("head");if(h){const e=Ds`
663
662
  <style>
664
663
  .ysyt-phone-body {
665
- background: ${a[this.statusParams.state]};
664
+ background: ${c[this.statusParams.state]};
666
665
  }
667
666
  .ysyt-action-body {
668
- border-bottom: 1px solid ${a[this.statusParams.state]};
667
+ border-bottom: 1px solid ${c[this.statusParams.state]};
669
668
  }
670
669
  </style>
671
- `;Ws(e,c)}const h=Ds`
670
+ `;Ws(e,h)}const d=Ds`
672
671
  <i class="ysyt icon-shang select-icon" style="${this.isOpenSelect?"display: block;":"display: none;"}"></i>
673
672
  <div
674
673
  class="ysyt-select"
@@ -685,30 +684,30 @@ const Zs=e=>(t,s)=>{void 0!==s?s.addInitializer(()=>{customElements.define(e,t)}
685
684
  `)}
686
685
  </div>
687
686
  </div>
688
- `,d=Ds`
687
+ `,l=Ds`
689
688
  <div id="ysyt-body">
690
689
  <div id="ysyt-devices-body">
691
690
  <my-select
692
691
  width="100px"
693
- value="${String(t)}"
692
+ value="${String(s)}"
694
693
  placeholder=""
695
694
  @change=${e=>this.onChangeDevices(Number(e.detail.value))}
696
695
  >
697
- ${r.includes("1")?Ds`
696
+ ${n.includes("1")?Ds`
698
697
  <select-option value="1">
699
698
  <div style="display: flex; align-items: center; gap: 8px;">
700
699
  <img src="${"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAC0AAAAtCAYAAAA6GuKaAAAAAXNSR0IArs4c6QAAAjhJREFUaEPtmM1WwjAQhWeAF0I34kZ5MuDJqBtxo7wQEE9CkzNNk8yktIl4YKOHRvPl9s5PBuEOP3iHzPCALvXWxEq/HBfvGmp2AfPz8/m0LQXp78NCa1gEtQF1hbUfVLirBZ6EXh3neweL0CjAnVZaodpoeIW4/lqemtKKB6E76rawFM48V2oPCM1heV7/CWircMoCr9+LrVa8hk16SufArH7mqoZNboKuZZMetLXG4enMZhatsl1fMij/F7RUuZwYGCvLRJWWQDtPA4DUTmOARwORg6bApdNeD1qaEWy6Kw2s31QwQxigRLWr4eNO3xPyGJfGLDRnoTH8G/of8d5DqX0MijvUVLCuwwxtwPmae14FWm/K+bZW3xENRKtUCsweqkZ7muwvODBJCzuFVdimiAu6GvmaheZKdY3KyELToIz5Nxe8d1lGaPCCH9KLsgia9s2xsk3BU8HprzOeb2/60pZADC0Bp2tMagqMGULBawJ+pt6k8FnQUhu4rNOmDg1vBG3BYorSv0upngXd8XdESZvi9AHpjMSlPmbs4I8vQiOKbOgccP8Alxk00uFOqkYMgh4CPqTIxFrkwdAlwCeBdj0KmflJ0xanfKphu0lpunEnY2QWi+BFJDG9Gg3a2cXLtznBZ+G5tnhUaH9TqqDUNvSNxcYSk0B34Iny5vvWOnaNfhP6d5PTydrU/XNS6F6h8Q8QMnNgHu4vKwLtb2qrJf3eKi4pPlWguXTHPX9AcwqN9fwulf4FD/s5TOGFiLYAAAAASUVORK5CYII="}" width="16" alt="" /><span style="font-size: 14px">软电话</span>
701
700
  </div>
702
701
  </select-option>
703
702
  `:""}
704
- ${r.includes("2")?Ds`
703
+ ${n.includes("2")?Ds`
705
704
  <select-option value="2">
706
705
  <div style="display: flex; align-items: center; gap: 8px;">
707
706
  <img src="${"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAC0AAAAtCAYAAAA6GuKaAAAAAXNSR0IArs4c6QAAAWtJREFUaEPtWdFNAzEMdW6Ewgo3BzBOYYi2Q0DHKcxxK0BHaNA7cIVEVD0n8Uck31dVOfbLyzvn9JxkwCcNiFmqQd8fl8eWDX9u5/fa9WbQm9dlnyZ5yFmaQF8BZzmcX+a9ZQMm0HfH5QSwKcnKUr7Ih6XYv9gkO/yHfF/b+YnNRYMGw4IiFczcAlOTlwf9tmQUPz/P9BqWOZwgYlm2aQAbgO7Msm5KZccSQoFGp7hkOUF7SeTAMsjGZZEd3hUX0CyI2jgX0GC6uWMUdqQt1AX0kJoO0H9k4to9gulgutCS9HIJeYQ8Qh7cV0j0aeUpukdBMSGPkMeNRhLyCHmEPIibdujLJcyawgm7+R7T9GPz9nx8bTHSgNQpAev2u1wuYBWuKWt+q+fMxruBtnjIVqN8tZEN3jdl9a5MjzgJAHA9RvzWuUvrC6kzHHYKsNa2Fr0ybl1Ysnh/rWPX6VYHnF1SmJnuUrUxyZCgvwFf6/M9kuThSwAAAABJRU5ErkJggg=="}" width="16" alt="" /><span style="font-size: 14px">手机模式</span>
708
707
  </div>
709
708
  </select-option>
710
709
  `:""}
711
- ${r.includes("3")?Ds`
710
+ ${n.includes("3")?Ds`
712
711
  <select-option value="3">
713
712
  <div style="display: flex; align-items: center; gap: 8px;">
714
713
  <img src="${"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAC0AAAAtCAYAAAA6GuKaAAAAAXNSR0IArs4c6QAAAq5JREFUaEPtmWFywiAQhcEr6Als79F6LdsZdab1WsZ7tJ7AXiF0lmYzC9mFDUGrM/qrmrB8PB7LQq25w4+9Q2bzgL7WrD2UvhmlF8/vr865jXXueD7tt1PAIBZtf/76aPA7PKPf4Xf6Pn2WtMdiud46YzZ9R9Y2P9+fqxLw+dPbwTgXQNvZbIUw8+XaGRJ/0LcxkDV2IJwIHTSytuk7LADnAGDgCOFns20P8NvPae+ZuEFiGxaadtIHpqqPBPcqEsh4plLQg/6tbVhoqZNYfY1VKBC1AwUfBf03+PDDBQg6KFCcTjUoB/Hoos7ag9gT2g+hESphgbGKUygUAKcds4TK0x1TEbTvqEBxaANtMSOhXZJKg4edO5rZrMFMUwxdCk4zgyZ70BkhsxR5WmEPyeOphUbboBXqQTM5M7eZ4ELjVPHKdikviEM3kkSeVilNO5GUE5Xudqx4kANoZpHDO8Hi7GZcD41bbmYT4Tah3KzUeM7viEqL5GxRA5CLIdYe/a5IiprBtHczorFRzQHI0AqL9DvdyFpk6gDkKo9YRMoKuS1/KpzUXl1PSxbIVXCXAM+eEft0JVjgPzJIFjooLYU8rAWvdXTLQsc1hmgTcpzi1kDNo5sKmhY58LdYY0RnSqydnbUv9Lg25ejm+9culKAm1tbaUfAaR7dR0HGxTk/O3MC9HUDh7mOt3QVXBgX1uFia5pQvKf6lmKWx1PaQKruc4pcQoQg6ziipxZmDHsRSlATF0AOPJ+41aoNPgu7BndtgGpPqlLHgqTiToREm3jxK4TWVYzVozuddTvWXhjeptJhdME/DzRK5u4gHEd9CpQZaVekYRLothTQZvEuugDW2uih04Hdafwhe0R7brgIdWAf+G9C2weV6yjbc+K4OrVmQuXce0DmFaj2/S6V/Ae/pt8oTAp/jAAAAAElFTkSuQmCC"}" width="16" alt="" /><span style="font-size: 14px">SIP话机</span>
@@ -728,14 +727,14 @@ const Zs=e=>(t,s)=>{void 0!==s?s.addInitializer(()=>{customElements.define(e,t)}
728
727
  <span>${t}</span>
729
728
  `:void 0)(this.statusParams)}
730
729
  <i class="ysyt icon-xia"></i>
731
- ${h}
730
+ ${d}
732
731
  `}
733
732
  </div>
734
733
  <timer-component id="my-timer"></timer-component>
735
734
  </div>
736
- <div class="ysyt-action-body">${n.map(e=>e.render())}</div>
735
+ <div class="ysyt-action-body">${o.map(e=>e.render())}</div>
737
736
  </div>
738
- `;Ws(d,this.container)}async renderRtt(e){const{outCallIsAnswer:t}=dt.getState(),s=e?.rtt||500,i=Ds`
737
+ `;Ws(l,this.container)}async renderRtt(e){const{outCallIsAnswer:t}=dt.getState(),s=e?.rtt||500,i=Ds`
739
738
  <my-popover triggerType="hover">
740
739
  <div slot="trigger" id="wifi-body">
741
740
  ${s>=250?Ds`<img src="${"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAC0AAAAtCAYAAAA6GuKaAAAAAXNSR0IArs4c6QAAAlVJREFUaEPtmGFuwyAMhU2PtU1qOVmbk5FKW4+1TCawkcQYG2i3aM2fqirBn83zc1IDO7zMDpnhCf2oU+teaefcKYW31o69k6mGTuDOAWoBmwGNCVwBYKxNSAUdQDWQkiIPuMhae5EsxjUi6ARWUk1pbGrdIIFnoZWwqXbx+NPrqJAQLmXhSWghLELGo1U1m3MuSiFKLXc6JPwGOmyY28yD1jYQRSZIYAP+DV2obnfYdQIF+EV8Dx2AHVGJu8Mq4X3VDSMHUSe3WAV3L8eF0BNxs9XoNpwU2mF0CdwSv6fDxIeRWFrkyYEjNMoi+q9YDkKHyRUT41wlCRBxhqhptCDRWC24S41aRDIMcT2jaCKGZsXESr6aQmM1NRNUBK8Z46mE1tWMumX9W+DHxUkYA7eMcbH+maFCnVxx3xI05SzFTTXCZnok62BZ6MxmYt11AM/G4qCxidIpqfJuDXSm0fWVTgz+pBk0E7wFx/gMn4fRwLv4KTC+EXExxZbHVW6ClwuAOQJMjMWZEWC6GriJ31ByMZug56pOZx6WDD20wFdDT/DqKmDTDKrBq6BnOVDTESXgZ5Z/owGIus5Jx4wGPqy2aWuhV/6NsGbgGm6Wkk9iMVAM3NQM6huwKj+V1jfX6pSqJFIFrT1Oaj1WXmOF6R6/Bt2S+N2gWypZSqg7NOEsVbrlwLtC560QuoL3hqYeZWfnrrC2u4zxdNPgw9R/J2HZwda6xRr+f1d6OXQ2B/t3NU2D1z1fPMw9thrHBpS/AJT8Of7eVdPSoK3rntCtFZTev8tKfwHUBxjzil9I5gAAAABJRU5ErkJggg=="}" alt="" />`:""}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ysyt-agent-sdk",
3
- "version": "1.0.13",
3
+ "version": "1.0.15",
4
4
  "main": "dist/ysyt-agent-sdk.cjs.js",
5
5
  "module": "dist/ysyt-agent-sdk.esm.js",
6
6
  "types": "dist/index.d.ts",