@hysc/meeting 10.0.17 → 10.0.18

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.
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
- "use strict";var ri=Object.create;var Ne=Object.defineProperty,ii=Object.defineProperties,si=Object.getOwnPropertyDescriptor,oi=Object.getOwnPropertyDescriptors,ai=Object.getOwnPropertyNames,_t=Object.getOwnPropertySymbols,ni=Object.getPrototypeOf,Wt=Object.prototype.hasOwnProperty,li=Object.prototype.propertyIsEnumerable;var Vt=(i,e,t)=>e in i?Ne(i,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):i[e]=t,L=(i,e)=>{for(var t in e||(e={}))Wt.call(e,t)&&Vt(i,t,e[t]);if(_t)for(var t of _t(e))li.call(e,t)&&Vt(i,t,e[t]);return i},Te=(i,e)=>ii(i,oi(e));var ci=(i,e)=>{for(var t in e)Ne(i,t,{get:e[t],enumerable:!0})},Ht=(i,e,t,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of ai(e))!Wt.call(i,s)&&s!==t&&Ne(i,s,{get:()=>e[s],enumerable:!(r=si(e,s))||r.enumerable});return i};var bt=(i,e,t)=>(t=i!=null?ri(ni(i)):{},Ht(e||!i||!i.__esModule?Ne(t,"default",{value:i,enumerable:!0}):t,i)),ui=i=>Ht(Ne({},"__esModule",{value:!0}),i);var c=(i,e,t)=>new Promise((r,s)=>{var o=l=>{try{n(t.next(l))}catch(d){s(d)}},a=l=>{try{n(t.throw(l))}catch(d){s(d)}},n=l=>l.done?r(l.value):Promise.resolve(l.value).then(o,a);n((t=t.apply(i,e)).next())});var Li={};ci(Li,{Logger:()=>ze.Logger,default:()=>wi});module.exports=ui(Li);var _=bt(require("@hysc/core"));var P=class extends Error{constructor(t,r,s,o){super();this.code=t,this.error=s,this.BoomErrorFlag=!0,this.eName=o,this.message=r}static instanceOf(t){return!!(t&&t.BoomErrorFlag)}getCode(){return this.code}};var Gt=1,di=2,Ft=3,mi=4;var hi=function(){},_i=/BRTC/.test(hi.toString())?Gt:Ft;function Xe(i,e,t,r){let s=[];return t&&s.push(t),r&&s.push(r),`[${new Date().toLocaleTimeString("chinese",{hour12:!1})}] <${i}> [${s.join("|")}] ${e}`}function pi(i,e,t,r=[]){r.unshift(Xe("DEBUG",i,e,t)),console.log(...r)}function u(i,e,t,r=[]){r.unshift(Xe("INFO",i,e,t)),console.log(...r)}function A(i,e,t,r=[]){r.unshift(Xe("WARN",i,e,t)),console.log(...r)}function m(i,e,t,r=[]){r.unshift(Xe("ERROR",i,e,t)),console.log(...r)}var Vi={[Gt]:pi,[di]:u,[Ft]:A,[mi]:m};var kr=require("rxjs");var jt="undefined";var gi=typeof window!==jt?window:void 0;var Wi=typeof global!==jt?global:gi;var Hi=Object.freeze({}),Gi=Object.freeze([]);var T="c";var Kt=require("rxjs");var k="_screen",Ze="screen-",Ke="xinhao_";var ce="sub-message",ue="user-sort-num-change",de="bind-element",K="stream-connect-error",z="raise-hand",me="manual-subscription",he="unsubscribe-stream",pe="change-is-guest",ge="bind-big-element",ee="no-container",fe="model-sort-num-change",Se="add-pull-user",be="set-volume",ye="add-audio-play",J="stream-play";var Jt=bt(require("mitt"));var R=class R{static getInstance(){return R.emitter||(R.emitter=(0,Jt.default)()),R.emitter}};R.emitter=void 0,R.removeEmitter=()=>{var e,t,r,s,o,a,n,l,d,p,g,S,C,y,I;(e=R.emitter)==null||e.off(ce),(t=R.emitter)==null||t.off(ue),(r=R.emitter)==null||r.off(K),(s=R.emitter)==null||s.off(z),(o=R.emitter)==null||o.off(he),(a=R.emitter)==null||a.off(me),(n=R.emitter)==null||n.off(pe),(l=R.emitter)==null||l.off(de),(d=R.emitter)==null||d.off(ge),(p=R.emitter)==null||p.off(ee),(g=R.emitter)==null||g.off(fe),(S=R.emitter)==null||S.off(Se),(C=R.emitter)==null||C.off(be),(y=R.emitter)==null||y.off(ye),(I=R.emitter)==null||I.off(J),R.emitter=void 0};var f=R;function $t(i){return yt===2?bi(i):Si(i)}function Si(i){let e=30;return i.isSharing?(i.isMaster?e=0:i.isManager&&i.audioEnable&&i.videoEnable?e=1:i.isManager&&i.audioEnable?e=2:i.isManager&&i.videoEnable?e=3:i.isManager?e=4:i.isCommonUser?i.audioEnable&&i.videoEnable?e=9:i.audioEnable?e=10:i.videoEnable?e=11:e=12:i.audioEnable&&i.videoEnable?e=5:i.audioEnable?e=6:i.videoEnable?e=7:e=8,e):(i.isMaster?e=13:i.isLocal?e=14:i.isManager?i.audioEnable&&i.videoEnable?e=15:i.audioEnable?e=16:i.videoEnable?e=17:e=18:i.raiseHand?e=19:i.isCommonUser?i.isSignal?e=26:i.isCommonUser&&(i.audioEnable&&i.videoEnable?e=27:i.audioEnable?e=28:i.videoEnable?e=29:e=30):i.audioEnable&&i.videoEnable?e=22:i.audioEnable?e=23:i.videoEnable?e=24:e=25,e)}function bi(i){let e;return i.isToupingma?e=0:i.raiseHand?e=19:i.raiseAudioHands?e=1:i.raiseVideoHands?e=2:i.isLocal?e=3:i.isMaster&&i.audioEnable&&i.videoEnable?e=4:i.isManager&&i.audioEnable&&i.videoEnable?e=5:i.audioEnable&&i.videoEnable?e=6:i.isMaster&&i.audioEnable?e=7:i.isManager&&i.audioEnable?e=8:i.audioEnable?e=9:i.isMaster&&i.videoEnable?e=10:i.isManager&&i.videoEnable?e=11:i.videoEnable?e=12:i.isMaster?e=13:i.isManager?e=14:i.isCommonUser?e=16:i.isSignal?e=17:e=15,e}var Qt="undefined";var we="function";var yi=typeof window!==Qt?window:void 0;var Yi=typeof global!==Qt?global:yi;var Zi=Object.freeze({}),Ki=Object.freeze([]),It="";function Et(i){return typeof i===we}function Ii(i,e,t){return i.indexOf(e,t!==void 0?t:0)}function zt(i,e){return Ii(i,e)>=0}function Xt(i,e){return i!=null&&i.toString?i.toString():e!==void 0?e:It}function Ct(i){return Et(i)&&zt(Xt(i),"[native code]")}var vt;typeof setImmediate===we&&Ct(setImmediate)&&(vt=setImmediate);typeof MessageChannel===we&&Ct(MessageChannel)?vt=function(i){let e=new MessageChannel;e.port1.onmessage=i,e.port2.postMessage(1)}:vt=setTimeout;var Yt=5*60*1e3;function Bt(i){let e=new Date(i),t=new Date,r=e.getMonth()+1<10?"0"+(e.getMonth()+1):e.getMonth()+1,s=e.getDate()<10?"0"+e.getDate():e.getDate(),o=e.getHours()<10?"0"+e.getHours():e.getHours(),a=e.getMinutes()<10?"0"+e.getMinutes():e.getMinutes();return t.setHours(0,0,0,0)==e.setHours(0,0,0,0)?o+":"+a:r+"\u6708"+s+"\u65E5 "+o+":"+a}function Oe(i){return i.sort((e,t)=>e.sortNum===19&&t.sortNum===19?e.raiseHandTime-t.raiseHandTime:e.sortNum-t.sortNum)}function Zt(i){return i.sort((e,t)=>e.sortNum!==t.sortNum?t.sortNum-e.sortNum:Number(e.getUser().isCommonUser)-Number(t.getUser().isCommonUser))}function ke(i){return!it(i,"s")}function Ie(i){return it(i,"a")}function tt(i){return it(i,"m")}function rt(i){return it(i,"o")}function it(i,e){return i.toLowerCase().includes(e)}var X=class{constructor(e,t=!1){this.audienceEnableSpeaking=!1;this.streamModels=new Map;this.sortNum=100;this.raiseVideoHands=!1;this.raiseAudioHands=!1;this.raiseHand=!1;this.isAudience=!1;this.isCommonUser=!1;this.inBackground=!1;this.raiseHandTime=0;var s;this.userId=e.userId,this.userInfo=e.userInfo,this.nickName=e.nickname,this.isMaster=!!e.isMaster,this.isManager=!!e.isManager,this.isToupingma=!!e.isToupingma,this.isLocal=t,this.hasMultiple=!!e.hasMultiple,this.isCreate=!!e.isCreate,this.hasShare=!!e.hasShare,this.avatar=(s=e.userInfo)==null?void 0:s.avatar,this.permission=e.permission,this.raiseAudioHands=!!e.raiseAudioHands,this.raiseVideoHands=!!e.raiseVideoHands,this.raiseHand=!!e.raiseHand,this.isAudience=!!e.isAudience,this.isCommonUser=!!e.isCommonUser,this.inBackground=!!e.inBackground,e.permission&&(this.audienceEnableSpeaking=Ie(e.permission.permission)),this.raiseHandTime=e.raiseHandTime||0;let r={operation:"none",user:this};this.watcher=new Kt.BehaviorSubject(r),this.updateSortNum(!1)}get isWeb(){return!!(this.userInfo.pos&&(this.userInfo.pos.includes("web")||this.userInfo.pos.includes("pc")))}setup(e,t,r){this.isLocal=!0,this.userId=e,this.userInfo=t,r?this.nickName=r:this.nickName=t.nickname,this.avatar=t.avatar}getMainStreamModel(){return this.streamModels.get(this.userId)}get nickname(){return this.nickName}getShareStreamModel(){return this.streamModels.get(`${this.userId}${k}`)}get audioEnable(){let e=this.getMainStreamModel();return e?e._audio_enable:!1}get isMixer(){return this.userId.includes("-mixer-")}get videoEnable(){let e=this.getMainStreamModel();return e?e._video_enable:!1}get isSharing(){let e=!1;for(let t of this.streamModels.values())if(t.isShare){e=!0;break}return e}get isSignal(){var e;return!!((e=this.userId)!=null&&e.startsWith(Ke))}checkLocalHasMaster(){return this.isMaster||this.isManager}addStream(e,t){this.streamModels.set(e,t),this.watcher.next({operation:"changeShare",user:this})}removeStream(e){this.streamModels.delete(e),e.includes(k)&&u("\u5220\u9664\u7684\u662F\u5171\u4EAB\u5C4F\u5E55\u7684\u6D41:","","",["streamId =>",e]),setTimeout(()=>{this.watcher.next({operation:"changeShare",user:this})},400)}getID(){return this.userId}getNickName(){return this.nickName}getUserInfo(){return this.userInfo}getStreams(){return this.streamModels}updateUserInfo(e,t={},r){var d,p,g,S,C,y;let s=(d=t==null?void 0:t.params)==null?void 0:d.customInfo,o=(s==null?void 0:s.updateKeys)||[],a=!1,n="none";if(u("updateUserInfo =>","updateUser",e.userId,["updateKeys",o.toString(),"permission",(p=e.permission)==null?void 0:p.permission,"isMaster =>",this.isMaster,"isManager =>",this.isManager]),this.nickName!==e.nickname&&(n="changeNickName"),!this.isMaster&&this.isManager&&!e.permission.getManage()&&(n="removeManager",this.isManager=!1),!this.isMaster&&!this.isManager&&e.permission.getManage()&&o.indexOf("changeMaster")==-1&&(n="getManager",this.isManager=!0),e.userinfo.pos)this.userInfo=e.userinfo;else{let I=this.userInfo.pos;this.userInfo=e.userinfo,this.userInfo.pos=I}(o.includes("changeMaster")||o.includes("permission"))&&(e.permission=t.getPermission()),o.includes("raiseHandsAudio")&&(this.raiseAudioHands=s.raiseHandsAudio,n="raiseHandsAudio",f.emitter.emit(z,{status:"raiseHandsAudio",user:this}),a=!0),o.includes("raiseHandsVideo")&&(this.raiseVideoHands=s.raiseHandsVideo,n="raiseHandsVideo",f.emitter.emit(z,{status:"raiseHandsVideo",user:this}),a=!0),o.includes("raiseHand")&&(this.raiseHand=s.raiseHand,this.raiseHandTime=s.raiseHandTime,n="raiseHand",f.emitter.emit(z,{status:"raiseHand",user:this}),a=!0),r.conferenceMode!==1&&this.isAudience&&o.includes("permission")&&(((S=(g=t.params)==null?void 0:g.customInfo)==null?void 0:S.permission.indexOf("A"))!==-1&&(r.enableAudienceSpeakingWatcher.next(!0),this.audienceEnableSpeaking=!0,n="audienceEnableSpeaking",r.bmLiveVM.handleAudienceEnable()),((y=(C=t.params)==null?void 0:C.customInfo)==null?void 0:y.permission.indexOf("A"))===-1&&(r.enableAudienceSpeakingWatcher.next(!1),this.audienceEnableSpeaking=!1,n="audienceEnableSpeaking",r.bmLiveVM.handleAudienceDisable())),o.includes("inBackground")&&(n="inBackground",this.inBackground=s.inBackground),this.nickName=e.nickname,this.permission=e.permission;let l=!this.isCommonUser;this.isCommonUser=!e.permission.getSubscribe(),l!==!this.isCommonUser&&(u(`\u8EAB\u4EFD\u6709\u53D1\u751F\u8FC7\u53D8\u5316\uFF0C\u4ECE${l?"\u5609\u5BBE":"\u666E\u901A\u53C2\u4F1A\u8005"} => ${this.isCommonUser?"\u666E\u901A\u53C2\u4F1A\u8005":"\u5609\u5BBE"}`),f.emitter.emit(pe,{user:this,isGuest:!this.isCommonUser,preIsGuest:l})),n&&this.watcher.next({operation:n,user:this}),(!a||a&&!this.isLocal)&&this.updateSortNum(!0)}hasManager(){return this.isManager||this.isMaster}getNicknameSuffix(){let e="";return this.isLocal&&this.isMaster?e="(\u6211\u3001\u4E3B\u6301\u4EBA)":this.isLocal&&this.isManager?e="(\u6211\u3001\u8054\u5E2D\u4E3B\u6301\u4EBA)":this.isLocal?e="(\u6211)":this.isMaster?e="(\u4E3B\u6301\u4EBA)":this.isManager?e="(\u8054\u5E2D\u4E3B\u6301\u4EBA)":this.isSharing&&!this.isToupingma?e="\u7684\u5171\u4EAB\u5C4F\u5E55":this.isSharing&&this.isToupingma&&(e="(\u4EC5\u5171\u4EAB\u5C4F\u5E55)"),e}updateSortNum(e=!0,t=!1){let r=$t(this);this.setSortNum(r,e,t)}setSortNum(e,t,r){this.sortNum!==e&&(this.sortNum=e,t&&f.emitter.emit(ue,{isCommon:this.isCommonUser,isAudience:this.isAudience,shouldDelay:r}))}};var te=require("rxjs");function Y(i){return new Promise(e=>setTimeout(e,i))}var De=require("lodash-es");var Me=["-mixer-","-rtmpmixer-","record#","robot_","stt_"],Ee=500,st="RWPSAVMO,RWPSAVM,RWPSAV,RWPSA",_e=class i{constructor(e,t,r){this.userList=new Map;this.audiencesList=new Map;this.signalList=new Map;this.commonUserList=new Map;this.userListWatcher=new te.BehaviorSubject(Array.from(this.userList.values()));this.audiencesListWatcher=new te.BehaviorSubject(Array.from(this.audiencesList.values()));this.commonUserListWatcher=new te.BehaviorSubject(Array.from(this.commonUserList.values()));this.signalListWatcher=new te.BehaviorSubject(Array.from(this.signalList.values()));this.masterUserWatcher=new te.BehaviorSubject(null);this.getForceUserWatcher=new te.BehaviorSubject(!1);this.commTimer=200;this.addBCUser=(e,t=!1)=>{var o;let r=this.addUser(e);if(this.room.isWorkShop&&!Ie(e.permission.permission))return;if(!this.room.bmStreamVm.streamModels.get(e.userId)){let a=this.getUser(e.userId);a?this.room.bmStreamVm.createStreamModel(a):m(`there is no user named ${e.userId}, and create streamModel failed!!!`)}{let a=this.room.bmStreamVm.streamModels.get(e.userId);a&&(e.stream.size?e.stream.forEach(n=>c(this,null,function*(){var g,S,C;let{video_enable:l,audio_enable:d,customInfo:p}=n;if(n.screen){this.room.bmStreamVm.shareBloudStateMap.set(e.userId,{audio:d,video:l,customInfo:p,userId:e.userId,streamId:n.getID(),isScreen:!0});let y={id:a.userId,isScreen:!0,isWeb:a.isWeb};if(t){let I=new Map;I.set(e.userId,y),yield(g=this.room)==null?void 0:g.processUser(I)}else(S=this.room)==null||S.addUser2Queue(y)}else if(a&&(a.updateBloudStream({video:l,audio:d,isScreen:n.screen,customInfo:p},this.room.bmStreamVm),t)){let y={id:a.userId,isScreen:!1,isWeb:a.isWeb},I=new Map;I.set(e.userId,y),(C=this.room)==null||C.processUser(I)}})):(a.bloudStream&&a.updateBloudStream(void 0,this.room.bmStreamVm),(o=this.room)==null||o.bmStreamVm.removeShareStreamModelByUId(e.userId)))}return r&&r.isMaster&&this.masterUserWatcher.next(r),r==null||r.updateSortNum(!1),r};this.updateAllSort=()=>{this.updateUserSort(),this.updateCommonUserSort(),this.updateAudienceUserSort()};this.updateSortByType=e=>{var t,r;(t=this.room)!=null&&t.isSingleColumns||e.isCommon?(r=this.room)!=null&&r.isBig&&e.shouldDelay?this.updateDelayCommonUserSort():this.updateCommonUserSort():e.isAudience?this.updateAudienceUserSort():this.updateUserSort()};this.updateUserSort=(0,De.debounce)(()=>{let e=this.sortUsers();this.userListWatcher.next(i.filterUsers(e))},200,{maxWait:1e3});this.updateCommonUserSort=(0,De.debounce)(()=>{let e=this.sortCommonUsers();this.commonUserListWatcher.next(i.filterUsers(e))},this.commTimer,{maxWait:12*1e3});this.updateDelayCommonUserSort=(0,De.debounce)(()=>{let e=this.sortCommonUsers();this.commonUserListWatcher.next(i.filterUsers(e))},120*1e3,{maxWait:120*1e3});this.updateAudienceUserSort=(0,De.debounce)(()=>{let e=this.sortAudiences();this.audiencesListWatcher.next(i.filterUsers(e))},200,{maxWait:1e3});this.updateSignalUserSort=()=>{let e=this.sortSignalUsers();this.signalListWatcher.next(e)};this.transBloudUsers=(e,t="",r=!1,s=0)=>c(this,null,function*(){let o=new Map;yield this.getAllUsers(e,o,t,r).catch(()=>{if(s<3){m("get bloud user error, retry"),s+=1,this.transBloudUsers(e,t,r,s);return}else{m("get current page of bloud users after 10 times final failed","","",[" page ",e," permission ",t]);return}}),yield this.initUserList(o),o.clear();let a=[];for(let n of this.userList.values())(n.raiseVideoHands||n.raiseAudioHands||n.raiseHand)&&a.push(n);for(let n of this.commonUserList.values())(n.raiseVideoHands||n.raiseAudioHands||n.raiseHand)&&a.push(n);for(let n of this.commonUserList.values())(n.raiseVideoHands||n.raiseAudioHands)&&a.push(n);this.room.roomInfo.setRaiseHandsList(a),this.updateAllSort(),this.room.bmStreamVm.updateModelSort()});this.boomCore=e,this.localUser=t,this.room=r,f.emitter||m("init boom emitter error"),f.emitter.on(pe,this.handleUserRoleChange.bind(this)),f.emitter.on(ue,this.updateSortByType)}handleUserRoleChange(e){return c(this,null,function*(){var n,l,d;let{user:t,isGuest:r,preIsGuest:s}=e,o=(n=this.room)==null?void 0:n.roomInfo.isBigRoom;if(u("handleUserRoleChange","",t.userId,["isGuest =>",r,"preIsGuest =>",s,"isBigRoom =>",o]),((l=this.room)==null?void 0:l.userListColumns)===1||(s?this.userList.delete(t.userId):this.commonUserList.delete(t.userId),r?this.userList.set(t.userId,t):this.commonUserList.set(t.userId,t)),o)if(r)t.isLocal&&(yield this.initUsers());else{let p=(d=this.room)==null?void 0:d.getLocalParticipant().isCommonUser;if(t.isLocal&&(this.handleUnSubCommonUser(),this.handleCommonUserChange(),this.commonUserList.set(t.userId,t)),p){let g=t.getMainStreamModel();g&&g.unSubscribeStream(),t.isLocal||this.commonUserList.delete(t.userId)}}this.updateAllSort()})}addUser(e){var s;let t=this.getUser(e.userId);if(t)return u("\u8BE5\u7528\u6237\u5DF2\u7ECF\u52A0\u5165\u623F\u95F4",T,e.userId),this.updateUser(t,e),null;let r;return this.boomCore.userId==e.userId?(this.updateUser(this.localUser,e),r=this.localUser):r=this.toBMUser(e),((s=this.room)==null?void 0:s.userListColumns)===1?this.commonUserList.set(r.userId,r):r.isAudience?this.audiencesList.set(r.userId,r):r.isSignal?this.signalList.set(r.userId,r):r.isCommonUser?this.commonUserList.set(r.userId,r):this.userList.set(r.userId,r),r}removeUser(e){let t=this.userList.delete(e);return t||(t=this.signalList.delete(e)),t||(t=this.audiencesList.delete(e)),t||(t=this.commonUserList.delete(e)),t||A("userList\u4E2D\u672A\u627E\u5230\u8BE5\u7528\u6237, \u79FB\u9664\u65E0\u6548",T,e),t}videoEnable(e){let t=this.getUser(e);if(t)return t.videoEnable;throw new P(9001,"\u7528\u6237\u4E0D\u5B58\u5728")}audioEnable(e){let t=this.getUser(e);if(t)return t.audioEnable;throw new P(9001,"\u7528\u6237\u4E0D\u5B58\u5728")}checkIsMaster(e){if(!e)return!1;let t=this.boomCore.getMaster();return t?t===e:!1}checkLocalHasMaster(){return this.localUser.isMaster||this.localUser.isManager}checkUserHasMaster(e){let t=this.userList.get(e);return t?t.permission.getManage():!1}getUser(e){let t;return e!=null&&e.startsWith(Ke)?t=this.signalList.get(e):t=this.userList.get(e),t||(t=this.commonUserList.get(e)),t||(t=this.audiencesList.get(e)),t}getAllUsers(e,t,r="",s=!1){return c(this,null,function*(){let o;if(s){let{users:a,total:n}=yield this.boomCore.getUsersList(e,r,Ee);o=a}else{let{users:a,total:n}=yield this.boomCore.getUsers(e,r,Ee);o=a}o.forEach(a=>{t.set(a.userId,a)})})}initUserList(e){return c(this,null,function*(){var r,s;let t=e.get(this.localUser.userId);if(t){let o=this.addUser(t);if(!((r=this.room)!=null&&r.bmStreamVm.getStreamModelByUId(t.userId))){let a=this.getUser(t.userId);a?(s=this.room)==null||s.bmStreamVm.createStreamModel(a):m("there is no local streamModel exits, and create failed!!!")}o!=null&&o.isMaster&&this.masterUserWatcher.next(o)}e.delete(this.localUser.userId),e&&e.size>0&&this.addBcUsersMap(e)})}addBcUsersMap(e,t=!1){e.forEach(r=>{this.addBCUser(r,t)})}updateMaster(e,t,r){let s=this.getUser(e);s&&(s.isManager&&(s.isManager=!1),s.isMaster=!0,s.updateSortNum());let o=this.getUser(t);return o&&(o.isMaster=!1,r&&(o.isManager=!0),o.updateSortNum()),!s&&!o&&m("\u672A\u627E\u5230\u8BE5\u7528\u6237, updateMaster\u672A\u751F\u6548",T,e,["masterId => ",e,"oldMasterId => ",t]),{master:s,oldMaster:o}}managerChangeToGuest(e){let t=this.getUser(e);return t?t.isManager?(t.permission.setManage(!1),t.permission.setSubscribe(!0),this.boomCore.updateUser(e,{customInfo:{permission:t.permission.get()}}),t.watcher.next({operation:"getGuest",user:t}),this.updateAllSort()):m("\u8BE5\u7528\u6237\u4E0D\u662F\u7BA1\u7406\u5458\uFF0C\u65E0\u6CD5\u8BBE\u7F6E\u4E3A\u5609\u5BBE",T,e):m("\u672A\u627E\u5230\u8BE5\u7528\u6237, managerChangeToGuest\u672A\u751F\u6548",T,e),t}updateManager(e,t,r=!0){let s=this.getUser(e);return s?(s.permission.setManage(t),s.permission.setSubscribe(t),this.boomCore.updateUser(e,{customInfo:{permission:s.permission.get()}}),s.watcher.next({operation:t?"getManager":"removeManager",user:s}),this.updateAllSort()):m("userList\u4E2D\u672A\u627E\u5230\u8BE5\u7528\u6237, updateManager\u672A\u751F\u6548",T,e),s}getLocalUser(){return this.localUser}updateUser(e,t){var U,M,G,Q,q;let r=this.checkIsMaster(t.userId),s=(((U=t.permission)==null?void 0:U.getManage())||tt((M=t.permission)==null?void 0:M.permission))&&!((G=t.permission)!=null&&G.getOwn()||rt((Q=t.permission)==null?void 0:Q.permission)),o="none",a=e.isMaster;e.isManager!==s&&(s?o="getManager":o="removeManager"),o!=="none"&&setTimeout(()=>{e.watcher.next({operation:o,user:e})},10),a!==r&&(r?o="getMaster":o="removeMaster"),o!=="none"&&setTimeout(()=>{e.watcher.next({operation:o,user:e})},100);let l=e.raiseHand,d=t.customInfo.raiseHand;l!==d&&(!d&&l&&this.room.roomInfo.removeSimpleRaiseHandUser(e.userId),setTimeout(()=>{e.watcher.next({operation:"raiseHand",user:e})},300));let p=e.raiseVideoHands,g=t.customInfo.raiseHandsVideo;p!==g&&(!g&&p&&this.room.roomInfo.removeVideoRaiseHandUser(e.userId),setTimeout(()=>{e.watcher.next({operation:"raiseHandsVideo",user:e})},300));let S=e.raiseAudioHands,C=t.customInfo.raiseHandsAudio;S!==C&&(!C&&S&&this.room.roomInfo.removeRaiseHandUser(e.userId),setTimeout(()=>{e.watcher.next({operation:"raiseHandsAudio",user:e})},300));let y=e.nickname,I=t.nickname;y!==I&&setTimeout(()=>{e.watcher.next({operation:"changeNickName",user:e})},300),e.userInfo=t.userinfo,e.nickName=t.nickname,e.userId=t.userId,e.permission=t.permission,e.avatar=t.userinfo.avatar,e.isToupingma=t.userinfo.pos.includes("_toupingma"),e.raiseHand=d,e.isMaster=r,e.isCreate=this.boomCore.getCreator()===t.userId,e.isAudience=!t.permission.getAudio(),e.isCommonUser=!t.permission.getSubscribe(),e.isManager=s,e.inBackground=!!((q=t==null?void 0:t.customInfo)!=null&&q.inBackground),e.updateSortNum()}updateLocalUserPermission(e){let t=this.getLocalUser();t.isMaster=rt(e),t.isManager=!rt(e)&&tt(e),t.isCommonUser=ke(e),t.isAudience=!Ie(e),t.watcher.next({operation:"none",user:t})}toBMUser(e){var s,o;let t={};t.userInfo=e.userinfo,t.nickname=e.nickname,t.userId=e.userId,t.streamModels=[],t.permission=e.permission,t.stream=e.stream,t.isToupingma=!!(e.userinfo.pos&&e.userinfo.pos.includes("_toupingma")),t.isMaster=this.checkIsMaster(t.userId),t.isAudience=!e.permission.getAudio(),t.isCommonUser=!e.permission.getSubscribe()||ke(e.permission.permission),t.isAudience=!Ie(e.permission.permission),t.raiseAudioHands=e.customInfo.raiseHandsAudio,t.raiseVideoHands=e.customInfo.raiseHandsVideo,t.raiseHand=e.customInfo.raiseHand,t.raiseHandTime=e.customInfo.raiseHandTime,t.inBackground=e.customInfo.inBackground,t.isCreate=this.boomCore.getCreator()===e.userId;let r=this.boomCore.getLocalParticipant();if(!r)throw new P(1001,"BCUserVM addUser\u65F6\u672A\u627E\u5230\u672C\u5730\u7528\u6237");return r.getID()==t.userId&&(t.isLocal=!0),((s=t.permission)!=null&&s.getManage()||tt((o=t.permission)==null?void 0:o.permission))&&!t.isMaster&&(t.isManager=!0),new X(t,t.isLocal)}sortUsers(){return Oe(Array.from(this.userList.values()))}sortAudiences(){return Oe(Array.from(this.audiencesList.values()))}sortCommonUsers(){return Oe(Array.from(this.commonUserList.values()))}sortSignalUsers(){return Oe(Array.from(this.signalList.values()))}static filterUsers(e){return e.filter(t=>!Me.some(r=>t.userId.includes(r)))}initUsers(){return c(this,null,function*(){var l;let e=yield this.getTotalUserNumber();u(`initUsers total users num: ${e}`);let t=Math.ceil(e/Ee),r=0,s=this.localUser.isCommonUser,o=[],a=d=>c(this,null,function*(){d<t&&(yield this.transBloudUsers(d-1))}),n=d=>c(this,null,function*(){for(let p of d)yield p(),yield Y(50)});if(s&&((l=this.room)!=null&&l.isBig))this.commonUserList.set(this.localUser.userId,this.localUser),yield this.transBloudUsers(-1,st,!0);else if(this.room.conferenceMode===2)this.room.localIsAudience&&this.audiencesList.set(this.localUser.userId,this.localUser),yield this.transBloudUsers(-1,st,!0);else{for(;r<t;)o.push(a.bind(null,r)),r+=1;n(o)}})}handleUnSubCommonUser(){this.commonUserList.forEach(e=>{let t=e.getMainStreamModel();t!=null&&t.hasPulled&&t.unSubscribeStream()})}handleCommonUserChange(){let e=new Map;this.room.bmStreamVm.streamModels.forEach(t=>{(!t.getUser().isCommonUser||t.isLocal)&&e.set(t.userId,t)}),this.room.bmStreamVm.streamModels=e,this.commonUserList.clear()}getUsers(e,t,r="RWPAV"){return c(this,null,function*(){let{users:s,total:o}=yield this.boomCore.getUsers(e,r,t),a=[];return s.forEach(n=>{let l=this.toBMUser(n);a.push(l)}),{userList:a,total:o}})}getUsersList(e,t,r="",s=!1){return c(this,null,function*(){var d,p;let{users:o,total:a,pageIndex:n}=yield this.boomCore.getUsersList(e,r,t,s),l=[];return o.forEach(g=>{let S=this.toBMUser(g);l.push(S)}),s&&((d=this.room)==null?void 0:d.roomInfo.totalWaitRoomUserWatcher.value)!==a&&((p=this.room)==null||p.roomInfo.totalWaitRoomUserWatcher.next(a)),{userList:l,total:a,pageIndex:n}})}getTotalUserNumber(){return c(this,null,function*(){let e=()=>c(this,null,function*(){let{total:r}=yield this.boomCore.getUsers(0,"",1);return r}),t=r=>{e().then(s=>{r(s)}).catch(s=>{m("getTotalUserNumber error","","",[JSON.stringify(s)]),t(r)})};return new Promise((r,s)=>c(this,null,function*(){t(r)}))})}clearUsers(){this.userList.clear(),this.commonUserList.clear(),this.audiencesList.clear(),this.signalList.clear()}searchUsers(e,t){return c(this,null,function*(){try{let{users:r}=yield this.boomCore.searchUsers(e,t,!1),s=[],o=[],a=[];return r.forEach(n=>{let l=this.userList.get(n.userId);if(l){s.push(l);return}let d=this.commonUserList.get(n.userId);if(d){o.push(d);return}let p=this.audiencesList.get(n.userId);if(p)a.push(p);else{let g=this.createUser(n);a.push(g)}}),{userList:s,commonUserList:o,audienceList:a}}catch(r){return Promise.reject(new P(1e3,"boomCore.searchUsers\u53D1\u751F\u9519\u8BEF:"+(r==null?void 0:r.message)))}})}searchWaitRoomUsers(e,t){return c(this,null,function*(){try{let{users:r}=yield this.boomCore.searchUsers(e,t,!0),s=[];return r.forEach(o=>{let a=this.toBMUser(o);s.push(a)}),s}catch(r){return Promise.reject(new P(1e3,"search wait room users error"))}})}createUser(e){return new X(e)}};var V=class{constructor(e){this.isMeetingNotice=!1;this.userId=e.userId,this.message=e.message,this.role=e.role,this.isLocal=e.isLocal,this.avatar=e.avatar,this.nickName=e.nickName,this.to=e.to,this.isDanger=e.isDanger,this.seq=e.seq,this.failed=e.failed;let t=!1;e.isMeetingNotice&&(t=!0),this.isMeetingNotice=t,e.sendTime?(this.timeStamp=e.sendTime,this.time=Bt(this.timeStamp)):(this.timeStamp=new Date().getTime(),this.time=Bt(this.timeStamp))}};var br=require("lodash-es");function Z(i){let e=i.getStreamId();return i.getUserId().toString().endsWith(k)||e.startsWith(Ze)||i.getType&&i.getType()==="assist"}var tr=require("lodash-es"),Ce=require("@hysc/utils"),ie=require("@hysc/utils");function rr(i){var t,r;let e=i.getLocalStreamModel();if(e&&!(e!=null&&e.stream))i.bloudStream&&(u("brtc \u5DF2\u7ECF\u6CA1\u6709\u6D41\u4E86\uFF0Cbloud \u7684\u6D41\u8981\u53D6\u6D88\u6389"),i.bloudStream.unpublish(),e.updateBloudStream(void 0,i),i.bloudStream=null);else if(e&&e.stream){u("brtc \u6D41\u5DF2\u7ECF\u91CD\u63A8\u4E0A\u53BB\u4E86\uFF0Cbloud\u8981\u91CD\u65B0\u53D1\u63A8\u6D41\u7684\u903B\u8F91");let s=e.stream.getAudioOn(),o=e.stream.getVideoOn();i.publishBloudStream(s,o).then(()=>{var a;u("brtc stream repub success bloud repub success, notify reconnect success"),i.localStreamConnectErrorWatcher.next((0,Ce.BMStreamReconnectSuccess)(s,o)),(a=e.player)==null||a.destroy(),e.player=null,e.isInBig&&e.playInBig()})}if(i.localIsShare){u("brtc has share stream, and bloud need to republish share stream");let s=(t=i.room)==null?void 0:t.boomCore.shareScreenStream;if(s){let o=s.getAudioOn(),a=s.getVideoOn();try{(r=i.room)==null||r.boomCore.createAndPubBloudShareStream(o,a)}catch(n){m("bloud \u5171\u4EAB\u5C4F\u5E55\u6D41\uFF0C\u65AD\u7F51\u91CD\u8FDE\u91CD\u63A8\u6D41\u5931\u8D25")}}}}var se=(0,tr.debounce)(i=>{if(i.networkState.bloud&&i.networkState.brtc)try{i.streamQueue.restart()}catch(e){i.streamQueue.setQueueProcessor(i.queueProcessor),i.streamQueue.restart()}},300);function ir(i,e,t,r){let s=i.stream;if(u("\u672C\u5730\u63A8\u6D41","\u672C\u5730\u63A8\u6D41",s.getUserId()),s){let o=e.getLocalStreamModel();o&&e.updateStreamModel(o,s),r[ie.BrtcEvents.STREAM_PUBLISHED].next({published:!0,model:o}),t.conferenceMode===1&&t.getLocalParticipant().isAudience&&e.getStreamModels().forEach(n=>{n.sendMessage2Room()})}else r[ie.BrtcEvents.STREAM_PUBLISHED].next({published:!1})}function sr(i,e,t){u("bloud publish stream"),At(i,e,!0),t[ie.BloudEvents.STREAM_PUBLISHED].next(i)}function At(i,e,t=!1){var a;u("bloud stream update","","",[JSON.stringify(i)]);let r=i.userId,s=i.isScreen,o=e.streamModels.get(r);if(o)if(!s)o.updateBloudStream(i,e,t),o.getUser().updateSortNum();else{e.shareBloudStateMap.set(r,i);let n={id:r,isWeb:o.isWeb,isScreen:s};(a=e.room)==null||a.addUser2Queue(n)}else m("bloud stream update, but can not get streamModel","",r)}function or(i,e,t){u("bloud unpublish stream","","",[JSON.stringify(i)]),Ci(i,e),t[ie.BloudEvents.STREAM_REMOVED].next(i)}function ar(i,e,t){u("bloud stream update","","",[JSON.stringify(i)]);let r=i.streamId,s=i.userId,o=i.params.customInfo,a;r.includes("_screen")?a=e.shareStreamModels.get(s):a=e.streamModels.get(s),a?a.updateBloudCustomInfo(o):m("bloud stream update, but can not get streamModel","",s,["streamId =>",r]),t[ie.BloudEvents.UPDATE_STREAM].next(i)}function Ci(i,e){var s,o,a;let t=i.userId;if(i.isScreen){let n=e.shareStreamModels.get(t);if(n){let l=n.stream;l?(l.destroy(),e.remoteStreamUnpublished(l)):e.removeShareStreamModelByUId(t);let d={id:t,isWeb:n.isWeb,isScreen:!0};(a=e.room)==null||a.streamQueue.removeUsers([d])}}else{let n=e.streamModels.get(t);if(n){n.updateBloudStream(void 0,e);let l=n.stream;l&&((s=e.room.audioPlayer)==null||s.removeStream(l),e.remoteStreamUnpublished(l),l.destroy());let d={id:t,isWeb:n.isWeb,isScreen:!1};(o=e.room)==null||o.streamQueue.removeUsers([d])}}}function ot(i,e){setTimeout(()=>c(this,null,function*(){u("handle republish share stream");try{let t=i.boomCore.shareScreenStream;if(t){let r=t.getAudioOn(),s=t.getVideoOn();if(yield i.boomCore.shareBrtcClient.publish(t),yield i.boomCore.createAndPubBloudShareStream(r,s),Object.keys(e.localShareCustomStats).length){let o=e.localModel.userId;yield e.updateBloudStreamCustomStats(o,`${o}_screen`,e.localShareCustomStats)}u("handle republish share stream success"),e.localShareError.next((0,Ce.BMShareStreamReconnectSuccess)())}else A("no share stream exist, unpublish share stream, to prevent share stream state error"),e.toggleShareScreen(!1,void 0)}catch(t){m("handle republish share stream failed , now unpublish"),e.localShareError.next((0,Ce.BMShareStreamReconnectFailed)()),yield e.toggleShareScreen(!1,void 0)}}),1e3)}var W=require("@hysc/utils");function cr(i,e,t){let r=i.permission,s=i.total;r&&t.updateLocalUserPermission(r),e.isInWaitRoom=i.joinwait;let o=i.waitroom;e.roomInfo.isOpenWaitRoom.next(o),e.roomInfo.totalUserWatcher.next(s);let a=i.audiooff,n=i.selfopenaudio;(a!==e.roomInfo.audioOff||n!==e.roomInfo.selfopenaudio)&&a!=null&&n!=null&&e.roomInfo.setAudioOff(a,n)}function at(i,e,t,r,s=!0){return c(this,null,function*(){var o;u("room-connected",e.getLocalParticipant().userId,"room-connected",["roomId =>",e.roomInfo.roomID," local permission => ",i.permission]),e.forceId=(o=i.customStats.forceOn)==null?void 0:o.user,dr(i,e),cr(i,e,t),s&&r[W.BloudEvents.ROOM_CONNECTED].next(i)})}function nt(i){return c(this,null,function*(){u("join ready init users"),i.isInWaitRoom||(i.forceId&&(yield i.getForceUser(i.forceId)),yield i.userVM.initUsers(),i.localUser.isAudience&&i.queryUsers([i.localUser.userId]))})}function ur(i,e){u("update-stats "," ","",["options => ",JSON.stringify(i.options)]),i.options&&i.options[0]=="audiooff"||i.options[1]=="selfopenaudio"?e.roomInfo.setAudioOff(i.room.audiooff,i.room.selfopenaudio):i.options&&i.options[0]=="lock"?e.roomInfo.setlock(i.room.lock):i.options&&i.options[0]=="waitroom"&&e.roomInfo.isOpenWaitRoom.next(i.stats.waitroom)}function dr(i,e){e.roomInfo.msgSeq=i.msgSeq,i.customStats&&e.roomInfo.initCustomStats(i.customStats)}function nr(i,e,t,r,s){var l;i.updateUser(e,t);let o=t.stream,a=r.streamModels.get(e.userId);if(a||m("bmUserVM\u4E2D\u5B58\u5728\u8BE5\u7528\u6237\uFF0C\u4F46\u662FbmStreamModelVM\u4E2D\u4E0D\u5B58\u5728\u8BE5\u7528\u6237\uFF0C\u4F5B\u4E86"),!o.size){a!=null&&a.bloudStream&&(a.updateBloudStream(void 0,r),s.streamQueue.removeUsers([{id:e.userId,isScreen:!1},{id:e.userId,isScreen:!0}]));let d=r.shareStreamModels.get(e.userId);if(d&&!d.isLocal){try{(l=d.stream)==null||l.destroy()}catch(p){}r.removeShareStreamModel(d)}}o.get(`${e.userId}_screen`)&&s.addUser2Queue({id:e.userId,isScreen:!0,isWeb:e.isWeb});let n=o.get(e.userId);n&&(a==null||a.updateBloudStream({audio:n.audio_enable,video:n.video_enable,isScreen:!1},r))}function lr(i,e,t,r){i.isSingleColumns?e.commonUserList.forEach(s=>{let o=t.get(s.userId);if(o){t.delete(s.userId),nr(e,s,o,r,i);return}e.commonUserList.delete(s.userId),r.streamModels.delete(s.userId),r.shareStreamModels.delete(s.userId)}):e.userList.forEach(s=>{let o=t.get(s.userId);if(o){nr(e,s,o,r,i),s.isCommonUser?e.userList.delete(s.userId):t.delete(s.userId);return}e.userList.delete(s.userId),r.streamModels.delete(s.userId),r.shareStreamModels.delete(s.userId)}),i.userVM.addBcUsersMap(t)}function vi(i,e,t,r){return c(this,null,function*(){let s=e.getLocalParticipant().userId,{users:o}=yield e.boomCore.queryUsers([s]),a=o.get(s);a&&t.updateUser(t.localUser,a);let n=e.getLocalParticipant().isCommonUser;if(e.isBig&&n){let{users:l}=yield e.boomCore.getUsersList(0,st,500);lr(e,t,l,r)}else{let d=(yield e.userVM.getTotalUserNumber())/Ee,p=new Map;for(let g=0;g<d;g++){let{users:S}=yield e.boomCore.getUsers(g-1,"",Ee);S.forEach(C=>{p.set(C.userId,C)})}lr(e,t,p,r)}dr(i,e),e.userVM.updateAllSort(),e.bmStreamVm.updateModelSort()})}function mr(i,e,t){u("brtc room reconnecting"),e.networkState.brtc=!1,e.streamWSReconnectWatcher.next(!1),t[W.BrtcEvents.BRTC_ROOM_ROCONNECTING].next(i)}function hr(i,e,t){u("brtc room reconnected"),e.networkState.brtc=!0,se(e),t[W.BrtcEvents.BRTC_ROOM_RECONNECTED].next(i)}function pr(i,e,t){u("bloud room reconnecting"),e.networkState.bloud=!1,e.bloudWSReconnectWatcher.next(!1),t[W.BloudEvents.RECONNECTING].next(i)}function lt(i,e,t){return c(this,null,function*(){e.hasSyncPermission?(u("bloud room reconnected"),e.bloudWSReconnectWatcher.next(!1),t[W.BloudEvents.MOVE_USER_ROOM].next(null),yield e.syncRoom().then(()=>{e.hasSyncPermission=!0,t[W.BloudEvents.ROOM_CONNECTED].next(i)}).catch(r=>{if(m("sync room error",JSON.stringify(r)),r.code===43){e.hasSyncPermission=!1,t[W.BloudEvents.USER_REJOINED].next(r);return}else e.hasSyncPermission=!1,t[W.BloudEvents.TIMEOUT].next(r)})):t[W.BloudEvents.TIMEOUT].next(i)})}function gr(i,e,t,r,s){return c(this,null,function*(){u("bloud sync room completed"),cr(i,t,e),yield vi(i,t,e,r),rr(r),t.networkState.bloud=!0,se(t),t.bloudWSReconnectWatcher.next(!0),s[W.BloudEvents.ROOM_SYNCED].next(i)})}var yr=require("@hysc/utils");var{USER_REJOINED:Bi,PARTICIPANT_JOINED:Ai,CHANGE_MASTER:fr,EVICTED:Ri,UPDATE_USER:Ui,PARTICIPANT_LEFT:Rt,CUSTOM_MESSAGE:Pi,MOVE_USER_ROOM:Sr}=yr.BloudEvents;function Ir(i,e,t,r,s,o){var S,C,y,I,U,M,G,Q,q,Pe,ae,ne,j;let a=(C=(S=i==null?void 0:i.participant)==null?void 0:S.params)==null?void 0:C.info.sync,n=i.mode;u("\u7528\u6237\u5165\u4F1A","\u7528\u6237\u5165\u4F1A",i.user.userId,["sync => ",a,"mode =>",n]);let l=e.room.isBig&&t.streamModels.size>1e3,d=!1;if(a){let N=e.userList.get(i.user.userId);if(N||(N=e.commonUserList.get(i.user.userId)),N){N.inBackground!=!!((I=(y=i.user)==null?void 0:y.customInfo)!=null&&I.inBackground)&&(N.inBackground=!!((M=(U=i.user)==null?void 0:U.customInfo)!=null&&M.inBackground),N.watcher.next({operation:"inBackground",user:N}));return}}if(n===1&&((G=e.room)!=null&&G.isBig)&&(e.commonUserList.delete(i.user.userId),t.streamModels.delete(i.user.userId)),ke(i.user.permission.permission))e.userList.get(i.user.userId)&&(e.userList.delete(i.user.userId),t.streamModels.delete(i.user.userId),d=!0);else{let N=e.commonUserList.get(i.user.userId);(Q=e.room)!=null&&Q.isSingleColumns||N&&(e.commonUserList.delete(i.user.userId),t.streamModels.delete(i.user.userId),d=!0)}let g=e.addBCUser(i.user);if(g){g.inBackground!=!!((Pe=(q=i.user)==null?void 0:q.customInfo)!=null&&Pe.inBackground)&&(g.inBackground=!!((ne=(ae=i.user)==null?void 0:ae.customInfo)!=null&&ne.inBackground),g.watcher.next({operation:"inBackground",user:g}));let N=!1;if(Me.forEach(le=>{g!=null&&g.userId.includes(le)&&(N=!0)}),d?e.updateAllSort():(j=e.room)!=null&&j.isSingleColumns?e.updateCommonUserSort():g?g.isCommonUser?l?e.updateDelayCommonUserSort():e.updateCommonUserSort():e.updateUserSort():e.updateAllSort(),t.updateModelSort(),!N){if(i.mode!==1){let le=new V({isMeetingNotice:!0,userId:g.userId,message:g.nickName+`\u52A0\u5165${r.roomType==2?"\u76F4\u64AD":"\u4F1A\u8BAE"}`});s.addMessage(le,!0)}o[Ai].next({user:g,mode:n,data:i})}}}function Er(i,e,t,r,s,o,a){var l;let n=i.userIds;u("bloud leave users","","",["userIds =>",n]),n.length&&(n.forEach(d=>{let p=Ut(d,e,t,s);p&&Cr(p,o,a,r,!0,0)}),(l=e.room)!=null&&l.isSingleColumns?e.updateCommonUserSort():e.updateAllSort(),s.updateModelSort())}function Mr(i,e,t,r,s,o,a){var p;u(`bloud participant left ===>${i.userId}, ${i.mode}`);let n=i.mode===1,l=i.userId,d=t.isBig&&s.streamModels.size>1e3;if(l){let g=Ut(l,e,t,s);if((p=e.room)!=null&&p.isSingleColumns?e.updateCommonUserSort():g?g.isCommonUser?d?e.updateDelayCommonUserSort():e.updateCommonUserSort():e.updateUserSort():e.updateAllSort(),s.updateModelSort(),n){r[Rt].next({user:g,mode:i.mode,data:i});return}g&&Cr(g,o,a,r,i.mode!==1,i.mode)}else A("participant-left\u89E6\u53D1=======>\u4F46\u662F\u8BE5\u7528\u6237\u4FE1\u606F\u4E0D\u5B58\u5728",T,null,[i.userId]),r[Rt].next({user:i.userId,mode:i.mode,data:i})}function Cr(i,e,t,r,s,o){let a=!1;if(Me.forEach(n=>{i!=null&&i.userId.includes(n)&&(a=!0)}),!a){if(s){let n=new V({isMeetingNotice:!0,userId:i.userId,message:(i==null?void 0:i.nickName)+`\u79BB\u5F00${e.roomType==2?"\u76F4\u64AD":"\u4F1A\u8BAE"}`});t.addMessage(n,!0)}r[Rt].next({user:i,mode:o})}}function Ut(i,e,t,r){let s=e.getUser(i);return e.removeUser(i),t.streamQueue.removeUsers([{id:i,isScreen:!1},{id:i,isScreen:!0}]),r.removeStreamModelByUId(i),r.removeShareStreamModelByUId(i),t.roomInfo.removeRaiseHandUser(i),t.roomInfo.removeVideoRaiseHandUser(i),t.roomInfo.removeSimpleRaiseHandUser(i),r.shareBloudStateMap.delete(i),s}function vr(i,e,t,r,s){u("changeMaster =>","changeMaster","",["master: => ",i.master,"oldMaster =>",i.oldMaster]);let o=i.master,a=i.oldMaster,n=i.isKeep;if(!o)A("change-master\u89E6\u53D1=======>\u4F46\u662F\u623F\u95F4\u5185\u627E\u4E0D\u5230master",T,null,o),r[fr].next(null);else{let l=e.updateMaster(o,a,n);l.master&&(l.master.watcher.next({operation:"getMaster",user:l.master}),t.userVM.masterUserWatcher.next(l.master)),l.oldMaster&&(l.oldMaster.watcher.next({operation:"removeMaster",user:l.oldMaster}),n&&l.oldMaster.watcher.next({operation:"getManager",user:l.oldMaster}));let d=s.getStreamModelByUId(a),p=s.getStreamModelByUId(o);d==null||d.updateSortNum(),p==null||p.updateSortNum(),r[fr].next({master:l.master,oldMaster:l.oldMaster,data:i})}}function Br(i,e,t,r,s){var l;let o=i.userId,a=e.getUser(o);u("\u8E22\u51FA\u7528\u6237 => ","evict ",a==null?void 0:a.userId,["nickname => ",a==null?void 0:a.nickName]);let n=Ut(o,e,r,t);(l=e.room)!=null&&l.isSingleColumns?e.updateCommonUserSort():n?n.isCommonUser?e.updateCommonUserSort():e.updateUserSort():e.updateAllSort(),t.updateModelSort(),s[Ri].next(i)}function Ar(i,e,t,r,s){var o,a;if(u("\u7528\u6237\u4FE1\u606F\u88AB\u6539\u53D8","",(o=i.user)==null?void 0:o.userId),(a=i.user)!=null&&a.userId){let n=e.getUser(i.user.userId),l=r.getStreamModelByUId(i.user.userId);n?n.updateUserInfo(i.user,i.participant,t):console.warn("participant-update: bmUser is null"),l&&l.updateSortNum(!0),s[Ui].next({bmUser:n,params:i.participant.params})}}var Pt=(0,br.debounce)((i,e)=>{i[Bi].next(e)},1e3);function Rr(i,e,t,r){return c(this,null,function*(){u("bloud move user room","","",[t]);let s=t.toWait;if(i.isInWaitRoom=s,s){i.handleResetOtherStreamStatus(),e.userList.clear(),e.userListWatcher.next([]),e.commonUserList.clear(),e.commonUserListWatcher.next([]),e.getForceUserWatcher.next(!1),i.bmStreamVm.streamModels.clear(),i.bmStreamVm.clearDetector(),i.bmStreamVm.speakerWatcher.next(null),r[Pi].next(null),i.messageWatcher.next({type:"init",status:!1,isNotCancelRootReport:!1}),i.audioPlayer.destroy();let o=i.bmStreamVm.localModel;o&&i.bmStreamVm.streamModels.set(o.userId,o),i.bmStreamVm.streamModelsWatcher.next([]),i.bmStreamVm.shareStreamModels.clear(),i.bmStreamVm.shareStreamModelsWatcher.next([]),i.roomInfo.raiseHandsWatcher.next([]),i.roomInfo.raiseVideoHandsWatcher.next([]),i.roomInfo.raiseSimpleHandsWatcher.next([]),r[Sr].next(s),Object.values(i.observes).forEach(a=>{a.next(null)})}else{let{audiooff:o,selfopenaudio:a,lock:n}=t.info;n!==i.roomInfo.lock&&i.roomInfo.setlock(n),(o!==i.roomInfo.audioOff||a!==i.roomInfo.selfopenaudio)&&i.roomInfo.setAudioOff(o,a),yield at(t.info,i,e,r,!0),yield nt(i),r[Sr].next(s)}})}var ct=require("@hysc/utils");function Pr(i,e,t,r){var o,a,n,l,d,p,g,S,C;let s=L({},i);if(s.message){if(s.message=typeof s.message=="string"?JSON.parse(s.message):s.message,u("new-message","","",[" method => ",s.message.method]),s.message.method==="send-talk"){let y=s.user===((o=e.getLocalUser())==null?void 0:o.userId),I=((n=(a=s.message)==null?void 0:a.params)==null?void 0:n.status)||"",U=(p=(d=(l=s.message)==null?void 0:l.params)==null?void 0:d.stream)==null?void 0:p.avatar,M=i.seq,G=new V({userId:s.user,message:I,isLocal:y,avatar:U,to:s.to,seq:M,nickName:(C=(S=(g=s.message)==null?void 0:g.params)==null?void 0:S.stream)==null?void 0:C.nickname,sendTime:new Date().getTime()});t.addMessage(G,!1)}r[ct.BloudEvents.SEND_MESSAGE].next(s)}}function Nr(i,e,t){var s,o,a,n,l,d,p,g,S,C,y,I,U;let r=L({},i);if(r.message)if(r.message=typeof r.message=="string"?JSON.parse(r.message):r.message,u("custom-message","","",[" method => ",r.message.method]),r.message.method=="video-force-change"){let M=r.message.params.status=="enabled";u(`\u8FDC\u7AEF\u63A7\u5236\u672C\u5730\u6444\u50CF\u5934: ${M}`),e.messageWatcher.next({type:"video-force-change",status:M,fromUserId:r.user})}else if(r.message.method=="audio-force-change"){let M;r.message.params.status=="checkUserAudio"?M=r.message.params.status:M=r.message.params.status=="enabled",u(`\u8FDC\u7AEF\u63A7\u5236\u672C\u5730\u9EA6\u514B\u98CE: ${M}`),e.messageWatcher.next({type:"audio-force-change",status:M,fromUserId:r.user,isNotCancelRootReport:(s=r.message.params)==null?void 0:s.isNotCancelRootReport})}else if(r.message.method==="raise-hands")e.raiseHandleRespWatcher.next(r.message.params);else if(r.message.method==="give-like")(g=e.roomVM)==null||g.giveLikeList.push({userId:r.user,nickName:(n=(a=(o=r.message)==null?void 0:o.params)==null?void 0:a.stream)==null?void 0:n.nickname,time:new Date().getTime(),type:(p=(d=(l=r.message)==null?void 0:l.params)==null?void 0:d.stream)==null?void 0:p.type}),(C=e.roomVM)==null||C.giveLikeListWatcher.next((S=e.roomVM)==null?void 0:S.giveLikeList);else if(r.message.method==="resp-to-check-devices")(y=r.message)!=null&&y.params&&(r.message.params.fromUserId=r.user),t[ct.BloudEvents.CUSTOM_MESSAGE].next(r);else if(r.message.method==="usercount"){if(r.message.params){let M=(U=(I=r.message)==null?void 0:I.params)==null?void 0:U.total;M?(M=Number(M),M<0&&(A("\u670D\u52A1\u8FD4\u56DE\u7684usercount\u4E3A\u8D1F\u6570,"+M),M=0)):(A("\u670D\u52A1\u672A\u8FD4\u56DEusercount,"+M),M=0),e.roomInfo.totalUserWatcher.next(M)}}else if(r.message.method==="waitusercount"){if(r.message.params){let M=r.message.params.total;e.roomInfo.totalWaitRoomUserWatcher.next(M)}}else t[ct.BloudEvents.CUSTOM_MESSAGE].next(r)}var ve=require("@hysc/utils");var ut=0;var dt=0,Ve=new Set;function Nt(i,e,t,r,s){return c(this,null,function*(){if(m("brtc error","brtc error","",[new Date().toLocaleTimeString(),JSON.stringify(i),i.getCode()]),i.getCode()===4002){e.BRTCConnectFailed=!0,e.networkState.brtc=!1,A("brtc \u4FE1\u4EE4\u901A\u9053\u9519\u8BEF\uFF0C\u9700\u8981\u91CD\u65B0\u8D70\u5165\u4F1A","brtc error",""),e.streamWSReconnectWatcher.next(!1);try{yield t.brtcClient.leave("room_close")}catch(a){m("brtc \u79BB\u4F1A\u5931\u8D25")}setTimeout(()=>c(this,null,function*(){e.handleResetOtherStreamStatus(),yield Tr(t,e,s,i).catch(a=>{u("brtc\u65AD\u7F51\u91CD\u8FDE\u5931\u8D25, \u5904\u7406\u4E00\u4E0B\u9000\u4F1A\u903B\u8F91","","",[JSON.stringify(a)]),s[ve.BrtcEvents.ERROR].next(i)})}),1e3)}else s[ve.BrtcEvents.ERROR].next(i)})}function Tr(i,e,t,r){return c(this,null,function*(){return new Promise((s,o)=>{setTimeout(()=>{u("brtc\u91CD\u8FDE"),i.brtcClient.join(i.roomId,i.userId,i.brtcSig).then(()=>c(this,null,function*(){u("brtc\u65AD\u7F51\u91CD\u8FDE\u6210\u529F, \u91CD\u65B0\u5904\u7406\u62C9\u6D41\u548C\u63A8\u6D41"),e.networkState.brtc=!0,setTimeout(()=>{e.brtcNetEnableWatcher.next(!0)},2e3),se(e),e.BRTCConnectFailed=!1,ut=0,yield e.handleRePushSelf(),e.streamWSReconnectWatcher.next(!0),s(!0)})).catch(a=>{let n=a.getCode();u("\u65AD\u7F51\u91CD\u8FDE\u5165\u4F1A\u5931\u8D25","","",[a,n]),ut<=10?(ut+=1,i.brtcClient.isJoinning=!1,setTimeout(()=>{Tr(i,e,t,r)},2*1e3)):(m("brtc\u65AD\u7F51\u91CD\u8FDE\u5931\u8D25\uFF0C\u5904\u7406\u4E00\u4E0B\u9000\u4F1A"),ut=0,t[ve.BrtcEvents.ERROR].next(r),o(!1))})},7*1e3)})})}function Tt(i){return c(this,null,function*(){return new Promise((e,t)=>{setTimeout(()=>{u("\u5171\u4EAB\u5C4F\u5E55\u91CD\u8FDE"),i.shareBrtcClient.join(i.roomId,i.userId,i.brtcSig).then(()=>{dt=0,e(!0)}).catch(r=>{let s=r.getCode();if(u("\u5171\u4EAB\u5C4F\u5E55\u65AD\u7F51\u91CD\u8FDE\u5165\u4F1A\u5931\u8D25","","",[r,s]),dt<=3)dt+=1,Tt(i);else throw m("\u5171\u4EAB\u5C4F\u5E55\u7528\u6237\u91CD\u8FDE\u5931\u8D25\uFF0C\u5904\u7406\u4E00\u4E0B\u53D6\u6D88\u5171\u4EAB\u5C4F\u5E55"),dt=0,new Error("\u5171\u4EAB\u5C4F\u5E55\u91CD\u8FDE\u5931\u8D25")})},7*1e3)})})}function xr(i,e,t,r,s){return c(this,null,function*(){m("network-error","network-error","local-client",["\u672C\u5730\u94FE\u63A5\u51FA\u73B0\u95EE\u9898","netconnectiong => ",i.netConnecting]),i.netConnecting?yield lt(r,i,s):s[ve.BloudEvents.TIMEOUT].next(r)})}var wr=require("@hysc/utils");function Lr(i,e,t){let r=i==null?void 0:i.updateKeys;u("update-custom-stats"," "," ",["updateKeys => ",JSON.stringify(r)]),(r!=null&&r.includes("chatNotice")||r!=null&&r.includes("chatNoticeRich")||r!=null&&r.includes("fileUpdateLook")||r!=null&&r.includes("fileUpdateDown")||r!=null&&r.includes("fileUpdateEdit")||r!=null&&r.includes("fileUpdateModel")||r!=null&&r.includes("screenShareModel")||r!=null&&r.includes("onlyOnePersonShare")||r!=null&&r.includes("chatEnable")||r!=null&&r.includes("giveLikeEnable")||r!=null&&r.includes("cloudRecord")||r!=null&&r.includes("joinAudioEnable")||r!=null&&r.includes("joinVideoEnable")||r!=null&&r.includes("userListEnable")||r!=null&&r.includes("audioEnable")||r!=null&&r.includes("videoEnable")||r!=null&&r.includes("modifyNameEnable")||r!=null&&r.includes("backgroundAIEnable")||r!=null&&r.includes("recordEnable")||r!=null&&r.includes("joinMicrophoneDisable")||r!=null&&r.includes("joinCameraDisable")||r!=null&&r.includes("raiseHandEnable")||r!=null&&r.includes("forceOpenUserMic")||r!=null&&r.includes("forceOpenUserCamera")||r!=null&&r.includes("joinCueVoice"))&&e.roomInfo.updateOperationPermission(i.customStats),(r!=null&&r.includes("chatNotice")||r!=null&&r.includes("chatNoticeRich"))&&e.roomInfo.chatNoticeWatcher.next(i),t[wr.BloudEvents.UPDATE_CUSTOM_STATS].next(i)}var Or=bt(require("@hysc/p-queue")),mt=class{constructor(e,t=!0){this.queue=new Or.default({concurrency:e,autoStart:t,carryoverConcurrencyCount:!0,timeout:3*1e3,completeAction:r=>{console.log("task complete",r)}}),this.queueArray=[],this.isTaskPending=t}addQueue(e,t,r=0,s=""){this.queue.isPaused&&this.queue.start();let o={};o.taskID=t,o.status="pending",this.queue.add(e,{priority:r,timeout:3*1e3},a=>{if(o.status=a,o.status==="resolve"||o.status==="resolve-paused"||o.status==="resolve-timeout"){let n=this.queueArray.findIndex(l=>o.taskID===l.taskID);n!==-1&&this.queueArray.splice(n,1)}}),this.queueArray.push(o)}clearQueue(){this.queue.clear(),this.queueArray=[],this.queue.onEmpty().then(e=>{}),this.queue.onIdle().then(e=>{console.log("clearQueue\u5168\u90E8\u5B8C\u4E8B")})}startQueue(){this.queue.start()}pauseQueue(){return this.queue.pause(),console.log(`size:${this.size()}`),this.isTaskPending=!1,this.queue.onEmpty().then(e=>{}),this.queue.onIdle().then(e=>{}),this.queueArray}size(){return this.queue.size}pending(){return this.queue.pending}checkTaskStatus(){return this.isTaskPending}setTaskStatus(e){this.isTaskPending=e}onIdle(){return this.queue.onIdle()}onEmpty(){return this.queue.onEmpty()}},F=new mt(4),v=new mt(10);var Dr=require("@hysc/utils"),h=require("@hysc/utils");function _r(i,e,t,r,s){u("attachEvents init");let o={};i.on("toggle-screen-share",()=>{m("share stream video track ended, now unpublish share stream"),t.localShareError.next((0,Dr.BMShareStreamReconnectFailed)()),t.localShareEndedError.next(!0)}),i.on("client-banned",()=>c(this,null,function*(){yield s.boomCore.leaveShare()})),i.on("share-brtc-error",n=>c(this,null,function*(){if(n.getCode()===4002)try{u("brtc share client disconnected, reconnecting"),yield i.shareBrtcClient.leave("room_close"),Tt(i).then(()=>c(this,null,function*(){if(u("brtc share client reconnected, retry repub share stream"),yield Y(1e3),i.shareScreenStream){let d=i.shareScreenStream.getAudioOn(),p=i.shareScreenStream.getVideoOn();i.shareBrtcClient.publish(i.shareScreenStream),i.createAndPubBloudShareStream(d,p)}})).catch(()=>{throw new Error("\u5171\u4EAB\u5C4F\u5E55\u91CD\u65B0\u5165\u4F1A\u5931\u8D25")})}catch(d){t.toggleShareScreen(!1,void 0).then(()=>{}).catch(p=>{m("\u5171\u4EAB\u53D1\u751F\u9519\u8BEF\u9000\u4F1A\u5931\u8D25","","",[JSON.stringify(p)])})}}));let a=[];return a=a.concat(Object.values(h.BloudEvents)),a=a.concat(Object.values(h.BrtcEvents)),a=a.concat(Object.values(h.CustomEvents)),a.forEach(n=>{o[n]=new kr.BehaviorSubject(null)}),a.forEach(n=>{switch(n){case h.BrtcEvents.STREAM_PUBLISHED:i.on(h.BrtcEvents.STREAM_PUBLISHED,l=>{v.addQueue(ir.bind(null,l,t,s,o),h.BrtcEvents.STREAM_PUBLISHED)});break;case h.BrtcEvents.BRTC_SYNC_ROOM_COMPLETED:i.on(h.BrtcEvents.BRTC_SYNC_ROOM_COMPLETED,()=>c(this,null,function*(){v.addQueue(s.handleResetOtherStreamStatus.bind(s),h.BrtcEvents.BRTC_SYNC_ROOM_COMPLETED)}));break;case h.CustomEvents.BRTC_SHARE_SYNC_ROOM_COMPLETED:i.on(h.CustomEvents.BRTC_SHARE_SYNC_ROOM_COMPLETED,()=>{u("brtc share client sync completed, retry publish share stream"),v.addQueue(ot.bind(null,s,t),h.CustomEvents.BRTC_SHARE_SYNC_ROOM_COMPLETED)});break;case h.BrtcEvents.BRTC_ROOM_ROCONNECTING:i.on(h.BrtcEvents.BRTC_ROOM_ROCONNECTING,l=>{v.addQueue(mr.bind(null,l,s,o),h.BrtcEvents.BRTC_ROOM_ROCONNECTING)});break;case h.BrtcEvents.BRTC_ROOM_RECONNECTED:i.on(h.BrtcEvents.BRTC_ROOM_RECONNECTED,l=>c(this,null,function*(){v.addQueue(hr.bind(null,l,s,o),h.BrtcEvents.BRTC_ROOM_RECONNECTED)}));break;case h.BrtcEvents.CLIENT_BANNED:i.on(h.BrtcEvents.CLIENT_BANNED,l=>{u("brtc client banned"),Pt(o,l)});break;case h.BrtcEvents.ERROR:i.on(h.BrtcEvents.ERROR,l=>c(this,null,function*(){s.netConnecting?v.addQueue(Nt.bind(null,l,s,i,t,o),h.BrtcEvents.ERROR):Ve.add(Nt.bind(null,l,s,i,t,o))}));break;case h.BloudEvents.SYNC_FAILED:i.on(h.BloudEvents.SYNC_FAILED,l=>{m("bloud sync failed, leave room"),o[h.BloudEvents.TIMEOUT].next(l)});break;case h.BloudEvents.ROOM_CONNECTED:i.on(h.BloudEvents.ROOM_CONNECTED,l=>c(this,null,function*(){return at(l,s,e,o)}));break;case h.CustomEvents.JOIN_READY:i.on(h.CustomEvents.JOIN_READY,()=>nt(s));break;case h.BloudEvents.PARTICIPANT_JOINED:i.on(h.BloudEvents.PARTICIPANT_JOINED,l=>c(this,null,function*(){s.isInWaitRoom||v.addQueue(Ir.bind(null,l,e,t,i,r,o),h.BloudEvents.PARTICIPANT_JOINED)}));break;case h.BloudEvents.PARTICIPANT_LEFT:i.on(h.BloudEvents.PARTICIPANT_LEFT,l=>{s.isInWaitRoom||v.addQueue(Mr.bind(null,l,e,s,o,t,i,r),h.BloudEvents.PARTICIPANT_LEFT)});break;case h.BloudEvents.LEAVE_USERS:i.on(h.BloudEvents.LEAVE_USERS,l=>v.addQueue(Er.bind(null,l,e,s,o,t,i,r),h.BloudEvents.LEAVE_USERS));break;case h.BloudEvents.CHANGE_MASTER:i.on(h.BloudEvents.CHANGE_MASTER,l=>{v.addQueue(vr.bind(null,l,e,s,o,t),h.BloudEvents.CHANGE_MASTER)});break;case h.BloudEvents.SEND_MESSAGE:i.on(h.BloudEvents.SEND_MESSAGE,l=>{v.addQueue(Pr.bind(null,l,e,r,o),h.BloudEvents.SEND_MESSAGE)});break;case h.BloudEvents.CUSTOM_MESSAGE:i.on(h.BloudEvents.CUSTOM_MESSAGE,l=>{v.addQueue(Nr.bind(null,l,s,o),h.BloudEvents.CUSTOM_MESSAGE)});break;case h.BloudEvents.EVICTED:i.on(h.BloudEvents.EVICTED,l=>c(this,null,function*(){v.addQueue(Br.bind(null,l,e,t,s,o),h.BloudEvents.EVICTED)}));break;case h.BloudEvents.UPDATE_USER:i.on(h.BloudEvents.UPDATE_USER,l=>{v.addQueue(Ar.bind(null,l,e,s,t,o),h.BloudEvents.UPDATE_USER)});break;case h.BloudEvents.UPDATE_STATS:i.on(h.BloudEvents.UPDATE_STATS,l=>{v.addQueue(ur.bind(null,l,s),h.BloudEvents.UPDATE_STATS)});break;case h.BloudEvents.UPDATE_CUSTOM_STATS:i.on(h.BloudEvents.UPDATE_CUSTOM_STATS,l=>{v.addQueue(Lr.bind(null,l,s,o),h.BloudEvents.UPDATE_CUSTOM_STATS)});break;case h.BloudEvents.TIMEOUT:i.on(h.BloudEvents.TIMEOUT,l=>{v.addQueue(xr.bind(null,s,i,t,l,o),h.BloudEvents.TIMEOUT)});break;case h.BloudEvents.USER_REJOINED:i.on(h.BloudEvents.USER_REJOINED,l=>{u("bloud user rejoined"),Pt(o,l)});break;case h.BloudEvents.RECONNECTING:i.on(h.BloudEvents.RECONNECTING,l=>{v.addQueue(pr.bind(null,l,s,o),h.BloudEvents.RECONNECTING)});break;case h.BloudEvents.RECONNECTED:i.on(h.BloudEvents.RECONNECTED,l=>c(this,null,function*(){v.addQueue(lt.bind(null,l,s,o),h.BloudEvents.RECONNECTED)}));break;case h.BloudEvents.ROOM_SYNCED:i.on(h.BloudEvents.ROOM_SYNCED,l=>c(this,null,function*(){v.addQueue(gr.bind(null,l,e,s,t,o),h.BloudEvents.ROOM_SYNCED)}));break;case h.BloudEvents.STREAM_PUBLISHED:i.on(h.BloudEvents.STREAM_PUBLISHED,l=>c(this,null,function*(){v.addQueue(sr.bind(null,l,t,o),h.BloudEvents.STREAM_PUBLISHED)}));break;case h.BloudEvents.STREAM_REMOVED:i.on(h.BloudEvents.STREAM_REMOVED,l=>c(this,null,function*(){v.addQueue(or.bind(null,l,t,o),h.BloudEvents.STREAM_REMOVED)}));break;case h.BloudEvents.UPDATE_STREAM:i.on(h.BloudEvents.UPDATE_STREAM,l=>c(this,null,function*(){v.addQueue(ar.bind(null,l,t,o),h.BloudEvents.UPDATE_STREAM)}));break;case h.BloudEvents.STREAM_UPDATE:i.on(h.BloudEvents.STREAM_UPDATE,l=>c(this,null,function*(){v.addQueue(At.bind(null,l,t),h.BloudEvents.STREAM_UPDATE)}));break;case h.BloudEvents.MOVE_USER_ROOM:i.on(h.BloudEvents.MOVE_USER_ROOM,l=>c(this,null,function*(){v.addQueue(Rr.bind(null,s,e,l,o),h.BloudEvents.MOVE_USER_ROOM)}));break;default:i.on(n,l=>o[n].next(l));break}}),o}var b=require("@hysc/utils"),Vr=require("rxjs");var We=class{constructor(e,t,r){this.room=null;this.tipQueueObj={};this.roomInfo=r,this.userVM=t,this.boomCore=e,this.giveLikeList=[],this.giveLikeListWatcher=new Vr.Subject}initWithRoom(e){this.room=e}evictUser(e,t){return c(this,null,function*(){if(!e)return Promise.reject((0,b.BmEvictUserError)("\u672A\u4F20\u9012\u7528\u6237id"));if(!this.userVM.checkLocalHasMaster())return Promise.reject((0,b.BmEvictUserError)("\u53EA\u6709\u4E3B\u6301\u4EBA\u6743\u9650\u624D\u80FD\u8E22\u51FA\u7528\u6237"));if(this.userVM.checkIsMaster(e))return Promise.reject((0,b.BmEvictUserError)("\u4E3B\u6301\u4EBA\u4E0D\u80FD\u88AB\u8E22\u51FA"));try{yield this.boomCore.evictUser(e,t)}catch(r){return Promise.reject((0,b.BmEvictUserError)(`\u8E22\u51FA\u7528\u6237\u5931\u8D25${JSON.stringify(r)}`))}})}updateUser(e,t){return c(this,null,function*(){if(!e)return Promise.reject((0,b.BmUpdateUserError)("\u672A\u4F20\u9012\u76EE\u6807\u7528\u6237id"));if(!t)return Promise.reject((0,b.BmUpdateUserError)("info\u4E3A\u7A7A,\u8BF7\u5199\u5165\u8981\u66F4\u65B0\u7684\u4FE1\u606F"));yield this.boomCore.updateUser(e,{customInfo:t}).catch(r=>Promise.reject((0,b.BmUpdateUserError)(`boomCore updateUser\u51FA\u9519 ${JSON.stringify(r)}`)))})}changeMaster(e,t){return c(this,null,function*(){var r;if(!e)return Promise.reject((0,b.BmChangeMasterError)("\u672A\u4F20\u9012\u4E3B\u6301\u4EBAid"));if(this.userVM.checkLocalHasMaster()||(r=this.userVM.getUser(e))!=null&&r.isCreate)try{yield this.boomCore.changeMaster(e,t)}catch(s){return Promise.reject((0,b.BmChangeMasterError)(`boomCore changeMaster error ${s}`))}else return console.error("\u8BE5\u7528\u6237\u6CA1\u6709\u7BA1\u7406\u5458\u6743\u9650, \u65E0\u6CD5\u6539\u53D8\u4E3B\u6301\u4EBA",T,e),Promise.reject((0,b.BmChangeMasterError)("\u60A8\u6CA1\u6709\u7BA1\u7406\u5458\u6743\u9650, \u65E0\u6CD5\u6539\u53D8\u4E3B\u6301\u4EBA"))})}updateManager(e,t,r=!0){return c(this,null,function*(){return e?this.userVM.checkLocalHasMaster()?this.userVM.updateManager(e,t,r):(console.error("\u8BE5\u7528\u6237\u6CA1\u6709\u7BA1\u7406\u5458\u6743\u9650, \u65E0\u6CD5\u6539\u53D8\u8054\u5E2D\u4E3B\u6301\u4EBA",T,e),Promise.reject((0,b.BmUpdateManagerError)("\u8BE5\u7528\u6237\u6CA1\u6709\u7BA1\u7406\u5458\u6743\u9650, \u65E0\u6CD5\u6539\u53D8\u4E3B\u6301\u4EBA"))):Promise.reject((0,b.BmUpdateManagerError)("\u672A\u4F20\u9012\u8054\u5E2D\u4E3B\u6301\u4EBAid"))})}changeNickName(e,t){return c(this,null,function*(){let r={nickname:t};yield this.updateUser(e,r)})}sendMessageWithMaster(e,t){return c(this,null,function*(){if(!this.userVM.checkLocalHasMaster())return Promise.reject((0,b.BmSetRemoteAudioEnable)("\u60A8\u4E0D\u662F\u4E3B\u6301\u4EBA\uFF0C\u6CA1\u6709\u8BE5\u6743\u9650"));if(t&&!this.userVM.getUser(t))return Promise.reject((0,b.BmSetRemoteAudioEnable)(`uid: ${t} \u672A\u627E\u5230\u7528\u6237`));try{yield this.boomCore.customMessage(JSON.stringify(e),t)}catch(r){return Promise.reject(r)}})}setRemoteAudioEnable(e,t,r){return c(this,null,function*(){let s=e?"enabled":"disabled";s=="enabled"&&r&&(s="checkUserAudio");let o={domain:"room-control",method:"audio-force-change",params:{status:s,isNotCancelRootReport:r,fromUserId:this.boomCore.getLocalParticipant().getID()}};this.sendMessageWithMaster(o,t).catch(a=>Promise.reject((0,b.BmSetRemoteAudioEnable)(`boomCore.sendMessage\u53D1\u751F\u9519\u8BEF ${a}`)))})}setRemoteVideoEnable(e,t){return c(this,null,function*(){let r={domain:"room-control",method:"video-force-change",params:{status:e?"enabled":"disabled",fromUserId:this.boomCore.getLocalParticipant().getID()}};this.sendMessageWithMaster(r,t).catch(s=>Promise.reject((0,b.BmSetRemoteVideoEnable)(`boomCore.sendMessage\u53D1\u751F\u9519\u8BEF ${s}`)))})}closeRemoteShare(e){return c(this,null,function*(){let t={domain:"room-control",method:"close-remote-share",params:{fromUserId:this.boomCore.getLocalParticipant().getID()}};this.sendMessageWithMaster(t,e).catch(r=>Promise.reject((0,b.BmSetRemoteAudioEnable)(`boomCore.sendMessage\u53D1\u751F\u9519\u8BEF ${r}`)))})}tipUser(e,t,r,s){return c(this,null,function*(){let o={domain:"room-control",method:"tip-user",params:{fromUserId:this.boomCore.getLocalParticipant().getID(),message:t,richMsg:r}};s?this.tipQueueObj[e]=setTimeout(()=>{this.sendMessageWithMaster(o,e)},(s.minutes||0)*60*1e3+(s.seconds||0)*1e3):this.sendMessageWithMaster(o,e).catch(a=>Promise.reject((0,b.BmSetRemoteAudioEnable)(`boomCore.sendMessage\u53D1\u751F\u9519\u8BEF ${JSON.stringify(a)}`)))})}raiseHands(e,t){return c(this,null,function*(){var o;let r=(o=this.room)==null?void 0:o.getLocalParticipant().getID(),s={};e==="raiseHand"?(s.raiseHand=t,s.raiseHandTime=Math.floor(new Date().getTime()/1e3)):s[e==="audio"?"raiseHandsAudio":"raiseHandsVideo"]=t,yield this.updateUser(r,s)})}handleRaiseHands(e,t,r){return c(this,null,function*(){var o,a,n;let s={domain:"user-control",method:"raise-hands",params:{raiseHandsType:e,raiseHands:t}};try{if(r)yield this.boomCore.customMessage(JSON.stringify(s),r);else{let l=(o=this.room)==null?void 0:o.roomInfo.raiseHandsWatcher.getValue(),d=(a=this.room)==null?void 0:a.roomInfo.raiseVideoHandsWatcher.getValue(),p=(n=this.room)==null?void 0:n.roomInfo.raiseSimpleHandsWatcher.getValue();e===0&&(l==null||l.forEach(g=>{this.boomCore.customMessage(JSON.stringify(s),g.userId)}),d==null||d.forEach(g=>{this.boomCore.customMessage(JSON.stringify(s),g.userId)})),e===1&&(l==null||l.forEach(g=>{this.boomCore.customMessage(JSON.stringify(s),g.userId)})),e===2&&(d==null||d.forEach(g=>{this.boomCore.customMessage(JSON.stringify(s),g.userId)})),e===3&&(p==null||p.forEach(g=>{this.boomCore.customMessage(JSON.stringify(s),g.userId)}))}}catch(l){return Promise.reject(new P(1e3,"boomCore.sendMessage\u53D1\u751F\u9519\u8BEF"))}})}updateCustomStats(e,t=!1){return c(this,null,function*(){yield this.boomCore.updateCustomStats(e,t).catch(r=>Promise.reject((0,b.updateCustomStatsError)(`${JSON.stringify(e)} - ${JSON.stringify(r)}`)))})}sendChatNotice(e,t,r){return c(this,null,function*(){yield this.updateCustomStats({chatNotice:e,chatNoticeRich:t,showTipNotice:r}).catch(s=>s)})}giveLikeEnable(e){return c(this,null,function*(){yield this.updateCustomStats({giveLikeEnable:e}).catch(t=>t)})}changeAutoMute(e){return c(this,null,function*(){return this.updateCustomStats({autoMute:e})})}allUserReceiveJoinLeaveMessages(e){return c(this,null,function*(){return this.updateCustomStats({allUserReceiveJoinLeaveMessages:e})})}userJoinMasterVoice(e){return c(this,null,function*(){return this.updateCustomStats({userJoinMasterVoice:e})})}userGiveLike(e){return c(this,null,function*(){var o,a;let t=new Date().getTime(),r={domain:"room-control",method:"give-like",params:{stream:{user:this.userVM.localUser.userId,avatar:this.userVM.localUser.avatar,sendTime:t,nickname:this.userVM.localUser.nickName,type:e||1}}},s=this.userVM.getLocalUser();try{yield this.boomCore.customMessage(JSON.stringify(r),void 0),this.giveLikeList.push({userId:(o=this.room)==null?void 0:o.getLocalParticipant().userId,nickName:(a=this.room)==null?void 0:a.getLocalParticipant().nickName,time:new Date().getTime(),type:e}),this.giveLikeListWatcher.next(this.giveLikeList)}catch(n){throw m(n,T,s==null?void 0:s.userId),new P(4005,"\u7528\u6237\u70B9\u8D5E==>sendMessage\u51FA\u9519")}})}chatEnable(e){return c(this,null,function*(){yield this.updateCustomStats({chatEnable:e}).catch(t=>t)})}joinAudioEnable(e){return c(this,null,function*(){yield this.updateCustomStats({joinAudioEnable:e}).catch(t=>t)})}joinVideoEnable(e){return c(this,null,function*(){yield this.updateCustomStats({joinVideoEnable:e}).catch(t=>t)})}userListEnable(e){return c(this,null,function*(){yield this.updateCustomStats({userListEnable:e}).catch(t=>t)})}audioEnable(e){return c(this,null,function*(){yield this.updateCustomStats({audioEnable:e}).catch(t=>t)})}videoEnable(e){return c(this,null,function*(){yield this.updateCustomStats({videoEnable:e}).catch(t=>t)})}modifyNameEnable(e){return c(this,null,function*(){yield this.updateCustomStats({modifyNameEnable:e}).catch(t=>t)})}backgroundAIEnable(e){return c(this,null,function*(){yield this.updateCustomStats({backgroundAIEnable:e}).catch(t=>t)})}forceOpenUserCamera(e){return c(this,null,function*(){yield this.updateCustomStats({forceOpenUserCamera:e}).catch(t=>t)})}forceOpenUserMic(e){return c(this,null,function*(){yield this.updateCustomStats({forceOpenUserMic:e}).catch(t=>t)})}joinCueVoice(e){return c(this,null,function*(){yield this.updateCustomStats({joinCueVoice:e}).catch(t=>t)})}recordEnable(e){return c(this,null,function*(){yield this.updateCustomStats({recordEnable:e}).catch(t=>t)})}raiseHandEnable(e){return c(this,null,function*(){yield this.updateCustomStats({raiseHandEnable:e}).catch(t=>t)})}joinMicrophoneDisable(e){return c(this,null,function*(){yield this.updateCustomStats({joinMicrophoneDisable:e}).catch(t=>t)})}joinCameraDisable(e){return c(this,null,function*(){yield this.updateCustomStats({joinCameraDisable:e}).catch(t=>t)})}changeFileUpdateModelPermission(e){return c(this,null,function*(){yield this.updateCustomStats({fileUpdateModel:e}).catch(t=>t)})}changeFileUpdateLookPermission(e){return c(this,null,function*(){yield this.updateCustomStats({fileUpdateLook:e}).catch(t=>t)})}changeFileUpdateDownPermission(e){return c(this,null,function*(){yield this.updateCustomStats({fileUpdateDown:e}).catch(t=>t)})}changeFileUpdateEditPermission(e){return c(this,null,function*(){yield this.updateCustomStats({fileUpdateEdit:e}).catch(t=>t)})}changeScreenShareModelPermission(e){return c(this,null,function*(){yield this.updateCustomStats({screenShareModel:e}).catch(t=>t)})}changeOnlyOnePersonSharePermission(e){return c(this,null,function*(){yield this.updateCustomStats({onlyOnePersonShare:e}).catch(t=>t)})}setForceOnUser(e){return c(this,null,function*(){yield this.updateCustomStats({forceOn:{user:e}}).catch(t=>t)})}updateHostLayout(e,t=!1){return c(this,null,function*(){if(!this.userVM.checkLocalHasMaster())u("\u60A8\u4E0D\u662F\u4E3B\u6301\u4EBA\uFF0C\u6CA1\u6709\u8BE5\u4E0A\u62A5\u6743\u9650",T);else return this.updateCustomStats({from:{fromTag:"masterId"},hostLayout:e},t)})}checkDevices(e){return c(this,null,function*(){let t={domain:"user-control",method:"check-devices",params:{fromUserId:this.boomCore.getLocalParticipant().getID()}};this.sendMessageWithMaster(t,e).catch(r=>Promise.reject((0,b.BmCheckDeviceError)(`\u68C0\u6D4B\u5BF9\u65B9\u8BBE\u5907send-message\u53D1\u751F\u9519\u8BEF: ${r}`)))})}resp2CheckDevices(e,t){return c(this,null,function*(){let r={domain:"user-control",method:"resp-to-check-devices",params:Te(L({},e),{fromUserId:this.boomCore.getLocalParticipant().getID()})};if(!t)return Promise.reject((0,b.BmCheckDeviceError)(`\u54CD\u5E94\u8BBE\u5907\u68C0\u6D4B: uid: ${t} \u672A\u627E\u5230\u7528\u6237`));try{yield this.boomCore.customMessage(JSON.stringify(r),t)}catch(s){return Promise.reject((0,b.BmCheckDeviceError)(`\u54CD\u5E94\u54CD\u5E94\u8BBE\u5907\u68C0\u6D4Bsend-message\u53D1\u751F\u9519\u8BEF ${s}`))}})}changeRemoteVideoProfile(e,t){return c(this,null,function*(){let r={domain:"user-control",method:"change-video-profile",params:Te(L({},e),{fromUserId:this.boomCore.getLocalParticipant().getID()})};this.sendMessageWithMaster(r,t).catch(s=>Promise.reject((0,b.BmChangeVideoProfileError)(`\u8C03\u8282\u5BF9\u65B9\u7684\u89C6\u9891\u5206\u8FA8\u7387send-message\u53D1\u751F\u9519\u8BEF: ${s}`)))})}resp2ChangeRemoteVideoProfile(e,t,r){return c(this,null,function*(){let s={domain:"user-control",method:"resp-to-change-video-profile",params:{status:e,profile:r,fromUserId:this.boomCore.getLocalParticipant().getID()}};if(!t)return Promise.reject((0,b.BmChangeVideoProfileError)(`\u54CD\u5E94\u8C03\u8282\u89C6\u9891\u5206\u8FA8\u7387: uid: ${t} \u672A\u627E\u5230\u7528\u6237`));try{yield this.boomCore.customMessage(JSON.stringify(s),t)}catch(o){return Promise.reject((0,b.BmChangeVideoProfileError)(`\u54CD\u5E94\u8C03\u8282\u89C6\u9891\u5206\u8FA8\u7387send-message\u53D1\u751F\u9519\u8BEF ${o}`))}})}changeRemoteAudioProfile(e,t){return c(this,null,function*(){let r={domain:"user-control",method:"change-audio-profile",params:{microphoneDevice:e.microphoneDevice,speakerDevice:e.speakerDevice,echoCancellation:e.echoCancellation,noiseSuppression:e.noiseSuppression,autoGainControl:e.autoGainControl,speakerVolume:e.speakerVolume,microVolume:e.microVolume,fromUserId:this.boomCore.getLocalParticipant().getID()}};this.sendMessageWithMaster(r,t).catch(s=>Promise.reject((0,b.BmChangeAudioProfileError)(`\u8C03\u8282\u97F3\u9891send-message\u53D1\u751F\u9519\u8BEF ${JSON.stringify(s)}`)))})}resp2ChangeRemoteAudioProfile(e,t){return c(this,null,function*(){let r={domain:"user-control",method:"resp-to-change-audio-profile",params:{status:e,fromUserId:this.boomCore.getLocalParticipant().getID()}};if(!t)return Promise.reject((0,b.BmChangeAudioProfileError)(`\u54CD\u5E94\u8C03\u8282\u97F3\u9891: uid: ${t} \u672A\u627E\u5230\u7528\u6237`));try{yield this.boomCore.customMessage(JSON.stringify(r),t)}catch(s){return Promise.reject((0,b.BmChangeAudioProfileError)(`\u54CD\u5E94\u8C03\u8282\u97F3\u9891send-message\u53D1\u751F\u9519\u8BEF ${s}`))}})}};var ht=require("rxjs");var Wr=require("lodash-es");var He=class{constructor(e,t,r){this.messageList=[];this.hasDangerMessageWatcher=new ht.Subject;this.notificationMessageList=(0,Wr.debounce)(()=>{this.messageListWatcher.next(this.messageList)},500);this.boomCore=e,this.userVM=t,this.bmRoom=r,this.messageListWatcher=new ht.BehaviorSubject(this.messageList)}sendMessage(e,t,r){return c(this,null,function*(){let s=e.replace(/(^\s*)|(\s*$)/g,""),o=new Date().getTime(),a={domain:"room-control",method:"send-talk",params:{stream:{user:this.userVM.localUser.userId,avatar:this.userVM.localUser.avatar,sendTime:o,nickname:this.userVM.localUser.nickName},status:s}},n=this.userVM.getLocalUser();try{let l=!1,d,p=r;p||(yield this.boomCore.sendMessage(JSON.stringify(a),t).then(S=>{d=S.seq}).catch(S=>{A("sendmessage \u51FA\u9519","",n==null?void 0:n.userId,[S]),S&&S.code===39&&(l=!0,this.hasDangerMessageWatcher.next(!0))}));let g=new V({userId:n==null?void 0:n.userId,message:s,isLocal:n==null?void 0:n.isLocal,avatar:n==null?void 0:n.avatar,nickName:n==null?void 0:n.nickName,sendTime:o,to:t,isDanger:l,seq:d,failed:p});return this.addMessage(g,!1),p?Promise.reject(g):Promise.resolve()}catch(l){throw m(l,T,n==null?void 0:n.userId),new P(4005,"\u53D1\u9001\u804A\u5929\u6D88\u606F==>sendMessage\u51FA\u9519")}})}addMessage(e,t){if(!(t&&!this.bmRoom.participantNotice)){if(this.messageList.length==0||e.timeStamp-this.messageList[this.messageList.length-1].timeStamp>=Yt){let r=new V({isMeetingNotice:!0,message:""});this.messageList.push(r)}this.messageList.push(e),this.notificationMessageList()}}updateMessageListWatcher(e){this.messageList=e,this.messageListWatcher.next(this.messageList)}getHistoryMessage(){return c(this,null,function*(){let e=yield this.boomCore.getMessages(0,this.boomCore.getMsgSeq()),t=[];return e.items.forEach(r=>{if(r.private||r.to||r.msg.length==0||r.msg.indexOf("{")==-1)return!1;let s=JSON.parse(r.msg);if(s.method!="send-talk")return!1;let o=r.seq,a=s.params,n=a.stream.user?a.stream.user:r.userId,l={nickName:a.stream.nickname,content:a.status,timeStamp:new Date().getTime(),userId:n},d=new V({userId:n,message:a.status,nickName:a.stream.nickname,isLocal:n==this.userVM.localUser.userId,avatar:a.stream.avatar,sendTime:a.stream.sendTime,seq:o});t.push(d)}),Promise.resolve(t)})}};var H=require("rxjs");var $r=require("@hysc/core");var Be=class{constructor(e,t){this.user=e,this.stream=t}getID(){return this.stream.getStreamId()}getUser(){return this.user}};var Ae=require("lodash-es");function Hr(i,e){return 16|~~i<<1|~~e}function Gr(i,e){return 12|~~i<<1|~~e}function Fr(i,e){return 8|~~i<<1|~~e}function jr(i,e){return 4|~~i<<1|~~e}function Jr(){return Date.now()}function pt(){let i=Jr();return function(){return Jr()-i}}var oe=`.streammodel${Math.random()}`,Ge=class{constructor(e,t){this.streamType=3;this.pullFailedNum=0;this._video_enable=!1;this._audio_enable=!1;this.videoEnableWatcher=new H.BehaviorSubject(this._video_enable);this.audioEnableWatcher=new H.BehaviorSubject(this._audio_enable);this.streamUpdateWatcher=new H.Subject;this.isSubScribedWatcher=new H.Subject;this.playStateChangeWatcher=new H.Subject;this.noContainerWatcher=new H.Subject;this.noBigContainerWatcher=new H.Subject;this.audioLevelWatcher=new H.Subject;this.isCurrentDisplay=!1;this.isDisplay=!1;this.isDisplayObserve=new H.Subject;this.isInBig=!1;this.isInBigObserve=new H.Subject;this._hasPulled=!1;this.playerId="";this.shouldPull=!1;this.smallPlayFailed=0;this._pulledStreamType="small";this.pulledStreamGoal="small";this.bigPlayerId="";this.isPlayingBig=!1;this.muted=!1;this.checkVideoTimer=null;this.checkCount=0;this.checkFailedCount=0;this.sortNum=-1;this.handleDisplayChange=e=>{var t;this.isDisplay!==e&&(this.isDisplay=e,(t=this.stream)==null||t.stop(),this.isDisplay||(this.checkVideoTimer&&clearTimeout(this.checkVideoTimer),this.checkVideoTimer=null,this.checkCount=0,this.pulledStreamType="small"),this.sendMessage2Room())};this.onPlayerStateChange=e=>{var t,r;e.type==="error"&&e.reason&&e.reason.name==="NotAllowedError"&&(u("\u64AD\u653E\u5931\u8D25, \u9700\u8981\u8C03\u7528 resume \u65B9\u6CD5"),this.playStateChangeWatcher.next(this)),(e.state==="PAUSED"||e.reason==="pause")&&(this.player&&((t=this.player)==null||t.resume()),(r=this.stream)==null||r.resume())};this.handleStreamConnectError=()=>{u("\u6D41\u51FA\u73B0\u7684connect-error userId","",this.userId,["streamId ==>",this.streamId,"nickname =>",this.nickname,"isLocal => ",this.isLocal]),this.isLocal?f.emitter.emit(K,{stream:this,isLocal:!0}):f.emitter.emit(K,{stream:this,isLocal:!1})};this.bindElement=e=>{this.playerId=e,!(!this.isLocal&&(!this.stream||!this.stream.isSubscribed()))&&this.emitBindElement()};this.bindBigElement=e=>{this.bigPlayerId=e,!(!this.isLocal&&(!this.stream||!this.stream.isSubscribed()))&&this.emitBindBigElement()};this.sendMessage2Room=(0,Ae.debounce)(()=>{f.emitter.emit(ce,{stream:this})},100);this.emitBindElement=(0,Ae.debounce)(()=>{f.emitter.emit(de,{stream:this})},50);this.emitBindBigElement=(0,Ae.debounce)(()=>{f.emitter.emit(ge,{stream:this})},50);this.currentIsPlaying=e=>{let t=document.getElementById(e);if(!t)return 0;let r,s,o=0,a=Array.from(t.children);return r=a.length>0,s=a.length,a.forEach(n=>{n.children.length===0&&(o+=1,n.style.display="none",t.removeChild(n))}),r&&s>o?2:1};this.play=(e=!1)=>c(this,null,function*(){var r,s,o;if(!this.playerId){A(`no playerId, do not play :${this.nickname} - ${this.userId} - ${this.streamId}`);return}let t=this.stream;if(t){if(!this.isLocal&&!t.isSubscribed())return;let a=pt();if(this.isDisplay&&this.videoEnable){if(e){try{t.stop()}catch(l){}yield t.play(this.playerId,{backgroundColor:"#202020",fit:"contain",audio:!Fe}),(r=f.emitter)==null||r.emit(J,{uid:this.userId}),u(`\u64AD\u653E\u8017\u65F6: ${a()}`,"",this.userId);return}let n=this.currentIsPlaying(this.playerId);if(n===0)A("\u627E\u4E0D\u5230\u64AD\u653E\u5668\u5BB9\u5668","stream play",this.userId,["\u6D41 id =>",this.streamId,"nickname =>",this.nickname,"playerId =>",this.playerId]),this.playerId||f.emitter.emit(ee,{type:this.isShare?"share":"normal",id:this.userId,container:"small"});else if(n===1)try{u("\u8FDC\u7AEF\u6D41\u5F00\u59CB\u64AD\u653E","",this.userId),yield t.play(this.playerId,{backgroundColor:"#202020",fit:"contain",audio:!Fe}),(s=f.emitter)==null||s.emit(J,{uid:this.userId}),u("\u8FDC\u7AEF\u6D41\u64AD\u653E\u7ED3\u675F",this.userId,this.streamId,[this.nickname]),u(`\u64AD\u653E\u8017\u65F6: ${a()}`,"",this.userId),this.smallPlayFailed=0,this.checkSmallVideo()}catch(l){t.stop(),setTimeout(()=>{m("\u64AD\u653E\u5C0F\u6D41\u5931\u8D25, \u5C1D\u8BD5\u91CD\u65B0\u64AD\u653E","\u64AD\u653E",this.userId,[this.streamId,this.stream,"error => ",JSON.stringify(l)]),this.play()},2*1e3)}}else try{(o=this.stream)==null||o.stop()}catch(n){}}});this.playInBig=(e=!1)=>c(this,null,function*(){var r,s,o,a;if(!this.bigPlayerId){A(`no bigPlayerId, do not play in big :${this.nickname} - ${this.userId} - ${this.streamId}`);return}let t=this.stream;if(t){if(!this.isLocal&&!t.isSubscribed())return;if(this.isInBig&&this.videoEnable&&this.bigPlayerId){let n=pt();if(e){this.initBigPlayer(),yield(r=this.player)==null?void 0:r.play(t),(s=f.emitter)==null||s.emit(J,{uid:this.userId}),u(`\u5927\u6D41\u64AD\u653E\u8017\u65F6: ${n()}`,"",this.userId);return}let l=this.currentIsPlaying(this.bigPlayerId);l===0?(A("\u627E\u4E0D\u5230 bigPlayerId","\u5927\u6D41\u64AD\u653E",this.userId,["\u6D41 id =>",this.streamId]),this.bigPlayerId||f.emitter.emit(ee,{type:this.isShare?"share":"normal",id:this.userId,container:"big"})):l===1&&(u("\u8FDC\u7AEF\u6D41\u5927\u6D41\u5F00\u59CB\u64AD\u653E","",this.userId),this.initBigPlayer(),this.player&&(yield this.player.play(t),(o=f.emitter)==null||o.emit(J,{uid:this.userId}),this.isPlayingBig=!0,this.checkBigVideo()),u("\u8FDC\u7AEF\u6D41\u5927\u6D41\u64AD\u653E\u7ED3\u675F",this.userId,this.streamId,[this.nickname]),u(`\u5927\u6D41\u64AD\u653E\u8017\u65F6: ${n()}`,"",this.userId))}else(a=this.player)==null||a.destroy(),this.player=null,this.isPlayingBig=!1}});this.collectAudioLevel=()=>{this.stream?(this.stream.off("audio-level"+oe,this.handleAudioLevel),this.stream.on("audio-level"+oe,this.handleAudioLevel)):A("collection audio level but not have brtc stream")};this.handleAudioLevel=e=>{this.audioLevelWatcher.next(e)};this.checkSmallVideo=()=>c(this,null,function*(){if(this.videoEnable&&this.stream&&!this.isShare&&!!document.getElementById(this.playerId)){let t=`video_${this.stream.getStreamId()}`;if(!!document.getElementById(t)){this.checkVideoDecodeFrame(t);return}else m(`stream is display, but no video element, should replay now: ${this.smallPlayFailed}`),this.smallPlayFailed<3&&(this.smallPlayFailed+=1,yield Y(1e3),this.stream.stop(),yield this.play())}});this.checkBigVideo=(0,Ae.debounce)(()=>{var e;if(this.videoEnable&&this.stream){let t=`video_${this.stream.getStreamId()}_big`;if(!this.isShare&&this.isDisplay&&this.playerId){let r=!!document.getElementById(t);if(this.isInBig)if(r){this.checkVideoDecodeFrame(t);return}else m("stream is playing in big, but no video element, replay now"),(e=this.player)==null||e.destroy(),this.playInBig()}this.isShare&&this.isInBig&&this.bigPlayerId&&this.checkVideoDecodeFrame(t)}},2e3);this.checkStreamIsPlaying=(0,Ae.debounce)(()=>{if(this.isDisplay&&this.videoEnable){if(!this.stream||!document.getElementById(this.playerId))return;this.currentIsPlaying(this.playerId)===2||(m(`${this.userId} - ${this.nickname}: current is ${this.isDisplay}, but there is no player, try play again`),this.play())}},1e3);this.user=e,this.updateUser(e),this._stream=t,this.isDisplayObserve.subscribe(r=>{this.handleDisplayChange(r)}),this.isInBigObserve.subscribe(r=>{this.handleIsInBig(r)}),this.updateSortNum(!1)}get hasPulled(){return this._hasPulled}set hasPulled(e){this._hasPulled=e}get pulledStreamType(){return this._pulledStreamType}set pulledStreamType(e){this._pulledStreamType=e}get uuid(){return this.isShare?`${this.userId}_share`:this.userId}get isAudience(){return this.user.isAudience}get canShow(){return!this.isAudience}changeMute(e){this.muted!==e&&(this.muted=e,this.handleSpeakerChange())}handleSpeakerChange(){var e,t;this.isLocal||(this.muted?(e=this.stream)==null||e.setAudioVolume(0):(t=this.stream)==null||t.setAudioVolume(1))}get isToupingma(){return this.user.isToupingma}get isMixer(){return this.user.isMixer}get isSignal(){return this.user.isSignal}genReceiveSubMsg(){let e=null;return this.isDisplay?e={audio:!0,video:!0,streamType:"small"}:e={audio:!0,video:!1,streamType:"small"},e}handleIsInBig(e){this.isInBig!==e&&(this.isInBig=e,u("isInBig change","",this.userId,["streamId =>",this.streamId,"isInBig => ",e]),this.isInBig?this.pulledStreamGoal="big":this.pulledStreamGoal="small",this.sendMessage2Room(),this.isShare&&(this.isInBig||(this.checkVideoTimer&&clearTimeout(this.checkVideoTimer),this.checkVideoTimer=null,this.checkCount=0)))}setVideoEnable(e){this._video_enable!==e&&(this._video_enable=e,this.videoEnableWatcher.next(e))}setAudioEnable(e){this._audio_enable!==e&&(this._audio_enable=e,this.audioEnableWatcher.next(e))}updateStream(e,t=!0,r){if(this._stream&&this._stream.off(oe),this._stream=e,e){let s=e.getVideoOn(),o=e.getAudioOn();u("\u66F4\u65B0\u7528\u6237\u7684\u6D41","updateStream",e==null?void 0:e.getUserId(),["nickname =>",this.nickname,"audioOn",o,"videoOn",s,"streamId",e.getStreamId()]),o&&(this.isShare||r.addToDetector(new Be(this.user,e)),this.collectAudioLevel()),e.on("player-state-changed"+oe,this.onPlayerStateChange),e.on("connect-error"+oe,this.handleStreamConnectError),e.on("stream-connection-error"+oe,this.handleStreamConnectError),!this.isLocal&&t&&this.sendMessage2Room()}else this.hasPulled=!1,this.pulledStreamType="small",this.streamType=3}updateBloudStream(e,t,r=!1){var a,n,l,d,p,g;let s=!1,o=!1;if(e){if(this.bloudStream={audio:e.audio,video:e.video,isScreen:e.isScreen},e.customInfo&&((!this.bloudStream.customInfo||((a=this.bloudStream.customInfo)==null?void 0:a.volume)!==e.customInfo.volume)&&(Number.isNaN(e.customInfo.volume)||this.setRemoteAudioLevel(e.customInfo.volume)),this.bloudStream.customInfo=e.customInfo),this.stream&&(this.bloudStream.audio?this.isShare||(t.addToDetector(new Be(this.user,this.stream)),this.collectAudioLevel()):t.removeFromDetector(this.stream.getStreamId())),this.bloudStream.video!==this._video_enable&&(s=!0),this.bloudStream.audio!=this._audio_enable&&(o=!0),this.setVideoEnable(this.bloudStream.video),this.setAudioEnable(this.bloudStream.audio),this.isLocal&&(this.isDisplay&&this.play(),this.isInBig&&this.playInBig()),r){try{(n=this.stream)==null||n.destroy()}catch(S){}(l=this.player)==null||l.destroy(),this.stream&&((d=t.room.audioPlayer)==null||d.removeStream(this.stream)),this.updateStream(void 0,!1,t),this._stream=void 0}o&&!this.audioEnable&&this.stream&&((p=t.room.audioPlayer)==null||p.removeStream(this.stream)),(this.bloudStream.audio||this.bloudStream&&this.isDisplay)&&(!this.stream||r?f.emitter.emit(Se,{id:this.userId,isWeb:this.isWeb,isScreen:this.isShare}):(this.isLocal||(!this.hasPulled||!this.stream.isSubscribed())&&this.sendMessage2Room(),s&&(this.isDisplay&&this.playerId&&this.emitBindElement(),this.isInBig&&this.bigPlayerId&&this.emitBindBigElement()),!this.isLocal&&o&&this.audioEnable&&this.stream.isSubscribed()&&f.getInstance().emit(ye,{stream:this})))}else this.bloudStream=void 0,this.setVideoEnable(!1),this.setAudioEnable(!1),(g=this.player)==null||g.destroy(),this.stream&&t.removeFromDetector(this.stream.getStreamId());this.updateSortNum(!0),this.streamUpdateWatcher.next(!0)}updateBloudCustomInfo(e){var t;this.bloudStream?((!this.bloudStream.customInfo||((t=this.bloudStream.customInfo)==null?void 0:t.volume)!==e.volume)&&(Number.isNaN(e.volume)||this.setRemoteAudioLevel(e.volume)),this.bloudStream.customInfo=e):m("updateBloudCustomInfo, but bloudStream is undefined","","",["userId =>",this.userId])}get streamId(){return this._stream?this._stream.getStreamId():this.userId}get bStreamId(){return this.isShare?`${this.userId}_screen`:this.userId}get userId(){return this.user.userId}get stream(){return this._stream}get isLocal(){return this.user.isLocal}get isShare(){var e,t,r;return this.stream?this.user.isWeb?(t=(e=this.stream)==null?void 0:e.getUserId().toString())==null?void 0:t.endsWith(k):!!(this.stream&&this.stream.getType&&this.stream.getType()==="assist"):!!((r=this.bloudStream)!=null&&r.isScreen)}get isWeb(){return this.user.isWeb}get audioEnable(){return this._audio_enable}get videoEnable(){return this._video_enable}get brtcPlayerId(){return`player_${this.stream.getStreamId()}`}get selfPlayerId(){return`player_${this.stream.getStreamId()}_big_container`}get nickname(){var e;return this.user.isToupingma?`${this.user.nickName}(\u7684\u6295\u5C4F)`:(e=this.streamId)!=null&&e.includes(k)?`${this.user.nickName}(\u7684\u5C4F\u5E55\u5171\u4EAB)`:this.user.nickName}get audioLevel(){var e;return((e=this._stream)==null?void 0:e.getAudioLevel())||0}getUser(){return this.user}setRemoteAudioLevel(e){if(this.isLocal)throw new Error("\u4E0D\u80FD\u8BBE\u7F6E\u672C\u5730\u6D41\u7684\u97F3\u91CF");f.emitter.emit(be,{streamId:this.streamId,volume:e})}getStats(){var e;return(e=this._stream)==null?void 0:e.getStats()}initBigPlayer(){try{if(this.bigPlayerId){let e=document.querySelector(`#${this.bigPlayerId}`);if(!e){console.error("\u64AD\u653E\u5927\u6D41\u5931\u8D25\uFF0C\u627E\u4E0D\u5230\u5927\u6D41\u5BB9\u5668",this.userId,this.streamId,this.bigPlayerId);return}this.player&&this.player.destroy(),this.player=null,this.player=new $r.Player(e,{fit:"contain"}),this.player.on("player-state-changed",t=>{var r;this.stream&&(u("big player state change","","",[JSON.stringify(t)]),t.type==="error"&&t.reason&&t.reason.name==="NotAllowedError"&&this.playStateChangeWatcher.next(this),t.state==="PAUSED"&&((r=this.player)==null||r.resume()))})}}catch(e){m("\u521D\u59CB\u5316\u5927\u7A97\u53E3\u7684\u64AD\u653E\u5668\u5931\u8D25",this.userId,this.streamId,e.message)}}stop(){var e;(e=this._stream)==null||e.stop()}destroy(){var e;(e=this._stream)==null||e.destroy()}isPlaying(){var e;return(e=this._stream)==null?void 0:e.isPlaying()}replay(){var e;return(e=this._stream)==null?void 0:e.replay()}resume(){var e,t;(e=this._stream)==null||e.resume(),(t=this.player)==null||t.resume()}hasAudio(){var e;return((e=this._stream)==null?void 0:e.hasAudio())||!1}hasVideo(){var e;return((e=this._stream)==null?void 0:e.hasVideo())||!1}updateUser(e){this.user=e;let t=this.user.userInfo.pos;if(!t){this.streamType=1;return}t.includes("web")||t.includes("pc")?this.streamType=0:t.includes("_toupingma")?this.streamType=2:this.streamType=1}updateSortNum(e=!0){let t=this.getSortNum();this.setSortNum(t,e)}setSortNum(e,t){this.sortNum!==e&&(this.sortNum=e,t&&(f.emitter.emit(fe,null),this.user.updateSortNum(!0)))}getSortNum(){return this.user.isMaster?Hr(this.audioEnable,this.videoEnable):this.user.isLocal?Gr(this.audioEnable,this.videoEnable):this.user.isManager?Fr(this.audioEnable,this.videoEnable):jr(this.audioEnable,this.videoEnable)}checkVideoDecodeFrame(e){let t=document.getElementById(e);if(this.checkVideoTimer&&clearTimeout(this.checkVideoTimer),!t){u("\u9ED1\u5E27\u68C0\u6D4B\u6CA1\u6709\u64AD\u653E\u5BB9\u5668",this.userId,"",["streamId =>",this.streamId,"isShare =>",this.isShare,"playerId =>",this.playerId,"bigPlayerId =>",this.bigPlayerId,"isDisplay => ",this.isDisplay,"isInbig =>",this.isInBig]),this.isShare&&this.isInBig&&this.bigPlayerId&&(A("share stream has no video player, retry play"),this.playInBig());return}this.checkVideoTimer=setTimeout(()=>{var s,o,a;let r=(t==null?void 0:t.getVideoPlaybackQuality)&&((s=t==null?void 0:t.getVideoPlaybackQuality())==null?void 0:s.totalVideoFrames)||0;if(t&&!t.getVideoPlaybackQuality){this.checkVideoTimer&&clearTimeout(this.checkVideoTimer);return}if(r>0){clearTimeout(this.checkVideoTimer),this.checkFailedCount=0;return}else{if(this.checkCount>10){if(m("\u68C0\u6D4B\u8D85\u8FC7\u4E86\u5341\u6B21\uFF0C\u8FD8\u6CA1\u6709\u89C6\u9891\u6D41\uFF0C\u9700\u8981\u91CD\u65B0\u62C9\u53D6","\u9ED1\u5E27\u68C0\u6D4B",this.userId,["streamId =>",this.streamId,"nickname =>",this.nickname,"videoContainer => ",e]),this.checkVideoTimer&&clearTimeout(this.checkVideoTimer),this.checkVideoTimer=null,this.checkCount=0,this.checkFailedCount+=1,this.checkFailedCount<=3){this.hasPulled=!1,this.pulledStreamType="small",(o=this._stream)==null||o.off(oe);try{(a=this._stream)==null||a.destroy()}catch(n){}this._stream=void 0,this.sendMessage2Room()}return}this.checkCount+=1,this.checkVideoDecodeFrame(e)}},200)}subscribeStream(){this.shouldPull=!0,f.emitter.emit(me,{stream:this})}unSubscribeStream(){this.shouldPull=!1,f.emitter.emit(he,{stream:this})}unAttach(e){var t,r,s,o;u("unattach stream play","",this.userId,["streamId =>",this.streamId,"nickname =>",this.nickname,"type =>",e]),e==="all"?((t=this.stream)==null||t.stop(),(r=this.player)==null||r.destroy(),this.playerId="",this.bigPlayerId=""):e==="big"?((s=this.player)==null||s.destroy(),this.bigPlayerId=""):e==="small"&&((o=this.stream)==null||o.stop(),this.playerId="")}};var w=require("rxjs"),wt=require("@hysc/utils");var zr=require("lodash-es");var B=require("@hysc/utils");function Qr(i){let e=null,t=i.videoElement,r=t.offsetWidth,s=t.offsetHeight;if(t.captureStream?e=t.captureStream():t.mozCaptureStream&&(e=t.mozCaptureStream()),e){let o=e.getVideoTracks()[0],a=e.getAudioTracks()[0];return{video:!!o,audio:!!a,videoSource:o,audioSource:a,width:r,height:s}}return null}function qr(i,e){try{let t=i.getVideoTracks()[0],r=i.getAudioTracks()[0];return{video:!!t,audio:!!r,videoSource:t,audioSource:r,width:e.width,height:e.height}}catch(t){return console.log("\u83B7\u53D6\u5171\u4EAB\u97F3\u9891\u53C2\u6570\u6709\u8BEF",t),null}}function Re(i){return i.split("_")[0]}var gt=`.streammuteevent${Math.random()}`,je=class i{constructor(){this.streamModels=new Map;this.streamModelsWatcher=new w.BehaviorSubject(i.filterStreamModels(this.sortStreamModels()));this.shareStreamModels=new Map;this.shareStreamModelsWatcher=new w.BehaviorSubject(Array.from(this.shareStreamModels.values()));this.localStreamErrorWatcher=new w.Subject;this.localModel=null;this.room=null;this.bloudStream=null;this.videoStream=null;this.audioStream=null;this.audioStats=!1;this.videoStats=!1;this.localIsShare=!1;this.isShareWatcher=new w.Subject;this.localShareCustomStats={};this._speaker_enable=!0;this.speakerEnableWatcher=new w.BehaviorSubject(this._speaker_enable);this.mixStreamUid=null;this.mixStreamModelWatcher=new w.BehaviorSubject(null);this.canvasTimer=null;this._isRecording=!1;this._slicingRecord=!1;this.isRecordingWatcher=new w.BehaviorSubject(this._isRecording);this._speaker=null;this._speakers=new Map;this.speakerWatcher=new w.BehaviorSubject(this._speaker);this.noContainerWatcher=new w.Subject;this.noBigContainerWatcher=new w.Subject;this.localStreamConnectErrorWatcher=new w.Subject;this.localShareError=new w.Subject;this.localShareEndedError=new w.Subject;this.shareBloudStateMap=new Map;this.streamPlayWatcher=new w.Subject;this.handleStreamPlay=e=>{this.streamPlayWatcher.next(e)};this.updateModelSort=(0,zr.debounce)(()=>{let e=this.sortStreamModels();this.streamModelsWatcher.next(i.filterStreamModels(e))},200,{maxWait:500});this.handleNoContainer=e=>{let{type:t,container:r,id:s}=e,o;t==="share"?o=this.shareStreamModels.get(s):o=this.streamModels.get(s),o&&(r==="small"?this.noContainerWatcher.next(o):this.noBigContainerWatcher.next(o))};this.getHTMLMediaStream=Qr;this.getMediaStream=qr;setTimeout(()=>{this.createCanvas(),this.canvasDisplay()},100),f.emitter.on(fe,this.updateModelSort),f.emitter.on(ee,this.handleNoContainer),f.emitter.on(J,this.handleStreamPlay)}get mixStreamModel(){return this.mixStreamUid?this.streamModels.get(this.mixStreamUid):null}static filterStreamModels(e){return e.filter(t=>!t.isToupingma).filter(t=>!Me.some(r=>t.userId.includes(r))).filter(t=>t.canShow)}initWithRoom(e){return this.room=e,this}setSpeakerEnable(e){var t;this._speaker_enable!==e&&((t=this.room.audioPlayer)==null||t.mute(!e),this._speaker_enable=e,this.speakerEnableWatcher.next(e))}getStreamModels(){return Array.from(this.streamModels.values())}getStreamModelByUId(e){return this.streamModels.get(e)}getShareStreamModelByUId(e){return this.shareStreamModels.get(e)}getLocalStreamModel(){return this.localModel}createStreamModel(e,t){let r=new Ge(e,void 0);return t&&r.updateStream(t,!0,this),r.isShare?(e.addStream(`${e.userId}${k}`,r),this.addShareStreamModel(r)):(e.addStream(e.userId,r),this.addStreamModel(r)),r.isMixer&&(this.mixStreamUid=r.userId,this.mixStreamModel&&this.mixStreamModelWatcher.next(this.mixStreamModel)),r}addStreamModel(e){e&&(e.isLocal?this.localModel||(this.localModel=e,this.streamModels.set(this.localModel.userId,this.localModel)):this.streamModels.set(e.userId,e))}addShareStreamModel(e){e&&(e.isLocal||(this.shareStreamModels.set(e.userId,e),this.shareStreamModelsWatcher.next(Array.from(this.shareStreamModels.values()))))}removeStreamModel(e){if(!e)return;let t=e.getUser();this.streamModels.delete(e.userId),t.removeStream(e.userId)}removeShareStreamModelByUId(e){var r,s,o,a;let t=this.shareStreamModels.get(e);if(t){try{(r=t.stream)==null||r.stop(),(s=t.stream)==null||s.destroy()}catch(n){}t.audioEnable&&t.stream&&((a=(o=this.room)==null?void 0:o.audioPlayer)==null||a.removeStream(t.stream)),this.removeShareStreamModel(t)}}removeShareStreamModel(e){if(!e)return;let t=e.getUser();this.shareStreamModels.delete(e.userId),t.removeStream(`${e.userId}${k}`),t.updateSortNum(!0),this.shareStreamModelsWatcher.next(Array.from(this.shareStreamModels.values()))}removeStreamModelByUId(e){var r,s,o;let t=this.getStreamModelByUId(e);if(t){if(t.stream){this.removeFromDetector(t.streamId);try{t.stream.stop(),t.stream.destroy()}catch(a){}}t.audioEnable&&(t.stream?(s=(r=this.room)==null?void 0:r.audioPlayer)==null||s.removeStream(t.stream):(o=this.room)==null||o.audioPlayer.removeStreamByUid(e)),this.removeStreamModel(t)}return t}remoteStreamPublished(e){let t=e.getStreamId(),r=e.getUserId().toString(),s=this.getStreamModelByUId(r),o;if(s||(o=Re(String(r)),s=this.getStreamModelByUId(o)),s){if(Z(e)){let a;if(o&&(a=this.shareStreamModels.get(o)),a){if(a.isLocal)return;a.hasPulled=!1,a.pulledStreamType="small",a.updateStream(e,!0,this),this.shareStreamModelsWatcher.next(Array.from(this.shareStreamModels.values()))}else{let n=this.createStreamModel(s.getUser(),e),l=e.getVideoOn(),d=e.getAudioOn(),p=this.shareBloudStateMap.get(s.userId);p?n.updateBloudStream({audio:p.audio,video:p.video,isScreen:!0,customInfo:p.customInfo},this):n.updateBloudStream({audio:d,video:l,isScreen:!0},this),n.streamType=2}}else s.hasPulled=!1,s.pulledStreamType="small",this.updateStreamModel(s,e);this.changeSingleStreamSpeaker(s).catch(a=>{m("\u8BBE\u7F6E\u5355\u80A1\u6D41\u7684\u626C\u58F0\u5668\u7684\u64AD\u653E\u51FA\u73B0\u4E86\u95EE\u9898","\u8BBE\u7F6E\u64AD\u653E\u97F3\u91CF",s==null?void 0:s.userId)})}else m("brtc\u6709\u4EBA\u63A8\u6D41\u4E86\uFF0C\u4F46\u662F\u627E\u4E0D\u5230\u5BF9\u5E94\u7684streamModel, \u627E\u4E0D\u5230\u5BF9\u5E94\u7684\u7528\u6237","",r,["streamId => ",t,"types =>",e.getType&&e.getType()])}remoteStreamUnpublished(e){var n,l,d;let t,r=e.getUserId().toString(),s=e.getStreamId(),o=!1;if(r.includes(k)){let p=Re(String(r));if(p==((l=(n=this.room)==null?void 0:n.getLocalParticipant())==null?void 0:l.userId)){u("\u672C\u5730\u7528\u6237\u53D6\u6D88\u5171\u4EAB\u5C4F\u5E55","\u53D6\u6D88\u5171\u4EAB\u5C4F\u5E55",r),this.localModel.getUser().removeStream(r);return}t=this.getShareStreamModelByUId(p),o=!0}else s.startsWith(Ze)||e.getType&&e.getType()==="assist"?(t=this.getShareStreamModelByUId(r),o=!0):t=this.getStreamModelByUId(r);if(this.removeFromDetector(s),this.removeFromRecorder(e),!t){m("brtc\u6709\u4EBA\u53D6\u6D88\u63A8\u6D41 \u4F46\u662F\u627E\u4E0D\u5230\u5BF9\u5E94\u7684streamModel","\u53D6\u6D88\u63A8\u6D41",r,[s]);return}let a=(d=t.stream)==null?void 0:d.getStreamId();if(a!==s){m("\u5F53\u524D\u53D6\u6D88\u63A8\u6D41\u7684\u548C\u5F53\u524D\u7ED1\u5B9A\u7684\u4E0D\u662F\u540C\u4E00\u80A1\u6D41","",r,["streamId =>",s,"streamModel.streamId",a]);return}if(t.hasPulled=!1,t.pulledStreamType="small",o||t.streamType===2){t.updateStream(void 0,!0,this),this.removeShareStreamModel(t);return}return t.updateStream(void 0,!0,this),t}sortStreamModels(){return Zt(Array.from(this.streamModels.values()))}updateStreamModel(e,t){e.updateStream(t,!0,this)}updateShareStreamModel(e,t){e.updateStream(t,!0,this)}setLocalVideoEnable(e,t){return c(this,null,function*(){var s;if(!((s=this.room)!=null&&s.networkState.brtc)||!this.room.netConnecting){m("\u65AD\u7F51\u671F\u95F4\u5F00\u672C\u5730\u6444\u50CF\u5934\uFF0C\u4E0D\u4E0E\u54CD\u5E94");return}if(!this.room.mediaPermission.camera)return Promise.reject((0,B.BMCameraNotAuthError)());let r=this.getLocalStreamModel();if(u(`\u5F00\u5173\u672C\u5730\u6444\u50CF\u5934\uFF0C \u72B6\u6001 => ${e}`,"\u672C\u5730\u7528\u6237",r==null?void 0:r.userId),r)if(e)if(r!=null&&r.stream){if(t)yield r.stream.replaceTrack(t).catch(a=>{m("\u7F8E\u989C videoTrack replace \u5931\u8D25","","",JSON.stringify(a))});else if(r.stream.getVideoTrack().constructor.name==="CanvasCaptureMediaStreamTrack"){let n=yield this.createVideoStream().catch(d=>Promise.reject(d)),l=yield r.stream.replaceTrack(n).then(()=>{u("replace video track success")}).catch(d=>(m("\u672C\u5730\u89C6\u9891\u6D41\u66F4\u6362\u89C6\u9891\u6D41\u5931\u8D25","","",JSON.stringify(d)),this.handleStreamUpdateFailed(),Promise.reject((0,B.BMOpenCameraError)())))}if(yield r.stream.unmuteVideo())u("brtc unmute video success");else return m("brtc unmuteVideo\u5931\u8D25"),this.handleStreamUpdateFailed(),Promise.reject((0,B.BMOpenCameraError)());yield this.bloudStream.setVideoEnabled(!0).then(()=>{r.updateStream(r.stream,!0,this),r.updateBloudStream({video:!0,audio:r.audioEnable,isScreen:!1},this),r.playInBig()}).catch(a=>{m("bloud unmuteVideo\u5931\u8D25","\u672C\u5730\u7528\u6237","",[JSON.stringify(a)]),this.handleStreamUpdateFailed()})}else yield this.createStreamAndPublish(!1,!0,r,t).catch(o=>{var a,n,l,d,p;return m("\u5F00\u542F\u672C\u5730\u6444\u50CF\u5934\u5931\u8D25","","",[JSON.stringify(o)]),(n=(a=this.localModel)==null?void 0:a.stream)==null||n.destroy(),(l=this.bloudStream)!=null&&l.published&&this.bloudStream.unpublish(),(d=this.localModel)==null||d.updateStream(void 0,!0,this),(p=this.localModel)==null||p.updateBloudStream(void 0,this),Promise.reject(o)});else r.stream&&(yield this.muteOrUnpublishStream("video",!0,r).catch(a=>(m("\u5173\u95ED\u672C\u5730\u6444\u50CF\u5934\u5931\u8D25","","",[a]),Promise.reject((0,B.BmSetLocalVideoEnable)(a)))))})}handleStreamUpdateFailed(){return c(this,null,function*(){m("brtc unmute stream failed, now unpublish"),yield this.unpublishStream()})}setLocalAudioEnable(e){return c(this,null,function*(){var r;if(!((r=this.room)!=null&&r.networkState.brtc)||!this.room.netConnecting){m("\u65AD\u7F51\u671F\u95F4\u5F00\u672C\u5730\u9EA6\u514B\u98CE\uFF0C\u4E0D\u4E0E\u54CD\u5E94");return}if(!this.room.mediaPermission.microphone)return Promise.reject((0,B.BMMicNotAuthError)());let t=this.getLocalStreamModel();if(u(`\u5F00\u5173\u672C\u5730\u9EA6\u514B\u98CE\uFF0C \u72B6\u6001 => ${e}`,"\u672C\u5730\u7528\u6237",t==null?void 0:t.userId),t)if(e){if(t!=null&&t.stream){let s=yield t.stream.unmuteAudio();if(u(`unmute local stream audio res : ${s}`),s)u("unmute audio success");else return m("brtc unmuteAudio\u5931\u8D25","\u672C\u5730\u7528\u6237",""),yield this.handleStreamUpdateFailed(),Promise.reject((0,B.BMOpenMicroError)());yield this.bloudStream.setAudioEnabled(!0).then(()=>{u("bloud stream set audio enable"),t.updateStream(t.stream,!1,this),t.updateBloudStream({audio:!0,video:t.videoEnable,isScreen:!1},this)}).catch(o=>{m("bloud unmuteAudio\u5931\u8D25","\u672C\u5730\u7528\u6237","",[JSON.stringify(o)]),this.handleStreamUpdateFailed()})}else yield this.createStreamAndPublish(!0,!1,t).catch(s=>{var o,a,n,l,d;return m("\u5F00\u542F\u672C\u5730\u9EA6\u514B\u98CE\u5931\u8D25","","",[s]),(a=(o=this.localModel)==null?void 0:o.stream)==null||a.destroy(),(n=this.bloudStream)!=null&&n.published&&this.bloudStream.unpublish(),(l=this.localModel)==null||l.updateStream(void 0,!0,this),(d=this.localModel)==null||d.updateBloudStream(void 0,this),Promise.reject(s)});t!=null&&t.stream&&this.addToRecorder(t==null?void 0:t.stream)}else{let s=t.stream;if(s){this.removeFromRecorder(s),this.removeFromDetector(s.getStreamId());try{yield this.muteOrUnpublishStream("audio",!0,t)}catch(o){return m("\u5173\u95ED\u672C\u5730\u9EA6\u514B\u98CE\u5931\u8D25","","",[JSON.stringify(o)]),Promise.reject((0,B.BmSetLocalAudioEnable)(o))}}}})}joinWithAudioAndAudio(e,t){return c(this,null,function*(){u("join with audio and video","join publish","",[e,t]);let r=this.getLocalStreamModel();r&&(yield this.createStreamAndPublish(e,t,r).catch(s=>{var o,a,n,l,d;return m("join create and publish failed","","",[JSON.stringify(s)]),(a=(o=this.localModel)==null?void 0:o.stream)==null||a.destroy(),(n=this.bloudStream)!=null&&n.published&&this.bloudStream.unpublish(),(l=this.localModel)==null||l.updateStream(void 0,!0,this),(d=this.localModel)==null||d.updateBloudStream(void 0,this),Promise.reject(s)}))})}changeSpeaker(e,t=!1){return c(this,null,function*(){var r,s;if(u("change speaker","","",[JSON.stringify(e)]),!e.deviceId)throw new wt.BoomError(1e3,"\u5207\u6362\u626C\u58F0\u5668\u5931\u8D25\uFF01,\u539F\u56E0: \u9009\u62E9\u7684\u8BBE\u5907\u6CA1\u6709deviceId"+(e==null?void 0:e.name));try{this.room.setSelectSpeakerDevice(e),(s=(r=this.room)==null?void 0:r.audioPlayer)==null||s.setDevice(e.deviceId,t)}catch(o){throw m("\u5207\u6362\u626C\u58F0\u5668\u5931\u8D25","","",["error",o==null?void 0:o.message,JSON.stringify(o)]),new wt.BoomError(1e3,"\u5207\u6362\u626C\u58F0\u5668\u5931\u8D25")}})}changeSingleStreamSpeaker(e){return c(this,null,function*(){let t=this.room.selectAudioOutputDevice;t&&(e.isLocal||e.stream&&(yield e.stream.setAudioOutput(t.deviceId)))})}changeAudioInput(e){return c(this,null,function*(){var r,s,o;u("change audio input device","","",[JSON.stringify(e)]);let t=(r=this.localModel)==null?void 0:r.stream;if((s=this.room)==null||s.setSelectAudioDevice(e),t)return((o=t.getAudioTrack())==null?void 0:o.readyState)==="ended"?(m("try to change audio input device but audio track is ended"),!1):(this.removeFromRecorder(t),yield t.switchDevice("audio",e.deviceId),this.addToRecorder(t),!0)})}changeVideoInput(e){return c(this,null,function*(){var r,s,o,a;u("change video input device","","",[JSON.stringify(e)]);let t=(r=this.localModel)==null?void 0:r.stream;if((s=this.room)==null||s.setSelectVideoDevice(e),t)return((o=t.getVideoTrack())==null?void 0:o.readyState)==="ended"?(m("try to change video input device but video track is ended"),!1):(yield t.switchDevice("video",e.deviceId),(a=this.localModel)!=null&&a.isDisplay&&this.localModel.isInBig&&this.localModel.playInBig(!0),!0)})}muteSpeaker(e){return c(this,null,function*(){u("\u9759\u97F3\u626C\u58F0\u5668 \u72B6\u6001 =>","","",["status =>",e]);try{this.setSpeakerEnable(e)}catch(t){return Promise.reject((0,B.BmSetLocalSpeakerEnable)(`\u5F00\u5173\u626C\u58F0\u5668\u5931\u8D25 ${e} error: ${JSON.stringify(t)}`))}})}createLocalAudioStream(){return c(this,null,function*(){var e;if(!this.room.mediaPermission.microphone){m("there is no microphone permission");return}yield this.room.initDevices(),this.room.audioDevices.length?((e=this.audioStream)==null||e.destroy(),this.audioStream=yield this.room.createSingleLocalStream({video:!1,audio:!0},this.localModel.userId).catch(t=>(m("create brtc stream error","","",[JSON.stringify(t)]),Promise.reject(t)))):m("there is no audio device exists")})}createStreamAndPublish(e,t,r,s){return c(this,null,function*(){var a,n,l,d,p,g,S,C;let o=i.getCanvasStream();if(yield this.room.initDevices(),t)(d=this.brtcStream)==null||d.destroy(),(p=this.room)!=null&&p.audioDevices.length||(m("\u5F53\u524D\u7535\u8111\u4E2D\u6CA1\u6709\u97F3\u9891\u8F93\u5165\u8BBE\u5907\uFF0C\u91CD\u65B0\u83B7\u53D6"),yield(g=this.room)==null?void 0:g.initDevices()),(S=this.room)!=null&&S.videoDevices.length||(m("\u5F53\u524D\u7535\u8111\u4E2D\u6CA1\u6709\u89C6\u9891\u8F93\u5165\u8BBE\u5907, \u91CD\u65B0\u83B7\u53D6"),yield(C=this.room)==null?void 0:C.initDevices()),this.room.audioDevices.length>0?this.brtcStream=yield this.room.createSingleLocalStream({video:!0,audio:this.room.mediaPermission.microphone},r.userId).catch(y=>(m("create brtc audio and video stream failed","","",[JSON.stringify(y)]),Promise.reject(y))):(m("\u6CA1\u6709\u97F3\u9891\u8F93\u5165\u8BBE\u5907\uFF0C\u53EA\u80FD\u521B\u5EFA\u89C6\u9891\u6D41"),this.brtcStream=yield this.room.createSingleLocalStream({video:!0,audio:!1},r.userId).catch(y=>(m("create brtc video stream failed","","",[JSON.stringify(y)]),Promise.reject(y))));else{let y=o.getVideoTracks()[0];this.audioStream||(this.audioStream=yield this.room.createSingleLocalStream({video:!1,audio:!0},r.userId).catch(U=>(m("create brtc stream error","","",[JSON.stringify(U)]),Promise.reject(U))));let I=(a=this.audioStream)==null?void 0:a.getAudioTrack();if(!I||I&&I.muted)throw(n=this.audioStream)==null||n.destroy(),this.audioStream=null,this.localStreamErrorWatcher.next("audio"),m("\u9EA6\u514B\u98CE\u8BBE\u5907\u4E0D\u53EF\u7528","","",["muted => ?",I==null?void 0:I.muted]),(0,B.getStreamError)("\u9EA6\u514B\u98CE");(l=this.brtcStream)==null||l.destroy(),this.brtcStream=yield this.room.createSingleLocalStream({video:!0,audio:!0,videoSource:y,audioSource:I},r.userId).catch(U=>Promise.reject(U))}this.brtcStream&&(t||(yield this.brtcStream.muteVideo()),e||(yield this.brtcStream.muteAudio()),s&&(yield this.brtcStream.replaceTrack(s).catch(y=>{m("\u7F8E\u989C videoTrack replace \u5931\u8D25","","",JSON.stringify(y))})),yield this.room.publish(this.brtcStream).catch(y=>{var I,U;return(I=this.brtcStream)==null||I.destroy(),(U=this.localModel)==null||U.updateBloudStream(void 0,this),Promise.reject(y)}),this.brtcStream.on("video-track-mute"+gt,this.muteHandler.bind(this,"video")),this.brtcStream.on("video-track-ended"+gt,this.muteHandler.bind(this,"video")),this.brtcStream.on("audio-track-mute"+gt,this.muteHandler.bind(this,"audio")),this.brtcStream.on("audio-track-ended"+gt,this.muteHandler.bind(this,"audio")),yield this.publishBloudStream(e,t))})}publishBloudStream(e,t){return c(this,null,function*(){var s;let r=this.localModel.userId;this.bloudStream=this.room.boomCore.creteBloudLocalStream({audio_enable:e,video_enable:t},r),yield this.bloudStream.publish({video_enable:t,audio_enable:e}),(s=this.localModel)==null||s.updateBloudStream({video:t,audio:e,isScreen:!1},this)})}muteHandler(e){let t=()=>c(this,null,function*(){var r,s,o,a,n,l,d,p,g;(r=this.localModel)!=null&&r.stream&&(yield(s=this.room)==null?void 0:s.boomCore.unpublish(this.localModel.stream).catch(S=>{m("brtc local stream has problem and unpublish failed","","",[String(S)])})),(a=(o=this.localModel)==null?void 0:o.stream)==null||a.destroy(),(n=this.audioStream)==null||n.destroy(),(l=this.videoStream)==null||l.destroy(),(d=this.brtcStream)==null||d.destroy(),this.brtcStream=void 0,this.audioStream=null,this.videoStream=null,(p=this.localModel)==null||p.updateStream(void 0,!0,this),yield this.bloudStream.unpublish(),this.bloudStream=null,(g=this.localModel)==null||g.updateBloudStream(void 0,this)});setTimeout(()=>c(this,null,function*(){var r,s,o,a,n,l,d,p,g,S,C,y,I,U,M,G,Q,q,Pe;if((r=this.localModel)!=null&&r.stream){let ae=(s=this.localModel)==null?void 0:s.videoEnable,ne=(o=this.localModel)==null?void 0:o.audioEnable;if(e==="video"){let j=(a=this.localModel.stream.getVideoTrack())==null?void 0:a.muted,N=(n=this.localModel.stream.getVideoTrack())==null?void 0:n.label,le=(l=this.localModel.stream.getVideoTrack())==null?void 0:l.enabled,Dt=(d=this.localModel.stream.getVideoTrack())==null?void 0:d.readyState,ti=Dt==="ended";if(u("brtc video track status","","",[j,le,Dt,N]),!ti&&!j&&le)return;u("video track has problem, now try recreate and publish"),m("brtc\u672C\u5730\u6D41\u51FA\u73B0\u5F02\u5E38\uFF0C\u9700\u8981\u91CD\u65B0\u63A8\u6D41\u5904\u7406","","",["videoEnable",ae,"audioEnable",ne,"type",e]),this.localStreamConnectErrorWatcher.next((0,B.BMStreamDisconnectedError)("\u6444\u50CF\u5934")),(p=this.localModel)!=null&&p.stream&&(yield(g=this.room)==null?void 0:g.boomCore.unpublish(this.localModel.stream).catch(St=>{m("brtc local stream has problem and unpublish failed","","",[String(St)])}),(S=this.localModel)==null||S.updateStream(void 0,!0,this),(y=(C=this.localModel)==null?void 0:C.stream)==null||y.destroy(),(I=this.localModel.player)==null||I.destroy(),(U=this.audioStream)==null||U.destroy(),(M=this.brtcStream)==null||M.destroy(),this.brtcStream=void 0,(G=this.videoStream)==null||G.destroy(),this.audioStream=null,this.videoStream=null),yield this.createStreamAndPublish(ne,ae,this.localModel).catch(St=>c(this,null,function*(){m("brtc video stream has problem and republish stream failed","","",[JSON.stringify(St)]),yield t(),this.localStreamConnectErrorWatcher.next((0,B.BmSyncStreamFailError)())}))}else{m("brtc\u672C\u5730\u6D41\u51FA\u73B0\u5F02\u5E38\uFF0C\u9700\u8981\u91CD\u65B0\u63A8\u6D41\u5904\u7406","","",["videoEnable",ae,"audioEnable",ne,"type",e]),this.localStreamConnectErrorWatcher.next((0,B.BMStreamDisconnectedError)("\u9EA6\u514B\u98CE")),(Q=this.audioStream)==null||Q.destroy(),(q=this.localModel.player)==null||q.destroy(),this.audioStream=null,this.audioStream=yield this.room.createPBSingleLocalStream({video:!1,audio:!0});let j=(Pe=this.audioStream)==null?void 0:Pe.getAudioTrack();j&&!j.muted?this.localModel.stream&&(yield this.localModel.stream.replaceTrack(j).catch(N=>{m("\u672C\u5730\u6D41\u51FA\u73B0\u5F02\u5E38, \u91CD\u65B0\u521B\u5EFAaudio stream replace \u5931\u8D25","\u672C\u5730\u6D41\u51FA\u73B0\u5F02\u5E38","",[JSON.stringify(N)]),this.localStreamConnectErrorWatcher.next((0,B.BmSyncStreamFailError)()),t()})):(m("recreate audio stream failed, now unpub"),this.localStreamConnectErrorWatcher.next((0,B.BmSyncStreamFailError)()),t())}}this.localStreamErrorWatcher.next(e)}),1e3)}unpublishStream(){return c(this,null,function*(){var t,r,s,o;u("unpublish stream");let e=this.getLocalStreamModel();if(e){let a=e.stream;a&&(yield(t=this.room)==null?void 0:t.unpublish(a).catch(n=>{m("brtc \u53D6\u6D88\u53D1\u5E03\u5931\u8D25","\u53D6\u6D88\u63A8\u6D41",e.userId,[JSON.stringify(n)])}));try{this.removeFromRecorder(a),a==null||a.destroy(),(r=this.videoStream)==null||r.destroy(),(s=this.audioStream)==null||s.destroy(),(o=this.brtcStream)==null||o.destroy(),this.videoStream=null,this.audioStream=null,this.brtcStream=void 0,e.updateStream(void 0,!0,this),yield this.bloudStream.unpublish().catch(n=>{m("bloud unpublish stream failed","bloud unpublish stream",e.userId,[JSON.stringify(n),n==null?void 0:n.code,n==null?void 0:n.message])}),e.updateBloudStream(void 0,this),this.bloudStream=null}catch(n){m("stream destroy failed","\u53D6\u6D88\u63A8\u6D41",e.userId,[JSON.stringify(n)])}}})}muteOrUnpublishStream(e,t,r){return c(this,null,function*(){var a;let s=r.stream,o=!0;if(e==="audio"?o=s.getVideoOn():e==="video"&&(o=s.getAudioOn()),o){if(e==="audio")(yield s.muteAudio())||m("brtc muteAudio\u5931\u8D25","\u5173\u95ED\u672C\u5730\u97F3\u9891","\u672C\u5730"),yield this.bloudStream.setAudioEnabled(!1).catch(l=>{m("bloud setAudioEnabled \u5931\u8D25","\u5173\u95ED\u672C\u5730\u97F3\u9891","\u672C\u5730",[JSON.stringify(l)])}),r.updateBloudStream({audio:!1,video:!0,isScreen:!1},this);else if(e==="video"){let l=i.getCanvasStream().getVideoTracks()[0];try{yield s.replaceTrack(l),yield s.muteVideo()}catch(d){m("\u5173\u95ED\u672C\u5730\u89C6\u9891\u5931\u8D25","\u5173\u95ED\u672C\u5730\u89C6\u9891","\u672C\u5730",[JSON.stringify(d)])}try{(a=this.videoStream)==null||a.destroy(),this.videoStream=null}catch(d){m("this.videoStream destroy failed")}yield this.bloudStream.setVideoEnabled(!1).catch(d=>{m("bloud setVideoEnabled \u5931\u8D25","\u5173\u95ED\u672C\u5730\u97F3\u9891","\u672C\u5730",[JSON.stringify(d)])}),r.updateBloudStream({video:!1,audio:!0,isScreen:!1},this)}}else yield this.unpublishStream()})}toggleShareScreen(e,t,r){return c(this,null,function*(){var o,a,n,l,d;u("\u5F00\u5173\u5171\u4EAB\u5C4F\u5E55","","\u5F00\u5173\u5171\u4EAB\u5C4F\u5E55",["stats => ",e]),!e&&((o=this.room)!=null&&o.boomCore.shareScreenStream)&&this.removeFromRecorder((a=this.room)==null?void 0:a.boomCore.shareScreenStream),e||(this.localShareCustomStats={});let s=(n=this.room)==null?void 0:n.voiceMode;return yield this.room.boomCore.toggleShareScreen(e,{audioHint:s},r).then(()=>{if(u("bmStreamVm toggleShareScreen success","\u5207\u6362\u5171\u4EAB\u5C4F\u5E55","",["enable =>",e]),e){let p=this.room.boomCore.shareScreenStream;p&&this.remoteStreamPublished(p)}else this.localModel.getUser().removeStream(`${this.localModel.userId}_screen`),this.localModel.getUser().updateSortNum(!0)}).catch(p=>(m("bmStreamVm toggleShareScreen error","\u5207\u6362\u5171\u4EAB\u5C4F\u5E55","",["enable =>",e]),Promise.reject(p))),e&&((l=this.room)!=null&&l.boomCore.shareScreenStream)&&this.addToRecorder((d=this.room)==null?void 0:d.boomCore.shareScreenStream),this.localIsShare=e,this.isShareWatcher.next(e),Promise.resolve(!0)})}setShareScreenContentHint(e){var t;(t=this.room)==null||t.boomCore.setShareScreenContentHint(e)}createCanvas(){let e=document.createElement("canvas");e.id="tarCanvas",e.style.width="1px",e.style.height="1px",e.style.position="absolute",e.style.bottom="0",document.body.appendChild(e)}canvasDisplay(){let e=document.getElementById("tarCanvas");if(e){e.width=640,e.height=360;let t=e.getContext("2d");t.fill(),t.beginPath(),t.fillStyle="rgb(0,0,0)",t.fillRect(0,0,e.width,e.height),this.canvasTimer&&clearTimeout(this.canvasTimer),this.canvasTimer=setTimeout(()=>{this.canvasDisplay()},1e3)}}static getCanvasStream(){return document.getElementById("tarCanvas").captureStream()}createVideoStream(){return c(this,null,function*(){var e;return yield this.room.initDevices(),(e=this.videoStream)==null||e.destroy(),this.videoStream=yield this.room.createPBSingleLocalStream({video:!0,audio:!1},this.localModel.userId).catch(t=>Promise.reject((0,B.BMCreateStreamError)("\u89C6\u9891"))),this.videoStream.getVideoTrack()})}startRecord(e){return c(this,null,function*(){var r;if(this._recorder)return;this._recorder=(r=this.room)==null?void 0:r.boomCore.createRecorder(e),this._recorder.on("track-ended",()=>{this.stopRecord(),u("record ended")}),this._recorder.on("started",()=>{u("record started.")});let t=!0;try{yield this._recorder.start(),this._isRecording=!0,this.isRecordingWatcher.next(!0),this.shareStreamModels.forEach(s=>{s.stream&&!s.stream.isLocalStream()&&s.stream.isSubscribed()&&this.addToRecorder(s.stream)}),this.streamModels.forEach(s=>{s.stream&&!s.stream.isLocalStream()&&s.stream.isSubscribed()&&this.addToRecorder(s.stream)})}catch(s){let o=this._recorder;this._recorder=void 0,this._isRecording=!1,this.isRecordingWatcher.next(!1),t=!1,yield o.stop()}return t})}addToRecorder(e){this._isRecording&&!this._slicingRecord&&(e.on("audio-track-ended",()=>{this.removeFromRecorder(e)}),this._recorder.addStream(e))}removeFromRecorder(e){this._isRecording&&!this._slicingRecord&&this._recorder.removeStream(e)}stopRecord(){return c(this,null,function*(){this._recorder&&(this._isRecording=!1,this.isRecordingWatcher.next(!1),yield this._recorder.stop(),this._recorder=void 0)})}sliceRecord(e){return c(this,null,function*(){var s;if(!this._isRecording)return;let t=this._recorder._opts;this._slicingRecord=!0;try{yield this._recorder.stop()}catch(o){m("stop record exception","","",[JSON.stringify(o)])}t.filename=e,this._recorder=(s=this.room)==null?void 0:s.boomCore.createRecorder(t),this._recorder.on("track-ended",()=>{this.stopRecord(),u("record ended.")}),this._recorder.on("started",()=>{u("record started.")});let r=!0;try{yield this._recorder.start(),this._slicingRecord=!1,this.shareStreamModels.forEach(o=>{o.stream&&!o.stream.isLocalStream()&&o.stream.isSubscribed()&&this.addToRecorder(o.stream)}),this.streamModels.forEach(o=>{o.stream&&!o.stream.isLocalStream()&&o.stream.isSubscribed()&&this.addToRecorder(o.stream)})}catch(o){let a=this._recorder;this._recorder=void 0,this._isRecording=!1,this.isRecordingWatcher.next(!1),this._slicingRecord=!1,r=!1,yield a.stop()}return r})}startSpeakerDetector(){var e;this._speaker=null,this._speakerDetector=(e=this.room)==null?void 0:e.boomCore.createSpeakerDetector(),this._speakerDetector.on("speaker",t=>{var s,o,a;let r=!0;t?(((s=this._speaker)==null?void 0:s.getUserInfo().userId)===t.getUser().userId&&(r=!1),this._speaker=t.getUser()):(this._speaker||(r=!1),this._speaker=null),r&&(u("\u5F53\u524D\u8BB2\u8BDD\u4EBA","\u8BED\u97F3\u6FC0\u52B1",(o=this._speaker)==null?void 0:o.userId,["nickname => ",(a=this._speaker)==null?void 0:a.nickname]),this.speakerWatcher.next(this._speaker))})}addToDetector(e){this._speakers.set(e.getID(),e),this._speakerDetector&&this._speakerDetector.addStream(e)}removeFromDetector(e){let t=this._speakers.get(e);this._speakerDetector&&t&&(this._speakers.delete(e),this._speakerDetector.removeStream(t))}clearDetector(){let e=[];this._speakers.forEach((t,r)=>{e.push(r)}),e.forEach(t=>{this.removeFromDetector(t)})}shareCustomMedia(e,t){return c(this,null,function*(){var r;return(r=this.room)==null?void 0:r.boomCore.shareHTMLMedia(e,t)})}updateBloudStreamCustomStats(e,t,r){return c(this,null,function*(){var o,a;u("update bloud stream custom stats","",e,[t,JSON.stringify(r)]);let s=yield(o=this.room)==null?void 0:o.boomCore.updateStream(e,t,r);((a=this.localModel)==null?void 0:a.userId)===e&&t.startsWith(e)&&t.endsWith("_screen")&&s.customInfo&&(this.localShareCustomStats=s.customInfo)})}checkStreamStats(e){u("check stream stats","","",[e]),this.streamModels.size<100&&this.streamModels.forEach(t=>{t.checkStreamIsPlaying()})}clearCache(){var e,t,r,s,o;try{(t=(e=this.localModel)==null?void 0:e.stream)==null||t.destroy(),(r=this.videoStream)==null||r.destroy(),(s=this.audioStream)==null||s.destroy()}catch(a){}this.canvasTimer&&clearTimeout(this.canvasTimer),this.canvasTimer=null,this.streamModels.clear(),this.shareStreamModels.clear(),(o=this.room)==null||o.userVM.clearUsers(),this.shareBloudStateMap.clear()}};var D=require("rxjs"),ft=require("lodash-es");var Je=class{constructor(e){this._roomName="";this.msgSeq="";this.roomID="";this.audioOff=!1;this.selfopenaudio=!1;this.lock=!1;this.leaveNotice=!1;this.openSelf=!1;this.chatNotice="";this.chatNoticeRich="";this.raiseHandsList=new Map;this.raiseHandsWatcher=new D.BehaviorSubject(Array.from(this.raiseHandsList.values()));this.raiseVideoHandsList=new Map;this.raiseVideoHandsWatcher=new D.BehaviorSubject(Array.from(this.raiseVideoHandsList.values()));this.raiseSimpleHandsList=new Map;this.raiseSimpleHandsWatcher=new D.BehaviorSubject(Array.from(this.raiseSimpleHandsList.values()));this.operationPermissionWatcher=new D.Subject;this.chatNoticeWatcher=new D.Subject;this.totalUserWatcher=new D.BehaviorSubject(0);this.totalWaitRoomUserWatcher=new D.BehaviorSubject(0);this.isOpenWaitRoom=new D.Subject;this.audioOffWatcher=new D.Subject;this.lockWatcher=new D.BehaviorSubject(this.lock);this.leaveNoticeWatcher=new D.BehaviorSubject(this.leaveNotice);this.openSelfWatcher=new D.BehaviorSubject(this.openSelf);this.setRaiseHandsWatcherValue=(0,ft.debounce)(()=>{this.raiseHandsWatcher.next(Array.from(this.raiseHandsList.values()))},1e3);this.setVideoRaiseHandsWatcherValue=(0,ft.debounce)(()=>{this.raiseVideoHandsWatcher.next(Array.from(this.raiseVideoHandsList.values()))},1e3);this.setSimpleRaiseHandsWatcherValue=(0,ft.debounce)(()=>{this.raiseSimpleHandsWatcher.next(Array.from(this.raiseSimpleHandsList.values()))},1e3);this.room=e,f.emitter.on(z,t=>{t.status==="raiseHandsAudio"?t.user.raiseAudioHands?this.addRaiseHandUser(t.user):this.removeRaiseHandUser(t.user.userId):t.status==="raiseHandsVideo"?t.user.raiseVideoHands?this.addVideoRaiseHandUser(t.user):this.removeVideoRaiseHandUser(t.user.userId):t.status==="raiseHand"&&(t.user.raiseHand?this.addSimpleRaiseHandUser(t.user):this.removeSimpleRaiseHandUser(t.user.userId))})}get roomName(){return this._roomName?this._roomName:(this._roomName=this.room.getName(),this._roomName)}get isBigRoom(){return this.room.isBig}get startup(){return this.room.boomCore.client.startup}setup(e){this.roomID=e.room,this.handleInitParams()}initCustomStats(e){this.operationPermission=e,e.chatNotice!==void 0&&(this.chatNotice=e.chatNotice),e.chatNoticeRich!==void 0&&(this.chatNoticeRich=e.chatNoticeRich),this.operationPermissionWatcher.next(this.operationPermission)}updateOperationPermission(e){this.operationPermission=L(L({},this.operationPermission),e),e.chatNotice!==void 0&&(this.chatNotice=e.chatNotice),e.chatNoticeRich!==void 0&&(this.chatNoticeRich=e.chatNoticeRich),this.operationPermissionWatcher.next(this.operationPermission)}handleInitParams(){let e=this.room.boomCore.getAudioOff(),t=this.room.boomCore.getSelfOpenAudio();this.setAudioOff(e,t)}setAudioOff(e,t){this.audioOff=e,this.selfopenaudio=t,this.audioOffWatcher.next({audioOff:e,selfopenaudio:t})}setlock(e){this.lock=e,this.lockWatcher.next(e)}setLeaveNotice(e){this.leaveNotice=e,this.leaveNoticeWatcher.next(e)}setRaiseHandsList(e){e.forEach(t=>{t.raiseAudioHands&&this.raiseHandsList.set(t.getID(),t),t.raiseVideoHands&&this.raiseVideoHandsList.set(t.getID(),t),t.raiseHand&&this.raiseSimpleHandsList.set(t.getID(),t)}),this.setRaiseHandsWatcherValue(),this.setVideoRaiseHandsWatcherValue(),this.setSimpleRaiseHandsWatcherValue()}addRaiseHandUser(e){this.raiseHandsList.set(e.getID(),e),this.setRaiseHandsWatcherValue()}removeRaiseHandUser(e){this.raiseHandsList.delete(e),this.setRaiseHandsWatcherValue()}addVideoRaiseHandUser(e){this.raiseVideoHandsList.set(e.getID(),e),this.setVideoRaiseHandsWatcherValue()}removeVideoRaiseHandUser(e){this.raiseVideoHandsList.delete(e),this.setVideoRaiseHandsWatcherValue()}addSimpleRaiseHandUser(e){this.raiseSimpleHandsList.set(e.getID(),e),this.setSimpleRaiseHandsWatcherValue()}removeSimpleRaiseHandUser(e){this.raiseSimpleHandsList.delete(e),this.setSimpleRaiseHandsWatcherValue()}};var O=require("rxjs");var Lt={name:"@hysc/meeting",version:"10.0.17",description:"boom meeting",private:!1,main:"./dist/index.js",module:"./dist/index.js",types:"./dist/index.d.ts",files:["dist","umd"],scripts:{build:"tsup ./src/index.ts --format cjs,esm --dts --minify",dev:"tsup ./src/index.ts --format esm,cjs --watch --dts"},author:"yangliye",license:"MIT",dependencies:{"@hysc/bloud":"workspace:*","@hysc/core":"workspace:*","lodash-es":"^4.17.21",mitt:"^3.0.0","@hysc/p-queue":"6.3.0",rxjs:"^7.5.5",typescript:"^4.6.3","@hysc/utils":"workspace:*"},peerDependencies:{"@hysc/core":"workspace:*"},devDependencies:{"@types/lodash-es":"^4.17.6","@hysc/brtc":"workspace:*"}};var qe=require("@hysc/utils"),E=require("@hysc/utils");var Ot=class{constructor(e){this.room=e}get localBMUser(){return this.room.getLocalParticipant()}get localIsAudience(){return this.room.getLocalParticipant().isAudience}handlePull(e){return c(this,null,function*(){if(this.localIsAudience){if(e.isMixer){yield this.room.handlePull(e);return}if(this.localBMUser.audienceEnableSpeaking&&e.audioEnable){yield this.room.handlePull(e);return}}else yield this.room.handlePull(e)})}handleChangeStreamType(e){return c(this,null,function*(){yield this.room.handleChangeStreamType(e)})}handlePlay(e,t){return c(this,null,function*(){this.localIsAudience&&!this.localBMUser.audienceEnableSpeaking?e.isMixer&&(yield this.room.handlePlay(e)):yield this.room.handlePlay(e)})}handleAudienceDisable(){return c(this,null,function*(){this.room.bmStreamVm.getStreamModels().forEach(e=>{var t;(t=e==null?void 0:e.stream)!=null&&t.isSubscribed()&&e.hasPulled&&(e.hasPulled=!1,e.pulledStreamType="small",this.room.unsubscribe(e.stream).then(()=>{console.log("\u89C2\u4F17\u53D6\u6D88\u8BA2\u9605\u8FD9\u80A1\u6D41",e.userId,e.nickname,e.isDisplay,e.isCurrentDisplay)}))}),this.handleMixStream(!1)})}handleAudienceEnable(){return c(this,null,function*(){this.handleMixStream(!0),this.room.bmStreamVm.getStreamModels().forEach(e=>{F.addQueue(this.room.handleQueueTask.bind(this,e),e.streamId,0,e.nickname)})})}handleMixStream(e){return c(this,null,function*(){var r,s;let t=this.room.bmStreamVm.mixStreamUid;if(t){let o=this.room.bmStreamVm.streamModels.get(t);e?(r=o==null?void 0:o.stream)==null||r.muteAudio():(s=o==null?void 0:o.stream)==null||s.unmuteAudio()}})}},Xr=Ot;var $=require("lodash-es");var kt=require("@hysc/utils");function Yr(i){var r,s;let e=()=>i.fire(kt.BrtcEvents.BRTC_ROOM_ROCONNECTING),t=()=>i.fire(kt.BrtcEvents.BRTC_ROOM_RECONNECTED);(r=i.brtcClient.client)==null||r.signal.channel.on("reconnecting",e),(s=i.brtcClient.client)==null||s.signal.channel.on("reconnected",t)}var $e=class i{constructor(){this.pullMap=new Map;return i.instance?i.instance:(i.instance=this,this)}addUsers(e){e.forEach(t=>{t.isScreen?this.pullMap.set(`${t.id}_screen`,t):this.pullMap.set(t.id,t)}),this._callback&&this._callback(this.pullMap)}removeUsers(e){e.forEach(t=>{t.isScreen?this.pullMap.delete(`${t.id}_screen`):this.pullMap.delete(t.id)})}restart(){if(this._callback)this._callback(this.pullMap);else throw m("no callback exists in streamQueue please setQueueProcessor first!"),new Error("no callback")}setQueueProcessor(e){this._callback=e}removeQueueProcessor(){this._callback=void 0}};var Zr=require("@hysc/core");var Kr=require("rxjs");var Qe=class{constructor(e,t){this.playMap=new WeakSet;this.playerMap=new Map;this.muted=!1;this.playStateChangeWatcher=new Kr.Subject;let r=document.getElementById(e);if(r)this.container=r;else throw new Error("no container found, play failed");this.room=t}addStream(e,t=!1){this.room.shouldPlayAudio&&this.room.autoPlayAudio&&e.isSubscribed()&&(t||!this.playMap.has(e))&&(u("add stream to player","",e.getUserId(),["streamId ",e.getStreamId()]),this.playMap.add(e),this.play(e))}removeStream(e){let t=e.getStreamId(),r=this.playerMap.get(t);r&&(r.off(),r.destroy()),u("remove audio player","","",["streamId =>",t]),this.playerMap.delete(t),this.playMap.delete(e)}removeStreamByUid(e){let t=new Map;this.playerMap.forEach(r=>{Z(r.stream)||r.stream.getUserId()===e&&t.set(r.stream.getStreamId(),r)}),t.forEach((r,s)=>{r.off(),r.destroy(),this.playerMap.delete(s),this.playMap.delete(r.stream)}),t.clear()}play(e){return c(this,null,function*(){var t;if(e.hasAudio()&&this.container){let r=new Zr.AudioPlayer(this.container,{});if(this.addPlayerEvent(r),yield r.play(e),this.deviceId&&(yield r.setSinkId(this.deviceId)),this.muted)r.setVolume(0);else{let s,o=Re(e.getUserId().toString());if(Z(e)?s=this.room.bmStreamVm.shareStreamModels.get(o):s=this.room.bmStreamVm.streamModels.get(o),s){let a=(t=s.bloudStream)==null?void 0:t.customInfo;a&&a.volume&&(r.audioLevel=a.volume,r.setVolume(a.volume))}}this.playerMap.set(e.getStreamId(),r)}})}mute(e){this.muted=e,e?this.playerMap.forEach(t=>t.setVolume(0)):this.playerMap.forEach(t=>{t.audioLevel>0?t.setVolume(t.audioLevel):t.setVolume(1)})}setVolume(e,t){let r=this.playerMap.get(e);if(r){if(r.audioLevel=t,this.muted)return;r.setVolume(t)}else m("\u8BBE\u7F6E\u4E86\u6D41\u7684\u97F3\u91CF\uFF0C\u4F46\u662F\u6CA1\u6709\u627E\u5230\u5BF9\u5E94\u7684\u64AD\u653E\u5668",e)}setDevice(e,t=!1){return c(this,null,function*(){this.deviceId=e,t&&(yield Y(2e3)),this.playerMap.forEach(r=>c(this,null,function*(){yield r.setSinkId(e)}))})}addPlayerEvent(e){e.on("player-state-changed",t=>{e.stream&&(u("audio player state change","","",[JSON.stringify(t)]),t.type==="error"&&t.reason&&t.reason.name==="NotAllowedError"&&this.playStateChangeWatcher.next(e),t.state==="PAUSED"&&e.resume())})}clear(){u("audio play clear"),this.playerMap.forEach(e=>e.destroy()),this.playerMap.clear(),this.playMap=new WeakSet}destroy(){u("audio play destroy"),this.playerMap.forEach(e=>e.destroy()),this.playerMap.clear(),this.playMap=new WeakSet}};var yt=1,xi={audio:!0,video:!0,streamType:"small",videoEnable:!0,audioEnable:!0},Fe=!0,Ue=class{constructor({initDevices:e}={initDevices:!0}){this.roomVM=null;this.videoDevices=[];this.audioDevices=[];this.audioOutputDevices=[];this.selectVideoDevice=null;this.selectAudioDevice=null;this.selectAudioOutputDevice=null;this.streamQueue=new $e;this.userListColumns=1;this.sortType=1;this.BRTCConnectFailed=!1;this.pubFailedNum=0;this.streamConnectedErrorQueue=[];this.conferenceMode=1;this.isBig=!1;this.selectVideoDeviceWatcher=new O.BehaviorSubject(this.selectVideoDevice);this.selectAudioDeviceWatcher=new O.BehaviorSubject(this.selectAudioDevice);this.selectAudioOutputDeviceWatcher=new O.BehaviorSubject(this.selectAudioOutputDevice);this.audioDevicesWatcher=new O.Subject;this.videoDevicesWatcher=new O.Subject;this.audioOutputDevicesWatcher=new O.Subject;this.raiseHandleRespWatcher=new O.Subject;this.enableAudienceSpeakingWatcher=new O.Subject;this.mediaPermission={microphone:!0,camera:!0,screen:!0};this.videoProfile="360p";this.audioProfile=null;this.voiceMode="";this.videoEncodeConfig=null;this.streamWSReconnectWatcher=new O.Subject;this.bloudWSReconnectWatcher=new O.Subject;this.netConnecting=!0;this.netConnectingWatcher=new O.Subject;this.hasSyncPermission=!0;this.meetingControlOptions={cancelAutoPull:!1};this.forceId="";this.networkState={bloud:!0,brtc:!0};this.brtcNetEnableWatcher=new O.Subject;this.autoPlayAudio=!0;this.pubFailedTimer=null;this.messageWatcher=new O.BehaviorSubject({type:"init",status:!1,isNotCancelRootReport:!1});this.isInWaitRoom=!1;this.shouldPlayAudio=!0;this.handleReprocessStreamError=()=>{this.netConnecting&&this.networkState.brtc&&this.networkState.bloud&&this.streamConnectedErrorQueue.length&&(u("brtc \u7F51\u7EDC\u6062\u590D\u6B63\u5E38\uFF0C\u5904\u7406\u91CD\u63A8\u903B\u8F91","","",this.streamConnectedErrorQueue),this.streamConnectedErrorQueue.forEach(e=>{this.handleStreamConnectError(e)}),this.streamConnectedErrorQueue=[])};this.handleMediaDevicesChange=(0,$.debounce)(()=>c(this,null,function*(){let e=this.filterDevice(this.audioDevices);yield this.bmStreamVm.changeAudioInput(e);let t=this.filterDevice(this.audioOutputDevices);yield this.bmStreamVm.changeSpeaker(t,!0)}),1e3);this.enumVideoDevices=_.enumVideoDevices;this.enumAudioInputDevices=_.enumAudioInputDevices;this.enumAudioOutputDevices=_.enumAudioOutputDevices;this.getPermissions=_.getPermissions;this.checkSystemSupport=_.checkSystemSupport;this.createStream=_.createStream;this.participantNotice=!1;this.handleQueueTask=(e,t=!1)=>c(this,null,function*(){if(!this.BRTCConnectFailed&&!(!e.isLocal&&this.meetingControlOptions.cancelAutoPull&&!e.shouldPull)){if(!this.streamModelExits(e)){A(`streamModel is not exits, userId: ${e.userId}, isShare: ${e.isShare}, ignore`);return}yield this.handleStreamTask(e,t)}});this.republishLocalStream=(0,$.debounce)(e=>c(this,null,function*(){let t=e.getAudioOn()||!1,r=e.getVideoOn()||!1;u("republish local stream ","","",[t,r]),(t||r)&&(yield this.publish(e).then(()=>c(this,null,function*(){this.bmStreamVm.bloudStream=null,yield this.bmStreamVm.publishBloudStream(t,r),u("local stream connect error, and republish success, bloud stream republish success","","",["audio =>",t," video => ",r]),this.bmStreamVm.localStreamConnectErrorWatcher.next((0,E.BMStreamReconnectSuccess)(t,r))})).catch(()=>{u("local stream connect error, and republish failed","","",["audio =>",t," video => ",r]),this.bmStreamVm.localStreamConnectErrorWatcher.next((0,E.BMStreamReconnectFailed)())}))}),1e3);this.processUser=e=>c(this,null,function*(){let t=new Set;if(e.forEach(r=>{if(r.isScreen){let s=this.bmStreamVm.getShareStreamModelByUId(r.id);(!s||!s.stream)&&(r.isWeb?t.add(`${r.id}_screen`):t.add(r.id))}else{let s=this.bmStreamVm.streamModels.get(r.id);s&&!s.stream&&t.add(r.id)}}),u("brtc query streams","","",["queryIds => ",JSON.stringify(Array.from(t))]),t.size)try{let r=yield this.queryBrtcStreams(Array.from(t));if(r&&r.length){let s=r.map(o=>[o.getUserId(),o.getStreamId()]);u("brtc query streams result","","",["streamInfo =>",JSON.stringify(s)]),r&&this.handleAddStreams(r)}}catch(r){m("query stream error","","",[JSON.stringify(r)])}});this.queueProcessor=(0,$.debounce)(this.processUser,500,{maxWait:1e3});qe.Logger.setLogLevel(qe.LOGLEVEL.INFO),u(`
1
+ "use strict";var ri=Object.create;var Ne=Object.defineProperty,ii=Object.defineProperties,si=Object.getOwnPropertyDescriptor,oi=Object.getOwnPropertyDescriptors,ai=Object.getOwnPropertyNames,_t=Object.getOwnPropertySymbols,ni=Object.getPrototypeOf,Wt=Object.prototype.hasOwnProperty,li=Object.prototype.propertyIsEnumerable;var Vt=(i,e,t)=>e in i?Ne(i,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):i[e]=t,L=(i,e)=>{for(var t in e||(e={}))Wt.call(e,t)&&Vt(i,t,e[t]);if(_t)for(var t of _t(e))li.call(e,t)&&Vt(i,t,e[t]);return i},Te=(i,e)=>ii(i,oi(e));var ci=(i,e)=>{for(var t in e)Ne(i,t,{get:e[t],enumerable:!0})},Ht=(i,e,t,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of ai(e))!Wt.call(i,s)&&s!==t&&Ne(i,s,{get:()=>e[s],enumerable:!(r=si(e,s))||r.enumerable});return i};var bt=(i,e,t)=>(t=i!=null?ri(ni(i)):{},Ht(e||!i||!i.__esModule?Ne(t,"default",{value:i,enumerable:!0}):t,i)),ui=i=>Ht(Ne({},"__esModule",{value:!0}),i);var c=(i,e,t)=>new Promise((r,s)=>{var o=l=>{try{n(t.next(l))}catch(d){s(d)}},a=l=>{try{n(t.throw(l))}catch(d){s(d)}},n=l=>l.done?r(l.value):Promise.resolve(l.value).then(o,a);n((t=t.apply(i,e)).next())});var Li={};ci(Li,{Logger:()=>ze.Logger,default:()=>wi});module.exports=ui(Li);var _=bt(require("@hysc/core"));var P=class extends Error{constructor(t,r,s,o){super();this.code=t,this.error=s,this.BoomErrorFlag=!0,this.eName=o,this.message=r}static instanceOf(t){return!!(t&&t.BoomErrorFlag)}getCode(){return this.code}};var Gt=1,di=2,Ft=3,mi=4;var hi=function(){},_i=/BRTC/.test(hi.toString())?Gt:Ft;function Xe(i,e,t,r){let s=[];return t&&s.push(t),r&&s.push(r),`[${new Date().toLocaleTimeString("chinese",{hour12:!1})}] <${i}> [${s.join("|")}] ${e}`}function pi(i,e,t,r=[]){r.unshift(Xe("DEBUG",i,e,t)),console.log(...r)}function u(i,e,t,r=[]){r.unshift(Xe("INFO",i,e,t)),console.log(...r)}function v(i,e,t,r=[]){r.unshift(Xe("WARN",i,e,t)),console.log(...r)}function m(i,e,t,r=[]){r.unshift(Xe("ERROR",i,e,t)),console.log(...r)}var Vi={[Gt]:pi,[di]:u,[Ft]:v,[mi]:m};var kr=require("rxjs");var jt="undefined";var gi=typeof window!==jt?window:void 0;var Wi=typeof global!==jt?global:gi;var Hi=Object.freeze({}),Gi=Object.freeze([]);var T="c";var Kt=require("rxjs");var k="_screen",Ze="screen-",Ke="xinhao_";var ce="sub-message",ue="user-sort-num-change",de="bind-element",K="stream-connect-error",z="raise-hand",me="manual-subscription",he="unsubscribe-stream",pe="change-is-guest",ge="bind-big-element",ee="no-container",fe="model-sort-num-change",Se="add-pull-user",be="set-volume",ye="add-audio-play",J="stream-play";var Jt=bt(require("mitt"));var U=class U{static getInstance(){return U.emitter||(U.emitter=(0,Jt.default)()),U.emitter}};U.emitter=void 0,U.removeEmitter=()=>{var e,t,r,s,o,a,n,l,d,p,g,S,C,y,I;(e=U.emitter)==null||e.off(ce),(t=U.emitter)==null||t.off(ue),(r=U.emitter)==null||r.off(K),(s=U.emitter)==null||s.off(z),(o=U.emitter)==null||o.off(he),(a=U.emitter)==null||a.off(me),(n=U.emitter)==null||n.off(pe),(l=U.emitter)==null||l.off(de),(d=U.emitter)==null||d.off(ge),(p=U.emitter)==null||p.off(ee),(g=U.emitter)==null||g.off(fe),(S=U.emitter)==null||S.off(Se),(C=U.emitter)==null||C.off(be),(y=U.emitter)==null||y.off(ye),(I=U.emitter)==null||I.off(J),U.emitter=void 0};var f=U;function $t(i){return yt===2?bi(i):Si(i)}function Si(i){let e=30;return i.isSharing?(i.isMaster?e=0:i.isManager&&i.audioEnable&&i.videoEnable?e=1:i.isManager&&i.audioEnable?e=2:i.isManager&&i.videoEnable?e=3:i.isManager?e=4:i.isCommonUser?i.audioEnable&&i.videoEnable?e=9:i.audioEnable?e=10:i.videoEnable?e=11:e=12:i.audioEnable&&i.videoEnable?e=5:i.audioEnable?e=6:i.videoEnable?e=7:e=8,e):(i.isMaster?e=13:i.isLocal?e=14:i.isManager?i.audioEnable&&i.videoEnable?e=15:i.audioEnable?e=16:i.videoEnable?e=17:e=18:i.raiseHand?e=19:i.isCommonUser?i.isSignal?e=26:i.isCommonUser&&(i.audioEnable&&i.videoEnable?e=27:i.audioEnable?e=28:i.videoEnable?e=29:e=30):i.audioEnable&&i.videoEnable?e=22:i.audioEnable?e=23:i.videoEnable?e=24:e=25,e)}function bi(i){let e;return i.isToupingma?e=0:i.raiseHand?e=19:i.raiseAudioHands?e=1:i.raiseVideoHands?e=2:i.isLocal?e=3:i.isMaster&&i.audioEnable&&i.videoEnable?e=4:i.isManager&&i.audioEnable&&i.videoEnable?e=5:i.audioEnable&&i.videoEnable?e=6:i.isMaster&&i.audioEnable?e=7:i.isManager&&i.audioEnable?e=8:i.audioEnable?e=9:i.isMaster&&i.videoEnable?e=10:i.isManager&&i.videoEnable?e=11:i.videoEnable?e=12:i.isMaster?e=13:i.isManager?e=14:i.isCommonUser?e=16:i.isSignal?e=17:e=15,e}var Qt="undefined";var we="function";var yi=typeof window!==Qt?window:void 0;var Yi=typeof global!==Qt?global:yi;var Zi=Object.freeze({}),Ki=Object.freeze([]),It="";function Et(i){return typeof i===we}function Ii(i,e,t){return i.indexOf(e,t!==void 0?t:0)}function zt(i,e){return Ii(i,e)>=0}function Xt(i,e){return i!=null&&i.toString?i.toString():e!==void 0?e:It}function Ct(i){return Et(i)&&zt(Xt(i),"[native code]")}var vt;typeof setImmediate===we&&Ct(setImmediate)&&(vt=setImmediate);typeof MessageChannel===we&&Ct(MessageChannel)?vt=function(i){let e=new MessageChannel;e.port1.onmessage=i,e.port2.postMessage(1)}:vt=setTimeout;var Yt=5*60*1e3;function Bt(i){let e=new Date(i),t=new Date,r=e.getMonth()+1<10?"0"+(e.getMonth()+1):e.getMonth()+1,s=e.getDate()<10?"0"+e.getDate():e.getDate(),o=e.getHours()<10?"0"+e.getHours():e.getHours(),a=e.getMinutes()<10?"0"+e.getMinutes():e.getMinutes();return t.setHours(0,0,0,0)==e.setHours(0,0,0,0)?o+":"+a:r+"\u6708"+s+"\u65E5 "+o+":"+a}function Oe(i){return i.sort((e,t)=>e.sortNum===19&&t.sortNum===19?e.raiseHandTime-t.raiseHandTime:e.sortNum-t.sortNum)}function Zt(i){return i.sort((e,t)=>e.sortNum!==t.sortNum?t.sortNum-e.sortNum:Number(e.getUser().isCommonUser)-Number(t.getUser().isCommonUser))}function ke(i){return!it(i,"s")}function Ie(i){return it(i,"a")}function tt(i){return it(i,"m")}function rt(i){return it(i,"o")}function it(i,e){return i.toLowerCase().includes(e)}var X=class{constructor(e,t=!1){this.audienceEnableSpeaking=!1;this.streamModels=new Map;this.sortNum=100;this.raiseVideoHands=!1;this.raiseAudioHands=!1;this.raiseHand=!1;this.isAudience=!1;this.isCommonUser=!1;this.inBackground=!1;this.raiseHandTime=0;var s;this.userId=e.userId,this.userInfo=e.userInfo,this.nickName=e.nickname,this.isMaster=!!e.isMaster,this.isManager=!!e.isManager,this.isToupingma=!!e.isToupingma,this.isLocal=t,this.hasMultiple=!!e.hasMultiple,this.isCreate=!!e.isCreate,this.hasShare=!!e.hasShare,this.avatar=(s=e.userInfo)==null?void 0:s.avatar,this.permission=e.permission,this.raiseAudioHands=!!e.raiseAudioHands,this.raiseVideoHands=!!e.raiseVideoHands,this.raiseHand=!!e.raiseHand,this.isAudience=!!e.isAudience,this.isCommonUser=!!e.isCommonUser,this.inBackground=!!e.inBackground,e.permission&&(this.audienceEnableSpeaking=Ie(e.permission.permission)),this.raiseHandTime=e.raiseHandTime||0;let r={operation:"none",user:this};this.watcher=new Kt.BehaviorSubject(r),this.updateSortNum(!1)}get isWeb(){return!!(this.userInfo.pos&&(this.userInfo.pos.includes("web")||this.userInfo.pos.includes("pc")))}setup(e,t,r){this.isLocal=!0,this.userId=e,this.userInfo=t,r?this.nickName=r:this.nickName=t.nickname,this.avatar=t.avatar}getMainStreamModel(){return this.streamModels.get(this.userId)}get nickname(){return this.nickName}getShareStreamModel(){return this.streamModels.get(`${this.userId}${k}`)}get audioEnable(){let e=this.getMainStreamModel();return e?e._audio_enable:!1}get isMixer(){return this.userId.includes("-mixer-")}get videoEnable(){let e=this.getMainStreamModel();return e?e._video_enable:!1}get isSharing(){let e=!1;for(let t of this.streamModels.values())if(t.isShare){e=!0;break}return e}get isSignal(){var e;return!!((e=this.userId)!=null&&e.startsWith(Ke))}checkLocalHasMaster(){return this.isMaster||this.isManager}addStream(e,t){this.streamModels.set(e,t),this.watcher.next({operation:"changeShare",user:this})}removeStream(e){this.streamModels.delete(e),e.includes(k)&&u("\u5220\u9664\u7684\u662F\u5171\u4EAB\u5C4F\u5E55\u7684\u6D41:","","",["streamId =>",e]),setTimeout(()=>{this.watcher.next({operation:"changeShare",user:this})},400)}getID(){return this.userId}getNickName(){return this.nickName}getUserInfo(){return this.userInfo}getStreams(){return this.streamModels}updateUserInfo(e,t={},r){var d,p,g,S,C,y;let s=(d=t==null?void 0:t.params)==null?void 0:d.customInfo,o=(s==null?void 0:s.updateKeys)||[],a=!1,n="none";if(u("updateUserInfo =>","updateUser",e.userId,["updateKeys",o.toString(),"permission",(p=e.permission)==null?void 0:p.permission,"isMaster =>",this.isMaster,"isManager =>",this.isManager]),this.nickName!==e.nickname&&(n="changeNickName"),!this.isMaster&&this.isManager&&!e.permission.getManage()&&(n="removeManager",this.isManager=!1),!this.isMaster&&!this.isManager&&e.permission.getManage()&&o.indexOf("changeMaster")==-1&&(n="getManager",this.isManager=!0),e.userinfo.pos)this.userInfo=e.userinfo;else{let I=this.userInfo.pos;this.userInfo=e.userinfo,this.userInfo.pos=I}(o.includes("changeMaster")||o.includes("permission"))&&(e.permission=t.getPermission()),o.includes("raiseHandsAudio")&&(this.raiseAudioHands=s.raiseHandsAudio,n="raiseHandsAudio",f.emitter.emit(z,{status:"raiseHandsAudio",user:this}),a=!0),o.includes("raiseHandsVideo")&&(this.raiseVideoHands=s.raiseHandsVideo,n="raiseHandsVideo",f.emitter.emit(z,{status:"raiseHandsVideo",user:this}),a=!0),o.includes("raiseHand")&&(this.raiseHand=s.raiseHand,this.raiseHandTime=s.raiseHandTime,n="raiseHand",f.emitter.emit(z,{status:"raiseHand",user:this}),a=!0),r.conferenceMode!==1&&this.isAudience&&o.includes("permission")&&(((S=(g=t.params)==null?void 0:g.customInfo)==null?void 0:S.permission.indexOf("A"))!==-1&&(r.enableAudienceSpeakingWatcher.next(!0),this.audienceEnableSpeaking=!0,n="audienceEnableSpeaking",r.bmLiveVM.handleAudienceEnable()),((y=(C=t.params)==null?void 0:C.customInfo)==null?void 0:y.permission.indexOf("A"))===-1&&(r.enableAudienceSpeakingWatcher.next(!1),this.audienceEnableSpeaking=!1,n="audienceEnableSpeaking",r.bmLiveVM.handleAudienceDisable())),o.includes("inBackground")&&(n="inBackground",this.inBackground=s.inBackground),this.nickName=e.nickname,this.permission=e.permission;let l=!this.isCommonUser;this.isCommonUser=!e.permission.getSubscribe(),l!==!this.isCommonUser&&(u(`\u8EAB\u4EFD\u6709\u53D1\u751F\u8FC7\u53D8\u5316\uFF0C\u4ECE${l?"\u5609\u5BBE":"\u666E\u901A\u53C2\u4F1A\u8005"} => ${this.isCommonUser?"\u666E\u901A\u53C2\u4F1A\u8005":"\u5609\u5BBE"}`),f.emitter.emit(pe,{user:this,isGuest:!this.isCommonUser,preIsGuest:l})),n&&this.watcher.next({operation:n,user:this}),(!a||a&&!this.isLocal)&&this.updateSortNum(!0)}hasManager(){return this.isManager||this.isMaster}getNicknameSuffix(){let e="";return this.isLocal&&this.isMaster?e="(\u6211\u3001\u4E3B\u6301\u4EBA)":this.isLocal&&this.isManager?e="(\u6211\u3001\u8054\u5E2D\u4E3B\u6301\u4EBA)":this.isLocal?e="(\u6211)":this.isMaster?e="(\u4E3B\u6301\u4EBA)":this.isManager?e="(\u8054\u5E2D\u4E3B\u6301\u4EBA)":this.isSharing&&!this.isToupingma?e="\u7684\u5171\u4EAB\u5C4F\u5E55":this.isSharing&&this.isToupingma&&(e="(\u4EC5\u5171\u4EAB\u5C4F\u5E55)"),e}updateSortNum(e=!0,t=!1){let r=$t(this);this.setSortNum(r,e,t)}setSortNum(e,t,r){this.sortNum!==e&&(this.sortNum=e,t&&f.emitter.emit(ue,{isCommon:this.isCommonUser,isAudience:this.isAudience,shouldDelay:r}))}};var te=require("rxjs");function Y(i){return new Promise(e=>setTimeout(e,i))}var De=require("lodash-es");var Me=["-mixer-","-rtmpmixer-","record#","robot_","stt_"],Ee=500,st="RWPSAVMO,RWPSAVM,RWPSAV,RWPSA",_e=class i{constructor(e,t,r){this.userList=new Map;this.audiencesList=new Map;this.signalList=new Map;this.commonUserList=new Map;this.userListWatcher=new te.BehaviorSubject(Array.from(this.userList.values()));this.audiencesListWatcher=new te.BehaviorSubject(Array.from(this.audiencesList.values()));this.commonUserListWatcher=new te.BehaviorSubject(Array.from(this.commonUserList.values()));this.signalListWatcher=new te.BehaviorSubject(Array.from(this.signalList.values()));this.masterUserWatcher=new te.BehaviorSubject(null);this.getForceUserWatcher=new te.BehaviorSubject(!1);this.commTimer=200;this.addBCUser=(e,t=!1)=>{var o;let r=this.addUser(e);if(this.room.isWorkShop&&!Ie(e.permission.permission))return;if(!this.room.bmStreamVm.streamModels.get(e.userId)){let a=this.getUser(e.userId);a?this.room.bmStreamVm.createStreamModel(a):m(`there is no user named ${e.userId}, and create streamModel failed!!!`)}{let a=this.room.bmStreamVm.streamModels.get(e.userId);a&&(e.stream.size?e.stream.forEach(n=>c(this,null,function*(){var g,S,C;let{video_enable:l,audio_enable:d,customInfo:p}=n;if(n.screen){this.room.bmStreamVm.shareBloudStateMap.set(e.userId,{audio:d,video:l,customInfo:p,userId:e.userId,streamId:n.getID(),isScreen:!0});let y={id:a.userId,isScreen:!0,isWeb:a.isWeb};if(t){let I=new Map;I.set(e.userId,y),yield(g=this.room)==null?void 0:g.processUser(I)}else(S=this.room)==null||S.addUser2Queue(y)}else if(a&&(a.updateBloudStream({video:l,audio:d,isScreen:n.screen,customInfo:p},this.room.bmStreamVm),t)){let y={id:a.userId,isScreen:!1,isWeb:a.isWeb},I=new Map;I.set(e.userId,y),(C=this.room)==null||C.processUser(I)}})):(a.bloudStream&&a.updateBloudStream(void 0,this.room.bmStreamVm),(o=this.room)==null||o.bmStreamVm.removeShareStreamModelByUId(e.userId)))}return r&&r.isMaster&&this.masterUserWatcher.next(r),r==null||r.updateSortNum(!1),r};this.updateAllSort=()=>{this.updateUserSort(),this.updateCommonUserSort(),this.updateAudienceUserSort()};this.updateSortByType=e=>{var t,r;(t=this.room)!=null&&t.isSingleColumns||e.isCommon?(r=this.room)!=null&&r.isBig&&e.shouldDelay?this.updateDelayCommonUserSort():this.updateCommonUserSort():e.isAudience?this.updateAudienceUserSort():this.updateUserSort()};this.updateUserSort=(0,De.debounce)(()=>{let e=this.sortUsers();this.userListWatcher.next(i.filterUsers(e))},200,{maxWait:1e3});this.updateCommonUserSort=(0,De.debounce)(()=>{let e=this.sortCommonUsers();this.commonUserListWatcher.next(i.filterUsers(e))},this.commTimer,{maxWait:12*1e3});this.updateDelayCommonUserSort=(0,De.debounce)(()=>{let e=this.sortCommonUsers();this.commonUserListWatcher.next(i.filterUsers(e))},120*1e3,{maxWait:120*1e3});this.updateAudienceUserSort=(0,De.debounce)(()=>{let e=this.sortAudiences();this.audiencesListWatcher.next(i.filterUsers(e))},200,{maxWait:1e3});this.updateSignalUserSort=()=>{let e=this.sortSignalUsers();this.signalListWatcher.next(e)};this.transBloudUsers=(e,t="",r=!1,s=0)=>c(this,null,function*(){let o=new Map;yield this.getAllUsers(e,o,t,r).catch(()=>{if(s<3){m("get bloud user error, retry"),s+=1,this.transBloudUsers(e,t,r,s);return}else{m("get current page of bloud users after 10 times final failed","","",[" page ",e," permission ",t]);return}}),yield this.initUserList(o),o.clear();let a=[];for(let n of this.userList.values())(n.raiseVideoHands||n.raiseAudioHands||n.raiseHand)&&a.push(n);for(let n of this.commonUserList.values())(n.raiseVideoHands||n.raiseAudioHands||n.raiseHand)&&a.push(n);for(let n of this.commonUserList.values())(n.raiseVideoHands||n.raiseAudioHands)&&a.push(n);this.room.roomInfo.setRaiseHandsList(a),this.updateAllSort(),this.room.bmStreamVm.updateModelSort()});this.boomCore=e,this.localUser=t,this.room=r,f.emitter||m("init boom emitter error"),f.emitter.on(pe,this.handleUserRoleChange.bind(this)),f.emitter.on(ue,this.updateSortByType)}handleUserRoleChange(e){return c(this,null,function*(){var n,l,d;let{user:t,isGuest:r,preIsGuest:s}=e,o=(n=this.room)==null?void 0:n.roomInfo.isBigRoom;if(u("handleUserRoleChange","",t.userId,["isGuest =>",r,"preIsGuest =>",s,"isBigRoom =>",o]),((l=this.room)==null?void 0:l.userListColumns)===1||(s?this.userList.delete(t.userId):this.commonUserList.delete(t.userId),r?this.userList.set(t.userId,t):this.commonUserList.set(t.userId,t)),o)if(r)t.isLocal&&(yield this.initUsers());else{let p=(d=this.room)==null?void 0:d.getLocalParticipant().isCommonUser;if(t.isLocal&&(this.handleUnSubCommonUser(),this.handleCommonUserChange(),this.commonUserList.set(t.userId,t)),p){let g=t.getMainStreamModel();g&&g.unSubscribeStream(),t.isLocal||this.commonUserList.delete(t.userId)}}this.updateAllSort()})}addUser(e){var s;let t=this.getUser(e.userId);if(t)return u("\u8BE5\u7528\u6237\u5DF2\u7ECF\u52A0\u5165\u623F\u95F4",T,e.userId),this.updateUser(t,e),null;let r;return this.boomCore.userId==e.userId?(this.updateUser(this.localUser,e),r=this.localUser):r=this.toBMUser(e),((s=this.room)==null?void 0:s.userListColumns)===1?this.commonUserList.set(r.userId,r):r.isAudience?this.audiencesList.set(r.userId,r):r.isSignal?this.signalList.set(r.userId,r):r.isCommonUser?this.commonUserList.set(r.userId,r):this.userList.set(r.userId,r),r}removeUser(e){let t=this.userList.delete(e);return t||(t=this.signalList.delete(e)),t||(t=this.audiencesList.delete(e)),t||(t=this.commonUserList.delete(e)),t||v("userList\u4E2D\u672A\u627E\u5230\u8BE5\u7528\u6237, \u79FB\u9664\u65E0\u6548",T,e),t}videoEnable(e){let t=this.getUser(e);if(t)return t.videoEnable;throw new P(9001,"\u7528\u6237\u4E0D\u5B58\u5728")}audioEnable(e){let t=this.getUser(e);if(t)return t.audioEnable;throw new P(9001,"\u7528\u6237\u4E0D\u5B58\u5728")}checkIsMaster(e){if(!e)return!1;let t=this.boomCore.getMaster();return t?t===e:!1}checkLocalHasMaster(){return this.localUser.isMaster||this.localUser.isManager}checkUserHasMaster(e){let t=this.userList.get(e);return t?t.permission.getManage():!1}getUser(e){let t;return e!=null&&e.startsWith(Ke)?t=this.signalList.get(e):t=this.userList.get(e),t||(t=this.commonUserList.get(e)),t||(t=this.audiencesList.get(e)),t}getAllUsers(e,t,r="",s=!1){return c(this,null,function*(){let o;if(s){let{users:a,total:n}=yield this.boomCore.getUsersList(e,r,Ee);o=a}else{let{users:a,total:n}=yield this.boomCore.getUsers(e,r,Ee);o=a}o.forEach(a=>{t.set(a.userId,a)})})}initUserList(e){return c(this,null,function*(){var r,s;let t=e.get(this.localUser.userId);if(t){let o=this.addUser(t);if(!((r=this.room)!=null&&r.bmStreamVm.getStreamModelByUId(t.userId))){let a=this.getUser(t.userId);a?(s=this.room)==null||s.bmStreamVm.createStreamModel(a):m("there is no local streamModel exits, and create failed!!!")}o!=null&&o.isMaster&&this.masterUserWatcher.next(o)}e.delete(this.localUser.userId),e&&e.size>0&&this.addBcUsersMap(e)})}addBcUsersMap(e,t=!1){e.forEach(r=>{this.addBCUser(r,t)})}updateMaster(e,t,r){let s=this.getUser(e);s&&(s.isManager&&(s.isManager=!1),s.isMaster=!0,s.updateSortNum());let o=this.getUser(t);return o&&(o.isMaster=!1,r&&(o.isManager=!0),o.updateSortNum()),!s&&!o&&m("\u672A\u627E\u5230\u8BE5\u7528\u6237, updateMaster\u672A\u751F\u6548",T,e,["masterId => ",e,"oldMasterId => ",t]),{master:s,oldMaster:o}}managerChangeToGuest(e){let t=this.getUser(e);return t?t.isManager?(t.permission.setManage(!1),t.permission.setSubscribe(!0),this.boomCore.updateUser(e,{customInfo:{permission:t.permission.get()}}),t.watcher.next({operation:"getGuest",user:t}),this.updateAllSort()):m("\u8BE5\u7528\u6237\u4E0D\u662F\u7BA1\u7406\u5458\uFF0C\u65E0\u6CD5\u8BBE\u7F6E\u4E3A\u5609\u5BBE",T,e):m("\u672A\u627E\u5230\u8BE5\u7528\u6237, managerChangeToGuest\u672A\u751F\u6548",T,e),t}updateManager(e,t,r=!0){let s=this.getUser(e);return s?(s.permission.setManage(t),s.permission.setSubscribe(t),this.boomCore.updateUser(e,{customInfo:{permission:s.permission.get()}}),s.watcher.next({operation:t?"getManager":"removeManager",user:s}),this.updateAllSort()):m("userList\u4E2D\u672A\u627E\u5230\u8BE5\u7528\u6237, updateManager\u672A\u751F\u6548",T,e),s}getLocalUser(){return this.localUser}updateUser(e,t){var R,M,G,Q,q;let r=this.checkIsMaster(t.userId),s=(((R=t.permission)==null?void 0:R.getManage())||tt((M=t.permission)==null?void 0:M.permission))&&!((G=t.permission)!=null&&G.getOwn()||rt((Q=t.permission)==null?void 0:Q.permission)),o="none",a=e.isMaster;e.isManager!==s&&(s?o="getManager":o="removeManager"),o!=="none"&&setTimeout(()=>{e.watcher.next({operation:o,user:e})},10),a!==r&&(r?o="getMaster":o="removeMaster"),o!=="none"&&setTimeout(()=>{e.watcher.next({operation:o,user:e})},100);let l=e.raiseHand,d=t.customInfo.raiseHand;l!==d&&(!d&&l&&this.room.roomInfo.removeSimpleRaiseHandUser(e.userId),setTimeout(()=>{e.watcher.next({operation:"raiseHand",user:e})},300));let p=e.raiseVideoHands,g=t.customInfo.raiseHandsVideo;p!==g&&(!g&&p&&this.room.roomInfo.removeVideoRaiseHandUser(e.userId),setTimeout(()=>{e.watcher.next({operation:"raiseHandsVideo",user:e})},300));let S=e.raiseAudioHands,C=t.customInfo.raiseHandsAudio;S!==C&&(!C&&S&&this.room.roomInfo.removeRaiseHandUser(e.userId),setTimeout(()=>{e.watcher.next({operation:"raiseHandsAudio",user:e})},300));let y=e.nickname,I=t.nickname;y!==I&&setTimeout(()=>{e.watcher.next({operation:"changeNickName",user:e})},300),e.userInfo=t.userinfo,e.nickName=t.nickname,e.userId=t.userId,e.permission=t.permission,e.avatar=t.userinfo.avatar,e.isToupingma=t.userinfo.pos.includes("_toupingma"),e.raiseHand=d,e.isMaster=r,e.isCreate=this.boomCore.getCreator()===t.userId,e.isAudience=!t.permission.getAudio(),e.isCommonUser=!t.permission.getSubscribe(),e.isManager=s,e.inBackground=!!((q=t==null?void 0:t.customInfo)!=null&&q.inBackground),e.updateSortNum()}updateLocalUserPermission(e){let t=this.getLocalUser();t.isMaster=rt(e),t.isManager=!rt(e)&&tt(e),t.isCommonUser=ke(e),t.isAudience=!Ie(e),t.watcher.next({operation:"none",user:t})}toBMUser(e){var s,o;let t={};t.userInfo=e.userinfo,t.nickname=e.nickname,t.userId=e.userId,t.streamModels=[],t.permission=e.permission,t.stream=e.stream,t.isToupingma=!!(e.userinfo.pos&&e.userinfo.pos.includes("_toupingma")),t.isMaster=this.checkIsMaster(t.userId),t.isAudience=!e.permission.getAudio(),t.isCommonUser=!e.permission.getSubscribe()||ke(e.permission.permission),t.isAudience=!Ie(e.permission.permission),t.raiseAudioHands=e.customInfo.raiseHandsAudio,t.raiseVideoHands=e.customInfo.raiseHandsVideo,t.raiseHand=e.customInfo.raiseHand,t.raiseHandTime=e.customInfo.raiseHandTime,t.inBackground=e.customInfo.inBackground,t.isCreate=this.boomCore.getCreator()===e.userId;let r=this.boomCore.getLocalParticipant();if(!r)throw new P(1001,"BCUserVM addUser\u65F6\u672A\u627E\u5230\u672C\u5730\u7528\u6237");return r.getID()==t.userId&&(t.isLocal=!0),((s=t.permission)!=null&&s.getManage()||tt((o=t.permission)==null?void 0:o.permission))&&!t.isMaster&&(t.isManager=!0),new X(t,t.isLocal)}sortUsers(){return Oe(Array.from(this.userList.values()))}sortAudiences(){return Oe(Array.from(this.audiencesList.values()))}sortCommonUsers(){return Oe(Array.from(this.commonUserList.values()))}sortSignalUsers(){return Oe(Array.from(this.signalList.values()))}static filterUsers(e){return e.filter(t=>!Me.some(r=>t.userId.includes(r)))}initUsers(){return c(this,null,function*(){var l;let e=yield this.getTotalUserNumber();u(`initUsers total users num: ${e}`);let t=Math.ceil(e/Ee),r=0,s=this.localUser.isCommonUser,o=[],a=d=>c(this,null,function*(){d<t&&(yield this.transBloudUsers(d-1))}),n=d=>c(this,null,function*(){for(let p of d)yield p(),yield Y(50)});if(s&&((l=this.room)!=null&&l.isBig))this.commonUserList.set(this.localUser.userId,this.localUser),yield this.transBloudUsers(-1,st,!0);else if(this.room.conferenceMode===2)this.room.localIsAudience&&this.audiencesList.set(this.localUser.userId,this.localUser),yield this.transBloudUsers(-1,st,!0);else{for(;r<t;)o.push(a.bind(null,r)),r+=1;n(o)}})}handleUnSubCommonUser(){this.commonUserList.forEach(e=>{let t=e.getMainStreamModel();t!=null&&t.hasPulled&&t.unSubscribeStream()})}handleCommonUserChange(){let e=new Map;this.room.bmStreamVm.streamModels.forEach(t=>{(!t.getUser().isCommonUser||t.isLocal)&&e.set(t.userId,t)}),this.room.bmStreamVm.streamModels=e,this.commonUserList.clear()}getUsers(e,t,r="RWPAV"){return c(this,null,function*(){let{users:s,total:o}=yield this.boomCore.getUsers(e,r,t),a=[];return s.forEach(n=>{let l=this.toBMUser(n);a.push(l)}),{userList:a,total:o}})}getUsersList(e,t,r="",s=!1){return c(this,null,function*(){var d,p;let{users:o,total:a,pageIndex:n}=yield this.boomCore.getUsersList(e,r,t,s),l=[];return o.forEach(g=>{let S=this.toBMUser(g);l.push(S)}),s&&((d=this.room)==null?void 0:d.roomInfo.totalWaitRoomUserWatcher.value)!==a&&((p=this.room)==null||p.roomInfo.totalWaitRoomUserWatcher.next(a)),{userList:l,total:a,pageIndex:n}})}getTotalUserNumber(){return c(this,null,function*(){let e=()=>c(this,null,function*(){let{total:r}=yield this.boomCore.getUsers(0,"",1);return r}),t=r=>{e().then(s=>{r(s)}).catch(s=>{m("getTotalUserNumber error","","",[JSON.stringify(s)]),t(r)})};return new Promise((r,s)=>c(this,null,function*(){t(r)}))})}clearUsers(){this.userList.clear(),this.commonUserList.clear(),this.audiencesList.clear(),this.signalList.clear()}searchUsers(e,t){return c(this,null,function*(){try{let{users:r}=yield this.boomCore.searchUsers(e,t,!1),s=[],o=[],a=[];return r.forEach(n=>{let l=this.userList.get(n.userId);if(l){s.push(l);return}let d=this.commonUserList.get(n.userId);if(d){o.push(d);return}let p=this.audiencesList.get(n.userId);if(p)a.push(p);else{let g=this.createUser(n);a.push(g)}}),{userList:s,commonUserList:o,audienceList:a}}catch(r){return Promise.reject(new P(1e3,"boomCore.searchUsers\u53D1\u751F\u9519\u8BEF:"+(r==null?void 0:r.message)))}})}searchWaitRoomUsers(e,t){return c(this,null,function*(){try{let{users:r}=yield this.boomCore.searchUsers(e,t,!0),s=[];return r.forEach(o=>{let a=this.toBMUser(o);s.push(a)}),s}catch(r){return Promise.reject(new P(1e3,"search wait room users error"))}})}createUser(e){return new X(e)}};var V=class{constructor(e){this.isMeetingNotice=!1;this.userId=e.userId,this.message=e.message,this.role=e.role,this.isLocal=e.isLocal,this.avatar=e.avatar,this.nickName=e.nickName,this.to=e.to,this.isDanger=e.isDanger,this.seq=e.seq,this.failed=e.failed;let t=!1;e.isMeetingNotice&&(t=!0),this.isMeetingNotice=t,e.sendTime?(this.timeStamp=e.sendTime,this.time=Bt(this.timeStamp)):(this.timeStamp=new Date().getTime(),this.time=Bt(this.timeStamp))}};var br=require("lodash-es");function Z(i){let e=i.getStreamId();return i.getUserId().toString().endsWith(k)||e.startsWith(Ze)||i.getType&&i.getType()==="assist"}var tr=require("lodash-es"),Ce=require("@hysc/utils"),ie=require("@hysc/utils");function rr(i){var t,r;let e=i.getLocalStreamModel();if(e&&!(e!=null&&e.stream))i.bloudStream&&(u("brtc \u5DF2\u7ECF\u6CA1\u6709\u6D41\u4E86\uFF0Cbloud \u7684\u6D41\u8981\u53D6\u6D88\u6389"),i.bloudStream.unpublish(),e.updateBloudStream(void 0,i),i.bloudStream=null);else if(e&&e.stream){u("brtc \u6D41\u5DF2\u7ECF\u91CD\u63A8\u4E0A\u53BB\u4E86\uFF0Cbloud\u8981\u91CD\u65B0\u53D1\u63A8\u6D41\u7684\u903B\u8F91");let s=e.stream.getAudioOn(),o=e.stream.getVideoOn();i.publishBloudStream(s,o).then(()=>{var a;u("brtc stream repub success bloud repub success, notify reconnect success"),i.localStreamConnectErrorWatcher.next((0,Ce.BMStreamReconnectSuccess)(s,o)),(a=e.player)==null||a.destroy(),e.player=null,e.isInBig&&e.playInBig()})}if(i.localIsShare){u("brtc has share stream, and bloud need to republish share stream");let s=(t=i.room)==null?void 0:t.boomCore.shareScreenStream;if(s){let o=s.getAudioOn(),a=s.getVideoOn();try{(r=i.room)==null||r.boomCore.createAndPubBloudShareStream(o,a)}catch(n){m("bloud \u5171\u4EAB\u5C4F\u5E55\u6D41\uFF0C\u65AD\u7F51\u91CD\u8FDE\u91CD\u63A8\u6D41\u5931\u8D25")}}}}var se=(0,tr.debounce)(i=>{if(i.networkState.bloud&&i.networkState.brtc)try{i.streamQueue.restart()}catch(e){i.streamQueue.setQueueProcessor(i.queueProcessor),i.streamQueue.restart()}},300);function ir(i,e,t,r){let s=i.stream;if(u("\u672C\u5730\u63A8\u6D41","\u672C\u5730\u63A8\u6D41",s.getUserId()),s){let o=e.getLocalStreamModel();o&&e.updateStreamModel(o,s),r[ie.BrtcEvents.STREAM_PUBLISHED].next({published:!0,model:o}),t.conferenceMode===1&&t.getLocalParticipant().isAudience&&e.getStreamModels().forEach(n=>{n.sendMessage2Room()})}else r[ie.BrtcEvents.STREAM_PUBLISHED].next({published:!1})}function sr(i,e,t){u("bloud publish stream"),At(i,e,!0),t[ie.BloudEvents.STREAM_PUBLISHED].next(i)}function At(i,e,t=!1){var a,n;u("bloud stream update","","",[JSON.stringify(i)]);let r=i.userId,s=i.isScreen,o=e.streamModels.get(r);if(o)if(!s)o.updateBloudStream(i,e,t),o.getUser().updateSortNum();else{e.shareBloudStateMap.set(r,i);let l=(a=e.room)==null?void 0:a.userVM.getUser(r);l&&(l.hasShare=!0);let d={id:r,isWeb:o.isWeb,isScreen:s};(n=e.room)==null||n.addUser2Queue(d)}else m("bloud stream update, but can not get streamModel","",r)}function or(i,e,t){u("bloud unpublish stream","","",[JSON.stringify(i)]),Ci(i,e),t[ie.BloudEvents.STREAM_REMOVED].next(i)}function ar(i,e,t){u("bloud stream update","","",[JSON.stringify(i)]);let r=i.streamId,s=i.userId,o=i.params.customInfo,a;r.includes("_screen")?a=e.shareStreamModels.get(s):a=e.streamModels.get(s),a?a.updateBloudCustomInfo(o):m("bloud stream update, but can not get streamModel","",s,["streamId =>",r]),t[ie.BloudEvents.UPDATE_STREAM].next(i)}function Ci(i,e){var s,o,a,n;let t=i.userId;if(i.isScreen){let l=e.shareStreamModels.get(t),d=(a=e.room)==null?void 0:a.userVM.getUser(t);if(d&&(d.hasShare=!1),l){let p=l.stream;p?(p.destroy(),e.remoteStreamUnpublished(p)):e.removeShareStreamModelByUId(t);let g={id:t,isWeb:l.isWeb,isScreen:!0};(n=e.room)==null||n.streamQueue.removeUsers([g])}else v("bloud user unpublish share stream but can not get streamModel","",t)}else{let l=e.streamModels.get(t);if(l){l.updateBloudStream(void 0,e);let d=l.stream;d&&((s=e.room.audioPlayer)==null||s.removeStream(d),e.remoteStreamUnpublished(d),d.destroy());let p={id:t,isWeb:l.isWeb,isScreen:!1};(o=e.room)==null||o.streamQueue.removeUsers([p])}else v("bloud user unpublish stream but can not get streamModel","",t)}}function ot(i,e){setTimeout(()=>c(this,null,function*(){u("handle republish share stream");try{let t=i.boomCore.shareScreenStream;if(t){let r=t.getAudioOn(),s=t.getVideoOn();if(yield i.boomCore.shareBrtcClient.publish(t),yield i.boomCore.createAndPubBloudShareStream(r,s),Object.keys(e.localShareCustomStats).length){let o=e.localModel.userId;yield e.updateBloudStreamCustomStats(o,`${o}_screen`,e.localShareCustomStats)}u("handle republish share stream success"),e.localShareError.next((0,Ce.BMShareStreamReconnectSuccess)())}else v("no share stream exist, unpublish share stream, to prevent share stream state error"),e.toggleShareScreen(!1,void 0)}catch(t){m("handle republish share stream failed , now unpublish"),e.localShareError.next((0,Ce.BMShareStreamReconnectFailed)()),yield e.toggleShareScreen(!1,void 0)}}),1e3)}var W=require("@hysc/utils");function cr(i,e,t){let r=i.permission,s=i.total;r&&t.updateLocalUserPermission(r),e.isInWaitRoom=i.joinwait;let o=i.waitroom;e.roomInfo.isOpenWaitRoom.next(o),e.roomInfo.totalUserWatcher.next(s);let a=i.audiooff,n=i.selfopenaudio;(a!==e.roomInfo.audioOff||n!==e.roomInfo.selfopenaudio)&&a!=null&&n!=null&&e.roomInfo.setAudioOff(a,n)}function at(i,e,t,r,s=!0){return c(this,null,function*(){var o;u("room-connected",e.getLocalParticipant().userId,"room-connected",["roomId =>",e.roomInfo.roomID," local permission => ",i.permission]),e.forceId=(o=i.customStats.forceOn)==null?void 0:o.user,dr(i,e),cr(i,e,t),s&&r[W.BloudEvents.ROOM_CONNECTED].next(i)})}function nt(i){return c(this,null,function*(){u("join ready init users"),i.isInWaitRoom||(i.forceId&&(yield i.getForceUser(i.forceId)),yield i.userVM.initUsers(),i.localUser.isAudience&&i.queryUsers([i.localUser.userId]))})}function ur(i,e){u("update-stats "," ","",["options => ",JSON.stringify(i.options)]),i.options&&i.options[0]=="audiooff"||i.options[1]=="selfopenaudio"?e.roomInfo.setAudioOff(i.room.audiooff,i.room.selfopenaudio):i.options&&i.options[0]=="lock"?e.roomInfo.setlock(i.room.lock):i.options&&i.options[0]=="waitroom"&&e.roomInfo.isOpenWaitRoom.next(i.stats.waitroom)}function dr(i,e){e.roomInfo.msgSeq=i.msgSeq,i.customStats&&e.roomInfo.initCustomStats(i.customStats)}function nr(i,e,t,r,s){var l;i.updateUser(e,t);let o=t.stream,a=r.streamModels.get(e.userId);if(a||m("bmUserVM\u4E2D\u5B58\u5728\u8BE5\u7528\u6237\uFF0C\u4F46\u662FbmStreamModelVM\u4E2D\u4E0D\u5B58\u5728\u8BE5\u7528\u6237\uFF0C\u4F5B\u4E86"),!o.size){a!=null&&a.bloudStream&&(a.updateBloudStream(void 0,r),s.streamQueue.removeUsers([{id:e.userId,isScreen:!1},{id:e.userId,isScreen:!0}]));let d=r.shareStreamModels.get(e.userId);if(d&&!d.isLocal){try{(l=d.stream)==null||l.destroy()}catch(p){}r.removeShareStreamModel(d)}}o.get(`${e.userId}_screen`)&&s.addUser2Queue({id:e.userId,isScreen:!0,isWeb:e.isWeb});let n=o.get(e.userId);n&&(a==null||a.updateBloudStream({audio:n.audio_enable,video:n.video_enable,isScreen:!1},r))}function lr(i,e,t,r){i.isSingleColumns?e.commonUserList.forEach(s=>{let o=t.get(s.userId);if(o){t.delete(s.userId),nr(e,s,o,r,i);return}e.commonUserList.delete(s.userId),r.streamModels.delete(s.userId),r.shareStreamModels.delete(s.userId)}):e.userList.forEach(s=>{let o=t.get(s.userId);if(o){nr(e,s,o,r,i),s.isCommonUser?e.userList.delete(s.userId):t.delete(s.userId);return}e.userList.delete(s.userId),r.streamModels.delete(s.userId),r.shareStreamModels.delete(s.userId)}),i.userVM.addBcUsersMap(t)}function vi(i,e,t,r){return c(this,null,function*(){let s=e.getLocalParticipant().userId,{users:o}=yield e.boomCore.queryUsers([s]),a=o.get(s);a&&t.updateUser(t.localUser,a);let n=e.getLocalParticipant().isCommonUser;if(e.isBig&&n){let{users:l}=yield e.boomCore.getUsersList(0,st,500);lr(e,t,l,r)}else{let d=(yield e.userVM.getTotalUserNumber())/Ee,p=new Map;for(let g=0;g<d;g++){let{users:S}=yield e.boomCore.getUsers(g-1,"",Ee);S.forEach(C=>{p.set(C.userId,C)})}lr(e,t,p,r)}dr(i,e),e.userVM.updateAllSort(),e.bmStreamVm.updateModelSort()})}function mr(i,e,t){u("brtc room reconnecting"),e.networkState.brtc=!1,e.streamWSReconnectWatcher.next(!1),t[W.BrtcEvents.BRTC_ROOM_ROCONNECTING].next(i)}function hr(i,e,t){u("brtc room reconnected"),e.networkState.brtc=!0,se(e),t[W.BrtcEvents.BRTC_ROOM_RECONNECTED].next(i)}function pr(i,e,t){u("bloud room reconnecting"),e.networkState.bloud=!1,e.bloudWSReconnectWatcher.next(!1),t[W.BloudEvents.RECONNECTING].next(i)}function lt(i,e,t){return c(this,null,function*(){e.hasSyncPermission?(u("bloud room reconnected"),e.bloudWSReconnectWatcher.next(!1),t[W.BloudEvents.MOVE_USER_ROOM].next(null),yield e.syncRoom().then(()=>{e.hasSyncPermission=!0,t[W.BloudEvents.ROOM_CONNECTED].next(i)}).catch(r=>{if(m("sync room error",JSON.stringify(r)),r.code===43){e.hasSyncPermission=!1,t[W.BloudEvents.USER_REJOINED].next(r);return}else e.hasSyncPermission=!1,t[W.BloudEvents.TIMEOUT].next(r)})):t[W.BloudEvents.TIMEOUT].next(i)})}function gr(i,e,t,r,s){return c(this,null,function*(){u("bloud sync room completed"),cr(i,t,e),yield vi(i,t,e,r),rr(r),t.networkState.bloud=!0,se(t),t.bloudWSReconnectWatcher.next(!0),s[W.BloudEvents.ROOM_SYNCED].next(i)})}var yr=require("@hysc/utils");var{USER_REJOINED:Bi,PARTICIPANT_JOINED:Ai,CHANGE_MASTER:fr,EVICTED:Ui,UPDATE_USER:Ri,PARTICIPANT_LEFT:Ut,CUSTOM_MESSAGE:Pi,MOVE_USER_ROOM:Sr}=yr.BloudEvents;function Ir(i,e,t,r,s,o){var S,C,y,I,R,M,G,Q,q,Pe,ae,ne,j;let a=(C=(S=i==null?void 0:i.participant)==null?void 0:S.params)==null?void 0:C.info.sync,n=i.mode;u("\u7528\u6237\u5165\u4F1A","\u7528\u6237\u5165\u4F1A",i.user.userId,["sync => ",a,"mode =>",n]);let l=e.room.isBig&&t.streamModels.size>1e3,d=!1;if(a){let N=e.userList.get(i.user.userId);if(N||(N=e.commonUserList.get(i.user.userId)),N){N.inBackground!=!!((I=(y=i.user)==null?void 0:y.customInfo)!=null&&I.inBackground)&&(N.inBackground=!!((M=(R=i.user)==null?void 0:R.customInfo)!=null&&M.inBackground),N.watcher.next({operation:"inBackground",user:N}));return}}if(n===1&&((G=e.room)!=null&&G.isBig)&&(e.commonUserList.delete(i.user.userId),t.streamModels.delete(i.user.userId)),ke(i.user.permission.permission))e.userList.get(i.user.userId)&&(e.userList.delete(i.user.userId),t.streamModels.delete(i.user.userId),d=!0);else{let N=e.commonUserList.get(i.user.userId);(Q=e.room)!=null&&Q.isSingleColumns||N&&(e.commonUserList.delete(i.user.userId),t.streamModels.delete(i.user.userId),d=!0)}let g=e.addBCUser(i.user);if(g){g.inBackground!=!!((Pe=(q=i.user)==null?void 0:q.customInfo)!=null&&Pe.inBackground)&&(g.inBackground=!!((ne=(ae=i.user)==null?void 0:ae.customInfo)!=null&&ne.inBackground),g.watcher.next({operation:"inBackground",user:g}));let N=!1;if(Me.forEach(le=>{g!=null&&g.userId.includes(le)&&(N=!0)}),d?e.updateAllSort():(j=e.room)!=null&&j.isSingleColumns?e.updateCommonUserSort():g?g.isCommonUser?l?e.updateDelayCommonUserSort():e.updateCommonUserSort():e.updateUserSort():e.updateAllSort(),t.updateModelSort(),!N){if(i.mode!==1){let le=new V({isMeetingNotice:!0,userId:g.userId,message:g.nickName+`\u52A0\u5165${r.roomType==2?"\u76F4\u64AD":"\u4F1A\u8BAE"}`});s.addMessage(le,!0)}o[Ai].next({user:g,mode:n,data:i})}}}function Er(i,e,t,r,s,o,a){var l;let n=i.userIds;u("bloud leave users","","",["userIds =>",n]),n.length&&(n.forEach(d=>{let p=Rt(d,e,t,s);p&&Cr(p,o,a,r,!0,0)}),(l=e.room)!=null&&l.isSingleColumns?e.updateCommonUserSort():e.updateAllSort(),s.updateModelSort())}function Mr(i,e,t,r,s,o,a){var p;u(`bloud participant left ===>${i.userId}, ${i.mode}`);let n=i.mode===1,l=i.userId,d=t.isBig&&s.streamModels.size>1e3;if(l){let g=Rt(l,e,t,s);if((p=e.room)!=null&&p.isSingleColumns?e.updateCommonUserSort():g?g.isCommonUser?d?e.updateDelayCommonUserSort():e.updateCommonUserSort():e.updateUserSort():e.updateAllSort(),s.updateModelSort(),n){r[Ut].next({user:g,mode:i.mode,data:i});return}g&&Cr(g,o,a,r,i.mode!==1,i.mode)}else v("participant-left\u89E6\u53D1=======>\u4F46\u662F\u8BE5\u7528\u6237\u4FE1\u606F\u4E0D\u5B58\u5728",T,null,[i.userId]),r[Ut].next({user:i.userId,mode:i.mode,data:i})}function Cr(i,e,t,r,s,o){let a=!1;if(Me.forEach(n=>{i!=null&&i.userId.includes(n)&&(a=!0)}),!a){if(s){let n=new V({isMeetingNotice:!0,userId:i.userId,message:(i==null?void 0:i.nickName)+`\u79BB\u5F00${e.roomType==2?"\u76F4\u64AD":"\u4F1A\u8BAE"}`});t.addMessage(n,!0)}r[Ut].next({user:i,mode:o})}}function Rt(i,e,t,r){let s=e.getUser(i);return e.removeUser(i),t.streamQueue.removeUsers([{id:i,isScreen:!1},{id:i,isScreen:!0}]),r.removeStreamModelByUId(i),r.removeShareStreamModelByUId(i),t.roomInfo.removeRaiseHandUser(i),t.roomInfo.removeVideoRaiseHandUser(i),t.roomInfo.removeSimpleRaiseHandUser(i),r.shareBloudStateMap.delete(i),s}function vr(i,e,t,r,s){u("changeMaster =>","changeMaster","",["master: => ",i.master,"oldMaster =>",i.oldMaster]);let o=i.master,a=i.oldMaster,n=i.isKeep;if(!o)v("change-master\u89E6\u53D1=======>\u4F46\u662F\u623F\u95F4\u5185\u627E\u4E0D\u5230master",T,null,o),r[fr].next(null);else{let l=e.updateMaster(o,a,n);l.master&&(l.master.watcher.next({operation:"getMaster",user:l.master}),t.userVM.masterUserWatcher.next(l.master)),l.oldMaster&&(l.oldMaster.watcher.next({operation:"removeMaster",user:l.oldMaster}),n&&l.oldMaster.watcher.next({operation:"getManager",user:l.oldMaster}));let d=s.getStreamModelByUId(a),p=s.getStreamModelByUId(o);d==null||d.updateSortNum(),p==null||p.updateSortNum(),r[fr].next({master:l.master,oldMaster:l.oldMaster,data:i})}}function Br(i,e,t,r,s){var l;let o=i.userId,a=e.getUser(o);u("\u8E22\u51FA\u7528\u6237 => ","evict ",a==null?void 0:a.userId,["nickname => ",a==null?void 0:a.nickName]);let n=Rt(o,e,r,t);(l=e.room)!=null&&l.isSingleColumns?e.updateCommonUserSort():n?n.isCommonUser?e.updateCommonUserSort():e.updateUserSort():e.updateAllSort(),t.updateModelSort(),s[Ui].next(i)}function Ar(i,e,t,r,s){var a;let o=(a=i.user)==null?void 0:a.userId;if(u("\u7528\u6237\u4FE1\u606F\u88AB\u6539\u53D8","",o),o){let n=e.getUser(o),l=r.getStreamModelByUId(o);n?n.updateUserInfo(i.user,i.participant,t):(console.warn("participant-update: bmUser is null"),t.queryUsers([o])),l&&l.updateSortNum(!0),s[Ri].next({bmUser:n,params:i.participant.params})}}var Pt=(0,br.debounce)((i,e)=>{i[Bi].next(e)},1e3);function Ur(i,e,t,r){return c(this,null,function*(){u("bloud move user room","","",[t]);let s=t.toWait;if(i.isInWaitRoom=s,s){i.handleResetOtherStreamStatus(),e.userList.clear(),e.userListWatcher.next([]),e.commonUserList.clear(),e.commonUserListWatcher.next([]),e.getForceUserWatcher.next(!1),i.bmStreamVm.streamModels.clear(),i.bmStreamVm.clearDetector(),i.bmStreamVm.speakerWatcher.next(null),r[Pi].next(null),i.messageWatcher.next({type:"init",status:!1,isNotCancelRootReport:!1}),i.audioPlayer.destroy();let o=i.bmStreamVm.localModel;o&&i.bmStreamVm.streamModels.set(o.userId,o),i.bmStreamVm.streamModelsWatcher.next([]),i.bmStreamVm.shareStreamModels.clear(),i.bmStreamVm.shareStreamModelsWatcher.next([]),i.roomInfo.raiseHandsWatcher.next([]),i.roomInfo.raiseVideoHandsWatcher.next([]),i.roomInfo.raiseSimpleHandsWatcher.next([]),r[Sr].next(s),Object.values(i.observes).forEach(a=>{a.next(null)})}else{let{audiooff:o,selfopenaudio:a,lock:n}=t.info;n!==i.roomInfo.lock&&i.roomInfo.setlock(n),(o!==i.roomInfo.audioOff||a!==i.roomInfo.selfopenaudio)&&i.roomInfo.setAudioOff(o,a),yield at(t.info,i,e,r,!0),yield nt(i),r[Sr].next(s)}})}var ct=require("@hysc/utils");function Pr(i,e,t,r){var o,a,n,l,d,p,g,S,C;let s=L({},i);if(s.message){if(s.message=typeof s.message=="string"?JSON.parse(s.message):s.message,u("new-message","","",[" method => ",s.message.method]),s.message.method==="send-talk"){let y=s.user===((o=e.getLocalUser())==null?void 0:o.userId),I=((n=(a=s.message)==null?void 0:a.params)==null?void 0:n.status)||"",R=(p=(d=(l=s.message)==null?void 0:l.params)==null?void 0:d.stream)==null?void 0:p.avatar,M=i.seq,G=new V({userId:s.user,message:I,isLocal:y,avatar:R,to:s.to,seq:M,nickName:(C=(S=(g=s.message)==null?void 0:g.params)==null?void 0:S.stream)==null?void 0:C.nickname,sendTime:new Date().getTime()});t.addMessage(G,!1)}r[ct.BloudEvents.SEND_MESSAGE].next(s)}}function Nr(i,e,t){var s,o,a,n,l,d,p,g,S,C,y,I,R;let r=L({},i);if(r.message)if(r.message=typeof r.message=="string"?JSON.parse(r.message):r.message,u("custom-message","","",[" method => ",r.message.method]),r.message.method=="video-force-change"){let M=r.message.params.status=="enabled";u(`\u8FDC\u7AEF\u63A7\u5236\u672C\u5730\u6444\u50CF\u5934: ${M}`),e.messageWatcher.next({type:"video-force-change",status:M,fromUserId:r.user})}else if(r.message.method=="audio-force-change"){let M;r.message.params.status=="checkUserAudio"?M=r.message.params.status:M=r.message.params.status=="enabled",u(`\u8FDC\u7AEF\u63A7\u5236\u672C\u5730\u9EA6\u514B\u98CE: ${M}`),e.messageWatcher.next({type:"audio-force-change",status:M,fromUserId:r.user,isNotCancelRootReport:(s=r.message.params)==null?void 0:s.isNotCancelRootReport})}else if(r.message.method==="raise-hands")e.raiseHandleRespWatcher.next(r.message.params);else if(r.message.method==="give-like")(g=e.roomVM)==null||g.giveLikeList.push({userId:r.user,nickName:(n=(a=(o=r.message)==null?void 0:o.params)==null?void 0:a.stream)==null?void 0:n.nickname,time:new Date().getTime(),type:(p=(d=(l=r.message)==null?void 0:l.params)==null?void 0:d.stream)==null?void 0:p.type}),(C=e.roomVM)==null||C.giveLikeListWatcher.next((S=e.roomVM)==null?void 0:S.giveLikeList);else if(r.message.method==="resp-to-check-devices")(y=r.message)!=null&&y.params&&(r.message.params.fromUserId=r.user),t[ct.BloudEvents.CUSTOM_MESSAGE].next(r);else if(r.message.method==="usercount"){if(r.message.params){let M=(R=(I=r.message)==null?void 0:I.params)==null?void 0:R.total;M?(M=Number(M),M<0&&(v("\u670D\u52A1\u8FD4\u56DE\u7684usercount\u4E3A\u8D1F\u6570,"+M),M=0)):(v("\u670D\u52A1\u672A\u8FD4\u56DEusercount,"+M),M=0),e.roomInfo.totalUserWatcher.next(M)}}else if(r.message.method==="waitusercount"){if(r.message.params){let M=r.message.params.total;e.roomInfo.totalWaitRoomUserWatcher.next(M)}}else t[ct.BloudEvents.CUSTOM_MESSAGE].next(r)}var ve=require("@hysc/utils");var ut=0;var dt=0,Ve=new Set;function Nt(i,e,t,r,s){return c(this,null,function*(){if(m("brtc error","brtc error","",[new Date().toLocaleTimeString(),JSON.stringify(i),i.getCode()]),i.getCode()===4002){e.BRTCConnectFailed=!0,e.networkState.brtc=!1,v("brtc \u4FE1\u4EE4\u901A\u9053\u9519\u8BEF\uFF0C\u9700\u8981\u91CD\u65B0\u8D70\u5165\u4F1A","brtc error",""),e.streamWSReconnectWatcher.next(!1);try{yield t.brtcClient.leave("room_close")}catch(a){m("brtc \u79BB\u4F1A\u5931\u8D25")}setTimeout(()=>c(this,null,function*(){e.handleResetOtherStreamStatus(),yield Tr(t,e,s,i).catch(a=>{u("brtc\u65AD\u7F51\u91CD\u8FDE\u5931\u8D25, \u5904\u7406\u4E00\u4E0B\u9000\u4F1A\u903B\u8F91","","",[JSON.stringify(a)]),s[ve.BrtcEvents.ERROR].next(i)})}),1e3)}else s[ve.BrtcEvents.ERROR].next(i)})}function Tr(i,e,t,r){return c(this,null,function*(){return new Promise((s,o)=>{setTimeout(()=>{u("brtc\u91CD\u8FDE"),i.brtcClient.join(i.roomId,i.userId,i.brtcSig).then(()=>c(this,null,function*(){u("brtc\u65AD\u7F51\u91CD\u8FDE\u6210\u529F, \u91CD\u65B0\u5904\u7406\u62C9\u6D41\u548C\u63A8\u6D41"),e.networkState.brtc=!0,setTimeout(()=>{e.brtcNetEnableWatcher.next(!0)},2e3),se(e),e.BRTCConnectFailed=!1,ut=0,yield e.handleRePushSelf(),e.streamWSReconnectWatcher.next(!0),s(!0)})).catch(a=>{let n=a.getCode();u("\u65AD\u7F51\u91CD\u8FDE\u5165\u4F1A\u5931\u8D25","","",[a,n]),ut<=10?(ut+=1,i.brtcClient.isJoinning=!1,setTimeout(()=>{Tr(i,e,t,r)},2*1e3)):(m("brtc\u65AD\u7F51\u91CD\u8FDE\u5931\u8D25\uFF0C\u5904\u7406\u4E00\u4E0B\u9000\u4F1A"),ut=0,t[ve.BrtcEvents.ERROR].next(r),o(!1))})},7*1e3)})})}function Tt(i){return c(this,null,function*(){return new Promise((e,t)=>{setTimeout(()=>{u("\u5171\u4EAB\u5C4F\u5E55\u91CD\u8FDE"),i.shareBrtcClient.join(i.roomId,i.userId,i.brtcSig).then(()=>{dt=0,e(!0)}).catch(r=>{let s=r.getCode();if(u("\u5171\u4EAB\u5C4F\u5E55\u65AD\u7F51\u91CD\u8FDE\u5165\u4F1A\u5931\u8D25","","",[r,s]),dt<=3)dt+=1,Tt(i);else throw m("\u5171\u4EAB\u5C4F\u5E55\u7528\u6237\u91CD\u8FDE\u5931\u8D25\uFF0C\u5904\u7406\u4E00\u4E0B\u53D6\u6D88\u5171\u4EAB\u5C4F\u5E55"),dt=0,new Error("\u5171\u4EAB\u5C4F\u5E55\u91CD\u8FDE\u5931\u8D25")})},7*1e3)})})}function xr(i,e,t,r,s){return c(this,null,function*(){m("network-error","network-error","local-client",["\u672C\u5730\u94FE\u63A5\u51FA\u73B0\u95EE\u9898","netconnectiong => ",i.netConnecting]),i.netConnecting?yield lt(r,i,s):s[ve.BloudEvents.TIMEOUT].next(r)})}var wr=require("@hysc/utils");function Lr(i,e,t){let r=i==null?void 0:i.updateKeys;u("update-custom-stats"," "," ",["updateKeys => ",JSON.stringify(r)]),(r!=null&&r.includes("chatNotice")||r!=null&&r.includes("chatNoticeRich")||r!=null&&r.includes("fileUpdateLook")||r!=null&&r.includes("fileUpdateDown")||r!=null&&r.includes("fileUpdateEdit")||r!=null&&r.includes("fileUpdateModel")||r!=null&&r.includes("screenShareModel")||r!=null&&r.includes("onlyOnePersonShare")||r!=null&&r.includes("chatEnable")||r!=null&&r.includes("giveLikeEnable")||r!=null&&r.includes("cloudRecord")||r!=null&&r.includes("joinAudioEnable")||r!=null&&r.includes("joinVideoEnable")||r!=null&&r.includes("userListEnable")||r!=null&&r.includes("audioEnable")||r!=null&&r.includes("videoEnable")||r!=null&&r.includes("modifyNameEnable")||r!=null&&r.includes("backgroundAIEnable")||r!=null&&r.includes("recordEnable")||r!=null&&r.includes("joinMicrophoneDisable")||r!=null&&r.includes("joinCameraDisable")||r!=null&&r.includes("raiseHandEnable")||r!=null&&r.includes("forceOpenUserMic")||r!=null&&r.includes("forceOpenUserCamera")||r!=null&&r.includes("joinCueVoice"))&&e.roomInfo.updateOperationPermission(i.customStats),(r!=null&&r.includes("chatNotice")||r!=null&&r.includes("chatNoticeRich"))&&e.roomInfo.chatNoticeWatcher.next(i),t[wr.BloudEvents.UPDATE_CUSTOM_STATS].next(i)}var Or=bt(require("@hysc/p-queue")),mt=class{constructor(e,t=!0){this.queue=new Or.default({concurrency:e,autoStart:t,carryoverConcurrencyCount:!0,timeout:3*1e3,completeAction:r=>{console.log("task complete",r)}}),this.queueArray=[],this.isTaskPending=t}addQueue(e,t,r=0,s=""){this.queue.isPaused&&this.queue.start();let o={};o.taskID=t,o.status="pending",this.queue.add(e,{priority:r,timeout:3*1e3},a=>{if(o.status=a,o.status==="resolve"||o.status==="resolve-paused"||o.status==="resolve-timeout"){let n=this.queueArray.findIndex(l=>o.taskID===l.taskID);n!==-1&&this.queueArray.splice(n,1)}}),this.queueArray.push(o)}clearQueue(){this.queue.clear(),this.queueArray=[],this.queue.onEmpty().then(e=>{}),this.queue.onIdle().then(e=>{console.log("clearQueue\u5168\u90E8\u5B8C\u4E8B")})}startQueue(){this.queue.start()}pauseQueue(){return this.queue.pause(),console.log(`size:${this.size()}`),this.isTaskPending=!1,this.queue.onEmpty().then(e=>{}),this.queue.onIdle().then(e=>{}),this.queueArray}size(){return this.queue.size}pending(){return this.queue.pending}checkTaskStatus(){return this.isTaskPending}setTaskStatus(e){this.isTaskPending=e}onIdle(){return this.queue.onIdle()}onEmpty(){return this.queue.onEmpty()}},F=new mt(4),B=new mt(10);var Dr=require("@hysc/utils"),h=require("@hysc/utils");function _r(i,e,t,r,s){u("attachEvents init");let o={};i.on("toggle-screen-share",()=>{m("share stream video track ended, now unpublish share stream"),t.localShareError.next((0,Dr.BMShareStreamReconnectFailed)()),t.localShareEndedError.next(!0)}),i.on("client-banned",()=>c(this,null,function*(){yield s.boomCore.leaveShare()})),i.on("share-brtc-error",n=>c(this,null,function*(){if(n.getCode()===4002)try{u("brtc share client disconnected, reconnecting"),yield i.shareBrtcClient.leave("room_close"),Tt(i).then(()=>c(this,null,function*(){if(u("brtc share client reconnected, retry repub share stream"),yield Y(1e3),i.shareScreenStream){let d=i.shareScreenStream.getAudioOn(),p=i.shareScreenStream.getVideoOn();i.shareBrtcClient.publish(i.shareScreenStream),i.createAndPubBloudShareStream(d,p)}})).catch(()=>{throw new Error("\u5171\u4EAB\u5C4F\u5E55\u91CD\u65B0\u5165\u4F1A\u5931\u8D25")})}catch(d){t.toggleShareScreen(!1,void 0).then(()=>{}).catch(p=>{m("\u5171\u4EAB\u53D1\u751F\u9519\u8BEF\u9000\u4F1A\u5931\u8D25","","",[JSON.stringify(p)])})}}));let a=[];return a=a.concat(Object.values(h.BloudEvents)),a=a.concat(Object.values(h.BrtcEvents)),a=a.concat(Object.values(h.CustomEvents)),a.forEach(n=>{o[n]=new kr.BehaviorSubject(null)}),a.forEach(n=>{switch(n){case h.BrtcEvents.STREAM_PUBLISHED:i.on(h.BrtcEvents.STREAM_PUBLISHED,l=>{B.addQueue(ir.bind(null,l,t,s,o),h.BrtcEvents.STREAM_PUBLISHED)});break;case h.BrtcEvents.BRTC_SYNC_ROOM_COMPLETED:i.on(h.BrtcEvents.BRTC_SYNC_ROOM_COMPLETED,()=>c(this,null,function*(){B.addQueue(s.handleResetOtherStreamStatus.bind(s),h.BrtcEvents.BRTC_SYNC_ROOM_COMPLETED)}));break;case h.CustomEvents.BRTC_SHARE_SYNC_ROOM_COMPLETED:i.on(h.CustomEvents.BRTC_SHARE_SYNC_ROOM_COMPLETED,()=>{u("brtc share client sync completed, retry publish share stream"),B.addQueue(ot.bind(null,s,t),h.CustomEvents.BRTC_SHARE_SYNC_ROOM_COMPLETED)});break;case h.BrtcEvents.BRTC_ROOM_ROCONNECTING:i.on(h.BrtcEvents.BRTC_ROOM_ROCONNECTING,l=>{B.addQueue(mr.bind(null,l,s,o),h.BrtcEvents.BRTC_ROOM_ROCONNECTING)});break;case h.BrtcEvents.BRTC_ROOM_RECONNECTED:i.on(h.BrtcEvents.BRTC_ROOM_RECONNECTED,l=>c(this,null,function*(){B.addQueue(hr.bind(null,l,s,o),h.BrtcEvents.BRTC_ROOM_RECONNECTED)}));break;case h.BrtcEvents.CLIENT_BANNED:i.on(h.BrtcEvents.CLIENT_BANNED,l=>{u("brtc client banned"),Pt(o,l)});break;case h.BrtcEvents.ERROR:i.on(h.BrtcEvents.ERROR,l=>c(this,null,function*(){s.netConnecting?B.addQueue(Nt.bind(null,l,s,i,t,o),h.BrtcEvents.ERROR):Ve.add(Nt.bind(null,l,s,i,t,o))}));break;case h.BloudEvents.SYNC_FAILED:i.on(h.BloudEvents.SYNC_FAILED,l=>{m("bloud sync failed, leave room"),o[h.BloudEvents.TIMEOUT].next(l)});break;case h.BloudEvents.ROOM_CONNECTED:i.on(h.BloudEvents.ROOM_CONNECTED,l=>c(this,null,function*(){return at(l,s,e,o)}));break;case h.CustomEvents.JOIN_READY:i.on(h.CustomEvents.JOIN_READY,()=>nt(s));break;case h.BloudEvents.PARTICIPANT_JOINED:i.on(h.BloudEvents.PARTICIPANT_JOINED,l=>c(this,null,function*(){s.isInWaitRoom||B.addQueue(Ir.bind(null,l,e,t,i,r,o),h.BloudEvents.PARTICIPANT_JOINED)}));break;case h.BloudEvents.PARTICIPANT_LEFT:i.on(h.BloudEvents.PARTICIPANT_LEFT,l=>{s.isInWaitRoom||B.addQueue(Mr.bind(null,l,e,s,o,t,i,r),h.BloudEvents.PARTICIPANT_LEFT)});break;case h.BloudEvents.LEAVE_USERS:i.on(h.BloudEvents.LEAVE_USERS,l=>B.addQueue(Er.bind(null,l,e,s,o,t,i,r),h.BloudEvents.LEAVE_USERS));break;case h.BloudEvents.CHANGE_MASTER:i.on(h.BloudEvents.CHANGE_MASTER,l=>{B.addQueue(vr.bind(null,l,e,s,o,t),h.BloudEvents.CHANGE_MASTER)});break;case h.BloudEvents.SEND_MESSAGE:i.on(h.BloudEvents.SEND_MESSAGE,l=>{B.addQueue(Pr.bind(null,l,e,r,o),h.BloudEvents.SEND_MESSAGE)});break;case h.BloudEvents.CUSTOM_MESSAGE:i.on(h.BloudEvents.CUSTOM_MESSAGE,l=>{B.addQueue(Nr.bind(null,l,s,o),h.BloudEvents.CUSTOM_MESSAGE)});break;case h.BloudEvents.EVICTED:i.on(h.BloudEvents.EVICTED,l=>c(this,null,function*(){B.addQueue(Br.bind(null,l,e,t,s,o),h.BloudEvents.EVICTED)}));break;case h.BloudEvents.UPDATE_USER:i.on(h.BloudEvents.UPDATE_USER,l=>{B.addQueue(Ar.bind(null,l,e,s,t,o),h.BloudEvents.UPDATE_USER)});break;case h.BloudEvents.UPDATE_STATS:i.on(h.BloudEvents.UPDATE_STATS,l=>{B.addQueue(ur.bind(null,l,s),h.BloudEvents.UPDATE_STATS)});break;case h.BloudEvents.UPDATE_CUSTOM_STATS:i.on(h.BloudEvents.UPDATE_CUSTOM_STATS,l=>{B.addQueue(Lr.bind(null,l,s,o),h.BloudEvents.UPDATE_CUSTOM_STATS)});break;case h.BloudEvents.TIMEOUT:i.on(h.BloudEvents.TIMEOUT,l=>{B.addQueue(xr.bind(null,s,i,t,l,o),h.BloudEvents.TIMEOUT)});break;case h.BloudEvents.USER_REJOINED:i.on(h.BloudEvents.USER_REJOINED,l=>{u("bloud user rejoined"),Pt(o,l)});break;case h.BloudEvents.RECONNECTING:i.on(h.BloudEvents.RECONNECTING,l=>{B.addQueue(pr.bind(null,l,s,o),h.BloudEvents.RECONNECTING)});break;case h.BloudEvents.RECONNECTED:i.on(h.BloudEvents.RECONNECTED,l=>c(this,null,function*(){B.addQueue(lt.bind(null,l,s,o),h.BloudEvents.RECONNECTED)}));break;case h.BloudEvents.ROOM_SYNCED:i.on(h.BloudEvents.ROOM_SYNCED,l=>c(this,null,function*(){B.addQueue(gr.bind(null,l,e,s,t,o),h.BloudEvents.ROOM_SYNCED)}));break;case h.BloudEvents.STREAM_PUBLISHED:i.on(h.BloudEvents.STREAM_PUBLISHED,l=>c(this,null,function*(){B.addQueue(sr.bind(null,l,t,o),h.BloudEvents.STREAM_PUBLISHED)}));break;case h.BloudEvents.STREAM_REMOVED:i.on(h.BloudEvents.STREAM_REMOVED,l=>c(this,null,function*(){B.addQueue(or.bind(null,l,t,o),h.BloudEvents.STREAM_REMOVED)}));break;case h.BloudEvents.UPDATE_STREAM:i.on(h.BloudEvents.UPDATE_STREAM,l=>c(this,null,function*(){B.addQueue(ar.bind(null,l,t,o),h.BloudEvents.UPDATE_STREAM)}));break;case h.BloudEvents.STREAM_UPDATE:i.on(h.BloudEvents.STREAM_UPDATE,l=>c(this,null,function*(){B.addQueue(At.bind(null,l,t),h.BloudEvents.STREAM_UPDATE)}));break;case h.BloudEvents.MOVE_USER_ROOM:i.on(h.BloudEvents.MOVE_USER_ROOM,l=>c(this,null,function*(){B.addQueue(Ur.bind(null,s,e,l,o),h.BloudEvents.MOVE_USER_ROOM)}));break;default:i.on(n,l=>o[n].next(l));break}}),o}var b=require("@hysc/utils"),Vr=require("rxjs");var We=class{constructor(e,t,r){this.room=null;this.tipQueueObj={};this.roomInfo=r,this.userVM=t,this.boomCore=e,this.giveLikeList=[],this.giveLikeListWatcher=new Vr.Subject}initWithRoom(e){this.room=e}evictUser(e,t){return c(this,null,function*(){if(!e)return Promise.reject((0,b.BmEvictUserError)("\u672A\u4F20\u9012\u7528\u6237id"));if(!this.userVM.checkLocalHasMaster())return Promise.reject((0,b.BmEvictUserError)("\u53EA\u6709\u4E3B\u6301\u4EBA\u6743\u9650\u624D\u80FD\u8E22\u51FA\u7528\u6237"));if(this.userVM.checkIsMaster(e))return Promise.reject((0,b.BmEvictUserError)("\u4E3B\u6301\u4EBA\u4E0D\u80FD\u88AB\u8E22\u51FA"));try{yield this.boomCore.evictUser(e,t)}catch(r){return Promise.reject((0,b.BmEvictUserError)(`\u8E22\u51FA\u7528\u6237\u5931\u8D25${JSON.stringify(r)}`))}})}updateUser(e,t){return c(this,null,function*(){if(!e)return Promise.reject((0,b.BmUpdateUserError)("\u672A\u4F20\u9012\u76EE\u6807\u7528\u6237id"));if(!t)return Promise.reject((0,b.BmUpdateUserError)("info\u4E3A\u7A7A,\u8BF7\u5199\u5165\u8981\u66F4\u65B0\u7684\u4FE1\u606F"));yield this.boomCore.updateUser(e,{customInfo:t}).catch(r=>Promise.reject((0,b.BmUpdateUserError)(`boomCore updateUser\u51FA\u9519 ${JSON.stringify(r)}`)))})}changeMaster(e,t){return c(this,null,function*(){var r;if(!e)return Promise.reject((0,b.BmChangeMasterError)("\u672A\u4F20\u9012\u4E3B\u6301\u4EBAid"));if(this.userVM.checkLocalHasMaster()||(r=this.userVM.getUser(e))!=null&&r.isCreate)try{yield this.boomCore.changeMaster(e,t)}catch(s){return Promise.reject((0,b.BmChangeMasterError)(`boomCore changeMaster error ${s}`))}else return console.error("\u8BE5\u7528\u6237\u6CA1\u6709\u7BA1\u7406\u5458\u6743\u9650, \u65E0\u6CD5\u6539\u53D8\u4E3B\u6301\u4EBA",T,e),Promise.reject((0,b.BmChangeMasterError)("\u60A8\u6CA1\u6709\u7BA1\u7406\u5458\u6743\u9650, \u65E0\u6CD5\u6539\u53D8\u4E3B\u6301\u4EBA"))})}updateManager(e,t,r=!0){return c(this,null,function*(){return e?this.userVM.checkLocalHasMaster()?this.userVM.updateManager(e,t,r):(console.error("\u8BE5\u7528\u6237\u6CA1\u6709\u7BA1\u7406\u5458\u6743\u9650, \u65E0\u6CD5\u6539\u53D8\u8054\u5E2D\u4E3B\u6301\u4EBA",T,e),Promise.reject((0,b.BmUpdateManagerError)("\u8BE5\u7528\u6237\u6CA1\u6709\u7BA1\u7406\u5458\u6743\u9650, \u65E0\u6CD5\u6539\u53D8\u4E3B\u6301\u4EBA"))):Promise.reject((0,b.BmUpdateManagerError)("\u672A\u4F20\u9012\u8054\u5E2D\u4E3B\u6301\u4EBAid"))})}changeNickName(e,t){return c(this,null,function*(){let r={nickname:t};yield this.updateUser(e,r)})}sendMessageWithMaster(e,t){return c(this,null,function*(){if(!this.userVM.checkLocalHasMaster())return Promise.reject((0,b.BmSetRemoteAudioEnable)("\u60A8\u4E0D\u662F\u4E3B\u6301\u4EBA\uFF0C\u6CA1\u6709\u8BE5\u6743\u9650"));if(t&&!this.userVM.getUser(t))return Promise.reject((0,b.BmSetRemoteAudioEnable)(`uid: ${t} \u672A\u627E\u5230\u7528\u6237`));try{yield this.boomCore.customMessage(JSON.stringify(e),t)}catch(r){return Promise.reject(r)}})}setRemoteAudioEnable(e,t,r){return c(this,null,function*(){let s=e?"enabled":"disabled";s=="enabled"&&r&&(s="checkUserAudio");let o={domain:"room-control",method:"audio-force-change",params:{status:s,isNotCancelRootReport:r,fromUserId:this.boomCore.getLocalParticipant().getID()}};this.sendMessageWithMaster(o,t).catch(a=>Promise.reject((0,b.BmSetRemoteAudioEnable)(`boomCore.sendMessage\u53D1\u751F\u9519\u8BEF ${a}`)))})}setRemoteVideoEnable(e,t){return c(this,null,function*(){let r={domain:"room-control",method:"video-force-change",params:{status:e?"enabled":"disabled",fromUserId:this.boomCore.getLocalParticipant().getID()}};this.sendMessageWithMaster(r,t).catch(s=>Promise.reject((0,b.BmSetRemoteVideoEnable)(`boomCore.sendMessage\u53D1\u751F\u9519\u8BEF ${s}`)))})}closeRemoteShare(e){return c(this,null,function*(){let t={domain:"room-control",method:"close-remote-share",params:{fromUserId:this.boomCore.getLocalParticipant().getID()}};this.sendMessageWithMaster(t,e).catch(r=>Promise.reject((0,b.BmSetRemoteAudioEnable)(`boomCore.sendMessage\u53D1\u751F\u9519\u8BEF ${r}`)))})}tipUser(e,t,r,s){return c(this,null,function*(){let o={domain:"room-control",method:"tip-user",params:{fromUserId:this.boomCore.getLocalParticipant().getID(),message:t,richMsg:r}};s?this.tipQueueObj[e]=setTimeout(()=>{this.sendMessageWithMaster(o,e)},(s.minutes||0)*60*1e3+(s.seconds||0)*1e3):this.sendMessageWithMaster(o,e).catch(a=>Promise.reject((0,b.BmSetRemoteAudioEnable)(`boomCore.sendMessage\u53D1\u751F\u9519\u8BEF ${JSON.stringify(a)}`)))})}raiseHands(e,t){return c(this,null,function*(){var o;let r=(o=this.room)==null?void 0:o.getLocalParticipant().getID(),s={};e==="raiseHand"?(s.raiseHand=t,s.raiseHandTime=Math.floor(new Date().getTime()/1e3)):s[e==="audio"?"raiseHandsAudio":"raiseHandsVideo"]=t,yield this.updateUser(r,s)})}handleRaiseHands(e,t,r){return c(this,null,function*(){var o,a,n;let s={domain:"user-control",method:"raise-hands",params:{raiseHandsType:e,raiseHands:t}};try{if(r)yield this.boomCore.customMessage(JSON.stringify(s),r);else{let l=(o=this.room)==null?void 0:o.roomInfo.raiseHandsWatcher.getValue(),d=(a=this.room)==null?void 0:a.roomInfo.raiseVideoHandsWatcher.getValue(),p=(n=this.room)==null?void 0:n.roomInfo.raiseSimpleHandsWatcher.getValue();e===0&&(l==null||l.forEach(g=>{this.boomCore.customMessage(JSON.stringify(s),g.userId)}),d==null||d.forEach(g=>{this.boomCore.customMessage(JSON.stringify(s),g.userId)})),e===1&&(l==null||l.forEach(g=>{this.boomCore.customMessage(JSON.stringify(s),g.userId)})),e===2&&(d==null||d.forEach(g=>{this.boomCore.customMessage(JSON.stringify(s),g.userId)})),e===3&&(p==null||p.forEach(g=>{this.boomCore.customMessage(JSON.stringify(s),g.userId)}))}}catch(l){return Promise.reject(new P(1e3,"boomCore.sendMessage\u53D1\u751F\u9519\u8BEF"))}})}updateCustomStats(e,t=!1){return c(this,null,function*(){yield this.boomCore.updateCustomStats(e,t).catch(r=>Promise.reject((0,b.updateCustomStatsError)(`${JSON.stringify(e)} - ${JSON.stringify(r)}`)))})}sendChatNotice(e,t,r){return c(this,null,function*(){yield this.updateCustomStats({chatNotice:e,chatNoticeRich:t,showTipNotice:r}).catch(s=>s)})}giveLikeEnable(e){return c(this,null,function*(){yield this.updateCustomStats({giveLikeEnable:e}).catch(t=>t)})}changeAutoMute(e){return c(this,null,function*(){return this.updateCustomStats({autoMute:e})})}allUserReceiveJoinLeaveMessages(e){return c(this,null,function*(){return this.updateCustomStats({allUserReceiveJoinLeaveMessages:e})})}userJoinMasterVoice(e){return c(this,null,function*(){return this.updateCustomStats({userJoinMasterVoice:e})})}userGiveLike(e){return c(this,null,function*(){var o,a;let t=new Date().getTime(),r={domain:"room-control",method:"give-like",params:{stream:{user:this.userVM.localUser.userId,avatar:this.userVM.localUser.avatar,sendTime:t,nickname:this.userVM.localUser.nickName,type:e||1}}},s=this.userVM.getLocalUser();try{yield this.boomCore.customMessage(JSON.stringify(r),void 0),this.giveLikeList.push({userId:(o=this.room)==null?void 0:o.getLocalParticipant().userId,nickName:(a=this.room)==null?void 0:a.getLocalParticipant().nickName,time:new Date().getTime(),type:e}),this.giveLikeListWatcher.next(this.giveLikeList)}catch(n){throw m(n,T,s==null?void 0:s.userId),new P(4005,"\u7528\u6237\u70B9\u8D5E==>sendMessage\u51FA\u9519")}})}chatEnable(e){return c(this,null,function*(){yield this.updateCustomStats({chatEnable:e}).catch(t=>t)})}joinAudioEnable(e){return c(this,null,function*(){yield this.updateCustomStats({joinAudioEnable:e}).catch(t=>t)})}joinVideoEnable(e){return c(this,null,function*(){yield this.updateCustomStats({joinVideoEnable:e}).catch(t=>t)})}userListEnable(e){return c(this,null,function*(){yield this.updateCustomStats({userListEnable:e}).catch(t=>t)})}audioEnable(e){return c(this,null,function*(){yield this.updateCustomStats({audioEnable:e}).catch(t=>t)})}videoEnable(e){return c(this,null,function*(){yield this.updateCustomStats({videoEnable:e}).catch(t=>t)})}modifyNameEnable(e){return c(this,null,function*(){yield this.updateCustomStats({modifyNameEnable:e}).catch(t=>t)})}backgroundAIEnable(e){return c(this,null,function*(){yield this.updateCustomStats({backgroundAIEnable:e}).catch(t=>t)})}forceOpenUserCamera(e){return c(this,null,function*(){yield this.updateCustomStats({forceOpenUserCamera:e}).catch(t=>t)})}forceOpenUserMic(e){return c(this,null,function*(){yield this.updateCustomStats({forceOpenUserMic:e}).catch(t=>t)})}joinCueVoice(e){return c(this,null,function*(){yield this.updateCustomStats({joinCueVoice:e}).catch(t=>t)})}recordEnable(e){return c(this,null,function*(){yield this.updateCustomStats({recordEnable:e}).catch(t=>t)})}raiseHandEnable(e){return c(this,null,function*(){yield this.updateCustomStats({raiseHandEnable:e}).catch(t=>t)})}joinMicrophoneDisable(e){return c(this,null,function*(){yield this.updateCustomStats({joinMicrophoneDisable:e}).catch(t=>t)})}joinCameraDisable(e){return c(this,null,function*(){yield this.updateCustomStats({joinCameraDisable:e}).catch(t=>t)})}changeFileUpdateModelPermission(e){return c(this,null,function*(){yield this.updateCustomStats({fileUpdateModel:e}).catch(t=>t)})}changeFileUpdateLookPermission(e){return c(this,null,function*(){yield this.updateCustomStats({fileUpdateLook:e}).catch(t=>t)})}changeFileUpdateDownPermission(e){return c(this,null,function*(){yield this.updateCustomStats({fileUpdateDown:e}).catch(t=>t)})}changeFileUpdateEditPermission(e){return c(this,null,function*(){yield this.updateCustomStats({fileUpdateEdit:e}).catch(t=>t)})}changeScreenShareModelPermission(e){return c(this,null,function*(){yield this.updateCustomStats({screenShareModel:e}).catch(t=>t)})}changeOnlyOnePersonSharePermission(e){return c(this,null,function*(){yield this.updateCustomStats({onlyOnePersonShare:e}).catch(t=>t)})}setForceOnUser(e){return c(this,null,function*(){yield this.updateCustomStats({forceOn:{user:e}}).catch(t=>t)})}updateHostLayout(e,t=!1){return c(this,null,function*(){if(!this.userVM.checkLocalHasMaster())u("\u60A8\u4E0D\u662F\u4E3B\u6301\u4EBA\uFF0C\u6CA1\u6709\u8BE5\u4E0A\u62A5\u6743\u9650",T);else return this.updateCustomStats({from:{fromTag:"masterId"},hostLayout:e},t)})}checkDevices(e){return c(this,null,function*(){let t={domain:"user-control",method:"check-devices",params:{fromUserId:this.boomCore.getLocalParticipant().getID()}};this.sendMessageWithMaster(t,e).catch(r=>Promise.reject((0,b.BmCheckDeviceError)(`\u68C0\u6D4B\u5BF9\u65B9\u8BBE\u5907send-message\u53D1\u751F\u9519\u8BEF: ${r}`)))})}resp2CheckDevices(e,t){return c(this,null,function*(){let r={domain:"user-control",method:"resp-to-check-devices",params:Te(L({},e),{fromUserId:this.boomCore.getLocalParticipant().getID()})};if(!t)return Promise.reject((0,b.BmCheckDeviceError)(`\u54CD\u5E94\u8BBE\u5907\u68C0\u6D4B: uid: ${t} \u672A\u627E\u5230\u7528\u6237`));try{yield this.boomCore.customMessage(JSON.stringify(r),t)}catch(s){return Promise.reject((0,b.BmCheckDeviceError)(`\u54CD\u5E94\u54CD\u5E94\u8BBE\u5907\u68C0\u6D4Bsend-message\u53D1\u751F\u9519\u8BEF ${s}`))}})}changeRemoteVideoProfile(e,t){return c(this,null,function*(){let r={domain:"user-control",method:"change-video-profile",params:Te(L({},e),{fromUserId:this.boomCore.getLocalParticipant().getID()})};this.sendMessageWithMaster(r,t).catch(s=>Promise.reject((0,b.BmChangeVideoProfileError)(`\u8C03\u8282\u5BF9\u65B9\u7684\u89C6\u9891\u5206\u8FA8\u7387send-message\u53D1\u751F\u9519\u8BEF: ${s}`)))})}resp2ChangeRemoteVideoProfile(e,t,r){return c(this,null,function*(){let s={domain:"user-control",method:"resp-to-change-video-profile",params:{status:e,profile:r,fromUserId:this.boomCore.getLocalParticipant().getID()}};if(!t)return Promise.reject((0,b.BmChangeVideoProfileError)(`\u54CD\u5E94\u8C03\u8282\u89C6\u9891\u5206\u8FA8\u7387: uid: ${t} \u672A\u627E\u5230\u7528\u6237`));try{yield this.boomCore.customMessage(JSON.stringify(s),t)}catch(o){return Promise.reject((0,b.BmChangeVideoProfileError)(`\u54CD\u5E94\u8C03\u8282\u89C6\u9891\u5206\u8FA8\u7387send-message\u53D1\u751F\u9519\u8BEF ${o}`))}})}changeRemoteAudioProfile(e,t){return c(this,null,function*(){let r={domain:"user-control",method:"change-audio-profile",params:{microphoneDevice:e.microphoneDevice,speakerDevice:e.speakerDevice,echoCancellation:e.echoCancellation,noiseSuppression:e.noiseSuppression,autoGainControl:e.autoGainControl,speakerVolume:e.speakerVolume,microVolume:e.microVolume,fromUserId:this.boomCore.getLocalParticipant().getID()}};this.sendMessageWithMaster(r,t).catch(s=>Promise.reject((0,b.BmChangeAudioProfileError)(`\u8C03\u8282\u97F3\u9891send-message\u53D1\u751F\u9519\u8BEF ${JSON.stringify(s)}`)))})}resp2ChangeRemoteAudioProfile(e,t){return c(this,null,function*(){let r={domain:"user-control",method:"resp-to-change-audio-profile",params:{status:e,fromUserId:this.boomCore.getLocalParticipant().getID()}};if(!t)return Promise.reject((0,b.BmChangeAudioProfileError)(`\u54CD\u5E94\u8C03\u8282\u97F3\u9891: uid: ${t} \u672A\u627E\u5230\u7528\u6237`));try{yield this.boomCore.customMessage(JSON.stringify(r),t)}catch(s){return Promise.reject((0,b.BmChangeAudioProfileError)(`\u54CD\u5E94\u8C03\u8282\u97F3\u9891send-message\u53D1\u751F\u9519\u8BEF ${s}`))}})}};var ht=require("rxjs");var Wr=require("lodash-es");var He=class{constructor(e,t,r){this.messageList=[];this.hasDangerMessageWatcher=new ht.Subject;this.notificationMessageList=(0,Wr.debounce)(()=>{this.messageListWatcher.next(this.messageList)},500);this.boomCore=e,this.userVM=t,this.bmRoom=r,this.messageListWatcher=new ht.BehaviorSubject(this.messageList)}sendMessage(e,t,r){return c(this,null,function*(){let s=e.replace(/(^\s*)|(\s*$)/g,""),o=new Date().getTime(),a={domain:"room-control",method:"send-talk",params:{stream:{user:this.userVM.localUser.userId,avatar:this.userVM.localUser.avatar,sendTime:o,nickname:this.userVM.localUser.nickName},status:s}},n=this.userVM.getLocalUser();try{let l=!1,d,p=r;p||(yield this.boomCore.sendMessage(JSON.stringify(a),t).then(S=>{d=S.seq}).catch(S=>{v("sendmessage \u51FA\u9519","",n==null?void 0:n.userId,[S]),S&&S.code===39&&(l=!0,this.hasDangerMessageWatcher.next(!0))}));let g=new V({userId:n==null?void 0:n.userId,message:s,isLocal:n==null?void 0:n.isLocal,avatar:n==null?void 0:n.avatar,nickName:n==null?void 0:n.nickName,sendTime:o,to:t,isDanger:l,seq:d,failed:p});return this.addMessage(g,!1),p?Promise.reject(g):Promise.resolve()}catch(l){throw m(l,T,n==null?void 0:n.userId),new P(4005,"\u53D1\u9001\u804A\u5929\u6D88\u606F==>sendMessage\u51FA\u9519")}})}addMessage(e,t){if(!(t&&!this.bmRoom.participantNotice)){if(this.messageList.length==0||e.timeStamp-this.messageList[this.messageList.length-1].timeStamp>=Yt){let r=new V({isMeetingNotice:!0,message:""});this.messageList.push(r)}this.messageList.push(e),this.notificationMessageList()}}updateMessageListWatcher(e){this.messageList=e,this.messageListWatcher.next(this.messageList)}getHistoryMessage(){return c(this,null,function*(){let e=yield this.boomCore.getMessages(0,this.boomCore.getMsgSeq()),t=[];return e.items.forEach(r=>{if(r.private||r.to||r.msg.length==0||r.msg.indexOf("{")==-1)return!1;let s=JSON.parse(r.msg);if(s.method!="send-talk")return!1;let o=r.seq,a=s.params,n=a.stream.user?a.stream.user:r.userId,l={nickName:a.stream.nickname,content:a.status,timeStamp:new Date().getTime(),userId:n},d=new V({userId:n,message:a.status,nickName:a.stream.nickname,isLocal:n==this.userVM.localUser.userId,avatar:a.stream.avatar,sendTime:a.stream.sendTime,seq:o});t.push(d)}),Promise.resolve(t)})}};var H=require("rxjs");var $r=require("@hysc/core");var Be=class{constructor(e,t){this.user=e,this.stream=t}getID(){return this.stream.getStreamId()}getUser(){return this.user}};var Ae=require("lodash-es");function Hr(i,e){return 16|~~i<<1|~~e}function Gr(i,e){return 12|~~i<<1|~~e}function Fr(i,e){return 8|~~i<<1|~~e}function jr(i,e){return 4|~~i<<1|~~e}function Jr(){return Date.now()}function pt(){let i=Jr();return function(){return Jr()-i}}var oe=`.streammodel${Math.random()}`,Ge=class{constructor(e,t){this.streamType=3;this.pullFailedNum=0;this._video_enable=!1;this._audio_enable=!1;this.videoEnableWatcher=new H.BehaviorSubject(this._video_enable);this.audioEnableWatcher=new H.BehaviorSubject(this._audio_enable);this.streamUpdateWatcher=new H.Subject;this.isSubScribedWatcher=new H.Subject;this.playStateChangeWatcher=new H.Subject;this.noContainerWatcher=new H.Subject;this.noBigContainerWatcher=new H.Subject;this.audioLevelWatcher=new H.Subject;this.isCurrentDisplay=!1;this.isDisplay=!1;this.isDisplayObserve=new H.Subject;this.isInBig=!1;this.isInBigObserve=new H.Subject;this._hasPulled=!1;this.playerId="";this.shouldPull=!1;this.smallPlayFailed=0;this._pulledStreamType="small";this.pulledStreamGoal="small";this.bigPlayerId="";this.isPlayingBig=!1;this.muted=!1;this.checkVideoTimer=null;this.checkCount=0;this.checkFailedCount=0;this.sortNum=-1;this.handleDisplayChange=e=>{var t;this.isDisplay!==e&&(this.isDisplay=e,(t=this.stream)==null||t.stop(),this.isDisplay||(this.checkVideoTimer&&clearTimeout(this.checkVideoTimer),this.checkVideoTimer=null,this.checkCount=0,this.pulledStreamType="small"),this.sendMessage2Room())};this.onPlayerStateChange=e=>{var t,r;e.type==="error"&&e.reason&&e.reason.name==="NotAllowedError"&&(u("\u64AD\u653E\u5931\u8D25, \u9700\u8981\u8C03\u7528 resume \u65B9\u6CD5"),this.playStateChangeWatcher.next(this)),(e.state==="PAUSED"||e.reason==="pause")&&(this.player&&((t=this.player)==null||t.resume()),(r=this.stream)==null||r.resume())};this.handleStreamConnectError=()=>{u("\u6D41\u51FA\u73B0\u7684connect-error userId","",this.userId,["streamId ==>",this.streamId,"nickname =>",this.nickname,"isLocal => ",this.isLocal]),this.isLocal?f.emitter.emit(K,{stream:this,isLocal:!0}):f.emitter.emit(K,{stream:this,isLocal:!1})};this.bindElement=e=>{this.playerId=e,!(!this.isLocal&&(!this.stream||!this.stream.isSubscribed()))&&this.emitBindElement()};this.bindBigElement=e=>{this.bigPlayerId=e,!(!this.isLocal&&(!this.stream||!this.stream.isSubscribed()))&&this.emitBindBigElement()};this.sendMessage2Room=(0,Ae.debounce)(()=>{f.emitter.emit(ce,{stream:this})},100);this.emitBindElement=(0,Ae.debounce)(()=>{f.emitter.emit(de,{stream:this})},50);this.emitBindBigElement=(0,Ae.debounce)(()=>{f.emitter.emit(ge,{stream:this})},50);this.currentIsPlaying=e=>{let t=document.getElementById(e);if(!t)return 0;let r,s,o=0,a=Array.from(t.children);return r=a.length>0,s=a.length,a.forEach(n=>{n.children.length===0&&(o+=1,n.style.display="none",t.removeChild(n))}),r&&s>o?2:1};this.play=(e=!1)=>c(this,null,function*(){var r,s,o;if(!this.playerId){v(`no playerId, do not play :${this.nickname} - ${this.userId} - ${this.streamId}`);return}let t=this.stream;if(t){if(!this.isLocal&&!t.isSubscribed())return;let a=pt();if(this.isDisplay&&this.videoEnable){if(e){try{t.stop()}catch(l){}yield t.play(this.playerId,{backgroundColor:"#202020",fit:"contain",audio:!Fe}),(r=f.emitter)==null||r.emit(J,{uid:this.userId}),u(`\u64AD\u653E\u8017\u65F6: ${a()}`,"",this.userId);return}let n=this.currentIsPlaying(this.playerId);if(n===0)v("\u627E\u4E0D\u5230\u64AD\u653E\u5668\u5BB9\u5668","stream play",this.userId,["\u6D41 id =>",this.streamId,"nickname =>",this.nickname,"playerId =>",this.playerId]),this.playerId||f.emitter.emit(ee,{type:this.isShare?"share":"normal",id:this.userId,container:"small"});else if(n===1)try{u("\u8FDC\u7AEF\u6D41\u5F00\u59CB\u64AD\u653E","",this.userId),yield t.play(this.playerId,{backgroundColor:"#202020",fit:"contain",audio:!Fe}),(s=f.emitter)==null||s.emit(J,{uid:this.userId}),u("\u8FDC\u7AEF\u6D41\u64AD\u653E\u7ED3\u675F",this.userId,this.streamId,[this.nickname]),u(`\u64AD\u653E\u8017\u65F6: ${a()}`,"",this.userId),this.smallPlayFailed=0,this.checkSmallVideo()}catch(l){t.stop(),setTimeout(()=>{m("\u64AD\u653E\u5C0F\u6D41\u5931\u8D25, \u5C1D\u8BD5\u91CD\u65B0\u64AD\u653E","\u64AD\u653E",this.userId,[this.streamId,this.stream,"error => ",JSON.stringify(l)]),this.play()},2*1e3)}}else try{(o=this.stream)==null||o.stop()}catch(n){}}});this.playInBig=(e=!1)=>c(this,null,function*(){var r,s,o,a;if(!this.bigPlayerId){v(`no bigPlayerId, do not play in big :${this.nickname} - ${this.userId} - ${this.streamId}`);return}let t=this.stream;if(t){if(!this.isLocal&&!t.isSubscribed())return;if(this.isInBig&&this.videoEnable&&this.bigPlayerId){let n=pt();if(e){this.initBigPlayer(),yield(r=this.player)==null?void 0:r.play(t),(s=f.emitter)==null||s.emit(J,{uid:this.userId}),u(`\u5927\u6D41\u64AD\u653E\u8017\u65F6: ${n()}`,"",this.userId);return}let l=this.currentIsPlaying(this.bigPlayerId);l===0?(v("\u627E\u4E0D\u5230 bigPlayerId","\u5927\u6D41\u64AD\u653E",this.userId,["\u6D41 id =>",this.streamId]),this.bigPlayerId||f.emitter.emit(ee,{type:this.isShare?"share":"normal",id:this.userId,container:"big"})):l===1&&(u("\u8FDC\u7AEF\u6D41\u5927\u6D41\u5F00\u59CB\u64AD\u653E","",this.userId),this.initBigPlayer(),this.player&&(yield this.player.play(t),(o=f.emitter)==null||o.emit(J,{uid:this.userId}),this.isPlayingBig=!0,this.checkBigVideo()),u("\u8FDC\u7AEF\u6D41\u5927\u6D41\u64AD\u653E\u7ED3\u675F",this.userId,this.streamId,[this.nickname]),u(`\u5927\u6D41\u64AD\u653E\u8017\u65F6: ${n()}`,"",this.userId))}else(a=this.player)==null||a.destroy(),this.player=null,this.isPlayingBig=!1}});this.collectAudioLevel=()=>{this.stream?(this.stream.off("audio-level"+oe,this.handleAudioLevel),this.stream.on("audio-level"+oe,this.handleAudioLevel)):v("collection audio level but not have brtc stream")};this.handleAudioLevel=e=>{this.audioLevelWatcher.next(e)};this.checkSmallVideo=()=>c(this,null,function*(){if(this.videoEnable&&this.stream&&!this.isShare&&!!document.getElementById(this.playerId)){let t=`video_${this.stream.getStreamId()}`;if(!!document.getElementById(t)){this.checkVideoDecodeFrame(t);return}else m(`stream is display, but no video element, should replay now: ${this.smallPlayFailed}`),this.smallPlayFailed<3&&(this.smallPlayFailed+=1,yield Y(1e3),this.stream.stop(),yield this.play())}});this.checkBigVideo=(0,Ae.debounce)(()=>{var e;if(this.videoEnable&&this.stream){let t=`video_${this.stream.getStreamId()}_big`;if(!this.isShare&&this.isDisplay&&this.playerId){let r=!!document.getElementById(t);if(this.isInBig)if(r){this.checkVideoDecodeFrame(t);return}else m("stream is playing in big, but no video element, replay now"),(e=this.player)==null||e.destroy(),this.playInBig()}this.isShare&&this.isInBig&&this.bigPlayerId&&this.checkVideoDecodeFrame(t)}},2e3);this.checkStreamIsPlaying=(0,Ae.debounce)(()=>{if(this.isDisplay&&this.videoEnable){if(!this.stream||!document.getElementById(this.playerId))return;this.currentIsPlaying(this.playerId)===2||(m(`${this.userId} - ${this.nickname}: current is ${this.isDisplay}, but there is no player, try play again`),this.play())}},1e3);this.user=e,this.updateUser(e),this._stream=t,this.isDisplayObserve.subscribe(r=>{this.handleDisplayChange(r)}),this.isInBigObserve.subscribe(r=>{this.handleIsInBig(r)}),this.updateSortNum(!1)}get hasPulled(){return this._hasPulled}set hasPulled(e){this._hasPulled=e}get pulledStreamType(){return this._pulledStreamType}set pulledStreamType(e){this._pulledStreamType=e}get uuid(){return this.isShare?`${this.userId}_share`:this.userId}get isAudience(){return this.user.isAudience}get canShow(){return!this.isAudience}changeMute(e){this.muted!==e&&(this.muted=e,this.handleSpeakerChange())}handleSpeakerChange(){var e,t;this.isLocal||(this.muted?(e=this.stream)==null||e.setAudioVolume(0):(t=this.stream)==null||t.setAudioVolume(1))}get isToupingma(){return this.user.isToupingma}get isMixer(){return this.user.isMixer}get isSignal(){return this.user.isSignal}genReceiveSubMsg(){let e=null;return this.isDisplay?e={audio:!0,video:!0,streamType:"small"}:e={audio:!0,video:!1,streamType:"small"},e}handleIsInBig(e){this.isInBig!==e&&(this.isInBig=e,u("isInBig change","",this.userId,["streamId =>",this.streamId,"isInBig => ",e]),this.isInBig?this.pulledStreamGoal="big":this.pulledStreamGoal="small",this.sendMessage2Room(),this.isShare&&(this.isInBig||(this.checkVideoTimer&&clearTimeout(this.checkVideoTimer),this.checkVideoTimer=null,this.checkCount=0)))}setVideoEnable(e){this._video_enable!==e&&(this._video_enable=e,this.videoEnableWatcher.next(e))}setAudioEnable(e){this._audio_enable!==e&&(this._audio_enable=e,this.audioEnableWatcher.next(e))}updateStream(e,t=!0,r){if(this._stream&&this._stream.off(oe),this._stream=e,e){let s=e.getVideoOn(),o=e.getAudioOn();u("\u66F4\u65B0\u7528\u6237\u7684\u6D41","updateStream",e==null?void 0:e.getUserId(),["nickname =>",this.nickname,"audioOn",o,"videoOn",s,"streamId",e.getStreamId()]),o&&(this.isShare||r.addToDetector(new Be(this.user,e)),this.collectAudioLevel()),e.on("player-state-changed"+oe,this.onPlayerStateChange),e.on("connect-error"+oe,this.handleStreamConnectError),e.on("stream-connection-error"+oe,this.handleStreamConnectError),!this.isLocal&&t&&this.sendMessage2Room()}else this.hasPulled=!1,this.pulledStreamType="small",this.streamType=3}updateBloudStream(e,t,r=!1){var a,n,l,d,p,g;let s=!1,o=!1;if(e){if(this.bloudStream={audio:e.audio,video:e.video,isScreen:e.isScreen},e.customInfo&&((!this.bloudStream.customInfo||((a=this.bloudStream.customInfo)==null?void 0:a.volume)!==e.customInfo.volume)&&(Number.isNaN(e.customInfo.volume)||this.setRemoteAudioLevel(e.customInfo.volume)),this.bloudStream.customInfo=e.customInfo),this.stream&&(this.bloudStream.audio?this.isShare||(t.addToDetector(new Be(this.user,this.stream)),this.collectAudioLevel()):t.removeFromDetector(this.stream.getStreamId())),this.bloudStream.video!==this._video_enable&&(s=!0),this.bloudStream.audio!=this._audio_enable&&(o=!0),this.setVideoEnable(this.bloudStream.video),this.setAudioEnable(this.bloudStream.audio),this.isLocal&&(this.isDisplay&&this.play(),this.isInBig&&this.playInBig()),r){try{(n=this.stream)==null||n.destroy()}catch(S){}(l=this.player)==null||l.destroy(),this.stream&&((d=t.room.audioPlayer)==null||d.removeStream(this.stream)),this.updateStream(void 0,!1,t),this._stream=void 0}o&&!this.audioEnable&&this.stream&&((p=t.room.audioPlayer)==null||p.removeStream(this.stream)),(this.bloudStream.audio||this.bloudStream&&this.isDisplay)&&(!this.stream||r?f.emitter.emit(Se,{id:this.userId,isWeb:this.isWeb,isScreen:this.isShare}):(this.isLocal||(!this.hasPulled||!this.stream.isSubscribed())&&this.sendMessage2Room(),s&&(this.isDisplay&&this.playerId&&this.emitBindElement(),this.isInBig&&this.bigPlayerId&&this.emitBindBigElement()),!this.isLocal&&o&&this.audioEnable&&this.stream.isSubscribed()&&f.getInstance().emit(ye,{stream:this})))}else this.bloudStream=void 0,this.setVideoEnable(!1),this.setAudioEnable(!1),(g=this.player)==null||g.destroy(),this.stream&&t.removeFromDetector(this.stream.getStreamId());this.updateSortNum(!0),this.streamUpdateWatcher.next(!0)}updateBloudCustomInfo(e){var t;this.bloudStream?((!this.bloudStream.customInfo||((t=this.bloudStream.customInfo)==null?void 0:t.volume)!==e.volume)&&(Number.isNaN(e.volume)||this.setRemoteAudioLevel(e.volume)),this.bloudStream.customInfo=e):m("updateBloudCustomInfo, but bloudStream is undefined","","",["userId =>",this.userId])}get streamId(){return this._stream?this._stream.getStreamId():this.userId}get bStreamId(){return this.isShare?`${this.userId}_screen`:this.userId}get userId(){return this.user.userId}get stream(){return this._stream}get isLocal(){return this.user.isLocal}get isShare(){var e,t,r;return this.stream?this.user.isWeb?(t=(e=this.stream)==null?void 0:e.getUserId().toString())==null?void 0:t.endsWith(k):!!(this.stream&&this.stream.getType&&this.stream.getType()==="assist"):!!((r=this.bloudStream)!=null&&r.isScreen)}get isWeb(){return this.user.isWeb}get audioEnable(){return this._audio_enable}get videoEnable(){return this._video_enable}get brtcPlayerId(){return`player_${this.stream.getStreamId()}`}get selfPlayerId(){return`player_${this.stream.getStreamId()}_big_container`}get nickname(){var e;return this.user.isToupingma?`${this.user.nickName}(\u7684\u6295\u5C4F)`:(e=this.streamId)!=null&&e.includes(k)?`${this.user.nickName}(\u7684\u5C4F\u5E55\u5171\u4EAB)`:this.user.nickName}get audioLevel(){var e;return((e=this._stream)==null?void 0:e.getAudioLevel())||0}getUser(){return this.user}setRemoteAudioLevel(e){if(this.isLocal)throw new Error("\u4E0D\u80FD\u8BBE\u7F6E\u672C\u5730\u6D41\u7684\u97F3\u91CF");f.emitter.emit(be,{streamId:this.streamId,volume:e})}getStats(){var e;return(e=this._stream)==null?void 0:e.getStats()}initBigPlayer(){try{if(this.bigPlayerId){let e=document.querySelector(`#${this.bigPlayerId}`);if(!e){console.error("\u64AD\u653E\u5927\u6D41\u5931\u8D25\uFF0C\u627E\u4E0D\u5230\u5927\u6D41\u5BB9\u5668",this.userId,this.streamId,this.bigPlayerId);return}this.player&&this.player.destroy(),this.player=null,this.player=new $r.Player(e,{fit:"contain"}),this.player.on("player-state-changed",t=>{var r;this.stream&&(u("big player state change","","",[JSON.stringify(t)]),t.type==="error"&&t.reason&&t.reason.name==="NotAllowedError"&&this.playStateChangeWatcher.next(this),t.state==="PAUSED"&&((r=this.player)==null||r.resume()))})}}catch(e){m("\u521D\u59CB\u5316\u5927\u7A97\u53E3\u7684\u64AD\u653E\u5668\u5931\u8D25",this.userId,this.streamId,e.message)}}stop(){var e;(e=this._stream)==null||e.stop()}destroy(){var e;(e=this._stream)==null||e.destroy()}isPlaying(){var e;return(e=this._stream)==null?void 0:e.isPlaying()}replay(){var e;return(e=this._stream)==null?void 0:e.replay()}resume(){var e,t;(e=this._stream)==null||e.resume(),(t=this.player)==null||t.resume()}hasAudio(){var e;return((e=this._stream)==null?void 0:e.hasAudio())||!1}hasVideo(){var e;return((e=this._stream)==null?void 0:e.hasVideo())||!1}updateUser(e){this.user=e;let t=this.user.userInfo.pos;if(!t){this.streamType=1;return}t.includes("web")||t.includes("pc")?this.streamType=0:t.includes("_toupingma")?this.streamType=2:this.streamType=1}updateSortNum(e=!0){let t=this.getSortNum();this.setSortNum(t,e)}setSortNum(e,t){this.sortNum!==e&&(this.sortNum=e,t&&(f.emitter.emit(fe,null),this.user.updateSortNum(!0)))}getSortNum(){return this.user.isMaster?Hr(this.audioEnable,this.videoEnable):this.user.isLocal?Gr(this.audioEnable,this.videoEnable):this.user.isManager?Fr(this.audioEnable,this.videoEnable):jr(this.audioEnable,this.videoEnable)}checkVideoDecodeFrame(e){let t=document.getElementById(e);if(this.checkVideoTimer&&clearTimeout(this.checkVideoTimer),!t){u("\u9ED1\u5E27\u68C0\u6D4B\u6CA1\u6709\u64AD\u653E\u5BB9\u5668",this.userId,"",["streamId =>",this.streamId,"isShare =>",this.isShare,"playerId =>",this.playerId,"bigPlayerId =>",this.bigPlayerId,"isDisplay => ",this.isDisplay,"isInbig =>",this.isInBig]),this.isShare&&this.isInBig&&this.bigPlayerId&&(v("share stream has no video player, retry play"),this.playInBig());return}this.checkVideoTimer=setTimeout(()=>{var s,o,a;let r=(t==null?void 0:t.getVideoPlaybackQuality)&&((s=t==null?void 0:t.getVideoPlaybackQuality())==null?void 0:s.totalVideoFrames)||0;if(t&&!t.getVideoPlaybackQuality){this.checkVideoTimer&&clearTimeout(this.checkVideoTimer);return}if(r>0){clearTimeout(this.checkVideoTimer),this.checkFailedCount=0;return}else{if(this.checkCount>10){if(m("\u68C0\u6D4B\u8D85\u8FC7\u4E86\u5341\u6B21\uFF0C\u8FD8\u6CA1\u6709\u89C6\u9891\u6D41\uFF0C\u9700\u8981\u91CD\u65B0\u62C9\u53D6","\u9ED1\u5E27\u68C0\u6D4B",this.userId,["streamId =>",this.streamId,"nickname =>",this.nickname,"videoContainer => ",e]),this.checkVideoTimer&&clearTimeout(this.checkVideoTimer),this.checkVideoTimer=null,this.checkCount=0,this.checkFailedCount+=1,this.checkFailedCount<=3){this.hasPulled=!1,this.pulledStreamType="small",(o=this._stream)==null||o.off(oe);try{(a=this._stream)==null||a.destroy()}catch(n){}this._stream=void 0,this.sendMessage2Room()}return}this.checkCount+=1,this.checkVideoDecodeFrame(e)}},200)}subscribeStream(){this.shouldPull=!0,f.emitter.emit(me,{stream:this})}unSubscribeStream(){this.shouldPull=!1,f.emitter.emit(he,{stream:this})}unAttach(e){var t,r,s,o;u("unattach stream play","",this.userId,["streamId =>",this.streamId,"nickname =>",this.nickname,"type =>",e]),e==="all"?((t=this.stream)==null||t.stop(),(r=this.player)==null||r.destroy(),this.playerId="",this.bigPlayerId=""):e==="big"?((s=this.player)==null||s.destroy(),this.bigPlayerId=""):e==="small"&&((o=this.stream)==null||o.stop(),this.playerId="")}};var w=require("rxjs"),wt=require("@hysc/utils");var zr=require("lodash-es");var A=require("@hysc/utils");function Qr(i){let e=null,t=i.videoElement,r=t.offsetWidth,s=t.offsetHeight;if(t.captureStream?e=t.captureStream():t.mozCaptureStream&&(e=t.mozCaptureStream()),e){let o=e.getVideoTracks()[0],a=e.getAudioTracks()[0];return{video:!!o,audio:!!a,videoSource:o,audioSource:a,width:r,height:s}}return null}function qr(i,e){try{let t=i.getVideoTracks()[0],r=i.getAudioTracks()[0];return{video:!!t,audio:!!r,videoSource:t,audioSource:r,width:e.width,height:e.height}}catch(t){return console.log("\u83B7\u53D6\u5171\u4EAB\u97F3\u9891\u53C2\u6570\u6709\u8BEF",t),null}}function Ue(i){return i.split("_")[0]}var gt=`.streammuteevent${Math.random()}`,je=class i{constructor(){this.streamModels=new Map;this.streamModelsWatcher=new w.BehaviorSubject(i.filterStreamModels(this.sortStreamModels()));this.shareStreamModels=new Map;this.shareStreamModelsWatcher=new w.BehaviorSubject(Array.from(this.shareStreamModels.values()));this.localStreamErrorWatcher=new w.Subject;this.localModel=null;this.room=null;this.bloudStream=null;this.videoStream=null;this.audioStream=null;this.audioStats=!1;this.videoStats=!1;this.localIsShare=!1;this.isShareWatcher=new w.Subject;this.localShareCustomStats={};this._speaker_enable=!0;this.speakerEnableWatcher=new w.BehaviorSubject(this._speaker_enable);this.mixStreamUid=null;this.mixStreamModelWatcher=new w.BehaviorSubject(null);this.canvasTimer=null;this._isRecording=!1;this._slicingRecord=!1;this.isRecordingWatcher=new w.BehaviorSubject(this._isRecording);this._speaker=null;this._speakers=new Map;this.speakerWatcher=new w.BehaviorSubject(this._speaker);this.noContainerWatcher=new w.Subject;this.noBigContainerWatcher=new w.Subject;this.localStreamConnectErrorWatcher=new w.Subject;this.localShareError=new w.Subject;this.localShareEndedError=new w.Subject;this.shareBloudStateMap=new Map;this.streamPlayWatcher=new w.Subject;this.handleStreamPlay=e=>{this.streamPlayWatcher.next(e)};this.updateModelSort=(0,zr.debounce)(()=>{let e=this.sortStreamModels();this.streamModelsWatcher.next(i.filterStreamModels(e))},200,{maxWait:500});this.handleNoContainer=e=>{let{type:t,container:r,id:s}=e,o;t==="share"?o=this.shareStreamModels.get(s):o=this.streamModels.get(s),o&&(r==="small"?this.noContainerWatcher.next(o):this.noBigContainerWatcher.next(o))};this.getHTMLMediaStream=Qr;this.getMediaStream=qr;setTimeout(()=>{this.createCanvas(),this.canvasDisplay()},100),f.emitter.on(fe,this.updateModelSort),f.emitter.on(ee,this.handleNoContainer),f.emitter.on(J,this.handleStreamPlay)}get mixStreamModel(){return this.mixStreamUid?this.streamModels.get(this.mixStreamUid):null}static filterStreamModels(e){return e.filter(t=>!t.isToupingma).filter(t=>!Me.some(r=>t.userId.includes(r))).filter(t=>t.canShow)}initWithRoom(e){return this.room=e,this}setSpeakerEnable(e){var t;this._speaker_enable!==e&&((t=this.room.audioPlayer)==null||t.mute(!e),this._speaker_enable=e,this.speakerEnableWatcher.next(e))}getStreamModels(){return Array.from(this.streamModels.values())}getStreamModelByUId(e){return this.streamModels.get(e)}getShareStreamModelByUId(e){return this.shareStreamModels.get(e)}getLocalStreamModel(){return this.localModel}createStreamModel(e,t){let r=new Ge(e,void 0);return t&&r.updateStream(t,!0,this),r.isShare?(e.addStream(`${e.userId}${k}`,r),this.addShareStreamModel(r)):(e.addStream(e.userId,r),this.addStreamModel(r)),r.isMixer&&(this.mixStreamUid=r.userId,this.mixStreamModel&&this.mixStreamModelWatcher.next(this.mixStreamModel)),r}addStreamModel(e){e&&(e.isLocal?this.localModel||(this.localModel=e,this.streamModels.set(this.localModel.userId,this.localModel)):this.streamModels.set(e.userId,e))}addShareStreamModel(e){e&&(e.isLocal||(this.shareStreamModels.set(e.userId,e),this.shareStreamModelsWatcher.next(Array.from(this.shareStreamModels.values()))))}removeStreamModel(e){if(!e)return;let t=e.getUser();this.streamModels.delete(e.userId),t.removeStream(e.userId)}removeShareStreamModelByUId(e){var r,s,o,a;let t=this.shareStreamModels.get(e);if(t){try{(r=t.stream)==null||r.stop(),(s=t.stream)==null||s.destroy()}catch(n){}t.audioEnable&&t.stream&&((a=(o=this.room)==null?void 0:o.audioPlayer)==null||a.removeStream(t.stream)),this.removeShareStreamModel(t)}}removeShareStreamModel(e){if(!e)return;let t=e.getUser();this.shareStreamModels.delete(e.userId),t.removeStream(`${e.userId}${k}`),t.updateSortNum(!0),this.shareStreamModelsWatcher.next(Array.from(this.shareStreamModels.values()))}removeStreamModelByUId(e){var r,s,o;let t=this.getStreamModelByUId(e);if(t){if(t.stream){this.removeFromDetector(t.streamId);try{t.stream.stop(),t.stream.destroy()}catch(a){}}t.audioEnable&&(t.stream?(s=(r=this.room)==null?void 0:r.audioPlayer)==null||s.removeStream(t.stream):(o=this.room)==null||o.audioPlayer.removeStreamByUid(e)),this.removeStreamModel(t)}return t}remoteStreamPublished(e){var a;let t=e.getStreamId(),r=e.getUserId().toString(),s=this.getStreamModelByUId(r),o;if(s||(o=Ue(String(r)),s=this.getStreamModelByUId(o)),s){if(Z(e)){let n;if(o){let l=(a=this.room)==null?void 0:a.userVM.getUser(o);if(l&&!l.hasShare){v("share stream published, but user has no share","",o);return}n=this.shareStreamModels.get(o)}if(n){if(n.isLocal)return;n.hasPulled=!1,n.pulledStreamType="small",n.updateStream(e,!0,this),this.shareStreamModelsWatcher.next(Array.from(this.shareStreamModels.values()))}else{let l=this.createStreamModel(s.getUser(),e),d=e.getVideoOn(),p=e.getAudioOn(),g=this.shareBloudStateMap.get(s.userId);g?l.updateBloudStream({audio:g.audio,video:g.video,isScreen:!0,customInfo:g.customInfo},this):l.updateBloudStream({audio:p,video:d,isScreen:!0},this),l.streamType=2}}else s.hasPulled=!1,s.pulledStreamType="small",this.updateStreamModel(s,e);this.changeSingleStreamSpeaker(s).catch(n=>{m("\u8BBE\u7F6E\u5355\u80A1\u6D41\u7684\u626C\u58F0\u5668\u7684\u64AD\u653E\u51FA\u73B0\u4E86\u95EE\u9898","\u8BBE\u7F6E\u64AD\u653E\u97F3\u91CF",s==null?void 0:s.userId)})}else m("brtc\u6709\u4EBA\u63A8\u6D41\u4E86\uFF0C\u4F46\u662F\u627E\u4E0D\u5230\u5BF9\u5E94\u7684streamModel, \u627E\u4E0D\u5230\u5BF9\u5E94\u7684\u7528\u6237","",r,["streamId => ",t,"types =>",e.getType&&e.getType()])}remoteStreamUnpublished(e){var n,l,d;let t,r=e.getUserId().toString(),s=e.getStreamId(),o=!1;if(r.includes(k)){let p=Ue(String(r));if(p==((l=(n=this.room)==null?void 0:n.getLocalParticipant())==null?void 0:l.userId)){u("\u672C\u5730\u7528\u6237\u53D6\u6D88\u5171\u4EAB\u5C4F\u5E55","\u53D6\u6D88\u5171\u4EAB\u5C4F\u5E55",r),this.localModel.getUser().removeStream(r);return}t=this.getShareStreamModelByUId(p),o=!0}else s.startsWith(Ze)||e.getType&&e.getType()==="assist"?(t=this.getShareStreamModelByUId(r),o=!0):t=this.getStreamModelByUId(r);if(this.removeFromDetector(s),this.removeFromRecorder(e),!t){m("brtc\u6709\u4EBA\u53D6\u6D88\u63A8\u6D41 \u4F46\u662F\u627E\u4E0D\u5230\u5BF9\u5E94\u7684streamModel","\u53D6\u6D88\u63A8\u6D41",r,[s]);return}let a=(d=t.stream)==null?void 0:d.getStreamId();if(a!==s){m("\u5F53\u524D\u53D6\u6D88\u63A8\u6D41\u7684\u548C\u5F53\u524D\u7ED1\u5B9A\u7684\u4E0D\u662F\u540C\u4E00\u80A1\u6D41","",r,["streamId =>",s,"streamModel.streamId",a]);return}if(t.hasPulled=!1,t.pulledStreamType="small",o||t.streamType===2){t.updateStream(void 0,!0,this),this.removeShareStreamModel(t);return}return t.updateStream(void 0,!0,this),t}sortStreamModels(){return Zt(Array.from(this.streamModels.values()))}updateStreamModel(e,t){e.updateStream(t,!0,this)}updateShareStreamModel(e,t){e.updateStream(t,!0,this)}setLocalVideoEnable(e,t){return c(this,null,function*(){var s;if(!((s=this.room)!=null&&s.networkState.brtc)||!this.room.netConnecting){m("\u65AD\u7F51\u671F\u95F4\u5F00\u672C\u5730\u6444\u50CF\u5934\uFF0C\u4E0D\u4E0E\u54CD\u5E94");return}if(!this.room.mediaPermission.camera)return Promise.reject((0,A.BMCameraNotAuthError)());let r=this.getLocalStreamModel();if(u(`\u5F00\u5173\u672C\u5730\u6444\u50CF\u5934\uFF0C \u72B6\u6001 => ${e}`,"\u672C\u5730\u7528\u6237",r==null?void 0:r.userId),r)if(e)if(r!=null&&r.stream){if(t)yield r.stream.replaceTrack(t).catch(a=>{m("\u7F8E\u989C videoTrack replace \u5931\u8D25","","",JSON.stringify(a))});else if(r.stream.getVideoTrack().constructor.name==="CanvasCaptureMediaStreamTrack"){let n=yield this.createVideoStream().catch(d=>Promise.reject(d)),l=yield r.stream.replaceTrack(n).then(()=>{u("replace video track success")}).catch(d=>(m("\u672C\u5730\u89C6\u9891\u6D41\u66F4\u6362\u89C6\u9891\u6D41\u5931\u8D25","","",JSON.stringify(d)),this.handleStreamUpdateFailed(),Promise.reject((0,A.BMOpenCameraError)())))}if(yield r.stream.unmuteVideo())u("brtc unmute video success");else return m("brtc unmuteVideo\u5931\u8D25"),this.handleStreamUpdateFailed(),Promise.reject((0,A.BMOpenCameraError)());yield this.bloudStream.setVideoEnabled(!0).then(()=>{r.updateStream(r.stream,!0,this),r.updateBloudStream({video:!0,audio:r.audioEnable,isScreen:!1},this),r.playInBig()}).catch(a=>{m("bloud unmuteVideo\u5931\u8D25","\u672C\u5730\u7528\u6237","",[JSON.stringify(a)]),this.handleStreamUpdateFailed()})}else yield this.createStreamAndPublish(!1,!0,r,t).catch(o=>{var a,n,l,d,p;return m("\u5F00\u542F\u672C\u5730\u6444\u50CF\u5934\u5931\u8D25","","",[JSON.stringify(o)]),(n=(a=this.localModel)==null?void 0:a.stream)==null||n.destroy(),(l=this.bloudStream)!=null&&l.published&&this.bloudStream.unpublish(),(d=this.localModel)==null||d.updateStream(void 0,!0,this),(p=this.localModel)==null||p.updateBloudStream(void 0,this),Promise.reject(o)});else r.stream&&(yield this.muteOrUnpublishStream("video",!0,r).catch(a=>(m("\u5173\u95ED\u672C\u5730\u6444\u50CF\u5934\u5931\u8D25","","",[a]),Promise.reject((0,A.BmSetLocalVideoEnable)(a)))))})}handleStreamUpdateFailed(){return c(this,null,function*(){m("brtc unmute stream failed, now unpublish"),yield this.unpublishStream()})}setLocalAudioEnable(e){return c(this,null,function*(){var r;if(!((r=this.room)!=null&&r.networkState.brtc)||!this.room.netConnecting){m("\u65AD\u7F51\u671F\u95F4\u5F00\u672C\u5730\u9EA6\u514B\u98CE\uFF0C\u4E0D\u4E0E\u54CD\u5E94");return}if(!this.room.mediaPermission.microphone)return Promise.reject((0,A.BMMicNotAuthError)());let t=this.getLocalStreamModel();if(u(`\u5F00\u5173\u672C\u5730\u9EA6\u514B\u98CE\uFF0C \u72B6\u6001 => ${e}`,"\u672C\u5730\u7528\u6237",t==null?void 0:t.userId),t)if(e){if(t!=null&&t.stream){let s=yield t.stream.unmuteAudio();if(u(`unmute local stream audio res : ${s}`),s)u("unmute audio success");else return m("brtc unmuteAudio\u5931\u8D25","\u672C\u5730\u7528\u6237",""),yield this.handleStreamUpdateFailed(),Promise.reject((0,A.BMOpenMicroError)());yield this.bloudStream.setAudioEnabled(!0).then(()=>{u("bloud stream set audio enable"),t.updateStream(t.stream,!1,this),t.updateBloudStream({audio:!0,video:t.videoEnable,isScreen:!1},this)}).catch(o=>{m("bloud unmuteAudio\u5931\u8D25","\u672C\u5730\u7528\u6237","",[JSON.stringify(o)]),this.handleStreamUpdateFailed()})}else yield this.createStreamAndPublish(!0,!1,t).catch(s=>{var o,a,n,l,d;return m("\u5F00\u542F\u672C\u5730\u9EA6\u514B\u98CE\u5931\u8D25","","",[s]),(a=(o=this.localModel)==null?void 0:o.stream)==null||a.destroy(),(n=this.bloudStream)!=null&&n.published&&this.bloudStream.unpublish(),(l=this.localModel)==null||l.updateStream(void 0,!0,this),(d=this.localModel)==null||d.updateBloudStream(void 0,this),Promise.reject(s)});t!=null&&t.stream&&this.addToRecorder(t==null?void 0:t.stream)}else{let s=t.stream;if(s){this.removeFromRecorder(s),this.removeFromDetector(s.getStreamId());try{yield this.muteOrUnpublishStream("audio",!0,t)}catch(o){return m("\u5173\u95ED\u672C\u5730\u9EA6\u514B\u98CE\u5931\u8D25","","",[JSON.stringify(o)]),Promise.reject((0,A.BmSetLocalAudioEnable)(o))}}}})}joinWithAudioAndAudio(e,t){return c(this,null,function*(){u("join with audio and video","join publish","",[e,t]);let r=this.getLocalStreamModel();r&&(yield this.createStreamAndPublish(e,t,r).catch(s=>{var o,a,n,l,d;return m("join create and publish failed","","",[JSON.stringify(s)]),(a=(o=this.localModel)==null?void 0:o.stream)==null||a.destroy(),(n=this.bloudStream)!=null&&n.published&&this.bloudStream.unpublish(),(l=this.localModel)==null||l.updateStream(void 0,!0,this),(d=this.localModel)==null||d.updateBloudStream(void 0,this),Promise.reject(s)}))})}changeSpeaker(e,t=!1){return c(this,null,function*(){var r,s;if(u("change speaker","","",[JSON.stringify(e)]),!e.deviceId)throw new wt.BoomError(1e3,"\u5207\u6362\u626C\u58F0\u5668\u5931\u8D25\uFF01,\u539F\u56E0: \u9009\u62E9\u7684\u8BBE\u5907\u6CA1\u6709deviceId"+(e==null?void 0:e.name));try{this.room.setSelectSpeakerDevice(e),(s=(r=this.room)==null?void 0:r.audioPlayer)==null||s.setDevice(e.deviceId,t)}catch(o){throw m("\u5207\u6362\u626C\u58F0\u5668\u5931\u8D25","","",["error",o==null?void 0:o.message,JSON.stringify(o)]),new wt.BoomError(1e3,"\u5207\u6362\u626C\u58F0\u5668\u5931\u8D25")}})}changeSingleStreamSpeaker(e){return c(this,null,function*(){let t=this.room.selectAudioOutputDevice;t&&(e.isLocal||e.stream&&(yield e.stream.setAudioOutput(t.deviceId)))})}changeAudioInput(e){return c(this,null,function*(){var r,s,o;u("change audio input device","","",[JSON.stringify(e)]);let t=(r=this.localModel)==null?void 0:r.stream;if((s=this.room)==null||s.setSelectAudioDevice(e),t)return((o=t.getAudioTrack())==null?void 0:o.readyState)==="ended"?(m("try to change audio input device but audio track is ended"),!1):(this.removeFromRecorder(t),yield t.switchDevice("audio",e.deviceId),this.addToRecorder(t),!0)})}changeVideoInput(e){return c(this,null,function*(){var r,s,o,a;u("change video input device","","",[JSON.stringify(e)]);let t=(r=this.localModel)==null?void 0:r.stream;if((s=this.room)==null||s.setSelectVideoDevice(e),t)return((o=t.getVideoTrack())==null?void 0:o.readyState)==="ended"?(m("try to change video input device but video track is ended"),!1):(yield t.switchDevice("video",e.deviceId),(a=this.localModel)!=null&&a.isDisplay&&this.localModel.isInBig&&this.localModel.playInBig(!0),!0)})}muteSpeaker(e){return c(this,null,function*(){u("\u9759\u97F3\u626C\u58F0\u5668 \u72B6\u6001 =>","","",["status =>",e]);try{this.setSpeakerEnable(e)}catch(t){return Promise.reject((0,A.BmSetLocalSpeakerEnable)(`\u5F00\u5173\u626C\u58F0\u5668\u5931\u8D25 ${e} error: ${JSON.stringify(t)}`))}})}createLocalAudioStream(){return c(this,null,function*(){var e;if(!this.room.mediaPermission.microphone){m("there is no microphone permission");return}yield this.room.initDevices(),this.room.audioDevices.length?((e=this.audioStream)==null||e.destroy(),this.audioStream=yield this.room.createSingleLocalStream({video:!1,audio:!0},this.localModel.userId).catch(t=>(m("create brtc stream error","","",[JSON.stringify(t)]),Promise.reject(t)))):m("there is no audio device exists")})}createStreamAndPublish(e,t,r,s){return c(this,null,function*(){var a,n,l,d,p,g,S,C;let o=i.getCanvasStream();if(yield this.room.initDevices(),t)(d=this.brtcStream)==null||d.destroy(),(p=this.room)!=null&&p.audioDevices.length||(m("\u5F53\u524D\u7535\u8111\u4E2D\u6CA1\u6709\u97F3\u9891\u8F93\u5165\u8BBE\u5907\uFF0C\u91CD\u65B0\u83B7\u53D6"),yield(g=this.room)==null?void 0:g.initDevices()),(S=this.room)!=null&&S.videoDevices.length||(m("\u5F53\u524D\u7535\u8111\u4E2D\u6CA1\u6709\u89C6\u9891\u8F93\u5165\u8BBE\u5907, \u91CD\u65B0\u83B7\u53D6"),yield(C=this.room)==null?void 0:C.initDevices()),this.room.audioDevices.length>0?this.brtcStream=yield this.room.createSingleLocalStream({video:!0,audio:this.room.mediaPermission.microphone},r.userId).catch(y=>(m("create brtc audio and video stream failed","","",[JSON.stringify(y)]),Promise.reject(y))):(m("\u6CA1\u6709\u97F3\u9891\u8F93\u5165\u8BBE\u5907\uFF0C\u53EA\u80FD\u521B\u5EFA\u89C6\u9891\u6D41"),this.brtcStream=yield this.room.createSingleLocalStream({video:!0,audio:!1},r.userId).catch(y=>(m("create brtc video stream failed","","",[JSON.stringify(y)]),Promise.reject(y))));else{let y=o.getVideoTracks()[0];this.audioStream||(this.audioStream=yield this.room.createSingleLocalStream({video:!1,audio:!0},r.userId).catch(R=>(m("create brtc stream error","","",[JSON.stringify(R)]),Promise.reject(R))));let I=(a=this.audioStream)==null?void 0:a.getAudioTrack();if(!I||I&&I.muted)throw(n=this.audioStream)==null||n.destroy(),this.audioStream=null,this.localStreamErrorWatcher.next("audio"),m("\u9EA6\u514B\u98CE\u8BBE\u5907\u4E0D\u53EF\u7528","","",["muted => ?",I==null?void 0:I.muted]),(0,A.getStreamError)("\u9EA6\u514B\u98CE");(l=this.brtcStream)==null||l.destroy(),this.brtcStream=yield this.room.createSingleLocalStream({video:!0,audio:!0,videoSource:y,audioSource:I},r.userId).catch(R=>Promise.reject(R))}this.brtcStream&&(t||(yield this.brtcStream.muteVideo()),e||(yield this.brtcStream.muteAudio()),s&&(yield this.brtcStream.replaceTrack(s).catch(y=>{m("\u7F8E\u989C videoTrack replace \u5931\u8D25","","",JSON.stringify(y))})),yield this.room.publish(this.brtcStream).catch(y=>{var I,R;return(I=this.brtcStream)==null||I.destroy(),(R=this.localModel)==null||R.updateBloudStream(void 0,this),Promise.reject(y)}),this.brtcStream.on("video-track-mute"+gt,this.muteHandler.bind(this,"video")),this.brtcStream.on("video-track-ended"+gt,this.muteHandler.bind(this,"video")),this.brtcStream.on("audio-track-mute"+gt,this.muteHandler.bind(this,"audio")),this.brtcStream.on("audio-track-ended"+gt,this.muteHandler.bind(this,"audio")),yield this.publishBloudStream(e,t))})}publishBloudStream(e,t){return c(this,null,function*(){var s;let r=this.localModel.userId;this.bloudStream=this.room.boomCore.creteBloudLocalStream({audio_enable:e,video_enable:t},r),yield this.bloudStream.publish({video_enable:t,audio_enable:e}),(s=this.localModel)==null||s.updateBloudStream({video:t,audio:e,isScreen:!1},this)})}muteHandler(e){let t=()=>c(this,null,function*(){var r,s,o,a,n,l,d,p,g;(r=this.localModel)!=null&&r.stream&&(yield(s=this.room)==null?void 0:s.boomCore.unpublish(this.localModel.stream).catch(S=>{m("brtc local stream has problem and unpublish failed","","",[String(S)])})),(a=(o=this.localModel)==null?void 0:o.stream)==null||a.destroy(),(n=this.audioStream)==null||n.destroy(),(l=this.videoStream)==null||l.destroy(),(d=this.brtcStream)==null||d.destroy(),this.brtcStream=void 0,this.audioStream=null,this.videoStream=null,(p=this.localModel)==null||p.updateStream(void 0,!0,this),yield this.bloudStream.unpublish(),this.bloudStream=null,(g=this.localModel)==null||g.updateBloudStream(void 0,this)});setTimeout(()=>c(this,null,function*(){var r,s,o,a,n,l,d,p,g,S,C,y,I,R,M,G,Q,q,Pe;if((r=this.localModel)!=null&&r.stream){let ae=(s=this.localModel)==null?void 0:s.videoEnable,ne=(o=this.localModel)==null?void 0:o.audioEnable;if(e==="video"){let j=(a=this.localModel.stream.getVideoTrack())==null?void 0:a.muted,N=(n=this.localModel.stream.getVideoTrack())==null?void 0:n.label,le=(l=this.localModel.stream.getVideoTrack())==null?void 0:l.enabled,Dt=(d=this.localModel.stream.getVideoTrack())==null?void 0:d.readyState,ti=Dt==="ended";if(u("brtc video track status","","",[j,le,Dt,N]),!ti&&!j&&le)return;u("video track has problem, now try recreate and publish"),m("brtc\u672C\u5730\u6D41\u51FA\u73B0\u5F02\u5E38\uFF0C\u9700\u8981\u91CD\u65B0\u63A8\u6D41\u5904\u7406","","",["videoEnable",ae,"audioEnable",ne,"type",e]),this.localStreamConnectErrorWatcher.next((0,A.BMStreamDisconnectedError)("\u6444\u50CF\u5934")),(p=this.localModel)!=null&&p.stream&&(yield(g=this.room)==null?void 0:g.boomCore.unpublish(this.localModel.stream).catch(St=>{m("brtc local stream has problem and unpublish failed","","",[String(St)])}),(S=this.localModel)==null||S.updateStream(void 0,!0,this),(y=(C=this.localModel)==null?void 0:C.stream)==null||y.destroy(),(I=this.localModel.player)==null||I.destroy(),(R=this.audioStream)==null||R.destroy(),(M=this.brtcStream)==null||M.destroy(),this.brtcStream=void 0,(G=this.videoStream)==null||G.destroy(),this.audioStream=null,this.videoStream=null),yield this.createStreamAndPublish(ne,ae,this.localModel).catch(St=>c(this,null,function*(){m("brtc video stream has problem and republish stream failed","","",[JSON.stringify(St)]),yield t(),this.localStreamConnectErrorWatcher.next((0,A.BmSyncStreamFailError)())}))}else{m("brtc\u672C\u5730\u6D41\u51FA\u73B0\u5F02\u5E38\uFF0C\u9700\u8981\u91CD\u65B0\u63A8\u6D41\u5904\u7406","","",["videoEnable",ae,"audioEnable",ne,"type",e]),this.localStreamConnectErrorWatcher.next((0,A.BMStreamDisconnectedError)("\u9EA6\u514B\u98CE")),(Q=this.audioStream)==null||Q.destroy(),(q=this.localModel.player)==null||q.destroy(),this.audioStream=null,this.audioStream=yield this.room.createPBSingleLocalStream({video:!1,audio:!0});let j=(Pe=this.audioStream)==null?void 0:Pe.getAudioTrack();j&&!j.muted?this.localModel.stream&&(yield this.localModel.stream.replaceTrack(j).catch(N=>{m("\u672C\u5730\u6D41\u51FA\u73B0\u5F02\u5E38, \u91CD\u65B0\u521B\u5EFAaudio stream replace \u5931\u8D25","\u672C\u5730\u6D41\u51FA\u73B0\u5F02\u5E38","",[JSON.stringify(N)]),this.localStreamConnectErrorWatcher.next((0,A.BmSyncStreamFailError)()),t()})):(m("recreate audio stream failed, now unpub"),this.localStreamConnectErrorWatcher.next((0,A.BmSyncStreamFailError)()),t())}}this.localStreamErrorWatcher.next(e)}),1e3)}unpublishStream(){return c(this,null,function*(){var t,r,s,o;u("unpublish stream");let e=this.getLocalStreamModel();if(e){let a=e.stream;a&&(yield(t=this.room)==null?void 0:t.unpublish(a).catch(n=>{m("brtc \u53D6\u6D88\u53D1\u5E03\u5931\u8D25","\u53D6\u6D88\u63A8\u6D41",e.userId,[JSON.stringify(n)])}));try{this.removeFromRecorder(a),a==null||a.destroy(),(r=this.videoStream)==null||r.destroy(),(s=this.audioStream)==null||s.destroy(),(o=this.brtcStream)==null||o.destroy(),this.videoStream=null,this.audioStream=null,this.brtcStream=void 0,e.updateStream(void 0,!0,this),yield this.bloudStream.unpublish().catch(n=>{m("bloud unpublish stream failed","bloud unpublish stream",e.userId,[JSON.stringify(n),n==null?void 0:n.code,n==null?void 0:n.message])}),e.updateBloudStream(void 0,this),this.bloudStream=null}catch(n){m("stream destroy failed","\u53D6\u6D88\u63A8\u6D41",e.userId,[JSON.stringify(n)])}}})}muteOrUnpublishStream(e,t,r){return c(this,null,function*(){var a;let s=r.stream,o=!0;if(e==="audio"?o=s.getVideoOn():e==="video"&&(o=s.getAudioOn()),o){if(e==="audio")(yield s.muteAudio())||m("brtc muteAudio\u5931\u8D25","\u5173\u95ED\u672C\u5730\u97F3\u9891","\u672C\u5730"),yield this.bloudStream.setAudioEnabled(!1).catch(l=>{m("bloud setAudioEnabled \u5931\u8D25","\u5173\u95ED\u672C\u5730\u97F3\u9891","\u672C\u5730",[JSON.stringify(l)])}),r.updateBloudStream({audio:!1,video:!0,isScreen:!1},this);else if(e==="video"){let l=i.getCanvasStream().getVideoTracks()[0];try{yield s.replaceTrack(l),yield s.muteVideo()}catch(d){m("\u5173\u95ED\u672C\u5730\u89C6\u9891\u5931\u8D25","\u5173\u95ED\u672C\u5730\u89C6\u9891","\u672C\u5730",[JSON.stringify(d)])}try{(a=this.videoStream)==null||a.destroy(),this.videoStream=null}catch(d){m("this.videoStream destroy failed")}yield this.bloudStream.setVideoEnabled(!1).catch(d=>{m("bloud setVideoEnabled \u5931\u8D25","\u5173\u95ED\u672C\u5730\u97F3\u9891","\u672C\u5730",[JSON.stringify(d)])}),r.updateBloudStream({video:!1,audio:!0,isScreen:!1},this)}}else yield this.unpublishStream()})}toggleShareScreen(e,t,r){return c(this,null,function*(){var o,a,n,l,d;u("\u5F00\u5173\u5171\u4EAB\u5C4F\u5E55","","\u5F00\u5173\u5171\u4EAB\u5C4F\u5E55",["stats => ",e]),!e&&((o=this.room)!=null&&o.boomCore.shareScreenStream)&&this.removeFromRecorder((a=this.room)==null?void 0:a.boomCore.shareScreenStream),e||(this.localShareCustomStats={});let s=(n=this.room)==null?void 0:n.voiceMode;return yield this.room.boomCore.toggleShareScreen(e,{audioHint:s},r).then(()=>{if(u("bmStreamVm toggleShareScreen success","\u5207\u6362\u5171\u4EAB\u5C4F\u5E55","",["enable =>",e]),e){let p=this.room.boomCore.shareScreenStream;p&&this.remoteStreamPublished(p)}else this.localModel.getUser().removeStream(`${this.localModel.userId}_screen`),this.localModel.getUser().updateSortNum(!0)}).catch(p=>(m("bmStreamVm toggleShareScreen error","\u5207\u6362\u5171\u4EAB\u5C4F\u5E55","",["enable =>",e]),Promise.reject(p))),e&&((l=this.room)!=null&&l.boomCore.shareScreenStream)&&this.addToRecorder((d=this.room)==null?void 0:d.boomCore.shareScreenStream),this.localIsShare=e,this.isShareWatcher.next(e),Promise.resolve(!0)})}setShareScreenContentHint(e){var t;(t=this.room)==null||t.boomCore.setShareScreenContentHint(e)}createCanvas(){let e=document.createElement("canvas");e.id="tarCanvas",e.style.width="1px",e.style.height="1px",e.style.position="absolute",e.style.bottom="0",document.body.appendChild(e)}canvasDisplay(){let e=document.getElementById("tarCanvas");if(e){e.width=640,e.height=360;let t=e.getContext("2d");t.fill(),t.beginPath(),t.fillStyle="rgb(0,0,0)",t.fillRect(0,0,e.width,e.height),this.canvasTimer&&clearTimeout(this.canvasTimer),this.canvasTimer=setTimeout(()=>{this.canvasDisplay()},1e3)}}static getCanvasStream(){return document.getElementById("tarCanvas").captureStream()}createVideoStream(){return c(this,null,function*(){var e;return yield this.room.initDevices(),(e=this.videoStream)==null||e.destroy(),this.videoStream=yield this.room.createPBSingleLocalStream({video:!0,audio:!1},this.localModel.userId).catch(t=>Promise.reject((0,A.BMCreateStreamError)("\u89C6\u9891"))),this.videoStream.getVideoTrack()})}startRecord(e){return c(this,null,function*(){var r;if(this._recorder)return;this._recorder=(r=this.room)==null?void 0:r.boomCore.createRecorder(e),this._recorder.on("track-ended",()=>{this.stopRecord(),u("record ended")}),this._recorder.on("started",()=>{u("record started.")});let t=!0;try{yield this._recorder.start(),this._isRecording=!0,this.isRecordingWatcher.next(!0),this.shareStreamModels.forEach(s=>{s.stream&&!s.stream.isLocalStream()&&s.stream.isSubscribed()&&this.addToRecorder(s.stream)}),this.streamModels.forEach(s=>{s.stream&&!s.stream.isLocalStream()&&s.stream.isSubscribed()&&this.addToRecorder(s.stream)})}catch(s){let o=this._recorder;this._recorder=void 0,this._isRecording=!1,this.isRecordingWatcher.next(!1),t=!1,yield o.stop()}return t})}addToRecorder(e){this._isRecording&&!this._slicingRecord&&(e.on("audio-track-ended",()=>{this.removeFromRecorder(e)}),this._recorder.addStream(e))}removeFromRecorder(e){this._isRecording&&!this._slicingRecord&&this._recorder.removeStream(e)}stopRecord(){return c(this,null,function*(){this._recorder&&(this._isRecording=!1,this.isRecordingWatcher.next(!1),yield this._recorder.stop(),this._recorder=void 0)})}sliceRecord(e){return c(this,null,function*(){var s;if(!this._isRecording)return;let t=this._recorder._opts;this._slicingRecord=!0;try{yield this._recorder.stop()}catch(o){m("stop record exception","","",[JSON.stringify(o)])}t.filename=e,this._recorder=(s=this.room)==null?void 0:s.boomCore.createRecorder(t),this._recorder.on("track-ended",()=>{this.stopRecord(),u("record ended.")}),this._recorder.on("started",()=>{u("record started.")});let r=!0;try{yield this._recorder.start(),this._slicingRecord=!1,this.shareStreamModels.forEach(o=>{o.stream&&!o.stream.isLocalStream()&&o.stream.isSubscribed()&&this.addToRecorder(o.stream)}),this.streamModels.forEach(o=>{o.stream&&!o.stream.isLocalStream()&&o.stream.isSubscribed()&&this.addToRecorder(o.stream)})}catch(o){let a=this._recorder;this._recorder=void 0,this._isRecording=!1,this.isRecordingWatcher.next(!1),this._slicingRecord=!1,r=!1,yield a.stop()}return r})}startSpeakerDetector(){var e;this._speaker=null,this._speakerDetector=(e=this.room)==null?void 0:e.boomCore.createSpeakerDetector(),this._speakerDetector.on("speaker",t=>{var s,o,a;let r=!0;t?(((s=this._speaker)==null?void 0:s.getUserInfo().userId)===t.getUser().userId&&(r=!1),this._speaker=t.getUser()):(this._speaker||(r=!1),this._speaker=null),r&&(u("\u5F53\u524D\u8BB2\u8BDD\u4EBA","\u8BED\u97F3\u6FC0\u52B1",(o=this._speaker)==null?void 0:o.userId,["nickname => ",(a=this._speaker)==null?void 0:a.nickname]),this.speakerWatcher.next(this._speaker))})}addToDetector(e){this._speakers.set(e.getID(),e),this._speakerDetector&&this._speakerDetector.addStream(e)}removeFromDetector(e){let t=this._speakers.get(e);this._speakerDetector&&t&&(this._speakers.delete(e),this._speakerDetector.removeStream(t))}clearDetector(){let e=[];this._speakers.forEach((t,r)=>{e.push(r)}),e.forEach(t=>{this.removeFromDetector(t)})}shareCustomMedia(e,t){return c(this,null,function*(){var r;return(r=this.room)==null?void 0:r.boomCore.shareHTMLMedia(e,t)})}updateBloudStreamCustomStats(e,t,r){return c(this,null,function*(){var o,a;u("update bloud stream custom stats","",e,[t,JSON.stringify(r)]);let s=yield(o=this.room)==null?void 0:o.boomCore.updateStream(e,t,r);((a=this.localModel)==null?void 0:a.userId)===e&&t.startsWith(e)&&t.endsWith("_screen")&&s.customInfo&&(this.localShareCustomStats=s.customInfo)})}checkStreamStats(e){u("check stream stats","","",[e]),this.streamModels.size<100&&this.streamModels.forEach(t=>{t.checkStreamIsPlaying()})}clearCache(){var e,t,r,s,o;try{(t=(e=this.localModel)==null?void 0:e.stream)==null||t.destroy(),(r=this.videoStream)==null||r.destroy(),(s=this.audioStream)==null||s.destroy()}catch(a){}this.canvasTimer&&clearTimeout(this.canvasTimer),this.canvasTimer=null,this.streamModels.clear(),this.shareStreamModels.clear(),(o=this.room)==null||o.userVM.clearUsers(),this.shareBloudStateMap.clear()}};var D=require("rxjs"),ft=require("lodash-es");var Je=class{constructor(e){this._roomName="";this.msgSeq="";this.roomID="";this.audioOff=!1;this.selfopenaudio=!1;this.lock=!1;this.leaveNotice=!1;this.openSelf=!1;this.chatNotice="";this.chatNoticeRich="";this.raiseHandsList=new Map;this.raiseHandsWatcher=new D.BehaviorSubject(Array.from(this.raiseHandsList.values()));this.raiseVideoHandsList=new Map;this.raiseVideoHandsWatcher=new D.BehaviorSubject(Array.from(this.raiseVideoHandsList.values()));this.raiseSimpleHandsList=new Map;this.raiseSimpleHandsWatcher=new D.BehaviorSubject(Array.from(this.raiseSimpleHandsList.values()));this.operationPermissionWatcher=new D.Subject;this.chatNoticeWatcher=new D.Subject;this.totalUserWatcher=new D.BehaviorSubject(0);this.totalWaitRoomUserWatcher=new D.BehaviorSubject(0);this.isOpenWaitRoom=new D.Subject;this.audioOffWatcher=new D.Subject;this.lockWatcher=new D.BehaviorSubject(this.lock);this.leaveNoticeWatcher=new D.BehaviorSubject(this.leaveNotice);this.openSelfWatcher=new D.BehaviorSubject(this.openSelf);this.setRaiseHandsWatcherValue=(0,ft.debounce)(()=>{this.raiseHandsWatcher.next(Array.from(this.raiseHandsList.values()))},1e3);this.setVideoRaiseHandsWatcherValue=(0,ft.debounce)(()=>{this.raiseVideoHandsWatcher.next(Array.from(this.raiseVideoHandsList.values()))},1e3);this.setSimpleRaiseHandsWatcherValue=(0,ft.debounce)(()=>{this.raiseSimpleHandsWatcher.next(Array.from(this.raiseSimpleHandsList.values()))},1e3);this.room=e,f.emitter.on(z,t=>{t.status==="raiseHandsAudio"?t.user.raiseAudioHands?this.addRaiseHandUser(t.user):this.removeRaiseHandUser(t.user.userId):t.status==="raiseHandsVideo"?t.user.raiseVideoHands?this.addVideoRaiseHandUser(t.user):this.removeVideoRaiseHandUser(t.user.userId):t.status==="raiseHand"&&(t.user.raiseHand?this.addSimpleRaiseHandUser(t.user):this.removeSimpleRaiseHandUser(t.user.userId))})}get roomName(){return this._roomName?this._roomName:(this._roomName=this.room.getName(),this._roomName)}get isBigRoom(){return this.room.isBig}get startup(){return this.room.boomCore.client.startup}setup(e){this.roomID=e.room,this.handleInitParams()}initCustomStats(e){this.operationPermission=e,e.chatNotice!==void 0&&(this.chatNotice=e.chatNotice),e.chatNoticeRich!==void 0&&(this.chatNoticeRich=e.chatNoticeRich),this.operationPermissionWatcher.next(this.operationPermission)}updateOperationPermission(e){this.operationPermission=L(L({},this.operationPermission),e),e.chatNotice!==void 0&&(this.chatNotice=e.chatNotice),e.chatNoticeRich!==void 0&&(this.chatNoticeRich=e.chatNoticeRich),this.operationPermissionWatcher.next(this.operationPermission)}handleInitParams(){let e=this.room.boomCore.getAudioOff(),t=this.room.boomCore.getSelfOpenAudio();this.setAudioOff(e,t)}setAudioOff(e,t){this.audioOff=e,this.selfopenaudio=t,this.audioOffWatcher.next({audioOff:e,selfopenaudio:t})}setlock(e){this.lock=e,this.lockWatcher.next(e)}setLeaveNotice(e){this.leaveNotice=e,this.leaveNoticeWatcher.next(e)}setRaiseHandsList(e){e.forEach(t=>{t.raiseAudioHands&&this.raiseHandsList.set(t.getID(),t),t.raiseVideoHands&&this.raiseVideoHandsList.set(t.getID(),t),t.raiseHand&&this.raiseSimpleHandsList.set(t.getID(),t)}),this.setRaiseHandsWatcherValue(),this.setVideoRaiseHandsWatcherValue(),this.setSimpleRaiseHandsWatcherValue()}addRaiseHandUser(e){this.raiseHandsList.set(e.getID(),e),this.setRaiseHandsWatcherValue()}removeRaiseHandUser(e){this.raiseHandsList.delete(e),this.setRaiseHandsWatcherValue()}addVideoRaiseHandUser(e){this.raiseVideoHandsList.set(e.getID(),e),this.setVideoRaiseHandsWatcherValue()}removeVideoRaiseHandUser(e){this.raiseVideoHandsList.delete(e),this.setVideoRaiseHandsWatcherValue()}addSimpleRaiseHandUser(e){this.raiseSimpleHandsList.set(e.getID(),e),this.setSimpleRaiseHandsWatcherValue()}removeSimpleRaiseHandUser(e){this.raiseSimpleHandsList.delete(e),this.setSimpleRaiseHandsWatcherValue()}};var O=require("rxjs");var Lt={name:"@hysc/meeting",version:"10.0.18",description:"boom meeting",private:!1,main:"./dist/index.js",module:"./dist/index.js",types:"./dist/index.d.ts",files:["dist","umd"],scripts:{build:"tsup ./src/index.ts --format cjs,esm --dts --minify",dev:"tsup ./src/index.ts --format esm,cjs --watch --dts"},author:"yangliye",license:"MIT",dependencies:{"@hysc/bloud":"workspace:*","@hysc/core":"workspace:*","lodash-es":"^4.17.21",mitt:"^3.0.0","@hysc/p-queue":"6.3.0",rxjs:"^7.5.5",typescript:"^4.6.3","@hysc/utils":"workspace:*"},peerDependencies:{"@hysc/core":"workspace:*"},devDependencies:{"@types/lodash-es":"^4.17.6","@hysc/brtc":"workspace:*"}};var qe=require("@hysc/utils"),E=require("@hysc/utils");var Ot=class{constructor(e){this.room=e}get localBMUser(){return this.room.getLocalParticipant()}get localIsAudience(){return this.room.getLocalParticipant().isAudience}handlePull(e){return c(this,null,function*(){if(this.localIsAudience){if(e.isMixer){yield this.room.handlePull(e);return}if(this.localBMUser.audienceEnableSpeaking&&e.audioEnable){yield this.room.handlePull(e);return}}else yield this.room.handlePull(e)})}handleChangeStreamType(e){return c(this,null,function*(){yield this.room.handleChangeStreamType(e)})}handlePlay(e,t){return c(this,null,function*(){this.localIsAudience&&!this.localBMUser.audienceEnableSpeaking?e.isMixer&&(yield this.room.handlePlay(e)):yield this.room.handlePlay(e)})}handleAudienceDisable(){return c(this,null,function*(){this.room.bmStreamVm.getStreamModels().forEach(e=>{var t;(t=e==null?void 0:e.stream)!=null&&t.isSubscribed()&&e.hasPulled&&(e.hasPulled=!1,e.pulledStreamType="small",this.room.unsubscribe(e.stream).then(()=>{console.log("\u89C2\u4F17\u53D6\u6D88\u8BA2\u9605\u8FD9\u80A1\u6D41",e.userId,e.nickname,e.isDisplay,e.isCurrentDisplay)}))}),this.handleMixStream(!1)})}handleAudienceEnable(){return c(this,null,function*(){this.handleMixStream(!0),this.room.bmStreamVm.getStreamModels().forEach(e=>{F.addQueue(this.room.handleQueueTask.bind(this,e),e.streamId,0,e.nickname)})})}handleMixStream(e){return c(this,null,function*(){var r,s;let t=this.room.bmStreamVm.mixStreamUid;if(t){let o=this.room.bmStreamVm.streamModels.get(t);e?(r=o==null?void 0:o.stream)==null||r.muteAudio():(s=o==null?void 0:o.stream)==null||s.unmuteAudio()}})}},Xr=Ot;var $=require("lodash-es");var kt=require("@hysc/utils");function Yr(i){var r,s;let e=()=>i.fire(kt.BrtcEvents.BRTC_ROOM_ROCONNECTING),t=()=>i.fire(kt.BrtcEvents.BRTC_ROOM_RECONNECTED);(r=i.brtcClient.client)==null||r.signal.channel.on("reconnecting",e),(s=i.brtcClient.client)==null||s.signal.channel.on("reconnected",t)}var $e=class i{constructor(){this.pullMap=new Map;return i.instance?i.instance:(i.instance=this,this)}addUsers(e){e.forEach(t=>{t.isScreen?this.pullMap.set(`${t.id}_screen`,t):this.pullMap.set(t.id,t)}),this._callback&&this._callback(this.pullMap)}removeUsers(e){e.forEach(t=>{t.isScreen?this.pullMap.delete(`${t.id}_screen`):this.pullMap.delete(t.id)})}restart(){if(this._callback)this._callback(this.pullMap);else throw m("no callback exists in streamQueue please setQueueProcessor first!"),new Error("no callback")}setQueueProcessor(e){this._callback=e}removeQueueProcessor(){this._callback=void 0}};var Zr=require("@hysc/core");var Kr=require("rxjs");var Qe=class{constructor(e,t){this.playMap=new WeakSet;this.playerMap=new Map;this.muted=!1;this.playStateChangeWatcher=new Kr.Subject;let r=document.getElementById(e);if(r)this.container=r;else throw new Error("no container found, play failed");this.room=t}addStream(e,t=!1){this.room.shouldPlayAudio&&this.room.autoPlayAudio&&e.isSubscribed()&&(t||!this.playMap.has(e))&&(u("add stream to player","",e.getUserId(),["streamId ",e.getStreamId()]),this.playMap.add(e),this.play(e))}removeStream(e){let t=e.getStreamId(),r=this.playerMap.get(t);r&&(r.off(),r.destroy()),u("remove audio player","","",["streamId =>",t]),this.playerMap.delete(t),this.playMap.delete(e)}removeStreamByUid(e){let t=new Map;this.playerMap.forEach(r=>{Z(r.stream)||r.stream.getUserId()===e&&t.set(r.stream.getStreamId(),r)}),t.forEach((r,s)=>{r.off(),r.destroy(),this.playerMap.delete(s),this.playMap.delete(r.stream)}),t.clear()}play(e){return c(this,null,function*(){var t;if(e.hasAudio()&&this.container){let r=new Zr.AudioPlayer(this.container,{});if(this.addPlayerEvent(r),yield r.play(e),this.deviceId&&(yield r.setSinkId(this.deviceId)),this.muted)r.setVolume(0);else{let s,o=Ue(e.getUserId().toString());if(Z(e)?s=this.room.bmStreamVm.shareStreamModels.get(o):s=this.room.bmStreamVm.streamModels.get(o),s){let a=(t=s.bloudStream)==null?void 0:t.customInfo;a&&a.volume&&(r.audioLevel=a.volume,r.setVolume(a.volume))}}this.playerMap.set(e.getStreamId(),r)}})}mute(e){this.muted=e,e?this.playerMap.forEach(t=>t.setVolume(0)):this.playerMap.forEach(t=>{t.audioLevel>0?t.setVolume(t.audioLevel):t.setVolume(1)})}setVolume(e,t){let r=this.playerMap.get(e);if(r){if(r.audioLevel=t,this.muted)return;r.setVolume(t)}else m("\u8BBE\u7F6E\u4E86\u6D41\u7684\u97F3\u91CF\uFF0C\u4F46\u662F\u6CA1\u6709\u627E\u5230\u5BF9\u5E94\u7684\u64AD\u653E\u5668",e)}setDevice(e,t=!1){return c(this,null,function*(){this.deviceId=e,t&&(yield Y(2e3)),this.playerMap.forEach(r=>c(this,null,function*(){yield r.setSinkId(e)}))})}addPlayerEvent(e){e.on("player-state-changed",t=>{e.stream&&(u("audio player state change","","",[JSON.stringify(t)]),t.type==="error"&&t.reason&&t.reason.name==="NotAllowedError"&&this.playStateChangeWatcher.next(e),t.state==="PAUSED"&&e.resume())})}clear(){u("audio play clear"),this.playerMap.forEach(e=>e.destroy()),this.playerMap.clear(),this.playMap=new WeakSet}destroy(){u("audio play destroy"),this.playerMap.forEach(e=>e.destroy()),this.playerMap.clear(),this.playMap=new WeakSet}};var yt=1,xi={audio:!0,video:!0,streamType:"small",videoEnable:!0,audioEnable:!0},Fe=!0,Re=class{constructor({initDevices:e}={initDevices:!0}){this.roomVM=null;this.videoDevices=[];this.audioDevices=[];this.audioOutputDevices=[];this.selectVideoDevice=null;this.selectAudioDevice=null;this.selectAudioOutputDevice=null;this.streamQueue=new $e;this.userListColumns=1;this.sortType=1;this.BRTCConnectFailed=!1;this.pubFailedNum=0;this.streamConnectedErrorQueue=[];this.conferenceMode=1;this.isBig=!1;this.selectVideoDeviceWatcher=new O.BehaviorSubject(this.selectVideoDevice);this.selectAudioDeviceWatcher=new O.BehaviorSubject(this.selectAudioDevice);this.selectAudioOutputDeviceWatcher=new O.BehaviorSubject(this.selectAudioOutputDevice);this.audioDevicesWatcher=new O.Subject;this.videoDevicesWatcher=new O.Subject;this.audioOutputDevicesWatcher=new O.Subject;this.raiseHandleRespWatcher=new O.Subject;this.enableAudienceSpeakingWatcher=new O.Subject;this.mediaPermission={microphone:!0,camera:!0,screen:!0};this.videoProfile="360p";this.audioProfile=null;this.voiceMode="";this.videoEncodeConfig=null;this.streamWSReconnectWatcher=new O.Subject;this.bloudWSReconnectWatcher=new O.Subject;this.netConnecting=!0;this.netConnectingWatcher=new O.Subject;this.hasSyncPermission=!0;this.meetingControlOptions={cancelAutoPull:!1};this.forceId="";this.networkState={bloud:!0,brtc:!0};this.brtcNetEnableWatcher=new O.Subject;this.autoPlayAudio=!0;this.pubFailedTimer=null;this.messageWatcher=new O.BehaviorSubject({type:"init",status:!1,isNotCancelRootReport:!1});this.isInWaitRoom=!1;this.shouldPlayAudio=!0;this.handleReprocessStreamError=()=>{this.netConnecting&&this.networkState.brtc&&this.networkState.bloud&&this.streamConnectedErrorQueue.length&&(u("brtc \u7F51\u7EDC\u6062\u590D\u6B63\u5E38\uFF0C\u5904\u7406\u91CD\u63A8\u903B\u8F91","","",this.streamConnectedErrorQueue),this.streamConnectedErrorQueue.forEach(e=>{this.handleStreamConnectError(e)}),this.streamConnectedErrorQueue=[])};this.handleMediaDevicesChange=(0,$.debounce)(()=>c(this,null,function*(){let e=this.filterDevice(this.audioDevices);yield this.bmStreamVm.changeAudioInput(e);let t=this.filterDevice(this.audioOutputDevices);yield this.bmStreamVm.changeSpeaker(t,!0)}),1e3);this.enumVideoDevices=_.enumVideoDevices;this.enumAudioInputDevices=_.enumAudioInputDevices;this.enumAudioOutputDevices=_.enumAudioOutputDevices;this.getPermissions=_.getPermissions;this.checkSystemSupport=_.checkSystemSupport;this.createStream=_.createStream;this.participantNotice=!1;this.handleQueueTask=(e,t=!1)=>c(this,null,function*(){if(!this.BRTCConnectFailed&&!(!e.isLocal&&this.meetingControlOptions.cancelAutoPull&&!e.shouldPull)){if(!this.streamModelExits(e)){v(`streamModel is not exits, userId: ${e.userId}, isShare: ${e.isShare}, ignore`);return}yield this.handleStreamTask(e,t)}});this.republishLocalStream=(0,$.debounce)(e=>c(this,null,function*(){let t=e.getAudioOn()||!1,r=e.getVideoOn()||!1;u("republish local stream ","","",[t,r]),(t||r)&&(yield this.publish(e).then(()=>c(this,null,function*(){this.bmStreamVm.bloudStream=null,yield this.bmStreamVm.publishBloudStream(t,r),u("local stream connect error, and republish success, bloud stream republish success","","",["audio =>",t," video => ",r]),this.bmStreamVm.localStreamConnectErrorWatcher.next((0,E.BMStreamReconnectSuccess)(t,r))})).catch(()=>{u("local stream connect error, and republish failed","","",["audio =>",t," video => ",r]),this.bmStreamVm.localStreamConnectErrorWatcher.next((0,E.BMStreamReconnectFailed)())}))}),1e3);this.processUser=e=>c(this,null,function*(){let t=new Set;if(e.forEach(r=>{if(r.isScreen){let s=this.bmStreamVm.getShareStreamModelByUId(r.id);(!s||!s.stream)&&(r.isWeb?t.add(`${r.id}_screen`):t.add(r.id))}else{let s=this.bmStreamVm.streamModels.get(r.id);s&&!s.stream&&t.add(r.id)}}),u("brtc query streams","","",["queryIds => ",JSON.stringify(Array.from(t))]),t.size)try{let r=yield this.queryBrtcStreams(Array.from(t));if(r&&r.length){let s=r.map(o=>[o.getUserId(),o.getStreamId()]);u("brtc query streams result","","",["streamInfo =>",JSON.stringify(s)]),r&&this.handleAddStreams(r)}}catch(r){m("query stream error","","",[JSON.stringify(r)])}});this.queueProcessor=(0,$.debounce)(this.processUser,500,{maxWait:1e3});qe.Logger.setLogLevel(qe.LOGLEVEL.INFO),u(`
2
2
  ******************************************************************************
3
3
  * \u6B22\u8FCE\u4F7F\u7528 BoomCore(${Lt.version})
4
4
  ******************************************************************************
5
- `),qe.Logger.info("this is formatted by hysc/logger module");let t=f.getInstance();this.localUser=new X({},!0),this.roomInfo=new Je(this),this.bmLiveVM=new Xr(this),this.bmStreamVm=new je().initWithRoom(this),this.boomCore=new _.default({}),t.on(ce,r=>{this.handleSubMessage(r)}),t.on(K,r=>{this.handleStreamConnectError(r)}),t.on(Se,r=>{this.addUser2Queue(r)}),t.on(me,r=>{this.manualSubscribeStreamModel(r.stream)}),t.on(he,r=>{this.handleUnsubscribe(r.stream)}),t.on(de,r=>{this.handleStreamBindElement(r.stream)}),t.on(ge,r=>{this.handleStreamBindBigElement(r.stream)}),t.on(be,r=>{var s;(s=this.audioPlayer)==null||s.setVolume(r.streamId,r.volume)}),t.on(ye,r=>{let s=r.stream.stream;s&&!s.isLocalStream()&&(this.audioPlayer.playMap.has(s)||this.audioPlayer.addStream(s))}),window.addEventListener("offline",()=>{this.netConnecting=!1,this.netConnectingWatcher.next(!1)}),window.addEventListener("online",()=>{this.netConnecting=!0,this.netConnectingWatcher.next(!0),Ve.forEach(r=>{r()}),Ve.clear(),this.handleReprocessStreamError()}),window.navigator.mediaDevices&&e&&(window.navigator.mediaDevices.ondevicechange=r=>c(this,null,function*(){u("media devices change","","",[JSON.stringify(r)]),yield this.initDevices(),yield this.handleMediaDevicesChange()}),this.initDevices()),this.streamQueue.setQueueProcessor(this.queueProcessor),this.brtcNetEnableWatcher.subscribe(r=>{r&&this.handleReprocessStreamError()}),this.bloudWSReconnectWatcher.subscribe(r=>{r&&this.handleReprocessStreamError()})}setVoiceMode(e){this.voiceMode=e}get isSingleColumns(){return this.userListColumns===1}get localIsAudience(){var e;return(e=this.getLocalParticipant())==null?void 0:e.isAudience}get shouldIgnoreStream(){return this.conferenceMode===2&&this.isBig&&this.localIsAudience&&!this.localUser.audioEnable}get isWorkShop(){return this.conferenceMode===2}setAutoPlayAudio(e){this.autoPlayAudio=e,Fe=e}setMediaPermission(e){this.mediaPermission=L(L({},this.mediaPermission),e),u("current media permission is ","","",[JSON.stringify(this.mediaPermission)])}setShouldPlayAudio(e){this.shouldPlayAudio=e}initAudioPlayer(e){u("init audio player"),this.audioPlayer=new Qe(e,this)}setupMeetingControlOptions(e){e&&(this.meetingControlOptions=L(L({},this.meetingControlOptions),e))}handleSubMessage(e){F.addQueue(this.handleQueueTask.bind(this,e.stream),`${e.stream.streamId} - \u8BA2\u9605\u6D41 - display ${e.stream.isDisplay} - currentDisplay - ${e.stream.isCurrentDisplay}`,0,e.stream.nickname)}setVideoProfile(e){e&&(u(`set video profile ${e} `),this.videoProfile=e)}setCustomVideoEncodeConfig(e){this.videoEncodeConfig=e}setUserListColumns(e){let t=(0,$.toNumber)(e);if((0,$.isNumber)(t))this.userListColumns=t;else throw new Error("\u53C2\u6570\u5FC5\u987B\u662F\u6570\u5B57")}setSortType(e){let t=(0,$.toNumber)(e);if(t>2||t<1)throw new Error("\u6392\u5E8F\u6620\u5C04\u53EA\u80FD\u4E3A 2 \u6216\u8005 1");this.sortType=t,yt=this.sortType}setAudioProfile(e){this.audioProfile=e}setSig(e){this.boomCore.setShareSig(e)}initDevices(){return c(this,null,function*(){return Promise.all([this.enumVideoDevices().then(e=>{this.videoDevices=e,this.videoDevicesWatcher.next(e)}),this.enumAudioInputDevices().then(e=>{this.audioDevices=e,this.audioDevicesWatcher.next(e)}),this.enumAudioOutputDevices().then(e=>{this.audioOutputDevices=e,this.audioOutputDevicesWatcher.next(e)})]).then(()=>{let e=this.videoDevices.filter(n=>{var l;return n.name==((l=this.selectVideoDevice)==null?void 0:l.name)}),t=e[0]?e[0]:this.filterDevice(this.videoDevices);t&&this.setSelectVideoDevice(t);let r=this.audioDevices.filter(n=>{var l;return n.name==((l=this.selectAudioDevice)==null?void 0:l.name)}),s=r[0]?r[0]:this.filterDevice(this.audioDevices);s&&this.setSelectAudioDevice(s);let o=this.audioOutputDevices.filter(n=>{var l;return n.name==((l=this.selectAudioOutputDevice)==null?void 0:l.name)}),a=o[0]?o[0]:this.filterDevice(this.audioOutputDevices);return a&&this.setSelectSpeakerDevice(a),{videoDevices:this.videoDevices,audioDevices:this.audioDevices,audioOutputDevices:this.audioOutputDevices,selectVideoDevice:this.selectVideoDevice,selectAudioDevice:this.selectAudioDevice,selectAudioOutputDevice:this.selectAudioOutputDevice}})})}filterDevice(e){let t=e.filter(r=>r.default)[0];return t||e[0]}setSelectAudioDevice(e){var t;((t=this.selectAudioDevice)==null?void 0:t.deviceId)!==e.deviceId&&(u("setSelectAudioDevice","","",["deviceId =>",e.deviceId,"name =>",e.name]),this.selectAudioDevice=e,this.selectAudioDeviceWatcher.next(e))}setSelectVideoDevice(e){var t;((t=this.selectVideoDevice)==null?void 0:t.deviceId)!==e.deviceId&&(u("setSelectVideoDevice","","",["deviceId =>",e.deviceId,"name =>",e.name]),this.selectVideoDevice=e,this.selectVideoDeviceWatcher.next(e))}setSelectSpeakerDevice(e){var t;((t=this.selectAudioOutputDevice)==null?void 0:t.deviceId)!==e.deviceId&&(u("setSelectSpeakerDevice","","",["deviceId =>",e.deviceId,"name =>",e.name]),this.selectAudioOutputDevice=e,this.selectAudioOutputDeviceWatcher.next(e))}observe(e,t){return this.observes[e].subscribe(t)}join(e){return c(this,null,function*(){let t=e.brtc_host;t&&this.setCustomUrl(t);try{if(this.boomCore.client)return m("\u91CD\u590D join\uFF0C\u8BF7\u5148\u8C03\u7528 destroy"),Promise.reject(E.RepeatJoinError);this.conferenceMode=e.roomType,this.isBig=e.is_big,u("========================","join info",e.userId,["roomId: ",e.room," roomType: ",e.roomType," roomName: ",e.name]),this.localUser.setup(e.userId,e.userinfo,e.nickname),this.bmStreamVm.createStreamModel(this.localUser),this.userVM=new _e(this.boomCore,this.localUser,this),this.isBig&&(this.userVM.commTimer=1e3),this.roomVM=new We(this.boomCore,this.userVM,this.roomInfo),this.roomVM.initWithRoom(this),this.chatVM=new He(this.boomCore,this.userVM,this),this._attachEvents(),yield this.boomCore.join(e).catch(r=>Promise.reject(r)),this.roomInfo.setup(this.boomCore.getRoomInfo());for(let r in this.observes)this.observe(r,()=>{});this.bmStreamVm.startSpeakerDetector(),this.roomInfo.setlock(this.boomCore.client.lock),Yr(this.boomCore)}catch(r){return m("join room error","","",[JSON.stringify(r)]),Promise.reject(r)}})}leave(){return c(this,null,function*(){var e,t;try{this.pubFailedTimer&&clearTimeout(this.pubFailedTimer),this.pubFailedNum=0,f.removeEmitter(),Fe=!0,(e=this.audioPlayer)==null||e.destroy(),this.bmStreamVm.clearCache(),this.bmStreamVm.canvasTimer&&clearTimeout(this.bmStreamVm.canvasTimer);let r=yield this.boomCore.leave().catch(()=>{m("bloud\u79BB\u4F1A\u5931\u8D25")});for(let s in this.observes)(t=this.observes[s])==null||t.unsubscribe();return this.observes={},r}catch(r){return m("leave room error","","",[JSON.stringify(r)]),Promise.reject((0,E.BmLeaveError)(JSON.stringify(r)))}})}releaseRoom(){return c(this,null,function*(){yield this.boomCore.releaseRoom()})}startRecord(e){return c(this,null,function*(){return yield this.bmStreamVm.startRecord(e)})}stopRecord(){return c(this,null,function*(){return yield this.bmStreamVm.stopRecord()})}sliceRecord(e){return c(this,null,function*(){return yield this.bmStreamVm.sliceRecord(e)})}close(){this.bmStreamVm.clearCache(),this.boomCore.close()}setRemoteVideoEnable(e,t){return c(this,null,function*(){yield this.roomVM.setRemoteVideoEnable(e,t).catch(r=>Promise.reject(r))})}setRemoteAudioEnable(e,t,r){return c(this,null,function*(){yield this.roomVM.setRemoteAudioEnable(e,t,r).catch(s=>Promise.reject(s))})}setLocalVideoEnable(e,t){return c(this,null,function*(){yield this.bmStreamVm.setLocalVideoEnable(e,t).catch(r=>Promise.reject(r))})}setLocalAudioEnable(e){return c(this,null,function*(){yield this.bmStreamVm.setLocalAudioEnable(e).catch(t=>Promise.reject(t))})}setLocalSpeakerEnable(e){return c(this,null,function*(){yield this.bmStreamVm.muteSpeaker(e).catch(t=>Promise.reject(t))})}_attachEvents(){this.observes=_r(this.boomCore,this.userVM,this.bmStreamVm,this.chatVM,this)}createSingleLocalStream(){return c(this,arguments,function*(e={video:!0,audio:!0},t){var o,a;let r={video:e.video,audio:e.audio,cameraId:(o=this.selectVideoDevice)==null?void 0:o.deviceId,microphoneId:(a=this.selectAudioDevice)==null?void 0:a.deviceId,sourceType:"camera"};e.videoSource&&(r.videoSource=e.videoSource),e.audioSource&&(r.audioSource=e.audioSource),r.echoCancellation=!0,r.noiseSuppression=!0,r.autoGainControl=!0,this.voiceMode&&(r.audioHint=this.voiceMode,r.noiseSuppression=!1);let s=yield this.boomCore.createLocalStream(r,t).catch(n=>(m("create brtc stream error","","",[JSON.stringify(n),n==null?void 0:n.message]),Promise.reject((0,E.getStreamError)(e.video?"\u6444\u50CF\u5934":"\u9EA6\u514B\u98CE"))));e.video&&(this.videoEncodeConfig?s.setVideoEncoderConfiguration(this.videoEncodeConfig):this.videoProfile==="720p"?s.setVideoEncoderConfiguration({width:1280,height:720,bitrate:1500,frameRate:25}):s.setVideoProfile(this.videoProfile));try{yield s.init()}catch(n){if(m("brtc init stream failed","","",[n==null?void 0:n.message]),String(n).includes("Permission denied by system")){if(e.video)return Promise.reject((0,E.BMCameraNotAuthError)());if(e.audio)return Promise.reject((0,E.BMMicNotAuthError)())}else{if(String(n).includes("Could not start video source"))return Promise.reject((0,E.BMCameraOccupyError)());if(String(n).includes("Could not start audio source"))return Promise.reject((0,E.BMMicOccupyError)())}return Promise.reject((0,E.BMCreateStreamError)(e.video?"\u6444\u50CF\u5934":"\u9EA6\u514B\u98CE"))}return s})}createPBSingleLocalStream(){return c(this,arguments,function*(e={video:!0,audio:!0},t){var o,a;let r={video:e.video,audio:e.audio,cameraId:(o=this.selectVideoDevice)==null?void 0:o.deviceId,microphoneId:(a=this.selectAudioDevice)==null?void 0:a.deviceId,sourceType:"camera"};r.echoCancellation=!0,r.noiseSuppression=!0,r.autoGainControl=!0,this.voiceMode&&(r.audioHint=this.voiceMode,r.noiseSuppression=!1);let s=yield this.boomCore.createPBLocalStream(r,t).catch(n=>Promise.reject(n));return this.videoProfile==="720p"?s.setVideoEncoderConfiguration({width:1280,height:720,bitrate:1500,frameRate:25}):s.setVideoProfile(this.videoProfile),yield s.init(),s})}subscribe(e,t){return c(this,null,function*(){return this.boomCore.subscribe(e,t)})}unsubscribe(e){return this.boomCore.unsubscribe(e).catch(t=>Promise.reject(t))}publish(e){return new Promise((t,r)=>{this.boomCore.publish(e).then(()=>{u("brtc stream publish success"),t(!0)}).catch(()=>c(this,null,function*(){this.pubFailedNum<=3?(this.pubFailedNum+=1,this.pubFailedTimer&&clearTimeout(this.pubFailedTimer),this.pubFailedTimer=setTimeout(()=>(m(`local publish stream failed, retry failed num: ${this.pubFailedNum}`),this.publish(e).then(t).catch(r)),3e3)):(m("retry publish local stream failed, ubpublish now"),yield this.bmStreamVm.unpublishStream(),r(!1))}))})}unpublish(e){return this.boomCore.unpublish(e).catch(t=>Promise.reject(t))}getUser(e){return this.userVM.getUser(e)}changeMaster(e,t=!1){return c(this,null,function*(){var r;return(r=this.roomVM)==null?void 0:r.changeMaster(e,t).catch(s=>s)})}updateManager(e,t,r=!0){return c(this,null,function*(){return this.roomVM.updateManager(e,t,r).catch(s=>s)})}getMaster(){return this.boomCore.getMaster()}getCreator(){return this.boomCore.getCreator()}getName(){return this.boomCore.getName()}evictUser(e,t){return c(this,null,function*(){var r;yield(r=this.roomVM)==null?void 0:r.evictUser(e,t).catch(s=>s)})}updateUser(e,t){return c(this,null,function*(){var r;(r=this.roomVM)==null||r.updateUser(e,t).catch(s=>s)})}getMsgSeq(){return this.boomCore.getMsgSeq()}getLimits(){return this.boomCore.getLimits()}getSwitch(){return this.boomCore.getSwitch()}syncRoom(){return this.boomCore.syncRoom()}update(e){return this.boomCore.update(e)}getUsers(){return this.userVM.userList}getTotalUsers(){return this.userVM.userList.size}sendMessage(e,t){return this.boomCore.sendMessage(e,t)}customMessage(e,t){return this.boomCore.customMessage(e,t)}getMessages(e,t){return this.boomCore.getMessages(e,t)}getLocalParticipant(){var t;let e=(t=this.userVM)==null?void 0:t.getLocalUser();return e||(e=this.localUser),e}getAudioOff(){return this.boomCore.getAudioOff()}getSelfOpenAudio(){return this.boomCore.getSelfOpenAudio()}getVideoOff(){return this.boomCore.getVideoOff()}getMsgOff(){return this.boomCore.getMsgOff()}getLock(){return this.boomCore.getLock()}getRoomInfo(){return this.roomInfo}setAudioOff(e,t){return c(this,null,function*(){return yield this.boomCore.setAudioOff(e,t).catch(r=>Promise.reject((0,E.BmSetAudioOffError)(`boomCore.setAudioOff error ${JSON.stringify(r)}`)))})}updateRoom(e){return c(this,null,function*(){return this.boomCore.client.update(e)})}setVideoOff(e){return this.boomCore.setVideoOff(e).catch(t=>Promise.reject((0,E.BmSetVideoOffError)(`boomCore.setVideoOff error ${JSON.stringify(t)}`)))}setMsgOff(e){return this.boomCore.setMsgOff(e).catch(t=>Promise.reject((0,E.BmSetMsgOffError)(`boomCore.setMsgOff error ${JSON.stringify(t)}`)))}setSwitch(e){return this.boomCore.setSwitch(e)}setLock(e){return c(this,null,function*(){return yield this.boomCore.setLock(e),this.boomCore.getLock()})}sendChatMessage(e,t,r){if(!this.chatVM)throw new P(1002,"\u672A\u521D\u59CB\u5316chatVM, \u65E0\u6CD5\u53D1\u9001\u804A\u5929\u4FE1\u606F");return this.chatVM.sendMessage(e,t,r)}getChatMessage(){if(!this.chatVM)throw new P(1002,"\u672A\u521D\u59CB\u5316chatVM, \u65E0\u6CD5\u83B7\u53D6\u804A\u5929\u5BA4\u6D88\u606F");return this.chatVM.messageList}getHistoryMessage(){return c(this,null,function*(){return this.chatVM.getHistoryMessage()})}updateCustomStats(e){return u("updateCustomStats","","",[JSON.stringify(e)]),this.boomCore.updateCustomStats(Te(L({},e),{pos:"web"})).catch(t=>Promise.reject((0,E.BmUpdateCustomStatsError)(`.boomCore.updateCustomStats ${JSON.stringify(t)}`)))}getCustomStats(){return this.boomCore.getCustomStats()}getDuration(){return this.boomCore.getDuration()}checkUserHasMaster(e){return this.userVM.checkUserHasMaster(e)}changeNickName(e,t){return c(this,null,function*(){var r;yield(r=this.roomVM)==null?void 0:r.changeNickName(e,t)})}streamModelExits(e){let t=e.userId;return e.isShare?this.bmStreamVm.shareStreamModels.has(t):this.bmStreamVm.streamModels.has(t)}handleStreamTask(e,t=!1){return c(this,null,function*(){if(!this.streamModelExits(e)){A(`streamModel is not exits, userId: ${e.userId}, isShare: ${e.isShare}, ignore`);return}e.stream?this.conferenceMode===1?(yield this.handlePull(e),yield this.handleChangeStreamType(e)):(yield this.bmLiveVM.handlePull(e),yield this.bmLiveVM.handleChangeStreamType(e)):((e.isDisplay||e.isInBig)&&e.bloudStream||e.audioEnable)&&(yield this.addUser2Queue({id:e.userId,isScreen:e.isShare,isWeb:e.isWeb}))})}handlePull(e){return c(this,null,function*(){var t;e.isLocal||(e.isMixer&&(yield this.handleSubscribeSteam(e)),(e.isDisplay!==e.isCurrentDisplay||e.isInBig&&e.pulledStreamType!==e.pulledStreamGoal||!e.hasPulled)&&(e.isCurrentDisplay=e.isDisplay,e.checkCount=0,e.isDisplay||e.isInBig||!e.isDisplay&&(e.audioEnable||(t=e.stream)!=null&&t.getAudioOn())?yield this.handleSubscribeSteam(e):yield this.handleUnsubscribeStream(e)))})}manualSubscribeStreamModel(e){F.addQueue(this.handleStreamTask.bind(this,e),e.streamId,0,e.nickname)}handleUnsubscribe(e){F.addQueue(this.handleUnsubscribeStream.bind(this,e),e.streamId,0,e.nickname)}handleStreamBindElement(e){F.addQueue(this.handlePlaySmall.bind(this,e,!1,!1),`bindElement-${e.userId}-${e.nickname}`,0,e.nickname)}handleStreamBindBigElement(e){F.addQueue(this.handlePlayInBIg.bind(this,e),`bindElement-${e.userId}-${e.nickname}`,0,e.nickname)}handleUnsubscribeStream(e){return c(this,null,function*(){var t,r,s;if(e.stream&&((r=(t=e.stream)==null?void 0:t.isSubscribed)!=null&&r.call(t)||e.hasPulled)){e.hasPulled=!1,e.pulledStreamType="small",e.isInBig=!1;try{(s=e.stream)==null||s.stop()}catch(o){}yield this.unsubscribe(e.stream).then(()=>{var o,a;e.stream&&((o=this.audioPlayer)==null||o.removeStream(e.stream)),e.isSubScribedWatcher.next(!1),u("\u53D6\u6D88\u8BA2\u9605\u6D41\u6210\u529F","",e.userId,[e.nickname,e.isDisplay,e.isCurrentDisplay,(a=e.stream)==null?void 0:a.getStreamId()])}).catch(()=>{m("unsubscribe error")})}})}handleSubscribeSteam(e){return c(this,null,function*(){var t,r;try{e.hasPulled&&e.stream.isSubscribed()?e.isDisplay?(t=e.stream)==null||t.unmuteVideo().then(()=>{u("stream unmute video success","unmute-video",e.userId,["streamId => ",e.streamId])}):(r=e.stream)==null||r.muteVideo().then(()=>{u("stream mute video success","mute-video",e.userId,["streamId => ",e.streamId])}):(u("\u5F00\u59CB\u8BA2\u9605","\u8BA2\u9605",e.userId,[e.streamId]),e.hasPulled=!0,yield this.subscribe(e.stream,xi).then(()=>{var s,o;u("\u8BA2\u9605\u6D41\u7ED3\u675F","\u8BA2\u9605",e.userId,[" nickname =>",e.nickname,"streamId =>",e.streamId,"display =>",e.isDisplay]),e.isDisplay||(s=e.stream)==null||s.muteVideo(),e.stream&&e.audioEnable&&((o=this.audioPlayer)==null||o.addStream(e.stream,!0)),e.pullFailedNum=0,e.isSubScribedWatcher.next(!0),this.bmStreamVm.addToRecorder(e.stream),e.isDisplay&&e.videoEnable&&this.handlePlay(e,!0)}).catch(s=>{var o,a;if(m("\u8BA2\u9605\u6D41\u5931\u8D25","\u8BA2\u9605",e.userId,[" nickname =>",e.nickname,"streamId =>",e.streamId," error => ",JSON.stringify(s)]),e.hasPulled=!1,e.pulledStreamType="small",e.pullFailedNum+=1,(o=e.player)==null||o.destroy(),e.pullFailedNum<=3)this.handlePulledFailed(e);else{e.pullFailedNum=0;let n=e.isShare;try{(a=e.stream)==null||a.destroy()}catch(l){}e.updateStream(void 0,!1,this.bmStreamVm),u("subscribe stream failed, need to reQuery stream","",e.userId,["streamId =>",e.streamId,"hasStream => ",!!e.stream,"isWeb => ",e.isWeb,"isScreen => ",n,"bloudStreamState =>",JSON.stringify(e.bloudStream)]),e.bloudStream&&this.addUser2Queue({id:e.userId,isWeb:e.isWeb,isScreen:n})}}))}catch(s){e.hasPulled=!1,e.pulledStreamType="small",console.error("\u8BA2\u9605\u6D41\u5931\u8D25","",e.userId,e.nickname,"\u9519\u8BEF =>",s)}})}handleChangeStreamType(e){return c(this,null,function*(){var t,r;e.isLocal||e.pulledStreamType!==e.pulledStreamGoal&&((t=e.stream)!=null&&t.isSubscribed())&&((r=e.stream)!=null&&r.isSubscribed()||e.hasPulled)&&(e.pulledStreamType=e.pulledStreamGoal,yield this.boomCore.brtcClient.setRemoteVideoStreamType(e.stream,e.pulledStreamGoal).catch(s=>{m("\u5927\u5C0F\u6D41\u5207\u6362\u5931\u8D25","",e.userId,["error => ",JSON.stringify(s)])}),u("\u5927\u5C0F\u6D41\u5207\u6362\u7ED3\u675F","",e.userId,["nickname =>",e.nickname," isInBig => ",e.isInBig," pulledStreamGoal => ",e.pulledStreamGoal,"pulledStreamType => ",e.pulledStreamType]))})}handlePlay(e,t=!1){return c(this,null,function*(){this.streamModelExits(e)&&(e.stream&&e.isLocal&&!e.isShare||!e.isLocal&&e.stream.isSubscribed())&&(e.isDisplay&&e.playerId&&e.play(t),e.isInBig&&e.bigPlayerId&&e.playInBig(t))})}handlePlaySmall(e){this.streamModelExits(e)&&e.play()}handlePlayInBIg(e){this.streamModelExits(e)&&e.playInBig()}handlePulledFailed(e){let t=e.userId;(e.isShare?this.bmStreamVm.shareStreamModels.has(t):this.bmStreamVm.streamModels.has(t))&&F.addQueue(this.handleQueueTask.bind(this,e),e.streamId,0,e.nickname)}handleStreamConnectError(e){return c(this,null,function*(){var s,o;let{stream:t,isLocal:r}=e;u("handleStreamConnectError","","",["nickname =>",t.nickname,"streamId => ",t.streamId,"isShare =>",t.isShare,"isLocal => ",r]),t.stream&&(t.stream.stop(),(s=this.audioPlayer)==null||s.removeStream(t.stream)),(o=t.player)==null||o.destroy(),r?t.stream&&(t.isShare?this.bmStreamVm.localShareError.next((0,E.BMShareStreamConnectError)()):this.bmStreamVm.localStreamConnectErrorWatcher.next((0,E.BMStreamConnectError)()),this.netConnecting&&this.networkState.brtc&&this.networkState.bloud?t.isShare?(u("Local share stream has problem, now ,republish"),ot(this,this.bmStreamVm)):(u("brtc \u7F51\u7EDC\u6B63\u5E38\uFF0C\u91CD\u65B0\u63A8\u6D41"),t.stream&&(yield this.republishLocalStream(t.stream))):(m("brtc \u7F51\u7EDC\u8FD8\u6CA1\u6062\u590D\uFF0C\u7B49\u6062\u590D\u4E86\u5728\u91CD\u65B0\u63A8\u6D41 ","",t.userId,["nickname =>",t.nickname,"streamId => ",t.streamId,"isShare =>",t.isShare]),this.streamConnectedErrorQueue.push(e))):this.netConnecting&&this.networkState.brtc?(t.hasPulled=!1,t.pulledStreamType="small",F.addQueue(this.handleQueueTask.bind(this,t),t.streamId,0,t.nickname)):(m("brtc \u7F51\u7EDC\u8FD8\u6CA1\u6062\u590D\uFF0C\u7B49\u6062\u590D\u4E86\u5728\u91CD\u65B0\u62C9\u6D41 ","",t.userId,["nickname =>",t.nickname]),this.streamConnectedErrorQueue.push(e))})}toggleAudienceSpeaking(e,t){e.permission.setAudio(t),this.updateUser(e.userId,{permission:e.permission.get()})}updateUserIsGuest(e,t){return c(this,null,function*(){e.permission.setSubscribe(t),yield this.updateUser(e.userId,{permission:e.permission.get()})})}managerChangeToGuest(e){this.userVM.managerChangeToGuest(e)}moveUserRoom(e,t=!1,r=!1){return this.boomCore.client.moveUserRoom(e,t,r)}getParticipantNotice(e){this.participantNotice=e}setCustomUrl(e){this.boomCore.setCustomUrl(e)}handleRePushSelf(){return c(this,null,function*(){var t,r;let e=(r=(t=this.getLocalParticipant())==null?void 0:t.getMainStreamModel())==null?void 0:r.stream;e&&(yield this.republishLocalStream(e))})}handleResetOtherStreamStatus(){u("brtc sync-room-completed"),this.audioPlayer.clear(),this.bmStreamVm.streamModels.forEach(e=>{var t;if(!e.isLocal){e.hasPulled=!1,e.pulledStreamType="small";try{e.stream&&e.stream.stop(),(t=e.stream)==null||t.destroy()}catch(r){}e.updateStream(void 0,!1,this.bmStreamVm)}}),this.bmStreamVm.shareStreamModels.forEach(e=>{var t,r;if(!e.isLocal){e.hasPulled=!1,e.pulledStreamType="small";let s=e.getUser();try{(t=e.stream)==null||t.stop(),(r=e.stream)==null||r.destroy()}catch(o){}s.removeStream(`${e.userId}${k}`)}}),this.bmStreamVm.shareStreamModels.clear(),this.bmStreamVm.shareStreamModelsWatcher.next(Array.from(this.bmStreamVm.shareStreamModels.values())),this.networkState.brtc=!0,setTimeout(()=>{this.brtcNetEnableWatcher.next(!0),this.streamWSReconnectWatcher.next(!0)},2e3),se(this)}addUser2Queue(e){return c(this,null,function*(){var t;if(e.force&&this.processUser(new Map([[e.id,e]])),e.isScreen)this.streamQueue.addUsers([e]);else{let r=this.bmStreamVm.streamModels.get(e.id);r&&!r.isLocal&&(r.stream||r&&((t=r.bloudStream)!=null&&t.audio||r.bloudStream&&r.isDisplay)&&this.streamQueue.addUsers([e]))}})}queryBrtcStreams(e){return c(this,null,function*(){return yield this.boomCore.brtcClient.queryUsers(e)})}handleAddStreams(e){e.forEach(t=>{if(Z(t)){let r=this.bmStreamVm.shareStreamModels.get(Re(t.getUserId().toString()));(!r||r&&!r.stream)&&(r!=null&&r.player&&r.player.destroy(),this.bmStreamVm.remoteStreamPublished(t))}else{let r=this.bmStreamVm.streamModels.get(t.getUserId().toString());r&&!r.stream&&(r!=null&&r.player&&r.player.destroy(),this.bmStreamVm.remoteStreamPublished(t))}})}getForceUser(e){return c(this,null,function*(){yield this.queryUsers([e]),this.userVM.getForceUserWatcher.next(!0)})}queryUsers(e){return c(this,null,function*(){let{users:t}=yield this.boomCore.queryUsers(e);this.userVM.addBcUsersMap(t,!0)})}getVersion(){return Lt.version}};var ze=require("@hysc/utils"),wi=Ue;window.BoomMeeting=Ue;window.BoomError=ze.BoomError;window.BOOMLogger=ze.Logger;0&&(module.exports={Logger});
5
+ `),qe.Logger.info("this is formatted by hysc/logger module");let t=f.getInstance();this.localUser=new X({},!0),this.roomInfo=new Je(this),this.bmLiveVM=new Xr(this),this.bmStreamVm=new je().initWithRoom(this),this.boomCore=new _.default({}),t.on(ce,r=>{this.handleSubMessage(r)}),t.on(K,r=>{this.handleStreamConnectError(r)}),t.on(Se,r=>{this.addUser2Queue(r)}),t.on(me,r=>{this.manualSubscribeStreamModel(r.stream)}),t.on(he,r=>{this.handleUnsubscribe(r.stream)}),t.on(de,r=>{this.handleStreamBindElement(r.stream)}),t.on(ge,r=>{this.handleStreamBindBigElement(r.stream)}),t.on(be,r=>{var s;(s=this.audioPlayer)==null||s.setVolume(r.streamId,r.volume)}),t.on(ye,r=>{let s=r.stream.stream;s&&!s.isLocalStream()&&(this.audioPlayer.playMap.has(s)||this.audioPlayer.addStream(s))}),window.addEventListener("offline",()=>{this.netConnecting=!1,this.netConnectingWatcher.next(!1)}),window.addEventListener("online",()=>{this.netConnecting=!0,this.netConnectingWatcher.next(!0),Ve.forEach(r=>{r()}),Ve.clear(),this.handleReprocessStreamError()}),window.navigator.mediaDevices&&e&&(window.navigator.mediaDevices.ondevicechange=r=>c(this,null,function*(){u("media devices change","","",[JSON.stringify(r)]),yield this.initDevices(),yield this.handleMediaDevicesChange()}),this.initDevices()),this.streamQueue.setQueueProcessor(this.queueProcessor),this.brtcNetEnableWatcher.subscribe(r=>{r&&this.handleReprocessStreamError()}),this.bloudWSReconnectWatcher.subscribe(r=>{r&&this.handleReprocessStreamError()})}setVoiceMode(e){this.voiceMode=e}get isSingleColumns(){return this.userListColumns===1}get localIsAudience(){var e;return(e=this.getLocalParticipant())==null?void 0:e.isAudience}get shouldIgnoreStream(){return this.conferenceMode===2&&this.isBig&&this.localIsAudience&&!this.localUser.audioEnable}get isWorkShop(){return this.conferenceMode===2}setAutoPlayAudio(e){this.autoPlayAudio=e,Fe=e}setMediaPermission(e){this.mediaPermission=L(L({},this.mediaPermission),e),u("current media permission is ","","",[JSON.stringify(this.mediaPermission)])}setShouldPlayAudio(e){this.shouldPlayAudio=e}initAudioPlayer(e){u("init audio player"),this.audioPlayer=new Qe(e,this)}setupMeetingControlOptions(e){e&&(this.meetingControlOptions=L(L({},this.meetingControlOptions),e))}handleSubMessage(e){F.addQueue(this.handleQueueTask.bind(this,e.stream),`${e.stream.streamId} - \u8BA2\u9605\u6D41 - display ${e.stream.isDisplay} - currentDisplay - ${e.stream.isCurrentDisplay}`,0,e.stream.nickname)}setVideoProfile(e){e&&(u(`set video profile ${e} `),this.videoProfile=e)}setCustomVideoEncodeConfig(e){this.videoEncodeConfig=e}setUserListColumns(e){let t=(0,$.toNumber)(e);if((0,$.isNumber)(t))this.userListColumns=t;else throw new Error("\u53C2\u6570\u5FC5\u987B\u662F\u6570\u5B57")}setSortType(e){let t=(0,$.toNumber)(e);if(t>2||t<1)throw new Error("\u6392\u5E8F\u6620\u5C04\u53EA\u80FD\u4E3A 2 \u6216\u8005 1");this.sortType=t,yt=this.sortType}setAudioProfile(e){this.audioProfile=e}setSig(e){this.boomCore.setShareSig(e)}initDevices(){return c(this,null,function*(){return Promise.all([this.enumVideoDevices().then(e=>{this.videoDevices=e,this.videoDevicesWatcher.next(e)}),this.enumAudioInputDevices().then(e=>{this.audioDevices=e,this.audioDevicesWatcher.next(e)}),this.enumAudioOutputDevices().then(e=>{this.audioOutputDevices=e,this.audioOutputDevicesWatcher.next(e)})]).then(()=>{let e=this.videoDevices.filter(n=>{var l;return n.name==((l=this.selectVideoDevice)==null?void 0:l.name)}),t=e[0]?e[0]:this.filterDevice(this.videoDevices);t&&this.setSelectVideoDevice(t);let r=this.audioDevices.filter(n=>{var l;return n.name==((l=this.selectAudioDevice)==null?void 0:l.name)}),s=r[0]?r[0]:this.filterDevice(this.audioDevices);s&&this.setSelectAudioDevice(s);let o=this.audioOutputDevices.filter(n=>{var l;return n.name==((l=this.selectAudioOutputDevice)==null?void 0:l.name)}),a=o[0]?o[0]:this.filterDevice(this.audioOutputDevices);return a&&this.setSelectSpeakerDevice(a),{videoDevices:this.videoDevices,audioDevices:this.audioDevices,audioOutputDevices:this.audioOutputDevices,selectVideoDevice:this.selectVideoDevice,selectAudioDevice:this.selectAudioDevice,selectAudioOutputDevice:this.selectAudioOutputDevice}})})}filterDevice(e){let t=e.filter(r=>r.default)[0];return t||e[0]}setSelectAudioDevice(e){var t;((t=this.selectAudioDevice)==null?void 0:t.deviceId)!==e.deviceId&&(u("setSelectAudioDevice","","",["deviceId =>",e.deviceId,"name =>",e.name]),this.selectAudioDevice=e,this.selectAudioDeviceWatcher.next(e))}setSelectVideoDevice(e){var t;((t=this.selectVideoDevice)==null?void 0:t.deviceId)!==e.deviceId&&(u("setSelectVideoDevice","","",["deviceId =>",e.deviceId,"name =>",e.name]),this.selectVideoDevice=e,this.selectVideoDeviceWatcher.next(e))}setSelectSpeakerDevice(e){var t;((t=this.selectAudioOutputDevice)==null?void 0:t.deviceId)!==e.deviceId&&(u("setSelectSpeakerDevice","","",["deviceId =>",e.deviceId,"name =>",e.name]),this.selectAudioOutputDevice=e,this.selectAudioOutputDeviceWatcher.next(e))}observe(e,t){return this.observes[e].subscribe(t)}join(e){return c(this,null,function*(){let t=e.brtc_host;t&&this.setCustomUrl(t);try{if(this.boomCore.client)return m("\u91CD\u590D join\uFF0C\u8BF7\u5148\u8C03\u7528 destroy"),Promise.reject(E.RepeatJoinError);this.conferenceMode=e.roomType,this.isBig=e.is_big,u("========================","join info",e.userId,["roomId: ",e.room," roomType: ",e.roomType," roomName: ",e.name]),this.localUser.setup(e.userId,e.userinfo,e.nickname),this.bmStreamVm.createStreamModel(this.localUser),this.userVM=new _e(this.boomCore,this.localUser,this),this.isBig&&(this.userVM.commTimer=1e3),this.roomVM=new We(this.boomCore,this.userVM,this.roomInfo),this.roomVM.initWithRoom(this),this.chatVM=new He(this.boomCore,this.userVM,this),this._attachEvents(),yield this.boomCore.join(e).catch(r=>Promise.reject(r)),this.roomInfo.setup(this.boomCore.getRoomInfo());for(let r in this.observes)this.observe(r,()=>{});this.bmStreamVm.startSpeakerDetector(),this.roomInfo.setlock(this.boomCore.client.lock),Yr(this.boomCore)}catch(r){return m("join room error","","",[JSON.stringify(r)]),Promise.reject(r)}})}leave(){return c(this,null,function*(){var e,t;try{this.pubFailedTimer&&clearTimeout(this.pubFailedTimer),this.pubFailedNum=0,f.removeEmitter(),Fe=!0,(e=this.audioPlayer)==null||e.destroy(),this.bmStreamVm.clearCache(),this.bmStreamVm.canvasTimer&&clearTimeout(this.bmStreamVm.canvasTimer);let r=yield this.boomCore.leave().catch(()=>{m("bloud\u79BB\u4F1A\u5931\u8D25")});for(let s in this.observes)(t=this.observes[s])==null||t.unsubscribe();return this.observes={},r}catch(r){return m("leave room error","","",[JSON.stringify(r)]),Promise.reject((0,E.BmLeaveError)(JSON.stringify(r)))}})}releaseRoom(){return c(this,null,function*(){yield this.boomCore.releaseRoom()})}startRecord(e){return c(this,null,function*(){return yield this.bmStreamVm.startRecord(e)})}stopRecord(){return c(this,null,function*(){return yield this.bmStreamVm.stopRecord()})}sliceRecord(e){return c(this,null,function*(){return yield this.bmStreamVm.sliceRecord(e)})}close(){this.bmStreamVm.clearCache(),this.boomCore.close()}setRemoteVideoEnable(e,t){return c(this,null,function*(){yield this.roomVM.setRemoteVideoEnable(e,t).catch(r=>Promise.reject(r))})}setRemoteAudioEnable(e,t,r){return c(this,null,function*(){yield this.roomVM.setRemoteAudioEnable(e,t,r).catch(s=>Promise.reject(s))})}setLocalVideoEnable(e,t){return c(this,null,function*(){yield this.bmStreamVm.setLocalVideoEnable(e,t).catch(r=>Promise.reject(r))})}setLocalAudioEnable(e){return c(this,null,function*(){yield this.bmStreamVm.setLocalAudioEnable(e).catch(t=>Promise.reject(t))})}setLocalSpeakerEnable(e){return c(this,null,function*(){yield this.bmStreamVm.muteSpeaker(e).catch(t=>Promise.reject(t))})}_attachEvents(){this.observes=_r(this.boomCore,this.userVM,this.bmStreamVm,this.chatVM,this)}createSingleLocalStream(){return c(this,arguments,function*(e={video:!0,audio:!0},t){var o,a;let r={video:e.video,audio:e.audio,cameraId:(o=this.selectVideoDevice)==null?void 0:o.deviceId,microphoneId:(a=this.selectAudioDevice)==null?void 0:a.deviceId,sourceType:"camera"};e.videoSource&&(r.videoSource=e.videoSource),e.audioSource&&(r.audioSource=e.audioSource),r.echoCancellation=!0,r.noiseSuppression=!0,r.autoGainControl=!0,this.voiceMode&&(r.audioHint=this.voiceMode,r.noiseSuppression=!1);let s=yield this.boomCore.createLocalStream(r,t).catch(n=>(m("create brtc stream error","","",[JSON.stringify(n),n==null?void 0:n.message]),Promise.reject((0,E.getStreamError)(e.video?"\u6444\u50CF\u5934":"\u9EA6\u514B\u98CE"))));e.video&&(this.videoEncodeConfig?s.setVideoEncoderConfiguration(this.videoEncodeConfig):this.videoProfile==="720p"?s.setVideoEncoderConfiguration({width:1280,height:720,bitrate:1500,frameRate:25}):s.setVideoProfile(this.videoProfile));try{yield s.init()}catch(n){if(m("brtc init stream failed","","",[n==null?void 0:n.message]),String(n).includes("Permission denied by system")){if(e.video)return Promise.reject((0,E.BMCameraNotAuthError)());if(e.audio)return Promise.reject((0,E.BMMicNotAuthError)())}else{if(String(n).includes("Could not start video source"))return Promise.reject((0,E.BMCameraOccupyError)());if(String(n).includes("Could not start audio source"))return Promise.reject((0,E.BMMicOccupyError)())}return Promise.reject((0,E.BMCreateStreamError)(e.video?"\u6444\u50CF\u5934":"\u9EA6\u514B\u98CE"))}return s})}createPBSingleLocalStream(){return c(this,arguments,function*(e={video:!0,audio:!0},t){var o,a;let r={video:e.video,audio:e.audio,cameraId:(o=this.selectVideoDevice)==null?void 0:o.deviceId,microphoneId:(a=this.selectAudioDevice)==null?void 0:a.deviceId,sourceType:"camera"};r.echoCancellation=!0,r.noiseSuppression=!0,r.autoGainControl=!0,this.voiceMode&&(r.audioHint=this.voiceMode,r.noiseSuppression=!1);let s=yield this.boomCore.createPBLocalStream(r,t).catch(n=>Promise.reject(n));return this.videoProfile==="720p"?s.setVideoEncoderConfiguration({width:1280,height:720,bitrate:1500,frameRate:25}):s.setVideoProfile(this.videoProfile),yield s.init(),s})}subscribe(e,t){return c(this,null,function*(){return this.boomCore.subscribe(e,t)})}unsubscribe(e){return this.boomCore.unsubscribe(e).catch(t=>Promise.reject(t))}publish(e){return new Promise((t,r)=>{this.boomCore.publish(e).then(()=>{u("brtc stream publish success"),t(!0)}).catch(()=>c(this,null,function*(){this.pubFailedNum<=3?(this.pubFailedNum+=1,this.pubFailedTimer&&clearTimeout(this.pubFailedTimer),this.pubFailedTimer=setTimeout(()=>(m(`local publish stream failed, retry failed num: ${this.pubFailedNum}`),this.publish(e).then(t).catch(r)),3e3)):(m("retry publish local stream failed, ubpublish now"),yield this.bmStreamVm.unpublishStream(),r(!1))}))})}unpublish(e){return this.boomCore.unpublish(e).catch(t=>Promise.reject(t))}getUser(e){return this.userVM.getUser(e)}changeMaster(e,t=!1){return c(this,null,function*(){var r;return(r=this.roomVM)==null?void 0:r.changeMaster(e,t).catch(s=>s)})}updateManager(e,t,r=!0){return c(this,null,function*(){return this.roomVM.updateManager(e,t,r).catch(s=>s)})}getMaster(){return this.boomCore.getMaster()}getCreator(){return this.boomCore.getCreator()}getName(){return this.boomCore.getName()}evictUser(e,t){return c(this,null,function*(){var r;yield(r=this.roomVM)==null?void 0:r.evictUser(e,t).catch(s=>s)})}updateUser(e,t){return c(this,null,function*(){var r;(r=this.roomVM)==null||r.updateUser(e,t).catch(s=>s)})}getMsgSeq(){return this.boomCore.getMsgSeq()}getLimits(){return this.boomCore.getLimits()}getSwitch(){return this.boomCore.getSwitch()}syncRoom(){return this.boomCore.syncRoom()}update(e){return this.boomCore.update(e)}getUsers(){return this.userVM.userList}getTotalUsers(){return this.userVM.userList.size}sendMessage(e,t){return this.boomCore.sendMessage(e,t)}customMessage(e,t){return this.boomCore.customMessage(e,t)}getMessages(e,t){return this.boomCore.getMessages(e,t)}getLocalParticipant(){var t;let e=(t=this.userVM)==null?void 0:t.getLocalUser();return e||(e=this.localUser),e}getAudioOff(){return this.boomCore.getAudioOff()}getSelfOpenAudio(){return this.boomCore.getSelfOpenAudio()}getVideoOff(){return this.boomCore.getVideoOff()}getMsgOff(){return this.boomCore.getMsgOff()}getLock(){return this.boomCore.getLock()}getRoomInfo(){return this.roomInfo}setAudioOff(e,t){return c(this,null,function*(){return yield this.boomCore.setAudioOff(e,t).catch(r=>Promise.reject((0,E.BmSetAudioOffError)(`boomCore.setAudioOff error ${JSON.stringify(r)}`)))})}updateRoom(e){return c(this,null,function*(){return this.boomCore.client.update(e)})}setVideoOff(e){return this.boomCore.setVideoOff(e).catch(t=>Promise.reject((0,E.BmSetVideoOffError)(`boomCore.setVideoOff error ${JSON.stringify(t)}`)))}setMsgOff(e){return this.boomCore.setMsgOff(e).catch(t=>Promise.reject((0,E.BmSetMsgOffError)(`boomCore.setMsgOff error ${JSON.stringify(t)}`)))}setSwitch(e){return this.boomCore.setSwitch(e)}setLock(e){return c(this,null,function*(){return yield this.boomCore.setLock(e),this.boomCore.getLock()})}sendChatMessage(e,t,r){if(!this.chatVM)throw new P(1002,"\u672A\u521D\u59CB\u5316chatVM, \u65E0\u6CD5\u53D1\u9001\u804A\u5929\u4FE1\u606F");return this.chatVM.sendMessage(e,t,r)}getChatMessage(){if(!this.chatVM)throw new P(1002,"\u672A\u521D\u59CB\u5316chatVM, \u65E0\u6CD5\u83B7\u53D6\u804A\u5929\u5BA4\u6D88\u606F");return this.chatVM.messageList}getHistoryMessage(){return c(this,null,function*(){return this.chatVM.getHistoryMessage()})}updateCustomStats(e){return u("updateCustomStats","","",[JSON.stringify(e)]),this.boomCore.updateCustomStats(Te(L({},e),{pos:"web"})).catch(t=>Promise.reject((0,E.BmUpdateCustomStatsError)(`.boomCore.updateCustomStats ${JSON.stringify(t)}`)))}getCustomStats(){return this.boomCore.getCustomStats()}getDuration(){return this.boomCore.getDuration()}checkUserHasMaster(e){return this.userVM.checkUserHasMaster(e)}changeNickName(e,t){return c(this,null,function*(){var r;yield(r=this.roomVM)==null?void 0:r.changeNickName(e,t)})}streamModelExits(e){let t=e.userId;return e.isShare?this.bmStreamVm.shareStreamModels.has(t):this.bmStreamVm.streamModels.has(t)}handleStreamTask(e,t=!1){return c(this,null,function*(){if(!this.streamModelExits(e)){v(`streamModel is not exits, userId: ${e.userId}, isShare: ${e.isShare}, ignore`);return}e.stream?this.conferenceMode===1?(yield this.handlePull(e),yield this.handleChangeStreamType(e)):(yield this.bmLiveVM.handlePull(e),yield this.bmLiveVM.handleChangeStreamType(e)):((e.isDisplay||e.isInBig)&&e.bloudStream||e.audioEnable)&&(yield this.addUser2Queue({id:e.userId,isScreen:e.isShare,isWeb:e.isWeb}))})}handlePull(e){return c(this,null,function*(){var t;e.isLocal||(e.isMixer&&(yield this.handleSubscribeSteam(e)),(e.isDisplay!==e.isCurrentDisplay||e.isInBig&&e.pulledStreamType!==e.pulledStreamGoal||!e.hasPulled)&&(e.isCurrentDisplay=e.isDisplay,e.checkCount=0,e.isDisplay||e.isInBig||!e.isDisplay&&(e.audioEnable||(t=e.stream)!=null&&t.getAudioOn())?yield this.handleSubscribeSteam(e):yield this.handleUnsubscribeStream(e)))})}manualSubscribeStreamModel(e){F.addQueue(this.handleStreamTask.bind(this,e),e.streamId,0,e.nickname)}handleUnsubscribe(e){F.addQueue(this.handleUnsubscribeStream.bind(this,e),e.streamId,0,e.nickname)}handleStreamBindElement(e){F.addQueue(this.handlePlaySmall.bind(this,e,!1,!1),`bindElement-${e.userId}-${e.nickname}`,0,e.nickname)}handleStreamBindBigElement(e){F.addQueue(this.handlePlayInBIg.bind(this,e),`bindElement-${e.userId}-${e.nickname}`,0,e.nickname)}handleUnsubscribeStream(e){return c(this,null,function*(){var t,r,s;if(e.stream&&((r=(t=e.stream)==null?void 0:t.isSubscribed)!=null&&r.call(t)||e.hasPulled)){e.hasPulled=!1,e.pulledStreamType="small",e.isInBig=!1;try{(s=e.stream)==null||s.stop()}catch(o){}yield this.unsubscribe(e.stream).then(()=>{var o,a;e.stream&&((o=this.audioPlayer)==null||o.removeStream(e.stream)),e.isSubScribedWatcher.next(!1),u("\u53D6\u6D88\u8BA2\u9605\u6D41\u6210\u529F","",e.userId,[e.nickname,e.isDisplay,e.isCurrentDisplay,(a=e.stream)==null?void 0:a.getStreamId()])}).catch(()=>{m("unsubscribe error")})}})}handleSubscribeSteam(e){return c(this,null,function*(){var t,r;try{e.hasPulled&&e.stream.isSubscribed()?e.isDisplay?(t=e.stream)==null||t.unmuteVideo().then(()=>{u("stream unmute video success","unmute-video",e.userId,["streamId => ",e.streamId])}):(r=e.stream)==null||r.muteVideo().then(()=>{u("stream mute video success","mute-video",e.userId,["streamId => ",e.streamId])}):(u("\u5F00\u59CB\u8BA2\u9605","\u8BA2\u9605",e.userId,[e.streamId]),e.hasPulled=!0,yield this.subscribe(e.stream,xi).then(()=>{var s,o;u("\u8BA2\u9605\u6D41\u7ED3\u675F","\u8BA2\u9605",e.userId,[" nickname =>",e.nickname,"streamId =>",e.streamId,"display =>",e.isDisplay]),e.isDisplay||(s=e.stream)==null||s.muteVideo(),e.stream&&e.audioEnable&&((o=this.audioPlayer)==null||o.addStream(e.stream,!0)),e.pullFailedNum=0,e.isSubScribedWatcher.next(!0),this.bmStreamVm.addToRecorder(e.stream),e.isDisplay&&e.videoEnable&&this.handlePlay(e,!0)}).catch(s=>{var o,a;if(m("\u8BA2\u9605\u6D41\u5931\u8D25","\u8BA2\u9605",e.userId,[" nickname =>",e.nickname,"streamId =>",e.streamId," error => ",JSON.stringify(s)]),e.hasPulled=!1,e.pulledStreamType="small",e.pullFailedNum+=1,(o=e.player)==null||o.destroy(),e.pullFailedNum<=3)this.handlePulledFailed(e);else{e.pullFailedNum=0;let n=e.isShare;try{(a=e.stream)==null||a.destroy()}catch(l){}e.updateStream(void 0,!1,this.bmStreamVm),u("subscribe stream failed, need to reQuery stream","",e.userId,["streamId =>",e.streamId,"hasStream => ",!!e.stream,"isWeb => ",e.isWeb,"isScreen => ",n,"bloudStreamState =>",JSON.stringify(e.bloudStream)]),e.bloudStream&&this.addUser2Queue({id:e.userId,isWeb:e.isWeb,isScreen:n})}}))}catch(s){e.hasPulled=!1,e.pulledStreamType="small",console.error("\u8BA2\u9605\u6D41\u5931\u8D25","",e.userId,e.nickname,"\u9519\u8BEF =>",s)}})}handleChangeStreamType(e){return c(this,null,function*(){var t,r;e.isLocal||e.pulledStreamType!==e.pulledStreamGoal&&((t=e.stream)!=null&&t.isSubscribed())&&((r=e.stream)!=null&&r.isSubscribed()||e.hasPulled)&&(e.pulledStreamType=e.pulledStreamGoal,yield this.boomCore.brtcClient.setRemoteVideoStreamType(e.stream,e.pulledStreamGoal).catch(s=>{m("\u5927\u5C0F\u6D41\u5207\u6362\u5931\u8D25","",e.userId,["error => ",JSON.stringify(s)])}),u("\u5927\u5C0F\u6D41\u5207\u6362\u7ED3\u675F","",e.userId,["nickname =>",e.nickname," isInBig => ",e.isInBig," pulledStreamGoal => ",e.pulledStreamGoal,"pulledStreamType => ",e.pulledStreamType]))})}handlePlay(e,t=!1){return c(this,null,function*(){this.streamModelExits(e)&&(e.stream&&e.isLocal&&!e.isShare||!e.isLocal&&e.stream.isSubscribed())&&(e.isDisplay&&e.playerId&&e.play(t),e.isInBig&&e.bigPlayerId&&e.playInBig(t))})}handlePlaySmall(e){this.streamModelExits(e)&&e.play()}handlePlayInBIg(e){this.streamModelExits(e)&&e.playInBig()}handlePulledFailed(e){let t=e.userId;(e.isShare?this.bmStreamVm.shareStreamModels.has(t):this.bmStreamVm.streamModels.has(t))&&F.addQueue(this.handleQueueTask.bind(this,e),e.streamId,0,e.nickname)}handleStreamConnectError(e){return c(this,null,function*(){var s,o;let{stream:t,isLocal:r}=e;u("handleStreamConnectError","","",["nickname =>",t.nickname,"streamId => ",t.streamId,"isShare =>",t.isShare,"isLocal => ",r]),t.stream&&(t.stream.stop(),(s=this.audioPlayer)==null||s.removeStream(t.stream)),(o=t.player)==null||o.destroy(),r?t.stream&&(t.isShare?this.bmStreamVm.localShareError.next((0,E.BMShareStreamConnectError)()):this.bmStreamVm.localStreamConnectErrorWatcher.next((0,E.BMStreamConnectError)()),this.netConnecting&&this.networkState.brtc&&this.networkState.bloud?t.isShare?(u("Local share stream has problem, now ,republish"),ot(this,this.bmStreamVm)):(u("brtc \u7F51\u7EDC\u6B63\u5E38\uFF0C\u91CD\u65B0\u63A8\u6D41"),t.stream&&(yield this.republishLocalStream(t.stream))):(m("brtc \u7F51\u7EDC\u8FD8\u6CA1\u6062\u590D\uFF0C\u7B49\u6062\u590D\u4E86\u5728\u91CD\u65B0\u63A8\u6D41 ","",t.userId,["nickname =>",t.nickname,"streamId => ",t.streamId,"isShare =>",t.isShare]),this.streamConnectedErrorQueue.push(e))):this.netConnecting&&this.networkState.brtc?(t.hasPulled=!1,t.pulledStreamType="small",F.addQueue(this.handleQueueTask.bind(this,t),t.streamId,0,t.nickname)):(m("brtc \u7F51\u7EDC\u8FD8\u6CA1\u6062\u590D\uFF0C\u7B49\u6062\u590D\u4E86\u5728\u91CD\u65B0\u62C9\u6D41 ","",t.userId,["nickname =>",t.nickname]),this.streamConnectedErrorQueue.push(e))})}toggleAudienceSpeaking(e,t){e.permission.setAudio(t),this.updateUser(e.userId,{permission:e.permission.get()})}updateUserIsGuest(e,t){return c(this,null,function*(){e.permission.setSubscribe(t),yield this.updateUser(e.userId,{permission:e.permission.get()})})}managerChangeToGuest(e){this.userVM.managerChangeToGuest(e)}moveUserRoom(e,t=!1,r=!1){return this.boomCore.client.moveUserRoom(e,t,r)}getParticipantNotice(e){this.participantNotice=e}setCustomUrl(e){this.boomCore.setCustomUrl(e)}handleRePushSelf(){return c(this,null,function*(){var t,r;let e=(r=(t=this.getLocalParticipant())==null?void 0:t.getMainStreamModel())==null?void 0:r.stream;e&&(yield this.republishLocalStream(e))})}handleResetOtherStreamStatus(){u("brtc sync-room-completed"),this.audioPlayer.clear(),this.bmStreamVm.streamModels.forEach(e=>{var t;if(!e.isLocal){e.hasPulled=!1,e.pulledStreamType="small";try{e.stream&&e.stream.stop(),(t=e.stream)==null||t.destroy()}catch(r){}e.updateStream(void 0,!1,this.bmStreamVm)}}),this.bmStreamVm.shareStreamModels.forEach(e=>{var t,r;if(!e.isLocal){e.hasPulled=!1,e.pulledStreamType="small";let s=e.getUser();try{(t=e.stream)==null||t.stop(),(r=e.stream)==null||r.destroy()}catch(o){}s.removeStream(`${e.userId}${k}`)}}),this.bmStreamVm.shareStreamModels.clear(),this.bmStreamVm.shareStreamModelsWatcher.next(Array.from(this.bmStreamVm.shareStreamModels.values())),this.networkState.brtc=!0,setTimeout(()=>{this.brtcNetEnableWatcher.next(!0),this.streamWSReconnectWatcher.next(!0)},2e3),se(this)}addUser2Queue(e){return c(this,null,function*(){var t;if(e.force&&this.processUser(new Map([[e.id,e]])),e.isScreen)this.streamQueue.addUsers([e]);else{let r=this.bmStreamVm.streamModels.get(e.id);r&&!r.isLocal&&(r.stream||r&&((t=r.bloudStream)!=null&&t.audio||r.bloudStream&&r.isDisplay)&&this.streamQueue.addUsers([e]))}})}queryBrtcStreams(e){return c(this,null,function*(){return yield this.boomCore.brtcClient.queryUsers(e)})}handleAddStreams(e){e.forEach(t=>{if(Z(t)){let r=this.bmStreamVm.shareStreamModels.get(Ue(t.getUserId().toString()));(!r||r&&!r.stream)&&(r!=null&&r.player&&r.player.destroy(),this.bmStreamVm.remoteStreamPublished(t))}else{let r=this.bmStreamVm.streamModels.get(t.getUserId().toString());r&&!r.stream&&(r!=null&&r.player&&r.player.destroy(),this.bmStreamVm.remoteStreamPublished(t))}})}getForceUser(e){return c(this,null,function*(){yield this.queryUsers([e]),this.userVM.getForceUserWatcher.next(!0)})}queryUsers(e){return c(this,null,function*(){let{users:t}=yield this.boomCore.queryUsers(e);this.userVM.addBcUsersMap(t,!0)})}getVersion(){return Lt.version}};var ze=require("@hysc/utils"),wi=Re;window.BoomMeeting=Re;window.BoomError=ze.BoomError;window.BOOMLogger=ze.Logger;0&&(module.exports={Logger});