diff --git a/Miniapp-H5/dist/css/about.753051b5.css b/Miniapp-H5/dist/css/about.531c7f1e.css
similarity index 99%
rename from Miniapp-H5/dist/css/about.753051b5.css
rename to Miniapp-H5/dist/css/about.531c7f1e.css
index 2a92677..a22b975 100644
--- a/Miniapp-H5/dist/css/about.753051b5.css
+++ b/Miniapp-H5/dist/css/about.531c7f1e.css
@@ -1 +1 @@
-.popup-container[data-v-4069d388]{width:100vw;height:100%;background:var(--room-detail-background);position:static;flex:1}.popup-container .popup-main-header[data-v-4069d388]{width:100%;height:60px;display:flex;justify-content:center;align-items:center}.popup-container .popup-main-header .icon-container[data-v-4069d388]{padding:20px;position:absolute;left:0;top:0;width:10px;height:18px;background-size:cover;box-sizing:content-box}.popup-container .popup-main-header .sidebar-title[data-v-4069d388]{font-family:PingFang SC;font-style:normal;font-weight:500;font-size:16px;line-height:22px;text-align:center;color:var(--input-font-color)}.popup-container .popup-main-header .close-icon[data-v-4069d388]{width:10px;height:18px;background-size:cover}.popup-container .popup-main-content[data-v-4069d388]{width:100%;height:calc(100% - 130px);overflow:hidden}.popup-container .popup-main-footer[data-v-4069d388]{width:100%;height:auto;position:sticky;bottom:0;padding-top:10px}.end-control-container .end-button[data-v-12377224]{border:1px solid #ff2e2e;border-radius:4px;font-weight:400;font-size:12px;color:#ff2e2e;letter-spacing:0;cursor:pointer;text-align:center;line-height:21px;padding:0 8px}.end-control-container .end-button[data-v-12377224]:hover{background-color:#ff2e2e;color:#fff}.dialog-middle-content[data-v-12377224]{width:100%;display:flex;flex-direction:column}.end-main-content[data-v-12377224]{position:fixed;left:0;top:0;bottom:0;width:100vw;height:auto;box-sizing:border-box;background-color:var(--log-out-mobile);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.end-main-content .end-dialog-dismiss[data-v-12377224],.end-main-content .end-dialog-leave[data-v-12377224]{width:90%;border-radius:14px;position:fixed;right:0;left:0;bottom:10vh;z-index:9;margin:auto}.end-main-content .end-dialog-dismiss .manage-transfer[data-v-12377224],.end-main-content .end-dialog-leave .manage-transfer[data-v-12377224]{position:absolute;top:0}.end-main-content .end-dialog-dismiss .end-dialog-header[data-v-12377224],.end-main-content .end-dialog-leave .end-dialog-header[data-v-12377224]{background:#cacacb;font-family:PingFang SC;font-style:normal;font-weight:500;font-size:14px;line-height:17px;text-align:center;color:#6a6c74;height:56px;width:100%;margin:0 auto;border-top-left-radius:14px;border-top-right-radius:14px;border-bottom:.5px solid #4f4e4e;display:flex;justify-content:center;align-items:center}.end-main-content .end-dialog-dismiss .end-dialog-header .end-dialog-text[data-v-12377224],.end-main-content .end-dialog-leave .end-dialog-header .end-dialog-text[data-v-12377224]{width:230px}.end-main-content .end-dialog-dismiss .end-button-cancel[data-v-12377224],.end-main-content .end-dialog-dismiss .end-button-dismiss-single[data-v-12377224],.end-main-content .end-dialog-dismiss .end-button-dismiss[data-v-12377224],.end-main-content .end-dialog-dismiss .end-button-leave-single[data-v-12377224],.end-main-content .end-dialog-dismiss .end-button-leave[data-v-12377224],.end-main-content .end-dialog-leave .end-button-cancel[data-v-12377224],.end-main-content .end-dialog-leave .end-button-dismiss-single[data-v-12377224],.end-main-content .end-dialog-leave .end-button-dismiss[data-v-12377224],.end-main-content .end-dialog-leave .end-button-leave-single[data-v-12377224],.end-main-content .end-dialog-leave .end-button-leave[data-v-12377224]{width:100%;font-family:PingFang SC;font-style:normal;font-weight:400;font-size:20px;line-height:24px;text-align:center;color:#ff2e2e;border-style:none;background:#cacacb;padding:20px 0}.end-main-content .end-dialog-dismiss .end-button-leave[data-v-12377224],.end-main-content .end-dialog-leave .end-button-leave[data-v-12377224]{color:#007aff;border-bottom-left-radius:14px;border-bottom-right-radius:14px;border-top:.5px solid #8f8e8e}.end-main-content .end-dialog-dismiss .end-button-leave-single[data-v-12377224],.end-main-content .end-dialog-leave .end-button-leave-single[data-v-12377224]{position:absolute;bottom:1vh;border-radius:14px;display:flex;align-items:center;justify-content:center}.end-main-content .end-dialog-dismiss .end-button-cancel[data-v-12377224],.end-main-content .end-dialog-leave .end-button-cancel[data-v-12377224]{position:absolute;bottom:-9vh;left:0;background-color:#fff;border-radius:14px;color:#007aff;font-weight:600;display:flex;align-items:center;justify-content:center}.end-main-content .end-dialog-dismiss .end-button-dismiss-single[data-v-12377224],.end-main-content .end-dialog-leave .end-button-dismiss-single[data-v-12377224]{border-bottom-left-radius:14px;border-bottom-right-radius:14px;display:flex;align-items:center;justify-content:center}.end-main-content .end-dialog-dismiss[data-v-12377224]{bottom:12vh}.end-main-content .end-dialog-dismiss .end-button-cancel[data-v-12377224]{bottom:-9vh}.transfer-container[data-v-12377224]{position:fixed;left:0;top:0;height:100vh;z-index:102}.transfer-container .transfer-header[data-v-12377224]{display:flex;justify-content:center}.transfer-container .transfer-header input[type=text][data-v-12377224]{background-image:url(../img/search.a8fd20e6.svg);background-repeat:no-repeat;background-position:10px;padding-left:35px;background-color:var(--transfer-input-color-h5)}.transfer-container .transfer-header .searching-input[data-v-12377224]{padding:0 80px;background:#292d38;border-radius:8px;height:34px;border-style:none;font-family:PingFang SC;font-style:normal;font-weight:450;font-size:16px;line-height:18px;color:#676c80;caret-color:var(--caret-color)}.transfer-container .transfer-header .searching-input[data-v-12377224] ::-moz-placeholder{font-family:PingFang SC;font-style:normal;font-weight:400;font-size:16px;line-height:18px;color:#676c80}.transfer-container .transfer-header .searching-input[data-v-12377224] ::placeholder{font-family:PingFang SC;font-style:normal;font-weight:400;font-size:16px;line-height:18px;color:#676c80}.transfer-container .transfer-header .searching-input[data-v-12377224]:focus-visible{outline:none}.transfer-container .transfer-body[data-v-12377224]{flex:1;overflow-y:scroll}.transfer-container .transfer-body .transfer-list-content[data-v-12377224]{padding-bottom:5px}.transfer-container .transfer-body .transfer-list-content .transfer-item-container[data-v-12377224]{display:flex;flex-direction:row;align-items:center;height:69px;justify-content:space-between;padding:0 32px}.transfer-container .transfer-body .transfer-list-content .member-basic-info[data-v-12377224]{display:flex;position:relative;width:100%;flex-direction:row;align-items:center;padding:24px 20px 0 24px}.transfer-container .transfer-body .transfer-list-content .member-basic-info .avatar-url[data-v-12377224]{width:40px!important;height:40px!important;border-radius:50%}.transfer-container .transfer-body .transfer-list-content .member-basic-info .user-name[data-v-12377224]{margin-left:9px;color:var(--input-font-color);max-width:70%!important;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;font-family:PingFang SC;font-style:normal;font-weight:500;font-size:16px!important;line-height:22px;letter-spacing:-.24px;display:flex}.transfer-container .transfer-body .transfer-list-content .member-basic-info .correct[data-v-12377224]{width:24px;height:16px;position:absolute;right:5vw;background-size:cover}.transfer-container .transfer-body .member-hasNoData[data-v-12377224]{position:fixed;top:30%;left:30%;width:40vw;height:5vh;color:var(--input-font-color);border-radius:4px;background-color:var(--message-list-color);display:flex;justify-content:center;align-items:center}.transfer-leave[data-v-12377224]{position:fixed;bottom:2vh;left:7vw;display:flex;align-items:center;justify-content:center}.transfer-leave .transfer-button[data-v-12377224]{width:86vw;height:5vh;background:linear-gradient(315deg,#006eff,#0c59f2 98.81%);border-radius:8px;font-family:PingFang SC;font-style:normal;font-weight:500;font-size:16px;line-height:22px;display:flex;align-items:center;justify-content:center;text-align:center;color:#fff;border-style:none}.end-button[data-v-bcdd5c40]{width:90px;height:40px;border:2px solid #ff2e2e;border-radius:4px;font-weight:400;font-size:14px;color:#ff2e2e;letter-spacing:0;cursor:pointer;text-align:center;line-height:36px}.end-button[data-v-bcdd5c40]:hover{background-color:#ff2e2e;color:#fff}.camera-icon[data-v-190ccb04]{display:block;background-size:cover;width:40px;height:36px}.mirror-icon[data-v-9a54a9ea]{display:block;width:32px;height:32px}.conference-container[data-v-543146aa]{min-width:140px;max-width:300px}.title-container[data-v-543146aa]{display:flex;align-items:center}.text[data-v-543146aa]{font-weight:500;font-size:12px;line-height:17px;max-width:150px;color:var(--input-font-color)}.master-header[data-v-543146aa],.text[data-v-543146aa]{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.master-header[data-v-543146aa]{max-width:300px;padding:20px 0}.text-right[data-v-543146aa]{padding-left:30px}.text-type[data-v-543146aa]{padding-left:12px}.roomInfo-middle[data-v-543146aa]{color:var(--popup-title-color-h5);padding-left:25px}.chevron-down-container[data-v-543146aa]{display:flex;margin-left:5px}.chevron-down-container .chevron-down-icon[data-v-543146aa]{display:flex;background-size:cover;width:10px;height:7px;align-items:center}.roomInfo-container[data-v-543146aa]{position:fixed;left:0;top:0;bottom:0;width:100vw;height:auto;box-sizing:border-box;background-color:var(--log-out-mobile)}.roomInfo-container .roomInfo-container-main[data-v-543146aa]{width:100%;background:var(--popup-background-color-h5);border-radius:15px 15px 0 0;position:fixed;bottom:0;display:flex;flex-direction:column;animation-duration:.1s;animation-name:popup-543146aa;padding-bottom:4vh}@keyframes popup-543146aa{0%{height:0}to{height:30%}}.roomInfo-container .roomInfo-container-main .roomInfo-title[data-v-543146aa]{display:flex;flex-direction:row;align-items:center;font-family:PingFang SC;font-style:normal;font-weight:500;font-size:20px;line-height:24px;color:var(--popup-title-color-h5);padding:0 0 0 25px;position:relative}.roomInfo-container .roomInfo-container-main .roomInfo-role[data-v-543146aa],.roomInfo-container .roomInfo-container-main .roomInfo-roomID[data-v-543146aa],.roomInfo-container .roomInfo-container-main .roomInfo-roomMode[data-v-543146aa]{display:flex;flex-direction:row;padding:5px 0;align-items:center}.roomInfo-container .roomInfo-container-main .link[data-v-543146aa]{color:var(--popup-content-color-h5);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:64%;padding-left:16px}.roomInfo-container .roomInfo-container-main .roomInfo-bottom[data-v-543146aa]{font-family:PingFang SC;font-style:normal;font-weight:400;font-size:12px;line-height:17px;text-align:center;color:var(--popup-title-color-h5);padding-top:2vh}.roomInfo-container .roomInfo-container-main .copy[data-v-543146aa]{width:14px;height:14px;margin-left:30px}.roomInfo-container .roomInfo-container-main .qrcode[data-v-543146aa]{width:24px;height:24px;position:absolute;right:10vw;top:3vh}.cancel[data-v-543146aa]{flex:1;text-align:end;padding-right:30px;font-weight:400;font-size:16px}.header[data-v-1262e4e7]{height:100%}.header-container[data-v-1262e4e7]{height:100%;display:flex;align-items:center;justify-content:space-between;padding:0 12px}.icon-box[data-v-1262e4e7]{min-width:50px;display:flex;align-items:center;justify-content:space-between}.layout-container[data-v-7b3fd23b]{position:relative;width:20px;height:20px}.layout-container .layout-icon[data-v-7b3fd23b]{cursor:pointer}.layout-container .layout-list[data-v-7b3fd23b]{position:absolute;top:47px;right:0;background-color:var(--layout-list);box-shadow:0 1px 10px 0 rgba(0,0,0,.3);border-radius:4px;padding:20px;display:flex}.layout-container .layout-list .layout-item[data-v-7b3fd23b]{width:180px;height:133px;padding:20px 30px 39px;background-color:var(--layout-item);border-radius:2px;border:1px solid transparent;cursor:pointer;position:relative}.layout-container .layout-list .layout-item[data-v-7b3fd23b]:not(:first-child){margin-left:20px}.layout-container .layout-list .layout-item.checked[data-v-7b3fd23b],.layout-container .layout-list .layout-item[data-v-7b3fd23b]:hover{border:1px solid #006eff;border-radius:2px}.layout-container .layout-list .layout-item.checked[data-v-7b3fd23b]:after{content:"";display:block;width:20px;height:20px;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAShJREFUWEftltFRwkAQhr8NBWgJlgAVCBWIHVCAMlgBWIEafbcFrEDsQDsIHWgB3DJ3kRfNBXNcJoNz+5SH7P5f/uzundBxSMf6JIDkwH4HrnRIxnlQsxreeJJVXW49wFSXwEWQ+C5JWfIol74afoDyy18PEt8lG0Y+J/wAU10A8ygAcEsutt6vSAD/zAHlBmFYMTkt94DyhTJ2nV49ui0CKGt6jIGCDc+Ie/4Z0QAeyFiwoUA4Qfmg5ywH43ZG3zO20QAKMgbAGYYJucyYaf9b/LRmZ0QDsBrvZIy4l0+udYJwB9SJ25yoACUE2HOicru12QOhmzm6A01BjhGg8+PYmhzjQgIv5FK1nNxv/OuVrFw2TcOwOuxK1lQw4P39DgQUbZKSAJIDW6oveCGWdYdlAAAAAElFTkSuQmCC);background-size:100% 100%;position:absolute;top:0;right:0}.layout-container .layout-list .layout-item .layout-block-container[data-v-7b3fd23b]{width:120px;height:74px}.layout-container .layout-list .layout-item .layout-title[data-v-7b3fd23b]{font-size:16px;font-weight:400;line-height:24px;display:inline-block;margin-top:10px;width:100%;text-align:center}.layout-container .layout-list .layout1 .layout-block-container[data-v-7b3fd23b]{display:flex;flex-wrap:wrap;justify-content:space-between;align-content:space-between}.layout-container .layout-list .layout1 .layout-block-container .layout-block[data-v-7b3fd23b]{width:38px;height:22px;background-color:#7c85a6}.layout-container .layout-list .layout2 .layout-block-container[data-v-7b3fd23b]{display:flex;justify-content:space-between}.layout-container .layout-list .layout2 .layout-block-container .left-container[data-v-7b3fd23b]{width:90px;height:74px;background-color:#7c85a6}.layout-container .layout-list .layout2 .layout-block-container .right-container[data-v-7b3fd23b]{width:27px;height:74px;display:flex;flex-wrap:wrap;justify-content:space-between;align-content:space-between}.layout-container .layout-list .layout2 .layout-block-container .right-container>div[data-v-7b3fd23b]{width:27px;height:16px;background-color:#7c85a6}.layout-container .layout-list .layout3 .layout-block-container[data-v-7b3fd23b]{display:flex;flex-wrap:wrap;align-content:space-between}.layout-container .layout-list .layout3 .layout-block-container .top-container[data-v-7b3fd23b]{width:120px;height:16px;display:flex;flex-wrap:wrap;justify-content:space-between;align-content:space-between}.layout-container .layout-list .layout3 .layout-block-container .top-container>div[data-v-7b3fd23b]{width:28px;height:16px;background-color:#7c85a6}.layout-container .layout-list .layout3 .layout-block-container .bottom-container[data-v-7b3fd23b]{width:120px;height:55px;background-color:#7c85a6}.header-container[data-v-20e9e128]{width:100%;height:100%;padding-left:9px;padding-right:24px;position:relative;display:flex;justify-content:space-between}.header-container .left-container[data-v-20e9e128]{height:100%;position:absolute;top:0;left:0;display:flex;align-items:center;padding-left:24px}.header-container .left-container .header-item[data-v-20e9e128]:not(:first-child){margin-left:1rem}.header-container .right-container[data-v-20e9e128]{position:absolute;top:0;right:0;height:100%;float:right;padding-right:24px;display:flex;align-items:center}.header-container .right-container .right-container-item[data-v-20e9e128]:not(:last-child){margin-right:1rem}.header-container .right-container .end-control-container[data-v-20e9e128]{display:none}.audio-control-container[data-v-357aa832]{position:relative}.audio-control-container .audio-tab[data-v-357aa832]{position:absolute;bottom:90px;left:15px;width:320px;background:var(--room-audiotab-bg-color);padding:20px}.button-container-mobile[data-v-357aa832]{width:100%;display:flex}.button-container-mobile .agree[data-v-357aa832]{color:#006eff}.button-container-mobile .agree[data-v-357aa832],.button-container-mobile .cancel[data-v-357aa832]{padding:14px;width:50%;display:flex;align-items:center;justify-content:center;border-top:1px solid #f2f2f2}.button-container-mobile .cancel[data-v-357aa832]{color:#2b2e38;border-right:1px solid #f2f2f2}.button-container-PC .cancel[data-v-357aa832]{padding:5px 20px;background:var(--create-room-option);border-radius:2px;width:auto;display:initial;color:var(--color-font);border:1px solid var(--choose-type)}.button-container-PC .agree[data-v-357aa832]{padding:5px 20px;background:#006eff;color:#fff;margin-left:14px;border-radius:2px;width:auto;display:initial}.video-control-container[data-v-a0d52fdc]{position:relative}.video-control-container .video-tab[data-v-a0d52fdc]{position:absolute;bottom:90px;left:-60px;width:320px;background:var(--room-videotab-bg-color);padding:20px}.button-container-mobile[data-v-a0d52fdc]{width:100%;display:flex}.button-container-mobile .agree[data-v-a0d52fdc]{color:#006eff}.button-container-mobile .agree[data-v-a0d52fdc],.button-container-mobile .cancel[data-v-a0d52fdc]{padding:14px;width:50%;display:flex;align-items:center;justify-content:center;border-top:1px solid #f2f2f2}.button-container-mobile .cancel[data-v-a0d52fdc]{color:#2b2e38;border-right:1px solid #f2f2f2}.button-container-PC .cancel[data-v-a0d52fdc]{padding:5px 20px;background:var(--create-room-option);border-radius:2px;width:auto;display:initial;color:var(--color-font);border:1px solid var(--choose-type)}.button-container-PC .agree[data-v-a0d52fdc]{padding:5px 20px;background:#006eff;color:#fff;margin-left:14px;border-radius:2px;width:auto;display:initial}.chat-control-container .el-badge .el-badge__content{top:14px;right:24px;background-color:#006eff}.count{display:flex}.unreadCount{background-color:#006eff;min-width:20px;height:20px;text-align:center;color:#fff;position:relative;left:-20px;top:4px;padding:2px;border-radius:45px}.apply-control-container .master-attention{display:flex;flex-direction:column;padding:4px}.apply-control-container .master-attention .apply-big-icon{width:40px;height:40px}.apply-control-container .master-attention .info{color:#fff;font-size:14px}.apply-control-container .apply-list-container{width:470px;height:286px;background:var(--apply-list-container-bg-color);box-shadow:0 1px 10px 0 rgba(0,0,0,.3);position:absolute;top:-6px;left:50%;transform:translate(-50%,-100%);padding:12px 20px;color:#cfd4e6}.apply-control-container .apply-list-container .title-container{display:flex;justify-content:space-between;align-items:center}.apply-control-container .apply-list-container .title-container .title{font-weight:500;font-size:16px;color:var(--apply-list-container-color)}.apply-control-container .apply-list-container .title-container .close{cursor:pointer}.apply-control-container .apply-list-container .apply-list{height:190px;overflow:scroll;margin-top:4px}.apply-control-container .apply-list-container .apply-list::-webkit-scrollbar{display:none}.apply-control-container .apply-list-container .apply-list .apply-item{display:flex;justify-content:space-between;align-items:center;height:48px;margin-top:8px}.apply-control-container .apply-list-container .apply-list .apply-item .user-info{width:calc(100% - 176px);height:100%;display:flex;align-items:center}.apply-control-container .apply-list-container .apply-list .apply-item .user-info .avatar-url{width:48px;height:48px;border-radius:50%}.apply-control-container .apply-list-container .apply-list .apply-item .user-info .user-name{font-weight:500;font-size:14px;color:#7c85a6;line-height:22px;margin-left:9px;max-width:180px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.apply-control-container .apply-list-container .apply-list .apply-item .control-container{display:flex;justify-content:space-between}.apply-control-container .apply-list-container .apply-footer{margin-top:8px}.apply-control-container .apply-list-container .apply-footer .deny-all{float:right}.apply-control-container .apply-list-container .button{border-radius:2px;padding:6px 20px;font-family:PingFangSC-Regular;font-weight:400;font-size:14px;color:var(--apply-list-container-color);text-align:center;cursor:pointer}.apply-control-container .apply-list-container .primary{background-image:linear-gradient(235deg,#1883ff,#0062f5);color:var(--apply-container-primary);margin-right:5px}.apply-control-container .apply-list-container .outline{background:rgba(173,182,204,.1);border:1px solid #adb6cc;color:var(--apply-container-outline)}.apply-control-container .apply-list-container-h5{width:80vw;height:30vh;border-radius:13px;display:flex;flex-direction:column;background:var(--apply-list-container-bg-color);box-shadow:0 1px 10px 0 rgba(0,0,0,.3);position:absolute;top:-6px;left:50%;transform:translate(-50%,-100%);padding:12px 20px;color:#cfd4e6}.apply-control-container .apply-list-container-h5 .title-container{display:flex;justify-content:space-between;align-items:center}.apply-control-container .apply-list-container-h5 .title-container .title{font-weight:500;font-size:16px;color:var(--apply-list-container-color)}.apply-control-container .apply-list-container-h5 .title-container .close{cursor:pointer}.apply-control-container .apply-list-container-h5 .apply-list{max-height:72%;overflow:scroll;margin-top:4px;flex:1}.apply-control-container .apply-list-container-h5 .apply-list::-webkit-scrollbar{display:none}.apply-control-container .apply-list-container-h5 .apply-list .apply-item{display:flex;justify-content:space-between;align-items:center;height:48px;margin-top:8px}.apply-control-container .apply-list-container-h5 .apply-list .apply-item .user-info{height:100%;display:flex;align-items:center}.apply-control-container .apply-list-container-h5 .apply-list .apply-item .user-info .avatar-url{width:48px;height:48px;border-radius:50%}.apply-control-container .apply-list-container-h5 .apply-list .apply-item .user-info .user-name{font-weight:500;font-size:14px;color:#7c85a6;line-height:22px;margin-left:9px;max-width:180px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.apply-control-container .apply-list-container-h5 .apply-list .apply-item .control-container{display:flex;justify-content:space-between}.apply-control-container .apply-list-container-h5 .apply-footer{height:40px;margin-top:auto}.apply-control-container .apply-list-container-h5 .apply-footer .button{width:100%;background:var(--apply-container-background-outline-h5);border-radius:8px;padding:0}.apply-control-container .apply-list-container-h5 .apply-footer .deny-all{padding:8px}.apply-control-container .apply-list-container-h5 .button{border-radius:2px;padding:4px 15px;font-family:PingFangSC-Regular;font-weight:400;font-size:14px;color:var(--apply-list-container-color);text-align:center;cursor:pointer}.apply-control-container .apply-list-container-h5 .primary{background-image:linear-gradient(235deg,#1883ff,#0062f5);border-radius:8px;color:var(--apply-container-primary);margin-right:5px}.apply-control-container .apply-list-container-h5 .outline{border-radius:8px;background:var(--apply-container-background-outline-h5);border:none;color:var(--apply-container-outline-h5)}.apply-control-container{position:relative}.apply-control-container .attention{background:rgba(19,124,253,.96);box-shadow:0 4px 16px 0 rgba(47,48,164,.1);position:absolute;border-radius:4px;display:flex;align-items:center;justify-content:space-between;top:-6px;left:50%;transform:translate(-50%,-100%)}.apply-control-container .attention:after{content:"";display:block;border:4px solid transparent;border-top-color:rgba(19,124,253,.96);position:absolute;top:100%;left:50%;transform:translateX(-50%)}.apply-control-container .member-attention{padding:7px 12px}.apply-control-container .member-attention .info{width:210px;height:20px;font-weight:400;font-size:14px;color:#fff;line-height:20px}.apply-control-container .member-attention .close{cursor:pointer}.button-container-mobile{width:100%;display:flex}.button-container-mobile .agree{color:var(--close-cancel-h5)}.button-container-mobile .agree,.button-container-mobile .cancel{padding:14px;width:50%;display:flex;align-items:center;justify-content:center;border-top:1px solid var(--choose-type)}.button-container-mobile .cancel{color:var(--apply-container-outline);border-right:1px solid var(--choose-type)}.button-container-PC .cancel{padding:5px 20px;background:var(--create-room-option);border-radius:2px;width:auto;display:initial;color:var(--color-font);border:1px solid var(--choose-type)}.button-container-PC .agree{padding:5px 20px;background:#006eff;color:#fff;margin-left:14px;border-radius:2px;width:auto;display:initial}span[data-v-eb2b478c]{font-weight:500;font-size:12px;line-height:17px;padding-right:5px}.invite-container-main[data-v-eb2b478c]{width:100%;background:var(--popup-background-color-h5);border-radius:15px 15px 0 0;position:fixed;bottom:0;display:flex;flex-direction:column;animation-duration:.1s;animation-name:popup-eb2b478c;padding-bottom:4vh}@keyframes popup-eb2b478c{0%{height:0}to{height:30%}}.invite-container-main .invite-title-main[data-v-eb2b478c]{display:flex;flex-direction:row;font-family:PingFang SC;font-style:normal;font-weight:500;font-size:20px;line-height:24px;color:var(--popup-title-color-h5);padding:20px;align-items:center}.invite-container-main .invite-content-main[data-v-eb2b478c]{width:90%;height:13%;display:flex;flex-direction:row;padding:0 0 0 25px;align-items:center;margin-bottom:10px}.invite-container-main .invite-title[data-v-eb2b478c]{font-family:PingFang SC;font-style:normal;font-weight:400;font-size:14px;line-height:20px;color:var(--popup-title-color-h5);white-space:nowrap;width:23%}.invite-container-main .invite-content[data-v-eb2b478c]{color:var(--popup-content-color-h5);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:64%}.invite-container-main .invite-bottom[data-v-eb2b478c]{width:90%;font-family:PingFang SC;font-style:normal;font-weight:400;font-size:12px;line-height:17px;text-align:center;color:var(--popup-title-color-h5);padding-left:40px}.invite-container-main .copy[data-v-eb2b478c]{width:14px;height:14px;margin-left:30px}.cancel[data-v-eb2b478c]{flex:1;text-align:end;padding-right:30px;font-weight:400;font-size:16px}.invite-container[data-v-76a9ae2d]{padding:20px 32px}.invite-notice[data-v-76a9ae2d]{font-size:14px;width:100%;height:22px;line-height:22px;opacity:.8;font-weight:400;color:var(--input-font-color);font-family:PingFangSC-Regular}.invite-content[data-v-76a9ae2d]{width:100%;margin-top:20px}.invite-content .invite-item[data-v-76a9ae2d]:not(:first-child){margin-top:20px}.invite-content .invite-item .invite-title[data-v-76a9ae2d]{font-size:14px;color:var(--more-notice-color);width:100%;opacity:.8}.invite-content .invite-item .input-area[data-v-76a9ae2d]{margin-top:10px;position:relative}.invite-content .invite-item .input-area .input[data-v-76a9ae2d]{-moz-appearance:none;appearance:none;-webkit-appearance:none;background-color:var(--input-bg-color);background-image:none;border-radius:2px;border:1px solid var(--input-border-color);box-sizing:border-box;color:var(--input-font-color);opacity:.8;display:inline-block;font-size:14px;height:32px;line-height:32px;outline:none;padding:0 40px 0 10px;transition:border-color .2s cubic-bezier(.645,.045,.355,1);width:416px}.invite-content .invite-item .input-area .copy[data-v-76a9ae2d]{width:14px;height:14px;position:absolute;top:50%;right:10px;transform:translateY(-50%);cursor:pointer}.invite-container[data-v-78681d3c]{position:fixed;left:0;top:0;bottom:0;width:100vw;height:auto;box-sizing:border-box;background-color:var(--log-out-mobile)}span[data-v-76fbca8c]{font-weight:500;font-size:12px;line-height:17px;padding-right:5px}.contact-container-main[data-v-76fbca8c]{width:100%;background:var(--popup-background-color-h5);border-radius:15px 15px 0 0;position:fixed;bottom:0;display:flex;flex-direction:column;animation-duration:.1s;animation-name:popup-76fbca8c;padding-bottom:4vh}@keyframes popup-76fbca8c{0%{height:0}to{height:30%}}.contact-container-main .contact-title-main[data-v-76fbca8c]{display:flex;flex-direction:row;font-family:PingFang SC;font-style:normal;font-weight:500;font-size:20px;line-height:24px;color:var(--popup-title-color-h5);padding:20px;align-items:center}.contact-container-main .contact-content-main[data-v-76fbca8c]{width:90%;height:15%;display:flex;flex-direction:row;padding:0 0 0 25px;align-items:center;margin-bottom:10px}.contact-container-main .contact-content[data-v-76fbca8c],.contact-container-main .contact-title[data-v-76fbca8c]{font-family:PingFang SC;font-style:normal;font-weight:400;font-size:14px;line-height:20px;color:var(--popup-title-color-h5);white-space:nowrap;width:28%}.contact-container-main .contact-content[data-v-76fbca8c]{color:var(--popup-content-color-h5);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:62%}.contact-container-main .contact-bottom[data-v-76fbca8c]{width:90%;font-family:PingFang SC;font-style:normal;font-weight:400;font-size:12px;line-height:17px;text-align:center;color:var(--popup-title-color-h5);padding-left:40px}.contact-container-main .copy[data-v-76fbca8c]{width:14px;height:14px;margin-left:30px}.cancel[data-v-76fbca8c]{flex:1;text-align:end;padding-right:30px;font-weight:400;font-size:16px}.more-container[data-v-4d3067ac]{padding:20px 32px}.more-notice[data-v-4d3067ac]{font-size:14px;width:100%;height:22px;line-height:22px;font-weight:400;color:var(--more-notice-color);opacity:.8;font-family:PingFangSC-Regular}.more-content[data-v-4d3067ac]{width:100%;margin-top:20px}.more-content .more-item[data-v-4d3067ac]:not(:first-child){margin-top:20px}.more-content .more-item .more-title[data-v-4d3067ac]{font-size:14px;color:var(--more-notice-color);width:100%;opacity:.8}.more-content .more-item .input-area[data-v-4d3067ac]{margin-top:10px;position:relative}.more-content .more-item .input-area .input[data-v-4d3067ac]{-moz-appearance:none;appearance:none;-webkit-appearance:none;background-color:var(--input-bg-color);background-image:none;border-radius:2px;border:1px solid var(--input-border-color);box-sizing:border-box;color:var(--input-font-color);opacity:.8;display:inline-block;font-size:14px;height:32px;line-height:32px;outline:none;padding:0 40px 0 10px;transition:border-color .2s cubic-bezier(.645,.045,.355,1);width:416px}.more-content .more-item .input-area .copy[data-v-4d3067ac]{width:14px;height:14px;position:absolute;top:50%;right:10px;transform:translateY(-50%);cursor:pointer}.contact-container[data-v-251c1f14]{position:fixed;left:0;top:0;bottom:0;width:100vw;height:auto;box-sizing:border-box;background-color:var(--log-out-mobile);z-index:11}.show-more-content[data-v-7814bc4f]{position:absolute;left:5%;bottom:15px;width:90%;height:20vh;background:var(--log-out-cancel);border-radius:13px;padding:10px;animation-duration:.1s;animation-name:popup-7814bc4f}@keyframes popup-7814bc4f{0%{bottom:0}to{bottom:15px}}.control-compent[data-v-7814bc4f]{display:flex}.close[data-v-7814bc4f]{background:var(--close-cancel-h5);border-radius:8px;display:flex;align-items:center;justify-content:center;padding:10px;color:var(--mute-button-color-h5)}.close i[data-v-7814bc4f]{font-family:PingFang SC;font-style:normal;font-weight:400;line-height:24px;text-align:center}.footer-container[data-v-6f1ee0d6]{position:absolute;bottom:0;width:100%;height:100%}.left-container[data-v-6f1ee0d6]{width:100%;display:flex;justify-content:space-evenly}.top-container[data-v-6f1ee0d6]{position:fixed;top:0}.custom-element-class[data-v-5d38a258]{--el-color-primary:#006eff;--el-fill-color-light:var(--el-fill-color-light-select);--el-fill-color-blank:var(--user-extra-info-color);--el-border-color:var(--el-border-color-select);--el-border-color-light:var(--el-border-color-light-select);--el-border-color-lighter:var(--el-border-lighter);--el-bg-color:var(--el-bg-color-select,#fff);--el-bg-color-page:#fff;--el-bg-color-overlay:var(--el-bg-color-overlay-select);--el-text-color-primary:var(--el-text-color-primary-select);--el-text-color-regular:var(--el-text-color-regular-select);--el-slider-height:4px;--el-slider-button-size:12px;--el-dialog-bg-color:var(--el-dialog-bg-color-select);--el-dialog-box-shadow:0 1px 10px 0 rgba(0,0,0,.3);--el-disabled-bg-color:var(--el-disabled-background);--el-disabled-border-color:var(--el-disabled-border);--el-switch-on-color:red}.screen-share-control-container[data-v-5d38a258]{position:relative}.stop-share-region[data-v-5d38a258]{width:131px;height:48px;background:var(--stop-share-region-bg-color);border-radius:4px;position:absolute;top:-58px;left:50%;transform:translateX(-50%);display:flex;justify-content:center;align-items:center;cursor:pointer;font-size:14px;color:var(--color-font)}.stop-share-icon[data-v-5d38a258]{width:24px;height:24px;margin-right:10px}.setting-dialog[data-v-2c9e5284]{width:660px;height:574px;position:absolute;display:flex}.setting-dialog .dialog-tabs[data-v-2c9e5284]{width:194px;height:574px;background-color:#1d2029}.setting-dialog .dialog-content[data-v-2c9e5284]{flex-grow:1}.footer-container[data-v-fcf4ace8]{width:100%;height:100%;padding-left:9px;padding-right:24px;display:flex;justify-content:space-between}.footer-container .left-container[data-v-fcf4ace8]{height:100%;display:flex;align-items:center}.footer-container .left-container .left-container-item[data-v-fcf4ace8]:not(:first-child){margin-left:1rem}.footer-container .center-container[data-v-fcf4ace8]{height:100%;display:flex;align-items:center;position:relative;margin:0 auto}.footer-container .right-container[data-v-fcf4ace8]{height:100%;display:flex;align-items:center}.text-img[data-v-467c6786]{width:20px;height:20px;vertical-align:middle}.text-box[data-v-467c6786]{line-height:20px;vertical-align:middle}.message-list-container[data-v-3ee0bdff]{height:calc(100% - 188px);padding:10px 23px 10px 32px;background-color:var(--message-list-color);overflow:auto}.message-list-container[data-v-3ee0bdff]::-webkit-scrollbar{display:none}.message-list-container .message-top[data-v-3ee0bdff]{display:flex;justify-content:center}.message-list-container .message-item[data-v-3ee0bdff]{margin-bottom:20px;word-break:break-all;display:flex;flex-direction:column;align-items:flex-start}.message-list-container .message-item[data-v-3ee0bdff]:last-of-type{margin-bottom:0}.message-list-container .message-item.is-me[data-v-3ee0bdff]{align-items:end}.message-list-container .message-item.is-me .message-body[data-v-3ee0bdff]{background-color:var(--message-color);min-width:24px}.message-list-container .message-item .message-header[data-v-3ee0bdff]{font-size:14px;color:#7c85a6;margin-bottom:10px;max-width:180px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.message-list-container .message-item .message-body[data-v-3ee0bdff]{background-color:#1883ff;display:inline-block;padding:7px;font-weight:400;font-size:14px;color:#fff}.message-list-container .message-bottom[data-v-3ee0bdff]{width:0;height:0}.message-list-container-h5[data-v-3ee0bdff]{padding:10px 23px 10px 32px;background-color:var(--message-list-color-h5);height:100%;width:100%;overflow:scroll}.message-list-container-h5[data-v-3ee0bdff]::-webkit-scrollbar{display:none}.message-list-container-h5 .message-top[data-v-3ee0bdff]{display:flex;justify-content:center}.message-list-container-h5 .message-list[data-v-3ee0bdff]{overflow-y:scroll}.message-list-container-h5 .message-list .message-item[data-v-3ee0bdff]{margin-bottom:20px;word-break:break-all;display:flex;flex-direction:column;align-items:flex-start}.message-list-container-h5 .message-list .message-item[data-v-3ee0bdff]:last-of-type{margin-bottom:0}.message-list-container-h5 .message-list .message-item.is-me[data-v-3ee0bdff]{align-items:end}.message-list-container-h5 .message-list .message-item.is-me .message-body[data-v-3ee0bdff]{background-color:#4791ff;min-width:24px;border-radius:8px;display:inline-block;padding:7px;font-weight:400;font-size:14px;color:#fff}.message-list-container-h5 .message-list .message-item .message-header[data-v-3ee0bdff]{font-family:PingFang SC;font-style:normal;font-weight:500;font-size:10px;color:#ff7200;line-height:14px;margin-bottom:10px;max-width:180px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.message-list-container-h5 .message-list .message-item .message-body[data-v-3ee0bdff]{background-color:var(--message-body-h5);display:inline-block;padding:7px;font-weight:400;font-size:14px;color:#fff;border-radius:8px}.message-list-container-h5 .message-bottom[data-v-3ee0bdff]{width:0;height:0}.emoji-icon[data-v-78a2609f]{cursor:pointer}.emoji-list-h5[data-v-78a2609f],.emoji-list[data-v-78a2609f]{width:404px;height:214px;flex:1;display:flex;flex-wrap:wrap;overflow-y:auto;position:absolute;bottom:50px;background-color:var(--emoji-background-color);padding:12px;border-radius:4px;border:1px solid #2e323d}.emoji-list-h5[data-v-78a2609f]::-webkit-scrollbar,.emoji-list[data-v-78a2609f]::-webkit-scrollbar{display:none}.emoji-list .emoji-item[data-v-78a2609f],.emoji-list-h5 .emoji-item[data-v-78a2609f]{padding:2px}.emoji-list .emoji-item[data-v-78a2609f]:hover,.emoji-list-h5 .emoji-item[data-v-78a2609f]:hover{cursor:pointer}.emoji-list img[data-v-78a2609f],.emoji-list-h5 img[data-v-78a2609f]{width:30px}.emoji-list-h5[data-v-78a2609f]{width:298px;height:148px;position:fixed;bottom:77px;left:30px}.chat-editor[data-v-4ae1f1c7]{width:100vw;display:flex;justify-content:center;align-items:center;padding-bottom:5px}.chat-editor .input-content[data-v-4ae1f1c7]{width:90%;color:#676c80;height:34px;background:var(--chat-editor-input-color-h5);border:none;box-sizing:border-box;font-family:PingFang SC;font-style:normal;font-weight:450;font-size:16px;line-height:4vh;caret-color:var(--caret-color);border-radius:8px;resize:none}.chat-editor .input-content .chat-emoji[data-v-4ae1f1c7],.chat-editor .input-content[data-v-4ae1f1c7]{display:flex;align-items:center;justify-content:center}.chat-editor .input-content .content-bottom-input[data-v-4ae1f1c7]{color:#676c80;width:84%;height:34px;background:var(--chat-editor-input-color-h5);border:none;box-sizing:border-box;font-family:PingFang SC;font-style:normal;font-weight:450;font-size:16px;line-height:4vh;caret-color:var(--caret-color);border-radius:8px;resize:none;padding-left:10px}.chat-editor .input-content .content-bottom-input[data-v-4ae1f1c7] ::-moz-placeholder{font-family:PingFang SC;font-style:normal;font-weight:400;font-size:16px;line-height:18px;color:#676c80}.chat-editor .input-content .content-bottom-input[data-v-4ae1f1c7] ::placeholder{font-family:PingFang SC;font-style:normal;font-weight:400;font-size:16px;line-height:18px;color:#676c80}.chat-editor .input-content .content-bottom-input[data-v-4ae1f1c7]:focus-visible{outline:none}.chat-editor[data-v-6cdfd1ed]{height:188px;background:var(--chat-editor-bg-color);box-sizing:border-box}.chat-editor textarea[data-v-6cdfd1ed]{height:138px;color:var(--textarea-color);width:100%;background:var(--chat-editor-bg-color);border:none;box-sizing:border-box;padding:12px 14px;caret-color:var(--caret-color);resize:none}.chat-editor textarea[data-v-6cdfd1ed]:focus-visible{outline:none}.chat-editor .send-btn[data-v-6cdfd1ed]{padding:6px 18px;background:var(--send-btn-color);border-radius:2px;font-size:14px;color:var(--send-btn)}.chat-editor .send-btn[data-v-6cdfd1ed]:hover{cursor:pointer;background:#006eff;color:#fff}.chat-editor .send-btn.active[data-v-6cdfd1ed]{background:#006eff;color:#fff}.chat-editor .chat-editor-toolbar[data-v-6cdfd1ed]{height:44px;padding:0 14px 12px;display:flex;flex-direction:row;align-items:center;justify-content:space-between}.chat-container[data-v-6588445b]{position:relative;height:100%}.chat-container-h5[data-v-6588445b]{height:100%}.member-info-mobile[data-v-0325ed23]{display:flex;align-items:center;width:80vw;justify-content:space-between}.member-info[data-v-0325ed23]{display:contents}.member-basic-info[data-v-0325ed23]{display:flex;flex-direction:row;align-items:center}.member-basic-info .avatar-url[data-v-0325ed23]{width:48px;height:48px;display:flex;border-radius:50%;align-items:center}.member-basic-info .user-name[data-v-0325ed23]{margin-left:9px;font-size:14px;color:var(--input-font-color);line-height:22px;max-width:110px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.member-basic-info .user-extra-info[data-v-0325ed23]{line-height:18px;font-size:12px;margin-left:13px;padding:2px;color:var(--user-extra-info-color-h5);background:var(--user-extra-info-bg-color-h5);border-radius:8px;padding:0 6px}.member-av-state[data-v-0325ed23]{padding-left:80px}.member-av-state .video-icon[data-v-0325ed23]{margin-left:5px}.member-control-container[data-v-d259161c]{width:100%;position:fixed;bottom:0;left:0;z-index:2;padding:22px 16px;background:var(--member-control-background-color-h5);border-radius:15px 15px 0 0;display:flex;flex-direction:column!important;animation-duration:.1s;animation-name:popup-d259161c}@keyframes popup-d259161c{0%{height:0}to{height:30%}}.member-control-container .member-title[data-v-d259161c]{display:flex;flex-direction:row;width:100%;margin-bottom:10px;align-items:center}.member-control-container .member-title .avatar-url[data-v-d259161c]{width:30px;height:30px;border-radius:50%}.member-control-container .member-title .member-title-content[data-v-d259161c]{font-weight:500;font-size:16px;line-height:22px;color:var(--member-title-content-h5);margin-left:10px}.member-control-container .user-operate-item[data-v-d259161c]{width:100%;display:flex;margin-top:10px;align-items:center}.member-control-container .user-operate-item .control-title[data-v-d259161c]{margin-left:10px}.cancel[data-v-d259161c]{flex:1;text-align:end;padding-right:30px}.member-control-container[data-v-28dfca21]{display:flex;flex-direction:row}.member-control-container .more-btn[data-v-28dfca21],.member-control-container .mute-btn[data-v-28dfca21]{height:32px;border-radius:2px;font-size:14px;color:#fff;line-height:32px;padding:0 20px}.member-control-container .mute-btn[data-v-28dfca21]{background-image:linear-gradient(235deg,#1883ff,#0062f5)}.member-control-container .more-container[data-v-28dfca21]{position:relative}.member-control-container .more-container .more-btn[data-v-28dfca21]{display:flex;flex-direction:row;align-items:center;background:var(--more-btn-background);border:1px solid #adb6cc;margin-left:12px}.member-control-container .more-container .more-btn .more-icon[data-v-28dfca21]{margin-left:4px;width:20px;height:20px}.member-control-container .more-container .user-operate-list[data-v-28dfca21]{position:absolute;padding:4px 0;top:calc(100% + 10px);right:0;min-width:140px;background:var(--user-operate-list);border-radius:4px;box-shadow:0 1px 10px 0 rgba(0,0,0,.3)}.member-control-container .more-container .user-operate-list .user-operate-item[data-v-28dfca21]{cursor:pointer;padding:0 20px;text-align:center;font-size:14px;color:var(--user-operate-item);height:40px;line-height:40px;white-space:nowrap}.member-control-container .more-container .dropdownUp[data-v-28dfca21]{transform:translateY(-140%)}.member-item-container[data-v-51bdd126]{display:flex;flex-direction:row;align-items:center;height:69px;padding:0 32px;justify-content:space-between}.member-item-container[data-v-51bdd126]:hover{cursor:pointer;background:var(--member-item-container-hover-bg-color)}.member-item-container[data-v-2d674c35]{display:flex;flex-direction:row;align-items:center;height:69px;justify-content:space-between;padding:0 32px}.member-item-container[data-v-2d674c35]:hover{cursor:pointer;background:var(--member-item-container-hover-bg-color)}.manage-member-container[data-v-746e3a0c]{position:relative;height:100%;display:flex;flex-direction:column}.manage-member-container .apply-on-stage-info[data-v-746e3a0c]{width:100%;height:6vh;background-image:linear-gradient(235deg,#1883ff,#0062f5);padding:9px 20px 10px 32px;display:flex;justify-content:space-between;align-items:center;margin:10px 0 10px 0}.manage-member-container .apply-on-stage-info .apply-info[data-v-746e3a0c]{font-weight:400;font-size:14px;color:#fff}.manage-member-container .apply-on-stage-info .button[data-v-746e3a0c]{width:82px;height:32px;background:hsla(0,0%,100%,.1);border:1px solid #fff;border-radius:2px;text-align:center;line-height:32px;font-weight:400;font-size:14px;color:#fff;cursor:pointer}.manage-member-container .searching-container input[type=text][data-v-746e3a0c]{background-image:url(../img/search.a8fd20e6.svg);background-repeat:no-repeat;background-position:10px;padding-left:35px}.manage-member-container .searching-container .searching-input[data-v-746e3a0c]{width:93%;background:#292d38;border-radius:8px;height:34px;border-style:none;margin-left:16px;font-family:PingFang SC;font-style:normal;font-weight:450;font-size:16px;line-height:18px;color:#676c80;caret-color:var(--caret-color)}.manage-member-container .searching-container .searching-input[data-v-746e3a0c] ::-moz-placeholder{font-family:PingFang SC;font-style:normal;font-weight:400;font-size:16px;line-height:18px;color:#676c80}.manage-member-container .searching-container .searching-input[data-v-746e3a0c] ::placeholder{font-family:PingFang SC;font-style:normal;font-weight:400;font-size:16px;line-height:18px;color:#676c80}.manage-member-container .searching-container .searching-input[data-v-746e3a0c]:focus-visible{outline:none}.manage-member-container .setting-item[data-v-746e3a0c]{display:flex;justify-content:space-between;padding:10px 32px}.manage-member-container .setting-item .setting-icon[data-v-746e3a0c]{width:32px;height:32px}.manage-member-container .setting-item .item-left-section[data-v-746e3a0c]{display:flex;align-items:center}.manage-member-container .setting-item .item-left-section .setting-name[data-v-746e3a0c]{font-size:14px;margin-left:8px;color:var(--setting-name-color)}.manage-member-container .divide-line[data-v-746e3a0c]{height:1px;width:100%;background:var(--divide-line-color);box-shadow:0 -1px 0 0 var(--divide-line)}.manage-member-container .member-list-container[data-v-746e3a0c]{flex:1;display:flex;flex-direction:column;min-height:0}.manage-member-container .member-list-container .member-count[data-v-746e3a0c]{margin-left:5px}.manage-member-container .member-list-container[data-v-746e3a0c]::-webkit-scrollbar{display:none}.manage-member-container .member-list-container .member-list-header[data-v-746e3a0c]{padding:0 32px;margin-bottom:8px;font-weight:500;font-size:14px;color:var(--input-font-color);line-height:24px}.manage-member-container .member-list-container .member-list-content[data-v-746e3a0c]{flex:1;overflow-y:scroll}.manage-member-container .manage-member-bottom[data-v-746e3a0c]{width:100%;display:flex;justify-content:space-around;z-index:1}.manage-member-container .manage-member-bottom .manage-member-button[data-v-746e3a0c]{border-radius:10px;padding:13px 24px;background-color:var(--manage-member-button-h5);font-weight:400;color:var(--mute-button-color-h5)}.manage-member-container .manage-member-bottom .lift-all[data-v-746e3a0c]{color:var(--mute-all-h5)}.manage-member-container .popup-dialog-audio[data-v-746e3a0c],.manage-member-container .popup-dialog-video[data-v-746e3a0c]{width:64vw;background:var(--popup-mute-background-color-h5);border-radius:8px;position:absolute;bottom:46vh;left:18vw;white-space:nowrap}.manage-member-container .popup-dialog-audio .popup-dialog-audio-title[data-v-746e3a0c],.manage-member-container .popup-dialog-video .popup-dialog-audio-title[data-v-746e3a0c]{font-family:PingFang SC;font-style:normal;font-weight:400;font-size:16px;line-height:22px;text-align:center;color:#2b2e38;white-space:normal;padding:20px}.manage-member-container .popup-dialog-audio .popup-button[data-v-746e3a0c],.manage-member-container .popup-dialog-video .popup-button[data-v-746e3a0c]{display:flex;justify-content:space-evenly;padding:10px}.manage-member-container .popup-dialog-audio .popup-button .popup-button-cancel[data-v-746e3a0c],.manage-member-container .popup-dialog-video .popup-button .popup-button-cancel[data-v-746e3a0c]{padding:4px 16px;background-color:#fff;color:#646366;border:1px solid #dcdfe6;border-radius:4px}.manage-member-container .popup-dialog-audio .popup-button .popup-button-mute[data-v-746e3a0c],.manage-member-container .popup-dialog-video .popup-button .popup-button-mute[data-v-746e3a0c]{padding:4px 16px;background-color:#006eff;color:#fff;border:1px solid #dcdfe6;border-radius:4px}.button-container-mobile[data-v-746e3a0c]{width:100%;display:flex}.button-container-mobile .agree[data-v-746e3a0c]{color:#006eff}.button-container-mobile .agree[data-v-746e3a0c],.button-container-mobile .cancel[data-v-746e3a0c]{padding:14px;width:50%;display:flex;align-items:center;justify-content:center;border-top:1px solid #f2f2f2}.button-container-mobile .cancel[data-v-746e3a0c]{color:#2b2e38;border-right:1px solid #f2f2f2}.manage-member-container[data-v-74166061]{position:relative;height:100%;display:flex;flex-direction:column}.manage-member-container .apply-on-stage-info[data-v-74166061]{width:100%;height:60px;background-image:linear-gradient(235deg,#1883ff,#0062f5);padding:0 20px 0 32px;display:flex;justify-content:space-between;align-items:center}.manage-member-container .apply-on-stage-info .apply-info[data-v-74166061]{font-weight:400;font-size:14px;color:#fff}.manage-member-container .apply-on-stage-info .button[data-v-74166061]{width:82px;height:32px;background:hsla(0,0%,100%,.1);border:1px solid #fff;border-radius:2px;text-align:center;line-height:32px;font-weight:400;font-size:14px;color:#fff;cursor:pointer}.manage-member-container .setting-item[data-v-74166061]{display:flex;justify-content:space-between;padding:10px 32px}.manage-member-container .setting-item .setting-icon[data-v-74166061]{width:32px;height:32px}.manage-member-container .setting-item .item-left-section[data-v-74166061]{display:flex;align-items:center}.manage-member-container .setting-item .item-left-section .setting-name[data-v-74166061]{font-size:14px;margin-left:8px;color:var(--setting-name-color)}.manage-member-container .divide-line[data-v-74166061]{height:1px;width:100%;background:var(--el-drawer-divide);box-shadow:0 -1px 0 0 var(--divide-line-color)}.manage-member-container .member-list-container[data-v-74166061]{overflow-y:scroll;padding:10px 0;flex:1;display:flex;flex-direction:column}.manage-member-container .member-list-container .member-count[data-v-74166061]{margin-left:5px}.manage-member-container .member-list-container[data-v-74166061]::-webkit-scrollbar{display:none}.manage-member-container .member-list-container .member-list-header[data-v-74166061]{padding:0 32px;font-weight:500;font-size:14px;color:var(--input-font-color);line-height:24px}.manage-member-container .member-list-container .member-list-content[data-v-74166061]{margin-top:15px;flex:1;overflow-y:scroll}.sidebar-container-mobile[data-v-40f5a35a]{height:100%;position:fixed;top:0;right:0;z-index:101}.custom-element-class{--el-color-primary:#006eff;--el-fill-color-light:var(--el-fill-color-light-select);--el-fill-color-blank:var(--user-extra-info-color);--el-border-color:var(--el-border-color-select);--el-border-color-light:var(--el-border-color-light-select);--el-border-color-lighter:var(--el-border-lighter);--el-bg-color:var(--el-bg-color-select,#fff);--el-bg-color-page:#fff;--el-bg-color-overlay:var(--el-bg-color-overlay-select);--el-text-color-primary:var(--el-text-color-primary-select);--el-text-color-regular:var(--el-text-color-regular-select);--el-slider-height:4px;--el-slider-button-size:12px;--el-dialog-bg-color:var(--el-dialog-bg-color-select);--el-dialog-box-shadow:0 1px 10px 0 rgba(0,0,0,.3);--el-disabled-bg-color:var(--el-disabled-background);--el-disabled-border-color:var(--el-disabled-border);--el-switch-on-color:red}.sidebar-container>div{inset:inherit!important;width:480px!important;right:0!important;top:0!important;height:100%;position:absolute!important}.sidebar-container .el-drawer__header{height:88px;border-bottom:1px solid var(--el-drawer-divide);box-sizing:border-box;margin-bottom:0;font-size:20px;color:var(--el-drawer-header-color);font-weight:500;padding:32px 22px 32px 32px}.sidebar-container .el-drawer__body{padding:0}.user-stream-container[data-v-9adfd868]{position:relative;width:100%;height:100%;border:2px solid transparent;overflow:hidden;border-radius:10px;-webkit-transform:rotate(0deg)}.user-stream-container.border[data-v-9adfd868]{border:2px solid #37e858}.user-stream-container .stream-region[data-v-9adfd868]{width:100%;height:100%;overflow:hidden;background-color:#000;position:absolute;top:0;left:0}.user-stream-container .center-user-info-container[data-v-9adfd868]{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;justify-content:center;align-items:center;background-color:var(--center-user-info-container-bg-color)}.user-stream-container .center-user-info-container .avatar-region[data-v-9adfd868]{width:130px;height:130px;border-radius:50%}.user-stream-container .center-user-info-container .user-info[data-v-9adfd868]{width:130px;text-align:center}.user-stream-container .center-user-info-container .user-info .avatar-region[data-v-9adfd868]{width:130px;height:130px;border-radius:50%}.user-stream-container .center-user-info-container .user-info .user-gender-name svg[data-v-9adfd868]{vertical-align:bottom}.user-stream-container .center-user-info-container .user-info .user-gender-name .user-name[data-v-9adfd868]{display:inline-block;margin-left:6px;font-size:14px;font-weight:400;max-width:100px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;vertical-align:bottom}.user-stream-container .corner-user-info-container[data-v-9adfd868]{position:absolute;bottom:4px;left:0;min-width:118px;max-width:100%;overflow:hidden;height:30px;display:flex;background:rgba(0,0,0,.6);color:#fff;align-items:center;align-content:center;font-size:14px}.user-stream-container .corner-user-info-container .user-name[data-v-9adfd868]{margin-left:8px;max-width:60px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;padding-right:5px}.user-stream-container .corner-user-info-container .master-icon[data-v-9adfd868]{margin-left:0;width:25px;height:25px;background-size:cover}.user-stream-container .corner-user-info-container .screen-icon[data-v-9adfd868]{transform:scale(.8);background-size:cover}.user-stream-container .corner-user-info-container .audio-icon[data-v-9adfd868]{max-width:26px;max-height:35px}@keyframes loading-rotate-693d2878{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.user-stream-container[data-v-693d2878]{position:relative}.user-stream-container .stream-region[data-v-693d2878]{width:100%;height:100%;overflow:hidden;background-color:#000}.user-stream-container .loading-region[data-v-693d2878]{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.user-stream-container .loading-region .loading[data-v-693d2878]{animation:loading-rotate-693d2878 .7s linear infinite}.user-stream-container .corner-user-info-container[data-v-693d2878]{position:absolute;bottom:4px;left:0;min-width:118px;max-width:100%;overflow:hidden;height:30px;display:flex;background:rgba(0,0,0,.6);color:#fff;align-items:center;align-content:center;padding:0 10px 0 0;font-size:14px}.user-stream-container .corner-user-info-container>[data-v-693d2878]{margin-left:8px;max-width:160px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.user-stream-container .corner-user-info-container .master-icon[data-v-693d2878]{margin-left:0;width:30px;height:30px;background-size:cover}.user-stream-container .corner-user-info-container .screen-icon[data-v-693d2878]{transform:scale(.8);background-size:cover}.user-stream-container .center-user-info-container[data-v-693d2878]{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;justify-content:center;align-items:center;background-color:var(--center-user-info-container-bg-color)}.user-stream-container .center-user-info-container .avatar-region[data-v-693d2878]{width:130px;height:130px;border-radius:50%}.user-stream-container .center-user-info-container .user-info[data-v-693d2878]{width:130px;text-align:center}.user-stream-container .center-user-info-container .user-info .avatar-region[data-v-693d2878]{width:130px;height:130px;border-radius:50%}.user-stream-container .center-user-info-container .user-info .user-gender-name svg[data-v-693d2878]{vertical-align:bottom}.user-stream-container .center-user-info-container .user-info .user-gender-name .user-name[data-v-693d2878]{display:inline-block;margin-left:6px;font-size:14px;font-weight:400;max-width:100px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;vertical-align:bottom}.stream-container[data-v-3424abc2]{width:100%;height:100%;position:relative}.stream-container-flatten[data-v-3424abc2]{width:100%;height:100%;background-color:var(--stream-container-flatten-bg-color);overflow:hidden;display:flex;flex-wrap:wrap;justify-content:flex-start;align-items:center;align-content:center}.stream-container-flatten .stream-list-container[data-v-3424abc2]{width:100%;padding-top:150%;height:0;position:relative}.stream-container-flatten .stream-list-container.multi-stream-container[data-v-3424abc2]{padding-top:150%;height:0}.stream-container-flatten .stream-list-container.single-stream-container[data-v-3424abc2]{height:100%}.stream-container-flatten .stream-list[data-v-3424abc2]{width:100%;height:100%;position:absolute;top:0;left:0;display:flex;flex-wrap:wrap;justify-content:flex-start;align-items:center;align-content:center}.stream-container-flatten .stream-list.not-first-page[data-v-3424abc2]{align-content:flex-start}.stream-container-flatten .stream-list .single-stream[data-v-3424abc2]{width:100%;height:100%;padding:1px;border-radius:10px}.stream-container-flatten .stream-list .multi-stream[data-v-3424abc2]{width:50%;padding-top:50%;height:0;border-radius:10px;overflow:hidden;position:relative}.stream-container-large-small[data-v-3424abc2]{width:100%;height:100%;background-color:var(--stream-container-flatten-bg-color);overflow:hidden}.stream-container-large-small .enlarged-stream-container[data-v-3424abc2]{width:100%;height:100%}.stream-container-large-small .stream-list-container[data-v-3424abc2]{width:50%;padding-top:50%;position:absolute;top:0;right:0}.stream-container-large-small .stream-list-container .stream-list[data-v-3424abc2]{width:100%;height:100%;position:absolute;top:0;left:0}.stream-container-large-small .stream-list-container .stream-list .multi-stream[data-v-3424abc2],.stream-container-large-small .stream-list-container .stream-list .single-stream[data-v-3424abc2]{width:100%;height:100%;padding:1px;border-radius:10px}.icon-control[data-v-3424abc2]{background-color:var(--layout-item);cursor:pointer}.icon-control[data-v-3424abc2],.swipe[data-v-3424abc2]{position:absolute;display:flex;justify-content:center;align-items:center}.swipe[data-v-3424abc2]{width:100%;bottom:100px}.swipe-dots[data-v-3424abc2]{opacity:.6}.swipe-current-dots[data-v-3424abc2],.swipe-dots[data-v-3424abc2]{width:8px;height:8px;background:#fff;border-radius:20px;margin:5px}.swipe-current-dots[data-v-3424abc2]{opacity:1}.stream-container-flatten[data-v-35d1e596]{width:100%;height:100%;background-color:var(--stream-container-flatten-bg-color);overflow:hidden}.stream-container-flatten .stream-list-container[data-v-35d1e596]{width:100%;height:100%}.stream-container-flatten .stream-list[data-v-35d1e596]{width:100%;height:100%;display:flex;flex-wrap:wrap;justify-content:center;align-items:center;align-content:center}.stream-container-flatten .stream-list .single-stream[data-v-35d1e596]{margin:4px}.icon-control[data-v-35d1e596]{background-color:var(--layout-item);position:absolute;cursor:pointer;display:flex;justify-content:center;align-items:center}.arrow-up[data-v-35d1e596]{top:175px}.arrow-down[data-v-35d1e596],.arrow-up[data-v-35d1e596]{width:52px;height:20px;position:fixed;left:50%;transform:translate(-50%);border-radius:0 0 4px 4px}.arrow-down[data-v-35d1e596]{top:48px}.arrow-down [data-v-35d1e596]{transform:rotate(180deg)}.arrow-right[data-v-35d1e596]{width:20px;height:52px;position:fixed;right:250px;transform:translate(-50%);top:calc(50% - 16px);border-radius:4px 0 0 4px}.arrow-right [data-v-35d1e596]{transform:rotate(90deg)}.arrow-left[data-v-35d1e596]{width:20px;height:52px;position:fixed;right:-10px;transform:translate(-50%);top:calc(50% - 16px);border-radius:4px 0 0 4px}.arrow-left [data-v-35d1e596]{transform:rotate(270deg)}.stream-container-top[data-v-35d1e596]{width:100%;height:100%;background-color:var(--stream-container-flatten-bg-color);overflow:hidden;position:relative}.stream-container-top .enlarged-stream-container[data-v-35d1e596]{width:100%;height:calc(100% - 175px);position:absolute;top:175px;display:flex;justify-content:center;align-items:center}.stream-container-top .stream-list-container[data-v-35d1e596]{width:100%;height:175px;background-color:var(--stream-list-container);position:absolute;top:0;left:0;padding:20px 40px;display:flex;justify-content:center}.stream-container-top .stream-list-container.hide-list[data-v-35d1e596]{transform:translateY(-175px)}.stream-container-top .stream-list-container .stream-list[data-v-35d1e596]{display:flex;overflow-x:scroll;max-width:100%;max-height:100%}.stream-container-top .stream-list-container .stream-list[data-v-35d1e596]::-webkit-scrollbar{display:none}.stream-container-top .stream-list-container .stream-list .single-stream[data-v-35d1e596]{width:240px;height:135px;border-radius:4px;overflow:hidden;flex-shrink:0}.stream-container-top .stream-list-container .stream-list .single-stream[data-v-35d1e596]:not(:first-child){margin-left:14px}.stream-container-right[data-v-35d1e596]{width:100%;height:100%;background-color:var(--stream-container-flatten-bg-color);overflow:hidden;display:flex;flex-wrap:nowrap;justify-content:space-between;align-content:center}.stream-container-right .enlarged-stream-container[data-v-35d1e596]{width:calc(100% - 260px);height:100%;display:flex;justify-content:center;align-items:center}.stream-container-right .stream-list-container[data-v-35d1e596]{width:260px;height:100%;position:absolute;top:0;right:0;padding:48px 10px 80px;background-color:var(--stream-list-container);display:flex;align-items:center}.stream-container-right .stream-list-container.hide-list[data-v-35d1e596]{transform:translateX(260px)}.stream-container-right .stream-list-container[data-v-35d1e596]:before{content:"";width:100%;height:40px;position:absolute;top:48px;left:0;opacity:.1}.stream-container-right .stream-list[data-v-35d1e596]{max-width:100%;max-height:100%;overflow-y:scroll;padding:10px 0}.stream-container-right .stream-list[data-v-35d1e596]::-webkit-scrollbar{display:none}.stream-container-right .stream-list .single-stream[data-v-35d1e596]{width:240px;height:135px;border-radius:4px;overflow:hidden}.stream-container-right .stream-list .single-stream[data-v-35d1e596]:not(:first-child){margin-top:14px}.turn-page-container[data-v-35d1e596]{width:100%;height:86px;position:absolute;top:50%;transform:translateY(-50%);padding:0 24px;display:flex;justify-content:space-between}.turn-page-container .turn-page-arrow-container[data-v-35d1e596]{width:40px;height:86px;background:rgba(0,0,0,.4);border-radius:4.21px;display:flex;justify-content:center;align-items:center;cursor:pointer}.turn-page-container .left-container[data-v-35d1e596]{position:absolute;left:24px}.turn-page-container .right-container[data-v-35d1e596]{position:absolute;right:24px}.turn-page-container .turn-page-arrow[data-v-35d1e596]{background-image:url(../img/turn-page-arrow-left.7cc3e172.svg);width:14px;height:23px;background-size:100% 100%}.turn-page-container .turn-page-right[data-v-35d1e596]{transform:rotateY(180deg)}.content-container[data-v-f3be1146]{width:100%;height:100%}.setting-dialog[data-v-3d8c7752]{width:660px;height:574px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:flex;background-color:var(--setting-dialog-bg-color);border-radius:var(--setting-dialog)}.setting-dialog .dialog-tabs[data-v-3d8c7752]{width:194px;height:574px;background-color:var(--dialog-tabs-bg-color);border-radius:var(--setting-dialog)}.setting-dialog .dialog-tabs .dialog-title[data-v-3d8c7752]{display:inline-block;font-weight:500;font-size:20px;line-height:24px;color:var(--tabs-title-font-color);margin:32px 0 20px 32px}.setting-dialog .dialog-tabs .tabs-title[data-v-3d8c7752]{width:100%;height:36px;padding-left:32px;margin-bottom:10px;font-weight:400;font-size:14px;color:var(--tabs-title-font-color);line-height:36px;position:relative;cursor:pointer}.setting-dialog .dialog-tabs .tabs-title.active[data-v-3d8c7752]{background-color:var(--create-room-option);color:var(--create-room-option-color);font-weight:500}.setting-dialog .dialog-tabs .tabs-title.active[data-v-3d8c7752]:before{content:"";display:block;position:absolute;left:0;top:0;width:2px;height:36px;background:var(--create-room-option-tab)}.setting-dialog .dialog-tabs .tabs-title.active[data-v-3d8c7752]:after{content:"";display:block;position:absolute;left:0;top:0;width:23px;height:36px;opacity:.59;background:var(--active-blur-background-color);filter:blur(16px)}.setting-dialog .divide-line[data-v-3d8c7752]{width:1px;height:100%;background:var(--divide-line-color-setting)}.setting-dialog .dialog-content[data-v-3d8c7752]{flex-grow:1;padding:32px}.setting-dialog .close-icon[data-v-3d8c7752]{position:absolute;top:20px;right:20px;cursor:pointer}.tui-room :not([class|=el]){transition:background-color .5s,color .5s}.tui-room[data-v-7c957b1c]{width:100%;height:100%;position:relative}.tui-room .header[data-v-7c957b1c]{width:100%;height:48px;background-color:var(--room-header-bg-color);position:absolute;top:0;left:0;z-index:100}.tui-room .content[data-v-7c957b1c]{width:100%;height:100%;background-color:#0d0f15;position:absolute;top:0}.tui-room .footer[data-v-7c957b1c]{position:absolute;bottom:0;width:100%;height:80px;background-color:var(--room-footer-bg-color)}#app{font-family:Avenir,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:#b3b8c8;position:relative;width:100%;height:100%}
\ No newline at end of file
+.popup-container[data-v-4069d388]{width:100vw;height:100%;background:var(--room-detail-background);position:static;flex:1}.popup-container .popup-main-header[data-v-4069d388]{width:100%;height:60px;display:flex;justify-content:center;align-items:center}.popup-container .popup-main-header .icon-container[data-v-4069d388]{padding:20px;position:absolute;left:0;top:0;width:10px;height:18px;background-size:cover;box-sizing:content-box}.popup-container .popup-main-header .sidebar-title[data-v-4069d388]{font-family:PingFang SC;font-style:normal;font-weight:500;font-size:16px;line-height:22px;text-align:center;color:var(--input-font-color)}.popup-container .popup-main-header .close-icon[data-v-4069d388]{width:10px;height:18px;background-size:cover}.popup-container .popup-main-content[data-v-4069d388]{width:100%;height:calc(100% - 130px);overflow:hidden}.popup-container .popup-main-footer[data-v-4069d388]{width:100%;height:auto;position:sticky;bottom:0;padding-top:10px}.end-control-container .end-button[data-v-12377224]{border:1px solid #ff2e2e;border-radius:4px;font-weight:400;font-size:12px;color:#ff2e2e;letter-spacing:0;cursor:pointer;text-align:center;line-height:21px;padding:0 8px}.end-control-container .end-button[data-v-12377224]:hover{background-color:#ff2e2e;color:#fff}.dialog-middle-content[data-v-12377224]{width:100%;display:flex;flex-direction:column}.end-main-content[data-v-12377224]{position:fixed;left:0;top:0;bottom:0;width:100vw;height:auto;box-sizing:border-box;background-color:var(--log-out-mobile);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.end-main-content .end-dialog-dismiss[data-v-12377224],.end-main-content .end-dialog-leave[data-v-12377224]{width:90%;border-radius:14px;position:fixed;right:0;left:0;bottom:10vh;z-index:9;margin:auto}.end-main-content .end-dialog-dismiss .manage-transfer[data-v-12377224],.end-main-content .end-dialog-leave .manage-transfer[data-v-12377224]{position:absolute;top:0}.end-main-content .end-dialog-dismiss .end-dialog-header[data-v-12377224],.end-main-content .end-dialog-leave .end-dialog-header[data-v-12377224]{background:#cacacb;font-family:PingFang SC;font-style:normal;font-weight:500;font-size:14px;line-height:17px;text-align:center;color:#6a6c74;height:56px;width:100%;margin:0 auto;border-top-left-radius:14px;border-top-right-radius:14px;border-bottom:.5px solid #4f4e4e;display:flex;justify-content:center;align-items:center}.end-main-content .end-dialog-dismiss .end-dialog-header .end-dialog-text[data-v-12377224],.end-main-content .end-dialog-leave .end-dialog-header .end-dialog-text[data-v-12377224]{width:230px}.end-main-content .end-dialog-dismiss .end-button-cancel[data-v-12377224],.end-main-content .end-dialog-dismiss .end-button-dismiss-single[data-v-12377224],.end-main-content .end-dialog-dismiss .end-button-dismiss[data-v-12377224],.end-main-content .end-dialog-dismiss .end-button-leave-single[data-v-12377224],.end-main-content .end-dialog-dismiss .end-button-leave[data-v-12377224],.end-main-content .end-dialog-leave .end-button-cancel[data-v-12377224],.end-main-content .end-dialog-leave .end-button-dismiss-single[data-v-12377224],.end-main-content .end-dialog-leave .end-button-dismiss[data-v-12377224],.end-main-content .end-dialog-leave .end-button-leave-single[data-v-12377224],.end-main-content .end-dialog-leave .end-button-leave[data-v-12377224]{width:100%;font-family:PingFang SC;font-style:normal;font-weight:400;font-size:20px;line-height:24px;text-align:center;color:#ff2e2e;border-style:none;background:#cacacb;padding:20px 0}.end-main-content .end-dialog-dismiss .end-button-leave[data-v-12377224],.end-main-content .end-dialog-leave .end-button-leave[data-v-12377224]{color:#007aff;border-bottom-left-radius:14px;border-bottom-right-radius:14px;border-top:.5px solid #8f8e8e}.end-main-content .end-dialog-dismiss .end-button-leave-single[data-v-12377224],.end-main-content .end-dialog-leave .end-button-leave-single[data-v-12377224]{position:absolute;bottom:1vh;border-radius:14px;display:flex;align-items:center;justify-content:center}.end-main-content .end-dialog-dismiss .end-button-cancel[data-v-12377224],.end-main-content .end-dialog-leave .end-button-cancel[data-v-12377224]{position:absolute;bottom:-9vh;left:0;background-color:#fff;border-radius:14px;color:#007aff;font-weight:600;display:flex;align-items:center;justify-content:center}.end-main-content .end-dialog-dismiss .end-button-dismiss-single[data-v-12377224],.end-main-content .end-dialog-leave .end-button-dismiss-single[data-v-12377224]{border-bottom-left-radius:14px;border-bottom-right-radius:14px;display:flex;align-items:center;justify-content:center}.end-main-content .end-dialog-dismiss[data-v-12377224]{bottom:12vh}.end-main-content .end-dialog-dismiss .end-button-cancel[data-v-12377224]{bottom:-9vh}.transfer-container[data-v-12377224]{position:fixed;left:0;top:0;height:100vh;z-index:102}.transfer-container .transfer-header[data-v-12377224]{display:flex;justify-content:center}.transfer-container .transfer-header input[type=text][data-v-12377224]{background-image:url(../img/search.a8fd20e6.svg);background-repeat:no-repeat;background-position:10px;padding-left:35px;background-color:var(--transfer-input-color-h5)}.transfer-container .transfer-header .searching-input[data-v-12377224]{padding:0 80px;background:#292d38;border-radius:8px;height:34px;border-style:none;font-family:PingFang SC;font-style:normal;font-weight:450;font-size:16px;line-height:18px;color:#676c80;caret-color:var(--caret-color)}.transfer-container .transfer-header .searching-input[data-v-12377224] ::-moz-placeholder{font-family:PingFang SC;font-style:normal;font-weight:400;font-size:16px;line-height:18px;color:#676c80}.transfer-container .transfer-header .searching-input[data-v-12377224] ::placeholder{font-family:PingFang SC;font-style:normal;font-weight:400;font-size:16px;line-height:18px;color:#676c80}.transfer-container .transfer-header .searching-input[data-v-12377224]:focus-visible{outline:none}.transfer-container .transfer-body[data-v-12377224]{flex:1;overflow-y:scroll}.transfer-container .transfer-body .transfer-list-content[data-v-12377224]{padding-bottom:5px}.transfer-container .transfer-body .transfer-list-content .transfer-item-container[data-v-12377224]{display:flex;flex-direction:row;align-items:center;height:69px;justify-content:space-between;padding:0 32px}.transfer-container .transfer-body .transfer-list-content .member-basic-info[data-v-12377224]{display:flex;position:relative;width:100%;flex-direction:row;align-items:center;padding:24px 20px 0 24px}.transfer-container .transfer-body .transfer-list-content .member-basic-info .avatar-url[data-v-12377224]{width:40px!important;height:40px!important;border-radius:50%}.transfer-container .transfer-body .transfer-list-content .member-basic-info .user-name[data-v-12377224]{margin-left:9px;color:var(--input-font-color);max-width:70%!important;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;font-family:PingFang SC;font-style:normal;font-weight:500;font-size:16px!important;line-height:22px;letter-spacing:-.24px;display:flex}.transfer-container .transfer-body .transfer-list-content .member-basic-info .correct[data-v-12377224]{width:24px;height:16px;position:absolute;right:5vw;background-size:cover}.transfer-container .transfer-body .member-hasNoData[data-v-12377224]{position:fixed;top:30%;left:30%;width:40vw;height:5vh;color:var(--input-font-color);border-radius:4px;background-color:var(--message-list-color);display:flex;justify-content:center;align-items:center}.transfer-leave[data-v-12377224]{position:fixed;bottom:2vh;left:7vw;display:flex;align-items:center;justify-content:center}.transfer-leave .transfer-button[data-v-12377224]{width:86vw;height:5vh;background:linear-gradient(315deg,#006eff,#0c59f2 98.81%);border-radius:8px;font-family:PingFang SC;font-style:normal;font-weight:500;font-size:16px;line-height:22px;display:flex;align-items:center;justify-content:center;text-align:center;color:#fff;border-style:none}.end-button[data-v-bcdd5c40]{width:90px;height:40px;border:2px solid #ff2e2e;border-radius:4px;font-weight:400;font-size:14px;color:#ff2e2e;letter-spacing:0;cursor:pointer;text-align:center;line-height:36px}.end-button[data-v-bcdd5c40]:hover{background-color:#ff2e2e;color:#fff}.camera-icon[data-v-190ccb04]{display:block;background-size:cover;width:40px;height:36px}.mirror-icon[data-v-9a54a9ea]{display:block;width:32px;height:32px}.conference-container[data-v-543146aa]{min-width:140px;max-width:300px}.title-container[data-v-543146aa]{display:flex;align-items:center}.text[data-v-543146aa]{font-weight:500;font-size:12px;line-height:17px;max-width:150px;color:var(--input-font-color)}.master-header[data-v-543146aa],.text[data-v-543146aa]{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.master-header[data-v-543146aa]{max-width:300px;padding:20px 0}.text-right[data-v-543146aa]{padding-left:30px}.text-type[data-v-543146aa]{padding-left:12px}.roomInfo-middle[data-v-543146aa]{color:var(--popup-title-color-h5);padding-left:25px}.chevron-down-container[data-v-543146aa]{display:flex;margin-left:5px}.chevron-down-container .chevron-down-icon[data-v-543146aa]{display:flex;background-size:cover;width:10px;height:7px;align-items:center}.roomInfo-container[data-v-543146aa]{position:fixed;left:0;top:0;bottom:0;width:100vw;height:auto;box-sizing:border-box;background-color:var(--log-out-mobile)}.roomInfo-container .roomInfo-container-main[data-v-543146aa]{width:100%;background:var(--popup-background-color-h5);border-radius:15px 15px 0 0;position:fixed;bottom:0;display:flex;flex-direction:column;animation-duration:.1s;animation-name:popup-543146aa;padding-bottom:4vh}@keyframes popup-543146aa{0%{height:0}to{height:30%}}.roomInfo-container .roomInfo-container-main .roomInfo-title[data-v-543146aa]{display:flex;flex-direction:row;align-items:center;font-family:PingFang SC;font-style:normal;font-weight:500;font-size:20px;line-height:24px;color:var(--popup-title-color-h5);padding:0 0 0 25px;position:relative}.roomInfo-container .roomInfo-container-main .roomInfo-role[data-v-543146aa],.roomInfo-container .roomInfo-container-main .roomInfo-roomID[data-v-543146aa],.roomInfo-container .roomInfo-container-main .roomInfo-roomMode[data-v-543146aa]{display:flex;flex-direction:row;padding:5px 0;align-items:center}.roomInfo-container .roomInfo-container-main .link[data-v-543146aa]{color:var(--popup-content-color-h5);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:64%;padding-left:16px}.roomInfo-container .roomInfo-container-main .roomInfo-bottom[data-v-543146aa]{font-family:PingFang SC;font-style:normal;font-weight:400;font-size:12px;line-height:17px;text-align:center;color:var(--popup-title-color-h5);padding-top:2vh}.roomInfo-container .roomInfo-container-main .copy[data-v-543146aa]{width:14px;height:14px;margin-left:30px}.roomInfo-container .roomInfo-container-main .qrcode[data-v-543146aa]{width:24px;height:24px;position:absolute;right:10vw;top:3vh}.cancel[data-v-543146aa]{flex:1;text-align:end;padding-right:30px;font-weight:400;font-size:16px}.header[data-v-1262e4e7]{height:100%}.header-container[data-v-1262e4e7]{height:100%;display:flex;align-items:center;justify-content:space-between;padding:0 12px}.icon-box[data-v-1262e4e7]{min-width:50px;display:flex;align-items:center;justify-content:space-between}.layout-container[data-v-7b3fd23b]{position:relative;width:20px;height:20px}.layout-container .layout-icon[data-v-7b3fd23b]{cursor:pointer}.layout-container .layout-list[data-v-7b3fd23b]{position:absolute;top:47px;right:0;background-color:var(--layout-list);box-shadow:0 1px 10px 0 rgba(0,0,0,.3);border-radius:4px;padding:20px;display:flex}.layout-container .layout-list .layout-item[data-v-7b3fd23b]{width:180px;height:133px;padding:20px 30px 39px;background-color:var(--layout-item);border-radius:2px;border:1px solid transparent;cursor:pointer;position:relative}.layout-container .layout-list .layout-item[data-v-7b3fd23b]:not(:first-child){margin-left:20px}.layout-container .layout-list .layout-item.checked[data-v-7b3fd23b],.layout-container .layout-list .layout-item[data-v-7b3fd23b]:hover{border:1px solid #006eff;border-radius:2px}.layout-container .layout-list .layout-item.checked[data-v-7b3fd23b]:after{content:"";display:block;width:20px;height:20px;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAShJREFUWEftltFRwkAQhr8NBWgJlgAVCBWIHVCAMlgBWIEafbcFrEDsQDsIHWgB3DJ3kRfNBXNcJoNz+5SH7P5f/uzundBxSMf6JIDkwH4HrnRIxnlQsxreeJJVXW49wFSXwEWQ+C5JWfIol74afoDyy18PEt8lG0Y+J/wAU10A8ygAcEsutt6vSAD/zAHlBmFYMTkt94DyhTJ2nV49ui0CKGt6jIGCDc+Ie/4Z0QAeyFiwoUA4Qfmg5ywH43ZG3zO20QAKMgbAGYYJucyYaf9b/LRmZ0QDsBrvZIy4l0+udYJwB9SJ25yoACUE2HOicru12QOhmzm6A01BjhGg8+PYmhzjQgIv5FK1nNxv/OuVrFw2TcOwOuxK1lQw4P39DgQUbZKSAJIDW6oveCGWdYdlAAAAAElFTkSuQmCC);background-size:100% 100%;position:absolute;top:0;right:0}.layout-container .layout-list .layout-item .layout-block-container[data-v-7b3fd23b]{width:120px;height:74px}.layout-container .layout-list .layout-item .layout-title[data-v-7b3fd23b]{font-size:16px;font-weight:400;line-height:24px;display:inline-block;margin-top:10px;width:100%;text-align:center}.layout-container .layout-list .layout1 .layout-block-container[data-v-7b3fd23b]{display:flex;flex-wrap:wrap;justify-content:space-between;align-content:space-between}.layout-container .layout-list .layout1 .layout-block-container .layout-block[data-v-7b3fd23b]{width:38px;height:22px;background-color:#7c85a6}.layout-container .layout-list .layout2 .layout-block-container[data-v-7b3fd23b]{display:flex;justify-content:space-between}.layout-container .layout-list .layout2 .layout-block-container .left-container[data-v-7b3fd23b]{width:90px;height:74px;background-color:#7c85a6}.layout-container .layout-list .layout2 .layout-block-container .right-container[data-v-7b3fd23b]{width:27px;height:74px;display:flex;flex-wrap:wrap;justify-content:space-between;align-content:space-between}.layout-container .layout-list .layout2 .layout-block-container .right-container>div[data-v-7b3fd23b]{width:27px;height:16px;background-color:#7c85a6}.layout-container .layout-list .layout3 .layout-block-container[data-v-7b3fd23b]{display:flex;flex-wrap:wrap;align-content:space-between}.layout-container .layout-list .layout3 .layout-block-container .top-container[data-v-7b3fd23b]{width:120px;height:16px;display:flex;flex-wrap:wrap;justify-content:space-between;align-content:space-between}.layout-container .layout-list .layout3 .layout-block-container .top-container>div[data-v-7b3fd23b]{width:28px;height:16px;background-color:#7c85a6}.layout-container .layout-list .layout3 .layout-block-container .bottom-container[data-v-7b3fd23b]{width:120px;height:55px;background-color:#7c85a6}.header-container[data-v-20e9e128]{width:100%;height:100%;padding-left:9px;padding-right:24px;position:relative;display:flex;justify-content:space-between}.header-container .left-container[data-v-20e9e128]{height:100%;position:absolute;top:0;left:0;display:flex;align-items:center;padding-left:24px}.header-container .left-container .header-item[data-v-20e9e128]:not(:first-child){margin-left:1rem}.header-container .right-container[data-v-20e9e128]{position:absolute;top:0;right:0;height:100%;float:right;padding-right:24px;display:flex;align-items:center}.header-container .right-container .right-container-item[data-v-20e9e128]:not(:last-child){margin-right:1rem}.header-container .right-container .end-control-container[data-v-20e9e128]{display:none}.audio-control-container[data-v-357aa832]{position:relative}.audio-control-container .audio-tab[data-v-357aa832]{position:absolute;bottom:90px;left:15px;width:320px;background:var(--room-audiotab-bg-color);padding:20px}.button-container-mobile[data-v-357aa832]{width:100%;display:flex}.button-container-mobile .agree[data-v-357aa832]{color:#006eff}.button-container-mobile .agree[data-v-357aa832],.button-container-mobile .cancel[data-v-357aa832]{padding:14px;width:50%;display:flex;align-items:center;justify-content:center;border-top:1px solid #f2f2f2}.button-container-mobile .cancel[data-v-357aa832]{color:#2b2e38;border-right:1px solid #f2f2f2}.button-container-PC .cancel[data-v-357aa832]{padding:5px 20px;background:var(--create-room-option);border-radius:2px;width:auto;display:initial;color:var(--color-font);border:1px solid var(--choose-type)}.button-container-PC .agree[data-v-357aa832]{padding:5px 20px;background:#006eff;color:#fff;margin-left:14px;border-radius:2px;width:auto;display:initial}.video-control-container[data-v-a0d52fdc]{position:relative}.video-control-container .video-tab[data-v-a0d52fdc]{position:absolute;bottom:90px;left:-60px;width:320px;background:var(--room-videotab-bg-color);padding:20px}.button-container-mobile[data-v-a0d52fdc]{width:100%;display:flex}.button-container-mobile .agree[data-v-a0d52fdc]{color:#006eff}.button-container-mobile .agree[data-v-a0d52fdc],.button-container-mobile .cancel[data-v-a0d52fdc]{padding:14px;width:50%;display:flex;align-items:center;justify-content:center;border-top:1px solid #f2f2f2}.button-container-mobile .cancel[data-v-a0d52fdc]{color:#2b2e38;border-right:1px solid #f2f2f2}.button-container-PC .cancel[data-v-a0d52fdc]{padding:5px 20px;background:var(--create-room-option);border-radius:2px;width:auto;display:initial;color:var(--color-font);border:1px solid var(--choose-type)}.button-container-PC .agree[data-v-a0d52fdc]{padding:5px 20px;background:#006eff;color:#fff;margin-left:14px;border-radius:2px;width:auto;display:initial}.chat-control-container .el-badge .el-badge__content{top:14px;right:24px;background-color:#006eff}.count{display:flex}.unreadCount{background-color:#006eff;min-width:20px;height:20px;text-align:center;color:#fff;position:relative;left:-20px;top:4px;padding:2px;border-radius:45px}.apply-control-container .master-attention{display:flex;flex-direction:column;padding:4px}.apply-control-container .master-attention .apply-big-icon{width:40px;height:40px}.apply-control-container .master-attention .info{color:#fff;font-size:14px}.apply-control-container .apply-list-container{width:470px;height:286px;background:var(--apply-list-container-bg-color);box-shadow:0 1px 10px 0 rgba(0,0,0,.3);position:absolute;top:-6px;left:50%;transform:translate(-50%,-100%);padding:12px 20px;color:#cfd4e6}.apply-control-container .apply-list-container .title-container{display:flex;justify-content:space-between;align-items:center}.apply-control-container .apply-list-container .title-container .title{font-weight:500;font-size:16px;color:var(--apply-list-container-color)}.apply-control-container .apply-list-container .title-container .close{cursor:pointer}.apply-control-container .apply-list-container .apply-list{height:190px;overflow:scroll;margin-top:4px}.apply-control-container .apply-list-container .apply-list::-webkit-scrollbar{display:none}.apply-control-container .apply-list-container .apply-list .apply-item{display:flex;justify-content:space-between;align-items:center;height:48px;margin-top:8px}.apply-control-container .apply-list-container .apply-list .apply-item .user-info{width:calc(100% - 176px);height:100%;display:flex;align-items:center}.apply-control-container .apply-list-container .apply-list .apply-item .user-info .avatar-url{width:48px;height:48px;border-radius:50%}.apply-control-container .apply-list-container .apply-list .apply-item .user-info .user-name{font-weight:500;font-size:14px;color:#7c85a6;line-height:22px;margin-left:9px;max-width:180px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.apply-control-container .apply-list-container .apply-list .apply-item .control-container{display:flex;justify-content:space-between}.apply-control-container .apply-list-container .apply-footer{margin-top:8px}.apply-control-container .apply-list-container .apply-footer .deny-all{float:right}.apply-control-container .apply-list-container .button{border-radius:2px;padding:6px 20px;font-family:PingFangSC-Regular;font-weight:400;font-size:14px;color:var(--apply-list-container-color);text-align:center;cursor:pointer}.apply-control-container .apply-list-container .primary{background-image:linear-gradient(235deg,#1883ff,#0062f5);color:var(--apply-container-primary);margin-right:5px}.apply-control-container .apply-list-container .outline{background:rgba(173,182,204,.1);border:1px solid #adb6cc;color:var(--apply-container-outline)}.apply-control-container .apply-list-container-h5{width:80vw;height:30vh;border-radius:13px;display:flex;flex-direction:column;background:var(--apply-list-container-bg-color);box-shadow:0 1px 10px 0 rgba(0,0,0,.3);position:absolute;top:-6px;left:50%;transform:translate(-50%,-100%);padding:12px 20px;color:#cfd4e6}.apply-control-container .apply-list-container-h5 .title-container{display:flex;justify-content:space-between;align-items:center}.apply-control-container .apply-list-container-h5 .title-container .title{font-weight:500;font-size:16px;color:var(--apply-list-container-color)}.apply-control-container .apply-list-container-h5 .title-container .close{cursor:pointer}.apply-control-container .apply-list-container-h5 .apply-list{max-height:72%;overflow:scroll;margin-top:4px;flex:1}.apply-control-container .apply-list-container-h5 .apply-list::-webkit-scrollbar{display:none}.apply-control-container .apply-list-container-h5 .apply-list .apply-item{display:flex;justify-content:space-between;align-items:center;height:48px;margin-top:8px}.apply-control-container .apply-list-container-h5 .apply-list .apply-item .user-info{height:100%;display:flex;align-items:center}.apply-control-container .apply-list-container-h5 .apply-list .apply-item .user-info .avatar-url{width:48px;height:48px;border-radius:50%}.apply-control-container .apply-list-container-h5 .apply-list .apply-item .user-info .user-name{font-weight:500;font-size:14px;color:#7c85a6;line-height:22px;margin-left:9px;max-width:180px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.apply-control-container .apply-list-container-h5 .apply-list .apply-item .control-container{display:flex;justify-content:space-between}.apply-control-container .apply-list-container-h5 .apply-footer{height:40px;margin-top:auto}.apply-control-container .apply-list-container-h5 .apply-footer .button{width:100%;background:var(--apply-container-background-outline-h5);border-radius:8px;padding:0}.apply-control-container .apply-list-container-h5 .apply-footer .deny-all{padding:8px}.apply-control-container .apply-list-container-h5 .button{border-radius:2px;padding:4px 15px;font-family:PingFangSC-Regular;font-weight:400;font-size:14px;color:var(--apply-list-container-color);text-align:center;cursor:pointer}.apply-control-container .apply-list-container-h5 .primary{background-image:linear-gradient(235deg,#1883ff,#0062f5);border-radius:8px;color:var(--apply-container-primary);margin-right:5px}.apply-control-container .apply-list-container-h5 .outline{border-radius:8px;background:var(--apply-container-background-outline-h5);border:none;color:var(--apply-container-outline-h5)}.apply-control-container{position:relative}.apply-control-container .attention{background:rgba(19,124,253,.96);box-shadow:0 4px 16px 0 rgba(47,48,164,.1);position:absolute;border-radius:4px;display:flex;align-items:center;justify-content:space-between;top:-6px;left:50%;transform:translate(-50%,-100%)}.apply-control-container .attention:after{content:"";display:block;border:4px solid transparent;border-top-color:rgba(19,124,253,.96);position:absolute;top:100%;left:50%;transform:translateX(-50%)}.apply-control-container .member-attention{padding:7px 12px}.apply-control-container .member-attention .info{width:210px;height:20px;font-weight:400;font-size:14px;color:#fff;line-height:20px}.apply-control-container .member-attention .close{cursor:pointer}.button-container-mobile{width:100%;display:flex}.button-container-mobile .agree{color:var(--close-cancel-h5)}.button-container-mobile .agree,.button-container-mobile .cancel{padding:14px;width:50%;display:flex;align-items:center;justify-content:center;border-top:1px solid var(--choose-type)}.button-container-mobile .cancel{color:var(--apply-container-outline);border-right:1px solid var(--choose-type)}.button-container-PC .cancel{padding:5px 20px;background:var(--create-room-option);border-radius:2px;width:auto;display:initial;color:var(--color-font);border:1px solid var(--choose-type)}.button-container-PC .agree{padding:5px 20px;background:#006eff;color:#fff;margin-left:14px;border-radius:2px;width:auto;display:initial}span[data-v-eb2b478c]{font-weight:500;font-size:12px;line-height:17px;padding-right:5px}.invite-container-main[data-v-eb2b478c]{width:100%;background:var(--popup-background-color-h5);border-radius:15px 15px 0 0;position:fixed;bottom:0;display:flex;flex-direction:column;animation-duration:.1s;animation-name:popup-eb2b478c;padding-bottom:4vh}@keyframes popup-eb2b478c{0%{height:0}to{height:30%}}.invite-container-main .invite-title-main[data-v-eb2b478c]{display:flex;flex-direction:row;font-family:PingFang SC;font-style:normal;font-weight:500;font-size:20px;line-height:24px;color:var(--popup-title-color-h5);padding:20px;align-items:center}.invite-container-main .invite-content-main[data-v-eb2b478c]{width:90%;height:13%;display:flex;flex-direction:row;padding:0 0 0 25px;align-items:center;margin-bottom:10px}.invite-container-main .invite-title[data-v-eb2b478c]{font-family:PingFang SC;font-style:normal;font-weight:400;font-size:14px;line-height:20px;color:var(--popup-title-color-h5);white-space:nowrap;width:23%}.invite-container-main .invite-content[data-v-eb2b478c]{color:var(--popup-content-color-h5);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:64%}.invite-container-main .invite-bottom[data-v-eb2b478c]{width:90%;font-family:PingFang SC;font-style:normal;font-weight:400;font-size:12px;line-height:17px;text-align:center;color:var(--popup-title-color-h5);padding-left:40px}.invite-container-main .copy[data-v-eb2b478c]{width:14px;height:14px;margin-left:30px}.cancel[data-v-eb2b478c]{flex:1;text-align:end;padding-right:30px;font-weight:400;font-size:16px}.invite-container[data-v-76a9ae2d]{padding:20px 32px}.invite-notice[data-v-76a9ae2d]{font-size:14px;width:100%;height:22px;line-height:22px;opacity:.8;font-weight:400;color:var(--input-font-color);font-family:PingFangSC-Regular}.invite-content[data-v-76a9ae2d]{width:100%;margin-top:20px}.invite-content .invite-item[data-v-76a9ae2d]:not(:first-child){margin-top:20px}.invite-content .invite-item .invite-title[data-v-76a9ae2d]{font-size:14px;color:var(--more-notice-color);width:100%;opacity:.8}.invite-content .invite-item .input-area[data-v-76a9ae2d]{margin-top:10px;position:relative}.invite-content .invite-item .input-area .input[data-v-76a9ae2d]{-moz-appearance:none;appearance:none;-webkit-appearance:none;background-color:var(--input-bg-color);background-image:none;border-radius:2px;border:1px solid var(--input-border-color);box-sizing:border-box;color:var(--input-font-color);opacity:.8;display:inline-block;font-size:14px;height:32px;line-height:32px;outline:none;padding:0 40px 0 10px;transition:border-color .2s cubic-bezier(.645,.045,.355,1);width:416px}.invite-content .invite-item .input-area .copy[data-v-76a9ae2d]{width:14px;height:14px;position:absolute;top:50%;right:10px;transform:translateY(-50%);cursor:pointer}.invite-container[data-v-78681d3c]{position:fixed;left:0;top:0;bottom:0;width:100vw;height:auto;box-sizing:border-box;background-color:var(--log-out-mobile)}span[data-v-76fbca8c]{font-weight:500;font-size:12px;line-height:17px;padding-right:5px}.contact-container-main[data-v-76fbca8c]{width:100%;background:var(--popup-background-color-h5);border-radius:15px 15px 0 0;position:fixed;bottom:0;display:flex;flex-direction:column;animation-duration:.1s;animation-name:popup-76fbca8c;padding-bottom:4vh}@keyframes popup-76fbca8c{0%{height:0}to{height:30%}}.contact-container-main .contact-title-main[data-v-76fbca8c]{display:flex;flex-direction:row;font-family:PingFang SC;font-style:normal;font-weight:500;font-size:20px;line-height:24px;color:var(--popup-title-color-h5);padding:20px;align-items:center}.contact-container-main .contact-content-main[data-v-76fbca8c]{width:90%;height:15%;display:flex;flex-direction:row;padding:0 0 0 25px;align-items:center;margin-bottom:10px}.contact-container-main .contact-content[data-v-76fbca8c],.contact-container-main .contact-title[data-v-76fbca8c]{font-family:PingFang SC;font-style:normal;font-weight:400;font-size:14px;line-height:20px;color:var(--popup-title-color-h5);white-space:nowrap;width:28%}.contact-container-main .contact-content[data-v-76fbca8c]{color:var(--popup-content-color-h5);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:62%}.contact-container-main .contact-bottom[data-v-76fbca8c]{width:90%;font-family:PingFang SC;font-style:normal;font-weight:400;font-size:12px;line-height:17px;text-align:center;color:var(--popup-title-color-h5);padding-left:40px}.contact-container-main .copy[data-v-76fbca8c]{width:14px;height:14px;margin-left:30px}.cancel[data-v-76fbca8c]{flex:1;text-align:end;padding-right:30px;font-weight:400;font-size:16px}.more-container[data-v-4d3067ac]{padding:20px 32px}.more-notice[data-v-4d3067ac]{font-size:14px;width:100%;height:22px;line-height:22px;font-weight:400;color:var(--more-notice-color);opacity:.8;font-family:PingFangSC-Regular}.more-content[data-v-4d3067ac]{width:100%;margin-top:20px}.more-content .more-item[data-v-4d3067ac]:not(:first-child){margin-top:20px}.more-content .more-item .more-title[data-v-4d3067ac]{font-size:14px;color:var(--more-notice-color);width:100%;opacity:.8}.more-content .more-item .input-area[data-v-4d3067ac]{margin-top:10px;position:relative}.more-content .more-item .input-area .input[data-v-4d3067ac]{-moz-appearance:none;appearance:none;-webkit-appearance:none;background-color:var(--input-bg-color);background-image:none;border-radius:2px;border:1px solid var(--input-border-color);box-sizing:border-box;color:var(--input-font-color);opacity:.8;display:inline-block;font-size:14px;height:32px;line-height:32px;outline:none;padding:0 40px 0 10px;transition:border-color .2s cubic-bezier(.645,.045,.355,1);width:416px}.more-content .more-item .input-area .copy[data-v-4d3067ac]{width:14px;height:14px;position:absolute;top:50%;right:10px;transform:translateY(-50%);cursor:pointer}.contact-container[data-v-251c1f14]{position:fixed;left:0;top:0;bottom:0;width:100vw;height:auto;box-sizing:border-box;background-color:var(--log-out-mobile);z-index:11}.show-more-content[data-v-7814bc4f]{position:absolute;left:5%;bottom:15px;width:90%;height:20vh;background:var(--log-out-cancel);border-radius:13px;padding:10px;animation-duration:.1s;animation-name:popup-7814bc4f}@keyframes popup-7814bc4f{0%{bottom:0}to{bottom:15px}}.control-compent[data-v-7814bc4f]{display:flex}.close[data-v-7814bc4f]{background:var(--close-cancel-h5);border-radius:8px;display:flex;align-items:center;justify-content:center;padding:10px;color:var(--mute-button-color-h5)}.close i[data-v-7814bc4f]{font-family:PingFang SC;font-style:normal;font-weight:400;line-height:24px;text-align:center}.footer-container[data-v-6f1ee0d6]{position:absolute;bottom:0;width:100%;height:100%}.left-container[data-v-6f1ee0d6]{width:100%;display:flex;justify-content:space-evenly}.top-container[data-v-6f1ee0d6]{position:fixed;top:0}.custom-element-class[data-v-5d38a258]{--el-color-primary:#006eff;--el-fill-color-light:var(--el-fill-color-light-select);--el-fill-color-blank:var(--user-extra-info-color);--el-border-color:var(--el-border-color-select);--el-border-color-light:var(--el-border-color-light-select);--el-border-color-lighter:var(--el-border-lighter);--el-bg-color:var(--el-bg-color-select,#fff);--el-bg-color-page:#fff;--el-bg-color-overlay:var(--el-bg-color-overlay-select);--el-text-color-primary:var(--el-text-color-primary-select);--el-text-color-regular:var(--el-text-color-regular-select);--el-slider-height:4px;--el-slider-button-size:12px;--el-dialog-bg-color:var(--el-dialog-bg-color-select);--el-dialog-box-shadow:0 1px 10px 0 rgba(0,0,0,.3);--el-disabled-bg-color:var(--el-disabled-background);--el-disabled-border-color:var(--el-disabled-border);--el-switch-on-color:red}.screen-share-control-container[data-v-5d38a258]{position:relative}.stop-share-region[data-v-5d38a258]{width:131px;height:48px;background:var(--stop-share-region-bg-color);border-radius:4px;position:absolute;top:-58px;left:50%;transform:translateX(-50%);display:flex;justify-content:center;align-items:center;cursor:pointer;font-size:14px;color:var(--color-font)}.stop-share-icon[data-v-5d38a258]{width:24px;height:24px;margin-right:10px}.setting-dialog[data-v-2c9e5284]{width:660px;height:574px;position:absolute;display:flex}.setting-dialog .dialog-tabs[data-v-2c9e5284]{width:194px;height:574px;background-color:#1d2029}.setting-dialog .dialog-content[data-v-2c9e5284]{flex-grow:1}.footer-container[data-v-fcf4ace8]{width:100%;height:100%;padding-left:9px;padding-right:24px;display:flex;justify-content:space-between}.footer-container .left-container[data-v-fcf4ace8]{height:100%;display:flex;align-items:center}.footer-container .left-container .left-container-item[data-v-fcf4ace8]:not(:first-child){margin-left:1rem}.footer-container .center-container[data-v-fcf4ace8]{height:100%;display:flex;align-items:center;position:relative;margin:0 auto}.footer-container .right-container[data-v-fcf4ace8]{height:100%;display:flex;align-items:center}.text-img[data-v-467c6786]{width:20px;height:20px;vertical-align:middle}.text-box[data-v-467c6786]{line-height:20px;vertical-align:middle}.message-list-container[data-v-3ee0bdff]{height:calc(100% - 188px);padding:10px 23px 10px 32px;background-color:var(--message-list-color);overflow:auto}.message-list-container[data-v-3ee0bdff]::-webkit-scrollbar{display:none}.message-list-container .message-top[data-v-3ee0bdff]{display:flex;justify-content:center}.message-list-container .message-item[data-v-3ee0bdff]{margin-bottom:20px;word-break:break-all;display:flex;flex-direction:column;align-items:flex-start}.message-list-container .message-item[data-v-3ee0bdff]:last-of-type{margin-bottom:0}.message-list-container .message-item.is-me[data-v-3ee0bdff]{align-items:end}.message-list-container .message-item.is-me .message-body[data-v-3ee0bdff]{background-color:var(--message-color);min-width:24px}.message-list-container .message-item .message-header[data-v-3ee0bdff]{font-size:14px;color:#7c85a6;margin-bottom:10px;max-width:180px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.message-list-container .message-item .message-body[data-v-3ee0bdff]{background-color:#1883ff;display:inline-block;padding:7px;font-weight:400;font-size:14px;color:#fff}.message-list-container .message-bottom[data-v-3ee0bdff]{width:0;height:0}.message-list-container-h5[data-v-3ee0bdff]{padding:10px 23px 10px 32px;background-color:var(--message-list-color-h5);height:100%;width:100%;overflow:scroll}.message-list-container-h5[data-v-3ee0bdff]::-webkit-scrollbar{display:none}.message-list-container-h5 .message-top[data-v-3ee0bdff]{display:flex;justify-content:center}.message-list-container-h5 .message-list[data-v-3ee0bdff]{overflow-y:scroll}.message-list-container-h5 .message-list .message-item[data-v-3ee0bdff]{margin-bottom:20px;word-break:break-all;display:flex;flex-direction:column;align-items:flex-start}.message-list-container-h5 .message-list .message-item[data-v-3ee0bdff]:last-of-type{margin-bottom:0}.message-list-container-h5 .message-list .message-item.is-me[data-v-3ee0bdff]{align-items:end}.message-list-container-h5 .message-list .message-item.is-me .message-body[data-v-3ee0bdff]{background-color:#4791ff;min-width:24px;border-radius:8px;display:inline-block;padding:7px;font-weight:400;font-size:14px;color:#fff}.message-list-container-h5 .message-list .message-item .message-header[data-v-3ee0bdff]{font-family:PingFang SC;font-style:normal;font-weight:500;font-size:10px;color:#ff7200;line-height:14px;margin-bottom:10px;max-width:180px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.message-list-container-h5 .message-list .message-item .message-body[data-v-3ee0bdff]{background-color:var(--message-body-h5);display:inline-block;padding:7px;font-weight:400;font-size:14px;color:#fff;border-radius:8px}.message-list-container-h5 .message-bottom[data-v-3ee0bdff]{width:0;height:0}.emoji-icon[data-v-78a2609f]{cursor:pointer}.emoji-list-h5[data-v-78a2609f],.emoji-list[data-v-78a2609f]{width:404px;height:214px;flex:1;display:flex;flex-wrap:wrap;overflow-y:auto;position:absolute;bottom:50px;background-color:var(--emoji-background-color);padding:12px;border-radius:4px;border:1px solid #2e323d}.emoji-list-h5[data-v-78a2609f]::-webkit-scrollbar,.emoji-list[data-v-78a2609f]::-webkit-scrollbar{display:none}.emoji-list .emoji-item[data-v-78a2609f],.emoji-list-h5 .emoji-item[data-v-78a2609f]{padding:2px}.emoji-list .emoji-item[data-v-78a2609f]:hover,.emoji-list-h5 .emoji-item[data-v-78a2609f]:hover{cursor:pointer}.emoji-list img[data-v-78a2609f],.emoji-list-h5 img[data-v-78a2609f]{width:30px}.emoji-list-h5[data-v-78a2609f]{width:298px;height:148px;position:fixed;bottom:77px;left:30px}.chat-editor[data-v-4ae1f1c7]{width:100vw;display:flex;justify-content:center;align-items:center;padding-bottom:5px}.chat-editor .input-content[data-v-4ae1f1c7]{width:90%;color:#676c80;height:34px;background:var(--chat-editor-input-color-h5);border:none;box-sizing:border-box;font-family:PingFang SC;font-style:normal;font-weight:450;font-size:16px;line-height:4vh;caret-color:var(--caret-color);border-radius:8px;resize:none}.chat-editor .input-content .chat-emoji[data-v-4ae1f1c7],.chat-editor .input-content[data-v-4ae1f1c7]{display:flex;align-items:center;justify-content:center}.chat-editor .input-content .content-bottom-input[data-v-4ae1f1c7]{color:#676c80;width:84%;height:34px;background:var(--chat-editor-input-color-h5);border:none;box-sizing:border-box;font-family:PingFang SC;font-style:normal;font-weight:450;font-size:16px;line-height:4vh;caret-color:var(--caret-color);border-radius:8px;resize:none;padding-left:10px}.chat-editor .input-content .content-bottom-input[data-v-4ae1f1c7] ::-moz-placeholder{font-family:PingFang SC;font-style:normal;font-weight:400;font-size:16px;line-height:18px;color:#676c80}.chat-editor .input-content .content-bottom-input[data-v-4ae1f1c7] ::placeholder{font-family:PingFang SC;font-style:normal;font-weight:400;font-size:16px;line-height:18px;color:#676c80}.chat-editor .input-content .content-bottom-input[data-v-4ae1f1c7]:focus-visible{outline:none}.chat-editor[data-v-6cdfd1ed]{height:188px;background:var(--chat-editor-bg-color);box-sizing:border-box}.chat-editor textarea[data-v-6cdfd1ed]{height:138px;color:var(--textarea-color);width:100%;background:var(--chat-editor-bg-color);border:none;box-sizing:border-box;padding:12px 14px;caret-color:var(--caret-color);resize:none}.chat-editor textarea[data-v-6cdfd1ed]:focus-visible{outline:none}.chat-editor .send-btn[data-v-6cdfd1ed]{padding:6px 18px;background:var(--send-btn-color);border-radius:2px;font-size:14px;color:var(--send-btn)}.chat-editor .send-btn[data-v-6cdfd1ed]:hover{cursor:pointer;background:#006eff;color:#fff}.chat-editor .send-btn.active[data-v-6cdfd1ed]{background:#006eff;color:#fff}.chat-editor .chat-editor-toolbar[data-v-6cdfd1ed]{height:44px;padding:0 14px 12px;display:flex;flex-direction:row;align-items:center;justify-content:space-between}.chat-container[data-v-6588445b]{position:relative;height:100%}.chat-container-h5[data-v-6588445b]{height:100%}.member-info-mobile[data-v-0325ed23]{display:flex;align-items:center;width:80vw;justify-content:space-between}.member-info[data-v-0325ed23]{display:contents}.member-basic-info[data-v-0325ed23]{display:flex;flex-direction:row;align-items:center}.member-basic-info .avatar-url[data-v-0325ed23]{width:48px;height:48px;display:flex;border-radius:50%;align-items:center}.member-basic-info .user-name[data-v-0325ed23]{margin-left:9px;font-size:14px;color:var(--input-font-color);line-height:22px;max-width:110px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.member-basic-info .user-extra-info[data-v-0325ed23]{line-height:18px;font-size:12px;margin-left:13px;padding:2px;color:var(--user-extra-info-color-h5);background:var(--user-extra-info-bg-color-h5);border-radius:8px;padding:0 6px}.member-av-state[data-v-0325ed23]{padding-left:80px}.member-av-state .video-icon[data-v-0325ed23]{margin-left:5px}.member-control-container[data-v-d259161c]{width:100%;position:fixed;bottom:0;left:0;z-index:2;padding:22px 16px;background:var(--member-control-background-color-h5);border-radius:15px 15px 0 0;display:flex;flex-direction:column!important;animation-duration:.1s;animation-name:popup-d259161c}@keyframes popup-d259161c{0%{height:0}to{height:30%}}.member-control-container .member-title[data-v-d259161c]{display:flex;flex-direction:row;width:100%;margin-bottom:10px;align-items:center}.member-control-container .member-title .avatar-url[data-v-d259161c]{width:30px;height:30px;border-radius:50%}.member-control-container .member-title .member-title-content[data-v-d259161c]{font-weight:500;font-size:16px;line-height:22px;color:var(--member-title-content-h5);margin-left:10px}.member-control-container .user-operate-item[data-v-d259161c]{width:100%;display:flex;margin-top:10px;align-items:center}.member-control-container .user-operate-item .control-title[data-v-d259161c]{margin-left:10px}.cancel[data-v-d259161c]{flex:1;text-align:end;padding-right:30px}.member-control-container[data-v-28dfca21]{display:flex;flex-direction:row}.member-control-container .more-btn[data-v-28dfca21],.member-control-container .mute-btn[data-v-28dfca21]{height:32px;border-radius:2px;font-size:14px;color:#fff;line-height:32px;padding:0 20px}.member-control-container .mute-btn[data-v-28dfca21]{background-image:linear-gradient(235deg,#1883ff,#0062f5)}.member-control-container .more-container[data-v-28dfca21]{position:relative}.member-control-container .more-container .more-btn[data-v-28dfca21]{display:flex;flex-direction:row;align-items:center;background:var(--more-btn-background);border:1px solid #adb6cc;margin-left:12px}.member-control-container .more-container .more-btn .more-icon[data-v-28dfca21]{margin-left:4px;width:20px;height:20px}.member-control-container .more-container .user-operate-list[data-v-28dfca21]{position:absolute;padding:4px 0;top:calc(100% + 10px);right:0;min-width:140px;background:var(--user-operate-list);border-radius:4px;box-shadow:0 1px 10px 0 rgba(0,0,0,.3)}.member-control-container .more-container .user-operate-list .user-operate-item[data-v-28dfca21]{cursor:pointer;padding:0 20px;text-align:center;font-size:14px;color:var(--user-operate-item);height:40px;line-height:40px;white-space:nowrap}.member-control-container .more-container .dropdownUp[data-v-28dfca21]{transform:translateY(-140%)}.member-item-container[data-v-51bdd126]{display:flex;flex-direction:row;align-items:center;height:69px;padding:0 32px;justify-content:space-between}.member-item-container[data-v-51bdd126]:hover{cursor:pointer;background:var(--member-item-container-hover-bg-color)}.member-item-container[data-v-2d674c35]{display:flex;flex-direction:row;align-items:center;height:69px;justify-content:space-between;padding:0 32px}.member-item-container[data-v-2d674c35]:hover{cursor:pointer;background:var(--member-item-container-hover-bg-color)}.manage-member-container[data-v-746e3a0c]{position:relative;height:100%;display:flex;flex-direction:column}.manage-member-container .apply-on-stage-info[data-v-746e3a0c]{width:100%;height:6vh;background-image:linear-gradient(235deg,#1883ff,#0062f5);padding:9px 20px 10px 32px;display:flex;justify-content:space-between;align-items:center;margin:10px 0 10px 0}.manage-member-container .apply-on-stage-info .apply-info[data-v-746e3a0c]{font-weight:400;font-size:14px;color:#fff}.manage-member-container .apply-on-stage-info .button[data-v-746e3a0c]{width:82px;height:32px;background:hsla(0,0%,100%,.1);border:1px solid #fff;border-radius:2px;text-align:center;line-height:32px;font-weight:400;font-size:14px;color:#fff;cursor:pointer}.manage-member-container .searching-container input[type=text][data-v-746e3a0c]{background-image:url(../img/search.a8fd20e6.svg);background-repeat:no-repeat;background-position:10px;padding-left:35px}.manage-member-container .searching-container .searching-input[data-v-746e3a0c]{width:93%;background:#292d38;border-radius:8px;height:34px;border-style:none;margin-left:16px;font-family:PingFang SC;font-style:normal;font-weight:450;font-size:16px;line-height:18px;color:#676c80;caret-color:var(--caret-color)}.manage-member-container .searching-container .searching-input[data-v-746e3a0c] ::-moz-placeholder{font-family:PingFang SC;font-style:normal;font-weight:400;font-size:16px;line-height:18px;color:#676c80}.manage-member-container .searching-container .searching-input[data-v-746e3a0c] ::placeholder{font-family:PingFang SC;font-style:normal;font-weight:400;font-size:16px;line-height:18px;color:#676c80}.manage-member-container .searching-container .searching-input[data-v-746e3a0c]:focus-visible{outline:none}.manage-member-container .setting-item[data-v-746e3a0c]{display:flex;justify-content:space-between;padding:10px 32px}.manage-member-container .setting-item .setting-icon[data-v-746e3a0c]{width:32px;height:32px}.manage-member-container .setting-item .item-left-section[data-v-746e3a0c]{display:flex;align-items:center}.manage-member-container .setting-item .item-left-section .setting-name[data-v-746e3a0c]{font-size:14px;margin-left:8px;color:var(--setting-name-color)}.manage-member-container .divide-line[data-v-746e3a0c]{height:1px;width:100%;background:var(--divide-line-color);box-shadow:0 -1px 0 0 var(--divide-line)}.manage-member-container .member-list-container[data-v-746e3a0c]{flex:1;display:flex;flex-direction:column;min-height:0}.manage-member-container .member-list-container .member-count[data-v-746e3a0c]{margin-left:5px}.manage-member-container .member-list-container[data-v-746e3a0c]::-webkit-scrollbar{display:none}.manage-member-container .member-list-container .member-list-header[data-v-746e3a0c]{padding:0 32px;margin-bottom:8px;font-weight:500;font-size:14px;color:var(--input-font-color);line-height:24px}.manage-member-container .member-list-container .member-list-content[data-v-746e3a0c]{flex:1;overflow-y:scroll}.manage-member-container .manage-member-bottom[data-v-746e3a0c]{width:100%;display:flex;justify-content:space-around;z-index:1}.manage-member-container .manage-member-bottom .manage-member-button[data-v-746e3a0c]{border-radius:10px;padding:13px 24px;background-color:var(--manage-member-button-h5);font-weight:400;color:var(--mute-button-color-h5)}.manage-member-container .manage-member-bottom .lift-all[data-v-746e3a0c]{color:var(--mute-all-h5)}.manage-member-container .popup-dialog-audio[data-v-746e3a0c],.manage-member-container .popup-dialog-video[data-v-746e3a0c]{width:64vw;background:var(--popup-mute-background-color-h5);border-radius:8px;position:absolute;bottom:46vh;left:18vw;white-space:nowrap}.manage-member-container .popup-dialog-audio .popup-dialog-audio-title[data-v-746e3a0c],.manage-member-container .popup-dialog-video .popup-dialog-audio-title[data-v-746e3a0c]{font-family:PingFang SC;font-style:normal;font-weight:400;font-size:16px;line-height:22px;text-align:center;color:#2b2e38;white-space:normal;padding:20px}.manage-member-container .popup-dialog-audio .popup-button[data-v-746e3a0c],.manage-member-container .popup-dialog-video .popup-button[data-v-746e3a0c]{display:flex;justify-content:space-evenly;padding:10px}.manage-member-container .popup-dialog-audio .popup-button .popup-button-cancel[data-v-746e3a0c],.manage-member-container .popup-dialog-video .popup-button .popup-button-cancel[data-v-746e3a0c]{padding:4px 16px;background-color:#fff;color:#646366;border:1px solid #dcdfe6;border-radius:4px}.manage-member-container .popup-dialog-audio .popup-button .popup-button-mute[data-v-746e3a0c],.manage-member-container .popup-dialog-video .popup-button .popup-button-mute[data-v-746e3a0c]{padding:4px 16px;background-color:#006eff;color:#fff;border:1px solid #dcdfe6;border-radius:4px}.button-container-mobile[data-v-746e3a0c]{width:100%;display:flex}.button-container-mobile .agree[data-v-746e3a0c]{color:#006eff}.button-container-mobile .agree[data-v-746e3a0c],.button-container-mobile .cancel[data-v-746e3a0c]{padding:14px;width:50%;display:flex;align-items:center;justify-content:center;border-top:1px solid #f2f2f2}.button-container-mobile .cancel[data-v-746e3a0c]{color:#2b2e38;border-right:1px solid #f2f2f2}.manage-member-container[data-v-74166061]{position:relative;height:100%;display:flex;flex-direction:column}.manage-member-container .apply-on-stage-info[data-v-74166061]{width:100%;height:60px;background-image:linear-gradient(235deg,#1883ff,#0062f5);padding:0 20px 0 32px;display:flex;justify-content:space-between;align-items:center}.manage-member-container .apply-on-stage-info .apply-info[data-v-74166061]{font-weight:400;font-size:14px;color:#fff}.manage-member-container .apply-on-stage-info .button[data-v-74166061]{width:82px;height:32px;background:hsla(0,0%,100%,.1);border:1px solid #fff;border-radius:2px;text-align:center;line-height:32px;font-weight:400;font-size:14px;color:#fff;cursor:pointer}.manage-member-container .setting-item[data-v-74166061]{display:flex;justify-content:space-between;padding:10px 32px}.manage-member-container .setting-item .setting-icon[data-v-74166061]{width:32px;height:32px}.manage-member-container .setting-item .item-left-section[data-v-74166061]{display:flex;align-items:center}.manage-member-container .setting-item .item-left-section .setting-name[data-v-74166061]{font-size:14px;margin-left:8px;color:var(--setting-name-color)}.manage-member-container .divide-line[data-v-74166061]{height:1px;width:100%;background:var(--el-drawer-divide);box-shadow:0 -1px 0 0 var(--divide-line-color)}.manage-member-container .member-list-container[data-v-74166061]{overflow-y:scroll;padding:10px 0;flex:1;display:flex;flex-direction:column}.manage-member-container .member-list-container .member-count[data-v-74166061]{margin-left:5px}.manage-member-container .member-list-container[data-v-74166061]::-webkit-scrollbar{display:none}.manage-member-container .member-list-container .member-list-header[data-v-74166061]{padding:0 32px;font-weight:500;font-size:14px;color:var(--input-font-color);line-height:24px}.manage-member-container .member-list-container .member-list-content[data-v-74166061]{margin-top:15px;flex:1;overflow-y:scroll}.sidebar-container-mobile[data-v-40f5a35a]{height:100%;position:fixed;top:0;right:0;z-index:101}.custom-element-class{--el-color-primary:#006eff;--el-fill-color-light:var(--el-fill-color-light-select);--el-fill-color-blank:var(--user-extra-info-color);--el-border-color:var(--el-border-color-select);--el-border-color-light:var(--el-border-color-light-select);--el-border-color-lighter:var(--el-border-lighter);--el-bg-color:var(--el-bg-color-select,#fff);--el-bg-color-page:#fff;--el-bg-color-overlay:var(--el-bg-color-overlay-select);--el-text-color-primary:var(--el-text-color-primary-select);--el-text-color-regular:var(--el-text-color-regular-select);--el-slider-height:4px;--el-slider-button-size:12px;--el-dialog-bg-color:var(--el-dialog-bg-color-select);--el-dialog-box-shadow:0 1px 10px 0 rgba(0,0,0,.3);--el-disabled-bg-color:var(--el-disabled-background);--el-disabled-border-color:var(--el-disabled-border);--el-switch-on-color:red}.sidebar-container>div{inset:inherit!important;width:480px!important;right:0!important;top:0!important;height:100%;position:absolute!important}.sidebar-container .el-drawer__header{height:88px;border-bottom:1px solid var(--el-drawer-divide);box-sizing:border-box;margin-bottom:0;font-size:20px;color:var(--el-drawer-header-color);font-weight:500;padding:32px 22px 32px 32px}.sidebar-container .el-drawer__body{padding:0}.user-stream-container[data-v-9adfd868]{position:relative;width:100%;height:100%;border:2px solid transparent;overflow:hidden;border-radius:10px;-webkit-transform:rotate(0deg)}.user-stream-container.border[data-v-9adfd868]{border:2px solid #37e858}.user-stream-container .stream-region[data-v-9adfd868]{width:100%;height:100%;overflow:hidden;background-color:#000;position:absolute;top:0;left:0}.user-stream-container .center-user-info-container[data-v-9adfd868]{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;justify-content:center;align-items:center;background-color:var(--center-user-info-container-bg-color)}.user-stream-container .center-user-info-container .avatar-region[data-v-9adfd868]{width:130px;height:130px;border-radius:50%}.user-stream-container .center-user-info-container .user-info[data-v-9adfd868]{width:130px;text-align:center}.user-stream-container .center-user-info-container .user-info .avatar-region[data-v-9adfd868]{width:130px;height:130px;border-radius:50%}.user-stream-container .center-user-info-container .user-info .user-gender-name svg[data-v-9adfd868]{vertical-align:bottom}.user-stream-container .center-user-info-container .user-info .user-gender-name .user-name[data-v-9adfd868]{display:inline-block;margin-left:6px;font-size:14px;font-weight:400;max-width:100px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;vertical-align:bottom}.user-stream-container .corner-user-info-container[data-v-9adfd868]{position:absolute;bottom:4px;left:0;min-width:118px;max-width:100%;overflow:hidden;height:30px;display:flex;background:rgba(0,0,0,.6);color:#fff;align-items:center;align-content:center;font-size:14px}.user-stream-container .corner-user-info-container .user-name[data-v-9adfd868]{margin-left:8px;max-width:60px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;padding-right:5px}.user-stream-container .corner-user-info-container .master-icon[data-v-9adfd868]{margin-left:0;width:25px;height:25px;background-size:cover}.user-stream-container .corner-user-info-container .screen-icon[data-v-9adfd868]{transform:scale(.8);background-size:cover}.user-stream-container .corner-user-info-container .audio-icon[data-v-9adfd868]{max-width:26px;max-height:35px}@keyframes loading-rotate-693d2878{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.user-stream-container[data-v-693d2878]{position:relative}.user-stream-container .stream-region[data-v-693d2878]{width:100%;height:100%;overflow:hidden;background-color:#000}.user-stream-container .loading-region[data-v-693d2878]{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.user-stream-container .loading-region .loading[data-v-693d2878]{animation:loading-rotate-693d2878 .7s linear infinite}.user-stream-container .corner-user-info-container[data-v-693d2878]{position:absolute;bottom:4px;left:0;min-width:118px;max-width:100%;overflow:hidden;height:30px;display:flex;background:rgba(0,0,0,.6);color:#fff;align-items:center;align-content:center;padding:0 10px 0 0;font-size:14px}.user-stream-container .corner-user-info-container>[data-v-693d2878]{margin-left:8px;max-width:160px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.user-stream-container .corner-user-info-container .master-icon[data-v-693d2878]{margin-left:0;width:30px;height:30px;background-size:cover}.user-stream-container .corner-user-info-container .screen-icon[data-v-693d2878]{transform:scale(.8);background-size:cover}.user-stream-container .center-user-info-container[data-v-693d2878]{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;justify-content:center;align-items:center;background-color:var(--center-user-info-container-bg-color)}.user-stream-container .center-user-info-container .avatar-region[data-v-693d2878]{width:130px;height:130px;border-radius:50%}.user-stream-container .center-user-info-container .user-info[data-v-693d2878]{width:130px;text-align:center}.user-stream-container .center-user-info-container .user-info .avatar-region[data-v-693d2878]{width:130px;height:130px;border-radius:50%}.user-stream-container .center-user-info-container .user-info .user-gender-name svg[data-v-693d2878]{vertical-align:bottom}.user-stream-container .center-user-info-container .user-info .user-gender-name .user-name[data-v-693d2878]{display:inline-block;margin-left:6px;font-size:14px;font-weight:400;max-width:100px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;vertical-align:bottom}.stream-container[data-v-3424abc2]{width:100%;height:100%;position:relative}.stream-container-flatten[data-v-3424abc2]{width:100%;height:100%;background-color:var(--stream-container-flatten-bg-color);overflow:hidden;display:flex;flex-wrap:wrap;justify-content:flex-start;align-items:center;align-content:center}.stream-container-flatten .stream-list-container[data-v-3424abc2]{width:100%;padding-top:150%;height:0;position:relative}.stream-container-flatten .stream-list-container.multi-stream-container[data-v-3424abc2]{padding-top:150%;height:0}.stream-container-flatten .stream-list-container.single-stream-container[data-v-3424abc2]{height:100%}.stream-container-flatten .stream-list[data-v-3424abc2]{width:100%;height:100%;position:absolute;top:0;left:0;display:flex;flex-wrap:wrap;justify-content:flex-start;align-items:center;align-content:center}.stream-container-flatten .stream-list.not-first-page[data-v-3424abc2]{align-content:flex-start}.stream-container-flatten .stream-list .single-stream[data-v-3424abc2]{width:100%;height:100%;padding:1px;border-radius:10px}.stream-container-flatten .stream-list .multi-stream[data-v-3424abc2]{width:50%;padding-top:50%;height:0;border-radius:10px;overflow:hidden;position:relative}.stream-container-large-small[data-v-3424abc2]{width:100%;height:100%;background-color:var(--stream-container-flatten-bg-color);overflow:hidden}.stream-container-large-small .enlarged-stream-container[data-v-3424abc2]{width:100%;height:100%}.stream-container-large-small .stream-list-container[data-v-3424abc2]{width:50%;padding-top:50%;position:absolute;top:0;right:0}.stream-container-large-small .stream-list-container .stream-list[data-v-3424abc2]{width:100%;height:100%;position:absolute;top:0;left:0}.stream-container-large-small .stream-list-container .stream-list .multi-stream[data-v-3424abc2],.stream-container-large-small .stream-list-container .stream-list .single-stream[data-v-3424abc2]{width:100%;height:100%;padding:1px;border-radius:10px}.icon-control[data-v-3424abc2]{background-color:var(--layout-item);cursor:pointer}.icon-control[data-v-3424abc2],.swipe[data-v-3424abc2]{position:absolute;display:flex;justify-content:center;align-items:center}.swipe[data-v-3424abc2]{width:100%;bottom:100px}.swipe-dots[data-v-3424abc2]{opacity:.6}.swipe-current-dots[data-v-3424abc2],.swipe-dots[data-v-3424abc2]{width:8px;height:8px;background:#fff;border-radius:20px;margin:5px}.swipe-current-dots[data-v-3424abc2]{opacity:1}.stream-container-flatten[data-v-35d1e596]{width:100%;height:100%;background-color:var(--stream-container-flatten-bg-color);overflow:hidden}.stream-container-flatten .stream-list-container[data-v-35d1e596]{width:100%;height:100%}.stream-container-flatten .stream-list[data-v-35d1e596]{width:100%;height:100%;display:flex;flex-wrap:wrap;justify-content:center;align-items:center;align-content:center}.stream-container-flatten .stream-list .single-stream[data-v-35d1e596]{margin:4px}.icon-control[data-v-35d1e596]{background-color:var(--layout-item);position:absolute;cursor:pointer;display:flex;justify-content:center;align-items:center}.arrow-up[data-v-35d1e596]{top:175px}.arrow-down[data-v-35d1e596],.arrow-up[data-v-35d1e596]{width:52px;height:20px;position:fixed;left:50%;transform:translate(-50%);border-radius:0 0 4px 4px}.arrow-down[data-v-35d1e596]{top:48px}.arrow-down [data-v-35d1e596]{transform:rotate(180deg)}.arrow-right[data-v-35d1e596]{width:20px;height:52px;position:fixed;right:250px;transform:translate(-50%);top:calc(50% - 16px);border-radius:4px 0 0 4px}.arrow-right [data-v-35d1e596]{transform:rotate(90deg)}.arrow-left[data-v-35d1e596]{width:20px;height:52px;position:fixed;right:-10px;transform:translate(-50%);top:calc(50% - 16px);border-radius:4px 0 0 4px}.arrow-left [data-v-35d1e596]{transform:rotate(270deg)}.stream-container-top[data-v-35d1e596]{width:100%;height:100%;background-color:var(--stream-container-flatten-bg-color);overflow:hidden;position:relative}.stream-container-top .enlarged-stream-container[data-v-35d1e596]{width:100%;height:calc(100% - 175px);position:absolute;top:175px;display:flex;justify-content:center;align-items:center}.stream-container-top .stream-list-container[data-v-35d1e596]{width:100%;height:175px;background-color:var(--stream-list-container);position:absolute;top:0;left:0;padding:20px 40px;display:flex;justify-content:center}.stream-container-top .stream-list-container.hide-list[data-v-35d1e596]{transform:translateY(-175px)}.stream-container-top .stream-list-container .stream-list[data-v-35d1e596]{display:flex;overflow-x:scroll;max-width:100%;max-height:100%}.stream-container-top .stream-list-container .stream-list[data-v-35d1e596]::-webkit-scrollbar{display:none}.stream-container-top .stream-list-container .stream-list .single-stream[data-v-35d1e596]{width:240px;height:135px;border-radius:4px;overflow:hidden;flex-shrink:0}.stream-container-top .stream-list-container .stream-list .single-stream[data-v-35d1e596]:not(:first-child){margin-left:14px}.stream-container-right[data-v-35d1e596]{width:100%;height:100%;background-color:var(--stream-container-flatten-bg-color);overflow:hidden;display:flex;flex-wrap:nowrap;justify-content:space-between;align-content:center}.stream-container-right .enlarged-stream-container[data-v-35d1e596]{width:calc(100% - 260px);height:100%;display:flex;justify-content:center;align-items:center}.stream-container-right .stream-list-container[data-v-35d1e596]{width:260px;height:100%;position:absolute;top:0;right:0;padding:48px 10px 80px;background-color:var(--stream-list-container);display:flex;align-items:center}.stream-container-right .stream-list-container.hide-list[data-v-35d1e596]{transform:translateX(260px)}.stream-container-right .stream-list-container[data-v-35d1e596]:before{content:"";width:100%;height:40px;position:absolute;top:48px;left:0;opacity:.1}.stream-container-right .stream-list[data-v-35d1e596]{max-width:100%;max-height:100%;overflow-y:scroll;padding:10px 0}.stream-container-right .stream-list[data-v-35d1e596]::-webkit-scrollbar{display:none}.stream-container-right .stream-list .single-stream[data-v-35d1e596]{width:240px;height:135px;border-radius:4px;overflow:hidden}.stream-container-right .stream-list .single-stream[data-v-35d1e596]:not(:first-child){margin-top:14px}.turn-page-container[data-v-35d1e596]{width:100%;height:86px;position:absolute;top:50%;transform:translateY(-50%);padding:0 24px;display:flex;justify-content:space-between}.turn-page-container .turn-page-arrow-container[data-v-35d1e596]{width:40px;height:86px;background:rgba(0,0,0,.4);border-radius:4.21px;display:flex;justify-content:center;align-items:center;cursor:pointer}.turn-page-container .left-container[data-v-35d1e596]{position:absolute;left:24px}.turn-page-container .right-container[data-v-35d1e596]{position:absolute;right:24px}.turn-page-container .turn-page-arrow[data-v-35d1e596]{background-image:url(../img/turn-page-arrow-left.7cc3e172.svg);width:14px;height:23px;background-size:100% 100%}.turn-page-container .turn-page-right[data-v-35d1e596]{transform:rotateY(180deg)}.content-container[data-v-f3be1146]{width:100%;height:100%}.setting-dialog[data-v-3d8c7752]{width:660px;height:574px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:flex;background-color:var(--setting-dialog-bg-color);border-radius:var(--setting-dialog)}.setting-dialog .dialog-tabs[data-v-3d8c7752]{width:194px;height:574px;background-color:var(--dialog-tabs-bg-color);border-radius:var(--setting-dialog)}.setting-dialog .dialog-tabs .dialog-title[data-v-3d8c7752]{display:inline-block;font-weight:500;font-size:20px;line-height:24px;color:var(--tabs-title-font-color);margin:32px 0 20px 32px}.setting-dialog .dialog-tabs .tabs-title[data-v-3d8c7752]{width:100%;height:36px;padding-left:32px;margin-bottom:10px;font-weight:400;font-size:14px;color:var(--tabs-title-font-color);line-height:36px;position:relative;cursor:pointer}.setting-dialog .dialog-tabs .tabs-title.active[data-v-3d8c7752]{background-color:var(--create-room-option);color:var(--create-room-option-color);font-weight:500}.setting-dialog .dialog-tabs .tabs-title.active[data-v-3d8c7752]:before{content:"";display:block;position:absolute;left:0;top:0;width:2px;height:36px;background:var(--create-room-option-tab)}.setting-dialog .dialog-tabs .tabs-title.active[data-v-3d8c7752]:after{content:"";display:block;position:absolute;left:0;top:0;width:23px;height:36px;opacity:.59;background:var(--active-blur-background-color);filter:blur(16px)}.setting-dialog .divide-line[data-v-3d8c7752]{width:1px;height:100%;background:var(--divide-line-color-setting)}.setting-dialog .dialog-content[data-v-3d8c7752]{flex-grow:1;padding:32px}.setting-dialog .close-icon[data-v-3d8c7752]{position:absolute;top:20px;right:20px;cursor:pointer}.tui-room :not([class|=el]){transition:background-color .5s,color .5s}.tui-room[data-v-b73b8d2e]{width:100%;height:100%;position:relative}.tui-room .header[data-v-b73b8d2e]{width:100%;height:48px;background-color:var(--room-header-bg-color);position:absolute;top:0;left:0;z-index:100}.tui-room .content[data-v-b73b8d2e]{width:100%;height:100%;background-color:#0d0f15;position:absolute;top:0}.tui-room .footer[data-v-b73b8d2e]{position:absolute;bottom:0;width:100%;height:80px;background-color:var(--room-footer-bg-color)}#app{font-family:Avenir,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:#b3b8c8;position:relative;width:100%;height:100%}
\ No newline at end of file
diff --git a/Miniapp-H5/dist/index.html b/Miniapp-H5/dist/index.html
index 00d70b3..88ee490 100644
--- a/Miniapp-H5/dist/index.html
+++ b/Miniapp-H5/dist/index.html
@@ -1 +1 @@
-
room-uikit-web-vue2
\ No newline at end of file
+room-uikit-web-vue2
\ No newline at end of file
diff --git a/Miniapp-H5/dist/js/about.52ae78e0.js b/Miniapp-H5/dist/js/about.0e360f7e.js
similarity index 93%
rename from Miniapp-H5/dist/js/about.52ae78e0.js
rename to Miniapp-H5/dist/js/about.0e360f7e.js
index bc824bd..b8b359c 100644
--- a/Miniapp-H5/dist/js/about.52ae78e0.js
+++ b/Miniapp-H5/dist/js/about.0e360f7e.js
@@ -1,2 +1,2 @@
-"use strict";(self["webpackChunkroom_uikit_web_vue2"]=self["webpackChunkroom_uikit_web_vue2"]||[]).push([[443],{1383:function(e,t,o){o.r(t),o.d(t,{default:function(){return gc}});var n=function(){var e=this,t=e._self._c;return t("room-container",{ref:"TUIRoomRef",on:{"on-log-out":e.handleLogOut,"on-create-room":e.onCreateRoom,"on-enter-room":e.onEnterRoom,"on-exit-room":e.onExitRoom,"on-destroy-room":e.onDestroyRoom,"on-kicked-out-of-room":e.onKickedOutOfRoom,"on-kick-off-line":e.onKickedOffLine,"on-user-sig-expired":e.onUserSigExpired}})},s=[];o(7658);function a(e,t){return function(){return e.apply(t,arguments)}}const{toString:r}=Object.prototype,{getPrototypeOf:i}=Object,l=(e=>t=>{const o=r.call(t);return e[o]||(e[o]=o.slice(8,-1).toLowerCase())})(Object.create(null)),c=e=>(e=e.toLowerCase(),t=>l(t)===e),u=e=>t=>typeof t===e,{isArray:m}=Array,d=u("undefined");function p(e){return null!==e&&!d(e)&&null!==e.constructor&&!d(e.constructor)&&g(e.constructor.isBuffer)&&e.constructor.isBuffer(e)}const f=c("ArrayBuffer");function v(e){let t;return t="undefined"!==typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(e):e&&e.buffer&&f(e.buffer),t}const h=u("string"),g=u("function"),C=u("number"),_=e=>null!==e&&"object"===typeof e,S=e=>!0===e||!1===e,I=e=>{if("object"!==l(e))return!1;const t=i(e);return(null===t||t===Object.prototype||null===Object.getPrototypeOf(t))&&!(Symbol.toStringTag in e)&&!(Symbol.iterator in e)},y=c("Date"),b=c("File"),R=c("Blob"),T=c("FileList"),w=e=>_(e)&&g(e.pipe),A=e=>{let t;return e&&("function"===typeof FormData&&e instanceof FormData||g(e.append)&&("formdata"===(t=l(e))||"object"===t&&g(e.toString)&&"[object FormData]"===e.toString()))},k=c("URLSearchParams"),M=e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function U(e,t,{allOwnKeys:o=!1}={}){if(null===e||"undefined"===typeof e)return;let n,s;if("object"!==typeof e&&(e=[e]),m(e))for(n=0,s=e.length;n0)if(n=o[s],t===n.toLowerCase())return n;return null}const L=(()=>"undefined"!==typeof globalThis?globalThis:"undefined"!==typeof self?self:"undefined"!==typeof window?window:global)(),E=e=>!d(e)&&e!==L;function O(){const{caseless:e}=E(this)&&this||{},t={},o=(o,n)=>{const s=e&&x(t,n)||n;I(t[s])&&I(o)?t[s]=O(t[s],o):I(o)?t[s]=O({},o):m(o)?t[s]=o.slice():t[s]=o};for(let n=0,s=arguments.length;n(U(t,((t,n)=>{o&&g(t)?e[n]=a(t,o):e[n]=t}),{allOwnKeys:n}),e),N=e=>(65279===e.charCodeAt(0)&&(e=e.slice(1)),e),j=(e,t,o,n)=>{e.prototype=Object.create(t.prototype,n),e.prototype.constructor=e,Object.defineProperty(e,"super",{value:t.prototype}),o&&Object.assign(e.prototype,o)},P=(e,t,o,n)=>{let s,a,r;const l={};if(t=t||{},null==e)return t;do{s=Object.getOwnPropertyNames(e),a=s.length;while(a-- >0)r=s[a],n&&!n(r,e,t)||l[r]||(t[r]=e[r],l[r]=!0);e=!1!==o&&i(e)}while(e&&(!o||o(e,t))&&e!==Object.prototype);return t},q=(e,t,o)=>{e=String(e),(void 0===o||o>e.length)&&(o=e.length),o-=t.length;const n=e.indexOf(t,o);return-1!==n&&n===o},Z=e=>{if(!e)return null;if(m(e))return e;let t=e.length;if(!C(t))return null;const o=new Array(t);while(t-- >0)o[t]=e[t];return o},V=(e=>t=>e&&t instanceof e)("undefined"!==typeof Uint8Array&&i(Uint8Array)),B=(e,t)=>{const o=e&&e[Symbol.iterator],n=o.call(e);let s;while((s=n.next())&&!s.done){const o=s.value;t.call(e,o[0],o[1])}},$=(e,t)=>{let o;const n=[];while(null!==(o=e.exec(t)))n.push(o);return n},F=c("HTMLFormElement"),H=e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,(function(e,t,o){return t.toUpperCase()+o})),z=(({hasOwnProperty:e})=>(t,o)=>e.call(t,o))(Object.prototype),J=c("RegExp"),Q=(e,t)=>{const o=Object.getOwnPropertyDescriptors(e),n={};U(o,((o,s)=>{let a;!1!==(a=t(o,s,e))&&(n[s]=a||o)})),Object.defineProperties(e,n)},W=e=>{Q(e,((t,o)=>{if(g(e)&&-1!==["arguments","caller","callee"].indexOf(o))return!1;const n=e[o];g(n)&&(t.enumerable=!1,"writable"in t?t.writable=!1:t.set||(t.set=()=>{throw Error("Can not rewrite read-only method '"+o+"'")}))}))},G=(e,t)=>{const o={},n=e=>{e.forEach((e=>{o[e]=!0}))};return m(e)?n(e):n(String(e).split(t)),o},K=()=>{},Y=(e,t)=>(e=+e,Number.isFinite(e)?e:t),X="abcdefghijklmnopqrstuvwxyz",ee="0123456789",te={DIGIT:ee,ALPHA:X,ALPHA_DIGIT:X+X.toUpperCase()+ee},oe=(e=16,t=te.ALPHA_DIGIT)=>{let o="";const{length:n}=t;while(e--)o+=t[Math.random()*n|0];return o};function ne(e){return!!(e&&g(e.append)&&"FormData"===e[Symbol.toStringTag]&&e[Symbol.iterator])}const se=e=>{const t=new Array(10),o=(e,n)=>{if(_(e)){if(t.indexOf(e)>=0)return;if(!("toJSON"in e)){t[n]=e;const s=m(e)?[]:{};return U(e,((e,t)=>{const a=o(e,n+1);!d(a)&&(s[t]=a)})),t[n]=void 0,s}}return e};return o(e,0)},ae=c("AsyncFunction"),re=e=>e&&(_(e)||g(e))&&g(e.then)&&g(e.catch);var ie={isArray:m,isArrayBuffer:f,isBuffer:p,isFormData:A,isArrayBufferView:v,isString:h,isNumber:C,isBoolean:S,isObject:_,isPlainObject:I,isUndefined:d,isDate:y,isFile:b,isBlob:R,isRegExp:J,isFunction:g,isStream:w,isURLSearchParams:k,isTypedArray:V,isFileList:T,forEach:U,merge:O,extend:D,trim:M,stripBOM:N,inherits:j,toFlatObject:P,kindOf:l,kindOfTest:c,endsWith:q,toArray:Z,forEachEntry:B,matchAll:$,isHTMLForm:F,hasOwnProperty:z,hasOwnProp:z,reduceDescriptors:Q,freezeMethods:W,toObjectSet:G,toCamelCase:H,noop:K,toFiniteNumber:Y,findKey:x,global:L,isContextDefined:E,ALPHABET:te,generateString:oe,isSpecCompliantForm:ne,toJSONObject:se,isAsyncFn:ae,isThenable:re};o(541);function le(e,t,o,n,s){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=(new Error).stack,this.message=e,this.name="AxiosError",t&&(this.code=t),o&&(this.config=o),n&&(this.request=n),s&&(this.response=s)}ie.inherits(le,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:ie.toJSONObject(this.config),code:this.code,status:this.response&&this.response.status?this.response.status:null}}});const ce=le.prototype,ue={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach((e=>{ue[e]={value:e}})),Object.defineProperties(le,ue),Object.defineProperty(ce,"isAxiosError",{value:!0}),le.from=(e,t,o,n,s,a)=>{const r=Object.create(ce);return ie.toFlatObject(e,r,(function(e){return e!==Error.prototype}),(e=>"isAxiosError"!==e)),le.call(r,e.message,t,o,n,s),r.cause=e,r.name=e.name,a&&Object.assign(r,a),r};var me=le,de=null;function pe(e){return ie.isPlainObject(e)||ie.isArray(e)}function fe(e){return ie.endsWith(e,"[]")?e.slice(0,-2):e}function ve(e,t,o){return e?e.concat(t).map((function(e,t){return e=fe(e),!o&&t?"["+e+"]":e})).join(o?".":""):t}function he(e){return ie.isArray(e)&&!e.some(pe)}const ge=ie.toFlatObject(ie,{},null,(function(e){return/^is[A-Z]/.test(e)}));function Ce(e,t,o){if(!ie.isObject(e))throw new TypeError("target must be an object");t=t||new(de||FormData),o=ie.toFlatObject(o,{metaTokens:!0,dots:!1,indexes:!1},!1,(function(e,t){return!ie.isUndefined(t[e])}));const n=o.metaTokens,s=o.visitor||u,a=o.dots,r=o.indexes,i=o.Blob||"undefined"!==typeof Blob&&Blob,l=i&&ie.isSpecCompliantForm(t);if(!ie.isFunction(s))throw new TypeError("visitor must be a function");function c(e){if(null===e)return"";if(ie.isDate(e))return e.toISOString();if(!l&&ie.isBlob(e))throw new me("Blob is not supported. Use a Buffer instead.");return ie.isArrayBuffer(e)||ie.isTypedArray(e)?l&&"function"===typeof Blob?new Blob([e]):Buffer.from(e):e}function u(e,o,s){let i=e;if(e&&!s&&"object"===typeof e)if(ie.endsWith(o,"{}"))o=n?o:o.slice(0,-2),e=JSON.stringify(e);else if(ie.isArray(e)&&he(e)||(ie.isFileList(e)||ie.endsWith(o,"[]"))&&(i=ie.toArray(e)))return o=fe(o),i.forEach((function(e,n){!ie.isUndefined(e)&&null!==e&&t.append(!0===r?ve([o],n,a):null===r?o:o+"[]",c(e))})),!1;return!!pe(e)||(t.append(ve(s,o,a),c(e)),!1)}const m=[],d=Object.assign(ge,{defaultVisitor:u,convertValue:c,isVisitable:pe});function p(e,o){if(!ie.isUndefined(e)){if(-1!==m.indexOf(e))throw Error("Circular reference detected in "+o.join("."));m.push(e),ie.forEach(e,(function(e,n){const a=!(ie.isUndefined(e)||null===e)&&s.call(t,e,ie.isString(n)?n.trim():n,o,d);!0===a&&p(e,o?o.concat(n):[n])})),m.pop()}}if(!ie.isObject(e))throw new TypeError("data must be an object");return p(e),t}var _e=Ce;function Se(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,(function(e){return t[e]}))}function Ie(e,t){this._pairs=[],e&&_e(e,this,t)}const ye=Ie.prototype;ye.append=function(e,t){this._pairs.push([e,t])},ye.toString=function(e){const t=e?function(t){return e.call(this,t,Se)}:Se;return this._pairs.map((function(e){return t(e[0])+"="+t(e[1])}),"").join("&")};var be=Ie;function Re(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function Te(e,t,o){if(!t)return e;const n=o&&o.encode||Re,s=o&&o.serialize;let a;if(a=s?s(t,o):ie.isURLSearchParams(t)?t.toString():new be(t,o).toString(n),a){const t=e.indexOf("#");-1!==t&&(e=e.slice(0,t)),e+=(-1===e.indexOf("?")?"?":"&")+a}return e}class we{constructor(){this.handlers=[]}use(e,t,o){return this.handlers.push({fulfilled:e,rejected:t,synchronous:!!o&&o.synchronous,runWhen:o?o.runWhen:null}),this.handlers.length-1}eject(e){this.handlers[e]&&(this.handlers[e]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(e){ie.forEach(this.handlers,(function(t){null!==t&&e(t)}))}}var Ae=we,ke={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},Me="undefined"!==typeof URLSearchParams?URLSearchParams:be,Ue="undefined"!==typeof FormData?FormData:null,xe="undefined"!==typeof Blob?Blob:null;const Le=(()=>{let e;return("undefined"===typeof navigator||"ReactNative"!==(e=navigator.product)&&"NativeScript"!==e&&"NS"!==e)&&("undefined"!==typeof window&&"undefined"!==typeof document)})(),Ee=(()=>"undefined"!==typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&"function"===typeof self.importScripts)();var Oe={isBrowser:!0,classes:{URLSearchParams:Me,FormData:Ue,Blob:xe},isStandardBrowserEnv:Le,isStandardBrowserWebWorkerEnv:Ee,protocols:["http","https","file","blob","url","data"]};function De(e,t){return _e(e,new Oe.classes.URLSearchParams,Object.assign({visitor:function(e,t,o,n){return Oe.isNode&&ie.isBuffer(e)?(this.append(t,e.toString("base64")),!1):n.defaultVisitor.apply(this,arguments)}},t))}function Ne(e){return ie.matchAll(/\w+|\[(\w*)]/g,e).map((e=>"[]"===e[0]?"":e[1]||e[0]))}function je(e){const t={},o=Object.keys(e);let n;const s=o.length;let a;for(n=0;n=e.length;if(a=!a&&ie.isArray(n)?n.length:a,i)return ie.hasOwnProp(n,a)?n[a]=[n[a],o]:n[a]=o,!r;n[a]&&ie.isObject(n[a])||(n[a]=[]);const l=t(e,o,n[a],s);return l&&ie.isArray(n[a])&&(n[a]=je(n[a])),!r}if(ie.isFormData(e)&&ie.isFunction(e.entries)){const o={};return ie.forEachEntry(e,((e,n)=>{t(Ne(e),n,o,0)})),o}return null}var qe=Pe;function Ze(e,t,o){if(ie.isString(e))try{return(t||JSON.parse)(e),ie.trim(e)}catch(n){if("SyntaxError"!==n.name)throw n}return(o||JSON.stringify)(e)}const Ve={transitional:ke,adapter:["xhr","http"],transformRequest:[function(e,t){const o=t.getContentType()||"",n=o.indexOf("application/json")>-1,s=ie.isObject(e);s&&ie.isHTMLForm(e)&&(e=new FormData(e));const a=ie.isFormData(e);if(a)return n&&n?JSON.stringify(qe(e)):e;if(ie.isArrayBuffer(e)||ie.isBuffer(e)||ie.isStream(e)||ie.isFile(e)||ie.isBlob(e))return e;if(ie.isArrayBufferView(e))return e.buffer;if(ie.isURLSearchParams(e))return t.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),e.toString();let r;if(s){if(o.indexOf("application/x-www-form-urlencoded")>-1)return De(e,this.formSerializer).toString();if((r=ie.isFileList(e))||o.indexOf("multipart/form-data")>-1){const t=this.env&&this.env.FormData;return _e(r?{"files[]":e}:e,t&&new t,this.formSerializer)}}return s||n?(t.setContentType("application/json",!1),Ze(e)):e}],transformResponse:[function(e){const t=this.transitional||Ve.transitional,o=t&&t.forcedJSONParsing,n="json"===this.responseType;if(e&&ie.isString(e)&&(o&&!this.responseType||n)){const o=t&&t.silentJSONParsing,a=!o&&n;try{return JSON.parse(e)}catch(s){if(a){if("SyntaxError"===s.name)throw me.from(s,me.ERR_BAD_RESPONSE,this,null,this.response);throw s}}}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:Oe.classes.FormData,Blob:Oe.classes.Blob},validateStatus:function(e){return e>=200&&e<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};ie.forEach(["delete","get","head","post","put","patch"],(e=>{Ve.headers[e]={}}));var Be=Ve;const $e=ie.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]);var Fe=e=>{const t={};let o,n,s;return e&&e.split("\n").forEach((function(e){s=e.indexOf(":"),o=e.substring(0,s).trim().toLowerCase(),n=e.substring(s+1).trim(),!o||t[o]&&$e[o]||("set-cookie"===o?t[o]?t[o].push(n):t[o]=[n]:t[o]=t[o]?t[o]+", "+n:n)})),t};const He=Symbol("internals");function ze(e){return e&&String(e).trim().toLowerCase()}function Je(e){return!1===e||null==e?e:ie.isArray(e)?e.map(Je):String(e)}function Qe(e){const t=Object.create(null),o=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let n;while(n=o.exec(e))t[n[1]]=n[2];return t}const We=e=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim());function Ge(e,t,o,n,s){return ie.isFunction(n)?n.call(this,t,o):(s&&(t=o),ie.isString(t)?ie.isString(n)?-1!==t.indexOf(n):ie.isRegExp(n)?n.test(t):void 0:void 0)}function Ke(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,((e,t,o)=>t.toUpperCase()+o))}function Ye(e,t){const o=ie.toCamelCase(" "+t);["get","set","has"].forEach((n=>{Object.defineProperty(e,n+o,{value:function(e,o,s){return this[n].call(this,t,e,o,s)},configurable:!0})}))}class Xe{constructor(e){e&&this.set(e)}set(e,t,o){const n=this;function s(e,t,o){const s=ze(t);if(!s)throw new Error("header name must be a non-empty string");const a=ie.findKey(n,s);(!a||void 0===n[a]||!0===o||void 0===o&&!1!==n[a])&&(n[a||t]=Je(e))}const a=(e,t)=>ie.forEach(e,((e,o)=>s(e,o,t)));return ie.isPlainObject(e)||e instanceof this.constructor?a(e,t):ie.isString(e)&&(e=e.trim())&&!We(e)?a(Fe(e),t):null!=e&&s(t,e,o),this}get(e,t){if(e=ze(e),e){const o=ie.findKey(this,e);if(o){const e=this[o];if(!t)return e;if(!0===t)return Qe(e);if(ie.isFunction(t))return t.call(this,e,o);if(ie.isRegExp(t))return t.exec(e);throw new TypeError("parser must be boolean|regexp|function")}}}has(e,t){if(e=ze(e),e){const o=ie.findKey(this,e);return!(!o||void 0===this[o]||t&&!Ge(this,this[o],o,t))}return!1}delete(e,t){const o=this;let n=!1;function s(e){if(e=ze(e),e){const s=ie.findKey(o,e);!s||t&&!Ge(o,o[s],s,t)||(delete o[s],n=!0)}}return ie.isArray(e)?e.forEach(s):s(e),n}clear(e){const t=Object.keys(this);let o=t.length,n=!1;while(o--){const s=t[o];e&&!Ge(this,this[s],s,e,!0)||(delete this[s],n=!0)}return n}normalize(e){const t=this,o={};return ie.forEach(this,((n,s)=>{const a=ie.findKey(o,s);if(a)return t[a]=Je(n),void delete t[s];const r=e?Ke(s):String(s).trim();r!==s&&delete t[s],t[r]=Je(n),o[r]=!0})),this}concat(...e){return this.constructor.concat(this,...e)}toJSON(e){const t=Object.create(null);return ie.forEach(this,((o,n)=>{null!=o&&!1!==o&&(t[n]=e&&ie.isArray(o)?o.join(", "):o)})),t}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map((([e,t])=>e+": "+t)).join("\n")}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(e){return e instanceof this?e:new this(e)}static concat(e,...t){const o=new this(e);return t.forEach((e=>o.set(e))),o}static accessor(e){const t=this[He]=this[He]={accessors:{}},o=t.accessors,n=this.prototype;function s(e){const t=ze(e);o[t]||(Ye(n,e),o[t]=!0)}return ie.isArray(e)?e.forEach(s):s(e),this}}Xe.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]),ie.reduceDescriptors(Xe.prototype,(({value:e},t)=>{let o=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(e){this[o]=e}}})),ie.freezeMethods(Xe);var et=Xe;function tt(e,t){const o=this||Be,n=t||o,s=et.from(n.headers);let a=n.data;return ie.forEach(e,(function(e){a=e.call(o,a,s.normalize(),t?t.status:void 0)})),s.normalize(),a}function ot(e){return!(!e||!e.__CANCEL__)}function nt(e,t,o){me.call(this,null==e?"canceled":e,me.ERR_CANCELED,t,o),this.name="CanceledError"}ie.inherits(nt,me,{__CANCEL__:!0});var st=nt;o(2801);function at(e,t,o){const n=o.config.validateStatus;o.status&&n&&!n(o.status)?t(new me("Request failed with status code "+o.status,[me.ERR_BAD_REQUEST,me.ERR_BAD_RESPONSE][Math.floor(o.status/100)-4],o.config,o.request,o)):e(o)}var rt=Oe.isStandardBrowserEnv?function(){return{write:function(e,t,o,n,s,a){const r=[];r.push(e+"="+encodeURIComponent(t)),ie.isNumber(o)&&r.push("expires="+new Date(o).toGMTString()),ie.isString(n)&&r.push("path="+n),ie.isString(s)&&r.push("domain="+s),!0===a&&r.push("secure"),document.cookie=r.join("; ")},read:function(e){const t=document.cookie.match(new RegExp("(^|;\\s*)("+e+")=([^;]*)"));return t?decodeURIComponent(t[3]):null},remove:function(e){this.write(e,"",Date.now()-864e5)}}}():function(){return{write:function(){},read:function(){return null},remove:function(){}}}();function it(e){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(e)}function lt(e,t){return t?e.replace(/\/+$/,"")+"/"+t.replace(/^\/+/,""):e}function ct(e,t){return e&&!it(t)?lt(e,t):t}var ut=Oe.isStandardBrowserEnv?function(){const e=/(msie|trident)/i.test(navigator.userAgent),t=document.createElement("a");let o;function n(o){let n=o;return e&&(t.setAttribute("href",n),n=t.href),t.setAttribute("href",n),{href:t.href,protocol:t.protocol?t.protocol.replace(/:$/,""):"",host:t.host,search:t.search?t.search.replace(/^\?/,""):"",hash:t.hash?t.hash.replace(/^#/,""):"",hostname:t.hostname,port:t.port,pathname:"/"===t.pathname.charAt(0)?t.pathname:"/"+t.pathname}}return o=n(window.location.href),function(e){const t=ie.isString(e)?n(e):e;return t.protocol===o.protocol&&t.host===o.host}}():function(){return function(){return!0}}();function mt(e){const t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}function dt(e,t){e=e||10;const o=new Array(e),n=new Array(e);let s,a=0,r=0;return t=void 0!==t?t:1e3,function(i){const l=Date.now(),c=n[r];s||(s=l),o[a]=i,n[a]=l;let u=r,m=0;while(u!==a)m+=o[u++],u%=e;if(a=(a+1)%e,a===r&&(r=(r+1)%e),l-s{const a=s.loaded,r=s.lengthComputable?s.total:void 0,i=a-o,l=n(i),c=a<=r;o=a;const u={loaded:a,total:r,progress:r?a/r:void 0,bytes:i,rate:l||void 0,estimated:l&&r&&c?(r-a)/l:void 0,event:s};u[t?"download":"upload"]=!0,e(u)}}const vt="undefined"!==typeof XMLHttpRequest;var ht=vt&&function(e){return new Promise((function(t,o){let n=e.data;const s=et.from(e.headers).normalize(),a=e.responseType;let r,i;function l(){e.cancelToken&&e.cancelToken.unsubscribe(r),e.signal&&e.signal.removeEventListener("abort",r)}ie.isFormData(n)&&(Oe.isStandardBrowserEnv||Oe.isStandardBrowserWebWorkerEnv?s.setContentType(!1):s.getContentType(/^\s*multipart\/form-data/)?ie.isString(i=s.getContentType())&&s.setContentType(i.replace(/^\s*(multipart\/form-data);+/,"$1")):s.setContentType("multipart/form-data"));let c=new XMLHttpRequest;if(e.auth){const t=e.auth.username||"",o=e.auth.password?unescape(encodeURIComponent(e.auth.password)):"";s.set("Authorization","Basic "+btoa(t+":"+o))}const u=ct(e.baseURL,e.url);function m(){if(!c)return;const n=et.from("getAllResponseHeaders"in c&&c.getAllResponseHeaders()),s=a&&"text"!==a&&"json"!==a?c.response:c.responseText,r={data:s,status:c.status,statusText:c.statusText,headers:n,config:e,request:c};at((function(e){t(e),l()}),(function(e){o(e),l()}),r),c=null}if(c.open(e.method.toUpperCase(),Te(u,e.params,e.paramsSerializer),!0),c.timeout=e.timeout,"onloadend"in c?c.onloadend=m:c.onreadystatechange=function(){c&&4===c.readyState&&(0!==c.status||c.responseURL&&0===c.responseURL.indexOf("file:"))&&setTimeout(m)},c.onabort=function(){c&&(o(new me("Request aborted",me.ECONNABORTED,e,c)),c=null)},c.onerror=function(){o(new me("Network Error",me.ERR_NETWORK,e,c)),c=null},c.ontimeout=function(){let t=e.timeout?"timeout of "+e.timeout+"ms exceeded":"timeout exceeded";const n=e.transitional||ke;e.timeoutErrorMessage&&(t=e.timeoutErrorMessage),o(new me(t,n.clarifyTimeoutError?me.ETIMEDOUT:me.ECONNABORTED,e,c)),c=null},Oe.isStandardBrowserEnv){const t=(e.withCredentials||ut(u))&&e.xsrfCookieName&&rt.read(e.xsrfCookieName);t&&s.set(e.xsrfHeaderName,t)}void 0===n&&s.setContentType(null),"setRequestHeader"in c&&ie.forEach(s.toJSON(),(function(e,t){c.setRequestHeader(t,e)})),ie.isUndefined(e.withCredentials)||(c.withCredentials=!!e.withCredentials),a&&"json"!==a&&(c.responseType=e.responseType),"function"===typeof e.onDownloadProgress&&c.addEventListener("progress",ft(e.onDownloadProgress,!0)),"function"===typeof e.onUploadProgress&&c.upload&&c.upload.addEventListener("progress",ft(e.onUploadProgress)),(e.cancelToken||e.signal)&&(r=t=>{c&&(o(!t||t.type?new st(null,e,c):t),c.abort(),c=null)},e.cancelToken&&e.cancelToken.subscribe(r),e.signal&&(e.signal.aborted?r():e.signal.addEventListener("abort",r)));const d=mt(u);d&&-1===Oe.protocols.indexOf(d)?o(new me("Unsupported protocol "+d+":",me.ERR_BAD_REQUEST,e)):c.send(n||null)}))};const gt={http:de,xhr:ht};ie.forEach(gt,((e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch(o){}Object.defineProperty(e,"adapterName",{value:t})}}));const Ct=e=>`- ${e}`,_t=e=>ie.isFunction(e)||null===e||!1===e;var St={getAdapter:e=>{e=ie.isArray(e)?e:[e];const{length:t}=e;let o,n;const s={};for(let a=0;a`adapter ${e} `+(!1===t?"is not supported by the environment":"is not available in the build")));let o=t?e.length>1?"since :\n"+e.map(Ct).join("\n"):" "+Ct(e[0]):"as no adapter specified";throw new me("There is no suitable adapter to dispatch the request "+o,"ERR_NOT_SUPPORT")}return n},adapters:gt};function It(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new st(null,e)}function yt(e){It(e),e.headers=et.from(e.headers),e.data=tt.call(e,e.transformRequest),-1!==["post","put","patch"].indexOf(e.method)&&e.headers.setContentType("application/x-www-form-urlencoded",!1);const t=St.getAdapter(e.adapter||Be.adapter);return t(e).then((function(t){return It(e),t.data=tt.call(e,e.transformResponse,t),t.headers=et.from(t.headers),t}),(function(t){return ot(t)||(It(e),t&&t.response&&(t.response.data=tt.call(e,e.transformResponse,t.response),t.response.headers=et.from(t.response.headers))),Promise.reject(t)}))}const bt=e=>e instanceof et?e.toJSON():e;function Rt(e,t){t=t||{};const o={};function n(e,t,o){return ie.isPlainObject(e)&&ie.isPlainObject(t)?ie.merge.call({caseless:o},e,t):ie.isPlainObject(t)?ie.merge({},t):ie.isArray(t)?t.slice():t}function s(e,t,o){return ie.isUndefined(t)?ie.isUndefined(e)?void 0:n(void 0,e,o):n(e,t,o)}function a(e,t){if(!ie.isUndefined(t))return n(void 0,t)}function r(e,t){return ie.isUndefined(t)?ie.isUndefined(e)?void 0:n(void 0,e):n(void 0,t)}function i(o,s,a){return a in t?n(o,s):a in e?n(void 0,o):void 0}const l={url:a,method:a,data:a,baseURL:r,transformRequest:r,transformResponse:r,paramsSerializer:r,timeout:r,timeoutMessage:r,withCredentials:r,adapter:r,responseType:r,xsrfCookieName:r,xsrfHeaderName:r,onUploadProgress:r,onDownloadProgress:r,decompress:r,maxContentLength:r,maxBodyLength:r,beforeRedirect:r,transport:r,httpAgent:r,httpsAgent:r,cancelToken:r,socketPath:r,responseEncoding:r,validateStatus:i,headers:(e,t)=>s(bt(e),bt(t),!0)};return ie.forEach(Object.keys(Object.assign({},e,t)),(function(n){const a=l[n]||s,r=a(e[n],t[n],n);ie.isUndefined(r)&&a!==i||(o[n]=r)})),o}const Tt="1.5.1",wt={};["object","boolean","number","function","string","symbol"].forEach(((e,t)=>{wt[e]=function(o){return typeof o===e||"a"+(t<1?"n ":" ")+e}}));const At={};function kt(e,t,o){if("object"!==typeof e)throw new me("options must be an object",me.ERR_BAD_OPTION_VALUE);const n=Object.keys(e);let s=n.length;while(s-- >0){const a=n[s],r=t[a];if(r){const t=e[a],o=void 0===t||r(t,a,e);if(!0!==o)throw new me("option "+a+" must be "+o,me.ERR_BAD_OPTION_VALUE)}else if(!0!==o)throw new me("Unknown option "+a,me.ERR_BAD_OPTION)}}wt.transitional=function(e,t,o){function n(e,t){return"[Axios v"+Tt+"] Transitional option '"+e+"'"+t+(o?". "+o:"")}return(o,s,a)=>{if(!1===e)throw new me(n(s," has been removed"+(t?" in "+t:"")),me.ERR_DEPRECATED);return t&&!At[s]&&(At[s]=!0,console.warn(n(s," has been deprecated since v"+t+" and will be removed in the near future"))),!e||e(o,s,a)}};var Mt={assertOptions:kt,validators:wt};const Ut=Mt.validators;class xt{constructor(e){this.defaults=e,this.interceptors={request:new Ae,response:new Ae}}request(e,t){"string"===typeof e?(t=t||{},t.url=e):t=e||{},t=Rt(this.defaults,t);const{transitional:o,paramsSerializer:n,headers:s}=t;void 0!==o&&Mt.assertOptions(o,{silentJSONParsing:Ut.transitional(Ut.boolean),forcedJSONParsing:Ut.transitional(Ut.boolean),clarifyTimeoutError:Ut.transitional(Ut.boolean)},!1),null!=n&&(ie.isFunction(n)?t.paramsSerializer={serialize:n}:Mt.assertOptions(n,{encode:Ut.function,serialize:Ut.function},!0)),t.method=(t.method||this.defaults.method||"get").toLowerCase();let a=s&&ie.merge(s.common,s[t.method]);s&&ie.forEach(["delete","get","head","post","put","patch","common"],(e=>{delete s[e]})),t.headers=et.concat(a,s);const r=[];let i=!0;this.interceptors.request.forEach((function(e){"function"===typeof e.runWhen&&!1===e.runWhen(t)||(i=i&&e.synchronous,r.unshift(e.fulfilled,e.rejected))}));const l=[];let c;this.interceptors.response.forEach((function(e){l.push(e.fulfilled,e.rejected)}));let u,m=0;if(!i){const e=[yt.bind(this),void 0];e.unshift.apply(e,r),e.push.apply(e,l),u=e.length,c=Promise.resolve(t);while(m{if(!o._listeners)return;let t=o._listeners.length;while(t-- >0)o._listeners[t](e);o._listeners=null})),this.promise.then=e=>{let t;const n=new Promise((e=>{o.subscribe(e),t=e})).then(e);return n.cancel=function(){o.unsubscribe(t)},n},e((function(e,n,s){o.reason||(o.reason=new st(e,n,s),t(o.reason))}))}throwIfRequested(){if(this.reason)throw this.reason}subscribe(e){this.reason?e(this.reason):this._listeners?this._listeners.push(e):this._listeners=[e]}unsubscribe(e){if(!this._listeners)return;const t=this._listeners.indexOf(e);-1!==t&&this._listeners.splice(t,1)}static source(){let e;const t=new Et((function(t){e=t}));return{token:t,cancel:e}}}var Ot=Et;function Dt(e){return function(t){return e.apply(null,t)}}function Nt(e){return ie.isObject(e)&&!0===e.isAxiosError}const jt={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(jt).forEach((([e,t])=>{jt[t]=e}));var Pt=jt;function qt(e){const t=new Lt(e),o=a(Lt.prototype.request,t);return ie.extend(o,Lt.prototype,t,{allOwnKeys:!0}),ie.extend(o,t,null,{allOwnKeys:!0}),o.create=function(t){return qt(Rt(e,t))},o}const Zt=qt(Be);Zt.Axios=Lt,Zt.CanceledError=st,Zt.CancelToken=Ot,Zt.isCancel=ot,Zt.VERSION=Tt,Zt.toFormData=_e,Zt.AxiosError=me,Zt.Cancel=Zt.CanceledError,Zt.all=function(e){return Promise.all(e)},Zt.spread=Dt,Zt.isAxiosError=Nt,Zt.mergeConfig=Rt,Zt.AxiosHeaders=et,Zt.formToJSON=e=>qe(ie.isHTMLForm(e)?new FormData(e):e),Zt.getAdapter=St.getAdapter,Zt.HttpStatusCode=Pt,Zt.default=Zt;var Vt=Zt,Bt=function(){var e=this,t=e._self._c,o=e._self._setupProxy;return t("div",{ref:"roomRef",staticClass:"tui-room",attrs:{id:"roomContainer"}},[t(o.RoomHeader,{directives:[{name:"show",rawName:"v-show",value:o.showRoomTool&&o.showHeaderTool,expression:"showRoomTool && showHeaderTool"}],staticClass:"header",on:{"log-out":o.logOut,"on-destroy-room":o.onDestroyRoom,"on-exit-room":o.onExitRoom}}),t(o.RoomContent,{directives:[{name:"tap",rawName:"v-tap",value:o.handleRoomContentTap,expression:"handleRoomContentTap"}],ref:"roomContentRef",staticClass:"content",attrs:{"show-room-tool":o.showRoomTool}}),t(o.RoomFooter,{directives:[{name:"show",rawName:"v-show",value:o.showRoomTool,expression:"showRoomTool"}],staticClass:"footer",on:{"on-destroy-room":o.onDestroyRoom,"on-exit-room":o.onExitRoom}}),t(o.RoomSidebar),t(o.RoomSetting)],1)},$t=[],Ft=o(6369),Ht=o(3235),zt=o(1020),Jt=function(){var e=this,t=e._self._c,o=e._self._setupProxy;return t("div",{staticClass:"header"},[t("div",{staticClass:"header-container"},[t("div",{staticClass:"icon-box"},[t(o.SwitchCamera),t(o.SwitchMirror)],1),t(o.RoomInfo),t(o.EndControl,{on:{"on-destroy-room":o.onDestroyRoom,"on-exit-room":o.onExitRoom}})],1)])},Qt=[],Wt=function(){var e=this,t=e._self._c,o=e._self._setupProxy;return t("div",[t("div",{staticClass:"end-control-container"},[t("div",{directives:[{name:"tap",rawName:"v-tap",value:o.stopMeeting,expression:"stopMeeting"}],staticClass:"end-button",attrs:{tabindex:"1"}},[e._v(e._s(o.t("EndH5")))])]),o.visible?t("div",{staticClass:"end-main-content"},[t("div",{class:o.isShowLeaveRoomDialog?"end-dialog-leave":"end-dialog-dismiss"},[o.currentDialogType===o.DialogType.BasicDialog?t("div",[o.roomStore.isMaster?t("div",{staticClass:"end-dialog-header"},[o.roomStore.isMaster?t("span",{staticClass:"end-dialog-text"},[e._v(" "+e._s(o.t("If you do not want to end the meeting, please designate a new host before leaving the meeting."))+" ")]):t("span",[e._v(e._s(o.t("Are you sure you want to leave this room?")))])]):e._e()]):e._e(),o.currentDialogType===o.DialogType.BasicDialog?t("div",{staticClass:"dialog-middle-content"},[o.roomStore.isMaster?t("span",{class:o.isShowLeaveRoomDialog?"end-button-dismiss":"end-button-dismiss-single",on:{click:function(e){return e.stopPropagation(),o.dismissRoom.apply(null,arguments)}}},[e._v(" "+e._s(o.t("Dismiss"))+" ")]):e._e(),o.isShowLeaveRoomDialog?t("span",{directives:[{name:"tap",rawName:"v-tap",value:o.leaveRoom,expression:"leaveRoom"}],class:o.roomStore.isMaster?"end-button-leave":"end-button-leave-single"},[e._v(" "+e._s(o.t("Leave"))+" ")]):e._e(),t("span",{staticClass:"end-button-cancel",on:{click:function(e){return e.stopPropagation(),o.cancel.apply(null,arguments)}}},[e._v(e._s(o.t("Cancel")))])]):e._e(),o.currentDialogType===o.DialogType.TransferDialog?t("div",[t("span",{staticClass:"end-button-cancel",on:{click:function(e){return e.stopPropagation(),o.cancel.apply(null,arguments)}}},[e._v(e._s(o.t("Cancel")))])]):e._e()])]):e._e(),t(o.popup,{directives:[{name:"show",rawName:"v-show",value:o.showSideBar,expression:"showSideBar"}],staticClass:"transfer-container",attrs:{title:o.t("Appoint a new host")},scopedSlots:e._u([{key:"sidebarContent",fn:function(){return[t("div",{staticStyle:{height:"100%"}},[t("div",[t("div",{staticClass:"transfer-header"},[t("input",{directives:[{name:"model",rawName:"v-model",value:o.searchName,expression:"searchName"}],staticClass:"searching-input",attrs:{type:"text",placeholder:o.t("Search for conference attendees"),enterkeyhint:"done"},domProps:{value:o.searchName},on:{input:function(e){e.target.composing||(o.searchName=e.target.value)}}})]),t("div",{staticClass:"transfer-body"},[e._l(o.filteredList,(function(n){return t("div",{key:n.userId,staticClass:"transfer-list-content",on:{click:function(e){return o.handleShowMemberControl(n.userId)}}},[t("div",{staticClass:"member-basic-info"},[t(o.Avatar,{staticClass:"avatar-url",attrs:{"img-src":n.avatarUrl}}),t("div",{staticClass:"user-name"},[e._v(e._s(n.userName||n.userId))]),o.selectedUser===n.userId?t(o.SvgIcon,{staticClass:"correct",attrs:{"icon-name":"correct",size:"custom"}}):e._e()],1)])})),o.hasNoData?t("div",{staticClass:"member-hasNoData"},[e._v(e._s(o.t("No relevant user found.")))]):e._e()],2)])])]},proxy:!0},{key:"sidebarFooter",fn:function(){return[t("div",{staticClass:"transfer-leave",on:{click:o.transferAndLeave}},[t("span",{staticClass:"transfer-button"},[e._v(e._s(o.t("Transfer and leave")))])])]},proxy:!0}])})],1)},Gt=[],Kt=o(452),Yt=o.n(Kt),Xt=o(251),eo=o(4990),to=o(7357),oo=o(3681),no=o(6419);function so(){const{t:e}=(0,to.Q)();let t;(function(e){e[e["BasicDialog"]=0]="BasicDialog",e[e["TransferDialog"]=1]="TransferDialog"})(t||(t={}));const o=(0,Ft.ref)(t.BasicDialog),n="[EndControl]",s=(0,oo.Z)(),a=(0,Ft.ref)(!1),r=(0,Xt.o)();no.Z.log(`${n} basicStore:`,r);const i=(0,eo.A)(),{localUser:l,remoteAnchorList:c}=(0,zt.Jk)(i),u=(0,Ft.computed)((()=>o.value===t.BasicDialog?e("Leave room?"):e("Select a new host"))),m=(0,Ft.computed)((()=>i.isMaster&&c.value.length>0||!i.isMaster)),{isSidebarOpen:d,sidebarName:p}=(0,zt.Jk)(r),f=(0,Ft.computed)((()=>d.value&&"transfer-leave"===p.value)),v=(0,Ft.ref)(""),h=(0,Ft.ref)(!1),g=(0,Ft.ref)(""),C=(0,Ft.computed)((()=>c.value.filter((e=>e.userId.includes(g.value)||e.userName?.includes(g.value))))),_=(0,Ft.computed)((()=>0===C.value.length));function S(){if(r.setSidebarOpenStatus&&"transfer-leave"===p.value)return r.setSidebarOpenStatus(!1),void r.setSidebarName("");r.setSidebarOpenStatus(!0),r.setSidebarName("transfer-leave")}function I(e){v.value=e}function y(){a.value=!1,o.value=t.BasicDialog}function b(){a.value||(a.value=!0)}function R(){y()}async function T(){l.value.hasAudioStream&&await(s.instance?.closeLocalMicrophone()),l.value.hasVideoStream&&await(s.instance?.closeLocalCamera())}return{t:e,basicStore:r,isShowLeaveRoomDialog:m,roomStore:i,roomEngine:s,localUser:l,remoteAnchorList:c,stopMeeting:b,cancel:R,selectedUser:v,DialogType:t,logPrefix:n,title:u,currentDialogType:o,visible:a,closeMediaBeforeLeave:T,resetState:y,searchName:g,hasNoData:_,handleShowMemberControl:I,filteredList:C,toggleMangeMemberSidebar:S,showTransfer:h,sidebarName:p,showSideBar:f}}var ao=function(){var e=this,t=e._self._c,o=e._self._setupProxy;return t("div",{staticClass:"popup-container"},[t("div",{staticClass:"popup-main-header"},[t("span",{directives:[{name:"tap",rawName:"v-tap",value:o.handleClose,expression:"handleClose"}],staticClass:"icon-container"},[t(o.SvgIcon,{staticClass:"close-icon",attrs:{size:"custom","icon-name":"close-back"}})],1),t("span",{staticClass:"sidebar-title"},[e._v(e._s(e.title))])]),t("div",{staticClass:"popup-main-content"},[e._t("sidebarContent")],2),t("div",{staticClass:"popup-main-footer"},[e._t("sidebarFooter")],2)])},ro=[],io=o(6316),lo=(o(5175),(0,Ft.defineComponent)({__name:"PopUpH5",props:{title:null},setup(e){const t=(0,Xt.o)();function o(){t.setSidebarOpenStatus(!1),t.setSidebarName("")}return{__sfc:!0,basicStore:t,handleClose:o,SvgIcon:io.Z}}})),co=lo,uo=o(3736),mo=(0,uo.Z)(co,ao,ro,!1,null,"4069d388",null),po=mo.exports,fo=o(9225),vo=(0,Ft.defineComponent)({__name:"EndControlH5",emits:["on-exit-room","on-destroy-room"],setup(e,{emit:t}){const{t:o,isShowLeaveRoomDialog:n,roomStore:s,basicStore:a,roomEngine:r,localUser:i,stopMeeting:l,cancel:c,DialogType:u,logPrefix:m,currentDialogType:d,visible:p,closeMediaBeforeLeave:f,resetState:v,toggleMangeMemberSidebar:h,searchName:g,hasNoData:C,handleShowMemberControl:_,filteredList:S,selectedUser:I,showSideBar:y}=so();async function b(){try{no.Z.log(`${m}dismissRoom: enter`),await f(),await(r.instance?.destroyRoom()),v(),t("on-destroy-room",{code:0,message:""})}catch(e){no.Z.error(`${m}dismissRoom error:`,e)}}async function R(){try{if(s.isMaster)return h(),void v();await f();const e=await(r.instance?.exitRoom());no.Z.log(`${m}leaveRoom:`,e),v(),t("on-exit-room",{code:0,message:""})}catch(e){no.Z.error(`${m}leaveRoom error:`,e)}}async function T(){if(I.value)try{const e=I.value,o=await(r.instance?.changeUserRole({userId:e,userRole:Kt.TUIRole.kRoomOwner}));no.Z.log(`${m}transferAndLeave:`,o),await f();const n=await(r.instance?.exitRoom());no.Z.log(`${m}exitRoom:`,n),a.setSidebarOpenStatus(!1),a.setSidebarName(""),v(),t("on-exit-room",{code:0,message:""})}catch(e){no.Z.error(`${m}transferAndLeave error:`,e)}}const w=async e=>{try{const{roomId:n}=e;no.Z.log(`${m}onRoomDismissed:`,n),Ht.T.alert(o("The host closed the room."),o("Note"),{customClass:"custom-element-class",confirmButtonText:o("Confirm"),appendTo:"#roomContainer",callback:async()=>{v(),t("on-destroy-room",{code:0,message:""})}})}catch(n){no.Z.error(`${m}onRoomDestroyed error:`,n)}},A=async e=>{if(e.userRole===Kt.TUIRole.kRoomOwner){const{userId:t}=e;let n=s.getUserName(t)||t;t===i.value.userId&&(n=o("me"));const a=`${o("Moderator changed to ")}${n}`;if((0,Ht.z)({type:"success",message:a}),s.localUser.userId===t?s.setLocalUser({userRole:Kt.TUIRole.kRoomOwner}):s.setRemoteUserRole(t,Kt.TUIRole.kRoomOwner),s.setMasterUserId(t),v(),s.isAnchor)return;s.isSpeakAfterTakingSeatMode&&await(r.instance?.takeSeat({seatIndex:-1,timeout:0}))}};return Yt().once("ready",(()=>{r.instance?.on(Kt.TUIRoomEvents.onRoomDismissed,w),r.instance?.on(Kt.TUIRoomEvents.onUserRoleChanged,A)})),(0,Ft.onUnmounted)((()=>{r.instance?.off(Kt.TUIRoomEvents.onRoomDismissed,w),r.instance?.off(Kt.TUIRoomEvents.onUserRoleChanged,A)})),{__sfc:!0,t:o,isShowLeaveRoomDialog:n,roomStore:s,basicStore:a,roomEngine:r,localUser:i,stopMeeting:l,cancel:c,DialogType:u,logPrefix:m,currentDialogType:d,visible:p,closeMediaBeforeLeave:f,resetState:v,toggleMangeMemberSidebar:h,searchName:g,hasNoData:C,handleShowMemberControl:_,filteredList:S,selectedUser:I,showSideBar:y,emit:t,dismissRoom:b,leaveRoom:R,transferAndLeave:T,onRoomDismissed:w,onUserRoleChanged:A,popup:po,SvgIcon:io.Z,Avatar:fo.Z}}}),ho=vo,go=(0,uo.Z)(ho,Wt,Gt,!1,null,"12377224",null),Co=go.exports,_o=function(){var e=this,t=e._self._c,o=e._self._setupProxy;return t("div",{staticClass:"end-control-container"},[t("div",{staticClass:"end-button",attrs:{tabindex:"1"},on:{click:o.stopMeeting}},[e._v(e._s(o.t("EndPC")))]),t(o.Dialog,{staticClass:"custom-element-class",attrs:{"model-value":o.visible,title:o.title,modal:!0,"append-to-body":!1,width:"420px","before-close":o.cancel,"close-on-click-modal":!0},scopedSlots:e._u([{key:"footer",fn:function(){return[o.currentDialogType===o.DialogType.BasicDialog?t("div",[o.roomStore.isMaster?t("el-button",{attrs:{type:"primary"},on:{click:function(e){return e.stopPropagation(),o.dismissRoom.apply(null,arguments)}}},[e._v(" "+e._s(o.t("Dismiss"))+" ")]):e._e(),o.isShowLeaveRoomDialog?t("el-button",{attrs:{type:"primary"},on:{click:o.leaveRoom}},[e._v(e._s(o.t("Leave")))]):e._e(),t("el-button",{on:{click:function(e){return e.stopPropagation(),o.cancel.apply(null,arguments)}}},[e._v(e._s(o.t("Cancel")))])],1):e._e(),o.currentDialogType===o.DialogType.TransferDialog?t("div",[t("el-button",{attrs:{type:"primary"},on:{click:o.transferAndLeave}},[e._v(e._s(o.t("Transfer and leave")))]),t("el-button",{on:{click:function(e){return e.stopPropagation(),o.cancel.apply(null,arguments)}}},[e._v(e._s(o.t("Cancel")))])],1):e._e()]},proxy:!0}])},[o.currentDialogType===o.DialogType.BasicDialog?t("div",[o.roomStore.isMaster?t("span",[e._v(" "+e._s(o.t('You are currently the room host, please select the appropriate action.If you select "Leave Room", the room will not be dissolved and you will need to appoint a new host.'))+" ")]):t("span",[e._v(e._s(o.t("Are you sure you want to leave this room?")))])]):e._e(),o.currentDialogType===o.DialogType.TransferDialog?t("div",[t("div",[e._v(e._s(o.t("New host")))]),t("div",[t("el-select",{attrs:{teleported:!1,"popper-append-to-body":!1},model:{value:o.selectedUser,callback:function(e){o.selectedUser=e},expression:"selectedUser"}},e._l(o.remoteAnchorList,(function(e){return t("el-option",{key:e.userId,attrs:{value:e.userId,label:e.userName}})})),1)],1)]):e._e()])],1)},So=[],Io=o(5266),yo=(0,Ft.defineComponent)({__name:"EndControlPC",emits:["on-exit-room","on-destroy-room"],setup(e,{emit:t}){const{t:o,isShowLeaveRoomDialog:n,roomStore:s,basicStore:a,roomEngine:r,localUser:i,remoteAnchorList:l,stopMeeting:c,cancel:u,selectedUser:m,DialogType:d,logPrefix:p,title:f,currentDialogType:v,visible:h,closeMediaBeforeLeave:g,resetState:C}=so();async function _(){try{no.Z.log(`${p}dismissRoom: enter`),await g(),await(r.instance?.destroyRoom()),C(),t("on-destroy-room",{code:0,message:""})}catch(e){no.Z.error(`${p}dismissRoom error:`,e)}}async function S(){try{if(s.isMaster)return void(v.value=d.TransferDialog);await g();const e=await(r.instance?.exitRoom());no.Z.log(`${p}leaveRoom:`,e),C(),t("on-exit-room",{code:0,message:""})}catch(e){no.Z.error(`${p}leaveRoom error:`,e)}}async function I(){if(m.value)try{const e=m.value,o=await(r.instance?.changeUserRole({userId:e,userRole:Kt.TUIRole.kRoomOwner}));no.Z.log(`${p}transferAndLeave:`,o),await g();const n=await(r.instance?.exitRoom());no.Z.log(`${p}exitRoom:`,n),a.setSidebarOpenStatus(!1),a.setSidebarName(""),C(),t("on-exit-room",{code:0,message:""})}catch(e){no.Z.error(`${p}transferAndLeave error:`,e)}}const y=async e=>{try{const{roomId:n}=e;no.Z.log(`${p}onRoomDismissed:`,n),Ht.T.alert(o("The host closed the room."),o("Note"),{customClass:"custom-element-class",confirmButtonText:o("Confirm"),appendTo:"#roomContainer",callback:async()=>{C(),t("on-destroy-room",{code:0,message:""})}})}catch(n){no.Z.error(`${p}onRoomDestroyed error:`,n)}},b=async e=>{if(e.userRole===Kt.TUIRole.kRoomOwner){const{userId:t}=e;let n=s.getUserName(t)||t;t===i.value.userId&&(n=o("me"));const a=`${o("Moderator changed to ")}${n}`;if((0,Ht.z)({type:"success",message:a}),s.localUser.userId===t?s.setLocalUser({userRole:Kt.TUIRole.kRoomOwner}):s.setRemoteUserRole(t,Kt.TUIRole.kRoomOwner),s.setMasterUserId(t),C(),s.isAnchor)return;s.isSpeakAfterTakingSeatMode&&await(r.instance?.takeSeat({seatIndex:-1,timeout:0}))}};return Yt().once("ready",(()=>{r.instance?.on(Kt.TUIRoomEvents.onRoomDismissed,y),r.instance?.on(Kt.TUIRoomEvents.onUserRoleChanged,b)})),(0,Ft.onUnmounted)((()=>{r.instance?.off(Kt.TUIRoomEvents.onRoomDismissed,y),r.instance?.off(Kt.TUIRoomEvents.onUserRoleChanged,b)})),{__sfc:!0,t:o,isShowLeaveRoomDialog:n,roomStore:s,basicStore:a,roomEngine:r,localUser:i,remoteAnchorList:l,stopMeeting:c,cancel:u,selectedUser:m,DialogType:d,logPrefix:p,title:f,currentDialogType:v,visible:h,closeMediaBeforeLeave:g,resetState:C,emit:t,dismissRoom:_,leaveRoom:S,transferAndLeave:I,onRoomDismissed:y,onUserRoleChanged:b,Dialog:Io.Z}}}),bo=yo,Ro=(0,uo.Z)(bo,_o,So,!1,null,"bcdd5c40",null),To=Ro.exports,wo=o(2843);const Ao=wo.t?Co:To;var ko=Ao,Mo=function(){var e=this,t=e._self._c,o=e._self._setupProxy;return t("div",{staticClass:"camera-icon"},[t(o.SvgIcon,{directives:[{name:"tap",rawName:"v-tap",value:o.handleSwitchCamera,expression:"handleSwitchCamera"}],attrs:{"icon-name":"camera",size:"custom","custom-style":{backgroundSize:"50%"}}})],1)},Uo=[],xo=(0,Ft.defineComponent)({__name:"SwitchCamera",setup(e){const t=(0,Xt.o)(),{isFrontCamera:o}=(0,zt.Jk)(t),n=(0,oo.Z)();async function s(){await(n.instance?.switchCamera({isFrontCamera:!o.value})),t.setIsFrontCamera(!o.value)}return{__sfc:!0,basicStore:t,isFrontCamera:o,roomEngine:n,handleSwitchCamera:s,SvgIcon:io.Z}}}),Lo=xo,Eo=(0,uo.Z)(Lo,Mo,Uo,!1,null,"190ccb04",null),Oo=Eo.exports,Do=function(){var e=this,t=e._self._c,o=e._self._setupProxy;return t("div",{staticClass:"mirror-icon"},[t(o.SvgIcon,{directives:[{name:"tap",rawName:"v-tap",value:o.toogleMirrorStatus,expression:"toogleMirrorStatus"}],attrs:{"icon-name":"mirror",size:"custom","custom-style":{backgroundSize:"50%"}}})],1)},No=[],jo=(0,Ft.defineComponent)({__name:"SwitchMirror",setup(e){const t=(0,oo.Z)(),o=(0,Xt.o)();function n(){const e=t.instance?.getTRTCCloud();e?.setLocalRenderParams({mirrorType:o.isLocalStreamMirror?Kt.TRTCVideoMirrorType.TRTCVideoMirrorType_Enable:Kt.TRTCVideoMirrorType.TRTCVideoMirrorType_Disable,rotation:Kt.TRTCVideoRotation.TRTCVideoRotation0,fillMode:Kt.TRTCVideoFillMode.TRTCVideoFillMode_Fill}),o.setIsLocalStreamMirror(o.isLocalStreamMirror),o.isLocalStreamMirror=!o.isLocalStreamMirror}return{__sfc:!0,roomEngine:t,basicStore:o,toogleMirrorStatus:n,SvgIcon:io.Z}}}),Po=jo,qo=(0,uo.Z)(Po,Do,No,!1,null,"9a54a9ea",null),Zo=qo.exports,Vo=function(){var e=this,t=e._self._c,o=e._self._setupProxy;return t("div",{staticClass:"conference-container"},[o.isShowRoomInfoTitle?t("div",{on:{click:o.toggleShowRoomInfoStatus}},[t("div",{staticClass:"title-container"},[t("span",{staticClass:"text"},[e._v(e._s(o.conferenceTitle))]),t("span",{staticClass:"chevron-down-container"},[t(o.SvgIcon,{staticClass:"chevron-down-icon",attrs:{size:"custom","icon-name":"chevron-down"}})],1)])]):e._e(),o.isShowRoomInfo?t("div",{staticClass:"roomInfo-container"},[t("div",{ref:"roomInfoRef",staticClass:"roomInfo-container-main"},[t("div",{staticClass:"roomInfo-title"},[t("span",{staticClass:"master-header"},[e._v(e._s(o.conferenceTitle))]),t("span",{staticClass:"cancel",on:{click:o.handleHiddenRoomInfo}},[e._v(e._s(o.t("Cancel")))])]),t("div",{staticClass:"roomInfo-middle"},[t("div",{staticClass:"roomInfo-role"},[t("span",[e._v(e._s(o.t("Host")))]),t("span",{staticClass:"text-right"},[e._v(e._s(o.masterUserName))])]),t("div",{staticClass:"roomInfo-roomMode"},[t("span",{staticClass:"middle-left"},[e._v(e._s(o.t("Room Type")))]),t("span",{staticClass:"text-type"},[e._v(e._s(o.roomType))])]),t("div",{staticClass:"roomInfo-roomID"},[t("span",{staticClass:"middle-left"},[e._v(e._s(o.t("Room ID")))]),t("span",{staticClass:"text-right"},[e._v(e._s(o.roomId))]),t(o.SvgIcon,{staticClass:"copy",attrs:{"icon-name":"copy-icon",size:"custom"},on:{click:function(e){return o.onCopy(o.roomId)}}})],1),o.isWeChat?e._e():t("div",{staticClass:"roomInfo-roomID"},[t("span",[e._v(e._s(o.t("Room Link")))]),t("span",{staticClass:"link"},[e._v(e._s(o.inviteLink))]),t(o.SvgIcon,{staticClass:"copy",attrs:{"icon-name":"copy-icon"},on:{click:function(e){return o.onCopy(o.inviteLink)}}})],1)]),o.isWeChat?e._e():t("div",{staticClass:"roomInfo-bottom"},[t("span",[e._v(e._s(o.t("You can share the room number or link to invite more people to join the room.")))])])])]):e._e()])},Bo=[],$o=o(4237),Fo=(0,Ft.defineComponent)({__name:"RoomInfo",setup(e){const t=(0,Xt.o)(),o=(0,eo.A)(),{roomId:n}=(0,zt.Jk)(t),{masterUserId:s}=(0,zt.Jk)(o),{t:a}=(0,to.Q)(),r=(0,Ft.ref)(),i=(0,Ft.ref)(!1),l=(0,Ft.computed)((()=>o.isFreeSpeakMode?a("Free Speech Room"):a("Raise Hand Room"))),{origin:c,pathname:u}=location||{},m=(0,Ft.computed)((()=>`${c}${u}#/home?roomId=${n.value}`)),d=(0,Ft.computed)((()=>o.getUserName(s.value)||s.value)),p=(0,Ft.computed)((()=>d.value)),f=(0,Ft.computed)((()=>`${d.value}${a("video conferencing")}`));function v(){i.value=!i.value}async function h(e){try{await(0,$o.jO)(e),(0,Ht.z)({message:a("Copied successfully"),type:"success"})}catch(t){(0,Ht.z)({message:a("Copied failure"),type:"error"})}}function g(e){i.value&&!r.value.contains(e.target)&&(i.value=!1)}function C(){i.value=!1}return(0,Ft.onMounted)((()=>{document?.addEventListener("click",g,!0)})),(0,Ft.onUnmounted)((()=>{document?.removeEventListener("click",g,!0)})),{__sfc:!0,basicStore:t,roomStore:o,roomId:n,masterUserId:s,t:a,roomInfoRef:r,isShowRoomInfo:i,roomType:l,origin:c,pathname:u,inviteLink:m,masterUserName:d,isShowRoomInfoTitle:p,conferenceTitle:f,toggleShowRoomInfoStatus:v,onCopy:h,handleDocumentClick:g,handleHiddenRoomInfo:C,SvgIcon:io.Z,isWeChat:wo.e}}}),Ho=Fo,zo=(0,uo.Z)(Ho,Vo,Bo,!1,null,"543146aa",null),Jo=zo.exports,Qo=o(7327);const Wo="file:"===location.protocol||"localhost"===location.hostname||"127.0.0.1"===location.hostname,Go="web.sdk.qcloud.com"===location.host,Ko=Wo||Go,Yo=Go,Xo="iHWefAYqCFrCVqqyIZ",en="TUIRoomKit-Web-vue2";let tn;const on=document.createElement("script");on.type="text/javascript",on.src="https://cdn-go.cn/aegis/aegis-sdk/latest/aegis.min.js",document.getElementsByTagName("head")[0].appendChild(on),on.onload=()=>{tn=new Aegis({id:Xo,uin:"",reportApiSpeed:!0,reportAssetSpeed:!0,spa:!0}),sn.storedReportEventList&&sn.storedReportEventList.forEach((e=>{tn.reportEvent(e)}))};class nn{constructor(){(0,Qo.Z)(this,"sdkAppId",0),(0,Qo.Z)(this,"projectName",en),(0,Qo.Z)(this,"isUploadLoaded",Ko),(0,Qo.Z)(this,"isUploadDetailEvent",Yo),(0,Qo.Z)(this,"hasUploadedEventList",[]),(0,Qo.Z)(this,"storedReportEventList",[])}setSdkAppId(e){this.sdkAppId=e}reportEvent(e){if(!this.isUploadLoaded)return;const{name:t,ext1:o}=e;if(this.isUploadDetailEvent||"loaded"===t){const n={...e,ext2:this.projectName,ext3:this.sdkAppId};tn?this.hasUploadedEventList.indexOf(`${t}_${o}`)<0&&(this.hasUploadedEventList.push(`${t}_${o}`),tn.reportEvent(n)):this.storedReportEventList.push(n)}}}const sn=new nn;var an=sn,rn=(0,Ft.defineComponent)({__name:"index",emits:["log-out","on-destroy-room","on-exit-room"],setup(e,{emit:t}){const o=e=>{t("on-destroy-room",e),an.reportEvent({name:"destroyRoom",ext1:"destroyRoom-success"})},n=e=>{t("on-exit-room",e),an.reportEvent({name:"exitRoom",ext1:"exitRoom-success"})};return{__sfc:!0,emit:t,onDestroyRoom:o,onExitRoom:n,EndControl:ko,SwitchCamera:Oo,SwitchMirror:Zo,RoomInfo:Jo}}}),ln=rn,cn=(0,uo.Z)(ln,Jt,Qt,!1,null,"1262e4e7",null),un=cn.exports,mn=function(){var e=this,t=e._self._c,o=e._self._setupProxy;return t("div",{staticClass:"header-container"},[t("div",{staticClass:"left-container"},[t(o.UserInfo,{directives:[{name:"show",rawName:"v-show",value:e.showHeaderInfo,expression:"showHeaderInfo"}],staticClass:"header-item user-info",attrs:{"user-id":o.userId,"user-name":o.userName,"avatar-url":o.avatarUrl},on:{"log-out":function(t){return e.$emit("log-out")}}}),t(o.Language,{directives:[{name:"show",rawName:"v-show",value:e.showHeaderInfo,expression:"showHeaderInfo"}],staticClass:"header-item language"}),t(o.SwitchTheme,{staticClass:"header-item theme"})],1),t("div",{staticClass:"right-container"},[t(o.LayoutControl,{staticClass:"right-container-item"})],1)])},dn=[],pn=o(9643),fn=o(9139),vn=o(7698),hn=function(){var e=this,t=e._self._c,o=e._self._setupProxy;return o.streamNumber>1?t("div",{staticClass:"layout-container"},[t(o.SvgIcon,{staticClass:"layout-icon",attrs:{"icon-name":"layout",size:"medium"},on:{click:function(e){return e.stopPropagation(),o.handleClickLayoutIcon.apply(null,arguments)}}}),o.showLayoutList?t("div",{ref:"layoutList",staticClass:"layout-list"},[t("div",{class:["layout1","layout-item",""+(o.layout===o.LAYOUT.NINE_EQUAL_POINTS?"checked":"")],on:{click:function(e){return o.handleClick(o.LAYOUT.NINE_EQUAL_POINTS)}}},[t("div",{staticClass:"layout-block-container"},e._l(new Array(9).fill(""),(function(e,o){return t("div",{key:o,staticClass:"layout-block"})})),0),t("span",{staticClass:"layout-title"},[e._v(e._s(o.t("Grid")))])]),t("div",{class:["layout2","layout-item",""+(o.layout===o.LAYOUT.RIGHT_SIDE_LIST?"checked":"")],on:{click:function(e){return o.handleClick(o.LAYOUT.RIGHT_SIDE_LIST)}}},[t("div",{staticClass:"layout-block-container"},[t("div",{staticClass:"left-container"}),t("div",{staticClass:"right-container"},e._l(new Array(4).fill(""),(function(e,o){return t("div",{key:o,staticClass:"layout-block"})})),0)]),t("span",{staticClass:"layout-title"},[e._v(e._s(o.t("Gallery on right")))])]),t("div",{class:["layout3","layout-item",""+(o.layout===o.LAYOUT.TOP_SIDE_LIST?"checked":"")],on:{click:function(e){return o.handleClick(o.LAYOUT.TOP_SIDE_LIST)}}},[t("div",{staticClass:"layout-block-container"},[t("div",{staticClass:"top-container"},e._l(new Array(4).fill(""),(function(e,o){return t("div",{key:o,staticClass:"layout-block"})})),0),t("div",{staticClass:"bottom-container"})]),t("span",{staticClass:"layout-title"},[e._v(e._s(o.t("Gallery at top")))])])]):e._e()],1):e._e()},gn=[],Cn=o(3927),_n=(0,Ft.defineComponent)({__name:"LayoutControl",setup(e){const{t:t}=(0,to.Q)(),o=(0,Xt.o)(),{layout:n}=(0,zt.Jk)(o),s=(0,eo.A)(),{streamNumber:a}=(0,zt.Jk)(s),r=(0,Ft.ref)(!1),i=(0,Ft.ref)(null);function l(e){o.setLayout(e),an.reportEvent({name:"layout",ext1:e})}function c(){r.value?(document.removeEventListener("click",u,!1),r.value=!1):(r.value=!0,document.addEventListener("click",u,!1))}function u(e){r.value&&i.value&&!i.value.contains(e.target)&&(document.removeEventListener("click",u),r.value=!1)}return{__sfc:!0,t:t,basicStore:o,layout:n,roomStore:s,streamNumber:a,showLayoutList:r,layoutList:i,handleClick:l,handleClickLayoutIcon:c,handleDocumentClick:u,SvgIcon:io.Z,LAYOUT:Cn._}}}),Sn=_n,In=(0,uo.Z)(Sn,hn,gn,!1,null,"7b3fd23b",null),yn=In.exports,bn=(0,Ft.defineComponent)({__name:"index",props:{showHeaderInfo:{type:Boolean,default:!0}},emits:["log-out"],setup(e){const t=(0,Xt.o)(),{userId:o,userName:n,avatarUrl:s}=(0,zt.Jk)(t);return{__sfc:!0,basicStore:t,userId:o,userName:n,avatarUrl:s,UserInfo:pn.Z,Language:fn.Z,SwitchTheme:vn.Z,LayoutControl:yn}}}),Rn=bn,Tn=(0,uo.Z)(Rn,mn,dn,!1,null,"20e9e128",null),wn=Tn.exports;const An=wo.t?un:wn;var kn=An,Mn=function(){var e=this,t=e._self._c,o=e._self._setupProxy;return t("div",{staticClass:"footer-container"},[t("div",{staticClass:"left-container"},[t(o.AudioControl,{directives:[{name:"tap",rawName:"v-tap",value:()=>o.handleControlClick("audioControl"),expression:"() => handleControlClick('audioControl')"}]}),t(o.VideoControl,{directives:[{name:"tap",rawName:"v-tap",value:()=>o.handleControlClick("videoControl"),expression:"() => handleControlClick('videoControl')"}]}),o.roomStore.isSpeakAfterTakingSeatMode?t(o.ApplyControl,{directives:[{name:"tap",rawName:"v-tap",value:()=>o.handleControlClick("applyControl"),expression:"() => handleControlClick('applyControl')"}]}):t(o.ChatControl,{directives:[{name:"tap",rawName:"v-tap",value:()=>o.handleControlClick("chatControl"),expression:"() => handleControlClick('chatControl')"}]}),o.roomStore.isMaster?t(o.ManageMemberControl,{directives:[{name:"tap",rawName:"v-tap",value:()=>o.handleControlClick("manageMemberControl"),expression:"() => handleControlClick('manageMemberControl')"}]}):e._e(),t(o.MoreControl,{directives:[{name:"tap",rawName:"v-tap",value:()=>o.handleControlClick("moreControl"),expression:"() => handleControlClick('moreControl')"}]})],1)])},Un=[],xn=function(){var e=this,t=e._self._c,o=e._self._setupProxy;return t("div",[t("div",{staticClass:"audio-control-container",on:{click:function(e){return o.emits("click")}}},[t(o.IconButton,{ref:"audioIconButtonRef",attrs:{"is-active":!o.localStream.hasAudioStream,title:o.t("Mic"),"has-more":o.hasMore,"show-more":o.showAudioSettingTab,disabled:o.isLocalAudioIconDisable},on:{"click-icon":o.toggleMuteAudio,"click-more":o.handleMore}},[t(o.AudioIcon,{attrs:{"audio-volume":o.localStream.audioVolume,"is-muted":!o.localStream.hasAudioStream,"is-disabled":o.isLocalAudioIconDisable}})],1),t(o.AudioSettingTab,{directives:[{name:"show",rawName:"v-show",value:o.showAudioSettingTab,expression:"showAudioSettingTab"}],ref:"audioSettingRef",staticClass:"audio-tab"})],1),t(o.Dialog,{staticClass:"custom-element-class",attrs:{"model-value":o.showRequestOpenMicDialog,title:o.title,modal:!1,"show-close":!1,"append-to-body":!0,"close-on-click-modal":!1,"close-on-press-escape":!1,width:"500px"},scopedSlots:e._u([{key:"footer",fn:function(){return[t("div",{class:[o.isMobile?"button-container-mobile":"button-container-PC"]},[t("span",{staticClass:"cancel",on:{click:o.handleReject}},[e._v(e._s(o.t("Keep it closed")))]),t("span",{staticClass:"agree",on:{click:o.handleAccept}},[e._v(e._s(o.t("Turn on the microphone")))])])]},proxy:!0}])},[t("span",[e._v(" "+e._s(o.t("The host invites you to turn on the microphone"))+" ")])])],1)},Ln=[],En=o(2097),On=o(3929),Dn=o(1342),Nn=o(6897),jn=(0,Ft.defineComponent)({__name:"AudioControl",emits:["click"],setup(e,{emit:t}){const o=(0,oo.Z)(),n=(0,eo.A)(),{isAudience:s,localStream:a,isLocalAudioIconDisable:r,isMicrophoneDisableForAllUser:i}=(0,zt.Jk)(n),l=(0,Ft.computed)((()=>!wo.t)),c=(0,Ft.ref)(!1),u=(0,Ft.ref)(),m=(0,Ft.ref)(),{t:d}=(0,to.Q)(),p=(0,Ft.computed)((()=>wo.t?"":d("Tips")));async function f(){if(r.value){let e="";return i.value?e=Nn.B.UNMUTE_LOCAL_MIC_FAIL_MUTE_ALL:s.value&&(e=Nn.B.UNMUTE_LOCAL_MIC_FAIL_AUDIENCE),void(0,Ht.z)({type:"warning",message:d(e),duration:Nn.U.NORMAL})}if(a.value.hasAudioStream)await(o.instance?.closeLocalMicrophone()),n.isMicrophoneDisableForAllUser&&n.setCanControlSelfAudio(!1);else{const e=await(o.instance?.getMicDevicesList()),t=e.length>0;if(!t&&!wo.e)return void Ht.T.alert(d("Microphone not detected on current device."),d("Note"),{customClass:"custom-element-class",confirmButtonText:d("Confirm")});await(o.instance?.openLocalMicrophone())}c.value=!1}function v(){c.value?c.value=!1:c.value=!0}function h(e){!c.value||u.value?.$el.contains(e.target)||m.value?.$el.contains(e.target)||(c.value=!1)}const g=(0,Ft.ref)(!1),C=(0,Ft.ref)("");async function _(e){const{requestAction:t,requestId:o}=e.request;t===Kt.TUIRequestAction.kRequestToOpenRemoteMicrophone&&(C.value=o,g.value=!0)}async function S(){n.setCanControlSelfAudio(!0),await(o.instance?.responseRemoteRequest({requestId:C.value,agree:!0})),C.value="",g.value=!1}async function I(){await(o.instance?.responseRemoteRequest({requestId:C.value,agree:!1})),C.value="",g.value=!1}async function y(e){const{requestId:t}=e;C.value===t&&(g.value=!1)}return(0,Ft.onMounted)((()=>{document?.addEventListener("click",h,!0)})),Yt().once("ready",(()=>{o.instance?.on(Kt.TUIRoomEvents.onRequestReceived,_),o.instance?.on(Kt.TUIRoomEvents.onRequestCancelled,y)})),(0,Ft.onUnmounted)((()=>{document?.removeEventListener("click",h,!0),o.instance?.off(Kt.TUIRoomEvents.onRequestReceived,_),o.instance?.off(Kt.TUIRoomEvents.onRequestCancelled,y)})),{__sfc:!0,roomEngine:o,roomStore:n,isAudience:s,localStream:a,isLocalAudioIconDisable:r,isMicrophoneDisableForAllUser:i,emits:t,hasMore:l,showAudioSettingTab:c,audioIconButtonRef:u,audioSettingRef:m,t:d,title:p,toggleMuteAudio:f,handleMore:v,handleDocumentClick:h,showRequestOpenMicDialog:g,requestOpenMicRequestId:C,onRequestReceived:_,handleAccept:S,handleReject:I,onRequestCancelled:y,Dialog:Io.Z,IconButton:En.Z,AudioSettingTab:On.Z,AudioIcon:Dn.Z,isMobile:wo.t}}}),Pn=jn,qn=(0,uo.Z)(Pn,xn,Ln,!1,null,"357aa832",null),Zn=qn.exports,Vn=function(){var e=this,t=e._self._c,o=e._self._setupProxy;return t("div",[t("div",{staticClass:"video-control-container",on:{click:function(e){return o.emits("click")}}},[t(o.IconButton,{ref:"videoIconButtonRef",attrs:{"is-active":!o.localStream.hasVideoStream,title:o.t("Camera"),"icon-name":o.iconName,"has-more":o.hasMore,disabled:o.isLocalVideoIconDisable},on:{"click-icon":o.toggleMuteVideo,"click-more":o.handleMore}}),t(o.VideoSettingTab,{directives:[{name:"show",rawName:"v-show",value:o.showVideoSettingTab,expression:"showVideoSettingTab"}],ref:"videoSettingRef",staticClass:"video-tab"})],1),t(o.Dialog,{staticClass:"custom-element-class",attrs:{"model-value":o.showRequestOpenCameraDialog,title:o.title,modal:!1,"show-close":!1,"append-to-body":!0,"close-on-click-modal":!1,"close-on-press-escape":!1,width:"500px"},scopedSlots:e._u([{key:"footer",fn:function(){return[t("div",{class:[o.isMobile?"button-container-mobile":"button-container-PC"]},[t("span",{staticClass:"cancel",on:{click:o.handleReject}},[e._v(e._s(o.t("Keep it closed")))]),t("span",{staticClass:"agree",on:{click:o.handleAccept}},[e._v(e._s(o.t("Turn on the camera")))])])]},proxy:!0}])},[t("span",[e._v(" "+e._s(o.t("The host invites you to turn on the camera"))+" ")])])],1)},Bn=[],$n=o(8283),Fn=o(6671),Hn=(0,Ft.defineComponent)({__name:"VideoControl",emits:["click"],setup(e,{emit:t}){const o=(0,oo.Z)(),n=(0,eo.A)(),s=(0,Xt.o)(),a=(0,Ft.ref)(s.isFrontCamera),{isCameraDisableForAllUser:r,isAudience:i,localStream:l,isLocalVideoIconDisable:c}=(0,zt.Jk)(n),{t:u}=(0,to.Q)(),m=(0,Ft.computed)((()=>!wo.t)),d=(0,Ft.ref)(!1),p=(0,Ft.ref)(),f=(0,Ft.ref)(),v=(0,Ft.computed)((()=>wo.t?"":u("Tips"))),h=(0,Ft.computed)((()=>c.value?Fn.Z.CameraOffDisabled:l.value.hasVideoStream?Fn.Z.CameraOn:Fn.Z.CameraOff));async function g(){if(c.value){let e="";return r.value?e=Nn.B.UNMUTE_LOCAL_CAMERA_FAIL_MUTE_ALL:i.value&&(e=Nn.B.UNMUTE_LOCAL_CAMERA_FAIL_AUDIENCE),void(0,Ht.z)({type:"warning",message:u(e),duration:Nn.U.NORMAL})}if(l.value.hasVideoStream)await(o.instance?.closeLocalCamera()),n.isCameraDisableForAllUser&&n.setCanControlSelfVideo(!1);else{const e=await(o.instance?.getCameraDevicesList()),t=e.length>0;if(!t&&!wo.e)return void Ht.T.alert(u("Camera not detected on current device"),u("Note"),{customClass:"custom-element-class",confirmButtonText:u("Confirm")});o.instance?.setLocalVideoView({view:`${n.localStream.userId}_${n.localStream.streamType}`,streamType:Kt.TUIVideoStreamType.kCameraStream}),wo.t?await(o.instance?.openLocalCamera({isFrontCamera:a.value})):await(o.instance?.openLocalCamera())}d.value=!1}function C(){d.value?d.value=!1:d.value=!0}function _(e){!d.value||p.value?.$el.contains(e.target)||f.value?.$el.contains(e.target)||(d.value=!1)}const S=(0,Ft.ref)(!1),I=(0,Ft.ref)("");async function y(e){const{requestAction:t,requestId:o}=e.request;t===Kt.TUIRequestAction.kRequestToOpenRemoteCamera&&(I.value=o,S.value=!0)}async function b(){n.setCanControlSelfVideo(!0),o.instance?.setLocalVideoView({view:`${n.localStream.userId}_${n.localStream.streamType}`,streamType:Kt.TUIVideoStreamType.kCameraStream}),await(o.instance?.responseRemoteRequest({requestId:I.value,agree:!0})),I.value="",S.value=!1}async function R(){await(o.instance?.responseRemoteRequest({requestId:I.value,agree:!1})),I.value="",S.value=!1}async function T(e){const{requestId:t}=e;I.value===t&&(S.value=!1)}return(0,Ft.onMounted)((()=>{document?.addEventListener("click",_,!0)})),Yt().once("ready",(()=>{o.instance?.on(Kt.TUIRoomEvents.onRequestReceived,y),o.instance?.on(Kt.TUIRoomEvents.onRequestCancelled,T)})),(0,Ft.onUnmounted)((()=>{document?.removeEventListener("click",_,!0),o.instance?.off(Kt.TUIRoomEvents.onRequestReceived,y),o.instance?.off(Kt.TUIRoomEvents.onRequestCancelled,T)})),{__sfc:!0,roomEngine:o,roomStore:n,basicStore:s,isFrontCamera:a,emits:t,isCameraDisableForAllUser:r,isAudience:i,localStream:l,isLocalVideoIconDisable:c,t:u,hasMore:m,showVideoSettingTab:d,videoIconButtonRef:p,videoSettingRef:f,title:v,iconName:h,toggleMuteVideo:g,handleMore:C,handleDocumentClick:_,showRequestOpenCameraDialog:S,requestOpenCameraRequestId:I,onRequestReceived:y,handleAccept:b,handleReject:R,onRequestCancelled:T,Dialog:Io.Z,IconButton:En.Z,VideoSettingTab:$n.Z,isMobile:wo.t}}}),zn=Hn,Jn=(0,uo.Z)(zn,Vn,Bn,!1,null,"a0d52fdc",null),Qn=Jn.exports,Wn=function(){var e=this,t=e._self._c,o=e._self._setupProxy;return t("div",{staticClass:"manage-member-control-container"},[t(o.IconButton,{attrs:{"is-active":"manage-member"===o.sidebarName,title:o.t("Members"),"icon-name":o.iconName},on:{"click-icon":o.toggleMangeMemberSidebar}})],1)},Gn=[],Kn=(0,Ft.defineComponent)({__name:"ManageMemberControl",setup(e){const{t:t}=(0,to.Q)(),o=(0,Xt.o)(),{sidebarName:n}=(0,zt.Jk)(o),s=(0,Ft.computed)((()=>"manage-member"===n.value?Fn.Z.ManageMemberActive:Fn.Z.ManageMember));function a(){if(o.setSidebarOpenStatus&&"manage-member"===n.value)return o.setSidebarOpenStatus(!1),void o.setSidebarName("");o.setSidebarOpenStatus(!0),o.setSidebarName("manage-member")}return{__sfc:!0,t:t,basicStore:o,sidebarName:n,iconName:s,toggleMangeMemberSidebar:a,IconButton:En.Z}}}),Yn=Kn,Xn=(0,uo.Z)(Yn,Wn,Gn,!1,null,"49c71e42",null),es=Xn.exports,ts=function(){var e=this,t=e._self._c,o=e._self._setupProxy;return t("div",{staticClass:"chat-control-container"},[o.isMobile?t("div",[o.chatStore.unReadCount>0?t("div",{staticClass:"count"},[t(o.IconButton,{directives:[{name:"tap",rawName:"v-tap",value:o.toggleChatSidebar,expression:"toggleChatSidebar"}],attrs:{title:o.t("Chat"),"icon-name":o.iconName}}),t("span",{staticClass:"unreadCount"},[e._v(e._s(o.chatStore.unReadCount>10?"10+":o.chatStore.unReadCount))])],1):t(o.IconButton,{directives:[{name:"tap",rawName:"v-tap",value:o.toggleChatSidebar,expression:"toggleChatSidebar"}],attrs:{"is-active":"chat"===o.sidebarName,title:o.t("Chat"),"icon-name":o.iconName}})],1):t("div",[o.chatStore.unReadCount>0?t("el-badge",{attrs:{value:o.chatStore.unReadCount>10?"10+":o.chatStore.unReadCount}},[t(o.IconButton,{attrs:{title:o.t("Chat"),"icon-name":o.iconName},on:{"click-icon":o.toggleChatSidebar}})],1):t(o.IconButton,{attrs:{"is-active":"chat"===o.sidebarName,title:o.t("Chat"),"icon-name":o.iconName},on:{"click-icon":o.toggleChatSidebar}})],1)])},os=[];const ns=(0,zt.Q_)("chat",{state:()=>({messageList:[],isMessageDisableByAdmin:!1,unReadCount:0,isCompleted:!1,nextReqMessageId:""}),getters:{},actions:{updateMessageList(e){const t=this.messageList.map((e=>e.ID));-1===t.indexOf(e.ID)&&(this.messageList=this.messageList.concat([e]))},setMessageListInfo(e,t,o){this.messageList=e,this.isCompleted=t,this.nextReqMessageId=o},updateUnReadCount(e){this.unReadCount=e},addHistoryMessages(e){const t=this.messageList.map((e=>e.ID)),o=e.filter((e=>-1===t.indexOf(e.ID)));this.messageList=o.concat(this.messageList).sort(((e,t)=>e.sequence-t.sequence))},setSendMessageDisableChanged(e){this.isMessageDisableByAdmin=e},reset(){this.messageList=[],this.unReadCount=0,this.isMessageDisableByAdmin=!1}}});var ss=(0,Ft.defineComponent)({__name:"ChatControl",setup(e){const{t:t}=(0,to.Q)(),o=(0,Xt.o)(),n=ns(),{sidebarName:s}=(0,zt.Jk)(o),a=(0,Ft.computed)((()=>"chat"===s.value?Fn.Z.ChatActive:Fn.Z.Chat));async function r(){if(o.setSidebarOpenStatus&&"chat"===o.sidebarName)return o.setSidebarOpenStatus(!1),void o.setSidebarName("");o.setSidebarOpenStatus(!0),o.setSidebarName("chat"),n.updateUnReadCount(0)}return{__sfc:!0,t:t,basicStore:o,chatStore:n,sidebarName:s,iconName:a,toggleChatSidebar:r,IconButton:En.Z,isMobile:wo.t}}}),as=ss,rs=(0,uo.Z)(as,ts,os,!1,null,null,null),is=rs.exports,ls=function(){var e=this,t=e._self._c,o=e._self._setupProxy;return o.roomStore.isMaster?t(o.MasterApplyControl):o.roomStore.isMaster?e._e():t(o.MemberApplyControl)},cs=[],us=function(){var e=this,t=e._self._c,o=e._self._setupProxy;return t("div",{staticClass:"apply-control-container"},[t(o.IconButton,{ref:"masterApplyControlRef",attrs:{title:o.t("Raise hand"),"icon-name":o.ICON_NAME.ApplyOnSeat},on:{"click-icon":o.toggleApplySpeech}}),o.hasApplyToAnchorUser&&!o.showApplyUserList?t("div",{staticClass:"attention master-attention"},[t(o.SvgIcon,{staticClass:"apply-big-icon",attrs:{"icon-name":"apply-big-icon"}}),t("span",{staticClass:"info"},[e._v(e._s(o.applyToAnchorList.length))])],1):e._e(),o.showApplyUserList?t("div",{ref:"masterApplyListRef",class:o.isMobile?"apply-list-container-h5":"apply-list-container"},[t("div",{staticClass:"title-container"},[t("span",{staticClass:"title"},[e._v(e._s(o.t("Apply to stage application")))]),t(o.SvgIcon,{staticClass:"close",attrs:{"icon-name":"close",size:"medium"},on:{click:o.hideApplyList}})],1),t("div",{staticClass:"apply-list"},e._l(o.applyToAnchorList,(function(n,s){return t("div",{key:s,staticClass:"apply-item"},[t("div",{staticClass:"user-info"},[t(o.Avatar,{staticClass:"avatar-url",attrs:{"img-src":n.avatarUrl}}),t("span",{staticClass:"user-name",attrs:{title:n.userName||n.userId}},[e._v(e._s(n.userName||n.userId))])],1),t("div",{staticClass:"control-container"},[t("div",{staticClass:"button primary",on:{click:function(e){return o.handleUserApply(n.userId,!0)}}},[e._v(e._s(o.t("Agree")))]),t("div",{staticClass:"button outline",on:{click:function(e){return o.handleUserApply(n.userId,!1)}}},[e._v(e._s(o.t("Reject")))])])])})),0),t("div",{staticClass:"apply-footer"},[t("div",{staticClass:"button outline deny-all",on:{click:o.denyAllUserApply}},[e._v(e._s(o.t("Reject All")))])])]):e._e()],1)},ms=[];const ds=(0,oo.Z)();function ps(){const e=(0,eo.A)(),{applyToAnchorList:t}=(0,zt.Jk)(e),{t:o}=(0,to.Q)();function n(t){const{requestAction:o,requestId:n,userId:s}=t.request;o===Kt.TUIRequestAction.kRequestToTakeSeat&&s&&e.addApplyToAnchorUser({userId:s,requestId:n})}function s(t){const{userId:o}=t;e.removeApplyToAnchorUser(o)}async function a(t,o){const n=e.remoteUserObj[t];if(n){const e=n.applyToAnchorRequestId;e&&await(ds.instance?.responseRemoteRequest({requestId:e,agree:o}))}e.removeApplyToAnchorUser(t)}async function r(t){const o=t.applyToAnchorRequestId;o&&await(ds.instance?.responseRemoteRequest({requestId:o,agree:!0})),e.removeApplyToAnchorUser(t.userId)}async function i(t){const o=t.applyToAnchorRequestId;o&&await(ds.instance?.responseRemoteRequest({requestId:o,agree:!1})),e.removeApplyToAnchorUser(t.userId)}async function l(){const n=t.value.map((e=>({userId:e.userId,userName:e.userName,applyToAnchorRequestId:e.applyToAnchorRequestId})));let s=0;while(s>=0&&s{const{requestCallbackType:n,userId:s}=t,a=e.getUserName(s);switch(n){case Kt.TUIRequestCallbackType.kRequestAccepted:(0,Ht.z)({type:"success",message:`${a||s} ${o("accepted the invitation to the stage")}`,duration:Nn.U.NORMAL}),e.removeInviteToAnchorUser(s);break;case Kt.TUIRequestCallbackType.kRequestRejected:(0,Ht.z)({type:"warning",message:`${a||s} ${o("declined the invitation to the stage")}`,duration:Nn.U.NORMAL}),e.removeInviteToAnchorUser(s);break;case Kt.TUIRequestCallbackType.kRequestTimeout:break;default:break}}}));s&&s.requestId&&e.addInviteToAnchorUser({userId:n,requestId:s.requestId})}function u(t){const{userId:o,inviteToAnchorRequestId:n}=t;e.removeInviteToAnchorUser(o),n&&ds.instance?.cancelRequest({requestId:n})}function m(e){ds.instance?.kickUserOffSeatByAdmin({seatIndex:-1,userId:e.userId})}return Yt().once("ready",(()=>{ds.instance?.on(Kt.TUIRoomEvents.onRequestReceived,n),ds.instance?.on(Kt.TUIRoomEvents.onRequestCancelled,s)})),(0,Ft.onBeforeUnmount)((()=>{ds.instance?.off(Kt.TUIRoomEvents.onRequestReceived,n),ds.instance?.off(Kt.TUIRoomEvents.onRequestCancelled,s)})),{handleUserApply:a,agreeUserOnStage:r,denyUserOnStage:i,denyAllUserApply:l,inviteUserOnStage:c,cancelInviteUserOnStage:u,kickUserOffStage:m}}var fs=(0,Ft.defineComponent)({__name:"MasterApplyControl",setup(e){const{t:t}=(0,to.Q)(),o=(0,Xt.o)(),n=(0,eo.A)(),{handleUserApply:s,denyAllUserApply:a}=ps(),{showApplyUserList:r}=(0,zt.Jk)(o),{isMaster:i,applyToAnchorList:l}=(0,zt.Jk)(n),c=(0,Ft.ref)(),u=(0,Ft.ref)(),m=(0,Ft.computed)((()=>l.value.length>0));function d(){i.value&&o.setShowApplyUserList(!r.value)}function p(){o.setShowApplyUserList(!1)}function f(e){!r.value||c.value?.$el.contains(e.target)||u.value?.contains(e.target)||o.setShowApplyUserList(!1)}return(0,Ft.onMounted)((()=>{document.addEventListener("click",f,!0)})),(0,Ft.onBeforeUnmount)((()=>{document.removeEventListener("click",f,!0)})),{__sfc:!0,t:t,basicStore:o,roomStore:n,handleUserApply:s,denyAllUserApply:a,showApplyUserList:r,isMaster:i,applyToAnchorList:l,masterApplyControlRef:c,masterApplyListRef:u,hasApplyToAnchorUser:m,toggleApplySpeech:d,hideApplyList:p,handleDocumentClick:f,Avatar:fo.Z,ICON_NAME:Fn.Z,IconButton:En.Z,SvgIcon:io.Z,isMobile:wo.t}}}),vs=fs,hs=(0,uo.Z)(vs,us,ms,!1,null,null,null),gs=hs.exports,Cs=function(){var e=this,t=e._self._c,o=e._self._setupProxy;return t("div",[t("div",{staticClass:"apply-control-container"},[t(o.IconButton,{attrs:{title:o.iconTitle,"icon-name":o.iconName},on:{"click-icon":o.toggleApplySpeech}}),o.showMemberApplyAttention?t("div",{staticClass:"attention member-attention"},[t("span",{staticClass:"info"},[e._v(e._s(o.t("Please raise your hand to apply")))]),t(o.SvgIcon,{staticClass:"close",attrs:{"icon-name":"close",size:"medium"},on:{click:o.hideApplyAttention}})],1):e._e()],1),t(o.Dialog,{staticClass:"custom-element-class",attrs:{"model-value":o.showInviteDialog,title:o.t("The host invites you to speak on stage"),modal:!1,"show-close":!1,"append-to-body":!0,"close-on-click-modal":!1,"close-on-press-escape":!1,width:"500px"},scopedSlots:e._u([{key:"footer",fn:function(){return[t("div",{class:[o.isMobile?"button-container-mobile":"button-container-PC"]},[t("span",{staticClass:"cancel",on:{click:function(e){return o.handleInvite(!1)}}},[e._v(e._s(o.t("Cancel")))]),t("span",{staticClass:"agree",on:{click:function(e){return o.handleInvite(!0)}}},[e._v(e._s(o.t("Agree")))])])]},proxy:!0}])},[t("span",[e._v(" "+e._s(o.t("After agreeing to go on stage, you can turn on the camera and microphone. Do you agree to go on stage?"))+" ")])])],1)},_s=[],Ss=(0,Ft.defineComponent)({__name:"MemberApplyControl",setup(e){const t=(0,oo.Z)(),{t:o}=(0,to.Q)(),n=(0,Xt.o)(),s=(0,eo.A)(),{lang:a}=(0,zt.Jk)(n),{localUser:r}=(0,zt.Jk)(s),i=(0,Ft.ref)(!1),l=(0,Ft.ref)(!0),c=(0,Ft.ref)(""),u=(0,Ft.ref)(""),m=(0,Ft.ref)(!1),d=(0,Ft.ref)(""),p=(0,Ft.ref)("");async function f(){C(),r.value.onSeat?g():i.value?h():v()}async function v(){try{const e=await(t.instance?.takeSeat({seatIndex:-1,timeout:0,requestCallback:e=>{i.value=!1;const{requestCallbackType:t}=e;switch(t){case Kt.TUIRequestCallbackType.kRequestAccepted:(0,Ht.z)({type:"success",message:o("The host has approved your application"),duration:Nn.U.NORMAL});break;case Kt.TUIRequestCallbackType.kRequestRejected:(0,Ht.z)({type:"warning",message:o("The host has rejected your application for the stage"),duration:Nn.U.NORMAL});break;case Kt.TUIRequestCallbackType.kRequestTimeout:break}}}));e&&e.requestId&&(d.value=e.requestId),i.value=!0}catch(e){no.Z.log("member sendSpeechApplication error",e)}}async function h(){try{await(t.instance?.cancelRequest({requestId:d.value})),i.value=!1}catch(e){no.Z.log("member cancelSpeechApplication",e)}}async function g(){await(t.instance?.leaveSeat())}function C(){l.value=!1}async function _(e){const{request:{requestId:t,requestAction:o}}=e;o===Kt.TUIRequestAction.kRequestRemoteUserOnSeat&&(p.value=t,m.value=!0)}function S(e){const{requestId:t}=e;p.value===t&&(p.value="",m.value=!1)}async function I(e){await(t.instance?.responseRemoteRequest({requestId:p.value,agree:e})),m.value=!1,e&&C()}async function y(){(0,Ht.z)({type:"warning",message:o("You have been invited by the host to step down, please raise your hand if you need to speak"),duration:Nn.U.NORMAL})}return(0,Ft.watch)([r,i,a],(([e,t])=>{e.onSeat?(c.value=Fn.Z.GoOffSeat,u.value=o("Step down")):t?(c.value=Fn.Z.ApplyActive,u.value=o("Hand down")):(c.value=Fn.Z.ApplyOnSeat,u.value=o("Raise hand"))}),{immediate:!0,deep:!0}),Yt().once("ready",(()=>{t.instance?.on(Kt.TUIRoomEvents.onRequestReceived,_),t.instance?.on(Kt.TUIRoomEvents.onRequestCancelled,S),t.instance?.on(Kt.TUIRoomEvents.onKickedOffSeat,y)})),(0,Ft.onBeforeUnmount)((()=>{t.instance?.off(Kt.TUIRoomEvents.onRequestReceived,_),t.instance?.off(Kt.TUIRoomEvents.onRequestCancelled,S),t.instance?.off(Kt.TUIRoomEvents.onKickedOffSeat,y)})),{__sfc:!0,roomEngine:t,t:o,basicStore:n,roomStore:s,lang:a,localUser:r,isApplyingOnSeat:i,showMemberApplyAttention:l,iconName:c,iconTitle:u,showInviteDialog:m,applyToAnchorRequestId:d,inviteToAnchorRequestId:p,toggleApplySpeech:f,sendSeatApplication:v,cancelSeatApplication:h,leaveSeat:g,hideApplyAttention:C,onRequestReceived:_,onRequestCancelled:S,handleInvite:I,onKickedOffSeat:y,IconButton:En.Z,SvgIcon:io.Z,Dialog:Io.Z,isMobile:wo.t}}}),Is=Ss,ys=(0,uo.Z)(Is,Cs,_s,!1,null,null,null),bs=ys.exports,Rs=(0,Ft.defineComponent)({__name:"Index",setup(e){const t=(0,eo.A)();return{__sfc:!0,roomStore:t,MasterApplyControl:gs,MemberApplyControl:bs}}}),Ts=Rs,ws=(0,uo.Z)(Ts,ls,cs,!1,null,null,null),As=ws.exports,ks=function(){var e=this,t=e._self._c,o=e._self._setupProxy;return t("div",[t("div",{staticClass:"more-control-container"},[t(o.IconButton,{attrs:{"is-active":"more"===o.sidebarName,title:o.t("More"),"icon-name":o.ICON_NAME.More},on:{"click-icon":o.showMore}})],1),o.showMoreContent?t("div",{ref:"moreContentRef",staticClass:"show-more-content"},[t("div",{staticClass:"control-compent"},[o.roomStore.isSpeakAfterTakingSeatMode?t(o.ChatControl,{on:{click:function(e){return o.handleControlClick("chatControl")}}}):e._e(),t(o.ContactControl,{on:{click:function(e){return o.handleControlClick("contactControl")}}}),t(o.InviteControl,{on:{click:function(e){return o.handleControlClick("inviteControl")}}})],1),t("div",{staticClass:"close",on:{click:function(e){o.showMoreContent=!1}}},[t("i",[e._v(e._s(o.t("Cancel")))])])]):e._e()])},Ms=[];function Us(){const{t:e}=(0,to.Q)(),t=(0,Xt.o)(),{sidebarName:o}=(0,zt.Jk)(t),n=(0,Ft.computed)((()=>"more"===o.value?Fn.Z.MoreActive:Fn.Z.More));return{t:e,basicStore:t,iconName:n,sidebarName:o}}var xs=function(){var e=this,t=e._self._c,o=e._self._setupProxy;return t("div",{staticClass:"invite-control-container"},[t(o.IconButton,{attrs:{"is-active":"invite"===o.sidebarName,title:o.t("Invite"),"icon-name":o.iconName},on:{"click-icon":o.toggleInviteSidebar}}),o.isShowInviteTab?t("div",{staticClass:"invite-container"},[t(o.roomInvite,{ref:"inviteRef",on:{"on-close-invite":o.handleCloseInvite}})],1):e._e()],1)},Ls=[],Es=function(){var e=this,t=e._self._c,o=e._self._setupProxy;return t("div",{staticClass:"invite-container-main"},[t("div",{staticClass:"invite-title-main"},[t("p",[e._v(e._s(o.t("Invite")))]),o.isWeChat?t("span",{directives:[{name:"tap",rawName:"v-tap",value:o.handleCloseInvite,expression:"handleCloseInvite"}],staticClass:"cancel"},[e._v(e._s(o.t("Cancel")))]):e._e()]),e._l(o.visibleInviteContentList,(function(n){return t("div",{key:n.id,staticClass:"invite-content-main"},[t("span",{staticClass:"invite-title"},[e._v(e._s(o.t(n.title)))]),t("span",{staticClass:"invite-content"},[e._v(e._s(n.content))]),t(o.SvgIcon,{directives:[{name:"tap",rawName:"v-tap",value:()=>o.onCopy(n.copyLink),expression:"() => onCopy(item.copyLink)"}],staticClass:"copy",attrs:{"icon-name":"copy-icon",size:"custom"}})],1)})),t("span",{staticClass:"invite-bottom"},[e._v(" "+e._s(o.t("You can share the room number or link to invite more people to join the room."))+" ")])],2)},Os=[];function Ds(){const{t:e}=(0,to.Q)(),t=(0,Xt.o)(),{roomId:o,shareLink:n,isRoomLinkVisible:s}=(0,zt.Jk)(t),{origin:a,pathname:r}=location||{},i=(0,$o.Al)(),l=(0,Ft.computed)((()=>{if(n.value){const e=-1!==n.value.indexOf("?")?"&":"?";return`${n.value}${e}roomId=${o.value}`}return`${a}${r}#/home?roomId=${o.value}`})),c=(0,Ft.computed)((()=>`tuiroom://joinroom?roomId=${o.value}`));async function u(t){try{await(0,$o.jO)(t),(0,Ht.z)({message:e("Copied successfully"),type:"success"})}catch(o){(0,Ht.z)({message:e("Copied failure"),type:"error"})}}const m=[{id:1,title:"Room ID",content:o,copyLink:o,visible:!0},{id:2,title:"Room Link",content:l,copyLink:l,visible:s.value},{id:3,title:"scheme",content:c,copyLink:c,visible:!0}],d=(0,Ft.reactive)(m.filter((e=>e.visible)));return{t:e,isRoomLinkVisible:s,roomId:o,origin:a,pathname:r,isElectron:i,inviteLink:l,schemeLink:c,onCopy:u,visibleInviteContentList:d}}var Ns=(0,Ft.defineComponent)({__name:"indexH5",emits:["on-close-invite"],setup(e,{emit:t}){const{t:o,onCopy:n,visibleInviteContentList:s}=Ds();function a(){t("on-close-invite")}return{__sfc:!0,t:o,onCopy:n,visibleInviteContentList:s,emit:t,handleCloseInvite:a,SvgIcon:io.Z,isWeChat:wo.e}}}),js=Ns,Ps=(0,uo.Z)(js,Es,Os,!1,null,"eb2b478c",null),qs=Ps.exports,Zs=function(){var e=this,t=e._self._c,o=e._self._setupProxy;return t("div",{staticClass:"invite-container"},[t("div",{staticClass:"invite-notice"},[e._v(e._s(o.t("Share the room ID or invite link")))]),t("div",{staticClass:"invite-content"},[t("div",{staticClass:"invite-item"},[t("span",{staticClass:"invite-title"},[e._v(e._s(o.t("Invite by room number")))]),t("div",{staticClass:"input-area"},[t("input",{staticClass:"input",attrs:{type:"text"},domProps:{value:o.roomId}}),t(o.SvgIcon,{staticClass:"copy",attrs:{"icon-name":"copy-icon"},on:{click:function(e){return o.onCopy(o.roomId)}}})],1)]),o.isRoomLinkVisible?t("div",{staticClass:"invite-item"},[t("span",{staticClass:"invite-title"},[e._v(e._s(o.t("Invite via room link")))]),t("div",{staticClass:"input-area"},[t("input",{staticClass:"input",attrs:{type:"text"},domProps:{value:o.inviteLink}}),t(o.SvgIcon,{staticClass:"copy",attrs:{"icon-name":"copy-icon"},on:{click:function(e){return o.onCopy(o.inviteLink)}}})],1)]):e._e(),t("div",{staticClass:"invite-item"},[t("span",{staticClass:"invite-title"},[e._v(e._s(o.t("Invite via client scheme")))]),t("div",{staticClass:"input-area"},[t("input",{staticClass:"input",attrs:{type:"text"},domProps:{value:o.schemeLink}}),t(o.SvgIcon,{staticClass:"copy",attrs:{"icon-name":"copy-icon"},on:{click:function(e){return o.onCopy(o.schemeLink)}}})],1)])])])},Vs=[],Bs=(0,Ft.defineComponent)({__name:"indexPC",setup(e){const{t:t,isRoomLinkVisible:o,roomId:n,inviteLink:s,schemeLink:a,onCopy:r}=Ds();return{__sfc:!0,t:t,isRoomLinkVisible:o,roomId:n,inviteLink:s,schemeLink:a,onCopy:r,SvgIcon:io.Z}}}),$s=Bs,Fs=(0,uo.Z)($s,Zs,Vs,!1,null,"76a9ae2d",null),Hs=Fs.exports;const zs=wo.t?qs:Hs;var Js=zs,Qs=(0,Ft.defineComponent)({__name:"InviteControl",setup(e){const t=(0,Xt.o)(),{sidebarName:o}=(0,zt.Jk)(t),{t:n}=(0,to.Q)(),s=(0,Ft.ref)(!1),a=(0,Ft.ref)(),r=(0,Ft.computed)((()=>wo.t?Fn.Z.Invite:"invite"===o.value?Fn.Z.InviteActive:Fn.Z.Invite));function i(){if(wo.t){if(s.value=!0,"invite"===t.sidebarName)return void t.setSidebarName("");t.setSidebarName("invite")}else{if(t.setSidebarOpenStatus&&"invite"===t.sidebarName)return t.setSidebarOpenStatus(!1),void t.setSidebarName("");t.setSidebarOpenStatus(!0),t.setSidebarName("invite")}}function l(e){s.value&&a.value&&!a.value.$el.contains(e.target)&&(s.value=!1)}function c(){s.value=!1}return(0,Ft.onMounted)((()=>{document?.addEventListener("click",l,!0)})),(0,Ft.onUnmounted)((()=>{document?.removeEventListener("click",l,!0)})),{__sfc:!0,basicStore:t,sidebarName:o,t:n,isShowInviteTab:s,inviteRef:a,iconName:r,toggleInviteSidebar:i,handleDocumentClick:l,handleCloseInvite:c,IconButton:En.Z,roomInvite:Js}}}),Ws=Qs,Gs=(0,uo.Z)(Ws,xs,Ls,!1,null,"78681d3c",null),Ks=Gs.exports,Ys=function(){var e=this,t=e._self._c,o=e._self._setupProxy;return t("div",{staticClass:"more-control-container"},[t(o.IconButton,{attrs:{"is-active":"more"===o.sidebarName,title:o.t("Contact us"),"icon-name":"contact-us-h5"},on:{"click-icon":o.toggleContactSidebar}}),o.isShowContactTab?t("div",{staticClass:"contact-container"},[t(o.roomContact,{ref:"contactRef",on:{"on-close-contact":o.handleOnCloseContact}})],1):e._e()],1)},Xs=[],ea=function(){var e=this,t=e._self._c,o=e._self._setupProxy;return t("div",{staticClass:"contact-container-main"},[t("div",{staticClass:"contact-title-main"},[t("p",[e._v(e._s(o.t("Contact us")))]),o.isWeChat?t("span",{directives:[{name:"tap",rawName:"v-tap",value:o.handleCloseContact,expression:"handleCloseContact"}],staticClass:"cancel"},[e._v(e._s(o.t("Cancel")))]):e._e()]),e._l(o.contactContentList,(function(n){return t("div",{key:n.id,staticClass:"contact-content-main"},[t("span",{staticClass:"contact-title"},[e._v(e._s(o.t(n.title)))]),t("span",{staticClass:"contact-content"},[e._v(e._s(n.content))]),t(o.SvgIcon,{directives:[{name:"tap",rawName:"v-tap",value:()=>o.onCopy(n.copyLink),expression:"() => onCopy(item.copyLink)"}],staticClass:"copy",attrs:{"icon-name":"copy-icon",size:"custom"}})],1)})),t("span",{staticClass:"contact-bottom"},[e._v(" "+e._s(o.t("If you have any questions, please feel free to join our QQ group or send an email"))+" ")])],2)},ta=[];function oa(){const{t:e}=(0,to.Q)(),t="592465424",o="matthewwu@tencent.com";async function n(t){try{await(0,$o.jO)(t),(0,Ht.z)({message:e("Copied successfully"),type:"success"})}catch(o){(0,Ht.z)({message:e("Copied failure"),type:"error"})}}return{t:e,groupNumber:t,email:o,onCopy:n}}var na=(0,Ft.defineComponent)({__name:"indexH5",emits:["on-close-contact"],setup(e,{emit:t}){const{t:o,groupNumber:n,email:s,onCopy:a}=oa(),r=(0,Ft.reactive)([{id:1,title:"group chat",content:n,copyLink:n},{id:2,title:"Email",content:s,copyLink:s}]);function i(){t("on-close-contact")}return{__sfc:!0,t:o,groupNumber:n,email:s,onCopy:a,emit:t,contactContentList:r,handleCloseContact:i,SvgIcon:io.Z,isWeChat:wo.e}}}),sa=na,aa=(0,uo.Z)(sa,ea,ta,!1,null,"76fbca8c",null),ra=aa.exports,ia=function(){var e=this,t=e._self._c,o=e._self._setupProxy;return t("div",{staticClass:"more-container"},[t("div",{staticClass:"more-notice"},[e._v(e._s(o.t("Join our QQ group chat or email us.")))]),t("div",{staticClass:"more-content"},[t("div",{staticClass:"more-item"},[t("span",{staticClass:"more-title"},[e._v(e._s(o.t("group chat")))]),t("div",{staticClass:"input-area"},[t("input",{staticClass:"input",attrs:{type:"text"},domProps:{value:o.groupNumber}}),t(o.SvgIcon,{staticClass:"copy",attrs:{"icon-name":"copy-icon"},on:{click:function(e){return o.onCopy(o.groupNumber)}}})],1)]),t("div",{staticClass:"more-item"},[t("span",{staticClass:"more-title"},[e._v(e._s(o.t("Email")))]),t("div",{staticClass:"input-area"},[t("input",{staticClass:"input",attrs:{type:"text"},domProps:{value:o.email}}),t(o.SvgIcon,{staticClass:"copy",attrs:{"icon-name":"copy-icon"},on:{click:function(e){return o.onCopy(o.email)}}})],1)])])])},la=[],ca=(0,Ft.defineComponent)({__name:"indexPC",setup(e){const{t:t,groupNumber:o,email:n,onCopy:s}=oa();return{__sfc:!0,t:t,groupNumber:o,email:n,onCopy:s,SvgIcon:io.Z}}}),ua=ca,ma=(0,uo.Z)(ua,ia,la,!1,null,"4d3067ac",null),da=ma.exports;const pa=wo.t?ra:da;var fa=pa,va=(0,Ft.defineComponent)({__name:"ContactControl",setup(e){const t=(0,Xt.o)(),{sidebarName:o}=(0,zt.Jk)(t),{t:n}=(0,to.Q)(),s=(0,Ft.ref)(!1),a=(0,Ft.ref)();function r(){if(wo.t){if(s.value=!0,"more"===t.sidebarName)return void t.setSidebarName("");t.setSidebarName("more")}else{if(t.setSidebarOpenStatus&&"more"===t.sidebarName)return t.setSidebarOpenStatus(!1),void t.setSidebarName("");t.setSidebarOpenStatus(!0),t.setSidebarName("more")}}function i(e){s.value&&a.value&&!a.value.$el.contains(e.target)&&(s.value=!1)}function l(){s.value=!1}return(0,Ft.onMounted)((()=>{document.addEventListener("click",i,!0)})),(0,Ft.onUnmounted)((()=>{document.removeEventListener("click",i,!0)})),{__sfc:!0,basicStore:t,sidebarName:o,t:n,isShowContactTab:s,contactRef:a,toggleContactSidebar:r,handleDocumentClick:i,handleOnCloseContact:l,IconButton:En.Z,roomContact:fa}}}),ha=va,ga=(0,uo.Z)(ha,Ys,Xs,!1,null,"251c1f14",null),Ca=ga.exports;function _a(e){return{all:e=e||new Map,on:function(t,o){var n=e.get(t);n?n.push(o):e.set(t,[o])},off:function(t,o){var n=e.get(t);n&&(o?n.splice(n.indexOf(o)>>>0,1):e.set(t,[]))},emit:function(t,o){var n=e.get(t);n&&n.slice().map((function(e){e(o)})),(n=e.get("*"))&&n.slice().map((function(e){e(t,o)}))}}}const Sa=_a();var Ia=Sa,ya=(0,Ft.defineComponent)({__name:"MoreControlH5",setup(e){const t=(0,Ft.ref)(!1),o=(0,Ft.ref)(),{t:n,sidebarName:s}=Us(),a=(0,eo.A)();function r(){t.value=!0}function i(e){an.reportEvent({name:e,ext1:e}),Ia.emit("experience-communication",e)}function l(e){t.value&&!o.value.contains(e.target)&&(t.value=!1)}return(0,Ft.onMounted)((()=>{document?.addEventListener("click",l,!0)})),(0,Ft.onUnmounted)((()=>{document?.removeEventListener("click",l,!0)})),{__sfc:!0,showMoreContent:t,moreContentRef:o,t:n,sidebarName:s,roomStore:a,showMore:r,handleControlClick:i,handleDocumentClick:l,IconButton:En.Z,ChatControl:is,InviteControl:Ks,ContactControl:Ca,ICON_NAME:Fn.Z}}}),ba=ya,Ra=(0,uo.Z)(ba,ks,Ms,!1,null,"7814bc4f",null),Ta=Ra.exports,wa=function(){var e=this,t=e._self._c,o=e._self._setupProxy;return t("div",{staticClass:"more-control-container"},[t(o.IconButton,{attrs:{"is-active":"more"===o.sidebarName,title:o.t("More"),"icon-name":o.iconName},on:{"click-icon":o.toggleMoreSidebar}})],1)},Aa=[],ka=(0,Ft.defineComponent)({__name:"MoreControlPC",setup(e){const{t:t,iconName:o,basicStore:n,sidebarName:s}=Us();function a(){if(n.setSidebarOpenStatus&&"more"===n.sidebarName)return n.setSidebarOpenStatus(!1),void n.setSidebarName("");n.setSidebarOpenStatus(!0),n.setSidebarName("more")}return{__sfc:!0,t:t,iconName:o,basicStore:n,sidebarName:s,toggleMoreSidebar:a,IconButton:En.Z}}}),Ma=ka,Ua=(0,uo.Z)(Ma,wa,Aa,!1,null,"8fb09940",null),xa=Ua.exports;const La=wo.t?Ta:xa;var Ea=La;function Oa(){const e=(0,eo.A)(),{t:t}=(0,to.Q)();return{t:t,roomStore:e}}var Da=(0,Ft.defineComponent)({__name:"indexH5",setup(e){const{roomStore:t}=Oa();function o(e){an.reportEvent({name:e,ext1:e}),Ia.emit("experience-communication",e)}return{__sfc:!0,roomStore:t,handleControlClick:o,AudioControl:Zn,VideoControl:Qn,ManageMemberControl:es,ChatControl:is,ApplyControl:As,MoreControl:Ea}}}),Na=Da,ja=(0,uo.Z)(Na,Mn,Un,!1,null,"6f1ee0d6",null),Pa=ja.exports,qa=function(){var e=this,t=e._self._c,o=e._self._setupProxy;return t("div",{staticClass:"footer-container"},[t("div",{staticClass:"left-container"},[t(o.AudioControl,{staticClass:"left-container-item",on:{click:function(e){return o.handleControlClick("audioControl")}}}),t(o.VideoControl,{staticClass:"left-container-item",on:{click:function(e){return o.handleControlClick("videoControl")}}})],1),t("div",{staticClass:"center-container"},[t(o.ScreenShareControl,{on:{click:function(e){return o.handleControlClick("screenShareControl")}}}),t(o.FullScreenControl,{on:{click:function(e){return o.handleControlClick("fullScreenControl")}}}),o.roomStore.isMaster?t(o.ManageMemberControl,{on:{click:function(e){return o.handleControlClick("manageMemberControl")}}}):e._e(),t(o.InviteControl,{on:{click:function(e){return o.handleControlClick("inviteControl")}}}),t(o.ChatControl,{on:{click:function(e){return o.handleControlClick("chatControl")}}}),o.roomStore.isSpeakAfterTakingSeatMode?t(o.ApplyControl,{on:{click:function(e){return o.handleControlClick("applyControl")}}}):e._e(),t(o.MoreControl,{on:{click:function(e){return o.handleControlClick("moreControl")}}}),t(o.SettingControl,{on:{click:function(e){return o.handleControlClick("settingControl")}}})],1),t("div",{staticClass:"right-container"},[t(o.EndControl,{on:{"on-destroy-room":o.onDestroyRoom,"on-exit-room":o.onExitRoom}})],1)])},Za=[],Va=function(){var e=this,t=e._self._c,o=e._self._setupProxy;return t("div",{staticClass:"screen-share-control-container"},[t(o.IconButton,{ref:"btnStopRef",attrs:{"is-active":o.isSharing,disabled:o.screenShareDisabled,title:o.title,"icon-name":o.iconName},on:{"click-icon":o.toggleScreenShare}}),o.showStopShareRegion?t("div",{staticClass:"stop-share-region",on:{click:o.openStopConfirmDialog}},[t(o.SvgIcon,{staticClass:"stop-share-icon",attrs:{"icon-name":o.ICON_NAME.ScreenShareStopped}}),t("span",[e._v(e._s(o.t("End sharing")))])],1):e._e(),t(o.Dialog,{attrs:{"model-value":o.dialogVisible,width:"420px",title:o.t("Stop sharing?"),modal:!0,"append-to-body":!1,"before-close":o.cancelStop},scopedSlots:e._u([{key:"footer",fn:function(){return[t("span",[t("el-button",{attrs:{type:"primary"},on:{click:o.stopScreenShare}},[e._v(e._s(o.t("Stop sharing")))]),t("el-button",{attrs:{type:"default"},on:{click:o.cancelStop}},[e._v(e._s(o.t("Cancel")))])],1)]},proxy:!0}])},[t("span",[e._v(" "+e._s(o.t("Others will no longer see your screen after you stop sharing. Are you sure you want to stop?")))])])],1)},Ba=[],$a=(0,Ft.defineComponent)({__name:"Index",setup(e){const t=(0,oo.Z)(),o="[ScreenShareControl]",n=(0,eo.A)(),{isAnchor:s,isAudience:a,hasOtherScreenShare:r}=(0,zt.Jk)(n),{t:i}=(0,to.Q)(),l=(0,Ft.ref)(),c=(0,Ft.ref)(!1),u=(0,Ft.ref)(!1),m=(0,Ft.ref)(!1),d=(0,Ft.computed)((()=>a.value)),p=(0,Ft.computed)((()=>c.value?i("Sharing"):i("Share screen"))),f=(0,Ft.computed)((()=>d.value?Fn.Z.ScreenShareDisabled:c.value?Fn.Z.ScreenSharing:Fn.Z.ScreenShare));async function v(){if(a.value)(0,Ht.z)({type:"warning",message:i("You currently do not have sharing permission, please raise your hand to apply for sharing permission first"),duration:Nn.U.LONG});else if(r.value)(0,Ht.z)({type:"warning",message:i("Another user is currently sharing the screen, screen sharing is not possible."),duration:Nn.U.LONG});else if(c.value)u.value=!0;else try{await(t.instance?.startScreenSharing()),c.value=!0}catch(e){no.Z.error(`${o}startScreenShare error:`,e.name,e.message,e.code);let t="";switch(e.name){case"NotReadableError":t="系统禁止当前浏览器获取屏幕内容";break;case"NotAllowedError":t=e.message.includes("Permission denied by system")?"系统禁止当前浏览器获取屏幕内容":"用户拒绝/取消屏幕分享";break;default:t="屏幕分享遇到未知错误";break}(0,Ht.z)({type:"warning",message:t,duration:Nn.U.LONG})}}function h(){u.value=!1,c.value&&(m.value=!0)}function g(){m.value=!1}async function C(){if(c.value)try{await(t.instance?.stopScreenSharing()),m.value=!1,c.value=!1}catch(e){no.Z.error(`${o}stopScreenShare error:`,e)}}function _(){c.value=!1}return(0,Ft.watch)(s,((e,t)=>{!t&&e&&c.value&&C()})),Yt().once("ready",(()=>{t.instance?.on(Kt.TUIRoomEvents.onUserScreenCaptureStopped,_)})),(0,Ft.onUnmounted)((()=>{t.instance?.off(Kt.TUIRoomEvents.onUserScreenCaptureStopped,_)})),{__sfc:!0,roomEngine:t,logPrefix:o,roomStore:n,isAnchor:s,isAudience:a,hasOtherScreenShare:r,t:i,btnStopRef:l,isSharing:c,showStopShareRegion:u,dialogVisible:m,screenShareDisabled:d,title:p,iconName:f,toggleScreenShare:v,openStopConfirmDialog:h,cancelStop:g,stopScreenShare:C,screenCaptureStopped:_,Dialog:Io.Z,IconButton:En.Z,SvgIcon:io.Z,ICON_NAME:Fn.Z}}}),Fa=$a,Ha=(0,uo.Z)(Fa,Va,Ba,!1,null,"5d38a258",null),za=Ha.exports,Ja=function(){var e=this,t=e._self._c,o=e._self._setupProxy;return t("div",{staticClass:"fullscreen-control-container"},[t(o.IconButton,{attrs:{"is-active":o.isFullScreen,title:o.title,"icon-name":o.iconName},on:{"click-icon":o.toggleScreen}})],1)},Qa=[],Wa=o(7175),Ga=(0,Ft.defineComponent)({__name:"FullScreenControl",setup(e){const{t:t}=(0,to.Q)(),o=(0,Ft.ref)(!1),n=(0,Ft.computed)((()=>o.value?t("Exit"):t("Full screen"))),s=(0,Ft.computed)((()=>o.value?Fn.Z.ExitFullScreen:Fn.Z.FullScreen));function a(){if(o.value)(0,$o.Pr)();else if(Wa.P_){const e=document.body;e&&(0,$o.EV)(e)}else{const e=document.getElementById("roomContainer");e&&(0,$o.EV)(e)}}function r(){o.value=!o.value}return(0,Ft.onMounted)((()=>{["fullscreenchange","webkitfullscreenchange","mozfullscreenchange"].forEach((e=>{window.addEventListener(e,r)}))})),(0,Ft.onUnmounted)((()=>{["fullscreenchange","webkitfullscreenchange","mozfullscreenchange"].forEach((e=>{window.removeEventListener(e,r)}))})),{__sfc:!0,t:t,isFullScreen:o,title:n,iconName:s,toggleScreen:a,handleFullScreenChange:r,IconButton:En.Z}}}),Ka=Ga,Ya=(0,uo.Z)(Ka,Ja,Qa,!1,null,"2ebc7fcf",null),Xa=Ya.exports,er=function(){var e=this,t=e._self._c,o=e._self._setupProxy;return t("div",{staticClass:"setting-control-container"},[t(o.IconButton,{attrs:{"is-active":o.showSettingDialog,title:o.t("Settings"),"icon-name":o.iconName},on:{"click-icon":o.handleShowSettingDialog}})],1)},tr=[],or=(0,Ft.defineComponent)({__name:"SettingControl",setup(e){const{t:t}=(0,to.Q)(),o=(0,Xt.o)(),{showSettingDialog:n}=(0,zt.Jk)(o),s=(0,Ft.computed)((()=>n.value?Fn.Z.SettingActive:Fn.Z.Setting));function a(){o.setShowSettingDialog(!o.showSettingDialog)}return{__sfc:!0,t:t,basicStore:o,showSettingDialog:n,iconName:s,handleShowSettingDialog:a,IconButton:En.Z}}}),nr=or,sr=(0,uo.Z)(nr,er,tr,!1,null,"2c9e5284",null),ar=sr.exports,rr=(0,Ft.defineComponent)({__name:"indexPC",emits:["on-destroy-room","on-exit-room"],setup(e,{emit:t}){const{roomStore:o}=Oa(),n=e=>{t("on-destroy-room",e),an.reportEvent({name:"destroyRoom",ext1:"destroyRoom-success"})},s=e=>{t("on-exit-room",e),an.reportEvent({name:"exitRoom",ext1:"exitRoom-success"})};function a(e){an.reportEvent({name:e,ext1:e}),Ia.emit("experience-communication",e)}return{__sfc:!0,roomStore:o,emit:t,onDestroyRoom:n,onExitRoom:s,handleControlClick:a,AudioControl:Zn,ScreenShareControl:za,FullScreenControl:Xa,InviteControl:Ks,VideoControl:Qn,ManageMemberControl:es,ChatControl:is,ApplyControl:As,MoreControl:Ea,EndControl:ko,SettingControl:ar}}}),ir=rr,lr=(0,uo.Z)(ir,qa,Za,!1,null,"fcf4ace8",null),cr=lr.exports;const ur=wo.t?Pa:cr;var mr=ur,dr=function(){var e=this,t=e._self._c,o=e._self._setupProxy;return o.showSideBar?t(o.popup,{staticClass:"sidebar-container-mobile",attrs:{title:o.title},scopedSlots:e._u([{key:"sidebarContent",fn:function(){return[t("div",{staticStyle:{height:"100%"}},["chat"===o.sidebarName?t(o.Chat):e._e(),"manage-member"===o.sidebarName?t(o.ManageMember):e._e()],1)]},proxy:!0},{key:"sidebarFooter",fn:function(){return[t("div",["chat"===o.sidebarName?t(o.ChatEditor):e._e()],1)]},proxy:!0}],null,!1,403798847)}):e._e()},pr=[],fr=function(){var e=this,t=e._self._c,o=e._self._setupProxy;return t("div",{class:[o.isMobile?"chat-container-h5":"chat-container"]},[t(o.MessageList),o.isMobile?e._e():t(o.ChatEditor)],1)},vr=[],hr=function(){var e=this,t=e._self._c,o=e._self._setupProxy;return t("div",{class:o.isMobile?"message-list-container-h5":"message-list-container"},[t("div",{staticClass:"message-list"},e._l(o.messageList,(function(n){return t("div",{key:n.ID,ref:"messageAimId",refInFor:!0,class:["message-item",""+("out"===n.flow?"is-me":"")]},[t("div",{staticClass:"message-header",attrs:{title:n.nick||n.from}},[e._v(" "+e._s(n.nick||n.from)+" ")]),t("div",{staticClass:"message-body"},["TIMTextElem"===n.type?t(o.MessageText,{attrs:{data:n.payload.text}}):e._e()],1)])})),0),t("div",{ref:"messageBottomEl",staticClass:"message-bottom"})])},gr=[],Cr=function(){var e=this,t=e._self._c,o=e._self._setupProxy;return t("span",e._l(o.handleTextMessageShowContext(o.props.data),(function(o,n){return t("span",{key:n},["text"===o.name?t("span",{staticClass:"text-box"},[e._v(e._s(o.text))]):"img"===o.name?t("img",{staticClass:"text-img",attrs:{src:o.src}}):e._e()])})),0)},_r=[];const Sr="https://web.sdk.qcloud.com/im/assets/emoji/",Ir={"[NO]":"emoji_0@2x.png","[OK]":"emoji_1@2x.png","[下雨]":"emoji_2@2x.png","[么么哒]":"emoji_3@2x.png","[乒乓]":"emoji_4@2x.png","[便便]":"emoji_5@2x.png","[信封]":"emoji_6@2x.png","[偷笑]":"emoji_7@2x.png","[傲慢]":"emoji_8@2x.png","[再见]":"emoji_9@2x.png","[冷汗]":"emoji_10@2x.png","[凋谢]":"emoji_11@2x.png","[刀]":"emoji_12@2x.png","[删除]":"emoji_13@2x.png","[勾引]":"emoji_14@2x.png","[发呆]":"emoji_15@2x.png","[发抖]":"emoji_16@2x.png","[可怜]":"emoji_17@2x.png","[可爱]":"emoji_18@2x.png","[右哼哼]":"emoji_19@2x.png","[右太极]":"emoji_20@2x.png","[右车头]":"emoji_21@2x.png","[吐]":"emoji_22@2x.png","[吓]":"emoji_23@2x.png","[咒骂]":"emoji_24@2x.png","[咖啡]":"emoji_25@2x.png","[啤酒]":"emoji_26@2x.png","[嘘]":"emoji_27@2x.png","[回头]":"emoji_28@2x.png","[困]":"emoji_29@2x.png","[坏笑]":"emoji_30@2x.png","[多云]":"emoji_31@2x.png","[大兵]":"emoji_32@2x.png","[大哭]":"emoji_33@2x.png","[太阳]":"emoji_34@2x.png","[奋斗]":"emoji_35@2x.png","[奶瓶]":"emoji_36@2x.png","[委屈]":"emoji_37@2x.png","[害羞]":"emoji_38@2x.png","[尴尬]":"emoji_39@2x.png","[左哼哼]":"emoji_40@2x.png","[左太极]":"emoji_41@2x.png","[左车头]":"emoji_42@2x.png","[差劲]":"emoji_43@2x.png","[弱]":"emoji_44@2x.png","[强]":"emoji_45@2x.png","[彩带]":"emoji_46@2x.png","[彩球]":"emoji_47@2x.png","[得意]":"emoji_48@2x.png","[微笑]":"emoji_49@2x.png","[心碎了]":"emoji_50@2x.png","[快哭了]":"emoji_51@2x.png","[怄火]":"emoji_52@2x.png","[怒]":"emoji_53@2x.png","[惊恐]":"emoji_54@2x.png","[惊讶]":"emoji_55@2x.png","[憨笑]":"emoji_56@2x.png","[手枪]":"emoji_57@2x.png","[打哈欠]":"emoji_58@2x.png","[抓狂]":"emoji_59@2x.png","[折磨]":"emoji_60@2x.png","[抠鼻]":"emoji_61@2x.png","[抱抱]":"emoji_62@2x.png","[抱拳]":"emoji_63@2x.png","[拳头]":"emoji_64@2x.png","[挥手]":"emoji_65@2x.png","[握手]":"emoji_66@2x.png","[撇嘴]":"emoji_67@2x.png","[擦汗]":"emoji_68@2x.png","[敲打]":"emoji_69@2x.png","[晕]":"emoji_70@2x.png","[月亮]":"emoji_71@2x.png","[棒棒糖]":"emoji_72@2x.png","[汽车]":"emoji_73@2x.png","[沙发]":"emoji_74@2x.png","[流汗]":"emoji_75@2x.png","[流泪]":"emoji_76@2x.png","[激动]":"emoji_77@2x.png","[灯泡]":"emoji_78@2x.png","[炸弹]":"emoji_79@2x.png","[熊猫]":"emoji_80@2x.png","[爆筋]":"emoji_81@2x.png","[爱你]":"emoji_82@2x.png","[爱心]":"emoji_83@2x.png","[爱情]":"emoji_84@2x.png","[猪头]":"emoji_85@2x.png","[猫咪]":"emoji_86@2x.png","[献吻]":"emoji_87@2x.png","[玫瑰]":"emoji_88@2x.png","[瓢虫]":"emoji_89@2x.png","[疑问]":"emoji_90@2x.png","[白眼]":"emoji_91@2x.png","[皮球]":"emoji_92@2x.png","[睡觉]":"emoji_93@2x.png","[磕头]":"emoji_94@2x.png","[示爱]":"emoji_95@2x.png","[礼品袋]":"emoji_96@2x.png","[礼物]":"emoji_97@2x.png","[篮球]":"emoji_98@2x.png","[米饭]":"emoji_99@2x.png","[糗大了]":"emoji_100@2x.png","[红双喜]":"emoji_101@2x.png","[红灯笼]":"emoji_102@2x.png","[纸巾]":"emoji_103@2x.png","[胜利]":"emoji_104@2x.png","[色]":"emoji_105@2x.png","[药]":"emoji_106@2x.png","[菜刀]":"emoji_107@2x.png","[蛋糕]":"emoji_108@2x.png","[蜡烛]":"emoji_109@2x.png","[街舞]":"emoji_110@2x.png","[衰]":"emoji_111@2x.png","[西瓜]":"emoji_112@2x.png","[调皮]":"emoji_113@2x.png","[象棋]":"emoji_114@2x.png","[跳绳]":"emoji_115@2x.png","[跳跳]":"emoji_116@2x.png","[车厢]":"emoji_117@2x.png","[转圈]":"emoji_118@2x.png","[鄙视]":"emoji_119@2x.png","[酷]":"emoji_120@2x.png","[钞票]":"emoji_121@2x.png","[钻戒]":"emoji_122@2x.png","[闪电]":"emoji_123@2x.png","[闭嘴]":"emoji_124@2x.png","[闹钟]":"emoji_125@2x.png","[阴险]":"emoji_126@2x.png","[难过]":"emoji_127@2x.png","[雨伞]":"emoji_128@2x.png","[青蛙]":"emoji_129@2x.png","[面条]":"emoji_130@2x.png","[鞭炮]":"emoji_131@2x.png","[风车]":"emoji_132@2x.png","[飞吻]":"emoji_133@2x.png","[飞机]":"emoji_134@2x.png","[饥饿]":"emoji_135@2x.png","[香蕉]":"emoji_136@2x.png","[骷髅]":"emoji_137@2x.png","[麦克风]":"emoji_138@2x.png","[麻将]":"emoji_139@2x.png","[鼓掌]":"emoji_140@2x.png","[龇牙]":"emoji_141@2x.png"},yr=["[龇牙]","[调皮]","[流汗]","[偷笑]","[再见]","[敲打]","[擦汗]","[猪头]","[玫瑰]","[流泪]","[大哭]","[嘘]","[酷]","[抓狂]","[委屈]","[便便]","[炸弹]","[菜刀]","[可爱]","[色]","[害羞]","[得意]","[吐]","[微笑]","[怒]","[尴尬]","[惊恐]","[冷汗]","[爱心]","[示爱]","[白眼]","[傲慢]","[难过]","[惊讶]","[疑问]","[困]","[么么哒]","[憨笑]","[爱情]","[衰]","[撇嘴]","[阴险]","[奋斗]","[发呆]","[右哼哼]","[抱抱]","[坏笑]","[飞吻]","[鄙视]","[晕]","[大兵]","[可怜]","[强]","[弱]","[握手]","[胜利]","[抱拳]","[凋谢]","[米饭]","[蛋糕]","[西瓜]","[啤酒]","[瓢虫]","[勾引]","[OK]","[爱你]","[咖啡]","[月亮]","[刀]","[发抖]","[差劲]","[拳头]","[心碎了]","[太阳]","[礼物]","[皮球]","[骷髅]","[挥手]","[闪电]","[饥饿]","[咒骂]","[折磨]","[抠鼻]","[鼓掌]","[糗大了]","[左哼哼]","[打哈欠]","[快哭了]","[吓]","[篮球]","[乒乓]","[NO]","[跳跳]","[怄火]","[转圈]","[磕头]","[回头]","[跳绳]","[激动]","[街舞]","[献吻]","[左太极]","[右太极]","[闭嘴]","[猫咪]","[红双喜]","[鞭炮]","[红灯笼]","[麻将]","[麦克风]","[礼品袋]","[信封]","[象棋]","[彩带]","[蜡烛]","[爆筋]","[棒棒糖]","[奶瓶]","[面条]","[香蕉]","[飞机]","[左车头]","[车厢]","[右车头]","[多云]","[下雨]","[钞票]","[熊猫]","[灯泡]","[风车]","[闹钟]","[雨伞]","[彩球]","[钻戒]","[沙发]","[纸巾]","[手枪]","[青蛙]"];function br(e){const t=[];let o=e,n=-1,s=-1;while(""!==o)switch(n=o.indexOf("["),s=o.indexOf("]"),n){case 0:if(-1===s)t.push({name:"text",text:o}),o="";else{const e=o.slice(0,s+1);Ir[e]?(t.push({name:"img",src:Sr+Ir[e]}),o=o.substring(s+1)):(t.push({name:"text",text:"["}),o=o.slice(1))}break;case-1:t.push({name:"text",text:o}),o="";break;default:t.push({name:"text",text:o.slice(0,n)}),o=o.substring(n);break}return t}var Rr=(0,Ft.defineComponent)({__name:"MessageText",props:["data"],setup(e){const t=e,o=e=>br(e);return{__sfc:!0,props:t,handleTextMessageShowContext:o}}}),Tr=Rr,wr=(0,uo.Z)(Tr,Cr,_r,!1,null,"467c6786",null),Ar=wr.exports;function kr(){const{t:e}=(0,to.Q)(),t=(0,oo.Z)(),o=ns(),n=(0,Xt.o)(),{roomId:s}=(0,zt.Jk)(n),{messageList:a,isCompleted:r,nextReqMessageId:i}=(0,zt.Jk)(o),l=(0,Ft.ref)([]),c=(0,Ft.ref)(),u=(0,Ft.ref)(null);let m=!1,d=!1,p=!1;const f=e=>{const t=e.target,o=t.scrollHeight-t.scrollTop-t.clientHeight;d=o>80,p&&(t.scrollTop=0,p=!1),t.scrollTop<40&&m&&v()};async function v(){const e=t.instance?.getTIM(),n=await e.getMessageList({conversationID:`GROUP${s.value}`,nextReqMessageID:i.value}),{nextReqMessageID:r,messageList:l,isCompleted:c}=n.data;a.value.splice(0,0,...l);const u=a.value.filter((e=>"TIMTextElem"===e.type));o.setMessageListInfo(u,c,r)}async function h(){let e=0;const o={currentMessageList:[],isCompleted:!1,nextReqMessageId:""},n=t.instance?.getTIM(),a=async()=>{const t={conversationID:`GROUP${s.value}`};""!==o.nextReqMessageId&&(t.nextReqMessageID=o.nextReqMessageId);const r=await n.getMessageList(t),{messageList:i,isCompleted:l,nextReqMessageID:c}=r.data;o.currentMessageList.splice(0,0,...i),o.isCompleted=!(i.length>0)||l,o.nextReqMessageId=c,o.isCompleted||o.currentMessageList.length>=15||(e+=1,1===e&&await a())};return await a(),o}(0,Ft.watch)(r,(e=>{m=!e}),{immediate:!0,deep:!0}),(0,Ft.watch)(a,(async(e,t)=>{if(await(0,Ft.nextTick)(),d){if(e.length>=1){const o=e[e.length-1],n=t[t.length-1];"out"===o.flow&&o.ID!==n.ID&&u.value&&u.value.scrollIntoView()}}else u.value&&u.value.scrollIntoView()}));const g=e=>{const{message:t}=e;o.updateMessageList({ID:t.messageId,type:"TIMTextElem",payload:{text:t.message},nick:t?.userName||t.userId,from:t.userId,flow:"in",sequence:Math.random()})};return{t:e,roomEngine:t,historyMessageList:l,messageAimId:c,messageBottomEl:u,handleMessageListScroll:f,handleGetHistoryMessageList:v,onReceiveTextMessage:g,messageList:a,isScrollNotAtBottom:d,getMessageList:h}}var Mr=(0,Ft.defineComponent)({__name:"MessageListPC",setup(e){const t=ns(),{messageAimId:o,roomEngine:n,messageBottomEl:s,handleMessageListScroll:a,onReceiveTextMessage:r,messageList:i,getMessageList:l}=kr();return(0,Ft.onMounted)((async()=>{const{currentMessageList:e,isCompleted:n,nextReqMessageId:s}=await l(),r=e.filter((e=>"TIMTextElem"===e.type));t.setMessageListInfo(r,n,s),await(0,Ft.nextTick)((()=>{if(o?.value?.length>0){const e=o?.value[o?.value?.length-1];e.scrollIntoView()}})),window.addEventListener("scroll",a,!0)})),Yt().once("ready",(()=>{n.instance?.on(Kt.TUIRoomEvents.onReceiveTextMessage,r)})),(0,Ft.onUnmounted)((()=>{window.removeEventListener("scroll",a,!0),n.instance?.off(Kt.TUIRoomEvents.onReceiveTextMessage,r)})),{__sfc:!0,chatStore:t,messageAimId:o,roomEngine:n,messageBottomEl:s,handleMessageListScroll:a,onReceiveTextMessage:r,messageList:i,getMessageList:l,MessageText:Ar,isMobile:wo.t}}}),Ur=Mr,xr=(0,uo.Z)(Ur,hr,gr,!1,null,"3ee0bdff",null),Lr=xr.exports,Er=Lr,Or=function(){var e=this,t=e._self._c,o=e._self._setupProxy;return t("div",{class:["chat-editor",o.cannotSendMessage?"disable-editor":""]},[t("div",{staticClass:"input-content"},[t(o.emoji,{staticClass:"chat-emoji",on:{"choose-emoji":o.handleChooseEmoji}}),t("input",{directives:[{name:"model",rawName:"v-model",value:o.sendMsg,expression:"sendMsg"}],ref:"editorInputEle",staticClass:"content-bottom-input",attrs:{type:"text",disabled:o.cannotSendMessage,placeholder:o.cannotSendMessage?o.t("Muted by the moderator"):o.t("Type a message"),enterkeyhint:"send"},domProps:{value:o.sendMsg},on:{keyup:function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"enter",13,t.key,"Enter")?null:o.sendMessage.apply(null,arguments)},input:function(e){e.target.composing||(o.sendMsg=e.target.value)}}})],1)])},Dr=[],Nr=function(){var e=this,t=e._self._c,o=e._self._setupProxy;return t("div",{staticClass:"emoji-tool"},[t(o.SvgIcon,{staticClass:"arrow emoji-icon",attrs:{"icon-name":"emoji-h5",size:"medium"},on:{click:o.togglePopover}}),o.visible?t("div",{ref:"emojiListRef",class:o.isMobile?"emoji-list-h5":"emoji-list",attrs:{id:"emoji-list"}},e._l(o.emojiList,(function(e,n){return t("div",{key:n,staticClass:"emoji-item",on:{click:function(t){return o.chooseEmoji(e)}}},[t("img",{attrs:{src:o.emojiUrl+o.emojiMap[e]}})])})),0):e._e()],1)},jr=[],Pr=(0,Ft.defineComponent)({__name:"emojiPC",emits:["choose-emoji"],setup(e,{emit:t}){const o=(0,Ft.ref)(),n=(0,Ft.ref)(!1),s=e=>{const o=e;r(),t("choose-emoji",o)},a=()=>{n.value=!n.value},r=()=>{n.value=!1};function i(e){n.value&&!o.value.contains(e.target)&&(n.value=!1)}return(0,Ft.onMounted)((()=>{document.addEventListener("click",i,!0)})),(0,Ft.onUnmounted)((()=>{document.removeEventListener("click",i,!0)})),{__sfc:!0,emojiListRef:o,visible:n,emit:t,chooseEmoji:s,togglePopover:a,closePopover:r,handleDocumentClick:i,emojiUrl:Sr,emojiMap:Ir,emojiList:yr,SvgIcon:io.Z,isMobile:wo.t}}}),qr=Pr,Zr=(0,uo.Z)(qr,Nr,jr,!1,null,"78a2609f",null),Vr=Zr.exports,Br=Vr;function $r(){const e=(0,oo.Z)(),{t:t}=(0,to.Q)(),o=ns(),n=(0,eo.A)(),{isMessageDisableByAdmin:s}=(0,zt.Jk)(o),{isMessageDisableForAllUser:a}=(0,zt.Jk)(n),r=(0,Ft.ref)(),i=(0,Ft.ref)(""),l=(0,Ft.ref)(!1);(0,Ft.watch)(s,(e=>{e&&(i.value="")})),(0,Ft.watch)(a,(e=>{e&&(i.value="")}));const c=(0,Ft.computed)((()=>Boolean(s.value||a.value))),u=async()=>{const s=i.value.replace("\n","");if(i.value="",""!==s){l.value=!1;try{await(e.instance?.sendTextMessage({messageText:s})),o.updateMessageList({ID:Math.random().toString(),type:"TIMTextElem",payload:{text:s},nick:n.localUser.userName||n.localUser.userId,from:n.localUser.userId,flow:"out",sequence:Math.random()})}catch(a){Ht.z.error(t("Failed to send the message"))}}},m=e=>{i.value+=e,r.value.focus()},d=()=>{l.value=!l.value};return{t:t,editorInputEle:r,sendMsg:i,isMessageDisableByAdmin:s,cannotSendMessage:c,sendMessage:u,handleChooseEmoji:m,isEmojiToolbarVisible:l,togglePopover:d}}var Fr=(0,Ft.defineComponent)({__name:"ChatEditorH5",setup(e){const{t:t,editorInputEle:o,sendMsg:n,cannotSendMessage:s,sendMessage:a,handleChooseEmoji:r}=$r();return{__sfc:!0,t:t,editorInputEle:o,sendMsg:n,cannotSendMessage:s,sendMessage:a,handleChooseEmoji:r,emoji:Br}}}),Hr=Fr,zr=(0,uo.Z)(Hr,Or,Dr,!1,null,"4ae1f1c7",null),Jr=zr.exports,Qr=function(){var e=this,t=e._self._c,o=e._self._setupProxy;return t("div",{class:["chat-editor",o.cannotSendMessage?"disable-editor":""]},[t("textarea",{directives:[{name:"model",rawName:"v-model",value:o.sendMsg,expression:"sendMsg"}],ref:"editorInputEle",staticClass:"content-bottom-input",attrs:{disabled:o.cannotSendMessage,placeholder:o.cannotSendMessage?o.t("Muted by the moderator"):o.t("Type a message")},domProps:{value:o.sendMsg},on:{keyup:function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"enter",13,t.key,"Enter")?null:o.sendMessage.apply(null,arguments)},input:function(e){e.target.composing||(o.sendMsg=e.target.value)}}}),e._v(" "),o.cannotSendMessage?e._e():t("div",{staticClass:"chat-editor-toolbar"},[t("div",{staticClass:"left-section"},[t(o.emoji,{on:{"choose-emoji":o.handleChooseEmoji}})],1),t("div",{class:["send-btn",""+(o.sendMsg.length>0?"active":"")],on:{click:o.sendMessage}},[e._v(e._s(o.t("Send")))])])])},Wr=[],Gr=(0,Ft.defineComponent)({__name:"ChatEditorPC",setup(e){const{t:t,editorInputEle:o,sendMsg:n,cannotSendMessage:s,sendMessage:a,handleChooseEmoji:r}=$r();return{__sfc:!0,t:t,editorInputEle:o,sendMsg:n,cannotSendMessage:s,sendMessage:a,handleChooseEmoji:r,emoji:Br}}}),Kr=Gr,Yr=(0,uo.Z)(Kr,Qr,Wr,!1,null,"6cdfd1ed",null),Xr=Yr.exports;const ei=wo.t?Jr:Xr;var ti=ei,oi=(0,Ft.defineComponent)({__name:"index",setup(e){return{__sfc:!0,MessageList:Er,ChatEditor:ti,isMobile:wo.t}}}),ni=oi,si=(0,uo.Z)(ni,fr,vr,!1,null,"6588445b",null),ai=si.exports,ri=function(){var e=this,t=e._self._c,o=e._self._setupProxy;return t("div",{staticClass:"manage-member-container"},[o.applyToAnchorList.length>0?t("div",{staticClass:"apply-on-stage-info"},[t("div",{staticClass:"apply-info"},[e._v(" "+e._s(`${o.applyToAnchorList[0].userName||o.applyToAnchorList[0].userId} ${o.t("Applying for the stage")}`)+" ")])]):e._e(),t("div",{staticClass:"member-list-container"},[t("div",{staticClass:"member-list-header"},[e._v(" "+e._s(o.t("Member List"))+" "),t("span",{staticClass:"member-count"},[e._v("("+e._s(o.userNumber)+e._s(o.t("members"))+")")])]),t("div",{staticClass:"member-list-content"},e._l(o.userList,(function(e){return t(o.MemberItem,{key:e.userId,attrs:{"user-info":e}})})),1)]),t("div",{staticClass:"manage-member-bottom"},[t("div",{staticClass:"manage-member-button",class:o.isMicrophoneDisableForAllUser?"lift-all":"",on:{touchstart:function(e){return o.toggleManageMember(o.ManageControlType.AUDIO)}}},[e._v(" "+e._s(o.audioManageInfo)+" ")]),t("div",{staticClass:"manage-member-button",class:o.isCameraDisableForAllUser?"lift-all":"",on:{touchstart:function(e){return o.toggleManageMember(o.ManageControlType.VIDEO)}}},[e._v(" "+e._s(o.videoManageInfo)+" ")])]),t(o.Dialog,{staticClass:"custom-element-class",attrs:{"model-value":o.showManageAllUserDialog,modal:!1,"show-close":!1,"append-to-body":!0,"close-on-click-modal":!1,"close-on-press-escape":!1,width:"500px"},scopedSlots:e._u([{key:"footer",fn:function(){return[t("div",{staticClass:"button-container-mobile"},[t("span",{staticClass:"cancel",on:{click:function(e){o.showManageAllUserDialog=!1}}},[e._v(e._s(o.t("Cancel")))]),t("span",{staticClass:"agree",on:{click:o.doToggleManageMember}},[e._v(e._s(o.dialogActionInfo))])])]},proxy:!0}])},[t("span",[e._v(" "+e._s(o.dialogTitleInfo)+" ")])])],1)},ii=[],li=function(){var e=this,t=e._self._c,o=e._self._setupProxy;return t("div",{directives:[{name:"tap",rawName:"v-tap",value:o.handleMemberItemClick,expression:"handleMemberItemClick"}],ref:e=>o.setMemberItemRef(e),staticClass:"member-item-container"},[t(o.MemberInfo,{ref:e=>o.setMemberInfoRef(e),attrs:{"show-state-icon":!0,"user-info":e.userInfo}}),o.showMemberControl?t(o.MemberControl,{ref:e=>o.setMemberControlRef(e),attrs:{"user-info":e.userInfo},on:{"on-close-control":o.handleCloseControl}}):e._e()],1)},ci=[],ui=function(){var e=this,t=e._self._c,o=e._self._setupProxy;return t("div",{class:[o.isMobile?"member-info-mobile":"member-info"]},[t("div",{staticClass:"member-basic-info"},[t(o.Avatar,{staticClass:"avatar-url",attrs:{"img-src":e.userInfo.avatarUrl}}),t("div",{staticClass:"user-name"},[e._v(e._s(e.userInfo.userName||e.userInfo.userId))]),o.isMaster&&o.isMe?t("div",{staticClass:"user-extra-info"},[e._v(" "+e._s(o.t("Host"))+", "+e._s(o.t("Me"))+" ")]):o.isMe?t("div",{staticClass:"user-extra-info"},[e._v(" "+e._s(o.t("Me"))+" ")]):o.basicStore.masterUserId===e.userInfo.userId?t("div",{staticClass:"user-extra-info"},[e._v(" "+e._s(o.t("Host"))+" ")]):e._e()],1),!o.isMe&&e.showStateIcon?t("div",{staticClass:"member-av-state"},[e.userInfo.onSeat?t("div",[t(o.SvgIcon,{staticClass:"setting-icon",attrs:{"icon-name":e.userInfo.hasAudioStream?o.ICON_NAME.MicOn:o.ICON_NAME.MicOff,size:"large"}}),t(o.SvgIcon,{staticClass:"setting-icon video-icon",attrs:{"icon-name":e.userInfo.hasVideoStream?o.ICON_NAME.CameraOn:o.ICON_NAME.CameraOff,size:"large"}})],1):e._e(),e.userInfo.onSeat||e.userInfo.isUserApplyingToAnchor?e._e():t("div",[t(o.SvgIcon,{staticClass:"setting-icon",attrs:{"icon-name":o.ICON_NAME.MicOffDisabled,size:"large"}}),t(o.SvgIcon,{staticClass:"setting-icon video-icon",attrs:{"icon-name":o.ICON_NAME.CameraOffDisabled,size:"large"}})],1),!e.userInfo.onSeat&&e.userInfo.isUserApplyingToAnchor?t("div",[t(o.SvgIcon,{attrs:{"icon-name":"apply-active"}})],1):e._e()]):e._e()])},mi=[],di=(0,Ft.defineComponent)({__name:"MemberInfo",props:{userInfo:null,showStateIcon:null},setup(e){const t=e,{t:o}=(0,to.Q)(),n=(0,Xt.o)(),s=(0,eo.A)(),{isMaster:a}=(0,zt.Jk)(s),r=(0,Ft.computed)((()=>n.userId===t.userInfo.userId));return{__sfc:!0,t:o,props:t,basicStore:n,roomStore:s,isMaster:a,isMe:r,Avatar:fo.Z,ICON_NAME:Fn.Z,SvgIcon:io.Z,isMobile:wo.t}}}),pi=di,fi=(0,uo.Z)(pi,ui,mi,!1,null,"0325ed23",null),vi=fi.exports,hi=function(){var e=this,t=e._self._c,o=e._self._setupProxy;return o.isMe?e._e():t("div",{staticClass:"member-control-container"},[t("div",{staticClass:"member-title"},[t("img",{staticClass:"avatar-url",attrs:{src:e.userInfo.avatarUrl||o.defaultAvatar}}),t("div",{staticClass:"member-title-content"},[e._v(e._s(e.userInfo.userName||e.userInfo.userId))]),o.isWeChat?t("span",{directives:[{name:"tap",rawName:"v-tap.stop",value:o.handleCloseControl,expression:"handleCloseControl",modifiers:{stop:!0}}],staticClass:"cancel"},[e._v(e._s(o.t("Cancel")))]):e._e()]),e._l(o.controlList,(function(n,s){return t("div",{directives:[{name:"tap",rawName:"v-tap",value:()=>n.func(e.userInfo),expression:"() => item.func(userInfo)"}],key:s,staticClass:"user-operate-item"},[t(o.SvgIcon,{staticClass:"icon-svg",attrs:{"icon-name":n.iconName}}),t("div",{staticClass:"control-title"},[e._v(e._s(n.title))])],1)}))],2)},gi=[],Ci=o(7717),_i=(0,Ft.defineComponent)({__name:"MemberControlH5",props:{userInfo:null},emits:["on-close-control"],setup(e,{emit:t}){const o=e,n=(0,oo.Z)(),{t:s}=(0,to.Q)(),a=(0,Xt.o)(),r=(0,eo.A)(),{agreeUserOnStage:i,denyUserOnStage:l,inviteUserOnStage:c,cancelInviteUserOnStage:u,kickUserOffStage:m}=ps(),d=(0,Ft.computed)((()=>a.userId===o.userInfo.userId)),p=(0,Ft.computed)((()=>!0===o.userInfo.onSeat)),f=(0,Ft.computed)((()=>!0!==o.userInfo.onSeat)),v=(0,Ft.computed)((()=>r.isFreeSpeakMode)),h=(0,Ft.computed)((()=>r.isSpeakAfterTakingSeatMode)),g=(0,Ft.computed)((()=>p.value?s("Step down"):o.userInfo.isInvitingUserToAnchor?s("Cancel stage"):s("Invite stage")));async function C(e){const{isInvitingUserToAnchor:t}=e;t?u(e):c(e)}const _=(0,Ft.computed)((()=>({iconName:"apply",title:g.value,func:C}))),S=(0,Ft.computed)((()=>({iconName:"apply",title:s("Step down"),func:m}))),I=(0,Ft.computed)((()=>({iconName:"apply",title:s("Agree to the stage"),func:i}))),y=(0,Ft.computed)((()=>({iconName:"apply",title:s("Refuse stage"),func:l}))),b=(0,Ft.computed)((()=>o.userInfo.hasAudioStream?s("Mute"):o.userInfo.isRequestingUserOpenMic?s("Cancel Unmute"):s("Unmute"))),R=(0,Ft.computed)((()=>({iconName:"mic-on",title:b.value,func:x}))),T=(0,Ft.computed)((()=>o.userInfo.hasVideoStream?s("Disable video"):o.userInfo.isRequestingUserOpenCamera?s("Cancel Enable video"):s("Enable video"))),w=(0,Ft.computed)((()=>({iconName:"camera-on",title:T.value,func:L}))),A=(0,Ft.computed)((()=>o.userInfo.isChatMutedByMaster?s("Enable chat"):s("Disable chat"))),k=(0,Ft.computed)((()=>({iconName:"chat",title:A.value,func:E}))),M=(0,Ft.computed)((()=>({iconName:"invite",title:s("Kick out"),func:O}))),U=(0,Ft.computed)((()=>{const e={freeSpeech:[R.value,w.value,k.value,M.value],applySpeechAndAnchor:[R.value,w.value,S.value,k.value,M.value],applySpeechAndIsApplyingToAnchor:[I.value,y.value,k.value,M.value],applySpeechAndAudience:[_.value,k.value,M.value],default:[k.value,M.value]};return v.value?e.freeSpeech:h.value&&p.value?e.applySpeechAndAnchor:h.value&&f.value&&o.userInfo.isUserApplyingToAnchor?e.applySpeechAndIsApplyingToAnchor:h.value&&f.value&&!o.userInfo.isUserApplyingToAnchor?e.applySpeechAndAudience:e.default}));async function x(e){if(e.hasAudioStream)await(n.instance?.closeRemoteDeviceByAdmin({userId:e.userId,device:Kt.TUIMediaDevice.kMicrophone}));else if(e.isRequestingUserOpenMic){const t=e.requestUserOpenMicRequestId;t&&await(n.instance?.cancelRequest({requestId:t})),r.setRequestUserOpenMic({userId:e.userId,isRequesting:!1})}else{const t=await(n.instance?.openRemoteDeviceByAdmin({userId:e.userId,device:Kt.TUIMediaDevice.kMicrophone,timeout:0,requestCallback:()=>{r.setRequestUserOpenMic({userId:e.userId,isRequesting:!1})}}));t&&t.requestId&&r.setRequestUserOpenMic({userId:e.userId,isRequesting:!0,requestId:t.requestId})}}async function L(e){if(e.hasVideoStream)await(n.instance?.closeRemoteDeviceByAdmin({userId:e.userId,device:Kt.TUIMediaDevice.kCamera}));else if(e.isRequestingUserOpenCamera){const t=e.requestUserOpenCameraRequestId;t&&await(n.instance?.cancelRequest({requestId:t})),r.setRequestUserOpenCamera({userId:e.userId,isRequesting:!1})}else{const t=await(n.instance?.openRemoteDeviceByAdmin({userId:e.userId,device:Kt.TUIMediaDevice.kCamera,timeout:0,requestCallback:()=>{r.setRequestUserOpenCamera({userId:e.userId,isRequesting:!1})}}));t&&t.requestId&&r.setRequestUserOpenCamera({userId:e.userId,isRequesting:!0,requestId:t.requestId})}}function E(e){const t=e.isChatMutedByMaster;r.setMuteUserChat(e.userId,!t),n.instance?.disableSendingMessageByAdmin({userId:e.userId,isDisable:!t})}function O(e){n.instance?.kickRemoteUserOutOfRoom({userId:e.userId})}function D(){t("on-close-control")}return{__sfc:!0,roomEngine:n,t:s,basicStore:a,roomStore:r,agreeUserOnStage:i,denyUserOnStage:l,inviteUserOnStage:c,cancelInviteUserOnStage:u,kickUserOffStage:m,emit:t,props:o,isMe:d,isAnchor:p,isAudience:f,isFreeSpeechMode:v,isSpeakAfterTakingSeat:h,requestStageTitle:g,toggleInviteUserOnStage:C,toggleInviteStage:_,makeOffStage:S,agreeOnStage:I,denyOnStage:y,audioControlTitle:b,audioControl:R,videoControlTitle:T,videoControl:w,chatControlTitle:A,forbidChat:k,kickUser:M,controlList:U,muteUserAudio:x,muteUserVideo:L,disableUserChat:E,kickOffUser:O,handleCloseControl:D,defaultAvatar:Ci,SvgIcon:io.Z,isWeChat:wo.e}}}),Si=_i,Ii=(0,uo.Z)(Si,hi,gi,!1,null,"d259161c",null),yi=Ii.exports,bi=function(){var e=this,t=e._self._c,o=e._self._setupProxy;return o.isMe?e._e():t("div",{staticClass:"member-control-container"},[t("div",{staticClass:"mute-btn",on:{click:function(t){return o.singleControl.func(e.userInfo)}}},[e._v(" "+e._s(o.singleControl.title)+" ")]),t("div",{staticClass:"more-container",on:{click:o.handlePopUp}},[t("div",{staticClass:"more-btn",on:{click:o.toggleClickMoreBtn}},[e._v(" "+e._s(o.t("More"))+" "),t(o.SvgIcon,{staticClass:"more-icon",attrs:{"icon-name":o.ICON_NAME.ArrowBorderDown}})],1),t("div",{directives:[{name:"show",rawName:"v-show",value:o.showMoreControl,expression:"showMoreControl"}],class:o.dropdownClass,attrs:{id:"operate-list"},on:{mouseleave:o.handleMouseLeave}},e._l(o.controlList,(function(o,n){return t("div",{key:n,staticClass:"user-operate-item",on:{click:function(t){return o.func(e.userInfo)}}},[e._v(" "+e._s(o.title)+" ")])})),0)])])},Ri=[],Ti=(0,Ft.defineComponent)({__name:"MemberControlPC",props:{userInfo:null},setup(e){const t=e,o=(0,oo.Z)(),{t:n}=(0,to.Q)(),s=(0,Xt.o)(),a=(0,eo.A)(),r=(0,Ft.ref)(""),{agreeUserOnStage:i,denyUserOnStage:l,inviteUserOnStage:c,cancelInviteUserOnStage:u,kickUserOffStage:m}=ps(),d=(0,Ft.ref)(!1),p=(0,Ft.computed)((()=>s.userId===t.userInfo.userId)),f=(0,Ft.computed)((()=>!0===t.userInfo.onSeat)),v=(0,Ft.computed)((()=>!0!==t.userInfo.onSeat)),h=(0,Ft.computed)((()=>a.isFreeSpeakMode)),g=(0,Ft.computed)((()=>a.isSpeakAfterTakingSeatMode));function C(){const e=document.getElementById("operate-list"),t=document.getElementById("roomContainer"),o=null!==e&&e.getBoundingClientRect().bottom,n=null!==t&&t.offsetHeight;r.value=o>n?"user-operate-list dropdownUp":"user-operate-list"}const _=(0,Ft.computed)((()=>{const e={title:"",func:e=>{}};return h.value?(e.title=t.userInfo.hasAudioStream?n("Mute"):t.userInfo.isRequestingUserOpenMic?n("Cancel Unmute"):n("Unmute"),e.func=x):g.value&&(f.value?(e.title=t.userInfo.hasAudioStream?n("Mute"):t.userInfo.isRequestingUserOpenMic?n("Cancel Unmute"):n("Unmute"),e.func=x):v.value&&(t.userInfo.isUserApplyingToAnchor?(e.title=n("Agree to the stage"),e.func=i):(e.title=t.userInfo.isInvitingUserToAnchor?n("Cancel stage"):n("Invite stage"),e.func=U))),e})),S=(0,Ft.computed)((()=>({title:n("Refuse stage"),func:l}))),I=(0,Ft.computed)((()=>({title:n("Step down"),func:m}))),y=(0,Ft.computed)((()=>t.userInfo.hasVideoStream?n("Disable video"):t.userInfo.isRequestingUserOpenCamera?n("Cancel Enable video"):n("Enable video"))),b=(0,Ft.computed)((()=>({title:y.value,func:L}))),R=(0,Ft.computed)((()=>t.userInfo.isChatMutedByMaster?n("Enable chat"):n("Disable chat"))),T=(0,Ft.computed)((()=>({title:R.value,func:E}))),w=(0,Ft.computed)((()=>({title:n("Kick out"),func:O}))),A=(0,Ft.computed)((()=>{const e=[T.value,w.value];return h.value&&e.unshift(b.value),f.value&&g.value&&(e.unshift(b.value),e.splice(1,0,I.value)),v.value&&t.userInfo.isUserApplyingToAnchor&&e.splice(0,0,S.value),e}));function k(){d.value=!d.value}function M(){d.value=!1}async function U(e){const{isInvitingUserToAnchor:t}=e;t?u(e):c(e)}async function x(e){if(e.hasAudioStream)await(o.instance?.closeRemoteDeviceByAdmin({userId:e.userId,device:Kt.TUIMediaDevice.kMicrophone}));else if(e.isRequestingUserOpenMic){const t=e.requestUserOpenMicRequestId;t&&await(o.instance?.cancelRequest({requestId:t})),a.setRequestUserOpenMic({userId:e.userId,isRequesting:!1})}else{const t=await(o.instance?.openRemoteDeviceByAdmin({userId:e.userId,device:Kt.TUIMediaDevice.kMicrophone,timeout:0,requestCallback:()=>{a.setRequestUserOpenMic({userId:e.userId,isRequesting:!1})}}));t&&t.requestId&&a.setRequestUserOpenMic({userId:e.userId,isRequesting:!0,requestId:t.requestId})}}async function L(e){if(e.hasVideoStream)await(o.instance?.closeRemoteDeviceByAdmin({userId:e.userId,device:Kt.TUIMediaDevice.kCamera}));else if(e.isRequestingUserOpenCamera){const t=e.requestUserOpenCameraRequestId;t&&await(o.instance?.cancelRequest({requestId:t})),a.setRequestUserOpenCamera({userId:e.userId,isRequesting:!1})}else{const t=await(o.instance?.openRemoteDeviceByAdmin({userId:e.userId,device:Kt.TUIMediaDevice.kCamera,timeout:0,requestCallback:()=>{a.setRequestUserOpenCamera({userId:e.userId,isRequesting:!1})}}));t&&t.requestId&&a.setRequestUserOpenCamera({userId:e.userId,isRequesting:!0,requestId:t.requestId})}}function E(e){const t=e.isChatMutedByMaster;a.setMuteUserChat(e.userId,!t),o.instance?.disableSendingMessageByAdmin({userId:e.userId,isDisable:!t})}function O(e){o.instance?.kickRemoteUserOutOfRoom({userId:e.userId})}return{__sfc:!0,roomEngine:o,t:n,basicStore:s,roomStore:a,dropdownClass:r,agreeUserOnStage:i,denyUserOnStage:l,inviteUserOnStage:c,cancelInviteUserOnStage:u,kickUserOffStage:m,props:t,showMoreControl:d,isMe:p,isAnchor:f,isAudience:v,isFreeSpeechMode:h,isSpeakAfterTakingSeat:g,handlePopUp:C,singleControl:_,denyOnStage:S,makeOffStage:I,videoControlTitle:y,videoControl:b,chatControlTitle:R,forbidChat:T,kickUser:w,controlList:A,toggleClickMoreBtn:k,handleMouseLeave:M,toggleInviteUserOnStage:U,muteUserAudio:x,muteUserVideo:L,disableUserChat:E,kickOffUser:O,ICON_NAME:Fn.Z,SvgIcon:io.Z}}}),wi=Ti,Ai=(0,uo.Z)(wi,bi,Ri,!1,null,"28dfca21",null),ki=Ai.exports;const Mi=wo.t?yi:ki;var Ui=Mi;function xi(){const e=(0,Ft.ref)(!1);function t(){e.value=!0}function o(){e.value=!1}const n=(0,Ft.ref)();function s(e){n.value=e}const a=(0,Ft.ref)(),r=(0,Ft.ref)();function i(e){a.value=e}function l(e){r.value=e}function c(){e.value||(e.value=!0)}async function u(){await(0,Ft.nextTick)(),e.value=!1}function m(t){e.value&&n.value&&!n.value.contains(t.target)&&(e.value=!1)}return{showMemberControl:e,handleMouseEnter:t,handleMouseLeave:o,setMemberItemRef:s,setMemberInfoRef:i,setMemberControlRef:l,handleMemberItemClick:c,handleDocumentClick:m,handleCloseControl:u}}var Li=(0,Ft.defineComponent)({__name:"indexH5",props:{userInfo:null},setup(e){const{showMemberControl:t,setMemberItemRef:o,setMemberInfoRef:n,setMemberControlRef:s,handleMemberItemClick:a,handleDocumentClick:r,handleCloseControl:i}=xi();return(0,Ft.onMounted)((()=>{document.addEventListener("click",r,!0)})),(0,Ft.onUnmounted)((()=>{document.removeEventListener("click",r,!0)})),{__sfc:!0,showMemberControl:t,setMemberItemRef:o,setMemberInfoRef:n,setMemberControlRef:s,handleMemberItemClick:a,handleDocumentClick:r,handleCloseControl:i,MemberInfo:vi,MemberControl:Ui}}}),Ei=Li,Oi=(0,uo.Z)(Ei,li,ci,!1,null,"51bdd126",null),Di=Oi.exports,Ni=function(){var e=this,t=e._self._c,o=e._self._setupProxy;return t("div",{staticClass:"member-item-container",on:{mouseenter:o.handleMouseEnter,mouseleave:o.handleMouseLeave}},[t(o.MemberInfo,{attrs:{"user-info":e.userInfo,"show-state-icon":!o.showMemberControl}}),t(o.MemberControl,{directives:[{name:"show",rawName:"v-show",value:o.showMemberControl,expression:"showMemberControl"}],attrs:{"user-info":e.userInfo}})],1)},ji=[],Pi=(0,Ft.defineComponent)({__name:"indexPC",props:{userInfo:null},setup(e){const{showMemberControl:t,handleMouseEnter:o,handleMouseLeave:n}=xi();return{__sfc:!0,showMemberControl:t,handleMouseEnter:o,handleMouseLeave:n,MemberInfo:vi,MemberControl:Ui}}}),qi=Pi,Zi=(0,uo.Z)(qi,Ni,ji,!1,null,"2d674c35",null),Vi=Zi.exports;const Bi=wo.t?Di:Vi;var $i=Bi;function Fi(){const e=(0,oo.Z)(),{t:t}=(0,to.Q)(),o=(0,Xt.o)(),n=(0,eo.A)(),{isMicrophoneDisableForAllUser:s,isCameraDisableForAllUser:a}=(0,zt.Jk)(n),r=(0,Ft.computed)((()=>n.isMicrophoneDisableForAllUser?t("Lift all mute"):t("All mute"))),i=(0,Ft.computed)((()=>n.isCameraDisableForAllUser?t("Lift stop all video"):t("All stop video"))),l=(0,Ft.ref)(!1),c=(0,Ft.ref)(""),u=(0,Ft.ref)("");let m;(function(e){e["AUDIO"]="audio",e["VIDEO"]="video",e["Message"]="message"})(m||(m={}));const d=(0,Ft.ref)(m.AUDIO);async function p(e){switch(l.value=!0,d.value=e,e){case m.AUDIO:c.value=n.isMicrophoneDisableForAllUser?t("Can you lift all mute"):t("All current and new members will be muted."),await(0,Ft.nextTick)(),u.value=r.value;break;case m.VIDEO:c.value=n.isCameraDisableForAllUser?t("Should we turn on the video for everyone"):t("All current and new members will turn off their videos."),await(0,Ft.nextTick)(),u.value=i.value;break;default:break}}async function f(){switch(d.value){case m.AUDIO:h();break;case m.VIDEO:g();break;default:break}l.value=!1}function v(){o.setShowApplyUserList(!0)}async function h(){const t=!s.value;await(e.instance?.disableDeviceForAllUserByAdmin({isDisable:t,device:Kt.TUIMediaDevice.kMicrophone})),n.setMicrophoneDisableState(t)}async function g(){const t=!a.value;await(e.instance?.disableDeviceForAllUserByAdmin({isDisable:t,device:Kt.TUIMediaDevice.kCamera})),n.setCameraDisableState(t)}return{showApplyUserLit:v,toggleAllAudio:h,toggleAllVideo:g,t:t,toggleManageMember:p,doToggleManageMember:f,audioManageInfo:r,videoManageInfo:i,showManageAllUserDialog:l,dialogTitleInfo:c,dialogActionInfo:u,ManageControlType:m}}var Hi=(0,Ft.defineComponent)({__name:"indexH5",setup(e){const t=(0,eo.A)(),{userList:o,userNumber:n,applyToAnchorList:s,isMicrophoneDisableForAllUser:a,isCameraDisableForAllUser:r}=(0,zt.Jk)(t),{audioManageInfo:i,videoManageInfo:l,showManageAllUserDialog:c,dialogTitleInfo:u,dialogActionInfo:m,ManageControlType:d,toggleManageMember:p,doToggleManageMember:f,t:v}=Fi();return{__sfc:!0,roomStore:t,userList:o,userNumber:n,applyToAnchorList:s,isMicrophoneDisableForAllUser:a,isCameraDisableForAllUser:r,audioManageInfo:i,videoManageInfo:l,showManageAllUserDialog:c,dialogTitleInfo:u,dialogActionInfo:m,ManageControlType:d,toggleManageMember:p,doToggleManageMember:f,t:v,MemberItem:$i,Dialog:Io.Z}}}),zi=Hi,Ji=(0,uo.Z)(zi,ri,ii,!1,null,"746e3a0c",null),Qi=Ji.exports,Wi=function(){var e=this,t=e._self._c,o=e._self._setupProxy;return t("div",{staticClass:"manage-member-container"},[o.applyToAnchorList.length>0?t("div",{staticClass:"apply-on-stage-info"},[t("div",{staticClass:"apply-info"},[e._v(" "+e._s(`${o.applyToAnchorList[0].userName||o.applyToAnchorList[0].userId} ${o.t("Applying for the stage")}`)+" ")]),t("div",{staticClass:"button",on:{click:o.showApplyUserLit}},[e._v(e._s(o.t("Check")))])]):e._e(),t("div",{staticClass:"global-setting"},[t("div",{staticClass:"setting-item"},[t("div",{staticClass:"item-left-section"},[t(o.SvgIcon,{staticClass:"setting-icon",attrs:{"icon-name":o.ICON_NAME.MicOn,size:"large"}}),t("span",{staticClass:"setting-name"},[e._v(e._s(o.t("Disable all audios")))])],1),t("div",{staticClass:"item-right-section"},[t("el-switch",{attrs:{value:o.isMicrophoneDisableForAllUser},on:{change:o.toggleAllAudio}})],1)]),t("div",{staticClass:"setting-item"},[t("div",{staticClass:"item-left-section"},[t(o.SvgIcon,{staticClass:"setting-icon",attrs:{"icon-name":o.ICON_NAME.CameraOn,size:"large"}}),t("span",{staticClass:"setting-name"},[e._v(e._s(o.t("Disable all videos")))])],1),t("div",{staticClass:"item-right-section"},[t("el-switch",{attrs:{value:o.isCameraDisableForAllUser},on:{change:o.toggleAllVideo}})],1)])]),t("div",{staticClass:"divide-line"}),t("div",{staticClass:"member-list-container"},[t("div",{staticClass:"member-list-header"},[e._v(" "+e._s(o.t("Member List"))+" "),t("span",{staticClass:"member-count"},[e._v("("+e._s(o.userNumber)+e._s(o.t("members"))+")")])]),t("div",{staticClass:"member-list-content"},e._l(o.userList,(function(e){return t(o.MemberItem,{key:e.userId,attrs:{"user-info":e}})})),1)])])},Gi=[],Ki=(0,Ft.defineComponent)({__name:"indexPC",setup(e){const t=(0,eo.A)(),{userList:o,userNumber:n,applyToAnchorList:s,isMicrophoneDisableForAllUser:a,isCameraDisableForAllUser:r}=(0,zt.Jk)(t),{t:i,showApplyUserLit:l,toggleAllAudio:c,toggleAllVideo:u}=Fi();return{__sfc:!0,roomStore:t,userList:o,userNumber:n,applyToAnchorList:s,isMicrophoneDisableForAllUser:a,isCameraDisableForAllUser:r,t:i,showApplyUserLit:l,toggleAllAudio:c,toggleAllVideo:u,MemberItem:$i,SvgIcon:io.Z,ICON_NAME:Fn.Z}}}),Yi=Ki,Xi=(0,uo.Z)(Yi,Wi,Gi,!1,null,"74166061",null),el=Xi.exports;const tl=wo.t?Qi:el;var ol=tl;function nl(){const e=(0,oo.Z)(),{t:t}=(0,to.Q)(),o=ns(),n=(0,Xt.o)(),{isSidebarOpen:s,sidebarName:a}=(0,zt.Jk)(n),r=(0,Ft.computed)((()=>s.value&&"transfer-leave"!==a.value)),i=(0,Ft.computed)((()=>{let e="";switch(a.value){case"chat":e="Chat";break;case"invite":e="Invite";break;case"more":e="More";break;case"manage-member":e="Member management";break;default:break}return t(e)}));function l(e){n.setSidebarOpenStatus(!1),n.setSidebarName(""),e()}const c=e=>{no.Z.warn("onReceiveTextMessage:",e),n.isSidebarOpen&&"chat"===n.sidebarName||o.updateUnReadCount(++o.unReadCount)};return Yt().once("ready",(()=>{e.instance?.on(Kt.TUIRoomEvents.onReceiveTextMessage,c)})),(0,Ft.onUnmounted)((()=>{e.instance?.off(Kt.TUIRoomEvents.onReceiveTextMessage,c)})),{t:t,isSidebarOpen:s,title:i,sidebarName:a,handleClose:l,showSideBar:r}}var sl=(0,Ft.defineComponent)({__name:"indexH5",setup(e){const{title:t,sidebarName:o,showSideBar:n}=nl();return{__sfc:!0,title:t,sidebarName:o,showSideBar:n,Chat:ai,ManageMember:ol,popup:po,ChatEditor:ti}}}),al=sl,rl=(0,uo.Z)(al,dr,pr,!1,null,"40f5a35a",null),il=rl.exports,ll=function(){var e=this,t=e._self._c,o=e._self._setupProxy;return t("div",{staticClass:"sidebar-container"},[t(o.Drawer,{attrs:{"model-value":o.isSidebarOpen,modal:!1,title:o.title,direction:"rtl","before-close":o.handleClose,size:480}},["chat"==o.sidebarName?t(o.Chat):e._e(),"invite"==o.sidebarName?t(o.RoomInvite):e._e(),"more"==o.sidebarName?t(o.RoomMore):e._e(),"manage-member"==o.sidebarName?t(o.ManageMember):e._e()],1)],1)},cl=[],ul=o(4679),ml=(0,Ft.defineComponent)({__name:"indexPC",setup(e){const{isSidebarOpen:t,title:o,handleClose:n,sidebarName:s}=nl();return{__sfc:!0,isSidebarOpen:t,title:o,handleClose:n,sidebarName:s,Chat:ai,Drawer:ul.Z,RoomInvite:Js,ManageMember:ol,RoomMore:fa}}}),dl=ml,pl=(0,uo.Z)(dl,ll,cl,!1,null,null,null),fl=pl.exports;const vl=wo.t?il:fl;var hl=vl,gl=function(){var e=this,t=e._self._c,o=e._self._setupProxy;return t("div",{staticClass:"content-container"},[t(o.StreamContainer,{attrs:{"show-room-tool":e.showRoomTool}})],1)},Cl=[],_l=function(){var e=this,t=e._self._c,o=e._self._setupProxy;return t("div",{ref:"streamContainerRef",staticClass:"stream-container",on:{touchstart:o.handleTouchStart,touchend:o.handleTouchEnd}},[t("div",{class:o.streamContainerClass},[t("div",{directives:[{name:"show",rawName:"v-show",value:o.layout===o.LAYOUT.LARGE_SMALL_WINDOW,expression:"layout === LAYOUT.LARGE_SMALL_WINDOW"}],ref:"enlargedContainerRef",staticClass:"enlarged-stream-container"},[o.enlargeStream?t(o.StreamRegion,{attrs:{stream:o.enlargeStream}}):e._e()],1),t("div",{staticClass:"stream-list-container",class:[o.onlyVideoStreamList.length>1?"multi-stream-container":"single-stream-container"]},[t("div",{ref:"streamListRef",class:["stream-list",""+(o.isFirstPageInSixPointLayout?"":"not-first-page")]},e._l(o.onlyVideoStreamList,(function(n){return t(o.StreamRegion,{directives:[{name:"show",rawName:"v-show",value:o.showStreamList.indexOf(n)>-1,expression:"showStreamList.indexOf(stream) > -1"}],key:`${n.userId}_${n.streamType}`,class:[o.onlyVideoStreamList.length>1?"multi-stream":"single-stream"],attrs:{stream:n,"enlarge-dom-id":o.enlargeDomId,"show-room-tool":e.showRoomTool}})})),1)])]),o.totalPageNumber>1?t("div",{staticClass:"swipe"},e._l(o.totalPageNumber,(function(e,n){return t("div",{key:e,staticClass:"swipe-dots",class:[o.isActiveDot(n)?"swipe-current-dots":""]})})),0):e._e()])},Sl=[],Il=function(){var e=this,t=e._self._c,o=e._self._setupProxy;return o.playRegionDomId!==e.enlargeDomId?t("div",{ref:"streamRegionRef",staticClass:"user-stream-container",class:[o.showVoiceBorder?"border":""]},[t("div",{staticClass:"stream-region",attrs:{id:o.playRegionDomId}}),e.stream.hasVideoStream||e.stream.hasScreenStream?e._e():t("div",{staticClass:"center-user-info-container"},[t("img",{staticClass:"avatar-region",attrs:{src:e.stream.avatarUrl||o.defaultAvatar}})]),t("div",{staticClass:"corner-user-info-container"},[o.showMasterIcon?t(o.SvgIcon,{staticClass:"master-icon",attrs:{size:"custom","icon-name":"user"}}):e._e(),o.isScreenStream?e._e():t(o.AudioIcon,{staticClass:"audio-icon",attrs:{"audio-volume":e.stream.audioVolume,"is-muted":!e.stream.hasAudioStream,size:"small"}}),o.isScreenStream?t(o.SvgIcon,{staticClass:"screen-icon",attrs:{"icon-name":"screen-share"}}):e._e(),t("span",{staticClass:"user-name",attrs:{title:o.userInfo}},[e._v(e._s(o.userInfo))]),o.isScreenStream?t("span",[e._v(" "+e._s(o.t("is sharing their screen"))+" ")]):e._e()],1)]):e._e()},yl=[],bl=(0,Ft.defineComponent)({__name:"StreamRegionH5",props:{stream:null,enlargeDomId:null},setup(e){const t=e,o=(0,oo.Z)(),n="[StreamRegion]",s=(0,Xt.o)(),a=(0,eo.A)(),{t:r}=(0,to.Q)(),i=(0,Ft.ref)(),l=(0,Ft.computed)((()=>0!==t.stream?.audioVolume&&t.stream?.streamType!==Kt.TUIVideoStreamType.kScreenStream)),c=(0,Ft.computed)((()=>`${t.stream.userId}_${t.stream.streamType}`)),u=(0,Ft.computed)((()=>{const{userId:e,streamType:o}=t.stream;return e===a.masterUserId&&o===Kt.TUIVideoStreamType.kCameraStream})),m=(0,Ft.computed)((()=>t.stream.streamType===Kt.TUIVideoStreamType.kScreenStream)),d=(0,Ft.computed)((()=>Wa.Uh?`${t.stream.userName} | ${t.stream.userId}`||t.stream.userId:t.stream.userName||t.stream.userId));return(0,Ft.onMounted)((()=>{(0,Ft.watch)((()=>t.stream.hasVideoStream),(async e=>{if(e){await(0,Ft.nextTick)();const e=document?.getElementById(`${c.value}`);if(e)if(no.Z.debug(`${n}watch isVideoStreamAvailable:`,t.stream.userId,e),s.userId===t.stream.userId)t.stream.hasVideoStream&&await(o.instance?.setLocalVideoView({streamType:Kt.TUIVideoStreamType.kCameraStream,view:`${c.value}`}));else{o.instance?.setRemoteVideoView({userId:t.stream.userId,streamType:t.stream.streamType,view:`${c.value}`}),await(o.instance?.startPlayRemoteVideo({userId:t.stream.userId,streamType:t.stream.streamType}));const e=o.instance?.getTRTCCloud();await(e?.setRemoteRenderParams(t.stream.userId,Kt.TRTCVideoStreamType.TRTCVideoStreamTypeBig,{mirrorType:Kt.TRTCVideoMirrorType.TRTCVideoMirrorType_Disable,rotation:Kt.TRTCVideoRotation.TRTCVideoRotation0,fillMode:Kt.TRTCVideoFillMode.TRTCVideoFillMode_Fill}))}}}),{immediate:!0})})),(0,Ft.onMounted)((()=>{(0,Ft.watch)((()=>t.stream.hasScreenStream),(async e=>{if(e){await(0,Ft.nextTick)();const e=document?.getElementById(`${c.value}`);if(e){no.Z.debug(`${n}watch isScreenStreamAvailable:`,t.stream.userId,e),o.instance?.setRemoteVideoView({userId:t.stream.userId,streamType:t.stream.streamType,view:`${c.value}`}),await(o.instance?.startPlayRemoteVideo({userId:t.stream.userId,streamType:t.stream.streamType}));const s=o.instance?.getTRTCCloud();await(s?.setRemoteRenderParams(t.stream.userId,Kt.TRTCVideoStreamType.TRTCVideoStreamTypeSub,{mirrorType:Kt.TRTCVideoMirrorType.TRTCVideoMirrorType_Disable,rotation:Kt.TRTCVideoRotation.TRTCVideoRotation0,fillMode:Kt.TRTCVideoFillMode.TRTCVideoFillMode_Fit}))}}}),{immediate:!0})})),(0,Ft.onMounted)((()=>{(0,Ft.watch)((()=>t.enlargeDomId),(async(e,n)=>{if(c.value===n||c.value===e){await(0,Ft.nextTick)();const e=document?.getElementById(`${c.value}`);e&&(s.userId===t.stream.userId?t.stream.hasVideoStream&&await(o.instance?.setLocalVideoView({streamType:Kt.TUIVideoStreamType.kCameraStream,view:`${c.value}`})):(o.instance?.setRemoteVideoView({userId:t.stream.userId,streamType:t.stream.streamType,view:`${c.value}`}),await(o.instance?.startPlayRemoteVideo({userId:t.stream.userId,streamType:t.stream.streamType}))))}}))})),{__sfc:!0,roomEngine:o,logPrefix:n,basicStore:s,roomStore:a,t:r,props:t,streamRegionRef:i,showVoiceBorder:l,playRegionDomId:c,showMasterIcon:u,isScreenStream:m,userInfo:d,defaultAvatar:Ci,AudioIcon:Dn.Z,SvgIcon:io.Z}}}),Rl=bl,Tl=(0,uo.Z)(Rl,Il,yl,!1,null,"9adfd868",null),wl=Tl.exports,Al=function(){var e=this,t=e._self._c,o=e._self._setupProxy;return o.playRegionDomId!==e.enlargeDomId?t("div",{ref:"streamRegionRef",staticClass:"user-stream-container",on:{dblclick:function(t){return e.$emit("room_dblclick")}}},[o.loading?t("div",{staticClass:"loading-region"},[t(o.SvgIcon,{staticClass:"loading",attrs:{"icon-name":"loading"}})],1):e._e(),t("div",{staticClass:"stream-region",attrs:{id:o.playRegionDomId}}),e.stream.hasVideoStream||e.stream.hasScreenStream?e._e():t("div",{ref:"centerUserInfoRef",staticClass:"center-user-info-container"},[t(o.Avatar,{staticClass:"avatar-region",attrs:{"img-src":e.stream.avatarUrl}})],1),t("div",{staticClass:"corner-user-info-container"},[o.showMasterIcon?t(o.SvgIcon,{staticClass:"master-icon",attrs:{"icon-name":"user"}}):e._e(),o.isScreenStream?e._e():t(o.AudioIcon,{attrs:{"audio-volume":e.stream.audioVolume,"is-muted":!e.stream.hasAudioStream,size:"small"}}),o.isScreenStream?t(o.SvgIcon,{staticClass:"screen-icon",attrs:{"icon-name":"screen-share"}}):e._e(),t("span",{staticClass:"user-name",attrs:{title:o.userInfo}},[e._v(e._s(o.userInfo))]),o.isScreenStream?t("span",[e._v(" "+e._s(o.t("is sharing their screen"))+" ")]):e._e()],1)]):e._e()},kl=[],Ml=(0,Ft.defineComponent)({__name:"StreamRegionPC",props:{stream:null,enlargeDomId:null,changeLargeStream:{type:Boolean}},setup(e){const t=e,o=(0,oo.Z)(),n="[StreamRegion]",s=(0,Xt.o)(),a=(0,eo.A)(),{t:r}=(0,to.Q)(),i=(0,Ft.ref)(),l=(0,Ft.ref)(),c=(0,Ft.ref)(!1),u=(0,Ft.computed)((()=>`${t.stream.userId}_${t.stream.streamType}`)),m=(0,Ft.computed)((()=>{const{userId:e,streamType:o}=t.stream;return e===a.masterUserId&&o===Kt.TUIVideoStreamType.kCameraStream})),d=(0,Ft.computed)((()=>t.stream.streamType===Kt.TUIVideoStreamType.kScreenStream)),p=(0,Ft.computed)((()=>Wa.Uh?`${t.stream.userName} | ${t.stream.userId}`||t.stream.userId:t.stream.userName||t.stream.userId)),f=(0,Ft.computed)((()=>{const{streamType:e,userId:o}=t.stream,{kScreenStream:n,kCameraStream:r}=Kt.TUIVideoStreamType,{defaultStreamType:i}=a,{userId:l}=s;return e===n?n:u.value===t.enlargeDomId||o===l?r:e===r?i:e})),v=async()=>{const{userId:e}=t.stream;c.value=!0,o.instance?.setRemoteVideoView({userId:e,streamType:f.value,view:`${u.value}`}),await(o.instance?.startPlayRemoteVideo({userId:e,streamType:f.value})),c.value=!1},h=async()=>{c.value=!1,await(o.instance?.stopPlayRemoteVideo({userId:t.stream.userId,streamType:f.value}))};return t.stream.streamType!==Kt.TUIVideoStreamType.kCameraStream&&t.stream.streamType!==Kt.TUIVideoStreamType.kCameraStreamLow||(0,Ft.watch)((()=>[t.stream.hasVideoStream,t.stream.isVisible]),(async(e,o)=>{if(t.stream.userId===s.userId)return;const[a,r]=e;if(a&&r){await(0,Ft.nextTick)();const e=document.getElementById(`${u.value}`);e&&(no.Z.debug(`${n}watch isVideoStreamAvailable:`,t.stream.userId,e),await v())}if(o){const[e,t]=o;!e||!t||a&&r||await h()}}),{immediate:!0}),t.stream.streamType===Kt.TUIVideoStreamType.kScreenStream&&(0,Ft.watch)((()=>[t.stream.hasScreenStream,t.stream.isVisible]),(async(e,o)=>{const[s,a]=e;if(s&&a){await(0,Ft.nextTick)();const e=document.getElementById(`${u.value}`);e&&(no.Z.debug(`${n}watch isScreenStreamAvailable:`,t.stream.userId,e),await v())}if(o){const[e,t]=o;!e||!t||s&&a||await h()}}),{immediate:!0}),(0,Ft.watch)((()=>t.enlargeDomId),(async(e,n)=>{if(u.value===n||u.value===e){await(0,Ft.nextTick)();const e=document.getElementById(`${u.value}`);e&&(s.userId===t.stream.userId?t.stream.hasVideoStream&&await(o.instance?.setLocalVideoView({streamType:f.value,view:`${u.value}`})):await v())}}),{immediate:!0}),{__sfc:!0,roomEngine:o,logPrefix:n,basicStore:s,roomStore:a,t:r,props:t,streamRegionRef:i,centerUserInfoRef:l,loading:c,playRegionDomId:u,showMasterIcon:m,isScreenStream:d,userInfo:p,streamTypeToFetch:f,startPlayRemoteVideo:v,stopPlayRemoteVideo:h,Avatar:fo.Z,AudioIcon:Dn.Z,SvgIcon:io.Z}}}),Ul=Ml,xl=(0,uo.Z)(Ul,Al,kl,!1,null,"693d2878",null),Ll=xl.exports;const El=wo.t?wl:Ll;var Ol=El;const Dl="[StreamContainer]";function Nl(){const e=(0,oo.Z)(),t=(0,Xt.o)(),o=(0,eo.A)(),{t:n}=(0,to.Q)(),s=e=>{o.addRemoteUser(e.userInfo)},a=e=>{o.removeRemoteUser(e.userInfo.userId)},r=e=>{const{seatList:t,seatedList:n,leftList:s}=e;o.updateOnSeatList(t,n,s)},i=e=>{const{userId:s,hasAudio:a,reason:r}=e;o.updateUserAudioState(s,a),s!==t.userId||a||r!==Kt.TUIChangeReason.kChangedByAdmin||((0,Ht.z)({type:"warning",message:n("The host has turned off your microphone"),duration:Nn.U.NORMAL}),o.setCanControlSelfAudio(!o.isMicrophoneDisableForAllUser))},{isDefaultOpenCamera:l,isDefaultOpenMicrophone:c,isLocalAudioIconDisable:u,isLocalVideoIconDisable:m}=(0,zt.Jk)(o);return(0,Ft.watch)(l,(async n=>{if(n&&!m.value)if(wo.e)await(e.instance?.setLocalVideoView({streamType:Kt.TUIVideoStreamType.kCameraStream,view:`${o.localStream.userId}_${o.localStream.streamType}`})),await(e.instance?.openLocalCamera({isFrontCamera:t.isFrontCamera}));else{if(wo.t){const n=document?.getElementById(`${o.localStream.userId}_${o.localStream.streamType}`);return n?(await(e.instance?.setLocalVideoView({streamType:Kt.TUIVideoStreamType.kCameraStream,view:`${o.localStream.userId}_${o.localStream.streamType}`})),void await(e.instance?.openLocalCamera({isFrontCamera:t.isFrontCamera}))):void no.Z.error(`${Dl}watch isDefaultOpenCamera:`,l,n)}{const t=document?.getElementById(`${o.localStream.userId}_${o.localStream.streamType}`);if(!t)return void no.Z.error(`${Dl}watch isDefaultOpenCamera:`,l,t);if(!o.currentCameraId){const t=await(e.instance?.getCameraDevicesList());t&&t.length>0&&o.setCurrentCameraId(t[0].deviceId)}await(e.instance?.setCurrentCameraDevice({deviceId:o.currentCameraId})),await(e.instance?.setLocalVideoView({streamType:Kt.TUIVideoStreamType.kCameraStream,view:`${o.localStream.userId}_${o.localStream.streamType}`})),await(e.instance?.openLocalCamera())}}})),(0,Ft.watch)(c,(async t=>{if(t&&!u.value&&(await(e.instance?.openLocalMicrophone()),!wo.e&&!wo.t)){const t=await(e.instance?.getMicDevicesList()),n=await(e.instance?.getSpeakerDevicesList());if(0===t?.length||0===n?.length)return;!o.currentMicrophoneId&&t.length>0&&o.setCurrentMicrophoneId(t[0].deviceId),!o.currentSpeakerId&&n.length>0&&o.setCurrentSpeakerId(n[0].deviceId),await(e.instance?.setCurrentMicDevice({deviceId:o.currentMicrophoneId}))}})),{onRemoteUserEnterRoom:s,onRemoteUserLeaveRoom:a,onSeatListChanged:r,onUserAudioStateChanged:i,t:n}}var jl=(0,Ft.defineComponent)({__name:"StreamContainerH5",props:{showRoomTool:{type:Boolean}},setup(e){const t="[StreamContainer]",{onRemoteUserEnterRoom:o,onRemoteUserLeaveRoom:n,onSeatListChanged:s,onUserAudioStateChanged:a,t:r}=Nl(),i=(0,oo.Z)(),l=(0,Ft.ref)(null),c=(0,eo.A)(),{streamList:u,streamNumber:m,localStream:d,remoteStreamObj:p}=(0,zt.Jk)(c),f=(0,Xt.o)();f.setLayout(Cn._.SIX_EQUAL_POINTS);const{layout:v}=(0,zt.Jk)(f),h=(0,Ft.ref)(null),g=(0,Ft.computed)((()=>h.value?`${h.value.userId}_${h.value.streamType}`:"")),C=(0,Ft.ref)(""),_=(0,Ft.ref)(),S=(0,Ft.ref)(),I=(0,Ft.computed)((()=>u.value.filter((e=>e.streamType===Kt.TUIVideoStreamType.kCameraStream)))),y=(0,Ft.ref)(0);(0,Ft.watch)((()=>I.value.length),(e=>{if(v.value===Cn._.SIX_EQUAL_POINTS){const t=h.value?y.value-1:y.value;Math.ceil(e/6)0&&(y.value=y.value-1)}}));const b=(0,Ft.computed)((()=>v.value===Cn._.SIX_EQUAL_POINTS&&(h.value?1===y.value:0===y.value))),R=(0,Ft.computed)((()=>{if(v.value===Cn._.SIX_EQUAL_POINTS)return h.value?I.value.slice(6*(y.value-1),6*(y.value-1)+6):I.value.slice(6*y.value,6*y.value+6);if(v.value===Cn._.LARGE_SMALL_WINDOW){const e=h.value?.userId;return C.value?C.value===d.value.userId?[d.value]:[p.value[`${C.value}_${Kt.TUIVideoStreamType.kCameraStream}`]]:[p.value[`${e}_${Kt.TUIVideoStreamType.kCameraStream}`]]}return[]})),T=(0,Ft.computed)((()=>{const e=I.value.length>6?Math.ceil(m.value/6):1;return h.value?e+1:e}));function w(e){return v.value===Cn._.LARGE_SMALL_WINDOW?0===e:v.value===Cn._.SIX_EQUAL_POINTS&&e===y.value}function A(){0!==y.value&&(y.value=y.value-1,h.value&&0===y.value&&f.setLayout(Cn._.LARGE_SMALL_WINDOW))}function k(){y.value!==T.value-1&&(y.value=y.value+1,v.value===Cn._.LARGE_SMALL_WINDOW&&f.setLayout(Cn._.SIX_EQUAL_POINTS))}const M=(0,Ft.ref)(),U=(0,Ft.ref)(),x=(0,Ft.computed)((()=>{let e="";switch(v.value){case Cn._.SIX_EQUAL_POINTS:e="stream-container-flatten";break;case Cn._.LARGE_SMALL_WINDOW:e="stream-container-large-small";break;default:break}return e}));function L(e){_.value=e?.changedTouches[0]?.pageX,S.value=e?.changedTouches[0]?.pageY}function E(e){const t=e?.changedTouches[0].pageX-_.value,o=e?.changedTouches[0].pageY-S.value;Math.abs(o)>Math.abs(t)||Math.abs(t)<5||(t<0&&k(),t>0&&A())}const O=e=>{const{userId:o,streamType:n,hasVideo:s,reason:a}=e;c.updateUserVideoState(o,n,s),o!==f.userId||s||a!==Kt.TUIChangeReason.kChangedByAdmin||(n===Kt.TUIVideoStreamType.kCameraStream&&((0,Ht.z)({type:"warning",message:r("The host has turned off your camera"),duration:Nn.U.NORMAL}),c.setCanControlSelfVideo(!c.isCameraDisableForAllUser)),n===Kt.TUIVideoStreamType.kScreenStream&&(0,Ht.z)({type:"warning",message:r("The host has turned off your screen sharing"),duration:Nn.U.NORMAL})),o!==f.userId&&n===Kt.TUIVideoStreamType.kScreenStream&&(s?(h.value=c.remoteStreamObj[`${o}_${n}`],h.value&&(f.setLayout(Cn._.LARGE_SMALL_WINDOW),y.value=0)):o===h.value?.userId&&(no.Z.debug(`${t} onUserVideoStateChanged: stop`,o,n),i.instance?.stopPlayRemoteVideo({userId:o,streamType:n}),h.value&&(h.value=null),v.value===Cn._.LARGE_SMALL_WINDOW?(f.setLayout(Cn._.SIX_EQUAL_POINTS),y.value=0):v.value===Cn._.SIX_EQUAL_POINTS&&y.value>0&&(y.value=y.value-1)))};function D(e){if(C.value){const t=e.find((e=>e.userId===C.value));if(t&&t.volume>0)return}let t=0,o="";e.forEach((e=>{const{userId:n,volume:s}=e;s>t&&(t=s,o=n)})),C.value=0===t?"":o}const N=(0,$o.P2)(D,1e3),j=e=>{const{userVolumeList:t}=e;v.value===Cn._.LARGE_SMALL_WINDOW&&(0===t.length?C.value="":N(t))};return Yt().once("ready",(()=>{i.instance?.on(Kt.TUIRoomEvents.onRemoteUserEnterRoom,o),i.instance?.on(Kt.TUIRoomEvents.onRemoteUserLeaveRoom,n),i.instance?.on(Kt.TUIRoomEvents.onSeatListChanged,s),i.instance?.on(Kt.TUIRoomEvents.onUserVideoStateChanged,O),i.instance?.on(Kt.TUIRoomEvents.onUserAudioStateChanged,a),i.instance?.on(Kt.TUIRoomEvents.onUserVoiceVolumeChanged,j)})),(0,Ft.onUnmounted)((()=>{i.instance?.off(Kt.TUIRoomEvents.onRemoteUserEnterRoom,o),i.instance?.off(Kt.TUIRoomEvents.onRemoteUserLeaveRoom,n),i.instance?.off(Kt.TUIRoomEvents.onSeatListChanged,s),i.instance?.off(Kt.TUIRoomEvents.onUserVideoStateChanged,O),i.instance?.off(Kt.TUIRoomEvents.onUserAudioStateChanged,a),i.instance?.off(Kt.TUIRoomEvents.onUserVoiceVolumeChanged,j)})),{__sfc:!0,logPrefix:t,onRemoteUserEnterRoom:o,onRemoteUserLeaveRoom:n,onSeatListChanged:s,onUserAudioStateChanged:a,t:r,roomEngine:i,streamContainerRef:l,roomStore:c,streamList:u,streamNumber:m,localStream:d,remoteStreamObj:p,basicStore:f,layout:v,enlargeStream:h,enlargeDomId:g,currentSpeakerUserId:C,startX:_,startY:S,onlyVideoStreamList:I,currentPageIndex:y,isFirstPageInSixPointLayout:b,showStreamList:R,totalPageNumber:T,isActiveDot:w,handleTurnPageLeft:A,handleTurnPageRight:k,enlargedContainerRef:M,streamListRef:U,streamContainerClass:x,handleTouchStart:L,handleTouchEnd:E,onUserVideoStateChanged:O,handleLargestVoice:D,handleLargestVoiceThrottle:N,onUserVoiceVolumeChanged:j,LAYOUT:Cn._,StreamRegion:Ol}}}),Pl=jl,ql=(0,uo.Z)(Pl,_l,Sl,!1,null,"3424abc2",null),Zl=ql.exports,Vl=function(){var e=this,t=e._self._c,o=e._self._setupProxy;return t("div",{class:o.streamContainerClass},[t("div",{directives:[{name:"show",rawName:"v-show",value:o.showIconControl,expression:"showIconControl"}],ref:"enlargedContainerRef",staticClass:"enlarged-stream-container"},[o.enlargeStream?t(o.StreamRegion,{key:`${o.enlargeStream.userId}_${o.enlargeStream.streamType}`,style:o.enlargedStreamStyle,attrs:{stream:o.enlargeStream}}):e._e()],1),t("div",{class:["stream-list-container",""+(o.showSideList?"":"hide-list")]},[t("div",{ref:"streamListRef",staticClass:"stream-list"},e._l(o.streamList,(function(e){return t(o.StreamRegion,{directives:[{name:"show",rawName:"v-show",value:o.showStreamList.indexOf(e)>-1,expression:"showStreamList.indexOf(stream) > -1"}],key:`${e.userId}_${e.streamType}`,staticClass:"single-stream",style:o.streamStyle,attrs:{stream:e,"enlarge-dom-id":o.enlargeDomId},on:{room_dblclick:function(t){return o.handleEnlargeStreamRegion(e)}}})})),1)]),o.showIconControl&&e.showRoomTool?t("div",{class:o.arrowClass,on:{click:o.handleClickIcon}},[t(o.SvgIcon,{attrs:{"icon-name":"line-arrow-up",size:"medium"}})],1):e._e(),o.showTurnPageControl&&e.showRoomTool?t("div",{staticClass:"turn-page-container"},[t("div",{directives:[{name:"show",rawName:"v-show",value:o.showTurnPageLeftArrow,expression:"showTurnPageLeftArrow"}],staticClass:"turn-page-arrow-container left-container",on:{click:o.handleTurnPageLeft}},[t("div",{staticClass:"turn-page-arrow"})]),t("div",{directives:[{name:"show",rawName:"v-show",value:o.showTurnPageRightArrow,expression:"showTurnPageRightArrow"}],staticClass:"turn-page-arrow-container right-container",on:{click:o.handleTurnPageRight}},[t("div",{staticClass:"turn-page-arrow turn-page-right"})])]):e._e()])},Bl=[],$l=(0,Ft.defineComponent)({__name:"StreamContainerPC",props:{showRoomTool:{type:Boolean}},setup(e){const t="[StreamContainer]",{onRemoteUserEnterRoom:o,onUserAudioStateChanged:n,t:s}=Nl(),a=(0,oo.Z)(),r=(0,Ft.ref)({width:"0",height:"0"}),i=(0,Ft.ref)({width:"0",height:"0"}),l=(0,eo.A)(),{streamList:c,streamNumber:u,remoteStreamList:m}=(0,zt.Jk)(l),d=(0,Xt.o)(),{layout:p}=(0,zt.Jk)(d),f=(0,Ft.ref)(!0),v=(0,Ft.ref)(null),h=(0,Ft.computed)((()=>v.value?`${v.value.userId}_${v.value.streamType}`:""));(0,Ft.watch)((()=>m.value.length),(e=>{if(0===e)return d.setLayout(Cn._.NINE_EQUAL_POINTS),void(v.value=null)})),(0,Ft.watch)((()=>c.value.length),(()=>{p.value!==Cn._.RIGHT_SIDE_LIST&&p.value!==Cn._.TOP_SIDE_LIST||Z()})),(0,Ft.watch)((()=>h.value),(()=>{p.value!==Cn._.RIGHT_SIDE_LIST&&p.value!==Cn._.TOP_SIDE_LIST||Z()}));const g=(0,Ft.ref)(0),C=(0,Ft.computed)((()=>p.value!==Cn._.NINE_EQUAL_POINTS?c.value.filter((e=>`${e.userId}_${e.streamType}`!==h.value)):c.value.slice(9*g.value,9*g.value+9)));(0,Ft.watch)([()=>C.value.length,g],(()=>{if(p.value===Cn._.NINE_EQUAL_POINTS){const e=[];C.value.forEach((t=>{const o=`${t.userId}_${t.streamType}`;e.push(o)})),l.updateUserStreamVisible(e)}})),(0,Ft.watch)(u,(e=>{g.value>Math.ceil(e/9)-1&&(g.value=Math.ceil(e/9)-1,M())}));const _=(0,Ft.computed)((()=>p.value===Cn._.NINE_EQUAL_POINTS&&u.value>9)),S=(0,Ft.computed)((()=>g.value>0)),I=(0,Ft.computed)((()=>u.value>9*g.value+9));function y(){g.value=g.value-1,M()}function b(){g.value=g.value+1,M()}const R=(0,Ft.ref)(""),T=(0,Ft.ref)(),w=(0,Ft.ref)(),A=(0,Ft.computed)((()=>{let e="";return p.value===Cn._.TOP_SIDE_LIST&&(e=f.value?"up":"down"),p.value===Cn._.RIGHT_SIDE_LIST&&(e=f.value?"right":"left"),`icon-control arrow-${e}`}));function k(){if(f.value=!f.value,f.value){if(p.value===Cn._.RIGHT_SIDE_LIST)return U(),T.value.style.width="calc(100% - 260px)",void(T.value.style.height="100%");if(p.value===Cn._.TOP_SIDE_LIST)return x(),T.value.style.top="175px",T.value.style.width="100%",void(T.value.style.height="calc(100% - 175px)")}else{let e=0,t=0;const o=document.getElementById("roomContainer").offsetWidth,n=document.getElementById("roomContainer").offsetHeight,s=o/16,a=n/9;if(s>a&&(e=n/9*16,t=n),s<=a&&(e=o,t=o/16*9),i.value.width=`${e}px`,i.value.height=`${t}px`,p.value===Cn._.RIGHT_SIDE_LIST)return T.value.style.width="100%",void(T.value.style.height="100%");if(p.value===Cn._.TOP_SIDE_LIST)return T.value.style.top="0px",T.value.style.width="100%",void(T.value.style.height="100%")}}async function M(){R.value="stream-container-flatten",v.value=null;const e=C.value.length;let t=0,o=0;const n=document.getElementById("roomContainer");if(!n)return;let s=n.offsetWidth,a=n.offsetHeight;e<=4?(s=e<2?n.offsetWidth/e:n.offsetWidth/2,a=n.offsetHeight/Math.ceil(e/2)):e>4&&(s=e<3?n.offsetWidth/e:n.offsetWidth/3,a=n.offsetHeight/Math.ceil(e/3));const i=s/16,l=a/9;i>l&&(t=a/9*16,o=a),i<=l&&(t=s,o=s/16*9),r.value.width=t-8+"px",r.value.height=o-8+"px"}async function U(){if(R.value="stream-container-right",v.value||([v.value]=m.value),await(0,Ft.nextTick)(),r.value={},T.value){const e=T.value.offsetWidth,t=T.value.offsetHeight;let o=0,n=0;const s=e/16,a=t/9;s>a&&(o=t/9*16,n=t),s<=a&&(o=e,n=e/16*9),i.value.width=`${o}px`,i.value.height=`${n}px`}}async function x(){if(R.value="stream-container-top",v.value||([v.value]=m.value),await(0,Ft.nextTick)(),r.value={},T.value){const e=T.value.offsetWidth,t=T.value.offsetHeight;let o=0,n=0;const s=e/16,a=t/9;s>a&&(o=t/9*16,n=t),s<=a&&(o=e,n=e/16*9),i.value.width=`${o}px`,i.value.height=`${n}px`}}function L(e){p.value===Cn._.NINE_EQUAL_POINTS&&d.setLayout(Cn._.RIGHT_SIDE_LIST),v.value=e}async function E(){switch(p.value){case Cn._.NINE_EQUAL_POINTS:await M();break;case Cn._.RIGHT_SIDE_LIST:f.value=!0,T.value.style.width="calc(100% - 260px)",T.value.style.height="100%",await U(),await Z();break;case Cn._.TOP_SIDE_LIST:f.value=!0,T.value.style.width="100%",T.value.style.height="calc(100% - 175px)",await x(),await Z();break;default:break}}async function O(){switch(p.value){case Cn._.NINE_EQUAL_POINTS:await M();break;case Cn._.RIGHT_SIDE_LIST:await U(),await Z();break;case Cn._.TOP_SIDE_LIST:await x(),await Z();break;default:break}}(0,Ft.onMounted)((()=>{E(),["resize","pageshow"].forEach((e=>{window.addEventListener(e,O)}))})),(0,Ft.onUnmounted)((()=>{["resize","pageshow"].forEach((e=>{window.removeEventListener(e,O)}))})),(0,Ft.watch)(u,(()=>{p.value===Cn._.NINE_EQUAL_POINTS&&M()})),(0,Ft.watch)(p,(()=>{E()}));const D=(0,Ft.computed)((()=>[Cn._.RIGHT_SIDE_LIST,Cn._.TOP_SIDE_LIST].indexOf(p.value)>=0)),N=e=>{const{userId:o,streamType:n,hasVideo:r,reason:i}=e;l.updateUserVideoState(o,n,r),o!==d.userId||r||i!==Kt.TUIChangeReason.kChangedByAdmin||(n===Kt.TUIVideoStreamType.kCameraStream&&((0,Ht.z)({type:"warning",message:s("The host has turned off your camera"),duration:Nn.U.NORMAL}),l.setCanControlSelfVideo(!l.isCameraDisableForAllUser)),n===Kt.TUIVideoStreamType.kScreenStream&&(0,Ht.z)({type:"warning",message:s("The host has turned off your screen sharing"),duration:Nn.U.NORMAL})),o!==d.userId&&n===Kt.TUIVideoStreamType.kScreenStream&&(r?(l.setHasOtherScreenShare(!0),v.value=l.remoteStreamObj[`${o}_${n}`],v.value&&p.value!==Cn._.RIGHT_SIDE_LIST&&p.value!==Cn._.TOP_SIDE_LIST&&d.setLayout(Cn._.RIGHT_SIDE_LIST)):(l.setHasOtherScreenShare(!1),o===v.value?.userId&&q(),no.Z.debug(`${t} onUserVideoStateChanged: stop`,o,n),a.instance?.stopPlayRemoteVideo({userId:o,streamType:n})))},j=e=>{const{seatList:t,seatedList:o,leftList:n}=e;l.updateOnSeatList(t,o,n);const s=n.map((e=>e.userId));v.value&&s.includes(v.value?.userId)&&q()},P=e=>{const{userInfo:{userId:t}}=e;l.removeRemoteUser(t),t===v.value?.userId&&q()},q=()=>{0===l.remoteStreamList.length?(d.setLayout(Cn._.NINE_EQUAL_POINTS),v.value=null):[v.value]=l.remoteStreamList},Z=async()=>{const e=w.value.children[0];await(0,Ft.nextTick)();let t=0,o=0,n=0;if(p.value===Cn._.RIGHT_SIDE_LIST){const n=e.offsetHeight+10,s=e.offsetHeight+14,a=w.value.scrollTop+w.value.offsetHeight;t=Math.floor((w.value.scrollTop-n)/s)+1,o=Math.ceil((a-n)/s)+1}else if(p.value===Cn._.TOP_SIDE_LIST){const n=e.offsetWidth,s=e.offsetWidth+14,a=w.value.scrollLeft+w.value.offsetWidth;t=Math.floor((w.value.scrollLeft-n)/s)+1,o=Math.ceil((a-n)/s)+1}t<0&&(t=0),n=o-t,n>C.value.length-t&&(n=C.value.length-t);const s=[];[...new Array(n)].forEach((()=>{const e=`${C.value[t].userId}_${C.value[t].streamType}`;s.push(e),t+=1})),s.push(h.value),l.updateUserStreamVisible(s)},V=(0,$o.Ds)(Z,300);return(0,Ft.onMounted)((()=>{w.value.addEventListener("scroll",V)})),(0,Ft.onUnmounted)((()=>{w.value&&w.value.removeEventListener("scroll",V)})),Yt().once("ready",(()=>{a.instance?.on(Kt.TUIRoomEvents.onRemoteUserEnterRoom,o),a.instance?.on(Kt.TUIRoomEvents.onRemoteUserLeaveRoom,P),a.instance?.on(Kt.TUIRoomEvents.onSeatListChanged,j),a.instance?.on(Kt.TUIRoomEvents.onUserVideoStateChanged,N),a.instance?.on(Kt.TUIRoomEvents.onUserAudioStateChanged,n)})),(0,Ft.onUnmounted)((()=>{a.instance?.off(Kt.TUIRoomEvents.onRemoteUserEnterRoom,o),a.instance?.off(Kt.TUIRoomEvents.onRemoteUserLeaveRoom,P),a.instance?.off(Kt.TUIRoomEvents.onSeatListChanged,j),a.instance?.off(Kt.TUIRoomEvents.onUserVideoStateChanged,N),a.instance?.off(Kt.TUIRoomEvents.onUserAudioStateChanged,n)})),{__sfc:!0,logPrefix:t,onRemoteUserEnterRoom:o,onUserAudioStateChanged:n,t:s,roomEngine:a,streamStyle:r,enlargedStreamStyle:i,roomStore:l,streamList:c,streamNumber:u,remoteStreamList:m,basicStore:d,layout:p,showSideList:f,enlargeStream:v,enlargeDomId:h,currentPageIndex:g,showStreamList:C,showTurnPageControl:_,showTurnPageLeftArrow:S,showTurnPageRightArrow:I,handleTurnPageLeft:y,handleTurnPageRight:b,streamContainerClass:R,enlargedContainerRef:T,streamListRef:w,arrowClass:A,handleClickIcon:k,handleNineEqualPointsLayout:M,handleRightSideListLayout:U,handleTopSideListLayout:x,handleEnlargeStreamRegion:L,handleLayout:E,handleResize:O,showIconControl:D,onUserVideoStateChanged:N,onSeatListChanged:j,onRemoteUserLeaveRoom:P,handleLargeStreamLeave:q,handleStreamContainerScroll:Z,handleStreamContainerScrollDebounce:V,StreamRegion:Ol,SvgIcon:io.Z}}}),Fl=$l,Hl=(0,uo.Z)(Fl,Vl,Bl,!1,null,"35d1e596",null),zl=Hl.exports;const Jl=wo.t?Zl:zl;var Ql=Jl,Wl=(0,Ft.defineComponent)({__name:"index",props:{showRoomTool:{type:Boolean}},setup(e){return{__sfc:!0,StreamContainer:Ql}}}),Gl=Wl,Kl=(0,uo.Z)(Gl,gl,Cl,!1,null,"f3be1146",null),Yl=Kl.exports,Xl=function(){var e=this,t=e._self._c,o=e._self._setupProxy;return o.showSettingDialog?t("div",{staticClass:"setting-dialog"},[t("div",{staticClass:"dialog-tabs"},[t("span",{staticClass:"dialog-title"},[e._v(e._s(o.t("Settings")))]),e._l(o.settingTabsTitleList,(function(n,s){return t("div",{key:s,class:["tabs-title",""+(o.activeSettingTab===n.value?"active":"")],on:{click:function(e){return o.handleUpdateActiveTab(n.value)}}},[e._v(" "+e._s(n.label)+" ")])}))],2),t("div",{staticClass:"divide-line"}),t("div",{staticClass:"dialog-content"},["audio"===o.activeSettingTab?t(o.AudioSettingTab,{attrs:{mode:o.SettingMode.DETAIL}}):e._e(),"video"===o.activeSettingTab?t(o.VideoSettingTab,{attrs:{mode:o.SettingMode.DETAIL,"with-preview":!0}}):e._e()],1),t(o.SvgIcon,{staticClass:"close-icon",attrs:{"icon-name":"close",size:"medium"},on:{click:o.handleCloseSettingDialog}})],1):e._e()},ec=[],tc=(0,Ft.defineComponent)({__name:"index",setup(e){const{t:t}=(0,to.Q)(),o=(0,Xt.o)(),{showSettingDialog:n,activeSettingTab:s}=(0,zt.Jk)(o),a=(0,Ft.computed)((()=>[{label:t("Audio settings"),value:"audio"},{label:t("Camera settings"),value:"video"}]));function r(e){o.setActiveSettingTab(e)}function i(){o.setShowSettingDialog(!1)}return{__sfc:!0,t:t,basicStore:o,showSettingDialog:n,activeSettingTab:s,settingTabsTitleList:a,handleUpdateActiveTab:r,handleCloseSettingDialog:i,SvgIcon:io.Z,AudioSettingTab:On.Z,VideoSettingTab:$n.Z,SettingMode:Cn.n}}}),oc=tc,nc=(0,uo.Z)(oc,Xl,ec,!1,null,"3d8c7752",null),sc=nc.exports,ac=(0,Ft.defineComponent)({__name:"index",emits:["on-log-out","on-create-room","on-enter-room","on-exit-room","on-destroy-room","on-kicked-out-of-room","on-kicked-off-line","on-userSig-expired"],setup(e,{expose:t,emit:o}){const n=(0,oo.Z)(),{t:s}=(0,to.Q)();t({init:b,createRoom:R,enterRoom:T,dismissRoom:S,leaveRoom:I,resetStore:M,t:s});const a="[Room]",r=(0,Xt.o)(),i=(0,eo.A)(),l=ns(),{sdkAppId:c,showHeaderTool:u}=(0,zt.Jk)(r),{localUser:m}=(0,zt.Jk)(i),d=(0,Ft.ref)(),p=(0,Ft.ref)(!0),f=(0,Ft.ref)();function v(){p.value=!1}const h=(0,$o.Ds)(v,5e3),g=(0,$o.P2)(h,1e3),C=new Kt.TRTCVideoEncParam;function _(){p.value=!p.value,p.value&&h()}async function S(){try{no.Z.log(`${a}dismissRoom: enter`),await y(),await(n.instance?.destroyRoom()),o("on-destroy-room")}catch(e){no.Z.error(`${a}dismissRoom error:`,e)}}async function I(){try{await y();const e=await(n.instance?.exitRoom());o("on-exit-room"),no.Z.log(`${a}leaveRoom:`,e)}catch(e){no.Z.error(`${a}leaveRoom error:`,e)}}async function y(){m.value.hasAudioStream&&await(n.instance?.closeLocalMicrophone()),m.value.hasVideoStream&&await(n.instance?.closeLocalCamera())}async function b(e){r.setBasicInfo(e),i.setLocalUser(e);const{sdkAppId:t,userId:o,userSig:n,userName:s,avatarUrl:a}=e;await Yt().login({sdkAppId:t,userId:o,userSig:n}),await Yt().setSelfInfo({userName:s,avatarUrl:a})}async function R(e){const{roomId:t,roomName:s,roomMode:l,roomParam:c}=e;try{if(!n.instance)return;r.setRoomId(t),no.Z.debug(`${a}createRoom:`,t,l,c);const e={roomId:t,name:s,roomType:Kt.TUIRoomType.kConference};"FreeToSpeak"===l?Object.assign(e,{speechMode:Kt.TUISpeechMode.kFreeToSpeak}):Object.assign(e,{speechMode:Kt.TUISpeechMode.kSpeakAfterTakingSeat}),await(n.instance?.createRoom(e)),o("on-create-room",{code:0,message:"create room success"});const u=n.instance?.getTRTCCloud();u.setDefaultStreamRecvMode(!0,!1),u.enableSmallVideoStream(!0,C);const m=await(n.instance?.enterRoom({roomId:t}));o("on-enter-room",{code:0,message:"enter room success"}),i.setRoomInfo(m),m.speechMode===Kt.TUISpeechMode.kSpeakAfterTakingSeat&&await(n.instance?.takeSeat({seatIndex:-1,timeout:0})),await w(),i.setRoomParam(c),an.reportEvent({name:"createRoom",ext1:"createRoom-success"})}catch(u){throw no.Z.error(`${a}createRoom error:`,u),r.reset(),u}}async function T(e){const{roomId:t,roomParam:s}=e;try{if(!n.instance)return;r.setRoomId(t),no.Z.debug(`${a}enterRoom:`,t,s);const e=n.instance?.getTRTCCloud();e.setDefaultStreamRecvMode(!0,!1),e.enableSmallVideoStream(!0,C);const l=await(n.instance?.enterRoom({roomId:t}));i.setRoomInfo(l),await w(),i.setRoomParam(s),o("on-enter-room",{code:0,message:"enter room success"}),an.reportEvent({name:"enterRoom",ext1:"enterRoom-success"})}catch(l){throw no.Z.error(`${a}enterRoom error:`,l),r.reset(),l}}async function w(){try{const{userInfoList:e}=await(n.instance?.getUserList());i.setUserList(e)}catch(e){no.Z.error("TUIRoomEngine.getUserList",e.code,e.message)}}C.videoResolution=Kt.TRTCVideoResolution.TRTCVideoResolution_640_360,C.videoFps=10,C.videoBitrate=550,wo.e||wo.t||((0,Ft.onMounted)((()=>{f.value?.addEventListener("mouseenter",(()=>{p.value=!0,h()})),f.value?.addEventListener("click",(()=>{p.value=!0,h()}),!1),f.value?.addEventListener("mousemove",(()=>{p.value=!0,g()})),f.value?.addEventListener("mouseleave",(()=>{p.value=!1}))})),(0,Ft.onUnmounted)((()=>{f.value?.removeEventListener("mouseenter",(()=>{p.value=!0,h()})),f.value?.removeEventListener("click",(()=>{p.value=!0,h()}),!1),f.value?.removeEventListener("mousemove",(()=>{p.value=!0,g()})),f.value?.removeEventListener("mouseleave",(()=>{p.value=!1}))}))),(0,Ft.onMounted)((async()=>{const e=r.defaultTheme,t=localStorage.getItem("tuiRoom-currentTheme")||e;if(r.setDefaultTheme(t),document.body.setAttribute("data-theme",t),wo.t){const e=n.instance?.getTRTCCloud();await(e?.setLocalRenderParams({mirrorType:Kt.TRTCVideoMirrorType.TRTCVideoMirrorType_Auto,rotation:Kt.TRTCVideoRotation.TRTCVideoRotation0,fillMode:Kt.TRTCVideoFillMode.TRTCVideoFillMode_Fill}))}}));const A=e=>{const{userVolumeList:t}=e;i.setAudioVolume(t)},k=e=>{r.setLocalQuality(e.userNetworkList)};function M(){r.reset(),l.reset(),i.reset()}const U=()=>{M(),o("on-log-out")},x=e=>{M(),o("on-destroy-room",e)},L=e=>{M(),o("on-exit-room",e)},E=e=>{no.Z.error("roomEngine.onError: ",e)},O=e=>{const{userId:t,isDisable:o}=e;if(t===m.value.userId){const e=s(o?"You have been banned from text chat by the host":"You are allowed to text chat by the host");(0,Ht.z)({type:"warning",message:e,duration:Nn.U.NORMAL}),l.setSendMessageDisableChanged(o)}},D=async e=>{const{roomId:t,reason:n,message:r}=e;try{M();let e="";switch(n){case Kt.TUIKickedOutOfRoomReason.kKickedByAdmin:e=s("kicked out of the room by the host");break;case Kt.TUIKickedOutOfRoomReason.kKickedByLoggedOnOtherDevice:e=s("kicked out of the room by other device");break;case Kt.TUIKickedOutOfRoomReason.kKickedByServer:e=s("kicked out of the room by serve");break}Ht.T.alert(e,s("Note"),{confirmButtonText:s("Confirm"),customClass:"custom-element-class",appendTo:"#roomContainer",callback:async()=>{o("on-kicked-out-of-room",{roomId:t,reason:n,message:r})}})}catch(i){no.Z.error(`${a}onKickedOutOfRoom error:`,i)}},N=()=>{Ht.T.alert("userSig 已过期",s("Note"),{confirmButtonText:s("Confirm"),customClass:"custom-element-class",appendTo:"#roomContainer",callback:async()=>{o("on-userSig-expired")}})},j=e=>{const{message:t}=e;Ht.T.alert("系统检测到您的账号被踢下线",s("Note"),{confirmButtonText:s("Confirm"),customClass:"custom-element-class",appendTo:"#roomContainer",callback:async()=>{o("on-kicked-off-line",{message:t})}})};async function P(e){const t=s(e?"The host has muted all":"The host has unmuted all");(0,Ht.z)({type:"warning",message:t,duration:Nn.U.NORMAL}),e&&await(n.instance?.closeLocalMicrophone())}async function q(e){const t=s(e?"The host has turned on the ban on all paintings":"The host has lifted the ban on all paintings");(0,Ht.z)({type:"warning",message:t,duration:Nn.U.NORMAL}),e&&await(n.instance?.closeLocalCamera())}async function Z(e){const t=s(e?"The host has turned on the ban on all chat":"The host has lifted the ban on all chat");(0,Ht.z)({type:"warning",message:t,duration:Nn.U.NORMAL})}const V=async e=>{const{isDisable:t}=e;t!==i.isCameraDisableForAllUser&&m.value.userRole===Kt.TUIRole.kGeneralUser&&(q(t),i.setCanControlSelfVideo(!t)),i.setDisableCameraForAllUserByAdmin(t)},B=async e=>{const{isDisable:t}=e;t!==i.isMicrophoneDisableForAllUser&&m.value.userRole===Kt.TUIRole.kGeneralUser&&(P(t),i.setCanControlSelfAudio(!t)),i.setDisableMicrophoneForAllUserByAdmin(t)},$=async e=>{const{isDisable:t}=e;t!==i.isMessageDisableForAllUser&&m.value.userRole===Kt.TUIRole.kGeneralUser&&Z(t),i.setDisableMessageAllUserByAdmin(t)};async function F(){const e=await(n.instance?.getCameraDevicesList()),t=await(n.instance?.getMicDevicesList()),o=await(n.instance?.getSpeakerDevicesList());e&&i.setCameraList(e),t&&i.setMicrophoneList(t),o&&i.setSpeakerList(o);const s=n.instance?.getCurrentCameraDevice(),a=n.instance?.getCurrentMicDevice(),r=n.instance?.getCurrentSpeakerDevice();s&&s.deviceId&&i.setCurrentCameraId(s.deviceId),a&&a.deviceId&&i.setCurrentMicrophoneId(a.deviceId),r&&r.deviceId&&i.setCurrentSpeakerId(r.deviceId)}async function H(e){const t=["add","remove","active"],{deviceId:o,type:s,state:a}=e;if(s===Kt.TRTCDeviceType.TRTCDeviceTypeMic){no.Z.log(`onDeviceChange: deviceId: ${o}, type: microphone, state: ${t[a]}`);const e=await(n.instance?.getMicDevicesList());return e&&i.setMicrophoneList(e),void(a===Kt.TRTCDeviceState.TRTCDeviceStateActive&&i.setCurrentMicrophoneId(o))}if(s===Kt.TRTCDeviceType.TRTCDeviceTypeSpeaker){no.Z.log(`onDeviceChange: deviceId: ${o}, type: speaker, state: ${t[a]}`);const e=await(n.instance?.getSpeakerDevicesList());return e&&i.setSpeakerList(e),void(a===Kt.TRTCDeviceState.TRTCDeviceStateActive&&i.setCurrentSpeakerId(o))}if(s===Kt.TRTCDeviceType.TRTCDeviceTypeCamera){no.Z.log(`onDeviceChange: deviceId: ${o}, type: camera, state: ${t[a]}`);const e=await(n.instance?.getCameraDevicesList());e&&i.setCameraList(e),a===Kt.TRTCDeviceState.TRTCDeviceStateActive&&i.setCurrentCameraId(o)}}return Yt().once("ready",(()=>{n.instance?.on(Kt.TUIRoomEvents.onError,E),n.instance?.on(Kt.TUIRoomEvents.onUserVoiceVolumeChanged,A),n.instance?.on(Kt.TUIRoomEvents.onUserNetworkQualityChanged,k),n.instance?.on(Kt.TUIRoomEvents.onKickedOutOfRoom,D),n.instance?.on(Kt.TUIRoomEvents.onSendMessageForUserDisableChanged,O),n.instance?.on(Kt.TUIRoomEvents.onUserSigExpired,N),n.instance?.on(Kt.TUIRoomEvents.onKickedOffLine,j),n.instance?.on(Kt.TUIRoomEvents.onAllUserCameraDisableChanged,V),n.instance?.on(Kt.TUIRoomEvents.onAllUserMicrophoneDisableChanged,B),n.instance?.on(Kt.TUIRoomEvents.onSendMessageForAllUserDisableChanged,$),n.instance?.on(Kt.TUIRoomEvents.onDeviceChange,H),F()})),(0,Ft.onUnmounted)((()=>{n.instance?.off(Kt.TUIRoomEvents.onError,E),n.instance?.off(Kt.TUIRoomEvents.onUserVoiceVolumeChanged,A),n.instance?.off(Kt.TUIRoomEvents.onUserNetworkQualityChanged,k),n.instance?.off(Kt.TUIRoomEvents.onKickedOutOfRoom,D),n.instance?.off(Kt.TUIRoomEvents.onSendMessageForUserDisableChanged,O),n.instance?.off(Kt.TUIRoomEvents.onUserSigExpired,N),n.instance?.off(Kt.TUIRoomEvents.onKickedOffLine,j),n.instance?.off(Kt.TUIRoomEvents.onAllUserCameraDisableChanged,V),n.instance?.off(Kt.TUIRoomEvents.onAllUserMicrophoneDisableChanged,B),n.instance?.off(Kt.TUIRoomEvents.onSendMessageForAllUserDisableChanged,$),n.instance?.off(Kt.TUIRoomEvents.onDeviceChange,H)})),(0,Ft.watch)(c,(e=>{e&&(an.setSdkAppId(e),an.reportEvent({name:"loaded",ext1:"loaded-success"}))})),{__sfc:!0,roomEngine:n,t:s,emit:o,logPrefix:a,basicStore:r,roomStore:i,chatStore:l,sdkAppId:c,showHeaderTool:u,localUser:m,roomContentRef:d,showRoomTool:p,roomRef:f,handleHideRoomTool:v,handleHideRoomToolDebounce:h,handleHideRoomToolThrottle:g,smallParam:C,handleRoomContentTap:_,dismissRoom:S,leaveRoom:I,closeMediaBeforeLeave:y,init:b,createRoom:R,enterRoom:T,getUserList:w,onUserVoiceVolumeChanged:A,onUserNetworkQualityChanged:k,resetStore:M,logOut:U,onDestroyRoom:x,onExitRoom:L,onError:E,onSendMessageForUserDisableChanged:O,onKickedOutOfRoom:D,onUserSigExpired:N,onKickedOffLine:j,handleAudioStateChange:P,handleVideoStateChange:q,handleMessageStateChange:Z,onAllUserCameraDisableChanged:V,onAllUserMicrophoneDisableChanged:B,onSendMessageForAllUserDisableChanged:$,getMediaDeviceList:F,onDeviceChange:H,RoomHeader:kn,RoomFooter:mr,RoomSidebar:hl,RoomContent:Yl,RoomSetting:sc}}}),rc=ac,ic=(0,uo.Z)(rc,Bt,$t,!1,null,"7c957b1c",null),lc=ic.exports,cc=o(8499),uc=o(1420);const mc=(0,Xt.o)(),dc=(0,eo.A)();let pc;uc.Z.beforeEach(((e,t,o)=>{if(mc.roomId){const e=dc.isMaster?pc?.t("This action causes the room to be disbanded, does it continue?"):pc?.t("This action causes the room to be exited, does it continue?");window.confirm(e)?(dc.isMaster?pc?.dismissRoom():pc?.leaveRoom(),pc?.resetStore(),o()):o(!1)}else o()}));var fc={name:"Room",components:{RoomContainer:lc},data(){return{roomInfo:null,userInfo:null,roomId:0}},async mounted(){if(pc=this.$refs.TUIRoomRef,this.roomInfo=sessionStorage.getItem("tuiRoom-roomInfo"),this.userInfo=sessionStorage.getItem("tuiRoom-userInfo"),console.log(this.userInfo),this.roomId=this.$route.query.roomId,!this.roomId)return void this.$router.push({path:"home"});if(!this.roomInfo)return void this.$router.push({path:"home",query:{roomId:this.roomId}});const{action:e,roomMode:t,roomParam:o}=JSON.parse(this.roomInfo),{sdkAppId:n,userId:s,userSig:a,userName:r,avatarUrl:i}=JSON.parse(this.userInfo);try{if(await pc.init({sdkAppId:n,userId:s,userSig:a,userName:r,avatarUrl:i}),"createRoom"===e)try{await pc.createRoom({roomId:this.roomId,roomName:this.roomId,roomMode:t,roomParam:o})}catch(l){const e=this.$t("Failed to enter the room.")+l.message;cc.MessageBox.alert(e,this.$t("Note"),{customClass:"custom-element-class",confirmButtonText:this.$t("Confirm"),callback:()=>{this.$router.push({path:"home"})}})}else if("enterRoom"===e)try{await pc.enterRoom({roomId:this.roomId,roomParam:o})}catch(l){const e=this.$t("Failed to enter the room.")+l.message;cc.MessageBox.alert(e,this.$t("Note"),{customClass:"custom-element-class",confirmButtonText:this.$t("Confirm"),callback:()=>{this.$router.push({path:"home"})}})}}catch(l){const e=this.$t("Failed to enter the room.")+l.message;cc.MessageBox.alert(e,this.$t("Note"),{customClass:"custom-element-class",confirmButtonText:this.$t("Confirm"),callback:()=>{sessionStorage.removeItem("tuiRoom-currentUserInfo"),this.$router.push({path:"home"})}})}},methods:{handleLogOut(){},onCreateRoom(e){no.Z.debug("onEnterRoom:",e),alert(`房间号为${this.roomId}`),Vt.post("https://api.xayunmei.com/zhongcaiapi/caseApplication/sendRoomNoMessage",{roomNo:this.roomId,id:sessionStorage.getItem("id")}).then((e=>{console.log(e)}))},onEnterRoom(e){no.Z.debug("onCreateRoom:",e)},onDestroyRoom(e){no.Z.debug("onDestroyRoom:",e),this.$router.replace({path:"/home"})},onExitRoom(e){no.Z.debug("onExitRoom:",e),this.$router.replace({path:"/home"})},onKickedOutOfRoom(e){no.Z.debug("onKickedOutOfRoom:",e),sessionStorage.removeItem("tuiRoom-roomInfo"),this.$router.replace({path:"/home"})},onKickedOffLine(e){no.Z.debug("onKickedOffLine:",e),sessionStorage.removeItem("tuiRoom-roomInfo"),this.$router.replace({path:"/home"})},onUserSigExpired(){no.Z.debug("onUserSigExpired"),sessionStorage.removeItem("tuiRoom-roomInfo"),sessionStorage.removeItem("tuiRoom-currentUserInfo"),this.$router.replace({path:"/home"})}}},vc=fc,hc=(0,uo.Z)(vc,n,s,!1,null,null,null),gc=hc.exports}}]);
-//# sourceMappingURL=about.52ae78e0.js.map
\ No newline at end of file
+"use strict";(self["webpackChunkroom_uikit_web_vue2"]=self["webpackChunkroom_uikit_web_vue2"]||[]).push([[443],{6348:function(e,t,o){o.r(t),o.d(t,{default:function(){return gc}});var n=function(){var e=this,t=e._self._c;return t("room-container",{ref:"TUIRoomRef",on:{"on-log-out":e.handleLogOut,"on-create-room":e.onCreateRoom,"on-enter-room":e.onEnterRoom,"on-exit-room":e.onExitRoom,"on-destroy-room":e.onDestroyRoom,"on-kicked-out-of-room":e.onKickedOutOfRoom,"on-kick-off-line":e.onKickedOffLine,"on-user-sig-expired":e.onUserSigExpired}})},s=[];o(7658);function a(e,t){return function(){return e.apply(t,arguments)}}const{toString:r}=Object.prototype,{getPrototypeOf:i}=Object,l=(e=>t=>{const o=r.call(t);return e[o]||(e[o]=o.slice(8,-1).toLowerCase())})(Object.create(null)),c=e=>(e=e.toLowerCase(),t=>l(t)===e),u=e=>t=>typeof t===e,{isArray:m}=Array,d=u("undefined");function p(e){return null!==e&&!d(e)&&null!==e.constructor&&!d(e.constructor)&&g(e.constructor.isBuffer)&&e.constructor.isBuffer(e)}const f=c("ArrayBuffer");function v(e){let t;return t="undefined"!==typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(e):e&&e.buffer&&f(e.buffer),t}const h=u("string"),g=u("function"),C=u("number"),_=e=>null!==e&&"object"===typeof e,S=e=>!0===e||!1===e,I=e=>{if("object"!==l(e))return!1;const t=i(e);return(null===t||t===Object.prototype||null===Object.getPrototypeOf(t))&&!(Symbol.toStringTag in e)&&!(Symbol.iterator in e)},y=c("Date"),b=c("File"),R=c("Blob"),T=c("FileList"),w=e=>_(e)&&g(e.pipe),A=e=>{let t;return e&&("function"===typeof FormData&&e instanceof FormData||g(e.append)&&("formdata"===(t=l(e))||"object"===t&&g(e.toString)&&"[object FormData]"===e.toString()))},k=c("URLSearchParams"),M=e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function U(e,t,{allOwnKeys:o=!1}={}){if(null===e||"undefined"===typeof e)return;let n,s;if("object"!==typeof e&&(e=[e]),m(e))for(n=0,s=e.length;n0)if(n=o[s],t===n.toLowerCase())return n;return null}const L=(()=>"undefined"!==typeof globalThis?globalThis:"undefined"!==typeof self?self:"undefined"!==typeof window?window:global)(),E=e=>!d(e)&&e!==L;function O(){const{caseless:e}=E(this)&&this||{},t={},o=(o,n)=>{const s=e&&x(t,n)||n;I(t[s])&&I(o)?t[s]=O(t[s],o):I(o)?t[s]=O({},o):m(o)?t[s]=o.slice():t[s]=o};for(let n=0,s=arguments.length;n(U(t,((t,n)=>{o&&g(t)?e[n]=a(t,o):e[n]=t}),{allOwnKeys:n}),e),N=e=>(65279===e.charCodeAt(0)&&(e=e.slice(1)),e),P=(e,t,o,n)=>{e.prototype=Object.create(t.prototype,n),e.prototype.constructor=e,Object.defineProperty(e,"super",{value:t.prototype}),o&&Object.assign(e.prototype,o)},j=(e,t,o,n)=>{let s,a,r;const l={};if(t=t||{},null==e)return t;do{s=Object.getOwnPropertyNames(e),a=s.length;while(a-- >0)r=s[a],n&&!n(r,e,t)||l[r]||(t[r]=e[r],l[r]=!0);e=!1!==o&&i(e)}while(e&&(!o||o(e,t))&&e!==Object.prototype);return t},q=(e,t,o)=>{e=String(e),(void 0===o||o>e.length)&&(o=e.length),o-=t.length;const n=e.indexOf(t,o);return-1!==n&&n===o},Z=e=>{if(!e)return null;if(m(e))return e;let t=e.length;if(!C(t))return null;const o=new Array(t);while(t-- >0)o[t]=e[t];return o},V=(e=>t=>e&&t instanceof e)("undefined"!==typeof Uint8Array&&i(Uint8Array)),B=(e,t)=>{const o=e&&e[Symbol.iterator],n=o.call(e);let s;while((s=n.next())&&!s.done){const o=s.value;t.call(e,o[0],o[1])}},$=(e,t)=>{let o;const n=[];while(null!==(o=e.exec(t)))n.push(o);return n},F=c("HTMLFormElement"),z=e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,(function(e,t,o){return t.toUpperCase()+o})),H=(({hasOwnProperty:e})=>(t,o)=>e.call(t,o))(Object.prototype),J=c("RegExp"),Q=(e,t)=>{const o=Object.getOwnPropertyDescriptors(e),n={};U(o,((o,s)=>{let a;!1!==(a=t(o,s,e))&&(n[s]=a||o)})),Object.defineProperties(e,n)},W=e=>{Q(e,((t,o)=>{if(g(e)&&-1!==["arguments","caller","callee"].indexOf(o))return!1;const n=e[o];g(n)&&(t.enumerable=!1,"writable"in t?t.writable=!1:t.set||(t.set=()=>{throw Error("Can not rewrite read-only method '"+o+"'")}))}))},G=(e,t)=>{const o={},n=e=>{e.forEach((e=>{o[e]=!0}))};return m(e)?n(e):n(String(e).split(t)),o},K=()=>{},Y=(e,t)=>(e=+e,Number.isFinite(e)?e:t),X="abcdefghijklmnopqrstuvwxyz",ee="0123456789",te={DIGIT:ee,ALPHA:X,ALPHA_DIGIT:X+X.toUpperCase()+ee},oe=(e=16,t=te.ALPHA_DIGIT)=>{let o="";const{length:n}=t;while(e--)o+=t[Math.random()*n|0];return o};function ne(e){return!!(e&&g(e.append)&&"FormData"===e[Symbol.toStringTag]&&e[Symbol.iterator])}const se=e=>{const t=new Array(10),o=(e,n)=>{if(_(e)){if(t.indexOf(e)>=0)return;if(!("toJSON"in e)){t[n]=e;const s=m(e)?[]:{};return U(e,((e,t)=>{const a=o(e,n+1);!d(a)&&(s[t]=a)})),t[n]=void 0,s}}return e};return o(e,0)},ae=c("AsyncFunction"),re=e=>e&&(_(e)||g(e))&&g(e.then)&&g(e.catch);var ie={isArray:m,isArrayBuffer:f,isBuffer:p,isFormData:A,isArrayBufferView:v,isString:h,isNumber:C,isBoolean:S,isObject:_,isPlainObject:I,isUndefined:d,isDate:y,isFile:b,isBlob:R,isRegExp:J,isFunction:g,isStream:w,isURLSearchParams:k,isTypedArray:V,isFileList:T,forEach:U,merge:O,extend:D,trim:M,stripBOM:N,inherits:P,toFlatObject:j,kindOf:l,kindOfTest:c,endsWith:q,toArray:Z,forEachEntry:B,matchAll:$,isHTMLForm:F,hasOwnProperty:H,hasOwnProp:H,reduceDescriptors:Q,freezeMethods:W,toObjectSet:G,toCamelCase:z,noop:K,toFiniteNumber:Y,findKey:x,global:L,isContextDefined:E,ALPHABET:te,generateString:oe,isSpecCompliantForm:ne,toJSONObject:se,isAsyncFn:ae,isThenable:re};o(541);function le(e,t,o,n,s){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=(new Error).stack,this.message=e,this.name="AxiosError",t&&(this.code=t),o&&(this.config=o),n&&(this.request=n),s&&(this.response=s)}ie.inherits(le,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:ie.toJSONObject(this.config),code:this.code,status:this.response&&this.response.status?this.response.status:null}}});const ce=le.prototype,ue={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach((e=>{ue[e]={value:e}})),Object.defineProperties(le,ue),Object.defineProperty(ce,"isAxiosError",{value:!0}),le.from=(e,t,o,n,s,a)=>{const r=Object.create(ce);return ie.toFlatObject(e,r,(function(e){return e!==Error.prototype}),(e=>"isAxiosError"!==e)),le.call(r,e.message,t,o,n,s),r.cause=e,r.name=e.name,a&&Object.assign(r,a),r};var me=le,de=null;function pe(e){return ie.isPlainObject(e)||ie.isArray(e)}function fe(e){return ie.endsWith(e,"[]")?e.slice(0,-2):e}function ve(e,t,o){return e?e.concat(t).map((function(e,t){return e=fe(e),!o&&t?"["+e+"]":e})).join(o?".":""):t}function he(e){return ie.isArray(e)&&!e.some(pe)}const ge=ie.toFlatObject(ie,{},null,(function(e){return/^is[A-Z]/.test(e)}));function Ce(e,t,o){if(!ie.isObject(e))throw new TypeError("target must be an object");t=t||new(de||FormData),o=ie.toFlatObject(o,{metaTokens:!0,dots:!1,indexes:!1},!1,(function(e,t){return!ie.isUndefined(t[e])}));const n=o.metaTokens,s=o.visitor||u,a=o.dots,r=o.indexes,i=o.Blob||"undefined"!==typeof Blob&&Blob,l=i&&ie.isSpecCompliantForm(t);if(!ie.isFunction(s))throw new TypeError("visitor must be a function");function c(e){if(null===e)return"";if(ie.isDate(e))return e.toISOString();if(!l&&ie.isBlob(e))throw new me("Blob is not supported. Use a Buffer instead.");return ie.isArrayBuffer(e)||ie.isTypedArray(e)?l&&"function"===typeof Blob?new Blob([e]):Buffer.from(e):e}function u(e,o,s){let i=e;if(e&&!s&&"object"===typeof e)if(ie.endsWith(o,"{}"))o=n?o:o.slice(0,-2),e=JSON.stringify(e);else if(ie.isArray(e)&&he(e)||(ie.isFileList(e)||ie.endsWith(o,"[]"))&&(i=ie.toArray(e)))return o=fe(o),i.forEach((function(e,n){!ie.isUndefined(e)&&null!==e&&t.append(!0===r?ve([o],n,a):null===r?o:o+"[]",c(e))})),!1;return!!pe(e)||(t.append(ve(s,o,a),c(e)),!1)}const m=[],d=Object.assign(ge,{defaultVisitor:u,convertValue:c,isVisitable:pe});function p(e,o){if(!ie.isUndefined(e)){if(-1!==m.indexOf(e))throw Error("Circular reference detected in "+o.join("."));m.push(e),ie.forEach(e,(function(e,n){const a=!(ie.isUndefined(e)||null===e)&&s.call(t,e,ie.isString(n)?n.trim():n,o,d);!0===a&&p(e,o?o.concat(n):[n])})),m.pop()}}if(!ie.isObject(e))throw new TypeError("data must be an object");return p(e),t}var _e=Ce;function Se(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,(function(e){return t[e]}))}function Ie(e,t){this._pairs=[],e&&_e(e,this,t)}const ye=Ie.prototype;ye.append=function(e,t){this._pairs.push([e,t])},ye.toString=function(e){const t=e?function(t){return e.call(this,t,Se)}:Se;return this._pairs.map((function(e){return t(e[0])+"="+t(e[1])}),"").join("&")};var be=Ie;function Re(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function Te(e,t,o){if(!t)return e;const n=o&&o.encode||Re,s=o&&o.serialize;let a;if(a=s?s(t,o):ie.isURLSearchParams(t)?t.toString():new be(t,o).toString(n),a){const t=e.indexOf("#");-1!==t&&(e=e.slice(0,t)),e+=(-1===e.indexOf("?")?"?":"&")+a}return e}class we{constructor(){this.handlers=[]}use(e,t,o){return this.handlers.push({fulfilled:e,rejected:t,synchronous:!!o&&o.synchronous,runWhen:o?o.runWhen:null}),this.handlers.length-1}eject(e){this.handlers[e]&&(this.handlers[e]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(e){ie.forEach(this.handlers,(function(t){null!==t&&e(t)}))}}var Ae=we,ke={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},Me="undefined"!==typeof URLSearchParams?URLSearchParams:be,Ue="undefined"!==typeof FormData?FormData:null,xe="undefined"!==typeof Blob?Blob:null;const Le=(()=>{let e;return("undefined"===typeof navigator||"ReactNative"!==(e=navigator.product)&&"NativeScript"!==e&&"NS"!==e)&&("undefined"!==typeof window&&"undefined"!==typeof document)})(),Ee=(()=>"undefined"!==typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&"function"===typeof self.importScripts)();var Oe={isBrowser:!0,classes:{URLSearchParams:Me,FormData:Ue,Blob:xe},isStandardBrowserEnv:Le,isStandardBrowserWebWorkerEnv:Ee,protocols:["http","https","file","blob","url","data"]};function De(e,t){return _e(e,new Oe.classes.URLSearchParams,Object.assign({visitor:function(e,t,o,n){return Oe.isNode&&ie.isBuffer(e)?(this.append(t,e.toString("base64")),!1):n.defaultVisitor.apply(this,arguments)}},t))}function Ne(e){return ie.matchAll(/\w+|\[(\w*)]/g,e).map((e=>"[]"===e[0]?"":e[1]||e[0]))}function Pe(e){const t={},o=Object.keys(e);let n;const s=o.length;let a;for(n=0;n=e.length;if(a=!a&&ie.isArray(n)?n.length:a,i)return ie.hasOwnProp(n,a)?n[a]=[n[a],o]:n[a]=o,!r;n[a]&&ie.isObject(n[a])||(n[a]=[]);const l=t(e,o,n[a],s);return l&&ie.isArray(n[a])&&(n[a]=Pe(n[a])),!r}if(ie.isFormData(e)&&ie.isFunction(e.entries)){const o={};return ie.forEachEntry(e,((e,n)=>{t(Ne(e),n,o,0)})),o}return null}var qe=je;function Ze(e,t,o){if(ie.isString(e))try{return(t||JSON.parse)(e),ie.trim(e)}catch(n){if("SyntaxError"!==n.name)throw n}return(o||JSON.stringify)(e)}const Ve={transitional:ke,adapter:["xhr","http"],transformRequest:[function(e,t){const o=t.getContentType()||"",n=o.indexOf("application/json")>-1,s=ie.isObject(e);s&&ie.isHTMLForm(e)&&(e=new FormData(e));const a=ie.isFormData(e);if(a)return n&&n?JSON.stringify(qe(e)):e;if(ie.isArrayBuffer(e)||ie.isBuffer(e)||ie.isStream(e)||ie.isFile(e)||ie.isBlob(e))return e;if(ie.isArrayBufferView(e))return e.buffer;if(ie.isURLSearchParams(e))return t.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),e.toString();let r;if(s){if(o.indexOf("application/x-www-form-urlencoded")>-1)return De(e,this.formSerializer).toString();if((r=ie.isFileList(e))||o.indexOf("multipart/form-data")>-1){const t=this.env&&this.env.FormData;return _e(r?{"files[]":e}:e,t&&new t,this.formSerializer)}}return s||n?(t.setContentType("application/json",!1),Ze(e)):e}],transformResponse:[function(e){const t=this.transitional||Ve.transitional,o=t&&t.forcedJSONParsing,n="json"===this.responseType;if(e&&ie.isString(e)&&(o&&!this.responseType||n)){const o=t&&t.silentJSONParsing,a=!o&&n;try{return JSON.parse(e)}catch(s){if(a){if("SyntaxError"===s.name)throw me.from(s,me.ERR_BAD_RESPONSE,this,null,this.response);throw s}}}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:Oe.classes.FormData,Blob:Oe.classes.Blob},validateStatus:function(e){return e>=200&&e<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};ie.forEach(["delete","get","head","post","put","patch"],(e=>{Ve.headers[e]={}}));var Be=Ve;const $e=ie.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]);var Fe=e=>{const t={};let o,n,s;return e&&e.split("\n").forEach((function(e){s=e.indexOf(":"),o=e.substring(0,s).trim().toLowerCase(),n=e.substring(s+1).trim(),!o||t[o]&&$e[o]||("set-cookie"===o?t[o]?t[o].push(n):t[o]=[n]:t[o]=t[o]?t[o]+", "+n:n)})),t};const ze=Symbol("internals");function He(e){return e&&String(e).trim().toLowerCase()}function Je(e){return!1===e||null==e?e:ie.isArray(e)?e.map(Je):String(e)}function Qe(e){const t=Object.create(null),o=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let n;while(n=o.exec(e))t[n[1]]=n[2];return t}const We=e=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim());function Ge(e,t,o,n,s){return ie.isFunction(n)?n.call(this,t,o):(s&&(t=o),ie.isString(t)?ie.isString(n)?-1!==t.indexOf(n):ie.isRegExp(n)?n.test(t):void 0:void 0)}function Ke(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,((e,t,o)=>t.toUpperCase()+o))}function Ye(e,t){const o=ie.toCamelCase(" "+t);["get","set","has"].forEach((n=>{Object.defineProperty(e,n+o,{value:function(e,o,s){return this[n].call(this,t,e,o,s)},configurable:!0})}))}class Xe{constructor(e){e&&this.set(e)}set(e,t,o){const n=this;function s(e,t,o){const s=He(t);if(!s)throw new Error("header name must be a non-empty string");const a=ie.findKey(n,s);(!a||void 0===n[a]||!0===o||void 0===o&&!1!==n[a])&&(n[a||t]=Je(e))}const a=(e,t)=>ie.forEach(e,((e,o)=>s(e,o,t)));return ie.isPlainObject(e)||e instanceof this.constructor?a(e,t):ie.isString(e)&&(e=e.trim())&&!We(e)?a(Fe(e),t):null!=e&&s(t,e,o),this}get(e,t){if(e=He(e),e){const o=ie.findKey(this,e);if(o){const e=this[o];if(!t)return e;if(!0===t)return Qe(e);if(ie.isFunction(t))return t.call(this,e,o);if(ie.isRegExp(t))return t.exec(e);throw new TypeError("parser must be boolean|regexp|function")}}}has(e,t){if(e=He(e),e){const o=ie.findKey(this,e);return!(!o||void 0===this[o]||t&&!Ge(this,this[o],o,t))}return!1}delete(e,t){const o=this;let n=!1;function s(e){if(e=He(e),e){const s=ie.findKey(o,e);!s||t&&!Ge(o,o[s],s,t)||(delete o[s],n=!0)}}return ie.isArray(e)?e.forEach(s):s(e),n}clear(e){const t=Object.keys(this);let o=t.length,n=!1;while(o--){const s=t[o];e&&!Ge(this,this[s],s,e,!0)||(delete this[s],n=!0)}return n}normalize(e){const t=this,o={};return ie.forEach(this,((n,s)=>{const a=ie.findKey(o,s);if(a)return t[a]=Je(n),void delete t[s];const r=e?Ke(s):String(s).trim();r!==s&&delete t[s],t[r]=Je(n),o[r]=!0})),this}concat(...e){return this.constructor.concat(this,...e)}toJSON(e){const t=Object.create(null);return ie.forEach(this,((o,n)=>{null!=o&&!1!==o&&(t[n]=e&&ie.isArray(o)?o.join(", "):o)})),t}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map((([e,t])=>e+": "+t)).join("\n")}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(e){return e instanceof this?e:new this(e)}static concat(e,...t){const o=new this(e);return t.forEach((e=>o.set(e))),o}static accessor(e){const t=this[ze]=this[ze]={accessors:{}},o=t.accessors,n=this.prototype;function s(e){const t=He(e);o[t]||(Ye(n,e),o[t]=!0)}return ie.isArray(e)?e.forEach(s):s(e),this}}Xe.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]),ie.reduceDescriptors(Xe.prototype,(({value:e},t)=>{let o=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(e){this[o]=e}}})),ie.freezeMethods(Xe);var et=Xe;function tt(e,t){const o=this||Be,n=t||o,s=et.from(n.headers);let a=n.data;return ie.forEach(e,(function(e){a=e.call(o,a,s.normalize(),t?t.status:void 0)})),s.normalize(),a}function ot(e){return!(!e||!e.__CANCEL__)}function nt(e,t,o){me.call(this,null==e?"canceled":e,me.ERR_CANCELED,t,o),this.name="CanceledError"}ie.inherits(nt,me,{__CANCEL__:!0});var st=nt;o(2801);function at(e,t,o){const n=o.config.validateStatus;o.status&&n&&!n(o.status)?t(new me("Request failed with status code "+o.status,[me.ERR_BAD_REQUEST,me.ERR_BAD_RESPONSE][Math.floor(o.status/100)-4],o.config,o.request,o)):e(o)}var rt=Oe.isStandardBrowserEnv?function(){return{write:function(e,t,o,n,s,a){const r=[];r.push(e+"="+encodeURIComponent(t)),ie.isNumber(o)&&r.push("expires="+new Date(o).toGMTString()),ie.isString(n)&&r.push("path="+n),ie.isString(s)&&r.push("domain="+s),!0===a&&r.push("secure"),document.cookie=r.join("; ")},read:function(e){const t=document.cookie.match(new RegExp("(^|;\\s*)("+e+")=([^;]*)"));return t?decodeURIComponent(t[3]):null},remove:function(e){this.write(e,"",Date.now()-864e5)}}}():function(){return{write:function(){},read:function(){return null},remove:function(){}}}();function it(e){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(e)}function lt(e,t){return t?e.replace(/\/+$/,"")+"/"+t.replace(/^\/+/,""):e}function ct(e,t){return e&&!it(t)?lt(e,t):t}var ut=Oe.isStandardBrowserEnv?function(){const e=/(msie|trident)/i.test(navigator.userAgent),t=document.createElement("a");let o;function n(o){let n=o;return e&&(t.setAttribute("href",n),n=t.href),t.setAttribute("href",n),{href:t.href,protocol:t.protocol?t.protocol.replace(/:$/,""):"",host:t.host,search:t.search?t.search.replace(/^\?/,""):"",hash:t.hash?t.hash.replace(/^#/,""):"",hostname:t.hostname,port:t.port,pathname:"/"===t.pathname.charAt(0)?t.pathname:"/"+t.pathname}}return o=n(window.location.href),function(e){const t=ie.isString(e)?n(e):e;return t.protocol===o.protocol&&t.host===o.host}}():function(){return function(){return!0}}();function mt(e){const t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}function dt(e,t){e=e||10;const o=new Array(e),n=new Array(e);let s,a=0,r=0;return t=void 0!==t?t:1e3,function(i){const l=Date.now(),c=n[r];s||(s=l),o[a]=i,n[a]=l;let u=r,m=0;while(u!==a)m+=o[u++],u%=e;if(a=(a+1)%e,a===r&&(r=(r+1)%e),l-s{const a=s.loaded,r=s.lengthComputable?s.total:void 0,i=a-o,l=n(i),c=a<=r;o=a;const u={loaded:a,total:r,progress:r?a/r:void 0,bytes:i,rate:l||void 0,estimated:l&&r&&c?(r-a)/l:void 0,event:s};u[t?"download":"upload"]=!0,e(u)}}const vt="undefined"!==typeof XMLHttpRequest;var ht=vt&&function(e){return new Promise((function(t,o){let n=e.data;const s=et.from(e.headers).normalize(),a=e.responseType;let r,i;function l(){e.cancelToken&&e.cancelToken.unsubscribe(r),e.signal&&e.signal.removeEventListener("abort",r)}ie.isFormData(n)&&(Oe.isStandardBrowserEnv||Oe.isStandardBrowserWebWorkerEnv?s.setContentType(!1):s.getContentType(/^\s*multipart\/form-data/)?ie.isString(i=s.getContentType())&&s.setContentType(i.replace(/^\s*(multipart\/form-data);+/,"$1")):s.setContentType("multipart/form-data"));let c=new XMLHttpRequest;if(e.auth){const t=e.auth.username||"",o=e.auth.password?unescape(encodeURIComponent(e.auth.password)):"";s.set("Authorization","Basic "+btoa(t+":"+o))}const u=ct(e.baseURL,e.url);function m(){if(!c)return;const n=et.from("getAllResponseHeaders"in c&&c.getAllResponseHeaders()),s=a&&"text"!==a&&"json"!==a?c.response:c.responseText,r={data:s,status:c.status,statusText:c.statusText,headers:n,config:e,request:c};at((function(e){t(e),l()}),(function(e){o(e),l()}),r),c=null}if(c.open(e.method.toUpperCase(),Te(u,e.params,e.paramsSerializer),!0),c.timeout=e.timeout,"onloadend"in c?c.onloadend=m:c.onreadystatechange=function(){c&&4===c.readyState&&(0!==c.status||c.responseURL&&0===c.responseURL.indexOf("file:"))&&setTimeout(m)},c.onabort=function(){c&&(o(new me("Request aborted",me.ECONNABORTED,e,c)),c=null)},c.onerror=function(){o(new me("Network Error",me.ERR_NETWORK,e,c)),c=null},c.ontimeout=function(){let t=e.timeout?"timeout of "+e.timeout+"ms exceeded":"timeout exceeded";const n=e.transitional||ke;e.timeoutErrorMessage&&(t=e.timeoutErrorMessage),o(new me(t,n.clarifyTimeoutError?me.ETIMEDOUT:me.ECONNABORTED,e,c)),c=null},Oe.isStandardBrowserEnv){const t=(e.withCredentials||ut(u))&&e.xsrfCookieName&&rt.read(e.xsrfCookieName);t&&s.set(e.xsrfHeaderName,t)}void 0===n&&s.setContentType(null),"setRequestHeader"in c&&ie.forEach(s.toJSON(),(function(e,t){c.setRequestHeader(t,e)})),ie.isUndefined(e.withCredentials)||(c.withCredentials=!!e.withCredentials),a&&"json"!==a&&(c.responseType=e.responseType),"function"===typeof e.onDownloadProgress&&c.addEventListener("progress",ft(e.onDownloadProgress,!0)),"function"===typeof e.onUploadProgress&&c.upload&&c.upload.addEventListener("progress",ft(e.onUploadProgress)),(e.cancelToken||e.signal)&&(r=t=>{c&&(o(!t||t.type?new st(null,e,c):t),c.abort(),c=null)},e.cancelToken&&e.cancelToken.subscribe(r),e.signal&&(e.signal.aborted?r():e.signal.addEventListener("abort",r)));const d=mt(u);d&&-1===Oe.protocols.indexOf(d)?o(new me("Unsupported protocol "+d+":",me.ERR_BAD_REQUEST,e)):c.send(n||null)}))};const gt={http:de,xhr:ht};ie.forEach(gt,((e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch(o){}Object.defineProperty(e,"adapterName",{value:t})}}));const Ct=e=>`- ${e}`,_t=e=>ie.isFunction(e)||null===e||!1===e;var St={getAdapter:e=>{e=ie.isArray(e)?e:[e];const{length:t}=e;let o,n;const s={};for(let a=0;a`adapter ${e} `+(!1===t?"is not supported by the environment":"is not available in the build")));let o=t?e.length>1?"since :\n"+e.map(Ct).join("\n"):" "+Ct(e[0]):"as no adapter specified";throw new me("There is no suitable adapter to dispatch the request "+o,"ERR_NOT_SUPPORT")}return n},adapters:gt};function It(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new st(null,e)}function yt(e){It(e),e.headers=et.from(e.headers),e.data=tt.call(e,e.transformRequest),-1!==["post","put","patch"].indexOf(e.method)&&e.headers.setContentType("application/x-www-form-urlencoded",!1);const t=St.getAdapter(e.adapter||Be.adapter);return t(e).then((function(t){return It(e),t.data=tt.call(e,e.transformResponse,t),t.headers=et.from(t.headers),t}),(function(t){return ot(t)||(It(e),t&&t.response&&(t.response.data=tt.call(e,e.transformResponse,t.response),t.response.headers=et.from(t.response.headers))),Promise.reject(t)}))}const bt=e=>e instanceof et?e.toJSON():e;function Rt(e,t){t=t||{};const o={};function n(e,t,o){return ie.isPlainObject(e)&&ie.isPlainObject(t)?ie.merge.call({caseless:o},e,t):ie.isPlainObject(t)?ie.merge({},t):ie.isArray(t)?t.slice():t}function s(e,t,o){return ie.isUndefined(t)?ie.isUndefined(e)?void 0:n(void 0,e,o):n(e,t,o)}function a(e,t){if(!ie.isUndefined(t))return n(void 0,t)}function r(e,t){return ie.isUndefined(t)?ie.isUndefined(e)?void 0:n(void 0,e):n(void 0,t)}function i(o,s,a){return a in t?n(o,s):a in e?n(void 0,o):void 0}const l={url:a,method:a,data:a,baseURL:r,transformRequest:r,transformResponse:r,paramsSerializer:r,timeout:r,timeoutMessage:r,withCredentials:r,adapter:r,responseType:r,xsrfCookieName:r,xsrfHeaderName:r,onUploadProgress:r,onDownloadProgress:r,decompress:r,maxContentLength:r,maxBodyLength:r,beforeRedirect:r,transport:r,httpAgent:r,httpsAgent:r,cancelToken:r,socketPath:r,responseEncoding:r,validateStatus:i,headers:(e,t)=>s(bt(e),bt(t),!0)};return ie.forEach(Object.keys(Object.assign({},e,t)),(function(n){const a=l[n]||s,r=a(e[n],t[n],n);ie.isUndefined(r)&&a!==i||(o[n]=r)})),o}const Tt="1.5.1",wt={};["object","boolean","number","function","string","symbol"].forEach(((e,t)=>{wt[e]=function(o){return typeof o===e||"a"+(t<1?"n ":" ")+e}}));const At={};function kt(e,t,o){if("object"!==typeof e)throw new me("options must be an object",me.ERR_BAD_OPTION_VALUE);const n=Object.keys(e);let s=n.length;while(s-- >0){const a=n[s],r=t[a];if(r){const t=e[a],o=void 0===t||r(t,a,e);if(!0!==o)throw new me("option "+a+" must be "+o,me.ERR_BAD_OPTION_VALUE)}else if(!0!==o)throw new me("Unknown option "+a,me.ERR_BAD_OPTION)}}wt.transitional=function(e,t,o){function n(e,t){return"[Axios v"+Tt+"] Transitional option '"+e+"'"+t+(o?". "+o:"")}return(o,s,a)=>{if(!1===e)throw new me(n(s," has been removed"+(t?" in "+t:"")),me.ERR_DEPRECATED);return t&&!At[s]&&(At[s]=!0,console.warn(n(s," has been deprecated since v"+t+" and will be removed in the near future"))),!e||e(o,s,a)}};var Mt={assertOptions:kt,validators:wt};const Ut=Mt.validators;class xt{constructor(e){this.defaults=e,this.interceptors={request:new Ae,response:new Ae}}request(e,t){"string"===typeof e?(t=t||{},t.url=e):t=e||{},t=Rt(this.defaults,t);const{transitional:o,paramsSerializer:n,headers:s}=t;void 0!==o&&Mt.assertOptions(o,{silentJSONParsing:Ut.transitional(Ut.boolean),forcedJSONParsing:Ut.transitional(Ut.boolean),clarifyTimeoutError:Ut.transitional(Ut.boolean)},!1),null!=n&&(ie.isFunction(n)?t.paramsSerializer={serialize:n}:Mt.assertOptions(n,{encode:Ut.function,serialize:Ut.function},!0)),t.method=(t.method||this.defaults.method||"get").toLowerCase();let a=s&&ie.merge(s.common,s[t.method]);s&&ie.forEach(["delete","get","head","post","put","patch","common"],(e=>{delete s[e]})),t.headers=et.concat(a,s);const r=[];let i=!0;this.interceptors.request.forEach((function(e){"function"===typeof e.runWhen&&!1===e.runWhen(t)||(i=i&&e.synchronous,r.unshift(e.fulfilled,e.rejected))}));const l=[];let c;this.interceptors.response.forEach((function(e){l.push(e.fulfilled,e.rejected)}));let u,m=0;if(!i){const e=[yt.bind(this),void 0];e.unshift.apply(e,r),e.push.apply(e,l),u=e.length,c=Promise.resolve(t);while(m{if(!o._listeners)return;let t=o._listeners.length;while(t-- >0)o._listeners[t](e);o._listeners=null})),this.promise.then=e=>{let t;const n=new Promise((e=>{o.subscribe(e),t=e})).then(e);return n.cancel=function(){o.unsubscribe(t)},n},e((function(e,n,s){o.reason||(o.reason=new st(e,n,s),t(o.reason))}))}throwIfRequested(){if(this.reason)throw this.reason}subscribe(e){this.reason?e(this.reason):this._listeners?this._listeners.push(e):this._listeners=[e]}unsubscribe(e){if(!this._listeners)return;const t=this._listeners.indexOf(e);-1!==t&&this._listeners.splice(t,1)}static source(){let e;const t=new Et((function(t){e=t}));return{token:t,cancel:e}}}var Ot=Et;function Dt(e){return function(t){return e.apply(null,t)}}function Nt(e){return ie.isObject(e)&&!0===e.isAxiosError}const Pt={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(Pt).forEach((([e,t])=>{Pt[t]=e}));var jt=Pt;function qt(e){const t=new Lt(e),o=a(Lt.prototype.request,t);return ie.extend(o,Lt.prototype,t,{allOwnKeys:!0}),ie.extend(o,t,null,{allOwnKeys:!0}),o.create=function(t){return qt(Rt(e,t))},o}const Zt=qt(Be);Zt.Axios=Lt,Zt.CanceledError=st,Zt.CancelToken=Ot,Zt.isCancel=ot,Zt.VERSION=Tt,Zt.toFormData=_e,Zt.AxiosError=me,Zt.Cancel=Zt.CanceledError,Zt.all=function(e){return Promise.all(e)},Zt.spread=Dt,Zt.isAxiosError=Nt,Zt.mergeConfig=Rt,Zt.AxiosHeaders=et,Zt.formToJSON=e=>qe(ie.isHTMLForm(e)?new FormData(e):e),Zt.getAdapter=St.getAdapter,Zt.HttpStatusCode=jt,Zt.default=Zt;var Vt=Zt,Bt=function(){var e=this,t=e._self._c,o=e._self._setupProxy;return t("div",{ref:"roomRef",staticClass:"tui-room",attrs:{id:"roomContainer"}},[t(o.RoomHeader,{directives:[{name:"show",rawName:"v-show",value:o.showRoomTool&&o.showHeaderTool,expression:"showRoomTool && showHeaderTool"}],staticClass:"header",on:{"log-out":o.logOut,"on-destroy-room":o.onDestroyRoom,"on-exit-room":o.onExitRoom}}),t(o.RoomContent,{directives:[{name:"tap",rawName:"v-tap",value:o.handleRoomContentTap,expression:"handleRoomContentTap"}],ref:"roomContentRef",staticClass:"content",attrs:{"show-room-tool":o.showRoomTool}}),t(o.RoomFooter,{directives:[{name:"show",rawName:"v-show",value:o.showRoomTool,expression:"showRoomTool"}],staticClass:"footer",on:{"on-destroy-room":o.onDestroyRoom,"on-exit-room":o.onExitRoom}}),t(o.RoomSidebar),t(o.RoomSetting)],1)},$t=[],Ft=o(6369),zt=o(3235),Ht=o(1020),Jt=function(){var e=this,t=e._self._c,o=e._self._setupProxy;return t("div",{staticClass:"header"},[t("div",{staticClass:"header-container"},[t("div",{staticClass:"icon-box"},[t(o.SwitchCamera),t(o.SwitchMirror)],1),t(o.RoomInfo),t(o.EndControl,{on:{"on-destroy-room":o.onDestroyRoom,"on-exit-room":o.onExitRoom}})],1)])},Qt=[],Wt=function(){var e=this,t=e._self._c,o=e._self._setupProxy;return t("div",[t("div",{staticClass:"end-control-container"},[t("div",{directives:[{name:"tap",rawName:"v-tap",value:o.stopMeeting,expression:"stopMeeting"}],staticClass:"end-button",attrs:{tabindex:"1"}},[e._v(e._s(o.t("EndH5")))])]),o.visible?t("div",{staticClass:"end-main-content"},[t("div",{class:o.isShowLeaveRoomDialog?"end-dialog-leave":"end-dialog-dismiss"},[o.currentDialogType===o.DialogType.BasicDialog?t("div",[o.roomStore.isMaster?t("div",{staticClass:"end-dialog-header"},[o.roomStore.isMaster?t("span",{staticClass:"end-dialog-text"},[e._v(" "+e._s(o.t("If you do not want to end the meeting, please designate a new host before leaving the meeting."))+" ")]):t("span",[e._v(e._s(o.t("Are you sure you want to leave this room?")))])]):e._e()]):e._e(),o.currentDialogType===o.DialogType.BasicDialog?t("div",{staticClass:"dialog-middle-content"},[o.roomStore.isMaster?t("span",{class:o.isShowLeaveRoomDialog?"end-button-dismiss":"end-button-dismiss-single",on:{click:function(e){return e.stopPropagation(),o.dismissRoom.apply(null,arguments)}}},[e._v(" "+e._s(o.t("Dismiss"))+" ")]):e._e(),o.isShowLeaveRoomDialog?t("span",{directives:[{name:"tap",rawName:"v-tap",value:o.leaveRoom,expression:"leaveRoom"}],class:o.roomStore.isMaster?"end-button-leave":"end-button-leave-single"},[e._v(" "+e._s(o.t("Leave"))+" ")]):e._e(),t("span",{staticClass:"end-button-cancel",on:{click:function(e){return e.stopPropagation(),o.cancel.apply(null,arguments)}}},[e._v(e._s(o.t("Cancel")))])]):e._e(),o.currentDialogType===o.DialogType.TransferDialog?t("div",[t("span",{staticClass:"end-button-cancel",on:{click:function(e){return e.stopPropagation(),o.cancel.apply(null,arguments)}}},[e._v(e._s(o.t("Cancel")))])]):e._e()])]):e._e(),t(o.popup,{directives:[{name:"show",rawName:"v-show",value:o.showSideBar,expression:"showSideBar"}],staticClass:"transfer-container",attrs:{title:o.t("Appoint a new host")},scopedSlots:e._u([{key:"sidebarContent",fn:function(){return[t("div",{staticStyle:{height:"100%"}},[t("div",[t("div",{staticClass:"transfer-header"},[t("input",{directives:[{name:"model",rawName:"v-model",value:o.searchName,expression:"searchName"}],staticClass:"searching-input",attrs:{type:"text",placeholder:o.t("Search for conference attendees"),enterkeyhint:"done"},domProps:{value:o.searchName},on:{input:function(e){e.target.composing||(o.searchName=e.target.value)}}})]),t("div",{staticClass:"transfer-body"},[e._l(o.filteredList,(function(n){return t("div",{key:n.userId,staticClass:"transfer-list-content",on:{click:function(e){return o.handleShowMemberControl(n.userId)}}},[t("div",{staticClass:"member-basic-info"},[t(o.Avatar,{staticClass:"avatar-url",attrs:{"img-src":n.avatarUrl}}),t("div",{staticClass:"user-name"},[e._v(e._s(n.userName||n.userId))]),o.selectedUser===n.userId?t(o.SvgIcon,{staticClass:"correct",attrs:{"icon-name":"correct",size:"custom"}}):e._e()],1)])})),o.hasNoData?t("div",{staticClass:"member-hasNoData"},[e._v(e._s(o.t("No relevant user found.")))]):e._e()],2)])])]},proxy:!0},{key:"sidebarFooter",fn:function(){return[t("div",{staticClass:"transfer-leave",on:{click:o.transferAndLeave}},[t("span",{staticClass:"transfer-button"},[e._v(e._s(o.t("Transfer and leave")))])])]},proxy:!0}])})],1)},Gt=[],Kt=o(452),Yt=o.n(Kt),Xt=o(251),eo=o(4990),to=o(7357),oo=o(3681),no=o(6419);function so(){const{t:e}=(0,to.Q)();let t;(function(e){e[e["BasicDialog"]=0]="BasicDialog",e[e["TransferDialog"]=1]="TransferDialog"})(t||(t={}));const o=(0,Ft.ref)(t.BasicDialog),n="[EndControl]",s=(0,oo.Z)(),a=(0,Ft.ref)(!1),r=(0,Xt.o)();no.Z.log(`${n} basicStore:`,r);const i=(0,eo.A)(),{localUser:l,remoteAnchorList:c}=(0,Ht.Jk)(i),u=(0,Ft.computed)((()=>o.value===t.BasicDialog?e("Leave room?"):e("Select a new host"))),m=(0,Ft.computed)((()=>i.isMaster&&c.value.length>0||!i.isMaster)),{isSidebarOpen:d,sidebarName:p}=(0,Ht.Jk)(r),f=(0,Ft.computed)((()=>d.value&&"transfer-leave"===p.value)),v=(0,Ft.ref)(""),h=(0,Ft.ref)(!1),g=(0,Ft.ref)(""),C=(0,Ft.computed)((()=>c.value.filter((e=>e.userId.includes(g.value)||e.userName?.includes(g.value))))),_=(0,Ft.computed)((()=>0===C.value.length));function S(){if(r.setSidebarOpenStatus&&"transfer-leave"===p.value)return r.setSidebarOpenStatus(!1),void r.setSidebarName("");r.setSidebarOpenStatus(!0),r.setSidebarName("transfer-leave")}function I(e){v.value=e}function y(){a.value=!1,o.value=t.BasicDialog}function b(){a.value||(a.value=!0)}function R(){y()}async function T(){l.value.hasAudioStream&&await(s.instance?.closeLocalMicrophone()),l.value.hasVideoStream&&await(s.instance?.closeLocalCamera())}return{t:e,basicStore:r,isShowLeaveRoomDialog:m,roomStore:i,roomEngine:s,localUser:l,remoteAnchorList:c,stopMeeting:b,cancel:R,selectedUser:v,DialogType:t,logPrefix:n,title:u,currentDialogType:o,visible:a,closeMediaBeforeLeave:T,resetState:y,searchName:g,hasNoData:_,handleShowMemberControl:I,filteredList:C,toggleMangeMemberSidebar:S,showTransfer:h,sidebarName:p,showSideBar:f}}var ao=function(){var e=this,t=e._self._c,o=e._self._setupProxy;return t("div",{staticClass:"popup-container"},[t("div",{staticClass:"popup-main-header"},[t("span",{directives:[{name:"tap",rawName:"v-tap",value:o.handleClose,expression:"handleClose"}],staticClass:"icon-container"},[t(o.SvgIcon,{staticClass:"close-icon",attrs:{size:"custom","icon-name":"close-back"}})],1),t("span",{staticClass:"sidebar-title"},[e._v(e._s(e.title))])]),t("div",{staticClass:"popup-main-content"},[e._t("sidebarContent")],2),t("div",{staticClass:"popup-main-footer"},[e._t("sidebarFooter")],2)])},ro=[],io=o(6316),lo=(o(5175),(0,Ft.defineComponent)({__name:"PopUpH5",props:{title:null},setup(e){const t=(0,Xt.o)();function o(){t.setSidebarOpenStatus(!1),t.setSidebarName("")}return{__sfc:!0,basicStore:t,handleClose:o,SvgIcon:io.Z}}})),co=lo,uo=o(3736),mo=(0,uo.Z)(co,ao,ro,!1,null,"4069d388",null),po=mo.exports,fo=o(9225),vo=(0,Ft.defineComponent)({__name:"EndControlH5",emits:["on-exit-room","on-destroy-room"],setup(e,{emit:t}){const{t:o,isShowLeaveRoomDialog:n,roomStore:s,basicStore:a,roomEngine:r,localUser:i,stopMeeting:l,cancel:c,DialogType:u,logPrefix:m,currentDialogType:d,visible:p,closeMediaBeforeLeave:f,resetState:v,toggleMangeMemberSidebar:h,searchName:g,hasNoData:C,handleShowMemberControl:_,filteredList:S,selectedUser:I,showSideBar:y}=so();async function b(){try{no.Z.log(`${m}dismissRoom: enter`),await f(),await(r.instance?.destroyRoom()),v(),t("on-destroy-room",{code:0,message:""})}catch(e){no.Z.error(`${m}dismissRoom error:`,e)}}async function R(){try{if(s.isMaster)return h(),void v();await f();const e=await(r.instance?.exitRoom());no.Z.log(`${m}leaveRoom:`,e),v(),t("on-exit-room",{code:0,message:""})}catch(e){no.Z.error(`${m}leaveRoom error:`,e)}}async function T(){if(I.value)try{const e=I.value,o=await(r.instance?.changeUserRole({userId:e,userRole:Kt.TUIRole.kRoomOwner}));no.Z.log(`${m}transferAndLeave:`,o),await f();const n=await(r.instance?.exitRoom());no.Z.log(`${m}exitRoom:`,n),a.setSidebarOpenStatus(!1),a.setSidebarName(""),v(),t("on-exit-room",{code:0,message:""})}catch(e){no.Z.error(`${m}transferAndLeave error:`,e)}}const w=async e=>{try{const{roomId:n}=e;no.Z.log(`${m}onRoomDismissed:`,n),zt.T.alert(o("The host closed the room."),o("Note"),{customClass:"custom-element-class",confirmButtonText:o("Confirm"),appendTo:"#roomContainer",callback:async()=>{v(),t("on-destroy-room",{code:0,message:""})}})}catch(n){no.Z.error(`${m}onRoomDestroyed error:`,n)}},A=async e=>{if(e.userRole===Kt.TUIRole.kRoomOwner){const{userId:t}=e;let n=s.getUserName(t)||t;t===i.value.userId&&(n=o("me"));const a=`${o("Moderator changed to ")}${n}`;if((0,zt.z)({type:"success",message:a}),s.localUser.userId===t?s.setLocalUser({userRole:Kt.TUIRole.kRoomOwner}):s.setRemoteUserRole(t,Kt.TUIRole.kRoomOwner),s.setMasterUserId(t),v(),s.isAnchor)return;s.isSpeakAfterTakingSeatMode&&await(r.instance?.takeSeat({seatIndex:-1,timeout:0}))}};return Yt().once("ready",(()=>{r.instance?.on(Kt.TUIRoomEvents.onRoomDismissed,w),r.instance?.on(Kt.TUIRoomEvents.onUserRoleChanged,A)})),(0,Ft.onUnmounted)((()=>{r.instance?.off(Kt.TUIRoomEvents.onRoomDismissed,w),r.instance?.off(Kt.TUIRoomEvents.onUserRoleChanged,A)})),{__sfc:!0,t:o,isShowLeaveRoomDialog:n,roomStore:s,basicStore:a,roomEngine:r,localUser:i,stopMeeting:l,cancel:c,DialogType:u,logPrefix:m,currentDialogType:d,visible:p,closeMediaBeforeLeave:f,resetState:v,toggleMangeMemberSidebar:h,searchName:g,hasNoData:C,handleShowMemberControl:_,filteredList:S,selectedUser:I,showSideBar:y,emit:t,dismissRoom:b,leaveRoom:R,transferAndLeave:T,onRoomDismissed:w,onUserRoleChanged:A,popup:po,SvgIcon:io.Z,Avatar:fo.Z}}}),ho=vo,go=(0,uo.Z)(ho,Wt,Gt,!1,null,"12377224",null),Co=go.exports,_o=function(){var e=this,t=e._self._c,o=e._self._setupProxy;return t("div",{staticClass:"end-control-container"},[t("div",{staticClass:"end-button",attrs:{tabindex:"1"},on:{click:o.stopMeeting}},[e._v(e._s(o.t("EndPC")))]),t(o.Dialog,{staticClass:"custom-element-class",attrs:{"model-value":o.visible,title:o.title,modal:!0,"append-to-body":!1,width:"420px","before-close":o.cancel,"close-on-click-modal":!0},scopedSlots:e._u([{key:"footer",fn:function(){return[o.currentDialogType===o.DialogType.BasicDialog?t("div",[o.roomStore.isMaster?t("el-button",{attrs:{type:"primary"},on:{click:function(e){return e.stopPropagation(),o.dismissRoom.apply(null,arguments)}}},[e._v(" "+e._s(o.t("Dismiss"))+" ")]):e._e(),o.isShowLeaveRoomDialog?t("el-button",{attrs:{type:"primary"},on:{click:o.leaveRoom}},[e._v(e._s(o.t("Leave")))]):e._e(),t("el-button",{on:{click:function(e){return e.stopPropagation(),o.cancel.apply(null,arguments)}}},[e._v(e._s(o.t("Cancel")))])],1):e._e(),o.currentDialogType===o.DialogType.TransferDialog?t("div",[t("el-button",{attrs:{type:"primary"},on:{click:o.transferAndLeave}},[e._v(e._s(o.t("Transfer and leave")))]),t("el-button",{on:{click:function(e){return e.stopPropagation(),o.cancel.apply(null,arguments)}}},[e._v(e._s(o.t("Cancel")))])],1):e._e()]},proxy:!0}])},[o.currentDialogType===o.DialogType.BasicDialog?t("div",[o.roomStore.isMaster?t("span",[e._v(" "+e._s(o.t('You are currently the room host, please select the appropriate action.If you select "Leave Room", the room will not be dissolved and you will need to appoint a new host.'))+" ")]):t("span",[e._v(e._s(o.t("Are you sure you want to leave this room?")))])]):e._e(),o.currentDialogType===o.DialogType.TransferDialog?t("div",[t("div",[e._v(e._s(o.t("New host")))]),t("div",[t("el-select",{attrs:{teleported:!1,"popper-append-to-body":!1},model:{value:o.selectedUser,callback:function(e){o.selectedUser=e},expression:"selectedUser"}},e._l(o.remoteAnchorList,(function(e){return t("el-option",{key:e.userId,attrs:{value:e.userId,label:e.userName}})})),1)],1)]):e._e()])],1)},So=[],Io=o(5266),yo=(0,Ft.defineComponent)({__name:"EndControlPC",emits:["on-exit-room","on-destroy-room"],setup(e,{emit:t}){const{t:o,isShowLeaveRoomDialog:n,roomStore:s,basicStore:a,roomEngine:r,localUser:i,remoteAnchorList:l,stopMeeting:c,cancel:u,selectedUser:m,DialogType:d,logPrefix:p,title:f,currentDialogType:v,visible:h,closeMediaBeforeLeave:g,resetState:C}=so();async function _(){try{no.Z.log(`${p}dismissRoom: enter`),await g(),await(r.instance?.destroyRoom()),C(),t("on-destroy-room",{code:0,message:""})}catch(e){no.Z.error(`${p}dismissRoom error:`,e)}}async function S(){try{if(s.isMaster)return void(v.value=d.TransferDialog);await g();const e=await(r.instance?.exitRoom());no.Z.log(`${p}leaveRoom:`,e),C(),t("on-exit-room",{code:0,message:""})}catch(e){no.Z.error(`${p}leaveRoom error:`,e)}}async function I(){if(m.value)try{const e=m.value,o=await(r.instance?.changeUserRole({userId:e,userRole:Kt.TUIRole.kRoomOwner}));no.Z.log(`${p}transferAndLeave:`,o),await g();const n=await(r.instance?.exitRoom());no.Z.log(`${p}exitRoom:`,n),a.setSidebarOpenStatus(!1),a.setSidebarName(""),C(),t("on-exit-room",{code:0,message:""})}catch(e){no.Z.error(`${p}transferAndLeave error:`,e)}}const y=async e=>{try{const{roomId:n}=e;no.Z.log(`${p}onRoomDismissed:`,n),zt.T.alert(o("The host closed the room."),o("Note"),{customClass:"custom-element-class",confirmButtonText:o("Confirm"),appendTo:"#roomContainer",callback:async()=>{C(),t("on-destroy-room",{code:0,message:""})}})}catch(n){no.Z.error(`${p}onRoomDestroyed error:`,n)}},b=async e=>{if(e.userRole===Kt.TUIRole.kRoomOwner){const{userId:t}=e;let n=s.getUserName(t)||t;t===i.value.userId&&(n=o("me"));const a=`${o("Moderator changed to ")}${n}`;if((0,zt.z)({type:"success",message:a}),s.localUser.userId===t?s.setLocalUser({userRole:Kt.TUIRole.kRoomOwner}):s.setRemoteUserRole(t,Kt.TUIRole.kRoomOwner),s.setMasterUserId(t),C(),s.isAnchor)return;s.isSpeakAfterTakingSeatMode&&await(r.instance?.takeSeat({seatIndex:-1,timeout:0}))}};return Yt().once("ready",(()=>{r.instance?.on(Kt.TUIRoomEvents.onRoomDismissed,y),r.instance?.on(Kt.TUIRoomEvents.onUserRoleChanged,b)})),(0,Ft.onUnmounted)((()=>{r.instance?.off(Kt.TUIRoomEvents.onRoomDismissed,y),r.instance?.off(Kt.TUIRoomEvents.onUserRoleChanged,b)})),{__sfc:!0,t:o,isShowLeaveRoomDialog:n,roomStore:s,basicStore:a,roomEngine:r,localUser:i,remoteAnchorList:l,stopMeeting:c,cancel:u,selectedUser:m,DialogType:d,logPrefix:p,title:f,currentDialogType:v,visible:h,closeMediaBeforeLeave:g,resetState:C,emit:t,dismissRoom:_,leaveRoom:S,transferAndLeave:I,onRoomDismissed:y,onUserRoleChanged:b,Dialog:Io.Z}}}),bo=yo,Ro=(0,uo.Z)(bo,_o,So,!1,null,"bcdd5c40",null),To=Ro.exports,wo=o(2843);const Ao=wo.t?Co:To;var ko=Ao,Mo=function(){var e=this,t=e._self._c,o=e._self._setupProxy;return t("div",{staticClass:"camera-icon"},[t(o.SvgIcon,{directives:[{name:"tap",rawName:"v-tap",value:o.handleSwitchCamera,expression:"handleSwitchCamera"}],attrs:{"icon-name":"camera",size:"custom","custom-style":{backgroundSize:"50%"}}})],1)},Uo=[],xo=(0,Ft.defineComponent)({__name:"SwitchCamera",setup(e){const t=(0,Xt.o)(),{isFrontCamera:o}=(0,Ht.Jk)(t),n=(0,oo.Z)();async function s(){await(n.instance?.switchCamera({isFrontCamera:!o.value})),t.setIsFrontCamera(!o.value)}return{__sfc:!0,basicStore:t,isFrontCamera:o,roomEngine:n,handleSwitchCamera:s,SvgIcon:io.Z}}}),Lo=xo,Eo=(0,uo.Z)(Lo,Mo,Uo,!1,null,"190ccb04",null),Oo=Eo.exports,Do=function(){var e=this,t=e._self._c,o=e._self._setupProxy;return t("div",{staticClass:"mirror-icon"},[t(o.SvgIcon,{directives:[{name:"tap",rawName:"v-tap",value:o.toogleMirrorStatus,expression:"toogleMirrorStatus"}],attrs:{"icon-name":"mirror",size:"custom","custom-style":{backgroundSize:"50%"}}})],1)},No=[],Po=(0,Ft.defineComponent)({__name:"SwitchMirror",setup(e){const t=(0,oo.Z)(),o=(0,Xt.o)();function n(){const e=t.instance?.getTRTCCloud();e?.setLocalRenderParams({mirrorType:o.isLocalStreamMirror?Kt.TRTCVideoMirrorType.TRTCVideoMirrorType_Enable:Kt.TRTCVideoMirrorType.TRTCVideoMirrorType_Disable,rotation:Kt.TRTCVideoRotation.TRTCVideoRotation0,fillMode:Kt.TRTCVideoFillMode.TRTCVideoFillMode_Fill}),o.setIsLocalStreamMirror(o.isLocalStreamMirror),o.isLocalStreamMirror=!o.isLocalStreamMirror}return{__sfc:!0,roomEngine:t,basicStore:o,toogleMirrorStatus:n,SvgIcon:io.Z}}}),jo=Po,qo=(0,uo.Z)(jo,Do,No,!1,null,"9a54a9ea",null),Zo=qo.exports,Vo=function(){var e=this,t=e._self._c,o=e._self._setupProxy;return t("div",{staticClass:"conference-container"},[o.isShowRoomInfoTitle?t("div",{on:{click:o.toggleShowRoomInfoStatus}},[t("div",{staticClass:"title-container"},[t("span",{staticClass:"text"},[e._v(e._s(o.conferenceTitle))]),t("span",{staticClass:"chevron-down-container"},[t(o.SvgIcon,{staticClass:"chevron-down-icon",attrs:{size:"custom","icon-name":"chevron-down"}})],1)])]):e._e(),o.isShowRoomInfo?t("div",{staticClass:"roomInfo-container"},[t("div",{ref:"roomInfoRef",staticClass:"roomInfo-container-main"},[t("div",{staticClass:"roomInfo-title"},[t("span",{staticClass:"master-header"},[e._v(e._s(o.conferenceTitle))]),t("span",{staticClass:"cancel",on:{click:o.handleHiddenRoomInfo}},[e._v(e._s(o.t("Cancel")))])]),t("div",{staticClass:"roomInfo-middle"},[t("div",{staticClass:"roomInfo-role"},[t("span",[e._v(e._s(o.t("Host")))]),t("span",{staticClass:"text-right"},[e._v(e._s(o.masterUserName))])]),t("div",{staticClass:"roomInfo-roomMode"},[t("span",{staticClass:"middle-left"},[e._v(e._s(o.t("Room Type")))]),t("span",{staticClass:"text-type"},[e._v(e._s(o.roomType))])]),t("div",{staticClass:"roomInfo-roomID"},[t("span",{staticClass:"middle-left"},[e._v(e._s(o.t("Room ID")))]),t("span",{staticClass:"text-right"},[e._v(e._s(o.roomId))]),t(o.SvgIcon,{staticClass:"copy",attrs:{"icon-name":"copy-icon",size:"custom"},on:{click:function(e){return o.onCopy(o.roomId)}}})],1),o.isWeChat?e._e():t("div",{staticClass:"roomInfo-roomID"},[t("span",[e._v(e._s(o.t("Room Link")))]),t("span",{staticClass:"link"},[e._v(e._s(o.inviteLink))]),t(o.SvgIcon,{staticClass:"copy",attrs:{"icon-name":"copy-icon"},on:{click:function(e){return o.onCopy(o.inviteLink)}}})],1)]),o.isWeChat?e._e():t("div",{staticClass:"roomInfo-bottom"},[t("span",[e._v(e._s(o.t("You can share the room number or link to invite more people to join the room.")))])])])]):e._e()])},Bo=[],$o=o(4237),Fo=(0,Ft.defineComponent)({__name:"RoomInfo",setup(e){const t=(0,Xt.o)(),o=(0,eo.A)(),{roomId:n}=(0,Ht.Jk)(t),{masterUserId:s}=(0,Ht.Jk)(o),{t:a}=(0,to.Q)(),r=(0,Ft.ref)(),i=(0,Ft.ref)(!1),l=(0,Ft.computed)((()=>o.isFreeSpeakMode?a("Free Speech Room"):a("Raise Hand Room"))),{origin:c,pathname:u}=location||{},m=(0,Ft.computed)((()=>`${c}${u}#/home?roomId=${n.value}`)),d=(0,Ft.computed)((()=>o.getUserName(s.value)||s.value)),p=(0,Ft.computed)((()=>d.value)),f=(0,Ft.computed)((()=>`${d.value}${a("video conferencing")}`));function v(){i.value=!i.value}async function h(e){try{await(0,$o.jO)(e),(0,zt.z)({message:a("Copied successfully"),type:"success"})}catch(t){(0,zt.z)({message:a("Copied failure"),type:"error"})}}function g(e){i.value&&!r.value.contains(e.target)&&(i.value=!1)}function C(){i.value=!1}return(0,Ft.onMounted)((()=>{document?.addEventListener("click",g,!0)})),(0,Ft.onUnmounted)((()=>{document?.removeEventListener("click",g,!0)})),{__sfc:!0,basicStore:t,roomStore:o,roomId:n,masterUserId:s,t:a,roomInfoRef:r,isShowRoomInfo:i,roomType:l,origin:c,pathname:u,inviteLink:m,masterUserName:d,isShowRoomInfoTitle:p,conferenceTitle:f,toggleShowRoomInfoStatus:v,onCopy:h,handleDocumentClick:g,handleHiddenRoomInfo:C,SvgIcon:io.Z,isWeChat:wo.e}}}),zo=Fo,Ho=(0,uo.Z)(zo,Vo,Bo,!1,null,"543146aa",null),Jo=Ho.exports,Qo=o(7327);const Wo="file:"===location.protocol||"localhost"===location.hostname||"127.0.0.1"===location.hostname,Go="web.sdk.qcloud.com"===location.host,Ko=Wo||Go,Yo=Go,Xo="iHWefAYqCFrCVqqyIZ",en="TUIRoomKit-Web-vue2";let tn;const on=document.createElement("script");on.type="text/javascript",on.src="https://cdn-go.cn/aegis/aegis-sdk/latest/aegis.min.js",document.getElementsByTagName("head")[0].appendChild(on),on.onload=()=>{tn=new Aegis({id:Xo,uin:"",reportApiSpeed:!0,reportAssetSpeed:!0,spa:!0}),sn.storedReportEventList&&sn.storedReportEventList.forEach((e=>{tn.reportEvent(e)}))};class nn{constructor(){(0,Qo.Z)(this,"sdkAppId",0),(0,Qo.Z)(this,"projectName",en),(0,Qo.Z)(this,"isUploadLoaded",Ko),(0,Qo.Z)(this,"isUploadDetailEvent",Yo),(0,Qo.Z)(this,"hasUploadedEventList",[]),(0,Qo.Z)(this,"storedReportEventList",[])}setSdkAppId(e){this.sdkAppId=e}reportEvent(e){if(!this.isUploadLoaded)return;const{name:t,ext1:o}=e;if(this.isUploadDetailEvent||"loaded"===t){const n={...e,ext2:this.projectName,ext3:this.sdkAppId};tn?this.hasUploadedEventList.indexOf(`${t}_${o}`)<0&&(this.hasUploadedEventList.push(`${t}_${o}`),tn.reportEvent(n)):this.storedReportEventList.push(n)}}}const sn=new nn;var an=sn,rn=(0,Ft.defineComponent)({__name:"index",emits:["log-out","on-destroy-room","on-exit-room"],setup(e,{emit:t}){const o=e=>{t("on-destroy-room",e),an.reportEvent({name:"destroyRoom",ext1:"destroyRoom-success"})},n=e=>{t("on-exit-room",e),an.reportEvent({name:"exitRoom",ext1:"exitRoom-success"})};return{__sfc:!0,emit:t,onDestroyRoom:o,onExitRoom:n,EndControl:ko,SwitchCamera:Oo,SwitchMirror:Zo,RoomInfo:Jo}}}),ln=rn,cn=(0,uo.Z)(ln,Jt,Qt,!1,null,"1262e4e7",null),un=cn.exports,mn=function(){var e=this,t=e._self._c,o=e._self._setupProxy;return t("div",{staticClass:"header-container"},[t("div",{staticClass:"left-container"},[t(o.UserInfo,{directives:[{name:"show",rawName:"v-show",value:e.showHeaderInfo,expression:"showHeaderInfo"}],staticClass:"header-item user-info",attrs:{"user-id":o.userId,"user-name":o.userName,"avatar-url":o.avatarUrl},on:{"log-out":function(t){return e.$emit("log-out")}}}),t(o.Language,{directives:[{name:"show",rawName:"v-show",value:e.showHeaderInfo,expression:"showHeaderInfo"}],staticClass:"header-item language"}),t(o.SwitchTheme,{staticClass:"header-item theme"})],1),t("div",{staticClass:"right-container"},[t(o.LayoutControl,{staticClass:"right-container-item"})],1)])},dn=[],pn=o(9643),fn=o(9139),vn=o(7698),hn=function(){var e=this,t=e._self._c,o=e._self._setupProxy;return o.streamNumber>1?t("div",{staticClass:"layout-container"},[t(o.SvgIcon,{staticClass:"layout-icon",attrs:{"icon-name":"layout",size:"medium"},on:{click:function(e){return e.stopPropagation(),o.handleClickLayoutIcon.apply(null,arguments)}}}),o.showLayoutList?t("div",{ref:"layoutList",staticClass:"layout-list"},[t("div",{class:["layout1","layout-item",""+(o.layout===o.LAYOUT.NINE_EQUAL_POINTS?"checked":"")],on:{click:function(e){return o.handleClick(o.LAYOUT.NINE_EQUAL_POINTS)}}},[t("div",{staticClass:"layout-block-container"},e._l(new Array(9).fill(""),(function(e,o){return t("div",{key:o,staticClass:"layout-block"})})),0),t("span",{staticClass:"layout-title"},[e._v(e._s(o.t("Grid")))])]),t("div",{class:["layout2","layout-item",""+(o.layout===o.LAYOUT.RIGHT_SIDE_LIST?"checked":"")],on:{click:function(e){return o.handleClick(o.LAYOUT.RIGHT_SIDE_LIST)}}},[t("div",{staticClass:"layout-block-container"},[t("div",{staticClass:"left-container"}),t("div",{staticClass:"right-container"},e._l(new Array(4).fill(""),(function(e,o){return t("div",{key:o,staticClass:"layout-block"})})),0)]),t("span",{staticClass:"layout-title"},[e._v(e._s(o.t("Gallery on right")))])]),t("div",{class:["layout3","layout-item",""+(o.layout===o.LAYOUT.TOP_SIDE_LIST?"checked":"")],on:{click:function(e){return o.handleClick(o.LAYOUT.TOP_SIDE_LIST)}}},[t("div",{staticClass:"layout-block-container"},[t("div",{staticClass:"top-container"},e._l(new Array(4).fill(""),(function(e,o){return t("div",{key:o,staticClass:"layout-block"})})),0),t("div",{staticClass:"bottom-container"})]),t("span",{staticClass:"layout-title"},[e._v(e._s(o.t("Gallery at top")))])])]):e._e()],1):e._e()},gn=[],Cn=o(3927),_n=(0,Ft.defineComponent)({__name:"LayoutControl",setup(e){const{t:t}=(0,to.Q)(),o=(0,Xt.o)(),{layout:n}=(0,Ht.Jk)(o),s=(0,eo.A)(),{streamNumber:a}=(0,Ht.Jk)(s),r=(0,Ft.ref)(!1),i=(0,Ft.ref)(null);function l(e){o.setLayout(e),an.reportEvent({name:"layout",ext1:e})}function c(){r.value?(document.removeEventListener("click",u,!1),r.value=!1):(r.value=!0,document.addEventListener("click",u,!1))}function u(e){r.value&&i.value&&!i.value.contains(e.target)&&(document.removeEventListener("click",u),r.value=!1)}return{__sfc:!0,t:t,basicStore:o,layout:n,roomStore:s,streamNumber:a,showLayoutList:r,layoutList:i,handleClick:l,handleClickLayoutIcon:c,handleDocumentClick:u,SvgIcon:io.Z,LAYOUT:Cn._}}}),Sn=_n,In=(0,uo.Z)(Sn,hn,gn,!1,null,"7b3fd23b",null),yn=In.exports,bn=(0,Ft.defineComponent)({__name:"index",props:{showHeaderInfo:{type:Boolean,default:!0}},emits:["log-out"],setup(e){const t=(0,Xt.o)(),{userId:o,userName:n,avatarUrl:s}=(0,Ht.Jk)(t);return{__sfc:!0,basicStore:t,userId:o,userName:n,avatarUrl:s,UserInfo:pn.Z,Language:fn.Z,SwitchTheme:vn.Z,LayoutControl:yn}}}),Rn=bn,Tn=(0,uo.Z)(Rn,mn,dn,!1,null,"20e9e128",null),wn=Tn.exports;const An=wo.t?un:wn;var kn=An,Mn=function(){var e=this,t=e._self._c,o=e._self._setupProxy;return t("div",{staticClass:"footer-container"},[t("div",{staticClass:"left-container"},[t(o.AudioControl,{directives:[{name:"tap",rawName:"v-tap",value:()=>o.handleControlClick("audioControl"),expression:"() => handleControlClick('audioControl')"}]}),t(o.VideoControl,{directives:[{name:"tap",rawName:"v-tap",value:()=>o.handleControlClick("videoControl"),expression:"() => handleControlClick('videoControl')"}]}),o.roomStore.isSpeakAfterTakingSeatMode?t(o.ApplyControl,{directives:[{name:"tap",rawName:"v-tap",value:()=>o.handleControlClick("applyControl"),expression:"() => handleControlClick('applyControl')"}]}):t(o.ChatControl,{directives:[{name:"tap",rawName:"v-tap",value:()=>o.handleControlClick("chatControl"),expression:"() => handleControlClick('chatControl')"}]}),o.roomStore.isMaster?t(o.ManageMemberControl,{directives:[{name:"tap",rawName:"v-tap",value:()=>o.handleControlClick("manageMemberControl"),expression:"() => handleControlClick('manageMemberControl')"}]}):e._e(),t(o.MoreControl,{directives:[{name:"tap",rawName:"v-tap",value:()=>o.handleControlClick("moreControl"),expression:"() => handleControlClick('moreControl')"}]})],1)])},Un=[],xn=function(){var e=this,t=e._self._c,o=e._self._setupProxy;return t("div",[t("div",{staticClass:"audio-control-container",on:{click:function(e){return o.emits("click")}}},[t(o.IconButton,{ref:"audioIconButtonRef",attrs:{"is-active":!o.localStream.hasAudioStream,title:o.t("Mic"),"has-more":o.hasMore,"show-more":o.showAudioSettingTab,disabled:o.isLocalAudioIconDisable},on:{"click-icon":o.toggleMuteAudio,"click-more":o.handleMore}},[t(o.AudioIcon,{attrs:{"audio-volume":o.localStream.audioVolume,"is-muted":!o.localStream.hasAudioStream,"is-disabled":o.isLocalAudioIconDisable}})],1),t(o.AudioSettingTab,{directives:[{name:"show",rawName:"v-show",value:o.showAudioSettingTab,expression:"showAudioSettingTab"}],ref:"audioSettingRef",staticClass:"audio-tab"})],1),t(o.Dialog,{staticClass:"custom-element-class",attrs:{"model-value":o.showRequestOpenMicDialog,title:o.title,modal:!1,"show-close":!1,"append-to-body":!0,"close-on-click-modal":!1,"close-on-press-escape":!1,width:"500px"},scopedSlots:e._u([{key:"footer",fn:function(){return[t("div",{class:[o.isMobile?"button-container-mobile":"button-container-PC"]},[t("span",{staticClass:"cancel",on:{click:o.handleReject}},[e._v(e._s(o.t("Keep it closed")))]),t("span",{staticClass:"agree",on:{click:o.handleAccept}},[e._v(e._s(o.t("Turn on the microphone")))])])]},proxy:!0}])},[t("span",[e._v(" "+e._s(o.t("The host invites you to turn on the microphone"))+" ")])])],1)},Ln=[],En=o(2097),On=o(3929),Dn=o(1342),Nn=o(6897),Pn=(0,Ft.defineComponent)({__name:"AudioControl",emits:["click"],setup(e,{emit:t}){const o=(0,oo.Z)(),n=(0,eo.A)(),{isAudience:s,localStream:a,isLocalAudioIconDisable:r,isMicrophoneDisableForAllUser:i}=(0,Ht.Jk)(n),l=(0,Ft.computed)((()=>!wo.t)),c=(0,Ft.ref)(!1),u=(0,Ft.ref)(),m=(0,Ft.ref)(),{t:d}=(0,to.Q)(),p=(0,Ft.computed)((()=>wo.t?"":d("Tips")));async function f(){if(r.value){let e="";return i.value?e=Nn.B.UNMUTE_LOCAL_MIC_FAIL_MUTE_ALL:s.value&&(e=Nn.B.UNMUTE_LOCAL_MIC_FAIL_AUDIENCE),void(0,zt.z)({type:"warning",message:d(e),duration:Nn.U.NORMAL})}if(a.value.hasAudioStream)await(o.instance?.closeLocalMicrophone()),n.isMicrophoneDisableForAllUser&&n.setCanControlSelfAudio(!1);else{const e=await(o.instance?.getMicDevicesList()),t=e.length>0;if(!t&&!wo.e)return void zt.T.alert(d("Microphone not detected on current device."),d("Note"),{customClass:"custom-element-class",confirmButtonText:d("Confirm")});await(o.instance?.openLocalMicrophone())}c.value=!1}function v(){c.value?c.value=!1:c.value=!0}function h(e){!c.value||u.value?.$el.contains(e.target)||m.value?.$el.contains(e.target)||(c.value=!1)}const g=(0,Ft.ref)(!1),C=(0,Ft.ref)("");async function _(e){const{requestAction:t,requestId:o}=e.request;t===Kt.TUIRequestAction.kRequestToOpenRemoteMicrophone&&(C.value=o,g.value=!0)}async function S(){n.setCanControlSelfAudio(!0),await(o.instance?.responseRemoteRequest({requestId:C.value,agree:!0})),C.value="",g.value=!1}async function I(){await(o.instance?.responseRemoteRequest({requestId:C.value,agree:!1})),C.value="",g.value=!1}async function y(e){const{requestId:t}=e;C.value===t&&(g.value=!1)}return(0,Ft.onMounted)((()=>{document?.addEventListener("click",h,!0)})),Yt().once("ready",(()=>{o.instance?.on(Kt.TUIRoomEvents.onRequestReceived,_),o.instance?.on(Kt.TUIRoomEvents.onRequestCancelled,y)})),(0,Ft.onUnmounted)((()=>{document?.removeEventListener("click",h,!0),o.instance?.off(Kt.TUIRoomEvents.onRequestReceived,_),o.instance?.off(Kt.TUIRoomEvents.onRequestCancelled,y)})),{__sfc:!0,roomEngine:o,roomStore:n,isAudience:s,localStream:a,isLocalAudioIconDisable:r,isMicrophoneDisableForAllUser:i,emits:t,hasMore:l,showAudioSettingTab:c,audioIconButtonRef:u,audioSettingRef:m,t:d,title:p,toggleMuteAudio:f,handleMore:v,handleDocumentClick:h,showRequestOpenMicDialog:g,requestOpenMicRequestId:C,onRequestReceived:_,handleAccept:S,handleReject:I,onRequestCancelled:y,Dialog:Io.Z,IconButton:En.Z,AudioSettingTab:On.Z,AudioIcon:Dn.Z,isMobile:wo.t}}}),jn=Pn,qn=(0,uo.Z)(jn,xn,Ln,!1,null,"357aa832",null),Zn=qn.exports,Vn=function(){var e=this,t=e._self._c,o=e._self._setupProxy;return t("div",[t("div",{staticClass:"video-control-container",on:{click:function(e){return o.emits("click")}}},[t(o.IconButton,{ref:"videoIconButtonRef",attrs:{"is-active":!o.localStream.hasVideoStream,title:o.t("Camera"),"icon-name":o.iconName,"has-more":o.hasMore,disabled:o.isLocalVideoIconDisable},on:{"click-icon":o.toggleMuteVideo,"click-more":o.handleMore}}),t(o.VideoSettingTab,{directives:[{name:"show",rawName:"v-show",value:o.showVideoSettingTab,expression:"showVideoSettingTab"}],ref:"videoSettingRef",staticClass:"video-tab"})],1),t(o.Dialog,{staticClass:"custom-element-class",attrs:{"model-value":o.showRequestOpenCameraDialog,title:o.title,modal:!1,"show-close":!1,"append-to-body":!0,"close-on-click-modal":!1,"close-on-press-escape":!1,width:"500px"},scopedSlots:e._u([{key:"footer",fn:function(){return[t("div",{class:[o.isMobile?"button-container-mobile":"button-container-PC"]},[t("span",{staticClass:"cancel",on:{click:o.handleReject}},[e._v(e._s(o.t("Keep it closed")))]),t("span",{staticClass:"agree",on:{click:o.handleAccept}},[e._v(e._s(o.t("Turn on the camera")))])])]},proxy:!0}])},[t("span",[e._v(" "+e._s(o.t("The host invites you to turn on the camera"))+" ")])])],1)},Bn=[],$n=o(8283),Fn=o(6671),zn=(0,Ft.defineComponent)({__name:"VideoControl",emits:["click"],setup(e,{emit:t}){const o=(0,oo.Z)(),n=(0,eo.A)(),s=(0,Xt.o)(),a=(0,Ft.ref)(s.isFrontCamera),{isCameraDisableForAllUser:r,isAudience:i,localStream:l,isLocalVideoIconDisable:c}=(0,Ht.Jk)(n),{t:u}=(0,to.Q)(),m=(0,Ft.computed)((()=>!wo.t)),d=(0,Ft.ref)(!1),p=(0,Ft.ref)(),f=(0,Ft.ref)(),v=(0,Ft.computed)((()=>wo.t?"":u("Tips"))),h=(0,Ft.computed)((()=>c.value?Fn.Z.CameraOffDisabled:l.value.hasVideoStream?Fn.Z.CameraOn:Fn.Z.CameraOff));async function g(){if(c.value){let e="";return r.value?e=Nn.B.UNMUTE_LOCAL_CAMERA_FAIL_MUTE_ALL:i.value&&(e=Nn.B.UNMUTE_LOCAL_CAMERA_FAIL_AUDIENCE),void(0,zt.z)({type:"warning",message:u(e),duration:Nn.U.NORMAL})}if(l.value.hasVideoStream)await(o.instance?.closeLocalCamera()),n.isCameraDisableForAllUser&&n.setCanControlSelfVideo(!1);else{const e=await(o.instance?.getCameraDevicesList()),t=e.length>0;if(!t&&!wo.e)return void zt.T.alert(u("Camera not detected on current device"),u("Note"),{customClass:"custom-element-class",confirmButtonText:u("Confirm")});o.instance?.setLocalVideoView({view:`${n.localStream.userId}_${n.localStream.streamType}`,streamType:Kt.TUIVideoStreamType.kCameraStream}),wo.t?await(o.instance?.openLocalCamera({isFrontCamera:a.value})):await(o.instance?.openLocalCamera())}d.value=!1}function C(){d.value?d.value=!1:d.value=!0}function _(e){!d.value||p.value?.$el.contains(e.target)||f.value?.$el.contains(e.target)||(d.value=!1)}const S=(0,Ft.ref)(!1),I=(0,Ft.ref)("");async function y(e){const{requestAction:t,requestId:o}=e.request;t===Kt.TUIRequestAction.kRequestToOpenRemoteCamera&&(I.value=o,S.value=!0)}async function b(){n.setCanControlSelfVideo(!0),o.instance?.setLocalVideoView({view:`${n.localStream.userId}_${n.localStream.streamType}`,streamType:Kt.TUIVideoStreamType.kCameraStream}),await(o.instance?.responseRemoteRequest({requestId:I.value,agree:!0})),I.value="",S.value=!1}async function R(){await(o.instance?.responseRemoteRequest({requestId:I.value,agree:!1})),I.value="",S.value=!1}async function T(e){const{requestId:t}=e;I.value===t&&(S.value=!1)}return(0,Ft.onMounted)((()=>{document?.addEventListener("click",_,!0)})),Yt().once("ready",(()=>{o.instance?.on(Kt.TUIRoomEvents.onRequestReceived,y),o.instance?.on(Kt.TUIRoomEvents.onRequestCancelled,T)})),(0,Ft.onUnmounted)((()=>{document?.removeEventListener("click",_,!0),o.instance?.off(Kt.TUIRoomEvents.onRequestReceived,y),o.instance?.off(Kt.TUIRoomEvents.onRequestCancelled,T)})),{__sfc:!0,roomEngine:o,roomStore:n,basicStore:s,isFrontCamera:a,emits:t,isCameraDisableForAllUser:r,isAudience:i,localStream:l,isLocalVideoIconDisable:c,t:u,hasMore:m,showVideoSettingTab:d,videoIconButtonRef:p,videoSettingRef:f,title:v,iconName:h,toggleMuteVideo:g,handleMore:C,handleDocumentClick:_,showRequestOpenCameraDialog:S,requestOpenCameraRequestId:I,onRequestReceived:y,handleAccept:b,handleReject:R,onRequestCancelled:T,Dialog:Io.Z,IconButton:En.Z,VideoSettingTab:$n.Z,isMobile:wo.t}}}),Hn=zn,Jn=(0,uo.Z)(Hn,Vn,Bn,!1,null,"a0d52fdc",null),Qn=Jn.exports,Wn=function(){var e=this,t=e._self._c,o=e._self._setupProxy;return t("div",{staticClass:"manage-member-control-container"},[t(o.IconButton,{attrs:{"is-active":"manage-member"===o.sidebarName,title:o.t("Members"),"icon-name":o.iconName},on:{"click-icon":o.toggleMangeMemberSidebar}})],1)},Gn=[],Kn=(0,Ft.defineComponent)({__name:"ManageMemberControl",setup(e){const{t:t}=(0,to.Q)(),o=(0,Xt.o)(),{sidebarName:n}=(0,Ht.Jk)(o),s=(0,Ft.computed)((()=>"manage-member"===n.value?Fn.Z.ManageMemberActive:Fn.Z.ManageMember));function a(){if(o.setSidebarOpenStatus&&"manage-member"===n.value)return o.setSidebarOpenStatus(!1),void o.setSidebarName("");o.setSidebarOpenStatus(!0),o.setSidebarName("manage-member")}return{__sfc:!0,t:t,basicStore:o,sidebarName:n,iconName:s,toggleMangeMemberSidebar:a,IconButton:En.Z}}}),Yn=Kn,Xn=(0,uo.Z)(Yn,Wn,Gn,!1,null,"49c71e42",null),es=Xn.exports,ts=function(){var e=this,t=e._self._c,o=e._self._setupProxy;return t("div",{staticClass:"chat-control-container"},[o.isMobile?t("div",[o.chatStore.unReadCount>0?t("div",{staticClass:"count"},[t(o.IconButton,{directives:[{name:"tap",rawName:"v-tap",value:o.toggleChatSidebar,expression:"toggleChatSidebar"}],attrs:{title:o.t("Chat"),"icon-name":o.iconName}}),t("span",{staticClass:"unreadCount"},[e._v(e._s(o.chatStore.unReadCount>10?"10+":o.chatStore.unReadCount))])],1):t(o.IconButton,{directives:[{name:"tap",rawName:"v-tap",value:o.toggleChatSidebar,expression:"toggleChatSidebar"}],attrs:{"is-active":"chat"===o.sidebarName,title:o.t("Chat"),"icon-name":o.iconName}})],1):t("div",[o.chatStore.unReadCount>0?t("el-badge",{attrs:{value:o.chatStore.unReadCount>10?"10+":o.chatStore.unReadCount}},[t(o.IconButton,{attrs:{title:o.t("Chat"),"icon-name":o.iconName},on:{"click-icon":o.toggleChatSidebar}})],1):t(o.IconButton,{attrs:{"is-active":"chat"===o.sidebarName,title:o.t("Chat"),"icon-name":o.iconName},on:{"click-icon":o.toggleChatSidebar}})],1)])},os=[];const ns=(0,Ht.Q_)("chat",{state:()=>({messageList:[],isMessageDisableByAdmin:!1,unReadCount:0,isCompleted:!1,nextReqMessageId:""}),getters:{},actions:{updateMessageList(e){const t=this.messageList.map((e=>e.ID));-1===t.indexOf(e.ID)&&(this.messageList=this.messageList.concat([e]))},setMessageListInfo(e,t,o){this.messageList=e,this.isCompleted=t,this.nextReqMessageId=o},updateUnReadCount(e){this.unReadCount=e},addHistoryMessages(e){const t=this.messageList.map((e=>e.ID)),o=e.filter((e=>-1===t.indexOf(e.ID)));this.messageList=o.concat(this.messageList).sort(((e,t)=>e.sequence-t.sequence))},setSendMessageDisableChanged(e){this.isMessageDisableByAdmin=e},reset(){this.messageList=[],this.unReadCount=0,this.isMessageDisableByAdmin=!1}}});var ss=(0,Ft.defineComponent)({__name:"ChatControl",setup(e){const{t:t}=(0,to.Q)(),o=(0,Xt.o)(),n=ns(),{sidebarName:s}=(0,Ht.Jk)(o),a=(0,Ft.computed)((()=>"chat"===s.value?Fn.Z.ChatActive:Fn.Z.Chat));async function r(){if(o.setSidebarOpenStatus&&"chat"===o.sidebarName)return o.setSidebarOpenStatus(!1),void o.setSidebarName("");o.setSidebarOpenStatus(!0),o.setSidebarName("chat"),n.updateUnReadCount(0)}return{__sfc:!0,t:t,basicStore:o,chatStore:n,sidebarName:s,iconName:a,toggleChatSidebar:r,IconButton:En.Z,isMobile:wo.t}}}),as=ss,rs=(0,uo.Z)(as,ts,os,!1,null,null,null),is=rs.exports,ls=function(){var e=this,t=e._self._c,o=e._self._setupProxy;return o.roomStore.isMaster?t(o.MasterApplyControl):o.roomStore.isMaster?e._e():t(o.MemberApplyControl)},cs=[],us=function(){var e=this,t=e._self._c,o=e._self._setupProxy;return t("div",{staticClass:"apply-control-container"},[t(o.IconButton,{ref:"masterApplyControlRef",attrs:{title:o.t("Raise hand"),"icon-name":o.ICON_NAME.ApplyOnSeat},on:{"click-icon":o.toggleApplySpeech}}),o.hasApplyToAnchorUser&&!o.showApplyUserList?t("div",{staticClass:"attention master-attention"},[t(o.SvgIcon,{staticClass:"apply-big-icon",attrs:{"icon-name":"apply-big-icon"}}),t("span",{staticClass:"info"},[e._v(e._s(o.applyToAnchorList.length))])],1):e._e(),o.showApplyUserList?t("div",{ref:"masterApplyListRef",class:o.isMobile?"apply-list-container-h5":"apply-list-container"},[t("div",{staticClass:"title-container"},[t("span",{staticClass:"title"},[e._v(e._s(o.t("Apply to stage application")))]),t(o.SvgIcon,{staticClass:"close",attrs:{"icon-name":"close",size:"medium"},on:{click:o.hideApplyList}})],1),t("div",{staticClass:"apply-list"},e._l(o.applyToAnchorList,(function(n,s){return t("div",{key:s,staticClass:"apply-item"},[t("div",{staticClass:"user-info"},[t(o.Avatar,{staticClass:"avatar-url",attrs:{"img-src":n.avatarUrl}}),t("span",{staticClass:"user-name",attrs:{title:n.userName||n.userId}},[e._v(e._s(n.userName||n.userId))])],1),t("div",{staticClass:"control-container"},[t("div",{staticClass:"button primary",on:{click:function(e){return o.handleUserApply(n.userId,!0)}}},[e._v(e._s(o.t("Agree")))]),t("div",{staticClass:"button outline",on:{click:function(e){return o.handleUserApply(n.userId,!1)}}},[e._v(e._s(o.t("Reject")))])])])})),0),t("div",{staticClass:"apply-footer"},[t("div",{staticClass:"button outline deny-all",on:{click:o.denyAllUserApply}},[e._v(e._s(o.t("Reject All")))])])]):e._e()],1)},ms=[];const ds=(0,oo.Z)();function ps(){const e=(0,eo.A)(),{applyToAnchorList:t}=(0,Ht.Jk)(e),{t:o}=(0,to.Q)();function n(t){const{requestAction:o,requestId:n,userId:s}=t.request;o===Kt.TUIRequestAction.kRequestToTakeSeat&&s&&e.addApplyToAnchorUser({userId:s,requestId:n})}function s(t){const{userId:o}=t;e.removeApplyToAnchorUser(o)}async function a(t,o){const n=e.remoteUserObj[t];if(n){const e=n.applyToAnchorRequestId;e&&await(ds.instance?.responseRemoteRequest({requestId:e,agree:o}))}e.removeApplyToAnchorUser(t)}async function r(t){const o=t.applyToAnchorRequestId;o&&await(ds.instance?.responseRemoteRequest({requestId:o,agree:!0})),e.removeApplyToAnchorUser(t.userId)}async function i(t){const o=t.applyToAnchorRequestId;o&&await(ds.instance?.responseRemoteRequest({requestId:o,agree:!1})),e.removeApplyToAnchorUser(t.userId)}async function l(){const n=t.value.map((e=>({userId:e.userId,userName:e.userName,applyToAnchorRequestId:e.applyToAnchorRequestId})));let s=0;while(s>=0&&s{const{requestCallbackType:n,userId:s}=t,a=e.getUserName(s);switch(n){case Kt.TUIRequestCallbackType.kRequestAccepted:(0,zt.z)({type:"success",message:`${a||s} ${o("accepted the invitation to the stage")}`,duration:Nn.U.NORMAL}),e.removeInviteToAnchorUser(s);break;case Kt.TUIRequestCallbackType.kRequestRejected:(0,zt.z)({type:"warning",message:`${a||s} ${o("declined the invitation to the stage")}`,duration:Nn.U.NORMAL}),e.removeInviteToAnchorUser(s);break;case Kt.TUIRequestCallbackType.kRequestTimeout:break;default:break}}}));s&&s.requestId&&e.addInviteToAnchorUser({userId:n,requestId:s.requestId})}function u(t){const{userId:o,inviteToAnchorRequestId:n}=t;e.removeInviteToAnchorUser(o),n&&ds.instance?.cancelRequest({requestId:n})}function m(e){ds.instance?.kickUserOffSeatByAdmin({seatIndex:-1,userId:e.userId})}return Yt().once("ready",(()=>{ds.instance?.on(Kt.TUIRoomEvents.onRequestReceived,n),ds.instance?.on(Kt.TUIRoomEvents.onRequestCancelled,s)})),(0,Ft.onBeforeUnmount)((()=>{ds.instance?.off(Kt.TUIRoomEvents.onRequestReceived,n),ds.instance?.off(Kt.TUIRoomEvents.onRequestCancelled,s)})),{handleUserApply:a,agreeUserOnStage:r,denyUserOnStage:i,denyAllUserApply:l,inviteUserOnStage:c,cancelInviteUserOnStage:u,kickUserOffStage:m}}var fs=(0,Ft.defineComponent)({__name:"MasterApplyControl",setup(e){const{t:t}=(0,to.Q)(),o=(0,Xt.o)(),n=(0,eo.A)(),{handleUserApply:s,denyAllUserApply:a}=ps(),{showApplyUserList:r}=(0,Ht.Jk)(o),{isMaster:i,applyToAnchorList:l}=(0,Ht.Jk)(n),c=(0,Ft.ref)(),u=(0,Ft.ref)(),m=(0,Ft.computed)((()=>l.value.length>0));function d(){i.value&&o.setShowApplyUserList(!r.value)}function p(){o.setShowApplyUserList(!1)}function f(e){!r.value||c.value?.$el.contains(e.target)||u.value?.contains(e.target)||o.setShowApplyUserList(!1)}return(0,Ft.onMounted)((()=>{document.addEventListener("click",f,!0)})),(0,Ft.onBeforeUnmount)((()=>{document.removeEventListener("click",f,!0)})),{__sfc:!0,t:t,basicStore:o,roomStore:n,handleUserApply:s,denyAllUserApply:a,showApplyUserList:r,isMaster:i,applyToAnchorList:l,masterApplyControlRef:c,masterApplyListRef:u,hasApplyToAnchorUser:m,toggleApplySpeech:d,hideApplyList:p,handleDocumentClick:f,Avatar:fo.Z,ICON_NAME:Fn.Z,IconButton:En.Z,SvgIcon:io.Z,isMobile:wo.t}}}),vs=fs,hs=(0,uo.Z)(vs,us,ms,!1,null,null,null),gs=hs.exports,Cs=function(){var e=this,t=e._self._c,o=e._self._setupProxy;return t("div",[t("div",{staticClass:"apply-control-container"},[t(o.IconButton,{attrs:{title:o.iconTitle,"icon-name":o.iconName},on:{"click-icon":o.toggleApplySpeech}}),o.showMemberApplyAttention?t("div",{staticClass:"attention member-attention"},[t("span",{staticClass:"info"},[e._v(e._s(o.t("Please raise your hand to apply")))]),t(o.SvgIcon,{staticClass:"close",attrs:{"icon-name":"close",size:"medium"},on:{click:o.hideApplyAttention}})],1):e._e()],1),t(o.Dialog,{staticClass:"custom-element-class",attrs:{"model-value":o.showInviteDialog,title:o.t("The host invites you to speak on stage"),modal:!1,"show-close":!1,"append-to-body":!0,"close-on-click-modal":!1,"close-on-press-escape":!1,width:"500px"},scopedSlots:e._u([{key:"footer",fn:function(){return[t("div",{class:[o.isMobile?"button-container-mobile":"button-container-PC"]},[t("span",{staticClass:"cancel",on:{click:function(e){return o.handleInvite(!1)}}},[e._v(e._s(o.t("Cancel")))]),t("span",{staticClass:"agree",on:{click:function(e){return o.handleInvite(!0)}}},[e._v(e._s(o.t("Agree")))])])]},proxy:!0}])},[t("span",[e._v(" "+e._s(o.t("After agreeing to go on stage, you can turn on the camera and microphone. Do you agree to go on stage?"))+" ")])])],1)},_s=[],Ss=(0,Ft.defineComponent)({__name:"MemberApplyControl",setup(e){const t=(0,oo.Z)(),{t:o}=(0,to.Q)(),n=(0,Xt.o)(),s=(0,eo.A)(),{lang:a}=(0,Ht.Jk)(n),{localUser:r}=(0,Ht.Jk)(s),i=(0,Ft.ref)(!1),l=(0,Ft.ref)(!0),c=(0,Ft.ref)(""),u=(0,Ft.ref)(""),m=(0,Ft.ref)(!1),d=(0,Ft.ref)(""),p=(0,Ft.ref)("");async function f(){C(),r.value.onSeat?g():i.value?h():v()}async function v(){try{const e=await(t.instance?.takeSeat({seatIndex:-1,timeout:0,requestCallback:e=>{i.value=!1;const{requestCallbackType:t}=e;switch(t){case Kt.TUIRequestCallbackType.kRequestAccepted:(0,zt.z)({type:"success",message:o("The host has approved your application"),duration:Nn.U.NORMAL});break;case Kt.TUIRequestCallbackType.kRequestRejected:(0,zt.z)({type:"warning",message:o("The host has rejected your application for the stage"),duration:Nn.U.NORMAL});break;case Kt.TUIRequestCallbackType.kRequestTimeout:break}}}));e&&e.requestId&&(d.value=e.requestId),i.value=!0}catch(e){no.Z.log("member sendSpeechApplication error",e)}}async function h(){try{await(t.instance?.cancelRequest({requestId:d.value})),i.value=!1}catch(e){no.Z.log("member cancelSpeechApplication",e)}}async function g(){await(t.instance?.leaveSeat())}function C(){l.value=!1}async function _(e){const{request:{requestId:t,requestAction:o}}=e;o===Kt.TUIRequestAction.kRequestRemoteUserOnSeat&&(p.value=t,m.value=!0)}function S(e){const{requestId:t}=e;p.value===t&&(p.value="",m.value=!1)}async function I(e){await(t.instance?.responseRemoteRequest({requestId:p.value,agree:e})),m.value=!1,e&&C()}async function y(){(0,zt.z)({type:"warning",message:o("You have been invited by the host to step down, please raise your hand if you need to speak"),duration:Nn.U.NORMAL})}return(0,Ft.watch)([r,i,a],(([e,t])=>{e.onSeat?(c.value=Fn.Z.GoOffSeat,u.value=o("Step down")):t?(c.value=Fn.Z.ApplyActive,u.value=o("Hand down")):(c.value=Fn.Z.ApplyOnSeat,u.value=o("Raise hand"))}),{immediate:!0,deep:!0}),Yt().once("ready",(()=>{t.instance?.on(Kt.TUIRoomEvents.onRequestReceived,_),t.instance?.on(Kt.TUIRoomEvents.onRequestCancelled,S),t.instance?.on(Kt.TUIRoomEvents.onKickedOffSeat,y)})),(0,Ft.onBeforeUnmount)((()=>{t.instance?.off(Kt.TUIRoomEvents.onRequestReceived,_),t.instance?.off(Kt.TUIRoomEvents.onRequestCancelled,S),t.instance?.off(Kt.TUIRoomEvents.onKickedOffSeat,y)})),{__sfc:!0,roomEngine:t,t:o,basicStore:n,roomStore:s,lang:a,localUser:r,isApplyingOnSeat:i,showMemberApplyAttention:l,iconName:c,iconTitle:u,showInviteDialog:m,applyToAnchorRequestId:d,inviteToAnchorRequestId:p,toggleApplySpeech:f,sendSeatApplication:v,cancelSeatApplication:h,leaveSeat:g,hideApplyAttention:C,onRequestReceived:_,onRequestCancelled:S,handleInvite:I,onKickedOffSeat:y,IconButton:En.Z,SvgIcon:io.Z,Dialog:Io.Z,isMobile:wo.t}}}),Is=Ss,ys=(0,uo.Z)(Is,Cs,_s,!1,null,null,null),bs=ys.exports,Rs=(0,Ft.defineComponent)({__name:"Index",setup(e){const t=(0,eo.A)();return{__sfc:!0,roomStore:t,MasterApplyControl:gs,MemberApplyControl:bs}}}),Ts=Rs,ws=(0,uo.Z)(Ts,ls,cs,!1,null,null,null),As=ws.exports,ks=function(){var e=this,t=e._self._c,o=e._self._setupProxy;return t("div",[t("div",{staticClass:"more-control-container"},[t(o.IconButton,{attrs:{"is-active":"more"===o.sidebarName,title:o.t("More"),"icon-name":o.ICON_NAME.More},on:{"click-icon":o.showMore}})],1),o.showMoreContent?t("div",{ref:"moreContentRef",staticClass:"show-more-content"},[t("div",{staticClass:"control-compent"},[o.roomStore.isSpeakAfterTakingSeatMode?t(o.ChatControl,{on:{click:function(e){return o.handleControlClick("chatControl")}}}):e._e(),t(o.ContactControl,{on:{click:function(e){return o.handleControlClick("contactControl")}}}),t(o.InviteControl,{on:{click:function(e){return o.handleControlClick("inviteControl")}}})],1),t("div",{staticClass:"close",on:{click:function(e){o.showMoreContent=!1}}},[t("i",[e._v(e._s(o.t("Cancel")))])])]):e._e()])},Ms=[];function Us(){const{t:e}=(0,to.Q)(),t=(0,Xt.o)(),{sidebarName:o}=(0,Ht.Jk)(t),n=(0,Ft.computed)((()=>"more"===o.value?Fn.Z.MoreActive:Fn.Z.More));return{t:e,basicStore:t,iconName:n,sidebarName:o}}var xs=function(){var e=this,t=e._self._c,o=e._self._setupProxy;return t("div",{staticClass:"invite-control-container"},[t(o.IconButton,{attrs:{"is-active":"invite"===o.sidebarName,title:o.t("Invite"),"icon-name":o.iconName},on:{"click-icon":o.toggleInviteSidebar}}),o.isShowInviteTab?t("div",{staticClass:"invite-container"},[t(o.roomInvite,{ref:"inviteRef",on:{"on-close-invite":o.handleCloseInvite}})],1):e._e()],1)},Ls=[],Es=function(){var e=this,t=e._self._c,o=e._self._setupProxy;return t("div",{staticClass:"invite-container-main"},[t("div",{staticClass:"invite-title-main"},[t("p",[e._v(e._s(o.t("Invite")))]),o.isWeChat?t("span",{directives:[{name:"tap",rawName:"v-tap",value:o.handleCloseInvite,expression:"handleCloseInvite"}],staticClass:"cancel"},[e._v(e._s(o.t("Cancel")))]):e._e()]),e._l(o.visibleInviteContentList,(function(n){return t("div",{key:n.id,staticClass:"invite-content-main"},[t("span",{staticClass:"invite-title"},[e._v(e._s(o.t(n.title)))]),t("span",{staticClass:"invite-content"},[e._v(e._s(n.content))]),t(o.SvgIcon,{directives:[{name:"tap",rawName:"v-tap",value:()=>o.onCopy(n.copyLink),expression:"() => onCopy(item.copyLink)"}],staticClass:"copy",attrs:{"icon-name":"copy-icon",size:"custom"}})],1)})),t("span",{staticClass:"invite-bottom"},[e._v(" "+e._s(o.t("You can share the room number or link to invite more people to join the room."))+" ")])],2)},Os=[];function Ds(){const{t:e}=(0,to.Q)(),t=(0,Xt.o)(),{roomId:o,shareLink:n,isRoomLinkVisible:s}=(0,Ht.Jk)(t),{origin:a,pathname:r}=location||{},i=(0,$o.Al)(),l=(0,Ft.computed)((()=>{if(n.value){const e=-1!==n.value.indexOf("?")?"&":"?";return`${n.value}${e}roomId=${o.value}`}return`${a}${r}#/home?roomId=${o.value}`})),c=(0,Ft.computed)((()=>`tuiroom://joinroom?roomId=${o.value}`));async function u(t){try{await(0,$o.jO)(t),(0,zt.z)({message:e("Copied successfully"),type:"success"})}catch(o){(0,zt.z)({message:e("Copied failure"),type:"error"})}}const m=[{id:1,title:"Room ID",content:o,copyLink:o,visible:!0},{id:2,title:"Room Link",content:l,copyLink:l,visible:s.value},{id:3,title:"scheme",content:c,copyLink:c,visible:!0}],d=(0,Ft.reactive)(m.filter((e=>e.visible)));return{t:e,isRoomLinkVisible:s,roomId:o,origin:a,pathname:r,isElectron:i,inviteLink:l,schemeLink:c,onCopy:u,visibleInviteContentList:d}}var Ns=(0,Ft.defineComponent)({__name:"indexH5",emits:["on-close-invite"],setup(e,{emit:t}){const{t:o,onCopy:n,visibleInviteContentList:s}=Ds();function a(){t("on-close-invite")}return{__sfc:!0,t:o,onCopy:n,visibleInviteContentList:s,emit:t,handleCloseInvite:a,SvgIcon:io.Z,isWeChat:wo.e}}}),Ps=Ns,js=(0,uo.Z)(Ps,Es,Os,!1,null,"eb2b478c",null),qs=js.exports,Zs=function(){var e=this,t=e._self._c,o=e._self._setupProxy;return t("div",{staticClass:"invite-container"},[t("div",{staticClass:"invite-notice"},[e._v(e._s(o.t("Share the room ID or invite link")))]),t("div",{staticClass:"invite-content"},[t("div",{staticClass:"invite-item"},[t("span",{staticClass:"invite-title"},[e._v(e._s(o.t("Invite by room number")))]),t("div",{staticClass:"input-area"},[t("input",{staticClass:"input",attrs:{type:"text"},domProps:{value:o.roomId}}),t(o.SvgIcon,{staticClass:"copy",attrs:{"icon-name":"copy-icon"},on:{click:function(e){return o.onCopy(o.roomId)}}})],1)]),o.isRoomLinkVisible?t("div",{staticClass:"invite-item"},[t("span",{staticClass:"invite-title"},[e._v(e._s(o.t("Invite via room link")))]),t("div",{staticClass:"input-area"},[t("input",{staticClass:"input",attrs:{type:"text"},domProps:{value:o.inviteLink}}),t(o.SvgIcon,{staticClass:"copy",attrs:{"icon-name":"copy-icon"},on:{click:function(e){return o.onCopy(o.inviteLink)}}})],1)]):e._e(),t("div",{staticClass:"invite-item"},[t("span",{staticClass:"invite-title"},[e._v(e._s(o.t("Invite via client scheme")))]),t("div",{staticClass:"input-area"},[t("input",{staticClass:"input",attrs:{type:"text"},domProps:{value:o.schemeLink}}),t(o.SvgIcon,{staticClass:"copy",attrs:{"icon-name":"copy-icon"},on:{click:function(e){return o.onCopy(o.schemeLink)}}})],1)])])])},Vs=[],Bs=(0,Ft.defineComponent)({__name:"indexPC",setup(e){const{t:t,isRoomLinkVisible:o,roomId:n,inviteLink:s,schemeLink:a,onCopy:r}=Ds();return{__sfc:!0,t:t,isRoomLinkVisible:o,roomId:n,inviteLink:s,schemeLink:a,onCopy:r,SvgIcon:io.Z}}}),$s=Bs,Fs=(0,uo.Z)($s,Zs,Vs,!1,null,"76a9ae2d",null),zs=Fs.exports;const Hs=wo.t?qs:zs;var Js=Hs,Qs=(0,Ft.defineComponent)({__name:"InviteControl",setup(e){const t=(0,Xt.o)(),{sidebarName:o}=(0,Ht.Jk)(t),{t:n}=(0,to.Q)(),s=(0,Ft.ref)(!1),a=(0,Ft.ref)(),r=(0,Ft.computed)((()=>wo.t?Fn.Z.Invite:"invite"===o.value?Fn.Z.InviteActive:Fn.Z.Invite));function i(){if(wo.t){if(s.value=!0,"invite"===t.sidebarName)return void t.setSidebarName("");t.setSidebarName("invite")}else{if(t.setSidebarOpenStatus&&"invite"===t.sidebarName)return t.setSidebarOpenStatus(!1),void t.setSidebarName("");t.setSidebarOpenStatus(!0),t.setSidebarName("invite")}}function l(e){s.value&&a.value&&!a.value.$el.contains(e.target)&&(s.value=!1)}function c(){s.value=!1}return(0,Ft.onMounted)((()=>{document?.addEventListener("click",l,!0)})),(0,Ft.onUnmounted)((()=>{document?.removeEventListener("click",l,!0)})),{__sfc:!0,basicStore:t,sidebarName:o,t:n,isShowInviteTab:s,inviteRef:a,iconName:r,toggleInviteSidebar:i,handleDocumentClick:l,handleCloseInvite:c,IconButton:En.Z,roomInvite:Js}}}),Ws=Qs,Gs=(0,uo.Z)(Ws,xs,Ls,!1,null,"78681d3c",null),Ks=Gs.exports,Ys=function(){var e=this,t=e._self._c,o=e._self._setupProxy;return t("div",{staticClass:"more-control-container"},[t(o.IconButton,{attrs:{"is-active":"more"===o.sidebarName,title:o.t("Contact us"),"icon-name":"contact-us-h5"},on:{"click-icon":o.toggleContactSidebar}}),o.isShowContactTab?t("div",{staticClass:"contact-container"},[t(o.roomContact,{ref:"contactRef",on:{"on-close-contact":o.handleOnCloseContact}})],1):e._e()],1)},Xs=[],ea=function(){var e=this,t=e._self._c,o=e._self._setupProxy;return t("div",{staticClass:"contact-container-main"},[t("div",{staticClass:"contact-title-main"},[t("p",[e._v(e._s(o.t("Contact us")))]),o.isWeChat?t("span",{directives:[{name:"tap",rawName:"v-tap",value:o.handleCloseContact,expression:"handleCloseContact"}],staticClass:"cancel"},[e._v(e._s(o.t("Cancel")))]):e._e()]),e._l(o.contactContentList,(function(n){return t("div",{key:n.id,staticClass:"contact-content-main"},[t("span",{staticClass:"contact-title"},[e._v(e._s(o.t(n.title)))]),t("span",{staticClass:"contact-content"},[e._v(e._s(n.content))]),t(o.SvgIcon,{directives:[{name:"tap",rawName:"v-tap",value:()=>o.onCopy(n.copyLink),expression:"() => onCopy(item.copyLink)"}],staticClass:"copy",attrs:{"icon-name":"copy-icon",size:"custom"}})],1)})),t("span",{staticClass:"contact-bottom"},[e._v(" "+e._s(o.t("If you have any questions, please feel free to join our QQ group or send an email"))+" ")])],2)},ta=[];function oa(){const{t:e}=(0,to.Q)(),t="592465424",o="matthewwu@tencent.com";async function n(t){try{await(0,$o.jO)(t),(0,zt.z)({message:e("Copied successfully"),type:"success"})}catch(o){(0,zt.z)({message:e("Copied failure"),type:"error"})}}return{t:e,groupNumber:t,email:o,onCopy:n}}var na=(0,Ft.defineComponent)({__name:"indexH5",emits:["on-close-contact"],setup(e,{emit:t}){const{t:o,groupNumber:n,email:s,onCopy:a}=oa(),r=(0,Ft.reactive)([{id:1,title:"group chat",content:n,copyLink:n},{id:2,title:"Email",content:s,copyLink:s}]);function i(){t("on-close-contact")}return{__sfc:!0,t:o,groupNumber:n,email:s,onCopy:a,emit:t,contactContentList:r,handleCloseContact:i,SvgIcon:io.Z,isWeChat:wo.e}}}),sa=na,aa=(0,uo.Z)(sa,ea,ta,!1,null,"76fbca8c",null),ra=aa.exports,ia=function(){var e=this,t=e._self._c,o=e._self._setupProxy;return t("div",{staticClass:"more-container"},[t("div",{staticClass:"more-notice"},[e._v(e._s(o.t("Join our QQ group chat or email us.")))]),t("div",{staticClass:"more-content"},[t("div",{staticClass:"more-item"},[t("span",{staticClass:"more-title"},[e._v(e._s(o.t("group chat")))]),t("div",{staticClass:"input-area"},[t("input",{staticClass:"input",attrs:{type:"text"},domProps:{value:o.groupNumber}}),t(o.SvgIcon,{staticClass:"copy",attrs:{"icon-name":"copy-icon"},on:{click:function(e){return o.onCopy(o.groupNumber)}}})],1)]),t("div",{staticClass:"more-item"},[t("span",{staticClass:"more-title"},[e._v(e._s(o.t("Email")))]),t("div",{staticClass:"input-area"},[t("input",{staticClass:"input",attrs:{type:"text"},domProps:{value:o.email}}),t(o.SvgIcon,{staticClass:"copy",attrs:{"icon-name":"copy-icon"},on:{click:function(e){return o.onCopy(o.email)}}})],1)])])])},la=[],ca=(0,Ft.defineComponent)({__name:"indexPC",setup(e){const{t:t,groupNumber:o,email:n,onCopy:s}=oa();return{__sfc:!0,t:t,groupNumber:o,email:n,onCopy:s,SvgIcon:io.Z}}}),ua=ca,ma=(0,uo.Z)(ua,ia,la,!1,null,"4d3067ac",null),da=ma.exports;const pa=wo.t?ra:da;var fa=pa,va=(0,Ft.defineComponent)({__name:"ContactControl",setup(e){const t=(0,Xt.o)(),{sidebarName:o}=(0,Ht.Jk)(t),{t:n}=(0,to.Q)(),s=(0,Ft.ref)(!1),a=(0,Ft.ref)();function r(){if(wo.t){if(s.value=!0,"more"===t.sidebarName)return void t.setSidebarName("");t.setSidebarName("more")}else{if(t.setSidebarOpenStatus&&"more"===t.sidebarName)return t.setSidebarOpenStatus(!1),void t.setSidebarName("");t.setSidebarOpenStatus(!0),t.setSidebarName("more")}}function i(e){s.value&&a.value&&!a.value.$el.contains(e.target)&&(s.value=!1)}function l(){s.value=!1}return(0,Ft.onMounted)((()=>{document.addEventListener("click",i,!0)})),(0,Ft.onUnmounted)((()=>{document.removeEventListener("click",i,!0)})),{__sfc:!0,basicStore:t,sidebarName:o,t:n,isShowContactTab:s,contactRef:a,toggleContactSidebar:r,handleDocumentClick:i,handleOnCloseContact:l,IconButton:En.Z,roomContact:fa}}}),ha=va,ga=(0,uo.Z)(ha,Ys,Xs,!1,null,"251c1f14",null),Ca=ga.exports;function _a(e){return{all:e=e||new Map,on:function(t,o){var n=e.get(t);n?n.push(o):e.set(t,[o])},off:function(t,o){var n=e.get(t);n&&(o?n.splice(n.indexOf(o)>>>0,1):e.set(t,[]))},emit:function(t,o){var n=e.get(t);n&&n.slice().map((function(e){e(o)})),(n=e.get("*"))&&n.slice().map((function(e){e(t,o)}))}}}const Sa=_a();var Ia=Sa,ya=(0,Ft.defineComponent)({__name:"MoreControlH5",setup(e){const t=(0,Ft.ref)(!1),o=(0,Ft.ref)(),{t:n,sidebarName:s}=Us(),a=(0,eo.A)();function r(){t.value=!0}function i(e){an.reportEvent({name:e,ext1:e}),Ia.emit("experience-communication",e)}function l(e){t.value&&!o.value.contains(e.target)&&(t.value=!1)}return(0,Ft.onMounted)((()=>{document?.addEventListener("click",l,!0)})),(0,Ft.onUnmounted)((()=>{document?.removeEventListener("click",l,!0)})),{__sfc:!0,showMoreContent:t,moreContentRef:o,t:n,sidebarName:s,roomStore:a,showMore:r,handleControlClick:i,handleDocumentClick:l,IconButton:En.Z,ChatControl:is,InviteControl:Ks,ContactControl:Ca,ICON_NAME:Fn.Z}}}),ba=ya,Ra=(0,uo.Z)(ba,ks,Ms,!1,null,"7814bc4f",null),Ta=Ra.exports,wa=function(){var e=this,t=e._self._c,o=e._self._setupProxy;return t("div",{staticClass:"more-control-container"},[t(o.IconButton,{attrs:{"is-active":"more"===o.sidebarName,title:o.t("More"),"icon-name":o.iconName},on:{"click-icon":o.toggleMoreSidebar}})],1)},Aa=[],ka=(0,Ft.defineComponent)({__name:"MoreControlPC",setup(e){const{t:t,iconName:o,basicStore:n,sidebarName:s}=Us();function a(){if(n.setSidebarOpenStatus&&"more"===n.sidebarName)return n.setSidebarOpenStatus(!1),void n.setSidebarName("");n.setSidebarOpenStatus(!0),n.setSidebarName("more")}return{__sfc:!0,t:t,iconName:o,basicStore:n,sidebarName:s,toggleMoreSidebar:a,IconButton:En.Z}}}),Ma=ka,Ua=(0,uo.Z)(Ma,wa,Aa,!1,null,"8fb09940",null),xa=Ua.exports;const La=wo.t?Ta:xa;var Ea=La;function Oa(){const e=(0,eo.A)(),{t:t}=(0,to.Q)();return{t:t,roomStore:e}}var Da=(0,Ft.defineComponent)({__name:"indexH5",setup(e){const{roomStore:t}=Oa();function o(e){an.reportEvent({name:e,ext1:e}),Ia.emit("experience-communication",e)}return{__sfc:!0,roomStore:t,handleControlClick:o,AudioControl:Zn,VideoControl:Qn,ManageMemberControl:es,ChatControl:is,ApplyControl:As,MoreControl:Ea}}}),Na=Da,Pa=(0,uo.Z)(Na,Mn,Un,!1,null,"6f1ee0d6",null),ja=Pa.exports,qa=function(){var e=this,t=e._self._c,o=e._self._setupProxy;return t("div",{staticClass:"footer-container"},[t("div",{staticClass:"left-container"},[t(o.AudioControl,{staticClass:"left-container-item",on:{click:function(e){return o.handleControlClick("audioControl")}}}),t(o.VideoControl,{staticClass:"left-container-item",on:{click:function(e){return o.handleControlClick("videoControl")}}})],1),t("div",{staticClass:"center-container"},[t(o.ScreenShareControl,{on:{click:function(e){return o.handleControlClick("screenShareControl")}}}),t(o.FullScreenControl,{on:{click:function(e){return o.handleControlClick("fullScreenControl")}}}),o.roomStore.isMaster?t(o.ManageMemberControl,{on:{click:function(e){return o.handleControlClick("manageMemberControl")}}}):e._e(),t(o.InviteControl,{on:{click:function(e){return o.handleControlClick("inviteControl")}}}),t(o.ChatControl,{on:{click:function(e){return o.handleControlClick("chatControl")}}}),o.roomStore.isSpeakAfterTakingSeatMode?t(o.ApplyControl,{on:{click:function(e){return o.handleControlClick("applyControl")}}}):e._e(),t(o.MoreControl,{on:{click:function(e){return o.handleControlClick("moreControl")}}}),t(o.SettingControl,{on:{click:function(e){return o.handleControlClick("settingControl")}}})],1),t("div",{staticClass:"right-container"},[t(o.EndControl,{on:{"on-destroy-room":o.onDestroyRoom,"on-exit-room":o.onExitRoom}})],1)])},Za=[],Va=function(){var e=this,t=e._self._c,o=e._self._setupProxy;return t("div",{staticClass:"screen-share-control-container"},[t(o.IconButton,{ref:"btnStopRef",attrs:{"is-active":o.isSharing,disabled:o.screenShareDisabled,title:o.title,"icon-name":o.iconName},on:{"click-icon":o.toggleScreenShare}}),o.showStopShareRegion?t("div",{staticClass:"stop-share-region",on:{click:o.openStopConfirmDialog}},[t(o.SvgIcon,{staticClass:"stop-share-icon",attrs:{"icon-name":o.ICON_NAME.ScreenShareStopped}}),t("span",[e._v(e._s(o.t("End sharing")))])],1):e._e(),t(o.Dialog,{attrs:{"model-value":o.dialogVisible,width:"420px",title:o.t("Stop sharing?"),modal:!0,"append-to-body":!1,"before-close":o.cancelStop},scopedSlots:e._u([{key:"footer",fn:function(){return[t("span",[t("el-button",{attrs:{type:"primary"},on:{click:o.stopScreenShare}},[e._v(e._s(o.t("Stop sharing")))]),t("el-button",{attrs:{type:"default"},on:{click:o.cancelStop}},[e._v(e._s(o.t("Cancel")))])],1)]},proxy:!0}])},[t("span",[e._v(" "+e._s(o.t("Others will no longer see your screen after you stop sharing. Are you sure you want to stop?")))])])],1)},Ba=[],$a=(0,Ft.defineComponent)({__name:"Index",setup(e){const t=(0,oo.Z)(),o="[ScreenShareControl]",n=(0,eo.A)(),{isAnchor:s,isAudience:a,hasOtherScreenShare:r}=(0,Ht.Jk)(n),{t:i}=(0,to.Q)(),l=(0,Ft.ref)(),c=(0,Ft.ref)(!1),u=(0,Ft.ref)(!1),m=(0,Ft.ref)(!1),d=(0,Ft.computed)((()=>a.value)),p=(0,Ft.computed)((()=>c.value?i("Sharing"):i("Share screen"))),f=(0,Ft.computed)((()=>d.value?Fn.Z.ScreenShareDisabled:c.value?Fn.Z.ScreenSharing:Fn.Z.ScreenShare));async function v(){if(a.value)(0,zt.z)({type:"warning",message:i("You currently do not have sharing permission, please raise your hand to apply for sharing permission first"),duration:Nn.U.LONG});else if(r.value)(0,zt.z)({type:"warning",message:i("Another user is currently sharing the screen, screen sharing is not possible."),duration:Nn.U.LONG});else if(c.value)u.value=!0;else try{await(t.instance?.startScreenSharing()),c.value=!0}catch(e){no.Z.error(`${o}startScreenShare error:`,e.name,e.message,e.code);let t="";switch(e.name){case"NotReadableError":t="系统禁止当前浏览器获取屏幕内容";break;case"NotAllowedError":t=e.message.includes("Permission denied by system")?"系统禁止当前浏览器获取屏幕内容":"用户拒绝/取消屏幕分享";break;default:t="屏幕分享遇到未知错误";break}(0,zt.z)({type:"warning",message:t,duration:Nn.U.LONG})}}function h(){u.value=!1,c.value&&(m.value=!0)}function g(){m.value=!1}async function C(){if(c.value)try{await(t.instance?.stopScreenSharing()),m.value=!1,c.value=!1}catch(e){no.Z.error(`${o}stopScreenShare error:`,e)}}function _(){c.value=!1}return(0,Ft.watch)(s,((e,t)=>{!t&&e&&c.value&&C()})),Yt().once("ready",(()=>{t.instance?.on(Kt.TUIRoomEvents.onUserScreenCaptureStopped,_)})),(0,Ft.onUnmounted)((()=>{t.instance?.off(Kt.TUIRoomEvents.onUserScreenCaptureStopped,_)})),{__sfc:!0,roomEngine:t,logPrefix:o,roomStore:n,isAnchor:s,isAudience:a,hasOtherScreenShare:r,t:i,btnStopRef:l,isSharing:c,showStopShareRegion:u,dialogVisible:m,screenShareDisabled:d,title:p,iconName:f,toggleScreenShare:v,openStopConfirmDialog:h,cancelStop:g,stopScreenShare:C,screenCaptureStopped:_,Dialog:Io.Z,IconButton:En.Z,SvgIcon:io.Z,ICON_NAME:Fn.Z}}}),Fa=$a,za=(0,uo.Z)(Fa,Va,Ba,!1,null,"5d38a258",null),Ha=za.exports,Ja=function(){var e=this,t=e._self._c,o=e._self._setupProxy;return t("div",{staticClass:"fullscreen-control-container"},[t(o.IconButton,{attrs:{"is-active":o.isFullScreen,title:o.title,"icon-name":o.iconName},on:{"click-icon":o.toggleScreen}})],1)},Qa=[],Wa=o(7175),Ga=(0,Ft.defineComponent)({__name:"FullScreenControl",setup(e){const{t:t}=(0,to.Q)(),o=(0,Ft.ref)(!1),n=(0,Ft.computed)((()=>o.value?t("Exit"):t("Full screen"))),s=(0,Ft.computed)((()=>o.value?Fn.Z.ExitFullScreen:Fn.Z.FullScreen));function a(){if(o.value)(0,$o.Pr)();else if(Wa.P_){const e=document.body;e&&(0,$o.EV)(e)}else{const e=document.getElementById("roomContainer");e&&(0,$o.EV)(e)}}function r(){o.value=!o.value}return(0,Ft.onMounted)((()=>{["fullscreenchange","webkitfullscreenchange","mozfullscreenchange"].forEach((e=>{window.addEventListener(e,r)}))})),(0,Ft.onUnmounted)((()=>{["fullscreenchange","webkitfullscreenchange","mozfullscreenchange"].forEach((e=>{window.removeEventListener(e,r)}))})),{__sfc:!0,t:t,isFullScreen:o,title:n,iconName:s,toggleScreen:a,handleFullScreenChange:r,IconButton:En.Z}}}),Ka=Ga,Ya=(0,uo.Z)(Ka,Ja,Qa,!1,null,"2ebc7fcf",null),Xa=Ya.exports,er=function(){var e=this,t=e._self._c,o=e._self._setupProxy;return t("div",{staticClass:"setting-control-container"},[t(o.IconButton,{attrs:{"is-active":o.showSettingDialog,title:o.t("Settings"),"icon-name":o.iconName},on:{"click-icon":o.handleShowSettingDialog}})],1)},tr=[],or=(0,Ft.defineComponent)({__name:"SettingControl",setup(e){const{t:t}=(0,to.Q)(),o=(0,Xt.o)(),{showSettingDialog:n}=(0,Ht.Jk)(o),s=(0,Ft.computed)((()=>n.value?Fn.Z.SettingActive:Fn.Z.Setting));function a(){o.setShowSettingDialog(!o.showSettingDialog)}return{__sfc:!0,t:t,basicStore:o,showSettingDialog:n,iconName:s,handleShowSettingDialog:a,IconButton:En.Z}}}),nr=or,sr=(0,uo.Z)(nr,er,tr,!1,null,"2c9e5284",null),ar=sr.exports,rr=(0,Ft.defineComponent)({__name:"indexPC",emits:["on-destroy-room","on-exit-room"],setup(e,{emit:t}){const{roomStore:o}=Oa(),n=e=>{t("on-destroy-room",e),an.reportEvent({name:"destroyRoom",ext1:"destroyRoom-success"})},s=e=>{t("on-exit-room",e),an.reportEvent({name:"exitRoom",ext1:"exitRoom-success"})};function a(e){an.reportEvent({name:e,ext1:e}),Ia.emit("experience-communication",e)}return{__sfc:!0,roomStore:o,emit:t,onDestroyRoom:n,onExitRoom:s,handleControlClick:a,AudioControl:Zn,ScreenShareControl:Ha,FullScreenControl:Xa,InviteControl:Ks,VideoControl:Qn,ManageMemberControl:es,ChatControl:is,ApplyControl:As,MoreControl:Ea,EndControl:ko,SettingControl:ar}}}),ir=rr,lr=(0,uo.Z)(ir,qa,Za,!1,null,"fcf4ace8",null),cr=lr.exports;const ur=wo.t?ja:cr;var mr=ur,dr=function(){var e=this,t=e._self._c,o=e._self._setupProxy;return o.showSideBar?t(o.popup,{staticClass:"sidebar-container-mobile",attrs:{title:o.title},scopedSlots:e._u([{key:"sidebarContent",fn:function(){return[t("div",{staticStyle:{height:"100%"}},["chat"===o.sidebarName?t(o.Chat):e._e(),"manage-member"===o.sidebarName?t(o.ManageMember):e._e()],1)]},proxy:!0},{key:"sidebarFooter",fn:function(){return[t("div",["chat"===o.sidebarName?t(o.ChatEditor):e._e()],1)]},proxy:!0}],null,!1,403798847)}):e._e()},pr=[],fr=function(){var e=this,t=e._self._c,o=e._self._setupProxy;return t("div",{class:[o.isMobile?"chat-container-h5":"chat-container"]},[t(o.MessageList),o.isMobile?e._e():t(o.ChatEditor)],1)},vr=[],hr=function(){var e=this,t=e._self._c,o=e._self._setupProxy;return t("div",{class:o.isMobile?"message-list-container-h5":"message-list-container"},[t("div",{staticClass:"message-list"},e._l(o.messageList,(function(n){return t("div",{key:n.ID,ref:"messageAimId",refInFor:!0,class:["message-item",""+("out"===n.flow?"is-me":"")]},[t("div",{staticClass:"message-header",attrs:{title:n.nick||n.from}},[e._v(" "+e._s(n.nick||n.from)+" ")]),t("div",{staticClass:"message-body"},["TIMTextElem"===n.type?t(o.MessageText,{attrs:{data:n.payload.text}}):e._e()],1)])})),0),t("div",{ref:"messageBottomEl",staticClass:"message-bottom"})])},gr=[],Cr=function(){var e=this,t=e._self._c,o=e._self._setupProxy;return t("span",e._l(o.handleTextMessageShowContext(o.props.data),(function(o,n){return t("span",{key:n},["text"===o.name?t("span",{staticClass:"text-box"},[e._v(e._s(o.text))]):"img"===o.name?t("img",{staticClass:"text-img",attrs:{src:o.src}}):e._e()])})),0)},_r=[];const Sr="https://web.sdk.qcloud.com/im/assets/emoji/",Ir={"[NO]":"emoji_0@2x.png","[OK]":"emoji_1@2x.png","[下雨]":"emoji_2@2x.png","[么么哒]":"emoji_3@2x.png","[乒乓]":"emoji_4@2x.png","[便便]":"emoji_5@2x.png","[信封]":"emoji_6@2x.png","[偷笑]":"emoji_7@2x.png","[傲慢]":"emoji_8@2x.png","[再见]":"emoji_9@2x.png","[冷汗]":"emoji_10@2x.png","[凋谢]":"emoji_11@2x.png","[刀]":"emoji_12@2x.png","[删除]":"emoji_13@2x.png","[勾引]":"emoji_14@2x.png","[发呆]":"emoji_15@2x.png","[发抖]":"emoji_16@2x.png","[可怜]":"emoji_17@2x.png","[可爱]":"emoji_18@2x.png","[右哼哼]":"emoji_19@2x.png","[右太极]":"emoji_20@2x.png","[右车头]":"emoji_21@2x.png","[吐]":"emoji_22@2x.png","[吓]":"emoji_23@2x.png","[咒骂]":"emoji_24@2x.png","[咖啡]":"emoji_25@2x.png","[啤酒]":"emoji_26@2x.png","[嘘]":"emoji_27@2x.png","[回头]":"emoji_28@2x.png","[困]":"emoji_29@2x.png","[坏笑]":"emoji_30@2x.png","[多云]":"emoji_31@2x.png","[大兵]":"emoji_32@2x.png","[大哭]":"emoji_33@2x.png","[太阳]":"emoji_34@2x.png","[奋斗]":"emoji_35@2x.png","[奶瓶]":"emoji_36@2x.png","[委屈]":"emoji_37@2x.png","[害羞]":"emoji_38@2x.png","[尴尬]":"emoji_39@2x.png","[左哼哼]":"emoji_40@2x.png","[左太极]":"emoji_41@2x.png","[左车头]":"emoji_42@2x.png","[差劲]":"emoji_43@2x.png","[弱]":"emoji_44@2x.png","[强]":"emoji_45@2x.png","[彩带]":"emoji_46@2x.png","[彩球]":"emoji_47@2x.png","[得意]":"emoji_48@2x.png","[微笑]":"emoji_49@2x.png","[心碎了]":"emoji_50@2x.png","[快哭了]":"emoji_51@2x.png","[怄火]":"emoji_52@2x.png","[怒]":"emoji_53@2x.png","[惊恐]":"emoji_54@2x.png","[惊讶]":"emoji_55@2x.png","[憨笑]":"emoji_56@2x.png","[手枪]":"emoji_57@2x.png","[打哈欠]":"emoji_58@2x.png","[抓狂]":"emoji_59@2x.png","[折磨]":"emoji_60@2x.png","[抠鼻]":"emoji_61@2x.png","[抱抱]":"emoji_62@2x.png","[抱拳]":"emoji_63@2x.png","[拳头]":"emoji_64@2x.png","[挥手]":"emoji_65@2x.png","[握手]":"emoji_66@2x.png","[撇嘴]":"emoji_67@2x.png","[擦汗]":"emoji_68@2x.png","[敲打]":"emoji_69@2x.png","[晕]":"emoji_70@2x.png","[月亮]":"emoji_71@2x.png","[棒棒糖]":"emoji_72@2x.png","[汽车]":"emoji_73@2x.png","[沙发]":"emoji_74@2x.png","[流汗]":"emoji_75@2x.png","[流泪]":"emoji_76@2x.png","[激动]":"emoji_77@2x.png","[灯泡]":"emoji_78@2x.png","[炸弹]":"emoji_79@2x.png","[熊猫]":"emoji_80@2x.png","[爆筋]":"emoji_81@2x.png","[爱你]":"emoji_82@2x.png","[爱心]":"emoji_83@2x.png","[爱情]":"emoji_84@2x.png","[猪头]":"emoji_85@2x.png","[猫咪]":"emoji_86@2x.png","[献吻]":"emoji_87@2x.png","[玫瑰]":"emoji_88@2x.png","[瓢虫]":"emoji_89@2x.png","[疑问]":"emoji_90@2x.png","[白眼]":"emoji_91@2x.png","[皮球]":"emoji_92@2x.png","[睡觉]":"emoji_93@2x.png","[磕头]":"emoji_94@2x.png","[示爱]":"emoji_95@2x.png","[礼品袋]":"emoji_96@2x.png","[礼物]":"emoji_97@2x.png","[篮球]":"emoji_98@2x.png","[米饭]":"emoji_99@2x.png","[糗大了]":"emoji_100@2x.png","[红双喜]":"emoji_101@2x.png","[红灯笼]":"emoji_102@2x.png","[纸巾]":"emoji_103@2x.png","[胜利]":"emoji_104@2x.png","[色]":"emoji_105@2x.png","[药]":"emoji_106@2x.png","[菜刀]":"emoji_107@2x.png","[蛋糕]":"emoji_108@2x.png","[蜡烛]":"emoji_109@2x.png","[街舞]":"emoji_110@2x.png","[衰]":"emoji_111@2x.png","[西瓜]":"emoji_112@2x.png","[调皮]":"emoji_113@2x.png","[象棋]":"emoji_114@2x.png","[跳绳]":"emoji_115@2x.png","[跳跳]":"emoji_116@2x.png","[车厢]":"emoji_117@2x.png","[转圈]":"emoji_118@2x.png","[鄙视]":"emoji_119@2x.png","[酷]":"emoji_120@2x.png","[钞票]":"emoji_121@2x.png","[钻戒]":"emoji_122@2x.png","[闪电]":"emoji_123@2x.png","[闭嘴]":"emoji_124@2x.png","[闹钟]":"emoji_125@2x.png","[阴险]":"emoji_126@2x.png","[难过]":"emoji_127@2x.png","[雨伞]":"emoji_128@2x.png","[青蛙]":"emoji_129@2x.png","[面条]":"emoji_130@2x.png","[鞭炮]":"emoji_131@2x.png","[风车]":"emoji_132@2x.png","[飞吻]":"emoji_133@2x.png","[飞机]":"emoji_134@2x.png","[饥饿]":"emoji_135@2x.png","[香蕉]":"emoji_136@2x.png","[骷髅]":"emoji_137@2x.png","[麦克风]":"emoji_138@2x.png","[麻将]":"emoji_139@2x.png","[鼓掌]":"emoji_140@2x.png","[龇牙]":"emoji_141@2x.png"},yr=["[龇牙]","[调皮]","[流汗]","[偷笑]","[再见]","[敲打]","[擦汗]","[猪头]","[玫瑰]","[流泪]","[大哭]","[嘘]","[酷]","[抓狂]","[委屈]","[便便]","[炸弹]","[菜刀]","[可爱]","[色]","[害羞]","[得意]","[吐]","[微笑]","[怒]","[尴尬]","[惊恐]","[冷汗]","[爱心]","[示爱]","[白眼]","[傲慢]","[难过]","[惊讶]","[疑问]","[困]","[么么哒]","[憨笑]","[爱情]","[衰]","[撇嘴]","[阴险]","[奋斗]","[发呆]","[右哼哼]","[抱抱]","[坏笑]","[飞吻]","[鄙视]","[晕]","[大兵]","[可怜]","[强]","[弱]","[握手]","[胜利]","[抱拳]","[凋谢]","[米饭]","[蛋糕]","[西瓜]","[啤酒]","[瓢虫]","[勾引]","[OK]","[爱你]","[咖啡]","[月亮]","[刀]","[发抖]","[差劲]","[拳头]","[心碎了]","[太阳]","[礼物]","[皮球]","[骷髅]","[挥手]","[闪电]","[饥饿]","[咒骂]","[折磨]","[抠鼻]","[鼓掌]","[糗大了]","[左哼哼]","[打哈欠]","[快哭了]","[吓]","[篮球]","[乒乓]","[NO]","[跳跳]","[怄火]","[转圈]","[磕头]","[回头]","[跳绳]","[激动]","[街舞]","[献吻]","[左太极]","[右太极]","[闭嘴]","[猫咪]","[红双喜]","[鞭炮]","[红灯笼]","[麻将]","[麦克风]","[礼品袋]","[信封]","[象棋]","[彩带]","[蜡烛]","[爆筋]","[棒棒糖]","[奶瓶]","[面条]","[香蕉]","[飞机]","[左车头]","[车厢]","[右车头]","[多云]","[下雨]","[钞票]","[熊猫]","[灯泡]","[风车]","[闹钟]","[雨伞]","[彩球]","[钻戒]","[沙发]","[纸巾]","[手枪]","[青蛙]"];function br(e){const t=[];let o=e,n=-1,s=-1;while(""!==o)switch(n=o.indexOf("["),s=o.indexOf("]"),n){case 0:if(-1===s)t.push({name:"text",text:o}),o="";else{const e=o.slice(0,s+1);Ir[e]?(t.push({name:"img",src:Sr+Ir[e]}),o=o.substring(s+1)):(t.push({name:"text",text:"["}),o=o.slice(1))}break;case-1:t.push({name:"text",text:o}),o="";break;default:t.push({name:"text",text:o.slice(0,n)}),o=o.substring(n);break}return t}var Rr=(0,Ft.defineComponent)({__name:"MessageText",props:["data"],setup(e){const t=e,o=e=>br(e);return{__sfc:!0,props:t,handleTextMessageShowContext:o}}}),Tr=Rr,wr=(0,uo.Z)(Tr,Cr,_r,!1,null,"467c6786",null),Ar=wr.exports;function kr(){const{t:e}=(0,to.Q)(),t=(0,oo.Z)(),o=ns(),n=(0,Xt.o)(),{roomId:s}=(0,Ht.Jk)(n),{messageList:a,isCompleted:r,nextReqMessageId:i}=(0,Ht.Jk)(o),l=(0,Ft.ref)([]),c=(0,Ft.ref)(),u=(0,Ft.ref)(null);let m=!1,d=!1,p=!1;const f=e=>{const t=e.target,o=t.scrollHeight-t.scrollTop-t.clientHeight;d=o>80,p&&(t.scrollTop=0,p=!1),t.scrollTop<40&&m&&v()};async function v(){const e=t.instance?.getTIM(),n=await e.getMessageList({conversationID:`GROUP${s.value}`,nextReqMessageID:i.value}),{nextReqMessageID:r,messageList:l,isCompleted:c}=n.data;a.value.splice(0,0,...l);const u=a.value.filter((e=>"TIMTextElem"===e.type));o.setMessageListInfo(u,c,r)}async function h(){let e=0;const o={currentMessageList:[],isCompleted:!1,nextReqMessageId:""},n=t.instance?.getTIM(),a=async()=>{const t={conversationID:`GROUP${s.value}`};""!==o.nextReqMessageId&&(t.nextReqMessageID=o.nextReqMessageId);const r=await n.getMessageList(t),{messageList:i,isCompleted:l,nextReqMessageID:c}=r.data;o.currentMessageList.splice(0,0,...i),o.isCompleted=!(i.length>0)||l,o.nextReqMessageId=c,o.isCompleted||o.currentMessageList.length>=15||(e+=1,1===e&&await a())};return await a(),o}(0,Ft.watch)(r,(e=>{m=!e}),{immediate:!0,deep:!0}),(0,Ft.watch)(a,(async(e,t)=>{if(await(0,Ft.nextTick)(),d){if(e.length>=1){const o=e[e.length-1],n=t[t.length-1];"out"===o.flow&&o.ID!==n.ID&&u.value&&u.value.scrollIntoView()}}else u.value&&u.value.scrollIntoView()}));const g=e=>{const{message:t}=e;o.updateMessageList({ID:t.messageId,type:"TIMTextElem",payload:{text:t.message},nick:t?.userName||t.userId,from:t.userId,flow:"in",sequence:Math.random()})};return{t:e,roomEngine:t,historyMessageList:l,messageAimId:c,messageBottomEl:u,handleMessageListScroll:f,handleGetHistoryMessageList:v,onReceiveTextMessage:g,messageList:a,isScrollNotAtBottom:d,getMessageList:h}}var Mr=(0,Ft.defineComponent)({__name:"MessageListPC",setup(e){const t=ns(),{messageAimId:o,roomEngine:n,messageBottomEl:s,handleMessageListScroll:a,onReceiveTextMessage:r,messageList:i,getMessageList:l}=kr();return(0,Ft.onMounted)((async()=>{const{currentMessageList:e,isCompleted:n,nextReqMessageId:s}=await l(),r=e.filter((e=>"TIMTextElem"===e.type));t.setMessageListInfo(r,n,s),await(0,Ft.nextTick)((()=>{if(o?.value?.length>0){const e=o?.value[o?.value?.length-1];e.scrollIntoView()}})),window.addEventListener("scroll",a,!0)})),Yt().once("ready",(()=>{n.instance?.on(Kt.TUIRoomEvents.onReceiveTextMessage,r)})),(0,Ft.onUnmounted)((()=>{window.removeEventListener("scroll",a,!0),n.instance?.off(Kt.TUIRoomEvents.onReceiveTextMessage,r)})),{__sfc:!0,chatStore:t,messageAimId:o,roomEngine:n,messageBottomEl:s,handleMessageListScroll:a,onReceiveTextMessage:r,messageList:i,getMessageList:l,MessageText:Ar,isMobile:wo.t}}}),Ur=Mr,xr=(0,uo.Z)(Ur,hr,gr,!1,null,"3ee0bdff",null),Lr=xr.exports,Er=Lr,Or=function(){var e=this,t=e._self._c,o=e._self._setupProxy;return t("div",{class:["chat-editor",o.cannotSendMessage?"disable-editor":""]},[t("div",{staticClass:"input-content"},[t(o.emoji,{staticClass:"chat-emoji",on:{"choose-emoji":o.handleChooseEmoji}}),t("input",{directives:[{name:"model",rawName:"v-model",value:o.sendMsg,expression:"sendMsg"}],ref:"editorInputEle",staticClass:"content-bottom-input",attrs:{type:"text",disabled:o.cannotSendMessage,placeholder:o.cannotSendMessage?o.t("Muted by the moderator"):o.t("Type a message"),enterkeyhint:"send"},domProps:{value:o.sendMsg},on:{keyup:function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"enter",13,t.key,"Enter")?null:o.sendMessage.apply(null,arguments)},input:function(e){e.target.composing||(o.sendMsg=e.target.value)}}})],1)])},Dr=[],Nr=function(){var e=this,t=e._self._c,o=e._self._setupProxy;return t("div",{staticClass:"emoji-tool"},[t(o.SvgIcon,{staticClass:"arrow emoji-icon",attrs:{"icon-name":"emoji-h5",size:"medium"},on:{click:o.togglePopover}}),o.visible?t("div",{ref:"emojiListRef",class:o.isMobile?"emoji-list-h5":"emoji-list",attrs:{id:"emoji-list"}},e._l(o.emojiList,(function(e,n){return t("div",{key:n,staticClass:"emoji-item",on:{click:function(t){return o.chooseEmoji(e)}}},[t("img",{attrs:{src:o.emojiUrl+o.emojiMap[e]}})])})),0):e._e()],1)},Pr=[],jr=(0,Ft.defineComponent)({__name:"emojiPC",emits:["choose-emoji"],setup(e,{emit:t}){const o=(0,Ft.ref)(),n=(0,Ft.ref)(!1),s=e=>{const o=e;r(),t("choose-emoji",o)},a=()=>{n.value=!n.value},r=()=>{n.value=!1};function i(e){n.value&&!o.value.contains(e.target)&&(n.value=!1)}return(0,Ft.onMounted)((()=>{document.addEventListener("click",i,!0)})),(0,Ft.onUnmounted)((()=>{document.removeEventListener("click",i,!0)})),{__sfc:!0,emojiListRef:o,visible:n,emit:t,chooseEmoji:s,togglePopover:a,closePopover:r,handleDocumentClick:i,emojiUrl:Sr,emojiMap:Ir,emojiList:yr,SvgIcon:io.Z,isMobile:wo.t}}}),qr=jr,Zr=(0,uo.Z)(qr,Nr,Pr,!1,null,"78a2609f",null),Vr=Zr.exports,Br=Vr;function $r(){const e=(0,oo.Z)(),{t:t}=(0,to.Q)(),o=ns(),n=(0,eo.A)(),{isMessageDisableByAdmin:s}=(0,Ht.Jk)(o),{isMessageDisableForAllUser:a}=(0,Ht.Jk)(n),r=(0,Ft.ref)(),i=(0,Ft.ref)(""),l=(0,Ft.ref)(!1);(0,Ft.watch)(s,(e=>{e&&(i.value="")})),(0,Ft.watch)(a,(e=>{e&&(i.value="")}));const c=(0,Ft.computed)((()=>Boolean(s.value||a.value))),u=async()=>{const s=i.value.replace("\n","");if(i.value="",""!==s){l.value=!1;try{await(e.instance?.sendTextMessage({messageText:s})),o.updateMessageList({ID:Math.random().toString(),type:"TIMTextElem",payload:{text:s},nick:n.localUser.userName||n.localUser.userId,from:n.localUser.userId,flow:"out",sequence:Math.random()})}catch(a){zt.z.error(t("Failed to send the message"))}}},m=e=>{i.value+=e,r.value.focus()},d=()=>{l.value=!l.value};return{t:t,editorInputEle:r,sendMsg:i,isMessageDisableByAdmin:s,cannotSendMessage:c,sendMessage:u,handleChooseEmoji:m,isEmojiToolbarVisible:l,togglePopover:d}}var Fr=(0,Ft.defineComponent)({__name:"ChatEditorH5",setup(e){const{t:t,editorInputEle:o,sendMsg:n,cannotSendMessage:s,sendMessage:a,handleChooseEmoji:r}=$r();return{__sfc:!0,t:t,editorInputEle:o,sendMsg:n,cannotSendMessage:s,sendMessage:a,handleChooseEmoji:r,emoji:Br}}}),zr=Fr,Hr=(0,uo.Z)(zr,Or,Dr,!1,null,"4ae1f1c7",null),Jr=Hr.exports,Qr=function(){var e=this,t=e._self._c,o=e._self._setupProxy;return t("div",{class:["chat-editor",o.cannotSendMessage?"disable-editor":""]},[t("textarea",{directives:[{name:"model",rawName:"v-model",value:o.sendMsg,expression:"sendMsg"}],ref:"editorInputEle",staticClass:"content-bottom-input",attrs:{disabled:o.cannotSendMessage,placeholder:o.cannotSendMessage?o.t("Muted by the moderator"):o.t("Type a message")},domProps:{value:o.sendMsg},on:{keyup:function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"enter",13,t.key,"Enter")?null:o.sendMessage.apply(null,arguments)},input:function(e){e.target.composing||(o.sendMsg=e.target.value)}}}),e._v(" "),o.cannotSendMessage?e._e():t("div",{staticClass:"chat-editor-toolbar"},[t("div",{staticClass:"left-section"},[t(o.emoji,{on:{"choose-emoji":o.handleChooseEmoji}})],1),t("div",{class:["send-btn",""+(o.sendMsg.length>0?"active":"")],on:{click:o.sendMessage}},[e._v(e._s(o.t("Send")))])])])},Wr=[],Gr=(0,Ft.defineComponent)({__name:"ChatEditorPC",setup(e){const{t:t,editorInputEle:o,sendMsg:n,cannotSendMessage:s,sendMessage:a,handleChooseEmoji:r}=$r();return{__sfc:!0,t:t,editorInputEle:o,sendMsg:n,cannotSendMessage:s,sendMessage:a,handleChooseEmoji:r,emoji:Br}}}),Kr=Gr,Yr=(0,uo.Z)(Kr,Qr,Wr,!1,null,"6cdfd1ed",null),Xr=Yr.exports;const ei=wo.t?Jr:Xr;var ti=ei,oi=(0,Ft.defineComponent)({__name:"index",setup(e){return{__sfc:!0,MessageList:Er,ChatEditor:ti,isMobile:wo.t}}}),ni=oi,si=(0,uo.Z)(ni,fr,vr,!1,null,"6588445b",null),ai=si.exports,ri=function(){var e=this,t=e._self._c,o=e._self._setupProxy;return t("div",{staticClass:"manage-member-container"},[o.applyToAnchorList.length>0?t("div",{staticClass:"apply-on-stage-info"},[t("div",{staticClass:"apply-info"},[e._v(" "+e._s(`${o.applyToAnchorList[0].userName||o.applyToAnchorList[0].userId} ${o.t("Applying for the stage")}`)+" ")])]):e._e(),t("div",{staticClass:"member-list-container"},[t("div",{staticClass:"member-list-header"},[e._v(" "+e._s(o.t("Member List"))+" "),t("span",{staticClass:"member-count"},[e._v("("+e._s(o.userNumber)+e._s(o.t("members"))+")")])]),t("div",{staticClass:"member-list-content"},e._l(o.userList,(function(e){return t(o.MemberItem,{key:e.userId,attrs:{"user-info":e}})})),1)]),t("div",{staticClass:"manage-member-bottom"},[t("div",{staticClass:"manage-member-button",class:o.isMicrophoneDisableForAllUser?"lift-all":"",on:{touchstart:function(e){return o.toggleManageMember(o.ManageControlType.AUDIO)}}},[e._v(" "+e._s(o.audioManageInfo)+" ")]),t("div",{staticClass:"manage-member-button",class:o.isCameraDisableForAllUser?"lift-all":"",on:{touchstart:function(e){return o.toggleManageMember(o.ManageControlType.VIDEO)}}},[e._v(" "+e._s(o.videoManageInfo)+" ")])]),t(o.Dialog,{staticClass:"custom-element-class",attrs:{"model-value":o.showManageAllUserDialog,modal:!1,"show-close":!1,"append-to-body":!0,"close-on-click-modal":!1,"close-on-press-escape":!1,width:"500px"},scopedSlots:e._u([{key:"footer",fn:function(){return[t("div",{staticClass:"button-container-mobile"},[t("span",{staticClass:"cancel",on:{click:function(e){o.showManageAllUserDialog=!1}}},[e._v(e._s(o.t("Cancel")))]),t("span",{staticClass:"agree",on:{click:o.doToggleManageMember}},[e._v(e._s(o.dialogActionInfo))])])]},proxy:!0}])},[t("span",[e._v(" "+e._s(o.dialogTitleInfo)+" ")])])],1)},ii=[],li=function(){var e=this,t=e._self._c,o=e._self._setupProxy;return t("div",{directives:[{name:"tap",rawName:"v-tap",value:o.handleMemberItemClick,expression:"handleMemberItemClick"}],ref:e=>o.setMemberItemRef(e),staticClass:"member-item-container"},[t(o.MemberInfo,{ref:e=>o.setMemberInfoRef(e),attrs:{"show-state-icon":!0,"user-info":e.userInfo}}),o.showMemberControl?t(o.MemberControl,{ref:e=>o.setMemberControlRef(e),attrs:{"user-info":e.userInfo},on:{"on-close-control":o.handleCloseControl}}):e._e()],1)},ci=[],ui=function(){var e=this,t=e._self._c,o=e._self._setupProxy;return t("div",{class:[o.isMobile?"member-info-mobile":"member-info"]},[t("div",{staticClass:"member-basic-info"},[t(o.Avatar,{staticClass:"avatar-url",attrs:{"img-src":e.userInfo.avatarUrl}}),t("div",{staticClass:"user-name"},[e._v(e._s(e.userInfo.userName||e.userInfo.userId))]),o.isMaster&&o.isMe?t("div",{staticClass:"user-extra-info"},[e._v(" "+e._s(o.t("Host"))+", "+e._s(o.t("Me"))+" ")]):o.isMe?t("div",{staticClass:"user-extra-info"},[e._v(" "+e._s(o.t("Me"))+" ")]):o.basicStore.masterUserId===e.userInfo.userId?t("div",{staticClass:"user-extra-info"},[e._v(" "+e._s(o.t("Host"))+" ")]):e._e()],1),!o.isMe&&e.showStateIcon?t("div",{staticClass:"member-av-state"},[e.userInfo.onSeat?t("div",[t(o.SvgIcon,{staticClass:"setting-icon",attrs:{"icon-name":e.userInfo.hasAudioStream?o.ICON_NAME.MicOn:o.ICON_NAME.MicOff,size:"large"}}),t(o.SvgIcon,{staticClass:"setting-icon video-icon",attrs:{"icon-name":e.userInfo.hasVideoStream?o.ICON_NAME.CameraOn:o.ICON_NAME.CameraOff,size:"large"}})],1):e._e(),e.userInfo.onSeat||e.userInfo.isUserApplyingToAnchor?e._e():t("div",[t(o.SvgIcon,{staticClass:"setting-icon",attrs:{"icon-name":o.ICON_NAME.MicOffDisabled,size:"large"}}),t(o.SvgIcon,{staticClass:"setting-icon video-icon",attrs:{"icon-name":o.ICON_NAME.CameraOffDisabled,size:"large"}})],1),!e.userInfo.onSeat&&e.userInfo.isUserApplyingToAnchor?t("div",[t(o.SvgIcon,{attrs:{"icon-name":"apply-active"}})],1):e._e()]):e._e()])},mi=[],di=(0,Ft.defineComponent)({__name:"MemberInfo",props:{userInfo:null,showStateIcon:null},setup(e){const t=e,{t:o}=(0,to.Q)(),n=(0,Xt.o)(),s=(0,eo.A)(),{isMaster:a}=(0,Ht.Jk)(s),r=(0,Ft.computed)((()=>n.userId===t.userInfo.userId));return{__sfc:!0,t:o,props:t,basicStore:n,roomStore:s,isMaster:a,isMe:r,Avatar:fo.Z,ICON_NAME:Fn.Z,SvgIcon:io.Z,isMobile:wo.t}}}),pi=di,fi=(0,uo.Z)(pi,ui,mi,!1,null,"0325ed23",null),vi=fi.exports,hi=function(){var e=this,t=e._self._c,o=e._self._setupProxy;return o.isMe?e._e():t("div",{staticClass:"member-control-container"},[t("div",{staticClass:"member-title"},[t("img",{staticClass:"avatar-url",attrs:{src:e.userInfo.avatarUrl||o.defaultAvatar}}),t("div",{staticClass:"member-title-content"},[e._v(e._s(e.userInfo.userName||e.userInfo.userId))]),o.isWeChat?t("span",{directives:[{name:"tap",rawName:"v-tap.stop",value:o.handleCloseControl,expression:"handleCloseControl",modifiers:{stop:!0}}],staticClass:"cancel"},[e._v(e._s(o.t("Cancel")))]):e._e()]),e._l(o.controlList,(function(n,s){return t("div",{directives:[{name:"tap",rawName:"v-tap",value:()=>n.func(e.userInfo),expression:"() => item.func(userInfo)"}],key:s,staticClass:"user-operate-item"},[t(o.SvgIcon,{staticClass:"icon-svg",attrs:{"icon-name":n.iconName}}),t("div",{staticClass:"control-title"},[e._v(e._s(n.title))])],1)}))],2)},gi=[],Ci=o(7717),_i=(0,Ft.defineComponent)({__name:"MemberControlH5",props:{userInfo:null},emits:["on-close-control"],setup(e,{emit:t}){const o=e,n=(0,oo.Z)(),{t:s}=(0,to.Q)(),a=(0,Xt.o)(),r=(0,eo.A)(),{agreeUserOnStage:i,denyUserOnStage:l,inviteUserOnStage:c,cancelInviteUserOnStage:u,kickUserOffStage:m}=ps(),d=(0,Ft.computed)((()=>a.userId===o.userInfo.userId)),p=(0,Ft.computed)((()=>!0===o.userInfo.onSeat)),f=(0,Ft.computed)((()=>!0!==o.userInfo.onSeat)),v=(0,Ft.computed)((()=>r.isFreeSpeakMode)),h=(0,Ft.computed)((()=>r.isSpeakAfterTakingSeatMode)),g=(0,Ft.computed)((()=>p.value?s("Step down"):o.userInfo.isInvitingUserToAnchor?s("Cancel stage"):s("Invite stage")));async function C(e){const{isInvitingUserToAnchor:t}=e;t?u(e):c(e)}const _=(0,Ft.computed)((()=>({iconName:"apply",title:g.value,func:C}))),S=(0,Ft.computed)((()=>({iconName:"apply",title:s("Step down"),func:m}))),I=(0,Ft.computed)((()=>({iconName:"apply",title:s("Agree to the stage"),func:i}))),y=(0,Ft.computed)((()=>({iconName:"apply",title:s("Refuse stage"),func:l}))),b=(0,Ft.computed)((()=>o.userInfo.hasAudioStream?s("Mute"):o.userInfo.isRequestingUserOpenMic?s("Cancel Unmute"):s("Unmute"))),R=(0,Ft.computed)((()=>({iconName:"mic-on",title:b.value,func:x}))),T=(0,Ft.computed)((()=>o.userInfo.hasVideoStream?s("Disable video"):o.userInfo.isRequestingUserOpenCamera?s("Cancel Enable video"):s("Enable video"))),w=(0,Ft.computed)((()=>({iconName:"camera-on",title:T.value,func:L}))),A=(0,Ft.computed)((()=>o.userInfo.isChatMutedByMaster?s("Enable chat"):s("Disable chat"))),k=(0,Ft.computed)((()=>({iconName:"chat",title:A.value,func:E}))),M=(0,Ft.computed)((()=>({iconName:"invite",title:s("Kick out"),func:O}))),U=(0,Ft.computed)((()=>{const e={freeSpeech:[R.value,w.value,k.value,M.value],applySpeechAndAnchor:[R.value,w.value,S.value,k.value,M.value],applySpeechAndIsApplyingToAnchor:[I.value,y.value,k.value,M.value],applySpeechAndAudience:[_.value,k.value,M.value],default:[k.value,M.value]};return v.value?e.freeSpeech:h.value&&p.value?e.applySpeechAndAnchor:h.value&&f.value&&o.userInfo.isUserApplyingToAnchor?e.applySpeechAndIsApplyingToAnchor:h.value&&f.value&&!o.userInfo.isUserApplyingToAnchor?e.applySpeechAndAudience:e.default}));async function x(e){if(e.hasAudioStream)await(n.instance?.closeRemoteDeviceByAdmin({userId:e.userId,device:Kt.TUIMediaDevice.kMicrophone}));else if(e.isRequestingUserOpenMic){const t=e.requestUserOpenMicRequestId;t&&await(n.instance?.cancelRequest({requestId:t})),r.setRequestUserOpenMic({userId:e.userId,isRequesting:!1})}else{const t=await(n.instance?.openRemoteDeviceByAdmin({userId:e.userId,device:Kt.TUIMediaDevice.kMicrophone,timeout:0,requestCallback:()=>{r.setRequestUserOpenMic({userId:e.userId,isRequesting:!1})}}));t&&t.requestId&&r.setRequestUserOpenMic({userId:e.userId,isRequesting:!0,requestId:t.requestId})}}async function L(e){if(e.hasVideoStream)await(n.instance?.closeRemoteDeviceByAdmin({userId:e.userId,device:Kt.TUIMediaDevice.kCamera}));else if(e.isRequestingUserOpenCamera){const t=e.requestUserOpenCameraRequestId;t&&await(n.instance?.cancelRequest({requestId:t})),r.setRequestUserOpenCamera({userId:e.userId,isRequesting:!1})}else{const t=await(n.instance?.openRemoteDeviceByAdmin({userId:e.userId,device:Kt.TUIMediaDevice.kCamera,timeout:0,requestCallback:()=>{r.setRequestUserOpenCamera({userId:e.userId,isRequesting:!1})}}));t&&t.requestId&&r.setRequestUserOpenCamera({userId:e.userId,isRequesting:!0,requestId:t.requestId})}}function E(e){const t=e.isChatMutedByMaster;r.setMuteUserChat(e.userId,!t),n.instance?.disableSendingMessageByAdmin({userId:e.userId,isDisable:!t})}function O(e){n.instance?.kickRemoteUserOutOfRoom({userId:e.userId})}function D(){t("on-close-control")}return{__sfc:!0,roomEngine:n,t:s,basicStore:a,roomStore:r,agreeUserOnStage:i,denyUserOnStage:l,inviteUserOnStage:c,cancelInviteUserOnStage:u,kickUserOffStage:m,emit:t,props:o,isMe:d,isAnchor:p,isAudience:f,isFreeSpeechMode:v,isSpeakAfterTakingSeat:h,requestStageTitle:g,toggleInviteUserOnStage:C,toggleInviteStage:_,makeOffStage:S,agreeOnStage:I,denyOnStage:y,audioControlTitle:b,audioControl:R,videoControlTitle:T,videoControl:w,chatControlTitle:A,forbidChat:k,kickUser:M,controlList:U,muteUserAudio:x,muteUserVideo:L,disableUserChat:E,kickOffUser:O,handleCloseControl:D,defaultAvatar:Ci,SvgIcon:io.Z,isWeChat:wo.e}}}),Si=_i,Ii=(0,uo.Z)(Si,hi,gi,!1,null,"d259161c",null),yi=Ii.exports,bi=function(){var e=this,t=e._self._c,o=e._self._setupProxy;return o.isMe?e._e():t("div",{staticClass:"member-control-container"},[t("div",{staticClass:"mute-btn",on:{click:function(t){return o.singleControl.func(e.userInfo)}}},[e._v(" "+e._s(o.singleControl.title)+" ")]),t("div",{staticClass:"more-container",on:{click:o.handlePopUp}},[t("div",{staticClass:"more-btn",on:{click:o.toggleClickMoreBtn}},[e._v(" "+e._s(o.t("More"))+" "),t(o.SvgIcon,{staticClass:"more-icon",attrs:{"icon-name":o.ICON_NAME.ArrowBorderDown}})],1),t("div",{directives:[{name:"show",rawName:"v-show",value:o.showMoreControl,expression:"showMoreControl"}],class:o.dropdownClass,attrs:{id:"operate-list"},on:{mouseleave:o.handleMouseLeave}},e._l(o.controlList,(function(o,n){return t("div",{key:n,staticClass:"user-operate-item",on:{click:function(t){return o.func(e.userInfo)}}},[e._v(" "+e._s(o.title)+" ")])})),0)])])},Ri=[],Ti=(0,Ft.defineComponent)({__name:"MemberControlPC",props:{userInfo:null},setup(e){const t=e,o=(0,oo.Z)(),{t:n}=(0,to.Q)(),s=(0,Xt.o)(),a=(0,eo.A)(),r=(0,Ft.ref)(""),{agreeUserOnStage:i,denyUserOnStage:l,inviteUserOnStage:c,cancelInviteUserOnStage:u,kickUserOffStage:m}=ps(),d=(0,Ft.ref)(!1),p=(0,Ft.computed)((()=>s.userId===t.userInfo.userId)),f=(0,Ft.computed)((()=>!0===t.userInfo.onSeat)),v=(0,Ft.computed)((()=>!0!==t.userInfo.onSeat)),h=(0,Ft.computed)((()=>a.isFreeSpeakMode)),g=(0,Ft.computed)((()=>a.isSpeakAfterTakingSeatMode));function C(){const e=document.getElementById("operate-list"),t=document.getElementById("roomContainer"),o=null!==e&&e.getBoundingClientRect().bottom,n=null!==t&&t.offsetHeight;r.value=o>n?"user-operate-list dropdownUp":"user-operate-list"}const _=(0,Ft.computed)((()=>{const e={title:"",func:e=>{}};return h.value?(e.title=t.userInfo.hasAudioStream?n("Mute"):t.userInfo.isRequestingUserOpenMic?n("Cancel Unmute"):n("Unmute"),e.func=x):g.value&&(f.value?(e.title=t.userInfo.hasAudioStream?n("Mute"):t.userInfo.isRequestingUserOpenMic?n("Cancel Unmute"):n("Unmute"),e.func=x):v.value&&(t.userInfo.isUserApplyingToAnchor?(e.title=n("Agree to the stage"),e.func=i):(e.title=t.userInfo.isInvitingUserToAnchor?n("Cancel stage"):n("Invite stage"),e.func=U))),e})),S=(0,Ft.computed)((()=>({title:n("Refuse stage"),func:l}))),I=(0,Ft.computed)((()=>({title:n("Step down"),func:m}))),y=(0,Ft.computed)((()=>t.userInfo.hasVideoStream?n("Disable video"):t.userInfo.isRequestingUserOpenCamera?n("Cancel Enable video"):n("Enable video"))),b=(0,Ft.computed)((()=>({title:y.value,func:L}))),R=(0,Ft.computed)((()=>t.userInfo.isChatMutedByMaster?n("Enable chat"):n("Disable chat"))),T=(0,Ft.computed)((()=>({title:R.value,func:E}))),w=(0,Ft.computed)((()=>({title:n("Kick out"),func:O}))),A=(0,Ft.computed)((()=>{const e=[T.value,w.value];return h.value&&e.unshift(b.value),f.value&&g.value&&(e.unshift(b.value),e.splice(1,0,I.value)),v.value&&t.userInfo.isUserApplyingToAnchor&&e.splice(0,0,S.value),e}));function k(){d.value=!d.value}function M(){d.value=!1}async function U(e){const{isInvitingUserToAnchor:t}=e;t?u(e):c(e)}async function x(e){if(e.hasAudioStream)await(o.instance?.closeRemoteDeviceByAdmin({userId:e.userId,device:Kt.TUIMediaDevice.kMicrophone}));else if(e.isRequestingUserOpenMic){const t=e.requestUserOpenMicRequestId;t&&await(o.instance?.cancelRequest({requestId:t})),a.setRequestUserOpenMic({userId:e.userId,isRequesting:!1})}else{const t=await(o.instance?.openRemoteDeviceByAdmin({userId:e.userId,device:Kt.TUIMediaDevice.kMicrophone,timeout:0,requestCallback:()=>{a.setRequestUserOpenMic({userId:e.userId,isRequesting:!1})}}));t&&t.requestId&&a.setRequestUserOpenMic({userId:e.userId,isRequesting:!0,requestId:t.requestId})}}async function L(e){if(e.hasVideoStream)await(o.instance?.closeRemoteDeviceByAdmin({userId:e.userId,device:Kt.TUIMediaDevice.kCamera}));else if(e.isRequestingUserOpenCamera){const t=e.requestUserOpenCameraRequestId;t&&await(o.instance?.cancelRequest({requestId:t})),a.setRequestUserOpenCamera({userId:e.userId,isRequesting:!1})}else{const t=await(o.instance?.openRemoteDeviceByAdmin({userId:e.userId,device:Kt.TUIMediaDevice.kCamera,timeout:0,requestCallback:()=>{a.setRequestUserOpenCamera({userId:e.userId,isRequesting:!1})}}));t&&t.requestId&&a.setRequestUserOpenCamera({userId:e.userId,isRequesting:!0,requestId:t.requestId})}}function E(e){const t=e.isChatMutedByMaster;a.setMuteUserChat(e.userId,!t),o.instance?.disableSendingMessageByAdmin({userId:e.userId,isDisable:!t})}function O(e){o.instance?.kickRemoteUserOutOfRoom({userId:e.userId})}return{__sfc:!0,roomEngine:o,t:n,basicStore:s,roomStore:a,dropdownClass:r,agreeUserOnStage:i,denyUserOnStage:l,inviteUserOnStage:c,cancelInviteUserOnStage:u,kickUserOffStage:m,props:t,showMoreControl:d,isMe:p,isAnchor:f,isAudience:v,isFreeSpeechMode:h,isSpeakAfterTakingSeat:g,handlePopUp:C,singleControl:_,denyOnStage:S,makeOffStage:I,videoControlTitle:y,videoControl:b,chatControlTitle:R,forbidChat:T,kickUser:w,controlList:A,toggleClickMoreBtn:k,handleMouseLeave:M,toggleInviteUserOnStage:U,muteUserAudio:x,muteUserVideo:L,disableUserChat:E,kickOffUser:O,ICON_NAME:Fn.Z,SvgIcon:io.Z}}}),wi=Ti,Ai=(0,uo.Z)(wi,bi,Ri,!1,null,"28dfca21",null),ki=Ai.exports;const Mi=wo.t?yi:ki;var Ui=Mi;function xi(){const e=(0,Ft.ref)(!1);function t(){e.value=!0}function o(){e.value=!1}const n=(0,Ft.ref)();function s(e){n.value=e}const a=(0,Ft.ref)(),r=(0,Ft.ref)();function i(e){a.value=e}function l(e){r.value=e}function c(){e.value||(e.value=!0)}async function u(){await(0,Ft.nextTick)(),e.value=!1}function m(t){e.value&&n.value&&!n.value.contains(t.target)&&(e.value=!1)}return{showMemberControl:e,handleMouseEnter:t,handleMouseLeave:o,setMemberItemRef:s,setMemberInfoRef:i,setMemberControlRef:l,handleMemberItemClick:c,handleDocumentClick:m,handleCloseControl:u}}var Li=(0,Ft.defineComponent)({__name:"indexH5",props:{userInfo:null},setup(e){const{showMemberControl:t,setMemberItemRef:o,setMemberInfoRef:n,setMemberControlRef:s,handleMemberItemClick:a,handleDocumentClick:r,handleCloseControl:i}=xi();return(0,Ft.onMounted)((()=>{document.addEventListener("click",r,!0)})),(0,Ft.onUnmounted)((()=>{document.removeEventListener("click",r,!0)})),{__sfc:!0,showMemberControl:t,setMemberItemRef:o,setMemberInfoRef:n,setMemberControlRef:s,handleMemberItemClick:a,handleDocumentClick:r,handleCloseControl:i,MemberInfo:vi,MemberControl:Ui}}}),Ei=Li,Oi=(0,uo.Z)(Ei,li,ci,!1,null,"51bdd126",null),Di=Oi.exports,Ni=function(){var e=this,t=e._self._c,o=e._self._setupProxy;return t("div",{staticClass:"member-item-container",on:{mouseenter:o.handleMouseEnter,mouseleave:o.handleMouseLeave}},[t(o.MemberInfo,{attrs:{"user-info":e.userInfo,"show-state-icon":!o.showMemberControl}}),t(o.MemberControl,{directives:[{name:"show",rawName:"v-show",value:o.showMemberControl,expression:"showMemberControl"}],attrs:{"user-info":e.userInfo}})],1)},Pi=[],ji=(0,Ft.defineComponent)({__name:"indexPC",props:{userInfo:null},setup(e){const{showMemberControl:t,handleMouseEnter:o,handleMouseLeave:n}=xi();return{__sfc:!0,showMemberControl:t,handleMouseEnter:o,handleMouseLeave:n,MemberInfo:vi,MemberControl:Ui}}}),qi=ji,Zi=(0,uo.Z)(qi,Ni,Pi,!1,null,"2d674c35",null),Vi=Zi.exports;const Bi=wo.t?Di:Vi;var $i=Bi;function Fi(){const e=(0,oo.Z)(),{t:t}=(0,to.Q)(),o=(0,Xt.o)(),n=(0,eo.A)(),{isMicrophoneDisableForAllUser:s,isCameraDisableForAllUser:a}=(0,Ht.Jk)(n),r=(0,Ft.computed)((()=>n.isMicrophoneDisableForAllUser?t("Lift all mute"):t("All mute"))),i=(0,Ft.computed)((()=>n.isCameraDisableForAllUser?t("Lift stop all video"):t("All stop video"))),l=(0,Ft.ref)(!1),c=(0,Ft.ref)(""),u=(0,Ft.ref)("");let m;(function(e){e["AUDIO"]="audio",e["VIDEO"]="video",e["Message"]="message"})(m||(m={}));const d=(0,Ft.ref)(m.AUDIO);async function p(e){switch(l.value=!0,d.value=e,e){case m.AUDIO:c.value=n.isMicrophoneDisableForAllUser?t("Can you lift all mute"):t("All current and new members will be muted."),await(0,Ft.nextTick)(),u.value=r.value;break;case m.VIDEO:c.value=n.isCameraDisableForAllUser?t("Should we turn on the video for everyone"):t("All current and new members will turn off their videos."),await(0,Ft.nextTick)(),u.value=i.value;break;default:break}}async function f(){switch(d.value){case m.AUDIO:h();break;case m.VIDEO:g();break;default:break}l.value=!1}function v(){o.setShowApplyUserList(!0)}async function h(){const t=!s.value;await(e.instance?.disableDeviceForAllUserByAdmin({isDisable:t,device:Kt.TUIMediaDevice.kMicrophone})),n.setMicrophoneDisableState(t)}async function g(){const t=!a.value;await(e.instance?.disableDeviceForAllUserByAdmin({isDisable:t,device:Kt.TUIMediaDevice.kCamera})),n.setCameraDisableState(t)}return{showApplyUserLit:v,toggleAllAudio:h,toggleAllVideo:g,t:t,toggleManageMember:p,doToggleManageMember:f,audioManageInfo:r,videoManageInfo:i,showManageAllUserDialog:l,dialogTitleInfo:c,dialogActionInfo:u,ManageControlType:m}}var zi=(0,Ft.defineComponent)({__name:"indexH5",setup(e){const t=(0,eo.A)(),{userList:o,userNumber:n,applyToAnchorList:s,isMicrophoneDisableForAllUser:a,isCameraDisableForAllUser:r}=(0,Ht.Jk)(t),{audioManageInfo:i,videoManageInfo:l,showManageAllUserDialog:c,dialogTitleInfo:u,dialogActionInfo:m,ManageControlType:d,toggleManageMember:p,doToggleManageMember:f,t:v}=Fi();return{__sfc:!0,roomStore:t,userList:o,userNumber:n,applyToAnchorList:s,isMicrophoneDisableForAllUser:a,isCameraDisableForAllUser:r,audioManageInfo:i,videoManageInfo:l,showManageAllUserDialog:c,dialogTitleInfo:u,dialogActionInfo:m,ManageControlType:d,toggleManageMember:p,doToggleManageMember:f,t:v,MemberItem:$i,Dialog:Io.Z}}}),Hi=zi,Ji=(0,uo.Z)(Hi,ri,ii,!1,null,"746e3a0c",null),Qi=Ji.exports,Wi=function(){var e=this,t=e._self._c,o=e._self._setupProxy;return t("div",{staticClass:"manage-member-container"},[o.applyToAnchorList.length>0?t("div",{staticClass:"apply-on-stage-info"},[t("div",{staticClass:"apply-info"},[e._v(" "+e._s(`${o.applyToAnchorList[0].userName||o.applyToAnchorList[0].userId} ${o.t("Applying for the stage")}`)+" ")]),t("div",{staticClass:"button",on:{click:o.showApplyUserLit}},[e._v(e._s(o.t("Check")))])]):e._e(),t("div",{staticClass:"global-setting"},[t("div",{staticClass:"setting-item"},[t("div",{staticClass:"item-left-section"},[t(o.SvgIcon,{staticClass:"setting-icon",attrs:{"icon-name":o.ICON_NAME.MicOn,size:"large"}}),t("span",{staticClass:"setting-name"},[e._v(e._s(o.t("Disable all audios")))])],1),t("div",{staticClass:"item-right-section"},[t("el-switch",{attrs:{value:o.isMicrophoneDisableForAllUser},on:{change:o.toggleAllAudio}})],1)]),t("div",{staticClass:"setting-item"},[t("div",{staticClass:"item-left-section"},[t(o.SvgIcon,{staticClass:"setting-icon",attrs:{"icon-name":o.ICON_NAME.CameraOn,size:"large"}}),t("span",{staticClass:"setting-name"},[e._v(e._s(o.t("Disable all videos")))])],1),t("div",{staticClass:"item-right-section"},[t("el-switch",{attrs:{value:o.isCameraDisableForAllUser},on:{change:o.toggleAllVideo}})],1)])]),t("div",{staticClass:"divide-line"}),t("div",{staticClass:"member-list-container"},[t("div",{staticClass:"member-list-header"},[e._v(" "+e._s(o.t("Member List"))+" "),t("span",{staticClass:"member-count"},[e._v("("+e._s(o.userNumber)+e._s(o.t("members"))+")")])]),t("div",{staticClass:"member-list-content"},e._l(o.userList,(function(e){return t(o.MemberItem,{key:e.userId,attrs:{"user-info":e}})})),1)])])},Gi=[],Ki=(0,Ft.defineComponent)({__name:"indexPC",setup(e){const t=(0,eo.A)(),{userList:o,userNumber:n,applyToAnchorList:s,isMicrophoneDisableForAllUser:a,isCameraDisableForAllUser:r}=(0,Ht.Jk)(t),{t:i,showApplyUserLit:l,toggleAllAudio:c,toggleAllVideo:u}=Fi();return{__sfc:!0,roomStore:t,userList:o,userNumber:n,applyToAnchorList:s,isMicrophoneDisableForAllUser:a,isCameraDisableForAllUser:r,t:i,showApplyUserLit:l,toggleAllAudio:c,toggleAllVideo:u,MemberItem:$i,SvgIcon:io.Z,ICON_NAME:Fn.Z}}}),Yi=Ki,Xi=(0,uo.Z)(Yi,Wi,Gi,!1,null,"74166061",null),el=Xi.exports;const tl=wo.t?Qi:el;var ol=tl;function nl(){const e=(0,oo.Z)(),{t:t}=(0,to.Q)(),o=ns(),n=(0,Xt.o)(),{isSidebarOpen:s,sidebarName:a}=(0,Ht.Jk)(n),r=(0,Ft.computed)((()=>s.value&&"transfer-leave"!==a.value)),i=(0,Ft.computed)((()=>{let e="";switch(a.value){case"chat":e="Chat";break;case"invite":e="Invite";break;case"more":e="More";break;case"manage-member":e="Member management";break;default:break}return t(e)}));function l(e){n.setSidebarOpenStatus(!1),n.setSidebarName(""),e()}const c=e=>{no.Z.warn("onReceiveTextMessage:",e),n.isSidebarOpen&&"chat"===n.sidebarName||o.updateUnReadCount(++o.unReadCount)};return Yt().once("ready",(()=>{e.instance?.on(Kt.TUIRoomEvents.onReceiveTextMessage,c)})),(0,Ft.onUnmounted)((()=>{e.instance?.off(Kt.TUIRoomEvents.onReceiveTextMessage,c)})),{t:t,isSidebarOpen:s,title:i,sidebarName:a,handleClose:l,showSideBar:r}}var sl=(0,Ft.defineComponent)({__name:"indexH5",setup(e){const{title:t,sidebarName:o,showSideBar:n}=nl();return{__sfc:!0,title:t,sidebarName:o,showSideBar:n,Chat:ai,ManageMember:ol,popup:po,ChatEditor:ti}}}),al=sl,rl=(0,uo.Z)(al,dr,pr,!1,null,"40f5a35a",null),il=rl.exports,ll=function(){var e=this,t=e._self._c,o=e._self._setupProxy;return t("div",{staticClass:"sidebar-container"},[t(o.Drawer,{attrs:{"model-value":o.isSidebarOpen,modal:!1,title:o.title,direction:"rtl","before-close":o.handleClose,size:480}},["chat"==o.sidebarName?t(o.Chat):e._e(),"invite"==o.sidebarName?t(o.RoomInvite):e._e(),"more"==o.sidebarName?t(o.RoomMore):e._e(),"manage-member"==o.sidebarName?t(o.ManageMember):e._e()],1)],1)},cl=[],ul=o(4679),ml=(0,Ft.defineComponent)({__name:"indexPC",setup(e){const{isSidebarOpen:t,title:o,handleClose:n,sidebarName:s}=nl();return{__sfc:!0,isSidebarOpen:t,title:o,handleClose:n,sidebarName:s,Chat:ai,Drawer:ul.Z,RoomInvite:Js,ManageMember:ol,RoomMore:fa}}}),dl=ml,pl=(0,uo.Z)(dl,ll,cl,!1,null,null,null),fl=pl.exports;const vl=wo.t?il:fl;var hl=vl,gl=function(){var e=this,t=e._self._c,o=e._self._setupProxy;return t("div",{staticClass:"content-container"},[t(o.StreamContainer,{attrs:{"show-room-tool":e.showRoomTool}})],1)},Cl=[],_l=function(){var e=this,t=e._self._c,o=e._self._setupProxy;return t("div",{ref:"streamContainerRef",staticClass:"stream-container",on:{touchstart:o.handleTouchStart,touchend:o.handleTouchEnd}},[t("div",{class:o.streamContainerClass},[t("div",{directives:[{name:"show",rawName:"v-show",value:o.layout===o.LAYOUT.LARGE_SMALL_WINDOW,expression:"layout === LAYOUT.LARGE_SMALL_WINDOW"}],ref:"enlargedContainerRef",staticClass:"enlarged-stream-container"},[o.enlargeStream?t(o.StreamRegion,{attrs:{stream:o.enlargeStream}}):e._e()],1),t("div",{staticClass:"stream-list-container",class:[o.onlyVideoStreamList.length>1?"multi-stream-container":"single-stream-container"]},[t("div",{ref:"streamListRef",class:["stream-list",""+(o.isFirstPageInSixPointLayout?"":"not-first-page")]},e._l(o.onlyVideoStreamList,(function(n){return t(o.StreamRegion,{directives:[{name:"show",rawName:"v-show",value:o.showStreamList.indexOf(n)>-1,expression:"showStreamList.indexOf(stream) > -1"}],key:`${n.userId}_${n.streamType}`,class:[o.onlyVideoStreamList.length>1?"multi-stream":"single-stream"],attrs:{stream:n,"enlarge-dom-id":o.enlargeDomId,"show-room-tool":e.showRoomTool}})})),1)])]),o.totalPageNumber>1?t("div",{staticClass:"swipe"},e._l(o.totalPageNumber,(function(e,n){return t("div",{key:e,staticClass:"swipe-dots",class:[o.isActiveDot(n)?"swipe-current-dots":""]})})),0):e._e()])},Sl=[],Il=function(){var e=this,t=e._self._c,o=e._self._setupProxy;return o.playRegionDomId!==e.enlargeDomId?t("div",{ref:"streamRegionRef",staticClass:"user-stream-container",class:[o.showVoiceBorder?"border":""]},[t("div",{staticClass:"stream-region",attrs:{id:o.playRegionDomId}}),e.stream.hasVideoStream||e.stream.hasScreenStream?e._e():t("div",{staticClass:"center-user-info-container"},[t("img",{staticClass:"avatar-region",attrs:{src:e.stream.avatarUrl||o.defaultAvatar}})]),t("div",{staticClass:"corner-user-info-container"},[o.showMasterIcon?t(o.SvgIcon,{staticClass:"master-icon",attrs:{size:"custom","icon-name":"user"}}):e._e(),o.isScreenStream?e._e():t(o.AudioIcon,{staticClass:"audio-icon",attrs:{"audio-volume":e.stream.audioVolume,"is-muted":!e.stream.hasAudioStream,size:"small"}}),o.isScreenStream?t(o.SvgIcon,{staticClass:"screen-icon",attrs:{"icon-name":"screen-share"}}):e._e(),t("span",{staticClass:"user-name",attrs:{title:o.userInfo}},[e._v(e._s(o.userInfo))]),o.isScreenStream?t("span",[e._v(" "+e._s(o.t("is sharing their screen"))+" ")]):e._e()],1)]):e._e()},yl=[],bl=(0,Ft.defineComponent)({__name:"StreamRegionH5",props:{stream:null,enlargeDomId:null},setup(e){const t=e,o=(0,oo.Z)(),n="[StreamRegion]",s=(0,Xt.o)(),a=(0,eo.A)(),{t:r}=(0,to.Q)(),i=(0,Ft.ref)(),l=(0,Ft.computed)((()=>0!==t.stream?.audioVolume&&t.stream?.streamType!==Kt.TUIVideoStreamType.kScreenStream)),c=(0,Ft.computed)((()=>`${t.stream.userId}_${t.stream.streamType}`)),u=(0,Ft.computed)((()=>{const{userId:e,streamType:o}=t.stream;return e===a.masterUserId&&o===Kt.TUIVideoStreamType.kCameraStream})),m=(0,Ft.computed)((()=>t.stream.streamType===Kt.TUIVideoStreamType.kScreenStream)),d=(0,Ft.computed)((()=>Wa.Uh?`${t.stream.userName} | ${t.stream.userId}`||t.stream.userId:t.stream.userName||t.stream.userId));return(0,Ft.onMounted)((()=>{(0,Ft.watch)((()=>t.stream.hasVideoStream),(async e=>{if(e){await(0,Ft.nextTick)();const e=document?.getElementById(`${c.value}`);if(e)if(no.Z.debug(`${n}watch isVideoStreamAvailable:`,t.stream.userId,e),s.userId===t.stream.userId)t.stream.hasVideoStream&&await(o.instance?.setLocalVideoView({streamType:Kt.TUIVideoStreamType.kCameraStream,view:`${c.value}`}));else{o.instance?.setRemoteVideoView({userId:t.stream.userId,streamType:t.stream.streamType,view:`${c.value}`}),await(o.instance?.startPlayRemoteVideo({userId:t.stream.userId,streamType:t.stream.streamType}));const e=o.instance?.getTRTCCloud();await(e?.setRemoteRenderParams(t.stream.userId,Kt.TRTCVideoStreamType.TRTCVideoStreamTypeBig,{mirrorType:Kt.TRTCVideoMirrorType.TRTCVideoMirrorType_Disable,rotation:Kt.TRTCVideoRotation.TRTCVideoRotation0,fillMode:Kt.TRTCVideoFillMode.TRTCVideoFillMode_Fill}))}}}),{immediate:!0})})),(0,Ft.onMounted)((()=>{(0,Ft.watch)((()=>t.stream.hasScreenStream),(async e=>{if(e){await(0,Ft.nextTick)();const e=document?.getElementById(`${c.value}`);if(e){no.Z.debug(`${n}watch isScreenStreamAvailable:`,t.stream.userId,e),o.instance?.setRemoteVideoView({userId:t.stream.userId,streamType:t.stream.streamType,view:`${c.value}`}),await(o.instance?.startPlayRemoteVideo({userId:t.stream.userId,streamType:t.stream.streamType}));const s=o.instance?.getTRTCCloud();await(s?.setRemoteRenderParams(t.stream.userId,Kt.TRTCVideoStreamType.TRTCVideoStreamTypeSub,{mirrorType:Kt.TRTCVideoMirrorType.TRTCVideoMirrorType_Disable,rotation:Kt.TRTCVideoRotation.TRTCVideoRotation0,fillMode:Kt.TRTCVideoFillMode.TRTCVideoFillMode_Fit}))}}}),{immediate:!0})})),(0,Ft.onMounted)((()=>{(0,Ft.watch)((()=>t.enlargeDomId),(async(e,n)=>{if(c.value===n||c.value===e){await(0,Ft.nextTick)();const e=document?.getElementById(`${c.value}`);e&&(s.userId===t.stream.userId?t.stream.hasVideoStream&&await(o.instance?.setLocalVideoView({streamType:Kt.TUIVideoStreamType.kCameraStream,view:`${c.value}`})):(o.instance?.setRemoteVideoView({userId:t.stream.userId,streamType:t.stream.streamType,view:`${c.value}`}),await(o.instance?.startPlayRemoteVideo({userId:t.stream.userId,streamType:t.stream.streamType}))))}}))})),{__sfc:!0,roomEngine:o,logPrefix:n,basicStore:s,roomStore:a,t:r,props:t,streamRegionRef:i,showVoiceBorder:l,playRegionDomId:c,showMasterIcon:u,isScreenStream:m,userInfo:d,defaultAvatar:Ci,AudioIcon:Dn.Z,SvgIcon:io.Z}}}),Rl=bl,Tl=(0,uo.Z)(Rl,Il,yl,!1,null,"9adfd868",null),wl=Tl.exports,Al=function(){var e=this,t=e._self._c,o=e._self._setupProxy;return o.playRegionDomId!==e.enlargeDomId?t("div",{ref:"streamRegionRef",staticClass:"user-stream-container",on:{dblclick:function(t){return e.$emit("room_dblclick")}}},[o.loading?t("div",{staticClass:"loading-region"},[t(o.SvgIcon,{staticClass:"loading",attrs:{"icon-name":"loading"}})],1):e._e(),t("div",{staticClass:"stream-region",attrs:{id:o.playRegionDomId}}),e.stream.hasVideoStream||e.stream.hasScreenStream?e._e():t("div",{ref:"centerUserInfoRef",staticClass:"center-user-info-container"},[t(o.Avatar,{staticClass:"avatar-region",attrs:{"img-src":e.stream.avatarUrl}})],1),t("div",{staticClass:"corner-user-info-container"},[o.showMasterIcon?t(o.SvgIcon,{staticClass:"master-icon",attrs:{"icon-name":"user"}}):e._e(),o.isScreenStream?e._e():t(o.AudioIcon,{attrs:{"audio-volume":e.stream.audioVolume,"is-muted":!e.stream.hasAudioStream,size:"small"}}),o.isScreenStream?t(o.SvgIcon,{staticClass:"screen-icon",attrs:{"icon-name":"screen-share"}}):e._e(),t("span",{staticClass:"user-name",attrs:{title:o.userInfo}},[e._v(e._s(o.userInfo))]),o.isScreenStream?t("span",[e._v(" "+e._s(o.t("is sharing their screen"))+" ")]):e._e()],1)]):e._e()},kl=[],Ml=(0,Ft.defineComponent)({__name:"StreamRegionPC",props:{stream:null,enlargeDomId:null,changeLargeStream:{type:Boolean}},setup(e){const t=e,o=(0,oo.Z)(),n="[StreamRegion]",s=(0,Xt.o)(),a=(0,eo.A)(),{t:r}=(0,to.Q)(),i=(0,Ft.ref)(),l=(0,Ft.ref)(),c=(0,Ft.ref)(!1),u=(0,Ft.computed)((()=>`${t.stream.userId}_${t.stream.streamType}`)),m=(0,Ft.computed)((()=>{const{userId:e,streamType:o}=t.stream;return e===a.masterUserId&&o===Kt.TUIVideoStreamType.kCameraStream})),d=(0,Ft.computed)((()=>t.stream.streamType===Kt.TUIVideoStreamType.kScreenStream)),p=(0,Ft.computed)((()=>Wa.Uh?`${t.stream.userName} | ${t.stream.userId}`||t.stream.userId:t.stream.userName||t.stream.userId)),f=(0,Ft.computed)((()=>{const{streamType:e,userId:o}=t.stream,{kScreenStream:n,kCameraStream:r}=Kt.TUIVideoStreamType,{defaultStreamType:i}=a,{userId:l}=s;return e===n?n:u.value===t.enlargeDomId||o===l?r:e===r?i:e})),v=async()=>{const{userId:e}=t.stream;c.value=!0,o.instance?.setRemoteVideoView({userId:e,streamType:f.value,view:`${u.value}`}),await(o.instance?.startPlayRemoteVideo({userId:e,streamType:f.value})),c.value=!1},h=async()=>{c.value=!1,await(o.instance?.stopPlayRemoteVideo({userId:t.stream.userId,streamType:f.value}))};return t.stream.streamType!==Kt.TUIVideoStreamType.kCameraStream&&t.stream.streamType!==Kt.TUIVideoStreamType.kCameraStreamLow||(0,Ft.watch)((()=>[t.stream.hasVideoStream,t.stream.isVisible]),(async(e,o)=>{if(t.stream.userId===s.userId)return;const[a,r]=e;if(a&&r){await(0,Ft.nextTick)();const e=document.getElementById(`${u.value}`);e&&(no.Z.debug(`${n}watch isVideoStreamAvailable:`,t.stream.userId,e),await v())}if(o){const[e,t]=o;!e||!t||a&&r||await h()}}),{immediate:!0}),t.stream.streamType===Kt.TUIVideoStreamType.kScreenStream&&(0,Ft.watch)((()=>[t.stream.hasScreenStream,t.stream.isVisible]),(async(e,o)=>{const[s,a]=e;if(s&&a){await(0,Ft.nextTick)();const e=document.getElementById(`${u.value}`);e&&(no.Z.debug(`${n}watch isScreenStreamAvailable:`,t.stream.userId,e),await v())}if(o){const[e,t]=o;!e||!t||s&&a||await h()}}),{immediate:!0}),(0,Ft.watch)((()=>t.enlargeDomId),(async(e,n)=>{if(u.value===n||u.value===e){await(0,Ft.nextTick)();const e=document.getElementById(`${u.value}`);e&&(s.userId===t.stream.userId?t.stream.hasVideoStream&&await(o.instance?.setLocalVideoView({streamType:f.value,view:`${u.value}`})):await v())}}),{immediate:!0}),{__sfc:!0,roomEngine:o,logPrefix:n,basicStore:s,roomStore:a,t:r,props:t,streamRegionRef:i,centerUserInfoRef:l,loading:c,playRegionDomId:u,showMasterIcon:m,isScreenStream:d,userInfo:p,streamTypeToFetch:f,startPlayRemoteVideo:v,stopPlayRemoteVideo:h,Avatar:fo.Z,AudioIcon:Dn.Z,SvgIcon:io.Z}}}),Ul=Ml,xl=(0,uo.Z)(Ul,Al,kl,!1,null,"693d2878",null),Ll=xl.exports;const El=wo.t?wl:Ll;var Ol=El;const Dl="[StreamContainer]";function Nl(){const e=(0,oo.Z)(),t=(0,Xt.o)(),o=(0,eo.A)(),{t:n}=(0,to.Q)(),s=e=>{o.addRemoteUser(e.userInfo)},a=e=>{o.removeRemoteUser(e.userInfo.userId)},r=e=>{const{seatList:t,seatedList:n,leftList:s}=e;o.updateOnSeatList(t,n,s)},i=e=>{const{userId:s,hasAudio:a,reason:r}=e;o.updateUserAudioState(s,a),s!==t.userId||a||r!==Kt.TUIChangeReason.kChangedByAdmin||((0,zt.z)({type:"warning",message:n("The host has turned off your microphone"),duration:Nn.U.NORMAL}),o.setCanControlSelfAudio(!o.isMicrophoneDisableForAllUser))},{isDefaultOpenCamera:l,isDefaultOpenMicrophone:c,isLocalAudioIconDisable:u,isLocalVideoIconDisable:m}=(0,Ht.Jk)(o);return(0,Ft.watch)(l,(async n=>{if(n&&!m.value)if(wo.e)await(e.instance?.setLocalVideoView({streamType:Kt.TUIVideoStreamType.kCameraStream,view:`${o.localStream.userId}_${o.localStream.streamType}`})),await(e.instance?.openLocalCamera({isFrontCamera:t.isFrontCamera}));else{if(wo.t){const n=document?.getElementById(`${o.localStream.userId}_${o.localStream.streamType}`);return n?(await(e.instance?.setLocalVideoView({streamType:Kt.TUIVideoStreamType.kCameraStream,view:`${o.localStream.userId}_${o.localStream.streamType}`})),void await(e.instance?.openLocalCamera({isFrontCamera:t.isFrontCamera}))):void no.Z.error(`${Dl}watch isDefaultOpenCamera:`,l,n)}{const t=document?.getElementById(`${o.localStream.userId}_${o.localStream.streamType}`);if(!t)return void no.Z.error(`${Dl}watch isDefaultOpenCamera:`,l,t);if(!o.currentCameraId){const t=await(e.instance?.getCameraDevicesList());t&&t.length>0&&o.setCurrentCameraId(t[0].deviceId)}await(e.instance?.setCurrentCameraDevice({deviceId:o.currentCameraId})),await(e.instance?.setLocalVideoView({streamType:Kt.TUIVideoStreamType.kCameraStream,view:`${o.localStream.userId}_${o.localStream.streamType}`})),await(e.instance?.openLocalCamera())}}})),(0,Ft.watch)(c,(async t=>{if(t&&!u.value&&(await(e.instance?.openLocalMicrophone()),!wo.e&&!wo.t)){const t=await(e.instance?.getMicDevicesList()),n=await(e.instance?.getSpeakerDevicesList());if(0===t?.length||0===n?.length)return;!o.currentMicrophoneId&&t.length>0&&o.setCurrentMicrophoneId(t[0].deviceId),!o.currentSpeakerId&&n.length>0&&o.setCurrentSpeakerId(n[0].deviceId),await(e.instance?.setCurrentMicDevice({deviceId:o.currentMicrophoneId}))}})),{onRemoteUserEnterRoom:s,onRemoteUserLeaveRoom:a,onSeatListChanged:r,onUserAudioStateChanged:i,t:n}}var Pl=(0,Ft.defineComponent)({__name:"StreamContainerH5",props:{showRoomTool:{type:Boolean}},setup(e){const t="[StreamContainer]",{onRemoteUserEnterRoom:o,onRemoteUserLeaveRoom:n,onSeatListChanged:s,onUserAudioStateChanged:a,t:r}=Nl(),i=(0,oo.Z)(),l=(0,Ft.ref)(null),c=(0,eo.A)(),{streamList:u,streamNumber:m,localStream:d,remoteStreamObj:p}=(0,Ht.Jk)(c),f=(0,Xt.o)();f.setLayout(Cn._.SIX_EQUAL_POINTS);const{layout:v}=(0,Ht.Jk)(f),h=(0,Ft.ref)(null),g=(0,Ft.computed)((()=>h.value?`${h.value.userId}_${h.value.streamType}`:"")),C=(0,Ft.ref)(""),_=(0,Ft.ref)(),S=(0,Ft.ref)(),I=(0,Ft.computed)((()=>u.value.filter((e=>e.streamType===Kt.TUIVideoStreamType.kCameraStream)))),y=(0,Ft.ref)(0);(0,Ft.watch)((()=>I.value.length),(e=>{if(v.value===Cn._.SIX_EQUAL_POINTS){const t=h.value?y.value-1:y.value;Math.ceil(e/6)0&&(y.value=y.value-1)}}));const b=(0,Ft.computed)((()=>v.value===Cn._.SIX_EQUAL_POINTS&&(h.value?1===y.value:0===y.value))),R=(0,Ft.computed)((()=>{if(v.value===Cn._.SIX_EQUAL_POINTS)return h.value?I.value.slice(6*(y.value-1),6*(y.value-1)+6):I.value.slice(6*y.value,6*y.value+6);if(v.value===Cn._.LARGE_SMALL_WINDOW){const e=h.value?.userId;return C.value?C.value===d.value.userId?[d.value]:[p.value[`${C.value}_${Kt.TUIVideoStreamType.kCameraStream}`]]:[p.value[`${e}_${Kt.TUIVideoStreamType.kCameraStream}`]]}return[]})),T=(0,Ft.computed)((()=>{const e=I.value.length>6?Math.ceil(m.value/6):1;return h.value?e+1:e}));function w(e){return v.value===Cn._.LARGE_SMALL_WINDOW?0===e:v.value===Cn._.SIX_EQUAL_POINTS&&e===y.value}function A(){0!==y.value&&(y.value=y.value-1,h.value&&0===y.value&&f.setLayout(Cn._.LARGE_SMALL_WINDOW))}function k(){y.value!==T.value-1&&(y.value=y.value+1,v.value===Cn._.LARGE_SMALL_WINDOW&&f.setLayout(Cn._.SIX_EQUAL_POINTS))}const M=(0,Ft.ref)(),U=(0,Ft.ref)(),x=(0,Ft.computed)((()=>{let e="";switch(v.value){case Cn._.SIX_EQUAL_POINTS:e="stream-container-flatten";break;case Cn._.LARGE_SMALL_WINDOW:e="stream-container-large-small";break;default:break}return e}));function L(e){_.value=e?.changedTouches[0]?.pageX,S.value=e?.changedTouches[0]?.pageY}function E(e){const t=e?.changedTouches[0].pageX-_.value,o=e?.changedTouches[0].pageY-S.value;Math.abs(o)>Math.abs(t)||Math.abs(t)<5||(t<0&&k(),t>0&&A())}const O=e=>{const{userId:o,streamType:n,hasVideo:s,reason:a}=e;c.updateUserVideoState(o,n,s),o!==f.userId||s||a!==Kt.TUIChangeReason.kChangedByAdmin||(n===Kt.TUIVideoStreamType.kCameraStream&&((0,zt.z)({type:"warning",message:r("The host has turned off your camera"),duration:Nn.U.NORMAL}),c.setCanControlSelfVideo(!c.isCameraDisableForAllUser)),n===Kt.TUIVideoStreamType.kScreenStream&&(0,zt.z)({type:"warning",message:r("The host has turned off your screen sharing"),duration:Nn.U.NORMAL})),o!==f.userId&&n===Kt.TUIVideoStreamType.kScreenStream&&(s?(h.value=c.remoteStreamObj[`${o}_${n}`],h.value&&(f.setLayout(Cn._.LARGE_SMALL_WINDOW),y.value=0)):o===h.value?.userId&&(no.Z.debug(`${t} onUserVideoStateChanged: stop`,o,n),i.instance?.stopPlayRemoteVideo({userId:o,streamType:n}),h.value&&(h.value=null),v.value===Cn._.LARGE_SMALL_WINDOW?(f.setLayout(Cn._.SIX_EQUAL_POINTS),y.value=0):v.value===Cn._.SIX_EQUAL_POINTS&&y.value>0&&(y.value=y.value-1)))};function D(e){if(C.value){const t=e.find((e=>e.userId===C.value));if(t&&t.volume>0)return}let t=0,o="";e.forEach((e=>{const{userId:n,volume:s}=e;s>t&&(t=s,o=n)})),C.value=0===t?"":o}const N=(0,$o.P2)(D,1e3),P=e=>{const{userVolumeList:t}=e;v.value===Cn._.LARGE_SMALL_WINDOW&&(0===t.length?C.value="":N(t))};return Yt().once("ready",(()=>{i.instance?.on(Kt.TUIRoomEvents.onRemoteUserEnterRoom,o),i.instance?.on(Kt.TUIRoomEvents.onRemoteUserLeaveRoom,n),i.instance?.on(Kt.TUIRoomEvents.onSeatListChanged,s),i.instance?.on(Kt.TUIRoomEvents.onUserVideoStateChanged,O),i.instance?.on(Kt.TUIRoomEvents.onUserAudioStateChanged,a),i.instance?.on(Kt.TUIRoomEvents.onUserVoiceVolumeChanged,P)})),(0,Ft.onUnmounted)((()=>{i.instance?.off(Kt.TUIRoomEvents.onRemoteUserEnterRoom,o),i.instance?.off(Kt.TUIRoomEvents.onRemoteUserLeaveRoom,n),i.instance?.off(Kt.TUIRoomEvents.onSeatListChanged,s),i.instance?.off(Kt.TUIRoomEvents.onUserVideoStateChanged,O),i.instance?.off(Kt.TUIRoomEvents.onUserAudioStateChanged,a),i.instance?.off(Kt.TUIRoomEvents.onUserVoiceVolumeChanged,P)})),{__sfc:!0,logPrefix:t,onRemoteUserEnterRoom:o,onRemoteUserLeaveRoom:n,onSeatListChanged:s,onUserAudioStateChanged:a,t:r,roomEngine:i,streamContainerRef:l,roomStore:c,streamList:u,streamNumber:m,localStream:d,remoteStreamObj:p,basicStore:f,layout:v,enlargeStream:h,enlargeDomId:g,currentSpeakerUserId:C,startX:_,startY:S,onlyVideoStreamList:I,currentPageIndex:y,isFirstPageInSixPointLayout:b,showStreamList:R,totalPageNumber:T,isActiveDot:w,handleTurnPageLeft:A,handleTurnPageRight:k,enlargedContainerRef:M,streamListRef:U,streamContainerClass:x,handleTouchStart:L,handleTouchEnd:E,onUserVideoStateChanged:O,handleLargestVoice:D,handleLargestVoiceThrottle:N,onUserVoiceVolumeChanged:P,LAYOUT:Cn._,StreamRegion:Ol}}}),jl=Pl,ql=(0,uo.Z)(jl,_l,Sl,!1,null,"3424abc2",null),Zl=ql.exports,Vl=function(){var e=this,t=e._self._c,o=e._self._setupProxy;return t("div",{class:o.streamContainerClass},[t("div",{directives:[{name:"show",rawName:"v-show",value:o.showIconControl,expression:"showIconControl"}],ref:"enlargedContainerRef",staticClass:"enlarged-stream-container"},[o.enlargeStream?t(o.StreamRegion,{key:`${o.enlargeStream.userId}_${o.enlargeStream.streamType}`,style:o.enlargedStreamStyle,attrs:{stream:o.enlargeStream}}):e._e()],1),t("div",{class:["stream-list-container",""+(o.showSideList?"":"hide-list")]},[t("div",{ref:"streamListRef",staticClass:"stream-list"},e._l(o.streamList,(function(e){return t(o.StreamRegion,{directives:[{name:"show",rawName:"v-show",value:o.showStreamList.indexOf(e)>-1,expression:"showStreamList.indexOf(stream) > -1"}],key:`${e.userId}_${e.streamType}`,staticClass:"single-stream",style:o.streamStyle,attrs:{stream:e,"enlarge-dom-id":o.enlargeDomId},on:{room_dblclick:function(t){return o.handleEnlargeStreamRegion(e)}}})})),1)]),o.showIconControl&&e.showRoomTool?t("div",{class:o.arrowClass,on:{click:o.handleClickIcon}},[t(o.SvgIcon,{attrs:{"icon-name":"line-arrow-up",size:"medium"}})],1):e._e(),o.showTurnPageControl&&e.showRoomTool?t("div",{staticClass:"turn-page-container"},[t("div",{directives:[{name:"show",rawName:"v-show",value:o.showTurnPageLeftArrow,expression:"showTurnPageLeftArrow"}],staticClass:"turn-page-arrow-container left-container",on:{click:o.handleTurnPageLeft}},[t("div",{staticClass:"turn-page-arrow"})]),t("div",{directives:[{name:"show",rawName:"v-show",value:o.showTurnPageRightArrow,expression:"showTurnPageRightArrow"}],staticClass:"turn-page-arrow-container right-container",on:{click:o.handleTurnPageRight}},[t("div",{staticClass:"turn-page-arrow turn-page-right"})])]):e._e()])},Bl=[],$l=(0,Ft.defineComponent)({__name:"StreamContainerPC",props:{showRoomTool:{type:Boolean}},setup(e){const t="[StreamContainer]",{onRemoteUserEnterRoom:o,onUserAudioStateChanged:n,t:s}=Nl(),a=(0,oo.Z)(),r=(0,Ft.ref)({width:"0",height:"0"}),i=(0,Ft.ref)({width:"0",height:"0"}),l=(0,eo.A)(),{streamList:c,streamNumber:u,remoteStreamList:m}=(0,Ht.Jk)(l),d=(0,Xt.o)(),{layout:p}=(0,Ht.Jk)(d),f=(0,Ft.ref)(!0),v=(0,Ft.ref)(null),h=(0,Ft.computed)((()=>v.value?`${v.value.userId}_${v.value.streamType}`:""));(0,Ft.watch)((()=>m.value.length),(e=>{if(0===e)return d.setLayout(Cn._.NINE_EQUAL_POINTS),void(v.value=null)})),(0,Ft.watch)((()=>c.value.length),(()=>{p.value!==Cn._.RIGHT_SIDE_LIST&&p.value!==Cn._.TOP_SIDE_LIST||Z()})),(0,Ft.watch)((()=>h.value),(()=>{p.value!==Cn._.RIGHT_SIDE_LIST&&p.value!==Cn._.TOP_SIDE_LIST||Z()}));const g=(0,Ft.ref)(0),C=(0,Ft.computed)((()=>p.value!==Cn._.NINE_EQUAL_POINTS?c.value.filter((e=>`${e.userId}_${e.streamType}`!==h.value)):c.value.slice(9*g.value,9*g.value+9)));(0,Ft.watch)([()=>C.value.length,g],(()=>{if(p.value===Cn._.NINE_EQUAL_POINTS){const e=[];C.value.forEach((t=>{const o=`${t.userId}_${t.streamType}`;e.push(o)})),l.updateUserStreamVisible(e)}})),(0,Ft.watch)(u,(e=>{g.value>Math.ceil(e/9)-1&&(g.value=Math.ceil(e/9)-1,M())}));const _=(0,Ft.computed)((()=>p.value===Cn._.NINE_EQUAL_POINTS&&u.value>9)),S=(0,Ft.computed)((()=>g.value>0)),I=(0,Ft.computed)((()=>u.value>9*g.value+9));function y(){g.value=g.value-1,M()}function b(){g.value=g.value+1,M()}const R=(0,Ft.ref)(""),T=(0,Ft.ref)(),w=(0,Ft.ref)(),A=(0,Ft.computed)((()=>{let e="";return p.value===Cn._.TOP_SIDE_LIST&&(e=f.value?"up":"down"),p.value===Cn._.RIGHT_SIDE_LIST&&(e=f.value?"right":"left"),`icon-control arrow-${e}`}));function k(){if(f.value=!f.value,f.value){if(p.value===Cn._.RIGHT_SIDE_LIST)return U(),T.value.style.width="calc(100% - 260px)",void(T.value.style.height="100%");if(p.value===Cn._.TOP_SIDE_LIST)return x(),T.value.style.top="175px",T.value.style.width="100%",void(T.value.style.height="calc(100% - 175px)")}else{let e=0,t=0;const o=document.getElementById("roomContainer").offsetWidth,n=document.getElementById("roomContainer").offsetHeight,s=o/16,a=n/9;if(s>a&&(e=n/9*16,t=n),s<=a&&(e=o,t=o/16*9),i.value.width=`${e}px`,i.value.height=`${t}px`,p.value===Cn._.RIGHT_SIDE_LIST)return T.value.style.width="100%",void(T.value.style.height="100%");if(p.value===Cn._.TOP_SIDE_LIST)return T.value.style.top="0px",T.value.style.width="100%",void(T.value.style.height="100%")}}async function M(){R.value="stream-container-flatten",v.value=null;const e=C.value.length;let t=0,o=0;const n=document.getElementById("roomContainer");if(!n)return;let s=n.offsetWidth,a=n.offsetHeight;e<=4?(s=e<2?n.offsetWidth/e:n.offsetWidth/2,a=n.offsetHeight/Math.ceil(e/2)):e>4&&(s=e<3?n.offsetWidth/e:n.offsetWidth/3,a=n.offsetHeight/Math.ceil(e/3));const i=s/16,l=a/9;i>l&&(t=a/9*16,o=a),i<=l&&(t=s,o=s/16*9),r.value.width=t-8+"px",r.value.height=o-8+"px"}async function U(){if(R.value="stream-container-right",v.value||([v.value]=m.value),await(0,Ft.nextTick)(),r.value={},T.value){const e=T.value.offsetWidth,t=T.value.offsetHeight;let o=0,n=0;const s=e/16,a=t/9;s>a&&(o=t/9*16,n=t),s<=a&&(o=e,n=e/16*9),i.value.width=`${o}px`,i.value.height=`${n}px`}}async function x(){if(R.value="stream-container-top",v.value||([v.value]=m.value),await(0,Ft.nextTick)(),r.value={},T.value){const e=T.value.offsetWidth,t=T.value.offsetHeight;let o=0,n=0;const s=e/16,a=t/9;s>a&&(o=t/9*16,n=t),s<=a&&(o=e,n=e/16*9),i.value.width=`${o}px`,i.value.height=`${n}px`}}function L(e){p.value===Cn._.NINE_EQUAL_POINTS&&d.setLayout(Cn._.RIGHT_SIDE_LIST),v.value=e}async function E(){switch(p.value){case Cn._.NINE_EQUAL_POINTS:await M();break;case Cn._.RIGHT_SIDE_LIST:f.value=!0,T.value.style.width="calc(100% - 260px)",T.value.style.height="100%",await U(),await Z();break;case Cn._.TOP_SIDE_LIST:f.value=!0,T.value.style.width="100%",T.value.style.height="calc(100% - 175px)",await x(),await Z();break;default:break}}async function O(){switch(p.value){case Cn._.NINE_EQUAL_POINTS:await M();break;case Cn._.RIGHT_SIDE_LIST:await U(),await Z();break;case Cn._.TOP_SIDE_LIST:await x(),await Z();break;default:break}}(0,Ft.onMounted)((()=>{E(),["resize","pageshow"].forEach((e=>{window.addEventListener(e,O)}))})),(0,Ft.onUnmounted)((()=>{["resize","pageshow"].forEach((e=>{window.removeEventListener(e,O)}))})),(0,Ft.watch)(u,(()=>{p.value===Cn._.NINE_EQUAL_POINTS&&M()})),(0,Ft.watch)(p,(()=>{E()}));const D=(0,Ft.computed)((()=>[Cn._.RIGHT_SIDE_LIST,Cn._.TOP_SIDE_LIST].indexOf(p.value)>=0)),N=e=>{const{userId:o,streamType:n,hasVideo:r,reason:i}=e;l.updateUserVideoState(o,n,r),o!==d.userId||r||i!==Kt.TUIChangeReason.kChangedByAdmin||(n===Kt.TUIVideoStreamType.kCameraStream&&((0,zt.z)({type:"warning",message:s("The host has turned off your camera"),duration:Nn.U.NORMAL}),l.setCanControlSelfVideo(!l.isCameraDisableForAllUser)),n===Kt.TUIVideoStreamType.kScreenStream&&(0,zt.z)({type:"warning",message:s("The host has turned off your screen sharing"),duration:Nn.U.NORMAL})),o!==d.userId&&n===Kt.TUIVideoStreamType.kScreenStream&&(r?(l.setHasOtherScreenShare(!0),v.value=l.remoteStreamObj[`${o}_${n}`],v.value&&p.value!==Cn._.RIGHT_SIDE_LIST&&p.value!==Cn._.TOP_SIDE_LIST&&d.setLayout(Cn._.RIGHT_SIDE_LIST)):(l.setHasOtherScreenShare(!1),o===v.value?.userId&&q(),no.Z.debug(`${t} onUserVideoStateChanged: stop`,o,n),a.instance?.stopPlayRemoteVideo({userId:o,streamType:n})))},P=e=>{const{seatList:t,seatedList:o,leftList:n}=e;l.updateOnSeatList(t,o,n);const s=n.map((e=>e.userId));v.value&&s.includes(v.value?.userId)&&q()},j=e=>{const{userInfo:{userId:t}}=e;l.removeRemoteUser(t),t===v.value?.userId&&q()},q=()=>{0===l.remoteStreamList.length?(d.setLayout(Cn._.NINE_EQUAL_POINTS),v.value=null):[v.value]=l.remoteStreamList},Z=async()=>{const e=w.value.children[0];await(0,Ft.nextTick)();let t=0,o=0,n=0;if(p.value===Cn._.RIGHT_SIDE_LIST){const n=e.offsetHeight+10,s=e.offsetHeight+14,a=w.value.scrollTop+w.value.offsetHeight;t=Math.floor((w.value.scrollTop-n)/s)+1,o=Math.ceil((a-n)/s)+1}else if(p.value===Cn._.TOP_SIDE_LIST){const n=e.offsetWidth,s=e.offsetWidth+14,a=w.value.scrollLeft+w.value.offsetWidth;t=Math.floor((w.value.scrollLeft-n)/s)+1,o=Math.ceil((a-n)/s)+1}t<0&&(t=0),n=o-t,n>C.value.length-t&&(n=C.value.length-t);const s=[];[...new Array(n)].forEach((()=>{const e=`${C.value[t].userId}_${C.value[t].streamType}`;s.push(e),t+=1})),s.push(h.value),l.updateUserStreamVisible(s)},V=(0,$o.Ds)(Z,300);return(0,Ft.onMounted)((()=>{w.value.addEventListener("scroll",V)})),(0,Ft.onUnmounted)((()=>{w.value&&w.value.removeEventListener("scroll",V)})),Yt().once("ready",(()=>{a.instance?.on(Kt.TUIRoomEvents.onRemoteUserEnterRoom,o),a.instance?.on(Kt.TUIRoomEvents.onRemoteUserLeaveRoom,j),a.instance?.on(Kt.TUIRoomEvents.onSeatListChanged,P),a.instance?.on(Kt.TUIRoomEvents.onUserVideoStateChanged,N),a.instance?.on(Kt.TUIRoomEvents.onUserAudioStateChanged,n)})),(0,Ft.onUnmounted)((()=>{a.instance?.off(Kt.TUIRoomEvents.onRemoteUserEnterRoom,o),a.instance?.off(Kt.TUIRoomEvents.onRemoteUserLeaveRoom,j),a.instance?.off(Kt.TUIRoomEvents.onSeatListChanged,P),a.instance?.off(Kt.TUIRoomEvents.onUserVideoStateChanged,N),a.instance?.off(Kt.TUIRoomEvents.onUserAudioStateChanged,n)})),{__sfc:!0,logPrefix:t,onRemoteUserEnterRoom:o,onUserAudioStateChanged:n,t:s,roomEngine:a,streamStyle:r,enlargedStreamStyle:i,roomStore:l,streamList:c,streamNumber:u,remoteStreamList:m,basicStore:d,layout:p,showSideList:f,enlargeStream:v,enlargeDomId:h,currentPageIndex:g,showStreamList:C,showTurnPageControl:_,showTurnPageLeftArrow:S,showTurnPageRightArrow:I,handleTurnPageLeft:y,handleTurnPageRight:b,streamContainerClass:R,enlargedContainerRef:T,streamListRef:w,arrowClass:A,handleClickIcon:k,handleNineEqualPointsLayout:M,handleRightSideListLayout:U,handleTopSideListLayout:x,handleEnlargeStreamRegion:L,handleLayout:E,handleResize:O,showIconControl:D,onUserVideoStateChanged:N,onSeatListChanged:P,onRemoteUserLeaveRoom:j,handleLargeStreamLeave:q,handleStreamContainerScroll:Z,handleStreamContainerScrollDebounce:V,StreamRegion:Ol,SvgIcon:io.Z}}}),Fl=$l,zl=(0,uo.Z)(Fl,Vl,Bl,!1,null,"35d1e596",null),Hl=zl.exports;const Jl=wo.t?Zl:Hl;var Ql=Jl,Wl=(0,Ft.defineComponent)({__name:"index",props:{showRoomTool:{type:Boolean}},setup(e){return{__sfc:!0,StreamContainer:Ql}}}),Gl=Wl,Kl=(0,uo.Z)(Gl,gl,Cl,!1,null,"f3be1146",null),Yl=Kl.exports,Xl=function(){var e=this,t=e._self._c,o=e._self._setupProxy;return o.showSettingDialog?t("div",{staticClass:"setting-dialog"},[t("div",{staticClass:"dialog-tabs"},[t("span",{staticClass:"dialog-title"},[e._v(e._s(o.t("Settings")))]),e._l(o.settingTabsTitleList,(function(n,s){return t("div",{key:s,class:["tabs-title",""+(o.activeSettingTab===n.value?"active":"")],on:{click:function(e){return o.handleUpdateActiveTab(n.value)}}},[e._v(" "+e._s(n.label)+" ")])}))],2),t("div",{staticClass:"divide-line"}),t("div",{staticClass:"dialog-content"},["audio"===o.activeSettingTab?t(o.AudioSettingTab,{attrs:{mode:o.SettingMode.DETAIL}}):e._e(),"video"===o.activeSettingTab?t(o.VideoSettingTab,{attrs:{mode:o.SettingMode.DETAIL,"with-preview":!0}}):e._e()],1),t(o.SvgIcon,{staticClass:"close-icon",attrs:{"icon-name":"close",size:"medium"},on:{click:o.handleCloseSettingDialog}})],1):e._e()},ec=[],tc=(0,Ft.defineComponent)({__name:"index",setup(e){const{t:t}=(0,to.Q)(),o=(0,Xt.o)(),{showSettingDialog:n,activeSettingTab:s}=(0,Ht.Jk)(o),a=(0,Ft.computed)((()=>[{label:t("Audio settings"),value:"audio"},{label:t("Camera settings"),value:"video"}]));function r(e){o.setActiveSettingTab(e)}function i(){o.setShowSettingDialog(!1)}return{__sfc:!0,t:t,basicStore:o,showSettingDialog:n,activeSettingTab:s,settingTabsTitleList:a,handleUpdateActiveTab:r,handleCloseSettingDialog:i,SvgIcon:io.Z,AudioSettingTab:On.Z,VideoSettingTab:$n.Z,SettingMode:Cn.n}}}),oc=tc,nc=(0,uo.Z)(oc,Xl,ec,!1,null,"3d8c7752",null),sc=nc.exports,ac=(0,Ft.defineComponent)({__name:"index",emits:["on-log-out","on-create-room","on-enter-room","on-exit-room","on-destroy-room","on-kicked-out-of-room","on-kicked-off-line","on-userSig-expired"],setup(e,{expose:t,emit:o}){const n=(0,oo.Z)(),{t:s}=(0,to.Q)();t({init:b,createRoom:R,enterRoom:T,dismissRoom:S,leaveRoom:I,resetStore:M,t:s});const a="[Room]",r=(0,Xt.o)(),i=(0,eo.A)(),l=ns(),{sdkAppId:c,showHeaderTool:u}=(0,Ht.Jk)(r),{localUser:m}=(0,Ht.Jk)(i),d=(0,Ft.ref)(),p=(0,Ft.ref)(!0),f=(0,Ft.ref)();function v(){p.value=!1}const h=(0,$o.Ds)(v,5e3),g=(0,$o.P2)(h,1e3),C=new Kt.TRTCVideoEncParam;function _(){p.value=!p.value,p.value&&h()}async function S(){try{no.Z.log(`${a}dismissRoom: enter`),await y(),await(n.instance?.destroyRoom()),o("on-destroy-room")}catch(e){no.Z.error(`${a}dismissRoom error:`,e)}}async function I(){try{await y();const e=await(n.instance?.exitRoom());o("on-exit-room"),no.Z.log(`${a}leaveRoom:`,e)}catch(e){no.Z.error(`${a}leaveRoom error:`,e)}}async function y(){m.value.hasAudioStream&&await(n.instance?.closeLocalMicrophone()),m.value.hasVideoStream&&await(n.instance?.closeLocalCamera())}async function b(e){r.setBasicInfo(e),i.setLocalUser(e);const{sdkAppId:t,userId:o,userSig:n,userName:s,avatarUrl:a}=e;await Yt().login({sdkAppId:t,userId:o,userSig:n}),await Yt().setSelfInfo({userName:s,avatarUrl:a})}async function R(e){const{roomId:t,roomName:s,roomMode:l,roomParam:c}=e;try{if(!n.instance)return;r.setRoomId(t),no.Z.debug(`${a}createRoom:`,t,l,c);const e={roomId:t,name:s,roomType:Kt.TUIRoomType.kConference};"FreeToSpeak"===l?Object.assign(e,{speechMode:Kt.TUISpeechMode.kFreeToSpeak}):Object.assign(e,{speechMode:Kt.TUISpeechMode.kSpeakAfterTakingSeat}),await(n.instance?.createRoom(e)),o("on-create-room",{code:0,message:"create room success"});const u=n.instance?.getTRTCCloud();u.setDefaultStreamRecvMode(!0,!1),u.enableSmallVideoStream(!0,C);const m=await(n.instance?.enterRoom({roomId:t}));o("on-enter-room",{code:0,message:"enter room success"}),i.setRoomInfo(m),m.speechMode===Kt.TUISpeechMode.kSpeakAfterTakingSeat&&await(n.instance?.takeSeat({seatIndex:-1,timeout:0})),await w(),i.setRoomParam(c),an.reportEvent({name:"createRoom",ext1:"createRoom-success"})}catch(u){throw no.Z.error(`${a}createRoom error:`,u),r.reset(),u}}async function T(e){const{roomId:t,roomParam:s}=e;try{if(!n.instance)return;r.setRoomId(t),no.Z.debug(`${a}enterRoom:`,t,s);const e=n.instance?.getTRTCCloud();e.setDefaultStreamRecvMode(!0,!1),e.enableSmallVideoStream(!0,C);const l=await(n.instance?.enterRoom({roomId:t}));i.setRoomInfo(l),await w(),i.setRoomParam(s),o("on-enter-room",{code:0,message:"enter room success"}),an.reportEvent({name:"enterRoom",ext1:"enterRoom-success"})}catch(l){throw no.Z.error(`${a}enterRoom error:`,l),r.reset(),l}}async function w(){try{const{userInfoList:e}=await(n.instance?.getUserList());i.setUserList(e)}catch(e){no.Z.error("TUIRoomEngine.getUserList",e.code,e.message)}}C.videoResolution=Kt.TRTCVideoResolution.TRTCVideoResolution_640_360,C.videoFps=10,C.videoBitrate=550,wo.e||wo.t||((0,Ft.onMounted)((()=>{f.value?.addEventListener("mouseenter",(()=>{p.value=!0,h()})),f.value?.addEventListener("click",(()=>{p.value=!0,h()}),!1),f.value?.addEventListener("mousemove",(()=>{p.value=!0,g()})),f.value?.addEventListener("mouseleave",(()=>{p.value=!1}))})),(0,Ft.onUnmounted)((()=>{f.value?.removeEventListener("mouseenter",(()=>{p.value=!0,h()})),f.value?.removeEventListener("click",(()=>{p.value=!0,h()}),!1),f.value?.removeEventListener("mousemove",(()=>{p.value=!0,g()})),f.value?.removeEventListener("mouseleave",(()=>{p.value=!1}))}))),(0,Ft.onMounted)((async()=>{const e=r.defaultTheme,t=localStorage.getItem("tuiRoom-currentTheme")||e;if(r.setDefaultTheme(t),document.body.setAttribute("data-theme",t),wo.t){const e=n.instance?.getTRTCCloud();await(e?.setLocalRenderParams({mirrorType:Kt.TRTCVideoMirrorType.TRTCVideoMirrorType_Auto,rotation:Kt.TRTCVideoRotation.TRTCVideoRotation0,fillMode:Kt.TRTCVideoFillMode.TRTCVideoFillMode_Fill}))}}));const A=e=>{const{userVolumeList:t}=e;i.setAudioVolume(t)},k=e=>{r.setLocalQuality(e.userNetworkList)};function M(){r.reset(),l.reset(),i.reset()}const U=()=>{M(),o("on-log-out")},x=e=>{M(),o("on-destroy-room",e)},L=e=>{M(),o("on-exit-room",e)},E=e=>{no.Z.error("roomEngine.onError: ",e)},O=e=>{const{userId:t,isDisable:o}=e;if(t===m.value.userId){const e=s(o?"You have been banned from text chat by the host":"You are allowed to text chat by the host");(0,zt.z)({type:"warning",message:e,duration:Nn.U.NORMAL}),l.setSendMessageDisableChanged(o)}},D=async e=>{const{roomId:t,reason:n,message:r}=e;try{M();let e="";switch(n){case Kt.TUIKickedOutOfRoomReason.kKickedByAdmin:e=s("kicked out of the room by the host");break;case Kt.TUIKickedOutOfRoomReason.kKickedByLoggedOnOtherDevice:e=s("kicked out of the room by other device");break;case Kt.TUIKickedOutOfRoomReason.kKickedByServer:e=s("kicked out of the room by serve");break}zt.T.alert(e,s("Note"),{confirmButtonText:s("Confirm"),customClass:"custom-element-class",appendTo:"#roomContainer",callback:async()=>{o("on-kicked-out-of-room",{roomId:t,reason:n,message:r})}})}catch(i){no.Z.error(`${a}onKickedOutOfRoom error:`,i)}},N=()=>{zt.T.alert("userSig 已过期",s("Note"),{confirmButtonText:s("Confirm"),customClass:"custom-element-class",appendTo:"#roomContainer",callback:async()=>{o("on-userSig-expired")}})},P=e=>{const{message:t}=e;zt.T.alert("系统检测到您的账号被踢下线",s("Note"),{confirmButtonText:s("Confirm"),customClass:"custom-element-class",appendTo:"#roomContainer",callback:async()=>{o("on-kicked-off-line",{message:t})}})};async function j(e){const t=s(e?"The host has muted all":"The host has unmuted all");(0,zt.z)({type:"warning",message:t,duration:Nn.U.NORMAL}),e&&await(n.instance?.closeLocalMicrophone())}async function q(e){const t=s(e?"The host has turned on the ban on all paintings":"The host has lifted the ban on all paintings");(0,zt.z)({type:"warning",message:t,duration:Nn.U.NORMAL}),e&&await(n.instance?.closeLocalCamera())}async function Z(e){const t=s(e?"The host has turned on the ban on all chat":"The host has lifted the ban on all chat");(0,zt.z)({type:"warning",message:t,duration:Nn.U.NORMAL})}const V=async e=>{const{isDisable:t}=e;t!==i.isCameraDisableForAllUser&&m.value.userRole===Kt.TUIRole.kGeneralUser&&(q(t),i.setCanControlSelfVideo(!t)),i.setDisableCameraForAllUserByAdmin(t)},B=async e=>{const{isDisable:t}=e;t!==i.isMicrophoneDisableForAllUser&&m.value.userRole===Kt.TUIRole.kGeneralUser&&(j(t),i.setCanControlSelfAudio(!t)),i.setDisableMicrophoneForAllUserByAdmin(t)},$=async e=>{const{isDisable:t}=e;t!==i.isMessageDisableForAllUser&&m.value.userRole===Kt.TUIRole.kGeneralUser&&Z(t),i.setDisableMessageAllUserByAdmin(t)};async function F(){const e=await(n.instance?.getCameraDevicesList()),t=await(n.instance?.getMicDevicesList()),o=await(n.instance?.getSpeakerDevicesList());e&&i.setCameraList(e),t&&i.setMicrophoneList(t),o&&i.setSpeakerList(o);const s=n.instance?.getCurrentCameraDevice(),a=n.instance?.getCurrentMicDevice(),r=n.instance?.getCurrentSpeakerDevice();s&&s.deviceId&&i.setCurrentCameraId(s.deviceId),a&&a.deviceId&&i.setCurrentMicrophoneId(a.deviceId),r&&r.deviceId&&i.setCurrentSpeakerId(r.deviceId)}async function z(e){const t=["add","remove","active"],{deviceId:o,type:s,state:a}=e;if(s===Kt.TRTCDeviceType.TRTCDeviceTypeMic){no.Z.log(`onDeviceChange: deviceId: ${o}, type: microphone, state: ${t[a]}`);const e=await(n.instance?.getMicDevicesList());return e&&i.setMicrophoneList(e),void(a===Kt.TRTCDeviceState.TRTCDeviceStateActive&&i.setCurrentMicrophoneId(o))}if(s===Kt.TRTCDeviceType.TRTCDeviceTypeSpeaker){no.Z.log(`onDeviceChange: deviceId: ${o}, type: speaker, state: ${t[a]}`);const e=await(n.instance?.getSpeakerDevicesList());return e&&i.setSpeakerList(e),void(a===Kt.TRTCDeviceState.TRTCDeviceStateActive&&i.setCurrentSpeakerId(o))}if(s===Kt.TRTCDeviceType.TRTCDeviceTypeCamera){no.Z.log(`onDeviceChange: deviceId: ${o}, type: camera, state: ${t[a]}`);const e=await(n.instance?.getCameraDevicesList());e&&i.setCameraList(e),a===Kt.TRTCDeviceState.TRTCDeviceStateActive&&i.setCurrentCameraId(o)}}return Yt().once("ready",(()=>{n.instance?.on(Kt.TUIRoomEvents.onError,E),n.instance?.on(Kt.TUIRoomEvents.onUserVoiceVolumeChanged,A),n.instance?.on(Kt.TUIRoomEvents.onUserNetworkQualityChanged,k),n.instance?.on(Kt.TUIRoomEvents.onKickedOutOfRoom,D),n.instance?.on(Kt.TUIRoomEvents.onSendMessageForUserDisableChanged,O),n.instance?.on(Kt.TUIRoomEvents.onUserSigExpired,N),n.instance?.on(Kt.TUIRoomEvents.onKickedOffLine,P),n.instance?.on(Kt.TUIRoomEvents.onAllUserCameraDisableChanged,V),n.instance?.on(Kt.TUIRoomEvents.onAllUserMicrophoneDisableChanged,B),n.instance?.on(Kt.TUIRoomEvents.onSendMessageForAllUserDisableChanged,$),n.instance?.on(Kt.TUIRoomEvents.onDeviceChange,z),F()})),(0,Ft.onUnmounted)((()=>{n.instance?.off(Kt.TUIRoomEvents.onError,E),n.instance?.off(Kt.TUIRoomEvents.onUserVoiceVolumeChanged,A),n.instance?.off(Kt.TUIRoomEvents.onUserNetworkQualityChanged,k),n.instance?.off(Kt.TUIRoomEvents.onKickedOutOfRoom,D),n.instance?.off(Kt.TUIRoomEvents.onSendMessageForUserDisableChanged,O),n.instance?.off(Kt.TUIRoomEvents.onUserSigExpired,N),n.instance?.off(Kt.TUIRoomEvents.onKickedOffLine,P),n.instance?.off(Kt.TUIRoomEvents.onAllUserCameraDisableChanged,V),n.instance?.off(Kt.TUIRoomEvents.onAllUserMicrophoneDisableChanged,B),n.instance?.off(Kt.TUIRoomEvents.onSendMessageForAllUserDisableChanged,$),n.instance?.off(Kt.TUIRoomEvents.onDeviceChange,z)})),(0,Ft.watch)(c,(e=>{e&&(an.setSdkAppId(e),an.reportEvent({name:"loaded",ext1:"loaded-success"}))})),{__sfc:!0,roomEngine:n,t:s,emit:o,logPrefix:a,basicStore:r,roomStore:i,chatStore:l,sdkAppId:c,showHeaderTool:u,localUser:m,roomContentRef:d,showRoomTool:p,roomRef:f,handleHideRoomTool:v,handleHideRoomToolDebounce:h,handleHideRoomToolThrottle:g,smallParam:C,handleRoomContentTap:_,dismissRoom:S,leaveRoom:I,closeMediaBeforeLeave:y,init:b,createRoom:R,enterRoom:T,getUserList:w,onUserVoiceVolumeChanged:A,onUserNetworkQualityChanged:k,resetStore:M,logOut:U,onDestroyRoom:x,onExitRoom:L,onError:E,onSendMessageForUserDisableChanged:O,onKickedOutOfRoom:D,onUserSigExpired:N,onKickedOffLine:P,handleAudioStateChange:j,handleVideoStateChange:q,handleMessageStateChange:Z,onAllUserCameraDisableChanged:V,onAllUserMicrophoneDisableChanged:B,onSendMessageForAllUserDisableChanged:$,getMediaDeviceList:F,onDeviceChange:z,RoomHeader:kn,RoomFooter:mr,RoomSidebar:hl,RoomContent:Yl,RoomSetting:sc}}}),rc=ac,ic=(0,uo.Z)(rc,Bt,$t,!1,null,"b73b8d2e",null),lc=ic.exports,cc=o(8499),uc=o(1420);const mc=(0,Xt.o)(),dc=(0,eo.A)();let pc;uc.Z.beforeEach(((e,t,o)=>{if(mc.roomId){const e=dc.isMaster?pc?.t("This action causes the room to be disbanded, does it continue?"):pc?.t("This action causes the room to be exited, does it continue?");window.confirm(e)?(dc.isMaster?pc?.dismissRoom():pc?.leaveRoom(),pc?.resetStore(),o()):o(!1)}else o()}));var fc={name:"Room",components:{RoomContainer:lc},data(){return{roomInfo:null,userInfo:null,roomId:0}},async mounted(){if(pc=this.$refs.TUIRoomRef,this.roomInfo=sessionStorage.getItem("tuiRoom-roomInfo"),this.userInfo=sessionStorage.getItem("tuiRoom-userInfo"),console.log(this.userInfo),this.roomId=this.$route.query.roomId,!this.roomId)return void this.$router.push({path:"home"});if(!this.roomInfo)return void this.$router.push({path:"home",query:{roomId:this.roomId}});const{action:e,roomMode:t,roomParam:o}=JSON.parse(this.roomInfo),{sdkAppId:n,userId:s,userSig:a,userName:r,avatarUrl:i}=JSON.parse(this.userInfo);try{if(await pc.init({sdkAppId:n,userId:s,userSig:a,userName:r,avatarUrl:i}),"createRoom"===e)try{await pc.createRoom({roomId:this.roomId,roomName:this.roomId,roomMode:t,roomParam:o})}catch(l){const e=this.$t("Failed to enter the room.")+l.message;cc.MessageBox.alert(e,this.$t("Note"),{customClass:"custom-element-class",confirmButtonText:this.$t("Confirm"),callback:()=>{this.$router.push({path:"home"})}})}else if("enterRoom"===e)try{await pc.enterRoom({roomId:this.roomId,roomParam:o})}catch(l){const e=this.$t("Failed to enter the room.")+l.message;cc.MessageBox.alert(e,this.$t("Note"),{customClass:"custom-element-class",confirmButtonText:this.$t("Confirm"),callback:()=>{this.$router.push({path:"home"})}})}}catch(l){const e=this.$t("Failed to enter the room.")+l.message;cc.MessageBox.alert(e,this.$t("Note"),{customClass:"custom-element-class",confirmButtonText:this.$t("Confirm"),callback:()=>{sessionStorage.removeItem("tuiRoom-currentUserInfo"),this.$router.push({path:"home"})}})}},methods:{handleLogOut(){},onCreateRoom(e){no.Z.debug("onEnterRoom:",e),alert(`房间号为${this.roomId}`),Vt.post("https://api.xayunmei.com/zhongcaiapi/caseApplication/sendRoomNoMessage",{roomNo:this.roomId,id:sessionStorage.getItem("id")}).then((e=>{console.log(e)})),Vt.post("https://api.xayunmei.com/zhongcaiapi/video/bindCaseId",{id:sessionStorage.getItem("id"),roomNo:this.roomId}).then((e=>{console.log(e,"PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPp")}))},onEnterRoom(e){no.Z.debug("onCreateRoom:",e)},onDestroyRoom(e){no.Z.debug("onDestroyRoom:",e),this.$router.replace({path:"/home"})},onExitRoom(e){no.Z.debug("onExitRoom:",e),this.$router.replace({path:"/home"})},onKickedOutOfRoom(e){no.Z.debug("onKickedOutOfRoom:",e),sessionStorage.removeItem("tuiRoom-roomInfo"),this.$router.replace({path:"/home"})},onKickedOffLine(e){no.Z.debug("onKickedOffLine:",e),sessionStorage.removeItem("tuiRoom-roomInfo"),this.$router.replace({path:"/home"})},onUserSigExpired(){no.Z.debug("onUserSigExpired"),sessionStorage.removeItem("tuiRoom-roomInfo"),sessionStorage.removeItem("tuiRoom-currentUserInfo"),this.$router.replace({path:"/home"})}}},vc=fc,hc=(0,uo.Z)(vc,n,s,!1,null,null,null),gc=hc.exports}}]);
+//# sourceMappingURL=about.0e360f7e.js.map
\ No newline at end of file
diff --git a/Miniapp-H5/dist/js/about.0e360f7e.js.map b/Miniapp-H5/dist/js/about.0e360f7e.js.map
new file mode 100644
index 0000000..5b287bc
--- /dev/null
+++ b/Miniapp-H5/dist/js/about.0e360f7e.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"js/about.0e360f7e.js","mappings":"mLAAA,IAAIA,EAAS,WAAkB,IAAIC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG,OAAOA,EAAG,iBAAiB,CAACE,IAAI,aAAaC,GAAG,CAAC,aAAaL,EAAIM,aAAa,iBAAiBN,EAAIO,aAAa,gBAAgBP,EAAIQ,YAAY,eAAeR,EAAIS,WAAW,kBAAkBT,EAAIU,cAAc,wBAAwBV,EAAIW,kBAAkB,mBAAmBX,EAAIY,gBAAgB,sBAAsBZ,EAAIa,mBAC9X,EACIC,EAAkB,G,QCAP,SAASC,EAAKC,EAAIC,GAC/B,OAAO,WACL,OAAOD,EAAGE,MAAMD,EAASE,UAC3B,CACF,CCAA,MAAOC,SAAQA,GAAIC,OAAOC,WACpB,eAACC,GAAkBF,OAEnBG,EAAS,CAACC,GAASC,IACrB,MAAMC,EAAMP,EAASQ,KAAKF,GAC1B,OAAOD,EAAME,KAASF,EAAME,GAAOA,EAAIE,MAAM,GAAI,GAAGC,cAAc,EAFvD,CAGZT,OAAOU,OAAO,OAEXC,EAAcC,IAClBA,EAAOA,EAAKH,cACJJ,GAAUF,EAAOE,KAAWO,GAGhCC,EAAaD,GAAQP,UAAgBA,IAAUO,GAS/C,QAACE,GAAWC,MASZC,EAAcH,EAAW,aAS/B,SAASI,EAASC,GAChB,OAAe,OAARA,IAAiBF,EAAYE,IAA4B,OAApBA,EAAIC,cAAyBH,EAAYE,EAAIC,cACpFC,EAAWF,EAAIC,YAAYF,WAAaC,EAAIC,YAAYF,SAASC,EACxE,CASA,MAAMG,EAAgBV,EAAW,eAUjC,SAASW,EAAkBJ,GACzB,IAAIK,EAMJ,OAJEA,EAD0B,qBAAhBC,aAAiCA,YAAYC,OAC9CD,YAAYC,OAAOP,GAElBA,GAASA,EAAIQ,QAAYL,EAAcH,EAAIQ,QAEhDH,CACT,CASA,MAAMI,EAAWd,EAAW,UAQtBO,EAAaP,EAAW,YASxBe,EAAWf,EAAW,UAStBgB,EAAYxB,GAAoB,OAAVA,GAAmC,kBAAVA,EAQ/CyB,EAAYzB,IAAmB,IAAVA,IAA4B,IAAVA,EASvC0B,EAAiBb,IACrB,GAAoB,WAAhBf,EAAOe,GACT,OAAO,EAGT,MAAMjB,EAAYC,EAAegB,GACjC,OAAsB,OAAdjB,GAAsBA,IAAcD,OAAOC,WAAkD,OAArCD,OAAOE,eAAeD,OAA0B+B,OAAOC,eAAef,MAAUc,OAAOE,YAAYhB,EAAI,EAUnKiB,EAASxB,EAAW,QASpByB,EAASzB,EAAW,QASpB0B,EAAS1B,EAAW,QASpB2B,EAAa3B,EAAW,YASxB4B,EAAYrB,GAAQW,EAASX,IAAQE,EAAWF,EAAIsB,MASpDC,EAAcpC,IAClB,IAAIqC,EACJ,OAAOrC,IACgB,oBAAbsC,UAA2BtC,aAAiBsC,UAClDvB,EAAWf,EAAMuC,UACY,cAA1BF,EAAOvC,EAAOE,KAEL,WAATqC,GAAqBtB,EAAWf,EAAMN,WAAkC,sBAArBM,EAAMN,YAG/D,EAUG8C,EAAoBlC,EAAW,mBAS/BmC,EAAQxC,GAAQA,EAAIwC,KACxBxC,EAAIwC,OAASxC,EAAIyC,QAAQ,qCAAsC,IAiBjE,SAASC,EAAQC,EAAKtD,GAAI,WAACuD,GAAa,GAAS,CAAC,GAEhD,GAAY,OAARD,GAA+B,qBAARA,EACzB,OAGF,IAAIE,EACAC,EAQJ,GALmB,kBAARH,IAETA,EAAM,CAACA,IAGLnC,EAAQmC,GAEV,IAAKE,EAAI,EAAGC,EAAIH,EAAII,OAAQF,EAAIC,EAAGD,IACjCxD,EAAGY,KAAK,KAAM0C,EAAIE,GAAIA,EAAGF,OAEtB,CAEL,MAAMK,EAAOJ,EAAalD,OAAOuD,oBAAoBN,GAAOjD,OAAOsD,KAAKL,GAClEO,EAAMF,EAAKD,OACjB,IAAII,EAEJ,IAAKN,EAAI,EAAGA,EAAIK,EAAKL,IACnBM,EAAMH,EAAKH,GACXxD,EAAGY,KAAK,KAAM0C,EAAIQ,GAAMA,EAAKR,EAEjC,CACF,CAEA,SAASS,EAAQT,EAAKQ,GACpBA,EAAMA,EAAIhD,cACV,MAAM6C,EAAOtD,OAAOsD,KAAKL,GACzB,IACIU,EADAR,EAAIG,EAAKD,OAEb,MAAOF,KAAM,EAEX,GADAQ,EAAOL,EAAKH,GACRM,IAAQE,EAAKlD,cACf,OAAOkD,EAGX,OAAO,IACT,CAEA,MAAMC,EAAU,KAEY,qBAAfC,WAAmCA,WACvB,qBAATC,KAAuBA,KAA0B,qBAAXC,OAAyBA,OAASC,OAHxE,GAMVC,EAAoBC,IAAalD,EAAYkD,IAAYA,IAAYN,EAoB3E,SAASO,IACP,MAAM,SAACC,GAAYH,EAAiBrF,OAASA,MAAQ,CAAC,EAChD2C,EAAS,CAAC,EACV8C,EAAc,CAACnD,EAAKuC,KACxB,MAAMa,EAAYF,GAAYV,EAAQnC,EAAQkC,IAAQA,EAClD1B,EAAcR,EAAO+C,KAAevC,EAAcb,GACpDK,EAAO+C,GAAaH,EAAM5C,EAAO+C,GAAYpD,GACpCa,EAAcb,GACvBK,EAAO+C,GAAaH,EAAM,CAAC,EAAGjD,GACrBJ,EAAQI,GACjBK,EAAO+C,GAAapD,EAAIV,QAExBe,EAAO+C,GAAapD,CACtB,EAGF,IAAK,IAAIiC,EAAI,EAAGC,EAAItD,UAAUuD,OAAQF,EAAIC,EAAGD,IAC3CrD,UAAUqD,IAAMH,EAAQlD,UAAUqD,GAAIkB,GAExC,OAAO9C,CACT,CAYA,MAAMgD,EAAS,CAACC,EAAGC,EAAG7E,GAAUsD,cAAa,CAAC,KAC5CF,EAAQyB,GAAG,CAACvD,EAAKuC,KACX7D,GAAWwB,EAAWF,GACxBsD,EAAEf,GAAO/D,EAAKwB,EAAKtB,GAEnB4E,EAAEf,GAAOvC,CACX,GACC,CAACgC,eACGsB,GAUHE,EAAYC,IACc,QAA1BA,EAAQC,WAAW,KACrBD,EAAUA,EAAQnE,MAAM,IAEnBmE,GAYHE,EAAW,CAAC1D,EAAa2D,EAAkBC,EAAOC,KACtD7D,EAAYlB,UAAYD,OAAOU,OAAOoE,EAAiB7E,UAAW+E,GAClE7D,EAAYlB,UAAUkB,YAAcA,EACpCnB,OAAOiF,eAAe9D,EAAa,QAAS,CAC1C+D,MAAOJ,EAAiB7E,YAE1B8E,GAAS/E,OAAOmF,OAAOhE,EAAYlB,UAAW8E,EAAM,EAYhDK,EAAe,CAACC,EAAWC,EAASC,EAAQC,KAChD,IAAIT,EACA5B,EACAsC,EACJ,MAAMC,EAAS,CAAC,EAIhB,GAFAJ,EAAUA,GAAW,CAAC,EAEL,MAAbD,EAAmB,OAAOC,EAE9B,EAAG,CACDP,EAAQ/E,OAAOuD,oBAAoB8B,GACnClC,EAAI4B,EAAM1B,OACV,MAAOF,KAAM,EACXsC,EAAOV,EAAM5B,GACPqC,IAAcA,EAAWC,EAAMJ,EAAWC,IAAcI,EAAOD,KACnEH,EAAQG,GAAQJ,EAAUI,GAC1BC,EAAOD,IAAQ,GAGnBJ,GAAuB,IAAXE,GAAoBrF,EAAemF,EACjD,OAASA,KAAeE,GAAUA,EAAOF,EAAWC,KAAaD,IAAcrF,OAAOC,WAEtF,OAAOqF,CAAO,EAYVK,EAAW,CAACrF,EAAKsF,EAAcC,KACnCvF,EAAMwF,OAAOxF,SACIyF,IAAbF,GAA0BA,EAAWvF,EAAI+C,UAC3CwC,EAAWvF,EAAI+C,QAEjBwC,GAAYD,EAAavC,OACzB,MAAM2C,EAAY1F,EAAI2F,QAAQL,EAAcC,GAC5C,OAAsB,IAAfG,GAAoBA,IAAcH,CAAQ,EAW7CK,EAAW7F,IACf,IAAKA,EAAO,OAAO,KACnB,GAAIS,EAAQT,GAAQ,OAAOA,EAC3B,IAAI8C,EAAI9C,EAAMgD,OACd,IAAKzB,EAASuB,GAAI,OAAO,KACzB,MAAMgD,EAAM,IAAIpF,MAAMoC,GACtB,MAAOA,KAAM,EACXgD,EAAIhD,GAAK9C,EAAM8C,GAEjB,OAAOgD,CAAG,EAYNC,EAAe,CAACC,GAEbhG,GACEgG,GAAchG,aAAiBgG,EAHrB,CAKI,qBAAfC,YAA8BpG,EAAeoG,aAUjDC,EAAe,CAACtD,EAAKtD,KACzB,MAAM6G,EAAYvD,GAAOA,EAAIjB,OAAOE,UAE9BA,EAAWsE,EAAUjG,KAAK0C,GAEhC,IAAI1B,EAEJ,OAAQA,EAASW,EAASuE,UAAYlF,EAAOmF,KAAM,CACjD,MAAMC,EAAOpF,EAAO2D,MACpBvF,EAAGY,KAAK0C,EAAK0D,EAAK,GAAIA,EAAK,GAC7B,GAWIC,EAAW,CAACC,EAAQvG,KACxB,IAAIwG,EACJ,MAAMX,EAAM,GAEZ,MAAwC,QAAhCW,EAAUD,EAAOE,KAAKzG,IAC5B6F,EAAIa,KAAKF,GAGX,OAAOX,CAAG,EAINc,EAAatG,EAAW,mBAExBuG,EAAc5G,GACXA,EAAIG,cAAcsC,QAAQ,yBAC/B,SAAkBoE,EAAGC,EAAIC,GACvB,OAAOD,EAAGE,cAAgBD,CAC5B,IAKEE,EAAiB,GAAGA,oBAAoB,CAACtE,EAAKwC,IAAS8B,EAAehH,KAAK0C,EAAKwC,GAA/D,CAAsEzF,OAAOC,WAS9FuH,EAAW7G,EAAW,UAEtB8G,EAAoB,CAACxE,EAAKyE,KAC9B,MAAM1C,EAAchF,OAAO2H,0BAA0B1E,GAC/C2E,EAAqB,CAAC,EAE5B5E,EAAQgC,GAAa,CAAC6C,EAAYC,KAChC,IAAIC,GAC2C,KAA1CA,EAAML,EAAQG,EAAYC,EAAM7E,MACnC2E,EAAmBE,GAAQC,GAAOF,EACpC,IAGF7H,OAAOgI,iBAAiB/E,EAAK2E,EAAmB,EAQ5CK,EAAiBhF,IACrBwE,EAAkBxE,GAAK,CAAC4E,EAAYC,KAElC,GAAI1G,EAAW6B,KAA6D,IAArD,CAAC,YAAa,SAAU,UAAUgD,QAAQ6B,GAC/D,OAAO,EAGT,MAAM5C,EAAQjC,EAAI6E,GAEb1G,EAAW8D,KAEhB2C,EAAWK,YAAa,EAEpB,aAAcL,EAChBA,EAAWM,UAAW,EAInBN,EAAWO,MACdP,EAAWO,IAAM,KACf,MAAMC,MAAM,qCAAwCP,EAAO,IAAK,GAEpE,GACA,EAGEQ,EAAc,CAACC,EAAeC,KAClC,MAAMvF,EAAM,CAAC,EAEPwF,EAAUtC,IACdA,EAAInD,SAAQkC,IACVjC,EAAIiC,IAAS,CAAI,GACjB,EAKJ,OAFApE,EAAQyH,GAAiBE,EAAOF,GAAiBE,EAAO3C,OAAOyC,GAAeG,MAAMF,IAE7EvF,CAAG,EAGN0F,EAAO,OAEPC,EAAiB,CAAC1D,EAAO2D,KAC7B3D,GAASA,EACF4D,OAAOC,SAAS7D,GAASA,EAAQ2D,GAGpCG,EAAQ,6BAERC,GAAQ,aAERC,GAAW,CACfD,SACAD,QACAG,YAAaH,EAAQA,EAAM1B,cAAgB2B,IAGvCG,GAAiB,CAACC,EAAO,GAAIC,EAAWJ,GAASC,eACrD,IAAI7I,EAAM,GACV,MAAM,OAAC+C,GAAUiG,EACjB,MAAOD,IACL/I,GAAOgJ,EAASC,KAAKC,SAAWnG,EAAO,GAGzC,OAAO/C,CAAG,EAUZ,SAASmJ,GAAoBpJ,GAC3B,SAAUA,GAASe,EAAWf,EAAMuC,SAAyC,aAA9BvC,EAAM2B,OAAOC,cAA+B5B,EAAM2B,OAAOE,UAC1G,CAEA,MAAMwH,GAAgBzG,IACpB,MAAM0G,EAAQ,IAAI5I,MAAM,IAElB6I,EAAQ,CAACC,EAAQ1G,KAErB,GAAItB,EAASgI,GAAS,CACpB,GAAIF,EAAM1D,QAAQ4D,IAAW,EAC3B,OAGF,KAAK,WAAYA,GAAS,CACxBF,EAAMxG,GAAK0G,EACX,MAAMC,EAAShJ,EAAQ+I,GAAU,GAAK,CAAC,EASvC,OAPA7G,EAAQ6G,GAAQ,CAAC3E,EAAOzB,KACtB,MAAMsG,EAAeH,EAAM1E,EAAO/B,EAAI,IACrCnC,EAAY+I,KAAkBD,EAAOrG,GAAOsG,EAAa,IAG5DJ,EAAMxG,QAAK4C,EAEJ+D,CACT,CACF,CAEA,OAAOD,CAAM,EAGf,OAAOD,EAAM3G,EAAK,EAAE,EAGhB+G,GAAYrJ,EAAW,iBAEvBsJ,GAAc5J,GAClBA,IAAUwB,EAASxB,IAAUe,EAAWf,KAAWe,EAAWf,EAAM6J,OAAS9I,EAAWf,EAAM8J,OAEhG,QACErJ,UACAO,gBACAJ,WACAwB,aACAnB,oBACAK,WACAC,WACAE,YACAD,WACAE,gBACAf,cACAmB,SACAC,SACAC,SACAmF,WACApG,aACAmB,WACAM,oBACAuD,eACA9D,aACAU,UACAmB,QACAI,SACAzB,OACA4B,WACAG,WACAO,eACAjF,SACAQ,aACAgF,WACAO,UACAK,eACAK,WACAK,aACAM,eAAc,EACd6C,WAAY7C,EACZE,oBACAQ,gBACAK,cACApB,cACAyB,OACAC,iBACAlF,UACAM,OAAQJ,EACRK,mBACAiF,YACAE,kBACAK,uBACAC,gBACAM,aACAC,e,OClsBF,SAASI,GAAWC,EAASC,EAAMC,EAAQC,EAASC,GAClDrC,MAAM9H,KAAK3B,MAEPyJ,MAAMsC,kBACRtC,MAAMsC,kBAAkB/L,KAAMA,KAAKuC,aAEnCvC,KAAK+K,OAAS,IAAItB,OAASsB,MAG7B/K,KAAK0L,QAAUA,EACf1L,KAAKkJ,KAAO,aACZyC,IAAS3L,KAAK2L,KAAOA,GACrBC,IAAW5L,KAAK4L,OAASA,GACzBC,IAAY7L,KAAK6L,QAAUA,GAC3BC,IAAa9L,KAAK8L,SAAWA,EAC/B,CAEAE,GAAM/F,SAASwF,GAAYhC,MAAO,CAChCwC,OAAQ,WACN,MAAO,CAELP,QAAS1L,KAAK0L,QACdxC,KAAMlJ,KAAKkJ,KAEXgD,YAAalM,KAAKkM,YAClBC,OAAQnM,KAAKmM,OAEbC,SAAUpM,KAAKoM,SACfC,WAAYrM,KAAKqM,WACjBC,aAActM,KAAKsM,aACnBvB,MAAO/K,KAAK+K,MAEZa,OAAQI,GAAMlB,aAAa9K,KAAK4L,QAChCD,KAAM3L,KAAK2L,KACXY,OAAQvM,KAAK8L,UAAY9L,KAAK8L,SAASS,OAASvM,KAAK8L,SAASS,OAAS,KAE3E,IAGF,MAAMlL,GAAYoK,GAAWpK,UACvB+E,GAAc,CAAC,EAErB,CACE,uBACA,iBACA,eACA,YACA,cACA,4BACA,iBACA,mBACA,kBACA,eACA,kBACA,mBAEAhC,SAAQuH,IACRvF,GAAYuF,GAAQ,CAACrF,MAAOqF,EAAK,IAGnCvK,OAAOgI,iBAAiBqC,GAAYrF,IACpChF,OAAOiF,eAAehF,GAAW,eAAgB,CAACiF,OAAO,IAGzDmF,GAAWe,KAAO,CAACC,EAAOd,EAAMC,EAAQC,EAASC,EAAUY,KACzD,MAAMC,EAAavL,OAAOU,OAAOT,IAgBjC,OAdA2K,GAAMxF,aAAaiG,EAAOE,GAAY,SAAgBtI,GACpD,OAAOA,IAAQoF,MAAMpI,SACvB,IAAGwF,GACe,iBAATA,IAGT4E,GAAW9J,KAAKgL,EAAYF,EAAMf,QAASC,EAAMC,EAAQC,EAASC,GAElEa,EAAWC,MAAQH,EAEnBE,EAAWzD,KAAOuD,EAAMvD,KAExBwD,GAAetL,OAAOmF,OAAOoG,EAAYD,GAElCC,CAAU,EAGnB,UClGA,QCaA,SAASE,GAAYpL,GACnB,OAAOuK,GAAM7I,cAAc1B,IAAUuK,GAAM9J,QAAQT,EACrD,CASA,SAASqL,GAAejI,GACtB,OAAOmH,GAAMjF,SAASlC,EAAK,MAAQA,EAAIjD,MAAM,GAAI,GAAKiD,CACxD,CAWA,SAASkI,GAAUC,EAAMnI,EAAKoI,GAC5B,OAAKD,EACEA,EAAKE,OAAOrI,GAAKsI,KAAI,SAAcC,EAAO7I,GAG/C,OADA6I,EAAQN,GAAeM,IACfH,GAAQ1I,EAAI,IAAM6I,EAAQ,IAAMA,CAC1C,IAAGC,KAAKJ,EAAO,IAAM,IALHpI,CAMpB,CASA,SAASyI,GAAY/F,GACnB,OAAOyE,GAAM9J,QAAQqF,KAASA,EAAIgG,KAAKV,GACzC,CAEA,MAAMW,GAAaxB,GAAMxF,aAAawF,GAAO,CAAC,EAAG,MAAM,SAAgBnF,GACrE,MAAO,WAAW4G,KAAK5G,EACzB,IAyBA,SAAS6G,GAAWrJ,EAAKsJ,EAAUC,GACjC,IAAK5B,GAAM/I,SAASoB,GAClB,MAAM,IAAIwJ,UAAU,4BAItBF,EAAWA,GAAY,IAAKG,IAAoB/J,UAGhD6J,EAAU5B,GAAMxF,aAAaoH,EAAS,CACpCG,YAAY,EACZd,MAAM,EACNe,SAAS,IACR,GAAO,SAAiBC,EAAQhD,GAEjC,OAAQe,GAAM5J,YAAY6I,EAAOgD,GACnC,IAEA,MAAMF,EAAaH,EAAQG,WAErBG,EAAUN,EAAQM,SAAWC,EAC7BlB,EAAOW,EAAQX,KACfe,EAAUJ,EAAQI,QAClBI,EAAQR,EAAQS,MAAwB,qBAATA,MAAwBA,KACvDC,EAAUF,GAASpC,GAAMnB,oBAAoB8C,GAEnD,IAAK3B,GAAMxJ,WAAW0L,GACpB,MAAM,IAAIL,UAAU,8BAGtB,SAASU,EAAajI,GACpB,GAAc,OAAVA,EAAgB,MAAO,GAE3B,GAAI0F,GAAMzI,OAAO+C,GACf,OAAOA,EAAMkI,cAGf,IAAKF,GAAWtC,GAAMvI,OAAO6C,GAC3B,MAAM,IAAImF,GAAW,gDAGvB,OAAIO,GAAMvJ,cAAc6D,IAAU0F,GAAMxE,aAAalB,GAC5CgI,GAA2B,oBAATD,KAAsB,IAAIA,KAAK,CAAC/H,IAAUmI,OAAOjC,KAAKlG,GAG1EA,CACT,CAYA,SAAS6H,EAAe7H,EAAOzB,EAAKmI,GAClC,IAAIzF,EAAMjB,EAEV,GAAIA,IAAU0G,GAAyB,kBAAV1G,EAC3B,GAAI0F,GAAMjF,SAASlC,EAAK,MAEtBA,EAAMkJ,EAAalJ,EAAMA,EAAIjD,MAAM,GAAI,GAEvC0E,EAAQoI,KAAKC,UAAUrI,QAClB,GACJ0F,GAAM9J,QAAQoE,IAAUgH,GAAYhH,KACnC0F,GAAMtI,WAAW4C,IAAU0F,GAAMjF,SAASlC,EAAK,SAAW0C,EAAMyE,GAAM1E,QAAQhB,IAYhF,OATAzB,EAAMiI,GAAejI,GAErB0C,EAAInD,SAAQ,SAAcwK,EAAIC,IAC1B7C,GAAM5J,YAAYwM,IAAc,OAAPA,GAAgBjB,EAAS3J,QAEtC,IAAZgK,EAAmBjB,GAAU,CAAClI,GAAMgK,EAAO5B,GAAqB,OAAZe,EAAmBnJ,EAAMA,EAAM,KACnF0J,EAAaK,GAEjB,KACO,EAIX,QAAI/B,GAAYvG,KAIhBqH,EAAS3J,OAAO+I,GAAUC,EAAMnI,EAAKoI,GAAOsB,EAAajI,KAElD,EACT,CAEA,MAAMyE,EAAQ,GAER+D,EAAiB1N,OAAOmF,OAAOiH,GAAY,CAC/CW,iBACAI,eACA1B,iBAGF,SAASkC,EAAMzI,EAAO0G,GACpB,IAAIhB,GAAM5J,YAAYkE,GAAtB,CAEA,IAA8B,IAA1ByE,EAAM1D,QAAQf,GAChB,MAAMmD,MAAM,kCAAoCuD,EAAKK,KAAK,MAG5DtC,EAAM3C,KAAK9B,GAEX0F,GAAM5H,QAAQkC,GAAO,SAAcsI,EAAI/J,GACrC,MAAMlC,IAAWqJ,GAAM5J,YAAYwM,IAAc,OAAPA,IAAgBV,EAAQvM,KAChEgM,EAAUiB,EAAI5C,GAAMjJ,SAAS8B,GAAOA,EAAIX,OAASW,EAAKmI,EAAM8B,IAG/C,IAAXnM,GACFoM,EAAMH,EAAI5B,EAAOA,EAAKE,OAAOrI,GAAO,CAACA,GAEzC,IAEAkG,EAAMiE,KAlB8B,CAmBtC,CAEA,IAAKhD,GAAM/I,SAASoB,GAClB,MAAM,IAAIwJ,UAAU,0BAKtB,OAFAkB,EAAM1K,GAECsJ,CACT,CAEA,UC9MA,SAASsB,GAAOvN,GACd,MAAMwN,EAAU,CACd,IAAK,MACL,IAAK,MACL,IAAK,MACL,IAAK,MACL,IAAK,MACL,MAAO,IACP,MAAO,MAET,OAAOC,mBAAmBzN,GAAKyC,QAAQ,oBAAoB,SAAkBiL,GAC3E,OAAOF,EAAQE,EACjB,GACF,CAUA,SAASC,GAAqBC,EAAQ1B,GACpC5N,KAAKuP,OAAS,GAEdD,GAAU5B,GAAW4B,EAAQtP,KAAM4N,EACrC,CAEA,MAAMvM,GAAYgO,GAAqBhO,UAEvCA,GAAU2C,OAAS,SAAgBkF,EAAM5C,GACvCtG,KAAKuP,OAAOnH,KAAK,CAACc,EAAM5C,GAC1B,EAEAjF,GAAUF,SAAW,SAAkBqO,GACrC,MAAMC,EAAUD,EAAU,SAASlJ,GACjC,OAAOkJ,EAAQ7N,KAAK3B,KAAMsG,EAAO2I,GACnC,EAAIA,GAEJ,OAAOjP,KAAKuP,OAAOpC,KAAI,SAAcpF,GACnC,OAAO0H,EAAQ1H,EAAK,IAAM,IAAM0H,EAAQ1H,EAAK,GAC/C,GAAG,IAAIsF,KAAK,IACd,EAEA,UC5CA,SAAS4B,GAAO3M,GACd,OAAO6M,mBAAmB7M,GACxB6B,QAAQ,QAAS,KACjBA,QAAQ,OAAQ,KAChBA,QAAQ,QAAS,KACjBA,QAAQ,OAAQ,KAChBA,QAAQ,QAAS,KACjBA,QAAQ,QAAS,IACrB,CAWe,SAASuL,GAASC,EAAKL,EAAQ1B,GAE5C,IAAK0B,EACH,OAAOK,EAGT,MAAMF,EAAU7B,GAAWA,EAAQqB,QAAUA,GAEvCW,EAAchC,GAAWA,EAAQiC,UAEvC,IAAIC,EAUJ,GAPEA,EADEF,EACiBA,EAAYN,EAAQ1B,GAEpB5B,GAAM/H,kBAAkBqL,GACzCA,EAAOnO,WACP,IAAIkO,GAAqBC,EAAQ1B,GAASzM,SAASsO,GAGnDK,EAAkB,CACpB,MAAMC,EAAgBJ,EAAItI,QAAQ,MAEX,IAAnB0I,IACFJ,EAAMA,EAAI/N,MAAM,EAAGmO,IAErBJ,KAA8B,IAAtBA,EAAItI,QAAQ,KAAc,IAAM,KAAOyI,CACjD,CAEA,OAAOH,CACT,CC1DA,MAAMK,GACJzN,cACEvC,KAAKiQ,SAAW,EAClB,CAUAC,IAAIC,EAAWC,EAAUxC,GAOvB,OANA5N,KAAKiQ,SAAS7H,KAAK,CACjB+H,YACAC,WACAC,cAAazC,GAAUA,EAAQyC,YAC/BC,QAAS1C,EAAUA,EAAQ0C,QAAU,OAEhCtQ,KAAKiQ,SAASxL,OAAS,CAChC,CASA8L,MAAMC,GACAxQ,KAAKiQ,SAASO,KAChBxQ,KAAKiQ,SAASO,GAAM,KAExB,CAOAC,QACMzQ,KAAKiQ,WACPjQ,KAAKiQ,SAAW,GAEpB,CAYA7L,QAAQrD,GACNiL,GAAM5H,QAAQpE,KAAKiQ,UAAU,SAAwBS,GACzC,OAANA,GACF3P,EAAG2P,EAEP,GACF,EAGF,UCpEA,IACEC,mBAAmB,EACnBC,mBAAmB,EACnBC,qBAAqB,GCFvB,GAA0C,qBAApBC,gBAAkCA,gBAAkBzB,GCD1E,GAAmC,qBAAbtL,SAA2BA,SAAW,KCA5D,GAA+B,qBAATsK,KAAuBA,KAAO,KCmBpD,MAAM0C,GAAuB,MAC3B,IAAIC,EACJ,OAAyB,qBAAdC,WACyB,iBAAjCD,EAAUC,UAAUD,UACT,iBAAZA,GACY,OAAZA,KAKuB,qBAAX7L,QAA8C,qBAAb+L,SAChD,EAX4B,GAsBtBC,GAAgC,KAEN,qBAAtBC,mBAEPlM,gBAAgBkM,mBACc,oBAAvBlM,KAAKmM,cALuB,GAUvC,QACEC,WAAW,EACXC,QAAS,CACPT,gBAAe,GACf/M,SAAQ,GACRsK,KAAIA,IAEN0C,wBACAI,iCACAK,UAAW,CAAC,OAAQ,QAAS,OAAQ,OAAQ,MAAO,SCxDvC,SAASC,GAAiBC,EAAM9D,GAC7C,OAAOF,GAAWgE,EAAM,IAAIC,GAAAA,QAAAA,gBAAoCvQ,OAAOmF,OAAO,CAC5E2H,QAAS,SAAS5H,EAAOzB,EAAKmI,EAAM4E,GAClC,OAAID,GAAAA,QAAmB3F,GAAM3J,SAASiE,IACpCtG,KAAKgE,OAAOa,EAAKyB,EAAMnF,SAAS,YACzB,GAGFyQ,EAAQzD,eAAelN,MAAMjB,KAAMkB,UAC5C,GACC0M,GACL,CCNA,SAASiE,GAAc3I,GAKrB,OAAO8C,GAAMhE,SAAS,gBAAiBkB,GAAMiE,KAAIiC,GAC3B,OAAbA,EAAM,GAAc,GAAKA,EAAM,IAAMA,EAAM,IAEtD,CASA,SAAS0C,GAAcvK,GACrB,MAAMlD,EAAM,CAAC,EACPK,EAAOtD,OAAOsD,KAAK6C,GACzB,IAAIhD,EACJ,MAAMK,EAAMF,EAAKD,OACjB,IAAII,EACJ,IAAKN,EAAI,EAAGA,EAAIK,EAAKL,IACnBM,EAAMH,EAAKH,GACXF,EAAIQ,GAAO0C,EAAI1C,GAEjB,OAAOR,CACT,CASA,SAAS0N,GAAepE,GACtB,SAASqE,EAAUhF,EAAM1G,EAAO4E,EAAQ2D,GACtC,IAAI3F,EAAO8D,EAAK6B,KAChB,MAAMoD,EAAe/H,OAAOC,UAAUjB,GAChCgJ,EAASrD,GAAS7B,EAAKvI,OAG7B,GAFAyE,GAAQA,GAAQ8C,GAAM9J,QAAQgJ,GAAUA,EAAOzG,OAASyE,EAEpDgJ,EAOF,OANIlG,GAAMR,WAAWN,EAAQhC,GAC3BgC,EAAOhC,GAAQ,CAACgC,EAAOhC,GAAO5C,GAE9B4E,EAAOhC,GAAQ5C,GAGT2L,EAGL/G,EAAOhC,IAAU8C,GAAM/I,SAASiI,EAAOhC,MAC1CgC,EAAOhC,GAAQ,IAGjB,MAAMvG,EAASqP,EAAUhF,EAAM1G,EAAO4E,EAAOhC,GAAO2F,GAMpD,OAJIlM,GAAUqJ,GAAM9J,QAAQgJ,EAAOhC,MACjCgC,EAAOhC,GAAQ4I,GAAc5G,EAAOhC,MAG9B+I,CACV,CAEA,GAAIjG,GAAMnI,WAAW8J,IAAa3B,GAAMxJ,WAAWmL,EAASwE,SAAU,CACpE,MAAM9N,EAAM,CAAC,EAMb,OAJA2H,GAAMrE,aAAagG,GAAU,CAACzE,EAAM5C,KAClC0L,EAAUH,GAAc3I,GAAO5C,EAAOjC,EAAK,EAAE,IAGxCA,CACT,CAEA,OAAO,IACT,CAEA,UCvEA,SAAS+N,GAAgBC,EAAUC,EAAQ9C,GACzC,GAAIxD,GAAMjJ,SAASsP,GACjB,IAEE,OADCC,GAAU5D,KAAK6D,OAAOF,GAChBrG,GAAM9H,KAAKmO,EAKpB,CAJE,MAAOG,GACP,GAAe,gBAAXA,EAAEtJ,KACJ,MAAMsJ,CAEV,CAGF,OAAQhD,GAAWd,KAAKC,WAAW0D,EACrC,CAEA,MAAMI,GAAW,CAEfC,aAAcC,GAEdC,QAAS,CAAC,MAAO,QAEjBC,iBAAkB,CAAC,SAA0BnB,EAAMoB,GACjD,MAAMC,EAAcD,EAAQE,kBAAoB,GAC1CC,EAAqBF,EAAY1L,QAAQ,qBAAuB,EAChE6L,EAAkBlH,GAAM/I,SAASyO,GAEnCwB,GAAmBlH,GAAM3D,WAAWqJ,KACtCA,EAAO,IAAI3N,SAAS2N,IAGtB,MAAM7N,EAAamI,GAAMnI,WAAW6N,GAEpC,GAAI7N,EACF,OAAKoP,GAGEA,EAAqBvE,KAAKC,UAAUoD,GAAeL,IAFjDA,EAKX,GAAI1F,GAAMvJ,cAAciP,IACtB1F,GAAM3J,SAASqP,IACf1F,GAAMrI,SAAS+N,IACf1F,GAAMxI,OAAOkO,IACb1F,GAAMvI,OAAOiO,GAEb,OAAOA,EAET,GAAI1F,GAAMtJ,kBAAkBgP,GAC1B,OAAOA,EAAK5O,OAEd,GAAIkJ,GAAM/H,kBAAkByN,GAE1B,OADAoB,EAAQK,eAAe,mDAAmD,GACnEzB,EAAKvQ,WAGd,IAAIuC,EAEJ,GAAIwP,EAAiB,CACnB,GAAIH,EAAY1L,QAAQ,sCAAwC,EAC9D,OAAOoK,GAAiBC,EAAM1R,KAAKoT,gBAAgBjS,WAGrD,IAAKuC,EAAasI,GAAMtI,WAAWgO,KAAUqB,EAAY1L,QAAQ,wBAA0B,EAAG,CAC5F,MAAMgM,EAAYrT,KAAKsT,KAAOtT,KAAKsT,IAAIvP,SAEvC,OAAO2J,GACLhK,EAAa,CAAC,UAAWgO,GAAQA,EACjC2B,GAAa,IAAIA,EACjBrT,KAAKoT,eAET,CACF,CAEA,OAAIF,GAAmBD,GACrBH,EAAQK,eAAe,oBAAoB,GACpCf,GAAgBV,IAGlBA,CACT,GAEA6B,kBAAmB,CAAC,SAA2B7B,GAC7C,MAAMgB,EAAe1S,KAAK0S,cAAgBD,GAASC,aAC7C9B,EAAoB8B,GAAgBA,EAAa9B,kBACjD4C,EAAsC,SAAtBxT,KAAKyT,aAE3B,GAAI/B,GAAQ1F,GAAMjJ,SAAS2O,KAAWd,IAAsB5Q,KAAKyT,cAAiBD,GAAgB,CAChG,MAAM7C,EAAoB+B,GAAgBA,EAAa/B,kBACjD+C,GAAqB/C,GAAqB6C,EAEhD,IACE,OAAO9E,KAAK6D,MAAMb,EAQpB,CAPE,MAAOc,GACP,GAAIkB,EAAmB,CACrB,GAAe,gBAAXlB,EAAEtJ,KACJ,MAAMuC,GAAAA,KAAgB+G,EAAG/G,GAAAA,iBAA6BzL,KAAM,KAAMA,KAAK8L,UAEzE,MAAM0G,CACR,CACF,CACF,CAEA,OAAOd,CACT,GAMAiC,QAAS,EAETC,eAAgB,aAChBC,eAAgB,eAEhBC,kBAAmB,EACnBC,eAAgB,EAEhBT,IAAK,CACHvP,SAAU4N,GAAAA,QAAAA,SACVtD,KAAMsD,GAAAA,QAAAA,MAGRqC,eAAgB,SAAwBzH,GACtC,OAAOA,GAAU,KAAOA,EAAS,GACnC,EAEAuG,QAAS,CACPmB,OAAQ,CACN,OAAU,oCACV,oBAAgB9M,KAKtB6E,GAAM5H,QAAQ,CAAC,SAAU,MAAO,OAAQ,OAAQ,MAAO,UAAW8P,IAChEzB,GAASK,QAAQoB,GAAU,CAAC,CAAC,IAG/B,UCxJA,MAAMC,GAAoBnI,GAAMtC,YAAY,CAC1C,MAAO,gBAAiB,iBAAkB,eAAgB,OAC1D,UAAW,OAAQ,OAAQ,oBAAqB,sBAChD,gBAAiB,WAAY,eAAgB,sBAC7C,UAAW,cAAe,eAiB5B,OAAe0K,IACb,MAAMC,EAAS,CAAC,EAChB,IAAIxP,EACAvC,EACAiC,EAsBJ,OApBA6P,GAAcA,EAAWtK,MAAM,MAAM1F,SAAQ,SAAgBkQ,GAC3D/P,EAAI+P,EAAKjN,QAAQ,KACjBxC,EAAMyP,EAAKC,UAAU,EAAGhQ,GAAGL,OAAOrC,cAClCS,EAAMgS,EAAKC,UAAUhQ,EAAI,GAAGL,QAEvBW,GAAQwP,EAAOxP,IAAQsP,GAAkBtP,KAIlC,eAARA,EACEwP,EAAOxP,GACTwP,EAAOxP,GAAKuD,KAAK9F,GAEjB+R,EAAOxP,GAAO,CAACvC,GAGjB+R,EAAOxP,GAAOwP,EAAOxP,GAAOwP,EAAOxP,GAAO,KAAOvC,EAAMA,EAE3D,IAEO+R,CACR,ECjDD,MAAMG,GAAapR,OAAO,aAE1B,SAASqR,GAAgBC,GACvB,OAAOA,GAAUxN,OAAOwN,GAAQxQ,OAAOrC,aACzC,CAEA,SAAS8S,GAAerO,GACtB,OAAc,IAAVA,GAA4B,MAATA,EACdA,EAGF0F,GAAM9J,QAAQoE,GAASA,EAAM6G,IAAIwH,IAAkBzN,OAAOZ,EACnE,CAEA,SAASsO,GAAYlT,GACnB,MAAMmT,EAASzT,OAAOU,OAAO,MACvBgT,EAAW,mCACjB,IAAI1F,EAEJ,MAAQA,EAAQ0F,EAAS3M,KAAKzG,GAC5BmT,EAAOzF,EAAM,IAAMA,EAAM,GAG3B,OAAOyF,CACT,CAEA,MAAME,GAAqBrT,GAAQ,iCAAiC+L,KAAK/L,EAAIwC,QAE7E,SAAS8Q,GAAiB1P,EAASgB,EAAOoO,EAAQ/N,EAAQsO,GACxD,OAAIjJ,GAAMxJ,WAAWmE,GACZA,EAAOhF,KAAK3B,KAAMsG,EAAOoO,IAG9BO,IACF3O,EAAQoO,GAGL1I,GAAMjJ,SAASuD,GAEhB0F,GAAMjJ,SAAS4D,IACiB,IAA3BL,EAAMe,QAAQV,GAGnBqF,GAAMpD,SAASjC,GACVA,EAAO8G,KAAKnH,QADrB,OANA,EASF,CAEA,SAAS4O,GAAaR,GACpB,OAAOA,EAAOxQ,OACXrC,cAAcsC,QAAQ,mBAAmB,CAACgR,EAAGC,EAAM1T,IAC3C0T,EAAK1M,cAAgBhH,GAElC,CAEA,SAAS2T,GAAehR,EAAKqQ,GAC3B,MAAMY,EAAetJ,GAAM1D,YAAY,IAAMoM,GAE7C,CAAC,MAAO,MAAO,OAAOtQ,SAAQmR,IAC5BnU,OAAOiF,eAAehC,EAAKkR,EAAaD,EAAc,CACpDhP,MAAO,SAASkP,EAAMC,EAAMC,GAC1B,OAAO1V,KAAKuV,GAAY5T,KAAK3B,KAAM0U,EAAQc,EAAMC,EAAMC,EACzD,EACAC,cAAc,GACd,GAEN,CAEA,MAAMC,GACJrT,YAAYuQ,GACVA,GAAW9S,KAAKwJ,IAAIsJ,EACtB,CAEAtJ,IAAIkL,EAAQmB,EAAgBC,GAC1B,MAAM5Q,EAAOlF,KAEb,SAAS+V,EAAUC,EAAQC,EAASC,GAClC,MAAMC,EAAU1B,GAAgBwB,GAEhC,IAAKE,EACH,MAAM,IAAI1M,MAAM,0CAGlB,MAAM5E,EAAMmH,GAAMlH,QAAQI,EAAMiR,KAE5BtR,QAAqBsC,IAAdjC,EAAKL,KAAmC,IAAbqR,QAAmC/O,IAAb+O,IAAwC,IAAdhR,EAAKL,MACzFK,EAAKL,GAAOoR,GAAWtB,GAAeqB,GAE1C,CAEA,MAAMI,EAAa,CAACtD,EAASoD,IAC3BlK,GAAM5H,QAAQ0O,GAAS,CAACkD,EAAQC,IAAYF,EAAUC,EAAQC,EAASC,KAUzE,OARIlK,GAAM7I,cAAcuR,IAAWA,aAAkB1U,KAAKuC,YACxD6T,EAAW1B,EAAQmB,GACX7J,GAAMjJ,SAAS2R,KAAYA,EAASA,EAAOxQ,UAAY6Q,GAAkBL,GACjF0B,EAAWC,GAAa3B,GAASmB,GAEvB,MAAVnB,GAAkBqB,EAAUF,EAAgBnB,EAAQoB,GAG/C9V,IACT,CAEAsW,IAAI5B,EAAQpC,GAGV,GAFAoC,EAASD,GAAgBC,GAErBA,EAAQ,CACV,MAAM7P,EAAMmH,GAAMlH,QAAQ9E,KAAM0U,GAEhC,GAAI7P,EAAK,CACP,MAAMyB,EAAQtG,KAAK6E,GAEnB,IAAKyN,EACH,OAAOhM,EAGT,IAAe,IAAXgM,EACF,OAAOsC,GAAYtO,GAGrB,GAAI0F,GAAMxJ,WAAW8P,GACnB,OAAOA,EAAO3Q,KAAK3B,KAAMsG,EAAOzB,GAGlC,GAAImH,GAAMpD,SAAS0J,GACjB,OAAOA,EAAOnK,KAAK7B,GAGrB,MAAM,IAAIuH,UAAU,yCACtB,CACF,CACF,CAEA0I,IAAI7B,EAAQ8B,GAGV,GAFA9B,EAASD,GAAgBC,GAErBA,EAAQ,CACV,MAAM7P,EAAMmH,GAAMlH,QAAQ9E,KAAM0U,GAEhC,SAAU7P,QAAqBsC,IAAdnH,KAAK6E,IAAwB2R,IAAWxB,GAAiBhV,KAAMA,KAAK6E,GAAMA,EAAK2R,GAClG,CAEA,OAAO,CACT,CAEAC,OAAO/B,EAAQ8B,GACb,MAAMtR,EAAOlF,KACb,IAAI0W,GAAU,EAEd,SAASC,EAAaV,GAGpB,GAFAA,EAAUxB,GAAgBwB,GAEtBA,EAAS,CACX,MAAMpR,EAAMmH,GAAMlH,QAAQI,EAAM+Q,IAE5BpR,GAAS2R,IAAWxB,GAAiB9P,EAAMA,EAAKL,GAAMA,EAAK2R,YACtDtR,EAAKL,GAEZ6R,GAAU,EAEd,CACF,CAQA,OANI1K,GAAM9J,QAAQwS,GAChBA,EAAOtQ,QAAQuS,GAEfA,EAAajC,GAGRgC,CACT,CAEAjG,MAAM+F,GACJ,MAAM9R,EAAOtD,OAAOsD,KAAK1E,MACzB,IAAIuE,EAAIG,EAAKD,OACTiS,GAAU,EAEd,MAAOnS,IAAK,CACV,MAAMM,EAAMH,EAAKH,GACbiS,IAAWxB,GAAiBhV,KAAMA,KAAK6E,GAAMA,EAAK2R,GAAS,YACtDxW,KAAK6E,GACZ6R,GAAU,EAEd,CAEA,OAAOA,CACT,CAEAE,UAAUC,GACR,MAAM3R,EAAOlF,KACP8S,EAAU,CAAC,EAsBjB,OApBA9G,GAAM5H,QAAQpE,MAAM,CAACsG,EAAOoO,KAC1B,MAAM7P,EAAMmH,GAAMlH,QAAQgO,EAAS4B,GAEnC,GAAI7P,EAGF,OAFAK,EAAKL,GAAO8P,GAAerO,eACpBpB,EAAKwP,GAId,MAAMoC,EAAaD,EAAS3B,GAAaR,GAAUxN,OAAOwN,GAAQxQ,OAE9D4S,IAAepC,UACVxP,EAAKwP,GAGdxP,EAAK4R,GAAcnC,GAAerO,GAElCwM,EAAQgE,IAAc,CAAI,IAGrB9W,IACT,CAEAkN,UAAU6J,GACR,OAAO/W,KAAKuC,YAAY2K,OAAOlN,QAAS+W,EAC1C,CAEA9K,OAAO+K,GACL,MAAM3S,EAAMjD,OAAOU,OAAO,MAM1B,OAJAkK,GAAM5H,QAAQpE,MAAM,CAACsG,EAAOoO,KACjB,MAATpO,IAA2B,IAAVA,IAAoBjC,EAAIqQ,GAAUsC,GAAahL,GAAM9J,QAAQoE,GAASA,EAAM+G,KAAK,MAAQ/G,EAAM,IAG3GjC,CACT,CAEA,CAACjB,OAAOE,YACN,OAAOlC,OAAO+Q,QAAQnS,KAAKiM,UAAU7I,OAAOE,WAC9C,CAEAnC,WACE,OAAOC,OAAO+Q,QAAQnS,KAAKiM,UAAUkB,KAAI,EAAEuH,EAAQpO,KAAWoO,EAAS,KAAOpO,IAAO+G,KAAK,KAC5F,CAEYhK,IAAPD,OAAOC,eACV,MAAO,cACT,CAEA4T,YAAYxV,GACV,OAAOA,aAAiBzB,KAAOyB,EAAQ,IAAIzB,KAAKyB,EAClD,CAEAwV,cAAcC,KAAUH,GACtB,MAAMI,EAAW,IAAInX,KAAKkX,GAI1B,OAFAH,EAAQ3S,SAAS8G,GAAWiM,EAAS3N,IAAI0B,KAElCiM,CACT,CAEAF,gBAAgBvC,GACd,MAAM0C,EAAYpX,KAAKwU,IAAexU,KAAKwU,IAAc,CACvD6C,UAAW,CAAC,GAGRA,EAAYD,EAAUC,UACtBhW,EAAYrB,KAAKqB,UAEvB,SAASiW,EAAerB,GACtB,MAAME,EAAU1B,GAAgBwB,GAE3BoB,EAAUlB,KACbd,GAAehU,EAAW4U,GAC1BoB,EAAUlB,IAAW,EAEzB,CAIA,OAFAnK,GAAM9J,QAAQwS,GAAUA,EAAOtQ,QAAQkT,GAAkBA,EAAe5C,GAEjE1U,IACT,EAGF4V,GAAa2B,SAAS,CAAC,eAAgB,iBAAkB,SAAU,kBAAmB,aAAc,kBAGpGvL,GAAMnD,kBAAkB+M,GAAavU,WAAW,EAAEiF,SAAQzB,KACxD,IAAI2S,EAAS3S,EAAI,GAAG6D,cAAgB7D,EAAIjD,MAAM,GAC9C,MAAO,CACL0U,IAAK,IAAMhQ,EACXkD,IAAIiO,GACFzX,KAAKwX,GAAUC,CACjB,EACD,IAGHzL,GAAM3C,cAAcuM,IAEpB,UC3Re,SAAS8B,GAAcC,EAAK7L,GACzC,MAAMF,EAAS5L,MAAQyS,GACjBnN,EAAUwG,GAAYF,EACtBkH,EAAU8C,GAAAA,KAAkBtQ,EAAQwN,SAC1C,IAAIpB,EAAOpM,EAAQoM,KAQnB,OANA1F,GAAM5H,QAAQuT,GAAK,SAAmB5W,GACpC2Q,EAAO3Q,EAAGY,KAAKiK,EAAQ8F,EAAMoB,EAAQ8D,YAAa9K,EAAWA,EAASS,YAASpF,EACjF,IAEA2L,EAAQ8D,YAEDlF,CACT,CCzBe,SAASkG,GAAStR,GAC/B,SAAUA,IAASA,EAAMuR,WAC3B,CCUA,SAASC,GAAcpM,EAASE,EAAQC,GAEtCJ,GAAAA,KAAgBzL,KAAiB,MAAX0L,EAAkB,WAAaA,EAASD,GAAAA,aAAyBG,EAAQC,GAC/F7L,KAAKkJ,KAAO,eACd,CAEA8C,GAAM/F,SAAS6R,GAAerM,GAAY,CACxCoM,YAAY,IAGd,U,QCXe,SAASE,GAAOC,EAASC,EAAQnM,GAC9C,MAAMkI,EAAiBlI,EAASF,OAAOoI,eAClClI,EAASS,QAAWyH,IAAkBA,EAAelI,EAASS,QAGjE0L,EAAO,IAAIxM,GACT,mCAAqCK,EAASS,OAC9C,CAACd,GAAAA,gBAA4BA,GAAAA,kBAA6Bd,KAAKuN,MAAMpM,EAASS,OAAS,KAAO,GAC9FT,EAASF,OACTE,EAASD,QACTC,IAPFkM,EAAQlM,EAUZ,CCrBA,OAAe6F,GAAAA,qBAGZ,WACC,MAAO,CACLwG,MAAO,SAAejP,EAAM5C,EAAO8R,EAASpL,EAAMqL,EAAQC,GACxD,MAAMC,EAAS,GACfA,EAAOnQ,KAAKc,EAAO,IAAMiG,mBAAmB7I,IAExC0F,GAAMhJ,SAASoV,IACjBG,EAAOnQ,KAAK,WAAa,IAAIoQ,KAAKJ,GAASK,eAGzCzM,GAAMjJ,SAASiK,IACjBuL,EAAOnQ,KAAK,QAAU4E,GAGpBhB,GAAMjJ,SAASsV,IACjBE,EAAOnQ,KAAK,UAAYiQ,IAGX,IAAXC,GACFC,EAAOnQ,KAAK,UAGd8I,SAASqH,OAASA,EAAOlL,KAAK,KAChC,EAEAqL,KAAM,SAAcxP,GAClB,MAAMkG,EAAQ8B,SAASqH,OAAOnJ,MAAM,IAAIuJ,OAAO,aAAezP,EAAO,cACrE,OAAQkG,EAAQwJ,mBAAmBxJ,EAAM,IAAM,IACjD,EAEAyJ,OAAQ,SAAgB3P,GACtBlJ,KAAKmY,MAAMjP,EAAM,GAAIsP,KAAKM,MAAQ,MACpC,EAEJ,CAlCC,GAqCA,WACC,MAAO,CACLX,MAAO,WAAkB,EACzBO,KAAM,WAAkB,OAAO,IAAM,EACrCG,OAAQ,WAAmB,EAE/B,CANC,GCpCY,SAASE,GAAcpJ,GAIpC,MAAO,8BAA8BlC,KAAKkC,EAC5C,CCJe,SAASqJ,GAAYC,EAASC,GAC3C,OAAOA,EACHD,EAAQ9U,QAAQ,OAAQ,IAAM,IAAM+U,EAAY/U,QAAQ,OAAQ,IAChE8U,CACN,CCCe,SAASE,GAAcF,EAASG,GAC7C,OAAIH,IAAYF,GAAcK,GACrBJ,GAAYC,EAASG,GAEvBA,CACT,CCfA,OAAezH,GAAAA,qBAIZ,WACC,MAAM0H,EAAO,kBAAkB5L,KAAKwD,UAAUqI,WACxCC,EAAiBrI,SAASsI,cAAc,KAC9C,IAAIC,EAQJ,SAASC,EAAW/J,GAClB,IAAIgK,EAAOhK,EAWX,OATI0J,IAEFE,EAAeK,aAAa,OAAQD,GACpCA,EAAOJ,EAAeI,MAGxBJ,EAAeK,aAAa,OAAQD,GAG7B,CACLA,KAAMJ,EAAeI,KACrBE,SAAUN,EAAeM,SAAWN,EAAeM,SAAS1V,QAAQ,KAAM,IAAM,GAChF2V,KAAMP,EAAeO,KACrBC,OAAQR,EAAeQ,OAASR,EAAeQ,OAAO5V,QAAQ,MAAO,IAAM,GAC3E6V,KAAMT,EAAeS,KAAOT,EAAeS,KAAK7V,QAAQ,KAAM,IAAM,GACpE8V,SAAUV,EAAeU,SACzBC,KAAMX,EAAeW,KACrBC,SAAiD,MAAtCZ,EAAeY,SAASC,OAAO,GACxCb,EAAeY,SACf,IAAMZ,EAAeY,SAE3B,CAUA,OARAV,EAAYC,EAAWvU,OAAOkV,SAASV,MAQhC,SAAyBW,GAC9B,MAAMjG,EAAUrI,GAAMjJ,SAASuX,GAAeZ,EAAWY,GAAcA,EACvE,OAAQjG,EAAOwF,WAAaJ,EAAUI,UAClCxF,EAAOyF,OAASL,EAAUK,IAChC,CACF,CAlDC,GAqDA,WACC,OAAO,WACL,OAAO,CACT,CACF,CAJC,GC5DY,SAASS,GAAc5K,GACpC,MAAMP,EAAQ,4BAA4BjH,KAAKwH,GAC/C,OAAOP,GAASA,EAAM,IAAM,EAC9B,CCGA,SAASoL,GAAYC,EAAcC,GACjCD,EAAeA,GAAgB,GAC/B,MAAME,EAAQ,IAAIxY,MAAMsY,GAClBG,EAAa,IAAIzY,MAAMsY,GAC7B,IAEII,EAFAC,EAAO,EACPC,EAAO,EAKX,OAFAL,OAAcvT,IAARuT,EAAoBA,EAAM,IAEzB,SAAcM,GACnB,MAAMlC,EAAMN,KAAKM,MAEXmC,EAAYL,EAAWG,GAExBF,IACHA,EAAgB/B,GAGlB6B,EAAMG,GAAQE,EACdJ,EAAWE,GAAQhC,EAEnB,IAAIvU,EAAIwW,EACJG,EAAa,EAEjB,MAAO3W,IAAMuW,EACXI,GAAcP,EAAMpW,KACpBA,GAAQkW,EASV,GANAK,GAAQA,EAAO,GAAKL,EAEhBK,IAASC,IACXA,GAAQA,EAAO,GAAKN,GAGlB3B,EAAM+B,EAAgBH,EACxB,OAGF,MAAMS,EAASF,GAAanC,EAAMmC,EAElC,OAAOE,EAASxQ,KAAKyQ,MAAmB,IAAbF,EAAoBC,QAAUhU,CAC3D,CACF,CAEA,UCtCA,SAASkU,GAAqBC,EAAUC,GACtC,IAAIC,EAAgB,EACpB,MAAMC,EAAejB,GAAY,GAAI,KAErC,OAAOhI,IACL,MAAMkJ,EAASlJ,EAAEkJ,OACXC,EAAQnJ,EAAEoJ,iBAAmBpJ,EAAEmJ,WAAQxU,EACvC0U,EAAgBH,EAASF,EACzBM,EAAOL,EAAaI,GACpBE,EAAUL,GAAUC,EAE1BH,EAAgBE,EAEhB,MAAMhK,EAAO,CACXgK,SACAC,QACAK,SAAUL,EAASD,EAASC,OAASxU,EACrCwT,MAAOkB,EACPC,KAAMA,QAAc3U,EACpB8U,UAAWH,GAAQH,GAASI,GAAWJ,EAAQD,GAAUI,OAAO3U,EAChE+U,MAAO1J,GAGTd,EAAK6J,EAAmB,WAAa,WAAY,EAEjDD,EAAS5J,EAAK,CAElB,CAEA,MAAMyK,GAAkD,qBAAnBC,eAErC,OAAeD,IAAyB,SAAUvQ,GAChD,OAAO,IAAIyQ,SAAQ,SAA4BrE,EAASC,GACtD,IAAIqE,EAAc1Q,EAAO8F,KACzB,MAAM6K,EAAiB3G,GAAAA,KAAkBhK,EAAOkH,SAAS8D,YACnDnD,EAAe7H,EAAO6H,aAC5B,IAAI+I,EAWAzJ,EAVJ,SAASjL,IACH8D,EAAO6Q,aACT7Q,EAAO6Q,YAAYC,YAAYF,GAG7B5Q,EAAO+Q,QACT/Q,EAAO+Q,OAAOC,oBAAoB,QAASJ,EAE/C,CAIIxQ,GAAMnI,WAAWyY,KACf3K,GAAAA,sBAAiCA,GAAAA,8BACnC4K,EAAepJ,gBAAe,GACrBoJ,EAAevJ,eAAe,4BAE/BhH,GAAMjJ,SAASgQ,EAAcwJ,EAAevJ,mBAEpDuJ,EAAepJ,eAAeJ,EAAY5O,QAAQ,+BAAgC,OAHlFoY,EAAepJ,eAAe,wBAOlC,IAAItH,EAAU,IAAIuQ,eAGlB,GAAIxQ,EAAOiR,KAAM,CACf,MAAMC,EAAWlR,EAAOiR,KAAKC,UAAY,GACnCC,EAAWnR,EAAOiR,KAAKE,SAAWC,SAAS7N,mBAAmBvD,EAAOiR,KAAKE,WAAa,GAC7FR,EAAe/S,IAAI,gBAAiB,SAAWyT,KAAKH,EAAW,IAAMC,GACvE,CAEA,MAAMG,EAAW/D,GAAcvN,EAAOqN,QAASrN,EAAO+D,KAOtD,SAASwN,IACP,IAAKtR,EACH,OAGF,MAAMuR,EAAkBxH,GAAAA,KACtB,0BAA2B/J,GAAWA,EAAQwR,yBAE1CC,EAAgB7J,GAAiC,SAAjBA,GAA4C,SAAjBA,EACxC5H,EAAQC,SAA/BD,EAAQ0R,aACJzR,EAAW,CACf4F,KAAM4L,EACN/Q,OAAQV,EAAQU,OAChBiR,WAAY3R,EAAQ2R,WACpB1K,QAASsK,EACTxR,SACAC,WAGFkM,IAAO,SAAkBzR,GACvB0R,EAAQ1R,GACRwB,GACF,IAAG,SAAiB2V,GAClBxF,EAAOwF,GACP3V,GACF,GAAGgE,GAGHD,EAAU,IACZ,CAmEA,GArGAA,EAAQ6R,KAAK9R,EAAOsI,OAAOxL,cAAegH,GAASwN,EAAUtR,EAAO0D,OAAQ1D,EAAO+R,mBAAmB,GAGtG9R,EAAQ8H,QAAU/H,EAAO+H,QAiCrB,cAAe9H,EAEjBA,EAAQsR,UAAYA,EAGpBtR,EAAQ+R,mBAAqB,WACtB/R,GAAkC,IAAvBA,EAAQgS,aAQD,IAAnBhS,EAAQU,QAAkBV,EAAQiS,aAAwD,IAAzCjS,EAAQiS,YAAYzW,QAAQ,WAKjF0W,WAAWZ,EACb,EAIFtR,EAAQmS,QAAU,WACXnS,IAILoM,EAAO,IAAIxM,GAAW,kBAAmBA,GAAAA,aAAyBG,EAAQC,IAG1EA,EAAU,KACZ,EAGAA,EAAQoS,QAAU,WAGhBhG,EAAO,IAAIxM,GAAW,gBAAiBA,GAAAA,YAAwBG,EAAQC,IAGvEA,EAAU,IACZ,EAGAA,EAAQqS,UAAY,WAClB,IAAIC,EAAsBvS,EAAO+H,QAAU,cAAgB/H,EAAO+H,QAAU,cAAgB,mBAC5F,MAAMjB,EAAe9G,EAAO8G,cAAgBC,GACxC/G,EAAOuS,sBACTA,EAAsBvS,EAAOuS,qBAE/BlG,EAAO,IAAIxM,GACT0S,EACAzL,EAAa7B,oBAAsBpF,GAAAA,UAAuBA,GAAAA,aAC1DG,EACAC,IAGFA,EAAU,IACZ,EAKI8F,GAAAA,qBAA+B,CAEjC,MAAMyM,GAAaxS,EAAOyS,iBAAmBC,GAAgBpB,KACxDtR,EAAOgI,gBAAkB2K,GAAQ7F,KAAK9M,EAAOgI,gBAE9CwK,GACF7B,EAAe/S,IAAIoC,EAAOiI,eAAgBuK,EAE9C,MAGgBjX,IAAhBmV,GAA6BC,EAAepJ,eAAe,MAGvD,qBAAsBtH,GACxBG,GAAM5H,QAAQmY,EAAetQ,UAAU,SAA0B3J,EAAKuC,GACpEgH,EAAQ2S,iBAAiB3Z,EAAKvC,EAChC,IAIG0J,GAAM5J,YAAYwJ,EAAOyS,mBAC5BxS,EAAQwS,kBAAoBzS,EAAOyS,iBAIjC5K,GAAiC,SAAjBA,IAClB5H,EAAQ4H,aAAe7H,EAAO6H,cAIS,oBAA9B7H,EAAO6S,oBAChB5S,EAAQ6S,iBAAiB,WAAYrD,GAAqBzP,EAAO6S,oBAAoB,IAIhD,oBAA5B7S,EAAO+S,kBAAmC9S,EAAQ+S,QAC3D/S,EAAQ+S,OAAOF,iBAAiB,WAAYrD,GAAqBzP,EAAO+S,oBAGtE/S,EAAO6Q,aAAe7Q,EAAO+Q,UAG/BH,EAAaqC,IACNhT,IAGLoM,GAAQ4G,GAAUA,EAAO7c,KAAO,IAAI8V,GAAc,KAAMlM,EAAQC,GAAWgT,GAC3EhT,EAAQiT,QACRjT,EAAU,KAAI,EAGhBD,EAAO6Q,aAAe7Q,EAAO6Q,YAAYsC,UAAUvC,GAC/C5Q,EAAO+Q,SACT/Q,EAAO+Q,OAAOqC,QAAUxC,IAAe5Q,EAAO+Q,OAAO+B,iBAAiB,QAASlC,KAInF,MAAM3C,EAAWU,GAAc2C,GAE3BrD,IAAsD,IAA1ClI,GAAAA,UAAAA,QAA2BkI,GACzC5B,EAAO,IAAIxM,GAAW,wBAA0BoO,EAAW,IAAKpO,GAAAA,gBAA4BG,IAM9FC,EAAQoT,KAAK3C,GAAe,KAC9B,GACF,EC5PA,MAAM4C,GAAgB,CACpBC,KAAMC,GACNC,IAAKC,IAGPtT,GAAM5H,QAAQ8a,IAAe,CAACne,EAAIuF,KAChC,GAAIvF,EAAI,CACN,IACEK,OAAOiF,eAAetF,EAAI,OAAQ,CAACuF,SAEnC,CADA,MAAOkM,GACP,CAEFpR,OAAOiF,eAAetF,EAAI,cAAe,CAACuF,SAC5C,KAGF,MAAMiZ,GAAgBC,GAAY,KAAIA,IAEhCC,GAAoB7M,GAAY5G,GAAMxJ,WAAWoQ,IAAwB,OAAZA,IAAgC,IAAZA,EAEvF,QACE8M,WAAaC,IACXA,EAAW3T,GAAM9J,QAAQyd,GAAYA,EAAW,CAACA,GAEjD,MAAM,OAAClb,GAAUkb,EACjB,IAAIC,EACAhN,EAEJ,MAAMiN,EAAkB,CAAC,EAEzB,IAAK,IAAItb,EAAI,EAAGA,EAAIE,EAAQF,IAAK,CAE/B,IAAIiM,EAIJ,GALAoP,EAAgBD,EAASpb,GAGzBqO,EAAUgN,GAELH,GAAiBG,KACpBhN,EAAUsM,IAAe1O,EAAKtJ,OAAO0Y,IAAgB/d,oBAErCsF,IAAZyL,GACF,MAAM,IAAInH,GAAY,oBAAmB+E,MAI7C,GAAIoC,EACF,MAGFiN,EAAgBrP,GAAM,IAAMjM,GAAKqO,CACnC,CAEA,IAAKA,EAAS,CAEZ,MAAMkN,EAAU1e,OAAO+Q,QAAQ0N,GAC5B1S,KAAI,EAAEqD,EAAIuP,KAAY,WAAUvP,OACpB,IAAVuP,EAAkB,sCAAwC,mCAG/D,IAAIC,EAAIvb,EACLqb,EAAQrb,OAAS,EAAI,YAAcqb,EAAQ3S,IAAIoS,IAAclS,KAAK,MAAQ,IAAMkS,GAAaO,EAAQ,IACtG,0BAEF,MAAM,IAAIrU,GACP,wDAAyDuU,EAC1D,kBAEJ,CAEA,OAAOpN,CAAO,EAEhB+M,SAAUT,IC3DZ,SAASe,GAA6BrU,GAKpC,GAJIA,EAAO6Q,aACT7Q,EAAO6Q,YAAYyD,mBAGjBtU,EAAO+Q,QAAU/Q,EAAO+Q,OAAOqC,QACjC,MAAM,IAAIlH,GAAc,KAAMlM,EAElC,CASe,SAASuU,GAAgBvU,GACtCqU,GAA6BrU,GAE7BA,EAAOkH,QAAU8C,GAAAA,KAAkBhK,EAAOkH,SAG1ClH,EAAO8F,KAAOgG,GAAc/V,KAC1BiK,EACAA,EAAOiH,mBAGgD,IAArD,CAAC,OAAQ,MAAO,SAASxL,QAAQuE,EAAOsI,SAC1CtI,EAAOkH,QAAQK,eAAe,qCAAqC,GAGrE,MAAMP,EAAU+M,GAASD,WAAW9T,EAAOgH,SAAWH,GAAAA,SAEtD,OAAOG,EAAQhH,GAAQN,MAAK,SAA6BQ,GAYvD,OAXAmU,GAA6BrU,GAG7BE,EAAS4F,KAAOgG,GAAc/V,KAC5BiK,EACAA,EAAO2H,kBACPzH,GAGFA,EAASgH,QAAU8C,GAAAA,KAAkB9J,EAASgH,SAEvChH,CACT,IAAG,SAA4B0T,GAe7B,OAdK5H,GAAS4H,KACZS,GAA6BrU,GAGzB4T,GAAUA,EAAO1T,WACnB0T,EAAO1T,SAAS4F,KAAOgG,GAAc/V,KACnCiK,EACAA,EAAO2H,kBACPiM,EAAO1T,UAET0T,EAAO1T,SAASgH,QAAU8C,GAAAA,KAAkB4J,EAAO1T,SAASgH,WAIzDuJ,QAAQpE,OAAOuH,EACxB,GACF,CC3EA,MAAMY,GAAmB3e,GAAUA,aAAiBmU,GAAenU,EAAMwK,SAAWxK,EAWrE,SAAS4e,GAAYC,EAASC,GAE3CA,EAAUA,GAAW,CAAC,EACtB,MAAM3U,EAAS,CAAC,EAEhB,SAAS4U,EAAetV,EAAQD,EAAQzF,GACtC,OAAIwG,GAAM7I,cAAc+H,IAAWc,GAAM7I,cAAc8H,GAC9Ce,GAAMzG,MAAM5D,KAAK,CAAC6D,YAAW0F,EAAQD,GACnCe,GAAM7I,cAAc8H,GACtBe,GAAMzG,MAAM,CAAC,EAAG0F,GACde,GAAM9J,QAAQ+I,GAChBA,EAAOrJ,QAETqJ,CACT,CAGA,SAASwV,EAAoB7a,EAAGC,EAAGL,GACjC,OAAKwG,GAAM5J,YAAYyD,GAEXmG,GAAM5J,YAAYwD,QAAvB,EACE4a,OAAerZ,EAAWvB,EAAGJ,GAF7Bgb,EAAe5a,EAAGC,EAAGL,EAIhC,CAGA,SAASkb,EAAiB9a,EAAGC,GAC3B,IAAKmG,GAAM5J,YAAYyD,GACrB,OAAO2a,OAAerZ,EAAWtB,EAErC,CAGA,SAAS8a,EAAiB/a,EAAGC,GAC3B,OAAKmG,GAAM5J,YAAYyD,GAEXmG,GAAM5J,YAAYwD,QAAvB,EACE4a,OAAerZ,EAAWvB,GAF1B4a,OAAerZ,EAAWtB,EAIrC,CAGA,SAAS+a,EAAgBhb,EAAGC,EAAGgB,GAC7B,OAAIA,KAAQ0Z,EACHC,EAAe5a,EAAGC,GAChBgB,KAAQyZ,EACVE,OAAerZ,EAAWvB,QAD5B,CAGT,CAEA,MAAMib,EAAW,CACflR,IAAK+Q,EACLxM,OAAQwM,EACRhP,KAAMgP,EACNzH,QAAS0H,EACT9N,iBAAkB8N,EAClBpN,kBAAmBoN,EACnBhD,iBAAkBgD,EAClBhN,QAASgN,EACTG,eAAgBH,EAChBtC,gBAAiBsC,EACjB/N,QAAS+N,EACTlN,aAAckN,EACd/M,eAAgB+M,EAChB9M,eAAgB8M,EAChBhC,iBAAkBgC,EAClBlC,mBAAoBkC,EACpBI,WAAYJ,EACZ7M,iBAAkB6M,EAClB5M,cAAe4M,EACfK,eAAgBL,EAChBM,UAAWN,EACXO,UAAWP,EACXQ,WAAYR,EACZlE,YAAakE,EACbS,WAAYT,EACZU,iBAAkBV,EAClB3M,eAAgB4M,EAChB9N,QAAS,CAAClN,EAAGC,IAAM4a,EAAoBL,GAAgBxa,GAAIwa,GAAgBva,IAAI,IASjF,OANAmG,GAAM5H,QAAQhD,OAAOsD,KAAKtD,OAAOmF,OAAO,CAAC,EAAG+Z,EAASC,KAAW,SAA4B1Z,GAC1F,MAAMtB,EAAQsb,EAASha,IAAS4Z,EAC1Ba,EAAc/b,EAAM+a,EAAQzZ,GAAO0Z,EAAQ1Z,GAAOA,GACvDmF,GAAM5J,YAAYkf,IAAgB/b,IAAUqb,IAAqBhV,EAAO/E,GAAQya,EACnF,IAEO1V,CACT,CCxGO,MAAM2V,GAAU,QCKjBC,GAAa,CAAC,EAGpB,CAAC,SAAU,UAAW,SAAU,WAAY,SAAU,UAAUpd,SAAQ,CAACpC,EAAMuC,KAC7Eid,GAAWxf,GAAQ,SAAmBP,GACpC,cAAcA,IAAUO,GAAQ,KAAOuC,EAAI,EAAI,KAAO,KAAOvC,CAC/D,CAAC,IAGH,MAAMyf,GAAqB,CAAC,EAkD5B,SAASC,GAAc9T,EAAS+T,EAAQC,GACtC,GAAuB,kBAAZhU,EACT,MAAM,IAAInC,GAAW,4BAA6BA,GAAAA,sBAEpD,MAAM/G,EAAOtD,OAAOsD,KAAKkJ,GACzB,IAAIrJ,EAAIG,EAAKD,OACb,MAAOF,KAAM,EAAG,CACd,MAAMsd,EAAMnd,EAAKH,GACXud,EAAYH,EAAOE,GACzB,GAAIC,EAAJ,CACE,MAAMxb,EAAQsH,EAAQiU,GAChBlf,OAAmBwE,IAAVb,GAAuBwb,EAAUxb,EAAOub,EAAKjU,GAC5D,IAAe,IAAXjL,EACF,MAAM,IAAI8I,GAAW,UAAYoW,EAAM,YAAclf,EAAQ8I,GAAAA,qBAGjE,MACA,IAAqB,IAAjBmW,EACF,MAAM,IAAInW,GAAW,kBAAoBoW,EAAKpW,GAAAA,eAElD,CACF,CA5DA+V,GAAW9O,aAAe,SAAsBoP,EAAWC,EAASrW,GAClE,SAASsW,EAAcH,EAAKI,GAC1B,MAAO,WAAaV,GAAU,0BAA6BM,EAAM,IAAOI,GAAQvW,EAAU,KAAOA,EAAU,GAC7G,CAGA,MAAO,CAACpF,EAAOub,EAAKK,KAClB,IAAkB,IAAdJ,EACF,MAAM,IAAIrW,GACRuW,EAAcH,EAAK,qBAAuBE,EAAU,OAASA,EAAU,KACvEtW,GAAAA,gBAeJ,OAXIsW,IAAYN,GAAmBI,KACjCJ,GAAmBI,IAAO,EAE1BM,QAAQC,KACNJ,EACEH,EACA,+BAAiCE,EAAU,8CAK1CD,GAAYA,EAAUxb,EAAOub,EAAKK,EAAY,CAEzD,EAmCA,QACER,iBACAF,eC9EF,MAAMA,GAAaM,GAAUN,WAS7B,MAAMa,GACJ9f,YAAY+f,GACVtiB,KAAKyS,SAAW6P,EAChBtiB,KAAKuiB,aAAe,CAClB1W,QAAS,IAAImE,GACblE,SAAU,IAAIkE,GAElB,CAUAnE,QAAQ2W,EAAa5W,GAGQ,kBAAhB4W,GACT5W,EAASA,GAAU,CAAC,EACpBA,EAAO+D,IAAM6S,GAEb5W,EAAS4W,GAAe,CAAC,EAG3B5W,EAASyU,GAAYrgB,KAAKyS,SAAU7G,GAEpC,MAAM,aAAC8G,EAAY,iBAAEiL,EAAgB,QAAE7K,GAAWlH,OAE7BzE,IAAjBuL,GACFoP,GAAUJ,cAAchP,EAAc,CACpC/B,kBAAmB6Q,GAAW9O,aAAa8O,GAAWiB,SACtD7R,kBAAmB4Q,GAAW9O,aAAa8O,GAAWiB,SACtD5R,oBAAqB2Q,GAAW9O,aAAa8O,GAAWiB,WACvD,GAGmB,MAApB9E,IACE3R,GAAMxJ,WAAWmb,GACnB/R,EAAO+R,iBAAmB,CACxB9N,UAAW8N,GAGbmE,GAAUJ,cAAc/D,EAAkB,CACxC1O,OAAQuS,GAAWkB,SACnB7S,UAAW2R,GAAWkB,WACrB,IAKP9W,EAAOsI,QAAUtI,EAAOsI,QAAUlU,KAAKyS,SAASyB,QAAU,OAAOrS,cAGjE,IAAI8gB,EAAiB7P,GAAW9G,GAAMzG,MACpCuN,EAAQmB,OACRnB,EAAQlH,EAAOsI,SAGjBpB,GAAW9G,GAAM5H,QACf,CAAC,SAAU,MAAO,OAAQ,OAAQ,MAAO,QAAS,WACjD8P,WACQpB,EAAQoB,EAAO,IAI1BtI,EAAOkH,QAAU8C,GAAAA,OAAoB+M,EAAgB7P,GAGrD,MAAM8P,EAA0B,GAChC,IAAIC,GAAiC,EACrC7iB,KAAKuiB,aAAa1W,QAAQzH,SAAQ,SAAoC0e,GACjC,oBAAxBA,EAAYxS,UAA0D,IAAhCwS,EAAYxS,QAAQ1E,KAIrEiX,EAAiCA,GAAkCC,EAAYzS,YAE/EuS,EAAwBG,QAAQD,EAAY3S,UAAW2S,EAAY1S,UACrE,IAEA,MAAM4S,EAA2B,GAKjC,IAAIC,EAJJjjB,KAAKuiB,aAAazW,SAAS1H,SAAQ,SAAkC0e,GACnEE,EAAyB5a,KAAK0a,EAAY3S,UAAW2S,EAAY1S,SACnE,IAGA,IACIxL,EADAL,EAAI,EAGR,IAAKse,EAAgC,CACnC,MAAMK,EAAQ,CAAC/C,GAAgBrf,KAAKd,WAAOmH,GAC3C+b,EAAMH,QAAQ9hB,MAAMiiB,EAAON,GAC3BM,EAAM9a,KAAKnH,MAAMiiB,EAAOF,GACxBpe,EAAMse,EAAMze,OAEZwe,EAAU5G,QAAQrE,QAAQpM,GAE1B,MAAOrH,EAAIK,EACTqe,EAAUA,EAAQ3X,KAAK4X,EAAM3e,KAAM2e,EAAM3e,MAG3C,OAAO0e,CACT,CAEAre,EAAMge,EAAwBne,OAE9B,IAAI0e,EAAYvX,EAEhBrH,EAAI,EAEJ,MAAOA,EAAIK,EAAK,CACd,MAAMwe,EAAcR,EAAwBre,KACtC8e,EAAaT,EAAwBre,KAC3C,IACE4e,EAAYC,EAAYD,EAI1B,CAHE,MAAO1W,GACP4W,EAAW1hB,KAAK3B,KAAMyM,GACtB,KACF,CACF,CAEA,IACEwW,EAAU9C,GAAgBxe,KAAK3B,KAAMmjB,EAGvC,CAFE,MAAO1W,GACP,OAAO4P,QAAQpE,OAAOxL,EACxB,CAEAlI,EAAI,EACJK,EAAMoe,EAAyBve,OAE/B,MAAOF,EAAIK,EACTqe,EAAUA,EAAQ3X,KAAK0X,EAAyBze,KAAMye,EAAyBze,MAGjF,OAAO0e,CACT,CAEAK,OAAO1X,GACLA,EAASyU,GAAYrgB,KAAKyS,SAAU7G,GACpC,MAAMsR,EAAW/D,GAAcvN,EAAOqN,QAASrN,EAAO+D,KACtD,OAAOD,GAASwN,EAAUtR,EAAO0D,OAAQ1D,EAAO+R,iBAClD,EAIF3R,GAAM5H,QAAQ,CAAC,SAAU,MAAO,OAAQ,YAAY,SAA6B8P,GAE/EmO,GAAMhhB,UAAU6S,GAAU,SAASvE,EAAK/D,GACtC,OAAO5L,KAAK6L,QAAQwU,GAAYzU,GAAU,CAAC,EAAG,CAC5CsI,SACAvE,MACA+B,MAAO9F,GAAU,CAAC,GAAG8F,OAEzB,CACF,IAEA1F,GAAM5H,QAAQ,CAAC,OAAQ,MAAO,UAAU,SAA+B8P,GAGrE,SAASqP,EAAmBC,GAC1B,OAAO,SAAoB7T,EAAK+B,EAAM9F,GACpC,OAAO5L,KAAK6L,QAAQwU,GAAYzU,GAAU,CAAC,EAAG,CAC5CsI,SACApB,QAAS0Q,EAAS,CAChB,eAAgB,uBACd,CAAC,EACL7T,MACA+B,SAEJ,CACF,CAEA2Q,GAAMhhB,UAAU6S,GAAUqP,IAE1BlB,GAAMhhB,UAAU6S,EAAS,QAAUqP,GAAmB,EACxD,IAEA,UC7LA,MAAME,GACJlhB,YAAYmhB,GACV,GAAwB,oBAAbA,EACT,MAAM,IAAI7V,UAAU,gCAGtB,IAAI8V,EAEJ3jB,KAAKijB,QAAU,IAAI5G,SAAQ,SAAyBrE,GAClD2L,EAAiB3L,CACnB,IAEA,MAAM5K,EAAQpN,KAGdA,KAAKijB,QAAQ3X,MAAKuT,IAChB,IAAKzR,EAAMwW,WAAY,OAEvB,IAAIrf,EAAI6I,EAAMwW,WAAWnf,OAEzB,MAAOF,KAAM,EACX6I,EAAMwW,WAAWrf,GAAGsa,GAEtBzR,EAAMwW,WAAa,IAAI,IAIzB5jB,KAAKijB,QAAQ3X,KAAOuY,IAClB,IAAIC,EAEJ,MAAMb,EAAU,IAAI5G,SAAQrE,IAC1B5K,EAAM2R,UAAU/G,GAChB8L,EAAW9L,CAAO,IACjB1M,KAAKuY,GAMR,OAJAZ,EAAQpE,OAAS,WACfzR,EAAMsP,YAAYoH,EACpB,EAEOb,CAAO,EAGhBS,GAAS,SAAgBhY,EAASE,EAAQC,GACpCuB,EAAMoS,SAKVpS,EAAMoS,OAAS,IAAI1H,GAAcpM,EAASE,EAAQC,GAClD8X,EAAevW,EAAMoS,QACvB,GACF,CAKAU,mBACE,GAAIlgB,KAAKwf,OACP,MAAMxf,KAAKwf,MAEf,CAMAT,UAAUzD,GACJtb,KAAKwf,OACPlE,EAAStb,KAAKwf,QAIZxf,KAAK4jB,WACP5jB,KAAK4jB,WAAWxb,KAAKkT,GAErBtb,KAAK4jB,WAAa,CAACtI,EAEvB,CAMAoB,YAAYpB,GACV,IAAKtb,KAAK4jB,WACR,OAEF,MAAM/U,EAAQ7O,KAAK4jB,WAAWvc,QAAQiU,IACvB,IAAXzM,GACF7O,KAAK4jB,WAAWG,OAAOlV,EAAO,EAElC,CAMAoI,gBACE,IAAI4H,EACJ,MAAMzR,EAAQ,IAAIqW,IAAY,SAAkBO,GAC9CnF,EAASmF,CACX,IACA,MAAO,CACL5W,QACAyR,SAEJ,EAGF,UCjGe,SAASoF,GAAOC,GAC7B,OAAO,SAAc3c,GACnB,OAAO2c,EAASjjB,MAAM,KAAMsG,EAC9B,CACF,CChBe,SAAS4c,GAAaC,GACnC,OAAOpY,GAAM/I,SAASmhB,KAAsC,IAAzBA,EAAQD,YAC7C,CCbA,MAAME,GAAiB,CACrBC,SAAU,IACVC,mBAAoB,IACpBC,WAAY,IACZC,WAAY,IACZC,GAAI,IACJC,QAAS,IACTC,SAAU,IACVC,4BAA6B,IAC7BC,UAAW,IACXC,aAAc,IACdC,eAAgB,IAChBC,YAAa,IACbC,gBAAiB,IACjBC,OAAQ,IACRC,gBAAiB,IACjBC,iBAAkB,IAClBC,MAAO,IACPC,SAAU,IACVC,YAAa,IACbC,SAAU,IACVC,OAAQ,IACRC,kBAAmB,IACnBC,kBAAmB,IACnBC,WAAY,IACZC,aAAc,IACdC,gBAAiB,IACjBC,UAAW,IACXC,SAAU,IACVC,iBAAkB,IAClBC,cAAe,IACfC,4BAA6B,IAC7BC,eAAgB,IAChBC,SAAU,IACVC,KAAM,IACNC,eAAgB,IAChBC,mBAAoB,IACpBC,gBAAiB,IACjBC,WAAY,IACZC,qBAAsB,IACtBC,oBAAqB,IACrBC,kBAAmB,IACnBC,UAAW,IACXC,mBAAoB,IACpBC,oBAAqB,IACrBC,OAAQ,IACRC,iBAAkB,IAClBC,SAAU,IACVC,gBAAiB,IACjBC,qBAAsB,IACtBC,gBAAiB,IACjBC,4BAA6B,IAC7BC,2BAA4B,IAC5BC,oBAAqB,IACrBC,eAAgB,IAChBC,WAAY,IACZC,mBAAoB,IACpBC,eAAgB,IAChBC,wBAAyB,IACzBC,sBAAuB,IACvBC,oBAAqB,IACrBC,aAAc,IACdC,YAAa,IACbC,8BAA+B,KAGjChnB,OAAO+Q,QAAQkS,IAAgBjgB,SAAQ,EAAES,EAAKyB,MAC5C+d,GAAe/d,GAASzB,CAAG,IAG7B,UC3CA,SAASwjB,GAAeC,GACtB,MAAMhjB,EAAU,IAAI+c,GAAMiG,GACpBC,EAAWznB,EAAKuhB,GAAAA,UAAAA,QAAyB/c,GAa/C,OAVA0G,GAAMrG,OAAO4iB,EAAUlG,GAAAA,UAAiB/c,EAAS,CAAChB,YAAY,IAG9D0H,GAAMrG,OAAO4iB,EAAUjjB,EAAS,KAAM,CAAChB,YAAY,IAGnDikB,EAASzmB,OAAS,SAAgBwgB,GAChC,OAAO+F,GAAehI,GAAYiI,EAAehG,GACnD,EAEOiG,CACT,CAGA,MAAMC,GAAQH,GAAe5V,IAG7B+V,GAAMnG,MAAQA,GAGdmG,GAAM1Q,cAAgBA,GACtB0Q,GAAM/E,YAAcA,GACpB+E,GAAM5Q,SAAWA,GACjB4Q,GAAMjH,QAAUA,GAChBiH,GAAM9a,WAAaA,GAGnB8a,GAAM/c,WAAaA,GAGnB+c,GAAMC,OAASD,GAAM1Q,cAGrB0Q,GAAME,IAAM,SAAaC,GACvB,OAAOtM,QAAQqM,IAAIC,EACrB,EAEAH,GAAMvE,OAASA,GAGfuE,GAAMrE,aAAeA,GAGrBqE,GAAMnI,YAAcA,GAEpBmI,GAAM5S,aAAeA,GAErB4S,GAAMI,WAAannB,GAASsQ,GAAe/F,GAAM3D,WAAW5G,GAAS,IAAIsC,SAAStC,GAASA,GAE3F+mB,GAAM9I,WAAaC,GAASD,WAE5B8I,GAAMnE,eAAiBA,GAEvBmE,GAAMK,QAAUL,GAGhB,UCxFI1oB,GAAS,WAAkB,IAAIC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG6oB,EAAO/oB,EAAIG,MAAM6oB,YAAY,OAAO9oB,EAAG,MAAM,CAACE,IAAI,UAAU6oB,YAAY,WAAWC,MAAM,CAAC,GAAK,kBAAkB,CAAChpB,EAAG6oB,EAAOI,WAAW,CAACC,WAAW,CAAC,CAACjgB,KAAK,OAAOkgB,QAAQ,SAAS9iB,MAAOwiB,EAAOO,cAAgBP,EAAOQ,eAAgBC,WAAW,mCAAmCP,YAAY,SAAS5oB,GAAG,CAAC,UAAU0oB,EAAOU,OAAO,kBAAkBV,EAAOroB,cAAc,eAAeqoB,EAAOtoB,cAAcP,EAAG6oB,EAAOW,YAAY,CAACN,WAAW,CAAC,CAACjgB,KAAK,MAAMkgB,QAAQ,QAAQ9iB,MAAOwiB,EAAOY,qBAAsBH,WAAW,yBAAyBppB,IAAI,iBAAiB6oB,YAAY,UAAUC,MAAM,CAAC,iBAAiBH,EAAOO,gBAAgBppB,EAAG6oB,EAAOa,WAAW,CAACR,WAAW,CAAC,CAACjgB,KAAK,OAAOkgB,QAAQ,SAAS9iB,MAAOwiB,EAAOO,aAAcE,WAAW,iBAAiBP,YAAY,SAAS5oB,GAAG,CAAC,kBAAkB0oB,EAAOroB,cAAc,eAAeqoB,EAAOtoB,cAAcP,EAAG6oB,EAAOc,aAAa3pB,EAAG6oB,EAAOe,cAAc,EACz7B,EACIhpB,GAAkB,G,iCCFlBf,GAAS,WAAkB,IAAIC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG6oB,EAAO/oB,EAAIG,MAAM6oB,YAAY,OAAO9oB,EAAG,MAAM,CAAC+oB,YAAY,UAAU,CAAC/oB,EAAG,MAAM,CAAC+oB,YAAY,oBAAoB,CAAC/oB,EAAG,MAAM,CAAC+oB,YAAY,YAAY,CAAC/oB,EAAG6oB,EAAOgB,cAAc7pB,EAAG6oB,EAAOiB,eAAe,GAAG9pB,EAAG6oB,EAAOkB,UAAU/pB,EAAG6oB,EAAOmB,WAAW,CAAC7pB,GAAG,CAAC,kBAAkB0oB,EAAOroB,cAAc,eAAeqoB,EAAOtoB,eAAe,IAC7X,EACIK,GAAkB,GCFlBf,GAAS,WAAkB,IAAIC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG6oB,EAAO/oB,EAAIG,MAAM6oB,YAAY,OAAO9oB,EAAG,MAAM,CAACA,EAAG,MAAM,CAAC+oB,YAAY,yBAAyB,CAAC/oB,EAAG,MAAM,CAACkpB,WAAW,CAAC,CAACjgB,KAAK,MAAMkgB,QAAQ,QAAQ9iB,MAAOwiB,EAAOoB,YAAaX,WAAW,gBAAgBP,YAAY,aAAaC,MAAM,CAAC,SAAW,MAAM,CAAClpB,EAAIoqB,GAAGpqB,EAAIqqB,GAAGtB,EAAOuB,EAAE,eAAgBvB,EAAOwB,QAASrqB,EAAG,MAAM,CAAC+oB,YAAY,oBAAoB,CAAC/oB,EAAG,MAAM,CAACsqB,MAAMzB,EAAO0B,sBAAwB,mBAAmB,sBAAsB,CAAE1B,EAAO2B,oBAAsB3B,EAAO4B,WAAWC,YAAa1qB,EAAG,MAAM,CAAE6oB,EAAO8B,UAAUC,SAAU5qB,EAAG,MAAM,CAAC+oB,YAAY,qBAAqB,CAAEF,EAAO8B,UAAUC,SAAU5qB,EAAG,OAAO,CAAC+oB,YAAY,mBAAmB,CAACjpB,EAAIoqB,GAAG,IAAIpqB,EAAIqqB,GAAGtB,EAAOuB,EAAE,mGAAmG,OAAOpqB,EAAG,OAAO,CAACF,EAAIoqB,GAAGpqB,EAAIqqB,GAAGtB,EAAOuB,EAAE,mDAAmDtqB,EAAI+qB,OAAO/qB,EAAI+qB,KAAMhC,EAAO2B,oBAAsB3B,EAAO4B,WAAWC,YAAa1qB,EAAG,MAAM,CAAC+oB,YAAY,yBAAyB,CAAEF,EAAO8B,UAAUC,SAAU5qB,EAAG,OAAO,CAACsqB,MAAMzB,EAAO0B,sBAAwB,qBAAqB,4BAA4BpqB,GAAG,CAAC,MAAQ,SAAS2qB,GAAiC,OAAzBA,EAAOC,kBAAyBlC,EAAOmC,YAAYhqB,MAAM,KAAMC,UAAU,IAAI,CAACnB,EAAIoqB,GAAG,IAAIpqB,EAAIqqB,GAAGtB,EAAOuB,EAAE,YAAY,OAAOtqB,EAAI+qB,KAAMhC,EAAO0B,sBAAuBvqB,EAAG,OAAO,CAACkpB,WAAW,CAAC,CAACjgB,KAAK,MAAMkgB,QAAQ,QAAQ9iB,MAAOwiB,EAAOoC,UAAW3B,WAAW,cAAcgB,MAAMzB,EAAO8B,UAAUC,SAAU,mBAAmB,2BAA2B,CAAC9qB,EAAIoqB,GAAG,IAAIpqB,EAAIqqB,GAAGtB,EAAOuB,EAAE,UAAU,OAAOtqB,EAAI+qB,KAAK7qB,EAAG,OAAO,CAAC+oB,YAAY,oBAAoB5oB,GAAG,CAAC,MAAQ,SAAS2qB,GAAiC,OAAzBA,EAAOC,kBAAyBlC,EAAOjK,OAAO5d,MAAM,KAAMC,UAAU,IAAI,CAACnB,EAAIoqB,GAAGpqB,EAAIqqB,GAAGtB,EAAOuB,EAAE,gBAAgBtqB,EAAI+qB,KAAMhC,EAAO2B,oBAAsB3B,EAAO4B,WAAWS,eAAgBlrB,EAAG,MAAM,CAACA,EAAG,OAAO,CAAC+oB,YAAY,oBAAoB5oB,GAAG,CAAC,MAAQ,SAAS2qB,GAAiC,OAAzBA,EAAOC,kBAAyBlC,EAAOjK,OAAO5d,MAAM,KAAMC,UAAU,IAAI,CAACnB,EAAIoqB,GAAGpqB,EAAIqqB,GAAGtB,EAAOuB,EAAE,gBAAgBtqB,EAAI+qB,SAAS/qB,EAAI+qB,KAAK7qB,EAAG6oB,EAAOsC,MAAM,CAACjC,WAAW,CAAC,CAACjgB,KAAK,OAAOkgB,QAAQ,SAAS9iB,MAAOwiB,EAAOuC,YAAa9B,WAAW,gBAAgBP,YAAY,qBAAqBC,MAAM,CAAC,MAAQH,EAAOuB,EAAE,uBAAuBiB,YAAYvrB,EAAIwrB,GAAG,CAAC,CAAC1mB,IAAI,iBAAiB9D,GAAG,WAAW,MAAO,CAACd,EAAG,MAAM,CAACurB,YAAY,CAAC,OAAS,SAAS,CAACvrB,EAAG,MAAM,CAACA,EAAG,MAAM,CAAC+oB,YAAY,mBAAmB,CAAC/oB,EAAG,QAAQ,CAACkpB,WAAW,CAAC,CAACjgB,KAAK,QAAQkgB,QAAQ,UAAU9iB,MAAOwiB,EAAO2C,WAAYlC,WAAW,eAAeP,YAAY,kBAAkBC,MAAM,CAAC,KAAO,OAAO,YAAcH,EAAOuB,EAAE,mCAAmC,aAAe,QAAQqB,SAAS,CAAC,MAAS5C,EAAO2C,YAAarrB,GAAG,CAAC,MAAQ,SAAS2qB,GAAWA,EAAO7f,OAAOygB,YAAiB7C,EAAO2C,WAAWV,EAAO7f,OAAO5E,MAAK,OAAOrG,EAAG,MAAM,CAAC+oB,YAAY,iBAAiB,CAACjpB,EAAI6rB,GAAI9C,EAAO+C,cAAc,SAASC,GAAM,OAAO7rB,EAAG,MAAM,CAAC4E,IAAIinB,EAAKC,OAAO/C,YAAY,wBAAwB5oB,GAAG,CAAC,MAAQ,SAAS2qB,GAAQ,OAAOjC,EAAOkD,wBAAwBF,EAAKC,OAAO,IAAI,CAAC9rB,EAAG,MAAM,CAAC+oB,YAAY,qBAAqB,CAAC/oB,EAAG6oB,EAAOmD,OAAO,CAACjD,YAAY,aAAaC,MAAM,CAAC,UAAU6C,EAAKI,aAAajsB,EAAG,MAAM,CAAC+oB,YAAY,aAAa,CAACjpB,EAAIoqB,GAAGpqB,EAAIqqB,GAAG0B,EAAKK,UAAYL,EAAKC,WAAYjD,EAAOsD,eAAiBN,EAAKC,OAAQ9rB,EAAG6oB,EAAOuD,QAAQ,CAACrD,YAAY,UAAUC,MAAM,CAAC,YAAY,UAAU,KAAO,YAAYlpB,EAAI+qB,MAAM,IAAI,IAAIhC,EAAOwD,UAAWrsB,EAAG,MAAM,CAAC+oB,YAAY,oBAAoB,CAACjpB,EAAIoqB,GAAGpqB,EAAIqqB,GAAGtB,EAAOuB,EAAE,+BAA+BtqB,EAAI+qB,MAAM,OAAO,EAAEyB,OAAM,GAAM,CAAC1nB,IAAI,gBAAgB9D,GAAG,WAAW,MAAO,CAACd,EAAG,MAAM,CAAC+oB,YAAY,iBAAiB5oB,GAAG,CAAC,MAAQ0oB,EAAO0D,mBAAmB,CAACvsB,EAAG,OAAO,CAAC+oB,YAAY,mBAAmB,CAACjpB,EAAIoqB,GAAGpqB,EAAIqqB,GAAGtB,EAAOuB,EAAE,4BAA4B,EAAEkC,OAAM,QAAW,EACzsH,EACI1rB,GAAkB,G,2ECMR,SAAU4rB,KACtB,MAAM,EAAEpC,IAAMqC,EAAAA,GAAAA,KACd,IAAKhC,GAAL,SAAKA,GACHA,EAAAA,EAAAA,eAAAA,GAAAA,cACAA,EAAAA,EAAAA,kBAAAA,GAAAA,gBACD,EAHD,CAAKA,IAAAA,EAAU,KAIf,MAAMD,GAAoBtqB,EAAAA,GAAAA,KAAIuqB,EAAWC,aAEnCgC,EAAY,eACZC,GAAaC,EAAAA,GAAAA,KACbvC,GAAwBnqB,EAAAA,GAAAA,MAAI,GAC5B2sB,GAAaC,EAAAA,GAAAA,KACnBC,GAAAA,EAAAA,IAAW,GAAGL,gBAAyBG,GAEvC,MAAMlC,GAAYqC,EAAAA,GAAAA,MACZ,UAAEC,EAAS,iBAAEC,IAAqBC,EAAAA,GAAAA,IAAYxC,GAC9CyC,GAAQlW,EAAAA,GAAAA,WAAS,IAAOsT,EAAkBnkB,QAAUokB,EAAWC,YAAcN,EAAE,eAAiBA,EAAE,uBAClGG,GAAwBrT,EAAAA,GAAAA,WAAS,IACrCyT,EAAUC,UAAYsC,EAAiB7mB,MAAM7B,OAAS,IACpDmmB,EAAUC,YACR,cAAEyC,EAAa,YAAEC,IAAgBH,EAAAA,GAAAA,IAAYN,GAC7CzB,GAAclU,EAAAA,GAAAA,WAAS,IAAMmW,EAAchnB,OAA+B,mBAAtBinB,EAAYjnB,QAChE8lB,GAA4BjsB,EAAAA,GAAAA,KAAI,IAChCqtB,GAAertB,EAAAA,GAAAA,MAAI,GACnBsrB,GAAatrB,EAAAA,GAAAA,KAAI,IACjB0rB,GAAe1U,EAAAA,GAAAA,WAAS,IAAMgW,EAAiB7mB,MAAMK,QAAO8mB,GAChEA,EAAW1B,OAAO2B,SAASjC,EAAWnlB,QAAYmnB,EAAWtB,UAAUuB,SAASjC,EAAWnlB,WACvFgmB,GAAYnV,EAAAA,GAAAA,WAAS,IAAoC,IAA9B0U,EAAavlB,MAAM7B,SAEpD,SAASkpB,IACP,GAAIb,EAAWc,sBAA8C,mBAAtBL,EAAYjnB,MAGjD,OAFAwmB,EAAWc,sBAAqB,QAChCd,EAAWe,eAAe,IAI5Bf,EAAWc,sBAAqB,GAChCd,EAAWe,eAAe,iBAC5B,CAEA,SAAS7B,EAAwBD,GAC/BK,EAAa9lB,MAAQylB,CACvB,CAEA,SAAS+B,IACPxD,EAAQhkB,OAAQ,EAChBmkB,EAAkBnkB,MAAQokB,EAAWC,WACvC,CAEA,SAAST,IACFI,EAAQhkB,QACXgkB,EAAQhkB,OAAQ,EAEpB,CAEA,SAASuY,IACPiP,GACF,CAEAC,eAAeC,IACTd,EAAU5mB,MAAM2nB,sBACZrB,EAAWrE,UAAU2F,wBAEzBhB,EAAU5mB,MAAM6nB,sBACZvB,EAAWrE,UAAU6F,mBAE/B,CACA,MAAO,CACL/D,IACAyC,aACAtC,wBACAI,YACAgC,aACAM,YACAC,mBACAjD,cACArL,SACAuN,eACA1B,aACAiC,YACAU,QACA5C,oBACAH,UACA0D,wBACAF,aACArC,aACAa,YACAN,0BACAH,eACA8B,2BACAH,eACAD,cACAlC,cAEJ,CCtGA,IAAIvrB,GAAS,WAAkB,IAAIC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG6oB,EAAO/oB,EAAIG,MAAM6oB,YAAY,OAAO9oB,EAAG,MAAM,CAAC+oB,YAAY,mBAAmB,CAAC/oB,EAAG,MAAM,CAAC+oB,YAAY,qBAAqB,CAAC/oB,EAAG,OAAO,CAACkpB,WAAW,CAAC,CAACjgB,KAAK,MAAMkgB,QAAQ,QAAQ9iB,MAAOwiB,EAAOuF,YAAa9E,WAAW,gBAAgBP,YAAY,kBAAkB,CAAC/oB,EAAG6oB,EAAOuD,QAAQ,CAACrD,YAAY,aAAaC,MAAM,CAAC,KAAO,SAAS,YAAY,iBAAiB,GAAGhpB,EAAG,OAAO,CAAC+oB,YAAY,iBAAiB,CAACjpB,EAAIoqB,GAAGpqB,EAAIqqB,GAAGrqB,EAAIstB,YAAYptB,EAAG,MAAM,CAAC+oB,YAAY,sBAAsB,CAACjpB,EAAIuuB,GAAG,mBAAmB,GAAGruB,EAAG,MAAM,CAAC+oB,YAAY,qBAAqB,CAACjpB,EAAIuuB,GAAG,kBAAkB,IACvnB,EACIztB,GAAkB,G,WCOtB,I,SAA4B0tB,EAAAA,GAAAA,iBAAiB,CAC3CC,OAAQ,UACRroB,MAAO,CACLknB,MAAO,MAEToB,MAAMC,GAIR,MAAM5B,GAAaC,EAAAA,GAAAA,KAEnB,SAASsB,IACPvB,EAAWc,sBAAqB,GAChCd,EAAWe,eAAe,GAC5B,CAGA,MAAO,CAAEc,OAAO,EAAK7B,aAAYuB,cAAahC,QAAOA,GAAAA,EACrD,KC3B8V,M,WCQ1VuC,IAAY,QACd,GACA,GACA,IACA,EACA,KACA,WACA,MAIF,GAAeA,GAAiB,Q,WCPhC,IAA4BL,EAAAA,GAAAA,iBAAiB,CAC3CC,OAAQ,eACRK,MAAO,CAAC,eAAgB,mBACxBJ,MAAMC,GAAS,KAAEI,IAEnB,MAAM,EACJzE,EAAC,sBACDG,EAAqB,UACrBI,EAAS,WACTkC,EAAU,WACVF,EAAU,UACVM,EAAS,YACThD,EAAW,OACXrL,EAAM,WACN6L,EAAU,UACViC,EAAS,kBACTlC,EAAiB,QACjBH,EAAO,sBACP0D,EAAqB,WACrBF,EAAU,yBACVH,EAAwB,WACxBlC,EAAU,UACVa,EAAS,wBACTN,EAAuB,aACvBH,EAAY,aACZO,EAAY,YACZf,GACEoB,KAWJsB,eAAe9C,IACb,IACE+B,GAAAA,EAAAA,IAAW,GAAGL,6BACRqB,UACApB,EAAWrE,UAAUwG,eAC3BjB,IACAgB,EAAK,kBAAmB,CAAEnjB,KAAM,EAAGD,QAAS,I,CAC5C,MAAOe,GACPugB,GAAAA,EAAAA,MAAa,GAAGL,sBAA+BlgB,E,CAEnD,CAOAshB,eAAe7C,IACb,IACE,GAAIN,EAAUC,SAGZ,OAFA8C,SACAG,UAGIE,IACN,MAAMliB,QAAiB8gB,EAAWrE,UAAUyG,YAC5ChC,GAAAA,EAAAA,IAAW,GAAGL,cAAuB7gB,GACrCgiB,IACAgB,EAAK,eAAgB,CAAEnjB,KAAM,EAAGD,QAAS,I,CACzC,MAAOe,GACPugB,GAAAA,EAAAA,MAAa,GAAGL,oBAA6BlgB,E,CAEjD,CAEAshB,eAAevB,IACb,GAAKJ,EAAa9lB,MAGlB,IACE,MAAMylB,EAASK,EAAa9lB,MACtB2oB,QAA+BrC,EAAWrE,UAAU2G,eAAe,CAAEnD,SAAQoD,SAAUC,GAAAA,QAAAA,cAC7FpC,GAAAA,EAAAA,IAAW,GAAGL,qBAA8BsC,SACtCjB,IACN,MAAMqB,QAAyBzC,EAAWrE,UAAUyG,YACpDhC,GAAAA,EAAAA,IAAW,GAAGL,aAAsB0C,GACpCvC,EAAWc,sBAAqB,GAChCd,EAAWe,eAAe,IAC1BC,IACAgB,EAAK,eAAgB,CAAEnjB,KAAM,EAAGD,QAAS,I,CACzC,MAAOe,GACPugB,GAAAA,EAAAA,MAAa,GAAGL,2BAAoClgB,E,CAExD,CAOA,MAAM6iB,EAAkBvB,UACtB,IACE,MAAM,OAAEwB,GAAWC,EACnBxC,GAAAA,EAAAA,IAAW,GAAGL,oBAA6B4C,GAC3CE,GAAAA,EAAAA,MAAmBpF,EAAE,6BAA8BA,EAAE,QAAS,CAC5DqF,YAAa,uBACbC,kBAAmBtF,EAAE,WACrBuF,SAAU,iBACV1L,SAAU6J,UACRD,IACAgB,EAAK,kBAAmB,CAAEnjB,KAAM,EAAGD,QAAS,IAAK,G,CAGrD,MAAOe,GACPugB,GAAAA,EAAAA,MAAa,GAAGL,0BAAmClgB,E,GAUjDojB,EAAoB9B,UACxB,GAAIyB,EAAUL,WAAaC,GAAAA,QAAAA,WAAoB,CAC7C,MAAM,OAAErD,GAAWyD,EACnB,IAAIM,EAAUlF,EAAUmF,YAAYhE,IAAWA,EAC3CA,IAAWmB,EAAU5mB,MAAMylB,SAC7B+D,EAAUzF,EAAE,OAEd,MAAM2F,EAAa,GAAG3F,EAAE,2BAA2ByF,IAYnD,IAXAG,EAAAA,GAAAA,GAAU,CACRjuB,KAAM,UACN0J,QAASskB,IAEPpF,EAAUsC,UAAUnB,SAAWA,EACjCnB,EAAUsF,aAAa,CAAEf,SAAUC,GAAAA,QAAAA,aAEnCxE,EAAUuF,kBAAkBpE,EAAQqD,GAAAA,QAAAA,YAEtCxE,EAAUwF,gBAAgBrE,GAC1B+B,IACIlD,EAAUyF,SAAU,OACpBzF,EAAU0F,kCACN1D,EAAWrE,UAAUgI,SAAS,CAAEC,WAAY,EAAG7c,QAAS,I,GAgBpE,OAXA8c,KAAAA,KAAmB,SAAS,KAC1B7D,EAAWrE,UAAUnoB,GAAGswB,GAAAA,cAAAA,gBAA+BpB,GACvD1C,EAAWrE,UAAUnoB,GAAGswB,GAAAA,cAAAA,kBAAiCb,EAAkB,KAG7Ec,EAAAA,GAAAA,cAAY,KACV/D,EAAWrE,UAAUqI,IAAIF,GAAAA,cAAAA,gBAA+BpB,GACxD1C,EAAWrE,UAAUqI,IAAIF,GAAAA,cAAAA,kBAAiCb,EAAkB,IAIvE,CAAElB,OAAO,EAAKtE,IAAGG,wBAAuBI,YAAWkC,aAAYF,aAAYM,YAAWhD,cAAarL,SAAQ6L,aAAYiC,YAAWlC,oBAAmBH,UAAS0D,wBAAuBF,aAAYH,2BAA0BlC,aAAYa,YAAWN,0BAAyBH,eAAcO,eAAcf,cAAayD,OAAM7D,cAAaC,YAAWsB,mBAAkB8C,kBAAiBO,oBAAmBzE,MAAK,GAAEiB,QAAO,KAAEJ,OAAMA,GAAAA,EACra,IC3K+W,MCQ3W,IAAY,QACd,GACA,GACA,IACA,EACA,KACA,WACA,MAIF,GAAe,GAAiB,QCnB5BnsB,GAAS,WAAkB,IAAIC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG6oB,EAAO/oB,EAAIG,MAAM6oB,YAAY,OAAO9oB,EAAG,MAAM,CAAC+oB,YAAY,yBAAyB,CAAC/oB,EAAG,MAAM,CAAC+oB,YAAY,aAAaC,MAAM,CAAC,SAAW,KAAK7oB,GAAG,CAAC,MAAQ0oB,EAAOoB,cAAc,CAACnqB,EAAIoqB,GAAGpqB,EAAIqqB,GAAGtB,EAAOuB,EAAE,aAAapqB,EAAG6oB,EAAO+H,OAAO,CAAC7H,YAAY,uBAAuBC,MAAM,CAAC,cAAcH,EAAOwB,QAAQ,MAAQxB,EAAOuE,MAAM,OAAQ,EAAK,kBAAiB,EAAM,MAAQ,QAAQ,eAAevE,EAAOjK,OAAO,wBAAuB,GAAMyM,YAAYvrB,EAAIwrB,GAAG,CAAC,CAAC1mB,IAAI,SAAS9D,GAAG,WAAW,MAAO,CAAE+nB,EAAO2B,oBAAsB3B,EAAO4B,WAAWC,YAAa1qB,EAAG,MAAM,CAAE6oB,EAAO8B,UAAUC,SAAU5qB,EAAG,YAAY,CAACgpB,MAAM,CAAC,KAAO,WAAW7oB,GAAG,CAAC,MAAQ,SAAS2qB,GAAiC,OAAzBA,EAAOC,kBAAyBlC,EAAOmC,YAAYhqB,MAAM,KAAMC,UAAU,IAAI,CAACnB,EAAIoqB,GAAG,IAAIpqB,EAAIqqB,GAAGtB,EAAOuB,EAAE,YAAY,OAAOtqB,EAAI+qB,KAAMhC,EAAO0B,sBAAuBvqB,EAAG,YAAY,CAACgpB,MAAM,CAAC,KAAO,WAAW7oB,GAAG,CAAC,MAAQ0oB,EAAOoC,YAAY,CAACnrB,EAAIoqB,GAAGpqB,EAAIqqB,GAAGtB,EAAOuB,EAAE,aAAatqB,EAAI+qB,KAAK7qB,EAAG,YAAY,CAACG,GAAG,CAAC,MAAQ,SAAS2qB,GAAiC,OAAzBA,EAAOC,kBAAyBlC,EAAOjK,OAAO5d,MAAM,KAAMC,UAAU,IAAI,CAACnB,EAAIoqB,GAAGpqB,EAAIqqB,GAAGtB,EAAOuB,EAAE,eAAe,GAAGtqB,EAAI+qB,KAAMhC,EAAO2B,oBAAsB3B,EAAO4B,WAAWS,eAAgBlrB,EAAG,MAAM,CAACA,EAAG,YAAY,CAACgpB,MAAM,CAAC,KAAO,WAAW7oB,GAAG,CAAC,MAAQ0oB,EAAO0D,mBAAmB,CAACzsB,EAAIoqB,GAAGpqB,EAAIqqB,GAAGtB,EAAOuB,EAAE,0BAA0BpqB,EAAG,YAAY,CAACG,GAAG,CAAC,MAAQ,SAAS2qB,GAAiC,OAAzBA,EAAOC,kBAAyBlC,EAAOjK,OAAO5d,MAAM,KAAMC,UAAU,IAAI,CAACnB,EAAIoqB,GAAGpqB,EAAIqqB,GAAGtB,EAAOuB,EAAE,eAAe,GAAGtqB,EAAI+qB,KAAK,EAAEyB,OAAM,MAAS,CAAEzD,EAAO2B,oBAAsB3B,EAAO4B,WAAWC,YAAa1qB,EAAG,MAAM,CAAE6oB,EAAO8B,UAAUC,SAAU5qB,EAAG,OAAO,CAACF,EAAIoqB,GAAG,IAAIpqB,EAAIqqB,GAAGtB,EAAOuB,EAAE,8KAA8K,OAAOpqB,EAAG,OAAO,CAACF,EAAIoqB,GAAGpqB,EAAIqqB,GAAGtB,EAAOuB,EAAE,mDAAmDtqB,EAAI+qB,KAAMhC,EAAO2B,oBAAsB3B,EAAO4B,WAAWS,eAAgBlrB,EAAG,MAAM,CAACA,EAAG,MAAM,CAACF,EAAIoqB,GAAGpqB,EAAIqqB,GAAGtB,EAAOuB,EAAE,gBAAgBpqB,EAAG,MAAM,CAACA,EAAG,YAAY,CAACgpB,MAAM,CAAC,YAAa,EAAM,yBAAwB,GAAO6H,MAAM,CAACxqB,MAAOwiB,EAAOsD,aAAclI,SAAS,SAAU6M,GAAMjI,EAAOsD,aAAa2E,CAAG,EAAExH,WAAW,iBAAiBxpB,EAAI6rB,GAAI9C,EAAOqE,kBAAkB,SAASrB,GAAM,OAAO7rB,EAAG,YAAY,CAAC4E,IAAIinB,EAAKC,OAAO9C,MAAM,CAAC,MAAQ6C,EAAKC,OAAO,MAAQD,EAAKK,WAAW,IAAG,IAAI,KAAKpsB,EAAI+qB,QAAQ,EACj5E,EACIjqB,GAAkB,G,WCOtB,IAA4B0tB,EAAAA,GAAAA,iBAAiB,CAC3CC,OAAQ,eACRK,MAAO,CAAC,eAAgB,mBACxBJ,MAAMC,GAAS,KAAEI,IAEnB,MAAM,EACJzE,EAAC,sBACDG,EAAqB,UACrBI,EAAS,WACTkC,EAAU,WACVF,EAAU,UACVM,EAAS,iBACTC,EAAgB,YAChBjD,EAAW,OACXrL,EAAM,aACNuN,EAAY,WACZ1B,EAAU,UACViC,EAAS,MACTU,EAAK,kBACL5C,EAAiB,QACjBH,EAAO,sBACP0D,EAAqB,WACrBF,GACErB,KAUJsB,eAAe9C,IACb,IACE+B,GAAAA,EAAAA,IAAW,GAAGL,6BACRqB,UACApB,EAAWrE,UAAUwG,eAC3BjB,IACAgB,EAAK,kBAAmB,CAAEnjB,KAAM,EAAGD,QAAS,I,CAC5C,MAAOe,GACPugB,GAAAA,EAAAA,MAAa,GAAGL,sBAA+BlgB,E,CAEnD,CAOAshB,eAAe7C,IACb,IACE,GAAIN,EAAUC,SAEZ,YADAJ,EAAkBnkB,MAAQokB,EAAWS,sBAGjC6C,IACN,MAAMliB,QAAiB8gB,EAAWrE,UAAUyG,YAC5ChC,GAAAA,EAAAA,IAAW,GAAGL,cAAuB7gB,GACrCgiB,IACAgB,EAAK,eAAgB,CAAEnjB,KAAM,EAAGD,QAAS,I,CACzC,MAAOe,GACPugB,GAAAA,EAAAA,MAAa,GAAGL,oBAA6BlgB,E,CAEjD,CAEAshB,eAAevB,IACb,GAAKJ,EAAa9lB,MAGlB,IACE,MAAMylB,EAASK,EAAa9lB,MACtB2oB,QAA+BrC,EAAWrE,UAAU2G,eAAe,CAAEnD,SAAQoD,SAAUC,GAAAA,QAAAA,cAC7FpC,GAAAA,EAAAA,IAAW,GAAGL,qBAA8BsC,SACtCjB,IACN,MAAMqB,QAAyBzC,EAAWrE,UAAUyG,YACpDhC,GAAAA,EAAAA,IAAW,GAAGL,aAAsB0C,GACpCvC,EAAWc,sBAAqB,GAChCd,EAAWe,eAAe,IAC1BC,IACAgB,EAAK,eAAgB,CAAEnjB,KAAM,EAAGD,QAAS,I,CACzC,MAAOe,GACPugB,GAAAA,EAAAA,MAAa,GAAGL,2BAAoClgB,E,CAExD,CAOA,MAAM6iB,EAAkBvB,UACtB,IACE,MAAM,OAAEwB,GAAWC,EACnBxC,GAAAA,EAAAA,IAAW,GAAGL,oBAA6B4C,GAC3CE,GAAAA,EAAAA,MAAmBpF,EAAE,6BAA8BA,EAAE,QAAS,CAC5DqF,YAAa,uBACbC,kBAAmBtF,EAAE,WACrBuF,SAAU,iBACV1L,SAAU6J,UACRD,IACAgB,EAAK,kBAAmB,CAAEnjB,KAAM,EAAGD,QAAS,IAAK,G,CAGrD,MAAOe,GACPugB,GAAAA,EAAAA,MAAa,GAAGL,0BAAmClgB,E,GAUjDojB,EAAoB9B,UACxB,GAAIyB,EAAUL,WAAaC,GAAAA,QAAAA,WAAoB,CAC7C,MAAM,OAAErD,GAAWyD,EACnB,IAAIM,EAAUlF,EAAUmF,YAAYhE,IAAWA,EAC3CA,IAAWmB,EAAU5mB,MAAMylB,SAC7B+D,EAAUzF,EAAE,OAEd,MAAM2F,EAAa,GAAG3F,EAAE,2BAA2ByF,IAYnD,IAXAG,EAAAA,GAAAA,GAAU,CACRjuB,KAAM,UACN0J,QAASskB,IAEPpF,EAAUsC,UAAUnB,SAAWA,EACjCnB,EAAUsF,aAAa,CAAEf,SAAUC,GAAAA,QAAAA,aAEnCxE,EAAUuF,kBAAkBpE,EAAQqD,GAAAA,QAAAA,YAEtCxE,EAAUwF,gBAAgBrE,GAC1B+B,IACIlD,EAAUyF,SAAU,OACpBzF,EAAU0F,kCACN1D,EAAWrE,UAAUgI,SAAS,CAAEC,WAAY,EAAG7c,QAAS,I,GAgBpE,OAXA8c,KAAAA,KAAmB,SAAS,KAC1B7D,EAAWrE,UAAUnoB,GAAGswB,GAAAA,cAAAA,gBAA+BpB,GACvD1C,EAAWrE,UAAUnoB,GAAGswB,GAAAA,cAAAA,kBAAiCb,EAAkB,KAG7Ec,EAAAA,GAAAA,cAAY,KACV/D,EAAWrE,UAAUqI,IAAIF,GAAAA,cAAAA,gBAA+BpB,GACxD1C,EAAWrE,UAAUqI,IAAIF,GAAAA,cAAAA,kBAAiCb,EAAkB,IAIvE,CAAElB,OAAO,EAAKtE,IAAGG,wBAAuBI,YAAWkC,aAAYF,aAAYM,YAAWC,mBAAkBjD,cAAarL,SAAQuN,eAAc1B,aAAYiC,YAAWU,QAAO5C,oBAAmBH,UAAS0D,wBAAuBF,aAAYgB,OAAM7D,cAAaC,YAAWsB,mBAAkB8C,kBAAiBO,oBAAmBgB,OAAMA,GAAAA,EACzU,IClK+W,MCQ3W,IAAY,QACd,GACA,GACA,IACA,EACA,KACA,WACA,MAIF,GAAe,GAAiB,Q,WCdhC,MAAM5G,GAAa+G,GAAAA,EAAWC,GAAeC,GAE7C,UCPIpxB,GAAS,WAAkB,IAAIC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG6oB,EAAO/oB,EAAIG,MAAM6oB,YAAY,OAAO9oB,EAAG,MAAM,CAAC+oB,YAAY,eAAe,CAAC/oB,EAAG6oB,EAAOuD,QAAQ,CAAClD,WAAW,CAAC,CAACjgB,KAAK,MAAMkgB,QAAQ,QAAQ9iB,MAAOwiB,EAAOqI,mBAAoB5H,WAAW,uBAAuBN,MAAM,CAAC,YAAY,SAAS,KAAO,SAAS,eAAe,CAC1TmI,eAAgB,WACZ,EACV,EACIvwB,GAAkB,GCGtB,IAA4B0tB,EAAAA,GAAAA,iBAAiB,CAC3CC,OAAQ,eACRC,MAAMC,GAER,MAAM5B,GAAaC,EAAAA,GAAAA,MACb,cAAEsE,IAAkBjE,EAAAA,GAAAA,IAAYN,GAChCF,GAAaC,EAAAA,GAAAA,KAEnBkB,eAAeoD,UACPvE,EAAWrE,UAAU+I,aAAa,CAAED,eAAgBA,EAAc/qB,SACxEwmB,EAAWyE,kBAAkBF,EAAc/qB,MAC7C,CAEA,MAAO,CAAEqoB,OAAO,EAAK7B,aAAYuE,gBAAezE,aAAYuE,qBAAoB9E,QAAOA,GAAAA,EACvF,ICrB+W,MCQ3W,IAAY,QACd,GACA,GACA,IACA,EACA,KACA,WACA,MAIF,GAAe,GAAiB,QCnB5BvsB,GAAS,WAAkB,IAAIC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG6oB,EAAO/oB,EAAIG,MAAM6oB,YAAY,OAAO9oB,EAAG,MAAM,CAAC+oB,YAAY,eAAe,CAAC/oB,EAAG6oB,EAAOuD,QAAQ,CAAClD,WAAW,CAAC,CAACjgB,KAAK,MAAMkgB,QAAQ,QAAQ9iB,MAAOwiB,EAAO0I,mBAAoBjI,WAAW,uBAAuBN,MAAM,CAAC,YAAY,SAAS,KAAO,SAAS,eAAe,CAACmI,eAAgB,WAAW,EAC5V,EACIvwB,GAAkB,GCMtB,IAA4B0tB,EAAAA,GAAAA,iBAAiB,CAC3CC,OAAQ,eACRC,MAAMC,GAER,MAAM9B,GAAaC,EAAAA,GAAAA,KACbC,GAAaC,EAAAA,GAAAA,KAEnB,SAASyE,IACP,MAAMC,EAAY7E,EAAWrE,UAAUmJ,eACvCD,GAAWE,qBAAqB,CAC9BC,WACE9E,EAAW+E,oBACPC,GAAAA,oBAAAA,2BAAiDA,GAAAA,oBAAAA,4BACvDC,SAAUC,GAAAA,kBAAAA,mBACVC,SAAUC,GAAAA,kBAAAA,yBAEZpF,EAAWqF,uBAAuBrF,EAAW+E,qBAC7C/E,EAAW+E,qBAAuB/E,EAAW+E,mBAC/C,CAGA,MAAO,CAAElD,OAAO,EAAK/B,aAAYE,aAAY0E,qBAAoBnF,QAAOA,GAAAA,EACxE,IC9B+W,MCQ3W,IAAY,QACd,GACA,GACA,IACA,EACA,KACA,WACA,MAIF,GAAe,GAAiB,QCnB5BvsB,GAAS,WAAkB,IAAIC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG6oB,EAAO/oB,EAAIG,MAAM6oB,YAAY,OAAO9oB,EAAG,MAAM,CAAC+oB,YAAY,wBAAwB,CAAEF,EAAOsJ,oBAAqBnyB,EAAG,MAAM,CAACG,GAAG,CAAC,MAAQ0oB,EAAOuJ,2BAA2B,CAACpyB,EAAG,MAAM,CAAC+oB,YAAY,mBAAmB,CAAC/oB,EAAG,OAAO,CAAC+oB,YAAY,QAAQ,CAACjpB,EAAIoqB,GAAGpqB,EAAIqqB,GAAGtB,EAAOwJ,oBAAoBryB,EAAG,OAAO,CAAC+oB,YAAY,0BAA0B,CAAC/oB,EAAG6oB,EAAOuD,QAAQ,CAACrD,YAAY,oBAAoBC,MAAM,CAAC,KAAO,SAAS,YAAY,mBAAmB,OAAOlpB,EAAI+qB,KAAMhC,EAAOyJ,eAAgBtyB,EAAG,MAAM,CAAC+oB,YAAY,sBAAsB,CAAC/oB,EAAG,MAAM,CAACE,IAAI,cAAc6oB,YAAY,2BAA2B,CAAC/oB,EAAG,MAAM,CAAC+oB,YAAY,kBAAkB,CAAC/oB,EAAG,OAAO,CAAC+oB,YAAY,iBAAiB,CAACjpB,EAAIoqB,GAAGpqB,EAAIqqB,GAAGtB,EAAOwJ,oBAAoBryB,EAAG,OAAO,CAAC+oB,YAAY,SAAS5oB,GAAG,CAAC,MAAQ0oB,EAAO0J,uBAAuB,CAACzyB,EAAIoqB,GAAGpqB,EAAIqqB,GAAGtB,EAAOuB,EAAE,gBAAgBpqB,EAAG,MAAM,CAAC+oB,YAAY,mBAAmB,CAAC/oB,EAAG,MAAM,CAAC+oB,YAAY,iBAAiB,CAAC/oB,EAAG,OAAO,CAACF,EAAIoqB,GAAGpqB,EAAIqqB,GAAGtB,EAAOuB,EAAE,YAAYpqB,EAAG,OAAO,CAAC+oB,YAAY,cAAc,CAACjpB,EAAIoqB,GAAGpqB,EAAIqqB,GAAGtB,EAAO2J,qBAAqBxyB,EAAG,MAAM,CAAC+oB,YAAY,qBAAqB,CAAC/oB,EAAG,OAAO,CAAC+oB,YAAY,eAAe,CAACjpB,EAAIoqB,GAAGpqB,EAAIqqB,GAAGtB,EAAOuB,EAAE,iBAAiBpqB,EAAG,OAAO,CAAC+oB,YAAY,aAAa,CAACjpB,EAAIoqB,GAAGpqB,EAAIqqB,GAAGtB,EAAO4J,eAAezyB,EAAG,MAAM,CAAC+oB,YAAY,mBAAmB,CAAC/oB,EAAG,OAAO,CAAC+oB,YAAY,eAAe,CAACjpB,EAAIoqB,GAAGpqB,EAAIqqB,GAAGtB,EAAOuB,EAAE,eAAepqB,EAAG,OAAO,CAAC+oB,YAAY,cAAc,CAACjpB,EAAIoqB,GAAGpqB,EAAIqqB,GAAGtB,EAAOyG,WAAWtvB,EAAG6oB,EAAOuD,QAAQ,CAACrD,YAAY,OAAOC,MAAM,CAAC,YAAY,YAAY,KAAO,UAAU7oB,GAAG,CAAC,MAAQ,SAAS2qB,GAAQ,OAAOjC,EAAO6J,OAAO7J,EAAOyG,OAAO,MAAM,GAAKzG,EAAO8J,SAA8T7yB,EAAI+qB,KAAxT7qB,EAAG,MAAM,CAAC+oB,YAAY,mBAAmB,CAAC/oB,EAAG,OAAO,CAACF,EAAIoqB,GAAGpqB,EAAIqqB,GAAGtB,EAAOuB,EAAE,iBAAiBpqB,EAAG,OAAO,CAAC+oB,YAAY,QAAQ,CAACjpB,EAAIoqB,GAAGpqB,EAAIqqB,GAAGtB,EAAO+J,eAAe5yB,EAAG6oB,EAAOuD,QAAQ,CAACrD,YAAY,OAAOC,MAAM,CAAC,YAAY,aAAa7oB,GAAG,CAAC,MAAQ,SAAS2qB,GAAQ,OAAOjC,EAAO6J,OAAO7J,EAAO+J,WAAW,MAAM,KAAgB/J,EAAO8J,SAA6K7yB,EAAI+qB,KAAvK7qB,EAAG,MAAM,CAAC+oB,YAAY,mBAAmB,CAAC/oB,EAAG,OAAO,CAACF,EAAIoqB,GAAGpqB,EAAIqqB,GAAGtB,EAAOuB,EAAE,2FAAoGtqB,EAAI+qB,MACloE,EACIjqB,GAAkB,G,WCUtB,IAA4B0tB,EAAAA,GAAAA,iBAAiB,CAC3CC,OAAQ,WACRC,MAAMC,GAER,MAAM5B,GAAaC,EAAAA,GAAAA,KACbnC,GAAYqC,EAAAA,GAAAA,MACZ,OAAEsC,IAAWnC,EAAAA,GAAAA,IAAYN,IACzB,aAAEgG,IAAiB1F,EAAAA,GAAAA,IAAYxC,IAC/B,EAAEP,IAAMqC,EAAAA,GAAAA,KACRqG,GAAc5yB,EAAAA,GAAAA,OACdoyB,GAAiBpyB,EAAAA,GAAAA,MAAI,GACrBuyB,GAAWvb,EAAAA,GAAAA,WAAS,IAAOyT,EAAUoI,gBAAkB3I,EAAE,oBAAsBA,EAAE,sBAEjF,OAAE4I,EAAM,SAAE9Y,GAAaE,UAAY,CAAC,EACpCwY,GAAa1b,EAAAA,GAAAA,WAAS,IAAM,GAAG8b,IAAS9Y,kBAAyBoV,EAAOjpB,UAExEmsB,GAAiBtb,EAAAA,GAAAA,WAAS,IAAOyT,EAAUmF,YAAY+C,EAAaxsB,QAAWwsB,EAAaxsB,QAE5F8rB,GAAsBjb,EAAAA,GAAAA,WAAS,IAAOsb,EAAensB,QAErDgsB,GAAkBnb,EAAAA,GAAAA,WAAS,IAAM,GAAGsb,EAAensB,QAAQ+jB,EAAE,0BAEnE,SAASgI,IACPE,EAAejsB,OAASisB,EAAejsB,KACzC,CAEAynB,eAAe4E,EAAOrsB,GACpB,UACQ4sB,EAAAA,GAAAA,IAAU5sB,IAChB2pB,EAAAA,GAAAA,GAAU,CACRvkB,QAAS2e,EAAE,uBACXroB,KAAM,W,CAER,MAAOyK,IACPwjB,EAAAA,GAAAA,GAAU,CACRvkB,QAAS2e,EAAE,kBACXroB,KAAM,S,CAGZ,CAEA,SAASmxB,EAAoBjX,GACvBqW,EAAejsB,QAAUysB,EAAYzsB,MAAM8sB,SAASlX,EAAMhR,UAC5DqnB,EAAejsB,OAAQ,EAE3B,CAEA,SAASksB,IACPD,EAAejsB,OAAQ,CACzB,CAYA,OATA+sB,EAAAA,GAAAA,YAAU,KACRniB,UAAUwN,iBAAiB,QAASyU,GAAqB,EAAK,KAGhExC,EAAAA,GAAAA,cAAY,KACVzf,UAAU0L,oBAAoB,QAASuW,GAAqB,EAAK,IAI5D,CAAExE,OAAO,EAAK7B,aAAYlC,YAAW2E,SAAQuD,eAAczI,IAAG0I,cAAaR,iBAAgBG,WAAUO,SAAQ9Y,WAAU0Y,aAAYJ,iBAAgBL,sBAAqBE,kBAAiBD,2BAA0BM,SAAQQ,sBAAqBX,uBAAsBnG,QAAO,KAAEuG,SAAQA,GAAAA,EAC9R,IC1E2W,MCQvW,IAAY,QACd,GACA,GACA,IACA,EACA,KACA,WACA,MAIF,GAAe,GAAiB,Q,WCXhC,MAAMU,GAAiC,UAAtBjZ,SAASR,UAA8C,cAAtBQ,SAASJ,UAAkD,cAAtBI,SAASJ,SAC1FsZ,GAAqC,uBAAlBlZ,SAASP,KAE5B0Z,GAAiBF,IAAYC,GAE7BE,GAAsBF,GAEtBG,GAAU,qBAEVC,GAAc,sBCdpB,IAAIC,GAEJ,MAAMC,GAAS3iB,SAASsI,cAAc,UACtCqa,GAAO7xB,KAAO,kBACd6xB,GAAOC,IAAM,wDACb5iB,SAAS6iB,qBAAqB,QAAQ,GAAGC,YAAYH,IAErDA,GAAOI,OAAS,KAGdL,GAAQ,IAAIM,MAAM,CAChB1jB,GAAIkjB,GACJS,IAAK,GACLC,gBAAgB,EAChBC,kBAAkB,EAClBC,KAAK,IAEHC,GAAUC,uBACZD,GAAUC,sBAAsBpwB,SAASsN,IACvCkiB,GAAMa,YAAY/iB,EAAK,G,EAK7B,MAAMgjB,GAAY,uCACW,IAAC,2BACEf,KAAW,8BACPH,KAAc,mCACTC,KAAmB,oCACZ,KAAE,qCAEZ,GAAE,CAEtCkB,YAAYC,GACV50B,KAAK40B,SAAWA,CAClB,CAEAH,YAAY/iB,GACV,IAAK1R,KAAKwzB,eACR,OAEF,MAAQtqB,KAAM2rB,EAAWC,KAAMC,GAAcrjB,EAC7C,GAAI1R,KAAKyzB,qBAAqC,WAAdoB,EAAwB,CACtD,MAAMG,EAAa,IAAKtjB,EAAMujB,KAAMj1B,KAAK2zB,YAAauB,KAAMl1B,KAAK40B,UAC7DhB,GACE5zB,KAAKm1B,qBAAqB9tB,QAAQ,GAAGwtB,KAAaE,KAAe,IACnE/0B,KAAKm1B,qBAAqB/sB,KAAK,GAAGysB,KAAaE,KAC/CnB,GAAMa,YAAYO,IAGpBh1B,KAAKw0B,sBAAsBpsB,KAAK4sB,E,CAGtC,EAGF,MAAMT,GAAY,IAAIG,GAEtB,UCrDA,IAA4BnG,EAAAA,GAAAA,iBAAiB,CAC3CC,OAAQ,QACRK,MAAO,CAAC,UAAW,kBAAmB,gBACtCJ,MAAMC,GAAS,KAAEI,IAInB,MAAMruB,EAAiB20B,IACrBtG,EAAK,kBAAmBsG,GACxBV,GAAAA,YAAyB,CAAExrB,KAAM,cAAe4rB,KAAM,uBAAwB,EAG1Et0B,EAAc40B,IAClBtG,EAAK,eAAgBsG,GACrBV,GAAAA,YAAyB,CAAExrB,KAAM,WAAY4rB,KAAM,oBAAqB,EAI1E,MAAO,CAAEnG,OAAO,EAAKG,OAAMruB,gBAAeD,aAAYypB,WAAU,GAAEH,aAAY,GAAEC,aAAY,GAAEC,SAAQA,GACtG,IC3BwW,MCQpW,IAAY,QACd,GACA,GACA,IACA,EACA,KACA,WACA,MAIF,GAAe,GAAiB,QCnB5BlqB,GAAS,WAAkB,IAAIC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG6oB,EAAO/oB,EAAIG,MAAM6oB,YAAY,OAAO9oB,EAAG,MAAM,CAAC+oB,YAAY,oBAAoB,CAAC/oB,EAAG,MAAM,CAAC+oB,YAAY,kBAAkB,CAAC/oB,EAAG6oB,EAAOuM,SAAS,CAAClM,WAAW,CAAC,CAACjgB,KAAK,OAAOkgB,QAAQ,SAAS9iB,MAAOvG,EAAIu1B,eAAgB/L,WAAW,mBAAmBP,YAAY,wBAAwBC,MAAM,CAAC,UAAUH,EAAOiD,OAAO,YAAYjD,EAAOqD,SAAS,aAAarD,EAAOoD,WAAW9rB,GAAG,CAAC,UAAU,SAAS2qB,GAAQ,OAAOhrB,EAAIw1B,MAAM,UAAU,KAAKt1B,EAAG6oB,EAAO0M,SAAS,CAACrM,WAAW,CAAC,CAACjgB,KAAK,OAAOkgB,QAAQ,SAAS9iB,MAAOvG,EAAIu1B,eAAgB/L,WAAW,mBAAmBP,YAAY,yBAAyB/oB,EAAG6oB,EAAO2M,YAAY,CAACzM,YAAY,uBAAuB,GAAG/oB,EAAG,MAAM,CAAC+oB,YAAY,mBAAmB,CAAC/oB,EAAG6oB,EAAO4M,cAAc,CAAC1M,YAAY,0BAA0B,IAC1yB,EACInoB,GAAkB,G,iCCFlBf,GAAS,WAAkB,IAAIC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG6oB,EAAO/oB,EAAIG,MAAM6oB,YAAY,OAAQD,EAAO6M,aAAe,EAAG11B,EAAG,MAAM,CAAC+oB,YAAY,oBAAoB,CAAC/oB,EAAG6oB,EAAOuD,QAAQ,CAACrD,YAAY,cAAcC,MAAM,CAAC,YAAY,SAAS,KAAO,UAAU7oB,GAAG,CAAC,MAAQ,SAAS2qB,GAAiC,OAAzBA,EAAOC,kBAAyBlC,EAAO8M,sBAAsB30B,MAAM,KAAMC,UAAU,KAAM4nB,EAAO+M,eAAgB51B,EAAG,MAAM,CAACE,IAAI,aAAa6oB,YAAY,eAAe,CAAC/oB,EAAG,MAAM,CAACsqB,MAAM,CAAC,UAAW,cAAgB,IAAEzB,EAAOgN,SAAWhN,EAAOiN,OAAOC,kBAAoB,UAAY,KAAM51B,GAAG,CAAC,MAAQ,SAAS2qB,GAAQ,OAAOjC,EAAOmN,YAAYnN,EAAOiN,OAAOC,kBAAkB,IAAI,CAAC/1B,EAAG,MAAM,CAAC+oB,YAAY,0BAA0BjpB,EAAI6rB,GAAI,IAAIzpB,MAAM,GAAG+zB,KAAK,KAAK,SAASC,EAAKtnB,GAAO,OAAO5O,EAAG,MAAM,CAAC4E,IAAIgK,EAAMma,YAAY,gBAAgB,IAAG,GAAG/oB,EAAG,OAAO,CAAC+oB,YAAY,gBAAgB,CAACjpB,EAAIoqB,GAAGpqB,EAAIqqB,GAAGtB,EAAOuB,EAAE,cAAcpqB,EAAG,MAAM,CAACsqB,MAAM,CAAC,UAAW,cAAgB,IAAEzB,EAAOgN,SAAWhN,EAAOiN,OAAOK,gBAAkB,UAAY,KAAMh2B,GAAG,CAAC,MAAQ,SAAS2qB,GAAQ,OAAOjC,EAAOmN,YAAYnN,EAAOiN,OAAOK,gBAAgB,IAAI,CAACn2B,EAAG,MAAM,CAAC+oB,YAAY,0BAA0B,CAAC/oB,EAAG,MAAM,CAAC+oB,YAAY,mBAAmB/oB,EAAG,MAAM,CAAC+oB,YAAY,mBAAmBjpB,EAAI6rB,GAAI,IAAIzpB,MAAM,GAAG+zB,KAAK,KAAK,SAASC,EAAKtnB,GAAO,OAAO5O,EAAG,MAAM,CAAC4E,IAAIgK,EAAMma,YAAY,gBAAgB,IAAG,KAAK/oB,EAAG,OAAO,CAAC+oB,YAAY,gBAAgB,CAACjpB,EAAIoqB,GAAGpqB,EAAIqqB,GAAGtB,EAAOuB,EAAE,0BAA0BpqB,EAAG,MAAM,CAACsqB,MAAM,CAAC,UAAW,cAAgB,IAAEzB,EAAOgN,SAAWhN,EAAOiN,OAAOM,cAAgB,UAAY,KAAMj2B,GAAG,CAAC,MAAQ,SAAS2qB,GAAQ,OAAOjC,EAAOmN,YAAYnN,EAAOiN,OAAOM,cAAc,IAAI,CAACp2B,EAAG,MAAM,CAAC+oB,YAAY,0BAA0B,CAAC/oB,EAAG,MAAM,CAAC+oB,YAAY,iBAAiBjpB,EAAI6rB,GAAI,IAAIzpB,MAAM,GAAG+zB,KAAK,KAAK,SAASC,EAAKtnB,GAAO,OAAO5O,EAAG,MAAM,CAAC4E,IAAIgK,EAAMma,YAAY,gBAAgB,IAAG,GAAG/oB,EAAG,MAAM,CAAC+oB,YAAY,uBAAuB/oB,EAAG,OAAO,CAAC+oB,YAAY,gBAAgB,CAACjpB,EAAIoqB,GAAGpqB,EAAIqqB,GAAGtB,EAAOuB,EAAE,0BAA0BtqB,EAAI+qB,MAAM,GAAG/qB,EAAI+qB,IACp8D,EACIjqB,GAAkB,G,WCStB,IAA4B0tB,EAAAA,GAAAA,iBAAiB,CAC3CC,OAAQ,gBACRC,MAAMC,GAER,MAAM,EAAErE,IAAMqC,EAAAA,GAAAA,KAERI,GAAaC,EAAAA,GAAAA,MACb,OAAE+I,IAAW1I,EAAAA,GAAAA,IAAYN,GACzBlC,GAAYqC,EAAAA,GAAAA,MACZ,aAAE0I,IAAiBvI,EAAAA,GAAAA,IAAYxC,GAE/BiL,GAA8B11B,EAAAA,GAAAA,MAAI,GAClCm2B,GAA4Bn2B,EAAAA,GAAAA,KAAI,MAEtC,SAAS81B,EAAYH,GACnBhJ,EAAWyJ,UAAUT,GACrBpB,GAAAA,YAAyB,CAAExrB,KAAM,SAAU4rB,KAAMgB,GACnD,CAEA,SAASF,IACFC,EAAevvB,OAIlB4K,SAAS0L,oBAAoB,QAASuW,GAAqB,GAC3D0C,EAAevvB,OAAQ,IAJvBuvB,EAAevvB,OAAQ,EACvB4K,SAASwN,iBAAiB,QAASyU,GAAqB,GAK5D,CAEA,SAASA,EAAoBjX,GACvB2Z,EAAevvB,OAASgwB,EAAWhwB,QAAUgwB,EAAWhwB,MAAM8sB,SAASlX,EAAMhR,UAC/EgG,SAAS0L,oBAAoB,QAASuW,GACtC0C,EAAevvB,OAAQ,EAE3B,CAGA,MAAO,CAAEqoB,OAAO,EAAKtE,IAAGyC,aAAYgJ,SAAQlL,YAAW+K,eAAcE,iBAAgBS,aAAYL,cAAaL,wBAAuBzC,sBAAqB9G,QAAO,KAAE0J,OAAMA,GAAAA,EACzK,ICjDgX,MCQ5W,IAAY,QACd,GACA,GACA,IACA,EACA,KACA,WACA,MAIF,GAAe,GAAiB,QCHhC,IAA4BxH,EAAAA,GAAAA,iBAAiB,CAC3CC,OAAQ,QACRroB,MAAO,CACLmvB,eAAgB,CAAEtzB,KAAMw0B,QAAS3N,SAAS,IAE5CgG,MAAO,CAAC,WACRJ,MAAMC,GAER,MAAM5B,GAAaC,EAAAA,GAAAA,MAEb,OAAEhB,EAAM,SAAEI,EAAQ,UAAED,IAAckB,EAAAA,GAAAA,IAAYN,GAOpD,MAAO,CAAE6B,OAAO,EAAK7B,aAAYf,SAAQI,WAAUD,YAAWmJ,SAAQ,KAAEG,SAAQ,KAAEC,YAAW,KAAEC,cAAaA,GAC5G,IClCwW,MCQpW,IAAY,QACd,GACA,GACA,IACA,EACA,KACA,WACA,MAIF,GAAe,GAAiB,QCdhC,MAAM7mB,GAAQmiB,GAAAA,EAAWyF,GAAUC,GAEnC,UCPI52B,GAAS,WAAkB,IAAIC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG6oB,EAAO/oB,EAAIG,MAAM6oB,YAAY,OAAO9oB,EAAG,MAAM,CAAC+oB,YAAY,oBAAoB,CAAC/oB,EAAG,MAAM,CAAC+oB,YAAY,kBAAkB,CAAC/oB,EAAG6oB,EAAO6N,aAAa,CAACxN,WAAW,CAAC,CAACjgB,KAAK,MAAMkgB,QAAQ,QAAQ9iB,MAAO,IAAMwiB,EAAO8N,mBAAmB,gBAAiBrN,WAAW,+CAA+CtpB,EAAG6oB,EAAO+N,aAAa,CAAC1N,WAAW,CAAC,CAACjgB,KAAK,MAAMkgB,QAAQ,QAAQ9iB,MAAO,IAAMwiB,EAAO8N,mBAAmB,gBAAiBrN,WAAW,+CAAiDT,EAAO8B,UAAU0F,2BAA2MrwB,EAAG6oB,EAAOgO,aAAa,CAAC3N,WAAW,CAAC,CAACjgB,KAAK,MAAMkgB,QAAQ,QAAQ9iB,MAAO,IAAMwiB,EAAO8N,mBAAmB,gBAAiBrN,WAAW,+CAAlTtpB,EAAG6oB,EAAOiO,YAAY,CAAC5N,WAAW,CAAC,CAACjgB,KAAK,MAAMkgB,QAAQ,QAAQ9iB,MAAO,IAAMwiB,EAAO8N,mBAAmB,eAAgBrN,WAAW,8CAAiOT,EAAO8B,UAAUC,SAAU5qB,EAAG6oB,EAAOkO,oBAAoB,CAAC7N,WAAW,CAAC,CAACjgB,KAAK,MAAMkgB,QAAQ,QAAQ9iB,MAAO,IAAMwiB,EAAO8N,mBAAmB,uBAAwBrN,WAAW,sDAAsDxpB,EAAI+qB,KAAK7qB,EAAG6oB,EAAOmO,YAAY,CAAC9N,WAAW,CAAC,CAACjgB,KAAK,MAAMkgB,QAAQ,QAAQ9iB,MAAO,IAAMwiB,EAAO8N,mBAAmB,eAAgBrN,WAAW,+CAA+C,IACp0C,EACI1oB,GAAkB,GCFlBf,GAAS,WAAkB,IAAIC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG6oB,EAAO/oB,EAAIG,MAAM6oB,YAAY,OAAO9oB,EAAG,MAAM,CAACA,EAAG,MAAM,CAAC+oB,YAAY,0BAA0B5oB,GAAG,CAAC,MAAQ,SAAS2qB,GAAQ,OAAOjC,EAAO+F,MAAM,QAAQ,IAAI,CAAC5uB,EAAG6oB,EAAOoO,WAAW,CAAC/2B,IAAI,qBAAqB8oB,MAAM,CAAC,aAAaH,EAAOqO,YAAYlJ,eAAe,MAAQnF,EAAOuB,EAAE,OAAO,WAAWvB,EAAOsO,QAAQ,YAAYtO,EAAOuO,oBAAoB,SAAWvO,EAAOwO,yBAAyBl3B,GAAG,CAAC,aAAa0oB,EAAOyO,gBAAgB,aAAazO,EAAO0O,aAAa,CAACv3B,EAAG6oB,EAAO2O,UAAU,CAACxO,MAAM,CAAC,eAAeH,EAAOqO,YAAYO,YAAY,YAAY5O,EAAOqO,YAAYlJ,eAAe,cAAcnF,EAAOwO,4BAA4B,GAAGr3B,EAAG6oB,EAAO6O,gBAAgB,CAACxO,WAAW,CAAC,CAACjgB,KAAK,OAAOkgB,QAAQ,SAAS9iB,MAAOwiB,EAAOuO,oBAAqB9N,WAAW,wBAAwBppB,IAAI,kBAAkB6oB,YAAY,eAAe,GAAG/oB,EAAG6oB,EAAO+H,OAAO,CAAC7H,YAAY,uBAAuBC,MAAM,CAAC,cAAcH,EAAO8O,yBAAyB,MAAQ9O,EAAOuE,MAAM,OAAQ,EAAM,cAAa,EAAM,kBAAiB,EAAK,wBAAuB,EAAM,yBAAwB,EAAM,MAAQ,SAAS/B,YAAYvrB,EAAIwrB,GAAG,CAAC,CAAC1mB,IAAI,SAAS9D,GAAG,WAAW,MAAO,CAACd,EAAG,MAAM,CAACsqB,MAAM,CAACzB,EAAOkI,SAAW,0BAA4B,wBAAwB,CAAC/wB,EAAG,OAAO,CAAC+oB,YAAY,SAAS5oB,GAAG,CAAC,MAAQ0oB,EAAO+O,eAAe,CAAC93B,EAAIoqB,GAAGpqB,EAAIqqB,GAAGtB,EAAOuB,EAAE,sBAAsBpqB,EAAG,OAAO,CAAC+oB,YAAY,QAAQ5oB,GAAG,CAAC,MAAQ0oB,EAAOgP,eAAe,CAAC/3B,EAAIoqB,GAAGpqB,EAAIqqB,GAAGtB,EAAOuB,EAAE,gCAAgC,EAAEkC,OAAM,MAAS,CAACtsB,EAAG,OAAO,CAACF,EAAIoqB,GAAG,IAAIpqB,EAAIqqB,GAAGtB,EAAOuB,EAAE,mDAAmD,UAAU,EACtmD,EACIxpB,GAAkB,G,4CCetB,IAA4B0tB,EAAAA,GAAAA,iBAAiB,CAC3CC,OAAQ,eACRK,MAAO,CAAC,SACRJ,MAAMC,GAAWI,KAAMD,IAEzB,MAAMjC,GAAamL,EAAAA,GAAAA,KAEbnN,GAAYqC,EAAAA,GAAAA,MACZ,WACJ+K,EAAU,YACVb,EAAW,wBACXG,EAAuB,8BACvBW,IACE7K,EAAAA,GAAAA,IAAYxC,GAGVwM,GAAUjgB,EAAAA,GAAAA,WAAS,KAAO6Z,GAAAA,IAC1BqG,GAAoCl3B,EAAAA,GAAAA,MAAI,GACxC+3B,GAAqB/3B,EAAAA,GAAAA,OACrBg4B,GAAkBh4B,EAAAA,GAAAA,QAClB,EAAEkqB,IAAMqC,EAAAA,GAAAA,KACRW,GAAQlW,EAAAA,GAAAA,WAAS,IAAO6Z,GAAAA,EAAW,GAAK3G,EAAE,UAEhD0D,eAAewJ,IACb,GAAID,EAAwBhxB,MAAO,CACjC,IAAI8xB,EAAiB,GAWrB,OAVIH,EAA8B3xB,MAChC8xB,EAAiBC,GAAAA,EAAAA,+BACRL,EAAW1xB,QACpB8xB,EAAiBC,GAAAA,EAAAA,qCAEnBpI,EAAAA,GAAAA,GAAU,CACRjuB,KAAM,UACN0J,QAAS2e,EAAE+N,GACXE,SAAUC,GAAAA,EAAAA,Q,CAId,GAAIpB,EAAY7wB,MAAM2nB,qBACdrB,EAAWrE,UAAU2F,wBAEvBtD,EAAUqN,+BACZrN,EAAU4N,wBAAuB,OAE9B,CACL,MAAMC,QAAuB7L,EAAWrE,UAAUmQ,qBAC5CC,EAAsBF,EAAeh0B,OAAS,EACpD,IAAKk0B,IAAwB/F,GAAAA,EAM3B,YAJAnD,GAAAA,EAAAA,MAAmBpF,EAAE,8CAA+CA,EAAE,QAAS,CAC7EqF,YAAa,uBACbC,kBAAmBtF,EAAE,mBAKnBuC,EAAWrE,UAAUqQ,sB,CAE7BvB,EAAoB/wB,OAAQ,CAC9B,CAEA,SAASkxB,IACFH,EAAoB/wB,MAGvB+wB,EAAoB/wB,OAAQ,EAF5B+wB,EAAoB/wB,OAAQ,CAIhC,CAEA,SAAS6sB,EAAoBjX,IAEzBmb,EAAoB/wB,OAChB4xB,EAAmB5xB,OAAOuyB,IAAIzF,SAASlX,EAAMhR,SAC7CitB,EAAgB7xB,OAAOuyB,IAAIzF,SAASlX,EAAMhR,UAE9CmsB,EAAoB/wB,OAAQ,EAEhC,CAGA,MAAMsxB,GAAyCz3B,EAAAA,GAAAA,MAAI,GAC7C24B,GAAuC34B,EAAAA,GAAAA,KAAI,IACjD4tB,eAAegL,EAAkBvJ,GAC/B,MAAM,cAAEwJ,EAAa,UAAEC,GAAczJ,EAAU3jB,QAE3CmtB,IAAkBE,GAAAA,iBAAAA,iCACpBJ,EAAwBxyB,MAAQ2yB,EAChCrB,EAAyBtxB,OAAQ,EAErC,CAGAynB,eAAe+J,IACblN,EAAU4N,wBAAuB,SAC3B5L,EAAWrE,UAAU4Q,sBAAsB,CAC/CF,UAAWH,EAAwBxyB,MACnC8yB,OAAO,KAETN,EAAwBxyB,MAAQ,GAChCsxB,EAAyBtxB,OAAQ,CACnC,CAGAynB,eAAe8J,UACPjL,EAAWrE,UAAU4Q,sBAAsB,CAC/CF,UAAWH,EAAwBxyB,MACnC8yB,OAAO,KACTN,EAAwBxyB,MAAQ,GAChCsxB,EAAyBtxB,OAAQ,CACnC,CAGAynB,eAAesL,EAAmB7J,GAChC,MAAM,UAAEyJ,GAAczJ,EAClBsJ,EAAwBxyB,QAAU2yB,IACpCrB,EAAyBtxB,OAAQ,EAErC,CAmBA,OAjBA+sB,EAAAA,GAAAA,YAAU,KACRniB,UAAUwN,iBAAiB,QAASyU,GAAqB,EAAK,IAGhE1C,KAAAA,KAAmB,SAAS,KAC1B7D,EAAWrE,UAAUnoB,GAAGswB,GAAAA,cAAAA,kBAAiCqI,GACzDnM,EAAWrE,UAAUnoB,GAAGswB,GAAAA,cAAAA,mBAAkC2I,EAAmB,KAG/E1I,EAAAA,GAAAA,cAAY,KACVzf,UAAU0L,oBAAoB,QAASuW,GAAqB,GAE5DvG,EAAWrE,UAAUqI,IAAIF,GAAAA,cAAAA,kBAAiCqI,GAC1DnM,EAAWrE,UAAUqI,IAAIF,GAAAA,cAAAA,mBAAkC2I,EAAmB,IAIzE,CAAE1K,OAAO,EAAK/B,aAAYhC,YAAWoN,aAAYb,cAAaG,0BAAyBW,gCAA+BpJ,QAAOuI,UAASC,sBAAqBa,qBAAoBC,kBAAiB9N,IAAGgD,QAAOkK,kBAAiBC,aAAYrE,sBAAqByE,2BAA0BkB,0BAAyBC,oBAAmBjB,eAAcD,eAAcwB,qBAAoBxI,OAAM,KAAEqG,WAAU,KAAES,gBAAe,KAAEF,UAAS,KAAEzG,SAAQA,GAAAA,EACjb,IC1JmW,MCQ/V,IAAY,QACd,GACA,GACA,IACA,EACA,KACA,WACA,MAIF,GAAe,GAAiB,QCnB5BlxB,GAAS,WAAkB,IAAIC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG6oB,EAAO/oB,EAAIG,MAAM6oB,YAAY,OAAO9oB,EAAG,MAAM,CAACA,EAAG,MAAM,CAAC+oB,YAAY,0BAA0B5oB,GAAG,CAAC,MAAQ,SAAS2qB,GAAQ,OAAOjC,EAAO+F,MAAM,QAAQ,IAAI,CAAC5uB,EAAG6oB,EAAOoO,WAAW,CAAC/2B,IAAI,qBAAqB8oB,MAAM,CAAC,aAAaH,EAAOqO,YAAYhJ,eAAe,MAAQrF,EAAOuB,EAAE,UAAU,YAAYvB,EAAOwQ,SAAS,WAAWxQ,EAAOsO,QAAQ,SAAWtO,EAAOyQ,yBAAyBn5B,GAAG,CAAC,aAAa0oB,EAAO0Q,gBAAgB,aAAa1Q,EAAO0O,cAAcv3B,EAAG6oB,EAAO2Q,gBAAgB,CAACtQ,WAAW,CAAC,CAACjgB,KAAK,OAAOkgB,QAAQ,SAAS9iB,MAAOwiB,EAAO4Q,oBAAqBnQ,WAAW,wBAAwBppB,IAAI,kBAAkB6oB,YAAY,eAAe,GAAG/oB,EAAG6oB,EAAO+H,OAAO,CAAC7H,YAAY,uBAAuBC,MAAM,CAAC,cAAcH,EAAO6Q,4BAA4B,MAAQ7Q,EAAOuE,MAAM,OAAQ,EAAM,cAAa,EAAM,kBAAiB,EAAK,wBAAuB,EAAM,yBAAwB,EAAM,MAAQ,SAAS/B,YAAYvrB,EAAIwrB,GAAG,CAAC,CAAC1mB,IAAI,SAAS9D,GAAG,WAAW,MAAO,CAACd,EAAG,MAAM,CAACsqB,MAAM,CAACzB,EAAOkI,SAAW,0BAA4B,wBAAwB,CAAC/wB,EAAG,OAAO,CAAC+oB,YAAY,SAAS5oB,GAAG,CAAC,MAAQ0oB,EAAO+O,eAAe,CAAC93B,EAAIoqB,GAAGpqB,EAAIqqB,GAAGtB,EAAOuB,EAAE,sBAAsBpqB,EAAG,OAAO,CAAC+oB,YAAY,QAAQ5oB,GAAG,CAAC,MAAQ0oB,EAAOgP,eAAe,CAAC/3B,EAAIoqB,GAAGpqB,EAAIqqB,GAAGtB,EAAOuB,EAAE,4BAA4B,EAAEkC,OAAM,MAAS,CAACtsB,EAAG,OAAO,CAACF,EAAIoqB,GAAG,IAAIpqB,EAAIqqB,GAAGtB,EAAOuB,EAAE,+CAA+C,UAAU,EAC76C,EACIxpB,GAAkB,G,sBCgBtB,IAA4B0tB,EAAAA,GAAAA,iBAAiB,CAC3CC,OAAQ,eACRK,MAAO,CAAC,SACRJ,MAAMC,GAAWI,KAAMD,IAEzB,MAAMjC,GAAaC,EAAAA,GAAAA,KAEbjC,GAAYqC,EAAAA,GAAAA,KACZH,GAAaC,EAAAA,GAAAA,KACbsE,GAA8BlxB,EAAAA,GAAAA,KAAI2sB,EAAWuE,gBAG7C,0BACJuI,EAAyB,WACzB5B,EAAU,YACVb,EAAW,wBACXoC,IACEnM,EAAAA,GAAAA,IAAYxC,IACV,EAAEP,IAAMqC,EAAAA,GAAAA,KACR0K,GAAUjgB,EAAAA,GAAAA,WAAS,KAAO6Z,GAAAA,IAC1B0I,GAAoCv5B,EAAAA,GAAAA,MAAI,GACxC05B,GAAqB15B,EAAAA,GAAAA,OACrB25B,GAAkB35B,EAAAA,GAAAA,OAClBktB,GAAQlW,EAAAA,GAAAA,WAAS,IAAO6Z,GAAAA,EAAW,GAAK3G,EAAE,UAE1CiP,GAAWniB,EAAAA,GAAAA,WAAS,IACpBoiB,EAAwBjzB,MACnByzB,GAAAA,EAAAA,kBAEF5C,EAAY7wB,MAAM6nB,eAAiB4L,GAAAA,EAAAA,SAAqBA,GAAAA,EAAAA,YAGjEhM,eAAeyL,IACb,GAAID,EAAwBjzB,MAAO,CACjC,IAAI8xB,EAAiB,GAWrB,OAVIwB,EAA0BtzB,MAC5B8xB,EAAiBC,GAAAA,EAAAA,kCACRL,EAAW1xB,QACpB8xB,EAAiBC,GAAAA,EAAAA,wCAEnBpI,EAAAA,GAAAA,GAAU,CACRjuB,KAAM,UACN0J,QAAS2e,EAAE+N,GACXE,SAAUC,GAAAA,EAAAA,Q,CAKd,GAAIpB,EAAY7wB,MAAM6nB,qBACdvB,EAAWrE,UAAU6F,oBAEvBxD,EAAUgP,2BACZhP,EAAUoP,wBAAuB,OAE9B,CACL,MAAMC,QAAmBrN,EAAWrE,UAAU2R,wBACxCC,EAAkBF,EAAWx1B,OAAS,EAE5C,IAAK01B,IAAoBvH,GAAAA,EAKvB,YAJAnD,GAAAA,EAAAA,MAAmBpF,EAAE,yCAA0CA,EAAE,QAAS,CACxEqF,YAAa,uBACbC,kBAAmBtF,EAAE,aAKzBuC,EAAWrE,UAAU6R,kBAAkB,CACrCC,KAAM,GAAGzP,EAAUuM,YAAYpL,UAAUnB,EAAUuM,YAAYmD,aAC/DA,WAAYC,GAAAA,mBAAAA,gBAEVvJ,GAAAA,QACIpE,EAAWrE,UAAUiS,gBAAgB,CAAEnJ,cAAeA,EAAc/qB,eAEpEsmB,EAAWrE,UAAUiS,kB,CAG/Bd,EAAoBpzB,OAAQ,CAC9B,CAEA,SAASkxB,IACFkC,EAAoBpzB,MAGvBozB,EAAoBpzB,OAAQ,EAF5BozB,EAAoBpzB,OAAQ,CAIhC,CAEA,SAAS6sB,EAAoBjX,IAEzBwd,EAAoBpzB,OAChBuzB,EAAmBvzB,OAAOuyB,IAAIzF,SAASlX,EAAMhR,SAC7C4uB,EAAgBxzB,OAAOuyB,IAAIzF,SAASlX,EAAMhR,UAE9CwuB,EAAoBpzB,OAAQ,EAEhC,CAGA,MAAMqzB,GAA4Cx5B,EAAAA,GAAAA,MAAI,GAChDs6B,GAA0Ct6B,EAAAA,GAAAA,KAAI,IACpD4tB,eAAegL,EAAkBvJ,GAC/B,MAAM,cAAEwJ,EAAa,UAAEC,GAAczJ,EAAU3jB,QAE3CmtB,IAAkBE,GAAAA,iBAAAA,6BACpBuB,EAA2Bn0B,MAAQ2yB,EACnCU,EAA4BrzB,OAAQ,EAExC,CAGAynB,eAAe+J,IACblN,EAAUoP,wBAAuB,GACjCpN,EAAWrE,UAAU6R,kBAAkB,CACrCC,KAAM,GAAGzP,EAAUuM,YAAYpL,UAAUnB,EAAUuM,YAAYmD,aAC/DA,WAAYC,GAAAA,mBAAAA,sBAER3N,EAAWrE,UAAU4Q,sBAAsB,CAC/CF,UAAWwB,EAA2Bn0B,MACtC8yB,OAAO,KAETqB,EAA2Bn0B,MAAQ,GACnCqzB,EAA4BrzB,OAAQ,CACtC,CAGAynB,eAAe8J,UACPjL,EAAWrE,UAAU4Q,sBAAsB,CAC/CF,UAAWwB,EAA2Bn0B,MACtC8yB,OAAO,KAETqB,EAA2Bn0B,MAAQ,GACnCqzB,EAA4BrzB,OAAQ,CACtC,CAGAynB,eAAesL,EAAmB7J,GAChC,MAAM,UAAEyJ,GAAczJ,EAClBiL,EAA2Bn0B,QAAU2yB,IACvCU,EAA4BrzB,OAAQ,EAExC,CAmBA,OAjBA+sB,EAAAA,GAAAA,YAAU,KACRniB,UAAUwN,iBAAiB,QAASyU,GAAqB,EAAK,IAGhE1C,KAAAA,KAAmB,SAAS,KAC1B7D,EAAWrE,UAAUnoB,GAAGswB,GAAAA,cAAAA,kBAAiCqI,GACzDnM,EAAWrE,UAAUnoB,GAAGswB,GAAAA,cAAAA,mBAAkC2I,EAAmB,KAG/E1I,EAAAA,GAAAA,cAAY,KACVzf,UAAU0L,oBAAoB,QAASuW,GAAqB,GAE5DvG,EAAWrE,UAAUqI,IAAIF,GAAAA,cAAAA,kBAAiCqI,GAC1DnM,EAAWrE,UAAUqI,IAAIF,GAAAA,cAAAA,mBAAkC2I,EAAmB,IAIzE,CAAE1K,OAAO,EAAK/B,aAAYhC,YAAWkC,aAAYuE,gBAAexC,QAAO+K,4BAA2B5B,aAAYb,cAAaoC,0BAAyBlP,IAAG+M,UAASsC,sBAAqBG,qBAAoBC,kBAAiBzM,QAAOiM,WAAUE,kBAAiBhC,aAAYrE,sBAAqBwG,8BAA6Bc,6BAA4B1B,oBAAmBjB,eAAcD,eAAcwB,qBAAoBxI,OAAM,KAAEqG,WAAU,KAAEuC,gBAAe,KAAEzI,SAAQA,GAAAA,EAC7c,IClLmW,MCQ/V,IAAY,QACd,GACA,GACA,IACA,EACA,KACA,WACA,MAIF,GAAe,GAAiB,QCnB5BlxB,GAAS,WAAkB,IAAIC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG6oB,EAAO/oB,EAAIG,MAAM6oB,YAAY,OAAO9oB,EAAG,MAAM,CAAC+oB,YAAY,mCAAmC,CAAC/oB,EAAG6oB,EAAOoO,WAAW,CAACjO,MAAM,CAAC,YAAmC,kBAAvBH,EAAOyE,YAAgC,MAAQzE,EAAOuB,EAAE,WAAW,YAAYvB,EAAOwQ,UAAUl5B,GAAG,CAAC,aAAa0oB,EAAO6E,6BAA6B,EACxV,EACI9sB,GAAkB,GCOtB,IAA4B0tB,EAAAA,GAAAA,iBAAiB,CAC3CC,OAAQ,sBACRC,MAAMC,GAER,MAAM,EAAErE,IAAMqC,EAAAA,GAAAA,KAERI,GAAaC,EAAAA,GAAAA,MACb,YAAEQ,IAAgBH,EAAAA,GAAAA,IAAYN,GAC9BwM,GAAWniB,EAAAA,GAAAA,WAAS,IAA6B,kBAAtBoW,EAAYjnB,MAA4ByzB,GAAAA,EAAAA,mBAA+BA,GAAAA,EAAAA,eAExG,SAASpM,IACP,GAAIb,EAAWc,sBAA8C,kBAAtBL,EAAYjnB,MAGjD,OAFAwmB,EAAWc,sBAAqB,QAChCd,EAAWe,eAAe,IAI5Bf,EAAWc,sBAAqB,GAChCd,EAAWe,eAAe,gBAC5B,CAEA,MAAO,CAAEc,OAAO,EAAKtE,IAAGyC,aAAYS,cAAa+L,WAAU3L,2BAA0BuJ,WAAUA,GAAAA,EAC/F,IC/B0W,MCOtW,IAAY,QACd,GACA,GACA,IACA,EACA,KACA,WACA,MAIF,GAAe,GAAiB,QClB5Bp3B,GAAS,WAAkB,IAAIC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG6oB,EAAO/oB,EAAIG,MAAM6oB,YAAY,OAAO9oB,EAAG,MAAM,CAAC+oB,YAAY,0BAA0B,CAAEF,EAAOkI,SAAU/wB,EAAG,MAAM,CAAE6oB,EAAO4R,UAAUC,YAAc,EAAG16B,EAAG,MAAM,CAAC+oB,YAAY,SAAS,CAAC/oB,EAAG6oB,EAAOoO,WAAW,CAAC/N,WAAW,CAAC,CAACjgB,KAAK,MAAMkgB,QAAQ,QAAQ9iB,MAAOwiB,EAAO8R,kBAAmBrR,WAAW,sBAAsBN,MAAM,CAAC,MAAQH,EAAOuB,EAAE,QAAQ,YAAYvB,EAAOwQ,YAAYr5B,EAAG,OAAO,CAAC+oB,YAAY,eAAe,CAACjpB,EAAIoqB,GAAGpqB,EAAIqqB,GAAGtB,EAAO4R,UAAUC,YAAc,GAAK,MAAQ7R,EAAO4R,UAAUC,iBAAiB,GAAG16B,EAAG6oB,EAAOoO,WAAW,CAAC/N,WAAW,CAAC,CAACjgB,KAAK,MAAMkgB,QAAQ,QAAQ9iB,MAAOwiB,EAAO8R,kBAAmBrR,WAAW,sBAAsBN,MAAM,CAAC,YAAmC,SAAvBH,EAAOyE,YAAuB,MAAQzE,EAAOuB,EAAE,QAAQ,YAAYvB,EAAOwQ,aAAa,GAAGr5B,EAAG,MAAM,CAAE6oB,EAAO4R,UAAUC,YAAc,EAAG16B,EAAG,WAAW,CAACgpB,MAAM,CAAC,MAAQH,EAAO4R,UAAUC,YAAc,GAAK,MAAQ7R,EAAO4R,UAAUC,cAAc,CAAC16B,EAAG6oB,EAAOoO,WAAW,CAACjO,MAAM,CAAC,MAAQH,EAAOuB,EAAE,QAAQ,YAAYvB,EAAOwQ,UAAUl5B,GAAG,CAAC,aAAa0oB,EAAO8R,sBAAsB,GAAG36B,EAAG6oB,EAAOoO,WAAW,CAACjO,MAAM,CAAC,YAAmC,SAAvBH,EAAOyE,YAAuB,MAAQzE,EAAOuB,EAAE,QAAQ,YAAYvB,EAAOwQ,UAAUl5B,GAAG,CAAC,aAAa0oB,EAAO8R,sBAAsB,IACxuC,EACI/5B,GAAkB,GCsBf,MAAMg6B,IAAeC,EAAAA,GAAAA,IAAY,OAAQ,CAC9C/a,MAAO,MACLgb,YAAa,GACbC,yBAAyB,EACzBL,YAAa,EACbM,aAAa,EACbC,iBAAkB,KAEpBC,QAAS,CAAC,EAEVC,QAAS,CACPC,kBAAkB3vB,GAChB,MAAM4vB,EAAat7B,KAAK+6B,YAAY5tB,KAAIzB,GAAWA,EAAQ6vB,MACnB,IAApCD,EAAWj0B,QAAQqE,EAAQ6vB,MAC7Bv7B,KAAK+6B,YAAc/6B,KAAK+6B,YAAY7tB,OAAO,CAACxB,IAEhD,EACA8vB,mBAAmBT,EAA2BE,EAAsBC,GAClEl7B,KAAK+6B,YAAcA,EACnB/6B,KAAKi7B,YAAcA,EACnBj7B,KAAKk7B,iBAAmBA,CAC1B,EACAO,kBAAkBC,GAChB17B,KAAK26B,YAAce,CACrB,EACAC,mBAAmBZ,GACjB,MAAMO,EAAat7B,KAAK+6B,YAAY5tB,KAAIzB,GAAWA,EAAQ6vB,KACrDK,EAAsBb,EAAYp0B,QAAO+E,IAA+C,IAApC4vB,EAAWj0B,QAAQqE,EAAQ6vB,MACrFv7B,KAAK+6B,YAAca,EAAoB1uB,OAAOlN,KAAK+6B,aAAac,MAAK,CACnEC,EAAuBC,IAA0BD,EAASE,SAAWD,EAASC,UAClF,EACAC,6BAA6BC,GAC3Bl8B,KAAKg7B,wBAA0BkB,CACjC,EACAC,QACEn8B,KAAK+6B,YAAc,GACnB/6B,KAAK26B,YAAc,EACnB36B,KAAKg7B,yBAA0B,CACjC,KCnDJ,QAA4BzM,EAAAA,GAAAA,iBAAiB,CAC3CC,OAAQ,cACRC,MAAMC,GAER,MAAM,EAAErE,IAAMqC,EAAAA,GAAAA,KAERI,GAAaC,EAAAA,GAAAA,KACb2N,EAAYG,MACZ,YAAEtN,IAAgBH,EAAAA,GAAAA,IAAYN,GAE9BwM,GAAWniB,EAAAA,GAAAA,WAAS,IAA6B,SAAtBoW,EAAYjnB,MAAmByzB,GAAAA,EAAAA,WAAuBA,GAAAA,EAAAA,OAEvFhM,eAAe6M,IACb,GAAI9N,EAAWc,sBAAmD,SAA3Bd,EAAWS,YAGhD,OAFAT,EAAWc,sBAAqB,QAChCd,EAAWe,eAAe,IAG5Bf,EAAWc,sBAAqB,GAChCd,EAAWe,eAAe,QAC1B6M,EAAUe,kBAAkB,EAC9B,CAGA,MAAO,CAAE9M,OAAO,EAAKtE,IAAGyC,aAAY4N,YAAWnN,cAAa+L,WAAUsB,oBAAmB1D,WAAU,KAAElG,SAAQA,GAAAA,EAC7G,ICpCkW,MCQ9V,IAAY,QACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,QCnB5BlxB,GAAS,WAAkB,IAAIC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG6oB,EAAO/oB,EAAIG,MAAM6oB,YAAY,OAAQD,EAAO8B,UAAUC,SAAU5qB,EAAG6oB,EAAOsT,oBAAsBtT,EAAO8B,UAAUC,SAAwC9qB,EAAI+qB,KAAlC7qB,EAAG6oB,EAAOuT,mBACjM,EACIx7B,GAAkB,GCFlBf,GAAS,WAAkB,IAAIC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG6oB,EAAO/oB,EAAIG,MAAM6oB,YAAY,OAAO9oB,EAAG,MAAM,CAAC+oB,YAAY,2BAA2B,CAAC/oB,EAAG6oB,EAAOoO,WAAW,CAAC/2B,IAAI,wBAAwB8oB,MAAM,CAAC,MAAQH,EAAOuB,EAAE,cAAc,YAAYvB,EAAOiR,UAAUuC,aAAal8B,GAAG,CAAC,aAAa0oB,EAAOyT,qBAAsBzT,EAAO0T,uBAAyB1T,EAAO2T,kBAAmBx8B,EAAG,MAAM,CAAC+oB,YAAY,8BAA8B,CAAC/oB,EAAG6oB,EAAOuD,QAAQ,CAACrD,YAAY,iBAAiBC,MAAM,CAAC,YAAY,oBAAoBhpB,EAAG,OAAO,CAAC+oB,YAAY,QAAQ,CAACjpB,EAAIoqB,GAAGpqB,EAAIqqB,GAAGtB,EAAO4T,kBAAkBj4B,YAAY,GAAG1E,EAAI+qB,KAAMhC,EAAO2T,kBAAmBx8B,EAAG,MAAM,CAACE,IAAI,qBAAqBoqB,MAAMzB,EAAOkI,SAAW,0BAA0B,wBAAwB,CAAC/wB,EAAG,MAAM,CAAC+oB,YAAY,mBAAmB,CAAC/oB,EAAG,OAAO,CAAC+oB,YAAY,SAAS,CAACjpB,EAAIoqB,GAAGpqB,EAAIqqB,GAAGtB,EAAOuB,EAAE,kCAAkCpqB,EAAG6oB,EAAOuD,QAAQ,CAACrD,YAAY,QAAQC,MAAM,CAAC,YAAY,QAAQ,KAAO,UAAU7oB,GAAG,CAAC,MAAQ0oB,EAAO6T,kBAAkB,GAAG18B,EAAG,MAAM,CAAC+oB,YAAY,cAAcjpB,EAAI6rB,GAAI9C,EAAO4T,mBAAmB,SAASvG,EAAKtnB,GAAO,OAAO5O,EAAG,MAAM,CAAC4E,IAAIgK,EAAMma,YAAY,cAAc,CAAC/oB,EAAG,MAAM,CAAC+oB,YAAY,aAAa,CAAC/oB,EAAG6oB,EAAOmD,OAAO,CAACjD,YAAY,aAAaC,MAAM,CAAC,UAAUkN,EAAKjK,aAAajsB,EAAG,OAAO,CAAC+oB,YAAY,YAAYC,MAAM,CAAC,MAAQkN,EAAKhK,UAAYgK,EAAKpK,SAAS,CAAChsB,EAAIoqB,GAAGpqB,EAAIqqB,GAAG+L,EAAKhK,UAAYgK,EAAKpK,YAAY,GAAG9rB,EAAG,MAAM,CAAC+oB,YAAY,qBAAqB,CAAC/oB,EAAG,MAAM,CAAC+oB,YAAY,iBAAiB5oB,GAAG,CAAC,MAAQ,SAAS2qB,GAAQ,OAAOjC,EAAO8T,gBAAgBzG,EAAKpK,QAAQ,EAAK,IAAI,CAAChsB,EAAIoqB,GAAGpqB,EAAIqqB,GAAGtB,EAAOuB,EAAE,aAAapqB,EAAG,MAAM,CAAC+oB,YAAY,iBAAiB5oB,GAAG,CAAC,MAAQ,SAAS2qB,GAAQ,OAAOjC,EAAO8T,gBAAgBzG,EAAKpK,QAAQ,EAAM,IAAI,CAAChsB,EAAIoqB,GAAGpqB,EAAIqqB,GAAGtB,EAAOuB,EAAE,iBAAiB,IAAG,GAAGpqB,EAAG,MAAM,CAAC+oB,YAAY,gBAAgB,CAAC/oB,EAAG,MAAM,CAAC+oB,YAAY,0BAA0B5oB,GAAG,CAAC,MAAQ0oB,EAAO+T,mBAAmB,CAAC98B,EAAIoqB,GAAGpqB,EAAIqqB,GAAGtB,EAAOuB,EAAE,sBAAsBtqB,EAAI+qB,MAAM,EAC75D,EACIjqB,GAAkB,GCWtB,MAAM+rB,IAAaC,EAAAA,GAAAA,KAEL,cACZ,MAAMjC,GAAYqC,EAAAA,GAAAA,MACZ,kBAAEyP,IAAsBtP,EAAAA,GAAAA,IAAYxC,IACpC,EAAEP,IAAMqC,EAAAA,GAAAA,KAKd,SAASqM,EAAkBvJ,GACzB,MAAM,cAAEwJ,EAAa,UAAEC,EAAS,OAAElN,GAAWyD,EAAU3jB,QACnDmtB,IAAkBE,GAAAA,iBAAAA,oBAEpBnN,GAAUnB,EAAUkS,qBAAqB,CAAE/Q,SAAQkN,aAEvD,CAGA,SAASI,EAAmB7J,GAC1B,MAAM,OAAEzD,GAAWyD,EACnB5E,EAAUmS,wBAAwBhR,EACpC,CAGAgC,eAAe6O,EAAgBI,EAAqB5D,GAElD,MAAM6D,EAAWrS,EAAUsS,cAAcF,GACzC,GAAIC,EAAU,CACZ,MAAMhE,EAAYgE,EAASE,uBAC3BlE,SAAmBrM,GAAWrE,UAAU4Q,sBAAsB,CAC5DF,YACAG,U,CAGJxO,EAAUmS,wBAAwBC,EACpC,CAGAjP,eAAeqP,EAAiBH,GAC9B,MAAMhE,EAAYgE,EAASE,uBAC3BlE,SAAmBrM,GAAWrE,UAAU4Q,sBAAsB,CAC5DF,YACAG,OAAO,KAETxO,EAAUmS,wBAAwBE,EAASlR,OAC7C,CAGAgC,eAAesP,EAAgBJ,GAC7B,MAAMhE,EAAYgE,EAASE,uBAC3BlE,SAAmBrM,GAAWrE,UAAU4Q,sBAAsB,CAC5DF,YACAG,OAAO,KAETxO,EAAUmS,wBAAwBE,EAASlR,OAC7C,CAGAgC,eAAe8O,IACb,MAAMS,EAAgBZ,EAAkBp2B,MAAM6G,KAAIgpB,IAAQ,CACxDpK,OAAQoK,EAAKpK,OACbI,SAAUgK,EAAKhK,SACfgR,uBAAwBhH,EAAKgH,2BAE/B,IAAItuB,EAAQ,EACZ,MAAOA,GAAS,GAAKA,EAAQyuB,EAAc74B,OAAQ,CACjD,MAAM,OAAEsnB,EAAM,SAAEI,EAAQ,uBAAEgR,GAA2BG,EAAczuB,GACnE,IACEsuB,SAAgCvQ,GAAWrE,UAAU4Q,sBAAsB,CACzEF,UAAWkE,EACX/D,OAAO,KAETxO,EAAUmS,wBAAwBhR,E,CAClC,MAAOtf,GACPugB,GAAAA,EAAAA,MAAa,MAAMb,GAAYJ,kBAC/BkE,EAAAA,GAAAA,GAAU,CACRjuB,KAAM,UACN0J,QAAS2e,EAAE,uCAAwC,CAAE8B,SAAUA,GAAYJ,IAC3EuM,SAAUC,GAAAA,EAAAA,Q,CAGd1pB,GAAS,C,CAEb,CAeAkf,eAAewP,EAAkBN,GAC/B,MAAM,OAAElR,GAAWkR,EACbpxB,QAAgB+gB,GAAWrE,UAAUiV,sBAAsB,CAC/DhN,WAAY,EACZzE,SACApY,QAAS,EACT8pB,gBAAkBC,IAChB,MAAM,oBAAEC,EAAmB,OAAE5R,GAAW2R,EAClCvR,EAAWvB,EAAUmF,YAAYhE,GACvC,OAAQ4R,GACN,KAAKC,GAAAA,uBAAAA,kBACH3N,EAAAA,GAAAA,GAAU,CACRjuB,KAAM,UACN0J,QAAS,GAAGygB,GAAYJ,KAAU1B,EAAE,0CACpCiO,SAAUC,GAAAA,EAAAA,SAEZ3N,EAAUiT,yBAAyB9R,GACnC,MACF,KAAK6R,GAAAA,uBAAAA,kBACH3N,EAAAA,GAAAA,GAAU,CACRjuB,KAAM,UACN0J,QAAS,GAAGygB,GAAYJ,KAAU1B,EAAE,0CACpCiO,SAAUC,GAAAA,EAAAA,SAEZ3N,EAAUiT,yBAAyB9R,GACnC,MACF,KAAK6R,GAAAA,uBAAAA,gBACH,MACF,QACE,MAAM,KAIV/xB,GAAWA,EAAQotB,WACrBrO,EAAUkT,sBAAsB,CAAE/R,SAAQkN,UAAWptB,EAAQotB,WAEjE,CAGA,SAAS8E,EAAwBd,GAC/B,MAAM,OAAElR,EAAM,wBAAEiS,GAA4Bf,EAC5CrS,EAAUiT,yBAAyB9R,GAC/BiS,GACFpR,GAAWrE,UAAU0V,cAAc,CAAEhF,UAAW+E,GAEpD,CAGA,SAASE,EAAiBjB,GACxBrQ,GAAWrE,UAAU4V,uBAAuB,CAC1C3N,WAAY,EACZzE,OAAQkR,EAASlR,QAErB,CAEA,OApEA0E,KAAAA,KAAmB,SAAS,KAC1B7D,GAAWrE,UAAUnoB,GAAGswB,GAAAA,cAAAA,kBAAiCqI,GACzDnM,GAAWrE,UAAUnoB,GAAGswB,GAAAA,cAAAA,mBAAkC2I,EAAmB,KAG/E+E,EAAAA,GAAAA,kBAAgB,KACdxR,GAAWrE,UAAUqI,IAAIF,GAAAA,cAAAA,kBAAiCqI,GAC1DnM,GAAWrE,UAAUqI,IAAIF,GAAAA,cAAAA,mBAAkC2I,EAAmB,IA6DzE,CAELuD,kBAEAQ,mBAEAC,kBAEAR,mBAEAU,oBAEAQ,0BAEAG,mBAEJ,CCzKA,QAA4B3P,EAAAA,GAAAA,iBAAiB,CAC3CC,OAAQ,qBACRC,MAAMC,GAER,MAAM,EAAErE,IAAMqC,EAAAA,GAAAA,KAERI,GAAaC,EAAAA,GAAAA,KACbnC,GAAYqC,EAAAA,GAAAA,MACZ,gBAAE2P,EAAe,iBAAEC,GAAqBwB,MACxC,kBAAE5B,IAAsBrP,EAAAA,GAAAA,IAAYN,IACpC,SAAEjC,EAAQ,kBAAE6R,IAAsBtP,EAAAA,GAAAA,IAAYxC,GAC9C0T,GAAwBn+B,EAAAA,GAAAA,OACxBo+B,GAAqBp+B,EAAAA,GAAAA,OAErBq8B,GAAuBrlB,EAAAA,GAAAA,WAAS,IAAMulB,EAAkBp2B,MAAM7B,OAAS,IAG7E,SAAS83B,IACH1R,EAASvkB,OACXwmB,EAAW0R,sBAAsB/B,EAAkBn2B,MAEvD,CAEA,SAASq2B,IACP7P,EAAW0R,sBAAqB,EAClC,CAEA,SAASrL,EAAoBjX,IAEzBugB,EAAkBn2B,OACdg4B,EAAsBh4B,OAAOuyB,IAAIzF,SAASlX,EAAMhR,SAChDqzB,EAAmBj4B,OAAO8sB,SAASlX,EAAMhR,SAE7C4hB,EAAW0R,sBAAqB,EAEpC,CAUA,OARAnL,EAAAA,GAAAA,YAAU,KACRniB,SAASwN,iBAAiB,QAASyU,GAAqB,EAAK,KAG/DiL,EAAAA,GAAAA,kBAAgB,KACdltB,SAAS0L,oBAAoB,QAASuW,GAAqB,EAAK,IAG3D,CAAExE,OAAO,EAAKtE,IAAGyC,aAAYlC,YAAWgS,kBAAiBC,mBAAkBJ,oBAAmB5R,WAAU6R,oBAAmB4B,wBAAuBC,qBAAoB/B,uBAAsBD,oBAAmBI,gBAAexJ,sBAAqBlH,OAAM,KAAE8N,UAAS,KAAE7C,WAAU,KAAE7K,QAAO,KAAE2E,SAAQA,GAAAA,EAC1S,IC5DqX,MCQjX,IAAY,QACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,QCnB5BlxB,GAAS,WAAkB,IAAIC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG6oB,EAAO/oB,EAAIG,MAAM6oB,YAAY,OAAO9oB,EAAG,MAAM,CAACA,EAAG,MAAM,CAAC+oB,YAAY,2BAA2B,CAAC/oB,EAAG6oB,EAAOoO,WAAW,CAACjO,MAAM,CAAC,MAAQH,EAAO2V,UAAU,YAAY3V,EAAOwQ,UAAUl5B,GAAG,CAAC,aAAa0oB,EAAOyT,qBAAsBzT,EAAO4V,yBAA0Bz+B,EAAG,MAAM,CAAC+oB,YAAY,8BAA8B,CAAC/oB,EAAG,OAAO,CAAC+oB,YAAY,QAAQ,CAACjpB,EAAIoqB,GAAGpqB,EAAIqqB,GAAGtB,EAAOuB,EAAE,uCAAuCpqB,EAAG6oB,EAAOuD,QAAQ,CAACrD,YAAY,QAAQC,MAAM,CAAC,YAAY,QAAQ,KAAO,UAAU7oB,GAAG,CAAC,MAAQ0oB,EAAO6V,uBAAuB,GAAG5+B,EAAI+qB,MAAM,GAAG7qB,EAAG6oB,EAAO+H,OAAO,CAAC7H,YAAY,uBAAuBC,MAAM,CAAC,cAAcH,EAAO8V,iBAAiB,MAAQ9V,EAAOuB,EAAE,0CAA0C,OAAQ,EAAM,cAAa,EAAM,kBAAiB,EAAK,wBAAuB,EAAM,yBAAwB,EAAM,MAAQ,SAASiB,YAAYvrB,EAAIwrB,GAAG,CAAC,CAAC1mB,IAAI,SAAS9D,GAAG,WAAW,MAAO,CAACd,EAAG,MAAM,CAACsqB,MAAM,CAACzB,EAAOkI,SAAW,0BAA4B,wBAAwB,CAAC/wB,EAAG,OAAO,CAAC+oB,YAAY,SAAS5oB,GAAG,CAAC,MAAQ,SAAS2qB,GAAQ,OAAOjC,EAAO+V,cAAa,EAAM,IAAI,CAAC9+B,EAAIoqB,GAAGpqB,EAAIqqB,GAAGtB,EAAOuB,EAAE,cAAcpqB,EAAG,OAAO,CAAC+oB,YAAY,QAAQ5oB,GAAG,CAAC,MAAQ,SAAS2qB,GAAQ,OAAOjC,EAAO+V,cAAa,EAAK,IAAI,CAAC9+B,EAAIoqB,GAAGpqB,EAAIqqB,GAAGtB,EAAOuB,EAAE,eAAe,EAAEkC,OAAM,MAAS,CAACtsB,EAAG,OAAO,CAACF,EAAIoqB,GAAG,IAAIpqB,EAAIqqB,GAAGtB,EAAOuB,EAAE,2GAA2G,UAAU,EAC18C,EACIxpB,GAAkB,GCetB,IAA4B0tB,EAAAA,GAAAA,iBAAiB,CAC3CC,OAAQ,qBACRC,MAAMC,GAER,MAAM9B,GAAaC,EAAAA,GAAAA,MACb,EAAExC,IAAMqC,EAAAA,GAAAA,KAERI,GAAaC,EAAAA,GAAAA,KACbnC,GAAYqC,EAAAA,GAAAA,MACZ,KAAE6R,IAAS1R,EAAAA,GAAAA,IAAYN,IACvB,UAAEI,IAAcE,EAAAA,GAAAA,IAAYxC,GAE5BmU,GAAiC5+B,EAAAA,GAAAA,MAAI,GACrCu+B,GAAyCv+B,EAAAA,GAAAA,MAAI,GAC7Cm5B,GAAwBn5B,EAAAA,GAAAA,KAAI,IAC5Bs+B,GAAyBt+B,EAAAA,GAAAA,KAAI,IAC7By+B,GAAiCz+B,EAAAA,GAAAA,MAAI,GAErCg9B,GAAsCh9B,EAAAA,GAAAA,KAAI,IAC1C69B,GAAuC79B,EAAAA,GAAAA,KAAI,IAiBjD4tB,eAAewO,IACboC,IACIzR,EAAU5mB,MAAM04B,OAClBC,IAEAF,EAAiBz4B,MAAQ44B,IAA0BC,GAEvD,CAOApR,eAAeoR,IACb,IACE,MAAMtzB,QAAgB+gB,EAAWrE,UAAUgI,SAAS,CAClDC,WAAY,EACZ7c,QAAS,EACT8pB,gBAAkBC,IAChBqB,EAAiBz4B,OAAQ,EACzB,MAAM,oBAAEq3B,GAAwBD,EAChC,OAAQC,GACN,KAAKC,GAAAA,uBAAAA,kBACH3N,EAAAA,GAAAA,GAAU,CACRjuB,KAAM,UACN0J,QAAS2e,EAAE,0CACXiO,SAAUC,GAAAA,EAAAA,SAEZ,MACF,KAAKqF,GAAAA,uBAAAA,kBACH3N,EAAAA,GAAAA,GAAU,CACRjuB,KAAM,UACN0J,QAAS2e,EAAE,wDACXiO,SAAUC,GAAAA,EAAAA,SAEZ,MACF,KAAKqF,GAAAA,uBAAAA,gBACH,MAAM,KAIV/xB,GAAWA,EAAQotB,YACrBkE,EAAuB72B,MAAQuF,EAAQotB,WAEzC8F,EAAiBz4B,OAAQ,C,CACzB,MAAOmG,GACPugB,GAAAA,EAAAA,IAAW,qCAAsCvgB,E,CAErD,CAQAshB,eAAemR,IACb,UACQtS,EAAWrE,UAAU0V,cAAc,CAAEhF,UAAWkE,EAAuB72B,SAC7Ey4B,EAAiBz4B,OAAQ,C,CACzB,MAAOmG,GACPugB,GAAAA,EAAAA,IAAW,iCAAkCvgB,E,CAEjD,CAOAshB,eAAekR,UACPrS,EAAWrE,UAAU0W,YAC7B,CAEA,SAASN,IACPD,EAAyBp4B,OAAQ,CACnC,CAEAynB,eAAegL,EAAkBvJ,GAC/B,MAAQ3jB,SAAS,UAAEotB,EAAS,cAAED,IAAoBxJ,EAG9CwJ,IAAkBE,GAAAA,iBAAAA,2BACpB8E,EAAwB13B,MAAQ2yB,EAChC2F,EAAiBt4B,OAAQ,EAE7B,CAOA,SAAS+yB,EAAmB7J,GAC1B,MAAM,UAAEyJ,GAAczJ,EAClBwO,EAAwB13B,QAAU2yB,IACpC+E,EAAwB13B,MAAQ,GAChCs4B,EAAiBt4B,OAAQ,EAE7B,CAOAynB,eAAe8Q,EAAazF,SACpBxM,EAAWrE,UAAU4Q,sBAAsB,CAC/CF,UAAW+E,EAAwB13B,MACnC8yB,WAEFwF,EAAiBt4B,OAAQ,EACrB8yB,GACFuF,GAEJ,CAMA5Q,eAAeqR,KAEbnP,EAAAA,GAAAA,GAAU,CACRjuB,KAAM,UACN0J,QAAS2e,EAAE,+FACXiO,SAAUC,GAAAA,EAAAA,QAEd,CAeA,OA/JA8G,EAAAA,GAAAA,OAAM,CAACnS,EAAW6R,EAAkBD,IAAO,EAAE5R,EAAW6R,MAClD7R,EAAU8R,QACZ1F,EAAShzB,MAAQyzB,GAAAA,EAAAA,UACjB0E,EAAUn4B,MAAQ+jB,EAAE,cAEhB0U,GACFzF,EAAShzB,MAAQyzB,GAAAA,EAAAA,YACjB0E,EAAUn4B,MAAQ+jB,EAAE,eAEpBiP,EAAShzB,MAAQyzB,GAAAA,EAAAA,YACjB0E,EAAUn4B,MAAQ+jB,EAAE,c,GAGvB,CAAEiV,WAAW,EAAMC,MAAM,IAqI5B9O,KAAAA,KAAmB,SAAS,KAC1B7D,EAAWrE,UAAUnoB,GAAGswB,GAAAA,cAAAA,kBAAiCqI,GACzDnM,EAAWrE,UAAUnoB,GAAGswB,GAAAA,cAAAA,mBAAkC2I,GAC1DzM,EAAWrE,UAAUnoB,GAAGswB,GAAAA,cAAAA,gBAA+B0O,EAAgB,KAGzEhB,EAAAA,GAAAA,kBAAgB,KACdxR,EAAWrE,UAAUqI,IAAIF,GAAAA,cAAAA,kBAAiCqI,GAC1DnM,EAAWrE,UAAUqI,IAAIF,GAAAA,cAAAA,mBAAkC2I,GAC3DzM,EAAWrE,UAAUqI,IAAIF,GAAAA,cAAAA,gBAA+B0O,EAAgB,IAInE,CAAEzQ,OAAO,EAAK/B,aAAYvC,IAAGyC,aAAYlC,YAAWkU,OAAM5R,YAAW6R,mBAAkBL,2BAA0BpF,WAAUmF,YAAWG,mBAAkBzB,yBAAwBa,0BAAyBzB,oBAAmB4C,sBAAqBD,wBAAuBD,YAAWN,qBAAoB5F,oBAAmBM,qBAAoBwF,eAAcO,kBAAiBlI,WAAU,KAAE7K,QAAO,KAAEwE,OAAM,KAAEG,SAAQA,GAAAA,EACzZ,ICtMqX,MCQjX,IAAY,QACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,QCbhC,IAA4BzC,EAAAA,GAAAA,iBAAiB,CAC3CC,OAAQ,QACRC,MAAMC,GAER,MAAM9D,GAAYqC,EAAAA,GAAAA,KAGlB,MAAO,CAAE0B,OAAO,EAAK/D,YAAWwR,mBAAkB,GAAEC,mBAAkBA,GACtE,ICdwW,MCOpW,IAAY,QACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,QClB5Bv8B,GAAS,WAAkB,IAAIC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG6oB,EAAO/oB,EAAIG,MAAM6oB,YAAY,OAAO9oB,EAAG,MAAM,CAACA,EAAG,MAAM,CAAC+oB,YAAY,0BAA0B,CAAC/oB,EAAG6oB,EAAOoO,WAAW,CAACjO,MAAM,CAAC,YAAmC,SAAvBH,EAAOyE,YAAuB,MAAQzE,EAAOuB,EAAE,QAAQ,YAAYvB,EAAOiR,UAAUyF,MAAMp/B,GAAG,CAAC,aAAa0oB,EAAO2W,aAAa,GAAI3W,EAAO4W,gBAAiBz/B,EAAG,MAAM,CAACE,IAAI,iBAAiB6oB,YAAY,qBAAqB,CAAC/oB,EAAG,MAAM,CAAC+oB,YAAY,mBAAmB,CAAEF,EAAO8B,UAAU0F,2BAA4BrwB,EAAG6oB,EAAOiO,YAAY,CAAC32B,GAAG,CAAC,MAAQ,SAAS2qB,GAAQ,OAAOjC,EAAO8N,mBAAmB,cAAc,KAAK72B,EAAI+qB,KAAK7qB,EAAG6oB,EAAO6W,eAAe,CAACv/B,GAAG,CAAC,MAAQ,SAAS2qB,GAAQ,OAAOjC,EAAO8N,mBAAmB,iBAAiB,KAAK32B,EAAG6oB,EAAO8W,cAAc,CAACx/B,GAAG,CAAC,MAAQ,SAAS2qB,GAAQ,OAAOjC,EAAO8N,mBAAmB,gBAAgB,MAAM,GAAG32B,EAAG,MAAM,CAAC+oB,YAAY,QAAQ5oB,GAAG,CAAC,MAAQ,SAAS2qB,GAAQjC,EAAO4W,iBAAgB,CAAK,IAAI,CAACz/B,EAAG,IAAI,CAACF,EAAIoqB,GAAGpqB,EAAIqqB,GAAGtB,EAAOuB,EAAE,kBAAkBtqB,EAAI+qB,MACx9B,EACIjqB,GAAkB,GCIR,SAAUg/B,KACtB,MAAM,EAAExV,IAAMqC,EAAAA,GAAAA,KAERI,GAAaC,EAAAA,GAAAA,MACb,YAAEQ,IAAgBH,EAAAA,GAAAA,IAAYN,GAE9BwM,GAAWniB,EAAAA,GAAAA,WAAS,IAA6B,SAAtBoW,EAAYjnB,MAAmByzB,GAAAA,EAAAA,WAAuBA,GAAAA,EAAAA,OAEvF,MAAO,CACL1P,IACAyC,aACAwM,WACA/L,cAEJ,CCpBA,IAAIztB,GAAS,WAAkB,IAAIC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG6oB,EAAO/oB,EAAIG,MAAM6oB,YAAY,OAAO9oB,EAAG,MAAM,CAAC+oB,YAAY,4BAA4B,CAAC/oB,EAAG6oB,EAAOoO,WAAW,CAACjO,MAAM,CAAC,YAAmC,WAAvBH,EAAOyE,YAAyB,MAAQzE,EAAOuB,EAAE,UAAU,YAAYvB,EAAOwQ,UAAUl5B,GAAG,CAAC,aAAa0oB,EAAOgX,uBAAwBhX,EAAOiX,gBAAiB9/B,EAAG,MAAM,CAAC+oB,YAAY,oBAAoB,CAAC/oB,EAAG6oB,EAAOkX,WAAW,CAAC7/B,IAAI,YAAYC,GAAG,CAAC,kBAAkB0oB,EAAOmX,sBAAsB,GAAGlgC,EAAI+qB,MAAM,EAC7e,EACIjqB,GAAkB,GCFlBf,GAAS,WAAkB,IAAIC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG6oB,EAAO/oB,EAAIG,MAAM6oB,YAAY,OAAO9oB,EAAG,MAAM,CAAC+oB,YAAY,yBAAyB,CAAC/oB,EAAG,MAAM,CAAC+oB,YAAY,qBAAqB,CAAC/oB,EAAG,IAAI,CAACF,EAAIoqB,GAAGpqB,EAAIqqB,GAAGtB,EAAOuB,EAAE,cAAevB,EAAO8J,SAAU3yB,EAAG,OAAO,CAACkpB,WAAW,CAAC,CAACjgB,KAAK,MAAMkgB,QAAQ,QAAQ9iB,MAAOwiB,EAAOmX,kBAAmB1W,WAAW,sBAAsBP,YAAY,UAAU,CAACjpB,EAAIoqB,GAAGpqB,EAAIqqB,GAAGtB,EAAOuB,EAAE,cAActqB,EAAI+qB,OAAO/qB,EAAI6rB,GAAI9C,EAAOoX,0BAA0B,SAAS/J,GAAM,OAAOl2B,EAAG,MAAM,CAAC4E,IAAIsxB,EAAK3lB,GAAGwY,YAAY,uBAAuB,CAAC/oB,EAAG,OAAO,CAAC+oB,YAAY,gBAAgB,CAACjpB,EAAIoqB,GAAGpqB,EAAIqqB,GAAGtB,EAAOuB,EAAE8L,EAAK9I,WAAWptB,EAAG,OAAO,CAAC+oB,YAAY,kBAAkB,CAACjpB,EAAIoqB,GAAGpqB,EAAIqqB,GAAG+L,EAAKpwB,YAAY9F,EAAG6oB,EAAOuD,QAAQ,CAAClD,WAAW,CAAC,CAACjgB,KAAK,MAAMkgB,QAAQ,QAAQ9iB,MAAO,IAAMwiB,EAAO6J,OAAOwD,EAAKgK,UAAW5W,WAAW,gCAAgCP,YAAY,OAAOC,MAAM,CAAC,YAAY,YAAY,KAAO,aAAa,EAAE,IAAGhpB,EAAG,OAAO,CAAC+oB,YAAY,iBAAiB,CAACjpB,EAAIoqB,GAAG,IAAIpqB,EAAIqqB,GAAGtB,EAAOuB,EAAE,kFAAkF,QAAQ,EAClkC,EACIxpB,GAAkB,GCKR,SAAUu/B,KACtB,MAAM,EAAE/V,IAAMqC,EAAAA,GAAAA,KAERI,GAAaC,EAAAA,GAAAA,MACb,OAAEwC,EAAM,UAAE8Q,EAAS,kBAAEC,IAAsBlT,EAAAA,GAAAA,IAAYN,IAEvD,OAAEmG,EAAM,SAAE9Y,GAAaE,UAAY,CAAC,EACpCkmB,GAAaC,EAAAA,GAAAA,MAEb3N,GAAa1b,EAAAA,GAAAA,WAAS,KAC1B,GAAIkpB,EAAU/5B,MAAO,CACnB,MAAMm6B,GAAqD,IAAlCJ,EAAU/5B,MAAMe,QAAQ,KAAc,IAAM,IACrE,MAAO,GAAGg5B,EAAU/5B,QAAQm6B,WAA0BlR,EAAOjpB,O,CAE/D,MAAO,GAAG2sB,IAAS9Y,kBAAyBoV,EAAOjpB,OAAO,IAEtDo6B,GAAavpB,EAAAA,GAAAA,WAAS,IAAM,6BAA6BoY,EAAOjpB,UAEtEynB,eAAe4E,EAAOrsB,GACpB,UACQ4sB,EAAAA,GAAAA,IAAU5sB,IAChB2pB,EAAAA,GAAAA,GAAU,CACRvkB,QAAS2e,EAAE,uBACXroB,KAAM,W,CAER,MAAOyK,IACPwjB,EAAAA,GAAAA,GAAU,CACRvkB,QAAS2e,EAAE,kBACXroB,KAAM,S,CAGZ,CAEA,MAAM2+B,EAAoB,CACxB,CAAEnwB,GAAI,EAAG6c,MAAO,UAAWtnB,QAASwpB,EAAQ4Q,SAAU5Q,EAAQjF,SAAS,GACvE,CAAE9Z,GAAI,EAAG6c,MAAO,YAAatnB,QAAS8sB,EAAYsN,SAAUtN,EAAYvI,QAASgW,EAAkBh6B,OACnG,CAAEkK,GAAI,EAAG6c,MAAO,SAAUtnB,QAAS26B,EAAYP,SAAUO,EAAYpW,SAAS,IAE1E4V,GAA2BU,EAAAA,GAAAA,UAASD,EAAkBh6B,QAAOwvB,GAAQA,EAAK7L,WAEhF,MAAO,CACLD,IACAiW,oBACA/Q,SACA0D,SACA9Y,WACAomB,aACA1N,aACA6N,aACA/N,SACAuN,2BAEJ,CCpDA,QAA4B3R,EAAAA,GAAAA,iBAAiB,CAC3CC,OAAQ,UACRK,MAAO,CAAC,mBACRJ,MAAMC,GAAS,KAAEI,IAEnB,MAAM,EACJzE,EAAC,OACDsI,EAAM,yBACNuN,GACEW,KAKJ,SAASZ,IACPnR,EAAK,kBACP,CAGA,MAAO,CAAEH,OAAO,EAAKtE,IAAGsI,SAAQuN,2BAA0BpR,OAAMmR,oBAAmB5T,QAAO,KAAEuG,SAAQA,GAAAA,EACpG,IC3B8V,MCQ1V,IAAY,QACd,GACA,GACA,IACA,EACA,KACA,WACA,MAIF,GAAe,GAAiB,QCnB5B9yB,GAAS,WAAkB,IAAIC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG6oB,EAAO/oB,EAAIG,MAAM6oB,YAAY,OAAO9oB,EAAG,MAAM,CAAC+oB,YAAY,oBAAoB,CAAC/oB,EAAG,MAAM,CAAC+oB,YAAY,iBAAiB,CAACjpB,EAAIoqB,GAAGpqB,EAAIqqB,GAAGtB,EAAOuB,EAAE,wCAAwCpqB,EAAG,MAAM,CAAC+oB,YAAY,kBAAkB,CAAC/oB,EAAG,MAAM,CAAC+oB,YAAY,eAAe,CAAC/oB,EAAG,OAAO,CAAC+oB,YAAY,gBAAgB,CAACjpB,EAAIoqB,GAAGpqB,EAAIqqB,GAAGtB,EAAOuB,EAAE,6BAA6BpqB,EAAG,MAAM,CAAC+oB,YAAY,cAAc,CAAC/oB,EAAG,QAAQ,CAAC+oB,YAAY,QAAQC,MAAM,CAAC,KAAO,QAAQyC,SAAS,CAAC,MAAQ5C,EAAOyG,UAAUtvB,EAAG6oB,EAAOuD,QAAQ,CAACrD,YAAY,OAAOC,MAAM,CAAC,YAAY,aAAa7oB,GAAG,CAAC,MAAQ,SAAS2qB,GAAQ,OAAOjC,EAAO6J,OAAO7J,EAAOyG,OAAO,MAAM,KAAMzG,EAAOwX,kBAAmBrgC,EAAG,MAAM,CAAC+oB,YAAY,eAAe,CAAC/oB,EAAG,OAAO,CAAC+oB,YAAY,gBAAgB,CAACjpB,EAAIoqB,GAAGpqB,EAAIqqB,GAAGtB,EAAOuB,EAAE,4BAA4BpqB,EAAG,MAAM,CAAC+oB,YAAY,cAAc,CAAC/oB,EAAG,QAAQ,CAAC+oB,YAAY,QAAQC,MAAM,CAAC,KAAO,QAAQyC,SAAS,CAAC,MAAQ5C,EAAO+J,cAAc5yB,EAAG6oB,EAAOuD,QAAQ,CAACrD,YAAY,OAAOC,MAAM,CAAC,YAAY,aAAa7oB,GAAG,CAAC,MAAQ,SAAS2qB,GAAQ,OAAOjC,EAAO6J,OAAO7J,EAAO+J,WAAW,MAAM,KAAK9yB,EAAI+qB,KAAK7qB,EAAG,MAAM,CAAC+oB,YAAY,eAAe,CAAC/oB,EAAG,OAAO,CAAC+oB,YAAY,gBAAgB,CAACjpB,EAAIoqB,GAAGpqB,EAAIqqB,GAAGtB,EAAOuB,EAAE,gCAAgCpqB,EAAG,MAAM,CAAC+oB,YAAY,cAAc,CAAC/oB,EAAG,QAAQ,CAAC+oB,YAAY,QAAQC,MAAM,CAAC,KAAO,QAAQyC,SAAS,CAAC,MAAQ5C,EAAO4X,cAAczgC,EAAG6oB,EAAOuD,QAAQ,CAACrD,YAAY,OAAOC,MAAM,CAAC,YAAY,aAAa7oB,GAAG,CAAC,MAAQ,SAAS2qB,GAAQ,OAAOjC,EAAO6J,OAAO7J,EAAO4X,WAAW,MAAM,QAC//C,EACI7/B,GAAkB,GCGtB,IAA4B0tB,EAAAA,GAAAA,iBAAiB,CAC3CC,OAAQ,UACRC,MAAMC,GAER,MAAM,EACJrE,EAAC,kBACDiW,EAAiB,OACjB/Q,EAAM,WACNsD,EAAU,WACV6N,EAAU,OACV/N,GACEkO,KAGJ,MAAO,CAAElS,OAAO,EAAKtE,IAAGiW,oBAAmB/Q,SAAQsD,aAAY6N,aAAY/N,SAAQtG,QAAOA,GAAAA,EAC1F,ICpB8V,MCQ1V,IAAY,QACd,GACA,GACA,IACA,EACA,KACA,WACA,MAIF,GAAe,GAAiB,QCfhC,MAAMyU,GAAQ9P,GAAAA,EAAWyF,GAAUC,GAEnC,UCKA,IAA4BnI,EAAAA,GAAAA,iBAAiB,CAC3CC,OAAQ,gBACRC,MAAMC,GAER,MAAM5B,GAAaC,EAAAA,GAAAA,MACb,YAAEQ,IAAgBH,EAAAA,GAAAA,IAAYN,IAC9B,EAAEzC,IAAMqC,EAAAA,GAAAA,KACRqT,GAAkB5/B,EAAAA,GAAAA,MAAI,GACtB4gC,GAAY5gC,EAAAA,GAAAA,OAEZm5B,GAAWniB,EAAAA,GAAAA,WAAS,IACxB6Z,GAAAA,EAAW+I,GAAAA,EAAAA,OAA0C,WAAtBxM,EAAYjnB,MAAqByzB,GAAAA,EAAAA,aAAyBA,GAAAA,EAAAA,SAG3F,SAAS+F,IACP,GAAI9O,GAAAA,EAAU,CAEZ,GADA+O,EAAgBz5B,OAAQ,EACO,WAA3BwmB,EAAWS,YAEb,YADAT,EAAWe,eAAe,IAG5Bf,EAAWe,eAAe,S,KACrB,CACL,GAAIf,EAAWc,sBAAmD,WAA3Bd,EAAWS,YAGhD,OAFAT,EAAWc,sBAAqB,QAChCd,EAAWe,eAAe,IAG5Bf,EAAWc,sBAAqB,GAChCd,EAAWe,eAAe,S,CAE9B,CAEA,SAASsF,EAAoBjX,GACvB6jB,EAAgBz5B,OAASy6B,EAAUz6B,QAAUy6B,EAAUz6B,MAAMuyB,IAAIzF,SAASlX,EAAMhR,UAClF60B,EAAgBz5B,OAAQ,EAE5B,CAEA,SAAS25B,IACPF,EAAgBz5B,OAAQ,CAC1B,CAUA,OARA+sB,EAAAA,GAAAA,YAAU,KACRniB,UAAUwN,iBAAiB,QAASyU,GAAqB,EAAK,KAGhExC,EAAAA,GAAAA,cAAY,KACVzf,UAAU0L,oBAAoB,QAASuW,GAAqB,EAAK,IAG5D,CAAExE,OAAO,EAAK7B,aAAYS,cAAalD,IAAG0V,kBAAiBgB,YAAWzH,WAAUwG,sBAAqB3M,sBAAqB8M,oBAAmB/I,WAAU,KAAE8I,WAAUA,GAC1K,IC/DoW,MCQhW,IAAY,QACd,GACA,GACA,IACA,EACA,KACA,WACA,MAIF,GAAe,GAAiB,QCnB5BlgC,GAAS,WAAkB,IAAIC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG6oB,EAAO/oB,EAAIG,MAAM6oB,YAAY,OAAO9oB,EAAG,MAAM,CAAC+oB,YAAY,0BAA0B,CAAC/oB,EAAG6oB,EAAOoO,WAAW,CAACjO,MAAM,CAAC,YAAmC,SAAvBH,EAAOyE,YAAuB,MAAQzE,EAAOuB,EAAE,cAAc,YAAY,iBAAiBjqB,GAAG,CAAC,aAAa0oB,EAAOkY,wBAAyBlY,EAAOmY,iBAAkBhhC,EAAG,MAAM,CAAC+oB,YAAY,qBAAqB,CAAC/oB,EAAG6oB,EAAOoY,YAAY,CAAC/gC,IAAI,aAAaC,GAAG,CAAC,mBAAmB0oB,EAAOqY,yBAAyB,GAAGphC,EAAI+qB,MAAM,EACtf,EACIjqB,GAAkB,GCFlBf,GAAS,WAAkB,IAAIC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG6oB,EAAO/oB,EAAIG,MAAM6oB,YAAY,OAAO9oB,EAAG,MAAM,CAAC+oB,YAAY,0BAA0B,CAAC/oB,EAAG,MAAM,CAAC+oB,YAAY,sBAAsB,CAAC/oB,EAAG,IAAI,CAACF,EAAIoqB,GAAGpqB,EAAIqqB,GAAGtB,EAAOuB,EAAE,kBAAmBvB,EAAO8J,SAAU3yB,EAAG,OAAO,CAACkpB,WAAW,CAAC,CAACjgB,KAAK,MAAMkgB,QAAQ,QAAQ9iB,MAAOwiB,EAAOsY,mBAAoB7X,WAAW,uBAAuBP,YAAY,UAAU,CAACjpB,EAAIoqB,GAAGpqB,EAAIqqB,GAAGtB,EAAOuB,EAAE,cAActqB,EAAI+qB,OAAO/qB,EAAI6rB,GAAI9C,EAAOuY,oBAAoB,SAASlL,GAAM,OAAOl2B,EAAG,MAAM,CAAC4E,IAAIsxB,EAAK3lB,GAAGwY,YAAY,wBAAwB,CAAC/oB,EAAG,OAAO,CAAC+oB,YAAY,iBAAiB,CAACjpB,EAAIoqB,GAAGpqB,EAAIqqB,GAAGtB,EAAOuB,EAAE8L,EAAK9I,WAAWptB,EAAG,OAAO,CAAC+oB,YAAY,mBAAmB,CAACjpB,EAAIoqB,GAAGpqB,EAAIqqB,GAAG+L,EAAKpwB,YAAY9F,EAAG6oB,EAAOuD,QAAQ,CAAClD,WAAW,CAAC,CAACjgB,KAAK,MAAMkgB,QAAQ,QAAQ9iB,MAAO,IAAMwiB,EAAO6J,OAAOwD,EAAKgK,UAAW5W,WAAW,gCAAgCP,YAAY,OAAOC,MAAM,CAAC,YAAY,YAAY,KAAO,aAAa,EAAE,IAAGhpB,EAAG,OAAO,CAAC+oB,YAAY,kBAAkB,CAACjpB,EAAIoqB,GAAG,IAAIpqB,EAAIqqB,GAAGtB,EAAOuB,EAAE,sFAAsF,QAAQ,EAC5kC,EACIxpB,GAAkB,GCER,SAAUygC,KACtB,MAAM,EAAEjX,IAAMqC,EAAAA,GAAAA,KAER6U,EAAc,YACdC,EAAQ,wBAEdzT,eAAgB4E,EAAOrsB,GACrB,UACQ4sB,EAAAA,GAAAA,IAAU5sB,IAChB2pB,EAAAA,GAAAA,GAAU,CACRvkB,QAAS2e,EAAE,uBACXroB,KAAM,W,CAER,MAAOyK,IACPwjB,EAAAA,GAAAA,GAAU,CACRvkB,QAAS2e,EAAE,kBACXroB,KAAM,S,CAGZ,CACA,MAAO,CACLqoB,IACAkX,cACAC,QACA7O,SAEJ,CCrBA,QAA4BpE,EAAAA,GAAAA,iBAAiB,CAC3CC,OAAQ,UACRK,MAAO,CAAC,oBACRJ,MAAMC,GAAS,KAAEI,IAEnB,MAAM,EACJzE,EAAC,YACDkX,EAAW,MACXC,EAAK,OACL7O,GACE8O,KAIEJ,GAAqBT,EAAAA,GAAAA,UAAS,CAClC,CAAEpwB,GAAI,EAAG6c,MAAO,aAActnB,QAASw7B,EAAapB,SAAUoB,GAC9D,CAAE/wB,GAAI,EAAG6c,MAAO,QAAStnB,QAASy7B,EAAOrB,SAAUqB,KAGrD,SAASJ,IACPtS,EAAK,mBACP,CAEA,MAAO,CAAEH,OAAO,EAAKtE,IAAGkX,cAAaC,QAAO7O,SAAQ7D,OAAMuS,qBAAoBD,qBAAoB/U,QAAO,KAAEuG,SAAQA,GAAAA,EACnH,ICjC8V,MCQ1V,IAAY,QACd,GACA,GACA,IACA,EACA,KACA,WACA,MAIF,GAAe,GAAiB,QCnB5B9yB,GAAS,WAAkB,IAAIC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG6oB,EAAO/oB,EAAIG,MAAM6oB,YAAY,OAAO9oB,EAAG,MAAM,CAAC+oB,YAAY,kBAAkB,CAAC/oB,EAAG,MAAM,CAAC+oB,YAAY,eAAe,CAACjpB,EAAIoqB,GAAGpqB,EAAIqqB,GAAGtB,EAAOuB,EAAE,2CAA2CpqB,EAAG,MAAM,CAAC+oB,YAAY,gBAAgB,CAAC/oB,EAAG,MAAM,CAAC+oB,YAAY,aAAa,CAAC/oB,EAAG,OAAO,CAAC+oB,YAAY,cAAc,CAACjpB,EAAIoqB,GAAGpqB,EAAIqqB,GAAGtB,EAAOuB,EAAE,kBAAkBpqB,EAAG,MAAM,CAAC+oB,YAAY,cAAc,CAAC/oB,EAAG,QAAQ,CAAC+oB,YAAY,QAAQC,MAAM,CAAC,KAAO,QAAQyC,SAAS,CAAC,MAAQ5C,EAAOyY,eAAethC,EAAG6oB,EAAOuD,QAAQ,CAACrD,YAAY,OAAOC,MAAM,CAAC,YAAY,aAAa7oB,GAAG,CAAC,MAAQ,SAAS2qB,GAAQ,OAAOjC,EAAO6J,OAAO7J,EAAOyY,YAAY,MAAM,KAAKthC,EAAG,MAAM,CAAC+oB,YAAY,aAAa,CAAC/oB,EAAG,OAAO,CAAC+oB,YAAY,cAAc,CAACjpB,EAAIoqB,GAAGpqB,EAAIqqB,GAAGtB,EAAOuB,EAAE,aAAapqB,EAAG,MAAM,CAAC+oB,YAAY,cAAc,CAAC/oB,EAAG,QAAQ,CAAC+oB,YAAY,QAAQC,MAAM,CAAC,KAAO,QAAQyC,SAAS,CAAC,MAAQ5C,EAAO0Y,SAASvhC,EAAG6oB,EAAOuD,QAAQ,CAACrD,YAAY,OAAOC,MAAM,CAAC,YAAY,aAAa7oB,GAAG,CAAC,MAAQ,SAAS2qB,GAAQ,OAAOjC,EAAO6J,OAAO7J,EAAO0Y,MAAM,MAAM,QAC1hC,EACI3gC,GAAkB,GCGtB,IAA4B0tB,EAAAA,GAAAA,iBAAiB,CAC3CC,OAAQ,UACRC,MAAMC,GAER,MAAM,EACJrE,EAAC,YACDkX,EAAW,MACXC,EAAK,OACL7O,GACE8O,KAEJ,MAAO,CAAE9S,OAAO,EAAKtE,IAAGkX,cAAaC,QAAO7O,SAAQtG,QAAOA,GAAAA,EAC3D,ICjB8V,MCQ1V,IAAY,QACd,GACA,GACA,IACA,EACA,KACA,WACA,MAIF,GAAe,GAAiB,QCfhC,MAAMyU,GAAQ9P,GAAAA,EAAWyF,GAAUC,GAEnC,UCIA,IAA4BnI,EAAAA,GAAAA,iBAAiB,CAC3CC,OAAQ,iBACRC,MAAMC,GAER,MAAM5B,GAAaC,EAAAA,GAAAA,MACb,YAAEQ,IAAgBH,EAAAA,GAAAA,IAAYN,IAC9B,EAAEzC,IAAMqC,EAAAA,GAAAA,KACRuU,GAAmB9gC,EAAAA,GAAAA,MAAI,GACvBuhC,GAAavhC,EAAAA,GAAAA,OAEnB,SAAS6gC,IACP,GAAKhQ,GAAAA,EAQE,CAEL,GADAiQ,EAAiB36B,OAAQ,EACM,SAA3BwmB,EAAWS,YAEb,YADAT,EAAWe,eAAe,IAG5Bf,EAAWe,eAAe,O,KAdb,CACb,GAAIf,EAAWc,sBAAmD,SAA3Bd,EAAWS,YAGhD,OAFAT,EAAWc,sBAAqB,QAChCd,EAAWe,eAAe,IAG5Bf,EAAWc,sBAAqB,GAChCd,EAAWe,eAAe,O,CAS9B,CAGA,SAASsF,EAAoBjX,GACvB+kB,EAAiB36B,OAASo7B,EAAWp7B,QAAUo7B,EAAWp7B,MAAMuyB,IAAIzF,SAASlX,EAAMhR,UACrF+1B,EAAiB36B,OAAQ,EAE7B,CAEA,SAAS66B,IACPF,EAAiB36B,OAAQ,CAC3B,CAUA,OARA+sB,EAAAA,GAAAA,YAAU,KACRniB,SAASwN,iBAAiB,QAASyU,GAAqB,EAAK,KAG/DxC,EAAAA,GAAAA,cAAY,KACVzf,SAAS0L,oBAAoB,QAASuW,GAAqB,EAAK,IAG3D,CAAExE,OAAO,EAAK7B,aAAYS,cAAalD,IAAG4W,mBAAkBS,aAAYV,uBAAsB7N,sBAAqBgO,uBAAsBjK,WAAU,KAAEgK,YAAWA,GACvK,IC3DqW,MCQjW,IAAY,QACd,GACA,GACA,IACA,EACA,KACA,WACA,MAIF,GAAe,GAAiB,Q,YCoB/BxY,GAOA,MAAO,CAKNA,IAPDA,EAAMA,GAAO,IAAIiZ,IAehBvhC,GAAAA,SAA6B4B,EAAW4/B,GACvC,IAAM3xB,EAAmDyY,EAAKpS,IAAItU,GAC9DiO,EACHA,EAAS7H,KAAKw5B,GAGdlZ,EAAKlf,IAAIxH,EAAM,CAAC4/B,GAAAA,EAWlBhR,IAAAA,SAA8B5uB,EAAW4/B,GACxC,IAAM3xB,EAAmDyY,EAAKpS,IAAItU,GAC9DiO,IACC2xB,EACH3xB,EAAS8T,OAAO9T,EAAS5I,QAAQu6B,KAAa,EAAG,GAGjDlZ,EAAKlf,IAAIxH,EAAM,MAelB8sB,KAAAA,SAA+B9sB,EAAW6/B,GACzC,IAAI5xB,EAAWyY,EAAKpS,IAAItU,GACpBiO,GACFA,EACCrO,QACAuL,KAAI,SAACy0B,GACLA,EAAQC,EAAAA,KAIX5xB,EAAWyY,EAAKpS,IAAI,OAElBrG,EACCrO,QACAuL,KAAI,SAACy0B,GACLA,EAAQ5/B,EAAM6/B,EAAAA,GAAAA,EAAAA,CC/GpB,MAAMC,GAAMC,KACZ,UCWA,IAA4BxT,EAAAA,GAAAA,iBAAiB,CAC3CC,OAAQ,gBACRC,MAAMC,GAER,MAAMgR,GAAkBv/B,EAAAA,GAAAA,MAAI,GACtB6hC,GAAiB7hC,EAAAA,GAAAA,QAEjB,EACJkqB,EAAC,YACDkD,GACE0U,KACErX,GAAYqC,EAAAA,GAAAA,KAElB,SAASwS,IACPC,EAAgBp5B,OAAQ,CAC1B,CACA,SAASswB,EAAmB1tB,GAC1BwrB,GAAAA,YAAyB,CAAExrB,OAAM4rB,KAAM5rB,IACvC44B,GAAAA,KAAS,2BAA4B54B,EACvC,CAEA,SAASiqB,EAAoBjX,GACvBwjB,EAAgBp5B,QAAU07B,EAAe17B,MAAM8sB,SAASlX,EAAMhR,UAChEw0B,EAAgBp5B,OAAQ,EAE5B,CAUA,OARA+sB,EAAAA,GAAAA,YAAU,KACRniB,UAAUwN,iBAAiB,QAASyU,GAAqB,EAAK,KAGhExC,EAAAA,GAAAA,cAAY,KACVzf,UAAU0L,oBAAoB,QAASuW,GAAqB,EAAK,IAG5D,CAAExE,OAAO,EAAK+Q,kBAAiBsC,iBAAgB3X,IAAGkD,cAAa3C,YAAW6U,WAAU7I,qBAAoBzD,sBAAqB+D,WAAU,KAAEH,YAAW,GAAE6I,cAAa,GAAED,eAAc,GAAE5F,UAASA,GAAAA,EACrM,IClDgX,MCQ5W,IAAY,QACd,GACA,GACA,IACA,EACA,KACA,WACA,MAIF,GAAe,GAAiB,QCnB5Bj6B,GAAS,WAAkB,IAAIC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG6oB,EAAO/oB,EAAIG,MAAM6oB,YAAY,OAAO9oB,EAAG,MAAM,CAAC+oB,YAAY,0BAA0B,CAAC/oB,EAAG6oB,EAAOoO,WAAW,CAACjO,MAAM,CAAC,YAAmC,SAAvBH,EAAOyE,YAAuB,MAAQzE,EAAOuB,EAAE,QAAQ,YAAYvB,EAAOwQ,UAAUl5B,GAAG,CAAC,aAAa0oB,EAAOoZ,sBAAsB,EAC5T,EACIrhC,GAAkB,GCGtB,IAA4B0tB,EAAAA,GAAAA,iBAAiB,CAC3CC,OAAQ,gBACRC,MAAMC,GAER,MAAM,EACJrE,EAAC,SACDiP,EAAQ,WACRxM,EAAU,YACVS,GACE0U,KAEJ,SAASC,IACP,GAAIpV,EAAWc,sBAAmD,SAA3Bd,EAAWS,YAGhD,OAFAT,EAAWc,sBAAqB,QAChCd,EAAWe,eAAe,IAG5Bf,EAAWc,sBAAqB,GAChCd,EAAWe,eAAe,OAC5B,CAEA,MAAO,CAAEc,OAAO,EAAKtE,IAAGiP,WAAUxM,aAAYS,cAAa2U,oBAAmBhL,WAAUA,GAAAA,EACxF,IC3BgX,MCO5W,IAAY,QACd,GACA,GACA,IACA,EACA,KACA,WACA,MAIF,GAAe,GAAiB,QCbhC,MAAMD,GAAcjG,GAAAA,EAAWmR,GAAgBC,GAE/C,UCHc,SAAUC,KACtB,MAAMzX,GAAYqC,EAAAA,GAAAA,MACZ,EAAE5C,IAAMqC,EAAAA,GAAAA,KAEd,MAAO,CACLrC,IACAO,YAEJ,CCGA,QAA4B2D,EAAAA,GAAAA,iBAAiB,CAC3CC,OAAQ,UACRC,MAAMC,GAER,MAAM,UACJ9D,GACEyX,KAGJ,SAASzL,EAAmB1tB,GAC1BwrB,GAAAA,YAAyB,CAAExrB,OAAM4rB,KAAM5rB,IACvC44B,GAAAA,KAAS,2BAA4B54B,EACvC,CAEA,MAAO,CAAEylB,OAAO,EAAK/D,YAAWgM,qBAAoBD,aAAY,GAAEE,aAAY,GAAEG,oBAAmB,GAAED,YAAW,GAAED,aAAY,GAAEG,YAAWA,GAC3I,IC9B0W,MCQtW,IAAY,QACd,GACA,GACA,IACA,EACA,KACA,WACA,MAIF,GAAe,GAAiB,QCnB5Bn3B,GAAS,WAAkB,IAAIC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG6oB,EAAO/oB,EAAIG,MAAM6oB,YAAY,OAAO9oB,EAAG,MAAM,CAAC+oB,YAAY,oBAAoB,CAAC/oB,EAAG,MAAM,CAAC+oB,YAAY,kBAAkB,CAAC/oB,EAAG6oB,EAAO6N,aAAa,CAAC3N,YAAY,sBAAsB5oB,GAAG,CAAC,MAAQ,SAAS2qB,GAAQ,OAAOjC,EAAO8N,mBAAmB,eAAe,KAAK32B,EAAG6oB,EAAO+N,aAAa,CAAC7N,YAAY,sBAAsB5oB,GAAG,CAAC,MAAQ,SAAS2qB,GAAQ,OAAOjC,EAAO8N,mBAAmB,eAAe,MAAM,GAAG32B,EAAG,MAAM,CAAC+oB,YAAY,oBAAoB,CAAC/oB,EAAG6oB,EAAOwZ,mBAAmB,CAACliC,GAAG,CAAC,MAAQ,SAAS2qB,GAAQ,OAAOjC,EAAO8N,mBAAmB,qBAAqB,KAAK32B,EAAG6oB,EAAOyZ,kBAAkB,CAACniC,GAAG,CAAC,MAAQ,SAAS2qB,GAAQ,OAAOjC,EAAO8N,mBAAmB,oBAAoB,KAAM9N,EAAO8B,UAAUC,SAAU5qB,EAAG6oB,EAAOkO,oBAAoB,CAAC52B,GAAG,CAAC,MAAQ,SAAS2qB,GAAQ,OAAOjC,EAAO8N,mBAAmB,sBAAsB,KAAK72B,EAAI+qB,KAAK7qB,EAAG6oB,EAAO8W,cAAc,CAACx/B,GAAG,CAAC,MAAQ,SAAS2qB,GAAQ,OAAOjC,EAAO8N,mBAAmB,gBAAgB,KAAK32B,EAAG6oB,EAAOiO,YAAY,CAAC32B,GAAG,CAAC,MAAQ,SAAS2qB,GAAQ,OAAOjC,EAAO8N,mBAAmB,cAAc,KAAM9N,EAAO8B,UAAU0F,2BAA4BrwB,EAAG6oB,EAAOgO,aAAa,CAAC12B,GAAG,CAAC,MAAQ,SAAS2qB,GAAQ,OAAOjC,EAAO8N,mBAAmB,eAAe,KAAK72B,EAAI+qB,KAAK7qB,EAAG6oB,EAAOmO,YAAY,CAAC72B,GAAG,CAAC,MAAQ,SAAS2qB,GAAQ,OAAOjC,EAAO8N,mBAAmB,cAAc,KAAK32B,EAAG6oB,EAAO0Z,eAAe,CAACpiC,GAAG,CAAC,MAAQ,SAAS2qB,GAAQ,OAAOjC,EAAO8N,mBAAmB,iBAAiB,MAAM,GAAG32B,EAAG,MAAM,CAAC+oB,YAAY,mBAAmB,CAAC/oB,EAAG6oB,EAAOmB,WAAW,CAAC7pB,GAAG,CAAC,kBAAkB0oB,EAAOroB,cAAc,eAAeqoB,EAAOtoB,eAAe,IACjmD,EACIK,GAAkB,GCFlBf,GAAS,WAAkB,IAAIC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG6oB,EAAO/oB,EAAIG,MAAM6oB,YAAY,OAAO9oB,EAAG,MAAM,CAAC+oB,YAAY,kCAAkC,CAAC/oB,EAAG6oB,EAAOoO,WAAW,CAAC/2B,IAAI,aAAa8oB,MAAM,CAAC,YAAYH,EAAO2Z,UAAU,SAAW3Z,EAAO4Z,oBAAoB,MAAQ5Z,EAAOuE,MAAM,YAAYvE,EAAOwQ,UAAUl5B,GAAG,CAAC,aAAa0oB,EAAO6Z,qBAAsB7Z,EAAO8Z,oBAAqB3iC,EAAG,MAAM,CAAC+oB,YAAY,oBAAoB5oB,GAAG,CAAC,MAAQ0oB,EAAO+Z,wBAAwB,CAAC5iC,EAAG6oB,EAAOuD,QAAQ,CAACrD,YAAY,kBAAkBC,MAAM,CAAC,YAAYH,EAAOiR,UAAU+I,sBAAsB7iC,EAAG,OAAO,CAACF,EAAIoqB,GAAGpqB,EAAIqqB,GAAGtB,EAAOuB,EAAE,oBAAoB,GAAGtqB,EAAI+qB,KAAK7qB,EAAG6oB,EAAO+H,OAAO,CAAC5H,MAAM,CAAC,cAAcH,EAAOia,cAAc,MAAQ,QAAQ,MAAQja,EAAOuB,EAAE,iBAAiB,OAAQ,EAAK,kBAAiB,EAAM,eAAevB,EAAOka,YAAY1X,YAAYvrB,EAAIwrB,GAAG,CAAC,CAAC1mB,IAAI,SAAS9D,GAAG,WAAW,MAAO,CAACd,EAAG,OAAO,CAACA,EAAG,YAAY,CAACgpB,MAAM,CAAC,KAAO,WAAW7oB,GAAG,CAAC,MAAQ0oB,EAAOma,kBAAkB,CAACljC,EAAIoqB,GAAGpqB,EAAIqqB,GAAGtB,EAAOuB,EAAE,oBAAoBpqB,EAAG,YAAY,CAACgpB,MAAM,CAAC,KAAO,WAAW7oB,GAAG,CAAC,MAAQ0oB,EAAOka,aAAa,CAACjjC,EAAIoqB,GAAGpqB,EAAIqqB,GAAGtB,EAAOuB,EAAE,eAAe,GAAG,EAAEkC,OAAM,MAAS,CAACtsB,EAAG,OAAO,CAACF,EAAIoqB,GAAG,IAAIpqB,EAAIqqB,GAAGtB,EAAOuB,EAAE,uGAAuG,EAC5wC,EACIxpB,GAAkB,GCctB,IAA4B0tB,EAAAA,GAAAA,iBAAiB,CAC3CC,OAAQ,QACRC,MAAMC,GAER,MAAM9B,GAAaC,EAAAA,GAAAA,KAEbF,EAAY,uBAEZ/B,GAAYqC,EAAAA,GAAAA,MACZ,SAAEoD,EAAQ,WAAE2H,EAAU,oBAAEkL,IAAwB9V,EAAAA,GAAAA,IAAYxC,IAC5D,EAAEP,IAAMqC,EAAAA,GAAAA,KAERyW,GAAahjC,EAAAA,GAAAA,OACbsiC,GAA0BtiC,EAAAA,GAAAA,MAAI,GAC9ByiC,GAAoCziC,EAAAA,GAAAA,MAAI,GACxC4iC,GAA8B5iC,EAAAA,GAAAA,MAAI,GAGlCuiC,GAAsBvrB,EAAAA,GAAAA,WAAS,IAAM6gB,EAAW1xB,QAChD+mB,GAAQlW,EAAAA,GAAAA,WAAS,IAAOsrB,EAAUn8B,MAAQ+jB,EAAE,WAAaA,EAAE,kBAC3DiP,GAAWniB,EAAAA,GAAAA,WAAS,IACpBurB,EAAoBp8B,MACfyzB,GAAAA,EAAAA,oBAEF0I,EAAUn8B,MAAQyzB,GAAAA,EAAAA,cAA0BA,GAAAA,EAAAA,cASrDhM,eAAe4U,IACb,GAAI3K,EAAW1xB,OACb2pB,EAAAA,GAAAA,GAAU,CACRjuB,KAAM,UACN0J,QAAS2e,EAAE,8GACXiO,SAAUC,GAAAA,EAAAA,YAId,GAAI2K,EAAoB58B,OACtB2pB,EAAAA,GAAAA,GAAU,CACRjuB,KAAM,UACN0J,QAAS2e,EAAE,iFACXiO,SAAUC,GAAAA,EAAAA,YAId,GAAIkK,EAAUn8B,MACZs8B,EAAoBt8B,OAAQ,OAG9B,UACQsmB,EAAWrE,UAAU6a,sBAC3BX,EAAUn8B,OAAQ,C,CAClB,MAAOmG,GACPugB,GAAAA,EAAAA,MAAa,GAAGL,2BAAoClgB,EAAMvD,KAAMuD,EAAMf,QAASe,EAAMd,MACrF,IAAID,EAAU,GAEd,OAAQe,EAAMvD,MACZ,IAAK,mBAEHwC,EAAU,kBACV,MACF,IAAK,kBAGDA,EAFEe,EAAMf,QAAQgiB,SAAS,+BAEf,kBAGA,cAEZ,MACF,QAEEhiB,EAAU,aACV,OAEJukB,EAAAA,GAAAA,GAAU,CACRjuB,KAAM,UACN0J,UACA4sB,SAAUC,GAAAA,EAAAA,M,CAGhB,CAEA,SAASsK,IACPD,EAAoBt8B,OAAQ,EACxBm8B,EAAUn8B,QACZy8B,EAAcz8B,OAAQ,EAE1B,CAEA,SAAS08B,IACPD,EAAcz8B,OAAQ,CACxB,CAEAynB,eAAekV,IACb,GAAIR,EAAUn8B,MACZ,UACQsmB,EAAWrE,UAAU8a,qBAC3BN,EAAcz8B,OAAQ,EACtBm8B,EAAUn8B,OAAQ,C,CAClB,MAAOmG,GACPugB,GAAAA,EAAAA,MAAa,GAAGL,0BAAmClgB,E,CAGzD,CAGA,SAAS62B,IACPb,EAAUn8B,OAAQ,CACpB,CAUA,OAjGA+4B,EAAAA,GAAAA,OAAMhP,GAAU,CAAC/tB,EAAUihC,MACpBA,GAAUjhC,GAAOmgC,EAAUn8B,OAC9B28B,G,IAuFJxS,KAAAA,KAAmB,SAAS,KAC1B7D,EAAWrE,UAAUnoB,GAAGswB,GAAAA,cAAAA,2BAA0C4S,EAAqB,KAGzF3S,EAAAA,GAAAA,cAAY,KACV/D,EAAWrE,UAAUqI,IAAIF,GAAAA,cAAAA,2BAA0C4S,EAAqB,IAGnF,CAAE3U,OAAO,EAAK/B,aAAYD,YAAW/B,YAAWyF,WAAU2H,aAAYkL,sBAAqB7Y,IAAG8Y,aAAYV,YAAWG,sBAAqBG,gBAAeL,sBAAqBrV,QAAOiM,WAAUqJ,oBAAmBE,wBAAuBG,aAAYC,kBAAiBK,uBAAsBzS,OAAM,KAAEqG,WAAU,KAAE7K,QAAO,KAAE0N,UAASA,GAAAA,EACzU,IC7IwW,MCQpW,IAAY,QACd,GACA,GACA,IACA,EACA,KACA,WACA,MAIF,GAAe,GAAiB,QCnB5Bj6B,GAAS,WAAkB,IAAIC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG6oB,EAAO/oB,EAAIG,MAAM6oB,YAAY,OAAO9oB,EAAG,MAAM,CAAC+oB,YAAY,gCAAgC,CAAC/oB,EAAG6oB,EAAOoO,WAAW,CAACjO,MAAM,CAAC,YAAYH,EAAO0a,aAAa,MAAQ1a,EAAOuE,MAAM,YAAYvE,EAAOwQ,UAAUl5B,GAAG,CAAC,aAAa0oB,EAAO2a,iBAAiB,EAC/S,EACI5iC,GAAkB,G,WCOtB,IAA4B0tB,EAAAA,GAAAA,iBAAiB,CAC3CC,OAAQ,oBACRC,MAAMC,GAER,MAAM,EAAErE,IAAMqC,EAAAA,GAAAA,KAOR8W,GAAerjC,EAAAA,GAAAA,MAAI,GAEnBktB,GAAQlW,EAAAA,GAAAA,WAAS,IAAeqsB,EAAal9B,MAAQ+jB,EAAE,QAAUA,EAAE,iBACnEiP,GAAWniB,EAAAA,GAAAA,WAAS,IAAeqsB,EAAal9B,MAASyzB,GAAAA,EAAAA,eAA2BA,GAAAA,EAAAA,aAE1F,SAAS0J,IACP,GAAID,EAAal9B,OACfo9B,EAAAA,GAAAA,WAEA,GAAIC,GAAAA,GAAS,CACX,MAAMC,EAAgB1yB,SAAS2yB,KAC/BD,IAAiBE,EAAAA,GAAAA,IAAcF,E,KAC1B,CACL,MAAMA,EAAgB1yB,SAAS6yB,eAAe,iBAC9CH,IAAiBE,EAAAA,GAAAA,IAAcF,E,CAGrC,CAEA,SAASI,IACPR,EAAal9B,OAASk9B,EAAal9B,KACrC,CAcA,OAZA+sB,EAAAA,GAAAA,YAAU,KACR,CAAC,mBAAoB,yBAA0B,uBAAuBjvB,SAAS+xB,IAC7EhxB,OAAOuZ,iBAAiByX,EAAM6N,EAAuB,GACrD,KAGJrT,EAAAA,GAAAA,cAAY,KACV,CAAC,mBAAoB,yBAA0B,uBAAuBvsB,SAAS+xB,IAC7EhxB,OAAOyX,oBAAoBuZ,EAAM6N,EAAuB,GACxD,IAGG,CAAErV,OAAO,EAAKtE,IAAGmZ,eAAcnW,QAAOiM,WAAUmK,eAAcO,yBAAwB9M,WAAUA,GAAAA,EACvG,ICxDwW,MCOpW,IAAY,QACd,GACA,GACA,IACA,EACA,KACA,WACA,MAIF,GAAe,GAAiB,QClB5Bp3B,GAAS,WAAkB,IAAIC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG6oB,EAAO/oB,EAAIG,MAAM6oB,YAAY,OAAO9oB,EAAG,MAAM,CAAC+oB,YAAY,6BAA6B,CAAC/oB,EAAG6oB,EAAOoO,WAAW,CAACjO,MAAM,CAAC,YAAYH,EAAOmb,kBAAkB,MAAQnb,EAAOuB,EAAE,YAAY,YAAYvB,EAAOwQ,UAAUl5B,GAAG,CAAC,aAAa0oB,EAAOob,4BAA4B,EACpU,EACIrjC,GAAkB,GCOtB,IAA4B0tB,EAAAA,GAAAA,iBAAiB,CAC3CC,OAAQ,iBACRC,MAAMC,GAER,MAAM,EAAErE,IAAMqC,EAAAA,GAAAA,KAERI,GAAaC,EAAAA,GAAAA,MACb,kBAAEkX,IAAsB7W,EAAAA,GAAAA,IAAYN,GAEpCwM,GAAWniB,EAAAA,GAAAA,WAAS,IAAO8sB,EAAkB39B,MAAQyzB,GAAAA,EAAAA,cAA0BA,GAAAA,EAAAA,UAErF,SAASmK,IACPpX,EAAWqX,sBAAsBrX,EAAWmX,kBAC9C,CAEA,MAAO,CAAEtV,OAAO,EAAKtE,IAAGyC,aAAYmX,oBAAmB3K,WAAU4K,0BAAyBhN,WAAUA,GAAAA,EACpG,ICzBqW,MCQjW,IAAY,QACd,GACA,GACA,IACA,EACA,KACA,WACA,MAIF,GAAe,GAAiB,QCChC,IAA4B3I,EAAAA,GAAAA,iBAAiB,CAC3CC,OAAQ,UACRK,MAAO,CAAC,kBAAmB,gBAC3BJ,MAAMC,GAAS,KAAEI,IAEnB,MAAM,UACJlE,GACEyX,KAIE5hC,EAAiB20B,IACrBtG,EAAK,kBAAmBsG,GACxBV,GAAAA,YAAyB,CAAExrB,KAAM,cAAe4rB,KAAM,uBAAwB,EAG1Et0B,EAAc40B,IAClBtG,EAAK,eAAgBsG,GACrBV,GAAAA,YAAyB,CAAExrB,KAAM,WAAY4rB,KAAM,oBAAqB,EAG1E,SAAS8B,EAAmB1tB,GAC1BwrB,GAAAA,YAAyB,CAAExrB,OAAM4rB,KAAM5rB,IACvC44B,GAAAA,KAAS,2BAA4B54B,EACvC,CAEA,MAAO,CAAEylB,OAAO,EAAK/D,YAAWkE,OAAMruB,gBAAeD,aAAYo2B,qBAAoBD,aAAY,GAAE2L,mBAAkB,GAAEC,kBAAiB,GAAE3C,cAAa,GAAE/I,aAAY,GAAEG,oBAAmB,GAAED,YAAW,GAAED,aAAY,GAAEG,YAAW,GAAEhN,WAAU,GAAEuY,eAAcA,GAC9P,IC/C0W,MCQtW,IAAY,QACd,GACA,GACA,IACA,EACA,KACA,WACA,MAIF,GAAe,GAAiB,QCfhC,MAAM1B,GAAQ9P,GAAAA,EAAWyF,GAAU2N,GAEnC,UCNItkC,GAAS,WAAkB,IAAIC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG6oB,EAAO/oB,EAAIG,MAAM6oB,YAAY,OAAQD,EAAOuC,YAAaprB,EAAG6oB,EAAOsC,MAAM,CAACpC,YAAY,2BAA2BC,MAAM,CAAC,MAAQH,EAAOuE,OAAO/B,YAAYvrB,EAAIwrB,GAAG,CAAC,CAAC1mB,IAAI,iBAAiB9D,GAAG,WAAW,MAAO,CAACd,EAAG,MAAM,CAACurB,YAAY,CAAC,OAAS,SAAS,CAAyB,SAAvB1C,EAAOyE,YAAwBttB,EAAG6oB,EAAOub,MAAMtkC,EAAI+qB,KAA6B,kBAAvBhC,EAAOyE,YAAiCttB,EAAG6oB,EAAOwb,cAAcvkC,EAAI+qB,MAAM,GAAG,EAAEyB,OAAM,GAAM,CAAC1nB,IAAI,gBAAgB9D,GAAG,WAAW,MAAO,CAACd,EAAG,MAAM,CAAyB,SAAvB6oB,EAAOyE,YAAwBttB,EAAG6oB,EAAOyb,YAAYxkC,EAAI+qB,MAAM,GAAG,EAAEyB,OAAM,IAAO,MAAK,EAAM,aAAaxsB,EAAI+qB,IAC5mB,EACIjqB,GAAkB,GCFlBf,GAAS,WAAkB,IAAIC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG6oB,EAAO/oB,EAAIG,MAAM6oB,YAAY,OAAO9oB,EAAG,MAAM,CAACsqB,MAAM,CAACzB,EAAOkI,SAAW,oBAAsB,mBAAoB,CAAC/wB,EAAG6oB,EAAO0b,aAAe1b,EAAOkI,SAAgCjxB,EAAI+qB,KAA1B7qB,EAAG6oB,EAAOyb,aAAsB,EACxP,EACI1jC,GAAkB,GCFlBf,GAAS,WAAkB,IAAIC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG6oB,EAAO/oB,EAAIG,MAAM6oB,YAAY,OAAO9oB,EAAG,MAAM,CAACsqB,MAAMzB,EAAOkI,SAAW,4BAA4B,0BAA0B,CAAC/wB,EAAG,MAAM,CAAC+oB,YAAY,gBAAgBjpB,EAAI6rB,GAAI9C,EAAOiS,aAAa,SAAS5E,GAAM,OAAOl2B,EAAG,MAAM,CAAC4E,IAAIsxB,EAAKoF,GAAGp7B,IAAI,eAAeskC,UAAS,EAAKla,MAAM,CAAC,eAAiB,IAAE,QAAU4L,EAAKuO,KAAO,QAAU,MAAO,CAACzkC,EAAG,MAAM,CAAC+oB,YAAY,iBAAiBC,MAAM,CAAC,MAAQkN,EAAKwO,MAAQxO,EAAK3pB,OAAO,CAACzM,EAAIoqB,GAAG,IAAIpqB,EAAIqqB,GAAG+L,EAAKwO,MAAQxO,EAAK3pB,MAAM,OAAOvM,EAAG,MAAM,CAAC+oB,YAAY,gBAAgB,CAAgB,gBAAdmN,EAAKn0B,KAAwB/B,EAAG6oB,EAAO8b,YAAY,CAAC3b,MAAM,CAAC,KAAOkN,EAAK/R,QAAQygB,QAAQ9kC,EAAI+qB,MAAM,IAAI,IAAG,GAAG7qB,EAAG,MAAM,CAACE,IAAI,kBAAkB6oB,YAAY,oBAC1sB,EACInoB,GAAkB,GCFlBf,GAAS,WAAkB,IAAIC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG6oB,EAAO/oB,EAAIG,MAAM6oB,YAAY,OAAO9oB,EAAG,OAAOF,EAAI6rB,GAAI9C,EAAOgc,6BAA6Bhc,EAAO3iB,MAAMuL,OAAO,SAASykB,EAAKtnB,GAAO,OAAO5O,EAAG,OAAO,CAAC4E,IAAIgK,GAAO,CAAgB,SAAdsnB,EAAKjtB,KAAiBjJ,EAAG,OAAO,CAAC+oB,YAAY,YAAY,CAACjpB,EAAIoqB,GAAGpqB,EAAIqqB,GAAG+L,EAAK0O,SAAwB,QAAd1O,EAAKjtB,KAAgBjJ,EAAG,MAAM,CAAC+oB,YAAY,WAAWC,MAAM,CAAC,IAAMkN,EAAKrC,OAAO/zB,EAAI+qB,MAAM,IAAG,EACjZ,EACIjqB,GAAkB,GCFf,MAAMkkC,GAAkB,8CAClBC,GAAe,CAC1B,OAAQ,iBACR,OAAQ,iBACR,OAAQ,iBACR,QAAS,iBACT,OAAQ,iBACR,OAAQ,iBACR,OAAQ,iBACR,OAAQ,iBACR,OAAQ,iBACR,OAAQ,iBACR,OAAQ,kBACR,OAAQ,kBACR,MAAO,kBACP,OAAQ,kBACR,OAAQ,kBACR,OAAQ,kBACR,OAAQ,kBACR,OAAQ,kBACR,OAAQ,kBACR,QAAS,kBACT,QAAS,kBACT,QAAS,kBACT,MAAO,kBACP,MAAO,kBACP,OAAQ,kBACR,OAAQ,kBACR,OAAQ,kBACR,MAAO,kBACP,OAAQ,kBACR,MAAO,kBACP,OAAQ,kBACR,OAAQ,kBACR,OAAQ,kBACR,OAAQ,kBACR,OAAQ,kBACR,OAAQ,kBACR,OAAQ,kBACR,OAAQ,kBACR,OAAQ,kBACR,OAAQ,kBACR,QAAS,kBACT,QAAS,kBACT,QAAS,kBACT,OAAQ,kBACR,MAAO,kBACP,MAAO,kBACP,OAAQ,kBACR,OAAQ,kBACR,OAAQ,kBACR,OAAQ,kBACR,QAAS,kBACT,QAAS,kBACT,OAAQ,kBACR,MAAO,kBACP,OAAQ,kBACR,OAAQ,kBACR,OAAQ,kBACR,OAAQ,kBACR,QAAS,kBACT,OAAQ,kBACR,OAAQ,kBACR,OAAQ,kBACR,OAAQ,kBACR,OAAQ,kBACR,OAAQ,kBACR,OAAQ,kBACR,OAAQ,kBACR,OAAQ,kBACR,OAAQ,kBACR,OAAQ,kBACR,MAAO,kBACP,OAAQ,kBACR,QAAS,kBACT,OAAQ,kBACR,OAAQ,kBACR,OAAQ,kBACR,OAAQ,kBACR,OAAQ,kBACR,OAAQ,kBACR,OAAQ,kBACR,OAAQ,kBACR,OAAQ,kBACR,OAAQ,kBACR,OAAQ,kBACR,OAAQ,kBACR,OAAQ,kBACR,OAAQ,kBACR,OAAQ,kBACR,OAAQ,kBACR,OAAQ,kBACR,OAAQ,kBACR,OAAQ,kBACR,OAAQ,kBACR,OAAQ,kBACR,OAAQ,kBACR,OAAQ,kBACR,QAAS,kBACT,OAAQ,kBACR,OAAQ,kBACR,OAAQ,kBACR,QAAS,mBACT,QAAS,mBACT,QAAS,mBACT,OAAQ,mBACR,OAAQ,mBACR,MAAO,mBACP,MAAO,mBACP,OAAQ,mBACR,OAAQ,mBACR,OAAQ,mBACR,OAAQ,mBACR,MAAO,mBACP,OAAQ,mBACR,OAAQ,mBACR,OAAQ,mBACR,OAAQ,mBACR,OAAQ,mBACR,OAAQ,mBACR,OAAQ,mBACR,OAAQ,mBACR,MAAO,mBACP,OAAQ,mBACR,OAAQ,mBACR,OAAQ,mBACR,OAAQ,mBACR,OAAQ,mBACR,OAAQ,mBACR,OAAQ,mBACR,OAAQ,mBACR,OAAQ,mBACR,OAAQ,mBACR,OAAQ,mBACR,OAAQ,mBACR,OAAQ,mBACR,OAAQ,mBACR,OAAQ,mBACR,OAAQ,mBACR,OAAQ,mBACR,QAAS,mBACT,OAAQ,mBACR,OAAQ,mBACR,OAAQ,oBAEGC,GAAY,CACvB,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,MACA,MACA,OACA,OACA,OACA,OACA,OACA,OACA,MACA,OACA,OACA,MACA,OACA,MACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,MACA,QACA,OACA,OACA,MACA,OACA,OACA,OACA,OACA,QACA,OACA,OACA,OACA,OACA,MACA,OACA,OACA,MACA,MACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,MACA,OACA,OACA,OACA,QACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,QACA,QACA,QACA,QACA,MACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,QACA,QACA,OACA,OACA,QACA,OACA,QACA,OACA,QACA,QACA,OACA,OACA,OACA,OACA,OACA,QACA,OACA,OACA,OACA,OACA,QACA,OACA,QACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,QAII,SAAUC,GAAkB9gB,GAChC,MAAM+gB,EAAY,GAMlB,IAAIC,EAAOhhB,EACPihB,GAAQ,EACRC,GAAS,EACb,MAAgB,KAATF,EAGL,OAFAC,EAAOD,EAAK/9B,QAAQ,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","sources":["webpack://room-uikit-web-vue2/./src/views/room.vue","webpack://room-uikit-web-vue2/./node_modules/axios/lib/helpers/bind.js","webpack://room-uikit-web-vue2/./node_modules/axios/lib/utils.js","webpack://room-uikit-web-vue2/./node_modules/axios/lib/core/AxiosError.js","webpack://room-uikit-web-vue2/./node_modules/axios/lib/helpers/null.js","webpack://room-uikit-web-vue2/./node_modules/axios/lib/helpers/toFormData.js","webpack://room-uikit-web-vue2/./node_modules/axios/lib/helpers/AxiosURLSearchParams.js","webpack://room-uikit-web-vue2/./node_modules/axios/lib/helpers/buildURL.js","webpack://room-uikit-web-vue2/./node_modules/axios/lib/core/InterceptorManager.js","webpack://room-uikit-web-vue2/./node_modules/axios/lib/defaults/transitional.js","webpack://room-uikit-web-vue2/./node_modules/axios/lib/platform/browser/classes/URLSearchParams.js","webpack://room-uikit-web-vue2/./node_modules/axios/lib/platform/browser/classes/FormData.js","webpack://room-uikit-web-vue2/./node_modules/axios/lib/platform/browser/classes/Blob.js","webpack://room-uikit-web-vue2/./node_modules/axios/lib/platform/browser/index.js","webpack://room-uikit-web-vue2/./node_modules/axios/lib/helpers/toURLEncodedForm.js","webpack://room-uikit-web-vue2/./node_modules/axios/lib/helpers/formDataToJSON.js","webpack://room-uikit-web-vue2/./node_modules/axios/lib/defaults/index.js","webpack://room-uikit-web-vue2/./node_modules/axios/lib/helpers/parseHeaders.js","webpack://room-uikit-web-vue2/./node_modules/axios/lib/core/AxiosHeaders.js","webpack://room-uikit-web-vue2/./node_modules/axios/lib/core/transformData.js","webpack://room-uikit-web-vue2/./node_modules/axios/lib/cancel/isCancel.js","webpack://room-uikit-web-vue2/./node_modules/axios/lib/cancel/CanceledError.js","webpack://room-uikit-web-vue2/./node_modules/axios/lib/core/settle.js","webpack://room-uikit-web-vue2/./node_modules/axios/lib/helpers/cookies.js","webpack://room-uikit-web-vue2/./node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack://room-uikit-web-vue2/./node_modules/axios/lib/helpers/combineURLs.js","webpack://room-uikit-web-vue2/./node_modules/axios/lib/core/buildFullPath.js","webpack://room-uikit-web-vue2/./node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack://room-uikit-web-vue2/./node_modules/axios/lib/helpers/parseProtocol.js","webpack://room-uikit-web-vue2/./node_modules/axios/lib/helpers/speedometer.js","webpack://room-uikit-web-vue2/./node_modules/axios/lib/adapters/xhr.js","webpack://room-uikit-web-vue2/./node_modules/axios/lib/adapters/adapters.js","webpack://room-uikit-web-vue2/./node_modules/axios/lib/core/dispatchRequest.js","webpack://room-uikit-web-vue2/./node_modules/axios/lib/core/mergeConfig.js","webpack://room-uikit-web-vue2/./node_modules/axios/lib/env/data.js","webpack://room-uikit-web-vue2/./node_modules/axios/lib/helpers/validator.js","webpack://room-uikit-web-vue2/./node_modules/axios/lib/core/Axios.js","webpack://room-uikit-web-vue2/./node_modules/axios/lib/cancel/CancelToken.js","webpack://room-uikit-web-vue2/./node_modules/axios/lib/helpers/spread.js","webpack://room-uikit-web-vue2/./node_modules/axios/lib/helpers/isAxiosError.js","webpack://room-uikit-web-vue2/./node_modules/axios/lib/helpers/HttpStatusCode.js","webpack://room-uikit-web-vue2/./node_modules/axios/lib/axios.js","webpack://room-uikit-web-vue2/./src/TUIRoom/index.vue","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomHeader/roomHeaderH5/index.vue","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomFooter/EndControl/EndControlH5.vue","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomFooter/EndControl/useEndControlHooks.ts","webpack://room-uikit-web-vue2/./src/TUIRoom/components/common/PopUpH5.vue","webpack://room-uikit-web-vue2/./src/TUIRoom/components/common/PopUpH5.vue?cbb0","webpack://room-uikit-web-vue2/./src/TUIRoom/components/common/PopUpH5.vue?227e","webpack://room-uikit-web-vue2/./src/TUIRoom/components/common/PopUpH5.vue?80ea","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomFooter/EndControl/EndControlH5.vue?c6d6","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomFooter/EndControl/EndControlH5.vue?bdbb","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomFooter/EndControl/EndControlH5.vue?8363","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomFooter/EndControl/EndControlPC.vue","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomFooter/EndControl/EndControlPC.vue?c6ed","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomFooter/EndControl/EndControlPC.vue?f3fd","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomFooter/EndControl/EndControlPC.vue?15c9","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomFooter/EndControl/index.ts","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomHeader/roomHeaderH5/SwitchCamera.vue","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomHeader/roomHeaderH5/SwitchCamera.vue?30b2","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomHeader/roomHeaderH5/SwitchCamera.vue?7684","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomHeader/roomHeaderH5/SwitchCamera.vue?310f","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomHeader/roomHeaderH5/SwitchMirror.vue","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomHeader/roomHeaderH5/SwitchMirror.vue?4721","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomHeader/roomHeaderH5/SwitchMirror.vue?01d4","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomHeader/roomHeaderH5/SwitchMirror.vue?e768","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomHeader/roomHeaderH5/RoomInfo.vue","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomHeader/roomHeaderH5/RoomInfo.vue?bd7b","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomHeader/roomHeaderH5/RoomInfo.vue?7cc7","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomHeader/roomHeaderH5/RoomInfo.vue?e269","webpack://room-uikit-web-vue2/./src/TUIRoom/utils/aegis/config.ts","webpack://room-uikit-web-vue2/./src/TUIRoom/utils/aegis/index.ts","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomHeader/roomHeaderH5/index.vue?7171","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomHeader/roomHeaderH5/index.vue?4119","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomHeader/roomHeaderH5/index.vue?d478","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomHeader/roomHeaderPC/index.vue","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomHeader/roomHeaderPC/LayoutControl.vue","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomHeader/roomHeaderPC/LayoutControl.vue?49ca","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomHeader/roomHeaderPC/LayoutControl.vue?387e","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomHeader/roomHeaderPC/LayoutControl.vue?9b7f","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomHeader/roomHeaderPC/index.vue?2d44","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomHeader/roomHeaderPC/index.vue?812a","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomHeader/roomHeaderPC/index.vue?da03","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomHeader/index/index.ts","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomFooter/index/indexH5.vue","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomFooter/AudioControl.vue","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomFooter/AudioControl.vue?ad29","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomFooter/AudioControl.vue?60eb","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomFooter/AudioControl.vue?7bf9","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomFooter/VideoControl.vue","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomFooter/VideoControl.vue?a6d4","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomFooter/VideoControl.vue?34b3","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomFooter/VideoControl.vue?1008","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomFooter/ManageMemberControl.vue","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomFooter/ManageMemberControl.vue?f702","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomFooter/ManageMemberControl.vue?b23f","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomFooter/ManageMemberControl.vue?150f","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomFooter/ChatControl.vue","webpack://room-uikit-web-vue2/./src/TUIRoom/stores/chat.ts","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomFooter/ChatControl.vue?f1c1","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomFooter/ChatControl.vue?d455","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomFooter/ChatControl.vue?b76c","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomFooter/ApplyControl/Index.vue","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomFooter/ApplyControl/MasterApplyControl.vue","webpack://room-uikit-web-vue2/./src/TUIRoom/hooks/useMasterApplyControl.ts","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomFooter/ApplyControl/MasterApplyControl.vue?c0da","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomFooter/ApplyControl/MasterApplyControl.vue?2ae0","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomFooter/ApplyControl/MasterApplyControl.vue?90ba","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomFooter/ApplyControl/MemberApplyControl.vue","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomFooter/ApplyControl/MemberApplyControl.vue?24af","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomFooter/ApplyControl/MemberApplyControl.vue?8150","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomFooter/ApplyControl/MemberApplyControl.vue?a2fb","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomFooter/ApplyControl/Index.vue?ae79","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomFooter/ApplyControl/Index.vue?3ac1","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomFooter/ApplyControl/Index.vue?ab68","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomFooter/MoreControl/MoreControlH5.vue","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomFooter/MoreControl/useMoreControlHooks.ts","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomFooter/InviteControl.vue","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomInvite/indexH5.vue","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomInvite/useRoomInviteHooks.ts","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomInvite/indexH5.vue?f157","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomInvite/indexH5.vue?b2f8","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomInvite/indexH5.vue?7415","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomInvite/indexPC.vue","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomInvite/indexPC.vue?1fe9","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomInvite/indexPC.vue?9aa3","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomInvite/indexPC.vue?e5a1","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomInvite/index.ts","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomFooter/InviteControl.vue?8842","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomFooter/InviteControl.vue?90fd","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomFooter/InviteControl.vue?05bb","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomFooter/ContactControl.vue","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomMore/indexH5.vue","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomMore/useRoomMoreHooks.ts","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomMore/indexH5.vue?c6f5","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomMore/indexH5.vue?f3ec","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomMore/indexH5.vue?4a59","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomMore/indexPC.vue","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomMore/indexPC.vue?cc4a","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomMore/indexPC.vue?f328","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomMore/indexPC.vue?2318","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomMore/index.ts","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomFooter/ContactControl.vue?a4fc","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomFooter/ContactControl.vue?0911","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomFooter/ContactControl.vue?5a05","webpack://room-uikit-web-vue2/../src/index.ts","webpack://room-uikit-web-vue2/./src/TUIRoom/hooks/useMitt.ts","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomFooter/MoreControl/MoreControlH5.vue?a86e","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomFooter/MoreControl/MoreControlH5.vue?8811","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomFooter/MoreControl/MoreControlH5.vue?eae2","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomFooter/MoreControl/MoreControlPC.vue","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomFooter/MoreControl/MoreControlPC.vue?1a27","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomFooter/MoreControl/MoreControlPC.vue?3eb9","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomFooter/MoreControl/MoreControlPC.vue?986f","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomFooter/MoreControl/index.ts","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomFooter/index/useRoomFooterHooks.ts","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomFooter/index/indexH5.vue?eb7d","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomFooter/index/indexH5.vue?a790","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomFooter/index/indexH5.vue?e2f1","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomFooter/index/indexPC.vue","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomFooter/ScreenShareControl/Index.vue","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomFooter/ScreenShareControl/Index.vue?f490","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomFooter/ScreenShareControl/Index.vue?9bfe","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomFooter/ScreenShareControl/Index.vue?8e31","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomFooter/FullScreenControl.vue","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomFooter/FullScreenControl.vue?7e98","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomFooter/FullScreenControl.vue?a2f5","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomFooter/FullScreenControl.vue?9d67","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomFooter/SettingControl.vue","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomFooter/SettingControl.vue?83c7","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomFooter/SettingControl.vue?13dc","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomFooter/SettingControl.vue?2fa0","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomFooter/index/indexPC.vue?2016","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomFooter/index/indexPC.vue?2381","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomFooter/index/indexPC.vue?5fb4","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomFooter/index/index.ts","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomSidebar/indexH5.vue","webpack://room-uikit-web-vue2/./src/TUIRoom/components/Chat/index.vue","webpack://room-uikit-web-vue2/./src/TUIRoom/components/Chat/MessageList/MessageListPC.vue","webpack://room-uikit-web-vue2/./src/TUIRoom/components/Chat/MessageTypes/MessageText.vue","webpack://room-uikit-web-vue2/./src/TUIRoom/components/Chat/util.ts","webpack://room-uikit-web-vue2/./src/TUIRoom/components/Chat/MessageTypes/MessageText.vue?08b9","webpack://room-uikit-web-vue2/./src/TUIRoom/components/Chat/MessageTypes/MessageText.vue?387f","webpack://room-uikit-web-vue2/./src/TUIRoom/components/Chat/MessageTypes/MessageText.vue?40ec","webpack://room-uikit-web-vue2/./src/TUIRoom/components/Chat/useMessageListHook.ts","webpack://room-uikit-web-vue2/./src/TUIRoom/components/Chat/MessageList/MessageListPC.vue?aee0","webpack://room-uikit-web-vue2/./src/TUIRoom/components/Chat/MessageList/MessageListPC.vue?991a","webpack://room-uikit-web-vue2/./src/TUIRoom/components/Chat/MessageList/MessageListPC.vue?0030","webpack://room-uikit-web-vue2/./src/TUIRoom/components/Chat/MessageList/index.ts","webpack://room-uikit-web-vue2/./src/TUIRoom/components/Chat/ChatEditor/ChatEditorH5.vue","webpack://room-uikit-web-vue2/./src/TUIRoom/components/Chat/EditorTools/emojiPC.vue","webpack://room-uikit-web-vue2/./src/TUIRoom/components/Chat/EditorTools/emojiPC.vue?089d","webpack://room-uikit-web-vue2/./src/TUIRoom/components/Chat/EditorTools/emojiPC.vue?ae8b","webpack://room-uikit-web-vue2/./src/TUIRoom/components/Chat/EditorTools/emojiPC.vue?be5c","webpack://room-uikit-web-vue2/./src/TUIRoom/components/Chat/EditorTools/index.ts","webpack://room-uikit-web-vue2/./src/TUIRoom/components/Chat/ChatEditor/useChatEditor.ts","webpack://room-uikit-web-vue2/./src/TUIRoom/components/Chat/ChatEditor/ChatEditorH5.vue?bde9","webpack://room-uikit-web-vue2/./src/TUIRoom/components/Chat/ChatEditor/ChatEditorH5.vue?01f5","webpack://room-uikit-web-vue2/./src/TUIRoom/components/Chat/ChatEditor/ChatEditorH5.vue?17d6","webpack://room-uikit-web-vue2/./src/TUIRoom/components/Chat/ChatEditor/ChatEditorPC.vue","webpack://room-uikit-web-vue2/./src/TUIRoom/components/Chat/ChatEditor/ChatEditorPC.vue?4752","webpack://room-uikit-web-vue2/./src/TUIRoom/components/Chat/ChatEditor/ChatEditorPC.vue?bdf9","webpack://room-uikit-web-vue2/./src/TUIRoom/components/Chat/ChatEditor/ChatEditorPC.vue?e234","webpack://room-uikit-web-vue2/./src/TUIRoom/components/Chat/ChatEditor/index.ts","webpack://room-uikit-web-vue2/./src/TUIRoom/components/Chat/index.vue?0984","webpack://room-uikit-web-vue2/./src/TUIRoom/components/Chat/index.vue?7024","webpack://room-uikit-web-vue2/./src/TUIRoom/components/Chat/index.vue?f5be","webpack://room-uikit-web-vue2/./src/TUIRoom/components/ManageMember/indexH5.vue","webpack://room-uikit-web-vue2/./src/TUIRoom/components/ManageMember/MemberItem/indexH5.vue","webpack://room-uikit-web-vue2/./src/TUIRoom/components/ManageMember/MemberItemCommon/MemberInfo.vue","webpack://room-uikit-web-vue2/./src/TUIRoom/components/ManageMember/MemberItemCommon/MemberInfo.vue?7492","webpack://room-uikit-web-vue2/./src/TUIRoom/components/ManageMember/MemberItemCommon/MemberInfo.vue?0cc4","webpack://room-uikit-web-vue2/./src/TUIRoom/components/ManageMember/MemberItemCommon/MemberInfo.vue?e7ae","webpack://room-uikit-web-vue2/./src/TUIRoom/components/ManageMember/MemberControl/MemberControlH5.vue","webpack://room-uikit-web-vue2/./src/TUIRoom/components/ManageMember/MemberControl/MemberControlH5.vue?59b9","webpack://room-uikit-web-vue2/./src/TUIRoom/components/ManageMember/MemberControl/MemberControlH5.vue?0f23","webpack://room-uikit-web-vue2/./src/TUIRoom/components/ManageMember/MemberControl/MemberControlH5.vue?d177","webpack://room-uikit-web-vue2/./src/TUIRoom/components/ManageMember/MemberControl/MemberControlPC.vue","webpack://room-uikit-web-vue2/./src/TUIRoom/components/ManageMember/MemberControl/MemberControlPC.vue?b213","webpack://room-uikit-web-vue2/./src/TUIRoom/components/ManageMember/MemberControl/MemberControlPC.vue?fdce","webpack://room-uikit-web-vue2/./src/TUIRoom/components/ManageMember/MemberControl/MemberControlPC.vue?6c23","webpack://room-uikit-web-vue2/./src/TUIRoom/components/ManageMember/MemberControl/index.ts","webpack://room-uikit-web-vue2/./src/TUIRoom/components/ManageMember/MemberItem/useMemberItemHooks.ts","webpack://room-uikit-web-vue2/./src/TUIRoom/components/ManageMember/MemberItem/indexH5.vue?afd5","webpack://room-uikit-web-vue2/./src/TUIRoom/components/ManageMember/MemberItem/indexH5.vue?141f","webpack://room-uikit-web-vue2/./src/TUIRoom/components/ManageMember/MemberItem/indexH5.vue?a143","webpack://room-uikit-web-vue2/./src/TUIRoom/components/ManageMember/MemberItem/indexPC.vue","webpack://room-uikit-web-vue2/./src/TUIRoom/components/ManageMember/MemberItem/indexPC.vue?84bc","webpack://room-uikit-web-vue2/./src/TUIRoom/components/ManageMember/MemberItem/indexPC.vue?6350","webpack://room-uikit-web-vue2/./src/TUIRoom/components/ManageMember/MemberItem/indexPC.vue?75ec","webpack://room-uikit-web-vue2/./src/TUIRoom/components/ManageMember/MemberItem/index.ts","webpack://room-uikit-web-vue2/./src/TUIRoom/components/ManageMember/useIndexHooks.ts","webpack://room-uikit-web-vue2/./src/TUIRoom/components/ManageMember/indexH5.vue?fe5a","webpack://room-uikit-web-vue2/./src/TUIRoom/components/ManageMember/indexH5.vue?e9a0","webpack://room-uikit-web-vue2/./src/TUIRoom/components/ManageMember/indexH5.vue?f007","webpack://room-uikit-web-vue2/./src/TUIRoom/components/ManageMember/indexPC.vue","webpack://room-uikit-web-vue2/./src/TUIRoom/components/ManageMember/indexPC.vue?a28f","webpack://room-uikit-web-vue2/./src/TUIRoom/components/ManageMember/indexPC.vue?93c0","webpack://room-uikit-web-vue2/./src/TUIRoom/components/ManageMember/indexPC.vue?ae45","webpack://room-uikit-web-vue2/./src/TUIRoom/components/ManageMember/index.ts","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomSidebar/useSideBarHooks.ts","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomSidebar/indexH5.vue?f836","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomSidebar/indexH5.vue?a74f","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomSidebar/indexH5.vue?6e7f","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomSidebar/indexPC.vue","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomSidebar/indexPC.vue?0b6b","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomSidebar/indexPC.vue?21a5","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomSidebar/indexPC.vue?5cb4","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomSidebar/index.ts","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomContent/index.vue","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomContent/StreamContainer/StreamContainerH5.vue","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomContent/StreamRegion/StreamRegionH5.vue","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomContent/StreamRegion/StreamRegionH5.vue?f09a","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomContent/StreamRegion/StreamRegionH5.vue?778c","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomContent/StreamRegion/StreamRegionH5.vue?1ed6","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomContent/StreamRegion/StreamRegionPC.vue","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomContent/StreamRegion/StreamRegionPC.vue?cdda","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomContent/StreamRegion/StreamRegionPC.vue?5158","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomContent/StreamRegion/StreamRegionPC.vue?4bf6","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomContent/StreamRegion/index.ts","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomContent/StreamContainer/useStreamContainerHooks.ts","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomContent/StreamContainer/StreamContainerH5.vue?a31d","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomContent/StreamContainer/StreamContainerH5.vue?8cfa","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomContent/StreamContainer/StreamContainerH5.vue?314a","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomContent/StreamContainer/StreamContainerPC.vue","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomContent/StreamContainer/StreamContainerPC.vue?8b21","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomContent/StreamContainer/StreamContainerPC.vue?fa3f","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomContent/StreamContainer/StreamContainerPC.vue?d1ca","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomContent/StreamContainer/index.ts","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomContent/index.vue?d860","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomContent/index.vue?5dec","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomContent/index.vue?cefb","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomSetting/index.vue","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomSetting/index.vue?f674","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomSetting/index.vue?4dca","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomSetting/index.vue?0aa0","webpack://room-uikit-web-vue2/./src/TUIRoom/index.vue?79c8","webpack://room-uikit-web-vue2/./src/TUIRoom/index.vue?6095","webpack://room-uikit-web-vue2/./src/TUIRoom/index.vue?77e3","webpack://room-uikit-web-vue2/src/views/room.vue","webpack://room-uikit-web-vue2/./src/views/room.vue?6a10","webpack://room-uikit-web-vue2/./src/views/room.vue?14d2"],"sourcesContent":["var render = function render(){var _vm=this,_c=_vm._self._c;return _c('room-container',{ref:\"TUIRoomRef\",on:{\"on-log-out\":_vm.handleLogOut,\"on-create-room\":_vm.onCreateRoom,\"on-enter-room\":_vm.onEnterRoom,\"on-exit-room\":_vm.onExitRoom,\"on-destroy-room\":_vm.onDestroyRoom,\"on-kicked-out-of-room\":_vm.onKickedOutOfRoom,\"on-kick-off-line\":_vm.onKickedOffLine,\"on-user-sig-expired\":_vm.onUserSigExpired}})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","'use strict';\n\nexport default function bind(fn, thisArg) {\n return function wrap() {\n return fn.apply(thisArg, arguments);\n };\n}\n","'use strict';\n\nimport bind from './helpers/bind.js';\n\n// utils is a library of generic helper functions non-specific to axios\n\nconst {toString} = Object.prototype;\nconst {getPrototypeOf} = Object;\n\nconst kindOf = (cache => thing => {\n const str = toString.call(thing);\n return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n})(Object.create(null));\n\nconst kindOfTest = (type) => {\n type = type.toLowerCase();\n return (thing) => kindOf(thing) === type\n}\n\nconst typeOfTest = type => thing => typeof thing === type;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n *\n * @returns {boolean} True if value is an Array, otherwise false\n */\nconst {isArray} = Array;\n\n/**\n * Determine if a value is undefined\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nconst isUndefined = typeOfTest('undefined');\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && isFunction(val.constructor.isBuffer) && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nconst isArrayBuffer = kindOfTest('ArrayBuffer');\n\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n let result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a String, otherwise false\n */\nconst isString = typeOfTest('string');\n\n/**\n * Determine if a value is a Function\n *\n * @param {*} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nconst isFunction = typeOfTest('function');\n\n/**\n * Determine if a value is a Number\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Number, otherwise false\n */\nconst isNumber = typeOfTest('number');\n\n/**\n * Determine if a value is an Object\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an Object, otherwise false\n */\nconst isObject = (thing) => thing !== null && typeof thing === 'object';\n\n/**\n * Determine if a value is a Boolean\n *\n * @param {*} thing The value to test\n * @returns {boolean} True if value is a Boolean, otherwise false\n */\nconst isBoolean = thing => thing === true || thing === false;\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a plain Object, otherwise false\n */\nconst isPlainObject = (val) => {\n if (kindOf(val) !== 'object') {\n return false;\n }\n\n const prototype = getPrototypeOf(val);\n return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in val) && !(Symbol.iterator in val);\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Date, otherwise false\n */\nconst isDate = kindOfTest('Date');\n\n/**\n * Determine if a value is a File\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFile = kindOfTest('File');\n\n/**\n * Determine if a value is a Blob\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nconst isBlob = kindOfTest('Blob');\n\n/**\n * Determine if a value is a FileList\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFileList = kindOfTest('FileList');\n\n/**\n * Determine if a value is a Stream\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nconst isStream = (val) => isObject(val) && isFunction(val.pipe);\n\n/**\n * Determine if a value is a FormData\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nconst isFormData = (thing) => {\n let kind;\n return thing && (\n (typeof FormData === 'function' && thing instanceof FormData) || (\n isFunction(thing.append) && (\n (kind = kindOf(thing)) === 'formdata' ||\n // detect form-data instance\n (kind === 'object' && isFunction(thing.toString) && thing.toString() === '[object FormData]')\n )\n )\n )\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nconst isURLSearchParams = kindOfTest('URLSearchParams');\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n *\n * @returns {String} The String freed of excess whitespace\n */\nconst trim = (str) => str.trim ?\n str.trim() : str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n *\n * @param {Boolean} [allOwnKeys = false]\n * @returns {any}\n */\nfunction forEach(obj, fn, {allOwnKeys = false} = {}) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n let i;\n let l;\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj);\n const len = keys.length;\n let key;\n\n for (i = 0; i < len; i++) {\n key = keys[i];\n fn.call(null, obj[key], key, obj);\n }\n }\n}\n\nfunction findKey(obj, key) {\n key = key.toLowerCase();\n const keys = Object.keys(obj);\n let i = keys.length;\n let _key;\n while (i-- > 0) {\n _key = keys[i];\n if (key === _key.toLowerCase()) {\n return _key;\n }\n }\n return null;\n}\n\nconst _global = (() => {\n /*eslint no-undef:0*/\n if (typeof globalThis !== \"undefined\") return globalThis;\n return typeof self !== \"undefined\" ? self : (typeof window !== 'undefined' ? window : global)\n})();\n\nconst isContextDefined = (context) => !isUndefined(context) && context !== _global;\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n *\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n const {caseless} = isContextDefined(this) && this || {};\n const result = {};\n const assignValue = (val, key) => {\n const targetKey = caseless && findKey(result, key) || key;\n if (isPlainObject(result[targetKey]) && isPlainObject(val)) {\n result[targetKey] = merge(result[targetKey], val);\n } else if (isPlainObject(val)) {\n result[targetKey] = merge({}, val);\n } else if (isArray(val)) {\n result[targetKey] = val.slice();\n } else {\n result[targetKey] = val;\n }\n }\n\n for (let i = 0, l = arguments.length; i < l; i++) {\n arguments[i] && forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n *\n * @param {Boolean} [allOwnKeys]\n * @returns {Object} The resulting value of object a\n */\nconst extend = (a, b, thisArg, {allOwnKeys}= {}) => {\n forEach(b, (val, key) => {\n if (thisArg && isFunction(val)) {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n }, {allOwnKeys});\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n *\n * @returns {string} content value without BOM\n */\nconst stripBOM = (content) => {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\n/**\n * Inherit the prototype methods from one constructor into another\n * @param {function} constructor\n * @param {function} superConstructor\n * @param {object} [props]\n * @param {object} [descriptors]\n *\n * @returns {void}\n */\nconst inherits = (constructor, superConstructor, props, descriptors) => {\n constructor.prototype = Object.create(superConstructor.prototype, descriptors);\n constructor.prototype.constructor = constructor;\n Object.defineProperty(constructor, 'super', {\n value: superConstructor.prototype\n });\n props && Object.assign(constructor.prototype, props);\n}\n\n/**\n * Resolve object with deep prototype chain to a flat object\n * @param {Object} sourceObj source object\n * @param {Object} [destObj]\n * @param {Function|Boolean} [filter]\n * @param {Function} [propFilter]\n *\n * @returns {Object}\n */\nconst toFlatObject = (sourceObj, destObj, filter, propFilter) => {\n let props;\n let i;\n let prop;\n const merged = {};\n\n destObj = destObj || {};\n // eslint-disable-next-line no-eq-null,eqeqeq\n if (sourceObj == null) return destObj;\n\n do {\n props = Object.getOwnPropertyNames(sourceObj);\n i = props.length;\n while (i-- > 0) {\n prop = props[i];\n if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) {\n destObj[prop] = sourceObj[prop];\n merged[prop] = true;\n }\n }\n sourceObj = filter !== false && getPrototypeOf(sourceObj);\n } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);\n\n return destObj;\n}\n\n/**\n * Determines whether a string ends with the characters of a specified string\n *\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n *\n * @returns {boolean}\n */\nconst endsWith = (str, searchString, position) => {\n str = String(str);\n if (position === undefined || position > str.length) {\n position = str.length;\n }\n position -= searchString.length;\n const lastIndex = str.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n}\n\n\n/**\n * Returns new array from array like object or null if failed\n *\n * @param {*} [thing]\n *\n * @returns {?Array}\n */\nconst toArray = (thing) => {\n if (!thing) return null;\n if (isArray(thing)) return thing;\n let i = thing.length;\n if (!isNumber(i)) return null;\n const arr = new Array(i);\n while (i-- > 0) {\n arr[i] = thing[i];\n }\n return arr;\n}\n\n/**\n * Checking if the Uint8Array exists and if it does, it returns a function that checks if the\n * thing passed in is an instance of Uint8Array\n *\n * @param {TypedArray}\n *\n * @returns {Array}\n */\n// eslint-disable-next-line func-names\nconst isTypedArray = (TypedArray => {\n // eslint-disable-next-line func-names\n return thing => {\n return TypedArray && thing instanceof TypedArray;\n };\n})(typeof Uint8Array !== 'undefined' && getPrototypeOf(Uint8Array));\n\n/**\n * For each entry in the object, call the function with the key and value.\n *\n * @param {Object} obj - The object to iterate over.\n * @param {Function} fn - The function to call for each entry.\n *\n * @returns {void}\n */\nconst forEachEntry = (obj, fn) => {\n const generator = obj && obj[Symbol.iterator];\n\n const iterator = generator.call(obj);\n\n let result;\n\n while ((result = iterator.next()) && !result.done) {\n const pair = result.value;\n fn.call(obj, pair[0], pair[1]);\n }\n}\n\n/**\n * It takes a regular expression and a string, and returns an array of all the matches\n *\n * @param {string} regExp - The regular expression to match against.\n * @param {string} str - The string to search.\n *\n * @returns {Array}\n */\nconst matchAll = (regExp, str) => {\n let matches;\n const arr = [];\n\n while ((matches = regExp.exec(str)) !== null) {\n arr.push(matches);\n }\n\n return arr;\n}\n\n/* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */\nconst isHTMLForm = kindOfTest('HTMLFormElement');\n\nconst toCamelCase = str => {\n return str.toLowerCase().replace(/[-_\\s]([a-z\\d])(\\w*)/g,\n function replacer(m, p1, p2) {\n return p1.toUpperCase() + p2;\n }\n );\n};\n\n/* Creating a function that will check if an object has a property. */\nconst hasOwnProperty = (({hasOwnProperty}) => (obj, prop) => hasOwnProperty.call(obj, prop))(Object.prototype);\n\n/**\n * Determine if a value is a RegExp object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a RegExp object, otherwise false\n */\nconst isRegExp = kindOfTest('RegExp');\n\nconst reduceDescriptors = (obj, reducer) => {\n const descriptors = Object.getOwnPropertyDescriptors(obj);\n const reducedDescriptors = {};\n\n forEach(descriptors, (descriptor, name) => {\n let ret;\n if ((ret = reducer(descriptor, name, obj)) !== false) {\n reducedDescriptors[name] = ret || descriptor;\n }\n });\n\n Object.defineProperties(obj, reducedDescriptors);\n}\n\n/**\n * Makes all methods read-only\n * @param {Object} obj\n */\n\nconst freezeMethods = (obj) => {\n reduceDescriptors(obj, (descriptor, name) => {\n // skip restricted props in strict mode\n if (isFunction(obj) && ['arguments', 'caller', 'callee'].indexOf(name) !== -1) {\n return false;\n }\n\n const value = obj[name];\n\n if (!isFunction(value)) return;\n\n descriptor.enumerable = false;\n\n if ('writable' in descriptor) {\n descriptor.writable = false;\n return;\n }\n\n if (!descriptor.set) {\n descriptor.set = () => {\n throw Error('Can not rewrite read-only method \\'' + name + '\\'');\n };\n }\n });\n}\n\nconst toObjectSet = (arrayOrString, delimiter) => {\n const obj = {};\n\n const define = (arr) => {\n arr.forEach(value => {\n obj[value] = true;\n });\n }\n\n isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter));\n\n return obj;\n}\n\nconst noop = () => {}\n\nconst toFiniteNumber = (value, defaultValue) => {\n value = +value;\n return Number.isFinite(value) ? value : defaultValue;\n}\n\nconst ALPHA = 'abcdefghijklmnopqrstuvwxyz'\n\nconst DIGIT = '0123456789';\n\nconst ALPHABET = {\n DIGIT,\n ALPHA,\n ALPHA_DIGIT: ALPHA + ALPHA.toUpperCase() + DIGIT\n}\n\nconst generateString = (size = 16, alphabet = ALPHABET.ALPHA_DIGIT) => {\n let str = '';\n const {length} = alphabet;\n while (size--) {\n str += alphabet[Math.random() * length|0]\n }\n\n return str;\n}\n\n/**\n * If the thing is a FormData object, return true, otherwise return false.\n *\n * @param {unknown} thing - The thing to check.\n *\n * @returns {boolean}\n */\nfunction isSpecCompliantForm(thing) {\n return !!(thing && isFunction(thing.append) && thing[Symbol.toStringTag] === 'FormData' && thing[Symbol.iterator]);\n}\n\nconst toJSONObject = (obj) => {\n const stack = new Array(10);\n\n const visit = (source, i) => {\n\n if (isObject(source)) {\n if (stack.indexOf(source) >= 0) {\n return;\n }\n\n if(!('toJSON' in source)) {\n stack[i] = source;\n const target = isArray(source) ? [] : {};\n\n forEach(source, (value, key) => {\n const reducedValue = visit(value, i + 1);\n !isUndefined(reducedValue) && (target[key] = reducedValue);\n });\n\n stack[i] = undefined;\n\n return target;\n }\n }\n\n return source;\n }\n\n return visit(obj, 0);\n}\n\nconst isAsyncFn = kindOfTest('AsyncFunction');\n\nconst isThenable = (thing) =>\n thing && (isObject(thing) || isFunction(thing)) && isFunction(thing.then) && isFunction(thing.catch);\n\nexport default {\n isArray,\n isArrayBuffer,\n isBuffer,\n isFormData,\n isArrayBufferView,\n isString,\n isNumber,\n isBoolean,\n isObject,\n isPlainObject,\n isUndefined,\n isDate,\n isFile,\n isBlob,\n isRegExp,\n isFunction,\n isStream,\n isURLSearchParams,\n isTypedArray,\n isFileList,\n forEach,\n merge,\n extend,\n trim,\n stripBOM,\n inherits,\n toFlatObject,\n kindOf,\n kindOfTest,\n endsWith,\n toArray,\n forEachEntry,\n matchAll,\n isHTMLForm,\n hasOwnProperty,\n hasOwnProp: hasOwnProperty, // an alias to avoid ESLint no-prototype-builtins detection\n reduceDescriptors,\n freezeMethods,\n toObjectSet,\n toCamelCase,\n noop,\n toFiniteNumber,\n findKey,\n global: _global,\n isContextDefined,\n ALPHABET,\n generateString,\n isSpecCompliantForm,\n toJSONObject,\n isAsyncFn,\n isThenable\n};\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [config] The config.\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n *\n * @returns {Error} The created error.\n */\nfunction AxiosError(message, code, config, request, response) {\n Error.call(this);\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n } else {\n this.stack = (new Error()).stack;\n }\n\n this.message = message;\n this.name = 'AxiosError';\n code && (this.code = code);\n config && (this.config = config);\n request && (this.request = request);\n response && (this.response = response);\n}\n\nutils.inherits(AxiosError, Error, {\n toJSON: function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: utils.toJSONObject(this.config),\n code: this.code,\n status: this.response && this.response.status ? this.response.status : null\n };\n }\n});\n\nconst prototype = AxiosError.prototype;\nconst descriptors = {};\n\n[\n 'ERR_BAD_OPTION_VALUE',\n 'ERR_BAD_OPTION',\n 'ECONNABORTED',\n 'ETIMEDOUT',\n 'ERR_NETWORK',\n 'ERR_FR_TOO_MANY_REDIRECTS',\n 'ERR_DEPRECATED',\n 'ERR_BAD_RESPONSE',\n 'ERR_BAD_REQUEST',\n 'ERR_CANCELED',\n 'ERR_NOT_SUPPORT',\n 'ERR_INVALID_URL'\n// eslint-disable-next-line func-names\n].forEach(code => {\n descriptors[code] = {value: code};\n});\n\nObject.defineProperties(AxiosError, descriptors);\nObject.defineProperty(prototype, 'isAxiosError', {value: true});\n\n// eslint-disable-next-line func-names\nAxiosError.from = (error, code, config, request, response, customProps) => {\n const axiosError = Object.create(prototype);\n\n utils.toFlatObject(error, axiosError, function filter(obj) {\n return obj !== Error.prototype;\n }, prop => {\n return prop !== 'isAxiosError';\n });\n\n AxiosError.call(axiosError, error.message, code, config, request, response);\n\n axiosError.cause = error;\n\n axiosError.name = error.name;\n\n customProps && Object.assign(axiosError, customProps);\n\n return axiosError;\n};\n\nexport default AxiosError;\n","// eslint-disable-next-line strict\nexport default null;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\n// temporary hotfix to avoid circular references until AxiosURLSearchParams is refactored\nimport PlatformFormData from '../platform/node/classes/FormData.js';\n\n/**\n * Determines if the given thing is a array or js object.\n *\n * @param {string} thing - The object or array to be visited.\n *\n * @returns {boolean}\n */\nfunction isVisitable(thing) {\n return utils.isPlainObject(thing) || utils.isArray(thing);\n}\n\n/**\n * It removes the brackets from the end of a string\n *\n * @param {string} key - The key of the parameter.\n *\n * @returns {string} the key without the brackets.\n */\nfunction removeBrackets(key) {\n return utils.endsWith(key, '[]') ? key.slice(0, -2) : key;\n}\n\n/**\n * It takes a path, a key, and a boolean, and returns a string\n *\n * @param {string} path - The path to the current key.\n * @param {string} key - The key of the current object being iterated over.\n * @param {string} dots - If true, the key will be rendered with dots instead of brackets.\n *\n * @returns {string} The path to the current key.\n */\nfunction renderKey(path, key, dots) {\n if (!path) return key;\n return path.concat(key).map(function each(token, i) {\n // eslint-disable-next-line no-param-reassign\n token = removeBrackets(token);\n return !dots && i ? '[' + token + ']' : token;\n }).join(dots ? '.' : '');\n}\n\n/**\n * If the array is an array and none of its elements are visitable, then it's a flat array.\n *\n * @param {Array} arr - The array to check\n *\n * @returns {boolean}\n */\nfunction isFlatArray(arr) {\n return utils.isArray(arr) && !arr.some(isVisitable);\n}\n\nconst predicates = utils.toFlatObject(utils, {}, null, function filter(prop) {\n return /^is[A-Z]/.test(prop);\n});\n\n/**\n * Convert a data object to FormData\n *\n * @param {Object} obj\n * @param {?Object} [formData]\n * @param {?Object} [options]\n * @param {Function} [options.visitor]\n * @param {Boolean} [options.metaTokens = true]\n * @param {Boolean} [options.dots = false]\n * @param {?Boolean} [options.indexes = false]\n *\n * @returns {Object}\n **/\n\n/**\n * It converts an object into a FormData object\n *\n * @param {Object} obj - The object to convert to form data.\n * @param {string} formData - The FormData object to append to.\n * @param {Object} options\n *\n * @returns\n */\nfunction toFormData(obj, formData, options) {\n if (!utils.isObject(obj)) {\n throw new TypeError('target must be an object');\n }\n\n // eslint-disable-next-line no-param-reassign\n formData = formData || new (PlatformFormData || FormData)();\n\n // eslint-disable-next-line no-param-reassign\n options = utils.toFlatObject(options, {\n metaTokens: true,\n dots: false,\n indexes: false\n }, false, function defined(option, source) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n return !utils.isUndefined(source[option]);\n });\n\n const metaTokens = options.metaTokens;\n // eslint-disable-next-line no-use-before-define\n const visitor = options.visitor || defaultVisitor;\n const dots = options.dots;\n const indexes = options.indexes;\n const _Blob = options.Blob || typeof Blob !== 'undefined' && Blob;\n const useBlob = _Blob && utils.isSpecCompliantForm(formData);\n\n if (!utils.isFunction(visitor)) {\n throw new TypeError('visitor must be a function');\n }\n\n function convertValue(value) {\n if (value === null) return '';\n\n if (utils.isDate(value)) {\n return value.toISOString();\n }\n\n if (!useBlob && utils.isBlob(value)) {\n throw new AxiosError('Blob is not supported. Use a Buffer instead.');\n }\n\n if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) {\n return useBlob && typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);\n }\n\n return value;\n }\n\n /**\n * Default visitor.\n *\n * @param {*} value\n * @param {String|Number} key\n * @param {Array} path\n * @this {FormData}\n *\n * @returns {boolean} return true to visit the each prop of the value recursively\n */\n function defaultVisitor(value, key, path) {\n let arr = value;\n\n if (value && !path && typeof value === 'object') {\n if (utils.endsWith(key, '{}')) {\n // eslint-disable-next-line no-param-reassign\n key = metaTokens ? key : key.slice(0, -2);\n // eslint-disable-next-line no-param-reassign\n value = JSON.stringify(value);\n } else if (\n (utils.isArray(value) && isFlatArray(value)) ||\n ((utils.isFileList(value) || utils.endsWith(key, '[]')) && (arr = utils.toArray(value))\n )) {\n // eslint-disable-next-line no-param-reassign\n key = removeBrackets(key);\n\n arr.forEach(function each(el, index) {\n !(utils.isUndefined(el) || el === null) && formData.append(\n // eslint-disable-next-line no-nested-ternary\n indexes === true ? renderKey([key], index, dots) : (indexes === null ? key : key + '[]'),\n convertValue(el)\n );\n });\n return false;\n }\n }\n\n if (isVisitable(value)) {\n return true;\n }\n\n formData.append(renderKey(path, key, dots), convertValue(value));\n\n return false;\n }\n\n const stack = [];\n\n const exposedHelpers = Object.assign(predicates, {\n defaultVisitor,\n convertValue,\n isVisitable\n });\n\n function build(value, path) {\n if (utils.isUndefined(value)) return;\n\n if (stack.indexOf(value) !== -1) {\n throw Error('Circular reference detected in ' + path.join('.'));\n }\n\n stack.push(value);\n\n utils.forEach(value, function each(el, key) {\n const result = !(utils.isUndefined(el) || el === null) && visitor.call(\n formData, el, utils.isString(key) ? key.trim() : key, path, exposedHelpers\n );\n\n if (result === true) {\n build(el, path ? path.concat(key) : [key]);\n }\n });\n\n stack.pop();\n }\n\n if (!utils.isObject(obj)) {\n throw new TypeError('data must be an object');\n }\n\n build(obj);\n\n return formData;\n}\n\nexport default toFormData;\n","'use strict';\n\nimport toFormData from './toFormData.js';\n\n/**\n * It encodes a string by replacing all characters that are not in the unreserved set with\n * their percent-encoded equivalents\n *\n * @param {string} str - The string to encode.\n *\n * @returns {string} The encoded string.\n */\nfunction encode(str) {\n const charMap = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+',\n '%00': '\\x00'\n };\n return encodeURIComponent(str).replace(/[!'()~]|%20|%00/g, function replacer(match) {\n return charMap[match];\n });\n}\n\n/**\n * It takes a params object and converts it to a FormData object\n *\n * @param {Object} params - The parameters to be converted to a FormData object.\n * @param {Object} options - The options object passed to the Axios constructor.\n *\n * @returns {void}\n */\nfunction AxiosURLSearchParams(params, options) {\n this._pairs = [];\n\n params && toFormData(params, this, options);\n}\n\nconst prototype = AxiosURLSearchParams.prototype;\n\nprototype.append = function append(name, value) {\n this._pairs.push([name, value]);\n};\n\nprototype.toString = function toString(encoder) {\n const _encode = encoder ? function(value) {\n return encoder.call(this, value, encode);\n } : encode;\n\n return this._pairs.map(function each(pair) {\n return _encode(pair[0]) + '=' + _encode(pair[1]);\n }, '').join('&');\n};\n\nexport default AxiosURLSearchParams;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosURLSearchParams from '../helpers/AxiosURLSearchParams.js';\n\n/**\n * It replaces all instances of the characters `:`, `$`, `,`, `+`, `[`, and `]` with their\n * URI encoded counterparts\n *\n * @param {string} val The value to be encoded.\n *\n * @returns {string} The encoded value.\n */\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @param {?object} options\n *\n * @returns {string} The formatted url\n */\nexport default function buildURL(url, params, options) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n \n const _encode = options && options.encode || encode;\n\n const serializeFn = options && options.serialize;\n\n let serializedParams;\n\n if (serializeFn) {\n serializedParams = serializeFn(params, options);\n } else {\n serializedParams = utils.isURLSearchParams(params) ?\n params.toString() :\n new AxiosURLSearchParams(params, options).toString(_encode);\n }\n\n if (serializedParams) {\n const hashmarkIndex = url.indexOf(\"#\");\n\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\nclass InterceptorManager {\n constructor() {\n this.handlers = [];\n }\n\n /**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\n use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled,\n rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n }\n\n /**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n *\n * @returns {Boolean} `true` if the interceptor was removed, `false` otherwise\n */\n eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n }\n\n /**\n * Clear all interceptors from the stack\n *\n * @returns {void}\n */\n clear() {\n if (this.handlers) {\n this.handlers = [];\n }\n }\n\n /**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n *\n * @returns {void}\n */\n forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n }\n}\n\nexport default InterceptorManager;\n","'use strict';\n\nexport default {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n};\n","'use strict';\n\nimport AxiosURLSearchParams from '../../../helpers/AxiosURLSearchParams.js';\nexport default typeof URLSearchParams !== 'undefined' ? URLSearchParams : AxiosURLSearchParams;\n","'use strict';\n\nexport default typeof FormData !== 'undefined' ? FormData : null;\n","'use strict'\n\nexport default typeof Blob !== 'undefined' ? Blob : null\n","import URLSearchParams from './classes/URLSearchParams.js'\nimport FormData from './classes/FormData.js'\nimport Blob from './classes/Blob.js'\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n *\n * @returns {boolean}\n */\nconst isStandardBrowserEnv = (() => {\n let product;\n if (typeof navigator !== 'undefined' && (\n (product = navigator.product) === 'ReactNative' ||\n product === 'NativeScript' ||\n product === 'NS')\n ) {\n return false;\n }\n\n return typeof window !== 'undefined' && typeof document !== 'undefined';\n})();\n\n/**\n * Determine if we're running in a standard browser webWorker environment\n *\n * Although the `isStandardBrowserEnv` method indicates that\n * `allows axios to run in a web worker`, the WebWorker will still be\n * filtered out due to its judgment standard\n * `typeof window !== 'undefined' && typeof document !== 'undefined'`.\n * This leads to a problem when axios post `FormData` in webWorker\n */\n const isStandardBrowserWebWorkerEnv = (() => {\n return (\n typeof WorkerGlobalScope !== 'undefined' &&\n // eslint-disable-next-line no-undef\n self instanceof WorkerGlobalScope &&\n typeof self.importScripts === 'function'\n );\n})();\n\n\nexport default {\n isBrowser: true,\n classes: {\n URLSearchParams,\n FormData,\n Blob\n },\n isStandardBrowserEnv,\n isStandardBrowserWebWorkerEnv,\n protocols: ['http', 'https', 'file', 'blob', 'url', 'data']\n};\n","'use strict';\n\nimport utils from '../utils.js';\nimport toFormData from './toFormData.js';\nimport platform from '../platform/index.js';\n\nexport default function toURLEncodedForm(data, options) {\n return toFormData(data, new platform.classes.URLSearchParams(), Object.assign({\n visitor: function(value, key, path, helpers) {\n if (platform.isNode && utils.isBuffer(value)) {\n this.append(key, value.toString('base64'));\n return false;\n }\n\n return helpers.defaultVisitor.apply(this, arguments);\n }\n }, options));\n}\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z']\n *\n * @param {string} name - The name of the property to get.\n *\n * @returns An array of strings.\n */\nfunction parsePropPath(name) {\n // foo[x][y][z]\n // foo.x.y.z\n // foo-x-y-z\n // foo x y z\n return utils.matchAll(/\\w+|\\[(\\w*)]/g, name).map(match => {\n return match[0] === '[]' ? '' : match[1] || match[0];\n });\n}\n\n/**\n * Convert an array to an object.\n *\n * @param {Array} arr - The array to convert to an object.\n *\n * @returns An object with the same keys and values as the array.\n */\nfunction arrayToObject(arr) {\n const obj = {};\n const keys = Object.keys(arr);\n let i;\n const len = keys.length;\n let key;\n for (i = 0; i < len; i++) {\n key = keys[i];\n obj[key] = arr[key];\n }\n return obj;\n}\n\n/**\n * It takes a FormData object and returns a JavaScript object\n *\n * @param {string} formData The FormData object to convert to JSON.\n *\n * @returns {Object | null} The converted object.\n */\nfunction formDataToJSON(formData) {\n function buildPath(path, value, target, index) {\n let name = path[index++];\n const isNumericKey = Number.isFinite(+name);\n const isLast = index >= path.length;\n name = !name && utils.isArray(target) ? target.length : name;\n\n if (isLast) {\n if (utils.hasOwnProp(target, name)) {\n target[name] = [target[name], value];\n } else {\n target[name] = value;\n }\n\n return !isNumericKey;\n }\n\n if (!target[name] || !utils.isObject(target[name])) {\n target[name] = [];\n }\n\n const result = buildPath(path, value, target[name], index);\n\n if (result && utils.isArray(target[name])) {\n target[name] = arrayToObject(target[name]);\n }\n\n return !isNumericKey;\n }\n\n if (utils.isFormData(formData) && utils.isFunction(formData.entries)) {\n const obj = {};\n\n utils.forEachEntry(formData, (name, value) => {\n buildPath(parsePropPath(name), value, obj, 0);\n });\n\n return obj;\n }\n\n return null;\n}\n\nexport default formDataToJSON;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\nimport transitionalDefaults from './transitional.js';\nimport toFormData from '../helpers/toFormData.js';\nimport toURLEncodedForm from '../helpers/toURLEncodedForm.js';\nimport platform from '../platform/index.js';\nimport formDataToJSON from '../helpers/formDataToJSON.js';\n\n/**\n * It takes a string, tries to parse it, and if it fails, it returns the stringified version\n * of the input\n *\n * @param {any} rawValue - The value to be stringified.\n * @param {Function} parser - A function that parses a string into a JavaScript object.\n * @param {Function} encoder - A function that takes a value and returns a string.\n *\n * @returns {string} A stringified version of the rawValue.\n */\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nconst defaults = {\n\n transitional: transitionalDefaults,\n\n adapter: ['xhr', 'http'],\n\n transformRequest: [function transformRequest(data, headers) {\n const contentType = headers.getContentType() || '';\n const hasJSONContentType = contentType.indexOf('application/json') > -1;\n const isObjectPayload = utils.isObject(data);\n\n if (isObjectPayload && utils.isHTMLForm(data)) {\n data = new FormData(data);\n }\n\n const isFormData = utils.isFormData(data);\n\n if (isFormData) {\n if (!hasJSONContentType) {\n return data;\n }\n return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data;\n }\n\n if (utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n headers.setContentType('application/x-www-form-urlencoded;charset=utf-8', false);\n return data.toString();\n }\n\n let isFileList;\n\n if (isObjectPayload) {\n if (contentType.indexOf('application/x-www-form-urlencoded') > -1) {\n return toURLEncodedForm(data, this.formSerializer).toString();\n }\n\n if ((isFileList = utils.isFileList(data)) || contentType.indexOf('multipart/form-data') > -1) {\n const _FormData = this.env && this.env.FormData;\n\n return toFormData(\n isFileList ? {'files[]': data} : data,\n _FormData && new _FormData(),\n this.formSerializer\n );\n }\n }\n\n if (isObjectPayload || hasJSONContentType ) {\n headers.setContentType('application/json', false);\n return stringifySafely(data);\n }\n\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n const transitional = this.transitional || defaults.transitional;\n const forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n const JSONRequested = this.responseType === 'json';\n\n if (data && utils.isString(data) && ((forcedJSONParsing && !this.responseType) || JSONRequested)) {\n const silentJSONParsing = transitional && transitional.silentJSONParsing;\n const strictJSONParsing = !silentJSONParsing && JSONRequested;\n\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, this.response);\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n env: {\n FormData: platform.classes.FormData,\n Blob: platform.classes.Blob\n },\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n 'Accept': 'application/json, text/plain, */*',\n 'Content-Type': undefined\n }\n }\n};\n\nutils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch'], (method) => {\n defaults.headers[method] = {};\n});\n\nexport default defaults;\n","'use strict';\n\nimport utils from './../utils.js';\n\n// RawAxiosHeaders whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nconst ignoreDuplicateOf = utils.toObjectSet([\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n]);\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} rawHeaders Headers needing to be parsed\n *\n * @returns {Object} Headers parsed into an object\n */\nexport default rawHeaders => {\n const parsed = {};\n let key;\n let val;\n let i;\n\n rawHeaders && rawHeaders.split('\\n').forEach(function parser(line) {\n i = line.indexOf(':');\n key = line.substring(0, i).trim().toLowerCase();\n val = line.substring(i + 1).trim();\n\n if (!key || (parsed[key] && ignoreDuplicateOf[key])) {\n return;\n }\n\n if (key === 'set-cookie') {\n if (parsed[key]) {\n parsed[key].push(val);\n } else {\n parsed[key] = [val];\n }\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n });\n\n return parsed;\n};\n","'use strict';\n\nimport utils from '../utils.js';\nimport parseHeaders from '../helpers/parseHeaders.js';\n\nconst $internals = Symbol('internals');\n\nfunction normalizeHeader(header) {\n return header && String(header).trim().toLowerCase();\n}\n\nfunction normalizeValue(value) {\n if (value === false || value == null) {\n return value;\n }\n\n return utils.isArray(value) ? value.map(normalizeValue) : String(value);\n}\n\nfunction parseTokens(str) {\n const tokens = Object.create(null);\n const tokensRE = /([^\\s,;=]+)\\s*(?:=\\s*([^,;]+))?/g;\n let match;\n\n while ((match = tokensRE.exec(str))) {\n tokens[match[1]] = match[2];\n }\n\n return tokens;\n}\n\nconst isValidHeaderName = (str) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim());\n\nfunction matchHeaderValue(context, value, header, filter, isHeaderNameFilter) {\n if (utils.isFunction(filter)) {\n return filter.call(this, value, header);\n }\n\n if (isHeaderNameFilter) {\n value = header;\n }\n\n if (!utils.isString(value)) return;\n\n if (utils.isString(filter)) {\n return value.indexOf(filter) !== -1;\n }\n\n if (utils.isRegExp(filter)) {\n return filter.test(value);\n }\n}\n\nfunction formatHeader(header) {\n return header.trim()\n .toLowerCase().replace(/([a-z\\d])(\\w*)/g, (w, char, str) => {\n return char.toUpperCase() + str;\n });\n}\n\nfunction buildAccessors(obj, header) {\n const accessorName = utils.toCamelCase(' ' + header);\n\n ['get', 'set', 'has'].forEach(methodName => {\n Object.defineProperty(obj, methodName + accessorName, {\n value: function(arg1, arg2, arg3) {\n return this[methodName].call(this, header, arg1, arg2, arg3);\n },\n configurable: true\n });\n });\n}\n\nclass AxiosHeaders {\n constructor(headers) {\n headers && this.set(headers);\n }\n\n set(header, valueOrRewrite, rewrite) {\n const self = this;\n\n function setHeader(_value, _header, _rewrite) {\n const lHeader = normalizeHeader(_header);\n\n if (!lHeader) {\n throw new Error('header name must be a non-empty string');\n }\n\n const key = utils.findKey(self, lHeader);\n\n if(!key || self[key] === undefined || _rewrite === true || (_rewrite === undefined && self[key] !== false)) {\n self[key || _header] = normalizeValue(_value);\n }\n }\n\n const setHeaders = (headers, _rewrite) =>\n utils.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite));\n\n if (utils.isPlainObject(header) || header instanceof this.constructor) {\n setHeaders(header, valueOrRewrite)\n } else if(utils.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) {\n setHeaders(parseHeaders(header), valueOrRewrite);\n } else {\n header != null && setHeader(valueOrRewrite, header, rewrite);\n }\n\n return this;\n }\n\n get(header, parser) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n if (key) {\n const value = this[key];\n\n if (!parser) {\n return value;\n }\n\n if (parser === true) {\n return parseTokens(value);\n }\n\n if (utils.isFunction(parser)) {\n return parser.call(this, value, key);\n }\n\n if (utils.isRegExp(parser)) {\n return parser.exec(value);\n }\n\n throw new TypeError('parser must be boolean|regexp|function');\n }\n }\n }\n\n has(header, matcher) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n return !!(key && this[key] !== undefined && (!matcher || matchHeaderValue(this, this[key], key, matcher)));\n }\n\n return false;\n }\n\n delete(header, matcher) {\n const self = this;\n let deleted = false;\n\n function deleteHeader(_header) {\n _header = normalizeHeader(_header);\n\n if (_header) {\n const key = utils.findKey(self, _header);\n\n if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) {\n delete self[key];\n\n deleted = true;\n }\n }\n }\n\n if (utils.isArray(header)) {\n header.forEach(deleteHeader);\n } else {\n deleteHeader(header);\n }\n\n return deleted;\n }\n\n clear(matcher) {\n const keys = Object.keys(this);\n let i = keys.length;\n let deleted = false;\n\n while (i--) {\n const key = keys[i];\n if(!matcher || matchHeaderValue(this, this[key], key, matcher, true)) {\n delete this[key];\n deleted = true;\n }\n }\n\n return deleted;\n }\n\n normalize(format) {\n const self = this;\n const headers = {};\n\n utils.forEach(this, (value, header) => {\n const key = utils.findKey(headers, header);\n\n if (key) {\n self[key] = normalizeValue(value);\n delete self[header];\n return;\n }\n\n const normalized = format ? formatHeader(header) : String(header).trim();\n\n if (normalized !== header) {\n delete self[header];\n }\n\n self[normalized] = normalizeValue(value);\n\n headers[normalized] = true;\n });\n\n return this;\n }\n\n concat(...targets) {\n return this.constructor.concat(this, ...targets);\n }\n\n toJSON(asStrings) {\n const obj = Object.create(null);\n\n utils.forEach(this, (value, header) => {\n value != null && value !== false && (obj[header] = asStrings && utils.isArray(value) ? value.join(', ') : value);\n });\n\n return obj;\n }\n\n [Symbol.iterator]() {\n return Object.entries(this.toJSON())[Symbol.iterator]();\n }\n\n toString() {\n return Object.entries(this.toJSON()).map(([header, value]) => header + ': ' + value).join('\\n');\n }\n\n get [Symbol.toStringTag]() {\n return 'AxiosHeaders';\n }\n\n static from(thing) {\n return thing instanceof this ? thing : new this(thing);\n }\n\n static concat(first, ...targets) {\n const computed = new this(first);\n\n targets.forEach((target) => computed.set(target));\n\n return computed;\n }\n\n static accessor(header) {\n const internals = this[$internals] = (this[$internals] = {\n accessors: {}\n });\n\n const accessors = internals.accessors;\n const prototype = this.prototype;\n\n function defineAccessor(_header) {\n const lHeader = normalizeHeader(_header);\n\n if (!accessors[lHeader]) {\n buildAccessors(prototype, _header);\n accessors[lHeader] = true;\n }\n }\n\n utils.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header);\n\n return this;\n }\n}\n\nAxiosHeaders.accessor(['Content-Type', 'Content-Length', 'Accept', 'Accept-Encoding', 'User-Agent', 'Authorization']);\n\n// reserved names hotfix\nutils.reduceDescriptors(AxiosHeaders.prototype, ({value}, key) => {\n let mapped = key[0].toUpperCase() + key.slice(1); // map `set` => `Set`\n return {\n get: () => value,\n set(headerValue) {\n this[mapped] = headerValue;\n }\n }\n});\n\nutils.freezeMethods(AxiosHeaders);\n\nexport default AxiosHeaders;\n","'use strict';\n\nimport utils from './../utils.js';\nimport defaults from '../defaults/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Array|Function} fns A single function or Array of functions\n * @param {?Object} response The response object\n *\n * @returns {*} The resulting transformed data\n */\nexport default function transformData(fns, response) {\n const config = this || defaults;\n const context = response || config;\n const headers = AxiosHeaders.from(context.headers);\n let data = context.data;\n\n utils.forEach(fns, function transform(fn) {\n data = fn.call(config, data, headers.normalize(), response ? response.status : undefined);\n });\n\n headers.normalize();\n\n return data;\n}\n","'use strict';\n\nexport default function isCancel(value) {\n return !!(value && value.__CANCEL__);\n}\n","'use strict';\n\nimport AxiosError from '../core/AxiosError.js';\nimport utils from '../utils.js';\n\n/**\n * A `CanceledError` is an object that is thrown when an operation is canceled.\n *\n * @param {string=} message The message.\n * @param {Object=} config The config.\n * @param {Object=} request The request.\n *\n * @returns {CanceledError} The created error.\n */\nfunction CanceledError(message, config, request) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n AxiosError.call(this, message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request);\n this.name = 'CanceledError';\n}\n\nutils.inherits(CanceledError, AxiosError, {\n __CANCEL__: true\n});\n\nexport default CanceledError;\n","'use strict';\n\nimport AxiosError from './AxiosError.js';\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n *\n * @returns {object} The response.\n */\nexport default function settle(resolve, reject, response) {\n const validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(new AxiosError(\n 'Request failed with status code ' + response.status,\n [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4],\n response.config,\n response.request,\n response\n ));\n }\n}\n","'use strict';\n\nimport utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.isStandardBrowserEnv ?\n\n// Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n const cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n const match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n// Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })();\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n *\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nexport default function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n}\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n *\n * @returns {string} The combined URL\n */\nexport default function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n}\n","'use strict';\n\nimport isAbsoluteURL from '../helpers/isAbsoluteURL.js';\nimport combineURLs from '../helpers/combineURLs.js';\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n *\n * @returns {string} The combined full path\n */\nexport default function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n}\n","'use strict';\n\nimport utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.isStandardBrowserEnv ?\n\n// Standard browser envs have full support of the APIs needed to test\n// whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n const msie = /(msie|trident)/i.test(navigator.userAgent);\n const urlParsingNode = document.createElement('a');\n let originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n let href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n const parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })();\n","'use strict';\n\nexport default function parseProtocol(url) {\n const match = /^([-+\\w]{1,25})(:?\\/\\/|:)/.exec(url);\n return match && match[1] || '';\n}\n","'use strict';\n\n/**\n * Calculate data maxRate\n * @param {Number} [samplesCount= 10]\n * @param {Number} [min= 1000]\n * @returns {Function}\n */\nfunction speedometer(samplesCount, min) {\n samplesCount = samplesCount || 10;\n const bytes = new Array(samplesCount);\n const timestamps = new Array(samplesCount);\n let head = 0;\n let tail = 0;\n let firstSampleTS;\n\n min = min !== undefined ? min : 1000;\n\n return function push(chunkLength) {\n const now = Date.now();\n\n const startedAt = timestamps[tail];\n\n if (!firstSampleTS) {\n firstSampleTS = now;\n }\n\n bytes[head] = chunkLength;\n timestamps[head] = now;\n\n let i = tail;\n let bytesCount = 0;\n\n while (i !== head) {\n bytesCount += bytes[i++];\n i = i % samplesCount;\n }\n\n head = (head + 1) % samplesCount;\n\n if (head === tail) {\n tail = (tail + 1) % samplesCount;\n }\n\n if (now - firstSampleTS < min) {\n return;\n }\n\n const passed = startedAt && now - startedAt;\n\n return passed ? Math.round(bytesCount * 1000 / passed) : undefined;\n };\n}\n\nexport default speedometer;\n","'use strict';\n\nimport utils from './../utils.js';\nimport settle from './../core/settle.js';\nimport cookies from './../helpers/cookies.js';\nimport buildURL from './../helpers/buildURL.js';\nimport buildFullPath from '../core/buildFullPath.js';\nimport isURLSameOrigin from './../helpers/isURLSameOrigin.js';\nimport transitionalDefaults from '../defaults/transitional.js';\nimport AxiosError from '../core/AxiosError.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport parseProtocol from '../helpers/parseProtocol.js';\nimport platform from '../platform/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport speedometer from '../helpers/speedometer.js';\n\nfunction progressEventReducer(listener, isDownloadStream) {\n let bytesNotified = 0;\n const _speedometer = speedometer(50, 250);\n\n return e => {\n const loaded = e.loaded;\n const total = e.lengthComputable ? e.total : undefined;\n const progressBytes = loaded - bytesNotified;\n const rate = _speedometer(progressBytes);\n const inRange = loaded <= total;\n\n bytesNotified = loaded;\n\n const data = {\n loaded,\n total,\n progress: total ? (loaded / total) : undefined,\n bytes: progressBytes,\n rate: rate ? rate : undefined,\n estimated: rate && total && inRange ? (total - loaded) / rate : undefined,\n event: e\n };\n\n data[isDownloadStream ? 'download' : 'upload'] = true;\n\n listener(data);\n };\n}\n\nconst isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';\n\nexport default isXHRAdapterSupported && function (config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n let requestData = config.data;\n const requestHeaders = AxiosHeaders.from(config.headers).normalize();\n const responseType = config.responseType;\n let onCanceled;\n function done() {\n if (config.cancelToken) {\n config.cancelToken.unsubscribe(onCanceled);\n }\n\n if (config.signal) {\n config.signal.removeEventListener('abort', onCanceled);\n }\n }\n\n let contentType;\n\n if (utils.isFormData(requestData)) {\n if (platform.isStandardBrowserEnv || platform.isStandardBrowserWebWorkerEnv) {\n requestHeaders.setContentType(false); // Let the browser set it\n } else if(!requestHeaders.getContentType(/^\\s*multipart\\/form-data/)){\n requestHeaders.setContentType('multipart/form-data'); // mobile/desktop app frameworks\n } else if(utils.isString(contentType = requestHeaders.getContentType())){\n // fix semicolon duplication issue for ReactNative FormData implementation\n requestHeaders.setContentType(contentType.replace(/^\\s*(multipart\\/form-data);+/, '$1'))\n }\n }\n\n let request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n const username = config.auth.username || '';\n const password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.set('Authorization', 'Basic ' + btoa(username + ':' + password));\n }\n\n const fullPath = buildFullPath(config.baseURL, config.url);\n\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n const responseHeaders = AxiosHeaders.from(\n 'getAllResponseHeaders' in request && request.getAllResponseHeaders()\n );\n const responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n const response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config,\n request\n };\n\n settle(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n let timeoutErrorMessage = config.timeout ? 'timeout of ' + config.timeout + 'ms exceeded' : 'timeout exceeded';\n const transitional = config.transitional || transitionalDefaults;\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(new AxiosError(\n timeoutErrorMessage,\n transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n config,\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (platform.isStandardBrowserEnv) {\n // Add xsrf header\n const xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath))\n && config.xsrfCookieName && cookies.read(config.xsrfCookieName);\n\n if (xsrfValue) {\n requestHeaders.set(config.xsrfHeaderName, xsrfValue);\n }\n }\n\n // Remove Content-Type if data is undefined\n requestData === undefined && requestHeaders.setContentType(null);\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders.toJSON(), function setRequestHeader(val, key) {\n request.setRequestHeader(key, val);\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = config.responseType;\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', progressEventReducer(config.onDownloadProgress, true));\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', progressEventReducer(config.onUploadProgress));\n }\n\n if (config.cancelToken || config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = cancel => {\n if (!request) {\n return;\n }\n reject(!cancel || cancel.type ? new CanceledError(null, config, request) : cancel);\n request.abort();\n request = null;\n };\n\n config.cancelToken && config.cancelToken.subscribe(onCanceled);\n if (config.signal) {\n config.signal.aborted ? onCanceled() : config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n const protocol = parseProtocol(fullPath);\n\n if (protocol && platform.protocols.indexOf(protocol) === -1) {\n reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config));\n return;\n }\n\n\n // Send the request\n request.send(requestData || null);\n });\n}\n","import utils from '../utils.js';\nimport httpAdapter from './http.js';\nimport xhrAdapter from './xhr.js';\nimport AxiosError from \"../core/AxiosError.js\";\n\nconst knownAdapters = {\n http: httpAdapter,\n xhr: xhrAdapter\n}\n\nutils.forEach(knownAdapters, (fn, value) => {\n if (fn) {\n try {\n Object.defineProperty(fn, 'name', {value});\n } catch (e) {\n // eslint-disable-next-line no-empty\n }\n Object.defineProperty(fn, 'adapterName', {value});\n }\n});\n\nconst renderReason = (reason) => `- ${reason}`;\n\nconst isResolvedHandle = (adapter) => utils.isFunction(adapter) || adapter === null || adapter === false;\n\nexport default {\n getAdapter: (adapters) => {\n adapters = utils.isArray(adapters) ? adapters : [adapters];\n\n const {length} = adapters;\n let nameOrAdapter;\n let adapter;\n\n const rejectedReasons = {};\n\n for (let i = 0; i < length; i++) {\n nameOrAdapter = adapters[i];\n let id;\n\n adapter = nameOrAdapter;\n\n if (!isResolvedHandle(nameOrAdapter)) {\n adapter = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()];\n\n if (adapter === undefined) {\n throw new AxiosError(`Unknown adapter '${id}'`);\n }\n }\n\n if (adapter) {\n break;\n }\n\n rejectedReasons[id || '#' + i] = adapter;\n }\n\n if (!adapter) {\n\n const reasons = Object.entries(rejectedReasons)\n .map(([id, state]) => `adapter ${id} ` +\n (state === false ? 'is not supported by the environment' : 'is not available in the build')\n );\n\n let s = length ?\n (reasons.length > 1 ? 'since :\\n' + reasons.map(renderReason).join('\\n') : ' ' + renderReason(reasons[0])) :\n 'as no adapter specified';\n\n throw new AxiosError(\n `There is no suitable adapter to dispatch the request ` + s,\n 'ERR_NOT_SUPPORT'\n );\n }\n\n return adapter;\n },\n adapters: knownAdapters\n}\n","'use strict';\n\nimport transformData from './transformData.js';\nimport isCancel from '../cancel/isCancel.js';\nimport defaults from '../defaults/index.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport adapters from \"../adapters/adapters.js\";\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n *\n * @param {Object} config The config that is to be used for the request\n *\n * @returns {void}\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new CanceledError(null, config);\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n *\n * @returns {Promise} The Promise to be fulfilled\n */\nexport default function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n config.headers = AxiosHeaders.from(config.headers);\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.transformRequest\n );\n\n if (['post', 'put', 'patch'].indexOf(config.method) !== -1) {\n config.headers.setContentType('application/x-www-form-urlencoded', false);\n }\n\n const adapter = adapters.getAdapter(config.adapter || defaults.adapter);\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n config.transformResponse,\n response\n );\n\n response.headers = AxiosHeaders.from(response.headers);\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n config.transformResponse,\n reason.response\n );\n reason.response.headers = AxiosHeaders.from(reason.response.headers);\n }\n }\n\n return Promise.reject(reason);\n });\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosHeaders from \"./AxiosHeaders.js\";\n\nconst headersToObject = (thing) => thing instanceof AxiosHeaders ? thing.toJSON() : thing;\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n *\n * @returns {Object} New object resulting from merging config2 to config1\n */\nexport default function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n const config = {};\n\n function getMergedValue(target, source, caseless) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge.call({caseless}, target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDeepProperties(a, b, caseless) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(a, b, caseless);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a, caseless);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(a, b, prop) {\n if (prop in config2) {\n return getMergedValue(a, b);\n } else if (prop in config1) {\n return getMergedValue(undefined, a);\n }\n }\n\n const mergeMap = {\n url: valueFromConfig2,\n method: valueFromConfig2,\n data: valueFromConfig2,\n baseURL: defaultToConfig2,\n transformRequest: defaultToConfig2,\n transformResponse: defaultToConfig2,\n paramsSerializer: defaultToConfig2,\n timeout: defaultToConfig2,\n timeoutMessage: defaultToConfig2,\n withCredentials: defaultToConfig2,\n adapter: defaultToConfig2,\n responseType: defaultToConfig2,\n xsrfCookieName: defaultToConfig2,\n xsrfHeaderName: defaultToConfig2,\n onUploadProgress: defaultToConfig2,\n onDownloadProgress: defaultToConfig2,\n decompress: defaultToConfig2,\n maxContentLength: defaultToConfig2,\n maxBodyLength: defaultToConfig2,\n beforeRedirect: defaultToConfig2,\n transport: defaultToConfig2,\n httpAgent: defaultToConfig2,\n httpsAgent: defaultToConfig2,\n cancelToken: defaultToConfig2,\n socketPath: defaultToConfig2,\n responseEncoding: defaultToConfig2,\n validateStatus: mergeDirectKeys,\n headers: (a, b) => mergeDeepProperties(headersToObject(a), headersToObject(b), true)\n };\n\n utils.forEach(Object.keys(Object.assign({}, config1, config2)), function computeConfigValue(prop) {\n const merge = mergeMap[prop] || mergeDeepProperties;\n const configValue = merge(config1[prop], config2[prop], prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n}\n","export const VERSION = \"1.5.1\";","'use strict';\n\nimport {VERSION} from '../env/data.js';\nimport AxiosError from '../core/AxiosError.js';\n\nconst validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach((type, i) => {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nconst deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n *\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n *\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return (value, opt, opts) => {\n if (validator === false) {\n throw new AxiosError(\n formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')),\n AxiosError.ERR_DEPRECATED\n );\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\n/**\n * Assert object's properties type\n *\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n *\n * @returns {object}\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE);\n }\n const keys = Object.keys(options);\n let i = keys.length;\n while (i-- > 0) {\n const opt = keys[i];\n const validator = schema[opt];\n if (validator) {\n const value = options[opt];\n const result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new AxiosError('option ' + opt + ' must be ' + result, AxiosError.ERR_BAD_OPTION_VALUE);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION);\n }\n }\n}\n\nexport default {\n assertOptions,\n validators\n};\n","'use strict';\n\nimport utils from './../utils.js';\nimport buildURL from '../helpers/buildURL.js';\nimport InterceptorManager from './InterceptorManager.js';\nimport dispatchRequest from './dispatchRequest.js';\nimport mergeConfig from './mergeConfig.js';\nimport buildFullPath from './buildFullPath.js';\nimport validator from '../helpers/validator.js';\nimport AxiosHeaders from './AxiosHeaders.js';\n\nconst validators = validator.validators;\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n *\n * @return {Axios} A new instance of Axios\n */\nclass Axios {\n constructor(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n }\n\n /**\n * Dispatch a request\n *\n * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults)\n * @param {?Object} config\n *\n * @returns {Promise} The Promise to be fulfilled\n */\n request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n const {transitional, paramsSerializer, headers} = config;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n }\n\n if (paramsSerializer != null) {\n if (utils.isFunction(paramsSerializer)) {\n config.paramsSerializer = {\n serialize: paramsSerializer\n }\n } else {\n validator.assertOptions(paramsSerializer, {\n encode: validators.function,\n serialize: validators.function\n }, true);\n }\n }\n\n // Set config.method\n config.method = (config.method || this.defaults.method || 'get').toLowerCase();\n\n // Flatten headers\n let contextHeaders = headers && utils.merge(\n headers.common,\n headers[config.method]\n );\n\n headers && utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n (method) => {\n delete headers[method];\n }\n );\n\n config.headers = AxiosHeaders.concat(contextHeaders, headers);\n\n // filter out skipped interceptors\n const requestInterceptorChain = [];\n let synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n const responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n let promise;\n let i = 0;\n let len;\n\n if (!synchronousRequestInterceptors) {\n const chain = [dispatchRequest.bind(this), undefined];\n chain.unshift.apply(chain, requestInterceptorChain);\n chain.push.apply(chain, responseInterceptorChain);\n len = chain.length;\n\n promise = Promise.resolve(config);\n\n while (i < len) {\n promise = promise.then(chain[i++], chain[i++]);\n }\n\n return promise;\n }\n\n len = requestInterceptorChain.length;\n\n let newConfig = config;\n\n i = 0;\n\n while (i < len) {\n const onFulfilled = requestInterceptorChain[i++];\n const onRejected = requestInterceptorChain[i++];\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected.call(this, error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest.call(this, newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n i = 0;\n len = responseInterceptorChain.length;\n\n while (i < len) {\n promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]);\n }\n\n return promise;\n }\n\n getUri(config) {\n config = mergeConfig(this.defaults, config);\n const fullPath = buildFullPath(config.baseURL, config.url);\n return buildURL(fullPath, config.params, config.paramsSerializer);\n }\n}\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n\n function generateHTTPMethod(isForm) {\n return function httpMethod(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n headers: isForm ? {\n 'Content-Type': 'multipart/form-data'\n } : {},\n url,\n data\n }));\n };\n }\n\n Axios.prototype[method] = generateHTTPMethod();\n\n Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\n});\n\nexport default Axios;\n","'use strict';\n\nimport CanceledError from './CanceledError.js';\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @param {Function} executor The executor function.\n *\n * @returns {CancelToken}\n */\nclass CancelToken {\n constructor(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n let resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n const token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then(cancel => {\n if (!token._listeners) return;\n\n let i = token._listeners.length;\n\n while (i-- > 0) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = onfulfilled => {\n let _resolve;\n // eslint-disable-next-line func-names\n const promise = new Promise(resolve => {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message, config, request) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new CanceledError(message, config, request);\n resolvePromise(token.reason);\n });\n }\n\n /**\n * Throws a `CanceledError` if cancellation has been requested.\n */\n throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n }\n\n /**\n * Subscribe to the cancel signal\n */\n\n subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n }\n\n /**\n * Unsubscribe from the cancel signal\n */\n\n unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n const index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n }\n\n /**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\n static source() {\n let cancel;\n const token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token,\n cancel\n };\n }\n}\n\nexport default CancelToken;\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n *\n * @returns {Function}\n */\nexport default function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n *\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nexport default function isAxiosError(payload) {\n return utils.isObject(payload) && (payload.isAxiosError === true);\n}\n","const HttpStatusCode = {\n Continue: 100,\n SwitchingProtocols: 101,\n Processing: 102,\n EarlyHints: 103,\n Ok: 200,\n Created: 201,\n Accepted: 202,\n NonAuthoritativeInformation: 203,\n NoContent: 204,\n ResetContent: 205,\n PartialContent: 206,\n MultiStatus: 207,\n AlreadyReported: 208,\n ImUsed: 226,\n MultipleChoices: 300,\n MovedPermanently: 301,\n Found: 302,\n SeeOther: 303,\n NotModified: 304,\n UseProxy: 305,\n Unused: 306,\n TemporaryRedirect: 307,\n PermanentRedirect: 308,\n BadRequest: 400,\n Unauthorized: 401,\n PaymentRequired: 402,\n Forbidden: 403,\n NotFound: 404,\n MethodNotAllowed: 405,\n NotAcceptable: 406,\n ProxyAuthenticationRequired: 407,\n RequestTimeout: 408,\n Conflict: 409,\n Gone: 410,\n LengthRequired: 411,\n PreconditionFailed: 412,\n PayloadTooLarge: 413,\n UriTooLong: 414,\n UnsupportedMediaType: 415,\n RangeNotSatisfiable: 416,\n ExpectationFailed: 417,\n ImATeapot: 418,\n MisdirectedRequest: 421,\n UnprocessableEntity: 422,\n Locked: 423,\n FailedDependency: 424,\n TooEarly: 425,\n UpgradeRequired: 426,\n PreconditionRequired: 428,\n TooManyRequests: 429,\n RequestHeaderFieldsTooLarge: 431,\n UnavailableForLegalReasons: 451,\n InternalServerError: 500,\n NotImplemented: 501,\n BadGateway: 502,\n ServiceUnavailable: 503,\n GatewayTimeout: 504,\n HttpVersionNotSupported: 505,\n VariantAlsoNegotiates: 506,\n InsufficientStorage: 507,\n LoopDetected: 508,\n NotExtended: 510,\n NetworkAuthenticationRequired: 511,\n};\n\nObject.entries(HttpStatusCode).forEach(([key, value]) => {\n HttpStatusCode[value] = key;\n});\n\nexport default HttpStatusCode;\n","'use strict';\n\nimport utils from './utils.js';\nimport bind from './helpers/bind.js';\nimport Axios from './core/Axios.js';\nimport mergeConfig from './core/mergeConfig.js';\nimport defaults from './defaults/index.js';\nimport formDataToJSON from './helpers/formDataToJSON.js';\nimport CanceledError from './cancel/CanceledError.js';\nimport CancelToken from './cancel/CancelToken.js';\nimport isCancel from './cancel/isCancel.js';\nimport {VERSION} from './env/data.js';\nimport toFormData from './helpers/toFormData.js';\nimport AxiosError from './core/AxiosError.js';\nimport spread from './helpers/spread.js';\nimport isAxiosError from './helpers/isAxiosError.js';\nimport AxiosHeaders from \"./core/AxiosHeaders.js\";\nimport adapters from './adapters/adapters.js';\nimport HttpStatusCode from './helpers/HttpStatusCode.js';\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n *\n * @returns {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n const context = new Axios(defaultConfig);\n const instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context, {allOwnKeys: true});\n\n // Copy context to instance\n utils.extend(instance, context, null, {allOwnKeys: true});\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nconst axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.CanceledError = CanceledError;\naxios.CancelToken = CancelToken;\naxios.isCancel = isCancel;\naxios.VERSION = VERSION;\naxios.toFormData = toFormData;\n\n// Expose AxiosError class\naxios.AxiosError = AxiosError;\n\n// alias for CanceledError for backward compatibility\naxios.Cancel = axios.CanceledError;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\n\naxios.spread = spread;\n\n// Expose isAxiosError\naxios.isAxiosError = isAxiosError;\n\n// Expose mergeConfig\naxios.mergeConfig = mergeConfig;\n\naxios.AxiosHeaders = AxiosHeaders;\n\naxios.formToJSON = thing => formDataToJSON(utils.isHTMLForm(thing) ? new FormData(thing) : thing);\n\naxios.getAdapter = adapters.getAdapter;\n\naxios.HttpStatusCode = HttpStatusCode;\n\naxios.default = axios;\n\n// this module should only have a default export\nexport default axios\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{ref:\"roomRef\",staticClass:\"tui-room\",attrs:{\"id\":\"roomContainer\"}},[_c(_setup.RoomHeader,{directives:[{name:\"show\",rawName:\"v-show\",value:(_setup.showRoomTool && _setup.showHeaderTool),expression:\"showRoomTool && showHeaderTool\"}],staticClass:\"header\",on:{\"log-out\":_setup.logOut,\"on-destroy-room\":_setup.onDestroyRoom,\"on-exit-room\":_setup.onExitRoom}}),_c(_setup.RoomContent,{directives:[{name:\"tap\",rawName:\"v-tap\",value:(_setup.handleRoomContentTap),expression:\"handleRoomContentTap\"}],ref:\"roomContentRef\",staticClass:\"content\",attrs:{\"show-room-tool\":_setup.showRoomTool}}),_c(_setup.RoomFooter,{directives:[{name:\"show\",rawName:\"v-show\",value:(_setup.showRoomTool),expression:\"showRoomTool\"}],staticClass:\"footer\",on:{\"on-destroy-room\":_setup.onDestroyRoom,\"on-exit-room\":_setup.onExitRoom}}),_c(_setup.RoomSidebar),_c(_setup.RoomSetting)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"header\"},[_c('div',{staticClass:\"header-container\"},[_c('div',{staticClass:\"icon-box\"},[_c(_setup.SwitchCamera),_c(_setup.SwitchMirror)],1),_c(_setup.RoomInfo),_c(_setup.EndControl,{on:{\"on-destroy-room\":_setup.onDestroyRoom,\"on-exit-room\":_setup.onExitRoom}})],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_c('div',{staticClass:\"end-control-container\"},[_c('div',{directives:[{name:\"tap\",rawName:\"v-tap\",value:(_setup.stopMeeting),expression:\"stopMeeting\"}],staticClass:\"end-button\",attrs:{\"tabindex\":\"1\"}},[_vm._v(_vm._s(_setup.t('EndH5')))])]),(_setup.visible)?_c('div',{staticClass:\"end-main-content\"},[_c('div',{class:_setup.isShowLeaveRoomDialog ? 'end-dialog-leave':'end-dialog-dismiss'},[(_setup.currentDialogType === _setup.DialogType.BasicDialog)?_c('div',[(_setup.roomStore.isMaster)?_c('div',{staticClass:\"end-dialog-header\"},[(_setup.roomStore.isMaster)?_c('span',{staticClass:\"end-dialog-text\"},[_vm._v(\" \"+_vm._s(_setup.t('If you do not want to end the meeting, please designate a new host before leaving the meeting.'))+\" \")]):_c('span',[_vm._v(_vm._s(_setup.t('Are you sure you want to leave this room?')))])]):_vm._e()]):_vm._e(),(_setup.currentDialogType === _setup.DialogType.BasicDialog)?_c('div',{staticClass:\"dialog-middle-content\"},[(_setup.roomStore.isMaster)?_c('span',{class:_setup.isShowLeaveRoomDialog ? 'end-button-dismiss':'end-button-dismiss-single',on:{\"click\":function($event){$event.stopPropagation();return _setup.dismissRoom.apply(null, arguments)}}},[_vm._v(\" \"+_vm._s(_setup.t('Dismiss'))+\" \")]):_vm._e(),(_setup.isShowLeaveRoomDialog)?_c('span',{directives:[{name:\"tap\",rawName:\"v-tap\",value:(_setup.leaveRoom),expression:\"leaveRoom\"}],class:_setup.roomStore.isMaster ?'end-button-leave':'end-button-leave-single'},[_vm._v(\" \"+_vm._s(_setup.t('Leave'))+\" \")]):_vm._e(),_c('span',{staticClass:\"end-button-cancel\",on:{\"click\":function($event){$event.stopPropagation();return _setup.cancel.apply(null, arguments)}}},[_vm._v(_vm._s(_setup.t('Cancel')))])]):_vm._e(),(_setup.currentDialogType === _setup.DialogType.TransferDialog)?_c('div',[_c('span',{staticClass:\"end-button-cancel\",on:{\"click\":function($event){$event.stopPropagation();return _setup.cancel.apply(null, arguments)}}},[_vm._v(_vm._s(_setup.t('Cancel')))])]):_vm._e()])]):_vm._e(),_c(_setup.popup,{directives:[{name:\"show\",rawName:\"v-show\",value:(_setup.showSideBar),expression:\"showSideBar\"}],staticClass:\"transfer-container\",attrs:{\"title\":_setup.t('Appoint a new host')},scopedSlots:_vm._u([{key:\"sidebarContent\",fn:function(){return [_c('div',{staticStyle:{\"height\":\"100%\"}},[_c('div',[_c('div',{staticClass:\"transfer-header\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_setup.searchName),expression:\"searchName\"}],staticClass:\"searching-input\",attrs:{\"type\":\"text\",\"placeholder\":_setup.t('Search for conference attendees'),\"enterkeyhint\":\"done\"},domProps:{\"value\":(_setup.searchName)},on:{\"input\":function($event){if($event.target.composing)return;_setup.searchName=$event.target.value}}})]),_c('div',{staticClass:\"transfer-body\"},[_vm._l((_setup.filteredList),function(user){return _c('div',{key:user.userId,staticClass:\"transfer-list-content\",on:{\"click\":function($event){return _setup.handleShowMemberControl(user.userId)}}},[_c('div',{staticClass:\"member-basic-info\"},[_c(_setup.Avatar,{staticClass:\"avatar-url\",attrs:{\"img-src\":user.avatarUrl}}),_c('div',{staticClass:\"user-name\"},[_vm._v(_vm._s(user.userName || user.userId))]),(_setup.selectedUser === user.userId)?_c(_setup.SvgIcon,{staticClass:\"correct\",attrs:{\"icon-name\":\"correct\",\"size\":\"custom\"}}):_vm._e()],1)])}),(_setup.hasNoData)?_c('div',{staticClass:\"member-hasNoData\"},[_vm._v(_vm._s(_setup.t('No relevant user found.')))]):_vm._e()],2)])])]},proxy:true},{key:\"sidebarFooter\",fn:function(){return [_c('div',{staticClass:\"transfer-leave\",on:{\"click\":_setup.transferAndLeave}},[_c('span',{staticClass:\"transfer-button\"},[_vm._v(_vm._s(_setup.t('Transfer and leave')))])])]},proxy:true}])})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { ref, Ref, computed } from 'vue';\nimport { useBasicStore } from '../../../stores/basic';\nimport { useRoomStore } from '../../../stores/room';\nimport { storeToRefs } from 'pinia';\nimport { useI18n } from '../../../locales';\nimport useGetRoomEngine from '../../../hooks/useRoomEngine';\nimport logger from '../../../utils/common/logger';\n\nexport default function useEndControl() {\n const { t } = useI18n();\n enum DialogType {\n BasicDialog,\n TransferDialog\n }\n const currentDialogType = ref(DialogType.BasicDialog);\n\n const logPrefix = '[EndControl]';\n const roomEngine = useGetRoomEngine();\n const visible: Ref = ref(false);\n const basicStore = useBasicStore();\n logger.log(`${logPrefix} basicStore:`, basicStore);\n\n const roomStore = useRoomStore();\n const { localUser, remoteAnchorList } = storeToRefs(roomStore);\n const title = computed(() => (currentDialogType.value === DialogType.BasicDialog ? t('Leave room?') : t('Select a new host')));\n const isShowLeaveRoomDialog = computed(() => (\n roomStore.isMaster && remoteAnchorList.value.length > 0)\n || !roomStore.isMaster);\n const { isSidebarOpen, sidebarName } = storeToRefs(basicStore);\n const showSideBar = computed(() => isSidebarOpen.value && sidebarName.value === 'transfer-leave');\n const selectedUser: Ref = ref('');\n const showTransfer = ref(false);\n const searchName = ref('');\n const filteredList = computed(() => remoteAnchorList.value.filter(searchUser => (\n searchUser.userId.includes(searchName.value)) || (searchUser.userName?.includes(searchName.value))));\n const hasNoData = computed(() => filteredList.value.length === 0);\n\n function toggleMangeMemberSidebar() {\n if (basicStore.setSidebarOpenStatus && sidebarName.value === 'transfer-leave') {\n basicStore.setSidebarOpenStatus(false);\n basicStore.setSidebarName('');\n return;\n }\n\n basicStore.setSidebarOpenStatus(true);\n basicStore.setSidebarName('transfer-leave');\n }\n\n function handleShowMemberControl(userId: string) {\n selectedUser.value = userId;\n }\n\n function resetState() {\n visible.value = false;\n currentDialogType.value = DialogType.BasicDialog;\n }\n\n function stopMeeting() {\n if (!visible.value) {\n visible.value = true;\n }\n }\n\n function cancel() {\n resetState();\n }\n\n async function closeMediaBeforeLeave() {\n if (localUser.value.hasAudioStream) {\n await roomEngine.instance?.closeLocalMicrophone();\n }\n if (localUser.value.hasVideoStream) {\n await roomEngine.instance?.closeLocalCamera();\n }\n }\n return {\n t,\n basicStore,\n isShowLeaveRoomDialog,\n roomStore,\n roomEngine,\n localUser,\n remoteAnchorList,\n stopMeeting,\n cancel,\n selectedUser,\n DialogType,\n logPrefix,\n title,\n currentDialogType,\n visible,\n closeMediaBeforeLeave,\n resetState,\n searchName,\n hasNoData,\n handleShowMemberControl,\n filteredList,\n toggleMangeMemberSidebar,\n showTransfer,\n sidebarName,\n showSideBar,\n };\n}\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"popup-container\"},[_c('div',{staticClass:\"popup-main-header\"},[_c('span',{directives:[{name:\"tap\",rawName:\"v-tap\",value:(_setup.handleClose),expression:\"handleClose\"}],staticClass:\"icon-container\"},[_c(_setup.SvgIcon,{staticClass:\"close-icon\",attrs:{\"size\":\"custom\",\"icon-name\":\"close-back\"}})],1),_c('span',{staticClass:\"sidebar-title\"},[_vm._v(_vm._s(_vm.title))])]),_c('div',{staticClass:\"popup-main-content\"},[_vm._t(\"sidebarContent\")],2),_c('div',{staticClass:\"popup-main-footer\"},[_vm._t(\"sidebarFooter\")],2)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { defineComponent as _defineComponent } from 'vue'\nimport SvgIcon from './SvgIcon.vue';\nimport { useBasicStore } from '../../stores/basic';\nimport '../../directives/vTap';\n\ninterface Props {\n title: string,\n}\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'PopUpH5',\n props: {\n title: null\n },\n setup(__props: any) {\n\n\n\nconst basicStore = useBasicStore();\n\nfunction handleClose() {\n basicStore.setSidebarOpenStatus(false);\n basicStore.setSidebarName('');\n}\n\n\nreturn { __sfc: true,basicStore, handleClose, SvgIcon }\n}\n\n})","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PopUpH5.vue?vue&type=script&setup=true&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PopUpH5.vue?vue&type=script&setup=true&lang=ts&\"","import { render, staticRenderFns } from \"./PopUpH5.vue?vue&type=template&id=4069d388&scoped=true&\"\nimport script from \"./PopUpH5.vue?vue&type=script&setup=true&lang=ts&\"\nexport * from \"./PopUpH5.vue?vue&type=script&setup=true&lang=ts&\"\nimport style0 from \"./PopUpH5.vue?vue&type=style&index=0&id=4069d388&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4069d388\",\n null\n \n)\n\nexport default component.exports","import { defineComponent as _defineComponent } from 'vue'\nimport { onUnmounted } from 'vue';\nimport { ElMessageBox, ElMessage } from '../../../elementComp';\nimport TUIRoomEngine, { TUIRole, TUIRoomEvents } from '@tencentcloud/tuiroom-engine-js';\nimport useEndControl from './useEndControlHooks';\nimport logger from '../../../utils/common/logger';\nimport popup from '../../common/PopUpH5.vue';\nimport SvgIcon from '../../common/SvgIcon.vue';\nimport Avatar from '../../base/Avatar.vue';\nimport '../../../directives/vTap';\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'EndControlH5',\n emits: ['on-exit-room', 'on-destroy-room'],\n setup(__props, { emit }) {\n\nconst {\n t,\n isShowLeaveRoomDialog,\n roomStore,\n basicStore,\n roomEngine,\n localUser,\n stopMeeting,\n cancel,\n DialogType,\n logPrefix,\n currentDialogType,\n visible,\n closeMediaBeforeLeave,\n resetState,\n toggleMangeMemberSidebar,\n searchName,\n hasNoData,\n handleShowMemberControl,\n filteredList,\n selectedUser,\n showSideBar,\n} = useEndControl();\n\n\n\n\n\n/**\n * Active room dismissal\n *\n * 主动解散房间\n**/\nasync function dismissRoom() {\n try {\n logger.log(`${logPrefix}dismissRoom: enter`);\n await closeMediaBeforeLeave();\n await roomEngine.instance?.destroyRoom();\n resetState();\n emit('on-destroy-room', { code: 0, message: '' });\n } catch (error) {\n logger.error(`${logPrefix}dismissRoom error:`, error);\n }\n}\n\n/**\n * Leave the room voluntarily\n *\n * 主动离开房间\n**/\nasync function leaveRoom() { // eslint-disable-line\n try {\n if (roomStore.isMaster) {\n toggleMangeMemberSidebar();\n resetState();\n return;\n }\n await closeMediaBeforeLeave();\n const response = await roomEngine.instance?.exitRoom();\n logger.log(`${logPrefix}leaveRoom:`, response);\n resetState();\n emit('on-exit-room', { code: 0, message: '' });\n } catch (error) {\n logger.error(`${logPrefix}leaveRoom error:`, error);\n }\n}\n\nasync function transferAndLeave() {\n if (!selectedUser.value) {\n return;\n }\n try {\n const userId = selectedUser.value;\n const changeUserRoleResponse = await roomEngine.instance?.changeUserRole({ userId, userRole: TUIRole.kRoomOwner });\n logger.log(`${logPrefix}transferAndLeave:`, changeUserRoleResponse);\n await closeMediaBeforeLeave();\n const exitRoomResponse = await roomEngine.instance?.exitRoom();\n logger.log(`${logPrefix}exitRoom:`, exitRoomResponse);\n basicStore.setSidebarOpenStatus(false);\n basicStore.setSidebarName('');\n resetState();\n emit('on-exit-room', { code: 0, message: '' });\n } catch (error) {\n logger.error(`${logPrefix}transferAndLeave error:`, error);\n }\n}\n\n/**\n * notification of room dismissal from the host\n *\n * 收到主持人解散房间通知\n**/\nconst onRoomDismissed = async (eventInfo: { roomId: string}) => {\n try {\n const { roomId } = eventInfo;\n logger.log(`${logPrefix}onRoomDismissed:`, roomId);\n ElMessageBox.alert(t('The host closed the room.'), t('Note'), {\n customClass: 'custom-element-class',\n confirmButtonText: t('Confirm'),\n appendTo: '#roomContainer',\n callback: async () => {\n resetState();\n emit('on-destroy-room', { code: 0, message: '' });\n },\n });\n } catch (error) {\n logger.error(`${logPrefix}onRoomDestroyed error:`, error);\n }\n};\n\n/**\n * By listening for a change in ownerId,\n * the audience receives a notification that the host has handed over the privileges\n *\n**/\n\nconst onUserRoleChanged = async (eventInfo: {userId: string, userRole: TUIRole }) => {\n if (eventInfo.userRole === TUIRole.kRoomOwner) {\n const { userId } = eventInfo;\n let newName = roomStore.getUserName(userId) || userId;\n if (userId === localUser.value.userId) {\n newName = t('me');\n }\n const tipMessage = `${t('Moderator changed to ')}${newName}`;\n ElMessage({\n type: 'success',\n message: tipMessage,\n });\n if (roomStore.localUser.userId === userId) {\n roomStore.setLocalUser({ userRole: TUIRole.kRoomOwner });\n } else {\n roomStore.setRemoteUserRole(userId, TUIRole.kRoomOwner);\n }\n roomStore.setMasterUserId(userId);\n resetState();\n if (roomStore.isAnchor) return;\n if (roomStore.isSpeakAfterTakingSeatMode) {\n await roomEngine.instance?.takeSeat({ seatIndex: -1, timeout: 0 });\n };\n }\n};\n\nTUIRoomEngine.once('ready', () => {\n roomEngine.instance?.on(TUIRoomEvents.onRoomDismissed, onRoomDismissed);\n roomEngine.instance?.on(TUIRoomEvents.onUserRoleChanged, onUserRoleChanged);\n});\n\nonUnmounted(() => {\n roomEngine.instance?.off(TUIRoomEvents.onRoomDismissed, onRoomDismissed);\n roomEngine.instance?.off(TUIRoomEvents.onUserRoleChanged, onUserRoleChanged);\n});\n\n\nreturn { __sfc: true,t, isShowLeaveRoomDialog, roomStore, basicStore, roomEngine, localUser, stopMeeting, cancel, DialogType, logPrefix, currentDialogType, visible, closeMediaBeforeLeave, resetState, toggleMangeMemberSidebar, searchName, hasNoData, handleShowMemberControl, filteredList, selectedUser, showSideBar, emit, dismissRoom, leaveRoom, transferAndLeave, onRoomDismissed, onUserRoleChanged, popup, SvgIcon, Avatar }\n}\n\n})","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./EndControlH5.vue?vue&type=script&setup=true&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./EndControlH5.vue?vue&type=script&setup=true&lang=ts&\"","import { render, staticRenderFns } from \"./EndControlH5.vue?vue&type=template&id=12377224&scoped=true&\"\nimport script from \"./EndControlH5.vue?vue&type=script&setup=true&lang=ts&\"\nexport * from \"./EndControlH5.vue?vue&type=script&setup=true&lang=ts&\"\nimport style0 from \"./EndControlH5.vue?vue&type=style&index=0&id=12377224&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"12377224\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"end-control-container\"},[_c('div',{staticClass:\"end-button\",attrs:{\"tabindex\":\"1\"},on:{\"click\":_setup.stopMeeting}},[_vm._v(_vm._s(_setup.t('EndPC')))]),_c(_setup.Dialog,{staticClass:\"custom-element-class\",attrs:{\"model-value\":_setup.visible,\"title\":_setup.title,\"modal\":true,\"append-to-body\":false,\"width\":\"420px\",\"before-close\":_setup.cancel,\"close-on-click-modal\":true},scopedSlots:_vm._u([{key:\"footer\",fn:function(){return [(_setup.currentDialogType === _setup.DialogType.BasicDialog)?_c('div',[(_setup.roomStore.isMaster)?_c('el-button',{attrs:{\"type\":\"primary\"},on:{\"click\":function($event){$event.stopPropagation();return _setup.dismissRoom.apply(null, arguments)}}},[_vm._v(\" \"+_vm._s(_setup.t('Dismiss'))+\" \")]):_vm._e(),(_setup.isShowLeaveRoomDialog)?_c('el-button',{attrs:{\"type\":\"primary\"},on:{\"click\":_setup.leaveRoom}},[_vm._v(_vm._s(_setup.t('Leave')))]):_vm._e(),_c('el-button',{on:{\"click\":function($event){$event.stopPropagation();return _setup.cancel.apply(null, arguments)}}},[_vm._v(_vm._s(_setup.t('Cancel')))])],1):_vm._e(),(_setup.currentDialogType === _setup.DialogType.TransferDialog)?_c('div',[_c('el-button',{attrs:{\"type\":\"primary\"},on:{\"click\":_setup.transferAndLeave}},[_vm._v(_vm._s(_setup.t('Transfer and leave')))]),_c('el-button',{on:{\"click\":function($event){$event.stopPropagation();return _setup.cancel.apply(null, arguments)}}},[_vm._v(_vm._s(_setup.t('Cancel')))])],1):_vm._e()]},proxy:true}])},[(_setup.currentDialogType === _setup.DialogType.BasicDialog)?_c('div',[(_setup.roomStore.isMaster)?_c('span',[_vm._v(\" \"+_vm._s(_setup.t('You are currently the room host, please select the appropriate action.If you select \"Leave Room\", the room will not be dissolved and you will need to appoint a new host.'))+\" \")]):_c('span',[_vm._v(_vm._s(_setup.t('Are you sure you want to leave this room?')))])]):_vm._e(),(_setup.currentDialogType === _setup.DialogType.TransferDialog)?_c('div',[_c('div',[_vm._v(_vm._s(_setup.t('New host')))]),_c('div',[_c('el-select',{attrs:{\"teleported\":false,\"popper-append-to-body\":false},model:{value:(_setup.selectedUser),callback:function ($$v) {_setup.selectedUser=$$v},expression:\"selectedUser\"}},_vm._l((_setup.remoteAnchorList),function(user){return _c('el-option',{key:user.userId,attrs:{\"value\":user.userId,\"label\":user.userName}})}),1)],1)]):_vm._e()])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { defineComponent as _defineComponent } from 'vue'\nimport { onUnmounted } from 'vue';\nimport { ElMessageBox, ElMessage } from '../../../elementComp';\nimport Dialog from '../../../elementComp/Dialog';\nimport TUIRoomEngine, { TUIRole, TUIRoomEvents } from '@tencentcloud/tuiroom-engine-js';\nimport useEndControl from './useEndControlHooks';\nimport logger from '../../../utils/common/logger';\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'EndControlPC',\n emits: ['on-exit-room', 'on-destroy-room'],\n setup(__props, { emit }) {\n\nconst {\n t,\n isShowLeaveRoomDialog,\n roomStore,\n basicStore,\n roomEngine,\n localUser,\n remoteAnchorList,\n stopMeeting,\n cancel,\n selectedUser,\n DialogType,\n logPrefix,\n title,\n currentDialogType,\n visible,\n closeMediaBeforeLeave,\n resetState,\n} = useEndControl();\n\n\n\n\n/**\n * Active room dismissal\n *\n * 主动解散房间\n**/\nasync function dismissRoom() {\n try {\n logger.log(`${logPrefix}dismissRoom: enter`);\n await closeMediaBeforeLeave();\n await roomEngine.instance?.destroyRoom();\n resetState();\n emit('on-destroy-room', { code: 0, message: '' });\n } catch (error) {\n logger.error(`${logPrefix}dismissRoom error:`, error);\n }\n}\n\n/**\n * Leave the room voluntarily\n *\n * 主动离开房间\n**/\nasync function leaveRoom() { // eslint-disable-line\n try {\n if (roomStore.isMaster) {\n currentDialogType.value = DialogType.TransferDialog;\n return;\n }\n await closeMediaBeforeLeave();\n const response = await roomEngine.instance?.exitRoom();\n logger.log(`${logPrefix}leaveRoom:`, response);\n resetState();\n emit('on-exit-room', { code: 0, message: '' });\n } catch (error) {\n logger.error(`${logPrefix}leaveRoom error:`, error);\n }\n}\n\nasync function transferAndLeave() {\n if (!selectedUser.value) {\n return;\n }\n try {\n const userId = selectedUser.value;\n const changeUserRoleResponse = await roomEngine.instance?.changeUserRole({ userId, userRole: TUIRole.kRoomOwner });\n logger.log(`${logPrefix}transferAndLeave:`, changeUserRoleResponse);\n await closeMediaBeforeLeave();\n const exitRoomResponse = await roomEngine.instance?.exitRoom();\n logger.log(`${logPrefix}exitRoom:`, exitRoomResponse);\n basicStore.setSidebarOpenStatus(false);\n basicStore.setSidebarName('');\n resetState();\n emit('on-exit-room', { code: 0, message: '' });\n } catch (error) {\n logger.error(`${logPrefix}transferAndLeave error:`, error);\n }\n}\n\n/**\n * notification of room dismissal from the host\n *\n * 收到主持人解散房间通知\n**/\nconst onRoomDismissed = async (eventInfo: { roomId: string}) => {\n try {\n const { roomId } = eventInfo;\n logger.log(`${logPrefix}onRoomDismissed:`, roomId);\n ElMessageBox.alert(t('The host closed the room.'), t('Note'), {\n customClass: 'custom-element-class',\n confirmButtonText: t('Confirm'),\n appendTo: '#roomContainer',\n callback: async () => {\n resetState();\n emit('on-destroy-room', { code: 0, message: '' });\n },\n });\n } catch (error) {\n logger.error(`${logPrefix}onRoomDestroyed error:`, error);\n }\n};\n\n/**\n * By listening for a change in ownerId,\n * the audience receives a notification that the host has handed over the privileges\n *\n**/\n\nconst onUserRoleChanged = async (eventInfo: {userId: string, userRole: TUIRole }) => {\n if (eventInfo.userRole === TUIRole.kRoomOwner) {\n const { userId } = eventInfo;\n let newName = roomStore.getUserName(userId) || userId;\n if (userId === localUser.value.userId) {\n newName = t('me');\n }\n const tipMessage = `${t('Moderator changed to ')}${newName}`;\n ElMessage({\n type: 'success',\n message: tipMessage,\n });\n if (roomStore.localUser.userId === userId) {\n roomStore.setLocalUser({ userRole: TUIRole.kRoomOwner });\n } else {\n roomStore.setRemoteUserRole(userId, TUIRole.kRoomOwner);\n }\n roomStore.setMasterUserId(userId);\n resetState();\n if (roomStore.isAnchor) return;\n if (roomStore.isSpeakAfterTakingSeatMode) {\n await roomEngine.instance?.takeSeat({ seatIndex: -1, timeout: 0 });\n }\n }\n};\n\nTUIRoomEngine.once('ready', () => {\n roomEngine.instance?.on(TUIRoomEvents.onRoomDismissed, onRoomDismissed);\n roomEngine.instance?.on(TUIRoomEvents.onUserRoleChanged, onUserRoleChanged);\n});\n\nonUnmounted(() => {\n roomEngine.instance?.off(TUIRoomEvents.onRoomDismissed, onRoomDismissed);\n roomEngine.instance?.off(TUIRoomEvents.onUserRoleChanged, onUserRoleChanged);\n});\n\n\nreturn { __sfc: true,t, isShowLeaveRoomDialog, roomStore, basicStore, roomEngine, localUser, remoteAnchorList, stopMeeting, cancel, selectedUser, DialogType, logPrefix, title, currentDialogType, visible, closeMediaBeforeLeave, resetState, emit, dismissRoom, leaveRoom, transferAndLeave, onRoomDismissed, onUserRoleChanged, Dialog }\n}\n\n})","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./EndControlPC.vue?vue&type=script&setup=true&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./EndControlPC.vue?vue&type=script&setup=true&lang=ts&\"","import { render, staticRenderFns } from \"./EndControlPC.vue?vue&type=template&id=bcdd5c40&scoped=true&\"\nimport script from \"./EndControlPC.vue?vue&type=script&setup=true&lang=ts&\"\nexport * from \"./EndControlPC.vue?vue&type=script&setup=true&lang=ts&\"\nimport style0 from \"./EndControlPC.vue?vue&type=style&index=0&id=bcdd5c40&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"bcdd5c40\",\n null\n \n)\n\nexport default component.exports","import EndControlH5 from './EndControlH5.vue';\nimport EndControlPC from './EndControlPC.vue';\n\nimport { isMobile } from '../../../utils/useMediaValue';\n\nconst EndControl = isMobile ? EndControlH5 : EndControlPC;\n\nexport default EndControl;\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"camera-icon\"},[_c(_setup.SvgIcon,{directives:[{name:\"tap\",rawName:\"v-tap\",value:(_setup.handleSwitchCamera),expression:\"handleSwitchCamera\"}],attrs:{\"icon-name\":\"camera\",\"size\":\"custom\",\"custom-style\":{\n backgroundSize: '50%'\n }}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { defineComponent as _defineComponent } from 'vue'\nimport useGetRoomEngine from '../../../hooks/useRoomEngine';\nimport SvgIcon from '../../common/SvgIcon.vue';\nimport { storeToRefs } from 'pinia';\nimport { useBasicStore } from '../../../stores/basic';\nimport '../../../directives/vTap';\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'SwitchCamera',\n setup(__props) {\n\nconst basicStore = useBasicStore();\nconst { isFrontCamera } = storeToRefs(basicStore);\nconst roomEngine = useGetRoomEngine();\n\nasync function handleSwitchCamera() {\n await roomEngine.instance?.switchCamera({ isFrontCamera: !isFrontCamera.value });\n basicStore.setIsFrontCamera(!isFrontCamera.value);\n}\n\nreturn { __sfc: true,basicStore, isFrontCamera, roomEngine, handleSwitchCamera, SvgIcon }\n}\n\n})","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SwitchCamera.vue?vue&type=script&setup=true&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SwitchCamera.vue?vue&type=script&setup=true&lang=ts&\"","import { render, staticRenderFns } from \"./SwitchCamera.vue?vue&type=template&id=190ccb04&scoped=true&\"\nimport script from \"./SwitchCamera.vue?vue&type=script&setup=true&lang=ts&\"\nexport * from \"./SwitchCamera.vue?vue&type=script&setup=true&lang=ts&\"\nimport style0 from \"./SwitchCamera.vue?vue&type=style&index=0&id=190ccb04&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"190ccb04\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"mirror-icon\"},[_c(_setup.SvgIcon,{directives:[{name:\"tap\",rawName:\"v-tap\",value:(_setup.toogleMirrorStatus),expression:\"toogleMirrorStatus\"}],attrs:{\"icon-name\":\"mirror\",\"size\":\"custom\",\"custom-style\":{backgroundSize: '50%'}}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { defineComponent as _defineComponent } from 'vue'\nimport SvgIcon from '../../common/SvgIcon.vue';\nimport { useBasicStore } from '../../../stores/basic';\n\nimport useGetRoomEngine from '../../../hooks/useRoomEngine';\nimport { TRTCVideoMirrorType, TRTCVideoRotation, TRTCVideoFillMode } from '@tencentcloud/tuiroom-engine-js';\nimport '../../../directives/vTap';\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'SwitchMirror',\n setup(__props) {\n\nconst roomEngine = useGetRoomEngine();\nconst basicStore = useBasicStore();\n\nfunction toogleMirrorStatus() {\n const trtcCloud = roomEngine.instance?.getTRTCCloud();\n trtcCloud?.setLocalRenderParams({\n mirrorType:\n basicStore.isLocalStreamMirror\n ? TRTCVideoMirrorType.TRTCVideoMirrorType_Enable : TRTCVideoMirrorType.TRTCVideoMirrorType_Disable,\n rotation: TRTCVideoRotation.TRTCVideoRotation0,\n fillMode: TRTCVideoFillMode.TRTCVideoFillMode_Fill,\n });\n basicStore.setIsLocalStreamMirror(basicStore.isLocalStreamMirror);\n basicStore.isLocalStreamMirror = !basicStore.isLocalStreamMirror;\n}\n\n\nreturn { __sfc: true,roomEngine, basicStore, toogleMirrorStatus, SvgIcon }\n}\n\n})","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SwitchMirror.vue?vue&type=script&setup=true&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SwitchMirror.vue?vue&type=script&setup=true&lang=ts&\"","import { render, staticRenderFns } from \"./SwitchMirror.vue?vue&type=template&id=9a54a9ea&scoped=true&\"\nimport script from \"./SwitchMirror.vue?vue&type=script&setup=true&lang=ts&\"\nexport * from \"./SwitchMirror.vue?vue&type=script&setup=true&lang=ts&\"\nimport style0 from \"./SwitchMirror.vue?vue&type=style&index=0&id=9a54a9ea&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"9a54a9ea\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"conference-container\"},[(_setup.isShowRoomInfoTitle)?_c('div',{on:{\"click\":_setup.toggleShowRoomInfoStatus}},[_c('div',{staticClass:\"title-container\"},[_c('span',{staticClass:\"text\"},[_vm._v(_vm._s(_setup.conferenceTitle))]),_c('span',{staticClass:\"chevron-down-container\"},[_c(_setup.SvgIcon,{staticClass:\"chevron-down-icon\",attrs:{\"size\":\"custom\",\"icon-name\":\"chevron-down\"}})],1)])]):_vm._e(),(_setup.isShowRoomInfo)?_c('div',{staticClass:\"roomInfo-container\"},[_c('div',{ref:\"roomInfoRef\",staticClass:\"roomInfo-container-main\"},[_c('div',{staticClass:\"roomInfo-title\"},[_c('span',{staticClass:\"master-header\"},[_vm._v(_vm._s(_setup.conferenceTitle))]),_c('span',{staticClass:\"cancel\",on:{\"click\":_setup.handleHiddenRoomInfo}},[_vm._v(_vm._s(_setup.t('Cancel')))])]),_c('div',{staticClass:\"roomInfo-middle\"},[_c('div',{staticClass:\"roomInfo-role\"},[_c('span',[_vm._v(_vm._s(_setup.t('Host')))]),_c('span',{staticClass:\"text-right\"},[_vm._v(_vm._s(_setup.masterUserName))])]),_c('div',{staticClass:\"roomInfo-roomMode\"},[_c('span',{staticClass:\"middle-left\"},[_vm._v(_vm._s(_setup.t('Room Type')))]),_c('span',{staticClass:\"text-type\"},[_vm._v(_vm._s(_setup.roomType))])]),_c('div',{staticClass:\"roomInfo-roomID\"},[_c('span',{staticClass:\"middle-left\"},[_vm._v(_vm._s(_setup.t('Room ID')))]),_c('span',{staticClass:\"text-right\"},[_vm._v(_vm._s(_setup.roomId))]),_c(_setup.SvgIcon,{staticClass:\"copy\",attrs:{\"icon-name\":\"copy-icon\",\"size\":\"custom\"},on:{\"click\":function($event){return _setup.onCopy(_setup.roomId)}}})],1),(!_setup.isWeChat)?_c('div',{staticClass:\"roomInfo-roomID\"},[_c('span',[_vm._v(_vm._s(_setup.t('Room Link')))]),_c('span',{staticClass:\"link\"},[_vm._v(_vm._s(_setup.inviteLink))]),_c(_setup.SvgIcon,{staticClass:\"copy\",attrs:{\"icon-name\":\"copy-icon\"},on:{\"click\":function($event){return _setup.onCopy(_setup.inviteLink)}}})],1):_vm._e()]),(!_setup.isWeChat)?_c('div',{staticClass:\"roomInfo-bottom\"},[_c('span',[_vm._v(_vm._s(_setup.t('You can share the room number or link to invite more people to join the room.')))])]):_vm._e()])]):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { defineComponent as _defineComponent } from 'vue'\nimport { ref, computed, onMounted, onUnmounted } from 'vue';\nimport { useI18n } from '../../../locales';\nimport { useBasicStore } from '../../../stores/basic';\nimport { useRoomStore } from '../../../stores/room';\nimport { storeToRefs } from 'pinia';\nimport SvgIcon from '../../common/SvgIcon.vue';\nimport { ElMessage } from '../../../elementComp';\nimport { isWeChat } from '../../../utils/useMediaValue';\nimport { clipBoard } from '../../../utils/utils';\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'RoomInfo',\n setup(__props) {\n\nconst basicStore = useBasicStore();\nconst roomStore = useRoomStore();\nconst { roomId } = storeToRefs(basicStore);\nconst { masterUserId } = storeToRefs(roomStore);\nconst { t } = useI18n();\nconst roomInfoRef = ref();\nconst isShowRoomInfo = ref(false);\nconst roomType = computed(() => (roomStore.isFreeSpeakMode ? t('Free Speech Room') : t('Raise Hand Room')));\n\nconst { origin, pathname } = location || {};\nconst inviteLink = computed(() => `${origin}${pathname}#/home?roomId=${roomId.value}`);\n\nconst masterUserName = computed(() => (roomStore.getUserName(masterUserId.value)) || masterUserId.value);\n\nconst isShowRoomInfoTitle = computed(() => (masterUserName.value));\n\nconst conferenceTitle = computed(() => `${masterUserName.value}${t('video conferencing')}`);\n\nfunction toggleShowRoomInfoStatus() {\n isShowRoomInfo.value = !isShowRoomInfo.value;\n}\n\nasync function onCopy(value: string | number) {\n try {\n await clipBoard(value);\n ElMessage({\n message: t('Copied successfully'),\n type: 'success',\n });\n } catch (error) {\n ElMessage({\n message: t('Copied failure'),\n type: 'error',\n });\n }\n}\n\nfunction handleDocumentClick(event: MouseEvent) {\n if (isShowRoomInfo.value && !roomInfoRef.value.contains(event.target)) {\n isShowRoomInfo.value = false;\n }\n}\n\nfunction handleHiddenRoomInfo() {\n isShowRoomInfo.value = false;\n}\n\n\nonMounted(() => {\n document?.addEventListener('click', handleDocumentClick, true);\n});\n\nonUnmounted(() => {\n document?.removeEventListener('click', handleDocumentClick, true);\n});\n\n\nreturn { __sfc: true,basicStore, roomStore, roomId, masterUserId, t, roomInfoRef, isShowRoomInfo, roomType, origin, pathname, inviteLink, masterUserName, isShowRoomInfoTitle, conferenceTitle, toggleShowRoomInfoStatus, onCopy, handleDocumentClick, handleHiddenRoomInfo, SvgIcon, isWeChat }\n}\n\n})","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./RoomInfo.vue?vue&type=script&setup=true&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./RoomInfo.vue?vue&type=script&setup=true&lang=ts&\"","import { render, staticRenderFns } from \"./RoomInfo.vue?vue&type=template&id=543146aa&scoped=true&\"\nimport script from \"./RoomInfo.vue?vue&type=script&setup=true&lang=ts&\"\nexport * from \"./RoomInfo.vue?vue&type=script&setup=true&lang=ts&\"\nimport style0 from \"./RoomInfo.vue?vue&type=style&index=0&id=543146aa&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"543146aa\",\n null\n \n)\n\nexport default component.exports","/**\n * 需要配置 isUploadLoaded, aegisId, projectName\n * isUploadLoaded: 上传 loaded 事件\n * isUploadDetailEvent: 上传 loaded 及其他操作事件\n * aegisId: aegis Id\n * projectName: 项目名称\n */\n\nconst IS_LOCAL = location.protocol === 'file:' || location.hostname === 'localhost' || location.hostname === '127.0.0.1';\nconst IS_OFFICIAL_DEMO = location.host === 'web.sdk.qcloud.com';\n\nconst isUploadLoaded = IS_LOCAL || IS_OFFICIAL_DEMO;\n\nconst isUploadDetailEvent = IS_OFFICIAL_DEMO;\n\nconst aegisId = 'iHWefAYqCFrCVqqyIZ';\n\nconst projectName = 'TUIRoomKit-Web-vue2';\n\nexport {\n isUploadLoaded,\n isUploadDetailEvent,\n aegisId,\n projectName,\n};\n","\nimport { isUploadLoaded, isUploadDetailEvent, aegisId, projectName } from './config';\n\nlet aegis: any;\n\nconst script = document.createElement('script');\nscript.type = 'text/javascript';\nscript.src = 'https://cdn-go.cn/aegis/aegis-sdk/latest/aegis.min.js';\ndocument.getElementsByTagName('head')[0].appendChild(script);\n\nscript.onload = () => {\n // @ts-ignore\n // eslint-disable-next-line no-undef\n aegis = new Aegis({\n id: aegisId,\n uin: '',\n reportApiSpeed: true, // 接口测速\n reportAssetSpeed: true, // 静态资源测速\n spa: true, // spa 页面开启\n });\n if (roomAegis.storedReportEventList) {\n roomAegis.storedReportEventList.forEach((data) => {\n aegis.reportEvent(data);\n });\n }\n};\n\nclass TUIRoomAegis {\n private sdkAppId: number = 0;\n private projectName: string = projectName;\n private isUploadLoaded: boolean = isUploadLoaded;\n private isUploadDetailEvent: boolean = isUploadDetailEvent;\n private hasUploadedEventList: Array = [];\n\n storedReportEventList: Array = [];\n\n setSdkAppId(sdkAppId: number) {\n this.sdkAppId = sdkAppId;\n }\n\n reportEvent(data: { name: string, ext1: string }) {\n if (!this.isUploadLoaded) {\n return;\n }\n const { name: eventName, ext1: eventDesc } = data;\n if (this.isUploadDetailEvent || eventName === 'loaded') {\n const uploadData = { ...data, ext2: this.projectName, ext3: this.sdkAppId };\n if (aegis) {\n if (this.hasUploadedEventList.indexOf(`${eventName}_${eventDesc}`) < 0) {\n this.hasUploadedEventList.push(`${eventName}_${eventDesc}`);\n aegis.reportEvent(uploadData);\n }\n } else {\n this.storedReportEventList.push(uploadData);\n }\n }\n }\n}\n\nconst roomAegis = new TUIRoomAegis();\n\nexport default roomAegis;\n","import { defineComponent as _defineComponent } from 'vue'\nimport EndControl from '../../RoomFooter/EndControl';\nimport SwitchCamera from './SwitchCamera.vue';\nimport SwitchMirror from './SwitchMirror.vue';\nimport RoomInfo from './RoomInfo.vue';\nimport TUIRoomAegis from '../../../utils/aegis';\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'index',\n emits: ['log-out', 'on-destroy-room', 'on-exit-room'],\n setup(__props, { emit }) {\n\n\n\nconst onDestroyRoom = (info: { code: number; message: string }) => {\n emit('on-destroy-room', info);\n TUIRoomAegis.reportEvent({ name: 'destroyRoom', ext1: 'destroyRoom-success' });\n};\n\nconst onExitRoom = (info: { code: number; message: string }) => {\n emit('on-exit-room', info);\n TUIRoomAegis.reportEvent({ name: 'exitRoom', ext1: 'exitRoom-success' });\n};\n\n\nreturn { __sfc: true,emit, onDestroyRoom, onExitRoom, EndControl, SwitchCamera, SwitchMirror, RoomInfo }\n}\n\n})","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&setup=true&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&setup=true&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=1262e4e7&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&setup=true&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&setup=true&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=1262e4e7&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1262e4e7\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"header-container\"},[_c('div',{staticClass:\"left-container\"},[_c(_setup.UserInfo,{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showHeaderInfo),expression:\"showHeaderInfo\"}],staticClass:\"header-item user-info\",attrs:{\"user-id\":_setup.userId,\"user-name\":_setup.userName,\"avatar-url\":_setup.avatarUrl},on:{\"log-out\":function($event){return _vm.$emit('log-out')}}}),_c(_setup.Language,{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showHeaderInfo),expression:\"showHeaderInfo\"}],staticClass:\"header-item language\"}),_c(_setup.SwitchTheme,{staticClass:\"header-item theme\"})],1),_c('div',{staticClass:\"right-container\"},[_c(_setup.LayoutControl,{staticClass:\"right-container-item\"})],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return (_setup.streamNumber > 1)?_c('div',{staticClass:\"layout-container\"},[_c(_setup.SvgIcon,{staticClass:\"layout-icon\",attrs:{\"icon-name\":\"layout\",\"size\":\"medium\"},on:{\"click\":function($event){$event.stopPropagation();return _setup.handleClickLayoutIcon.apply(null, arguments)}}}),(_setup.showLayoutList)?_c('div',{ref:\"layoutList\",staticClass:\"layout-list\"},[_c('div',{class:['layout1', 'layout-item', `${_setup.layout === _setup.LAYOUT.NINE_EQUAL_POINTS ? 'checked' : ''}`],on:{\"click\":function($event){return _setup.handleClick(_setup.LAYOUT.NINE_EQUAL_POINTS)}}},[_c('div',{staticClass:\"layout-block-container\"},_vm._l((new Array(9).fill('')),function(item,index){return _c('div',{key:index,staticClass:\"layout-block\"})}),0),_c('span',{staticClass:\"layout-title\"},[_vm._v(_vm._s(_setup.t('Grid')))])]),_c('div',{class:['layout2', 'layout-item', `${_setup.layout === _setup.LAYOUT.RIGHT_SIDE_LIST ? 'checked' : ''}`],on:{\"click\":function($event){return _setup.handleClick(_setup.LAYOUT.RIGHT_SIDE_LIST)}}},[_c('div',{staticClass:\"layout-block-container\"},[_c('div',{staticClass:\"left-container\"}),_c('div',{staticClass:\"right-container\"},_vm._l((new Array(4).fill('')),function(item,index){return _c('div',{key:index,staticClass:\"layout-block\"})}),0)]),_c('span',{staticClass:\"layout-title\"},[_vm._v(_vm._s(_setup.t('Gallery on right')))])]),_c('div',{class:['layout3', 'layout-item', `${_setup.layout === _setup.LAYOUT.TOP_SIDE_LIST ? 'checked' : ''}`],on:{\"click\":function($event){return _setup.handleClick(_setup.LAYOUT.TOP_SIDE_LIST)}}},[_c('div',{staticClass:\"layout-block-container\"},[_c('div',{staticClass:\"top-container\"},_vm._l((new Array(4).fill('')),function(item,index){return _c('div',{key:index,staticClass:\"layout-block\"})}),0),_c('div',{staticClass:\"bottom-container\"})]),_c('span',{staticClass:\"layout-title\"},[_vm._v(_vm._s(_setup.t('Gallery at top')))])])]):_vm._e()],1):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { defineComponent as _defineComponent } from 'vue'\nimport { ref, Ref } from 'vue';\nimport SvgIcon from '../../common/SvgIcon.vue';\nimport { LAYOUT } from '../../../constants/render';\nimport { useBasicStore } from '../../../stores/basic';\nimport { useRoomStore } from '../../../stores/room';\nimport { storeToRefs } from 'pinia';\nimport TUIRoomAegis from '../../../utils/aegis';\nimport { useI18n } from '../../../locales';\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'LayoutControl',\n setup(__props) {\n\nconst { t } = useI18n();\n\nconst basicStore = useBasicStore();\nconst { layout } = storeToRefs(basicStore);\nconst roomStore = useRoomStore();\nconst { streamNumber } = storeToRefs(roomStore);\n\nconst showLayoutList:Ref = ref(false);\nconst layoutList:Ref = ref(null);\n\nfunction handleClick(layout: any) {\n basicStore.setLayout(layout);\n TUIRoomAegis.reportEvent({ name: 'layout', ext1: layout });\n}\n\nfunction handleClickLayoutIcon() {\n if (!showLayoutList.value) {\n showLayoutList.value = true;\n document.addEventListener('click', handleDocumentClick, false);\n } else {\n document.removeEventListener('click', handleDocumentClick, false);\n showLayoutList.value = false;\n }\n}\n\nfunction handleDocumentClick(event: MouseEvent) {\n if (showLayoutList.value && layoutList.value && !layoutList.value.contains(event.target as Node)) {\n document.removeEventListener('click', handleDocumentClick);\n showLayoutList.value = false;\n }\n}\n\n\nreturn { __sfc: true,t, basicStore, layout, roomStore, streamNumber, showLayoutList, layoutList, handleClick, handleClickLayoutIcon, handleDocumentClick, SvgIcon, LAYOUT }\n}\n\n})","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./LayoutControl.vue?vue&type=script&setup=true&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./LayoutControl.vue?vue&type=script&setup=true&lang=ts&\"","import { render, staticRenderFns } from \"./LayoutControl.vue?vue&type=template&id=7b3fd23b&scoped=true&\"\nimport script from \"./LayoutControl.vue?vue&type=script&setup=true&lang=ts&\"\nexport * from \"./LayoutControl.vue?vue&type=script&setup=true&lang=ts&\"\nimport style0 from \"./LayoutControl.vue?vue&type=style&index=0&id=7b3fd23b&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7b3fd23b\",\n null\n \n)\n\nexport default component.exports","import { defineComponent as _defineComponent } from 'vue'\nimport UserInfo from '../UserInfo';\nimport Language from '../../base/Language.vue';\nimport SwitchTheme from '../../base/SwitchTheme.vue';\n// import NetworkInfo from './NetworkInfo.vue';\n/**\n * [info] Functions to be improved\n *\n * 【info】功能待完善\n**/\n// import InfoControl from './InfoControl.vue';\nimport LayoutControl from './LayoutControl.vue';\nimport { useBasicStore } from '../../../stores/basic';\nimport { storeToRefs } from 'pinia';\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'index',\n props: {\n showHeaderInfo: { type: Boolean, default: true }\n },\n emits: ['log-out'],\n setup(__props: any) {\n\nconst basicStore = useBasicStore();\n\nconst { userId, userName, avatarUrl } = storeToRefs(basicStore);\n\n\n\n\n\n\nreturn { __sfc: true,basicStore, userId, userName, avatarUrl, UserInfo, Language, SwitchTheme, LayoutControl }\n}\n\n})","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&setup=true&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&setup=true&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=20e9e128&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&setup=true&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&setup=true&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=20e9e128&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"20e9e128\",\n null\n \n)\n\nexport default component.exports","import indexH5 from '../roomHeaderH5/index.vue';\nimport indexPC from '../roomHeaderPC/index.vue';\n\nimport { isMobile } from '../../../utils/useMediaValue';\n\nconst index = isMobile ? indexH5 : indexPC;\n\nexport default index;\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"footer-container\"},[_c('div',{staticClass:\"left-container\"},[_c(_setup.AudioControl,{directives:[{name:\"tap\",rawName:\"v-tap\",value:(() => _setup.handleControlClick('audioControl')),expression:\"() => handleControlClick('audioControl')\"}]}),_c(_setup.VideoControl,{directives:[{name:\"tap\",rawName:\"v-tap\",value:(() => _setup.handleControlClick('videoControl')),expression:\"() => handleControlClick('videoControl')\"}]}),(!_setup.roomStore.isSpeakAfterTakingSeatMode)?_c(_setup.ChatControl,{directives:[{name:\"tap\",rawName:\"v-tap\",value:(() => _setup.handleControlClick('chatControl')),expression:\"() => handleControlClick('chatControl')\"}]}):_c(_setup.ApplyControl,{directives:[{name:\"tap\",rawName:\"v-tap\",value:(() => _setup.handleControlClick('applyControl')),expression:\"() => handleControlClick('applyControl')\"}]}),(_setup.roomStore.isMaster)?_c(_setup.ManageMemberControl,{directives:[{name:\"tap\",rawName:\"v-tap\",value:(() => _setup.handleControlClick('manageMemberControl')),expression:\"() => handleControlClick('manageMemberControl')\"}]}):_vm._e(),_c(_setup.MoreControl,{directives:[{name:\"tap\",rawName:\"v-tap\",value:(() => _setup.handleControlClick('moreControl')),expression:\"() => handleControlClick('moreControl')\"}]})],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_c('div',{staticClass:\"audio-control-container\",on:{\"click\":function($event){return _setup.emits('click')}}},[_c(_setup.IconButton,{ref:\"audioIconButtonRef\",attrs:{\"is-active\":!_setup.localStream.hasAudioStream,\"title\":_setup.t('Mic'),\"has-more\":_setup.hasMore,\"show-more\":_setup.showAudioSettingTab,\"disabled\":_setup.isLocalAudioIconDisable},on:{\"click-icon\":_setup.toggleMuteAudio,\"click-more\":_setup.handleMore}},[_c(_setup.AudioIcon,{attrs:{\"audio-volume\":_setup.localStream.audioVolume,\"is-muted\":!_setup.localStream.hasAudioStream,\"is-disabled\":_setup.isLocalAudioIconDisable}})],1),_c(_setup.AudioSettingTab,{directives:[{name:\"show\",rawName:\"v-show\",value:(_setup.showAudioSettingTab),expression:\"showAudioSettingTab\"}],ref:\"audioSettingRef\",staticClass:\"audio-tab\"})],1),_c(_setup.Dialog,{staticClass:\"custom-element-class\",attrs:{\"model-value\":_setup.showRequestOpenMicDialog,\"title\":_setup.title,\"modal\":false,\"show-close\":false,\"append-to-body\":true,\"close-on-click-modal\":false,\"close-on-press-escape\":false,\"width\":\"500px\"},scopedSlots:_vm._u([{key:\"footer\",fn:function(){return [_c('div',{class:[_setup.isMobile ? 'button-container-mobile' : 'button-container-PC']},[_c('span',{staticClass:\"cancel\",on:{\"click\":_setup.handleReject}},[_vm._v(_vm._s(_setup.t('Keep it closed')))]),_c('span',{staticClass:\"agree\",on:{\"click\":_setup.handleAccept}},[_vm._v(_vm._s(_setup.t('Turn on the microphone')))])])]},proxy:true}])},[_c('span',[_vm._v(\" \"+_vm._s(_setup.t('The host invites you to turn on the microphone'))+\" \")])])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { defineComponent as _defineComponent } from 'vue'\nimport { ref, onMounted, Ref, onUnmounted, computed } from 'vue';\nimport { storeToRefs } from 'pinia';\nimport { ElMessageBox, ElMessage } from '../../elementComp';\nimport Dialog from '../../elementComp/Dialog';\nimport IconButton from '../common/IconButton.vue';\nimport AudioSettingTab from '../base/AudioSettingTab.vue';\nimport { useRoomStore } from '../../stores/room';\nimport AudioIcon from '../base/AudioIcon.vue';\nimport { WARNING_MESSAGE, MESSAGE_DURATION } from '../../constants/message';\nimport { useI18n } from '../../locales';\nimport TUIRoomEngine, { TUIRoomEvents, TUIRequest, TUIRequestAction } from '@tencentcloud/tuiroom-engine-js';\nimport useRoomEngine from '../../hooks/useRoomEngine';\nimport { isMobile, isWeChat } from '../../utils/useMediaValue';\n\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'AudioControl',\n emits: ['click'],\n setup(__props, { emit: emits }) {\n\nconst roomEngine = useRoomEngine();\n\nconst roomStore = useRoomStore();\nconst {\n isAudience,\n localStream,\n isLocalAudioIconDisable,\n isMicrophoneDisableForAllUser,\n} = storeToRefs(roomStore);\n\n\nconst hasMore = computed(() => !isMobile);\nconst showAudioSettingTab: Ref = ref(false);\nconst audioIconButtonRef = ref>();\nconst audioSettingRef = ref>();\nconst { t } = useI18n();\nconst title = computed(() => (isMobile ? '' : t('Tips')));\n\nasync function toggleMuteAudio() {\n if (isLocalAudioIconDisable.value) {\n let warningMessage = '';\n if (isMicrophoneDisableForAllUser.value) {\n warningMessage = WARNING_MESSAGE.UNMUTE_LOCAL_MIC_FAIL_MUTE_ALL;\n } else if (isAudience.value) {\n warningMessage = WARNING_MESSAGE.UNMUTE_LOCAL_MIC_FAIL_AUDIENCE;\n }\n ElMessage({\n type: 'warning',\n message: t(warningMessage),\n duration: MESSAGE_DURATION.NORMAL,\n });\n return;\n }\n if (localStream.value.hasAudioStream) {\n await roomEngine.instance?.closeLocalMicrophone();\n // 如果是全员禁言状态下,用户主动关闭麦克风之后不能再自己打开\n if (roomStore.isMicrophoneDisableForAllUser) {\n roomStore.setCanControlSelfAudio(false);\n }\n } else {\n const microphoneList = await roomEngine.instance?.getMicDevicesList();\n const hasMicrophoneDevice = microphoneList.length > 0;\n if (!hasMicrophoneDevice && !isWeChat) {\n // 无麦克风列表\n ElMessageBox.alert(t('Microphone not detected on current device.'), t('Note'), {\n customClass: 'custom-element-class',\n confirmButtonText: t('Confirm'),\n });\n return;\n }\n // 有麦克风列表且有权限\n await roomEngine.instance?.openLocalMicrophone();\n }\n showAudioSettingTab.value = false;\n}\n\nfunction handleMore() {\n if (!showAudioSettingTab.value) {\n showAudioSettingTab.value = true;\n } else {\n showAudioSettingTab.value = false;\n }\n}\n\nfunction handleDocumentClick(event: MouseEvent) {\n if (\n showAudioSettingTab.value\n && !audioIconButtonRef.value?.$el.contains(event.target)\n && !audioSettingRef.value?.$el.contains(event.target)\n ) {\n showAudioSettingTab.value = false;\n }\n}\n\n// -------- 处理主持人打开/关闭麦克风信令 --------\nconst showRequestOpenMicDialog: Ref = ref(false);\nconst requestOpenMicRequestId: Ref = ref('');\nasync function onRequestReceived(eventInfo: { request: TUIRequest }) {\n const { requestAction, requestId } = eventInfo.request;\n // 主持人邀请打开麦克风,同意之后将会自动打开麦克风\n if (requestAction === TUIRequestAction.kRequestToOpenRemoteMicrophone) {\n requestOpenMicRequestId.value = requestId;\n showRequestOpenMicDialog.value = true;\n }\n}\n\n// 接受主持人邀请,打开麦克风\nasync function handleAccept() {\n roomStore.setCanControlSelfAudio(true);\n await roomEngine.instance?.responseRemoteRequest({\n requestId: requestOpenMicRequestId.value,\n agree: true,\n });\n requestOpenMicRequestId.value = '';\n showRequestOpenMicDialog.value = false;\n}\n\n// 保持静音\nasync function handleReject() {\n await roomEngine.instance?.responseRemoteRequest({\n requestId: requestOpenMicRequestId.value,\n agree: false });\n requestOpenMicRequestId.value = '';\n showRequestOpenMicDialog.value = false;\n}\n\n// 请求被取消\nasync function onRequestCancelled(eventInfo: { requestId: string }) {\n const { requestId } = eventInfo;\n if (requestOpenMicRequestId.value === requestId) {\n showRequestOpenMicDialog.value = false;\n }\n}\n\nonMounted(() => {\n document?.addEventListener('click', handleDocumentClick, true);\n});\n\nTUIRoomEngine.once('ready', () => {\n roomEngine.instance?.on(TUIRoomEvents.onRequestReceived, onRequestReceived);\n roomEngine.instance?.on(TUIRoomEvents.onRequestCancelled, onRequestCancelled);\n});\n\nonUnmounted(() => {\n document?.removeEventListener('click', handleDocumentClick, true);\n\n roomEngine.instance?.off(TUIRoomEvents.onRequestReceived, onRequestReceived);\n roomEngine.instance?.off(TUIRoomEvents.onRequestCancelled, onRequestCancelled);\n});\n\n\nreturn { __sfc: true,roomEngine, roomStore, isAudience, localStream, isLocalAudioIconDisable, isMicrophoneDisableForAllUser, emits, hasMore, showAudioSettingTab, audioIconButtonRef, audioSettingRef, t, title, toggleMuteAudio, handleMore, handleDocumentClick, showRequestOpenMicDialog, requestOpenMicRequestId, onRequestReceived, handleAccept, handleReject, onRequestCancelled, Dialog, IconButton, AudioSettingTab, AudioIcon, isMobile }\n}\n\n})","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./AudioControl.vue?vue&type=script&setup=true&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./AudioControl.vue?vue&type=script&setup=true&lang=ts&\"","import { render, staticRenderFns } from \"./AudioControl.vue?vue&type=template&id=357aa832&scoped=true&\"\nimport script from \"./AudioControl.vue?vue&type=script&setup=true&lang=ts&\"\nexport * from \"./AudioControl.vue?vue&type=script&setup=true&lang=ts&\"\nimport style0 from \"./AudioControl.vue?vue&type=style&index=0&id=357aa832&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"357aa832\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_c('div',{staticClass:\"video-control-container\",on:{\"click\":function($event){return _setup.emits('click')}}},[_c(_setup.IconButton,{ref:\"videoIconButtonRef\",attrs:{\"is-active\":!_setup.localStream.hasVideoStream,\"title\":_setup.t('Camera'),\"icon-name\":_setup.iconName,\"has-more\":_setup.hasMore,\"disabled\":_setup.isLocalVideoIconDisable},on:{\"click-icon\":_setup.toggleMuteVideo,\"click-more\":_setup.handleMore}}),_c(_setup.VideoSettingTab,{directives:[{name:\"show\",rawName:\"v-show\",value:(_setup.showVideoSettingTab),expression:\"showVideoSettingTab\"}],ref:\"videoSettingRef\",staticClass:\"video-tab\"})],1),_c(_setup.Dialog,{staticClass:\"custom-element-class\",attrs:{\"model-value\":_setup.showRequestOpenCameraDialog,\"title\":_setup.title,\"modal\":false,\"show-close\":false,\"append-to-body\":true,\"close-on-click-modal\":false,\"close-on-press-escape\":false,\"width\":\"500px\"},scopedSlots:_vm._u([{key:\"footer\",fn:function(){return [_c('div',{class:[_setup.isMobile ? 'button-container-mobile' : 'button-container-PC']},[_c('span',{staticClass:\"cancel\",on:{\"click\":_setup.handleReject}},[_vm._v(_vm._s(_setup.t('Keep it closed')))]),_c('span',{staticClass:\"agree\",on:{\"click\":_setup.handleAccept}},[_vm._v(_vm._s(_setup.t('Turn on the camera')))])])]},proxy:true}])},[_c('span',[_vm._v(\" \"+_vm._s(_setup.t('The host invites you to turn on the camera'))+\" \")])])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { defineComponent as _defineComponent } from 'vue'\nimport { ref, computed, onMounted, onUnmounted, Ref } from 'vue';\nimport { storeToRefs } from 'pinia';\nimport { ElMessageBox, ElMessage } from '../../elementComp';\nimport Dialog from '../../elementComp/Dialog';\nimport IconButton from '../common/IconButton.vue';\nimport VideoSettingTab from '../base/VideoSettingTab.vue';\n\nimport { useRoomStore } from '../../stores/room';\nimport { ICON_NAME } from '../../constants/icon';\nimport { WARNING_MESSAGE, MESSAGE_DURATION } from '../../constants/message';\nimport { useI18n } from '../../locales';\n\nimport useGetRoomEngine from '../../hooks/useRoomEngine';\nimport TUIRoomEngine, { TUIVideoStreamType, TUIRoomEvents, TUIRequest, TUIRequestAction } from '@tencentcloud/tuiroom-engine-js';\nimport { isMobile, isWeChat } from '../../utils/useMediaValue';\nimport { useBasicStore } from '../../stores/basic';\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'VideoControl',\n emits: ['click'],\n setup(__props, { emit: emits }) {\n\nconst roomEngine = useGetRoomEngine();\n\nconst roomStore = useRoomStore();\nconst basicStore = useBasicStore();\nconst isFrontCamera: Ref = ref(basicStore.isFrontCamera);\n\n\nconst {\n isCameraDisableForAllUser,\n isAudience,\n localStream,\n isLocalVideoIconDisable,\n} = storeToRefs(roomStore);\nconst { t } = useI18n();\nconst hasMore = computed(() => !isMobile);\nconst showVideoSettingTab: Ref = ref(false);\nconst videoIconButtonRef = ref>();\nconst videoSettingRef = ref>();\nconst title = computed(() => (isMobile ? '' : t('Tips')));\n\nconst iconName = computed(() => {\n if (isLocalVideoIconDisable.value) {\n return ICON_NAME.CameraOffDisabled;\n }\n return localStream.value.hasVideoStream ? ICON_NAME.CameraOn : ICON_NAME.CameraOff;\n});\n\nasync function toggleMuteVideo() {\n if (isLocalVideoIconDisable.value) {\n let warningMessage = '';\n if (isCameraDisableForAllUser.value) {\n warningMessage = WARNING_MESSAGE.UNMUTE_LOCAL_CAMERA_FAIL_MUTE_ALL;\n } else if (isAudience.value) {\n warningMessage = WARNING_MESSAGE.UNMUTE_LOCAL_CAMERA_FAIL_AUDIENCE;\n }\n ElMessage({\n type: 'warning',\n message: t(warningMessage),\n duration: MESSAGE_DURATION.NORMAL,\n });\n return;\n }\n\n if (localStream.value.hasVideoStream) {\n await roomEngine.instance?.closeLocalCamera();\n // 如果是全员禁画状态下,用户主动关闭摄像头之后不能再自己打开\n if (roomStore.isCameraDisableForAllUser) {\n roomStore.setCanControlSelfVideo(false);\n }\n } else {\n const cameraList = await roomEngine.instance?.getCameraDevicesList();\n const hasCameraDevice = cameraList.length > 0;\n // 无摄像头列表\n if (!hasCameraDevice && !isWeChat) {\n ElMessageBox.alert(t('Camera not detected on current device'), t('Note'), {\n customClass: 'custom-element-class',\n confirmButtonText: t('Confirm'),\n });\n return;\n }\n // 有摄像头列表\n roomEngine.instance?.setLocalVideoView({\n view: `${roomStore.localStream.userId}_${roomStore.localStream.streamType}`,\n streamType: TUIVideoStreamType.kCameraStream,\n });\n if (isMobile) {\n await roomEngine.instance?.openLocalCamera({ isFrontCamera: isFrontCamera.value });\n } else {\n await roomEngine.instance?.openLocalCamera();\n }\n }\n showVideoSettingTab.value = false;\n}\n\nfunction handleMore() {\n if (!showVideoSettingTab.value) {\n showVideoSettingTab.value = true;\n } else {\n showVideoSettingTab.value = false;\n }\n}\n\nfunction handleDocumentClick(event: MouseEvent) {\n if (\n showVideoSettingTab.value\n && !videoIconButtonRef.value?.$el.contains(event.target)\n && !videoSettingRef.value?.$el.contains(event.target)\n ) {\n showVideoSettingTab.value = false;\n }\n}\n\n// -------- 处理主持人打开/关闭摄像头信令 --------\nconst showRequestOpenCameraDialog: Ref = ref(false);\nconst requestOpenCameraRequestId: Ref = ref('');\nasync function onRequestReceived(eventInfo: { request: TUIRequest }) {\n const { requestAction, requestId } = eventInfo.request;\n // 主持人邀请打开麦克风,同意之后将会自动打开摄像头\n if (requestAction === TUIRequestAction.kRequestToOpenRemoteCamera) {\n requestOpenCameraRequestId.value = requestId;\n showRequestOpenCameraDialog.value = true;\n }\n}\n\n// 接受主持人邀请,打开摄像头\nasync function handleAccept() {\n roomStore.setCanControlSelfVideo(true);\n roomEngine.instance?.setLocalVideoView({\n view: `${roomStore.localStream.userId}_${roomStore.localStream.streamType}`,\n streamType: TUIVideoStreamType.kCameraStream,\n });\n await roomEngine.instance?.responseRemoteRequest({\n requestId: requestOpenCameraRequestId.value,\n agree: true,\n });\n requestOpenCameraRequestId.value = '';\n showRequestOpenCameraDialog.value = false;\n}\n\n// 保持静音\nasync function handleReject() {\n await roomEngine.instance?.responseRemoteRequest({\n requestId: requestOpenCameraRequestId.value,\n agree: false,\n });\n requestOpenCameraRequestId.value = '';\n showRequestOpenCameraDialog.value = false;\n}\n\n// 请求被取消\nasync function onRequestCancelled(eventInfo: { requestId: string }) {\n const { requestId } = eventInfo;\n if (requestOpenCameraRequestId.value === requestId) {\n showRequestOpenCameraDialog.value = false;\n }\n}\n\nonMounted(() => {\n document?.addEventListener('click', handleDocumentClick, true);\n});\n\nTUIRoomEngine.once('ready', () => {\n roomEngine.instance?.on(TUIRoomEvents.onRequestReceived, onRequestReceived);\n roomEngine.instance?.on(TUIRoomEvents.onRequestCancelled, onRequestCancelled);\n});\n\nonUnmounted(() => {\n document?.removeEventListener('click', handleDocumentClick, true);\n\n roomEngine.instance?.off(TUIRoomEvents.onRequestReceived, onRequestReceived);\n roomEngine.instance?.off(TUIRoomEvents.onRequestCancelled, onRequestCancelled);\n});\n\n\nreturn { __sfc: true,roomEngine, roomStore, basicStore, isFrontCamera, emits, isCameraDisableForAllUser, isAudience, localStream, isLocalVideoIconDisable, t, hasMore, showVideoSettingTab, videoIconButtonRef, videoSettingRef, title, iconName, toggleMuteVideo, handleMore, handleDocumentClick, showRequestOpenCameraDialog, requestOpenCameraRequestId, onRequestReceived, handleAccept, handleReject, onRequestCancelled, Dialog, IconButton, VideoSettingTab, isMobile }\n}\n\n})","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./VideoControl.vue?vue&type=script&setup=true&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./VideoControl.vue?vue&type=script&setup=true&lang=ts&\"","import { render, staticRenderFns } from \"./VideoControl.vue?vue&type=template&id=a0d52fdc&scoped=true&\"\nimport script from \"./VideoControl.vue?vue&type=script&setup=true&lang=ts&\"\nexport * from \"./VideoControl.vue?vue&type=script&setup=true&lang=ts&\"\nimport style0 from \"./VideoControl.vue?vue&type=style&index=0&id=a0d52fdc&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"a0d52fdc\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"manage-member-control-container\"},[_c(_setup.IconButton,{attrs:{\"is-active\":_setup.sidebarName === 'manage-member',\"title\":_setup.t('Members'),\"icon-name\":_setup.iconName},on:{\"click-icon\":_setup.toggleMangeMemberSidebar}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { defineComponent as _defineComponent } from 'vue'\nimport { computed } from 'vue';\nimport { storeToRefs } from 'pinia';\nimport IconButton from '../common/IconButton.vue';\nimport { useBasicStore } from '../../stores/basic';\nimport { ICON_NAME } from '../../constants/icon';\nimport { useI18n } from '../../locales';\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'ManageMemberControl',\n setup(__props) {\n\nconst { t } = useI18n();\n\nconst basicStore = useBasicStore();\nconst { sidebarName } = storeToRefs(basicStore);\nconst iconName = computed(() => (sidebarName.value === 'manage-member' ? ICON_NAME.ManageMemberActive : ICON_NAME.ManageMember));\n\nfunction toggleMangeMemberSidebar() {\n if (basicStore.setSidebarOpenStatus && sidebarName.value === 'manage-member') {\n basicStore.setSidebarOpenStatus(false);\n basicStore.setSidebarName('');\n return;\n }\n\n basicStore.setSidebarOpenStatus(true);\n basicStore.setSidebarName('manage-member');\n}\n\nreturn { __sfc: true,t, basicStore, sidebarName, iconName, toggleMangeMemberSidebar, IconButton }\n}\n\n})","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ManageMemberControl.vue?vue&type=script&setup=true&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ManageMemberControl.vue?vue&type=script&setup=true&lang=ts&\"","import { render, staticRenderFns } from \"./ManageMemberControl.vue?vue&type=template&id=49c71e42&scoped=true&\"\nimport script from \"./ManageMemberControl.vue?vue&type=script&setup=true&lang=ts&\"\nexport * from \"./ManageMemberControl.vue?vue&type=script&setup=true&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"49c71e42\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"chat-control-container\"},[(_setup.isMobile)?_c('div',[(_setup.chatStore.unReadCount > 0)?_c('div',{staticClass:\"count\"},[_c(_setup.IconButton,{directives:[{name:\"tap\",rawName:\"v-tap\",value:(_setup.toggleChatSidebar),expression:\"toggleChatSidebar\"}],attrs:{\"title\":_setup.t('Chat'),\"icon-name\":_setup.iconName}}),_c('span',{staticClass:\"unreadCount\"},[_vm._v(_vm._s(_setup.chatStore.unReadCount > 10 ? '10+' : _setup.chatStore.unReadCount))])],1):_c(_setup.IconButton,{directives:[{name:\"tap\",rawName:\"v-tap\",value:(_setup.toggleChatSidebar),expression:\"toggleChatSidebar\"}],attrs:{\"is-active\":_setup.sidebarName === 'chat',\"title\":_setup.t('Chat'),\"icon-name\":_setup.iconName}})],1):_c('div',[(_setup.chatStore.unReadCount > 0)?_c('el-badge',{attrs:{\"value\":_setup.chatStore.unReadCount > 10 ? '10+' : _setup.chatStore.unReadCount}},[_c(_setup.IconButton,{attrs:{\"title\":_setup.t('Chat'),\"icon-name\":_setup.iconName},on:{\"click-icon\":_setup.toggleChatSidebar}})],1):_c(_setup.IconButton,{attrs:{\"is-active\":_setup.sidebarName === 'chat',\"title\":_setup.t('Chat'),\"icon-name\":_setup.iconName},on:{\"click-icon\":_setup.toggleChatSidebar}})],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { defineStore } from 'pinia';\n\ninterface MessageItem {\n ID: string;\n type: string;\n payload: {\n text: string;\n };\n nick: string;\n from: string;\n flow: string;\n sequence: number;\n}\n\ninterface ChatState {\n messageList: MessageItem[];\n isMessageDisableByAdmin: boolean;\n unReadCount: number;\n isCompleted: boolean;\n // 是否已经拉完所有消息列表\n // Is the list of all messages pulled\n nextReqMessageId: string;\n}\n\nexport const useChatStore = defineStore('chat', {\n state: (): ChatState => ({\n messageList: [],\n isMessageDisableByAdmin: false,\n unReadCount: 0,\n isCompleted: false,\n nextReqMessageId: '',\n }),\n getters: {\n },\n actions: {\n updateMessageList(message: MessageItem) {\n const messageIds = this.messageList.map(message => message.ID);\n if (messageIds.indexOf(message.ID) === -1) {\n this.messageList = this.messageList.concat([message]);\n }\n },\n setMessageListInfo(messageList:MessageItem[], isCompleted: boolean, nextReqMessageId: string) {\n this.messageList = messageList;\n this.isCompleted = isCompleted;\n this.nextReqMessageId = nextReqMessageId;\n },\n updateUnReadCount(count: number) {\n this.unReadCount = count;\n },\n addHistoryMessages(messageList: MessageItem[]) {\n const messageIds = this.messageList.map(message => message.ID);\n const filteredMessageList = messageList.filter(message => messageIds.indexOf(message.ID) === -1);\n this.messageList = filteredMessageList.concat(this.messageList).sort((\n messageA: MessageItem, messageB: MessageItem) => messageA.sequence - messageB.sequence);\n },\n setSendMessageDisableChanged(isDisable: boolean) {\n this.isMessageDisableByAdmin = isDisable;\n },\n reset() {\n this.messageList = [];\n this.unReadCount = 0;\n this.isMessageDisableByAdmin = false;\n },\n },\n});\n","import { defineComponent as _defineComponent } from 'vue'\nimport { computed } from 'vue';\nimport IconButton from '../common/IconButton.vue';\nimport { useBasicStore } from '../../stores/basic';\nimport { useChatStore } from '../../stores/chat';\nimport { storeToRefs } from 'pinia';\nimport { ICON_NAME } from '../../constants/icon';\nimport { useI18n } from '../../locales';\nimport { isMobile } from '../../utils/useMediaValue';\nimport '../../directives/vTap';\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'ChatControl',\n setup(__props) {\n\nconst { t } = useI18n();\n\nconst basicStore = useBasicStore();\nconst chatStore = useChatStore();\nconst { sidebarName } = storeToRefs(basicStore);\n\nconst iconName = computed(() => (sidebarName.value === 'chat' ? ICON_NAME.ChatActive : ICON_NAME.Chat));\n\nasync function toggleChatSidebar() {\n if (basicStore.setSidebarOpenStatus && basicStore.sidebarName === 'chat') {\n basicStore.setSidebarOpenStatus(false);\n basicStore.setSidebarName('');\n return;\n }\n basicStore.setSidebarOpenStatus(true);\n basicStore.setSidebarName('chat');\n chatStore.updateUnReadCount(0);\n}\n\n\nreturn { __sfc: true,t, basicStore, chatStore, sidebarName, iconName, toggleChatSidebar, IconButton, isMobile }\n}\n\n})","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ChatControl.vue?vue&type=script&setup=true&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ChatControl.vue?vue&type=script&setup=true&lang=ts&\"","import { render, staticRenderFns } from \"./ChatControl.vue?vue&type=template&id=23a9a115&\"\nimport script from \"./ChatControl.vue?vue&type=script&setup=true&lang=ts&\"\nexport * from \"./ChatControl.vue?vue&type=script&setup=true&lang=ts&\"\nimport style0 from \"./ChatControl.vue?vue&type=style&index=0&id=23a9a115&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return (_setup.roomStore.isMaster)?_c(_setup.MasterApplyControl):(!_setup.roomStore.isMaster)?_c(_setup.MemberApplyControl):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"apply-control-container\"},[_c(_setup.IconButton,{ref:\"masterApplyControlRef\",attrs:{\"title\":_setup.t('Raise hand'),\"icon-name\":_setup.ICON_NAME.ApplyOnSeat},on:{\"click-icon\":_setup.toggleApplySpeech}}),(_setup.hasApplyToAnchorUser && !_setup.showApplyUserList)?_c('div',{staticClass:\"attention master-attention\"},[_c(_setup.SvgIcon,{staticClass:\"apply-big-icon\",attrs:{\"icon-name\":\"apply-big-icon\"}}),_c('span',{staticClass:\"info\"},[_vm._v(_vm._s(_setup.applyToAnchorList.length))])],1):_vm._e(),(_setup.showApplyUserList)?_c('div',{ref:\"masterApplyListRef\",class:_setup.isMobile ? 'apply-list-container-h5':'apply-list-container'},[_c('div',{staticClass:\"title-container\"},[_c('span',{staticClass:\"title\"},[_vm._v(_vm._s(_setup.t('Apply to stage application')))]),_c(_setup.SvgIcon,{staticClass:\"close\",attrs:{\"icon-name\":\"close\",\"size\":\"medium\"},on:{\"click\":_setup.hideApplyList}})],1),_c('div',{staticClass:\"apply-list\"},_vm._l((_setup.applyToAnchorList),function(item,index){return _c('div',{key:index,staticClass:\"apply-item\"},[_c('div',{staticClass:\"user-info\"},[_c(_setup.Avatar,{staticClass:\"avatar-url\",attrs:{\"img-src\":item.avatarUrl}}),_c('span',{staticClass:\"user-name\",attrs:{\"title\":item.userName || item.userId}},[_vm._v(_vm._s(item.userName || item.userId))])],1),_c('div',{staticClass:\"control-container\"},[_c('div',{staticClass:\"button primary\",on:{\"click\":function($event){return _setup.handleUserApply(item.userId, true)}}},[_vm._v(_vm._s(_setup.t('Agree')))]),_c('div',{staticClass:\"button outline\",on:{\"click\":function($event){return _setup.handleUserApply(item.userId, false)}}},[_vm._v(_vm._s(_setup.t('Reject')))])])])}),0),_c('div',{staticClass:\"apply-footer\"},[_c('div',{staticClass:\"button outline deny-all\",on:{\"click\":_setup.denyAllUserApply}},[_vm._v(_vm._s(_setup.t('Reject All')))])])]):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","// 举手发言逻辑\n// 主持人:同意/拒绝用户的申请发言,踢人下麦,邀请用户上麦,取消邀请用户上麦\n\nimport { onBeforeUnmount } from 'vue';\nimport TUIRoomEngine, { TUIRoomEvents, TUIRequestAction, TUIRequest, TUIRequestCallbackType } from '@tencentcloud/tuiroom-engine-js';\nimport useGetRoomEngine from './useRoomEngine';\nimport { ElMessage } from '../elementComp';\nimport { MESSAGE_DURATION } from '../constants/message';\nimport { useRoomStore, UserInfo } from '../stores/room';\nimport { storeToRefs } from 'pinia';\nimport { useI18n } from '../locales';\nimport logger from '../utils/common/logger';\n\nconst roomEngine = useGetRoomEngine();\n\nexport default function () {\n const roomStore = useRoomStore();\n const { applyToAnchorList } = storeToRefs(roomStore);\n const { t } = useI18n();\n\n // ------ 以下处理普通用户操作 ---------\n\n // new: 收到来自用户的上麦申请\n function onRequestReceived(eventInfo: { request: TUIRequest }) {\n const { requestAction, requestId, userId } = eventInfo.request;\n if (requestAction === TUIRequestAction.kRequestToTakeSeat) {\n // 用户申请上麦\n userId && roomStore.addApplyToAnchorUser({ userId, requestId });\n }\n }\n\n // 远端用户取消上麦申请\n function onRequestCancelled(eventInfo: { requestId: string, userId: string }) {\n const { userId } = eventInfo;\n roomStore.removeApplyToAnchorUser(userId);\n }\n\n // 处理用户请求\n async function handleUserApply(applyUserId: string, agree: boolean) {\n // TUIRoomCore.replySpeechApplication(applyUserId, agree);\n const userInfo = roomStore.remoteUserObj[applyUserId];\n if (userInfo) {\n const requestId = userInfo.applyToAnchorRequestId;\n requestId && await roomEngine.instance?.responseRemoteRequest({\n requestId,\n agree,\n });\n }\n roomStore.removeApplyToAnchorUser(applyUserId);\n }\n\n // 同意用户上台\n async function agreeUserOnStage(userInfo: UserInfo) {\n const requestId = userInfo.applyToAnchorRequestId;\n requestId && await roomEngine.instance?.responseRemoteRequest({\n requestId,\n agree: true,\n });\n roomStore.removeApplyToAnchorUser(userInfo.userId);\n }\n\n // 拒绝用户上台\n async function denyUserOnStage(userInfo: UserInfo) {\n const requestId = userInfo.applyToAnchorRequestId;\n requestId && await roomEngine.instance?.responseRemoteRequest({\n requestId,\n agree: false,\n });\n roomStore.removeApplyToAnchorUser(userInfo.userId);\n }\n\n // 拒绝全部用户上麦请求\n async function denyAllUserApply() {\n const applyUserList = applyToAnchorList.value.map(item => ({\n userId: item.userId,\n userName: item.userName,\n applyToAnchorRequestId: item.applyToAnchorRequestId,\n }));\n let index = 0;\n while (index >= 0 && index < applyUserList.length) {\n const { userId, userName, applyToAnchorRequestId } = applyUserList[index];\n try {\n applyToAnchorRequestId && await roomEngine.instance?.responseRemoteRequest({\n requestId: applyToAnchorRequestId,\n agree: false,\n });\n roomStore.removeApplyToAnchorUser(userId);\n } catch (error) {\n logger.error(`拒绝 ${userName || userId} 上台申请失败,请重试!`);\n ElMessage({\n type: 'warning',\n message: t('Reject on Stage failed, please retry', { userName: userName || userId }),\n duration: MESSAGE_DURATION.NORMAL,\n });\n }\n index += 1;\n }\n }\n\n TUIRoomEngine.once('ready', () => {\n roomEngine.instance?.on(TUIRoomEvents.onRequestReceived, onRequestReceived);\n roomEngine.instance?.on(TUIRoomEvents.onRequestCancelled, onRequestCancelled);\n });\n\n onBeforeUnmount(() => {\n roomEngine.instance?.off(TUIRoomEvents.onRequestReceived, onRequestReceived);\n roomEngine.instance?.off(TUIRoomEvents.onRequestCancelled, onRequestCancelled);\n });\n\n // --------- 以下处理主持人主动操作 ----------\n\n // 邀请用户上台\n async function inviteUserOnStage(userInfo: UserInfo) {\n const { userId } = userInfo;\n const request = await roomEngine.instance?.takeUserOnSeatByAdmin({\n seatIndex: -1,\n userId,\n timeout: 0,\n requestCallback: (callbackInfo: { requestCallbackType: TUIRequestCallbackType, userId: string }) => {\n const { requestCallbackType, userId } = callbackInfo;\n const userName = roomStore.getUserName(userId);\n switch (requestCallbackType) {\n case TUIRequestCallbackType.kRequestAccepted:\n ElMessage({\n type: 'success',\n message: `${userName || userId} ${t('accepted the invitation to the stage')}`,\n duration: MESSAGE_DURATION.NORMAL,\n });\n roomStore.removeInviteToAnchorUser(userId);\n break;\n case TUIRequestCallbackType.kRequestRejected:\n ElMessage({\n type: 'warning',\n message: `${userName || userId} ${t('declined the invitation to the stage')}`,\n duration: MESSAGE_DURATION.NORMAL,\n });\n roomStore.removeInviteToAnchorUser(userId);\n break;\n case TUIRequestCallbackType.kRequestTimeout:\n break;\n default:\n break;\n }\n },\n });\n if (request && request.requestId) {\n roomStore.addInviteToAnchorUser({ userId, requestId: request.requestId });\n }\n }\n\n // 取消邀请用户上台\n function cancelInviteUserOnStage(userInfo: UserInfo) {\n const { userId, inviteToAnchorRequestId } = userInfo;\n roomStore.removeInviteToAnchorUser(userId);\n if (inviteToAnchorRequestId) {\n roomEngine.instance?.cancelRequest({ requestId: inviteToAnchorRequestId });\n }\n }\n\n // 邀请下台\n function kickUserOffStage(userInfo: UserInfo) {\n roomEngine.instance?.kickUserOffSeatByAdmin({\n seatIndex: -1,\n userId: userInfo.userId,\n });\n }\n\n return {\n // 处理用户上麦申请(同意/拒绝)\n handleUserApply,\n // 同意普通用户上台\n agreeUserOnStage,\n // 拒绝普通用户上台\n denyUserOnStage,\n // 拒绝所有申请上麦用户\n denyAllUserApply,\n // 邀请用户上台\n inviteUserOnStage,\n // 取消邀请用户上台\n cancelInviteUserOnStage,\n // 将用户踢下麦\n kickUserOffStage,\n };\n}\n","import { defineComponent as _defineComponent } from 'vue'\nimport { ref, computed, onMounted, onBeforeUnmount } from 'vue';\nimport Avatar from '../../base/Avatar.vue';\nimport { ICON_NAME } from '../../../constants/icon';\nimport IconButton from '../../common/IconButton.vue';\nimport SvgIcon from '../../common/SvgIcon.vue';\nimport { useBasicStore } from '../../../stores/basic';\nimport { useRoomStore } from '../../../stores/room';\nimport { storeToRefs } from 'pinia';\nimport useMasterApplyControl from '../../../hooks/useMasterApplyControl';\nimport { useI18n } from '../../../locales';\nimport { isMobile } from '../../../utils/useMediaValue';\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'MasterApplyControl',\n setup(__props) {\n\nconst { t } = useI18n();\n\nconst basicStore = useBasicStore();\nconst roomStore = useRoomStore();\nconst { handleUserApply, denyAllUserApply } = useMasterApplyControl();\nconst { showApplyUserList } = storeToRefs(basicStore);\nconst { isMaster, applyToAnchorList } = storeToRefs(roomStore);\nconst masterApplyControlRef = ref>();\nconst masterApplyListRef = ref();\n\nconst hasApplyToAnchorUser = computed(() => applyToAnchorList.value.length > 0);\n\n\nfunction toggleApplySpeech() {\n if (isMaster.value) {\n basicStore.setShowApplyUserList(!showApplyUserList.value);\n }\n};\n\nfunction hideApplyList() {\n basicStore.setShowApplyUserList(false);\n}\n\nfunction handleDocumentClick(event: MouseEvent) {\n if (\n showApplyUserList.value\n && !masterApplyControlRef.value?.$el.contains(event.target)\n && !masterApplyListRef.value?.contains(event.target)\n ) {\n basicStore.setShowApplyUserList(false);\n }\n}\n\nonMounted(() => {\n document.addEventListener('click', handleDocumentClick, true);\n});\n\nonBeforeUnmount(() => {\n document.removeEventListener('click', handleDocumentClick, true);\n});\n\nreturn { __sfc: true,t, basicStore, roomStore, handleUserApply, denyAllUserApply, showApplyUserList, isMaster, applyToAnchorList, masterApplyControlRef, masterApplyListRef, hasApplyToAnchorUser, toggleApplySpeech, hideApplyList, handleDocumentClick, Avatar, ICON_NAME, IconButton, SvgIcon, isMobile }\n}\n\n})","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./MasterApplyControl.vue?vue&type=script&setup=true&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./MasterApplyControl.vue?vue&type=script&setup=true&lang=ts&\"","import { render, staticRenderFns } from \"./MasterApplyControl.vue?vue&type=template&id=22abf286&\"\nimport script from \"./MasterApplyControl.vue?vue&type=script&setup=true&lang=ts&\"\nexport * from \"./MasterApplyControl.vue?vue&type=script&setup=true&lang=ts&\"\nimport style0 from \"./MasterApplyControl.vue?vue&type=style&index=0&id=22abf286&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_c('div',{staticClass:\"apply-control-container\"},[_c(_setup.IconButton,{attrs:{\"title\":_setup.iconTitle,\"icon-name\":_setup.iconName},on:{\"click-icon\":_setup.toggleApplySpeech}}),(_setup.showMemberApplyAttention)?_c('div',{staticClass:\"attention member-attention\"},[_c('span',{staticClass:\"info\"},[_vm._v(_vm._s(_setup.t('Please raise your hand to apply')))]),_c(_setup.SvgIcon,{staticClass:\"close\",attrs:{\"icon-name\":\"close\",\"size\":\"medium\"},on:{\"click\":_setup.hideApplyAttention}})],1):_vm._e()],1),_c(_setup.Dialog,{staticClass:\"custom-element-class\",attrs:{\"model-value\":_setup.showInviteDialog,\"title\":_setup.t('The host invites you to speak on stage'),\"modal\":false,\"show-close\":false,\"append-to-body\":true,\"close-on-click-modal\":false,\"close-on-press-escape\":false,\"width\":\"500px\"},scopedSlots:_vm._u([{key:\"footer\",fn:function(){return [_c('div',{class:[_setup.isMobile ? 'button-container-mobile' : 'button-container-PC']},[_c('span',{staticClass:\"cancel\",on:{\"click\":function($event){return _setup.handleInvite(false)}}},[_vm._v(_vm._s(_setup.t('Cancel')))]),_c('span',{staticClass:\"agree\",on:{\"click\":function($event){return _setup.handleInvite(true)}}},[_vm._v(_vm._s(_setup.t('Agree')))])])]},proxy:true}])},[_c('span',[_vm._v(\" \"+_vm._s(_setup.t('After agreeing to go on stage, you can turn on the camera and microphone. Do you agree to go on stage?'))+\" \")])])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { defineComponent as _defineComponent } from 'vue'\nimport { ref, Ref, watch, onBeforeUnmount } from 'vue';\nimport { ICON_NAME } from '../../../constants/icon';\nimport IconButton from '../../common/IconButton.vue';\nimport SvgIcon from '../../common/SvgIcon.vue';\nimport { ElMessage } from '../../../elementComp';\nimport Dialog from '../../../elementComp/Dialog';\nimport { MESSAGE_DURATION } from '../../../constants/message';\nimport { useBasicStore } from '../../../stores/basic';\nimport { useRoomStore } from '../../../stores/room';\nimport { useI18n } from '../../../locales';\nimport { storeToRefs } from 'pinia';\nimport useGetRoomEngine from '../../../hooks/useRoomEngine';\nimport logger from '../../../utils/common/logger';\nimport TUIRoomEngine, { TUIRoomEvents, TUIRequest, TUIRequestAction, TUIRequestCallbackType } from '@tencentcloud/tuiroom-engine-js';\nimport { isMobile } from '../../../utils/useMediaValue';\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'MemberApplyControl',\n setup(__props) {\n\nconst roomEngine = useGetRoomEngine();\nconst { t } = useI18n();\n\nconst basicStore = useBasicStore();\nconst roomStore = useRoomStore();\nconst { lang } = storeToRefs(basicStore);\nconst { localUser } = storeToRefs(roomStore);\n\nconst isApplyingOnSeat: Ref = ref(false);\nconst showMemberApplyAttention: Ref = ref(true);\nconst iconName: Ref = ref('');\nconst iconTitle: Ref = ref('');\nconst showInviteDialog: Ref = ref(false);\n\nconst applyToAnchorRequestId: Ref = ref('');\nconst inviteToAnchorRequestId: Ref = ref('');\n\nwatch([localUser, isApplyingOnSeat, lang], ([localUser, isApplyingOnSeat]) => {\n if (localUser.onSeat) {\n iconName.value = ICON_NAME.GoOffSeat;\n iconTitle.value = t('Step down');\n } else {\n if (isApplyingOnSeat) {\n iconName.value = ICON_NAME.ApplyActive;\n iconTitle.value = t('Hand down');\n } else {\n iconName.value = ICON_NAME.ApplyOnSeat;\n iconTitle.value = t('Raise hand');\n }\n }\n}, { immediate: true, deep: true });\n\nasync function toggleApplySpeech() {\n hideApplyAttention();\n if (localUser.value.onSeat) {\n leaveSeat();\n } else {\n isApplyingOnSeat.value ? cancelSeatApplication() : sendSeatApplication();\n }\n};\n\n/**\n * Send a request to be on the mike\n *\n * 发送上麦申请\n**/\nasync function sendSeatApplication() {\n try {\n const request = await roomEngine.instance?.takeSeat({\n seatIndex: -1,\n timeout: 0,\n requestCallback: (callbackInfo: { requestCallbackType: TUIRequestCallbackType }) => {\n isApplyingOnSeat.value = false;\n const { requestCallbackType } = callbackInfo;\n switch (requestCallbackType) {\n case TUIRequestCallbackType.kRequestAccepted:\n ElMessage({\n type: 'success',\n message: t('The host has approved your application'),\n duration: MESSAGE_DURATION.NORMAL,\n });\n break;\n case TUIRequestCallbackType.kRequestRejected:\n ElMessage({\n type: 'warning',\n message: t('The host has rejected your application for the stage'),\n duration: MESSAGE_DURATION.NORMAL,\n });\n break;\n case TUIRequestCallbackType.kRequestTimeout:\n break;\n }\n },\n });\n if (request && request.requestId) {\n applyToAnchorRequestId.value = request.requestId;\n }\n isApplyingOnSeat.value = true;\n } catch (error) {\n logger.log('member sendSpeechApplication error', error);\n }\n}\n\n/**\n * Cancellation of on-mike application\n *\n * 处理点击【创建房间】\n**/\n// 取消上麦申请\nasync function cancelSeatApplication() {\n try {\n await roomEngine.instance?.cancelRequest({ requestId: applyToAnchorRequestId.value });\n isApplyingOnSeat.value = false;\n } catch (error) {\n logger.log('member cancelSpeechApplication', error);\n }\n}\n\n/**\n * User Down Mack\n *\n * 用户下麦\n**/\nasync function leaveSeat() {\n await roomEngine.instance?.leaveSeat();\n}\n\nfunction hideApplyAttention() {\n showMemberApplyAttention.value = false;\n}\n\nasync function onRequestReceived(eventInfo: { request: TUIRequest }) {\n const { request: { requestId, requestAction } } = eventInfo;\n // Received an invitation from the host to go on the microphone\n // 收到主持人邀请上麦\n if (requestAction === TUIRequestAction.kRequestRemoteUserOnSeat) {\n inviteToAnchorRequestId.value = requestId;\n showInviteDialog.value = true;\n }\n}\n\n/**\n * The host canceled the invitation to the microphone\n *\n * 主持人取消邀请上麦\n **/\nfunction onRequestCancelled(eventInfo: { requestId: string, userId: string }) {\n const { requestId } = eventInfo;\n if (inviteToAnchorRequestId.value === requestId) {\n inviteToAnchorRequestId.value = '';\n showInviteDialog.value = false;\n }\n}\n\n/**\n * User accepts/rejects the presenter's invitation\n *\n * 用户接受/拒绝主讲人的邀请\n**/\nasync function handleInvite(agree: boolean) {\n await roomEngine.instance?.responseRemoteRequest({\n requestId: inviteToAnchorRequestId.value,\n agree,\n });\n showInviteDialog.value = false;\n if (agree) {\n hideApplyAttention();\n }\n}\n\n/**\n * Kicked off the seat by the host\n * 被主持人踢下麦\n */\nasync function onKickedOffSeat() {\n // 被主持人踢下麦\n ElMessage({\n type: 'warning',\n message: t('You have been invited by the host to step down, please raise your hand if you need to speak'),\n duration: MESSAGE_DURATION.NORMAL,\n });\n}\n\nTUIRoomEngine.once('ready', () => {\n roomEngine.instance?.on(TUIRoomEvents.onRequestReceived, onRequestReceived);\n roomEngine.instance?.on(TUIRoomEvents.onRequestCancelled, onRequestCancelled);\n roomEngine.instance?.on(TUIRoomEvents.onKickedOffSeat, onKickedOffSeat);\n});\n\nonBeforeUnmount(() => {\n roomEngine.instance?.off(TUIRoomEvents.onRequestReceived, onRequestReceived);\n roomEngine.instance?.off(TUIRoomEvents.onRequestCancelled, onRequestCancelled);\n roomEngine.instance?.off(TUIRoomEvents.onKickedOffSeat, onKickedOffSeat);\n});\n\n\nreturn { __sfc: true,roomEngine, t, basicStore, roomStore, lang, localUser, isApplyingOnSeat, showMemberApplyAttention, iconName, iconTitle, showInviteDialog, applyToAnchorRequestId, inviteToAnchorRequestId, toggleApplySpeech, sendSeatApplication, cancelSeatApplication, leaveSeat, hideApplyAttention, onRequestReceived, onRequestCancelled, handleInvite, onKickedOffSeat, IconButton, SvgIcon, Dialog, isMobile }\n}\n\n})","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./MemberApplyControl.vue?vue&type=script&setup=true&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./MemberApplyControl.vue?vue&type=script&setup=true&lang=ts&\"","import { render, staticRenderFns } from \"./MemberApplyControl.vue?vue&type=template&id=2562f654&\"\nimport script from \"./MemberApplyControl.vue?vue&type=script&setup=true&lang=ts&\"\nexport * from \"./MemberApplyControl.vue?vue&type=script&setup=true&lang=ts&\"\nimport style0 from \"./MemberApplyControl.vue?vue&type=style&index=0&id=2562f654&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { defineComponent as _defineComponent } from 'vue'\nimport MasterApplyControl from './MasterApplyControl.vue';\nimport MemberApplyControl from './MemberApplyControl.vue';\nimport { useRoomStore } from '../../../stores/room';\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'Index',\n setup(__props) {\n\nconst roomStore = useRoomStore();\n\n\nreturn { __sfc: true,roomStore, MasterApplyControl, MemberApplyControl }\n}\n\n})","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Index.vue?vue&type=script&setup=true&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Index.vue?vue&type=script&setup=true&lang=ts&\"","import { render, staticRenderFns } from \"./Index.vue?vue&type=template&id=e9c8db8c&\"\nimport script from \"./Index.vue?vue&type=script&setup=true&lang=ts&\"\nexport * from \"./Index.vue?vue&type=script&setup=true&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_c('div',{staticClass:\"more-control-container\"},[_c(_setup.IconButton,{attrs:{\"is-active\":_setup.sidebarName === 'more',\"title\":_setup.t('More'),\"icon-name\":_setup.ICON_NAME.More},on:{\"click-icon\":_setup.showMore}})],1),(_setup.showMoreContent)?_c('div',{ref:\"moreContentRef\",staticClass:\"show-more-content\"},[_c('div',{staticClass:\"control-compent\"},[(_setup.roomStore.isSpeakAfterTakingSeatMode)?_c(_setup.ChatControl,{on:{\"click\":function($event){return _setup.handleControlClick('chatControl')}}}):_vm._e(),_c(_setup.ContactControl,{on:{\"click\":function($event){return _setup.handleControlClick('contactControl')}}}),_c(_setup.InviteControl,{on:{\"click\":function($event){return _setup.handleControlClick('inviteControl')}}})],1),_c('div',{staticClass:\"close\",on:{\"click\":function($event){_setup.showMoreContent=false}}},[_c('i',[_vm._v(_vm._s(_setup.t('Cancel')))])])]):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { computed } from 'vue';\nimport { useBasicStore } from '../../../stores/basic';\nimport { storeToRefs } from 'pinia';\nimport { useI18n } from '../../../locales';\nimport { ICON_NAME } from '../../../constants/icon';\n\nexport default function useControl() {\n const { t } = useI18n();\n\n const basicStore = useBasicStore();\n const { sidebarName } = storeToRefs(basicStore);\n\n const iconName = computed(() => (sidebarName.value === 'more' ? ICON_NAME.MoreActive : ICON_NAME.More));\n\n return {\n t,\n basicStore,\n iconName,\n sidebarName,\n };\n}\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"invite-control-container\"},[_c(_setup.IconButton,{attrs:{\"is-active\":_setup.sidebarName === 'invite',\"title\":_setup.t('Invite'),\"icon-name\":_setup.iconName},on:{\"click-icon\":_setup.toggleInviteSidebar}}),(_setup.isShowInviteTab)?_c('div',{staticClass:\"invite-container\"},[_c(_setup.roomInvite,{ref:\"inviteRef\",on:{\"on-close-invite\":_setup.handleCloseInvite}})],1):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"invite-container-main\"},[_c('div',{staticClass:\"invite-title-main\"},[_c('p',[_vm._v(_vm._s(_setup.t('Invite')))]),(_setup.isWeChat)?_c('span',{directives:[{name:\"tap\",rawName:\"v-tap\",value:(_setup.handleCloseInvite),expression:\"handleCloseInvite\"}],staticClass:\"cancel\"},[_vm._v(_vm._s(_setup.t('Cancel')))]):_vm._e()]),_vm._l((_setup.visibleInviteContentList),function(item){return _c('div',{key:item.id,staticClass:\"invite-content-main\"},[_c('span',{staticClass:\"invite-title\"},[_vm._v(_vm._s(_setup.t(item.title)))]),_c('span',{staticClass:\"invite-content\"},[_vm._v(_vm._s(item.content))]),_c(_setup.SvgIcon,{directives:[{name:\"tap\",rawName:\"v-tap\",value:(() => _setup.onCopy(item.copyLink)),expression:\"() => onCopy(item.copyLink)\"}],staticClass:\"copy\",attrs:{\"icon-name\":\"copy-icon\",\"size\":\"custom\"}})],1)}),_c('span',{staticClass:\"invite-bottom\"},[_vm._v(\" \"+_vm._s(_setup.t('You can share the room number or link to invite more people to join the room.'))+\" \")])],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { computed, reactive } from 'vue';\nimport { useBasicStore } from '../../stores/basic';\nimport { ElMessage } from '../../elementComp';\nimport { storeToRefs } from 'pinia';\nimport { useI18n } from '../../locales';\nimport { isElectronEnv, clipBoard } from '../../utils/utils';\n\nexport default function useRoomInvite() {\n const { t } = useI18n();\n\n const basicStore = useBasicStore();\n const { roomId, shareLink, isRoomLinkVisible } = storeToRefs(basicStore);\n\n const { origin, pathname } = location || {};\n const isElectron = isElectronEnv();\n\n const inviteLink = computed(() => {\n if (shareLink.value) {\n const urlConcatenation = shareLink.value.indexOf('?') !== -1 ? '&' : '?';\n return `${shareLink.value}${urlConcatenation}roomId=${roomId.value}`;\n }\n return `${origin}${pathname}#/home?roomId=${roomId.value}`;\n });\n const schemeLink = computed(() => `tuiroom://joinroom?roomId=${roomId.value}`);\n\n async function onCopy(value: string | number) {\n try {\n await clipBoard(value);\n ElMessage({\n message: t('Copied successfully'),\n type: 'success',\n });\n } catch (error) {\n ElMessage({\n message: t('Copied failure'),\n type: 'error',\n });\n }\n }\n\n const inviteContentList = [\n { id: 1, title: 'Room ID', content: roomId, copyLink: roomId, visible: true },\n { id: 2, title: 'Room Link', content: inviteLink, copyLink: inviteLink, visible: isRoomLinkVisible.value },\n { id: 3, title: 'scheme', content: schemeLink, copyLink: schemeLink, visible: true },\n ];\n const visibleInviteContentList = reactive(inviteContentList.filter(item => item.visible));\n\n return {\n t,\n isRoomLinkVisible,\n roomId,\n origin,\n pathname,\n isElectron,\n inviteLink,\n schemeLink,\n onCopy,\n visibleInviteContentList,\n };\n}\n","import { defineComponent as _defineComponent } from 'vue'\nimport SvgIcon from '../common/SvgIcon.vue';\nimport useRoomInviteControl from './useRoomInviteHooks';\nimport { isWeChat } from '../../utils/useMediaValue';\nimport '../../directives/vTap';\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'indexH5',\n emits: ['on-close-invite'],\n setup(__props, { emit }) {\n\nconst {\n t,\n onCopy,\n visibleInviteContentList,\n} = useRoomInviteControl();\n\n\n\n\nfunction handleCloseInvite() {\n emit('on-close-invite');\n}\n\n\nreturn { __sfc: true,t, onCopy, visibleInviteContentList, emit, handleCloseInvite, SvgIcon, isWeChat }\n}\n\n})","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./indexH5.vue?vue&type=script&setup=true&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./indexH5.vue?vue&type=script&setup=true&lang=ts&\"","import { render, staticRenderFns } from \"./indexH5.vue?vue&type=template&id=eb2b478c&scoped=true&\"\nimport script from \"./indexH5.vue?vue&type=script&setup=true&lang=ts&\"\nexport * from \"./indexH5.vue?vue&type=script&setup=true&lang=ts&\"\nimport style0 from \"./indexH5.vue?vue&type=style&index=0&id=eb2b478c&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"eb2b478c\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"invite-container\"},[_c('div',{staticClass:\"invite-notice\"},[_vm._v(_vm._s(_setup.t('Share the room ID or invite link')))]),_c('div',{staticClass:\"invite-content\"},[_c('div',{staticClass:\"invite-item\"},[_c('span',{staticClass:\"invite-title\"},[_vm._v(_vm._s(_setup.t('Invite by room number')))]),_c('div',{staticClass:\"input-area\"},[_c('input',{staticClass:\"input\",attrs:{\"type\":\"text\"},domProps:{\"value\":_setup.roomId}}),_c(_setup.SvgIcon,{staticClass:\"copy\",attrs:{\"icon-name\":\"copy-icon\"},on:{\"click\":function($event){return _setup.onCopy(_setup.roomId)}}})],1)]),(_setup.isRoomLinkVisible)?_c('div',{staticClass:\"invite-item\"},[_c('span',{staticClass:\"invite-title\"},[_vm._v(_vm._s(_setup.t('Invite via room link')))]),_c('div',{staticClass:\"input-area\"},[_c('input',{staticClass:\"input\",attrs:{\"type\":\"text\"},domProps:{\"value\":_setup.inviteLink}}),_c(_setup.SvgIcon,{staticClass:\"copy\",attrs:{\"icon-name\":\"copy-icon\"},on:{\"click\":function($event){return _setup.onCopy(_setup.inviteLink)}}})],1)]):_vm._e(),_c('div',{staticClass:\"invite-item\"},[_c('span',{staticClass:\"invite-title\"},[_vm._v(_vm._s(_setup.t('Invite via client scheme')))]),_c('div',{staticClass:\"input-area\"},[_c('input',{staticClass:\"input\",attrs:{\"type\":\"text\"},domProps:{\"value\":_setup.schemeLink}}),_c(_setup.SvgIcon,{staticClass:\"copy\",attrs:{\"icon-name\":\"copy-icon\"},on:{\"click\":function($event){return _setup.onCopy(_setup.schemeLink)}}})],1)])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { defineComponent as _defineComponent } from 'vue'\nimport useRoomInviteControl from './useRoomInviteHooks';\nimport SvgIcon from '../common/SvgIcon.vue';\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'indexPC',\n setup(__props) {\n\nconst {\n t,\n isRoomLinkVisible,\n roomId,\n inviteLink,\n schemeLink,\n onCopy,\n} = useRoomInviteControl();\n\n\nreturn { __sfc: true,t, isRoomLinkVisible, roomId, inviteLink, schemeLink, onCopy, SvgIcon }\n}\n\n})","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./indexPC.vue?vue&type=script&setup=true&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./indexPC.vue?vue&type=script&setup=true&lang=ts&\"","import { render, staticRenderFns } from \"./indexPC.vue?vue&type=template&id=76a9ae2d&scoped=true&\"\nimport script from \"./indexPC.vue?vue&type=script&setup=true&lang=ts&\"\nexport * from \"./indexPC.vue?vue&type=script&setup=true&lang=ts&\"\nimport style0 from \"./indexPC.vue?vue&type=style&index=0&id=76a9ae2d&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"76a9ae2d\",\n null\n \n)\n\nexport default component.exports","import indexH5 from './indexH5.vue';\nimport indexPC from './indexPC.vue';\nimport { isMobile } from '../../utils/useMediaValue';\n\nconst Index = isMobile ? indexH5 : indexPC;\n\nexport default Index;\n","import { defineComponent as _defineComponent } from 'vue'\nimport { computed, ref, onMounted, onUnmounted } from 'vue';\nimport IconButton from '../common/IconButton.vue';\nimport { useBasicStore } from '../../stores/basic';\nimport { storeToRefs } from 'pinia';\nimport { ICON_NAME } from '../../constants/icon';\nimport { useI18n } from '../../locales';\nimport { isMobile } from '../../utils/useMediaValue';\nimport roomInvite from '../RoomInvite';\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'InviteControl',\n setup(__props) {\n\nconst basicStore = useBasicStore();\nconst { sidebarName } = storeToRefs(basicStore);\nconst { t } = useI18n();\nconst isShowInviteTab = ref(false);\nconst inviteRef = ref();\n\nconst iconName = computed(() => (\n isMobile ? ICON_NAME.Invite : (sidebarName.value === 'invite' ? ICON_NAME.InviteActive : ICON_NAME.Invite)\n));\n\nfunction toggleInviteSidebar() {\n if (isMobile) {\n isShowInviteTab.value = true;\n if (basicStore.sidebarName === 'invite') {\n basicStore.setSidebarName('');\n return;\n }\n basicStore.setSidebarName('invite');\n } else {\n if (basicStore.setSidebarOpenStatus && basicStore.sidebarName === 'invite') {\n basicStore.setSidebarOpenStatus(false);\n basicStore.setSidebarName('');\n return;\n }\n basicStore.setSidebarOpenStatus(true);\n basicStore.setSidebarName('invite');\n }\n}\n\nfunction handleDocumentClick(event: MouseEvent) {\n if (isShowInviteTab.value && inviteRef.value && !inviteRef.value.$el.contains(event.target)) {\n isShowInviteTab.value = false;\n }\n}\n\nfunction handleCloseInvite() {\n isShowInviteTab.value = false;\n}\n\nonMounted(() => {\n document?.addEventListener('click', handleDocumentClick, true);\n});\n\nonUnmounted(() => {\n document?.removeEventListener('click', handleDocumentClick, true);\n});\n\nreturn { __sfc: true,basicStore, sidebarName, t, isShowInviteTab, inviteRef, iconName, toggleInviteSidebar, handleDocumentClick, handleCloseInvite, IconButton, roomInvite }\n}\n\n})","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./InviteControl.vue?vue&type=script&setup=true&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./InviteControl.vue?vue&type=script&setup=true&lang=ts&\"","import { render, staticRenderFns } from \"./InviteControl.vue?vue&type=template&id=78681d3c&scoped=true&\"\nimport script from \"./InviteControl.vue?vue&type=script&setup=true&lang=ts&\"\nexport * from \"./InviteControl.vue?vue&type=script&setup=true&lang=ts&\"\nimport style0 from \"./InviteControl.vue?vue&type=style&index=0&id=78681d3c&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"78681d3c\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"more-control-container\"},[_c(_setup.IconButton,{attrs:{\"is-active\":_setup.sidebarName === 'more',\"title\":_setup.t('Contact us'),\"icon-name\":\"contact-us-h5\"},on:{\"click-icon\":_setup.toggleContactSidebar}}),(_setup.isShowContactTab)?_c('div',{staticClass:\"contact-container\"},[_c(_setup.roomContact,{ref:\"contactRef\",on:{\"on-close-contact\":_setup.handleOnCloseContact}})],1):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"contact-container-main\"},[_c('div',{staticClass:\"contact-title-main\"},[_c('p',[_vm._v(_vm._s(_setup.t('Contact us')))]),(_setup.isWeChat)?_c('span',{directives:[{name:\"tap\",rawName:\"v-tap\",value:(_setup.handleCloseContact),expression:\"handleCloseContact\"}],staticClass:\"cancel\"},[_vm._v(_vm._s(_setup.t('Cancel')))]):_vm._e()]),_vm._l((_setup.contactContentList),function(item){return _c('div',{key:item.id,staticClass:\"contact-content-main\"},[_c('span',{staticClass:\"contact-title\"},[_vm._v(_vm._s(_setup.t(item.title)))]),_c('span',{staticClass:\"contact-content\"},[_vm._v(_vm._s(item.content))]),_c(_setup.SvgIcon,{directives:[{name:\"tap\",rawName:\"v-tap\",value:(() => _setup.onCopy(item.copyLink)),expression:\"() => onCopy(item.copyLink)\"}],staticClass:\"copy\",attrs:{\"icon-name\":\"copy-icon\",\"size\":\"custom\"}})],1)}),_c('span',{staticClass:\"contact-bottom\"},[_vm._v(\" \"+_vm._s(_setup.t('If you have any questions, please feel free to join our QQ group or send an email'))+\" \")])],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { ElMessage } from '../../elementComp';\nimport { useI18n } from '../../locales';\nimport { clipBoard } from '../../utils/utils';\n\nexport default function useRoomMoreHooks() {\n const { t } = useI18n();\n\n const groupNumber = '592465424';\n const email = 'matthewwu@tencent.com';\n\n async function onCopy(value: string | number) {\n try {\n await clipBoard(value);\n ElMessage({\n message: t('Copied successfully'),\n type: 'success',\n });\n } catch (error) {\n ElMessage({\n message: t('Copied failure'),\n type: 'error',\n });\n }\n }\n return {\n t,\n groupNumber,\n email,\n onCopy,\n };\n}\n","import { defineComponent as _defineComponent } from 'vue'\nimport { reactive } from 'vue';\nimport useRoomMoreControl from './useRoomMoreHooks';\nimport SvgIcon from '../common/SvgIcon.vue';\nimport { isWeChat } from '../../utils/useMediaValue';\nimport '../../directives/vTap';\n\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'indexH5',\n emits: ['on-close-contact'],\n setup(__props, { emit }) {\n\nconst {\n t,\n groupNumber,\n email,\n onCopy,\n} = useRoomMoreControl();\n\n\n\nconst contactContentList = reactive([\n { id: 1, title: 'group chat', content: groupNumber, copyLink: groupNumber },\n { id: 2, title: 'Email', content: email, copyLink: email },\n]);\n\nfunction handleCloseContact() {\n emit('on-close-contact');\n}\n\nreturn { __sfc: true,t, groupNumber, email, onCopy, emit, contactContentList, handleCloseContact, SvgIcon, isWeChat }\n}\n\n})","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./indexH5.vue?vue&type=script&setup=true&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./indexH5.vue?vue&type=script&setup=true&lang=ts&\"","import { render, staticRenderFns } from \"./indexH5.vue?vue&type=template&id=76fbca8c&scoped=true&\"\nimport script from \"./indexH5.vue?vue&type=script&setup=true&lang=ts&\"\nexport * from \"./indexH5.vue?vue&type=script&setup=true&lang=ts&\"\nimport style0 from \"./indexH5.vue?vue&type=style&index=0&id=76fbca8c&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"76fbca8c\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"more-container\"},[_c('div',{staticClass:\"more-notice\"},[_vm._v(_vm._s(_setup.t('Join our QQ group chat or email us.')))]),_c('div',{staticClass:\"more-content\"},[_c('div',{staticClass:\"more-item\"},[_c('span',{staticClass:\"more-title\"},[_vm._v(_vm._s(_setup.t('group chat')))]),_c('div',{staticClass:\"input-area\"},[_c('input',{staticClass:\"input\",attrs:{\"type\":\"text\"},domProps:{\"value\":_setup.groupNumber}}),_c(_setup.SvgIcon,{staticClass:\"copy\",attrs:{\"icon-name\":\"copy-icon\"},on:{\"click\":function($event){return _setup.onCopy(_setup.groupNumber)}}})],1)]),_c('div',{staticClass:\"more-item\"},[_c('span',{staticClass:\"more-title\"},[_vm._v(_vm._s(_setup.t('Email')))]),_c('div',{staticClass:\"input-area\"},[_c('input',{staticClass:\"input\",attrs:{\"type\":\"text\"},domProps:{\"value\":_setup.email}}),_c(_setup.SvgIcon,{staticClass:\"copy\",attrs:{\"icon-name\":\"copy-icon\"},on:{\"click\":function($event){return _setup.onCopy(_setup.email)}}})],1)])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { defineComponent as _defineComponent } from 'vue'\nimport useRoomMoreControl from './useRoomMoreHooks';\nimport SvgIcon from '../common/SvgIcon.vue';\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'indexPC',\n setup(__props) {\n\nconst {\n t,\n groupNumber,\n email,\n onCopy,\n} = useRoomMoreControl();\n\nreturn { __sfc: true,t, groupNumber, email, onCopy, SvgIcon }\n}\n\n})","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./indexPC.vue?vue&type=script&setup=true&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./indexPC.vue?vue&type=script&setup=true&lang=ts&\"","import { render, staticRenderFns } from \"./indexPC.vue?vue&type=template&id=4d3067ac&scoped=true&\"\nimport script from \"./indexPC.vue?vue&type=script&setup=true&lang=ts&\"\nexport * from \"./indexPC.vue?vue&type=script&setup=true&lang=ts&\"\nimport style0 from \"./indexPC.vue?vue&type=style&index=0&id=4d3067ac&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4d3067ac\",\n null\n \n)\n\nexport default component.exports","import indexH5 from './indexH5.vue';\nimport indexPC from './indexPC.vue';\nimport { isMobile } from '../../utils/useMediaValue';\n\nconst Index = isMobile ? indexH5 : indexPC;\n\nexport default Index;\n","import { defineComponent as _defineComponent } from 'vue'\nimport { ref, onMounted, onUnmounted } from 'vue';\nimport IconButton from '../common/IconButton.vue';\nimport { useBasicStore } from '../../stores/basic';\nimport { storeToRefs } from 'pinia';\nimport { useI18n } from '../../locales';\nimport { isMobile } from '../../utils/useMediaValue';\nimport roomContact from '../RoomMore';\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'ContactControl',\n setup(__props) {\n\nconst basicStore = useBasicStore();\nconst { sidebarName } = storeToRefs(basicStore);\nconst { t } = useI18n();\nconst isShowContactTab = ref(false);\nconst contactRef = ref();\n\nfunction toggleContactSidebar() {\n if (!isMobile) {\n if (basicStore.setSidebarOpenStatus && basicStore.sidebarName === 'more') {\n basicStore.setSidebarOpenStatus(false);\n basicStore.setSidebarName('');\n return;\n }\n basicStore.setSidebarOpenStatus(true);\n basicStore.setSidebarName('more');\n } else {\n isShowContactTab.value = true;\n if (basicStore.sidebarName === 'more') {\n basicStore.setSidebarName('');\n return;\n }\n basicStore.setSidebarName('more');\n }\n}\n\n\nfunction handleDocumentClick(event: MouseEvent) {\n if (isShowContactTab.value && contactRef.value && !contactRef.value.$el.contains(event.target)) {\n isShowContactTab.value = false;\n }\n}\n\nfunction handleOnCloseContact() {\n isShowContactTab.value = false;\n}\n\nonMounted(() => {\n document.addEventListener('click', handleDocumentClick, true);\n});\n\nonUnmounted(() => {\n document.removeEventListener('click', handleDocumentClick, true);\n});\n\nreturn { __sfc: true,basicStore, sidebarName, t, isShowContactTab, contactRef, toggleContactSidebar, handleDocumentClick, handleOnCloseContact, IconButton, roomContact }\n}\n\n})","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ContactControl.vue?vue&type=script&setup=true&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ContactControl.vue?vue&type=script&setup=true&lang=ts&\"","import { render, staticRenderFns } from \"./ContactControl.vue?vue&type=template&id=251c1f14&scoped=true&\"\nimport script from \"./ContactControl.vue?vue&type=script&setup=true&lang=ts&\"\nexport * from \"./ContactControl.vue?vue&type=script&setup=true&lang=ts&\"\nimport style0 from \"./ContactControl.vue?vue&type=style&index=0&id=251c1f14&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"251c1f14\",\n null\n \n)\n\nexport default component.exports","export type EventType = string | symbol;\n\n// An event handler can take an optional event argument\n// and should not return a value\nexport type Handler = (event: T) => void;\nexport type WildcardHandler> = (\n\ttype: keyof T,\n\tevent: T[keyof T]\n) => void;\n\n// An array of all currently registered event handlers for a type\nexport type EventHandlerList = Array>;\nexport type WildCardEventHandlerList> = Array>;\n\n// A map of event types and their corresponding event handlers.\nexport type EventHandlerMap> = Map<\n\tkeyof Events | '*',\n\tEventHandlerList | WildCardEventHandlerList\n>;\n\nexport interface Emitter> {\n\tall: EventHandlerMap;\n\n\ton(type: Key, handler: Handler): void;\n\ton(type: '*', handler: WildcardHandler): void;\n\n\toff(type: Key, handler?: Handler): void;\n\toff(type: '*', handler: WildcardHandler): void;\n\n\temit(type: Key, event: Events[Key]): void;\n\temit(type: undefined extends Events[Key] ? Key : never): void;\n}\n\n/**\n * Mitt: Tiny (~200b) functional event emitter / pubsub.\n * @name mitt\n * @returns {Mitt}\n */\nexport default function mitt>(\n\tall?: EventHandlerMap\n): Emitter {\n\ttype GenericEventHandler =\n\t\t| Handler\n\t\t| WildcardHandler;\n\tall = all || new Map();\n\n\treturn {\n\n\t\t/**\n\t\t * A Map of event names to registered handler functions.\n\t\t */\n\t\tall,\n\n\t\t/**\n\t\t * Register an event handler for the given type.\n\t\t * @param {string|symbol} type Type of event to listen for, or `'*'` for all events\n\t\t * @param {Function} handler Function to call in response to given event\n\t\t * @memberOf mitt\n\t\t */\n\t\ton(type: Key, handler: GenericEventHandler) {\n\t\t\tconst handlers: Array | undefined = all!.get(type);\n\t\t\tif (handlers) {\n\t\t\t\thandlers.push(handler);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tall!.set(type, [handler] as EventHandlerList);\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Remove an event handler for the given type.\n\t\t * If `handler` is omitted, all handlers of the given type are removed.\n\t\t * @param {string|symbol} type Type of event to unregister `handler` from, or `'*'`\n\t\t * @param {Function} [handler] Handler function to remove\n\t\t * @memberOf mitt\n\t\t */\n\t\toff(type: Key, handler?: GenericEventHandler) {\n\t\t\tconst handlers: Array | undefined = all!.get(type);\n\t\t\tif (handlers) {\n\t\t\t\tif (handler) {\n\t\t\t\t\thandlers.splice(handlers.indexOf(handler) >>> 0, 1);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tall!.set(type, []);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Invoke all handlers for the given type.\n\t\t * If present, `'*'` handlers are invoked after type-matched handlers.\n\t\t *\n\t\t * Note: Manually firing '*' handlers is not supported.\n\t\t *\n\t\t * @param {string|symbol} type The event type to invoke\n\t\t * @param {Any} [evt] Any value (object is recommended and powerful), passed to each handler\n\t\t * @memberOf mitt\n\t\t */\n\t\temit(type: Key, evt?: Events[Key]) {\n\t\t\tlet handlers = all!.get(type);\n\t\t\tif (handlers) {\n\t\t\t\t(handlers as EventHandlerList)\n\t\t\t\t\t.slice()\n\t\t\t\t\t.map((handler) => {\n\t\t\t\t\t\thandler(evt!);\n\t\t\t\t\t});\n\t\t\t}\n\n\t\t\thandlers = all!.get('*');\n\t\t\tif (handlers) {\n\t\t\t\t(handlers as WildCardEventHandlerList)\n\t\t\t\t\t.slice()\n\t\t\t\t\t.map((handler) => {\n\t\t\t\t\t\thandler(type, evt!);\n\t\t\t\t\t});\n\t\t\t}\n\t\t}\n\t};\n}\n","// 事件总线第三方库\nimport mitt from 'mitt';\nconst bus = mitt();\nexport default bus;\n","import { defineComponent as _defineComponent } from 'vue'\nimport IconButton from '../../common/IconButton.vue';\nimport userMoreControl from './useMoreControlHooks';\nimport ChatControl from '../ChatControl.vue';\nimport InviteControl from '../InviteControl.vue';\nimport ContactControl from '../ContactControl.vue';\nimport { useRoomStore } from '../../../stores/room';\nimport { ref, onMounted, onUnmounted } from 'vue';\nimport bus from '../../../hooks/useMitt';\nimport TUIRoomAegis from '../../../utils/aegis';\nimport { ICON_NAME } from '../../../constants/icon';\n\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'MoreControlH5',\n setup(__props) {\n\nconst showMoreContent = ref(false);\nconst moreContentRef = ref();\n\nconst {\n t,\n sidebarName,\n} = userMoreControl();\nconst roomStore = useRoomStore();\n\nfunction showMore() {\n showMoreContent.value = true;\n}\nfunction handleControlClick(name: string) {\n TUIRoomAegis.reportEvent({ name, ext1: name });\n bus.emit('experience-communication', name);\n}\n\nfunction handleDocumentClick(event: MouseEvent) {\n if (showMoreContent.value && !moreContentRef.value.contains(event.target)) {\n showMoreContent.value = false;\n }\n}\n\nonMounted(() => {\n document?.addEventListener('click', handleDocumentClick, true);\n});\n\nonUnmounted(() => {\n document?.removeEventListener('click', handleDocumentClick, true);\n});\n\nreturn { __sfc: true,showMoreContent, moreContentRef, t, sidebarName, roomStore, showMore, handleControlClick, handleDocumentClick, IconButton, ChatControl, InviteControl, ContactControl, ICON_NAME }\n}\n\n})","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./MoreControlH5.vue?vue&type=script&setup=true&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./MoreControlH5.vue?vue&type=script&setup=true&lang=ts&\"","import { render, staticRenderFns } from \"./MoreControlH5.vue?vue&type=template&id=7814bc4f&scoped=true&\"\nimport script from \"./MoreControlH5.vue?vue&type=script&setup=true&lang=ts&\"\nexport * from \"./MoreControlH5.vue?vue&type=script&setup=true&lang=ts&\"\nimport style0 from \"./MoreControlH5.vue?vue&type=style&index=0&id=7814bc4f&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7814bc4f\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"more-control-container\"},[_c(_setup.IconButton,{attrs:{\"is-active\":_setup.sidebarName === 'more',\"title\":_setup.t('More'),\"icon-name\":_setup.iconName},on:{\"click-icon\":_setup.toggleMoreSidebar}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { defineComponent as _defineComponent } from 'vue'\nimport IconButton from '../../common/IconButton.vue';\nimport userMoreControl from './useMoreControlHooks';\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'MoreControlPC',\n setup(__props) {\n\nconst {\n t,\n iconName,\n basicStore,\n sidebarName,\n} = userMoreControl();\n\nfunction toggleMoreSidebar() {\n if (basicStore.setSidebarOpenStatus && basicStore.sidebarName === 'more') {\n basicStore.setSidebarOpenStatus(false);\n basicStore.setSidebarName('');\n return;\n }\n basicStore.setSidebarOpenStatus(true);\n basicStore.setSidebarName('more');\n}\n\nreturn { __sfc: true,t, iconName, basicStore, sidebarName, toggleMoreSidebar, IconButton }\n}\n\n})","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./MoreControlPC.vue?vue&type=script&setup=true&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./MoreControlPC.vue?vue&type=script&setup=true&lang=ts&\"","import { render, staticRenderFns } from \"./MoreControlPC.vue?vue&type=template&id=8fb09940&scoped=true&\"\nimport script from \"./MoreControlPC.vue?vue&type=script&setup=true&lang=ts&\"\nexport * from \"./MoreControlPC.vue?vue&type=script&setup=true&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"8fb09940\",\n null\n \n)\n\nexport default component.exports","import MoreControlH5 from './MoreControlH5.vue';\nimport MoreControlPc from './MoreControlPC.vue';\n\nimport { isMobile } from '../../../utils/useMediaValue';\n\nconst MoreControl = isMobile ? MoreControlH5 : MoreControlPc;\n\nexport default MoreControl;\n","import { useRoomStore } from '../../../stores/room';\nimport { useI18n } from '../../../locales';\n\n\nexport default function useRoomFooter() {\n const roomStore = useRoomStore();\n const { t } = useI18n();\n\n return {\n t,\n roomStore }\n ;\n}\n","import { defineComponent as _defineComponent } from 'vue'\nimport AudioControl from '../AudioControl.vue';\nimport VideoControl from '../VideoControl.vue';\nimport ManageMemberControl from '../ManageMemberControl.vue';\nimport ChatControl from '../ChatControl.vue';\nimport ApplyControl from '../ApplyControl/Index.vue';\nimport MoreControl from '../MoreControl';\nimport bus from '../../../hooks/useMitt';\nimport '../../../directives/vTap';\n\nimport TUIRoomAegis from '../../../utils/aegis';\n\nimport useRoomFooter from './useRoomFooterHooks';\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'indexH5',\n setup(__props) {\n\nconst {\n roomStore,\n} = useRoomFooter();\n\n\nfunction handleControlClick(name: string) {\n TUIRoomAegis.reportEvent({ name, ext1: name });\n bus.emit('experience-communication', name);\n}\n\nreturn { __sfc: true,roomStore, handleControlClick, AudioControl, VideoControl, ManageMemberControl, ChatControl, ApplyControl, MoreControl }\n}\n\n})","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./indexH5.vue?vue&type=script&setup=true&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./indexH5.vue?vue&type=script&setup=true&lang=ts&\"","import { render, staticRenderFns } from \"./indexH5.vue?vue&type=template&id=6f1ee0d6&scoped=true&\"\nimport script from \"./indexH5.vue?vue&type=script&setup=true&lang=ts&\"\nexport * from \"./indexH5.vue?vue&type=script&setup=true&lang=ts&\"\nimport style0 from \"./indexH5.vue?vue&type=style&index=0&id=6f1ee0d6&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6f1ee0d6\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"footer-container\"},[_c('div',{staticClass:\"left-container\"},[_c(_setup.AudioControl,{staticClass:\"left-container-item\",on:{\"click\":function($event){return _setup.handleControlClick('audioControl')}}}),_c(_setup.VideoControl,{staticClass:\"left-container-item\",on:{\"click\":function($event){return _setup.handleControlClick('videoControl')}}})],1),_c('div',{staticClass:\"center-container\"},[_c(_setup.ScreenShareControl,{on:{\"click\":function($event){return _setup.handleControlClick('screenShareControl')}}}),_c(_setup.FullScreenControl,{on:{\"click\":function($event){return _setup.handleControlClick('fullScreenControl')}}}),(_setup.roomStore.isMaster)?_c(_setup.ManageMemberControl,{on:{\"click\":function($event){return _setup.handleControlClick('manageMemberControl')}}}):_vm._e(),_c(_setup.InviteControl,{on:{\"click\":function($event){return _setup.handleControlClick('inviteControl')}}}),_c(_setup.ChatControl,{on:{\"click\":function($event){return _setup.handleControlClick('chatControl')}}}),(_setup.roomStore.isSpeakAfterTakingSeatMode)?_c(_setup.ApplyControl,{on:{\"click\":function($event){return _setup.handleControlClick('applyControl')}}}):_vm._e(),_c(_setup.MoreControl,{on:{\"click\":function($event){return _setup.handleControlClick('moreControl')}}}),_c(_setup.SettingControl,{on:{\"click\":function($event){return _setup.handleControlClick('settingControl')}}})],1),_c('div',{staticClass:\"right-container\"},[_c(_setup.EndControl,{on:{\"on-destroy-room\":_setup.onDestroyRoom,\"on-exit-room\":_setup.onExitRoom}})],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"screen-share-control-container\"},[_c(_setup.IconButton,{ref:\"btnStopRef\",attrs:{\"is-active\":_setup.isSharing,\"disabled\":_setup.screenShareDisabled,\"title\":_setup.title,\"icon-name\":_setup.iconName},on:{\"click-icon\":_setup.toggleScreenShare}}),(_setup.showStopShareRegion)?_c('div',{staticClass:\"stop-share-region\",on:{\"click\":_setup.openStopConfirmDialog}},[_c(_setup.SvgIcon,{staticClass:\"stop-share-icon\",attrs:{\"icon-name\":_setup.ICON_NAME.ScreenShareStopped}}),_c('span',[_vm._v(_vm._s(_setup.t('End sharing')))])],1):_vm._e(),_c(_setup.Dialog,{attrs:{\"model-value\":_setup.dialogVisible,\"width\":\"420px\",\"title\":_setup.t('Stop sharing?'),\"modal\":true,\"append-to-body\":false,\"before-close\":_setup.cancelStop},scopedSlots:_vm._u([{key:\"footer\",fn:function(){return [_c('span',[_c('el-button',{attrs:{\"type\":\"primary\"},on:{\"click\":_setup.stopScreenShare}},[_vm._v(_vm._s(_setup.t('Stop sharing')))]),_c('el-button',{attrs:{\"type\":\"default\"},on:{\"click\":_setup.cancelStop}},[_vm._v(_vm._s(_setup.t('Cancel')))])],1)]},proxy:true}])},[_c('span',[_vm._v(\" \"+_vm._s(_setup.t('Others will no longer see your screen after you stop sharing. Are you sure you want to stop?')))])])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { defineComponent as _defineComponent } from 'vue'\nimport { ref, Ref, computed, onUnmounted, watch } from 'vue';\nimport { storeToRefs } from 'pinia';\nimport { ElMessage } from '../../../elementComp';\nimport Dialog from '../../../elementComp/Dialog';\nimport IconButton from '../../common/IconButton.vue';\nimport TUIRoomEngine, { TUIRoomEvents } from '@tencentcloud/tuiroom-engine-js';\nimport useGetRoomEngine from '../../../hooks/useRoomEngine';\nimport { useRoomStore } from '../../../stores/room';\nimport logger from '../../../utils/common/logger';\nimport SvgIcon from '../../common/SvgIcon.vue';\nimport { ICON_NAME } from '../../../constants/icon';\nimport { MESSAGE_DURATION } from '../../../constants/message';\nimport { useI18n } from '../../../locales';\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'Index',\n setup(__props) {\n\nconst roomEngine = useGetRoomEngine();\n\nconst logPrefix = '[ScreenShareControl]';\n\nconst roomStore = useRoomStore();\nconst { isAnchor, isAudience, hasOtherScreenShare } = storeToRefs(roomStore);\nconst { t } = useI18n();\n\nconst btnStopRef = ref();\nconst isSharing: Ref = ref(false);\nconst showStopShareRegion: Ref = ref(false);\nconst dialogVisible: Ref = ref(false);\n\n// 麦下用户不能进行屏幕分享\nconst screenShareDisabled = computed(() => isAudience.value);\nconst title = computed(() => (isSharing.value ? t('Sharing') : t('Share screen')));\nconst iconName = computed(() => {\n if (screenShareDisabled.value) {\n return ICON_NAME.ScreenShareDisabled;\n }\n return isSharing.value ? ICON_NAME.ScreenSharing : ICON_NAME.ScreenShare;\n});\n\nwatch(isAnchor, (val: any, oldVal: any) => {\n if (!oldVal && val && isSharing.value) {\n stopScreenShare();\n }\n});\n\nasync function toggleScreenShare() {\n if (isAudience.value) {\n ElMessage({\n type: 'warning',\n message: t('You currently do not have sharing permission, please raise your hand to apply for sharing permission first'),\n duration: MESSAGE_DURATION.LONG,\n });\n return;\n }\n if (hasOtherScreenShare.value) {\n ElMessage({\n type: 'warning',\n message: t('Another user is currently sharing the screen, screen sharing is not possible.'),\n duration: MESSAGE_DURATION.LONG,\n });\n return;\n }\n if (isSharing.value) {\n showStopShareRegion.value = true;\n return;\n }\n try {\n await roomEngine.instance?.startScreenSharing();\n isSharing.value = true;\n } catch (error: any) {\n logger.error(`${logPrefix}startScreenShare error:`, error.name, error.message, error.code);\n let message = '';\n // 当屏幕分享流初始化失败时, 提醒用户并停止后续进房发布流程\n switch (error.name) {\n case 'NotReadableError':\n // 提醒用户确保系统允许当前浏览器获取屏幕内容\n message = '系统禁止当前浏览器获取屏幕内容';\n break;\n case 'NotAllowedError':\n if (error.message.includes('Permission denied by system')) {\n // 提醒用户确保系统允许当前浏览器获取屏幕内容\n message = '系统禁止当前浏览器获取屏幕内容';\n } else {\n // 用户拒绝/取消屏幕分享\n message = '用户拒绝/取消屏幕分享';\n }\n break;\n default:\n // 初始化屏幕分享流时遇到了未知错误,提醒用户重试\n message = '屏幕分享遇到未知错误';\n break;\n }\n ElMessage({\n type: 'warning',\n message,\n duration: MESSAGE_DURATION.LONG,\n });\n }\n}\n\nfunction openStopConfirmDialog() {\n showStopShareRegion.value = false;\n if (isSharing.value) {\n dialogVisible.value = true;\n }\n}\n\nfunction cancelStop() {\n dialogVisible.value = false;\n}\n\nasync function stopScreenShare() {\n if (isSharing.value) {\n try {\n await roomEngine.instance?.stopScreenSharing();\n dialogVisible.value = false;\n isSharing.value = false;\n } catch (error) {\n logger.error(`${logPrefix}stopScreenShare error:`, error);\n }\n }\n}\n\n/** 用户点击浏览器自带的 \"停止共享\" 按钮*/\nfunction screenCaptureStopped() {\n isSharing.value = false;\n}\n\nTUIRoomEngine.once('ready', () => {\n roomEngine.instance?.on(TUIRoomEvents.onUserScreenCaptureStopped, screenCaptureStopped);\n});\n\nonUnmounted(() => {\n roomEngine.instance?.off(TUIRoomEvents.onUserScreenCaptureStopped, screenCaptureStopped);\n});\n\nreturn { __sfc: true,roomEngine, logPrefix, roomStore, isAnchor, isAudience, hasOtherScreenShare, t, btnStopRef, isSharing, showStopShareRegion, dialogVisible, screenShareDisabled, title, iconName, toggleScreenShare, openStopConfirmDialog, cancelStop, stopScreenShare, screenCaptureStopped, Dialog, IconButton, SvgIcon, ICON_NAME }\n}\n\n})","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Index.vue?vue&type=script&setup=true&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Index.vue?vue&type=script&setup=true&lang=ts&\"","import { render, staticRenderFns } from \"./Index.vue?vue&type=template&id=5d38a258&scoped=true&\"\nimport script from \"./Index.vue?vue&type=script&setup=true&lang=ts&\"\nexport * from \"./Index.vue?vue&type=script&setup=true&lang=ts&\"\nimport style0 from \"./Index.vue?vue&type=style&index=0&id=5d38a258&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5d38a258\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"fullscreen-control-container\"},[_c(_setup.IconButton,{attrs:{\"is-active\":_setup.isFullScreen,\"title\":_setup.title,\"icon-name\":_setup.iconName},on:{\"click-icon\":_setup.toggleScreen}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { defineComponent as _defineComponent } from 'vue'\nimport { ref, computed, onMounted, onUnmounted } from 'vue';\nimport IconButton from '../common/IconButton.vue';\nimport { setFullScreen, exitFullScreen } from '../../utils/utils';\nimport { ICON_NAME } from '../../constants/icon';\nimport { useI18n } from '../../locales';\nimport { isVue27 } from '../../utils/constants';\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'FullScreenControl',\n setup(__props) {\n\nconst { t } = useI18n();\n\n/**\n * Whether the current state is full screen, default is false\n *\n * 当前是否为全屏状态, 默认为 false\n**/\nconst isFullScreen = ref(false);\n\nconst title = computed((): string => (isFullScreen.value ? t('Exit') : t('Full screen')));\nconst iconName = computed((): string => (isFullScreen.value ? ICON_NAME.ExitFullScreen : ICON_NAME.FullScreen));\n\nfunction toggleScreen() {\n if (isFullScreen.value) {\n exitFullScreen();\n } else {\n if (isVue27) {\n const roomContainer = document.body;\n roomContainer && setFullScreen(roomContainer);\n } else {\n const roomContainer = document.getElementById('roomContainer');\n roomContainer && setFullScreen(roomContainer);\n }\n }\n}\n\nfunction handleFullScreenChange() {\n isFullScreen.value = !isFullScreen.value;\n}\n\nonMounted(() => {\n ['fullscreenchange', 'webkitfullscreenchange', 'mozfullscreenchange'].forEach((item) => {\n window.addEventListener(item, handleFullScreenChange);\n });\n});\n\nonUnmounted(() => {\n ['fullscreenchange', 'webkitfullscreenchange', 'mozfullscreenchange'].forEach((item) => {\n window.removeEventListener(item, handleFullScreenChange);\n });\n});\n\nreturn { __sfc: true,t, isFullScreen, title, iconName, toggleScreen, handleFullScreenChange, IconButton }\n}\n\n})","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./FullScreenControl.vue?vue&type=script&setup=true&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./FullScreenControl.vue?vue&type=script&setup=true&lang=ts&\"","import { render, staticRenderFns } from \"./FullScreenControl.vue?vue&type=template&id=2ebc7fcf&scoped=true&\"\nimport script from \"./FullScreenControl.vue?vue&type=script&setup=true&lang=ts&\"\nexport * from \"./FullScreenControl.vue?vue&type=script&setup=true&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"2ebc7fcf\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"setting-control-container\"},[_c(_setup.IconButton,{attrs:{\"is-active\":_setup.showSettingDialog,\"title\":_setup.t('Settings'),\"icon-name\":_setup.iconName},on:{\"click-icon\":_setup.handleShowSettingDialog}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { defineComponent as _defineComponent } from 'vue'\nimport { computed } from 'vue';\nimport IconButton from '../common/IconButton.vue';\nimport { useBasicStore } from '../../stores/basic';\nimport { storeToRefs } from 'pinia';\nimport { ICON_NAME } from '../../constants/icon';\nimport { useI18n } from '../../locales';\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'SettingControl',\n setup(__props) {\n\nconst { t } = useI18n();\n\nconst basicStore = useBasicStore();\nconst { showSettingDialog } = storeToRefs(basicStore);\n\nconst iconName = computed(() => (showSettingDialog.value ? ICON_NAME.SettingActive : ICON_NAME.Setting));\n\nfunction handleShowSettingDialog() {\n basicStore.setShowSettingDialog(!basicStore.showSettingDialog);\n}\n\nreturn { __sfc: true,t, basicStore, showSettingDialog, iconName, handleShowSettingDialog, IconButton }\n}\n\n})","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SettingControl.vue?vue&type=script&setup=true&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SettingControl.vue?vue&type=script&setup=true&lang=ts&\"","import { render, staticRenderFns } from \"./SettingControl.vue?vue&type=template&id=2c9e5284&scoped=true&\"\nimport script from \"./SettingControl.vue?vue&type=script&setup=true&lang=ts&\"\nexport * from \"./SettingControl.vue?vue&type=script&setup=true&lang=ts&\"\nimport style0 from \"./SettingControl.vue?vue&type=style&index=0&id=2c9e5284&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"2c9e5284\",\n null\n \n)\n\nexport default component.exports","import { defineComponent as _defineComponent } from 'vue'\nimport AudioControl from '../AudioControl.vue';\nimport ScreenShareControl from '../ScreenShareControl/Index.vue';\nimport FullScreenControl from '../FullScreenControl.vue';\nimport InviteControl from '../InviteControl.vue';\nimport VideoControl from '../VideoControl.vue';\nimport ManageMemberControl from '../ManageMemberControl.vue';\nimport ChatControl from '../ChatControl.vue';\nimport ApplyControl from '../ApplyControl/Index.vue';\nimport MoreControl from '../MoreControl';\nimport EndControl from '../EndControl';\nimport SettingControl from '../SettingControl.vue';\nimport bus from '../../../hooks/useMitt';\n\n\nimport TUIRoomAegis from '../../../utils/aegis';\n\nimport useRoomFooter from './useRoomFooterHooks';\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'indexPC',\n emits: ['on-destroy-room', 'on-exit-room'],\n setup(__props, { emit }) {\n\nconst {\n roomStore,\n} = useRoomFooter();\n\n\n\nconst onDestroyRoom = (info: { code: number; message: string }) => {\n emit('on-destroy-room', info);\n TUIRoomAegis.reportEvent({ name: 'destroyRoom', ext1: 'destroyRoom-success' });\n};\n\nconst onExitRoom = (info: { code: number; message: string }) => {\n emit('on-exit-room', info);\n TUIRoomAegis.reportEvent({ name: 'exitRoom', ext1: 'exitRoom-success' });\n};\n\nfunction handleControlClick(name: string) {\n TUIRoomAegis.reportEvent({ name, ext1: name });\n bus.emit('experience-communication', name);\n}\n\nreturn { __sfc: true,roomStore, emit, onDestroyRoom, onExitRoom, handleControlClick, AudioControl, ScreenShareControl, FullScreenControl, InviteControl, VideoControl, ManageMemberControl, ChatControl, ApplyControl, MoreControl, EndControl, SettingControl }\n}\n\n})","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./indexPC.vue?vue&type=script&setup=true&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./indexPC.vue?vue&type=script&setup=true&lang=ts&\"","import { render, staticRenderFns } from \"./indexPC.vue?vue&type=template&id=fcf4ace8&scoped=true&\"\nimport script from \"./indexPC.vue?vue&type=script&setup=true&lang=ts&\"\nexport * from \"./indexPC.vue?vue&type=script&setup=true&lang=ts&\"\nimport style0 from \"./indexPC.vue?vue&type=style&index=0&id=fcf4ace8&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"fcf4ace8\",\n null\n \n)\n\nexport default component.exports","import indexH5 from './indexH5.vue';\nimport indexPc from './indexPC.vue';\nimport { isMobile } from '../../../utils/useMediaValue';\n\nconst Index = isMobile ? indexH5 : indexPc;\n\nexport default Index;\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return (_setup.showSideBar)?_c(_setup.popup,{staticClass:\"sidebar-container-mobile\",attrs:{\"title\":_setup.title},scopedSlots:_vm._u([{key:\"sidebarContent\",fn:function(){return [_c('div',{staticStyle:{\"height\":\"100%\"}},[(_setup.sidebarName === 'chat')?_c(_setup.Chat):_vm._e(),(_setup.sidebarName === 'manage-member')?_c(_setup.ManageMember):_vm._e()],1)]},proxy:true},{key:\"sidebarFooter\",fn:function(){return [_c('div',[(_setup.sidebarName === 'chat')?_c(_setup.ChatEditor):_vm._e()],1)]},proxy:true}],null,false,403798847)}):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{class:[_setup.isMobile ? 'chat-container-h5' : 'chat-container' ]},[_c(_setup.MessageList),(!_setup.isMobile)?_c(_setup.ChatEditor):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{class:_setup.isMobile ? 'message-list-container-h5':'message-list-container'},[_c('div',{staticClass:\"message-list\"},_vm._l((_setup.messageList),function(item){return _c('div',{key:item.ID,ref:\"messageAimId\",refInFor:true,class:['message-item', `${'out' === item.flow ? 'is-me' : ''}`]},[_c('div',{staticClass:\"message-header\",attrs:{\"title\":item.nick || item.from}},[_vm._v(\" \"+_vm._s(item.nick || item.from)+\" \")]),_c('div',{staticClass:\"message-body\"},[(item.type === 'TIMTextElem')?_c(_setup.MessageText,{attrs:{\"data\":item.payload.text}}):_vm._e()],1)])}),0),_c('div',{ref:\"messageBottomEl\",staticClass:\"message-bottom\"})])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('span',_vm._l((_setup.handleTextMessageShowContext(_setup.props.data)),function(item,index){return _c('span',{key:index},[(item.name === 'text')?_c('span',{staticClass:\"text-box\"},[_vm._v(_vm._s(item.text))]):(item.name === 'img')?_c('img',{staticClass:\"text-img\",attrs:{\"src\":item.src}}):_vm._e()])}),0)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export const emojiUrl:string = 'https://web.sdk.qcloud.com/im/assets/emoji/';\nexport const emojiMap:any = {\n '[NO]': 'emoji_0@2x.png',\n '[OK]': 'emoji_1@2x.png',\n '[下雨]': 'emoji_2@2x.png',\n '[么么哒]': 'emoji_3@2x.png',\n '[乒乓]': 'emoji_4@2x.png',\n '[便便]': 'emoji_5@2x.png',\n '[信封]': 'emoji_6@2x.png',\n '[偷笑]': 'emoji_7@2x.png',\n '[傲慢]': 'emoji_8@2x.png',\n '[再见]': 'emoji_9@2x.png',\n '[冷汗]': 'emoji_10@2x.png',\n '[凋谢]': 'emoji_11@2x.png',\n '[刀]': 'emoji_12@2x.png',\n '[删除]': 'emoji_13@2x.png',\n '[勾引]': 'emoji_14@2x.png',\n '[发呆]': 'emoji_15@2x.png',\n '[发抖]': 'emoji_16@2x.png',\n '[可怜]': 'emoji_17@2x.png',\n '[可爱]': 'emoji_18@2x.png',\n '[右哼哼]': 'emoji_19@2x.png',\n '[右太极]': 'emoji_20@2x.png',\n '[右车头]': 'emoji_21@2x.png',\n '[吐]': 'emoji_22@2x.png',\n '[吓]': 'emoji_23@2x.png',\n '[咒骂]': 'emoji_24@2x.png',\n '[咖啡]': 'emoji_25@2x.png',\n '[啤酒]': 'emoji_26@2x.png',\n '[嘘]': 'emoji_27@2x.png',\n '[回头]': 'emoji_28@2x.png',\n '[困]': 'emoji_29@2x.png',\n '[坏笑]': 'emoji_30@2x.png',\n '[多云]': 'emoji_31@2x.png',\n '[大兵]': 'emoji_32@2x.png',\n '[大哭]': 'emoji_33@2x.png',\n '[太阳]': 'emoji_34@2x.png',\n '[奋斗]': 'emoji_35@2x.png',\n '[奶瓶]': 'emoji_36@2x.png',\n '[委屈]': 'emoji_37@2x.png',\n '[害羞]': 'emoji_38@2x.png',\n '[尴尬]': 'emoji_39@2x.png',\n '[左哼哼]': 'emoji_40@2x.png',\n '[左太极]': 'emoji_41@2x.png',\n '[左车头]': 'emoji_42@2x.png',\n '[差劲]': 'emoji_43@2x.png',\n '[弱]': 'emoji_44@2x.png',\n '[强]': 'emoji_45@2x.png',\n '[彩带]': 'emoji_46@2x.png',\n '[彩球]': 'emoji_47@2x.png',\n '[得意]': 'emoji_48@2x.png',\n '[微笑]': 'emoji_49@2x.png',\n '[心碎了]': 'emoji_50@2x.png',\n '[快哭了]': 'emoji_51@2x.png',\n '[怄火]': 'emoji_52@2x.png',\n '[怒]': 'emoji_53@2x.png',\n '[惊恐]': 'emoji_54@2x.png',\n '[惊讶]': 'emoji_55@2x.png',\n '[憨笑]': 'emoji_56@2x.png',\n '[手枪]': 'emoji_57@2x.png',\n '[打哈欠]': 'emoji_58@2x.png',\n '[抓狂]': 'emoji_59@2x.png',\n '[折磨]': 'emoji_60@2x.png',\n '[抠鼻]': 'emoji_61@2x.png',\n '[抱抱]': 'emoji_62@2x.png',\n '[抱拳]': 'emoji_63@2x.png',\n '[拳头]': 'emoji_64@2x.png',\n '[挥手]': 'emoji_65@2x.png',\n '[握手]': 'emoji_66@2x.png',\n '[撇嘴]': 'emoji_67@2x.png',\n '[擦汗]': 'emoji_68@2x.png',\n '[敲打]': 'emoji_69@2x.png',\n '[晕]': 'emoji_70@2x.png',\n '[月亮]': 'emoji_71@2x.png',\n '[棒棒糖]': 'emoji_72@2x.png',\n '[汽车]': 'emoji_73@2x.png',\n '[沙发]': 'emoji_74@2x.png',\n '[流汗]': 'emoji_75@2x.png',\n '[流泪]': 'emoji_76@2x.png',\n '[激动]': 'emoji_77@2x.png',\n '[灯泡]': 'emoji_78@2x.png',\n '[炸弹]': 'emoji_79@2x.png',\n '[熊猫]': 'emoji_80@2x.png',\n '[爆筋]': 'emoji_81@2x.png',\n '[爱你]': 'emoji_82@2x.png',\n '[爱心]': 'emoji_83@2x.png',\n '[爱情]': 'emoji_84@2x.png',\n '[猪头]': 'emoji_85@2x.png',\n '[猫咪]': 'emoji_86@2x.png',\n '[献吻]': 'emoji_87@2x.png',\n '[玫瑰]': 'emoji_88@2x.png',\n '[瓢虫]': 'emoji_89@2x.png',\n '[疑问]': 'emoji_90@2x.png',\n '[白眼]': 'emoji_91@2x.png',\n '[皮球]': 'emoji_92@2x.png',\n '[睡觉]': 'emoji_93@2x.png',\n '[磕头]': 'emoji_94@2x.png',\n '[示爱]': 'emoji_95@2x.png',\n '[礼品袋]': 'emoji_96@2x.png',\n '[礼物]': 'emoji_97@2x.png',\n '[篮球]': 'emoji_98@2x.png',\n '[米饭]': 'emoji_99@2x.png',\n '[糗大了]': 'emoji_100@2x.png',\n '[红双喜]': 'emoji_101@2x.png',\n '[红灯笼]': 'emoji_102@2x.png',\n '[纸巾]': 'emoji_103@2x.png',\n '[胜利]': 'emoji_104@2x.png',\n '[色]': 'emoji_105@2x.png',\n '[药]': 'emoji_106@2x.png',\n '[菜刀]': 'emoji_107@2x.png',\n '[蛋糕]': 'emoji_108@2x.png',\n '[蜡烛]': 'emoji_109@2x.png',\n '[街舞]': 'emoji_110@2x.png',\n '[衰]': 'emoji_111@2x.png',\n '[西瓜]': 'emoji_112@2x.png',\n '[调皮]': 'emoji_113@2x.png',\n '[象棋]': 'emoji_114@2x.png',\n '[跳绳]': 'emoji_115@2x.png',\n '[跳跳]': 'emoji_116@2x.png',\n '[车厢]': 'emoji_117@2x.png',\n '[转圈]': 'emoji_118@2x.png',\n '[鄙视]': 'emoji_119@2x.png',\n '[酷]': 'emoji_120@2x.png',\n '[钞票]': 'emoji_121@2x.png',\n '[钻戒]': 'emoji_122@2x.png',\n '[闪电]': 'emoji_123@2x.png',\n '[闭嘴]': 'emoji_124@2x.png',\n '[闹钟]': 'emoji_125@2x.png',\n '[阴险]': 'emoji_126@2x.png',\n '[难过]': 'emoji_127@2x.png',\n '[雨伞]': 'emoji_128@2x.png',\n '[青蛙]': 'emoji_129@2x.png',\n '[面条]': 'emoji_130@2x.png',\n '[鞭炮]': 'emoji_131@2x.png',\n '[风车]': 'emoji_132@2x.png',\n '[飞吻]': 'emoji_133@2x.png',\n '[飞机]': 'emoji_134@2x.png',\n '[饥饿]': 'emoji_135@2x.png',\n '[香蕉]': 'emoji_136@2x.png',\n '[骷髅]': 'emoji_137@2x.png',\n '[麦克风]': 'emoji_138@2x.png',\n '[麻将]': 'emoji_139@2x.png',\n '[鼓掌]': 'emoji_140@2x.png',\n '[龇牙]': 'emoji_141@2x.png',\n};\nexport const emojiList = [\n '[龇牙]',\n '[调皮]',\n '[流汗]',\n '[偷笑]',\n '[再见]',\n '[敲打]',\n '[擦汗]',\n '[猪头]',\n '[玫瑰]',\n '[流泪]',\n '[大哭]',\n '[嘘]',\n '[酷]',\n '[抓狂]',\n '[委屈]',\n '[便便]',\n '[炸弹]',\n '[菜刀]',\n '[可爱]',\n '[色]',\n '[害羞]',\n '[得意]',\n '[吐]',\n '[微笑]',\n '[怒]',\n '[尴尬]',\n '[惊恐]',\n '[冷汗]',\n '[爱心]',\n '[示爱]',\n '[白眼]',\n '[傲慢]',\n '[难过]',\n '[惊讶]',\n '[疑问]',\n '[困]',\n '[么么哒]',\n '[憨笑]',\n '[爱情]',\n '[衰]',\n '[撇嘴]',\n '[阴险]',\n '[奋斗]',\n '[发呆]',\n '[右哼哼]',\n '[抱抱]',\n '[坏笑]',\n '[飞吻]',\n '[鄙视]',\n '[晕]',\n '[大兵]',\n '[可怜]',\n '[强]',\n '[弱]',\n '[握手]',\n '[胜利]',\n '[抱拳]',\n '[凋谢]',\n '[米饭]',\n '[蛋糕]',\n '[西瓜]',\n '[啤酒]',\n '[瓢虫]',\n '[勾引]',\n '[OK]',\n '[爱你]',\n '[咖啡]',\n '[月亮]',\n '[刀]',\n '[发抖]',\n '[差劲]',\n '[拳头]',\n '[心碎了]',\n '[太阳]',\n '[礼物]',\n '[皮球]',\n '[骷髅]',\n '[挥手]',\n '[闪电]',\n '[饥饿]',\n '[咒骂]',\n '[折磨]',\n '[抠鼻]',\n '[鼓掌]',\n '[糗大了]',\n '[左哼哼]',\n '[打哈欠]',\n '[快哭了]',\n '[吓]',\n '[篮球]',\n '[乒乓]',\n '[NO]',\n '[跳跳]',\n '[怄火]',\n '[转圈]',\n '[磕头]',\n '[回头]',\n '[跳绳]',\n '[激动]',\n '[街舞]',\n '[献吻]',\n '[左太极]',\n '[右太极]',\n '[闭嘴]',\n '[猫咪]',\n '[红双喜]',\n '[鞭炮]',\n '[红灯笼]',\n '[麻将]',\n '[麦克风]',\n '[礼品袋]',\n '[信封]',\n '[象棋]',\n '[彩带]',\n '[蜡烛]',\n '[爆筋]',\n '[棒棒糖]',\n '[奶瓶]',\n '[面条]',\n '[香蕉]',\n '[飞机]',\n '[左车头]',\n '[车厢]',\n '[右车头]',\n '[多云]',\n '[下雨]',\n '[钞票]',\n '[熊猫]',\n '[灯泡]',\n '[风车]',\n '[闹钟]',\n '[雨伞]',\n '[彩球]',\n '[钻戒]',\n '[沙发]',\n '[纸巾]',\n '[手枪]',\n '[青蛙]',\n];\nexport const faceUrl:string = 'https://web.sdk.qcloud.com/im/assets/face-elem/';\n\nexport function decodeMessageText(payload: string) {\n const renderDom = [];\n /**\n * Text Message\n *\n * 文本消息\n **/\n let temp = payload;\n let left = -1;\n let right = -1;\n while (temp !== '') {\n left = temp.indexOf('[');\n right = temp.indexOf(']');\n switch (left) {\n case 0:\n if (right === -1) {\n renderDom.push({\n name: 'text',\n text: temp,\n });\n temp = '';\n } else {\n const emojiKey = temp.slice(0, right + 1);\n if (emojiMap[emojiKey]) {\n renderDom.push({\n name: 'img',\n src: emojiUrl + emojiMap[emojiKey],\n });\n temp = temp.substring(right + 1);\n } else {\n renderDom.push({\n name: 'text',\n text: '[',\n });\n temp = temp.slice(1);\n }\n }\n break;\n case -1:\n renderDom.push({\n name: 'text',\n text: temp,\n });\n temp = '';\n break;\n default:\n renderDom.push({\n name: 'text',\n text: temp.slice(0, left),\n });\n temp = temp.substring(left);\n break;\n }\n }\n return renderDom;\n}\n","import { defineComponent as _defineComponent } from 'vue'\nimport { decodeMessageText } from '../util';\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'MessageText',\n props: ['data'],\n setup(__props) {\n\nconst props = __props\n\n\n\nconst handleTextMessageShowContext = (text: string) => decodeMessageText(text);\n\n\nreturn { __sfc: true,props, handleTextMessageShowContext }\n}\n\n})","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./MessageText.vue?vue&type=script&setup=true&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./MessageText.vue?vue&type=script&setup=true&lang=ts&\"","import { render, staticRenderFns } from \"./MessageText.vue?vue&type=template&id=467c6786&scoped=true&\"\nimport script from \"./MessageText.vue?vue&type=script&setup=true&lang=ts&\"\nexport * from \"./MessageText.vue?vue&type=script&setup=true&lang=ts&\"\nimport style0 from \"./MessageText.vue?vue&type=style&index=0&id=467c6786&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"467c6786\",\n null\n \n)\n\nexport default component.exports","import { ref, watch, nextTick } from 'vue';\nimport { storeToRefs } from 'pinia';\nimport { useChatStore } from '../../stores/chat';\nimport { useBasicStore } from '../../stores/basic';\nimport { useI18n } from '../../locales';\nimport useGetRoomEngine from '../../hooks/useRoomEngine';\n\nexport default function useMessageList() {\n const { t } = useI18n();\n const roomEngine = useGetRoomEngine();\n const chatStore = useChatStore();\n const basicStore = useBasicStore();\n const { roomId } = storeToRefs(basicStore);\n const { messageList, isCompleted, nextReqMessageId } = storeToRefs(chatStore);\n const historyMessageList = ref([]);\n const messageAimId = ref();\n const messageBottomEl = ref(null);\n /**\n * To solve the problem of scrolling up the message yourself,\n * to prevent others from sending messages keep scrolling down the message list\n *\n * 为了解决自己向上滚动浏览消息, 防止别人发的消息不停向下滚消息列表\n**/\n let loadMore = false;\n let isScrollNotAtBottom = false;\n let isScrollToTop = false;\n const handleMessageListScroll = (e: Event) => {\n const messageContainer = e.target as HTMLElement;\n const bottom = messageContainer.scrollHeight - messageContainer.scrollTop - messageContainer.clientHeight;\n if (bottom > 80) {\n /**\n * 30 is the threshold for determining whether to scroll up through the messages\n *\n * 30 为判断是否向上滚动浏览消息的阈值\n **/\n isScrollNotAtBottom = true;\n } else {\n isScrollNotAtBottom = false;\n }\n if (isScrollToTop) {\n messageContainer.scrollTop = 0;\n isScrollToTop = false;\n }\n\n if (messageContainer.scrollTop < 40 && loadMore) {\n handleGetHistoryMessageList();\n }\n };\n\n watch(isCompleted, (value) => {\n loadMore = !value;\n }, { immediate: true, deep: true });\n\n watch(messageList, async (newMessageList, oldMessageList) => { // eslint-disable-line\n await nextTick();\n if (isScrollNotAtBottom) {\n if (newMessageList.length >= 1) {\n const lastMessage = newMessageList[newMessageList.length - 1];\n const oldLastMessage = oldMessageList[oldMessageList.length - 1];\n if ((lastMessage as any).flow === 'out' && lastMessage.ID !== oldLastMessage.ID) {\n /**\n * The latest one was sent by myself\n *\n * 最新一条是自己发送的\n **/\n messageBottomEl.value && messageBottomEl.value.scrollIntoView();\n }\n }\n return;\n }\n /**\n * If you don't scroll all the way to the bottom, show the latest news directly\n *\n * 如果没进行滚动一直在底部, 直接展示最新消息\n **/\n messageBottomEl.value && messageBottomEl.value.scrollIntoView();\n });\n\n async function handleGetHistoryMessageList() {\n const tim = roomEngine.instance?.getTIM();\n const imResponse = await tim.getMessageList({\n conversationID: `GROUP${roomId.value}`,\n nextReqMessageID: nextReqMessageId.value,\n });\n const { nextReqMessageID: middleReqMessageId, messageList: historyMessageList, isCompleted } = imResponse.data;\n messageList.value.splice(0, 0, ...historyMessageList);\n const currentMessageList = messageList.value.filter(item => item.type === 'TIMTextElem');\n chatStore.setMessageListInfo(currentMessageList, isCompleted, middleReqMessageId);\n }\n async function getMessageList(): Promise<{\n currentMessageList: any[];\n isCompleted: boolean,\n nextReqMessageId: string,\n }> {\n let count = 0;\n const result: {\n currentMessageList: any[],\n isCompleted: boolean,\n nextReqMessageId: string,\n } = {\n currentMessageList: [],\n isCompleted: false,\n nextReqMessageId: '',\n };\n const tim: any = roomEngine.instance?.getTIM();\n\n const getIMMessageList = async () => {\n const conversationData: {\n conversationID: string,\n nextReqMessageID?: string | undefined;\n } = {\n conversationID: `GROUP${roomId.value}`,\n };\n if (result.nextReqMessageId !== '') {\n conversationData.nextReqMessageID = result.nextReqMessageId;\n }\n const imResponse = await tim.getMessageList(conversationData);\n const { messageList, isCompleted, nextReqMessageID } = imResponse.data;\n result.currentMessageList.splice(0, 0, ...messageList);\n result.isCompleted = messageList.length > 0 ? isCompleted : true;\n result.nextReqMessageId = nextReqMessageID;\n if (result.isCompleted || result.currentMessageList.length >= 15) {\n return;\n }\n count += 1;\n if (count === 1) {\n await getIMMessageList();\n }\n };\n\n await getIMMessageList();\n\n return result;\n };\n const onReceiveTextMessage = (data: { roomId: string, message: any }) => {\n const { message } = data;\n chatStore.updateMessageList({\n ID: message.messageId,\n type: 'TIMTextElem',\n payload: {\n text: message.message,\n },\n nick: message?.userName || message.userId,\n from: message.userId,\n flow: 'in',\n sequence: Math.random(),\n });\n };\n return {\n t,\n roomEngine,\n historyMessageList,\n messageAimId,\n messageBottomEl,\n handleMessageListScroll,\n handleGetHistoryMessageList,\n onReceiveTextMessage,\n messageList,\n isScrollNotAtBottom,\n getMessageList,\n };\n}\n","import { defineComponent as _defineComponent } from 'vue'\nimport { nextTick, onMounted, onUnmounted } from 'vue';\nimport MessageText from '../MessageTypes/MessageText.vue';\nimport TUIRoomEngine, { TUIRoomEvents } from '@tencentcloud/tuiroom-engine-js';\nimport { isMobile } from '../../../utils/useMediaValue';\nimport useMessageList from '../useMessageListHook';\nimport { useChatStore } from '../../../stores/chat';\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'MessageListPC',\n setup(__props) {\n\nconst chatStore = useChatStore();\n\nconst {\n messageAimId,\n roomEngine,\n messageBottomEl,\n handleMessageListScroll,\n onReceiveTextMessage,\n messageList,\n getMessageList,\n} = useMessageList();\n\n\nonMounted(async () => {\n const { currentMessageList, isCompleted, nextReqMessageId } = await getMessageList();\n const filterCurrentMessageList = currentMessageList.filter((item: any) => item.type === 'TIMTextElem');\n chatStore.setMessageListInfo(filterCurrentMessageList, isCompleted, nextReqMessageId);\n\n await nextTick(() => {\n if (messageAimId?.value?.length > 0) {\n const target = messageAimId?.value[messageAimId?.value?.length - 1];\n target.scrollIntoView();\n }\n });\n window.addEventListener('scroll', handleMessageListScroll, true);\n});\n\n\nTUIRoomEngine.once('ready', () => {\n roomEngine.instance?.on(TUIRoomEvents.onReceiveTextMessage, onReceiveTextMessage);\n});\n\nonUnmounted(() => {\n window.removeEventListener('scroll', handleMessageListScroll, true);\n roomEngine.instance?.off(TUIRoomEvents.onReceiveTextMessage, onReceiveTextMessage);\n});\n\nreturn { __sfc: true,chatStore, messageAimId, roomEngine, messageBottomEl, handleMessageListScroll, onReceiveTextMessage, messageList, getMessageList, MessageText, isMobile }\n}\n\n})","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./MessageListPC.vue?vue&type=script&setup=true&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./MessageListPC.vue?vue&type=script&setup=true&lang=ts&\"","import { render, staticRenderFns } from \"./MessageListPC.vue?vue&type=template&id=3ee0bdff&scoped=true&\"\nimport script from \"./MessageListPC.vue?vue&type=script&setup=true&lang=ts&\"\nexport * from \"./MessageListPC.vue?vue&type=script&setup=true&lang=ts&\"\nimport style0 from \"./MessageListPC.vue?vue&type=style&index=0&id=3ee0bdff&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3ee0bdff\",\n null\n \n)\n\nexport default component.exports","import messageListPC from './MessageListPC.vue';\n\nexport default messageListPC;\n\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{class:['chat-editor', _setup.cannotSendMessage ? 'disable-editor' : '']},[_c('div',{staticClass:\"input-content\"},[_c(_setup.emoji,{staticClass:\"chat-emoji\",on:{\"choose-emoji\":_setup.handleChooseEmoji}}),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_setup.sendMsg),expression:\"sendMsg\"}],ref:\"editorInputEle\",staticClass:\"content-bottom-input\",attrs:{\"type\":\"text\",\"disabled\":_setup.cannotSendMessage,\"placeholder\":_setup.cannotSendMessage ? _setup.t('Muted by the moderator') : _setup.t('Type a message'),\"enterkeyhint\":\"send\"},domProps:{\"value\":(_setup.sendMsg)},on:{\"keyup\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\"))return null;return _setup.sendMessage.apply(null, arguments)},\"input\":function($event){if($event.target.composing)return;_setup.sendMsg=$event.target.value}}})],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"emoji-tool\"},[_c(_setup.SvgIcon,{staticClass:\"arrow emoji-icon\",attrs:{\"icon-name\":\"emoji-h5\",\"size\":\"medium\"},on:{\"click\":_setup.togglePopover}}),(_setup.visible)?_c('div',{ref:\"emojiListRef\",class:_setup.isMobile? 'emoji-list-h5':'emoji-list',attrs:{\"id\":\"emoji-list\"}},_vm._l((_setup.emojiList),function(childrenItem,childrenIndex){return _c('div',{key:childrenIndex,staticClass:\"emoji-item\",on:{\"click\":function($event){return _setup.chooseEmoji(childrenItem)}}},[_c('img',{attrs:{\"src\":_setup.emojiUrl + _setup.emojiMap[childrenItem]}})])}),0):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { defineComponent as _defineComponent } from 'vue'\nimport { ref, onMounted, onUnmounted } from 'vue';\nimport { emojiUrl, emojiMap, emojiList } from '../util';\nimport SvgIcon from '../../common/SvgIcon.vue';\nimport { isMobile } from '../../../utils/useMediaValue';\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'emojiPC',\n emits: ['choose-emoji'],\n setup(__props, { emit }) {\n\nconst emojiListRef = ref();\n\nconst visible = ref(false);\n\nconst chooseEmoji = (itemName: string) => {\n const emojiInfo = itemName;\n closePopover();\n emit('choose-emoji', emojiInfo);\n};\n\nconst togglePopover = () => {\n visible.value = !visible.value;\n};\n\nconst closePopover = () => {\n visible.value = false;\n};\n\nfunction handleDocumentClick(event: MouseEvent) {\n if (visible.value && !emojiListRef.value.contains(event.target)) {\n visible.value = false;\n }\n}\n\nonMounted(() => {\n document.addEventListener('click', handleDocumentClick, true);\n});\n\nonUnmounted(() => {\n document.removeEventListener('click', handleDocumentClick, true);\n});\n\nreturn { __sfc: true,emojiListRef, visible, emit, chooseEmoji, togglePopover, closePopover, handleDocumentClick, emojiUrl, emojiMap, emojiList, SvgIcon, isMobile }\n}\n\n})","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./emojiPC.vue?vue&type=script&setup=true&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./emojiPC.vue?vue&type=script&setup=true&lang=ts&\"","import { render, staticRenderFns } from \"./emojiPC.vue?vue&type=template&id=78a2609f&scoped=true&\"\nimport script from \"./emojiPC.vue?vue&type=script&setup=true&lang=ts&\"\nexport * from \"./emojiPC.vue?vue&type=script&setup=true&lang=ts&\"\nimport style0 from \"./emojiPC.vue?vue&type=style&index=0&id=78a2609f&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"78a2609f\",\n null\n \n)\n\nexport default component.exports","import emojiPC from './emojiPC.vue';\nexport default emojiPC;\n\n","import { computed, ref, watch } from 'vue';\nimport { storeToRefs } from 'pinia';\nimport { ElMessage } from '../../../elementComp';\n\nimport useGetRoomEngine from '../../../hooks/useRoomEngine';\nimport { useChatStore } from '../../../stores/chat';\nimport { useRoomStore } from '../../../stores/room';\nimport { useI18n } from '../../../locales';\nexport default function useChatEditor() {\n const roomEngine = useGetRoomEngine();\n\n const { t } = useI18n();\n const chatStore = useChatStore();\n const roomStore = useRoomStore();\n\n const { isMessageDisableByAdmin } = storeToRefs(chatStore);\n const { isMessageDisableForAllUser } = storeToRefs(roomStore);\n const editorInputEle = ref();\n const sendMsg = ref('');\n const isEmojiToolbarVisible = ref(false);\n watch(isMessageDisableByAdmin, (value) => {\n if (value) {\n sendMsg.value = '';\n }\n });\n\n watch(isMessageDisableForAllUser, (value) => {\n if (value) {\n sendMsg.value = '';\n }\n });\n const cannotSendMessage = computed(() => Boolean(isMessageDisableByAdmin.value || isMessageDisableForAllUser.value));\n const sendMessage = async () => {\n const msg = sendMsg.value.replace('\\n', '');\n sendMsg.value = '';\n if (msg === '') {\n return;\n }\n isEmojiToolbarVisible.value = false;\n try {\n await roomEngine.instance?.sendTextMessage({\n messageText: msg,\n });\n chatStore.updateMessageList({\n ID: Math.random().toString(),\n type: 'TIMTextElem',\n payload: {\n text: msg,\n },\n nick: roomStore.localUser.userName || roomStore.localUser.userId,\n from: roomStore.localUser.userId,\n flow: 'out',\n sequence: Math.random(),\n });\n } catch (e) {\n /**\n * Message delivery failure\n *\n * 消息发送失败\n **/\n ElMessage.error(t('Failed to send the message'));\n }\n };\n\n const handleChooseEmoji = (emojiName: string) => {\n sendMsg.value += emojiName;\n editorInputEle.value.focus();\n };\n const togglePopover = () => {\n isEmojiToolbarVisible.value = !isEmojiToolbarVisible.value;\n };\n return {\n t,\n editorInputEle,\n sendMsg,\n isMessageDisableByAdmin,\n cannotSendMessage,\n sendMessage,\n handleChooseEmoji,\n isEmojiToolbarVisible,\n togglePopover,\n };\n}\n","import { defineComponent as _defineComponent } from 'vue'\nimport emoji from '../EditorTools';\nimport useChatEditor from './useChatEditor';\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'ChatEditorH5',\n setup(__props) {\n\nconst {\n t,\n editorInputEle,\n sendMsg,\n cannotSendMessage,\n sendMessage,\n handleChooseEmoji,\n} = useChatEditor();\n\n\nreturn { __sfc: true,t, editorInputEle, sendMsg, cannotSendMessage, sendMessage, handleChooseEmoji, emoji }\n}\n\n})","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ChatEditorH5.vue?vue&type=script&setup=true&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ChatEditorH5.vue?vue&type=script&setup=true&lang=ts&\"","import { render, staticRenderFns } from \"./ChatEditorH5.vue?vue&type=template&id=4ae1f1c7&scoped=true&\"\nimport script from \"./ChatEditorH5.vue?vue&type=script&setup=true&lang=ts&\"\nexport * from \"./ChatEditorH5.vue?vue&type=script&setup=true&lang=ts&\"\nimport style0 from \"./ChatEditorH5.vue?vue&type=style&index=0&id=4ae1f1c7&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4ae1f1c7\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{class:['chat-editor', _setup.cannotSendMessage ? 'disable-editor': '']},[_c('textarea',{directives:[{name:\"model\",rawName:\"v-model\",value:(_setup.sendMsg),expression:\"sendMsg\"}],ref:\"editorInputEle\",staticClass:\"content-bottom-input\",attrs:{\"disabled\":_setup.cannotSendMessage,\"placeholder\":_setup.cannotSendMessage ? _setup.t('Muted by the moderator') : _setup.t('Type a message')},domProps:{\"value\":(_setup.sendMsg)},on:{\"keyup\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\"))return null;return _setup.sendMessage.apply(null, arguments)},\"input\":function($event){if($event.target.composing)return;_setup.sendMsg=$event.target.value}}}),_vm._v(\" \"),(!_setup.cannotSendMessage)?_c('div',{staticClass:\"chat-editor-toolbar\"},[_c('div',{staticClass:\"left-section\"},[_c(_setup.emoji,{on:{\"choose-emoji\":_setup.handleChooseEmoji}})],1),_c('div',{class:['send-btn', `${_setup.sendMsg.length > 0 ? 'active' : ''}`],on:{\"click\":_setup.sendMessage}},[_vm._v(_vm._s(_setup.t('Send')))])]):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { defineComponent as _defineComponent } from 'vue'\nimport emoji from '../EditorTools';\nimport useChatEditor from './useChatEditor';\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'ChatEditorPC',\n setup(__props) {\n\nconst {\n t,\n editorInputEle,\n sendMsg,\n cannotSendMessage,\n sendMessage,\n handleChooseEmoji,\n} = useChatEditor();\n\n\nreturn { __sfc: true,t, editorInputEle, sendMsg, cannotSendMessage, sendMessage, handleChooseEmoji, emoji }\n}\n\n})","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ChatEditorPC.vue?vue&type=script&setup=true&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ChatEditorPC.vue?vue&type=script&setup=true&lang=ts&\"","import { render, staticRenderFns } from \"./ChatEditorPC.vue?vue&type=template&id=6cdfd1ed&scoped=true&\"\nimport script from \"./ChatEditorPC.vue?vue&type=script&setup=true&lang=ts&\"\nexport * from \"./ChatEditorPC.vue?vue&type=script&setup=true&lang=ts&\"\nimport style0 from \"./ChatEditorPC.vue?vue&type=style&index=0&id=6cdfd1ed&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6cdfd1ed\",\n null\n \n)\n\nexport default component.exports","import ChatEditorH5 from './ChatEditorH5.vue';\nimport ChatEditorPC from './ChatEditorPC.vue';\nimport { isMobile } from '../../../utils/useMediaValue';\n\n\nconst ChatEditor = isMobile ? ChatEditorH5 : ChatEditorPC;\n\nexport default ChatEditor;\n\n","import { defineComponent as _defineComponent } from 'vue'\nimport MessageList from './MessageList';\nimport ChatEditor from './ChatEditor';\nimport { isMobile } from '../../utils/useMediaValue';\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'index',\n setup(__props) {\n\n\nreturn { __sfc: true,MessageList, ChatEditor, isMobile }\n}\n\n})","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&setup=true&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&setup=true&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=6588445b&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&setup=true&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&setup=true&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=6588445b&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6588445b\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"manage-member-container\"},[(_setup.applyToAnchorList.length > 0)?_c('div',{staticClass:\"apply-on-stage-info\"},[_c('div',{staticClass:\"apply-info\"},[_vm._v(\" \"+_vm._s(`${_setup.applyToAnchorList[0].userName || _setup.applyToAnchorList[0].userId} ${_setup.t('Applying for the stage')}`)+\" \")])]):_vm._e(),_c('div',{staticClass:\"member-list-container\"},[_c('div',{staticClass:\"member-list-header\"},[_vm._v(\" \"+_vm._s(_setup.t('Member List'))+\" \"),_c('span',{staticClass:\"member-count\"},[_vm._v(\"(\"+_vm._s(_setup.userNumber)+_vm._s(_setup.t('members'))+\")\")])]),_c('div',{staticClass:\"member-list-content\"},_vm._l((_setup.userList),function(userInfo){return _c(_setup.MemberItem,{key:userInfo.userId,attrs:{\"user-info\":userInfo}})}),1)]),_c('div',{staticClass:\"manage-member-bottom\"},[_c('div',{staticClass:\"manage-member-button\",class:_setup.isMicrophoneDisableForAllUser ? 'lift-all' : '',on:{\"touchstart\":function($event){return _setup.toggleManageMember(_setup.ManageControlType.AUDIO)}}},[_vm._v(\" \"+_vm._s(_setup.audioManageInfo)+\" \")]),_c('div',{staticClass:\"manage-member-button\",class:_setup.isCameraDisableForAllUser ? 'lift-all' : '',on:{\"touchstart\":function($event){return _setup.toggleManageMember(_setup.ManageControlType.VIDEO)}}},[_vm._v(\" \"+_vm._s(_setup.videoManageInfo)+\" \")])]),_c(_setup.Dialog,{staticClass:\"custom-element-class\",attrs:{\"model-value\":_setup.showManageAllUserDialog,\"modal\":false,\"show-close\":false,\"append-to-body\":true,\"close-on-click-modal\":false,\"close-on-press-escape\":false,\"width\":\"500px\"},scopedSlots:_vm._u([{key:\"footer\",fn:function(){return [_c('div',{staticClass:\"button-container-mobile\"},[_c('span',{staticClass:\"cancel\",on:{\"click\":function($event){_setup.showManageAllUserDialog = false}}},[_vm._v(_vm._s(_setup.t('Cancel')))]),_c('span',{staticClass:\"agree\",on:{\"click\":_setup.doToggleManageMember}},[_vm._v(_vm._s(_setup.dialogActionInfo))])])]},proxy:true}])},[_c('span',[_vm._v(\" \"+_vm._s(_setup.dialogTitleInfo)+\" \")])])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{directives:[{name:\"tap\",rawName:\"v-tap\",value:(_setup.handleMemberItemClick),expression:\"handleMemberItemClick\"}],ref:(el) => _setup.setMemberItemRef(el),staticClass:\"member-item-container\"},[_c(_setup.MemberInfo,{ref:(el) => _setup.setMemberInfoRef(el),attrs:{\"show-state-icon\":true,\"user-info\":_vm.userInfo}}),(_setup.showMemberControl)?_c(_setup.MemberControl,{ref:(el) => _setup.setMemberControlRef(el),attrs:{\"user-info\":_vm.userInfo},on:{\"on-close-control\":_setup.handleCloseControl}}):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{class:[_setup.isMobile ? 'member-info-mobile' : 'member-info']},[_c('div',{staticClass:\"member-basic-info\"},[_c(_setup.Avatar,{staticClass:\"avatar-url\",attrs:{\"img-src\":_vm.userInfo.avatarUrl}}),_c('div',{staticClass:\"user-name\"},[_vm._v(_vm._s(_vm.userInfo.userName || _vm.userInfo.userId))]),(_setup.isMaster && _setup.isMe)?_c('div',{staticClass:\"user-extra-info\"},[_vm._v(\" \"+_vm._s(_setup.t('Host'))+\", \"+_vm._s(_setup.t('Me'))+\" \")]):(_setup.isMe)?_c('div',{staticClass:\"user-extra-info\"},[_vm._v(\" \"+_vm._s(_setup.t('Me'))+\" \")]):(_setup.basicStore.masterUserId === _vm.userInfo.userId)?_c('div',{staticClass:\"user-extra-info\"},[_vm._v(\" \"+_vm._s(_setup.t('Host'))+\" \")]):_vm._e()],1),(!_setup.isMe && _vm.showStateIcon)?_c('div',{staticClass:\"member-av-state\"},[(_vm.userInfo.onSeat)?_c('div',[_c(_setup.SvgIcon,{staticClass:\"setting-icon\",attrs:{\"icon-name\":_vm.userInfo.hasAudioStream ? _setup.ICON_NAME.MicOn : _setup.ICON_NAME.MicOff,\"size\":\"large\"}}),_c(_setup.SvgIcon,{staticClass:\"setting-icon video-icon\",attrs:{\"icon-name\":_vm.userInfo.hasVideoStream ? _setup.ICON_NAME.CameraOn : _setup.ICON_NAME.CameraOff,\"size\":\"large\"}})],1):_vm._e(),(!_vm.userInfo.onSeat && !_vm.userInfo.isUserApplyingToAnchor)?_c('div',[_c(_setup.SvgIcon,{staticClass:\"setting-icon\",attrs:{\"icon-name\":_setup.ICON_NAME.MicOffDisabled,\"size\":\"large\"}}),_c(_setup.SvgIcon,{staticClass:\"setting-icon video-icon\",attrs:{\"icon-name\":_setup.ICON_NAME.CameraOffDisabled,\"size\":\"large\"}})],1):_vm._e(),(!_vm.userInfo.onSeat && _vm.userInfo.isUserApplyingToAnchor)?_c('div',[_c(_setup.SvgIcon,{attrs:{\"icon-name\":\"apply-active\"}})],1):_vm._e()]):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { defineComponent as _defineComponent } from 'vue'\nimport { computed } from 'vue';\nimport Avatar from '../../base/Avatar.vue';\nimport { useBasicStore } from '../../../stores/basic';\nimport { UserInfo, useRoomStore } from '../../../stores/room';\nimport { storeToRefs } from 'pinia';\nimport { ICON_NAME } from '../../../constants/icon';\nimport SvgIcon from '../../common/SvgIcon.vue';\nimport { useI18n } from '../../../locales';\nimport { isMobile } from '../../../utils/useMediaValue';\n\ninterface Props {\n userInfo: UserInfo,\n showStateIcon?: Boolean,\n}\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'MemberInfo',\n props: {\n userInfo: null,\n showStateIcon: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n userInfo: UserInfo,\n showStateIcon?: Boolean,\n}\n\nconst { t } = useI18n();\n\n\nconst basicStore = useBasicStore();\nconst roomStore = useRoomStore();\nconst { isMaster } = storeToRefs(roomStore);\n\nconst isMe = computed(() => basicStore.userId === props.userInfo.userId);\n\n\nreturn { __sfc: true,t, props, basicStore, roomStore, isMaster, isMe, Avatar, ICON_NAME, SvgIcon, isMobile }\n}\n\n})","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./MemberInfo.vue?vue&type=script&setup=true&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./MemberInfo.vue?vue&type=script&setup=true&lang=ts&\"","import { render, staticRenderFns } from \"./MemberInfo.vue?vue&type=template&id=0325ed23&scoped=true&\"\nimport script from \"./MemberInfo.vue?vue&type=script&setup=true&lang=ts&\"\nexport * from \"./MemberInfo.vue?vue&type=script&setup=true&lang=ts&\"\nimport style0 from \"./MemberInfo.vue?vue&type=style&index=0&id=0325ed23&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0325ed23\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return (!_setup.isMe)?_c('div',{staticClass:\"member-control-container\"},[_c('div',{staticClass:\"member-title\"},[_c('img',{staticClass:\"avatar-url\",attrs:{\"src\":_vm.userInfo.avatarUrl || _setup.defaultAvatar}}),_c('div',{staticClass:\"member-title-content\"},[_vm._v(_vm._s(_vm.userInfo.userName || _vm.userInfo.userId))]),(_setup.isWeChat)?_c('span',{directives:[{name:\"tap\",rawName:\"v-tap.stop\",value:(_setup.handleCloseControl),expression:\"handleCloseControl\",modifiers:{\"stop\":true}}],staticClass:\"cancel\"},[_vm._v(_vm._s(_setup.t('Cancel')))]):_vm._e()]),_vm._l((_setup.controlList),function(item,index){return _c('div',{directives:[{name:\"tap\",rawName:\"v-tap\",value:(() => item.func(_vm.userInfo)),expression:\"() => item.func(userInfo)\"}],key:index,staticClass:\"user-operate-item\"},[_c(_setup.SvgIcon,{staticClass:\"icon-svg\",attrs:{\"icon-name\":item.iconName}}),_c('div',{staticClass:\"control-title\"},[_vm._v(_vm._s(item.title))])],1)})],2):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { defineComponent as _defineComponent } from 'vue'\nimport { computed } from 'vue';\nimport { useI18n } from '../../../locales';\n\nimport { UserInfo, useRoomStore } from '../../../stores/room';\nimport defaultAvatar from '../../../assets/imgs/avatar.png';\nimport useGetRoomEngine from '../../../hooks/useRoomEngine';\nimport { useBasicStore } from '../../../stores/basic';\nimport SvgIcon from '../../common/SvgIcon.vue';\nimport useMasterApplyControl from '../../../hooks/useMasterApplyControl';\nimport { isWeChat } from '../../../utils/useMediaValue';\nimport { TUIMediaDevice } from '@tencentcloud/tuiroom-engine-js';\nimport '../../../directives/vTap';\n\ninterface Props {\n userInfo: UserInfo,\n}\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'MemberControlH5',\n props: {\n userInfo: null\n },\n emits: ['on-close-control'],\n setup(__props: any, { emit }) {\n\nconst props = __props as {\n userInfo: UserInfo,\n}\n\nconst roomEngine = useGetRoomEngine();\nconst { t } = useI18n();\n\nconst basicStore = useBasicStore();\nconst roomStore = useRoomStore();\n/**\n * Functions related to the Raise Your Hand function\n *\n * 举手发言功能相关函数\n**/\nconst {\n agreeUserOnStage,\n denyUserOnStage,\n inviteUserOnStage,\n cancelInviteUserOnStage,\n kickUserOffStage,\n} = useMasterApplyControl();\n\n\n\n\nconst isMe = computed(() => basicStore.userId === props.userInfo.userId);\nconst isAnchor = computed(() => props.userInfo.onSeat === true);\nconst isAudience = computed(() => props.userInfo.onSeat !== true);\nconst isFreeSpeechMode = computed(() => roomStore.isFreeSpeakMode);\nconst isSpeakAfterTakingSeat = computed(() => roomStore.isSpeakAfterTakingSeatMode);\n\nconst requestStageTitle = computed(() => (\n isAnchor.value\n ? t('Step down')\n : props.userInfo.isInvitingUserToAnchor\n ? t('Cancel stage')\n : t('Invite stage')\n));\n\n/**\n * Invitation to the stage/uninvitation to the stage\n *\n * 邀请上台/取消邀请上台\n**/\nasync function toggleInviteUserOnStage(userInfo: UserInfo) {\n const { isInvitingUserToAnchor } = userInfo;\n if (isInvitingUserToAnchor) {\n cancelInviteUserOnStage(userInfo);\n } else {\n inviteUserOnStage(userInfo);\n }\n}\n\n// 邀请上台 / 取消邀请上台\nconst toggleInviteStage = computed(() => ({ iconName: 'apply', title: requestStageTitle.value, func: toggleInviteUserOnStage }));\n\n// 邀请下台\nconst makeOffStage = computed(() => ({ iconName: 'apply', title: t('Step down'), func: kickUserOffStage }));\n\n// 同意上台\nconst agreeOnStage = computed(() => ({ iconName: 'apply', title: t('Agree to the stage'), func: agreeUserOnStage }));\n\n// 拒绝上台\nconst denyOnStage = computed(() => ({ iconName: 'apply', title: t('Refuse stage'), func: denyUserOnStage }));\n\nconst audioControlTitle = computed(() => (\n props.userInfo.hasAudioStream\n ? t('Mute')\n : (props.userInfo.isRequestingUserOpenMic\n ? t('Cancel Unmute')\n : t('Unmute'))\n));\nconst audioControl = computed(() => ({ iconName: 'mic-on', title: audioControlTitle.value, func: muteUserAudio }));\n\nconst videoControlTitle = computed(() => {\n if (props.userInfo.hasVideoStream) {\n return t('Disable video');\n }\n if (props.userInfo.isRequestingUserOpenCamera) {\n return t('Cancel Enable video');\n }\n return t('Enable video');\n});\nconst videoControl = computed(() => ({ iconName: 'camera-on', title: videoControlTitle.value, func: muteUserVideo }));\n\nconst chatControlTitle = computed(() => (props.userInfo.isChatMutedByMaster ? t('Enable chat') : t('Disable chat')));\nconst forbidChat = computed(() => ({ iconName: 'chat', title: chatControlTitle.value, func: disableUserChat }));\n\nconst kickUser = computed(() => ({ iconName: 'invite', title: t('Kick out'), func: kickOffUser }));\n\n/**\n* Control the centralized matching of elements\n *\n * Free speech mode\n * 1. Current user is the anchor.\n * Banning/unbanning Banning/unbanning drawing\n * Banning chat\n * Kicked out of the room\n *\n * Raise hand to speak mode\n * 1. Current user is the host.\n * Banning/unbanning Banning/unbanning drawing\n * Invite to step down\n * Ban chat\n * Kicked out of the room\n * 2.\n * 2. Audience did not request to be on the mic.\n * Invite on stage / Disinvite on stage * Ban chat\n * Kicked out of the room\n * 3.\n * 3. the audience is applying for the mic.\n * Agree to go on stage Deny go on stage\n * Ban chat\n * Kicked out of the room\n *\n * 控制元素的集中匹配情况\n *\n * 自由发言模式\n * 1.当前用户为主播:\n * 禁言/解除禁言/取消解除禁言 禁画/解除禁画/取消解除禁画\n * 禁止聊天\n * 踢出房间\n *\n * 举手发言模式\n * 1. 当前用户为主播:\n * 禁言/解除禁言/取消解除禁言 禁画/解除禁画/取消解除禁画\n * 邀请下台\n * 禁止聊天\n * 踢出房间\n *\n * 2. 观众没有申请上麦:\n * 邀请上台/取消邀请上台 禁止聊天\n * 踢出房间\n *\n * 3. 观众正在申请上麦:\n * 同意上台 拒绝上台\n * 禁止聊天\n * 踢出房间\n**/\nconst controlList = computed(() => {\n const controlRelationObj = {\n freeSpeech: [audioControl.value, videoControl.value, forbidChat.value, kickUser.value],\n applySpeechAndAnchor:\n [audioControl.value, videoControl.value, makeOffStage.value, forbidChat.value, kickUser.value],\n applySpeechAndIsApplyingToAnchor: [agreeOnStage.value, denyOnStage.value, forbidChat.value, kickUser.value],\n applySpeechAndAudience: [toggleInviteStage.value, forbidChat.value, kickUser.value],\n default: [forbidChat.value, kickUser.value],\n };\n\n if (isFreeSpeechMode.value) {\n return controlRelationObj.freeSpeech;\n }\n if (isSpeakAfterTakingSeat.value && isAnchor.value) {\n return controlRelationObj.applySpeechAndAnchor;\n }\n if (isSpeakAfterTakingSeat.value && isAudience.value && props.userInfo.isUserApplyingToAnchor) {\n return controlRelationObj.applySpeechAndIsApplyingToAnchor;\n }\n if (isSpeakAfterTakingSeat.value && isAudience.value && !props.userInfo.isUserApplyingToAnchor) {\n return controlRelationObj.applySpeechAndAudience;\n }\n return controlRelationObj.default;\n});\n\n/**\n * Banning/Unbanning\n *\n * 禁麦/邀请打开麦克风\n**/\nasync function muteUserAudio(userInfo: UserInfo) {\n if (userInfo.hasAudioStream) {\n await roomEngine.instance?.closeRemoteDeviceByAdmin({\n userId: userInfo.userId,\n device: TUIMediaDevice.kMicrophone,\n });\n } else {\n if (userInfo.isRequestingUserOpenMic) {\n const requestId = userInfo.requestUserOpenMicRequestId;\n requestId && await roomEngine.instance?.cancelRequest({ requestId });\n roomStore.setRequestUserOpenMic({ userId: userInfo.userId, isRequesting: false });\n } else {\n const request = await roomEngine.instance?.openRemoteDeviceByAdmin({\n userId: userInfo.userId,\n device: TUIMediaDevice.kMicrophone,\n timeout: 0,\n requestCallback: () => {\n // 处理请求超时,应答,拒绝的情况\n roomStore.setRequestUserOpenMic({ userId: userInfo.userId, isRequesting: false });\n },\n });\n if (request && request.requestId) {\n roomStore.setRequestUserOpenMic({ userId: userInfo.userId, isRequesting: true, requestId: request.requestId });\n }\n }\n }\n}\n\n/**\n * Banned painting/unbanned painting\n *\n * 禁画/取消禁画\n**/\nasync function muteUserVideo(userInfo: UserInfo) {\n if (userInfo.hasVideoStream) {\n await roomEngine.instance?.closeRemoteDeviceByAdmin({\n userId: userInfo.userId,\n device: TUIMediaDevice.kCamera,\n });\n } else {\n if (userInfo.isRequestingUserOpenCamera) {\n const requestId = userInfo.requestUserOpenCameraRequestId;\n requestId && await roomEngine.instance?.cancelRequest({ requestId });\n roomStore.setRequestUserOpenCamera({ userId: userInfo.userId, isRequesting: false });\n } else {\n const request = await roomEngine.instance?.openRemoteDeviceByAdmin({\n userId: userInfo.userId,\n device: TUIMediaDevice.kCamera,\n timeout: 0,\n requestCallback: () => {\n // 处理请求超时,应答,拒绝的情况\n roomStore.setRequestUserOpenCamera({ userId: userInfo.userId, isRequesting: false });\n },\n });\n if (request && request.requestId) {\n roomStore.setRequestUserOpenCamera({\n userId: userInfo.userId,\n isRequesting: true,\n requestId: request.requestId,\n });\n }\n }\n }\n}\n/**\n * Allow text chat / Cancel text chat\n *\n * 允许文字聊天/取消文字聊天\n**/\nfunction disableUserChat(userInfo: UserInfo) {\n const currentState = userInfo.isChatMutedByMaster;\n roomStore.setMuteUserChat(userInfo.userId, !currentState);\n roomEngine.instance?.disableSendingMessageByAdmin({\n userId: userInfo.userId,\n isDisable: !currentState,\n });\n}\n\n/**\n * Kick the user out of the room\n *\n * 将用户踢出房间\n**/\nfunction kickOffUser(userInfo: UserInfo) {\n roomEngine.instance?.kickRemoteUserOutOfRoom({\n userId: userInfo.userId,\n });\n}\n\nfunction handleCloseControl() {\n emit('on-close-control');\n}\n\nreturn { __sfc: true,roomEngine, t, basicStore, roomStore, agreeUserOnStage, denyUserOnStage, inviteUserOnStage, cancelInviteUserOnStage, kickUserOffStage, emit, props, isMe, isAnchor, isAudience, isFreeSpeechMode, isSpeakAfterTakingSeat, requestStageTitle, toggleInviteUserOnStage, toggleInviteStage, makeOffStage, agreeOnStage, denyOnStage, audioControlTitle, audioControl, videoControlTitle, videoControl, chatControlTitle, forbidChat, kickUser, controlList, muteUserAudio, muteUserVideo, disableUserChat, kickOffUser, handleCloseControl, defaultAvatar, SvgIcon, isWeChat }\n}\n\n})","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./MemberControlH5.vue?vue&type=script&setup=true&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./MemberControlH5.vue?vue&type=script&setup=true&lang=ts&\"","import { render, staticRenderFns } from \"./MemberControlH5.vue?vue&type=template&id=d259161c&scoped=true&\"\nimport script from \"./MemberControlH5.vue?vue&type=script&setup=true&lang=ts&\"\nexport * from \"./MemberControlH5.vue?vue&type=script&setup=true&lang=ts&\"\nimport style0 from \"./MemberControlH5.vue?vue&type=style&index=0&id=d259161c&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"d259161c\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return (!_setup.isMe)?_c('div',{staticClass:\"member-control-container\"},[_c('div',{staticClass:\"mute-btn\",on:{\"click\":function($event){return _setup.singleControl.func(_vm.userInfo)}}},[_vm._v(\" \"+_vm._s(_setup.singleControl.title)+\" \")]),_c('div',{staticClass:\"more-container\",on:{\"click\":_setup.handlePopUp}},[_c('div',{staticClass:\"more-btn\",on:{\"click\":_setup.toggleClickMoreBtn}},[_vm._v(\" \"+_vm._s(_setup.t('More'))+\" \"),_c(_setup.SvgIcon,{staticClass:\"more-icon\",attrs:{\"icon-name\":_setup.ICON_NAME.ArrowBorderDown}})],1),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_setup.showMoreControl),expression:\"showMoreControl\"}],class:_setup.dropdownClass,attrs:{\"id\":\"operate-list\"},on:{\"mouseleave\":_setup.handleMouseLeave}},_vm._l((_setup.controlList),function(item,index){return _c('div',{key:index,staticClass:\"user-operate-item\",on:{\"click\":function($event){return item.func(_vm.userInfo)}}},[_vm._v(\" \"+_vm._s(item.title)+\" \")])}),0)])]):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { defineComponent as _defineComponent } from 'vue'\nimport { ref, computed } from 'vue';\nimport { useI18n } from '../../../locales';\n\nimport { UserInfo, useRoomStore } from '../../../stores/room';\nimport { ICON_NAME } from '../../../constants/icon';\nimport useGetRoomEngine from '../../../hooks/useRoomEngine';\nimport { useBasicStore } from '../../../stores/basic';\nimport SvgIcon from '../../common/SvgIcon.vue';\nimport useMasterApplyControl from '../../../hooks/useMasterApplyControl';\nimport { TUIMediaDevice } from '@tencentcloud/tuiroom-engine-js';\ninterface Props {\n userInfo: UserInfo,\n}\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'MemberControlPC',\n props: {\n userInfo: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n userInfo: UserInfo,\n}\n\nconst roomEngine = useGetRoomEngine();\nconst { t } = useI18n();\n\nconst basicStore = useBasicStore();\nconst roomStore = useRoomStore();\nconst dropdownClass = ref('');\n/**\n * Functions related to the Raise Your Hand function\n *\n * 举手发言功能相关函数\n**/\nconst {\n agreeUserOnStage,\n denyUserOnStage,\n inviteUserOnStage,\n cancelInviteUserOnStage,\n kickUserOffStage,\n} = useMasterApplyControl();\n\n\n\nconst showMoreControl = ref(false);\nconst isMe = computed(() => basicStore.userId === props.userInfo.userId);\nconst isAnchor = computed(() => props.userInfo.onSeat === true);\nconst isAudience = computed(() => props.userInfo.onSeat !== true);\nconst isFreeSpeechMode = computed(() => roomStore.isFreeSpeakMode);\nconst isSpeakAfterTakingSeat = computed(() => roomStore.isSpeakAfterTakingSeatMode);\n/**\n* Control the centralized matching of elements\n *\n * Free speech mode\n * 1. Current user is the anchor.\n * Banning/unbanning Banning/unbanning drawing\n * Banning chat\n * Kicked out of the room\n *\n * Raise hand to speak mode\n * 1. Current user is the host.\n * Banning/unbanning Banning/unbanning drawing\n * Invite to step down\n * Ban chat\n * Kicked out of the room\n * 2.\n * 2. Audience did not request to be on the mic.\n * Invite on stage / Disinvite on stage * Ban chat\n * Kicked out of the room\n * 3.\n * 3. the audience is applying for the mic.\n * Agree to go on stage Deny go on stage\n * Ban chat\n * Kicked out of the room\n *\n * 控制元素的集中匹配情况\n *\n * 自由发言模式\n * 1.当前用户为主播:\n * 禁言/解除禁言/取消解除禁言 禁画/解除禁画/取消解除禁画\n * 禁止聊天\n * 踢出房间\n *\n * 举手发言模式\n * 1. 当前用户为主播:\n * 禁言/解除禁言/取消解除禁言 禁画/解除禁画/取消解除禁画\n * 邀请下台\n * 禁止聊天\n * 踢出房间\n *\n * 2. 观众没有申请上麦:\n * 邀请上台/取消邀请上台 禁止聊天\n * 踢出房间\n *\n * 3. 观众正在申请上麦:\n * 同意上台 拒绝上台\n * 禁止聊天\n * 踢出房间\n**/\nfunction handlePopUp() {\n const dropdown = document.getElementById('operate-list');\n const roomContainer = document.getElementById('roomContainer');\n const dropdownRectBottom = dropdown !== null && dropdown.getBoundingClientRect().bottom;\n const roomContainerHeight = roomContainer !== null && roomContainer.offsetHeight;\n if (dropdownRectBottom > roomContainerHeight) {\n dropdownClass.value = 'user-operate-list dropdownUp';\n } else {\n dropdownClass.value = 'user-operate-list';\n }\n};\n\nconst singleControl = computed(() => {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const control = { title: '', func: (userInfo: UserInfo) => {} };\n if (isFreeSpeechMode.value) {\n control.title = props.userInfo.hasAudioStream ? t('Mute') : (props.userInfo.isRequestingUserOpenMic ? t('Cancel Unmute') : t('Unmute'));\n control.func = muteUserAudio;\n } else if (isSpeakAfterTakingSeat.value) {\n if (isAnchor.value) {\n control.title = props.userInfo.hasAudioStream ? t('Mute') : (props.userInfo.isRequestingUserOpenMic ? t('Cancel Unmute') : t('Unmute'));\n control.func = muteUserAudio;\n } else if (isAudience.value) {\n if (props.userInfo.isUserApplyingToAnchor) {\n control.title = t('Agree to the stage');\n control.func = agreeUserOnStage;\n } else {\n control.title = props.userInfo.isInvitingUserToAnchor ? t('Cancel stage') : t('Invite stage');\n control.func = toggleInviteUserOnStage;\n }\n }\n }\n return control;\n});\n\nconst denyOnStage = computed(() => ({ title: t('Refuse stage'), func: denyUserOnStage }));\nconst makeOffStage = computed(() => ({ title: t('Step down'), func: kickUserOffStage }));\n\nconst videoControlTitle = computed(() => {\n if (props.userInfo.hasVideoStream) {\n return t('Disable video');\n }\n if (props.userInfo.isRequestingUserOpenCamera) {\n return t('Cancel Enable video');\n }\n return t('Enable video');\n});\nconst videoControl = computed(() => ({ title: videoControlTitle.value, func: muteUserVideo }));\n\nconst chatControlTitle = computed(() => (props.userInfo.isChatMutedByMaster ? t('Enable chat') : t('Disable chat')));\nconst forbidChat = computed(() => ({ title: chatControlTitle.value, func: disableUserChat }));\n\nconst kickUser = computed(() => ({ title: t('Kick out'), func: kickOffUser }));\nconst controlList = computed(() => {\n const list = [forbidChat.value, kickUser.value];\n if (isFreeSpeechMode.value) {\n list.unshift(videoControl.value);\n }\n if (isAnchor.value && isSpeakAfterTakingSeat.value) {\n list.unshift(videoControl.value);\n list.splice(1, 0, makeOffStage.value);\n }\n if (isAudience.value && props.userInfo.isUserApplyingToAnchor) {\n list.splice(0, 0, denyOnStage.value);\n }\n return list;\n});\n\nfunction toggleClickMoreBtn() {\n showMoreControl.value = !showMoreControl.value;\n}\nfunction handleMouseLeave() {\n showMoreControl.value = false;\n}\n\n/**\n * Invitation to the stage/uninvitation to the stage\n *\n * 邀请上台/取消邀请上台\n**/\nasync function toggleInviteUserOnStage(userInfo: UserInfo) {\n const { isInvitingUserToAnchor } = userInfo;\n if (isInvitingUserToAnchor) {\n cancelInviteUserOnStage(userInfo);\n } else {\n inviteUserOnStage(userInfo);\n }\n}\n\n/**\n * Banning/Unbanning\n *\n * 禁麦/邀请打开麦克风\n**/\nasync function muteUserAudio(userInfo: UserInfo) {\n if (userInfo.hasAudioStream) {\n await roomEngine.instance?.closeRemoteDeviceByAdmin({\n userId: userInfo.userId,\n device: TUIMediaDevice.kMicrophone,\n });\n } else {\n if (userInfo.isRequestingUserOpenMic) {\n const requestId = userInfo.requestUserOpenMicRequestId;\n requestId && await roomEngine.instance?.cancelRequest({ requestId });\n roomStore.setRequestUserOpenMic({ userId: userInfo.userId, isRequesting: false });\n } else {\n const request = await roomEngine.instance?.openRemoteDeviceByAdmin({\n userId: userInfo.userId,\n device: TUIMediaDevice.kMicrophone,\n timeout: 0,\n requestCallback: () => {\n // 处理请求超时,应答,拒绝的情况\n roomStore.setRequestUserOpenMic({ userId: userInfo.userId, isRequesting: false });\n },\n });\n if (request && request.requestId) {\n roomStore.setRequestUserOpenMic({ userId: userInfo.userId, isRequesting: true, requestId: request.requestId });\n }\n }\n }\n}\n\n/**\n * Banned painting/unbanned painting\n *\n * 禁画/取消禁画\n**/\nasync function muteUserVideo(userInfo: UserInfo) {\n if (userInfo.hasVideoStream) {\n await roomEngine.instance?.closeRemoteDeviceByAdmin({\n userId: userInfo.userId,\n device: TUIMediaDevice.kCamera,\n });\n } else {\n if (userInfo.isRequestingUserOpenCamera) {\n const requestId = userInfo.requestUserOpenCameraRequestId;\n requestId && await roomEngine.instance?.cancelRequest({ requestId });\n roomStore.setRequestUserOpenCamera({ userId: userInfo.userId, isRequesting: false });\n } else {\n const request = await roomEngine.instance?.openRemoteDeviceByAdmin({\n userId: userInfo.userId,\n device: TUIMediaDevice.kCamera,\n timeout: 0,\n requestCallback: () => {\n // 处理请求超时,应答,拒绝的情况\n roomStore.setRequestUserOpenCamera({ userId: userInfo.userId, isRequesting: false });\n },\n });\n if (request && request.requestId) {\n roomStore.setRequestUserOpenCamera({\n userId: userInfo.userId,\n isRequesting: true,\n requestId: request.requestId,\n });\n }\n }\n }\n}\n/**\n * Allow text chat / Cancel text chat\n *\n * 允许文字聊天/取消文字聊天\n**/\nfunction disableUserChat(userInfo: UserInfo) {\n const currentState = userInfo.isChatMutedByMaster;\n roomStore.setMuteUserChat(userInfo.userId, !currentState);\n roomEngine.instance?.disableSendingMessageByAdmin({\n userId: userInfo.userId,\n isDisable: !currentState,\n });\n}\n\n/**\n * Kick the user out of the room\n *\n * 将用户踢出房间\n**/\nfunction kickOffUser(userInfo: UserInfo) {\n roomEngine.instance?.kickRemoteUserOutOfRoom({\n userId: userInfo.userId,\n });\n}\n\n\nreturn { __sfc: true,roomEngine, t, basicStore, roomStore, dropdownClass, agreeUserOnStage, denyUserOnStage, inviteUserOnStage, cancelInviteUserOnStage, kickUserOffStage, props, showMoreControl, isMe, isAnchor, isAudience, isFreeSpeechMode, isSpeakAfterTakingSeat, handlePopUp, singleControl, denyOnStage, makeOffStage, videoControlTitle, videoControl, chatControlTitle, forbidChat, kickUser, controlList, toggleClickMoreBtn, handleMouseLeave, toggleInviteUserOnStage, muteUserAudio, muteUserVideo, disableUserChat, kickOffUser, ICON_NAME, SvgIcon }\n}\n\n})","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./MemberControlPC.vue?vue&type=script&setup=true&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./MemberControlPC.vue?vue&type=script&setup=true&lang=ts&\"","import { render, staticRenderFns } from \"./MemberControlPC.vue?vue&type=template&id=28dfca21&scoped=true&\"\nimport script from \"./MemberControlPC.vue?vue&type=script&setup=true&lang=ts&\"\nexport * from \"./MemberControlPC.vue?vue&type=script&setup=true&lang=ts&\"\nimport style0 from \"./MemberControlPC.vue?vue&type=style&index=0&id=28dfca21&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"28dfca21\",\n null\n \n)\n\nexport default component.exports","import MemberControlH5 from './MemberControlH5.vue';\nimport MemberControlPC from './MemberControlPC.vue';\n\nimport { isMobile } from '../../../utils/useMediaValue';\n\nconst MemberControl = isMobile ? MemberControlH5 : MemberControlPC;\n\nexport default MemberControl;\n","import { ref, nextTick } from 'vue';\n\nexport default function useMemberItem() {\n const showMemberControl = ref(false);\n\n function handleMouseEnter() {\n showMemberControl.value = true;\n }\n\n function handleMouseLeave() {\n showMemberControl.value = false;\n }\n\n const memberItemEl = ref();\n function setMemberItemRef(el: any) {\n memberItemEl.value = el;\n }\n\n const memberInfoEl = ref();\n const MemberControlEl = ref();\n function setMemberInfoRef(el: any) {\n memberInfoEl.value = el;\n }\n function setMemberControlRef(el: any) {\n MemberControlEl.value = el;\n }\n\n function handleMemberItemClick() {\n if (!showMemberControl.value) {\n showMemberControl.value = true;\n }\n }\n async function handleCloseControl() {\n await nextTick();\n showMemberControl.value = false;\n }\n\n function handleDocumentClick(event: MouseEvent) {\n if (showMemberControl.value && memberItemEl.value && !memberItemEl.value.contains(event.target)) {\n showMemberControl.value = false;\n }\n }\n\n\n return {\n showMemberControl,\n handleMouseEnter,\n handleMouseLeave,\n setMemberItemRef,\n setMemberInfoRef,\n setMemberControlRef,\n handleMemberItemClick,\n handleDocumentClick,\n handleCloseControl,\n };\n}\n\n\n","import { defineComponent as _defineComponent } from 'vue'\nimport { onMounted, onUnmounted } from 'vue';\nimport MemberInfo from '../MemberItemCommon/MemberInfo.vue';\nimport MemberControl from '../MemberControl';\nimport { UserInfo } from '../../../stores/room';\nimport useMemberItem from './useMemberItemHooks';\nimport '../../../directives/vTap';\n\ninterface Props {\n userInfo: UserInfo,\n}\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'indexH5',\n props: {\n userInfo: null\n },\n setup(__props: any) {\n\nconst {\n showMemberControl,\n setMemberItemRef,\n setMemberInfoRef,\n setMemberControlRef,\n handleMemberItemClick,\n handleDocumentClick,\n handleCloseControl,\n} = useMemberItem();\n\n\n\nonMounted(() => {\n document.addEventListener('click', handleDocumentClick, true);\n});\n\nonUnmounted(() => {\n document.removeEventListener('click', handleDocumentClick, true);\n});\n\n\nreturn { __sfc: true,showMemberControl, setMemberItemRef, setMemberInfoRef, setMemberControlRef, handleMemberItemClick, handleDocumentClick, handleCloseControl, MemberInfo, MemberControl }\n}\n\n})","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./indexH5.vue?vue&type=script&setup=true&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./indexH5.vue?vue&type=script&setup=true&lang=ts&\"","import { render, staticRenderFns } from \"./indexH5.vue?vue&type=template&id=51bdd126&scoped=true&\"\nimport script from \"./indexH5.vue?vue&type=script&setup=true&lang=ts&\"\nexport * from \"./indexH5.vue?vue&type=script&setup=true&lang=ts&\"\nimport style0 from \"./indexH5.vue?vue&type=style&index=0&id=51bdd126&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"51bdd126\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"member-item-container\",on:{\"mouseenter\":_setup.handleMouseEnter,\"mouseleave\":_setup.handleMouseLeave}},[_c(_setup.MemberInfo,{attrs:{\"user-info\":_vm.userInfo,\"show-state-icon\":!_setup.showMemberControl}}),_c(_setup.MemberControl,{directives:[{name:\"show\",rawName:\"v-show\",value:(_setup.showMemberControl),expression:\"showMemberControl\"}],attrs:{\"user-info\":_vm.userInfo}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { defineComponent as _defineComponent } from 'vue'\nimport MemberInfo from '../MemberItemCommon/MemberInfo.vue';\nimport MemberControl from '../MemberControl';\nimport { UserInfo } from '../../../stores/room';\nimport useMemberItem from './useMemberItemHooks';\n\ninterface Props {\n userInfo: UserInfo,\n}\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'indexPC',\n props: {\n userInfo: null\n },\n setup(__props: any) {\n\nconst {\n showMemberControl,\n handleMouseEnter,\n handleMouseLeave,\n} = useMemberItem();\n\n\n\n\n\nreturn { __sfc: true,showMemberControl, handleMouseEnter, handleMouseLeave, MemberInfo, MemberControl }\n}\n\n})","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./indexPC.vue?vue&type=script&setup=true&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./indexPC.vue?vue&type=script&setup=true&lang=ts&\"","import { render, staticRenderFns } from \"./indexPC.vue?vue&type=template&id=2d674c35&scoped=true&\"\nimport script from \"./indexPC.vue?vue&type=script&setup=true&lang=ts&\"\nexport * from \"./indexPC.vue?vue&type=script&setup=true&lang=ts&\"\nimport style0 from \"./indexPC.vue?vue&type=style&index=0&id=2d674c35&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"2d674c35\",\n null\n \n)\n\nexport default component.exports","import indexH5 from './indexH5.vue';\nimport indexPC from './indexPC.vue';\n\nimport { isMobile } from '../../../utils/useMediaValue';\n\nconst index = isMobile ? indexH5 : indexPC;\n\nexport default index;\n","import { storeToRefs } from 'pinia';\nimport useGetRoomEngine from '../../hooks/useRoomEngine';\nimport { useRoomStore } from '../../stores/room';\nimport { useBasicStore } from '../../stores/basic';\nimport { useI18n } from '../../locales';\nimport { TUIMediaDevice } from '@tencentcloud/tuiroom-engine-js';\nimport { Ref, computed, nextTick, ref } from 'vue';\n\nexport default function useIndex() {\n const roomEngine = useGetRoomEngine();\n\n const { t } = useI18n();\n\n const basicStore = useBasicStore();\n const roomStore = useRoomStore();\n\n const {\n isMicrophoneDisableForAllUser,\n isCameraDisableForAllUser,\n } = storeToRefs(roomStore);\n const audioManageInfo = computed(() => (roomStore.isMicrophoneDisableForAllUser ? t('Lift all mute') : t('All mute')));\n const videoManageInfo = computed(() => (roomStore.isCameraDisableForAllUser ? t('Lift stop all video') : t('All stop video')));\n\n const showManageAllUserDialog: Ref = ref(false);\n const dialogTitleInfo: Ref = ref('');\n const dialogActionInfo: Ref = ref('');\n\n enum ManageControlType {\n AUDIO = 'audio',\n VIDEO = 'video',\n Message = 'message',\n }\n const currentControlType: Ref = ref(ManageControlType.AUDIO);\n\n async function toggleManageMember(type: ManageControlType) {\n showManageAllUserDialog.value = true;\n currentControlType.value = type;\n switch (type) {\n case ManageControlType.AUDIO:\n dialogTitleInfo.value = roomStore.isMicrophoneDisableForAllUser\n ? t('Can you lift all mute')\n : t('All current and new members will be muted.');\n // 小程序更新视图\n await nextTick();\n dialogActionInfo.value = audioManageInfo.value;\n break;\n case ManageControlType.VIDEO:\n dialogTitleInfo.value = roomStore.isCameraDisableForAllUser\n ? t('Should we turn on the video for everyone')\n : t('All current and new members will turn off their videos.');\n await nextTick();\n dialogActionInfo.value = videoManageInfo.value;\n break;\n default:\n break;\n }\n }\n\n async function doToggleManageMember() {\n switch (currentControlType.value) {\n case ManageControlType.AUDIO:\n toggleAllAudio();\n break;\n case ManageControlType.VIDEO:\n toggleAllVideo();\n break;\n default:\n break;\n }\n showManageAllUserDialog.value = false;\n }\n function showApplyUserLit() {\n basicStore.setShowApplyUserList(true);\n }\n\n async function toggleAllAudio() {\n const microphoneDisableState = !isMicrophoneDisableForAllUser.value;\n await roomEngine.instance?.disableDeviceForAllUserByAdmin({\n isDisable: microphoneDisableState,\n device: TUIMediaDevice.kMicrophone,\n });\n roomStore.setMicrophoneDisableState(microphoneDisableState);\n }\n\n async function toggleAllVideo() {\n const cameraDisableState = !isCameraDisableForAllUser.value;\n await roomEngine.instance?.disableDeviceForAllUserByAdmin({\n isDisable: cameraDisableState,\n device: TUIMediaDevice.kCamera,\n });\n roomStore.setCameraDisableState(cameraDisableState);\n }\n return {\n showApplyUserLit,\n toggleAllAudio,\n toggleAllVideo,\n t,\n toggleManageMember,\n doToggleManageMember,\n audioManageInfo,\n videoManageInfo,\n showManageAllUserDialog,\n dialogTitleInfo,\n dialogActionInfo,\n ManageControlType,\n };\n}\n","import { defineComponent as _defineComponent } from 'vue'\nimport MemberItem from '../ManageMember/MemberItem';\nimport Dialog from '../../elementComp/Dialog';\nimport useIndex from './useIndexHooks';\nimport { storeToRefs } from 'pinia';\nimport { useRoomStore } from '../../stores/room';\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'indexH5',\n setup(__props) {\n\nconst roomStore = useRoomStore();\nconst {\n userList,\n userNumber,\n applyToAnchorList,\n isMicrophoneDisableForAllUser,\n isCameraDisableForAllUser,\n} = storeToRefs(roomStore);\n\nconst {\n audioManageInfo,\n videoManageInfo,\n showManageAllUserDialog,\n dialogTitleInfo,\n dialogActionInfo,\n ManageControlType,\n toggleManageMember,\n doToggleManageMember,\n t,\n} = useIndex();\n\n\n\nreturn { __sfc: true,roomStore, userList, userNumber, applyToAnchorList, isMicrophoneDisableForAllUser, isCameraDisableForAllUser, audioManageInfo, videoManageInfo, showManageAllUserDialog, dialogTitleInfo, dialogActionInfo, ManageControlType, toggleManageMember, doToggleManageMember, t, MemberItem, Dialog }\n}\n\n})","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./indexH5.vue?vue&type=script&setup=true&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./indexH5.vue?vue&type=script&setup=true&lang=ts&\"","import { render, staticRenderFns } from \"./indexH5.vue?vue&type=template&id=746e3a0c&scoped=true&\"\nimport script from \"./indexH5.vue?vue&type=script&setup=true&lang=ts&\"\nexport * from \"./indexH5.vue?vue&type=script&setup=true&lang=ts&\"\nimport style0 from \"./indexH5.vue?vue&type=style&index=0&id=746e3a0c&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"746e3a0c\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"manage-member-container\"},[(_setup.applyToAnchorList.length > 0)?_c('div',{staticClass:\"apply-on-stage-info\"},[_c('div',{staticClass:\"apply-info\"},[_vm._v(\" \"+_vm._s(`${_setup.applyToAnchorList[0].userName || _setup.applyToAnchorList[0].userId} ${_setup.t('Applying for the stage')}`)+\" \")]),_c('div',{staticClass:\"button\",on:{\"click\":_setup.showApplyUserLit}},[_vm._v(_vm._s(_setup.t('Check')))])]):_vm._e(),_c('div',{staticClass:\"global-setting\"},[_c('div',{staticClass:\"setting-item\"},[_c('div',{staticClass:\"item-left-section\"},[_c(_setup.SvgIcon,{staticClass:\"setting-icon\",attrs:{\"icon-name\":_setup.ICON_NAME.MicOn,\"size\":\"large\"}}),_c('span',{staticClass:\"setting-name\"},[_vm._v(_vm._s(_setup.t('Disable all audios')))])],1),_c('div',{staticClass:\"item-right-section\"},[_c('el-switch',{attrs:{\"value\":_setup.isMicrophoneDisableForAllUser},on:{\"change\":_setup.toggleAllAudio}})],1)]),_c('div',{staticClass:\"setting-item\"},[_c('div',{staticClass:\"item-left-section\"},[_c(_setup.SvgIcon,{staticClass:\"setting-icon\",attrs:{\"icon-name\":_setup.ICON_NAME.CameraOn,\"size\":\"large\"}}),_c('span',{staticClass:\"setting-name\"},[_vm._v(_vm._s(_setup.t('Disable all videos')))])],1),_c('div',{staticClass:\"item-right-section\"},[_c('el-switch',{attrs:{\"value\":_setup.isCameraDisableForAllUser},on:{\"change\":_setup.toggleAllVideo}})],1)])]),_c('div',{staticClass:\"divide-line\"}),_c('div',{staticClass:\"member-list-container\"},[_c('div',{staticClass:\"member-list-header\"},[_vm._v(\" \"+_vm._s(_setup.t('Member List'))+\" \"),_c('span',{staticClass:\"member-count\"},[_vm._v(\"(\"+_vm._s(_setup.userNumber)+_vm._s(_setup.t('members'))+\")\")])]),_c('div',{staticClass:\"member-list-content\"},_vm._l((_setup.userList),function(userInfo){return _c(_setup.MemberItem,{key:userInfo.userId,attrs:{\"user-info\":userInfo}})}),1)])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { defineComponent as _defineComponent } from 'vue'\nimport MemberItem from '../ManageMember/MemberItem';\nimport SvgIcon from '../common/SvgIcon.vue';\n\nimport { ICON_NAME } from '../../constants/icon';\nimport { storeToRefs } from 'pinia';\nimport { useRoomStore } from '../../stores/room';\nimport useIndex from './useIndexHooks';\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'indexPC',\n setup(__props) {\n\nconst roomStore = useRoomStore();\n\nconst {\n userList,\n userNumber,\n applyToAnchorList,\n isMicrophoneDisableForAllUser,\n isCameraDisableForAllUser,\n} = storeToRefs(roomStore);\n\nconst {\n t,\n showApplyUserLit,\n toggleAllAudio,\n toggleAllVideo,\n} = useIndex();\n\n\nreturn { __sfc: true,roomStore, userList, userNumber, applyToAnchorList, isMicrophoneDisableForAllUser, isCameraDisableForAllUser, t, showApplyUserLit, toggleAllAudio, toggleAllVideo, MemberItem, SvgIcon, ICON_NAME }\n}\n\n})","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./indexPC.vue?vue&type=script&setup=true&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./indexPC.vue?vue&type=script&setup=true&lang=ts&\"","import { render, staticRenderFns } from \"./indexPC.vue?vue&type=template&id=74166061&scoped=true&\"\nimport script from \"./indexPC.vue?vue&type=script&setup=true&lang=ts&\"\nexport * from \"./indexPC.vue?vue&type=script&setup=true&lang=ts&\"\nimport style0 from \"./indexPC.vue?vue&type=style&index=0&id=74166061&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"74166061\",\n null\n \n)\n\nexport default component.exports","import indexH5 from './indexH5.vue';\nimport indexPC from './indexPC.vue';\n\nimport { isMobile } from '../../utils/useMediaValue';\n\nconst index = isMobile ? indexH5 : indexPC;\n\nexport default index;\n","import TUIRoomEngine, { TUIRoomEvents } from '@tencentcloud/tuiroom-engine-js';\nimport useGetRoomEngine from '../../hooks/useRoomEngine';\nimport { useChatStore } from '../../stores/chat';\nimport { storeToRefs } from 'pinia';\nimport { useBasicStore } from '../../stores/basic';\nimport { useI18n } from '../../locales';\nimport { computed, onUnmounted } from 'vue';\nimport logger from '../../utils/common/logger';\n\nexport default function useSideBar() {\n const roomEngine = useGetRoomEngine();\n const { t } = useI18n();\n\n const chatStore = useChatStore();\n const basicStore = useBasicStore();\n const { isSidebarOpen, sidebarName } = storeToRefs(basicStore);\n const showSideBar = computed(() => isSidebarOpen.value && sidebarName.value !== 'transfer-leave');\n const title = computed((): string => {\n let sidebarTitle = '';\n switch (sidebarName.value) {\n case 'chat':\n sidebarTitle = 'Chat';\n break;\n case 'invite':\n sidebarTitle = 'Invite';\n break;\n case 'more':\n sidebarTitle = 'More';\n break;\n case 'manage-member':\n sidebarTitle = 'Member management';\n break;\n default:\n break;\n }\n return t(sidebarTitle);\n });\n\n function handleClose(done: any) {\n basicStore.setSidebarOpenStatus(false);\n basicStore.setSidebarName('');\n done();\n }\n\n /** 监听消息接收,放在这里是为了打开 chat 之前只记录消息未读数 */\n const onReceiveTextMessage = (data: { roomId: string, message: any }) => {\n logger.warn('onReceiveTextMessage:', data);\n if (!basicStore.isSidebarOpen || basicStore.sidebarName !== 'chat') {\n // eslint-disable-next-line no-plusplus\n chatStore.updateUnReadCount(++chatStore.unReadCount);\n }\n };\n\n\n TUIRoomEngine.once('ready', () => {\n roomEngine.instance?.on(TUIRoomEvents.onReceiveTextMessage, onReceiveTextMessage);\n });\n\n onUnmounted(() => {\n roomEngine.instance?.off(TUIRoomEvents.onReceiveTextMessage, onReceiveTextMessage);\n });\n return {\n t,\n isSidebarOpen,\n title,\n sidebarName,\n handleClose,\n showSideBar,\n }\n ;\n}\n\n","import { defineComponent as _defineComponent } from 'vue'\nimport Chat from '../Chat/index.vue';\nimport ManageMember from '../ManageMember/index';\nimport popup from '../common/PopUpH5.vue';\nimport useSideBar from './useSideBarHooks';\nimport ChatEditor from '../Chat/ChatEditor';\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'indexH5',\n setup(__props) {\n\n\nconst {\n title,\n sidebarName,\n showSideBar,\n} = useSideBar();\n\n\nreturn { __sfc: true,title, sidebarName, showSideBar, Chat, ManageMember, popup, ChatEditor }\n}\n\n})","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./indexH5.vue?vue&type=script&setup=true&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./indexH5.vue?vue&type=script&setup=true&lang=ts&\"","import { render, staticRenderFns } from \"./indexH5.vue?vue&type=template&id=40f5a35a&scoped=true&\"\nimport script from \"./indexH5.vue?vue&type=script&setup=true&lang=ts&\"\nexport * from \"./indexH5.vue?vue&type=script&setup=true&lang=ts&\"\nimport style0 from \"./indexH5.vue?vue&type=style&index=0&id=40f5a35a&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"40f5a35a\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"sidebar-container\"},[_c(_setup.Drawer,{attrs:{\"model-value\":_setup.isSidebarOpen,\"modal\":false,\"title\":_setup.title,\"direction\":\"rtl\",\"before-close\":_setup.handleClose,\"size\":480}},[(_setup.sidebarName == 'chat')?_c(_setup.Chat):_vm._e(),(_setup.sidebarName == 'invite')?_c(_setup.RoomInvite):_vm._e(),(_setup.sidebarName == 'more')?_c(_setup.RoomMore):_vm._e(),(_setup.sidebarName == 'manage-member')?_c(_setup.ManageMember):_vm._e()],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { defineComponent as _defineComponent } from 'vue'\nimport Chat from '../Chat/index.vue';\nimport Drawer from '../../elementComp/Drawer.vue';\nimport useSideBar from './useSideBarHooks';\nimport RoomInvite from '../RoomInvite';\nimport ManageMember from '../ManageMember';\nimport RoomMore from '../RoomMore';\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'indexPC',\n setup(__props) {\n\n\nconst {\n isSidebarOpen,\n title,\n handleClose,\n sidebarName,\n} = useSideBar();\n\n\nreturn { __sfc: true,isSidebarOpen, title, handleClose, sidebarName, Chat, Drawer, RoomInvite, ManageMember, RoomMore }\n}\n\n})","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./indexPC.vue?vue&type=script&setup=true&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./indexPC.vue?vue&type=script&setup=true&lang=ts&\"","import { render, staticRenderFns } from \"./indexPC.vue?vue&type=template&id=659a61f2&\"\nimport script from \"./indexPC.vue?vue&type=script&setup=true&lang=ts&\"\nexport * from \"./indexPC.vue?vue&type=script&setup=true&lang=ts&\"\nimport style0 from \"./indexPC.vue?vue&type=style&index=0&id=659a61f2&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import indexH5 from './indexH5.vue';\nimport indexPc from './indexPC.vue';\nimport { isMobile } from '../../utils/useMediaValue';\n\nconst Index = isMobile ? indexH5 : indexPc;\n\nexport default Index;\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"content-container\"},[_c(_setup.StreamContainer,{attrs:{\"show-room-tool\":_vm.showRoomTool}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{ref:\"streamContainerRef\",staticClass:\"stream-container\",on:{\"touchstart\":_setup.handleTouchStart,\"touchend\":_setup.handleTouchEnd}},[_c('div',{class:_setup.streamContainerClass},[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_setup.layout === _setup.LAYOUT.LARGE_SMALL_WINDOW),expression:\"layout === LAYOUT.LARGE_SMALL_WINDOW\"}],ref:\"enlargedContainerRef\",staticClass:\"enlarged-stream-container\"},[(_setup.enlargeStream)?_c(_setup.StreamRegion,{attrs:{\"stream\":_setup.enlargeStream}}):_vm._e()],1),_c('div',{staticClass:\"stream-list-container\",class:[_setup.onlyVideoStreamList.length > 1 ? 'multi-stream-container' : 'single-stream-container']},[_c('div',{ref:\"streamListRef\",class:['stream-list', `${_setup.isFirstPageInSixPointLayout ? '' : 'not-first-page'}`]},_vm._l((_setup.onlyVideoStreamList),function(stream){return _c(_setup.StreamRegion,{directives:[{name:\"show\",rawName:\"v-show\",value:(_setup.showStreamList.indexOf(stream) > -1),expression:\"showStreamList.indexOf(stream) > -1\"}],key:`${stream.userId}_${stream.streamType}`,class:[_setup.onlyVideoStreamList.length > 1 ? 'multi-stream' : 'single-stream'],attrs:{\"stream\":stream,\"enlarge-dom-id\":_setup.enlargeDomId,\"show-room-tool\":_vm.showRoomTool}})}),1)])]),(_setup.totalPageNumber > 1)?_c('div',{staticClass:\"swipe\"},_vm._l((_setup.totalPageNumber),function(item,index){return _c('div',{key:item,staticClass:\"swipe-dots\",class:[_setup.isActiveDot(index) ? 'swipe-current-dots' : '']})}),0):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return (_setup.playRegionDomId !== _vm.enlargeDomId)?_c('div',{ref:\"streamRegionRef\",staticClass:\"user-stream-container\",class:[_setup.showVoiceBorder ? 'border' : '']},[_c('div',{staticClass:\"stream-region\",attrs:{\"id\":_setup.playRegionDomId}}),(!_vm.stream.hasVideoStream && !_vm.stream.hasScreenStream)?_c('div',{staticClass:\"center-user-info-container\"},[_c('img',{staticClass:\"avatar-region\",attrs:{\"src\":_vm.stream.avatarUrl || _setup.defaultAvatar}})]):_vm._e(),_c('div',{staticClass:\"corner-user-info-container\"},[(_setup.showMasterIcon)?_c(_setup.SvgIcon,{staticClass:\"master-icon\",attrs:{\"size\":\"custom\",\"icon-name\":\"user\"}}):_vm._e(),(!_setup.isScreenStream)?_c(_setup.AudioIcon,{staticClass:\"audio-icon\",attrs:{\"audio-volume\":_vm.stream.audioVolume,\"is-muted\":!_vm.stream.hasAudioStream,\"size\":\"small\"}}):_vm._e(),(_setup.isScreenStream)?_c(_setup.SvgIcon,{staticClass:\"screen-icon\",attrs:{\"icon-name\":\"screen-share\"}}):_vm._e(),_c('span',{staticClass:\"user-name\",attrs:{\"title\":_setup.userInfo}},[_vm._v(_vm._s(_setup.userInfo))]),(_setup.isScreenStream)?_c('span',[_vm._v(\" \"+_vm._s(_setup.t('is sharing their screen'))+\" \")]):_vm._e()],1)]):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { defineComponent as _defineComponent } from 'vue'\nimport { ref, watch, nextTick, computed, onMounted } from 'vue';\nimport { StreamInfo, useRoomStore } from '../../../stores/room';\nimport defaultAvatar from '../../../assets/imgs/avatar.png';\nimport { useBasicStore } from '../../../stores/basic';\nimport logger from '../../../utils/common/logger';\nimport AudioIcon from '../../base/AudioIcon.vue';\nimport SvgIcon from '../../common/SvgIcon.vue';\nimport { useI18n } from '../../../locales';\nimport {\n TUIVideoStreamType,\n TRTCVideoStreamType,\n TRTCVideoFillMode,\n TRTCVideoMirrorType,\n TRTCVideoRotation,\n} from '@tencentcloud/tuiroom-engine-js';\nimport useGetRoomEngine from '../../../hooks/useRoomEngine';\nimport { isInnerScene } from '../../../utils/constants';\ninterface Props {\n stream: StreamInfo;\n enlargeDomId?: string;\n}\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'StreamRegionH5',\n props: {\n stream: null,\n enlargeDomId: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n stream: StreamInfo;\n enlargeDomId?: string;\n}\n\nconst roomEngine = useGetRoomEngine();\n\nconst logPrefix = '[StreamRegion]';\nconst basicStore = useBasicStore();\nconst roomStore = useRoomStore();\n\nconst { t } = useI18n();\n\n\n\nconst streamRegionRef = ref();\nconst showVoiceBorder = computed(() => (\n props.stream?.audioVolume !== 0 && props.stream?.streamType !== TUIVideoStreamType.kScreenStream\n));\nconst playRegionDomId = computed(() => `${props.stream.userId}_${props.stream.streamType}`);\n\nconst showMasterIcon = computed(() => {\n const { userId, streamType } = props.stream;\n return userId === roomStore.masterUserId && streamType === TUIVideoStreamType.kCameraStream;\n});\n\nconst isScreenStream = computed(() => props.stream.streamType === TUIVideoStreamType.kScreenStream);\n\nconst userInfo = computed(() => {\n if (isInnerScene) {\n return `${props.stream.userName} | ${props.stream.userId}` || props.stream.userId;\n }\n return props.stream.userName || props.stream.userId;\n});\n\nonMounted(() => {\n watch(\n () => props.stream.hasVideoStream,\n async (val) => {\n if (val) {\n await nextTick();\n const userIdEl = document?.getElementById(`${playRegionDomId.value}`) as HTMLDivElement;\n if (userIdEl) {\n logger.debug(`${logPrefix}watch isVideoStreamAvailable:`, props.stream.userId, userIdEl);\n if (basicStore.userId === props.stream.userId) {\n if (props.stream.hasVideoStream) {\n await roomEngine.instance?.setLocalVideoView({\n streamType: TUIVideoStreamType.kCameraStream,\n view: `${playRegionDomId.value}`,\n });\n }\n } else {\n roomEngine.instance?.setRemoteVideoView({\n userId: props.stream.userId,\n streamType: props.stream.streamType,\n view: `${playRegionDomId.value}`,\n });\n await roomEngine.instance?.startPlayRemoteVideo({\n userId: props.stream.userId,\n streamType: props.stream.streamType,\n });\n const trtcCloud = roomEngine.instance?.getTRTCCloud();\n await trtcCloud?.setRemoteRenderParams(props.stream.userId, TRTCVideoStreamType.TRTCVideoStreamTypeBig, {\n mirrorType: TRTCVideoMirrorType.TRTCVideoMirrorType_Disable,\n rotation: TRTCVideoRotation.TRTCVideoRotation0,\n fillMode: TRTCVideoFillMode.TRTCVideoFillMode_Fill,\n });\n }\n }\n }\n },\n { immediate: true },\n );\n});\n\nonMounted(() => {\n watch(\n () => props.stream.hasScreenStream,\n async (val) => {\n if (val) {\n await nextTick();\n const userIdEl = document?.getElementById(`${playRegionDomId.value}`) as HTMLDivElement;\n if (userIdEl) {\n logger.debug(`${logPrefix}watch isScreenStreamAvailable:`, props.stream.userId, userIdEl);\n roomEngine.instance?.setRemoteVideoView({\n userId: props.stream.userId,\n streamType: props.stream.streamType,\n view: `${playRegionDomId.value}`,\n });\n await roomEngine.instance?.startPlayRemoteVideo({\n userId: props.stream.userId,\n streamType: props.stream.streamType,\n });\n const trtcCloud = roomEngine.instance?.getTRTCCloud();\n await trtcCloud?.setRemoteRenderParams(props.stream.userId, TRTCVideoStreamType.TRTCVideoStreamTypeSub, {\n mirrorType: TRTCVideoMirrorType.TRTCVideoMirrorType_Disable,\n rotation: TRTCVideoRotation.TRTCVideoRotation0,\n fillMode: TRTCVideoFillMode.TRTCVideoFillMode_Fit,\n });\n }\n }\n },\n { immediate: true },\n );\n});\n\n/**\n * enlargeUserId The switch requires that both the small window\n * corresponding to the previously played stream and the stream that needs to be newly played be replayed.\n *\n * enlargeUserId 切换的时候需要让之前播放流对应的小窗口和需要新播放的流都重新播放\n**/\nonMounted(() => {\n watch(\n () => props.enlargeDomId,\n async (val, oldVal) => {\n if (playRegionDomId.value === oldVal || playRegionDomId.value === val) {\n await nextTick();\n const userIdEl = document?.getElementById(`${playRegionDomId.value}`) as HTMLDivElement;\n if (userIdEl) {\n if (basicStore.userId === props.stream.userId) {\n /**\n * Replay local video streams only when they are open\n *\n * 只有当本地视频流是打开状态的时候,才重新播放本地流\n **/\n if (props.stream.hasVideoStream) {\n await roomEngine.instance?.setLocalVideoView({\n streamType: TUIVideoStreamType.kCameraStream,\n view: `${playRegionDomId.value}`,\n });\n }\n } else {\n roomEngine.instance?.setRemoteVideoView({\n userId: props.stream.userId,\n streamType: props.stream.streamType,\n view: `${playRegionDomId.value}`,\n });\n await roomEngine.instance?.startPlayRemoteVideo({\n userId: props.stream.userId,\n streamType: props.stream.streamType,\n });\n };\n }\n }\n },\n );\n});\n\nreturn { __sfc: true,roomEngine, logPrefix, basicStore, roomStore, t, props, streamRegionRef, showVoiceBorder, playRegionDomId, showMasterIcon, isScreenStream, userInfo, defaultAvatar, AudioIcon, SvgIcon }\n}\n\n})","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./StreamRegionH5.vue?vue&type=script&setup=true&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./StreamRegionH5.vue?vue&type=script&setup=true&lang=ts&\"","import { render, staticRenderFns } from \"./StreamRegionH5.vue?vue&type=template&id=9adfd868&scoped=true&\"\nimport script from \"./StreamRegionH5.vue?vue&type=script&setup=true&lang=ts&\"\nexport * from \"./StreamRegionH5.vue?vue&type=script&setup=true&lang=ts&\"\nimport style0 from \"./StreamRegionH5.vue?vue&type=style&index=0&id=9adfd868&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"9adfd868\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return (_setup.playRegionDomId !== _vm.enlargeDomId)?_c('div',{ref:\"streamRegionRef\",staticClass:\"user-stream-container\",on:{\"dblclick\":function($event){return _vm.$emit('room_dblclick')}}},[(_setup.loading)?_c('div',{staticClass:\"loading-region\"},[_c(_setup.SvgIcon,{staticClass:\"loading\",attrs:{\"icon-name\":\"loading\"}})],1):_vm._e(),_c('div',{staticClass:\"stream-region\",attrs:{\"id\":_setup.playRegionDomId}}),(!_vm.stream.hasVideoStream && !_vm.stream.hasScreenStream)?_c('div',{ref:\"centerUserInfoRef\",staticClass:\"center-user-info-container\"},[_c(_setup.Avatar,{staticClass:\"avatar-region\",attrs:{\"img-src\":_vm.stream.avatarUrl}})],1):_vm._e(),_c('div',{staticClass:\"corner-user-info-container\"},[(_setup.showMasterIcon)?_c(_setup.SvgIcon,{staticClass:\"master-icon\",attrs:{\"icon-name\":\"user\"}}):_vm._e(),(!_setup.isScreenStream)?_c(_setup.AudioIcon,{attrs:{\"audio-volume\":_vm.stream.audioVolume,\"is-muted\":!_vm.stream.hasAudioStream,\"size\":\"small\"}}):_vm._e(),(_setup.isScreenStream)?_c(_setup.SvgIcon,{staticClass:\"screen-icon\",attrs:{\"icon-name\":\"screen-share\"}}):_vm._e(),_c('span',{staticClass:\"user-name\",attrs:{\"title\":_setup.userInfo}},[_vm._v(_vm._s(_setup.userInfo))]),(_setup.isScreenStream)?_c('span',[_vm._v(\" \"+_vm._s(_setup.t('is sharing their screen'))+\" \")]):_vm._e()],1)]):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { defineComponent as _defineComponent } from 'vue'\nimport { ref, watch, nextTick, computed } from 'vue';\nimport { StreamInfo, useRoomStore } from '../../../stores/room';\nimport Avatar from '../../base/Avatar.vue';\nimport { useBasicStore } from '../../../stores/basic';\nimport logger from '../../../utils/common/logger';\nimport AudioIcon from '../../base/AudioIcon.vue';\nimport SvgIcon from '../../common/SvgIcon.vue';\nimport { useI18n } from '../../../locales';\nimport { TUIVideoStreamType } from '@tencentcloud/tuiroom-engine-js';\nimport useGetRoomEngine from '../../../hooks/useRoomEngine';\nimport { isInnerScene } from '../../../utils/constants';\n\ninterface Props {\n stream: StreamInfo,\n enlargeDomId?: string,\n changeLargeStream?:boolean,\n}\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'StreamRegionPC',\n props: {\n stream: null,\n enlargeDomId: null,\n changeLargeStream: { type: Boolean }\n },\n setup(__props: any) {\n\nconst props = __props as {\n stream: StreamInfo,\n enlargeDomId?: string,\n changeLargeStream?:boolean,\n}\n\nconst roomEngine = useGetRoomEngine();\n\nconst logPrefix = '[StreamRegion]';\nconst basicStore = useBasicStore();\nconst roomStore = useRoomStore();\n\nconst { t } = useI18n();\n\n\n\n\nconst streamRegionRef = ref();\nconst centerUserInfoRef = ref();\nconst loading = ref(false);\n\nconst playRegionDomId = computed(() => `${props.stream.userId}_${props.stream.streamType}`);\n\nconst showMasterIcon = computed(() => {\n const { userId, streamType } = props.stream;\n return userId === roomStore.masterUserId && streamType === TUIVideoStreamType.kCameraStream;\n});\n\nconst isScreenStream = computed(() => props.stream.streamType === TUIVideoStreamType.kScreenStream);\nconst userInfo = computed(() => {\n if (isInnerScene) {\n return `${props.stream.userName} | ${props.stream.userId}` || props.stream.userId;\n }\n return props.stream.userName || props.stream.userId;\n});\n\n// 要拉取远端用户的流类型\nconst streamTypeToFetch = computed(() => {\n const { streamType, userId } = props.stream;\n const { kScreenStream, kCameraStream } = TUIVideoStreamType;\n const { defaultStreamType } = roomStore;\n const { userId: localUserId } = basicStore;\n if (streamType === kScreenStream) {\n return kScreenStream;\n }\n if (playRegionDomId.value === props.enlargeDomId || userId === localUserId) {\n return kCameraStream;\n }\n if (streamType === kCameraStream) {\n return defaultStreamType;\n }\n return streamType;\n});\n\nconst startPlayRemoteVideo = async () => {\n const { userId } = props.stream;\n // 播放远端流\n loading.value = true;\n roomEngine.instance?.setRemoteVideoView({ userId, streamType: streamTypeToFetch.value, view: `${playRegionDomId.value}` });\n await roomEngine.instance?.startPlayRemoteVideo({ userId, streamType: streamTypeToFetch.value });\n // 播放远端流成功\n loading.value = false;\n};\n\nconst stopPlayRemoteVideo = async () => {\n loading.value = false;\n await roomEngine.instance?.\n stopPlayRemoteVideo({ userId: props.stream.userId, streamType: streamTypeToFetch.value });\n};\n\nif (props.stream.streamType === TUIVideoStreamType.kCameraStream\n || props.stream.streamType === TUIVideoStreamType.kCameraStreamLow) {\n watch(\n () => [props.stream.hasVideoStream, props.stream.isVisible],\n async (val, oldVal) => {\n if (props.stream.userId === basicStore.userId) {\n return;\n }\n const [hasVideoStream, isVisible] = val;\n if (hasVideoStream && isVisible) {\n await nextTick();\n const userIdEl = document.getElementById(`${playRegionDomId.value}`) as HTMLDivElement;\n if (userIdEl) {\n logger.debug(`${logPrefix}watch isVideoStreamAvailable:`, props.stream.userId, userIdEl);\n await startPlayRemoteVideo();\n }\n }\n if (oldVal) {\n const [oldHasVideoStream, oldIsVisible] = oldVal;\n // 从有流且可见状态变为有流但不可见,无流但可见,无流且不可见状态,停止播放流\n if ((oldHasVideoStream && oldIsVisible) && (!hasVideoStream || !isVisible)) {\n await stopPlayRemoteVideo();\n }\n }\n },\n { immediate: true },\n );\n}\n\nif (props.stream.streamType === TUIVideoStreamType.kScreenStream) {\n watch(\n () => [props.stream.hasScreenStream, props.stream.isVisible],\n async (val, oldVal) => {\n const [hasScreenStream, isVisible] = val;\n if (hasScreenStream && isVisible) {\n await nextTick();\n const userIdEl = document.getElementById(`${playRegionDomId.value}`) as HTMLDivElement;\n if (userIdEl) {\n logger.debug(`${logPrefix}watch isScreenStreamAvailable:`, props.stream.userId, userIdEl);\n await startPlayRemoteVideo();\n }\n }\n if (oldVal) {\n const [oldHasScreenStream, oldIsVisible] = oldVal;\n // 从有流且可见状态变为有流但不可见,无流但可见,无流且不可见状态,停止播放流\n if ((oldHasScreenStream && oldIsVisible) && (!hasScreenStream || !isVisible)) {\n await stopPlayRemoteVideo();\n }\n }\n },\n { immediate: true },\n );\n}\n\n\n/**\n * enlargeUserId The switch requires that both the small window\n * corresponding to the previously played stream and the stream that needs to be newly played be replayed.\n *\n * enlargeUserId 切换的时候需要让之前播放流对应的小窗口和需要新播放的流都重新播放\n**/\nwatch(\n () => props.enlargeDomId,\n async (val, oldVal) => {\n if (playRegionDomId.value === oldVal || playRegionDomId.value === val) {\n await nextTick();\n const userIdEl = document.getElementById(`${playRegionDomId.value}`) as HTMLDivElement;\n if (userIdEl) {\n if (basicStore.userId === props.stream.userId) {\n /**\n * Replay local video streams only when they are open\n *\n * 只有当本地视频流是打开状态的时候,才重新播放本地流\n **/\n if (props.stream.hasVideoStream) {\n await roomEngine.instance?.setLocalVideoView({\n streamType: streamTypeToFetch.value,\n view: `${playRegionDomId.value}`,\n });\n }\n } else {\n await startPlayRemoteVideo();\n };\n }\n }\n },\n { immediate: true },\n);\n\nreturn { __sfc: true,roomEngine, logPrefix, basicStore, roomStore, t, props, streamRegionRef, centerUserInfoRef, loading, playRegionDomId, showMasterIcon, isScreenStream, userInfo, streamTypeToFetch, startPlayRemoteVideo, stopPlayRemoteVideo, Avatar, AudioIcon, SvgIcon }\n}\n\n})","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./StreamRegionPC.vue?vue&type=script&setup=true&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./StreamRegionPC.vue?vue&type=script&setup=true&lang=ts&\"","import { render, staticRenderFns } from \"./StreamRegionPC.vue?vue&type=template&id=693d2878&scoped=true&\"\nimport script from \"./StreamRegionPC.vue?vue&type=script&setup=true&lang=ts&\"\nexport * from \"./StreamRegionPC.vue?vue&type=script&setup=true&lang=ts&\"\nimport style0 from \"./StreamRegionPC.vue?vue&type=style&index=0&id=693d2878&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"693d2878\",\n null\n \n)\n\nexport default component.exports","import StreamRegionH5 from './StreamRegionH5.vue';\nimport StreamRegionPc from './StreamRegionPC.vue';\nimport { isMobile } from '../../../utils/useMediaValue';\n\nconst StreamRegion = isMobile ? StreamRegionH5 : StreamRegionPc;\n\nexport default StreamRegion;\n","import { watch } from 'vue';\nimport useGetRoomEngine from '../../../hooks/useRoomEngine';\nimport { useRoomStore } from '../../../stores/room';\nimport { TUIChangeReason, TUIUserInfo, TUIVideoStreamType } from '@tencentcloud/tuiroom-engine-js';\nimport { ElMessage } from '../../../elementComp';\nimport { useI18n } from '../../../locales';\nimport { useBasicStore } from '../../../stores/basic';\nimport { MESSAGE_DURATION } from '../../../constants/message';\nimport { storeToRefs } from 'pinia';\nimport { isMobile, isWeChat } from '../../../utils/useMediaValue';\nimport logger from '../../../utils/common/logger';\n\nconst logPrefix = '[StreamContainer]';\n\nexport default function useStreamContainer() {\n /**\n * --- The following processing stream events ----\n *\n * --- 以下处理流事件 ----\n **/\n const roomEngine = useGetRoomEngine();\n const basicStore = useBasicStore();\n const roomStore = useRoomStore();\n const { t } = useI18n();\n\n // 远端用户进入\n const onRemoteUserEnterRoom = (eventInfo: { userInfo: TUIUserInfo }) => {\n roomStore.addRemoteUser(eventInfo.userInfo);\n };\n\n // 远端用户离开\n const onRemoteUserLeaveRoom = (eventInfo: { userInfo: TUIUserInfo }) => {\n roomStore.removeRemoteUser(eventInfo.userInfo.userId);\n };\n\n // 麦位变化\n const onSeatListChanged = (eventInfo: { seatList: any[], seatedList: any[], leftList: any[] }) => {\n const { seatList, seatedList, leftList } = eventInfo;\n roomStore.updateOnSeatList(seatList, seatedList, leftList);\n };\n\n // 用户音频状态发生改变\n const onUserAudioStateChanged = (eventInfo: {\n userId: string,\n hasAudio: boolean,\n reason: TUIChangeReason,\n }) => {\n const { userId, hasAudio, reason } = eventInfo;\n roomStore.updateUserAudioState(userId, hasAudio);\n // 处理状态变更\n if (userId === basicStore.userId && !hasAudio && reason === TUIChangeReason.kChangedByAdmin) {\n // 主持人关闭麦克风\n ElMessage({\n type: 'warning',\n message: t('The host has turned off your microphone'),\n duration: MESSAGE_DURATION.NORMAL,\n });\n /**\n * When the host turns on a full ban, the microphone of a single person is turned on\n * and off separately, and the microphone status of the corresponding user is inoperable at this time\n *\n * 主持人开启全员禁言时,单独打开再关闭单人的麦克风,此时对应用户的麦克风状态为无法操作\n **/\n roomStore.setCanControlSelfAudio(!roomStore.isMicrophoneDisableForAllUser);\n }\n };\n const {\n isDefaultOpenCamera,\n isDefaultOpenMicrophone,\n isLocalAudioIconDisable,\n isLocalVideoIconDisable,\n } = storeToRefs(roomStore);\n\n watch(isDefaultOpenCamera, async (val) => {\n if (val && !isLocalVideoIconDisable.value) {\n /**\n * Turn on the local camera\n *\n * 开启本地摄像头\n **/\n\n if (isWeChat) {\n await roomEngine.instance?.setLocalVideoView({\n streamType: TUIVideoStreamType.kCameraStream,\n view: `${roomStore.localStream.userId}_${roomStore.localStream.streamType}`,\n });\n // @ts-ignore\n await roomEngine.instance?.openLocalCamera({ isFrontCamera: basicStore.isFrontCamera });\n } else if (isMobile) {\n const previewDom = document?.getElementById(`${roomStore.localStream.userId}_${roomStore.localStream.streamType}`);\n if (!previewDom) {\n logger.error(`${logPrefix}watch isDefaultOpenCamera:`, isDefaultOpenCamera, previewDom);\n return;\n }\n await roomEngine.instance?.setLocalVideoView({\n streamType: TUIVideoStreamType.kCameraStream,\n view: `${roomStore.localStream.userId}_${roomStore.localStream.streamType}`,\n });\n // @ts-ignore\n await roomEngine.instance?.openLocalCamera({ isFrontCamera: basicStore.isFrontCamera });\n return;\n } else {\n const previewDom = document?.getElementById(`${roomStore.localStream.userId}_${roomStore.localStream.streamType}`);\n if (!previewDom) {\n logger.error(`${logPrefix}watch isDefaultOpenCamera:`, isDefaultOpenCamera, previewDom);\n return;\n }\n /**\n * Set device id\n *\n * 设置设备id\n **/\n if (!roomStore.currentCameraId) {\n const cameraList = await roomEngine.instance?.getCameraDevicesList();\n if (cameraList && cameraList.length > 0) {\n roomStore.setCurrentCameraId(cameraList[0].deviceId);\n }\n }\n await roomEngine.instance?.setCurrentCameraDevice({ deviceId: roomStore.currentCameraId });\n /**\n * Turn on the local camera\n *\n * 开启本地摄像头\n **/\n await roomEngine.instance?.setLocalVideoView({\n streamType: TUIVideoStreamType.kCameraStream,\n view: `${roomStore.localStream.userId}_${roomStore.localStream.streamType}`,\n });\n await roomEngine.instance?.openLocalCamera();\n }\n }\n });\n\n watch(isDefaultOpenMicrophone, async (val) => {\n if (val && !isLocalAudioIconDisable.value) {\n /**\n * Advance the timing of startMicrophone to ensure that it is executed before startCameraPreview\n *\n * 提前 startMicrophone 的时机,保证在 startCameraPreview 之前执行\n **/\n await roomEngine.instance?.openLocalMicrophone();\n if (!isWeChat && !isMobile) {\n const microphoneList = await roomEngine.instance?.getMicDevicesList();\n const speakerList = await roomEngine.instance?.getSpeakerDevicesList();\n if (microphoneList?.length === 0 || speakerList?.length === 0) return;\n if (!roomStore.currentMicrophoneId && microphoneList.length > 0) {\n roomStore.setCurrentMicrophoneId(microphoneList[0].deviceId);\n }\n if (!roomStore.currentSpeakerId && speakerList.length > 0) {\n roomStore.setCurrentSpeakerId(speakerList[0].deviceId);\n }\n await roomEngine.instance?.setCurrentMicDevice({ deviceId: roomStore.currentMicrophoneId });\n }\n }\n });\n return {\n onRemoteUserEnterRoom,\n onRemoteUserLeaveRoom,\n onSeatListChanged,\n onUserAudioStateChanged,\n t,\n };\n}\n","import { defineComponent as _defineComponent } from 'vue'\nimport { ref, onUnmounted, Ref, ComputedRef, watch, computed } from 'vue';\nimport { storeToRefs } from 'pinia';\nimport { StreamInfo, useRoomStore } from '../../../stores/room';\nimport { useBasicStore } from '../../../stores/basic';\nimport { LAYOUT } from '../../../constants/render';\nimport StreamRegion from '../StreamRegion';\nimport { ElMessage } from '../../../elementComp';\nimport { MESSAGE_DURATION } from '../../../constants/message';\nimport logger from '../../../utils/common/logger';\nimport { throttle } from '../../../utils/utils';\n\nimport TUIRoomEngine, { TUIChangeReason, TUIRoomEvents, TUIVideoStreamType, TRTCVolumeInfo } from '@tencentcloud/tuiroom-engine-js';\nimport useGetRoomEngine from '../../../hooks/useRoomEngine';\nimport useStreamContainer from './useStreamContainerHooks';\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'StreamContainerH5',\n props: {\n showRoomTool: { type: Boolean }\n },\n setup(__props: any) {\n\nconst logPrefix = '[StreamContainer]';\nconst {\n onRemoteUserEnterRoom,\n onRemoteUserLeaveRoom,\n onSeatListChanged,\n onUserAudioStateChanged,\n t,\n} = useStreamContainer();\n\nconst roomEngine = useGetRoomEngine();\n\n\n\n\n\nconst streamContainerRef = ref(null);\n\nconst roomStore = useRoomStore();\nconst {\n streamList,\n streamNumber,\n localStream,\n remoteStreamObj,\n} = storeToRefs(roomStore);\nconst basicStore = useBasicStore();\n// 小程序默认布局为六宫格模式\nbasicStore.setLayout(LAYOUT.SIX_EQUAL_POINTS);\nconst { layout } = storeToRefs(basicStore);\n\nconst enlargeStream: Ref = ref(null);\nconst enlargeDomId = computed(() => (enlargeStream.value ? `${enlargeStream.value.userId}_${enlargeStream.value.streamType}` : ''));\nconst currentSpeakerUserId: Ref = ref('');\nconst startX = ref();\nconst startY = ref();\n\nconst onlyVideoStreamList = computed(() => (\n streamList.value.filter(stream => stream.streamType === TUIVideoStreamType.kCameraStream)\n));\nconst currentPageIndex = ref(0);\n\nwatch(() => onlyVideoStreamList.value.length, (val) => {\n if (layout.value === LAYOUT.SIX_EQUAL_POINTS) {\n const equalPointIndex = enlargeStream.value ? currentPageIndex.value - 1 : currentPageIndex.value;\n if (Math.ceil(val / 6) < equalPointIndex + 1 && equalPointIndex > 0) {\n currentPageIndex.value = currentPageIndex.value - 1;\n }\n }\n});\n\nconst isFirstPageInSixPointLayout: Ref = computed(() => {\n if (layout.value === LAYOUT.SIX_EQUAL_POINTS) {\n return enlargeStream.value ? currentPageIndex.value === 1 : currentPageIndex.value === 0;\n }\n return false;\n});\n\n/**\n * ----- The following handles the nine-pane page flip logic -----\n *\n * ----- 以下处理六宫格翻页逻辑 -----\n**/\nconst showStreamList: ComputedRef = computed(() => {\n if (layout.value === LAYOUT.SIX_EQUAL_POINTS) {\n if (enlargeStream.value) {\n return onlyVideoStreamList.value.slice((currentPageIndex.value - 1) * 6, (currentPageIndex.value - 1) * 6 + 6);\n }\n return onlyVideoStreamList.value.slice(currentPageIndex.value * 6, currentPageIndex.value * 6 + 6);\n }\n if (layout.value === LAYOUT.LARGE_SMALL_WINDOW) {\n const userId = enlargeStream.value?.userId;\n if (currentSpeakerUserId.value) {\n return currentSpeakerUserId.value === localStream.value.userId\n ? [localStream.value]\n : [remoteStreamObj.value[`${currentSpeakerUserId.value}_${TUIVideoStreamType.kCameraStream}`]];\n }\n return [remoteStreamObj.value[`${userId}_${TUIVideoStreamType.kCameraStream}`]];\n }\n return [];\n});\n\n\n/**\n * Show left and right page flip icons\n *\n * 显示左右翻页图标\n**/\nconst totalPageNumber = computed(() => {\n const totalPageOfVideoStream = onlyVideoStreamList.value.length > 6 ? Math.ceil(streamNumber.value / 6) : 1;\n return enlargeStream.value ? totalPageOfVideoStream + 1 : totalPageOfVideoStream;\n});\n\nfunction isActiveDot(index: number) {\n if (layout.value === LAYOUT.LARGE_SMALL_WINDOW) {\n return index === 0;\n }\n if (layout.value === LAYOUT.SIX_EQUAL_POINTS) {\n return index === currentPageIndex.value;\n }\n return false;\n}\n\n/**\n * Swipe left to turn the page\n *\n * 向左滑动翻页\n**/\nfunction handleTurnPageLeft() {\n if (currentPageIndex.value === 0) {\n return;\n }\n currentPageIndex.value = currentPageIndex.value - 1;\n if (enlargeStream.value && currentPageIndex.value === 0) {\n basicStore.setLayout(LAYOUT.LARGE_SMALL_WINDOW);\n }\n}\n\n/**\n * Swipe right to turn the page\n *\n * 向右滑动翻页\n**/\nfunction handleTurnPageRight() {\n if (currentPageIndex.value === totalPageNumber.value - 1) {\n return;\n }\n currentPageIndex.value = currentPageIndex.value + 1;\n if (layout.value === LAYOUT.LARGE_SMALL_WINDOW) {\n basicStore.setLayout(LAYOUT.SIX_EQUAL_POINTS);\n }\n}\n\n/**\n * ----- The following processing stream layout ---------\n *\n * ----- 以下处理流布局 ---------\n**/\nconst enlargedContainerRef = ref();\nconst streamListRef = ref();\n\nconst streamContainerClass = computed(() => {\n let containerClass = '';\n switch (layout.value) {\n case LAYOUT.SIX_EQUAL_POINTS:\n containerClass = 'stream-container-flatten';\n break;\n case LAYOUT.LARGE_SMALL_WINDOW:\n containerClass = 'stream-container-large-small';\n break;\n default:\n break;\n }\n return containerClass;\n});\n\nfunction handleTouchStart(event:any) {\n startX.value = event?.changedTouches[0]?.pageX;\n startY.value = event?.changedTouches[0]?.pageY;\n}\n\nfunction handleTouchEnd(event:any) {\n const moveDirectionX = event?.changedTouches[0].pageX - startX.value;\n const moveDirectionY = event?.changedTouches[0].pageY - startY.value;\n if (Math.abs(moveDirectionY) > Math.abs(moveDirectionX) || Math.abs(moveDirectionX) < 5) {\n return;\n }\n if (moveDirectionX < 0) {\n // 右滑\n handleTurnPageRight();\n }\n if (moveDirectionX > 0) {\n // 左滑\n handleTurnPageLeft();\n }\n}\n\n/**\n * --- The following processing stream events ----\n *\n * --- 以下处理流事件 ----\n**/\n\n\nconst onUserVideoStateChanged = (eventInfo: {\n userId: string,\n streamType: TUIVideoStreamType,\n hasVideo: boolean,\n reason: TUIChangeReason,\n}) => {\n const { userId, streamType, hasVideo, reason } = eventInfo;\n // 更新 roomStore 流状态数据\n roomStore.updateUserVideoState(userId, streamType, hasVideo);\n\n // 处理状态变更\n if (userId === basicStore.userId && !hasVideo && reason === TUIChangeReason.kChangedByAdmin) {\n // 主持人关闭摄像头\n if (streamType === TUIVideoStreamType.kCameraStream) {\n ElMessage({\n type: 'warning',\n message: t('The host has turned off your camera'),\n duration: MESSAGE_DURATION.NORMAL,\n });\n // When the moderator opens the whole staff forbidden to draw,\n // open and then close the single person's camera alone, at this time\n // the corresponding user's camera status for inoperable\n // 主持人开启全员禁画时,单独打开再关闭单人的摄像头,此时对应用户的摄像头状态为无法操作\n roomStore.setCanControlSelfVideo(!roomStore.isCameraDisableForAllUser);\n }\n // 主持人关闭屏幕分享\n if (streamType === TUIVideoStreamType.kScreenStream) {\n ElMessage({\n type: 'warning',\n message: t('The host has turned off your screen sharing'),\n duration: MESSAGE_DURATION.NORMAL,\n });\n }\n }\n\n // 当远端屏幕分享变化的时候,处理流布局\n if (userId !== basicStore.userId && streamType === TUIVideoStreamType.kScreenStream) {\n if (hasVideo) {\n enlargeStream.value = roomStore.remoteStreamObj[`${userId}_${streamType}`] as StreamInfo;\n if (enlargeStream.value) {\n basicStore.setLayout(LAYOUT.LARGE_SMALL_WINDOW);\n currentPageIndex.value = 0;\n }\n } else {\n if (userId === enlargeStream.value?.userId) {\n /**\n * Reset the stream playback layout when the remote screen sharing stream is stopped\n *\n * 远端屏幕分享流停止的时候,重新设置流播放布局\n **/\n logger.debug(`${logPrefix} onUserVideoStateChanged: stop`, userId, streamType);\n roomEngine.instance?.stopPlayRemoteVideo({\n userId,\n streamType,\n });\n if (enlargeStream.value) {\n enlargeStream.value = null;\n }\n if (layout.value === LAYOUT.LARGE_SMALL_WINDOW) {\n basicStore.setLayout(LAYOUT.SIX_EQUAL_POINTS);\n currentPageIndex.value = 0;\n } else if (layout.value === LAYOUT.SIX_EQUAL_POINTS && currentPageIndex.value > 0) {\n currentPageIndex.value = currentPageIndex.value - 1;\n }\n }\n }\n }\n};\n\n// 计算音量最大的 userId\nfunction handleLargestVoice(userVolumeList: Array) {\n if (currentSpeakerUserId.value) {\n const lastSpeakerUserVolumeInfo = userVolumeList.find((item: TRTCVolumeInfo) => (\n item.userId === currentSpeakerUserId.value\n ));\n if (lastSpeakerUserVolumeInfo && lastSpeakerUserVolumeInfo.volume > 0) {\n return;\n }\n }\n let largestVolume = 0;\n let largestUserId = '';\n userVolumeList.forEach((item: TRTCVolumeInfo) => {\n const { userId, volume } = item;\n if (volume > largestVolume) {\n largestVolume = volume;\n largestUserId = userId;\n }\n });\n if (largestVolume === 0) {\n currentSpeakerUserId.value = '';\n } else {\n currentSpeakerUserId.value = largestUserId;\n }\n}\n\nconst handleLargestVoiceThrottle = throttle(handleLargestVoice, 1000);\n\n// 音量变化\nconst onUserVoiceVolumeChanged = (eventInfo: {\n userVolumeList: any[],\n}) => {\n const { userVolumeList } = eventInfo;\n if (layout.value === LAYOUT.LARGE_SMALL_WINDOW) {\n if (userVolumeList.length === 0) {\n currentSpeakerUserId.value = '';\n } else {\n handleLargestVoiceThrottle(userVolumeList);\n }\n }\n};\n\n\nTUIRoomEngine.once('ready', () => {\n roomEngine.instance?.on(TUIRoomEvents.onRemoteUserEnterRoom, onRemoteUserEnterRoom);\n roomEngine.instance?.on(TUIRoomEvents.onRemoteUserLeaveRoom, onRemoteUserLeaveRoom);\n roomEngine.instance?.on(TUIRoomEvents.onSeatListChanged, onSeatListChanged);\n roomEngine.instance?.on(TUIRoomEvents.onUserVideoStateChanged, onUserVideoStateChanged);\n roomEngine.instance?.on(TUIRoomEvents.onUserAudioStateChanged, onUserAudioStateChanged);\n roomEngine.instance?.on(TUIRoomEvents.onUserVoiceVolumeChanged, onUserVoiceVolumeChanged);\n});\n\nonUnmounted(() => {\n roomEngine.instance?.off(TUIRoomEvents.onRemoteUserEnterRoom, onRemoteUserEnterRoom);\n roomEngine.instance?.off(TUIRoomEvents.onRemoteUserLeaveRoom, onRemoteUserLeaveRoom);\n roomEngine.instance?.off(TUIRoomEvents.onSeatListChanged, onSeatListChanged);\n roomEngine.instance?.off(TUIRoomEvents.onUserVideoStateChanged, onUserVideoStateChanged);\n roomEngine.instance?.off(TUIRoomEvents.onUserAudioStateChanged, onUserAudioStateChanged);\n roomEngine.instance?.off(TUIRoomEvents.onUserVoiceVolumeChanged, onUserVoiceVolumeChanged);\n});\n\nreturn { __sfc: true,logPrefix, onRemoteUserEnterRoom, onRemoteUserLeaveRoom, onSeatListChanged, onUserAudioStateChanged, t, roomEngine, streamContainerRef, roomStore, streamList, streamNumber, localStream, remoteStreamObj, basicStore, layout, enlargeStream, enlargeDomId, currentSpeakerUserId, startX, startY, onlyVideoStreamList, currentPageIndex, isFirstPageInSixPointLayout, showStreamList, totalPageNumber, isActiveDot, handleTurnPageLeft, handleTurnPageRight, enlargedContainerRef, streamListRef, streamContainerClass, handleTouchStart, handleTouchEnd, onUserVideoStateChanged, handleLargestVoice, handleLargestVoiceThrottle, onUserVoiceVolumeChanged, LAYOUT, StreamRegion }\n}\n\n})","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./StreamContainerH5.vue?vue&type=script&setup=true&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./StreamContainerH5.vue?vue&type=script&setup=true&lang=ts&\"","import { render, staticRenderFns } from \"./StreamContainerH5.vue?vue&type=template&id=3424abc2&scoped=true&\"\nimport script from \"./StreamContainerH5.vue?vue&type=script&setup=true&lang=ts&\"\nexport * from \"./StreamContainerH5.vue?vue&type=script&setup=true&lang=ts&\"\nimport style0 from \"./StreamContainerH5.vue?vue&type=style&index=0&id=3424abc2&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3424abc2\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{class:_setup.streamContainerClass},[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_setup.showIconControl),expression:\"showIconControl\"}],ref:\"enlargedContainerRef\",staticClass:\"enlarged-stream-container\"},[(_setup.enlargeStream)?_c(_setup.StreamRegion,{key:`${_setup.enlargeStream.userId}_${_setup.enlargeStream.streamType}`,style:(_setup.enlargedStreamStyle),attrs:{\"stream\":_setup.enlargeStream}}):_vm._e()],1),_c('div',{class:['stream-list-container', `${_setup.showSideList ? '' : 'hide-list'}`]},[_c('div',{ref:\"streamListRef\",staticClass:\"stream-list\"},_vm._l((_setup.streamList),function(stream){return _c(_setup.StreamRegion,{directives:[{name:\"show\",rawName:\"v-show\",value:(_setup.showStreamList.indexOf(stream) > -1),expression:\"showStreamList.indexOf(stream) > -1\"}],key:`${stream.userId}_${stream.streamType}`,staticClass:\"single-stream\",style:(_setup.streamStyle),attrs:{\"stream\":stream,\"enlarge-dom-id\":_setup.enlargeDomId},on:{\"room_dblclick\":function($event){return _setup.handleEnlargeStreamRegion(stream)}}})}),1)]),(_setup.showIconControl && _vm.showRoomTool)?_c('div',{class:_setup.arrowClass,on:{\"click\":_setup.handleClickIcon}},[_c(_setup.SvgIcon,{attrs:{\"icon-name\":\"line-arrow-up\",\"size\":\"medium\"}})],1):_vm._e(),(_setup.showTurnPageControl && _vm.showRoomTool)?_c('div',{staticClass:\"turn-page-container\"},[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_setup.showTurnPageLeftArrow),expression:\"showTurnPageLeftArrow\"}],staticClass:\"turn-page-arrow-container left-container\",on:{\"click\":_setup.handleTurnPageLeft}},[_c('div',{staticClass:\"turn-page-arrow\"})]),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_setup.showTurnPageRightArrow),expression:\"showTurnPageRightArrow\"}],staticClass:\"turn-page-arrow-container right-container\",on:{\"click\":_setup.handleTurnPageRight}},[_c('div',{staticClass:\"turn-page-arrow turn-page-right\"})])]):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { defineComponent as _defineComponent } from 'vue'\nimport { ref, onMounted, onUnmounted, Ref, ComputedRef, watch, nextTick, computed } from 'vue';\nimport { storeToRefs } from 'pinia';\nimport { StreamInfo, useRoomStore } from '../../../stores/room';\nimport { useBasicStore } from '../../../stores/basic';\nimport { LAYOUT } from '../../../constants/render';\nimport StreamRegion from '../StreamRegion';\nimport SvgIcon from '../../common/SvgIcon.vue';\nimport { ElMessage } from '../../../elementComp';\nimport { MESSAGE_DURATION } from '../../../constants/message';\nimport { debounce } from '../../../utils/utils';\nimport logger from '../../../utils/common/logger';\n\nimport TUIRoomEngine, { TUIUserInfo, TUIChangeReason, TUIRoomEvents, TUIVideoStreamType, TUISeatInfo } from '@tencentcloud/tuiroom-engine-js';\nimport useGetRoomEngine from '../../../hooks/useRoomEngine';\nimport useStreamContainer from './useStreamContainerHooks';\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'StreamContainerPC',\n props: {\n showRoomTool: { type: Boolean }\n },\n setup(__props: any) {\n\nconst logPrefix = '[StreamContainer]';\nconst {\n onRemoteUserEnterRoom,\n onUserAudioStateChanged,\n t,\n} = useStreamContainer();\nconst roomEngine = useGetRoomEngine();\n\n\n\n\nconst streamStyle: Ref> = ref({ width: '0', height: '0' });\nconst enlargedStreamStyle: Ref> = ref({ width: '0', height: '0' });\nconst roomStore = useRoomStore();\nconst { streamList, streamNumber, remoteStreamList } = storeToRefs(roomStore);\nconst basicStore = useBasicStore();\nconst { layout } = storeToRefs(basicStore);\nconst showSideList = ref(true);\n\nconst enlargeStream: Ref = ref(null);\nconst enlargeDomId = computed(() => (enlargeStream.value ? `${enlargeStream.value.userId}_${enlargeStream.value.streamType}` : ''));\n\nwatch(() => remoteStreamList.value.length, (val) => {\n // 当没有远端流的时候,将流布局改为九宫格\n if (val === 0) {\n basicStore.setLayout(LAYOUT.NINE_EQUAL_POINTS);\n enlargeStream.value = null;\n return;\n }\n});\n\nwatch(() => streamList.value.length, () => {\n if (layout.value === LAYOUT.RIGHT_SIDE_LIST || layout.value === LAYOUT.TOP_SIDE_LIST) {\n handleStreamContainerScroll();\n }\n});\n\nwatch(() => enlargeDomId.value, () => {\n if (layout.value === LAYOUT.RIGHT_SIDE_LIST || layout.value === LAYOUT.TOP_SIDE_LIST) {\n handleStreamContainerScroll();\n }\n});\n\n/**\n * ----- The following handles the nine-pane page flip logic -----\n *\n * ----- 以下处理九宫格翻页逻辑 -----\n**/\nconst currentPageIndex = ref(0);\nconst showStreamList: ComputedRef = computed(() => {\n if (layout.value !== LAYOUT.NINE_EQUAL_POINTS) {\n return streamList.value.filter(item => `${item.userId}_${item.streamType}` !== enlargeDomId.value);\n }\n return streamList.value.slice(currentPageIndex.value * 9, currentPageIndex.value * 9 + 9);\n});\n\nwatch([() => showStreamList.value.length, currentPageIndex], () => {\n if (layout.value === LAYOUT.NINE_EQUAL_POINTS) {\n const streamIdList: string[] = [];\n showStreamList.value.forEach((item) => {\n const currentStreamId = `${item.userId}_${item.streamType}`;\n streamIdList.push(currentStreamId);\n });\n roomStore.updateUserStreamVisible(streamIdList);\n }\n});\n\nwatch(streamNumber, (val) => {\n if (currentPageIndex.value > Math.ceil(val / 9) - 1) {\n currentPageIndex.value = Math.ceil(val / 9) - 1;\n handleNineEqualPointsLayout();\n }\n});\n\n/**\n * Show left and right page flip icons\n *\n * 显示左右翻页图标\n**/\nconst showTurnPageControl = computed(() => layout.value === LAYOUT.NINE_EQUAL_POINTS && streamNumber.value > 9);\n/**\n * Whether or not to show the nine-page-to-left button\n *\n * 是否展示九宫格朝左翻页按钮\n**/\nconst showTurnPageLeftArrow = computed(() => currentPageIndex.value > 0);\n/**\n * Whether or not to display the nine-pane rightward-facing page button\n *\n * 是否展示九宫格朝右翻页按钮\n**/\nconst showTurnPageRightArrow = computed(() => streamNumber.value > currentPageIndex.value * 9 + 9);\n\n/**\n * Nine grid layout towards the left to turn the page\n *\n * 九宫格布局朝左翻页\n**/\nfunction handleTurnPageLeft() {\n currentPageIndex.value = currentPageIndex.value - 1;\n handleNineEqualPointsLayout();\n}\n\n/**\n * Nine grid layout towards the right to turn the page\n *\n * 九宫格布局朝右翻页\n**/\nfunction handleTurnPageRight() {\n currentPageIndex.value = currentPageIndex.value + 1;\n handleNineEqualPointsLayout();\n}\n\n/**\n * ----- The following processing stream layout ---------\n *\n * ----- 以下处理流布局 ---------\n**/\nconst streamContainerClass = ref('');\nconst enlargedContainerRef = ref();\nconst streamListRef = ref();\n\nconst arrowClass = computed(() => {\n let arrowDirection = '';\n if (layout.value === LAYOUT.TOP_SIDE_LIST) {\n arrowDirection = showSideList.value ? 'up' : 'down';\n }\n if (layout.value === LAYOUT.RIGHT_SIDE_LIST) {\n arrowDirection = showSideList.value ? 'right' : 'left';\n }\n return `icon-control arrow-${arrowDirection}`;\n});\n\nfunction handleClickIcon() {\n showSideList.value = !showSideList.value;\n if (!showSideList.value) {\n let width = 0;\n let height = 0;\n const containerWidth = document.getElementById('roomContainer')!.offsetWidth;\n const containerHeight = document.getElementById('roomContainer')!.offsetHeight;\n const scaleWidth = containerWidth / 16;\n const scaleHeight = containerHeight / 9;\n if (scaleWidth > scaleHeight) {\n width = (containerHeight / 9) * 16;\n height = containerHeight;\n }\n if (scaleWidth <= scaleHeight) {\n width = containerWidth;\n height = (containerWidth / 16) * 9;\n }\n enlargedStreamStyle.value.width = `${width}px`;\n enlargedStreamStyle.value.height = `${height}px`;\n /**\n * Modify the width and height of the enlargedContainer\n *\n * 修改 enlargedContainer 的宽和高\n **/\n if (layout.value === LAYOUT.RIGHT_SIDE_LIST) {\n enlargedContainerRef.value.style.width = '100%';\n enlargedContainerRef.value.style.height = '100%';\n return;\n }\n if (layout.value === LAYOUT.TOP_SIDE_LIST) {\n enlargedContainerRef.value.style.top = '0px';\n enlargedContainerRef.value.style.width = '100%';\n enlargedContainerRef.value.style.height = '100%';\n return;\n }\n } else {\n if (layout.value === LAYOUT.RIGHT_SIDE_LIST) {\n handleRightSideListLayout();\n enlargedContainerRef.value.style.width = 'calc(100% - 260px)';\n enlargedContainerRef.value.style.height = '100%';\n return;\n }\n if (layout.value === LAYOUT.TOP_SIDE_LIST) {\n handleTopSideListLayout();\n enlargedContainerRef.value.style.top = '175px';\n enlargedContainerRef.value.style.width = '100%';\n enlargedContainerRef.value.style.height = 'calc(100% - 175px)';\n return;\n }\n }\n}\n\n/**\n * Handle nine-pattern layout\n *\n * 处理九宫格布局\n**/\nasync function handleNineEqualPointsLayout() {\n streamContainerClass.value = 'stream-container-flatten';\n\n enlargeStream.value = null;\n\n const number = showStreamList.value.length;\n let width = 0;\n let height = 0;\n const roomContainerElement = document.getElementById('roomContainer');\n if (!roomContainerElement) {\n return;\n }\n let containerWidth = roomContainerElement!.offsetWidth;\n let containerHeight = roomContainerElement!.offsetHeight;\n if (number <= 4) {\n containerWidth = number < 2 ? roomContainerElement!.offsetWidth / number : roomContainerElement!.offsetWidth / 2;\n containerHeight = roomContainerElement!.offsetHeight / Math.ceil(number / 2);\n } else if (number > 4) {\n containerWidth = number < 3 ? roomContainerElement!.offsetWidth / number : roomContainerElement!.offsetWidth / 3;\n containerHeight = roomContainerElement!.offsetHeight / Math.ceil(number / 3);\n }\n\n const scaleWidth = containerWidth / 16;\n const scaleHeight = containerHeight / 9;\n if (scaleWidth > scaleHeight) {\n width = (containerHeight / 9) * 16;\n height = containerHeight;\n }\n if (scaleWidth <= scaleHeight) {\n width = containerWidth;\n height = (containerWidth / 16) * 9;\n }\n // 九宫格模式需要减掉 streamRegion 的 margin 的尺寸\n streamStyle.value.width = `${width - 8}px`;\n streamStyle.value.height = `${height - 8}px`;\n}\n\n/**\n * Handle sidebar layout\n *\n * 处理侧边栏布局\n**/\nasync function handleRightSideListLayout() {\n streamContainerClass.value = 'stream-container-right';\n\n if (!enlargeStream.value) {\n [enlargeStream.value] = remoteStreamList.value;\n }\n\n await nextTick();\n\n streamStyle.value = {};\n\n if (enlargedContainerRef.value) {\n const containerWidth = enlargedContainerRef.value.offsetWidth;\n const containerHeight = enlargedContainerRef.value.offsetHeight;\n let width = 0;\n let height = 0;\n const scaleWidth = containerWidth / 16;\n const scaleHeight = containerHeight / 9;\n if (scaleWidth > scaleHeight) {\n width = (containerHeight / 9) * 16;\n height = containerHeight;\n }\n if (scaleWidth <= scaleHeight) {\n width = containerWidth;\n height = (containerWidth / 16) * 9;\n }\n enlargedStreamStyle.value.width = `${width}px`;\n enlargedStreamStyle.value.height = `${height}px`;\n }\n}\n\n/**\n * Handle top bar layout\n *\n * 处理顶部栏布局\n**/\nasync function handleTopSideListLayout() {\n streamContainerClass.value = 'stream-container-top';\n\n if (!enlargeStream.value) {\n [enlargeStream.value] = remoteStreamList.value;\n }\n\n await nextTick();\n\n streamStyle.value = {};\n\n if (enlargedContainerRef.value) {\n const containerWidth = enlargedContainerRef.value.offsetWidth;\n const containerHeight = enlargedContainerRef.value.offsetHeight;\n let width = 0;\n let height = 0;\n const scaleWidth = containerWidth / 16;\n const scaleHeight = containerHeight / 9;\n if (scaleWidth > scaleHeight) {\n width = (containerHeight / 9) * 16;\n height = containerHeight;\n }\n if (scaleWidth <= scaleHeight) {\n width = containerWidth;\n height = (containerWidth / 16) * 9;\n }\n enlargedStreamStyle.value.width = `${width}px`;\n enlargedStreamStyle.value.height = `${height}px`;\n }\n}\n\n/**\n * Double-click to switch the stream to the zoom in section\n *\n * 双击切换流到放大区域\n**/\nfunction handleEnlargeStreamRegion(stream: StreamInfo) {\n if (layout.value === LAYOUT.NINE_EQUAL_POINTS) {\n basicStore.setLayout(LAYOUT.RIGHT_SIDE_LIST);\n }\n enlargeStream.value = stream;\n}\n\n/**\n * Handle the page layout when the page loads or the layout changes\n *\n * 页面加载或者 layout 改变时,处理页面布局\n**/\nasync function handleLayout() {\n switch (layout.value as any) {\n case LAYOUT.NINE_EQUAL_POINTS:\n await handleNineEqualPointsLayout();\n break;\n case LAYOUT.RIGHT_SIDE_LIST:\n showSideList.value = true;\n enlargedContainerRef.value.style.width = 'calc(100% - 260px)';\n enlargedContainerRef.value.style.height = '100%';\n await handleRightSideListLayout();\n await handleStreamContainerScroll();\n break;\n case LAYOUT.TOP_SIDE_LIST:\n showSideList.value = true;\n enlargedContainerRef.value.style.width = '100%';\n enlargedContainerRef.value.style.height = 'calc(100% - 175px)';\n await handleTopSideListLayout();\n await handleStreamContainerScroll();\n break;\n default:\n break;\n }\n}\n\n/**\n * Processing stream window size when page rescaling\n *\n * 页面 resize 时,处理流窗口尺寸\n**/\nasync function handleResize() {\n switch (layout.value as any) {\n case LAYOUT.NINE_EQUAL_POINTS:\n await handleNineEqualPointsLayout();\n break;\n case LAYOUT.RIGHT_SIDE_LIST:\n await handleRightSideListLayout();\n await handleStreamContainerScroll();\n break;\n case LAYOUT.TOP_SIDE_LIST:\n await handleTopSideListLayout();\n await handleStreamContainerScroll();\n break;\n default:\n break;\n }\n}\n\nonMounted(() => {\n handleLayout();\n ['resize', 'pageshow'].forEach((event) => {\n window.addEventListener(event, handleResize);\n });\n});\n\nonUnmounted(() => {\n ['resize', 'pageshow'].forEach((event) => {\n window.removeEventListener(event, handleResize);\n });\n});\n\nwatch(streamNumber, () => {\n if (layout.value === LAYOUT.NINE_EQUAL_POINTS) {\n handleNineEqualPointsLayout();\n }\n});\n\nwatch(layout, () => {\n handleLayout();\n});\n\nconst showIconControl = computed(() => [LAYOUT.RIGHT_SIDE_LIST, LAYOUT.TOP_SIDE_LIST].indexOf(layout.value) >= 0);\n\n\nconst onUserVideoStateChanged = (eventInfo: {\n userId: string,\n streamType: TUIVideoStreamType,\n hasVideo: boolean,\n reason: TUIChangeReason,\n}) => {\n const { userId, streamType, hasVideo, reason } = eventInfo;\n // 更新 roomStore 流状态数据\n roomStore.updateUserVideoState(userId, streamType, hasVideo);\n\n // 处理状态变更\n if (userId === basicStore.userId && !hasVideo && reason === TUIChangeReason.kChangedByAdmin) {\n // 主持人关闭摄像头\n if (streamType === TUIVideoStreamType.kCameraStream) {\n ElMessage({\n type: 'warning',\n message: t('The host has turned off your camera'),\n duration: MESSAGE_DURATION.NORMAL,\n });\n // When the moderator opens the whole staff forbidden to draw,\n // open and then close the single person's camera alone, at this time\n // the corresponding user's camera status for inoperable\n // 主持人开启全员禁画时,单独打开再关闭单人的摄像头,此时对应用户的摄像头状态为无法操作\n roomStore.setCanControlSelfVideo(!roomStore.isCameraDisableForAllUser);\n }\n // 主持人关闭屏幕分享\n if (streamType === TUIVideoStreamType.kScreenStream) {\n ElMessage({\n type: 'warning',\n message: t('The host has turned off your screen sharing'),\n duration: MESSAGE_DURATION.NORMAL,\n });\n }\n }\n\n // 当远端屏幕分享变化的时候,处理流布局\n if (userId !== basicStore.userId && streamType === TUIVideoStreamType.kScreenStream) {\n if (hasVideo) {\n roomStore.setHasOtherScreenShare(true);\n enlargeStream.value = roomStore.remoteStreamObj[`${userId}_${streamType}`] as StreamInfo;\n if (enlargeStream.value) {\n if (layout.value !== LAYOUT.RIGHT_SIDE_LIST && layout.value !== LAYOUT.TOP_SIDE_LIST) {\n basicStore.setLayout(LAYOUT.RIGHT_SIDE_LIST);\n }\n }\n } else {\n roomStore.setHasOtherScreenShare(false);\n /**\n * Reset the stream playback layout when the remote screen sharing stream is stopped\n *\n * 远端屏幕分享流停止的时候,重新设置流播放布局\n **/\n if (userId === enlargeStream.value?.userId) {\n handleLargeStreamLeave();\n }\n\n logger.debug(`${logPrefix} onUserVideoStateChanged: stop`, userId, streamType);\n roomEngine.instance?.stopPlayRemoteVideo({\n userId,\n streamType,\n });\n }\n }\n};\n\n// 麦位变化\nconst onSeatListChanged = (eventInfo:\n { seatList: TUISeatInfo[], seatedList: TUISeatInfo[], leftList: TUISeatInfo[] }) => {\n const { seatList, seatedList, leftList } = eventInfo;\n roomStore.updateOnSeatList(seatList, seatedList, leftList);\n const leftUserIdList = leftList.map(item => item.userId);\n // 最大屏用户下麦时,需要更换最大屏用户\n if (enlargeStream.value && leftUserIdList.includes(enlargeStream.value?.userId)) {\n handleLargeStreamLeave();\n }\n};\n\n// 远端用户离开\nconst onRemoteUserLeaveRoom = (eventInfo: { userInfo: TUIUserInfo }) => {\n const { userInfo: { userId } } = eventInfo;\n roomStore.removeRemoteUser(userId);\n if (userId === enlargeStream.value?.userId) {\n handleLargeStreamLeave();\n }\n};\n\n// 处理大窗口流离开\nconst handleLargeStreamLeave = () => {\n if (roomStore.remoteStreamList.length === 0) {\n basicStore.setLayout(LAYOUT.NINE_EQUAL_POINTS);\n enlargeStream.value = null;\n } else {\n [enlargeStream.value] = roomStore.remoteStreamList;\n }\n};\n\n// 处理侧边栏&顶部栏的视频懒加载\nconst handleStreamContainerScroll = async () => {\n const childDom = streamListRef.value.children[0];\n // 添加 nextTick 处理顶部栏模式下新增用户触发 scroll,但是拿到的 streamListRef.value.offsetWidth 还没有更新的问题\n await nextTick();\n\n // 从第几个\n let index = 0;\n let finalIndex = 0;\n // 可视区域有几个\n let number = 0;\n\n if (layout.value === LAYOUT.RIGHT_SIDE_LIST) {\n const firstChildHeight = childDom.offsetHeight + 10;\n const normalChildHeight = childDom.offsetHeight + 14;\n const streamListRefEnd = streamListRef.value.scrollTop + streamListRef.value.offsetHeight;\n index = Math.floor((streamListRef.value.scrollTop - firstChildHeight) / normalChildHeight) + 1;\n finalIndex = Math.ceil((streamListRefEnd - firstChildHeight) / normalChildHeight) + 1;\n } else if (layout.value === LAYOUT.TOP_SIDE_LIST) {\n const firstChildWidth = childDom.offsetWidth;\n const normalChildWidth = childDom.offsetWidth + 14;\n const streamListRefEnd = streamListRef.value.scrollLeft + streamListRef.value.offsetWidth;\n index = Math.floor((streamListRef.value.scrollLeft - firstChildWidth) / normalChildWidth) + 1;\n finalIndex = Math.ceil((streamListRefEnd - firstChildWidth) / normalChildWidth) + 1;\n }\n if (index < 0) {\n index = 0;\n }\n number = finalIndex - index;\n if (number > (showStreamList.value.length - index)) {\n number = showStreamList.value.length - index;\n }\n\n const streamUserIdList = [];\n [...new Array(number)].forEach(() => {\n const currentStreamId = `${showStreamList.value[index].userId}_${showStreamList.value[index].streamType}`;\n streamUserIdList.push(currentStreamId);\n index = index + 1;\n });\n streamUserIdList.push(enlargeDomId.value);\n\n // 修改对应的 streamInfo 的 isVisible 为 true\n roomStore.updateUserStreamVisible(streamUserIdList);\n};\n\nconst handleStreamContainerScrollDebounce = debounce(handleStreamContainerScroll, 300);\n\nonMounted(() => {\n streamListRef.value.addEventListener('scroll', handleStreamContainerScrollDebounce);\n});\n\nonUnmounted(() => {\n streamListRef.value && streamListRef.value.removeEventListener('scroll', handleStreamContainerScrollDebounce);\n});\n\nTUIRoomEngine.once('ready', () => {\n roomEngine.instance?.on(TUIRoomEvents.onRemoteUserEnterRoom, onRemoteUserEnterRoom);\n roomEngine.instance?.on(TUIRoomEvents.onRemoteUserLeaveRoom, onRemoteUserLeaveRoom);\n roomEngine.instance?.on(TUIRoomEvents.onSeatListChanged, onSeatListChanged);\n roomEngine.instance?.on(TUIRoomEvents.onUserVideoStateChanged, onUserVideoStateChanged);\n roomEngine.instance?.on(TUIRoomEvents.onUserAudioStateChanged, onUserAudioStateChanged);\n});\n\nonUnmounted(() => {\n roomEngine.instance?.off(TUIRoomEvents.onRemoteUserEnterRoom, onRemoteUserEnterRoom);\n roomEngine.instance?.off(TUIRoomEvents.onRemoteUserLeaveRoom, onRemoteUserLeaveRoom);\n roomEngine.instance?.off(TUIRoomEvents.onSeatListChanged, onSeatListChanged);\n roomEngine.instance?.off(TUIRoomEvents.onUserVideoStateChanged, onUserVideoStateChanged);\n roomEngine.instance?.off(TUIRoomEvents.onUserAudioStateChanged, onUserAudioStateChanged);\n});\n\nreturn { __sfc: true,logPrefix, onRemoteUserEnterRoom, onUserAudioStateChanged, t, roomEngine, streamStyle, enlargedStreamStyle, roomStore, streamList, streamNumber, remoteStreamList, basicStore, layout, showSideList, enlargeStream, enlargeDomId, currentPageIndex, showStreamList, showTurnPageControl, showTurnPageLeftArrow, showTurnPageRightArrow, handleTurnPageLeft, handleTurnPageRight, streamContainerClass, enlargedContainerRef, streamListRef, arrowClass, handleClickIcon, handleNineEqualPointsLayout, handleRightSideListLayout, handleTopSideListLayout, handleEnlargeStreamRegion, handleLayout, handleResize, showIconControl, onUserVideoStateChanged, onSeatListChanged, onRemoteUserLeaveRoom, handleLargeStreamLeave, handleStreamContainerScroll, handleStreamContainerScrollDebounce, StreamRegion, SvgIcon }\n}\n\n})","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./StreamContainerPC.vue?vue&type=script&setup=true&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./StreamContainerPC.vue?vue&type=script&setup=true&lang=ts&\"","import { render, staticRenderFns } from \"./StreamContainerPC.vue?vue&type=template&id=35d1e596&scoped=true&\"\nimport script from \"./StreamContainerPC.vue?vue&type=script&setup=true&lang=ts&\"\nexport * from \"./StreamContainerPC.vue?vue&type=script&setup=true&lang=ts&\"\nimport style0 from \"./StreamContainerPC.vue?vue&type=style&index=0&id=35d1e596&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"35d1e596\",\n null\n \n)\n\nexport default component.exports","import StreamContainerH5 from './StreamContainerH5.vue';\nimport StreamContainerPc from './StreamContainerPC.vue';\nimport { isMobile } from '../../../utils/useMediaValue';\n\nconst StreamContainer = isMobile ? StreamContainerH5 : StreamContainerPc;\n\nexport default StreamContainer;\n","import { defineComponent as _defineComponent } from 'vue'\nimport StreamContainer from './StreamContainer';\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'index',\n props: {\n showRoomTool: { type: Boolean }\n },\n setup(__props: any) {\n\n\n\nreturn { __sfc: true,StreamContainer }\n}\n\n})","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&setup=true&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&setup=true&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=f3be1146&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&setup=true&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&setup=true&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=f3be1146&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"f3be1146\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return (_setup.showSettingDialog)?_c('div',{staticClass:\"setting-dialog\"},[_c('div',{staticClass:\"dialog-tabs\"},[_c('span',{staticClass:\"dialog-title\"},[_vm._v(_vm._s(_setup.t('Settings')))]),_vm._l((_setup.settingTabsTitleList),function(item,index){return _c('div',{key:index,class:['tabs-title', `${_setup.activeSettingTab === item.value ? 'active' : ''}`],on:{\"click\":function($event){return _setup.handleUpdateActiveTab(item.value)}}},[_vm._v(\" \"+_vm._s(item.label)+\" \")])})],2),_c('div',{staticClass:\"divide-line\"}),_c('div',{staticClass:\"dialog-content\"},[(_setup.activeSettingTab === 'audio')?_c(_setup.AudioSettingTab,{attrs:{\"mode\":_setup.SettingMode.DETAIL}}):_vm._e(),(_setup.activeSettingTab === 'video')?_c(_setup.VideoSettingTab,{attrs:{\"mode\":_setup.SettingMode.DETAIL,\"with-preview\":true}}):_vm._e()],1),_c(_setup.SvgIcon,{staticClass:\"close-icon\",attrs:{\"icon-name\":\"close\",\"size\":\"medium\"},on:{\"click\":_setup.handleCloseSettingDialog}})],1):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { defineComponent as _defineComponent } from 'vue'\nimport SvgIcon from '../common/SvgIcon.vue';\nimport AudioSettingTab from '../base/AudioSettingTab.vue';\nimport VideoSettingTab from '../base/VideoSettingTab.vue';\nimport { useBasicStore } from '../../stores/basic';\nimport { storeToRefs } from 'pinia';\nimport { SettingMode } from '../../constants/render';\nimport { useI18n } from '../../locales';\nimport { computed } from 'vue';\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'index',\n setup(__props) {\n\n// import { ref } from 'vue';\nconst { t } = useI18n();\n\nconst basicStore = useBasicStore();\n\nconst { showSettingDialog, activeSettingTab } = storeToRefs(basicStore);\n\n/**\n * TODO: Refine the rest of the settings Tab\n *\n * TODO: 完善其余设置 Tab\n**/\nconst settingTabsTitleList = computed(() => [\n { label: t('Audio settings'), value: 'audio' },\n { label: t('Camera settings'), value: 'video' },\n // { label: '美颜和虚拟设置', value: 'beauty' },\n // { label: '统计功能', value: 'static' },\n // { label: '录制', value: 'record' },\n]);\n\nfunction handleUpdateActiveTab(tabTitle: string) {\n basicStore.setActiveSettingTab(tabTitle);\n}\n\nfunction handleCloseSettingDialog() {\n basicStore.setShowSettingDialog(false);\n}\n\n\nreturn { __sfc: true,t, basicStore, showSettingDialog, activeSettingTab, settingTabsTitleList, handleUpdateActiveTab, handleCloseSettingDialog, SvgIcon, AudioSettingTab, VideoSettingTab, SettingMode }\n}\n\n})","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&setup=true&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&setup=true&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=3d8c7752&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&setup=true&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&setup=true&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=3d8c7752&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3d8c7752\",\n null\n \n)\n\nexport default component.exports","import { defineComponent as _defineComponent } from 'vue'\nimport { ElMessage, ElMessageBox } from './elementComp';\nimport { ref, onMounted, onUnmounted, Ref, watch } from 'vue';\nimport { storeToRefs } from 'pinia';\nimport RoomHeader from './components/RoomHeader/index';\nimport RoomFooter from './components/RoomFooter/index';\nimport RoomSidebar from './components/RoomSidebar';\nimport RoomContent from './components/RoomContent/index.vue';\nimport RoomSetting from './components/RoomSetting/index.vue';\nimport { debounce, throttle } from './utils/utils';\nimport { useBasicStore } from './stores/basic';\nimport { useRoomStore } from './stores/room';\nimport { useChatStore } from './stores/chat';\nimport { isMobile, isWeChat } from './utils/useMediaValue';\nimport './directives/vTap';\nimport TUIRoomEngine, {\n TRTCVideoMirrorType,\n TRTCVideoRotation,\n TRTCVideoFillMode,\n TUIRoomEvents,\n TUIRoomType,\n TRTCDeviceType,\n TRTCDeviceState,\n TUISpeechMode,\n TUIKickedOutOfRoomReason,\n TRTCVideoResolution,\n TRTCVideoEncParam,\n TUIRole,\n} from '@tencentcloud/tuiroom-engine-js';\n\n\nimport TUIRoomAegis from './utils/aegis';\nimport { MESSAGE_DURATION } from './constants/message';\nimport { useI18n } from './locales';\n\nimport useGetRoomEngine from './hooks/useRoomEngine';\nimport logger from './utils/common/logger';\n\ninterface RoomParam {\n\tisOpenCamera: boolean,\n\tisOpenMicrophone: boolean,\n\tdefaultCameraId: string,\n\tdefaultMicrophoneId: string,\n\tdefaultSpeakerId: string,\n}\n\ninterface RoomInitData {\n sdkAppId: number,\n userId: string,\n userSig: string,\n userName: string,\n avatarUrl: string,\n showHeaderTool: boolean,\n theme?: {\n defaultTheme: 'black' | 'white',\n isSupportSwitchTheme: boolean,\n },\n}\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'index',\n emits: [\n 'on-log-out',\n 'on-create-room',\n 'on-enter-room',\n 'on-exit-room',\n 'on-destroy-room',\n // 用户被踢出房间\n 'on-kicked-out-of-room',\n // 用户被踢下线\n 'on-kicked-off-line',\n // 用户 userSig 过期\n 'on-userSig-expired',\n],\n setup(__props, { expose, emit }) {\n\nconst roomEngine = useGetRoomEngine();\nconst { t } = useI18n();\n\nexpose({\n init,\n createRoom,\n enterRoom,\n dismissRoom,\n leaveRoom,\n resetStore,\n t,\n});\n\n\n\nconst logPrefix = '[Room]';\n\nconst basicStore = useBasicStore();\nconst roomStore = useRoomStore();\nconst chatStore = useChatStore();\n\nconst { sdkAppId, showHeaderTool, } = storeToRefs(basicStore);\nconst { localUser } = storeToRefs(roomStore);\n\n/**\n * Handle page mouse hover display toolbar logic\n *\n * 处理页面鼠标悬浮显示工具栏逻辑\n**/\nconst roomContentRef = ref>();\nconst showRoomTool: Ref = ref(true);\nconst roomRef: Ref = ref();\nfunction handleHideRoomTool() {\n showRoomTool.value = false;\n}\n\nconst handleHideRoomToolDebounce = debounce(handleHideRoomTool, 5000);\nconst handleHideRoomToolThrottle = throttle(handleHideRoomToolDebounce, 1000);\n\nconst smallParam = new TRTCVideoEncParam();\nsmallParam.videoResolution = TRTCVideoResolution.TRTCVideoResolution_640_360;\nsmallParam.videoFps = 10;\nsmallParam.videoBitrate = 550;\n\n// PC 端处理 room 控制栏交互\nif (!isWeChat && !isMobile) {\n onMounted(() => {\n roomRef.value?.addEventListener('mouseenter', () => {\n showRoomTool.value = true;\n handleHideRoomToolDebounce();\n });\n roomRef.value?.addEventListener('click', () => {\n showRoomTool.value = true;\n handleHideRoomToolDebounce();\n }, false);\n roomRef.value?.addEventListener('mousemove', () => {\n showRoomTool.value = true;\n handleHideRoomToolThrottle();\n });\n roomRef.value?.addEventListener('mouseleave', () => {\n showRoomTool.value = false;\n });\n });\n onUnmounted(() => {\n roomRef.value?.removeEventListener('mouseenter', () => {\n showRoomTool.value = true;\n handleHideRoomToolDebounce();\n });\n roomRef.value?.removeEventListener('click', () => {\n showRoomTool.value = true;\n handleHideRoomToolDebounce();\n }, false);\n roomRef.value?.removeEventListener('mousemove', () => {\n showRoomTool.value = true;\n handleHideRoomToolThrottle();\n });\n roomRef.value?.removeEventListener('mouseleave', () => {\n showRoomTool.value = false;\n });\n });\n}\n\n// H5 及小程序端处理 room 控制栏交互\nfunction handleRoomContentTap() {\n showRoomTool.value = !showRoomTool.value;\n if (showRoomTool.value) {\n handleHideRoomToolDebounce();\n }\n}\n\nonMounted(async () => {\n const defaults = basicStore.defaultTheme;\n const storageCurrentTheme = localStorage.getItem('tuiRoom-currentTheme') || defaults;\n basicStore.setDefaultTheme(storageCurrentTheme);\n document.body.setAttribute('data-theme', storageCurrentTheme);\n if (isMobile) {\n const trtcCloud = roomEngine.instance?.getTRTCCloud();\n await trtcCloud?.setLocalRenderParams({\n mirrorType: TRTCVideoMirrorType.TRTCVideoMirrorType_Auto,\n rotation: TRTCVideoRotation.TRTCVideoRotation0,\n fillMode: TRTCVideoFillMode.TRTCVideoFillMode_Fill,\n });\n }\n});\n\n\nasync function dismissRoom() {\n try {\n logger.log(`${logPrefix}dismissRoom: enter`);\n await closeMediaBeforeLeave();\n await roomEngine.instance?.destroyRoom();\n emit('on-destroy-room');\n } catch (error) {\n logger.error(`${logPrefix}dismissRoom error:`, error);\n }\n}\n\nasync function leaveRoom() {\n try {\n await closeMediaBeforeLeave();\n const response = await roomEngine.instance?.exitRoom();\n emit('on-exit-room');\n logger.log(`${logPrefix}leaveRoom:`, response);\n } catch (error) {\n logger.error(`${logPrefix}leaveRoom error:`, error);\n }\n}\n\nasync function closeMediaBeforeLeave() {\n if (localUser.value.hasAudioStream) {\n await roomEngine.instance?.closeLocalMicrophone();\n }\n if (localUser.value.hasVideoStream) {\n await roomEngine.instance?.closeLocalCamera();\n }\n}\n\nasync function init(option: RoomInitData) {\n basicStore.setBasicInfo(option);\n roomStore.setLocalUser(option);\n const { sdkAppId, userId, userSig, userName, avatarUrl } = option;\n await TUIRoomEngine.login({ sdkAppId, userId, userSig });\n await TUIRoomEngine.setSelfInfo({ userName, avatarUrl });\n}\n\nasync function createRoom(options: {\n roomId: string,\n roomName: string,\n roomMode: 'FreeToSpeak' | 'SpeakAfterTakingSeat',\n roomParam?: RoomParam,\n}) {\n const { roomId, roomName, roomMode, roomParam } = options;\n try {\n if (!roomEngine.instance) {\n return;\n }\n basicStore.setRoomId(roomId);\n logger.debug(`${logPrefix}createRoom:`, roomId, roomMode, roomParam);\n const roomParams = {\n roomId,\n name: roomName,\n roomType: TUIRoomType.kConference,\n };\n if (roomMode === 'FreeToSpeak') {\n Object.assign(roomParams, {\n speechMode: TUISpeechMode.kFreeToSpeak,\n });\n } else {\n Object.assign(roomParams, {\n speechMode: TUISpeechMode.kSpeakAfterTakingSeat,\n });\n }\n await roomEngine.instance?.createRoom(roomParams);\n emit('on-create-room', {\n code: 0,\n message: 'create room success',\n });\n const trtcCloud = roomEngine.instance?.getTRTCCloud();\n trtcCloud.setDefaultStreamRecvMode(true, false);\n trtcCloud.enableSmallVideoStream(true, smallParam);\n const roomInfo = await roomEngine.instance?.enterRoom({ roomId });\n emit('on-enter-room', {\n code: 0,\n message: 'enter room success',\n });\n roomStore.setRoomInfo(roomInfo);\n // 申请发言模式房主上麦\n if (roomInfo.speechMode === TUISpeechMode.kSpeakAfterTakingSeat) {\n await roomEngine.instance?.takeSeat({ seatIndex: -1, timeout: 0 });\n }\n\n await getUserList();\n /**\n * setRoomParam must come after setRoomInfo,because roomInfo contains information\n * about whether or not to turn on the no-mac ban.\n *\n * setRoomParam 必须在 setRoomInfo 之后,因为 roomInfo 中有是否开启全员禁麦禁画的信息\n **/\n roomStore.setRoomParam(roomParam);\n TUIRoomAegis.reportEvent({ name: 'createRoom', ext1: 'createRoom-success' });\n } catch (error) {\n logger.error(`${logPrefix}createRoom error:`, error);\n basicStore.reset();\n throw error;\n }\n}\n\nasync function enterRoom(options: {roomId: string, roomParam?: RoomParam }) {\n const { roomId, roomParam } = options;\n try {\n if (!roomEngine.instance) {\n return;\n }\n basicStore.setRoomId(roomId);\n logger.debug(`${logPrefix}enterRoom:`, roomId, roomParam);\n const trtcCloud = roomEngine.instance?.getTRTCCloud();\n trtcCloud.setDefaultStreamRecvMode(true, false);\n trtcCloud.enableSmallVideoStream(true, smallParam);\n const roomInfo = await roomEngine.instance?.enterRoom({ roomId });\n roomStore.setRoomInfo(roomInfo);\n await getUserList();\n /**\n * setRoomParam must come after setRoomInfo,because roomInfo contains information\n * about whether or not to turn on the no-mac ban.\n *\n * setRoomParam 必须在 setRoomInfo 之后,因为 roomInfo 中有是否开启全员禁麦禁画的信息\n **/\n roomStore.setRoomParam(roomParam);\n emit('on-enter-room', {\n code: 0,\n message: 'enter room success',\n });\n TUIRoomAegis.reportEvent({ name: 'enterRoom', ext1: 'enterRoom-success' });\n } catch (error) {\n logger.error(`${logPrefix}enterRoom error:`, error);\n basicStore.reset();\n throw error;\n }\n}\n\nasync function getUserList() {\n try {\n const { userInfoList } = await roomEngine.instance?.getUserList() as any;\n roomStore.setUserList(userInfoList);\n } catch (error: any) {\n logger.error('TUIRoomEngine.getUserList', error.code, error.message);\n }\n}\n\nconst onUserVoiceVolumeChanged = (eventInfo: { userVolumeList: []}) => {\n const { userVolumeList } = eventInfo;\n roomStore.setAudioVolume(userVolumeList);\n};\n\nconst onUserNetworkQualityChanged = (eventInfo: { userNetworkList: [] }) => {\n basicStore.setLocalQuality(eventInfo.userNetworkList);\n};\n\n// To do 临时注释,待放开\n// const onStatistics = (statistics: TRTCStatistics) => {\n// basicStore.setStatistics(statistics);\n// };\n\nfunction resetStore() {\n basicStore.reset();\n chatStore.reset();\n roomStore.reset();\n}\n\nconst logOut = () => {\n resetStore();\n emit('on-log-out');\n};\n\nconst onDestroyRoom = (info: { code: number; message: string }) => {\n resetStore();\n emit('on-destroy-room', info);\n};\n\nconst onExitRoom = (info: { code: number; message: string }) => {\n resetStore();\n emit('on-exit-room', info);\n};\n\nconst onError = (error: any) => {\n logger.error('roomEngine.onError: ', error);\n};\n\nconst onSendMessageForUserDisableChanged = (data: { userId: string, isDisable: boolean }) => {\n const { userId, isDisable } = data;\n if (userId === localUser.value.userId) {\n const tipMessage = isDisable ? t('You have been banned from text chat by the host') : t('You are allowed to text chat by the host');\n ElMessage({\n type: 'warning',\n message: tipMessage,\n duration: MESSAGE_DURATION.NORMAL,\n });\n chatStore.setSendMessageDisableChanged(isDisable);\n }\n};\n\nconst onKickedOutOfRoom = async (eventInfo: { roomId: string, reason: TUIKickedOutOfRoomReason, message: string }) => {\n const { roomId, reason, message } = eventInfo;\n try {\n resetStore();\n let notice = '';\n switch (reason) {\n case TUIKickedOutOfRoomReason.kKickedByAdmin:\n notice = t('kicked out of the room by the host');\n break;\n case TUIKickedOutOfRoomReason.kKickedByLoggedOnOtherDevice:\n notice = t('kicked out of the room by other device');\n break;\n case TUIKickedOutOfRoomReason.kKickedByServer:\n notice = t('kicked out of the room by serve');\n break;\n }\n ElMessageBox.alert(notice, t('Note'), {\n confirmButtonText: t('Confirm'),\n customClass: 'custom-element-class',\n appendTo: '#roomContainer',\n callback: async () => {\n emit('on-kicked-out-of-room', { roomId, reason, message });\n },\n });\n } catch (error) {\n logger.error(`${logPrefix}onKickedOutOfRoom error:`, error);\n }\n};\n\nconst onUserSigExpired = () => {\n ElMessageBox.alert('userSig 已过期', t('Note'), {\n confirmButtonText: t('Confirm'),\n customClass: 'custom-element-class',\n appendTo: '#roomContainer',\n callback: async () => {\n emit('on-userSig-expired');\n },\n });\n};\n\nconst onKickedOffLine = (eventInfo: { message: string }) => {\n const { message } = eventInfo;\n ElMessageBox.alert('系统检测到您的账号被踢下线', t('Note'), {\n confirmButtonText: t('Confirm'),\n customClass: 'custom-element-class',\n appendTo: '#roomContainer',\n callback: async () => {\n emit('on-kicked-off-line', { message });\n },\n });\n};\n\n// todo: 处理禁言所有人和禁画所有人\nasync function handleAudioStateChange(isDisableAudio: boolean) {\n const tipMessage = isDisableAudio ? t('The host has muted all') : t('The host has unmuted all');\n ElMessage({\n type: 'warning',\n message: tipMessage,\n duration: MESSAGE_DURATION.NORMAL,\n });\n /**\n * If the host lifts the full ban and does not actively turn up the user microphone\n *\n * 如果主持人解除全员禁言,不主动调起用户麦克风\n **/\n if (isDisableAudio) {\n await roomEngine.instance?.closeLocalMicrophone();\n }\n}\n\nasync function handleVideoStateChange(isDisableVideo: boolean) {\n const tipMessage = isDisableVideo ? t('The host has turned on the ban on all paintings') : t('The host has lifted the ban on all paintings');\n ElMessage({\n type: 'warning',\n message: tipMessage,\n duration: MESSAGE_DURATION.NORMAL,\n });\n /**\n * If the host lifts the full ban on drawing and does not actively turn up the user camera\n *\n * 如果主持人解除全员禁画,不主动调起用户摄像头\n **/\n if (isDisableVideo) {\n await roomEngine.instance?.closeLocalCamera();\n }\n}\n\nasync function handleMessageStateChange(isDisableMessage: boolean) {\n const tipMessage = isDisableMessage ? t('The host has turned on the ban on all chat') : t('The host has lifted the ban on all chat');\n ElMessage({\n type: 'warning',\n message: tipMessage,\n duration: MESSAGE_DURATION.NORMAL,\n });\n}\n\nconst onAllUserCameraDisableChanged = async (eventInfo: { roomId: string, isDisable: boolean }) => {\n const { isDisable } = eventInfo;\n if (isDisable !== roomStore.isCameraDisableForAllUser && localUser.value.userRole === TUIRole.kGeneralUser) {\n handleVideoStateChange(isDisable);\n roomStore.setCanControlSelfVideo(!isDisable);\n }\n roomStore.setDisableCameraForAllUserByAdmin(isDisable);\n};\n\nconst onAllUserMicrophoneDisableChanged = async (eventInfo: { roomId: string, isDisable: boolean }) => {\n const { isDisable } = eventInfo;\n if (isDisable !== roomStore.isMicrophoneDisableForAllUser && localUser.value.userRole === TUIRole.kGeneralUser) {\n handleAudioStateChange(isDisable);\n roomStore.setCanControlSelfAudio(!isDisable);\n }\n roomStore.setDisableMicrophoneForAllUserByAdmin(isDisable);\n};\n\nconst onSendMessageForAllUserDisableChanged = async (eventInfo: { roomId: string, isDisable: boolean}) => {\n const { isDisable } = eventInfo;\n if (isDisable !== roomStore.isMessageDisableForAllUser && localUser.value.userRole === TUIRole.kGeneralUser) {\n handleMessageStateChange(isDisable);\n }\n roomStore.setDisableMessageAllUserByAdmin(isDisable);\n};\n// 初始化获取设备列表\nasync function getMediaDeviceList() {\n const cameraList = await roomEngine.instance?.getCameraDevicesList();\n const microphoneList = await roomEngine.instance?.getMicDevicesList();\n const speakerList = await roomEngine.instance?.getSpeakerDevicesList();\n cameraList && roomStore.setCameraList(cameraList);\n microphoneList && roomStore.setMicrophoneList(microphoneList);\n speakerList && roomStore.setSpeakerList(speakerList);\n\n const cameraInfo = roomEngine.instance?.getCurrentCameraDevice();\n const micInfo = roomEngine.instance?.getCurrentMicDevice();\n const speakerInfo = roomEngine.instance?.getCurrentSpeakerDevice();\n if (cameraInfo && cameraInfo.deviceId) {\n roomStore.setCurrentCameraId(cameraInfo.deviceId);\n }\n if (micInfo && micInfo.deviceId) {\n roomStore.setCurrentMicrophoneId(micInfo.deviceId);\n }\n if (speakerInfo && speakerInfo.deviceId) {\n roomStore.setCurrentSpeakerId(speakerInfo.deviceId);\n }\n}\n\n/**\n * Device changes: device switching, device plugging and unplugging events\n *\n * 设备变化:设备切换、设备插拔事件\n**/\nasync function onDeviceChange(eventInfo: {deviceId: string, type: number, state: number}) {\n const stateList = ['add', 'remove', 'active'];\n const { deviceId, type, state } = eventInfo;\n if (type === TRTCDeviceType.TRTCDeviceTypeMic) {\n logger.log(`onDeviceChange: deviceId: ${deviceId}, type: microphone, state: ${stateList[state]}`);\n const deviceList = await roomEngine.instance?.getMicDevicesList();\n deviceList && roomStore.setMicrophoneList(deviceList);\n if (state === TRTCDeviceState.TRTCDeviceStateActive) {\n roomStore.setCurrentMicrophoneId(deviceId);\n }\n return;\n }\n if (type === TRTCDeviceType.TRTCDeviceTypeSpeaker) {\n logger.log(`onDeviceChange: deviceId: ${deviceId}, type: speaker, state: ${stateList[state]}`);\n const deviceList = await roomEngine.instance?.getSpeakerDevicesList();\n deviceList && roomStore.setSpeakerList(deviceList);\n if (state === TRTCDeviceState.TRTCDeviceStateActive) {\n roomStore.setCurrentSpeakerId(deviceId);\n }\n return;\n }\n if (type === TRTCDeviceType.TRTCDeviceTypeCamera) {\n logger.log(`onDeviceChange: deviceId: ${deviceId}, type: camera, state: ${stateList[state]}`);\n const deviceList = await roomEngine.instance?.getCameraDevicesList();\n deviceList && roomStore.setCameraList(deviceList);\n if (state === TRTCDeviceState.TRTCDeviceStateActive) {\n roomStore.setCurrentCameraId(deviceId);\n }\n }\n}\n\nTUIRoomEngine.once('ready', () => {\n roomEngine.instance?.on(TUIRoomEvents.onError, onError);\n roomEngine.instance?.on(TUIRoomEvents.onUserVoiceVolumeChanged, onUserVoiceVolumeChanged);\n roomEngine.instance?.on(TUIRoomEvents.onUserNetworkQualityChanged, onUserNetworkQualityChanged);\n roomEngine.instance?.on(TUIRoomEvents.onKickedOutOfRoom, onKickedOutOfRoom);\n roomEngine.instance?.on(TUIRoomEvents.onSendMessageForUserDisableChanged, onSendMessageForUserDisableChanged);\n roomEngine.instance?.on(TUIRoomEvents.onUserSigExpired, onUserSigExpired);\n roomEngine.instance?.on(TUIRoomEvents.onKickedOffLine, onKickedOffLine);\n roomEngine.instance?.on(TUIRoomEvents.onAllUserCameraDisableChanged, onAllUserCameraDisableChanged);\n roomEngine.instance?.on(TUIRoomEvents.onAllUserMicrophoneDisableChanged, onAllUserMicrophoneDisableChanged);\n roomEngine.instance?.on(TUIRoomEvents.onSendMessageForAllUserDisableChanged, onSendMessageForAllUserDisableChanged);\n roomEngine.instance?.on(TUIRoomEvents.onDeviceChange, onDeviceChange);\n getMediaDeviceList();\n});\n\nonUnmounted(() => {\n roomEngine.instance?.off(TUIRoomEvents.onError, onError);\n roomEngine.instance?.off(TUIRoomEvents.onUserVoiceVolumeChanged, onUserVoiceVolumeChanged);\n roomEngine.instance?.off(TUIRoomEvents.onUserNetworkQualityChanged, onUserNetworkQualityChanged);\n roomEngine.instance?.off(TUIRoomEvents.onKickedOutOfRoom, onKickedOutOfRoom);\n roomEngine.instance?.off(TUIRoomEvents.onSendMessageForUserDisableChanged, onSendMessageForUserDisableChanged);\n roomEngine.instance?.off(TUIRoomEvents.onUserSigExpired, onUserSigExpired);\n roomEngine.instance?.off(TUIRoomEvents.onKickedOffLine, onKickedOffLine);\n roomEngine.instance?.off(TUIRoomEvents.onAllUserCameraDisableChanged, onAllUserCameraDisableChanged);\n roomEngine.instance?.off(TUIRoomEvents.onAllUserMicrophoneDisableChanged, onAllUserMicrophoneDisableChanged);\n roomEngine.instance?.off(TUIRoomEvents.onSendMessageForAllUserDisableChanged, onSendMessageForAllUserDisableChanged);\n roomEngine.instance?.off(TUIRoomEvents.onDeviceChange, onDeviceChange);\n});\n\nwatch(sdkAppId, (val: number) => {\n if (val) {\n TUIRoomAegis.setSdkAppId(val);\n TUIRoomAegis.reportEvent({\n name: 'loaded',\n ext1: 'loaded-success',\n });\n }\n});\n\nreturn { __sfc: true,roomEngine, t, emit, logPrefix, basicStore, roomStore, chatStore, sdkAppId, showHeaderTool, localUser, roomContentRef, showRoomTool, roomRef, handleHideRoomTool, handleHideRoomToolDebounce, handleHideRoomToolThrottle, smallParam, handleRoomContentTap, dismissRoom, leaveRoom, closeMediaBeforeLeave, init, createRoom, enterRoom, getUserList, onUserVoiceVolumeChanged, onUserNetworkQualityChanged, resetStore, logOut, onDestroyRoom, onExitRoom, onError, onSendMessageForUserDisableChanged, onKickedOutOfRoom, onUserSigExpired, onKickedOffLine, handleAudioStateChange, handleVideoStateChange, handleMessageStateChange, onAllUserCameraDisableChanged, onAllUserMicrophoneDisableChanged, onSendMessageForAllUserDisableChanged, getMediaDeviceList, onDeviceChange, RoomHeader, RoomFooter, RoomSidebar, RoomContent, RoomSetting }\n}\n\n})","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&setup=true&lang=ts&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&setup=true&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=b73b8d2e&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&setup=true&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&setup=true&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=b73b8d2e&prod&lang=css&\"\nimport style1 from \"./index.vue?vue&type=style&index=1&id=b73b8d2e&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"b73b8d2e\",\n null\n \n)\n\nexport default component.exports","\n \n\n\n\n\n\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./room.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./room.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./room.vue?vue&type=template&id=225f8316&\"\nimport script from \"./room.vue?vue&type=script&lang=js&\"\nexport * from \"./room.vue?vue&type=script&lang=js&\"\nimport style0 from \"./room.vue?vue&type=style&index=0&id=225f8316&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports"],"names":["render","_vm","this","_c","_self","ref","on","handleLogOut","onCreateRoom","onEnterRoom","onExitRoom","onDestroyRoom","onKickedOutOfRoom","onKickedOffLine","onUserSigExpired","staticRenderFns","bind","fn","thisArg","apply","arguments","toString","Object","prototype","getPrototypeOf","kindOf","cache","thing","str","call","slice","toLowerCase","create","kindOfTest","type","typeOfTest","isArray","Array","isUndefined","isBuffer","val","constructor","isFunction","isArrayBuffer","isArrayBufferView","result","ArrayBuffer","isView","buffer","isString","isNumber","isObject","isBoolean","isPlainObject","Symbol","toStringTag","iterator","isDate","isFile","isBlob","isFileList","isStream","pipe","isFormData","kind","FormData","append","isURLSearchParams","trim","replace","forEach","obj","allOwnKeys","i","l","length","keys","getOwnPropertyNames","len","key","findKey","_key","_global","globalThis","self","window","global","isContextDefined","context","merge","caseless","assignValue","targetKey","extend","a","b","stripBOM","content","charCodeAt","inherits","superConstructor","props","descriptors","defineProperty","value","assign","toFlatObject","sourceObj","destObj","filter","propFilter","prop","merged","endsWith","searchString","position","String","undefined","lastIndex","indexOf","toArray","arr","isTypedArray","TypedArray","Uint8Array","forEachEntry","generator","next","done","pair","matchAll","regExp","matches","exec","push","isHTMLForm","toCamelCase","m","p1","p2","toUpperCase","hasOwnProperty","isRegExp","reduceDescriptors","reducer","getOwnPropertyDescriptors","reducedDescriptors","descriptor","name","ret","defineProperties","freezeMethods","enumerable","writable","set","Error","toObjectSet","arrayOrString","delimiter","define","split","noop","toFiniteNumber","defaultValue","Number","isFinite","ALPHA","DIGIT","ALPHABET","ALPHA_DIGIT","generateString","size","alphabet","Math","random","isSpecCompliantForm","toJSONObject","stack","visit","source","target","reducedValue","isAsyncFn","isThenable","then","catch","hasOwnProp","AxiosError","message","code","config","request","response","captureStackTrace","utils","toJSON","description","number","fileName","lineNumber","columnNumber","status","from","error","customProps","axiosError","cause","isVisitable","removeBrackets","renderKey","path","dots","concat","map","token","join","isFlatArray","some","predicates","test","toFormData","formData","options","TypeError","PlatformFormData","metaTokens","indexes","option","visitor","defaultVisitor","_Blob","Blob","useBlob","convertValue","toISOString","Buffer","JSON","stringify","el","index","exposedHelpers","build","pop","encode","charMap","encodeURIComponent","match","AxiosURLSearchParams","params","_pairs","encoder","_encode","buildURL","url","serializeFn","serialize","serializedParams","hashmarkIndex","InterceptorManager","handlers","use","fulfilled","rejected","synchronous","runWhen","eject","id","clear","h","silentJSONParsing","forcedJSONParsing","clarifyTimeoutError","URLSearchParams","isStandardBrowserEnv","product","navigator","document","isStandardBrowserWebWorkerEnv","WorkerGlobalScope","importScripts","isBrowser","classes","protocols","toURLEncodedForm","data","platform","helpers","parsePropPath","arrayToObject","formDataToJSON","buildPath","isNumericKey","isLast","entries","stringifySafely","rawValue","parser","parse","e","defaults","transitional","transitionalDefaults","adapter","transformRequest","headers","contentType","getContentType","hasJSONContentType","isObjectPayload","setContentType","formSerializer","_FormData","env","transformResponse","JSONRequested","responseType","strictJSONParsing","timeout","xsrfCookieName","xsrfHeaderName","maxContentLength","maxBodyLength","validateStatus","common","method","ignoreDuplicateOf","rawHeaders","parsed","line","substring","$internals","normalizeHeader","header","normalizeValue","parseTokens","tokens","tokensRE","isValidHeaderName","matchHeaderValue","isHeaderNameFilter","formatHeader","w","char","buildAccessors","accessorName","methodName","arg1","arg2","arg3","configurable","AxiosHeaders","valueOrRewrite","rewrite","setHeader","_value","_header","_rewrite","lHeader","setHeaders","parseHeaders","get","has","matcher","delete","deleted","deleteHeader","normalize","format","normalized","targets","asStrings","static","first","computed","internals","accessors","defineAccessor","accessor","mapped","headerValue","transformData","fns","isCancel","__CANCEL__","CanceledError","settle","resolve","reject","floor","write","expires","domain","secure","cookie","Date","toGMTString","read","RegExp","decodeURIComponent","remove","now","isAbsoluteURL","combineURLs","baseURL","relativeURL","buildFullPath","requestedURL","msie","userAgent","urlParsingNode","createElement","originURL","resolveURL","href","setAttribute","protocol","host","search","hash","hostname","port","pathname","charAt","location","requestURL","parseProtocol","speedometer","samplesCount","min","bytes","timestamps","firstSampleTS","head","tail","chunkLength","startedAt","bytesCount","passed","round","progressEventReducer","listener","isDownloadStream","bytesNotified","_speedometer","loaded","total","lengthComputable","progressBytes","rate","inRange","progress","estimated","event","isXHRAdapterSupported","XMLHttpRequest","Promise","requestData","requestHeaders","onCanceled","cancelToken","unsubscribe","signal","removeEventListener","auth","username","password","unescape","btoa","fullPath","onloadend","responseHeaders","getAllResponseHeaders","responseData","responseText","statusText","err","open","paramsSerializer","onreadystatechange","readyState","responseURL","setTimeout","onabort","onerror","ontimeout","timeoutErrorMessage","xsrfValue","withCredentials","isURLSameOrigin","cookies","setRequestHeader","onDownloadProgress","addEventListener","onUploadProgress","upload","cancel","abort","subscribe","aborted","send","knownAdapters","http","httpAdapter","xhr","xhrAdapter","renderReason","reason","isResolvedHandle","getAdapter","adapters","nameOrAdapter","rejectedReasons","reasons","state","s","throwIfCancellationRequested","throwIfRequested","dispatchRequest","headersToObject","mergeConfig","config1","config2","getMergedValue","mergeDeepProperties","valueFromConfig2","defaultToConfig2","mergeDirectKeys","mergeMap","timeoutMessage","decompress","beforeRedirect","transport","httpAgent","httpsAgent","socketPath","responseEncoding","configValue","VERSION","validators","deprecatedWarnings","assertOptions","schema","allowUnknown","opt","validator","version","formatMessage","desc","opts","console","warn","Axios","instanceConfig","interceptors","configOrUrl","boolean","function","contextHeaders","requestInterceptorChain","synchronousRequestInterceptors","interceptor","unshift","responseInterceptorChain","promise","chain","newConfig","onFulfilled","onRejected","getUri","generateHTTPMethod","isForm","CancelToken","executor","resolvePromise","_listeners","onfulfilled","_resolve","splice","c","spread","callback","isAxiosError","payload","HttpStatusCode","Continue","SwitchingProtocols","Processing","EarlyHints","Ok","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlreadyReported","ImUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","Unused","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthorized","PaymentRequired","Forbidden","NotFound","MethodNotAllowed","NotAcceptable","ProxyAuthenticationRequired","RequestTimeout","Conflict","Gone","LengthRequired","PreconditionFailed","PayloadTooLarge","UriTooLong","UnsupportedMediaType","RangeNotSatisfiable","ExpectationFailed","ImATeapot","MisdirectedRequest","UnprocessableEntity","Locked","FailedDependency","TooEarly","UpgradeRequired","PreconditionRequired","TooManyRequests","RequestHeaderFieldsTooLarge","UnavailableForLegalReasons","InternalServerError","NotImplemented","BadGateway","ServiceUnavailable","GatewayTimeout","HttpVersionNotSupported","VariantAlsoNegotiates","InsufficientStorage","LoopDetected","NotExtended","NetworkAuthenticationRequired","createInstance","defaultConfig","instance","axios","Cancel","all","promises","formToJSON","default","_setup","_setupProxy","staticClass","attrs","RoomHeader","directives","rawName","showRoomTool","showHeaderTool","expression","logOut","RoomContent","handleRoomContentTap","RoomFooter","RoomSidebar","RoomSetting","SwitchCamera","SwitchMirror","RoomInfo","EndControl","stopMeeting","_v","_s","t","visible","class","isShowLeaveRoomDialog","currentDialogType","DialogType","BasicDialog","roomStore","isMaster","_e","$event","stopPropagation","dismissRoom","leaveRoom","TransferDialog","popup","showSideBar","scopedSlots","_u","staticStyle","searchName","domProps","composing","_l","filteredList","user","userId","handleShowMemberControl","Avatar","avatarUrl","userName","selectedUser","SvgIcon","hasNoData","proxy","transferAndLeave","useEndControl","useI18n","logPrefix","roomEngine","useGetRoomEngine","basicStore","useBasicStore","logger","useRoomStore","localUser","remoteAnchorList","storeToRefs","title","isSidebarOpen","sidebarName","showTransfer","searchUser","includes","toggleMangeMemberSidebar","setSidebarOpenStatus","setSidebarName","resetState","async","closeMediaBeforeLeave","hasAudioStream","closeLocalMicrophone","hasVideoStream","closeLocalCamera","handleClose","_t","_defineComponent","__name","setup","__props","__sfc","component","emits","emit","destroyRoom","exitRoom","changeUserRoleResponse","changeUserRole","userRole","TUIRole","exitRoomResponse","onRoomDismissed","roomId","eventInfo","ElMessageBox","customClass","confirmButtonText","appendTo","onUserRoleChanged","newName","getUserName","tipMessage","ElMessage","setLocalUser","setRemoteUserRole","setMasterUserId","isAnchor","isSpeakAfterTakingSeatMode","takeSeat","seatIndex","TUIRoomEngine","TUIRoomEvents","onUnmounted","off","Dialog","model","$$v","isMobile","EndControlH5","EndControlPC","handleSwitchCamera","backgroundSize","isFrontCamera","switchCamera","setIsFrontCamera","toogleMirrorStatus","trtcCloud","getTRTCCloud","setLocalRenderParams","mirrorType","isLocalStreamMirror","TRTCVideoMirrorType","rotation","TRTCVideoRotation","fillMode","TRTCVideoFillMode","setIsLocalStreamMirror","isShowRoomInfoTitle","toggleShowRoomInfoStatus","conferenceTitle","isShowRoomInfo","handleHiddenRoomInfo","masterUserName","roomType","onCopy","isWeChat","inviteLink","masterUserId","roomInfoRef","isFreeSpeakMode","origin","clipBoard","handleDocumentClick","contains","onMounted","IS_LOCAL","IS_OFFICIAL_DEMO","isUploadLoaded","isUploadDetailEvent","aegisId","projectName","aegis","script","src","getElementsByTagName","appendChild","onload","Aegis","uin","reportApiSpeed","reportAssetSpeed","spa","roomAegis","storedReportEventList","reportEvent","TUIRoomAegis","setSdkAppId","sdkAppId","eventName","ext1","eventDesc","uploadData","ext2","ext3","hasUploadedEventList","info","UserInfo","showHeaderInfo","$emit","Language","SwitchTheme","LayoutControl","streamNumber","handleClickLayoutIcon","showLayoutList","layout","LAYOUT","NINE_EQUAL_POINTS","handleClick","fill","item","RIGHT_SIDE_LIST","TOP_SIDE_LIST","layoutList","setLayout","Boolean","indexH5","indexPC","AudioControl","handleControlClick","VideoControl","ApplyControl","ChatControl","ManageMemberControl","MoreControl","IconButton","localStream","hasMore","showAudioSettingTab","isLocalAudioIconDisable","toggleMuteAudio","handleMore","AudioIcon","audioVolume","AudioSettingTab","showRequestOpenMicDialog","handleReject","handleAccept","useRoomEngine","isAudience","isMicrophoneDisableForAllUser","audioIconButtonRef","audioSettingRef","warningMessage","WARNING_MESSAGE","duration","MESSAGE_DURATION","setCanControlSelfAudio","microphoneList","getMicDevicesList","hasMicrophoneDevice","openLocalMicrophone","$el","requestOpenMicRequestId","onRequestReceived","requestAction","requestId","TUIRequestAction","responseRemoteRequest","agree","onRequestCancelled","iconName","isLocalVideoIconDisable","toggleMuteVideo","VideoSettingTab","showVideoSettingTab","showRequestOpenCameraDialog","isCameraDisableForAllUser","videoIconButtonRef","videoSettingRef","ICON_NAME","setCanControlSelfVideo","cameraList","getCameraDevicesList","hasCameraDevice","setLocalVideoView","view","streamType","TUIVideoStreamType","openLocalCamera","requestOpenCameraRequestId","chatStore","unReadCount","toggleChatSidebar","useChatStore","defineStore","messageList","isMessageDisableByAdmin","isCompleted","nextReqMessageId","getters","actions","updateMessageList","messageIds","ID","setMessageListInfo","updateUnReadCount","count","addHistoryMessages","filteredMessageList","sort","messageA","messageB","sequence","setSendMessageDisableChanged","isDisable","reset","MasterApplyControl","MemberApplyControl","ApplyOnSeat","toggleApplySpeech","hasApplyToAnchorUser","showApplyUserList","applyToAnchorList","hideApplyList","handleUserApply","denyAllUserApply","addApplyToAnchorUser","removeApplyToAnchorUser","applyUserId","userInfo","remoteUserObj","applyToAnchorRequestId","agreeUserOnStage","denyUserOnStage","applyUserList","inviteUserOnStage","takeUserOnSeatByAdmin","requestCallback","callbackInfo","requestCallbackType","TUIRequestCallbackType","removeInviteToAnchorUser","addInviteToAnchorUser","cancelInviteUserOnStage","inviteToAnchorRequestId","cancelRequest","kickUserOffStage","kickUserOffSeatByAdmin","onBeforeUnmount","useMasterApplyControl","masterApplyControlRef","masterApplyListRef","setShowApplyUserList","iconTitle","showMemberApplyAttention","hideApplyAttention","showInviteDialog","handleInvite","lang","isApplyingOnSeat","onSeat","leaveSeat","cancelSeatApplication","sendSeatApplication","onKickedOffSeat","watch","immediate","deep","More","showMore","showMoreContent","ContactControl","InviteControl","useControl","toggleInviteSidebar","isShowInviteTab","roomInvite","handleCloseInvite","visibleInviteContentList","copyLink","useRoomInvite","shareLink","isRoomLinkVisible","isElectron","isElectronEnv","urlConcatenation","schemeLink","inviteContentList","reactive","useRoomInviteControl","Index","inviteRef","toggleContactSidebar","isShowContactTab","roomContact","handleOnCloseContact","handleCloseContact","contactContentList","useRoomMoreHooks","groupNumber","email","useRoomMoreControl","contactRef","Map","handler","evt","bus","mitt","moreContentRef","userMoreControl","toggleMoreSidebar","MoreControlH5","MoreControlPc","useRoomFooter","ScreenShareControl","FullScreenControl","SettingControl","isSharing","screenShareDisabled","toggleScreenShare","showStopShareRegion","openStopConfirmDialog","ScreenShareStopped","dialogVisible","cancelStop","stopScreenShare","hasOtherScreenShare","btnStopRef","startScreenSharing","stopScreenSharing","screenCaptureStopped","oldVal","isFullScreen","toggleScreen","exitFullScreen","isVue27","roomContainer","body","setFullScreen","getElementById","handleFullScreenChange","showSettingDialog","handleShowSettingDialog","setShowSettingDialog","indexPc","Chat","ManageMember","ChatEditor","MessageList","refInFor","flow","nick","MessageText","text","handleTextMessageShowContext","emojiUrl","emojiMap","emojiList","decodeMessageText","renderDom","temp","left","right","emojiKey","useMessageList","historyMessageList","messageAimId","messageBottomEl","loadMore","isScrollNotAtBottom","isScrollToTop","handleMessageListScroll","messageContainer","bottom","scrollHeight","scrollTop","clientHeight","handleGetHistoryMessageList","tim","getTIM","imResponse","getMessageList","conversationID","nextReqMessageID","middleReqMessageId","currentMessageList","getIMMessageList","conversationData","newMessageList","oldMessageList","nextTick","lastMessage","oldLastMessage","scrollIntoView","onReceiveTextMessage","messageId","filterCurrentMessageList","cannotSendMessage","emoji","handleChooseEmoji","sendMsg","_k","keyCode","sendMessage","togglePopover","childrenItem","childrenIndex","chooseEmoji","emojiListRef","itemName","emojiInfo","closePopover","useChatEditor","isMessageDisableForAllUser","editorInputEle","isEmojiToolbarVisible","msg","sendTextMessage","messageText","emojiName","focus","ChatEditorH5","ChatEditorPC","userNumber","userList","MemberItem","toggleManageMember","ManageControlType","AUDIO","audioManageInfo","VIDEO","videoManageInfo","showManageAllUserDialog","doToggleManageMember","dialogActionInfo","dialogTitleInfo","handleMemberItemClick","setMemberItemRef","MemberInfo","setMemberInfoRef","showMemberControl","MemberControl","setMemberControlRef","handleCloseControl","isMe","showStateIcon","MicOn","MicOff","CameraOn","CameraOff","isUserApplyingToAnchor","MicOffDisabled","CameraOffDisabled","defaultAvatar","modifiers","controlList","func","isFreeSpeechMode","isSpeakAfterTakingSeat","requestStageTitle","isInvitingUserToAnchor","toggleInviteUserOnStage","toggleInviteStage","makeOffStage","agreeOnStage","denyOnStage","audioControlTitle","isRequestingUserOpenMic","audioControl","muteUserAudio","videoControlTitle","isRequestingUserOpenCamera","videoControl","muteUserVideo","chatControlTitle","isChatMutedByMaster","forbidChat","disableUserChat","kickUser","kickOffUser","controlRelationObj","freeSpeech","applySpeechAndAnchor","applySpeechAndIsApplyingToAnchor","applySpeechAndAudience","closeRemoteDeviceByAdmin","device","TUIMediaDevice","requestUserOpenMicRequestId","setRequestUserOpenMic","isRequesting","openRemoteDeviceByAdmin","requestUserOpenCameraRequestId","setRequestUserOpenCamera","currentState","setMuteUserChat","disableSendingMessageByAdmin","kickRemoteUserOutOfRoom","singleControl","handlePopUp","toggleClickMoreBtn","ArrowBorderDown","showMoreControl","dropdownClass","handleMouseLeave","dropdown","dropdownRectBottom","getBoundingClientRect","roomContainerHeight","offsetHeight","control","list","MemberControlH5","MemberControlPC","useMemberItem","handleMouseEnter","memberItemEl","memberInfoEl","MemberControlEl","useIndex","currentControlType","toggleAllAudio","toggleAllVideo","showApplyUserLit","microphoneDisableState","disableDeviceForAllUserByAdmin","setMicrophoneDisableState","cameraDisableState","setCameraDisableState","useSideBar","sidebarTitle","Drawer","RoomInvite","RoomMore","StreamContainer","handleTouchStart","handleTouchEnd","streamContainerClass","LARGE_SMALL_WINDOW","enlargeStream","StreamRegion","onlyVideoStreamList","isFirstPageInSixPointLayout","stream","showStreamList","enlargeDomId","totalPageNumber","isActiveDot","playRegionDomId","showVoiceBorder","hasScreenStream","showMasterIcon","isScreenStream","streamRegionRef","isInnerScene","userIdEl","setRemoteVideoView","startPlayRemoteVideo","setRemoteRenderParams","TRTCVideoStreamType","loading","changeLargeStream","centerUserInfoRef","streamTypeToFetch","kScreenStream","kCameraStream","defaultStreamType","localUserId","stopPlayRemoteVideo","isVisible","oldHasVideoStream","oldIsVisible","oldHasScreenStream","StreamRegionH5","StreamRegionPc","useStreamContainer","onRemoteUserEnterRoom","addRemoteUser","onRemoteUserLeaveRoom","removeRemoteUser","onSeatListChanged","seatList","seatedList","leftList","updateOnSeatList","onUserAudioStateChanged","hasAudio","updateUserAudioState","TUIChangeReason","isDefaultOpenCamera","isDefaultOpenMicrophone","previewDom","currentCameraId","setCurrentCameraId","deviceId","setCurrentCameraDevice","speakerList","getSpeakerDevicesList","currentMicrophoneId","setCurrentMicrophoneId","currentSpeakerId","setCurrentSpeakerId","setCurrentMicDevice","streamContainerRef","streamList","remoteStreamObj","currentSpeakerUserId","startX","startY","currentPageIndex","equalPointIndex","ceil","totalPageOfVideoStream","handleTurnPageLeft","handleTurnPageRight","enlargedContainerRef","streamListRef","containerClass","changedTouches","pageX","pageY","moveDirectionX","moveDirectionY","abs","onUserVideoStateChanged","hasVideo","updateUserVideoState","handleLargestVoice","userVolumeList","lastSpeakerUserVolumeInfo","find","volume","largestVolume","largestUserId","handleLargestVoiceThrottle","throttle","onUserVoiceVolumeChanged","showIconControl","style","enlargedStreamStyle","showSideList","streamStyle","handleEnlargeStreamRegion","arrowClass","handleClickIcon","showTurnPageControl","showTurnPageLeftArrow","showTurnPageRightArrow","width","height","remoteStreamList","handleStreamContainerScroll","streamIdList","currentStreamId","updateUserStreamVisible","handleNineEqualPointsLayout","arrowDirection","handleRightSideListLayout","handleTopSideListLayout","top","containerWidth","offsetWidth","containerHeight","scaleWidth","scaleHeight","roomContainerElement","handleLayout","handleResize","setHasOtherScreenShare","handleLargeStreamLeave","leftUserIdList","childDom","children","finalIndex","firstChildHeight","normalChildHeight","streamListRefEnd","firstChildWidth","normalChildWidth","scrollLeft","streamUserIdList","handleStreamContainerScrollDebounce","debounce","StreamContainerH5","StreamContainerPc","settingTabsTitleList","activeSettingTab","handleUpdateActiveTab","label","SettingMode","DETAIL","handleCloseSettingDialog","tabTitle","setActiveSettingTab","expose","init","createRoom","enterRoom","resetStore","roomContentRef","roomRef","handleHideRoomTool","handleHideRoomToolDebounce","handleHideRoomToolThrottle","smallParam","TRTCVideoEncParam","setBasicInfo","userSig","roomName","roomMode","roomParam","setRoomId","roomParams","TUIRoomType","speechMode","TUISpeechMode","setDefaultStreamRecvMode","enableSmallVideoStream","roomInfo","setRoomInfo","getUserList","setRoomParam","userInfoList","setUserList","videoResolution","TRTCVideoResolution","videoFps","videoBitrate","defaultTheme","storageCurrentTheme","localStorage","getItem","setDefaultTheme","setAudioVolume","onUserNetworkQualityChanged","setLocalQuality","userNetworkList","onError","onSendMessageForUserDisableChanged","notice","TUIKickedOutOfRoomReason","handleAudioStateChange","isDisableAudio","handleVideoStateChange","isDisableVideo","handleMessageStateChange","isDisableMessage","onAllUserCameraDisableChanged","setDisableCameraForAllUserByAdmin","onAllUserMicrophoneDisableChanged","setDisableMicrophoneForAllUserByAdmin","onSendMessageForAllUserDisableChanged","setDisableMessageAllUserByAdmin","getMediaDeviceList","setCameraList","setMicrophoneList","setSpeakerList","cameraInfo","getCurrentCameraDevice","micInfo","getCurrentMicDevice","speakerInfo","getCurrentSpeakerDevice","onDeviceChange","stateList","TRTCDeviceType","deviceList","TRTCDeviceState","TUIRoomRef","router","to","components","RoomContainer","query","action","MessageBox","sessionStorage","methods","alert","roomNo"],"sourceRoot":""}
\ No newline at end of file
diff --git a/Miniapp-H5/dist/js/about.52ae78e0.js.map b/Miniapp-H5/dist/js/about.52ae78e0.js.map
deleted file mode 100644
index e059311..0000000
--- a/Miniapp-H5/dist/js/about.52ae78e0.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"js/about.52ae78e0.js","mappings":"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AAQ,mBACR,OAAQ,mBACR,OAAQ,mBACR,MAAO,mBACP,OAAQ,mBACR,OAAQ,mBACR,OAAQ,mBACR,OAAQ,mBACR,OAAQ,mBACR,OAAQ,mBACR,OAAQ,mBACR,OAAQ,mBACR,MAAO,mBACP,OAAQ,mBACR,OAAQ,mBACR,OAAQ,mBACR,OAAQ,mBACR,OAAQ,mBACR,OAAQ,mBACR,OAAQ,mBACR,OAAQ,mBACR,OAAQ,mBACR,OAAQ,mBACR,OAAQ,mBACR,OAAQ,mBACR,OAAQ,mBACR,OAAQ,mBACR,OAAQ,mBACR,OAAQ,mBACR,OAAQ,mBACR,QAAS,mBACT,OAAQ,mBACR,OAAQ,mBACR,OAAQ,oBAEGC,GAAY,CACvB,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,MACA,MACA,OACA,OACA,OACA,OACA,OACA,OACA,MACA,OACA,OACA,MACA,OACA,MACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,MACA,QACA,OACA,OACA,MACA,OACA,OACA,OACA,OACA,QACA,OACA,OACA,OACA,OACA,MACA,OACA,OACA,MACA,MACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,MACA,OACA,OACA,OACA,QACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,QACA,QACA,QACA,QACA,MACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,QACA,QACA,OACA,OACA,QACA,OACA,QACA,OACA,QACA,QACA,OACA,OACA,OACA,OACA,OACA,QACA,OACA,OACA,OACA,OACA,QACA,OACA,QACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,QAII,SAAUC,GAAkB9gB,GAChC,MAAM+gB,EAAY,GAMlB,IAAIC,EAAOhhB,EACPihB,GAAQ,EACRC,GAAS,EACb,MAAgB,KAATF,EAGL,OAFAC,EAAOD,EAAK/9B,QAAQ,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","sources":["webpack://room-uikit-web-vue2/./src/views/room.vue","webpack://room-uikit-web-vue2/./node_modules/axios/lib/helpers/bind.js","webpack://room-uikit-web-vue2/./node_modules/axios/lib/utils.js","webpack://room-uikit-web-vue2/./node_modules/axios/lib/core/AxiosError.js","webpack://room-uikit-web-vue2/./node_modules/axios/lib/helpers/null.js","webpack://room-uikit-web-vue2/./node_modules/axios/lib/helpers/toFormData.js","webpack://room-uikit-web-vue2/./node_modules/axios/lib/helpers/AxiosURLSearchParams.js","webpack://room-uikit-web-vue2/./node_modules/axios/lib/helpers/buildURL.js","webpack://room-uikit-web-vue2/./node_modules/axios/lib/core/InterceptorManager.js","webpack://room-uikit-web-vue2/./node_modules/axios/lib/defaults/transitional.js","webpack://room-uikit-web-vue2/./node_modules/axios/lib/platform/browser/classes/URLSearchParams.js","webpack://room-uikit-web-vue2/./node_modules/axios/lib/platform/browser/classes/FormData.js","webpack://room-uikit-web-vue2/./node_modules/axios/lib/platform/browser/classes/Blob.js","webpack://room-uikit-web-vue2/./node_modules/axios/lib/platform/browser/index.js","webpack://room-uikit-web-vue2/./node_modules/axios/lib/helpers/toURLEncodedForm.js","webpack://room-uikit-web-vue2/./node_modules/axios/lib/helpers/formDataToJSON.js","webpack://room-uikit-web-vue2/./node_modules/axios/lib/defaults/index.js","webpack://room-uikit-web-vue2/./node_modules/axios/lib/helpers/parseHeaders.js","webpack://room-uikit-web-vue2/./node_modules/axios/lib/core/AxiosHeaders.js","webpack://room-uikit-web-vue2/./node_modules/axios/lib/core/transformData.js","webpack://room-uikit-web-vue2/./node_modules/axios/lib/cancel/isCancel.js","webpack://room-uikit-web-vue2/./node_modules/axios/lib/cancel/CanceledError.js","webpack://room-uikit-web-vue2/./node_modules/axios/lib/core/settle.js","webpack://room-uikit-web-vue2/./node_modules/axios/lib/helpers/cookies.js","webpack://room-uikit-web-vue2/./node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack://room-uikit-web-vue2/./node_modules/axios/lib/helpers/combineURLs.js","webpack://room-uikit-web-vue2/./node_modules/axios/lib/core/buildFullPath.js","webpack://room-uikit-web-vue2/./node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack://room-uikit-web-vue2/./node_modules/axios/lib/helpers/parseProtocol.js","webpack://room-uikit-web-vue2/./node_modules/axios/lib/helpers/speedometer.js","webpack://room-uikit-web-vue2/./node_modules/axios/lib/adapters/xhr.js","webpack://room-uikit-web-vue2/./node_modules/axios/lib/adapters/adapters.js","webpack://room-uikit-web-vue2/./node_modules/axios/lib/core/dispatchRequest.js","webpack://room-uikit-web-vue2/./node_modules/axios/lib/core/mergeConfig.js","webpack://room-uikit-web-vue2/./node_modules/axios/lib/env/data.js","webpack://room-uikit-web-vue2/./node_modules/axios/lib/helpers/validator.js","webpack://room-uikit-web-vue2/./node_modules/axios/lib/core/Axios.js","webpack://room-uikit-web-vue2/./node_modules/axios/lib/cancel/CancelToken.js","webpack://room-uikit-web-vue2/./node_modules/axios/lib/helpers/spread.js","webpack://room-uikit-web-vue2/./node_modules/axios/lib/helpers/isAxiosError.js","webpack://room-uikit-web-vue2/./node_modules/axios/lib/helpers/HttpStatusCode.js","webpack://room-uikit-web-vue2/./node_modules/axios/lib/axios.js","webpack://room-uikit-web-vue2/./src/TUIRoom/index.vue","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomHeader/roomHeaderH5/index.vue","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomFooter/EndControl/EndControlH5.vue","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomFooter/EndControl/useEndControlHooks.ts","webpack://room-uikit-web-vue2/./src/TUIRoom/components/common/PopUpH5.vue","webpack://room-uikit-web-vue2/./src/TUIRoom/components/common/PopUpH5.vue?cbb0","webpack://room-uikit-web-vue2/./src/TUIRoom/components/common/PopUpH5.vue?227e","webpack://room-uikit-web-vue2/./src/TUIRoom/components/common/PopUpH5.vue?80ea","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomFooter/EndControl/EndControlH5.vue?c6d6","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomFooter/EndControl/EndControlH5.vue?bdbb","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomFooter/EndControl/EndControlH5.vue?8363","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomFooter/EndControl/EndControlPC.vue","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomFooter/EndControl/EndControlPC.vue?c6ed","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomFooter/EndControl/EndControlPC.vue?f3fd","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomFooter/EndControl/EndControlPC.vue?15c9","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomFooter/EndControl/index.ts","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomHeader/roomHeaderH5/SwitchCamera.vue","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomHeader/roomHeaderH5/SwitchCamera.vue?30b2","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomHeader/roomHeaderH5/SwitchCamera.vue?7684","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomHeader/roomHeaderH5/SwitchCamera.vue?310f","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomHeader/roomHeaderH5/SwitchMirror.vue","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomHeader/roomHeaderH5/SwitchMirror.vue?4721","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomHeader/roomHeaderH5/SwitchMirror.vue?01d4","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomHeader/roomHeaderH5/SwitchMirror.vue?e768","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomHeader/roomHeaderH5/RoomInfo.vue","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomHeader/roomHeaderH5/RoomInfo.vue?bd7b","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomHeader/roomHeaderH5/RoomInfo.vue?7cc7","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomHeader/roomHeaderH5/RoomInfo.vue?e269","webpack://room-uikit-web-vue2/./src/TUIRoom/utils/aegis/config.ts","webpack://room-uikit-web-vue2/./src/TUIRoom/utils/aegis/index.ts","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomHeader/roomHeaderH5/index.vue?7171","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomHeader/roomHeaderH5/index.vue?4119","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomHeader/roomHeaderH5/index.vue?d478","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomHeader/roomHeaderPC/index.vue","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomHeader/roomHeaderPC/LayoutControl.vue","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomHeader/roomHeaderPC/LayoutControl.vue?49ca","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomHeader/roomHeaderPC/LayoutControl.vue?387e","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomHeader/roomHeaderPC/LayoutControl.vue?9b7f","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomHeader/roomHeaderPC/index.vue?2d44","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomHeader/roomHeaderPC/index.vue?812a","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomHeader/roomHeaderPC/index.vue?da03","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomHeader/index/index.ts","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomFooter/index/indexH5.vue","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomFooter/AudioControl.vue","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomFooter/AudioControl.vue?ad29","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomFooter/AudioControl.vue?60eb","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomFooter/AudioControl.vue?7bf9","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomFooter/VideoControl.vue","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomFooter/VideoControl.vue?a6d4","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomFooter/VideoControl.vue?34b3","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomFooter/VideoControl.vue?1008","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomFooter/ManageMemberControl.vue","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomFooter/ManageMemberControl.vue?f702","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomFooter/ManageMemberControl.vue?b23f","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomFooter/ManageMemberControl.vue?150f","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomFooter/ChatControl.vue","webpack://room-uikit-web-vue2/./src/TUIRoom/stores/chat.ts","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomFooter/ChatControl.vue?f1c1","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomFooter/ChatControl.vue?d455","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomFooter/ChatControl.vue?b76c","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomFooter/ApplyControl/Index.vue","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomFooter/ApplyControl/MasterApplyControl.vue","webpack://room-uikit-web-vue2/./src/TUIRoom/hooks/useMasterApplyControl.ts","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomFooter/ApplyControl/MasterApplyControl.vue?c0da","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomFooter/ApplyControl/MasterApplyControl.vue?2ae0","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomFooter/ApplyControl/MasterApplyControl.vue?90ba","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomFooter/ApplyControl/MemberApplyControl.vue","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomFooter/ApplyControl/MemberApplyControl.vue?24af","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomFooter/ApplyControl/MemberApplyControl.vue?8150","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomFooter/ApplyControl/MemberApplyControl.vue?a2fb","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomFooter/ApplyControl/Index.vue?ae79","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomFooter/ApplyControl/Index.vue?3ac1","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomFooter/ApplyControl/Index.vue?ab68","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomFooter/MoreControl/MoreControlH5.vue","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomFooter/MoreControl/useMoreControlHooks.ts","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomFooter/InviteControl.vue","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomInvite/indexH5.vue","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomInvite/useRoomInviteHooks.ts","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomInvite/indexH5.vue?f157","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomInvite/indexH5.vue?b2f8","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomInvite/indexH5.vue?7415","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomInvite/indexPC.vue","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomInvite/indexPC.vue?1fe9","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomInvite/indexPC.vue?9aa3","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomInvite/indexPC.vue?e5a1","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomInvite/index.ts","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomFooter/InviteControl.vue?8842","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomFooter/InviteControl.vue?90fd","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomFooter/InviteControl.vue?05bb","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomFooter/ContactControl.vue","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomMore/indexH5.vue","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomMore/useRoomMoreHooks.ts","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomMore/indexH5.vue?c6f5","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomMore/indexH5.vue?f3ec","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomMore/indexH5.vue?4a59","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomMore/indexPC.vue","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomMore/indexPC.vue?cc4a","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomMore/indexPC.vue?f328","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomMore/indexPC.vue?2318","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomMore/index.ts","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomFooter/ContactControl.vue?a4fc","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomFooter/ContactControl.vue?0911","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomFooter/ContactControl.vue?5a05","webpack://room-uikit-web-vue2/../src/index.ts","webpack://room-uikit-web-vue2/./src/TUIRoom/hooks/useMitt.ts","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomFooter/MoreControl/MoreControlH5.vue?a86e","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomFooter/MoreControl/MoreControlH5.vue?8811","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomFooter/MoreControl/MoreControlH5.vue?eae2","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomFooter/MoreControl/MoreControlPC.vue","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomFooter/MoreControl/MoreControlPC.vue?1a27","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomFooter/MoreControl/MoreControlPC.vue?3eb9","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomFooter/MoreControl/MoreControlPC.vue?986f","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomFooter/MoreControl/index.ts","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomFooter/index/useRoomFooterHooks.ts","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomFooter/index/indexH5.vue?eb7d","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomFooter/index/indexH5.vue?a790","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomFooter/index/indexH5.vue?e2f1","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomFooter/index/indexPC.vue","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomFooter/ScreenShareControl/Index.vue","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomFooter/ScreenShareControl/Index.vue?f490","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomFooter/ScreenShareControl/Index.vue?9bfe","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomFooter/ScreenShareControl/Index.vue?8e31","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomFooter/FullScreenControl.vue","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomFooter/FullScreenControl.vue?7e98","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomFooter/FullScreenControl.vue?a2f5","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomFooter/FullScreenControl.vue?9d67","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomFooter/SettingControl.vue","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomFooter/SettingControl.vue?83c7","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomFooter/SettingControl.vue?13dc","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomFooter/SettingControl.vue?2fa0","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomFooter/index/indexPC.vue?2016","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomFooter/index/indexPC.vue?2381","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomFooter/index/indexPC.vue?5fb4","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomFooter/index/index.ts","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomSidebar/indexH5.vue","webpack://room-uikit-web-vue2/./src/TUIRoom/components/Chat/index.vue","webpack://room-uikit-web-vue2/./src/TUIRoom/components/Chat/MessageList/MessageListPC.vue","webpack://room-uikit-web-vue2/./src/TUIRoom/components/Chat/MessageTypes/MessageText.vue","webpack://room-uikit-web-vue2/./src/TUIRoom/components/Chat/util.ts","webpack://room-uikit-web-vue2/./src/TUIRoom/components/Chat/MessageTypes/MessageText.vue?08b9","webpack://room-uikit-web-vue2/./src/TUIRoom/components/Chat/MessageTypes/MessageText.vue?387f","webpack://room-uikit-web-vue2/./src/TUIRoom/components/Chat/MessageTypes/MessageText.vue?40ec","webpack://room-uikit-web-vue2/./src/TUIRoom/components/Chat/useMessageListHook.ts","webpack://room-uikit-web-vue2/./src/TUIRoom/components/Chat/MessageList/MessageListPC.vue?aee0","webpack://room-uikit-web-vue2/./src/TUIRoom/components/Chat/MessageList/MessageListPC.vue?991a","webpack://room-uikit-web-vue2/./src/TUIRoom/components/Chat/MessageList/MessageListPC.vue?0030","webpack://room-uikit-web-vue2/./src/TUIRoom/components/Chat/MessageList/index.ts","webpack://room-uikit-web-vue2/./src/TUIRoom/components/Chat/ChatEditor/ChatEditorH5.vue","webpack://room-uikit-web-vue2/./src/TUIRoom/components/Chat/EditorTools/emojiPC.vue","webpack://room-uikit-web-vue2/./src/TUIRoom/components/Chat/EditorTools/emojiPC.vue?089d","webpack://room-uikit-web-vue2/./src/TUIRoom/components/Chat/EditorTools/emojiPC.vue?ae8b","webpack://room-uikit-web-vue2/./src/TUIRoom/components/Chat/EditorTools/emojiPC.vue?be5c","webpack://room-uikit-web-vue2/./src/TUIRoom/components/Chat/EditorTools/index.ts","webpack://room-uikit-web-vue2/./src/TUIRoom/components/Chat/ChatEditor/useChatEditor.ts","webpack://room-uikit-web-vue2/./src/TUIRoom/components/Chat/ChatEditor/ChatEditorH5.vue?bde9","webpack://room-uikit-web-vue2/./src/TUIRoom/components/Chat/ChatEditor/ChatEditorH5.vue?01f5","webpack://room-uikit-web-vue2/./src/TUIRoom/components/Chat/ChatEditor/ChatEditorH5.vue?17d6","webpack://room-uikit-web-vue2/./src/TUIRoom/components/Chat/ChatEditor/ChatEditorPC.vue","webpack://room-uikit-web-vue2/./src/TUIRoom/components/Chat/ChatEditor/ChatEditorPC.vue?4752","webpack://room-uikit-web-vue2/./src/TUIRoom/components/Chat/ChatEditor/ChatEditorPC.vue?bdf9","webpack://room-uikit-web-vue2/./src/TUIRoom/components/Chat/ChatEditor/ChatEditorPC.vue?e234","webpack://room-uikit-web-vue2/./src/TUIRoom/components/Chat/ChatEditor/index.ts","webpack://room-uikit-web-vue2/./src/TUIRoom/components/Chat/index.vue?0984","webpack://room-uikit-web-vue2/./src/TUIRoom/components/Chat/index.vue?7024","webpack://room-uikit-web-vue2/./src/TUIRoom/components/Chat/index.vue?f5be","webpack://room-uikit-web-vue2/./src/TUIRoom/components/ManageMember/indexH5.vue","webpack://room-uikit-web-vue2/./src/TUIRoom/components/ManageMember/MemberItem/indexH5.vue","webpack://room-uikit-web-vue2/./src/TUIRoom/components/ManageMember/MemberItemCommon/MemberInfo.vue","webpack://room-uikit-web-vue2/./src/TUIRoom/components/ManageMember/MemberItemCommon/MemberInfo.vue?7492","webpack://room-uikit-web-vue2/./src/TUIRoom/components/ManageMember/MemberItemCommon/MemberInfo.vue?0cc4","webpack://room-uikit-web-vue2/./src/TUIRoom/components/ManageMember/MemberItemCommon/MemberInfo.vue?e7ae","webpack://room-uikit-web-vue2/./src/TUIRoom/components/ManageMember/MemberControl/MemberControlH5.vue","webpack://room-uikit-web-vue2/./src/TUIRoom/components/ManageMember/MemberControl/MemberControlH5.vue?59b9","webpack://room-uikit-web-vue2/./src/TUIRoom/components/ManageMember/MemberControl/MemberControlH5.vue?0f23","webpack://room-uikit-web-vue2/./src/TUIRoom/components/ManageMember/MemberControl/MemberControlH5.vue?d177","webpack://room-uikit-web-vue2/./src/TUIRoom/components/ManageMember/MemberControl/MemberControlPC.vue","webpack://room-uikit-web-vue2/./src/TUIRoom/components/ManageMember/MemberControl/MemberControlPC.vue?b213","webpack://room-uikit-web-vue2/./src/TUIRoom/components/ManageMember/MemberControl/MemberControlPC.vue?fdce","webpack://room-uikit-web-vue2/./src/TUIRoom/components/ManageMember/MemberControl/MemberControlPC.vue?6c23","webpack://room-uikit-web-vue2/./src/TUIRoom/components/ManageMember/MemberControl/index.ts","webpack://room-uikit-web-vue2/./src/TUIRoom/components/ManageMember/MemberItem/useMemberItemHooks.ts","webpack://room-uikit-web-vue2/./src/TUIRoom/components/ManageMember/MemberItem/indexH5.vue?afd5","webpack://room-uikit-web-vue2/./src/TUIRoom/components/ManageMember/MemberItem/indexH5.vue?141f","webpack://room-uikit-web-vue2/./src/TUIRoom/components/ManageMember/MemberItem/indexH5.vue?a143","webpack://room-uikit-web-vue2/./src/TUIRoom/components/ManageMember/MemberItem/indexPC.vue","webpack://room-uikit-web-vue2/./src/TUIRoom/components/ManageMember/MemberItem/indexPC.vue?84bc","webpack://room-uikit-web-vue2/./src/TUIRoom/components/ManageMember/MemberItem/indexPC.vue?6350","webpack://room-uikit-web-vue2/./src/TUIRoom/components/ManageMember/MemberItem/indexPC.vue?75ec","webpack://room-uikit-web-vue2/./src/TUIRoom/components/ManageMember/MemberItem/index.ts","webpack://room-uikit-web-vue2/./src/TUIRoom/components/ManageMember/useIndexHooks.ts","webpack://room-uikit-web-vue2/./src/TUIRoom/components/ManageMember/indexH5.vue?fe5a","webpack://room-uikit-web-vue2/./src/TUIRoom/components/ManageMember/indexH5.vue?e9a0","webpack://room-uikit-web-vue2/./src/TUIRoom/components/ManageMember/indexH5.vue?f007","webpack://room-uikit-web-vue2/./src/TUIRoom/components/ManageMember/indexPC.vue","webpack://room-uikit-web-vue2/./src/TUIRoom/components/ManageMember/indexPC.vue?a28f","webpack://room-uikit-web-vue2/./src/TUIRoom/components/ManageMember/indexPC.vue?93c0","webpack://room-uikit-web-vue2/./src/TUIRoom/components/ManageMember/indexPC.vue?ae45","webpack://room-uikit-web-vue2/./src/TUIRoom/components/ManageMember/index.ts","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomSidebar/useSideBarHooks.ts","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomSidebar/indexH5.vue?f836","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomSidebar/indexH5.vue?a74f","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomSidebar/indexH5.vue?6e7f","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomSidebar/indexPC.vue","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomSidebar/indexPC.vue?0b6b","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomSidebar/indexPC.vue?21a5","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomSidebar/indexPC.vue?5cb4","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomSidebar/index.ts","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomContent/index.vue","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomContent/StreamContainer/StreamContainerH5.vue","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomContent/StreamRegion/StreamRegionH5.vue","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomContent/StreamRegion/StreamRegionH5.vue?f09a","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomContent/StreamRegion/StreamRegionH5.vue?778c","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomContent/StreamRegion/StreamRegionH5.vue?1ed6","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomContent/StreamRegion/StreamRegionPC.vue","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomContent/StreamRegion/StreamRegionPC.vue?cdda","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomContent/StreamRegion/StreamRegionPC.vue?5158","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomContent/StreamRegion/StreamRegionPC.vue?4bf6","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomContent/StreamRegion/index.ts","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomContent/StreamContainer/useStreamContainerHooks.ts","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomContent/StreamContainer/StreamContainerH5.vue?a31d","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomContent/StreamContainer/StreamContainerH5.vue?8cfa","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomContent/StreamContainer/StreamContainerH5.vue?314a","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomContent/StreamContainer/StreamContainerPC.vue","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomContent/StreamContainer/StreamContainerPC.vue?8b21","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomContent/StreamContainer/StreamContainerPC.vue?fa3f","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomContent/StreamContainer/StreamContainerPC.vue?d1ca","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomContent/StreamContainer/index.ts","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomContent/index.vue?d860","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomContent/index.vue?5dec","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomContent/index.vue?cefb","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomSetting/index.vue","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomSetting/index.vue?f674","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomSetting/index.vue?4dca","webpack://room-uikit-web-vue2/./src/TUIRoom/components/RoomSetting/index.vue?0aa0","webpack://room-uikit-web-vue2/./src/TUIRoom/index.vue?79c8","webpack://room-uikit-web-vue2/./src/TUIRoom/index.vue?6095","webpack://room-uikit-web-vue2/./src/TUIRoom/index.vue?77e3","webpack://room-uikit-web-vue2/src/views/room.vue","webpack://room-uikit-web-vue2/./src/views/room.vue?6a10","webpack://room-uikit-web-vue2/./src/views/room.vue?14d2"],"sourcesContent":["var render = function render(){var _vm=this,_c=_vm._self._c;return _c('room-container',{ref:\"TUIRoomRef\",on:{\"on-log-out\":_vm.handleLogOut,\"on-create-room\":_vm.onCreateRoom,\"on-enter-room\":_vm.onEnterRoom,\"on-exit-room\":_vm.onExitRoom,\"on-destroy-room\":_vm.onDestroyRoom,\"on-kicked-out-of-room\":_vm.onKickedOutOfRoom,\"on-kick-off-line\":_vm.onKickedOffLine,\"on-user-sig-expired\":_vm.onUserSigExpired}})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","'use strict';\n\nexport default function bind(fn, thisArg) {\n return function wrap() {\n return fn.apply(thisArg, arguments);\n };\n}\n","'use strict';\n\nimport bind from './helpers/bind.js';\n\n// utils is a library of generic helper functions non-specific to axios\n\nconst {toString} = Object.prototype;\nconst {getPrototypeOf} = Object;\n\nconst kindOf = (cache => thing => {\n const str = toString.call(thing);\n return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n})(Object.create(null));\n\nconst kindOfTest = (type) => {\n type = type.toLowerCase();\n return (thing) => kindOf(thing) === type\n}\n\nconst typeOfTest = type => thing => typeof thing === type;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n *\n * @returns {boolean} True if value is an Array, otherwise false\n */\nconst {isArray} = Array;\n\n/**\n * Determine if a value is undefined\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nconst isUndefined = typeOfTest('undefined');\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && isFunction(val.constructor.isBuffer) && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nconst isArrayBuffer = kindOfTest('ArrayBuffer');\n\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n let result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a String, otherwise false\n */\nconst isString = typeOfTest('string');\n\n/**\n * Determine if a value is a Function\n *\n * @param {*} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nconst isFunction = typeOfTest('function');\n\n/**\n * Determine if a value is a Number\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Number, otherwise false\n */\nconst isNumber = typeOfTest('number');\n\n/**\n * Determine if a value is an Object\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an Object, otherwise false\n */\nconst isObject = (thing) => thing !== null && typeof thing === 'object';\n\n/**\n * Determine if a value is a Boolean\n *\n * @param {*} thing The value to test\n * @returns {boolean} True if value is a Boolean, otherwise false\n */\nconst isBoolean = thing => thing === true || thing === false;\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a plain Object, otherwise false\n */\nconst isPlainObject = (val) => {\n if (kindOf(val) !== 'object') {\n return false;\n }\n\n const prototype = getPrototypeOf(val);\n return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in val) && !(Symbol.iterator in val);\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Date, otherwise false\n */\nconst isDate = kindOfTest('Date');\n\n/**\n * Determine if a value is a File\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFile = kindOfTest('File');\n\n/**\n * Determine if a value is a Blob\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nconst isBlob = kindOfTest('Blob');\n\n/**\n * Determine if a value is a FileList\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFileList = kindOfTest('FileList');\n\n/**\n * Determine if a value is a Stream\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nconst isStream = (val) => isObject(val) && isFunction(val.pipe);\n\n/**\n * Determine if a value is a FormData\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nconst isFormData = (thing) => {\n let kind;\n return thing && (\n (typeof FormData === 'function' && thing instanceof FormData) || (\n isFunction(thing.append) && (\n (kind = kindOf(thing)) === 'formdata' ||\n // detect form-data instance\n (kind === 'object' && isFunction(thing.toString) && thing.toString() === '[object FormData]')\n )\n )\n )\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nconst isURLSearchParams = kindOfTest('URLSearchParams');\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n *\n * @returns {String} The String freed of excess whitespace\n */\nconst trim = (str) => str.trim ?\n str.trim() : str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n *\n * @param {Boolean} [allOwnKeys = false]\n * @returns {any}\n */\nfunction forEach(obj, fn, {allOwnKeys = false} = {}) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n let i;\n let l;\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj);\n const len = keys.length;\n let key;\n\n for (i = 0; i < len; i++) {\n key = keys[i];\n fn.call(null, obj[key], key, obj);\n }\n }\n}\n\nfunction findKey(obj, key) {\n key = key.toLowerCase();\n const keys = Object.keys(obj);\n let i = keys.length;\n let _key;\n while (i-- > 0) {\n _key = keys[i];\n if (key === _key.toLowerCase()) {\n return _key;\n }\n }\n return null;\n}\n\nconst _global = (() => {\n /*eslint no-undef:0*/\n if (typeof globalThis !== \"undefined\") return globalThis;\n return typeof self !== \"undefined\" ? self : (typeof window !== 'undefined' ? window : global)\n})();\n\nconst isContextDefined = (context) => !isUndefined(context) && context !== _global;\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n *\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n const {caseless} = isContextDefined(this) && this || {};\n const result = {};\n const assignValue = (val, key) => {\n const targetKey = caseless && findKey(result, key) || key;\n if (isPlainObject(result[targetKey]) && isPlainObject(val)) {\n result[targetKey] = merge(result[targetKey], val);\n } else if (isPlainObject(val)) {\n result[targetKey] = merge({}, val);\n } else if (isArray(val)) {\n result[targetKey] = val.slice();\n } else {\n result[targetKey] = val;\n }\n }\n\n for (let i = 0, l = arguments.length; i < l; i++) {\n arguments[i] && forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n *\n * @param {Boolean} [allOwnKeys]\n * @returns {Object} The resulting value of object a\n */\nconst extend = (a, b, thisArg, {allOwnKeys}= {}) => {\n forEach(b, (val, key) => {\n if (thisArg && isFunction(val)) {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n }, {allOwnKeys});\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n *\n * @returns {string} content value without BOM\n */\nconst stripBOM = (content) => {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\n/**\n * Inherit the prototype methods from one constructor into another\n * @param {function} constructor\n * @param {function} superConstructor\n * @param {object} [props]\n * @param {object} [descriptors]\n *\n * @returns {void}\n */\nconst inherits = (constructor, superConstructor, props, descriptors) => {\n constructor.prototype = Object.create(superConstructor.prototype, descriptors);\n constructor.prototype.constructor = constructor;\n Object.defineProperty(constructor, 'super', {\n value: superConstructor.prototype\n });\n props && Object.assign(constructor.prototype, props);\n}\n\n/**\n * Resolve object with deep prototype chain to a flat object\n * @param {Object} sourceObj source object\n * @param {Object} [destObj]\n * @param {Function|Boolean} [filter]\n * @param {Function} [propFilter]\n *\n * @returns {Object}\n */\nconst toFlatObject = (sourceObj, destObj, filter, propFilter) => {\n let props;\n let i;\n let prop;\n const merged = {};\n\n destObj = destObj || {};\n // eslint-disable-next-line no-eq-null,eqeqeq\n if (sourceObj == null) return destObj;\n\n do {\n props = Object.getOwnPropertyNames(sourceObj);\n i = props.length;\n while (i-- > 0) {\n prop = props[i];\n if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) {\n destObj[prop] = sourceObj[prop];\n merged[prop] = true;\n }\n }\n sourceObj = filter !== false && getPrototypeOf(sourceObj);\n } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);\n\n return destObj;\n}\n\n/**\n * Determines whether a string ends with the characters of a specified string\n *\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n *\n * @returns {boolean}\n */\nconst endsWith = (str, searchString, position) => {\n str = String(str);\n if (position === undefined || position > str.length) {\n position = str.length;\n }\n position -= searchString.length;\n const lastIndex = str.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n}\n\n\n/**\n * Returns new array from array like object or null if failed\n *\n * @param {*} [thing]\n *\n * @returns {?Array}\n */\nconst toArray = (thing) => {\n if (!thing) return null;\n if (isArray(thing)) return thing;\n let i = thing.length;\n if (!isNumber(i)) return null;\n const arr = new Array(i);\n while (i-- > 0) {\n arr[i] = thing[i];\n }\n return arr;\n}\n\n/**\n * Checking if the Uint8Array exists and if it does, it returns a function that checks if the\n * thing passed in is an instance of Uint8Array\n *\n * @param {TypedArray}\n *\n * @returns {Array}\n */\n// eslint-disable-next-line func-names\nconst isTypedArray = (TypedArray => {\n // eslint-disable-next-line func-names\n return thing => {\n return TypedArray && thing instanceof TypedArray;\n };\n})(typeof Uint8Array !== 'undefined' && getPrototypeOf(Uint8Array));\n\n/**\n * For each entry in the object, call the function with the key and value.\n *\n * @param {Object} obj - The object to iterate over.\n * @param {Function} fn - The function to call for each entry.\n *\n * @returns {void}\n */\nconst forEachEntry = (obj, fn) => {\n const generator = obj && obj[Symbol.iterator];\n\n const iterator = generator.call(obj);\n\n let result;\n\n while ((result = iterator.next()) && !result.done) {\n const pair = result.value;\n fn.call(obj, pair[0], pair[1]);\n }\n}\n\n/**\n * It takes a regular expression and a string, and returns an array of all the matches\n *\n * @param {string} regExp - The regular expression to match against.\n * @param {string} str - The string to search.\n *\n * @returns {Array}\n */\nconst matchAll = (regExp, str) => {\n let matches;\n const arr = [];\n\n while ((matches = regExp.exec(str)) !== null) {\n arr.push(matches);\n }\n\n return arr;\n}\n\n/* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */\nconst isHTMLForm = kindOfTest('HTMLFormElement');\n\nconst toCamelCase = str => {\n return str.toLowerCase().replace(/[-_\\s]([a-z\\d])(\\w*)/g,\n function replacer(m, p1, p2) {\n return p1.toUpperCase() + p2;\n }\n );\n};\n\n/* Creating a function that will check if an object has a property. */\nconst hasOwnProperty = (({hasOwnProperty}) => (obj, prop) => hasOwnProperty.call(obj, prop))(Object.prototype);\n\n/**\n * Determine if a value is a RegExp object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a RegExp object, otherwise false\n */\nconst isRegExp = kindOfTest('RegExp');\n\nconst reduceDescriptors = (obj, reducer) => {\n const descriptors = Object.getOwnPropertyDescriptors(obj);\n const reducedDescriptors = {};\n\n forEach(descriptors, (descriptor, name) => {\n let ret;\n if ((ret = reducer(descriptor, name, obj)) !== false) {\n reducedDescriptors[name] = ret || descriptor;\n }\n });\n\n Object.defineProperties(obj, reducedDescriptors);\n}\n\n/**\n * Makes all methods read-only\n * @param {Object} obj\n */\n\nconst freezeMethods = (obj) => {\n reduceDescriptors(obj, (descriptor, name) => {\n // skip restricted props in strict mode\n if (isFunction(obj) && ['arguments', 'caller', 'callee'].indexOf(name) !== -1) {\n return false;\n }\n\n const value = obj[name];\n\n if (!isFunction(value)) return;\n\n descriptor.enumerable = false;\n\n if ('writable' in descriptor) {\n descriptor.writable = false;\n return;\n }\n\n if (!descriptor.set) {\n descriptor.set = () => {\n throw Error('Can not rewrite read-only method \\'' + name + '\\'');\n };\n }\n });\n}\n\nconst toObjectSet = (arrayOrString, delimiter) => {\n const obj = {};\n\n const define = (arr) => {\n arr.forEach(value => {\n obj[value] = true;\n });\n }\n\n isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter));\n\n return obj;\n}\n\nconst noop = () => {}\n\nconst toFiniteNumber = (value, defaultValue) => {\n value = +value;\n return Number.isFinite(value) ? value : defaultValue;\n}\n\nconst ALPHA = 'abcdefghijklmnopqrstuvwxyz'\n\nconst DIGIT = '0123456789';\n\nconst ALPHABET = {\n DIGIT,\n ALPHA,\n ALPHA_DIGIT: ALPHA + ALPHA.toUpperCase() + DIGIT\n}\n\nconst generateString = (size = 16, alphabet = ALPHABET.ALPHA_DIGIT) => {\n let str = '';\n const {length} = alphabet;\n while (size--) {\n str += alphabet[Math.random() * length|0]\n }\n\n return str;\n}\n\n/**\n * If the thing is a FormData object, return true, otherwise return false.\n *\n * @param {unknown} thing - The thing to check.\n *\n * @returns {boolean}\n */\nfunction isSpecCompliantForm(thing) {\n return !!(thing && isFunction(thing.append) && thing[Symbol.toStringTag] === 'FormData' && thing[Symbol.iterator]);\n}\n\nconst toJSONObject = (obj) => {\n const stack = new Array(10);\n\n const visit = (source, i) => {\n\n if (isObject(source)) {\n if (stack.indexOf(source) >= 0) {\n return;\n }\n\n if(!('toJSON' in source)) {\n stack[i] = source;\n const target = isArray(source) ? [] : {};\n\n forEach(source, (value, key) => {\n const reducedValue = visit(value, i + 1);\n !isUndefined(reducedValue) && (target[key] = reducedValue);\n });\n\n stack[i] = undefined;\n\n return target;\n }\n }\n\n return source;\n }\n\n return visit(obj, 0);\n}\n\nconst isAsyncFn = kindOfTest('AsyncFunction');\n\nconst isThenable = (thing) =>\n thing && (isObject(thing) || isFunction(thing)) && isFunction(thing.then) && isFunction(thing.catch);\n\nexport default {\n isArray,\n isArrayBuffer,\n isBuffer,\n isFormData,\n isArrayBufferView,\n isString,\n isNumber,\n isBoolean,\n isObject,\n isPlainObject,\n isUndefined,\n isDate,\n isFile,\n isBlob,\n isRegExp,\n isFunction,\n isStream,\n isURLSearchParams,\n isTypedArray,\n isFileList,\n forEach,\n merge,\n extend,\n trim,\n stripBOM,\n inherits,\n toFlatObject,\n kindOf,\n kindOfTest,\n endsWith,\n toArray,\n forEachEntry,\n matchAll,\n isHTMLForm,\n hasOwnProperty,\n hasOwnProp: hasOwnProperty, // an alias to avoid ESLint no-prototype-builtins detection\n reduceDescriptors,\n freezeMethods,\n toObjectSet,\n toCamelCase,\n noop,\n toFiniteNumber,\n findKey,\n global: _global,\n isContextDefined,\n ALPHABET,\n generateString,\n isSpecCompliantForm,\n toJSONObject,\n isAsyncFn,\n isThenable\n};\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [config] The config.\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n *\n * @returns {Error} The created error.\n */\nfunction AxiosError(message, code, config, request, response) {\n Error.call(this);\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n } else {\n this.stack = (new Error()).stack;\n }\n\n this.message = message;\n this.name = 'AxiosError';\n code && (this.code = code);\n config && (this.config = config);\n request && (this.request = request);\n response && (this.response = response);\n}\n\nutils.inherits(AxiosError, Error, {\n toJSON: function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: utils.toJSONObject(this.config),\n code: this.code,\n status: this.response && this.response.status ? this.response.status : null\n };\n }\n});\n\nconst prototype = AxiosError.prototype;\nconst descriptors = {};\n\n[\n 'ERR_BAD_OPTION_VALUE',\n 'ERR_BAD_OPTION',\n 'ECONNABORTED',\n 'ETIMEDOUT',\n 'ERR_NETWORK',\n 'ERR_FR_TOO_MANY_REDIRECTS',\n 'ERR_DEPRECATED',\n 'ERR_BAD_RESPONSE',\n 'ERR_BAD_REQUEST',\n 'ERR_CANCELED',\n 'ERR_NOT_SUPPORT',\n 'ERR_INVALID_URL'\n// eslint-disable-next-line func-names\n].forEach(code => {\n descriptors[code] = {value: code};\n});\n\nObject.defineProperties(AxiosError, descriptors);\nObject.defineProperty(prototype, 'isAxiosError', {value: true});\n\n// eslint-disable-next-line func-names\nAxiosError.from = (error, code, config, request, response, customProps) => {\n const axiosError = Object.create(prototype);\n\n utils.toFlatObject(error, axiosError, function filter(obj) {\n return obj !== Error.prototype;\n }, prop => {\n return prop !== 'isAxiosError';\n });\n\n AxiosError.call(axiosError, error.message, code, config, request, response);\n\n axiosError.cause = error;\n\n axiosError.name = error.name;\n\n customProps && Object.assign(axiosError, customProps);\n\n return axiosError;\n};\n\nexport default AxiosError;\n","// eslint-disable-next-line strict\nexport default null;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\n// temporary hotfix to avoid circular references until AxiosURLSearchParams is refactored\nimport PlatformFormData from '../platform/node/classes/FormData.js';\n\n/**\n * Determines if the given thing is a array or js object.\n *\n * @param {string} thing - The object or array to be visited.\n *\n * @returns {boolean}\n */\nfunction isVisitable(thing) {\n return utils.isPlainObject(thing) || utils.isArray(thing);\n}\n\n/**\n * It removes the brackets from the end of a string\n *\n * @param {string} key - The key of the parameter.\n *\n * @returns {string} the key without the brackets.\n */\nfunction removeBrackets(key) {\n return utils.endsWith(key, '[]') ? key.slice(0, -2) : key;\n}\n\n/**\n * It takes a path, a key, and a boolean, and returns a string\n *\n * @param {string} path - The path to the current key.\n * @param {string} key - The key of the current object being iterated over.\n * @param {string} dots - If true, the key will be rendered with dots instead of brackets.\n *\n * @returns {string} The path to the current key.\n */\nfunction renderKey(path, key, dots) {\n if (!path) return key;\n return path.concat(key).map(function each(token, i) {\n // eslint-disable-next-line no-param-reassign\n token = removeBrackets(token);\n return !dots && i ? '[' + token + ']' : token;\n }).join(dots ? '.' : '');\n}\n\n/**\n * If the array is an array and none of its elements are visitable, then it's a flat array.\n *\n * @param {Array} arr - The array to check\n *\n * @returns {boolean}\n */\nfunction isFlatArray(arr) {\n return utils.isArray(arr) && !arr.some(isVisitable);\n}\n\nconst predicates = utils.toFlatObject(utils, {}, null, function filter(prop) {\n return /^is[A-Z]/.test(prop);\n});\n\n/**\n * Convert a data object to FormData\n *\n * @param {Object} obj\n * @param {?Object} [formData]\n * @param {?Object} [options]\n * @param {Function} [options.visitor]\n * @param {Boolean} [options.metaTokens = true]\n * @param {Boolean} [options.dots = false]\n * @param {?Boolean} [options.indexes = false]\n *\n * @returns {Object}\n **/\n\n/**\n * It converts an object into a FormData object\n *\n * @param {Object} obj - The object to convert to form data.\n * @param {string} formData - The FormData object to append to.\n * @param {Object} options\n *\n * @returns\n */\nfunction toFormData(obj, formData, options) {\n if (!utils.isObject(obj)) {\n throw new TypeError('target must be an object');\n }\n\n // eslint-disable-next-line no-param-reassign\n formData = formData || new (PlatformFormData || FormData)();\n\n // eslint-disable-next-line no-param-reassign\n options = utils.toFlatObject(options, {\n metaTokens: true,\n dots: false,\n indexes: false\n }, false, function defined(option, source) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n return !utils.isUndefined(source[option]);\n });\n\n const metaTokens = options.metaTokens;\n // eslint-disable-next-line no-use-before-define\n const visitor = options.visitor || defaultVisitor;\n const dots = options.dots;\n const indexes = options.indexes;\n const _Blob = options.Blob || typeof Blob !== 'undefined' && Blob;\n const useBlob = _Blob && utils.isSpecCompliantForm(formData);\n\n if (!utils.isFunction(visitor)) {\n throw new TypeError('visitor must be a function');\n }\n\n function convertValue(value) {\n if (value === null) return '';\n\n if (utils.isDate(value)) {\n return value.toISOString();\n }\n\n if (!useBlob && utils.isBlob(value)) {\n throw new AxiosError('Blob is not supported. Use a Buffer instead.');\n }\n\n if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) {\n return useBlob && typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);\n }\n\n return value;\n }\n\n /**\n * Default visitor.\n *\n * @param {*} value\n * @param {String|Number} key\n * @param {Array} path\n * @this {FormData}\n *\n * @returns {boolean} return true to visit the each prop of the value recursively\n */\n function defaultVisitor(value, key, path) {\n let arr = value;\n\n if (value && !path && typeof value === 'object') {\n if (utils.endsWith(key, '{}')) {\n // eslint-disable-next-line no-param-reassign\n key = metaTokens ? key : key.slice(0, -2);\n // eslint-disable-next-line no-param-reassign\n value = JSON.stringify(value);\n } else if (\n (utils.isArray(value) && isFlatArray(value)) ||\n ((utils.isFileList(value) || utils.endsWith(key, '[]')) && (arr = utils.toArray(value))\n )) {\n // eslint-disable-next-line no-param-reassign\n key = removeBrackets(key);\n\n arr.forEach(function each(el, index) {\n !(utils.isUndefined(el) || el === null) && formData.append(\n // eslint-disable-next-line no-nested-ternary\n indexes === true ? renderKey([key], index, dots) : (indexes === null ? key : key + '[]'),\n convertValue(el)\n );\n });\n return false;\n }\n }\n\n if (isVisitable(value)) {\n return true;\n }\n\n formData.append(renderKey(path, key, dots), convertValue(value));\n\n return false;\n }\n\n const stack = [];\n\n const exposedHelpers = Object.assign(predicates, {\n defaultVisitor,\n convertValue,\n isVisitable\n });\n\n function build(value, path) {\n if (utils.isUndefined(value)) return;\n\n if (stack.indexOf(value) !== -1) {\n throw Error('Circular reference detected in ' + path.join('.'));\n }\n\n stack.push(value);\n\n utils.forEach(value, function each(el, key) {\n const result = !(utils.isUndefined(el) || el === null) && visitor.call(\n formData, el, utils.isString(key) ? key.trim() : key, path, exposedHelpers\n );\n\n if (result === true) {\n build(el, path ? path.concat(key) : [key]);\n }\n });\n\n stack.pop();\n }\n\n if (!utils.isObject(obj)) {\n throw new TypeError('data must be an object');\n }\n\n build(obj);\n\n return formData;\n}\n\nexport default toFormData;\n","'use strict';\n\nimport toFormData from './toFormData.js';\n\n/**\n * It encodes a string by replacing all characters that are not in the unreserved set with\n * their percent-encoded equivalents\n *\n * @param {string} str - The string to encode.\n *\n * @returns {string} The encoded string.\n */\nfunction encode(str) {\n const charMap = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+',\n '%00': '\\x00'\n };\n return encodeURIComponent(str).replace(/[!'()~]|%20|%00/g, function replacer(match) {\n return charMap[match];\n });\n}\n\n/**\n * It takes a params object and converts it to a FormData object\n *\n * @param {Object} params - The parameters to be converted to a FormData object.\n * @param {Object} options - The options object passed to the Axios constructor.\n *\n * @returns {void}\n */\nfunction AxiosURLSearchParams(params, options) {\n this._pairs = [];\n\n params && toFormData(params, this, options);\n}\n\nconst prototype = AxiosURLSearchParams.prototype;\n\nprototype.append = function append(name, value) {\n this._pairs.push([name, value]);\n};\n\nprototype.toString = function toString(encoder) {\n const _encode = encoder ? function(value) {\n return encoder.call(this, value, encode);\n } : encode;\n\n return this._pairs.map(function each(pair) {\n return _encode(pair[0]) + '=' + _encode(pair[1]);\n }, '').join('&');\n};\n\nexport default AxiosURLSearchParams;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosURLSearchParams from '../helpers/AxiosURLSearchParams.js';\n\n/**\n * It replaces all instances of the characters `:`, `$`, `,`, `+`, `[`, and `]` with their\n * URI encoded counterparts\n *\n * @param {string} val The value to be encoded.\n *\n * @returns {string} The encoded value.\n */\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @param {?object} options\n *\n * @returns {string} The formatted url\n */\nexport default function buildURL(url, params, options) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n \n const _encode = options && options.encode || encode;\n\n const serializeFn = options && options.serialize;\n\n let serializedParams;\n\n if (serializeFn) {\n serializedParams = serializeFn(params, options);\n } else {\n serializedParams = utils.isURLSearchParams(params) ?\n params.toString() :\n new AxiosURLSearchParams(params, options).toString(_encode);\n }\n\n if (serializedParams) {\n const hashmarkIndex = url.indexOf(\"#\");\n\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\nclass InterceptorManager {\n constructor() {\n this.handlers = [];\n }\n\n /**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\n use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled,\n rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n }\n\n /**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n *\n * @returns {Boolean} `true` if the interceptor was removed, `false` otherwise\n */\n eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n }\n\n /**\n * Clear all interceptors from the stack\n *\n * @returns {void}\n */\n clear() {\n if (this.handlers) {\n this.handlers = [];\n }\n }\n\n /**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n *\n * @returns {void}\n */\n forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n }\n}\n\nexport default InterceptorManager;\n","'use strict';\n\nexport default {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n};\n","'use strict';\n\nimport AxiosURLSearchParams from '../../../helpers/AxiosURLSearchParams.js';\nexport default typeof URLSearchParams !== 'undefined' ? URLSearchParams : AxiosURLSearchParams;\n","'use strict';\n\nexport default typeof FormData !== 'undefined' ? FormData : null;\n","'use strict'\n\nexport default typeof Blob !== 'undefined' ? Blob : null\n","import URLSearchParams from './classes/URLSearchParams.js'\nimport FormData from './classes/FormData.js'\nimport Blob from './classes/Blob.js'\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n *\n * @returns {boolean}\n */\nconst isStandardBrowserEnv = (() => {\n let product;\n if (typeof navigator !== 'undefined' && (\n (product = navigator.product) === 'ReactNative' ||\n product === 'NativeScript' ||\n product === 'NS')\n ) {\n return false;\n }\n\n return typeof window !== 'undefined' && typeof document !== 'undefined';\n})();\n\n/**\n * Determine if we're running in a standard browser webWorker environment\n *\n * Although the `isStandardBrowserEnv` method indicates that\n * `allows axios to run in a web worker`, the WebWorker will still be\n * filtered out due to its judgment standard\n * `typeof window !== 'undefined' && typeof document !== 'undefined'`.\n * This leads to a problem when axios post `FormData` in webWorker\n */\n const isStandardBrowserWebWorkerEnv = (() => {\n return (\n typeof WorkerGlobalScope !== 'undefined' &&\n // eslint-disable-next-line no-undef\n self instanceof WorkerGlobalScope &&\n typeof self.importScripts === 'function'\n );\n})();\n\n\nexport default {\n isBrowser: true,\n classes: {\n URLSearchParams,\n FormData,\n Blob\n },\n isStandardBrowserEnv,\n isStandardBrowserWebWorkerEnv,\n protocols: ['http', 'https', 'file', 'blob', 'url', 'data']\n};\n","'use strict';\n\nimport utils from '../utils.js';\nimport toFormData from './toFormData.js';\nimport platform from '../platform/index.js';\n\nexport default function toURLEncodedForm(data, options) {\n return toFormData(data, new platform.classes.URLSearchParams(), Object.assign({\n visitor: function(value, key, path, helpers) {\n if (platform.isNode && utils.isBuffer(value)) {\n this.append(key, value.toString('base64'));\n return false;\n }\n\n return helpers.defaultVisitor.apply(this, arguments);\n }\n }, options));\n}\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z']\n *\n * @param {string} name - The name of the property to get.\n *\n * @returns An array of strings.\n */\nfunction parsePropPath(name) {\n // foo[x][y][z]\n // foo.x.y.z\n // foo-x-y-z\n // foo x y z\n return utils.matchAll(/\\w+|\\[(\\w*)]/g, name).map(match => {\n return match[0] === '[]' ? '' : match[1] || match[0];\n });\n}\n\n/**\n * Convert an array to an object.\n *\n * @param {Array} arr - The array to convert to an object.\n *\n * @returns An object with the same keys and values as the array.\n */\nfunction arrayToObject(arr) {\n const obj = {};\n const keys = Object.keys(arr);\n let i;\n const len = keys.length;\n let key;\n for (i = 0; i < len; i++) {\n key = keys[i];\n obj[key] = arr[key];\n }\n return obj;\n}\n\n/**\n * It takes a FormData object and returns a JavaScript object\n *\n * @param {string} formData The FormData object to convert to JSON.\n *\n * @returns {Object | null} The converted object.\n */\nfunction formDataToJSON(formData) {\n function buildPath(path, value, target, index) {\n let name = path[index++];\n const isNumericKey = Number.isFinite(+name);\n const isLast = index >= path.length;\n name = !name && utils.isArray(target) ? target.length : name;\n\n if (isLast) {\n if (utils.hasOwnProp(target, name)) {\n target[name] = [target[name], value];\n } else {\n target[name] = value;\n }\n\n return !isNumericKey;\n }\n\n if (!target[name] || !utils.isObject(target[name])) {\n target[name] = [];\n }\n\n const result = buildPath(path, value, target[name], index);\n\n if (result && utils.isArray(target[name])) {\n target[name] = arrayToObject(target[name]);\n }\n\n return !isNumericKey;\n }\n\n if (utils.isFormData(formData) && utils.isFunction(formData.entries)) {\n const obj = {};\n\n utils.forEachEntry(formData, (name, value) => {\n buildPath(parsePropPath(name), value, obj, 0);\n });\n\n return obj;\n }\n\n return null;\n}\n\nexport default formDataToJSON;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\nimport transitionalDefaults from './transitional.js';\nimport toFormData from '../helpers/toFormData.js';\nimport toURLEncodedForm from '../helpers/toURLEncodedForm.js';\nimport platform from '../platform/index.js';\nimport formDataToJSON from '../helpers/formDataToJSON.js';\n\n/**\n * It takes a string, tries to parse it, and if it fails, it returns the stringified version\n * of the input\n *\n * @param {any} rawValue - The value to be stringified.\n * @param {Function} parser - A function that parses a string into a JavaScript object.\n * @param {Function} encoder - A function that takes a value and returns a string.\n *\n * @returns {string} A stringified version of the rawValue.\n */\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nconst defaults = {\n\n transitional: transitionalDefaults,\n\n adapter: ['xhr', 'http'],\n\n transformRequest: [function transformRequest(data, headers) {\n const contentType = headers.getContentType() || '';\n const hasJSONContentType = contentType.indexOf('application/json') > -1;\n const isObjectPayload = utils.isObject(data);\n\n if (isObjectPayload && utils.isHTMLForm(data)) {\n data = new FormData(data);\n }\n\n const isFormData = utils.isFormData(data);\n\n if (isFormData) {\n if (!hasJSONContentType) {\n return data;\n }\n return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data;\n }\n\n if (utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n headers.setContentType('application/x-www-form-urlencoded;charset=utf-8', false);\n return data.toString();\n }\n\n let isFileList;\n\n if (isObjectPayload) {\n if (contentType.indexOf('application/x-www-form-urlencoded') > -1) {\n return toURLEncodedForm(data, this.formSerializer).toString();\n }\n\n if ((isFileList = utils.isFileList(data)) || contentType.indexOf('multipart/form-data') > -1) {\n const _FormData = this.env && this.env.FormData;\n\n return toFormData(\n isFileList ? {'files[]': data} : data,\n _FormData && new _FormData(),\n this.formSerializer\n );\n }\n }\n\n if (isObjectPayload || hasJSONContentType ) {\n headers.setContentType('application/json', false);\n return stringifySafely(data);\n }\n\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n const transitional = this.transitional || defaults.transitional;\n const forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n const JSONRequested = this.responseType === 'json';\n\n if (data && utils.isString(data) && ((forcedJSONParsing && !this.responseType) || JSONRequested)) {\n const silentJSONParsing = transitional && transitional.silentJSONParsing;\n const strictJSONParsing = !silentJSONParsing && JSONRequested;\n\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, this.response);\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n env: {\n FormData: platform.classes.FormData,\n Blob: platform.classes.Blob\n },\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n 'Accept': 'application/json, text/plain, */*',\n 'Content-Type': undefined\n }\n }\n};\n\nutils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch'], (method) => {\n defaults.headers[method] = {};\n});\n\nexport default defaults;\n","'use strict';\n\nimport utils from './../utils.js';\n\n// RawAxiosHeaders whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nconst ignoreDuplicateOf = utils.toObjectSet([\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n]);\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} rawHeaders Headers needing to be parsed\n *\n * @returns {Object} Headers parsed into an object\n */\nexport default rawHeaders => {\n const parsed = {};\n let key;\n let val;\n let i;\n\n rawHeaders && rawHeaders.split('\\n').forEach(function parser(line) {\n i = line.indexOf(':');\n key = line.substring(0, i).trim().toLowerCase();\n val = line.substring(i + 1).trim();\n\n if (!key || (parsed[key] && ignoreDuplicateOf[key])) {\n return;\n }\n\n if (key === 'set-cookie') {\n if (parsed[key]) {\n parsed[key].push(val);\n } else {\n parsed[key] = [val];\n }\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n });\n\n return parsed;\n};\n","'use strict';\n\nimport utils from '../utils.js';\nimport parseHeaders from '../helpers/parseHeaders.js';\n\nconst $internals = Symbol('internals');\n\nfunction normalizeHeader(header) {\n return header && String(header).trim().toLowerCase();\n}\n\nfunction normalizeValue(value) {\n if (value === false || value == null) {\n return value;\n }\n\n return utils.isArray(value) ? value.map(normalizeValue) : String(value);\n}\n\nfunction parseTokens(str) {\n const tokens = Object.create(null);\n const tokensRE = /([^\\s,;=]+)\\s*(?:=\\s*([^,;]+))?/g;\n let match;\n\n while ((match = tokensRE.exec(str))) {\n tokens[match[1]] = match[2];\n }\n\n return tokens;\n}\n\nconst isValidHeaderName = (str) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim());\n\nfunction matchHeaderValue(context, value, header, filter, isHeaderNameFilter) {\n if (utils.isFunction(filter)) {\n return filter.call(this, value, header);\n }\n\n if (isHeaderNameFilter) {\n value = header;\n }\n\n if (!utils.isString(value)) return;\n\n if (utils.isString(filter)) {\n return value.indexOf(filter) !== -1;\n }\n\n if (utils.isRegExp(filter)) {\n return filter.test(value);\n }\n}\n\nfunction formatHeader(header) {\n return header.trim()\n .toLowerCase().replace(/([a-z\\d])(\\w*)/g, (w, char, str) => {\n return char.toUpperCase() + str;\n });\n}\n\nfunction buildAccessors(obj, header) {\n const accessorName = utils.toCamelCase(' ' + header);\n\n ['get', 'set', 'has'].forEach(methodName => {\n Object.defineProperty(obj, methodName + accessorName, {\n value: function(arg1, arg2, arg3) {\n return this[methodName].call(this, header, arg1, arg2, arg3);\n },\n configurable: true\n });\n });\n}\n\nclass AxiosHeaders {\n constructor(headers) {\n headers && this.set(headers);\n }\n\n set(header, valueOrRewrite, rewrite) {\n const self = this;\n\n function setHeader(_value, _header, _rewrite) {\n const lHeader = normalizeHeader(_header);\n\n if (!lHeader) {\n throw new Error('header name must be a non-empty string');\n }\n\n const key = utils.findKey(self, lHeader);\n\n if(!key || self[key] === undefined || _rewrite === true || (_rewrite === undefined && self[key] !== false)) {\n self[key || _header] = normalizeValue(_value);\n }\n }\n\n const setHeaders = (headers, _rewrite) =>\n utils.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite));\n\n if (utils.isPlainObject(header) || header instanceof this.constructor) {\n setHeaders(header, valueOrRewrite)\n } else if(utils.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) {\n setHeaders(parseHeaders(header), valueOrRewrite);\n } else {\n header != null && setHeader(valueOrRewrite, header, rewrite);\n }\n\n return this;\n }\n\n get(header, parser) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n if (key) {\n const value = this[key];\n\n if (!parser) {\n return value;\n }\n\n if (parser === true) {\n return parseTokens(value);\n }\n\n if (utils.isFunction(parser)) {\n return parser.call(this, value, key);\n }\n\n if (utils.isRegExp(parser)) {\n return parser.exec(value);\n }\n\n throw new TypeError('parser must be boolean|regexp|function');\n }\n }\n }\n\n has(header, matcher) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n return !!(key && this[key] !== undefined && (!matcher || matchHeaderValue(this, this[key], key, matcher)));\n }\n\n return false;\n }\n\n delete(header, matcher) {\n const self = this;\n let deleted = false;\n\n function deleteHeader(_header) {\n _header = normalizeHeader(_header);\n\n if (_header) {\n const key = utils.findKey(self, _header);\n\n if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) {\n delete self[key];\n\n deleted = true;\n }\n }\n }\n\n if (utils.isArray(header)) {\n header.forEach(deleteHeader);\n } else {\n deleteHeader(header);\n }\n\n return deleted;\n }\n\n clear(matcher) {\n const keys = Object.keys(this);\n let i = keys.length;\n let deleted = false;\n\n while (i--) {\n const key = keys[i];\n if(!matcher || matchHeaderValue(this, this[key], key, matcher, true)) {\n delete this[key];\n deleted = true;\n }\n }\n\n return deleted;\n }\n\n normalize(format) {\n const self = this;\n const headers = {};\n\n utils.forEach(this, (value, header) => {\n const key = utils.findKey(headers, header);\n\n if (key) {\n self[key] = normalizeValue(value);\n delete self[header];\n return;\n }\n\n const normalized = format ? formatHeader(header) : String(header).trim();\n\n if (normalized !== header) {\n delete self[header];\n }\n\n self[normalized] = normalizeValue(value);\n\n headers[normalized] = true;\n });\n\n return this;\n }\n\n concat(...targets) {\n return this.constructor.concat(this, ...targets);\n }\n\n toJSON(asStrings) {\n const obj = Object.create(null);\n\n utils.forEach(this, (value, header) => {\n value != null && value !== false && (obj[header] = asStrings && utils.isArray(value) ? value.join(', ') : value);\n });\n\n return obj;\n }\n\n [Symbol.iterator]() {\n return Object.entries(this.toJSON())[Symbol.iterator]();\n }\n\n toString() {\n return Object.entries(this.toJSON()).map(([header, value]) => header + ': ' + value).join('\\n');\n }\n\n get [Symbol.toStringTag]() {\n return 'AxiosHeaders';\n }\n\n static from(thing) {\n return thing instanceof this ? thing : new this(thing);\n }\n\n static concat(first, ...targets) {\n const computed = new this(first);\n\n targets.forEach((target) => computed.set(target));\n\n return computed;\n }\n\n static accessor(header) {\n const internals = this[$internals] = (this[$internals] = {\n accessors: {}\n });\n\n const accessors = internals.accessors;\n const prototype = this.prototype;\n\n function defineAccessor(_header) {\n const lHeader = normalizeHeader(_header);\n\n if (!accessors[lHeader]) {\n buildAccessors(prototype, _header);\n accessors[lHeader] = true;\n }\n }\n\n utils.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header);\n\n return this;\n }\n}\n\nAxiosHeaders.accessor(['Content-Type', 'Content-Length', 'Accept', 'Accept-Encoding', 'User-Agent', 'Authorization']);\n\n// reserved names hotfix\nutils.reduceDescriptors(AxiosHeaders.prototype, ({value}, key) => {\n let mapped = key[0].toUpperCase() + key.slice(1); // map `set` => `Set`\n return {\n get: () => value,\n set(headerValue) {\n this[mapped] = headerValue;\n }\n }\n});\n\nutils.freezeMethods(AxiosHeaders);\n\nexport default AxiosHeaders;\n","'use strict';\n\nimport utils from './../utils.js';\nimport defaults from '../defaults/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Array|Function} fns A single function or Array of functions\n * @param {?Object} response The response object\n *\n * @returns {*} The resulting transformed data\n */\nexport default function transformData(fns, response) {\n const config = this || defaults;\n const context = response || config;\n const headers = AxiosHeaders.from(context.headers);\n let data = context.data;\n\n utils.forEach(fns, function transform(fn) {\n data = fn.call(config, data, headers.normalize(), response ? response.status : undefined);\n });\n\n headers.normalize();\n\n return data;\n}\n","'use strict';\n\nexport default function isCancel(value) {\n return !!(value && value.__CANCEL__);\n}\n","'use strict';\n\nimport AxiosError from '../core/AxiosError.js';\nimport utils from '../utils.js';\n\n/**\n * A `CanceledError` is an object that is thrown when an operation is canceled.\n *\n * @param {string=} message The message.\n * @param {Object=} config The config.\n * @param {Object=} request The request.\n *\n * @returns {CanceledError} The created error.\n */\nfunction CanceledError(message, config, request) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n AxiosError.call(this, message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request);\n this.name = 'CanceledError';\n}\n\nutils.inherits(CanceledError, AxiosError, {\n __CANCEL__: true\n});\n\nexport default CanceledError;\n","'use strict';\n\nimport AxiosError from './AxiosError.js';\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n *\n * @returns {object} The response.\n */\nexport default function settle(resolve, reject, response) {\n const validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(new AxiosError(\n 'Request failed with status code ' + response.status,\n [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4],\n response.config,\n response.request,\n response\n ));\n }\n}\n","'use strict';\n\nimport utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.isStandardBrowserEnv ?\n\n// Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n const cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n const match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n// Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })();\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n *\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nexport default function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n}\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n *\n * @returns {string} The combined URL\n */\nexport default function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n}\n","'use strict';\n\nimport isAbsoluteURL from '../helpers/isAbsoluteURL.js';\nimport combineURLs from '../helpers/combineURLs.js';\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n *\n * @returns {string} The combined full path\n */\nexport default function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n}\n","'use strict';\n\nimport utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.isStandardBrowserEnv ?\n\n// Standard browser envs have full support of the APIs needed to test\n// whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n const msie = /(msie|trident)/i.test(navigator.userAgent);\n const urlParsingNode = document.createElement('a');\n let originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n let href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n const parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })();\n","'use strict';\n\nexport default function parseProtocol(url) {\n const match = /^([-+\\w]{1,25})(:?\\/\\/|:)/.exec(url);\n return match && match[1] || '';\n}\n","'use strict';\n\n/**\n * Calculate data maxRate\n * @param {Number} [samplesCount= 10]\n * @param {Number} [min= 1000]\n * @returns {Function}\n */\nfunction speedometer(samplesCount, min) {\n samplesCount = samplesCount || 10;\n const bytes = new Array(samplesCount);\n const timestamps = new Array(samplesCount);\n let head = 0;\n let tail = 0;\n let firstSampleTS;\n\n min = min !== undefined ? min : 1000;\n\n return function push(chunkLength) {\n const now = Date.now();\n\n const startedAt = timestamps[tail];\n\n if (!firstSampleTS) {\n firstSampleTS = now;\n }\n\n bytes[head] = chunkLength;\n timestamps[head] = now;\n\n let i = tail;\n let bytesCount = 0;\n\n while (i !== head) {\n bytesCount += bytes[i++];\n i = i % samplesCount;\n }\n\n head = (head + 1) % samplesCount;\n\n if (head === tail) {\n tail = (tail + 1) % samplesCount;\n }\n\n if (now - firstSampleTS < min) {\n return;\n }\n\n const passed = startedAt && now - startedAt;\n\n return passed ? Math.round(bytesCount * 1000 / passed) : undefined;\n };\n}\n\nexport default speedometer;\n","'use strict';\n\nimport utils from './../utils.js';\nimport settle from './../core/settle.js';\nimport cookies from './../helpers/cookies.js';\nimport buildURL from './../helpers/buildURL.js';\nimport buildFullPath from '../core/buildFullPath.js';\nimport isURLSameOrigin from './../helpers/isURLSameOrigin.js';\nimport transitionalDefaults from '../defaults/transitional.js';\nimport AxiosError from '../core/AxiosError.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport parseProtocol from '../helpers/parseProtocol.js';\nimport platform from '../platform/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport speedometer from '../helpers/speedometer.js';\n\nfunction progressEventReducer(listener, isDownloadStream) {\n let bytesNotified = 0;\n const _speedometer = speedometer(50, 250);\n\n return e => {\n const loaded = e.loaded;\n const total = e.lengthComputable ? e.total : undefined;\n const progressBytes = loaded - bytesNotified;\n const rate = _speedometer(progressBytes);\n const inRange = loaded <= total;\n\n bytesNotified = loaded;\n\n const data = {\n loaded,\n total,\n progress: total ? (loaded / total) : undefined,\n bytes: progressBytes,\n rate: rate ? rate : undefined,\n estimated: rate && total && inRange ? (total - loaded) / rate : undefined,\n event: e\n };\n\n data[isDownloadStream ? 'download' : 'upload'] = true;\n\n listener(data);\n };\n}\n\nconst isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';\n\nexport default isXHRAdapterSupported && function (config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n let requestData = config.data;\n const requestHeaders = AxiosHeaders.from(config.headers).normalize();\n const responseType = config.responseType;\n let onCanceled;\n function done() {\n if (config.cancelToken) {\n config.cancelToken.unsubscribe(onCanceled);\n }\n\n if (config.signal) {\n config.signal.removeEventListener('abort', onCanceled);\n }\n }\n\n let contentType;\n\n if (utils.isFormData(requestData)) {\n if (platform.isStandardBrowserEnv || platform.isStandardBrowserWebWorkerEnv) {\n requestHeaders.setContentType(false); // Let the browser set it\n } else if(!requestHeaders.getContentType(/^\\s*multipart\\/form-data/)){\n requestHeaders.setContentType('multipart/form-data'); // mobile/desktop app frameworks\n } else if(utils.isString(contentType = requestHeaders.getContentType())){\n // fix semicolon duplication issue for ReactNative FormData implementation\n requestHeaders.setContentType(contentType.replace(/^\\s*(multipart\\/form-data);+/, '$1'))\n }\n }\n\n let request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n const username = config.auth.username || '';\n const password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.set('Authorization', 'Basic ' + btoa(username + ':' + password));\n }\n\n const fullPath = buildFullPath(config.baseURL, config.url);\n\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n const responseHeaders = AxiosHeaders.from(\n 'getAllResponseHeaders' in request && request.getAllResponseHeaders()\n );\n const responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n const response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config,\n request\n };\n\n settle(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n let timeoutErrorMessage = config.timeout ? 'timeout of ' + config.timeout + 'ms exceeded' : 'timeout exceeded';\n const transitional = config.transitional || transitionalDefaults;\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(new AxiosError(\n timeoutErrorMessage,\n transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n config,\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (platform.isStandardBrowserEnv) {\n // Add xsrf header\n const xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath))\n && config.xsrfCookieName && cookies.read(config.xsrfCookieName);\n\n if (xsrfValue) {\n requestHeaders.set(config.xsrfHeaderName, xsrfValue);\n }\n }\n\n // Remove Content-Type if data is undefined\n requestData === undefined && requestHeaders.setContentType(null);\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders.toJSON(), function setRequestHeader(val, key) {\n request.setRequestHeader(key, val);\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = config.responseType;\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', progressEventReducer(config.onDownloadProgress, true));\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', progressEventReducer(config.onUploadProgress));\n }\n\n if (config.cancelToken || config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = cancel => {\n if (!request) {\n return;\n }\n reject(!cancel || cancel.type ? new CanceledError(null, config, request) : cancel);\n request.abort();\n request = null;\n };\n\n config.cancelToken && config.cancelToken.subscribe(onCanceled);\n if (config.signal) {\n config.signal.aborted ? onCanceled() : config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n const protocol = parseProtocol(fullPath);\n\n if (protocol && platform.protocols.indexOf(protocol) === -1) {\n reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config));\n return;\n }\n\n\n // Send the request\n request.send(requestData || null);\n });\n}\n","import utils from '../utils.js';\nimport httpAdapter from './http.js';\nimport xhrAdapter from './xhr.js';\nimport AxiosError from \"../core/AxiosError.js\";\n\nconst knownAdapters = {\n http: httpAdapter,\n xhr: xhrAdapter\n}\n\nutils.forEach(knownAdapters, (fn, value) => {\n if (fn) {\n try {\n Object.defineProperty(fn, 'name', {value});\n } catch (e) {\n // eslint-disable-next-line no-empty\n }\n Object.defineProperty(fn, 'adapterName', {value});\n }\n});\n\nconst renderReason = (reason) => `- ${reason}`;\n\nconst isResolvedHandle = (adapter) => utils.isFunction(adapter) || adapter === null || adapter === false;\n\nexport default {\n getAdapter: (adapters) => {\n adapters = utils.isArray(adapters) ? adapters : [adapters];\n\n const {length} = adapters;\n let nameOrAdapter;\n let adapter;\n\n const rejectedReasons = {};\n\n for (let i = 0; i < length; i++) {\n nameOrAdapter = adapters[i];\n let id;\n\n adapter = nameOrAdapter;\n\n if (!isResolvedHandle(nameOrAdapter)) {\n adapter = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()];\n\n if (adapter === undefined) {\n throw new AxiosError(`Unknown adapter '${id}'`);\n }\n }\n\n if (adapter) {\n break;\n }\n\n rejectedReasons[id || '#' + i] = adapter;\n }\n\n if (!adapter) {\n\n const reasons = Object.entries(rejectedReasons)\n .map(([id, state]) => `adapter ${id} ` +\n (state === false ? 'is not supported by the environment' : 'is not available in the build')\n );\n\n let s = length ?\n (reasons.length > 1 ? 'since :\\n' + reasons.map(renderReason).join('\\n') : ' ' + renderReason(reasons[0])) :\n 'as no adapter specified';\n\n throw new AxiosError(\n `There is no suitable adapter to dispatch the request ` + s,\n 'ERR_NOT_SUPPORT'\n );\n }\n\n return adapter;\n },\n adapters: knownAdapters\n}\n","'use strict';\n\nimport transformData from './transformData.js';\nimport isCancel from '../cancel/isCancel.js';\nimport defaults from '../defaults/index.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport adapters from \"../adapters/adapters.js\";\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n *\n * @param {Object} config The config that is to be used for the request\n *\n * @returns {void}\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new CanceledError(null, config);\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n *\n * @returns {Promise} The Promise to be fulfilled\n */\nexport default function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n config.headers = AxiosHeaders.from(config.headers);\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.transformRequest\n );\n\n if (['post', 'put', 'patch'].indexOf(config.method) !== -1) {\n config.headers.setContentType('application/x-www-form-urlencoded', false);\n }\n\n const adapter = adapters.getAdapter(config.adapter || defaults.adapter);\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n config.transformResponse,\n response\n );\n\n response.headers = AxiosHeaders.from(response.headers);\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n config.transformResponse,\n reason.response\n );\n reason.response.headers = AxiosHeaders.from(reason.response.headers);\n }\n }\n\n return Promise.reject(reason);\n });\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosHeaders from \"./AxiosHeaders.js\";\n\nconst headersToObject = (thing) => thing instanceof AxiosHeaders ? thing.toJSON() : thing;\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n *\n * @returns {Object} New object resulting from merging config2 to config1\n */\nexport default function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n const config = {};\n\n function getMergedValue(target, source, caseless) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge.call({caseless}, target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDeepProperties(a, b, caseless) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(a, b, caseless);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a, caseless);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(a, b, prop) {\n if (prop in config2) {\n return getMergedValue(a, b);\n } else if (prop in config1) {\n return getMergedValue(undefined, a);\n }\n }\n\n const mergeMap = {\n url: valueFromConfig2,\n method: valueFromConfig2,\n data: valueFromConfig2,\n baseURL: defaultToConfig2,\n transformRequest: defaultToConfig2,\n transformResponse: defaultToConfig2,\n paramsSerializer: defaultToConfig2,\n timeout: defaultToConfig2,\n timeoutMessage: defaultToConfig2,\n withCredentials: defaultToConfig2,\n adapter: defaultToConfig2,\n responseType: defaultToConfig2,\n xsrfCookieName: defaultToConfig2,\n xsrfHeaderName: defaultToConfig2,\n onUploadProgress: defaultToConfig2,\n onDownloadProgress: defaultToConfig2,\n decompress: defaultToConfig2,\n maxContentLength: defaultToConfig2,\n maxBodyLength: defaultToConfig2,\n beforeRedirect: defaultToConfig2,\n transport: defaultToConfig2,\n httpAgent: defaultToConfig2,\n httpsAgent: defaultToConfig2,\n cancelToken: defaultToConfig2,\n socketPath: defaultToConfig2,\n responseEncoding: defaultToConfig2,\n validateStatus: mergeDirectKeys,\n headers: (a, b) => mergeDeepProperties(headersToObject(a), headersToObject(b), true)\n };\n\n utils.forEach(Object.keys(Object.assign({}, config1, config2)), function computeConfigValue(prop) {\n const merge = mergeMap[prop] || mergeDeepProperties;\n const configValue = merge(config1[prop], config2[prop], prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n}\n","export const VERSION = \"1.5.1\";","'use strict';\n\nimport {VERSION} from '../env/data.js';\nimport AxiosError from '../core/AxiosError.js';\n\nconst validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach((type, i) => {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nconst deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n *\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n *\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return (value, opt, opts) => {\n if (validator === false) {\n throw new AxiosError(\n formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')),\n AxiosError.ERR_DEPRECATED\n );\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\n/**\n * Assert object's properties type\n *\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n *\n * @returns {object}\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE);\n }\n const keys = Object.keys(options);\n let i = keys.length;\n while (i-- > 0) {\n const opt = keys[i];\n const validator = schema[opt];\n if (validator) {\n const value = options[opt];\n const result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new AxiosError('option ' + opt + ' must be ' + result, AxiosError.ERR_BAD_OPTION_VALUE);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION);\n }\n }\n}\n\nexport default {\n assertOptions,\n validators\n};\n","'use strict';\n\nimport utils from './../utils.js';\nimport buildURL from '../helpers/buildURL.js';\nimport InterceptorManager from './InterceptorManager.js';\nimport dispatchRequest from './dispatchRequest.js';\nimport mergeConfig from './mergeConfig.js';\nimport buildFullPath from './buildFullPath.js';\nimport validator from '../helpers/validator.js';\nimport AxiosHeaders from './AxiosHeaders.js';\n\nconst validators = validator.validators;\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n *\n * @return {Axios} A new instance of Axios\n */\nclass Axios {\n constructor(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n }\n\n /**\n * Dispatch a request\n *\n * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults)\n * @param {?Object} config\n *\n * @returns {Promise} The Promise to be fulfilled\n */\n request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n const {transitional, paramsSerializer, headers} = config;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n }\n\n if (paramsSerializer != null) {\n if (utils.isFunction(paramsSerializer)) {\n config.paramsSerializer = {\n serialize: paramsSerializer\n }\n } else {\n validator.assertOptions(paramsSerializer, {\n encode: validators.function,\n serialize: validators.function\n }, true);\n }\n }\n\n // Set config.method\n config.method = (config.method || this.defaults.method || 'get').toLowerCase();\n\n // Flatten headers\n let contextHeaders = headers && utils.merge(\n headers.common,\n headers[config.method]\n );\n\n headers && utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n (method) => {\n delete headers[method];\n }\n );\n\n config.headers = AxiosHeaders.concat(contextHeaders, headers);\n\n // filter out skipped interceptors\n const requestInterceptorChain = [];\n let synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n const responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n let promise;\n let i = 0;\n let len;\n\n if (!synchronousRequestInterceptors) {\n const chain = [dispatchRequest.bind(this), undefined];\n chain.unshift.apply(chain, requestInterceptorChain);\n chain.push.apply(chain, responseInterceptorChain);\n len = chain.length;\n\n promise = Promise.resolve(config);\n\n while (i < len) {\n promise = promise.then(chain[i++], chain[i++]);\n }\n\n return promise;\n }\n\n len = requestInterceptorChain.length;\n\n let newConfig = config;\n\n i = 0;\n\n while (i < len) {\n const onFulfilled = requestInterceptorChain[i++];\n const onRejected = requestInterceptorChain[i++];\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected.call(this, error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest.call(this, newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n i = 0;\n len = responseInterceptorChain.length;\n\n while (i < len) {\n promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]);\n }\n\n return promise;\n }\n\n getUri(config) {\n config = mergeConfig(this.defaults, config);\n const fullPath = buildFullPath(config.baseURL, config.url);\n return buildURL(fullPath, config.params, config.paramsSerializer);\n }\n}\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n\n function generateHTTPMethod(isForm) {\n return function httpMethod(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n headers: isForm ? {\n 'Content-Type': 'multipart/form-data'\n } : {},\n url,\n data\n }));\n };\n }\n\n Axios.prototype[method] = generateHTTPMethod();\n\n Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\n});\n\nexport default Axios;\n","'use strict';\n\nimport CanceledError from './CanceledError.js';\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @param {Function} executor The executor function.\n *\n * @returns {CancelToken}\n */\nclass CancelToken {\n constructor(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n let resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n const token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then(cancel => {\n if (!token._listeners) return;\n\n let i = token._listeners.length;\n\n while (i-- > 0) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = onfulfilled => {\n let _resolve;\n // eslint-disable-next-line func-names\n const promise = new Promise(resolve => {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message, config, request) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new CanceledError(message, config, request);\n resolvePromise(token.reason);\n });\n }\n\n /**\n * Throws a `CanceledError` if cancellation has been requested.\n */\n throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n }\n\n /**\n * Subscribe to the cancel signal\n */\n\n subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n }\n\n /**\n * Unsubscribe from the cancel signal\n */\n\n unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n const index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n }\n\n /**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\n static source() {\n let cancel;\n const token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token,\n cancel\n };\n }\n}\n\nexport default CancelToken;\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n *\n * @returns {Function}\n */\nexport default function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n *\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nexport default function isAxiosError(payload) {\n return utils.isObject(payload) && (payload.isAxiosError === true);\n}\n","const HttpStatusCode = {\n Continue: 100,\n SwitchingProtocols: 101,\n Processing: 102,\n EarlyHints: 103,\n Ok: 200,\n Created: 201,\n Accepted: 202,\n NonAuthoritativeInformation: 203,\n NoContent: 204,\n ResetContent: 205,\n PartialContent: 206,\n MultiStatus: 207,\n AlreadyReported: 208,\n ImUsed: 226,\n MultipleChoices: 300,\n MovedPermanently: 301,\n Found: 302,\n SeeOther: 303,\n NotModified: 304,\n UseProxy: 305,\n Unused: 306,\n TemporaryRedirect: 307,\n PermanentRedirect: 308,\n BadRequest: 400,\n Unauthorized: 401,\n PaymentRequired: 402,\n Forbidden: 403,\n NotFound: 404,\n MethodNotAllowed: 405,\n NotAcceptable: 406,\n ProxyAuthenticationRequired: 407,\n RequestTimeout: 408,\n Conflict: 409,\n Gone: 410,\n LengthRequired: 411,\n PreconditionFailed: 412,\n PayloadTooLarge: 413,\n UriTooLong: 414,\n UnsupportedMediaType: 415,\n RangeNotSatisfiable: 416,\n ExpectationFailed: 417,\n ImATeapot: 418,\n MisdirectedRequest: 421,\n UnprocessableEntity: 422,\n Locked: 423,\n FailedDependency: 424,\n TooEarly: 425,\n UpgradeRequired: 426,\n PreconditionRequired: 428,\n TooManyRequests: 429,\n RequestHeaderFieldsTooLarge: 431,\n UnavailableForLegalReasons: 451,\n InternalServerError: 500,\n NotImplemented: 501,\n BadGateway: 502,\n ServiceUnavailable: 503,\n GatewayTimeout: 504,\n HttpVersionNotSupported: 505,\n VariantAlsoNegotiates: 506,\n InsufficientStorage: 507,\n LoopDetected: 508,\n NotExtended: 510,\n NetworkAuthenticationRequired: 511,\n};\n\nObject.entries(HttpStatusCode).forEach(([key, value]) => {\n HttpStatusCode[value] = key;\n});\n\nexport default HttpStatusCode;\n","'use strict';\n\nimport utils from './utils.js';\nimport bind from './helpers/bind.js';\nimport Axios from './core/Axios.js';\nimport mergeConfig from './core/mergeConfig.js';\nimport defaults from './defaults/index.js';\nimport formDataToJSON from './helpers/formDataToJSON.js';\nimport CanceledError from './cancel/CanceledError.js';\nimport CancelToken from './cancel/CancelToken.js';\nimport isCancel from './cancel/isCancel.js';\nimport {VERSION} from './env/data.js';\nimport toFormData from './helpers/toFormData.js';\nimport AxiosError from './core/AxiosError.js';\nimport spread from './helpers/spread.js';\nimport isAxiosError from './helpers/isAxiosError.js';\nimport AxiosHeaders from \"./core/AxiosHeaders.js\";\nimport adapters from './adapters/adapters.js';\nimport HttpStatusCode from './helpers/HttpStatusCode.js';\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n *\n * @returns {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n const context = new Axios(defaultConfig);\n const instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context, {allOwnKeys: true});\n\n // Copy context to instance\n utils.extend(instance, context, null, {allOwnKeys: true});\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nconst axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.CanceledError = CanceledError;\naxios.CancelToken = CancelToken;\naxios.isCancel = isCancel;\naxios.VERSION = VERSION;\naxios.toFormData = toFormData;\n\n// Expose AxiosError class\naxios.AxiosError = AxiosError;\n\n// alias for CanceledError for backward compatibility\naxios.Cancel = axios.CanceledError;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\n\naxios.spread = spread;\n\n// Expose isAxiosError\naxios.isAxiosError = isAxiosError;\n\n// Expose mergeConfig\naxios.mergeConfig = mergeConfig;\n\naxios.AxiosHeaders = AxiosHeaders;\n\naxios.formToJSON = thing => formDataToJSON(utils.isHTMLForm(thing) ? new FormData(thing) : thing);\n\naxios.getAdapter = adapters.getAdapter;\n\naxios.HttpStatusCode = HttpStatusCode;\n\naxios.default = axios;\n\n// this module should only have a default export\nexport default axios\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{ref:\"roomRef\",staticClass:\"tui-room\",attrs:{\"id\":\"roomContainer\"}},[_c(_setup.RoomHeader,{directives:[{name:\"show\",rawName:\"v-show\",value:(_setup.showRoomTool && _setup.showHeaderTool),expression:\"showRoomTool && showHeaderTool\"}],staticClass:\"header\",on:{\"log-out\":_setup.logOut,\"on-destroy-room\":_setup.onDestroyRoom,\"on-exit-room\":_setup.onExitRoom}}),_c(_setup.RoomContent,{directives:[{name:\"tap\",rawName:\"v-tap\",value:(_setup.handleRoomContentTap),expression:\"handleRoomContentTap\"}],ref:\"roomContentRef\",staticClass:\"content\",attrs:{\"show-room-tool\":_setup.showRoomTool}}),_c(_setup.RoomFooter,{directives:[{name:\"show\",rawName:\"v-show\",value:(_setup.showRoomTool),expression:\"showRoomTool\"}],staticClass:\"footer\",on:{\"on-destroy-room\":_setup.onDestroyRoom,\"on-exit-room\":_setup.onExitRoom}}),_c(_setup.RoomSidebar),_c(_setup.RoomSetting)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"header\"},[_c('div',{staticClass:\"header-container\"},[_c('div',{staticClass:\"icon-box\"},[_c(_setup.SwitchCamera),_c(_setup.SwitchMirror)],1),_c(_setup.RoomInfo),_c(_setup.EndControl,{on:{\"on-destroy-room\":_setup.onDestroyRoom,\"on-exit-room\":_setup.onExitRoom}})],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_c('div',{staticClass:\"end-control-container\"},[_c('div',{directives:[{name:\"tap\",rawName:\"v-tap\",value:(_setup.stopMeeting),expression:\"stopMeeting\"}],staticClass:\"end-button\",attrs:{\"tabindex\":\"1\"}},[_vm._v(_vm._s(_setup.t('EndH5')))])]),(_setup.visible)?_c('div',{staticClass:\"end-main-content\"},[_c('div',{class:_setup.isShowLeaveRoomDialog ? 'end-dialog-leave':'end-dialog-dismiss'},[(_setup.currentDialogType === _setup.DialogType.BasicDialog)?_c('div',[(_setup.roomStore.isMaster)?_c('div',{staticClass:\"end-dialog-header\"},[(_setup.roomStore.isMaster)?_c('span',{staticClass:\"end-dialog-text\"},[_vm._v(\" \"+_vm._s(_setup.t('If you do not want to end the meeting, please designate a new host before leaving the meeting.'))+\" \")]):_c('span',[_vm._v(_vm._s(_setup.t('Are you sure you want to leave this room?')))])]):_vm._e()]):_vm._e(),(_setup.currentDialogType === _setup.DialogType.BasicDialog)?_c('div',{staticClass:\"dialog-middle-content\"},[(_setup.roomStore.isMaster)?_c('span',{class:_setup.isShowLeaveRoomDialog ? 'end-button-dismiss':'end-button-dismiss-single',on:{\"click\":function($event){$event.stopPropagation();return _setup.dismissRoom.apply(null, arguments)}}},[_vm._v(\" \"+_vm._s(_setup.t('Dismiss'))+\" \")]):_vm._e(),(_setup.isShowLeaveRoomDialog)?_c('span',{directives:[{name:\"tap\",rawName:\"v-tap\",value:(_setup.leaveRoom),expression:\"leaveRoom\"}],class:_setup.roomStore.isMaster ?'end-button-leave':'end-button-leave-single'},[_vm._v(\" \"+_vm._s(_setup.t('Leave'))+\" \")]):_vm._e(),_c('span',{staticClass:\"end-button-cancel\",on:{\"click\":function($event){$event.stopPropagation();return _setup.cancel.apply(null, arguments)}}},[_vm._v(_vm._s(_setup.t('Cancel')))])]):_vm._e(),(_setup.currentDialogType === _setup.DialogType.TransferDialog)?_c('div',[_c('span',{staticClass:\"end-button-cancel\",on:{\"click\":function($event){$event.stopPropagation();return _setup.cancel.apply(null, arguments)}}},[_vm._v(_vm._s(_setup.t('Cancel')))])]):_vm._e()])]):_vm._e(),_c(_setup.popup,{directives:[{name:\"show\",rawName:\"v-show\",value:(_setup.showSideBar),expression:\"showSideBar\"}],staticClass:\"transfer-container\",attrs:{\"title\":_setup.t('Appoint a new host')},scopedSlots:_vm._u([{key:\"sidebarContent\",fn:function(){return [_c('div',{staticStyle:{\"height\":\"100%\"}},[_c('div',[_c('div',{staticClass:\"transfer-header\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_setup.searchName),expression:\"searchName\"}],staticClass:\"searching-input\",attrs:{\"type\":\"text\",\"placeholder\":_setup.t('Search for conference attendees'),\"enterkeyhint\":\"done\"},domProps:{\"value\":(_setup.searchName)},on:{\"input\":function($event){if($event.target.composing)return;_setup.searchName=$event.target.value}}})]),_c('div',{staticClass:\"transfer-body\"},[_vm._l((_setup.filteredList),function(user){return _c('div',{key:user.userId,staticClass:\"transfer-list-content\",on:{\"click\":function($event){return _setup.handleShowMemberControl(user.userId)}}},[_c('div',{staticClass:\"member-basic-info\"},[_c(_setup.Avatar,{staticClass:\"avatar-url\",attrs:{\"img-src\":user.avatarUrl}}),_c('div',{staticClass:\"user-name\"},[_vm._v(_vm._s(user.userName || user.userId))]),(_setup.selectedUser === user.userId)?_c(_setup.SvgIcon,{staticClass:\"correct\",attrs:{\"icon-name\":\"correct\",\"size\":\"custom\"}}):_vm._e()],1)])}),(_setup.hasNoData)?_c('div',{staticClass:\"member-hasNoData\"},[_vm._v(_vm._s(_setup.t('No relevant user found.')))]):_vm._e()],2)])])]},proxy:true},{key:\"sidebarFooter\",fn:function(){return [_c('div',{staticClass:\"transfer-leave\",on:{\"click\":_setup.transferAndLeave}},[_c('span',{staticClass:\"transfer-button\"},[_vm._v(_vm._s(_setup.t('Transfer and leave')))])])]},proxy:true}])})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { ref, Ref, computed } from 'vue';\nimport { useBasicStore } from '../../../stores/basic';\nimport { useRoomStore } from '../../../stores/room';\nimport { storeToRefs } from 'pinia';\nimport { useI18n } from '../../../locales';\nimport useGetRoomEngine from '../../../hooks/useRoomEngine';\nimport logger from '../../../utils/common/logger';\n\nexport default function useEndControl() {\n const { t } = useI18n();\n enum DialogType {\n BasicDialog,\n TransferDialog\n }\n const currentDialogType = ref(DialogType.BasicDialog);\n\n const logPrefix = '[EndControl]';\n const roomEngine = useGetRoomEngine();\n const visible: Ref = ref(false);\n const basicStore = useBasicStore();\n logger.log(`${logPrefix} basicStore:`, basicStore);\n\n const roomStore = useRoomStore();\n const { localUser, remoteAnchorList } = storeToRefs(roomStore);\n const title = computed(() => (currentDialogType.value === DialogType.BasicDialog ? t('Leave room?') : t('Select a new host')));\n const isShowLeaveRoomDialog = computed(() => (\n roomStore.isMaster && remoteAnchorList.value.length > 0)\n || !roomStore.isMaster);\n const { isSidebarOpen, sidebarName } = storeToRefs(basicStore);\n const showSideBar = computed(() => isSidebarOpen.value && sidebarName.value === 'transfer-leave');\n const selectedUser: Ref = ref('');\n const showTransfer = ref(false);\n const searchName = ref('');\n const filteredList = computed(() => remoteAnchorList.value.filter(searchUser => (\n searchUser.userId.includes(searchName.value)) || (searchUser.userName?.includes(searchName.value))));\n const hasNoData = computed(() => filteredList.value.length === 0);\n\n function toggleMangeMemberSidebar() {\n if (basicStore.setSidebarOpenStatus && sidebarName.value === 'transfer-leave') {\n basicStore.setSidebarOpenStatus(false);\n basicStore.setSidebarName('');\n return;\n }\n\n basicStore.setSidebarOpenStatus(true);\n basicStore.setSidebarName('transfer-leave');\n }\n\n function handleShowMemberControl(userId: string) {\n selectedUser.value = userId;\n }\n\n function resetState() {\n visible.value = false;\n currentDialogType.value = DialogType.BasicDialog;\n }\n\n function stopMeeting() {\n if (!visible.value) {\n visible.value = true;\n }\n }\n\n function cancel() {\n resetState();\n }\n\n async function closeMediaBeforeLeave() {\n if (localUser.value.hasAudioStream) {\n await roomEngine.instance?.closeLocalMicrophone();\n }\n if (localUser.value.hasVideoStream) {\n await roomEngine.instance?.closeLocalCamera();\n }\n }\n return {\n t,\n basicStore,\n isShowLeaveRoomDialog,\n roomStore,\n roomEngine,\n localUser,\n remoteAnchorList,\n stopMeeting,\n cancel,\n selectedUser,\n DialogType,\n logPrefix,\n title,\n currentDialogType,\n visible,\n closeMediaBeforeLeave,\n resetState,\n searchName,\n hasNoData,\n handleShowMemberControl,\n filteredList,\n toggleMangeMemberSidebar,\n showTransfer,\n sidebarName,\n showSideBar,\n };\n}\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"popup-container\"},[_c('div',{staticClass:\"popup-main-header\"},[_c('span',{directives:[{name:\"tap\",rawName:\"v-tap\",value:(_setup.handleClose),expression:\"handleClose\"}],staticClass:\"icon-container\"},[_c(_setup.SvgIcon,{staticClass:\"close-icon\",attrs:{\"size\":\"custom\",\"icon-name\":\"close-back\"}})],1),_c('span',{staticClass:\"sidebar-title\"},[_vm._v(_vm._s(_vm.title))])]),_c('div',{staticClass:\"popup-main-content\"},[_vm._t(\"sidebarContent\")],2),_c('div',{staticClass:\"popup-main-footer\"},[_vm._t(\"sidebarFooter\")],2)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { defineComponent as _defineComponent } from 'vue'\nimport SvgIcon from './SvgIcon.vue';\nimport { useBasicStore } from '../../stores/basic';\nimport '../../directives/vTap';\n\ninterface Props {\n title: string,\n}\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'PopUpH5',\n props: {\n title: null\n },\n setup(__props: any) {\n\n\n\nconst basicStore = useBasicStore();\n\nfunction handleClose() {\n basicStore.setSidebarOpenStatus(false);\n basicStore.setSidebarName('');\n}\n\n\nreturn { __sfc: true,basicStore, handleClose, SvgIcon }\n}\n\n})","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PopUpH5.vue?vue&type=script&setup=true&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PopUpH5.vue?vue&type=script&setup=true&lang=ts&\"","import { render, staticRenderFns } from \"./PopUpH5.vue?vue&type=template&id=4069d388&scoped=true&\"\nimport script from \"./PopUpH5.vue?vue&type=script&setup=true&lang=ts&\"\nexport * from \"./PopUpH5.vue?vue&type=script&setup=true&lang=ts&\"\nimport style0 from \"./PopUpH5.vue?vue&type=style&index=0&id=4069d388&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4069d388\",\n null\n \n)\n\nexport default component.exports","import { defineComponent as _defineComponent } from 'vue'\nimport { onUnmounted } from 'vue';\nimport { ElMessageBox, ElMessage } from '../../../elementComp';\nimport TUIRoomEngine, { TUIRole, TUIRoomEvents } from '@tencentcloud/tuiroom-engine-js';\nimport useEndControl from './useEndControlHooks';\nimport logger from '../../../utils/common/logger';\nimport popup from '../../common/PopUpH5.vue';\nimport SvgIcon from '../../common/SvgIcon.vue';\nimport Avatar from '../../base/Avatar.vue';\nimport '../../../directives/vTap';\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'EndControlH5',\n emits: ['on-exit-room', 'on-destroy-room'],\n setup(__props, { emit }) {\n\nconst {\n t,\n isShowLeaveRoomDialog,\n roomStore,\n basicStore,\n roomEngine,\n localUser,\n stopMeeting,\n cancel,\n DialogType,\n logPrefix,\n currentDialogType,\n visible,\n closeMediaBeforeLeave,\n resetState,\n toggleMangeMemberSidebar,\n searchName,\n hasNoData,\n handleShowMemberControl,\n filteredList,\n selectedUser,\n showSideBar,\n} = useEndControl();\n\n\n\n\n\n/**\n * Active room dismissal\n *\n * 主动解散房间\n**/\nasync function dismissRoom() {\n try {\n logger.log(`${logPrefix}dismissRoom: enter`);\n await closeMediaBeforeLeave();\n await roomEngine.instance?.destroyRoom();\n resetState();\n emit('on-destroy-room', { code: 0, message: '' });\n } catch (error) {\n logger.error(`${logPrefix}dismissRoom error:`, error);\n }\n}\n\n/**\n * Leave the room voluntarily\n *\n * 主动离开房间\n**/\nasync function leaveRoom() { // eslint-disable-line\n try {\n if (roomStore.isMaster) {\n toggleMangeMemberSidebar();\n resetState();\n return;\n }\n await closeMediaBeforeLeave();\n const response = await roomEngine.instance?.exitRoom();\n logger.log(`${logPrefix}leaveRoom:`, response);\n resetState();\n emit('on-exit-room', { code: 0, message: '' });\n } catch (error) {\n logger.error(`${logPrefix}leaveRoom error:`, error);\n }\n}\n\nasync function transferAndLeave() {\n if (!selectedUser.value) {\n return;\n }\n try {\n const userId = selectedUser.value;\n const changeUserRoleResponse = await roomEngine.instance?.changeUserRole({ userId, userRole: TUIRole.kRoomOwner });\n logger.log(`${logPrefix}transferAndLeave:`, changeUserRoleResponse);\n await closeMediaBeforeLeave();\n const exitRoomResponse = await roomEngine.instance?.exitRoom();\n logger.log(`${logPrefix}exitRoom:`, exitRoomResponse);\n basicStore.setSidebarOpenStatus(false);\n basicStore.setSidebarName('');\n resetState();\n emit('on-exit-room', { code: 0, message: '' });\n } catch (error) {\n logger.error(`${logPrefix}transferAndLeave error:`, error);\n }\n}\n\n/**\n * notification of room dismissal from the host\n *\n * 收到主持人解散房间通知\n**/\nconst onRoomDismissed = async (eventInfo: { roomId: string}) => {\n try {\n const { roomId } = eventInfo;\n logger.log(`${logPrefix}onRoomDismissed:`, roomId);\n ElMessageBox.alert(t('The host closed the room.'), t('Note'), {\n customClass: 'custom-element-class',\n confirmButtonText: t('Confirm'),\n appendTo: '#roomContainer',\n callback: async () => {\n resetState();\n emit('on-destroy-room', { code: 0, message: '' });\n },\n });\n } catch (error) {\n logger.error(`${logPrefix}onRoomDestroyed error:`, error);\n }\n};\n\n/**\n * By listening for a change in ownerId,\n * the audience receives a notification that the host has handed over the privileges\n *\n**/\n\nconst onUserRoleChanged = async (eventInfo: {userId: string, userRole: TUIRole }) => {\n if (eventInfo.userRole === TUIRole.kRoomOwner) {\n const { userId } = eventInfo;\n let newName = roomStore.getUserName(userId) || userId;\n if (userId === localUser.value.userId) {\n newName = t('me');\n }\n const tipMessage = `${t('Moderator changed to ')}${newName}`;\n ElMessage({\n type: 'success',\n message: tipMessage,\n });\n if (roomStore.localUser.userId === userId) {\n roomStore.setLocalUser({ userRole: TUIRole.kRoomOwner });\n } else {\n roomStore.setRemoteUserRole(userId, TUIRole.kRoomOwner);\n }\n roomStore.setMasterUserId(userId);\n resetState();\n if (roomStore.isAnchor) return;\n if (roomStore.isSpeakAfterTakingSeatMode) {\n await roomEngine.instance?.takeSeat({ seatIndex: -1, timeout: 0 });\n };\n }\n};\n\nTUIRoomEngine.once('ready', () => {\n roomEngine.instance?.on(TUIRoomEvents.onRoomDismissed, onRoomDismissed);\n roomEngine.instance?.on(TUIRoomEvents.onUserRoleChanged, onUserRoleChanged);\n});\n\nonUnmounted(() => {\n roomEngine.instance?.off(TUIRoomEvents.onRoomDismissed, onRoomDismissed);\n roomEngine.instance?.off(TUIRoomEvents.onUserRoleChanged, onUserRoleChanged);\n});\n\n\nreturn { __sfc: true,t, isShowLeaveRoomDialog, roomStore, basicStore, roomEngine, localUser, stopMeeting, cancel, DialogType, logPrefix, currentDialogType, visible, closeMediaBeforeLeave, resetState, toggleMangeMemberSidebar, searchName, hasNoData, handleShowMemberControl, filteredList, selectedUser, showSideBar, emit, dismissRoom, leaveRoom, transferAndLeave, onRoomDismissed, onUserRoleChanged, popup, SvgIcon, Avatar }\n}\n\n})","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./EndControlH5.vue?vue&type=script&setup=true&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./EndControlH5.vue?vue&type=script&setup=true&lang=ts&\"","import { render, staticRenderFns } from \"./EndControlH5.vue?vue&type=template&id=12377224&scoped=true&\"\nimport script from \"./EndControlH5.vue?vue&type=script&setup=true&lang=ts&\"\nexport * from \"./EndControlH5.vue?vue&type=script&setup=true&lang=ts&\"\nimport style0 from \"./EndControlH5.vue?vue&type=style&index=0&id=12377224&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"12377224\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"end-control-container\"},[_c('div',{staticClass:\"end-button\",attrs:{\"tabindex\":\"1\"},on:{\"click\":_setup.stopMeeting}},[_vm._v(_vm._s(_setup.t('EndPC')))]),_c(_setup.Dialog,{staticClass:\"custom-element-class\",attrs:{\"model-value\":_setup.visible,\"title\":_setup.title,\"modal\":true,\"append-to-body\":false,\"width\":\"420px\",\"before-close\":_setup.cancel,\"close-on-click-modal\":true},scopedSlots:_vm._u([{key:\"footer\",fn:function(){return [(_setup.currentDialogType === _setup.DialogType.BasicDialog)?_c('div',[(_setup.roomStore.isMaster)?_c('el-button',{attrs:{\"type\":\"primary\"},on:{\"click\":function($event){$event.stopPropagation();return _setup.dismissRoom.apply(null, arguments)}}},[_vm._v(\" \"+_vm._s(_setup.t('Dismiss'))+\" \")]):_vm._e(),(_setup.isShowLeaveRoomDialog)?_c('el-button',{attrs:{\"type\":\"primary\"},on:{\"click\":_setup.leaveRoom}},[_vm._v(_vm._s(_setup.t('Leave')))]):_vm._e(),_c('el-button',{on:{\"click\":function($event){$event.stopPropagation();return _setup.cancel.apply(null, arguments)}}},[_vm._v(_vm._s(_setup.t('Cancel')))])],1):_vm._e(),(_setup.currentDialogType === _setup.DialogType.TransferDialog)?_c('div',[_c('el-button',{attrs:{\"type\":\"primary\"},on:{\"click\":_setup.transferAndLeave}},[_vm._v(_vm._s(_setup.t('Transfer and leave')))]),_c('el-button',{on:{\"click\":function($event){$event.stopPropagation();return _setup.cancel.apply(null, arguments)}}},[_vm._v(_vm._s(_setup.t('Cancel')))])],1):_vm._e()]},proxy:true}])},[(_setup.currentDialogType === _setup.DialogType.BasicDialog)?_c('div',[(_setup.roomStore.isMaster)?_c('span',[_vm._v(\" \"+_vm._s(_setup.t('You are currently the room host, please select the appropriate action.If you select \"Leave Room\", the room will not be dissolved and you will need to appoint a new host.'))+\" \")]):_c('span',[_vm._v(_vm._s(_setup.t('Are you sure you want to leave this room?')))])]):_vm._e(),(_setup.currentDialogType === _setup.DialogType.TransferDialog)?_c('div',[_c('div',[_vm._v(_vm._s(_setup.t('New host')))]),_c('div',[_c('el-select',{attrs:{\"teleported\":false,\"popper-append-to-body\":false},model:{value:(_setup.selectedUser),callback:function ($$v) {_setup.selectedUser=$$v},expression:\"selectedUser\"}},_vm._l((_setup.remoteAnchorList),function(user){return _c('el-option',{key:user.userId,attrs:{\"value\":user.userId,\"label\":user.userName}})}),1)],1)]):_vm._e()])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { defineComponent as _defineComponent } from 'vue'\nimport { onUnmounted } from 'vue';\nimport { ElMessageBox, ElMessage } from '../../../elementComp';\nimport Dialog from '../../../elementComp/Dialog';\nimport TUIRoomEngine, { TUIRole, TUIRoomEvents } from '@tencentcloud/tuiroom-engine-js';\nimport useEndControl from './useEndControlHooks';\nimport logger from '../../../utils/common/logger';\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'EndControlPC',\n emits: ['on-exit-room', 'on-destroy-room'],\n setup(__props, { emit }) {\n\nconst {\n t,\n isShowLeaveRoomDialog,\n roomStore,\n basicStore,\n roomEngine,\n localUser,\n remoteAnchorList,\n stopMeeting,\n cancel,\n selectedUser,\n DialogType,\n logPrefix,\n title,\n currentDialogType,\n visible,\n closeMediaBeforeLeave,\n resetState,\n} = useEndControl();\n\n\n\n\n/**\n * Active room dismissal\n *\n * 主动解散房间\n**/\nasync function dismissRoom() {\n try {\n logger.log(`${logPrefix}dismissRoom: enter`);\n await closeMediaBeforeLeave();\n await roomEngine.instance?.destroyRoom();\n resetState();\n emit('on-destroy-room', { code: 0, message: '' });\n } catch (error) {\n logger.error(`${logPrefix}dismissRoom error:`, error);\n }\n}\n\n/**\n * Leave the room voluntarily\n *\n * 主动离开房间\n**/\nasync function leaveRoom() { // eslint-disable-line\n try {\n if (roomStore.isMaster) {\n currentDialogType.value = DialogType.TransferDialog;\n return;\n }\n await closeMediaBeforeLeave();\n const response = await roomEngine.instance?.exitRoom();\n logger.log(`${logPrefix}leaveRoom:`, response);\n resetState();\n emit('on-exit-room', { code: 0, message: '' });\n } catch (error) {\n logger.error(`${logPrefix}leaveRoom error:`, error);\n }\n}\n\nasync function transferAndLeave() {\n if (!selectedUser.value) {\n return;\n }\n try {\n const userId = selectedUser.value;\n const changeUserRoleResponse = await roomEngine.instance?.changeUserRole({ userId, userRole: TUIRole.kRoomOwner });\n logger.log(`${logPrefix}transferAndLeave:`, changeUserRoleResponse);\n await closeMediaBeforeLeave();\n const exitRoomResponse = await roomEngine.instance?.exitRoom();\n logger.log(`${logPrefix}exitRoom:`, exitRoomResponse);\n basicStore.setSidebarOpenStatus(false);\n basicStore.setSidebarName('');\n resetState();\n emit('on-exit-room', { code: 0, message: '' });\n } catch (error) {\n logger.error(`${logPrefix}transferAndLeave error:`, error);\n }\n}\n\n/**\n * notification of room dismissal from the host\n *\n * 收到主持人解散房间通知\n**/\nconst onRoomDismissed = async (eventInfo: { roomId: string}) => {\n try {\n const { roomId } = eventInfo;\n logger.log(`${logPrefix}onRoomDismissed:`, roomId);\n ElMessageBox.alert(t('The host closed the room.'), t('Note'), {\n customClass: 'custom-element-class',\n confirmButtonText: t('Confirm'),\n appendTo: '#roomContainer',\n callback: async () => {\n resetState();\n emit('on-destroy-room', { code: 0, message: '' });\n },\n });\n } catch (error) {\n logger.error(`${logPrefix}onRoomDestroyed error:`, error);\n }\n};\n\n/**\n * By listening for a change in ownerId,\n * the audience receives a notification that the host has handed over the privileges\n *\n**/\n\nconst onUserRoleChanged = async (eventInfo: {userId: string, userRole: TUIRole }) => {\n if (eventInfo.userRole === TUIRole.kRoomOwner) {\n const { userId } = eventInfo;\n let newName = roomStore.getUserName(userId) || userId;\n if (userId === localUser.value.userId) {\n newName = t('me');\n }\n const tipMessage = `${t('Moderator changed to ')}${newName}`;\n ElMessage({\n type: 'success',\n message: tipMessage,\n });\n if (roomStore.localUser.userId === userId) {\n roomStore.setLocalUser({ userRole: TUIRole.kRoomOwner });\n } else {\n roomStore.setRemoteUserRole(userId, TUIRole.kRoomOwner);\n }\n roomStore.setMasterUserId(userId);\n resetState();\n if (roomStore.isAnchor) return;\n if (roomStore.isSpeakAfterTakingSeatMode) {\n await roomEngine.instance?.takeSeat({ seatIndex: -1, timeout: 0 });\n }\n }\n};\n\nTUIRoomEngine.once('ready', () => {\n roomEngine.instance?.on(TUIRoomEvents.onRoomDismissed, onRoomDismissed);\n roomEngine.instance?.on(TUIRoomEvents.onUserRoleChanged, onUserRoleChanged);\n});\n\nonUnmounted(() => {\n roomEngine.instance?.off(TUIRoomEvents.onRoomDismissed, onRoomDismissed);\n roomEngine.instance?.off(TUIRoomEvents.onUserRoleChanged, onUserRoleChanged);\n});\n\n\nreturn { __sfc: true,t, isShowLeaveRoomDialog, roomStore, basicStore, roomEngine, localUser, remoteAnchorList, stopMeeting, cancel, selectedUser, DialogType, logPrefix, title, currentDialogType, visible, closeMediaBeforeLeave, resetState, emit, dismissRoom, leaveRoom, transferAndLeave, onRoomDismissed, onUserRoleChanged, Dialog }\n}\n\n})","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./EndControlPC.vue?vue&type=script&setup=true&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./EndControlPC.vue?vue&type=script&setup=true&lang=ts&\"","import { render, staticRenderFns } from \"./EndControlPC.vue?vue&type=template&id=bcdd5c40&scoped=true&\"\nimport script from \"./EndControlPC.vue?vue&type=script&setup=true&lang=ts&\"\nexport * from \"./EndControlPC.vue?vue&type=script&setup=true&lang=ts&\"\nimport style0 from \"./EndControlPC.vue?vue&type=style&index=0&id=bcdd5c40&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"bcdd5c40\",\n null\n \n)\n\nexport default component.exports","import EndControlH5 from './EndControlH5.vue';\nimport EndControlPC from './EndControlPC.vue';\n\nimport { isMobile } from '../../../utils/useMediaValue';\n\nconst EndControl = isMobile ? EndControlH5 : EndControlPC;\n\nexport default EndControl;\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"camera-icon\"},[_c(_setup.SvgIcon,{directives:[{name:\"tap\",rawName:\"v-tap\",value:(_setup.handleSwitchCamera),expression:\"handleSwitchCamera\"}],attrs:{\"icon-name\":\"camera\",\"size\":\"custom\",\"custom-style\":{\n backgroundSize: '50%'\n }}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { defineComponent as _defineComponent } from 'vue'\nimport useGetRoomEngine from '../../../hooks/useRoomEngine';\nimport SvgIcon from '../../common/SvgIcon.vue';\nimport { storeToRefs } from 'pinia';\nimport { useBasicStore } from '../../../stores/basic';\nimport '../../../directives/vTap';\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'SwitchCamera',\n setup(__props) {\n\nconst basicStore = useBasicStore();\nconst { isFrontCamera } = storeToRefs(basicStore);\nconst roomEngine = useGetRoomEngine();\n\nasync function handleSwitchCamera() {\n await roomEngine.instance?.switchCamera({ isFrontCamera: !isFrontCamera.value });\n basicStore.setIsFrontCamera(!isFrontCamera.value);\n}\n\nreturn { __sfc: true,basicStore, isFrontCamera, roomEngine, handleSwitchCamera, SvgIcon }\n}\n\n})","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SwitchCamera.vue?vue&type=script&setup=true&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SwitchCamera.vue?vue&type=script&setup=true&lang=ts&\"","import { render, staticRenderFns } from \"./SwitchCamera.vue?vue&type=template&id=190ccb04&scoped=true&\"\nimport script from \"./SwitchCamera.vue?vue&type=script&setup=true&lang=ts&\"\nexport * from \"./SwitchCamera.vue?vue&type=script&setup=true&lang=ts&\"\nimport style0 from \"./SwitchCamera.vue?vue&type=style&index=0&id=190ccb04&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"190ccb04\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"mirror-icon\"},[_c(_setup.SvgIcon,{directives:[{name:\"tap\",rawName:\"v-tap\",value:(_setup.toogleMirrorStatus),expression:\"toogleMirrorStatus\"}],attrs:{\"icon-name\":\"mirror\",\"size\":\"custom\",\"custom-style\":{backgroundSize: '50%'}}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { defineComponent as _defineComponent } from 'vue'\nimport SvgIcon from '../../common/SvgIcon.vue';\nimport { useBasicStore } from '../../../stores/basic';\n\nimport useGetRoomEngine from '../../../hooks/useRoomEngine';\nimport { TRTCVideoMirrorType, TRTCVideoRotation, TRTCVideoFillMode } from '@tencentcloud/tuiroom-engine-js';\nimport '../../../directives/vTap';\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'SwitchMirror',\n setup(__props) {\n\nconst roomEngine = useGetRoomEngine();\nconst basicStore = useBasicStore();\n\nfunction toogleMirrorStatus() {\n const trtcCloud = roomEngine.instance?.getTRTCCloud();\n trtcCloud?.setLocalRenderParams({\n mirrorType:\n basicStore.isLocalStreamMirror\n ? TRTCVideoMirrorType.TRTCVideoMirrorType_Enable : TRTCVideoMirrorType.TRTCVideoMirrorType_Disable,\n rotation: TRTCVideoRotation.TRTCVideoRotation0,\n fillMode: TRTCVideoFillMode.TRTCVideoFillMode_Fill,\n });\n basicStore.setIsLocalStreamMirror(basicStore.isLocalStreamMirror);\n basicStore.isLocalStreamMirror = !basicStore.isLocalStreamMirror;\n}\n\n\nreturn { __sfc: true,roomEngine, basicStore, toogleMirrorStatus, SvgIcon }\n}\n\n})","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SwitchMirror.vue?vue&type=script&setup=true&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SwitchMirror.vue?vue&type=script&setup=true&lang=ts&\"","import { render, staticRenderFns } from \"./SwitchMirror.vue?vue&type=template&id=9a54a9ea&scoped=true&\"\nimport script from \"./SwitchMirror.vue?vue&type=script&setup=true&lang=ts&\"\nexport * from \"./SwitchMirror.vue?vue&type=script&setup=true&lang=ts&\"\nimport style0 from \"./SwitchMirror.vue?vue&type=style&index=0&id=9a54a9ea&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"9a54a9ea\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"conference-container\"},[(_setup.isShowRoomInfoTitle)?_c('div',{on:{\"click\":_setup.toggleShowRoomInfoStatus}},[_c('div',{staticClass:\"title-container\"},[_c('span',{staticClass:\"text\"},[_vm._v(_vm._s(_setup.conferenceTitle))]),_c('span',{staticClass:\"chevron-down-container\"},[_c(_setup.SvgIcon,{staticClass:\"chevron-down-icon\",attrs:{\"size\":\"custom\",\"icon-name\":\"chevron-down\"}})],1)])]):_vm._e(),(_setup.isShowRoomInfo)?_c('div',{staticClass:\"roomInfo-container\"},[_c('div',{ref:\"roomInfoRef\",staticClass:\"roomInfo-container-main\"},[_c('div',{staticClass:\"roomInfo-title\"},[_c('span',{staticClass:\"master-header\"},[_vm._v(_vm._s(_setup.conferenceTitle))]),_c('span',{staticClass:\"cancel\",on:{\"click\":_setup.handleHiddenRoomInfo}},[_vm._v(_vm._s(_setup.t('Cancel')))])]),_c('div',{staticClass:\"roomInfo-middle\"},[_c('div',{staticClass:\"roomInfo-role\"},[_c('span',[_vm._v(_vm._s(_setup.t('Host')))]),_c('span',{staticClass:\"text-right\"},[_vm._v(_vm._s(_setup.masterUserName))])]),_c('div',{staticClass:\"roomInfo-roomMode\"},[_c('span',{staticClass:\"middle-left\"},[_vm._v(_vm._s(_setup.t('Room Type')))]),_c('span',{staticClass:\"text-type\"},[_vm._v(_vm._s(_setup.roomType))])]),_c('div',{staticClass:\"roomInfo-roomID\"},[_c('span',{staticClass:\"middle-left\"},[_vm._v(_vm._s(_setup.t('Room ID')))]),_c('span',{staticClass:\"text-right\"},[_vm._v(_vm._s(_setup.roomId))]),_c(_setup.SvgIcon,{staticClass:\"copy\",attrs:{\"icon-name\":\"copy-icon\",\"size\":\"custom\"},on:{\"click\":function($event){return _setup.onCopy(_setup.roomId)}}})],1),(!_setup.isWeChat)?_c('div',{staticClass:\"roomInfo-roomID\"},[_c('span',[_vm._v(_vm._s(_setup.t('Room Link')))]),_c('span',{staticClass:\"link\"},[_vm._v(_vm._s(_setup.inviteLink))]),_c(_setup.SvgIcon,{staticClass:\"copy\",attrs:{\"icon-name\":\"copy-icon\"},on:{\"click\":function($event){return _setup.onCopy(_setup.inviteLink)}}})],1):_vm._e()]),(!_setup.isWeChat)?_c('div',{staticClass:\"roomInfo-bottom\"},[_c('span',[_vm._v(_vm._s(_setup.t('You can share the room number or link to invite more people to join the room.')))])]):_vm._e()])]):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { defineComponent as _defineComponent } from 'vue'\nimport { ref, computed, onMounted, onUnmounted } from 'vue';\nimport { useI18n } from '../../../locales';\nimport { useBasicStore } from '../../../stores/basic';\nimport { useRoomStore } from '../../../stores/room';\nimport { storeToRefs } from 'pinia';\nimport SvgIcon from '../../common/SvgIcon.vue';\nimport { ElMessage } from '../../../elementComp';\nimport { isWeChat } from '../../../utils/useMediaValue';\nimport { clipBoard } from '../../../utils/utils';\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'RoomInfo',\n setup(__props) {\n\nconst basicStore = useBasicStore();\nconst roomStore = useRoomStore();\nconst { roomId } = storeToRefs(basicStore);\nconst { masterUserId } = storeToRefs(roomStore);\nconst { t } = useI18n();\nconst roomInfoRef = ref();\nconst isShowRoomInfo = ref(false);\nconst roomType = computed(() => (roomStore.isFreeSpeakMode ? t('Free Speech Room') : t('Raise Hand Room')));\n\nconst { origin, pathname } = location || {};\nconst inviteLink = computed(() => `${origin}${pathname}#/home?roomId=${roomId.value}`);\n\nconst masterUserName = computed(() => (roomStore.getUserName(masterUserId.value)) || masterUserId.value);\n\nconst isShowRoomInfoTitle = computed(() => (masterUserName.value));\n\nconst conferenceTitle = computed(() => `${masterUserName.value}${t('video conferencing')}`);\n\nfunction toggleShowRoomInfoStatus() {\n isShowRoomInfo.value = !isShowRoomInfo.value;\n}\n\nasync function onCopy(value: string | number) {\n try {\n await clipBoard(value);\n ElMessage({\n message: t('Copied successfully'),\n type: 'success',\n });\n } catch (error) {\n ElMessage({\n message: t('Copied failure'),\n type: 'error',\n });\n }\n}\n\nfunction handleDocumentClick(event: MouseEvent) {\n if (isShowRoomInfo.value && !roomInfoRef.value.contains(event.target)) {\n isShowRoomInfo.value = false;\n }\n}\n\nfunction handleHiddenRoomInfo() {\n isShowRoomInfo.value = false;\n}\n\n\nonMounted(() => {\n document?.addEventListener('click', handleDocumentClick, true);\n});\n\nonUnmounted(() => {\n document?.removeEventListener('click', handleDocumentClick, true);\n});\n\n\nreturn { __sfc: true,basicStore, roomStore, roomId, masterUserId, t, roomInfoRef, isShowRoomInfo, roomType, origin, pathname, inviteLink, masterUserName, isShowRoomInfoTitle, conferenceTitle, toggleShowRoomInfoStatus, onCopy, handleDocumentClick, handleHiddenRoomInfo, SvgIcon, isWeChat }\n}\n\n})","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./RoomInfo.vue?vue&type=script&setup=true&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./RoomInfo.vue?vue&type=script&setup=true&lang=ts&\"","import { render, staticRenderFns } from \"./RoomInfo.vue?vue&type=template&id=543146aa&scoped=true&\"\nimport script from \"./RoomInfo.vue?vue&type=script&setup=true&lang=ts&\"\nexport * from \"./RoomInfo.vue?vue&type=script&setup=true&lang=ts&\"\nimport style0 from \"./RoomInfo.vue?vue&type=style&index=0&id=543146aa&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"543146aa\",\n null\n \n)\n\nexport default component.exports","/**\n * 需要配置 isUploadLoaded, aegisId, projectName\n * isUploadLoaded: 上传 loaded 事件\n * isUploadDetailEvent: 上传 loaded 及其他操作事件\n * aegisId: aegis Id\n * projectName: 项目名称\n */\n\nconst IS_LOCAL = location.protocol === 'file:' || location.hostname === 'localhost' || location.hostname === '127.0.0.1';\nconst IS_OFFICIAL_DEMO = location.host === 'web.sdk.qcloud.com';\n\nconst isUploadLoaded = IS_LOCAL || IS_OFFICIAL_DEMO;\n\nconst isUploadDetailEvent = IS_OFFICIAL_DEMO;\n\nconst aegisId = 'iHWefAYqCFrCVqqyIZ';\n\nconst projectName = 'TUIRoomKit-Web-vue2';\n\nexport {\n isUploadLoaded,\n isUploadDetailEvent,\n aegisId,\n projectName,\n};\n","\nimport { isUploadLoaded, isUploadDetailEvent, aegisId, projectName } from './config';\n\nlet aegis: any;\n\nconst script = document.createElement('script');\nscript.type = 'text/javascript';\nscript.src = 'https://cdn-go.cn/aegis/aegis-sdk/latest/aegis.min.js';\ndocument.getElementsByTagName('head')[0].appendChild(script);\n\nscript.onload = () => {\n // @ts-ignore\n // eslint-disable-next-line no-undef\n aegis = new Aegis({\n id: aegisId,\n uin: '',\n reportApiSpeed: true, // 接口测速\n reportAssetSpeed: true, // 静态资源测速\n spa: true, // spa 页面开启\n });\n if (roomAegis.storedReportEventList) {\n roomAegis.storedReportEventList.forEach((data) => {\n aegis.reportEvent(data);\n });\n }\n};\n\nclass TUIRoomAegis {\n private sdkAppId: number = 0;\n private projectName: string = projectName;\n private isUploadLoaded: boolean = isUploadLoaded;\n private isUploadDetailEvent: boolean = isUploadDetailEvent;\n private hasUploadedEventList: Array = [];\n\n storedReportEventList: Array = [];\n\n setSdkAppId(sdkAppId: number) {\n this.sdkAppId = sdkAppId;\n }\n\n reportEvent(data: { name: string, ext1: string }) {\n if (!this.isUploadLoaded) {\n return;\n }\n const { name: eventName, ext1: eventDesc } = data;\n if (this.isUploadDetailEvent || eventName === 'loaded') {\n const uploadData = { ...data, ext2: this.projectName, ext3: this.sdkAppId };\n if (aegis) {\n if (this.hasUploadedEventList.indexOf(`${eventName}_${eventDesc}`) < 0) {\n this.hasUploadedEventList.push(`${eventName}_${eventDesc}`);\n aegis.reportEvent(uploadData);\n }\n } else {\n this.storedReportEventList.push(uploadData);\n }\n }\n }\n}\n\nconst roomAegis = new TUIRoomAegis();\n\nexport default roomAegis;\n","import { defineComponent as _defineComponent } from 'vue'\nimport EndControl from '../../RoomFooter/EndControl';\nimport SwitchCamera from './SwitchCamera.vue';\nimport SwitchMirror from './SwitchMirror.vue';\nimport RoomInfo from './RoomInfo.vue';\nimport TUIRoomAegis from '../../../utils/aegis';\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'index',\n emits: ['log-out', 'on-destroy-room', 'on-exit-room'],\n setup(__props, { emit }) {\n\n\n\nconst onDestroyRoom = (info: { code: number; message: string }) => {\n emit('on-destroy-room', info);\n TUIRoomAegis.reportEvent({ name: 'destroyRoom', ext1: 'destroyRoom-success' });\n};\n\nconst onExitRoom = (info: { code: number; message: string }) => {\n emit('on-exit-room', info);\n TUIRoomAegis.reportEvent({ name: 'exitRoom', ext1: 'exitRoom-success' });\n};\n\n\nreturn { __sfc: true,emit, onDestroyRoom, onExitRoom, EndControl, SwitchCamera, SwitchMirror, RoomInfo }\n}\n\n})","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&setup=true&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&setup=true&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=1262e4e7&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&setup=true&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&setup=true&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=1262e4e7&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1262e4e7\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"header-container\"},[_c('div',{staticClass:\"left-container\"},[_c(_setup.UserInfo,{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showHeaderInfo),expression:\"showHeaderInfo\"}],staticClass:\"header-item user-info\",attrs:{\"user-id\":_setup.userId,\"user-name\":_setup.userName,\"avatar-url\":_setup.avatarUrl},on:{\"log-out\":function($event){return _vm.$emit('log-out')}}}),_c(_setup.Language,{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showHeaderInfo),expression:\"showHeaderInfo\"}],staticClass:\"header-item language\"}),_c(_setup.SwitchTheme,{staticClass:\"header-item theme\"})],1),_c('div',{staticClass:\"right-container\"},[_c(_setup.LayoutControl,{staticClass:\"right-container-item\"})],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return (_setup.streamNumber > 1)?_c('div',{staticClass:\"layout-container\"},[_c(_setup.SvgIcon,{staticClass:\"layout-icon\",attrs:{\"icon-name\":\"layout\",\"size\":\"medium\"},on:{\"click\":function($event){$event.stopPropagation();return _setup.handleClickLayoutIcon.apply(null, arguments)}}}),(_setup.showLayoutList)?_c('div',{ref:\"layoutList\",staticClass:\"layout-list\"},[_c('div',{class:['layout1', 'layout-item', `${_setup.layout === _setup.LAYOUT.NINE_EQUAL_POINTS ? 'checked' : ''}`],on:{\"click\":function($event){return _setup.handleClick(_setup.LAYOUT.NINE_EQUAL_POINTS)}}},[_c('div',{staticClass:\"layout-block-container\"},_vm._l((new Array(9).fill('')),function(item,index){return _c('div',{key:index,staticClass:\"layout-block\"})}),0),_c('span',{staticClass:\"layout-title\"},[_vm._v(_vm._s(_setup.t('Grid')))])]),_c('div',{class:['layout2', 'layout-item', `${_setup.layout === _setup.LAYOUT.RIGHT_SIDE_LIST ? 'checked' : ''}`],on:{\"click\":function($event){return _setup.handleClick(_setup.LAYOUT.RIGHT_SIDE_LIST)}}},[_c('div',{staticClass:\"layout-block-container\"},[_c('div',{staticClass:\"left-container\"}),_c('div',{staticClass:\"right-container\"},_vm._l((new Array(4).fill('')),function(item,index){return _c('div',{key:index,staticClass:\"layout-block\"})}),0)]),_c('span',{staticClass:\"layout-title\"},[_vm._v(_vm._s(_setup.t('Gallery on right')))])]),_c('div',{class:['layout3', 'layout-item', `${_setup.layout === _setup.LAYOUT.TOP_SIDE_LIST ? 'checked' : ''}`],on:{\"click\":function($event){return _setup.handleClick(_setup.LAYOUT.TOP_SIDE_LIST)}}},[_c('div',{staticClass:\"layout-block-container\"},[_c('div',{staticClass:\"top-container\"},_vm._l((new Array(4).fill('')),function(item,index){return _c('div',{key:index,staticClass:\"layout-block\"})}),0),_c('div',{staticClass:\"bottom-container\"})]),_c('span',{staticClass:\"layout-title\"},[_vm._v(_vm._s(_setup.t('Gallery at top')))])])]):_vm._e()],1):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { defineComponent as _defineComponent } from 'vue'\nimport { ref, Ref } from 'vue';\nimport SvgIcon from '../../common/SvgIcon.vue';\nimport { LAYOUT } from '../../../constants/render';\nimport { useBasicStore } from '../../../stores/basic';\nimport { useRoomStore } from '../../../stores/room';\nimport { storeToRefs } from 'pinia';\nimport TUIRoomAegis from '../../../utils/aegis';\nimport { useI18n } from '../../../locales';\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'LayoutControl',\n setup(__props) {\n\nconst { t } = useI18n();\n\nconst basicStore = useBasicStore();\nconst { layout } = storeToRefs(basicStore);\nconst roomStore = useRoomStore();\nconst { streamNumber } = storeToRefs(roomStore);\n\nconst showLayoutList:Ref = ref(false);\nconst layoutList:Ref = ref(null);\n\nfunction handleClick(layout: any) {\n basicStore.setLayout(layout);\n TUIRoomAegis.reportEvent({ name: 'layout', ext1: layout });\n}\n\nfunction handleClickLayoutIcon() {\n if (!showLayoutList.value) {\n showLayoutList.value = true;\n document.addEventListener('click', handleDocumentClick, false);\n } else {\n document.removeEventListener('click', handleDocumentClick, false);\n showLayoutList.value = false;\n }\n}\n\nfunction handleDocumentClick(event: MouseEvent) {\n if (showLayoutList.value && layoutList.value && !layoutList.value.contains(event.target as Node)) {\n document.removeEventListener('click', handleDocumentClick);\n showLayoutList.value = false;\n }\n}\n\n\nreturn { __sfc: true,t, basicStore, layout, roomStore, streamNumber, showLayoutList, layoutList, handleClick, handleClickLayoutIcon, handleDocumentClick, SvgIcon, LAYOUT }\n}\n\n})","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./LayoutControl.vue?vue&type=script&setup=true&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./LayoutControl.vue?vue&type=script&setup=true&lang=ts&\"","import { render, staticRenderFns } from \"./LayoutControl.vue?vue&type=template&id=7b3fd23b&scoped=true&\"\nimport script from \"./LayoutControl.vue?vue&type=script&setup=true&lang=ts&\"\nexport * from \"./LayoutControl.vue?vue&type=script&setup=true&lang=ts&\"\nimport style0 from \"./LayoutControl.vue?vue&type=style&index=0&id=7b3fd23b&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7b3fd23b\",\n null\n \n)\n\nexport default component.exports","import { defineComponent as _defineComponent } from 'vue'\nimport UserInfo from '../UserInfo';\nimport Language from '../../base/Language.vue';\nimport SwitchTheme from '../../base/SwitchTheme.vue';\n// import NetworkInfo from './NetworkInfo.vue';\n/**\n * [info] Functions to be improved\n *\n * 【info】功能待完善\n**/\n// import InfoControl from './InfoControl.vue';\nimport LayoutControl from './LayoutControl.vue';\nimport { useBasicStore } from '../../../stores/basic';\nimport { storeToRefs } from 'pinia';\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'index',\n props: {\n showHeaderInfo: { type: Boolean, default: true }\n },\n emits: ['log-out'],\n setup(__props: any) {\n\nconst basicStore = useBasicStore();\n\nconst { userId, userName, avatarUrl } = storeToRefs(basicStore);\n\n\n\n\n\n\nreturn { __sfc: true,basicStore, userId, userName, avatarUrl, UserInfo, Language, SwitchTheme, LayoutControl }\n}\n\n})","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&setup=true&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&setup=true&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=20e9e128&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&setup=true&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&setup=true&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=20e9e128&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"20e9e128\",\n null\n \n)\n\nexport default component.exports","import indexH5 from '../roomHeaderH5/index.vue';\nimport indexPC from '../roomHeaderPC/index.vue';\n\nimport { isMobile } from '../../../utils/useMediaValue';\n\nconst index = isMobile ? indexH5 : indexPC;\n\nexport default index;\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"footer-container\"},[_c('div',{staticClass:\"left-container\"},[_c(_setup.AudioControl,{directives:[{name:\"tap\",rawName:\"v-tap\",value:(() => _setup.handleControlClick('audioControl')),expression:\"() => handleControlClick('audioControl')\"}]}),_c(_setup.VideoControl,{directives:[{name:\"tap\",rawName:\"v-tap\",value:(() => _setup.handleControlClick('videoControl')),expression:\"() => handleControlClick('videoControl')\"}]}),(!_setup.roomStore.isSpeakAfterTakingSeatMode)?_c(_setup.ChatControl,{directives:[{name:\"tap\",rawName:\"v-tap\",value:(() => _setup.handleControlClick('chatControl')),expression:\"() => handleControlClick('chatControl')\"}]}):_c(_setup.ApplyControl,{directives:[{name:\"tap\",rawName:\"v-tap\",value:(() => _setup.handleControlClick('applyControl')),expression:\"() => handleControlClick('applyControl')\"}]}),(_setup.roomStore.isMaster)?_c(_setup.ManageMemberControl,{directives:[{name:\"tap\",rawName:\"v-tap\",value:(() => _setup.handleControlClick('manageMemberControl')),expression:\"() => handleControlClick('manageMemberControl')\"}]}):_vm._e(),_c(_setup.MoreControl,{directives:[{name:\"tap\",rawName:\"v-tap\",value:(() => _setup.handleControlClick('moreControl')),expression:\"() => handleControlClick('moreControl')\"}]})],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_c('div',{staticClass:\"audio-control-container\",on:{\"click\":function($event){return _setup.emits('click')}}},[_c(_setup.IconButton,{ref:\"audioIconButtonRef\",attrs:{\"is-active\":!_setup.localStream.hasAudioStream,\"title\":_setup.t('Mic'),\"has-more\":_setup.hasMore,\"show-more\":_setup.showAudioSettingTab,\"disabled\":_setup.isLocalAudioIconDisable},on:{\"click-icon\":_setup.toggleMuteAudio,\"click-more\":_setup.handleMore}},[_c(_setup.AudioIcon,{attrs:{\"audio-volume\":_setup.localStream.audioVolume,\"is-muted\":!_setup.localStream.hasAudioStream,\"is-disabled\":_setup.isLocalAudioIconDisable}})],1),_c(_setup.AudioSettingTab,{directives:[{name:\"show\",rawName:\"v-show\",value:(_setup.showAudioSettingTab),expression:\"showAudioSettingTab\"}],ref:\"audioSettingRef\",staticClass:\"audio-tab\"})],1),_c(_setup.Dialog,{staticClass:\"custom-element-class\",attrs:{\"model-value\":_setup.showRequestOpenMicDialog,\"title\":_setup.title,\"modal\":false,\"show-close\":false,\"append-to-body\":true,\"close-on-click-modal\":false,\"close-on-press-escape\":false,\"width\":\"500px\"},scopedSlots:_vm._u([{key:\"footer\",fn:function(){return [_c('div',{class:[_setup.isMobile ? 'button-container-mobile' : 'button-container-PC']},[_c('span',{staticClass:\"cancel\",on:{\"click\":_setup.handleReject}},[_vm._v(_vm._s(_setup.t('Keep it closed')))]),_c('span',{staticClass:\"agree\",on:{\"click\":_setup.handleAccept}},[_vm._v(_vm._s(_setup.t('Turn on the microphone')))])])]},proxy:true}])},[_c('span',[_vm._v(\" \"+_vm._s(_setup.t('The host invites you to turn on the microphone'))+\" \")])])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { defineComponent as _defineComponent } from 'vue'\nimport { ref, onMounted, Ref, onUnmounted, computed } from 'vue';\nimport { storeToRefs } from 'pinia';\nimport { ElMessageBox, ElMessage } from '../../elementComp';\nimport Dialog from '../../elementComp/Dialog';\nimport IconButton from '../common/IconButton.vue';\nimport AudioSettingTab from '../base/AudioSettingTab.vue';\nimport { useRoomStore } from '../../stores/room';\nimport AudioIcon from '../base/AudioIcon.vue';\nimport { WARNING_MESSAGE, MESSAGE_DURATION } from '../../constants/message';\nimport { useI18n } from '../../locales';\nimport TUIRoomEngine, { TUIRoomEvents, TUIRequest, TUIRequestAction } from '@tencentcloud/tuiroom-engine-js';\nimport useRoomEngine from '../../hooks/useRoomEngine';\nimport { isMobile, isWeChat } from '../../utils/useMediaValue';\n\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'AudioControl',\n emits: ['click'],\n setup(__props, { emit: emits }) {\n\nconst roomEngine = useRoomEngine();\n\nconst roomStore = useRoomStore();\nconst {\n isAudience,\n localStream,\n isLocalAudioIconDisable,\n isMicrophoneDisableForAllUser,\n} = storeToRefs(roomStore);\n\n\nconst hasMore = computed(() => !isMobile);\nconst showAudioSettingTab: Ref = ref(false);\nconst audioIconButtonRef = ref>();\nconst audioSettingRef = ref>();\nconst { t } = useI18n();\nconst title = computed(() => (isMobile ? '' : t('Tips')));\n\nasync function toggleMuteAudio() {\n if (isLocalAudioIconDisable.value) {\n let warningMessage = '';\n if (isMicrophoneDisableForAllUser.value) {\n warningMessage = WARNING_MESSAGE.UNMUTE_LOCAL_MIC_FAIL_MUTE_ALL;\n } else if (isAudience.value) {\n warningMessage = WARNING_MESSAGE.UNMUTE_LOCAL_MIC_FAIL_AUDIENCE;\n }\n ElMessage({\n type: 'warning',\n message: t(warningMessage),\n duration: MESSAGE_DURATION.NORMAL,\n });\n return;\n }\n if (localStream.value.hasAudioStream) {\n await roomEngine.instance?.closeLocalMicrophone();\n // 如果是全员禁言状态下,用户主动关闭麦克风之后不能再自己打开\n if (roomStore.isMicrophoneDisableForAllUser) {\n roomStore.setCanControlSelfAudio(false);\n }\n } else {\n const microphoneList = await roomEngine.instance?.getMicDevicesList();\n const hasMicrophoneDevice = microphoneList.length > 0;\n if (!hasMicrophoneDevice && !isWeChat) {\n // 无麦克风列表\n ElMessageBox.alert(t('Microphone not detected on current device.'), t('Note'), {\n customClass: 'custom-element-class',\n confirmButtonText: t('Confirm'),\n });\n return;\n }\n // 有麦克风列表且有权限\n await roomEngine.instance?.openLocalMicrophone();\n }\n showAudioSettingTab.value = false;\n}\n\nfunction handleMore() {\n if (!showAudioSettingTab.value) {\n showAudioSettingTab.value = true;\n } else {\n showAudioSettingTab.value = false;\n }\n}\n\nfunction handleDocumentClick(event: MouseEvent) {\n if (\n showAudioSettingTab.value\n && !audioIconButtonRef.value?.$el.contains(event.target)\n && !audioSettingRef.value?.$el.contains(event.target)\n ) {\n showAudioSettingTab.value = false;\n }\n}\n\n// -------- 处理主持人打开/关闭麦克风信令 --------\nconst showRequestOpenMicDialog: Ref = ref(false);\nconst requestOpenMicRequestId: Ref = ref('');\nasync function onRequestReceived(eventInfo: { request: TUIRequest }) {\n const { requestAction, requestId } = eventInfo.request;\n // 主持人邀请打开麦克风,同意之后将会自动打开麦克风\n if (requestAction === TUIRequestAction.kRequestToOpenRemoteMicrophone) {\n requestOpenMicRequestId.value = requestId;\n showRequestOpenMicDialog.value = true;\n }\n}\n\n// 接受主持人邀请,打开麦克风\nasync function handleAccept() {\n roomStore.setCanControlSelfAudio(true);\n await roomEngine.instance?.responseRemoteRequest({\n requestId: requestOpenMicRequestId.value,\n agree: true,\n });\n requestOpenMicRequestId.value = '';\n showRequestOpenMicDialog.value = false;\n}\n\n// 保持静音\nasync function handleReject() {\n await roomEngine.instance?.responseRemoteRequest({\n requestId: requestOpenMicRequestId.value,\n agree: false });\n requestOpenMicRequestId.value = '';\n showRequestOpenMicDialog.value = false;\n}\n\n// 请求被取消\nasync function onRequestCancelled(eventInfo: { requestId: string }) {\n const { requestId } = eventInfo;\n if (requestOpenMicRequestId.value === requestId) {\n showRequestOpenMicDialog.value = false;\n }\n}\n\nonMounted(() => {\n document?.addEventListener('click', handleDocumentClick, true);\n});\n\nTUIRoomEngine.once('ready', () => {\n roomEngine.instance?.on(TUIRoomEvents.onRequestReceived, onRequestReceived);\n roomEngine.instance?.on(TUIRoomEvents.onRequestCancelled, onRequestCancelled);\n});\n\nonUnmounted(() => {\n document?.removeEventListener('click', handleDocumentClick, true);\n\n roomEngine.instance?.off(TUIRoomEvents.onRequestReceived, onRequestReceived);\n roomEngine.instance?.off(TUIRoomEvents.onRequestCancelled, onRequestCancelled);\n});\n\n\nreturn { __sfc: true,roomEngine, roomStore, isAudience, localStream, isLocalAudioIconDisable, isMicrophoneDisableForAllUser, emits, hasMore, showAudioSettingTab, audioIconButtonRef, audioSettingRef, t, title, toggleMuteAudio, handleMore, handleDocumentClick, showRequestOpenMicDialog, requestOpenMicRequestId, onRequestReceived, handleAccept, handleReject, onRequestCancelled, Dialog, IconButton, AudioSettingTab, AudioIcon, isMobile }\n}\n\n})","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./AudioControl.vue?vue&type=script&setup=true&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./AudioControl.vue?vue&type=script&setup=true&lang=ts&\"","import { render, staticRenderFns } from \"./AudioControl.vue?vue&type=template&id=357aa832&scoped=true&\"\nimport script from \"./AudioControl.vue?vue&type=script&setup=true&lang=ts&\"\nexport * from \"./AudioControl.vue?vue&type=script&setup=true&lang=ts&\"\nimport style0 from \"./AudioControl.vue?vue&type=style&index=0&id=357aa832&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"357aa832\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_c('div',{staticClass:\"video-control-container\",on:{\"click\":function($event){return _setup.emits('click')}}},[_c(_setup.IconButton,{ref:\"videoIconButtonRef\",attrs:{\"is-active\":!_setup.localStream.hasVideoStream,\"title\":_setup.t('Camera'),\"icon-name\":_setup.iconName,\"has-more\":_setup.hasMore,\"disabled\":_setup.isLocalVideoIconDisable},on:{\"click-icon\":_setup.toggleMuteVideo,\"click-more\":_setup.handleMore}}),_c(_setup.VideoSettingTab,{directives:[{name:\"show\",rawName:\"v-show\",value:(_setup.showVideoSettingTab),expression:\"showVideoSettingTab\"}],ref:\"videoSettingRef\",staticClass:\"video-tab\"})],1),_c(_setup.Dialog,{staticClass:\"custom-element-class\",attrs:{\"model-value\":_setup.showRequestOpenCameraDialog,\"title\":_setup.title,\"modal\":false,\"show-close\":false,\"append-to-body\":true,\"close-on-click-modal\":false,\"close-on-press-escape\":false,\"width\":\"500px\"},scopedSlots:_vm._u([{key:\"footer\",fn:function(){return [_c('div',{class:[_setup.isMobile ? 'button-container-mobile' : 'button-container-PC']},[_c('span',{staticClass:\"cancel\",on:{\"click\":_setup.handleReject}},[_vm._v(_vm._s(_setup.t('Keep it closed')))]),_c('span',{staticClass:\"agree\",on:{\"click\":_setup.handleAccept}},[_vm._v(_vm._s(_setup.t('Turn on the camera')))])])]},proxy:true}])},[_c('span',[_vm._v(\" \"+_vm._s(_setup.t('The host invites you to turn on the camera'))+\" \")])])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { defineComponent as _defineComponent } from 'vue'\nimport { ref, computed, onMounted, onUnmounted, Ref } from 'vue';\nimport { storeToRefs } from 'pinia';\nimport { ElMessageBox, ElMessage } from '../../elementComp';\nimport Dialog from '../../elementComp/Dialog';\nimport IconButton from '../common/IconButton.vue';\nimport VideoSettingTab from '../base/VideoSettingTab.vue';\n\nimport { useRoomStore } from '../../stores/room';\nimport { ICON_NAME } from '../../constants/icon';\nimport { WARNING_MESSAGE, MESSAGE_DURATION } from '../../constants/message';\nimport { useI18n } from '../../locales';\n\nimport useGetRoomEngine from '../../hooks/useRoomEngine';\nimport TUIRoomEngine, { TUIVideoStreamType, TUIRoomEvents, TUIRequest, TUIRequestAction } from '@tencentcloud/tuiroom-engine-js';\nimport { isMobile, isWeChat } from '../../utils/useMediaValue';\nimport { useBasicStore } from '../../stores/basic';\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'VideoControl',\n emits: ['click'],\n setup(__props, { emit: emits }) {\n\nconst roomEngine = useGetRoomEngine();\n\nconst roomStore = useRoomStore();\nconst basicStore = useBasicStore();\nconst isFrontCamera: Ref = ref(basicStore.isFrontCamera);\n\n\nconst {\n isCameraDisableForAllUser,\n isAudience,\n localStream,\n isLocalVideoIconDisable,\n} = storeToRefs(roomStore);\nconst { t } = useI18n();\nconst hasMore = computed(() => !isMobile);\nconst showVideoSettingTab: Ref = ref(false);\nconst videoIconButtonRef = ref>();\nconst videoSettingRef = ref>();\nconst title = computed(() => (isMobile ? '' : t('Tips')));\n\nconst iconName = computed(() => {\n if (isLocalVideoIconDisable.value) {\n return ICON_NAME.CameraOffDisabled;\n }\n return localStream.value.hasVideoStream ? ICON_NAME.CameraOn : ICON_NAME.CameraOff;\n});\n\nasync function toggleMuteVideo() {\n if (isLocalVideoIconDisable.value) {\n let warningMessage = '';\n if (isCameraDisableForAllUser.value) {\n warningMessage = WARNING_MESSAGE.UNMUTE_LOCAL_CAMERA_FAIL_MUTE_ALL;\n } else if (isAudience.value) {\n warningMessage = WARNING_MESSAGE.UNMUTE_LOCAL_CAMERA_FAIL_AUDIENCE;\n }\n ElMessage({\n type: 'warning',\n message: t(warningMessage),\n duration: MESSAGE_DURATION.NORMAL,\n });\n return;\n }\n\n if (localStream.value.hasVideoStream) {\n await roomEngine.instance?.closeLocalCamera();\n // 如果是全员禁画状态下,用户主动关闭摄像头之后不能再自己打开\n if (roomStore.isCameraDisableForAllUser) {\n roomStore.setCanControlSelfVideo(false);\n }\n } else {\n const cameraList = await roomEngine.instance?.getCameraDevicesList();\n const hasCameraDevice = cameraList.length > 0;\n // 无摄像头列表\n if (!hasCameraDevice && !isWeChat) {\n ElMessageBox.alert(t('Camera not detected on current device'), t('Note'), {\n customClass: 'custom-element-class',\n confirmButtonText: t('Confirm'),\n });\n return;\n }\n // 有摄像头列表\n roomEngine.instance?.setLocalVideoView({\n view: `${roomStore.localStream.userId}_${roomStore.localStream.streamType}`,\n streamType: TUIVideoStreamType.kCameraStream,\n });\n if (isMobile) {\n await roomEngine.instance?.openLocalCamera({ isFrontCamera: isFrontCamera.value });\n } else {\n await roomEngine.instance?.openLocalCamera();\n }\n }\n showVideoSettingTab.value = false;\n}\n\nfunction handleMore() {\n if (!showVideoSettingTab.value) {\n showVideoSettingTab.value = true;\n } else {\n showVideoSettingTab.value = false;\n }\n}\n\nfunction handleDocumentClick(event: MouseEvent) {\n if (\n showVideoSettingTab.value\n && !videoIconButtonRef.value?.$el.contains(event.target)\n && !videoSettingRef.value?.$el.contains(event.target)\n ) {\n showVideoSettingTab.value = false;\n }\n}\n\n// -------- 处理主持人打开/关闭摄像头信令 --------\nconst showRequestOpenCameraDialog: Ref = ref(false);\nconst requestOpenCameraRequestId: Ref = ref('');\nasync function onRequestReceived(eventInfo: { request: TUIRequest }) {\n const { requestAction, requestId } = eventInfo.request;\n // 主持人邀请打开麦克风,同意之后将会自动打开摄像头\n if (requestAction === TUIRequestAction.kRequestToOpenRemoteCamera) {\n requestOpenCameraRequestId.value = requestId;\n showRequestOpenCameraDialog.value = true;\n }\n}\n\n// 接受主持人邀请,打开摄像头\nasync function handleAccept() {\n roomStore.setCanControlSelfVideo(true);\n roomEngine.instance?.setLocalVideoView({\n view: `${roomStore.localStream.userId}_${roomStore.localStream.streamType}`,\n streamType: TUIVideoStreamType.kCameraStream,\n });\n await roomEngine.instance?.responseRemoteRequest({\n requestId: requestOpenCameraRequestId.value,\n agree: true,\n });\n requestOpenCameraRequestId.value = '';\n showRequestOpenCameraDialog.value = false;\n}\n\n// 保持静音\nasync function handleReject() {\n await roomEngine.instance?.responseRemoteRequest({\n requestId: requestOpenCameraRequestId.value,\n agree: false,\n });\n requestOpenCameraRequestId.value = '';\n showRequestOpenCameraDialog.value = false;\n}\n\n// 请求被取消\nasync function onRequestCancelled(eventInfo: { requestId: string }) {\n const { requestId } = eventInfo;\n if (requestOpenCameraRequestId.value === requestId) {\n showRequestOpenCameraDialog.value = false;\n }\n}\n\nonMounted(() => {\n document?.addEventListener('click', handleDocumentClick, true);\n});\n\nTUIRoomEngine.once('ready', () => {\n roomEngine.instance?.on(TUIRoomEvents.onRequestReceived, onRequestReceived);\n roomEngine.instance?.on(TUIRoomEvents.onRequestCancelled, onRequestCancelled);\n});\n\nonUnmounted(() => {\n document?.removeEventListener('click', handleDocumentClick, true);\n\n roomEngine.instance?.off(TUIRoomEvents.onRequestReceived, onRequestReceived);\n roomEngine.instance?.off(TUIRoomEvents.onRequestCancelled, onRequestCancelled);\n});\n\n\nreturn { __sfc: true,roomEngine, roomStore, basicStore, isFrontCamera, emits, isCameraDisableForAllUser, isAudience, localStream, isLocalVideoIconDisable, t, hasMore, showVideoSettingTab, videoIconButtonRef, videoSettingRef, title, iconName, toggleMuteVideo, handleMore, handleDocumentClick, showRequestOpenCameraDialog, requestOpenCameraRequestId, onRequestReceived, handleAccept, handleReject, onRequestCancelled, Dialog, IconButton, VideoSettingTab, isMobile }\n}\n\n})","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./VideoControl.vue?vue&type=script&setup=true&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./VideoControl.vue?vue&type=script&setup=true&lang=ts&\"","import { render, staticRenderFns } from \"./VideoControl.vue?vue&type=template&id=a0d52fdc&scoped=true&\"\nimport script from \"./VideoControl.vue?vue&type=script&setup=true&lang=ts&\"\nexport * from \"./VideoControl.vue?vue&type=script&setup=true&lang=ts&\"\nimport style0 from \"./VideoControl.vue?vue&type=style&index=0&id=a0d52fdc&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"a0d52fdc\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"manage-member-control-container\"},[_c(_setup.IconButton,{attrs:{\"is-active\":_setup.sidebarName === 'manage-member',\"title\":_setup.t('Members'),\"icon-name\":_setup.iconName},on:{\"click-icon\":_setup.toggleMangeMemberSidebar}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { defineComponent as _defineComponent } from 'vue'\nimport { computed } from 'vue';\nimport { storeToRefs } from 'pinia';\nimport IconButton from '../common/IconButton.vue';\nimport { useBasicStore } from '../../stores/basic';\nimport { ICON_NAME } from '../../constants/icon';\nimport { useI18n } from '../../locales';\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'ManageMemberControl',\n setup(__props) {\n\nconst { t } = useI18n();\n\nconst basicStore = useBasicStore();\nconst { sidebarName } = storeToRefs(basicStore);\nconst iconName = computed(() => (sidebarName.value === 'manage-member' ? ICON_NAME.ManageMemberActive : ICON_NAME.ManageMember));\n\nfunction toggleMangeMemberSidebar() {\n if (basicStore.setSidebarOpenStatus && sidebarName.value === 'manage-member') {\n basicStore.setSidebarOpenStatus(false);\n basicStore.setSidebarName('');\n return;\n }\n\n basicStore.setSidebarOpenStatus(true);\n basicStore.setSidebarName('manage-member');\n}\n\nreturn { __sfc: true,t, basicStore, sidebarName, iconName, toggleMangeMemberSidebar, IconButton }\n}\n\n})","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ManageMemberControl.vue?vue&type=script&setup=true&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ManageMemberControl.vue?vue&type=script&setup=true&lang=ts&\"","import { render, staticRenderFns } from \"./ManageMemberControl.vue?vue&type=template&id=49c71e42&scoped=true&\"\nimport script from \"./ManageMemberControl.vue?vue&type=script&setup=true&lang=ts&\"\nexport * from \"./ManageMemberControl.vue?vue&type=script&setup=true&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"49c71e42\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"chat-control-container\"},[(_setup.isMobile)?_c('div',[(_setup.chatStore.unReadCount > 0)?_c('div',{staticClass:\"count\"},[_c(_setup.IconButton,{directives:[{name:\"tap\",rawName:\"v-tap\",value:(_setup.toggleChatSidebar),expression:\"toggleChatSidebar\"}],attrs:{\"title\":_setup.t('Chat'),\"icon-name\":_setup.iconName}}),_c('span',{staticClass:\"unreadCount\"},[_vm._v(_vm._s(_setup.chatStore.unReadCount > 10 ? '10+' : _setup.chatStore.unReadCount))])],1):_c(_setup.IconButton,{directives:[{name:\"tap\",rawName:\"v-tap\",value:(_setup.toggleChatSidebar),expression:\"toggleChatSidebar\"}],attrs:{\"is-active\":_setup.sidebarName === 'chat',\"title\":_setup.t('Chat'),\"icon-name\":_setup.iconName}})],1):_c('div',[(_setup.chatStore.unReadCount > 0)?_c('el-badge',{attrs:{\"value\":_setup.chatStore.unReadCount > 10 ? '10+' : _setup.chatStore.unReadCount}},[_c(_setup.IconButton,{attrs:{\"title\":_setup.t('Chat'),\"icon-name\":_setup.iconName},on:{\"click-icon\":_setup.toggleChatSidebar}})],1):_c(_setup.IconButton,{attrs:{\"is-active\":_setup.sidebarName === 'chat',\"title\":_setup.t('Chat'),\"icon-name\":_setup.iconName},on:{\"click-icon\":_setup.toggleChatSidebar}})],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { defineStore } from 'pinia';\n\ninterface MessageItem {\n ID: string;\n type: string;\n payload: {\n text: string;\n };\n nick: string;\n from: string;\n flow: string;\n sequence: number;\n}\n\ninterface ChatState {\n messageList: MessageItem[];\n isMessageDisableByAdmin: boolean;\n unReadCount: number;\n isCompleted: boolean;\n // 是否已经拉完所有消息列表\n // Is the list of all messages pulled\n nextReqMessageId: string;\n}\n\nexport const useChatStore = defineStore('chat', {\n state: (): ChatState => ({\n messageList: [],\n isMessageDisableByAdmin: false,\n unReadCount: 0,\n isCompleted: false,\n nextReqMessageId: '',\n }),\n getters: {\n },\n actions: {\n updateMessageList(message: MessageItem) {\n const messageIds = this.messageList.map(message => message.ID);\n if (messageIds.indexOf(message.ID) === -1) {\n this.messageList = this.messageList.concat([message]);\n }\n },\n setMessageListInfo(messageList:MessageItem[], isCompleted: boolean, nextReqMessageId: string) {\n this.messageList = messageList;\n this.isCompleted = isCompleted;\n this.nextReqMessageId = nextReqMessageId;\n },\n updateUnReadCount(count: number) {\n this.unReadCount = count;\n },\n addHistoryMessages(messageList: MessageItem[]) {\n const messageIds = this.messageList.map(message => message.ID);\n const filteredMessageList = messageList.filter(message => messageIds.indexOf(message.ID) === -1);\n this.messageList = filteredMessageList.concat(this.messageList).sort((\n messageA: MessageItem, messageB: MessageItem) => messageA.sequence - messageB.sequence);\n },\n setSendMessageDisableChanged(isDisable: boolean) {\n this.isMessageDisableByAdmin = isDisable;\n },\n reset() {\n this.messageList = [];\n this.unReadCount = 0;\n this.isMessageDisableByAdmin = false;\n },\n },\n});\n","import { defineComponent as _defineComponent } from 'vue'\nimport { computed } from 'vue';\nimport IconButton from '../common/IconButton.vue';\nimport { useBasicStore } from '../../stores/basic';\nimport { useChatStore } from '../../stores/chat';\nimport { storeToRefs } from 'pinia';\nimport { ICON_NAME } from '../../constants/icon';\nimport { useI18n } from '../../locales';\nimport { isMobile } from '../../utils/useMediaValue';\nimport '../../directives/vTap';\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'ChatControl',\n setup(__props) {\n\nconst { t } = useI18n();\n\nconst basicStore = useBasicStore();\nconst chatStore = useChatStore();\nconst { sidebarName } = storeToRefs(basicStore);\n\nconst iconName = computed(() => (sidebarName.value === 'chat' ? ICON_NAME.ChatActive : ICON_NAME.Chat));\n\nasync function toggleChatSidebar() {\n if (basicStore.setSidebarOpenStatus && basicStore.sidebarName === 'chat') {\n basicStore.setSidebarOpenStatus(false);\n basicStore.setSidebarName('');\n return;\n }\n basicStore.setSidebarOpenStatus(true);\n basicStore.setSidebarName('chat');\n chatStore.updateUnReadCount(0);\n}\n\n\nreturn { __sfc: true,t, basicStore, chatStore, sidebarName, iconName, toggleChatSidebar, IconButton, isMobile }\n}\n\n})","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ChatControl.vue?vue&type=script&setup=true&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ChatControl.vue?vue&type=script&setup=true&lang=ts&\"","import { render, staticRenderFns } from \"./ChatControl.vue?vue&type=template&id=23a9a115&\"\nimport script from \"./ChatControl.vue?vue&type=script&setup=true&lang=ts&\"\nexport * from \"./ChatControl.vue?vue&type=script&setup=true&lang=ts&\"\nimport style0 from \"./ChatControl.vue?vue&type=style&index=0&id=23a9a115&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return (_setup.roomStore.isMaster)?_c(_setup.MasterApplyControl):(!_setup.roomStore.isMaster)?_c(_setup.MemberApplyControl):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"apply-control-container\"},[_c(_setup.IconButton,{ref:\"masterApplyControlRef\",attrs:{\"title\":_setup.t('Raise hand'),\"icon-name\":_setup.ICON_NAME.ApplyOnSeat},on:{\"click-icon\":_setup.toggleApplySpeech}}),(_setup.hasApplyToAnchorUser && !_setup.showApplyUserList)?_c('div',{staticClass:\"attention master-attention\"},[_c(_setup.SvgIcon,{staticClass:\"apply-big-icon\",attrs:{\"icon-name\":\"apply-big-icon\"}}),_c('span',{staticClass:\"info\"},[_vm._v(_vm._s(_setup.applyToAnchorList.length))])],1):_vm._e(),(_setup.showApplyUserList)?_c('div',{ref:\"masterApplyListRef\",class:_setup.isMobile ? 'apply-list-container-h5':'apply-list-container'},[_c('div',{staticClass:\"title-container\"},[_c('span',{staticClass:\"title\"},[_vm._v(_vm._s(_setup.t('Apply to stage application')))]),_c(_setup.SvgIcon,{staticClass:\"close\",attrs:{\"icon-name\":\"close\",\"size\":\"medium\"},on:{\"click\":_setup.hideApplyList}})],1),_c('div',{staticClass:\"apply-list\"},_vm._l((_setup.applyToAnchorList),function(item,index){return _c('div',{key:index,staticClass:\"apply-item\"},[_c('div',{staticClass:\"user-info\"},[_c(_setup.Avatar,{staticClass:\"avatar-url\",attrs:{\"img-src\":item.avatarUrl}}),_c('span',{staticClass:\"user-name\",attrs:{\"title\":item.userName || item.userId}},[_vm._v(_vm._s(item.userName || item.userId))])],1),_c('div',{staticClass:\"control-container\"},[_c('div',{staticClass:\"button primary\",on:{\"click\":function($event){return _setup.handleUserApply(item.userId, true)}}},[_vm._v(_vm._s(_setup.t('Agree')))]),_c('div',{staticClass:\"button outline\",on:{\"click\":function($event){return _setup.handleUserApply(item.userId, false)}}},[_vm._v(_vm._s(_setup.t('Reject')))])])])}),0),_c('div',{staticClass:\"apply-footer\"},[_c('div',{staticClass:\"button outline deny-all\",on:{\"click\":_setup.denyAllUserApply}},[_vm._v(_vm._s(_setup.t('Reject All')))])])]):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","// 举手发言逻辑\n// 主持人:同意/拒绝用户的申请发言,踢人下麦,邀请用户上麦,取消邀请用户上麦\n\nimport { onBeforeUnmount } from 'vue';\nimport TUIRoomEngine, { TUIRoomEvents, TUIRequestAction, TUIRequest, TUIRequestCallbackType } from '@tencentcloud/tuiroom-engine-js';\nimport useGetRoomEngine from './useRoomEngine';\nimport { ElMessage } from '../elementComp';\nimport { MESSAGE_DURATION } from '../constants/message';\nimport { useRoomStore, UserInfo } from '../stores/room';\nimport { storeToRefs } from 'pinia';\nimport { useI18n } from '../locales';\nimport logger from '../utils/common/logger';\n\nconst roomEngine = useGetRoomEngine();\n\nexport default function () {\n const roomStore = useRoomStore();\n const { applyToAnchorList } = storeToRefs(roomStore);\n const { t } = useI18n();\n\n // ------ 以下处理普通用户操作 ---------\n\n // new: 收到来自用户的上麦申请\n function onRequestReceived(eventInfo: { request: TUIRequest }) {\n const { requestAction, requestId, userId } = eventInfo.request;\n if (requestAction === TUIRequestAction.kRequestToTakeSeat) {\n // 用户申请上麦\n userId && roomStore.addApplyToAnchorUser({ userId, requestId });\n }\n }\n\n // 远端用户取消上麦申请\n function onRequestCancelled(eventInfo: { requestId: string, userId: string }) {\n const { userId } = eventInfo;\n roomStore.removeApplyToAnchorUser(userId);\n }\n\n // 处理用户请求\n async function handleUserApply(applyUserId: string, agree: boolean) {\n // TUIRoomCore.replySpeechApplication(applyUserId, agree);\n const userInfo = roomStore.remoteUserObj[applyUserId];\n if (userInfo) {\n const requestId = userInfo.applyToAnchorRequestId;\n requestId && await roomEngine.instance?.responseRemoteRequest({\n requestId,\n agree,\n });\n }\n roomStore.removeApplyToAnchorUser(applyUserId);\n }\n\n // 同意用户上台\n async function agreeUserOnStage(userInfo: UserInfo) {\n const requestId = userInfo.applyToAnchorRequestId;\n requestId && await roomEngine.instance?.responseRemoteRequest({\n requestId,\n agree: true,\n });\n roomStore.removeApplyToAnchorUser(userInfo.userId);\n }\n\n // 拒绝用户上台\n async function denyUserOnStage(userInfo: UserInfo) {\n const requestId = userInfo.applyToAnchorRequestId;\n requestId && await roomEngine.instance?.responseRemoteRequest({\n requestId,\n agree: false,\n });\n roomStore.removeApplyToAnchorUser(userInfo.userId);\n }\n\n // 拒绝全部用户上麦请求\n async function denyAllUserApply() {\n const applyUserList = applyToAnchorList.value.map(item => ({\n userId: item.userId,\n userName: item.userName,\n applyToAnchorRequestId: item.applyToAnchorRequestId,\n }));\n let index = 0;\n while (index >= 0 && index < applyUserList.length) {\n const { userId, userName, applyToAnchorRequestId } = applyUserList[index];\n try {\n applyToAnchorRequestId && await roomEngine.instance?.responseRemoteRequest({\n requestId: applyToAnchorRequestId,\n agree: false,\n });\n roomStore.removeApplyToAnchorUser(userId);\n } catch (error) {\n logger.error(`拒绝 ${userName || userId} 上台申请失败,请重试!`);\n ElMessage({\n type: 'warning',\n message: t('Reject on Stage failed, please retry', { userName: userName || userId }),\n duration: MESSAGE_DURATION.NORMAL,\n });\n }\n index += 1;\n }\n }\n\n TUIRoomEngine.once('ready', () => {\n roomEngine.instance?.on(TUIRoomEvents.onRequestReceived, onRequestReceived);\n roomEngine.instance?.on(TUIRoomEvents.onRequestCancelled, onRequestCancelled);\n });\n\n onBeforeUnmount(() => {\n roomEngine.instance?.off(TUIRoomEvents.onRequestReceived, onRequestReceived);\n roomEngine.instance?.off(TUIRoomEvents.onRequestCancelled, onRequestCancelled);\n });\n\n // --------- 以下处理主持人主动操作 ----------\n\n // 邀请用户上台\n async function inviteUserOnStage(userInfo: UserInfo) {\n const { userId } = userInfo;\n const request = await roomEngine.instance?.takeUserOnSeatByAdmin({\n seatIndex: -1,\n userId,\n timeout: 0,\n requestCallback: (callbackInfo: { requestCallbackType: TUIRequestCallbackType, userId: string }) => {\n const { requestCallbackType, userId } = callbackInfo;\n const userName = roomStore.getUserName(userId);\n switch (requestCallbackType) {\n case TUIRequestCallbackType.kRequestAccepted:\n ElMessage({\n type: 'success',\n message: `${userName || userId} ${t('accepted the invitation to the stage')}`,\n duration: MESSAGE_DURATION.NORMAL,\n });\n roomStore.removeInviteToAnchorUser(userId);\n break;\n case TUIRequestCallbackType.kRequestRejected:\n ElMessage({\n type: 'warning',\n message: `${userName || userId} ${t('declined the invitation to the stage')}`,\n duration: MESSAGE_DURATION.NORMAL,\n });\n roomStore.removeInviteToAnchorUser(userId);\n break;\n case TUIRequestCallbackType.kRequestTimeout:\n break;\n default:\n break;\n }\n },\n });\n if (request && request.requestId) {\n roomStore.addInviteToAnchorUser({ userId, requestId: request.requestId });\n }\n }\n\n // 取消邀请用户上台\n function cancelInviteUserOnStage(userInfo: UserInfo) {\n const { userId, inviteToAnchorRequestId } = userInfo;\n roomStore.removeInviteToAnchorUser(userId);\n if (inviteToAnchorRequestId) {\n roomEngine.instance?.cancelRequest({ requestId: inviteToAnchorRequestId });\n }\n }\n\n // 邀请下台\n function kickUserOffStage(userInfo: UserInfo) {\n roomEngine.instance?.kickUserOffSeatByAdmin({\n seatIndex: -1,\n userId: userInfo.userId,\n });\n }\n\n return {\n // 处理用户上麦申请(同意/拒绝)\n handleUserApply,\n // 同意普通用户上台\n agreeUserOnStage,\n // 拒绝普通用户上台\n denyUserOnStage,\n // 拒绝所有申请上麦用户\n denyAllUserApply,\n // 邀请用户上台\n inviteUserOnStage,\n // 取消邀请用户上台\n cancelInviteUserOnStage,\n // 将用户踢下麦\n kickUserOffStage,\n };\n}\n","import { defineComponent as _defineComponent } from 'vue'\nimport { ref, computed, onMounted, onBeforeUnmount } from 'vue';\nimport Avatar from '../../base/Avatar.vue';\nimport { ICON_NAME } from '../../../constants/icon';\nimport IconButton from '../../common/IconButton.vue';\nimport SvgIcon from '../../common/SvgIcon.vue';\nimport { useBasicStore } from '../../../stores/basic';\nimport { useRoomStore } from '../../../stores/room';\nimport { storeToRefs } from 'pinia';\nimport useMasterApplyControl from '../../../hooks/useMasterApplyControl';\nimport { useI18n } from '../../../locales';\nimport { isMobile } from '../../../utils/useMediaValue';\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'MasterApplyControl',\n setup(__props) {\n\nconst { t } = useI18n();\n\nconst basicStore = useBasicStore();\nconst roomStore = useRoomStore();\nconst { handleUserApply, denyAllUserApply } = useMasterApplyControl();\nconst { showApplyUserList } = storeToRefs(basicStore);\nconst { isMaster, applyToAnchorList } = storeToRefs(roomStore);\nconst masterApplyControlRef = ref>();\nconst masterApplyListRef = ref();\n\nconst hasApplyToAnchorUser = computed(() => applyToAnchorList.value.length > 0);\n\n\nfunction toggleApplySpeech() {\n if (isMaster.value) {\n basicStore.setShowApplyUserList(!showApplyUserList.value);\n }\n};\n\nfunction hideApplyList() {\n basicStore.setShowApplyUserList(false);\n}\n\nfunction handleDocumentClick(event: MouseEvent) {\n if (\n showApplyUserList.value\n && !masterApplyControlRef.value?.$el.contains(event.target)\n && !masterApplyListRef.value?.contains(event.target)\n ) {\n basicStore.setShowApplyUserList(false);\n }\n}\n\nonMounted(() => {\n document.addEventListener('click', handleDocumentClick, true);\n});\n\nonBeforeUnmount(() => {\n document.removeEventListener('click', handleDocumentClick, true);\n});\n\nreturn { __sfc: true,t, basicStore, roomStore, handleUserApply, denyAllUserApply, showApplyUserList, isMaster, applyToAnchorList, masterApplyControlRef, masterApplyListRef, hasApplyToAnchorUser, toggleApplySpeech, hideApplyList, handleDocumentClick, Avatar, ICON_NAME, IconButton, SvgIcon, isMobile }\n}\n\n})","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./MasterApplyControl.vue?vue&type=script&setup=true&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./MasterApplyControl.vue?vue&type=script&setup=true&lang=ts&\"","import { render, staticRenderFns } from \"./MasterApplyControl.vue?vue&type=template&id=22abf286&\"\nimport script from \"./MasterApplyControl.vue?vue&type=script&setup=true&lang=ts&\"\nexport * from \"./MasterApplyControl.vue?vue&type=script&setup=true&lang=ts&\"\nimport style0 from \"./MasterApplyControl.vue?vue&type=style&index=0&id=22abf286&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_c('div',{staticClass:\"apply-control-container\"},[_c(_setup.IconButton,{attrs:{\"title\":_setup.iconTitle,\"icon-name\":_setup.iconName},on:{\"click-icon\":_setup.toggleApplySpeech}}),(_setup.showMemberApplyAttention)?_c('div',{staticClass:\"attention member-attention\"},[_c('span',{staticClass:\"info\"},[_vm._v(_vm._s(_setup.t('Please raise your hand to apply')))]),_c(_setup.SvgIcon,{staticClass:\"close\",attrs:{\"icon-name\":\"close\",\"size\":\"medium\"},on:{\"click\":_setup.hideApplyAttention}})],1):_vm._e()],1),_c(_setup.Dialog,{staticClass:\"custom-element-class\",attrs:{\"model-value\":_setup.showInviteDialog,\"title\":_setup.t('The host invites you to speak on stage'),\"modal\":false,\"show-close\":false,\"append-to-body\":true,\"close-on-click-modal\":false,\"close-on-press-escape\":false,\"width\":\"500px\"},scopedSlots:_vm._u([{key:\"footer\",fn:function(){return [_c('div',{class:[_setup.isMobile ? 'button-container-mobile' : 'button-container-PC']},[_c('span',{staticClass:\"cancel\",on:{\"click\":function($event){return _setup.handleInvite(false)}}},[_vm._v(_vm._s(_setup.t('Cancel')))]),_c('span',{staticClass:\"agree\",on:{\"click\":function($event){return _setup.handleInvite(true)}}},[_vm._v(_vm._s(_setup.t('Agree')))])])]},proxy:true}])},[_c('span',[_vm._v(\" \"+_vm._s(_setup.t('After agreeing to go on stage, you can turn on the camera and microphone. Do you agree to go on stage?'))+\" \")])])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { defineComponent as _defineComponent } from 'vue'\nimport { ref, Ref, watch, onBeforeUnmount } from 'vue';\nimport { ICON_NAME } from '../../../constants/icon';\nimport IconButton from '../../common/IconButton.vue';\nimport SvgIcon from '../../common/SvgIcon.vue';\nimport { ElMessage } from '../../../elementComp';\nimport Dialog from '../../../elementComp/Dialog';\nimport { MESSAGE_DURATION } from '../../../constants/message';\nimport { useBasicStore } from '../../../stores/basic';\nimport { useRoomStore } from '../../../stores/room';\nimport { useI18n } from '../../../locales';\nimport { storeToRefs } from 'pinia';\nimport useGetRoomEngine from '../../../hooks/useRoomEngine';\nimport logger from '../../../utils/common/logger';\nimport TUIRoomEngine, { TUIRoomEvents, TUIRequest, TUIRequestAction, TUIRequestCallbackType } from '@tencentcloud/tuiroom-engine-js';\nimport { isMobile } from '../../../utils/useMediaValue';\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'MemberApplyControl',\n setup(__props) {\n\nconst roomEngine = useGetRoomEngine();\nconst { t } = useI18n();\n\nconst basicStore = useBasicStore();\nconst roomStore = useRoomStore();\nconst { lang } = storeToRefs(basicStore);\nconst { localUser } = storeToRefs(roomStore);\n\nconst isApplyingOnSeat: Ref = ref(false);\nconst showMemberApplyAttention: Ref = ref(true);\nconst iconName: Ref = ref('');\nconst iconTitle: Ref = ref('');\nconst showInviteDialog: Ref = ref(false);\n\nconst applyToAnchorRequestId: Ref = ref('');\nconst inviteToAnchorRequestId: Ref = ref('');\n\nwatch([localUser, isApplyingOnSeat, lang], ([localUser, isApplyingOnSeat]) => {\n if (localUser.onSeat) {\n iconName.value = ICON_NAME.GoOffSeat;\n iconTitle.value = t('Step down');\n } else {\n if (isApplyingOnSeat) {\n iconName.value = ICON_NAME.ApplyActive;\n iconTitle.value = t('Hand down');\n } else {\n iconName.value = ICON_NAME.ApplyOnSeat;\n iconTitle.value = t('Raise hand');\n }\n }\n}, { immediate: true, deep: true });\n\nasync function toggleApplySpeech() {\n hideApplyAttention();\n if (localUser.value.onSeat) {\n leaveSeat();\n } else {\n isApplyingOnSeat.value ? cancelSeatApplication() : sendSeatApplication();\n }\n};\n\n/**\n * Send a request to be on the mike\n *\n * 发送上麦申请\n**/\nasync function sendSeatApplication() {\n try {\n const request = await roomEngine.instance?.takeSeat({\n seatIndex: -1,\n timeout: 0,\n requestCallback: (callbackInfo: { requestCallbackType: TUIRequestCallbackType }) => {\n isApplyingOnSeat.value = false;\n const { requestCallbackType } = callbackInfo;\n switch (requestCallbackType) {\n case TUIRequestCallbackType.kRequestAccepted:\n ElMessage({\n type: 'success',\n message: t('The host has approved your application'),\n duration: MESSAGE_DURATION.NORMAL,\n });\n break;\n case TUIRequestCallbackType.kRequestRejected:\n ElMessage({\n type: 'warning',\n message: t('The host has rejected your application for the stage'),\n duration: MESSAGE_DURATION.NORMAL,\n });\n break;\n case TUIRequestCallbackType.kRequestTimeout:\n break;\n }\n },\n });\n if (request && request.requestId) {\n applyToAnchorRequestId.value = request.requestId;\n }\n isApplyingOnSeat.value = true;\n } catch (error) {\n logger.log('member sendSpeechApplication error', error);\n }\n}\n\n/**\n * Cancellation of on-mike application\n *\n * 处理点击【创建房间】\n**/\n// 取消上麦申请\nasync function cancelSeatApplication() {\n try {\n await roomEngine.instance?.cancelRequest({ requestId: applyToAnchorRequestId.value });\n isApplyingOnSeat.value = false;\n } catch (error) {\n logger.log('member cancelSpeechApplication', error);\n }\n}\n\n/**\n * User Down Mack\n *\n * 用户下麦\n**/\nasync function leaveSeat() {\n await roomEngine.instance?.leaveSeat();\n}\n\nfunction hideApplyAttention() {\n showMemberApplyAttention.value = false;\n}\n\nasync function onRequestReceived(eventInfo: { request: TUIRequest }) {\n const { request: { requestId, requestAction } } = eventInfo;\n // Received an invitation from the host to go on the microphone\n // 收到主持人邀请上麦\n if (requestAction === TUIRequestAction.kRequestRemoteUserOnSeat) {\n inviteToAnchorRequestId.value = requestId;\n showInviteDialog.value = true;\n }\n}\n\n/**\n * The host canceled the invitation to the microphone\n *\n * 主持人取消邀请上麦\n **/\nfunction onRequestCancelled(eventInfo: { requestId: string, userId: string }) {\n const { requestId } = eventInfo;\n if (inviteToAnchorRequestId.value === requestId) {\n inviteToAnchorRequestId.value = '';\n showInviteDialog.value = false;\n }\n}\n\n/**\n * User accepts/rejects the presenter's invitation\n *\n * 用户接受/拒绝主讲人的邀请\n**/\nasync function handleInvite(agree: boolean) {\n await roomEngine.instance?.responseRemoteRequest({\n requestId: inviteToAnchorRequestId.value,\n agree,\n });\n showInviteDialog.value = false;\n if (agree) {\n hideApplyAttention();\n }\n}\n\n/**\n * Kicked off the seat by the host\n * 被主持人踢下麦\n */\nasync function onKickedOffSeat() {\n // 被主持人踢下麦\n ElMessage({\n type: 'warning',\n message: t('You have been invited by the host to step down, please raise your hand if you need to speak'),\n duration: MESSAGE_DURATION.NORMAL,\n });\n}\n\nTUIRoomEngine.once('ready', () => {\n roomEngine.instance?.on(TUIRoomEvents.onRequestReceived, onRequestReceived);\n roomEngine.instance?.on(TUIRoomEvents.onRequestCancelled, onRequestCancelled);\n roomEngine.instance?.on(TUIRoomEvents.onKickedOffSeat, onKickedOffSeat);\n});\n\nonBeforeUnmount(() => {\n roomEngine.instance?.off(TUIRoomEvents.onRequestReceived, onRequestReceived);\n roomEngine.instance?.off(TUIRoomEvents.onRequestCancelled, onRequestCancelled);\n roomEngine.instance?.off(TUIRoomEvents.onKickedOffSeat, onKickedOffSeat);\n});\n\n\nreturn { __sfc: true,roomEngine, t, basicStore, roomStore, lang, localUser, isApplyingOnSeat, showMemberApplyAttention, iconName, iconTitle, showInviteDialog, applyToAnchorRequestId, inviteToAnchorRequestId, toggleApplySpeech, sendSeatApplication, cancelSeatApplication, leaveSeat, hideApplyAttention, onRequestReceived, onRequestCancelled, handleInvite, onKickedOffSeat, IconButton, SvgIcon, Dialog, isMobile }\n}\n\n})","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./MemberApplyControl.vue?vue&type=script&setup=true&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./MemberApplyControl.vue?vue&type=script&setup=true&lang=ts&\"","import { render, staticRenderFns } from \"./MemberApplyControl.vue?vue&type=template&id=2562f654&\"\nimport script from \"./MemberApplyControl.vue?vue&type=script&setup=true&lang=ts&\"\nexport * from \"./MemberApplyControl.vue?vue&type=script&setup=true&lang=ts&\"\nimport style0 from \"./MemberApplyControl.vue?vue&type=style&index=0&id=2562f654&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { defineComponent as _defineComponent } from 'vue'\nimport MasterApplyControl from './MasterApplyControl.vue';\nimport MemberApplyControl from './MemberApplyControl.vue';\nimport { useRoomStore } from '../../../stores/room';\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'Index',\n setup(__props) {\n\nconst roomStore = useRoomStore();\n\n\nreturn { __sfc: true,roomStore, MasterApplyControl, MemberApplyControl }\n}\n\n})","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Index.vue?vue&type=script&setup=true&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Index.vue?vue&type=script&setup=true&lang=ts&\"","import { render, staticRenderFns } from \"./Index.vue?vue&type=template&id=e9c8db8c&\"\nimport script from \"./Index.vue?vue&type=script&setup=true&lang=ts&\"\nexport * from \"./Index.vue?vue&type=script&setup=true&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_c('div',{staticClass:\"more-control-container\"},[_c(_setup.IconButton,{attrs:{\"is-active\":_setup.sidebarName === 'more',\"title\":_setup.t('More'),\"icon-name\":_setup.ICON_NAME.More},on:{\"click-icon\":_setup.showMore}})],1),(_setup.showMoreContent)?_c('div',{ref:\"moreContentRef\",staticClass:\"show-more-content\"},[_c('div',{staticClass:\"control-compent\"},[(_setup.roomStore.isSpeakAfterTakingSeatMode)?_c(_setup.ChatControl,{on:{\"click\":function($event){return _setup.handleControlClick('chatControl')}}}):_vm._e(),_c(_setup.ContactControl,{on:{\"click\":function($event){return _setup.handleControlClick('contactControl')}}}),_c(_setup.InviteControl,{on:{\"click\":function($event){return _setup.handleControlClick('inviteControl')}}})],1),_c('div',{staticClass:\"close\",on:{\"click\":function($event){_setup.showMoreContent=false}}},[_c('i',[_vm._v(_vm._s(_setup.t('Cancel')))])])]):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { computed } from 'vue';\nimport { useBasicStore } from '../../../stores/basic';\nimport { storeToRefs } from 'pinia';\nimport { useI18n } from '../../../locales';\nimport { ICON_NAME } from '../../../constants/icon';\n\nexport default function useControl() {\n const { t } = useI18n();\n\n const basicStore = useBasicStore();\n const { sidebarName } = storeToRefs(basicStore);\n\n const iconName = computed(() => (sidebarName.value === 'more' ? ICON_NAME.MoreActive : ICON_NAME.More));\n\n return {\n t,\n basicStore,\n iconName,\n sidebarName,\n };\n}\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"invite-control-container\"},[_c(_setup.IconButton,{attrs:{\"is-active\":_setup.sidebarName === 'invite',\"title\":_setup.t('Invite'),\"icon-name\":_setup.iconName},on:{\"click-icon\":_setup.toggleInviteSidebar}}),(_setup.isShowInviteTab)?_c('div',{staticClass:\"invite-container\"},[_c(_setup.roomInvite,{ref:\"inviteRef\",on:{\"on-close-invite\":_setup.handleCloseInvite}})],1):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"invite-container-main\"},[_c('div',{staticClass:\"invite-title-main\"},[_c('p',[_vm._v(_vm._s(_setup.t('Invite')))]),(_setup.isWeChat)?_c('span',{directives:[{name:\"tap\",rawName:\"v-tap\",value:(_setup.handleCloseInvite),expression:\"handleCloseInvite\"}],staticClass:\"cancel\"},[_vm._v(_vm._s(_setup.t('Cancel')))]):_vm._e()]),_vm._l((_setup.visibleInviteContentList),function(item){return _c('div',{key:item.id,staticClass:\"invite-content-main\"},[_c('span',{staticClass:\"invite-title\"},[_vm._v(_vm._s(_setup.t(item.title)))]),_c('span',{staticClass:\"invite-content\"},[_vm._v(_vm._s(item.content))]),_c(_setup.SvgIcon,{directives:[{name:\"tap\",rawName:\"v-tap\",value:(() => _setup.onCopy(item.copyLink)),expression:\"() => onCopy(item.copyLink)\"}],staticClass:\"copy\",attrs:{\"icon-name\":\"copy-icon\",\"size\":\"custom\"}})],1)}),_c('span',{staticClass:\"invite-bottom\"},[_vm._v(\" \"+_vm._s(_setup.t('You can share the room number or link to invite more people to join the room.'))+\" \")])],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { computed, reactive } from 'vue';\nimport { useBasicStore } from '../../stores/basic';\nimport { ElMessage } from '../../elementComp';\nimport { storeToRefs } from 'pinia';\nimport { useI18n } from '../../locales';\nimport { isElectronEnv, clipBoard } from '../../utils/utils';\n\nexport default function useRoomInvite() {\n const { t } = useI18n();\n\n const basicStore = useBasicStore();\n const { roomId, shareLink, isRoomLinkVisible } = storeToRefs(basicStore);\n\n const { origin, pathname } = location || {};\n const isElectron = isElectronEnv();\n\n const inviteLink = computed(() => {\n if (shareLink.value) {\n const urlConcatenation = shareLink.value.indexOf('?') !== -1 ? '&' : '?';\n return `${shareLink.value}${urlConcatenation}roomId=${roomId.value}`;\n }\n return `${origin}${pathname}#/home?roomId=${roomId.value}`;\n });\n const schemeLink = computed(() => `tuiroom://joinroom?roomId=${roomId.value}`);\n\n async function onCopy(value: string | number) {\n try {\n await clipBoard(value);\n ElMessage({\n message: t('Copied successfully'),\n type: 'success',\n });\n } catch (error) {\n ElMessage({\n message: t('Copied failure'),\n type: 'error',\n });\n }\n }\n\n const inviteContentList = [\n { id: 1, title: 'Room ID', content: roomId, copyLink: roomId, visible: true },\n { id: 2, title: 'Room Link', content: inviteLink, copyLink: inviteLink, visible: isRoomLinkVisible.value },\n { id: 3, title: 'scheme', content: schemeLink, copyLink: schemeLink, visible: true },\n ];\n const visibleInviteContentList = reactive(inviteContentList.filter(item => item.visible));\n\n return {\n t,\n isRoomLinkVisible,\n roomId,\n origin,\n pathname,\n isElectron,\n inviteLink,\n schemeLink,\n onCopy,\n visibleInviteContentList,\n };\n}\n","import { defineComponent as _defineComponent } from 'vue'\nimport SvgIcon from '../common/SvgIcon.vue';\nimport useRoomInviteControl from './useRoomInviteHooks';\nimport { isWeChat } from '../../utils/useMediaValue';\nimport '../../directives/vTap';\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'indexH5',\n emits: ['on-close-invite'],\n setup(__props, { emit }) {\n\nconst {\n t,\n onCopy,\n visibleInviteContentList,\n} = useRoomInviteControl();\n\n\n\n\nfunction handleCloseInvite() {\n emit('on-close-invite');\n}\n\n\nreturn { __sfc: true,t, onCopy, visibleInviteContentList, emit, handleCloseInvite, SvgIcon, isWeChat }\n}\n\n})","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./indexH5.vue?vue&type=script&setup=true&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./indexH5.vue?vue&type=script&setup=true&lang=ts&\"","import { render, staticRenderFns } from \"./indexH5.vue?vue&type=template&id=eb2b478c&scoped=true&\"\nimport script from \"./indexH5.vue?vue&type=script&setup=true&lang=ts&\"\nexport * from \"./indexH5.vue?vue&type=script&setup=true&lang=ts&\"\nimport style0 from \"./indexH5.vue?vue&type=style&index=0&id=eb2b478c&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"eb2b478c\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"invite-container\"},[_c('div',{staticClass:\"invite-notice\"},[_vm._v(_vm._s(_setup.t('Share the room ID or invite link')))]),_c('div',{staticClass:\"invite-content\"},[_c('div',{staticClass:\"invite-item\"},[_c('span',{staticClass:\"invite-title\"},[_vm._v(_vm._s(_setup.t('Invite by room number')))]),_c('div',{staticClass:\"input-area\"},[_c('input',{staticClass:\"input\",attrs:{\"type\":\"text\"},domProps:{\"value\":_setup.roomId}}),_c(_setup.SvgIcon,{staticClass:\"copy\",attrs:{\"icon-name\":\"copy-icon\"},on:{\"click\":function($event){return _setup.onCopy(_setup.roomId)}}})],1)]),(_setup.isRoomLinkVisible)?_c('div',{staticClass:\"invite-item\"},[_c('span',{staticClass:\"invite-title\"},[_vm._v(_vm._s(_setup.t('Invite via room link')))]),_c('div',{staticClass:\"input-area\"},[_c('input',{staticClass:\"input\",attrs:{\"type\":\"text\"},domProps:{\"value\":_setup.inviteLink}}),_c(_setup.SvgIcon,{staticClass:\"copy\",attrs:{\"icon-name\":\"copy-icon\"},on:{\"click\":function($event){return _setup.onCopy(_setup.inviteLink)}}})],1)]):_vm._e(),_c('div',{staticClass:\"invite-item\"},[_c('span',{staticClass:\"invite-title\"},[_vm._v(_vm._s(_setup.t('Invite via client scheme')))]),_c('div',{staticClass:\"input-area\"},[_c('input',{staticClass:\"input\",attrs:{\"type\":\"text\"},domProps:{\"value\":_setup.schemeLink}}),_c(_setup.SvgIcon,{staticClass:\"copy\",attrs:{\"icon-name\":\"copy-icon\"},on:{\"click\":function($event){return _setup.onCopy(_setup.schemeLink)}}})],1)])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { defineComponent as _defineComponent } from 'vue'\nimport useRoomInviteControl from './useRoomInviteHooks';\nimport SvgIcon from '../common/SvgIcon.vue';\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'indexPC',\n setup(__props) {\n\nconst {\n t,\n isRoomLinkVisible,\n roomId,\n inviteLink,\n schemeLink,\n onCopy,\n} = useRoomInviteControl();\n\n\nreturn { __sfc: true,t, isRoomLinkVisible, roomId, inviteLink, schemeLink, onCopy, SvgIcon }\n}\n\n})","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./indexPC.vue?vue&type=script&setup=true&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./indexPC.vue?vue&type=script&setup=true&lang=ts&\"","import { render, staticRenderFns } from \"./indexPC.vue?vue&type=template&id=76a9ae2d&scoped=true&\"\nimport script from \"./indexPC.vue?vue&type=script&setup=true&lang=ts&\"\nexport * from \"./indexPC.vue?vue&type=script&setup=true&lang=ts&\"\nimport style0 from \"./indexPC.vue?vue&type=style&index=0&id=76a9ae2d&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"76a9ae2d\",\n null\n \n)\n\nexport default component.exports","import indexH5 from './indexH5.vue';\nimport indexPC from './indexPC.vue';\nimport { isMobile } from '../../utils/useMediaValue';\n\nconst Index = isMobile ? indexH5 : indexPC;\n\nexport default Index;\n","import { defineComponent as _defineComponent } from 'vue'\nimport { computed, ref, onMounted, onUnmounted } from 'vue';\nimport IconButton from '../common/IconButton.vue';\nimport { useBasicStore } from '../../stores/basic';\nimport { storeToRefs } from 'pinia';\nimport { ICON_NAME } from '../../constants/icon';\nimport { useI18n } from '../../locales';\nimport { isMobile } from '../../utils/useMediaValue';\nimport roomInvite from '../RoomInvite';\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'InviteControl',\n setup(__props) {\n\nconst basicStore = useBasicStore();\nconst { sidebarName } = storeToRefs(basicStore);\nconst { t } = useI18n();\nconst isShowInviteTab = ref(false);\nconst inviteRef = ref();\n\nconst iconName = computed(() => (\n isMobile ? ICON_NAME.Invite : (sidebarName.value === 'invite' ? ICON_NAME.InviteActive : ICON_NAME.Invite)\n));\n\nfunction toggleInviteSidebar() {\n if (isMobile) {\n isShowInviteTab.value = true;\n if (basicStore.sidebarName === 'invite') {\n basicStore.setSidebarName('');\n return;\n }\n basicStore.setSidebarName('invite');\n } else {\n if (basicStore.setSidebarOpenStatus && basicStore.sidebarName === 'invite') {\n basicStore.setSidebarOpenStatus(false);\n basicStore.setSidebarName('');\n return;\n }\n basicStore.setSidebarOpenStatus(true);\n basicStore.setSidebarName('invite');\n }\n}\n\nfunction handleDocumentClick(event: MouseEvent) {\n if (isShowInviteTab.value && inviteRef.value && !inviteRef.value.$el.contains(event.target)) {\n isShowInviteTab.value = false;\n }\n}\n\nfunction handleCloseInvite() {\n isShowInviteTab.value = false;\n}\n\nonMounted(() => {\n document?.addEventListener('click', handleDocumentClick, true);\n});\n\nonUnmounted(() => {\n document?.removeEventListener('click', handleDocumentClick, true);\n});\n\nreturn { __sfc: true,basicStore, sidebarName, t, isShowInviteTab, inviteRef, iconName, toggleInviteSidebar, handleDocumentClick, handleCloseInvite, IconButton, roomInvite }\n}\n\n})","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./InviteControl.vue?vue&type=script&setup=true&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./InviteControl.vue?vue&type=script&setup=true&lang=ts&\"","import { render, staticRenderFns } from \"./InviteControl.vue?vue&type=template&id=78681d3c&scoped=true&\"\nimport script from \"./InviteControl.vue?vue&type=script&setup=true&lang=ts&\"\nexport * from \"./InviteControl.vue?vue&type=script&setup=true&lang=ts&\"\nimport style0 from \"./InviteControl.vue?vue&type=style&index=0&id=78681d3c&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"78681d3c\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"more-control-container\"},[_c(_setup.IconButton,{attrs:{\"is-active\":_setup.sidebarName === 'more',\"title\":_setup.t('Contact us'),\"icon-name\":\"contact-us-h5\"},on:{\"click-icon\":_setup.toggleContactSidebar}}),(_setup.isShowContactTab)?_c('div',{staticClass:\"contact-container\"},[_c(_setup.roomContact,{ref:\"contactRef\",on:{\"on-close-contact\":_setup.handleOnCloseContact}})],1):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"contact-container-main\"},[_c('div',{staticClass:\"contact-title-main\"},[_c('p',[_vm._v(_vm._s(_setup.t('Contact us')))]),(_setup.isWeChat)?_c('span',{directives:[{name:\"tap\",rawName:\"v-tap\",value:(_setup.handleCloseContact),expression:\"handleCloseContact\"}],staticClass:\"cancel\"},[_vm._v(_vm._s(_setup.t('Cancel')))]):_vm._e()]),_vm._l((_setup.contactContentList),function(item){return _c('div',{key:item.id,staticClass:\"contact-content-main\"},[_c('span',{staticClass:\"contact-title\"},[_vm._v(_vm._s(_setup.t(item.title)))]),_c('span',{staticClass:\"contact-content\"},[_vm._v(_vm._s(item.content))]),_c(_setup.SvgIcon,{directives:[{name:\"tap\",rawName:\"v-tap\",value:(() => _setup.onCopy(item.copyLink)),expression:\"() => onCopy(item.copyLink)\"}],staticClass:\"copy\",attrs:{\"icon-name\":\"copy-icon\",\"size\":\"custom\"}})],1)}),_c('span',{staticClass:\"contact-bottom\"},[_vm._v(\" \"+_vm._s(_setup.t('If you have any questions, please feel free to join our QQ group or send an email'))+\" \")])],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { ElMessage } from '../../elementComp';\nimport { useI18n } from '../../locales';\nimport { clipBoard } from '../../utils/utils';\n\nexport default function useRoomMoreHooks() {\n const { t } = useI18n();\n\n const groupNumber = '592465424';\n const email = 'matthewwu@tencent.com';\n\n async function onCopy(value: string | number) {\n try {\n await clipBoard(value);\n ElMessage({\n message: t('Copied successfully'),\n type: 'success',\n });\n } catch (error) {\n ElMessage({\n message: t('Copied failure'),\n type: 'error',\n });\n }\n }\n return {\n t,\n groupNumber,\n email,\n onCopy,\n };\n}\n","import { defineComponent as _defineComponent } from 'vue'\nimport { reactive } from 'vue';\nimport useRoomMoreControl from './useRoomMoreHooks';\nimport SvgIcon from '../common/SvgIcon.vue';\nimport { isWeChat } from '../../utils/useMediaValue';\nimport '../../directives/vTap';\n\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'indexH5',\n emits: ['on-close-contact'],\n setup(__props, { emit }) {\n\nconst {\n t,\n groupNumber,\n email,\n onCopy,\n} = useRoomMoreControl();\n\n\n\nconst contactContentList = reactive([\n { id: 1, title: 'group chat', content: groupNumber, copyLink: groupNumber },\n { id: 2, title: 'Email', content: email, copyLink: email },\n]);\n\nfunction handleCloseContact() {\n emit('on-close-contact');\n}\n\nreturn { __sfc: true,t, groupNumber, email, onCopy, emit, contactContentList, handleCloseContact, SvgIcon, isWeChat }\n}\n\n})","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./indexH5.vue?vue&type=script&setup=true&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./indexH5.vue?vue&type=script&setup=true&lang=ts&\"","import { render, staticRenderFns } from \"./indexH5.vue?vue&type=template&id=76fbca8c&scoped=true&\"\nimport script from \"./indexH5.vue?vue&type=script&setup=true&lang=ts&\"\nexport * from \"./indexH5.vue?vue&type=script&setup=true&lang=ts&\"\nimport style0 from \"./indexH5.vue?vue&type=style&index=0&id=76fbca8c&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"76fbca8c\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"more-container\"},[_c('div',{staticClass:\"more-notice\"},[_vm._v(_vm._s(_setup.t('Join our QQ group chat or email us.')))]),_c('div',{staticClass:\"more-content\"},[_c('div',{staticClass:\"more-item\"},[_c('span',{staticClass:\"more-title\"},[_vm._v(_vm._s(_setup.t('group chat')))]),_c('div',{staticClass:\"input-area\"},[_c('input',{staticClass:\"input\",attrs:{\"type\":\"text\"},domProps:{\"value\":_setup.groupNumber}}),_c(_setup.SvgIcon,{staticClass:\"copy\",attrs:{\"icon-name\":\"copy-icon\"},on:{\"click\":function($event){return _setup.onCopy(_setup.groupNumber)}}})],1)]),_c('div',{staticClass:\"more-item\"},[_c('span',{staticClass:\"more-title\"},[_vm._v(_vm._s(_setup.t('Email')))]),_c('div',{staticClass:\"input-area\"},[_c('input',{staticClass:\"input\",attrs:{\"type\":\"text\"},domProps:{\"value\":_setup.email}}),_c(_setup.SvgIcon,{staticClass:\"copy\",attrs:{\"icon-name\":\"copy-icon\"},on:{\"click\":function($event){return _setup.onCopy(_setup.email)}}})],1)])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { defineComponent as _defineComponent } from 'vue'\nimport useRoomMoreControl from './useRoomMoreHooks';\nimport SvgIcon from '../common/SvgIcon.vue';\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'indexPC',\n setup(__props) {\n\nconst {\n t,\n groupNumber,\n email,\n onCopy,\n} = useRoomMoreControl();\n\nreturn { __sfc: true,t, groupNumber, email, onCopy, SvgIcon }\n}\n\n})","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./indexPC.vue?vue&type=script&setup=true&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./indexPC.vue?vue&type=script&setup=true&lang=ts&\"","import { render, staticRenderFns } from \"./indexPC.vue?vue&type=template&id=4d3067ac&scoped=true&\"\nimport script from \"./indexPC.vue?vue&type=script&setup=true&lang=ts&\"\nexport * from \"./indexPC.vue?vue&type=script&setup=true&lang=ts&\"\nimport style0 from \"./indexPC.vue?vue&type=style&index=0&id=4d3067ac&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4d3067ac\",\n null\n \n)\n\nexport default component.exports","import indexH5 from './indexH5.vue';\nimport indexPC from './indexPC.vue';\nimport { isMobile } from '../../utils/useMediaValue';\n\nconst Index = isMobile ? indexH5 : indexPC;\n\nexport default Index;\n","import { defineComponent as _defineComponent } from 'vue'\nimport { ref, onMounted, onUnmounted } from 'vue';\nimport IconButton from '../common/IconButton.vue';\nimport { useBasicStore } from '../../stores/basic';\nimport { storeToRefs } from 'pinia';\nimport { useI18n } from '../../locales';\nimport { isMobile } from '../../utils/useMediaValue';\nimport roomContact from '../RoomMore';\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'ContactControl',\n setup(__props) {\n\nconst basicStore = useBasicStore();\nconst { sidebarName } = storeToRefs(basicStore);\nconst { t } = useI18n();\nconst isShowContactTab = ref(false);\nconst contactRef = ref();\n\nfunction toggleContactSidebar() {\n if (!isMobile) {\n if (basicStore.setSidebarOpenStatus && basicStore.sidebarName === 'more') {\n basicStore.setSidebarOpenStatus(false);\n basicStore.setSidebarName('');\n return;\n }\n basicStore.setSidebarOpenStatus(true);\n basicStore.setSidebarName('more');\n } else {\n isShowContactTab.value = true;\n if (basicStore.sidebarName === 'more') {\n basicStore.setSidebarName('');\n return;\n }\n basicStore.setSidebarName('more');\n }\n}\n\n\nfunction handleDocumentClick(event: MouseEvent) {\n if (isShowContactTab.value && contactRef.value && !contactRef.value.$el.contains(event.target)) {\n isShowContactTab.value = false;\n }\n}\n\nfunction handleOnCloseContact() {\n isShowContactTab.value = false;\n}\n\nonMounted(() => {\n document.addEventListener('click', handleDocumentClick, true);\n});\n\nonUnmounted(() => {\n document.removeEventListener('click', handleDocumentClick, true);\n});\n\nreturn { __sfc: true,basicStore, sidebarName, t, isShowContactTab, contactRef, toggleContactSidebar, handleDocumentClick, handleOnCloseContact, IconButton, roomContact }\n}\n\n})","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ContactControl.vue?vue&type=script&setup=true&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ContactControl.vue?vue&type=script&setup=true&lang=ts&\"","import { render, staticRenderFns } from \"./ContactControl.vue?vue&type=template&id=251c1f14&scoped=true&\"\nimport script from \"./ContactControl.vue?vue&type=script&setup=true&lang=ts&\"\nexport * from \"./ContactControl.vue?vue&type=script&setup=true&lang=ts&\"\nimport style0 from \"./ContactControl.vue?vue&type=style&index=0&id=251c1f14&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"251c1f14\",\n null\n \n)\n\nexport default component.exports","export type EventType = string | symbol;\n\n// An event handler can take an optional event argument\n// and should not return a value\nexport type Handler = (event: T) => void;\nexport type WildcardHandler> = (\n\ttype: keyof T,\n\tevent: T[keyof T]\n) => void;\n\n// An array of all currently registered event handlers for a type\nexport type EventHandlerList = Array>;\nexport type WildCardEventHandlerList> = Array>;\n\n// A map of event types and their corresponding event handlers.\nexport type EventHandlerMap> = Map<\n\tkeyof Events | '*',\n\tEventHandlerList | WildCardEventHandlerList\n>;\n\nexport interface Emitter> {\n\tall: EventHandlerMap;\n\n\ton(type: Key, handler: Handler): void;\n\ton(type: '*', handler: WildcardHandler): void;\n\n\toff(type: Key, handler?: Handler): void;\n\toff(type: '*', handler: WildcardHandler): void;\n\n\temit(type: Key, event: Events[Key]): void;\n\temit(type: undefined extends Events[Key] ? Key : never): void;\n}\n\n/**\n * Mitt: Tiny (~200b) functional event emitter / pubsub.\n * @name mitt\n * @returns {Mitt}\n */\nexport default function mitt>(\n\tall?: EventHandlerMap\n): Emitter {\n\ttype GenericEventHandler =\n\t\t| Handler\n\t\t| WildcardHandler;\n\tall = all || new Map();\n\n\treturn {\n\n\t\t/**\n\t\t * A Map of event names to registered handler functions.\n\t\t */\n\t\tall,\n\n\t\t/**\n\t\t * Register an event handler for the given type.\n\t\t * @param {string|symbol} type Type of event to listen for, or `'*'` for all events\n\t\t * @param {Function} handler Function to call in response to given event\n\t\t * @memberOf mitt\n\t\t */\n\t\ton(type: Key, handler: GenericEventHandler) {\n\t\t\tconst handlers: Array | undefined = all!.get(type);\n\t\t\tif (handlers) {\n\t\t\t\thandlers.push(handler);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tall!.set(type, [handler] as EventHandlerList);\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Remove an event handler for the given type.\n\t\t * If `handler` is omitted, all handlers of the given type are removed.\n\t\t * @param {string|symbol} type Type of event to unregister `handler` from, or `'*'`\n\t\t * @param {Function} [handler] Handler function to remove\n\t\t * @memberOf mitt\n\t\t */\n\t\toff(type: Key, handler?: GenericEventHandler) {\n\t\t\tconst handlers: Array | undefined = all!.get(type);\n\t\t\tif (handlers) {\n\t\t\t\tif (handler) {\n\t\t\t\t\thandlers.splice(handlers.indexOf(handler) >>> 0, 1);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tall!.set(type, []);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Invoke all handlers for the given type.\n\t\t * If present, `'*'` handlers are invoked after type-matched handlers.\n\t\t *\n\t\t * Note: Manually firing '*' handlers is not supported.\n\t\t *\n\t\t * @param {string|symbol} type The event type to invoke\n\t\t * @param {Any} [evt] Any value (object is recommended and powerful), passed to each handler\n\t\t * @memberOf mitt\n\t\t */\n\t\temit(type: Key, evt?: Events[Key]) {\n\t\t\tlet handlers = all!.get(type);\n\t\t\tif (handlers) {\n\t\t\t\t(handlers as EventHandlerList)\n\t\t\t\t\t.slice()\n\t\t\t\t\t.map((handler) => {\n\t\t\t\t\t\thandler(evt!);\n\t\t\t\t\t});\n\t\t\t}\n\n\t\t\thandlers = all!.get('*');\n\t\t\tif (handlers) {\n\t\t\t\t(handlers as WildCardEventHandlerList)\n\t\t\t\t\t.slice()\n\t\t\t\t\t.map((handler) => {\n\t\t\t\t\t\thandler(type, evt!);\n\t\t\t\t\t});\n\t\t\t}\n\t\t}\n\t};\n}\n","// 事件总线第三方库\nimport mitt from 'mitt';\nconst bus = mitt();\nexport default bus;\n","import { defineComponent as _defineComponent } from 'vue'\nimport IconButton from '../../common/IconButton.vue';\nimport userMoreControl from './useMoreControlHooks';\nimport ChatControl from '../ChatControl.vue';\nimport InviteControl from '../InviteControl.vue';\nimport ContactControl from '../ContactControl.vue';\nimport { useRoomStore } from '../../../stores/room';\nimport { ref, onMounted, onUnmounted } from 'vue';\nimport bus from '../../../hooks/useMitt';\nimport TUIRoomAegis from '../../../utils/aegis';\nimport { ICON_NAME } from '../../../constants/icon';\n\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'MoreControlH5',\n setup(__props) {\n\nconst showMoreContent = ref(false);\nconst moreContentRef = ref();\n\nconst {\n t,\n sidebarName,\n} = userMoreControl();\nconst roomStore = useRoomStore();\n\nfunction showMore() {\n showMoreContent.value = true;\n}\nfunction handleControlClick(name: string) {\n TUIRoomAegis.reportEvent({ name, ext1: name });\n bus.emit('experience-communication', name);\n}\n\nfunction handleDocumentClick(event: MouseEvent) {\n if (showMoreContent.value && !moreContentRef.value.contains(event.target)) {\n showMoreContent.value = false;\n }\n}\n\nonMounted(() => {\n document?.addEventListener('click', handleDocumentClick, true);\n});\n\nonUnmounted(() => {\n document?.removeEventListener('click', handleDocumentClick, true);\n});\n\nreturn { __sfc: true,showMoreContent, moreContentRef, t, sidebarName, roomStore, showMore, handleControlClick, handleDocumentClick, IconButton, ChatControl, InviteControl, ContactControl, ICON_NAME }\n}\n\n})","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./MoreControlH5.vue?vue&type=script&setup=true&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./MoreControlH5.vue?vue&type=script&setup=true&lang=ts&\"","import { render, staticRenderFns } from \"./MoreControlH5.vue?vue&type=template&id=7814bc4f&scoped=true&\"\nimport script from \"./MoreControlH5.vue?vue&type=script&setup=true&lang=ts&\"\nexport * from \"./MoreControlH5.vue?vue&type=script&setup=true&lang=ts&\"\nimport style0 from \"./MoreControlH5.vue?vue&type=style&index=0&id=7814bc4f&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7814bc4f\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"more-control-container\"},[_c(_setup.IconButton,{attrs:{\"is-active\":_setup.sidebarName === 'more',\"title\":_setup.t('More'),\"icon-name\":_setup.iconName},on:{\"click-icon\":_setup.toggleMoreSidebar}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { defineComponent as _defineComponent } from 'vue'\nimport IconButton from '../../common/IconButton.vue';\nimport userMoreControl from './useMoreControlHooks';\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'MoreControlPC',\n setup(__props) {\n\nconst {\n t,\n iconName,\n basicStore,\n sidebarName,\n} = userMoreControl();\n\nfunction toggleMoreSidebar() {\n if (basicStore.setSidebarOpenStatus && basicStore.sidebarName === 'more') {\n basicStore.setSidebarOpenStatus(false);\n basicStore.setSidebarName('');\n return;\n }\n basicStore.setSidebarOpenStatus(true);\n basicStore.setSidebarName('more');\n}\n\nreturn { __sfc: true,t, iconName, basicStore, sidebarName, toggleMoreSidebar, IconButton }\n}\n\n})","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./MoreControlPC.vue?vue&type=script&setup=true&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./MoreControlPC.vue?vue&type=script&setup=true&lang=ts&\"","import { render, staticRenderFns } from \"./MoreControlPC.vue?vue&type=template&id=8fb09940&scoped=true&\"\nimport script from \"./MoreControlPC.vue?vue&type=script&setup=true&lang=ts&\"\nexport * from \"./MoreControlPC.vue?vue&type=script&setup=true&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"8fb09940\",\n null\n \n)\n\nexport default component.exports","import MoreControlH5 from './MoreControlH5.vue';\nimport MoreControlPc from './MoreControlPC.vue';\n\nimport { isMobile } from '../../../utils/useMediaValue';\n\nconst MoreControl = isMobile ? MoreControlH5 : MoreControlPc;\n\nexport default MoreControl;\n","import { useRoomStore } from '../../../stores/room';\nimport { useI18n } from '../../../locales';\n\n\nexport default function useRoomFooter() {\n const roomStore = useRoomStore();\n const { t } = useI18n();\n\n return {\n t,\n roomStore }\n ;\n}\n","import { defineComponent as _defineComponent } from 'vue'\nimport AudioControl from '../AudioControl.vue';\nimport VideoControl from '../VideoControl.vue';\nimport ManageMemberControl from '../ManageMemberControl.vue';\nimport ChatControl from '../ChatControl.vue';\nimport ApplyControl from '../ApplyControl/Index.vue';\nimport MoreControl from '../MoreControl';\nimport bus from '../../../hooks/useMitt';\nimport '../../../directives/vTap';\n\nimport TUIRoomAegis from '../../../utils/aegis';\n\nimport useRoomFooter from './useRoomFooterHooks';\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'indexH5',\n setup(__props) {\n\nconst {\n roomStore,\n} = useRoomFooter();\n\n\nfunction handleControlClick(name: string) {\n TUIRoomAegis.reportEvent({ name, ext1: name });\n bus.emit('experience-communication', name);\n}\n\nreturn { __sfc: true,roomStore, handleControlClick, AudioControl, VideoControl, ManageMemberControl, ChatControl, ApplyControl, MoreControl }\n}\n\n})","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./indexH5.vue?vue&type=script&setup=true&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./indexH5.vue?vue&type=script&setup=true&lang=ts&\"","import { render, staticRenderFns } from \"./indexH5.vue?vue&type=template&id=6f1ee0d6&scoped=true&\"\nimport script from \"./indexH5.vue?vue&type=script&setup=true&lang=ts&\"\nexport * from \"./indexH5.vue?vue&type=script&setup=true&lang=ts&\"\nimport style0 from \"./indexH5.vue?vue&type=style&index=0&id=6f1ee0d6&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6f1ee0d6\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"footer-container\"},[_c('div',{staticClass:\"left-container\"},[_c(_setup.AudioControl,{staticClass:\"left-container-item\",on:{\"click\":function($event){return _setup.handleControlClick('audioControl')}}}),_c(_setup.VideoControl,{staticClass:\"left-container-item\",on:{\"click\":function($event){return _setup.handleControlClick('videoControl')}}})],1),_c('div',{staticClass:\"center-container\"},[_c(_setup.ScreenShareControl,{on:{\"click\":function($event){return _setup.handleControlClick('screenShareControl')}}}),_c(_setup.FullScreenControl,{on:{\"click\":function($event){return _setup.handleControlClick('fullScreenControl')}}}),(_setup.roomStore.isMaster)?_c(_setup.ManageMemberControl,{on:{\"click\":function($event){return _setup.handleControlClick('manageMemberControl')}}}):_vm._e(),_c(_setup.InviteControl,{on:{\"click\":function($event){return _setup.handleControlClick('inviteControl')}}}),_c(_setup.ChatControl,{on:{\"click\":function($event){return _setup.handleControlClick('chatControl')}}}),(_setup.roomStore.isSpeakAfterTakingSeatMode)?_c(_setup.ApplyControl,{on:{\"click\":function($event){return _setup.handleControlClick('applyControl')}}}):_vm._e(),_c(_setup.MoreControl,{on:{\"click\":function($event){return _setup.handleControlClick('moreControl')}}}),_c(_setup.SettingControl,{on:{\"click\":function($event){return _setup.handleControlClick('settingControl')}}})],1),_c('div',{staticClass:\"right-container\"},[_c(_setup.EndControl,{on:{\"on-destroy-room\":_setup.onDestroyRoom,\"on-exit-room\":_setup.onExitRoom}})],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"screen-share-control-container\"},[_c(_setup.IconButton,{ref:\"btnStopRef\",attrs:{\"is-active\":_setup.isSharing,\"disabled\":_setup.screenShareDisabled,\"title\":_setup.title,\"icon-name\":_setup.iconName},on:{\"click-icon\":_setup.toggleScreenShare}}),(_setup.showStopShareRegion)?_c('div',{staticClass:\"stop-share-region\",on:{\"click\":_setup.openStopConfirmDialog}},[_c(_setup.SvgIcon,{staticClass:\"stop-share-icon\",attrs:{\"icon-name\":_setup.ICON_NAME.ScreenShareStopped}}),_c('span',[_vm._v(_vm._s(_setup.t('End sharing')))])],1):_vm._e(),_c(_setup.Dialog,{attrs:{\"model-value\":_setup.dialogVisible,\"width\":\"420px\",\"title\":_setup.t('Stop sharing?'),\"modal\":true,\"append-to-body\":false,\"before-close\":_setup.cancelStop},scopedSlots:_vm._u([{key:\"footer\",fn:function(){return [_c('span',[_c('el-button',{attrs:{\"type\":\"primary\"},on:{\"click\":_setup.stopScreenShare}},[_vm._v(_vm._s(_setup.t('Stop sharing')))]),_c('el-button',{attrs:{\"type\":\"default\"},on:{\"click\":_setup.cancelStop}},[_vm._v(_vm._s(_setup.t('Cancel')))])],1)]},proxy:true}])},[_c('span',[_vm._v(\" \"+_vm._s(_setup.t('Others will no longer see your screen after you stop sharing. Are you sure you want to stop?')))])])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { defineComponent as _defineComponent } from 'vue'\nimport { ref, Ref, computed, onUnmounted, watch } from 'vue';\nimport { storeToRefs } from 'pinia';\nimport { ElMessage } from '../../../elementComp';\nimport Dialog from '../../../elementComp/Dialog';\nimport IconButton from '../../common/IconButton.vue';\nimport TUIRoomEngine, { TUIRoomEvents } from '@tencentcloud/tuiroom-engine-js';\nimport useGetRoomEngine from '../../../hooks/useRoomEngine';\nimport { useRoomStore } from '../../../stores/room';\nimport logger from '../../../utils/common/logger';\nimport SvgIcon from '../../common/SvgIcon.vue';\nimport { ICON_NAME } from '../../../constants/icon';\nimport { MESSAGE_DURATION } from '../../../constants/message';\nimport { useI18n } from '../../../locales';\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'Index',\n setup(__props) {\n\nconst roomEngine = useGetRoomEngine();\n\nconst logPrefix = '[ScreenShareControl]';\n\nconst roomStore = useRoomStore();\nconst { isAnchor, isAudience, hasOtherScreenShare } = storeToRefs(roomStore);\nconst { t } = useI18n();\n\nconst btnStopRef = ref();\nconst isSharing: Ref = ref(false);\nconst showStopShareRegion: Ref = ref(false);\nconst dialogVisible: Ref = ref(false);\n\n// 麦下用户不能进行屏幕分享\nconst screenShareDisabled = computed(() => isAudience.value);\nconst title = computed(() => (isSharing.value ? t('Sharing') : t('Share screen')));\nconst iconName = computed(() => {\n if (screenShareDisabled.value) {\n return ICON_NAME.ScreenShareDisabled;\n }\n return isSharing.value ? ICON_NAME.ScreenSharing : ICON_NAME.ScreenShare;\n});\n\nwatch(isAnchor, (val: any, oldVal: any) => {\n if (!oldVal && val && isSharing.value) {\n stopScreenShare();\n }\n});\n\nasync function toggleScreenShare() {\n if (isAudience.value) {\n ElMessage({\n type: 'warning',\n message: t('You currently do not have sharing permission, please raise your hand to apply for sharing permission first'),\n duration: MESSAGE_DURATION.LONG,\n });\n return;\n }\n if (hasOtherScreenShare.value) {\n ElMessage({\n type: 'warning',\n message: t('Another user is currently sharing the screen, screen sharing is not possible.'),\n duration: MESSAGE_DURATION.LONG,\n });\n return;\n }\n if (isSharing.value) {\n showStopShareRegion.value = true;\n return;\n }\n try {\n await roomEngine.instance?.startScreenSharing();\n isSharing.value = true;\n } catch (error: any) {\n logger.error(`${logPrefix}startScreenShare error:`, error.name, error.message, error.code);\n let message = '';\n // 当屏幕分享流初始化失败时, 提醒用户并停止后续进房发布流程\n switch (error.name) {\n case 'NotReadableError':\n // 提醒用户确保系统允许当前浏览器获取屏幕内容\n message = '系统禁止当前浏览器获取屏幕内容';\n break;\n case 'NotAllowedError':\n if (error.message.includes('Permission denied by system')) {\n // 提醒用户确保系统允许当前浏览器获取屏幕内容\n message = '系统禁止当前浏览器获取屏幕内容';\n } else {\n // 用户拒绝/取消屏幕分享\n message = '用户拒绝/取消屏幕分享';\n }\n break;\n default:\n // 初始化屏幕分享流时遇到了未知错误,提醒用户重试\n message = '屏幕分享遇到未知错误';\n break;\n }\n ElMessage({\n type: 'warning',\n message,\n duration: MESSAGE_DURATION.LONG,\n });\n }\n}\n\nfunction openStopConfirmDialog() {\n showStopShareRegion.value = false;\n if (isSharing.value) {\n dialogVisible.value = true;\n }\n}\n\nfunction cancelStop() {\n dialogVisible.value = false;\n}\n\nasync function stopScreenShare() {\n if (isSharing.value) {\n try {\n await roomEngine.instance?.stopScreenSharing();\n dialogVisible.value = false;\n isSharing.value = false;\n } catch (error) {\n logger.error(`${logPrefix}stopScreenShare error:`, error);\n }\n }\n}\n\n/** 用户点击浏览器自带的 \"停止共享\" 按钮*/\nfunction screenCaptureStopped() {\n isSharing.value = false;\n}\n\nTUIRoomEngine.once('ready', () => {\n roomEngine.instance?.on(TUIRoomEvents.onUserScreenCaptureStopped, screenCaptureStopped);\n});\n\nonUnmounted(() => {\n roomEngine.instance?.off(TUIRoomEvents.onUserScreenCaptureStopped, screenCaptureStopped);\n});\n\nreturn { __sfc: true,roomEngine, logPrefix, roomStore, isAnchor, isAudience, hasOtherScreenShare, t, btnStopRef, isSharing, showStopShareRegion, dialogVisible, screenShareDisabled, title, iconName, toggleScreenShare, openStopConfirmDialog, cancelStop, stopScreenShare, screenCaptureStopped, Dialog, IconButton, SvgIcon, ICON_NAME }\n}\n\n})","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Index.vue?vue&type=script&setup=true&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Index.vue?vue&type=script&setup=true&lang=ts&\"","import { render, staticRenderFns } from \"./Index.vue?vue&type=template&id=5d38a258&scoped=true&\"\nimport script from \"./Index.vue?vue&type=script&setup=true&lang=ts&\"\nexport * from \"./Index.vue?vue&type=script&setup=true&lang=ts&\"\nimport style0 from \"./Index.vue?vue&type=style&index=0&id=5d38a258&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5d38a258\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"fullscreen-control-container\"},[_c(_setup.IconButton,{attrs:{\"is-active\":_setup.isFullScreen,\"title\":_setup.title,\"icon-name\":_setup.iconName},on:{\"click-icon\":_setup.toggleScreen}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { defineComponent as _defineComponent } from 'vue'\nimport { ref, computed, onMounted, onUnmounted } from 'vue';\nimport IconButton from '../common/IconButton.vue';\nimport { setFullScreen, exitFullScreen } from '../../utils/utils';\nimport { ICON_NAME } from '../../constants/icon';\nimport { useI18n } from '../../locales';\nimport { isVue27 } from '../../utils/constants';\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'FullScreenControl',\n setup(__props) {\n\nconst { t } = useI18n();\n\n/**\n * Whether the current state is full screen, default is false\n *\n * 当前是否为全屏状态, 默认为 false\n**/\nconst isFullScreen = ref(false);\n\nconst title = computed((): string => (isFullScreen.value ? t('Exit') : t('Full screen')));\nconst iconName = computed((): string => (isFullScreen.value ? ICON_NAME.ExitFullScreen : ICON_NAME.FullScreen));\n\nfunction toggleScreen() {\n if (isFullScreen.value) {\n exitFullScreen();\n } else {\n if (isVue27) {\n const roomContainer = document.body;\n roomContainer && setFullScreen(roomContainer);\n } else {\n const roomContainer = document.getElementById('roomContainer');\n roomContainer && setFullScreen(roomContainer);\n }\n }\n}\n\nfunction handleFullScreenChange() {\n isFullScreen.value = !isFullScreen.value;\n}\n\nonMounted(() => {\n ['fullscreenchange', 'webkitfullscreenchange', 'mozfullscreenchange'].forEach((item) => {\n window.addEventListener(item, handleFullScreenChange);\n });\n});\n\nonUnmounted(() => {\n ['fullscreenchange', 'webkitfullscreenchange', 'mozfullscreenchange'].forEach((item) => {\n window.removeEventListener(item, handleFullScreenChange);\n });\n});\n\nreturn { __sfc: true,t, isFullScreen, title, iconName, toggleScreen, handleFullScreenChange, IconButton }\n}\n\n})","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./FullScreenControl.vue?vue&type=script&setup=true&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./FullScreenControl.vue?vue&type=script&setup=true&lang=ts&\"","import { render, staticRenderFns } from \"./FullScreenControl.vue?vue&type=template&id=2ebc7fcf&scoped=true&\"\nimport script from \"./FullScreenControl.vue?vue&type=script&setup=true&lang=ts&\"\nexport * from \"./FullScreenControl.vue?vue&type=script&setup=true&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"2ebc7fcf\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"setting-control-container\"},[_c(_setup.IconButton,{attrs:{\"is-active\":_setup.showSettingDialog,\"title\":_setup.t('Settings'),\"icon-name\":_setup.iconName},on:{\"click-icon\":_setup.handleShowSettingDialog}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { defineComponent as _defineComponent } from 'vue'\nimport { computed } from 'vue';\nimport IconButton from '../common/IconButton.vue';\nimport { useBasicStore } from '../../stores/basic';\nimport { storeToRefs } from 'pinia';\nimport { ICON_NAME } from '../../constants/icon';\nimport { useI18n } from '../../locales';\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'SettingControl',\n setup(__props) {\n\nconst { t } = useI18n();\n\nconst basicStore = useBasicStore();\nconst { showSettingDialog } = storeToRefs(basicStore);\n\nconst iconName = computed(() => (showSettingDialog.value ? ICON_NAME.SettingActive : ICON_NAME.Setting));\n\nfunction handleShowSettingDialog() {\n basicStore.setShowSettingDialog(!basicStore.showSettingDialog);\n}\n\nreturn { __sfc: true,t, basicStore, showSettingDialog, iconName, handleShowSettingDialog, IconButton }\n}\n\n})","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SettingControl.vue?vue&type=script&setup=true&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SettingControl.vue?vue&type=script&setup=true&lang=ts&\"","import { render, staticRenderFns } from \"./SettingControl.vue?vue&type=template&id=2c9e5284&scoped=true&\"\nimport script from \"./SettingControl.vue?vue&type=script&setup=true&lang=ts&\"\nexport * from \"./SettingControl.vue?vue&type=script&setup=true&lang=ts&\"\nimport style0 from \"./SettingControl.vue?vue&type=style&index=0&id=2c9e5284&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"2c9e5284\",\n null\n \n)\n\nexport default component.exports","import { defineComponent as _defineComponent } from 'vue'\nimport AudioControl from '../AudioControl.vue';\nimport ScreenShareControl from '../ScreenShareControl/Index.vue';\nimport FullScreenControl from '../FullScreenControl.vue';\nimport InviteControl from '../InviteControl.vue';\nimport VideoControl from '../VideoControl.vue';\nimport ManageMemberControl from '../ManageMemberControl.vue';\nimport ChatControl from '../ChatControl.vue';\nimport ApplyControl from '../ApplyControl/Index.vue';\nimport MoreControl from '../MoreControl';\nimport EndControl from '../EndControl';\nimport SettingControl from '../SettingControl.vue';\nimport bus from '../../../hooks/useMitt';\n\n\nimport TUIRoomAegis from '../../../utils/aegis';\n\nimport useRoomFooter from './useRoomFooterHooks';\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'indexPC',\n emits: ['on-destroy-room', 'on-exit-room'],\n setup(__props, { emit }) {\n\nconst {\n roomStore,\n} = useRoomFooter();\n\n\n\nconst onDestroyRoom = (info: { code: number; message: string }) => {\n emit('on-destroy-room', info);\n TUIRoomAegis.reportEvent({ name: 'destroyRoom', ext1: 'destroyRoom-success' });\n};\n\nconst onExitRoom = (info: { code: number; message: string }) => {\n emit('on-exit-room', info);\n TUIRoomAegis.reportEvent({ name: 'exitRoom', ext1: 'exitRoom-success' });\n};\n\nfunction handleControlClick(name: string) {\n TUIRoomAegis.reportEvent({ name, ext1: name });\n bus.emit('experience-communication', name);\n}\n\nreturn { __sfc: true,roomStore, emit, onDestroyRoom, onExitRoom, handleControlClick, AudioControl, ScreenShareControl, FullScreenControl, InviteControl, VideoControl, ManageMemberControl, ChatControl, ApplyControl, MoreControl, EndControl, SettingControl }\n}\n\n})","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./indexPC.vue?vue&type=script&setup=true&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./indexPC.vue?vue&type=script&setup=true&lang=ts&\"","import { render, staticRenderFns } from \"./indexPC.vue?vue&type=template&id=fcf4ace8&scoped=true&\"\nimport script from \"./indexPC.vue?vue&type=script&setup=true&lang=ts&\"\nexport * from \"./indexPC.vue?vue&type=script&setup=true&lang=ts&\"\nimport style0 from \"./indexPC.vue?vue&type=style&index=0&id=fcf4ace8&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"fcf4ace8\",\n null\n \n)\n\nexport default component.exports","import indexH5 from './indexH5.vue';\nimport indexPc from './indexPC.vue';\nimport { isMobile } from '../../../utils/useMediaValue';\n\nconst Index = isMobile ? indexH5 : indexPc;\n\nexport default Index;\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return (_setup.showSideBar)?_c(_setup.popup,{staticClass:\"sidebar-container-mobile\",attrs:{\"title\":_setup.title},scopedSlots:_vm._u([{key:\"sidebarContent\",fn:function(){return [_c('div',{staticStyle:{\"height\":\"100%\"}},[(_setup.sidebarName === 'chat')?_c(_setup.Chat):_vm._e(),(_setup.sidebarName === 'manage-member')?_c(_setup.ManageMember):_vm._e()],1)]},proxy:true},{key:\"sidebarFooter\",fn:function(){return [_c('div',[(_setup.sidebarName === 'chat')?_c(_setup.ChatEditor):_vm._e()],1)]},proxy:true}],null,false,403798847)}):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{class:[_setup.isMobile ? 'chat-container-h5' : 'chat-container' ]},[_c(_setup.MessageList),(!_setup.isMobile)?_c(_setup.ChatEditor):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{class:_setup.isMobile ? 'message-list-container-h5':'message-list-container'},[_c('div',{staticClass:\"message-list\"},_vm._l((_setup.messageList),function(item){return _c('div',{key:item.ID,ref:\"messageAimId\",refInFor:true,class:['message-item', `${'out' === item.flow ? 'is-me' : ''}`]},[_c('div',{staticClass:\"message-header\",attrs:{\"title\":item.nick || item.from}},[_vm._v(\" \"+_vm._s(item.nick || item.from)+\" \")]),_c('div',{staticClass:\"message-body\"},[(item.type === 'TIMTextElem')?_c(_setup.MessageText,{attrs:{\"data\":item.payload.text}}):_vm._e()],1)])}),0),_c('div',{ref:\"messageBottomEl\",staticClass:\"message-bottom\"})])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('span',_vm._l((_setup.handleTextMessageShowContext(_setup.props.data)),function(item,index){return _c('span',{key:index},[(item.name === 'text')?_c('span',{staticClass:\"text-box\"},[_vm._v(_vm._s(item.text))]):(item.name === 'img')?_c('img',{staticClass:\"text-img\",attrs:{\"src\":item.src}}):_vm._e()])}),0)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export const emojiUrl:string = 'https://web.sdk.qcloud.com/im/assets/emoji/';\nexport const emojiMap:any = {\n '[NO]': 'emoji_0@2x.png',\n '[OK]': 'emoji_1@2x.png',\n '[下雨]': 'emoji_2@2x.png',\n '[么么哒]': 'emoji_3@2x.png',\n '[乒乓]': 'emoji_4@2x.png',\n '[便便]': 'emoji_5@2x.png',\n '[信封]': 'emoji_6@2x.png',\n '[偷笑]': 'emoji_7@2x.png',\n '[傲慢]': 'emoji_8@2x.png',\n '[再见]': 'emoji_9@2x.png',\n '[冷汗]': 'emoji_10@2x.png',\n '[凋谢]': 'emoji_11@2x.png',\n '[刀]': 'emoji_12@2x.png',\n '[删除]': 'emoji_13@2x.png',\n '[勾引]': 'emoji_14@2x.png',\n '[发呆]': 'emoji_15@2x.png',\n '[发抖]': 'emoji_16@2x.png',\n '[可怜]': 'emoji_17@2x.png',\n '[可爱]': 'emoji_18@2x.png',\n '[右哼哼]': 'emoji_19@2x.png',\n '[右太极]': 'emoji_20@2x.png',\n '[右车头]': 'emoji_21@2x.png',\n '[吐]': 'emoji_22@2x.png',\n '[吓]': 'emoji_23@2x.png',\n '[咒骂]': 'emoji_24@2x.png',\n '[咖啡]': 'emoji_25@2x.png',\n '[啤酒]': 'emoji_26@2x.png',\n '[嘘]': 'emoji_27@2x.png',\n '[回头]': 'emoji_28@2x.png',\n '[困]': 'emoji_29@2x.png',\n '[坏笑]': 'emoji_30@2x.png',\n '[多云]': 'emoji_31@2x.png',\n '[大兵]': 'emoji_32@2x.png',\n '[大哭]': 'emoji_33@2x.png',\n '[太阳]': 'emoji_34@2x.png',\n '[奋斗]': 'emoji_35@2x.png',\n '[奶瓶]': 'emoji_36@2x.png',\n '[委屈]': 'emoji_37@2x.png',\n '[害羞]': 'emoji_38@2x.png',\n '[尴尬]': 'emoji_39@2x.png',\n '[左哼哼]': 'emoji_40@2x.png',\n '[左太极]': 'emoji_41@2x.png',\n '[左车头]': 'emoji_42@2x.png',\n '[差劲]': 'emoji_43@2x.png',\n '[弱]': 'emoji_44@2x.png',\n '[强]': 'emoji_45@2x.png',\n '[彩带]': 'emoji_46@2x.png',\n '[彩球]': 'emoji_47@2x.png',\n '[得意]': 'emoji_48@2x.png',\n '[微笑]': 'emoji_49@2x.png',\n '[心碎了]': 'emoji_50@2x.png',\n '[快哭了]': 'emoji_51@2x.png',\n '[怄火]': 'emoji_52@2x.png',\n '[怒]': 'emoji_53@2x.png',\n '[惊恐]': 'emoji_54@2x.png',\n '[惊讶]': 'emoji_55@2x.png',\n '[憨笑]': 'emoji_56@2x.png',\n '[手枪]': 'emoji_57@2x.png',\n '[打哈欠]': 'emoji_58@2x.png',\n '[抓狂]': 'emoji_59@2x.png',\n '[折磨]': 'emoji_60@2x.png',\n '[抠鼻]': 'emoji_61@2x.png',\n '[抱抱]': 'emoji_62@2x.png',\n '[抱拳]': 'emoji_63@2x.png',\n '[拳头]': 'emoji_64@2x.png',\n '[挥手]': 'emoji_65@2x.png',\n '[握手]': 'emoji_66@2x.png',\n '[撇嘴]': 'emoji_67@2x.png',\n '[擦汗]': 'emoji_68@2x.png',\n '[敲打]': 'emoji_69@2x.png',\n '[晕]': 'emoji_70@2x.png',\n '[月亮]': 'emoji_71@2x.png',\n '[棒棒糖]': 'emoji_72@2x.png',\n '[汽车]': 'emoji_73@2x.png',\n '[沙发]': 'emoji_74@2x.png',\n '[流汗]': 'emoji_75@2x.png',\n '[流泪]': 'emoji_76@2x.png',\n '[激动]': 'emoji_77@2x.png',\n '[灯泡]': 'emoji_78@2x.png',\n '[炸弹]': 'emoji_79@2x.png',\n '[熊猫]': 'emoji_80@2x.png',\n '[爆筋]': 'emoji_81@2x.png',\n '[爱你]': 'emoji_82@2x.png',\n '[爱心]': 'emoji_83@2x.png',\n '[爱情]': 'emoji_84@2x.png',\n '[猪头]': 'emoji_85@2x.png',\n '[猫咪]': 'emoji_86@2x.png',\n '[献吻]': 'emoji_87@2x.png',\n '[玫瑰]': 'emoji_88@2x.png',\n '[瓢虫]': 'emoji_89@2x.png',\n '[疑问]': 'emoji_90@2x.png',\n '[白眼]': 'emoji_91@2x.png',\n '[皮球]': 'emoji_92@2x.png',\n '[睡觉]': 'emoji_93@2x.png',\n '[磕头]': 'emoji_94@2x.png',\n '[示爱]': 'emoji_95@2x.png',\n '[礼品袋]': 'emoji_96@2x.png',\n '[礼物]': 'emoji_97@2x.png',\n '[篮球]': 'emoji_98@2x.png',\n '[米饭]': 'emoji_99@2x.png',\n '[糗大了]': 'emoji_100@2x.png',\n '[红双喜]': 'emoji_101@2x.png',\n '[红灯笼]': 'emoji_102@2x.png',\n '[纸巾]': 'emoji_103@2x.png',\n '[胜利]': 'emoji_104@2x.png',\n '[色]': 'emoji_105@2x.png',\n '[药]': 'emoji_106@2x.png',\n '[菜刀]': 'emoji_107@2x.png',\n '[蛋糕]': 'emoji_108@2x.png',\n '[蜡烛]': 'emoji_109@2x.png',\n '[街舞]': 'emoji_110@2x.png',\n '[衰]': 'emoji_111@2x.png',\n '[西瓜]': 'emoji_112@2x.png',\n '[调皮]': 'emoji_113@2x.png',\n '[象棋]': 'emoji_114@2x.png',\n '[跳绳]': 'emoji_115@2x.png',\n '[跳跳]': 'emoji_116@2x.png',\n '[车厢]': 'emoji_117@2x.png',\n '[转圈]': 'emoji_118@2x.png',\n '[鄙视]': 'emoji_119@2x.png',\n '[酷]': 'emoji_120@2x.png',\n '[钞票]': 'emoji_121@2x.png',\n '[钻戒]': 'emoji_122@2x.png',\n '[闪电]': 'emoji_123@2x.png',\n '[闭嘴]': 'emoji_124@2x.png',\n '[闹钟]': 'emoji_125@2x.png',\n '[阴险]': 'emoji_126@2x.png',\n '[难过]': 'emoji_127@2x.png',\n '[雨伞]': 'emoji_128@2x.png',\n '[青蛙]': 'emoji_129@2x.png',\n '[面条]': 'emoji_130@2x.png',\n '[鞭炮]': 'emoji_131@2x.png',\n '[风车]': 'emoji_132@2x.png',\n '[飞吻]': 'emoji_133@2x.png',\n '[飞机]': 'emoji_134@2x.png',\n '[饥饿]': 'emoji_135@2x.png',\n '[香蕉]': 'emoji_136@2x.png',\n '[骷髅]': 'emoji_137@2x.png',\n '[麦克风]': 'emoji_138@2x.png',\n '[麻将]': 'emoji_139@2x.png',\n '[鼓掌]': 'emoji_140@2x.png',\n '[龇牙]': 'emoji_141@2x.png',\n};\nexport const emojiList = [\n '[龇牙]',\n '[调皮]',\n '[流汗]',\n '[偷笑]',\n '[再见]',\n '[敲打]',\n '[擦汗]',\n '[猪头]',\n '[玫瑰]',\n '[流泪]',\n '[大哭]',\n '[嘘]',\n '[酷]',\n '[抓狂]',\n '[委屈]',\n '[便便]',\n '[炸弹]',\n '[菜刀]',\n '[可爱]',\n '[色]',\n '[害羞]',\n '[得意]',\n '[吐]',\n '[微笑]',\n '[怒]',\n '[尴尬]',\n '[惊恐]',\n '[冷汗]',\n '[爱心]',\n '[示爱]',\n '[白眼]',\n '[傲慢]',\n '[难过]',\n '[惊讶]',\n '[疑问]',\n '[困]',\n '[么么哒]',\n '[憨笑]',\n '[爱情]',\n '[衰]',\n '[撇嘴]',\n '[阴险]',\n '[奋斗]',\n '[发呆]',\n '[右哼哼]',\n '[抱抱]',\n '[坏笑]',\n '[飞吻]',\n '[鄙视]',\n '[晕]',\n '[大兵]',\n '[可怜]',\n '[强]',\n '[弱]',\n '[握手]',\n '[胜利]',\n '[抱拳]',\n '[凋谢]',\n '[米饭]',\n '[蛋糕]',\n '[西瓜]',\n '[啤酒]',\n '[瓢虫]',\n '[勾引]',\n '[OK]',\n '[爱你]',\n '[咖啡]',\n '[月亮]',\n '[刀]',\n '[发抖]',\n '[差劲]',\n '[拳头]',\n '[心碎了]',\n '[太阳]',\n '[礼物]',\n '[皮球]',\n '[骷髅]',\n '[挥手]',\n '[闪电]',\n '[饥饿]',\n '[咒骂]',\n '[折磨]',\n '[抠鼻]',\n '[鼓掌]',\n '[糗大了]',\n '[左哼哼]',\n '[打哈欠]',\n '[快哭了]',\n '[吓]',\n '[篮球]',\n '[乒乓]',\n '[NO]',\n '[跳跳]',\n '[怄火]',\n '[转圈]',\n '[磕头]',\n '[回头]',\n '[跳绳]',\n '[激动]',\n '[街舞]',\n '[献吻]',\n '[左太极]',\n '[右太极]',\n '[闭嘴]',\n '[猫咪]',\n '[红双喜]',\n '[鞭炮]',\n '[红灯笼]',\n '[麻将]',\n '[麦克风]',\n '[礼品袋]',\n '[信封]',\n '[象棋]',\n '[彩带]',\n '[蜡烛]',\n '[爆筋]',\n '[棒棒糖]',\n '[奶瓶]',\n '[面条]',\n '[香蕉]',\n '[飞机]',\n '[左车头]',\n '[车厢]',\n '[右车头]',\n '[多云]',\n '[下雨]',\n '[钞票]',\n '[熊猫]',\n '[灯泡]',\n '[风车]',\n '[闹钟]',\n '[雨伞]',\n '[彩球]',\n '[钻戒]',\n '[沙发]',\n '[纸巾]',\n '[手枪]',\n '[青蛙]',\n];\nexport const faceUrl:string = 'https://web.sdk.qcloud.com/im/assets/face-elem/';\n\nexport function decodeMessageText(payload: string) {\n const renderDom = [];\n /**\n * Text Message\n *\n * 文本消息\n **/\n let temp = payload;\n let left = -1;\n let right = -1;\n while (temp !== '') {\n left = temp.indexOf('[');\n right = temp.indexOf(']');\n switch (left) {\n case 0:\n if (right === -1) {\n renderDom.push({\n name: 'text',\n text: temp,\n });\n temp = '';\n } else {\n const emojiKey = temp.slice(0, right + 1);\n if (emojiMap[emojiKey]) {\n renderDom.push({\n name: 'img',\n src: emojiUrl + emojiMap[emojiKey],\n });\n temp = temp.substring(right + 1);\n } else {\n renderDom.push({\n name: 'text',\n text: '[',\n });\n temp = temp.slice(1);\n }\n }\n break;\n case -1:\n renderDom.push({\n name: 'text',\n text: temp,\n });\n temp = '';\n break;\n default:\n renderDom.push({\n name: 'text',\n text: temp.slice(0, left),\n });\n temp = temp.substring(left);\n break;\n }\n }\n return renderDom;\n}\n","import { defineComponent as _defineComponent } from 'vue'\nimport { decodeMessageText } from '../util';\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'MessageText',\n props: ['data'],\n setup(__props) {\n\nconst props = __props\n\n\n\nconst handleTextMessageShowContext = (text: string) => decodeMessageText(text);\n\n\nreturn { __sfc: true,props, handleTextMessageShowContext }\n}\n\n})","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./MessageText.vue?vue&type=script&setup=true&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./MessageText.vue?vue&type=script&setup=true&lang=ts&\"","import { render, staticRenderFns } from \"./MessageText.vue?vue&type=template&id=467c6786&scoped=true&\"\nimport script from \"./MessageText.vue?vue&type=script&setup=true&lang=ts&\"\nexport * from \"./MessageText.vue?vue&type=script&setup=true&lang=ts&\"\nimport style0 from \"./MessageText.vue?vue&type=style&index=0&id=467c6786&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"467c6786\",\n null\n \n)\n\nexport default component.exports","import { ref, watch, nextTick } from 'vue';\nimport { storeToRefs } from 'pinia';\nimport { useChatStore } from '../../stores/chat';\nimport { useBasicStore } from '../../stores/basic';\nimport { useI18n } from '../../locales';\nimport useGetRoomEngine from '../../hooks/useRoomEngine';\n\nexport default function useMessageList() {\n const { t } = useI18n();\n const roomEngine = useGetRoomEngine();\n const chatStore = useChatStore();\n const basicStore = useBasicStore();\n const { roomId } = storeToRefs(basicStore);\n const { messageList, isCompleted, nextReqMessageId } = storeToRefs(chatStore);\n const historyMessageList = ref([]);\n const messageAimId = ref();\n const messageBottomEl = ref(null);\n /**\n * To solve the problem of scrolling up the message yourself,\n * to prevent others from sending messages keep scrolling down the message list\n *\n * 为了解决自己向上滚动浏览消息, 防止别人发的消息不停向下滚消息列表\n**/\n let loadMore = false;\n let isScrollNotAtBottom = false;\n let isScrollToTop = false;\n const handleMessageListScroll = (e: Event) => {\n const messageContainer = e.target as HTMLElement;\n const bottom = messageContainer.scrollHeight - messageContainer.scrollTop - messageContainer.clientHeight;\n if (bottom > 80) {\n /**\n * 30 is the threshold for determining whether to scroll up through the messages\n *\n * 30 为判断是否向上滚动浏览消息的阈值\n **/\n isScrollNotAtBottom = true;\n } else {\n isScrollNotAtBottom = false;\n }\n if (isScrollToTop) {\n messageContainer.scrollTop = 0;\n isScrollToTop = false;\n }\n\n if (messageContainer.scrollTop < 40 && loadMore) {\n handleGetHistoryMessageList();\n }\n };\n\n watch(isCompleted, (value) => {\n loadMore = !value;\n }, { immediate: true, deep: true });\n\n watch(messageList, async (newMessageList, oldMessageList) => { // eslint-disable-line\n await nextTick();\n if (isScrollNotAtBottom) {\n if (newMessageList.length >= 1) {\n const lastMessage = newMessageList[newMessageList.length - 1];\n const oldLastMessage = oldMessageList[oldMessageList.length - 1];\n if ((lastMessage as any).flow === 'out' && lastMessage.ID !== oldLastMessage.ID) {\n /**\n * The latest one was sent by myself\n *\n * 最新一条是自己发送的\n **/\n messageBottomEl.value && messageBottomEl.value.scrollIntoView();\n }\n }\n return;\n }\n /**\n * If you don't scroll all the way to the bottom, show the latest news directly\n *\n * 如果没进行滚动一直在底部, 直接展示最新消息\n **/\n messageBottomEl.value && messageBottomEl.value.scrollIntoView();\n });\n\n async function handleGetHistoryMessageList() {\n const tim = roomEngine.instance?.getTIM();\n const imResponse = await tim.getMessageList({\n conversationID: `GROUP${roomId.value}`,\n nextReqMessageID: nextReqMessageId.value,\n });\n const { nextReqMessageID: middleReqMessageId, messageList: historyMessageList, isCompleted } = imResponse.data;\n messageList.value.splice(0, 0, ...historyMessageList);\n const currentMessageList = messageList.value.filter(item => item.type === 'TIMTextElem');\n chatStore.setMessageListInfo(currentMessageList, isCompleted, middleReqMessageId);\n }\n async function getMessageList(): Promise<{\n currentMessageList: any[];\n isCompleted: boolean,\n nextReqMessageId: string,\n }> {\n let count = 0;\n const result: {\n currentMessageList: any[],\n isCompleted: boolean,\n nextReqMessageId: string,\n } = {\n currentMessageList: [],\n isCompleted: false,\n nextReqMessageId: '',\n };\n const tim: any = roomEngine.instance?.getTIM();\n\n const getIMMessageList = async () => {\n const conversationData: {\n conversationID: string,\n nextReqMessageID?: string | undefined;\n } = {\n conversationID: `GROUP${roomId.value}`,\n };\n if (result.nextReqMessageId !== '') {\n conversationData.nextReqMessageID = result.nextReqMessageId;\n }\n const imResponse = await tim.getMessageList(conversationData);\n const { messageList, isCompleted, nextReqMessageID } = imResponse.data;\n result.currentMessageList.splice(0, 0, ...messageList);\n result.isCompleted = messageList.length > 0 ? isCompleted : true;\n result.nextReqMessageId = nextReqMessageID;\n if (result.isCompleted || result.currentMessageList.length >= 15) {\n return;\n }\n count += 1;\n if (count === 1) {\n await getIMMessageList();\n }\n };\n\n await getIMMessageList();\n\n return result;\n };\n const onReceiveTextMessage = (data: { roomId: string, message: any }) => {\n const { message } = data;\n chatStore.updateMessageList({\n ID: message.messageId,\n type: 'TIMTextElem',\n payload: {\n text: message.message,\n },\n nick: message?.userName || message.userId,\n from: message.userId,\n flow: 'in',\n sequence: Math.random(),\n });\n };\n return {\n t,\n roomEngine,\n historyMessageList,\n messageAimId,\n messageBottomEl,\n handleMessageListScroll,\n handleGetHistoryMessageList,\n onReceiveTextMessage,\n messageList,\n isScrollNotAtBottom,\n getMessageList,\n };\n}\n","import { defineComponent as _defineComponent } from 'vue'\nimport { nextTick, onMounted, onUnmounted } from 'vue';\nimport MessageText from '../MessageTypes/MessageText.vue';\nimport TUIRoomEngine, { TUIRoomEvents } from '@tencentcloud/tuiroom-engine-js';\nimport { isMobile } from '../../../utils/useMediaValue';\nimport useMessageList from '../useMessageListHook';\nimport { useChatStore } from '../../../stores/chat';\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'MessageListPC',\n setup(__props) {\n\nconst chatStore = useChatStore();\n\nconst {\n messageAimId,\n roomEngine,\n messageBottomEl,\n handleMessageListScroll,\n onReceiveTextMessage,\n messageList,\n getMessageList,\n} = useMessageList();\n\n\nonMounted(async () => {\n const { currentMessageList, isCompleted, nextReqMessageId } = await getMessageList();\n const filterCurrentMessageList = currentMessageList.filter((item: any) => item.type === 'TIMTextElem');\n chatStore.setMessageListInfo(filterCurrentMessageList, isCompleted, nextReqMessageId);\n\n await nextTick(() => {\n if (messageAimId?.value?.length > 0) {\n const target = messageAimId?.value[messageAimId?.value?.length - 1];\n target.scrollIntoView();\n }\n });\n window.addEventListener('scroll', handleMessageListScroll, true);\n});\n\n\nTUIRoomEngine.once('ready', () => {\n roomEngine.instance?.on(TUIRoomEvents.onReceiveTextMessage, onReceiveTextMessage);\n});\n\nonUnmounted(() => {\n window.removeEventListener('scroll', handleMessageListScroll, true);\n roomEngine.instance?.off(TUIRoomEvents.onReceiveTextMessage, onReceiveTextMessage);\n});\n\nreturn { __sfc: true,chatStore, messageAimId, roomEngine, messageBottomEl, handleMessageListScroll, onReceiveTextMessage, messageList, getMessageList, MessageText, isMobile }\n}\n\n})","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./MessageListPC.vue?vue&type=script&setup=true&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./MessageListPC.vue?vue&type=script&setup=true&lang=ts&\"","import { render, staticRenderFns } from \"./MessageListPC.vue?vue&type=template&id=3ee0bdff&scoped=true&\"\nimport script from \"./MessageListPC.vue?vue&type=script&setup=true&lang=ts&\"\nexport * from \"./MessageListPC.vue?vue&type=script&setup=true&lang=ts&\"\nimport style0 from \"./MessageListPC.vue?vue&type=style&index=0&id=3ee0bdff&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3ee0bdff\",\n null\n \n)\n\nexport default component.exports","import messageListPC from './MessageListPC.vue';\n\nexport default messageListPC;\n\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{class:['chat-editor', _setup.cannotSendMessage ? 'disable-editor' : '']},[_c('div',{staticClass:\"input-content\"},[_c(_setup.emoji,{staticClass:\"chat-emoji\",on:{\"choose-emoji\":_setup.handleChooseEmoji}}),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_setup.sendMsg),expression:\"sendMsg\"}],ref:\"editorInputEle\",staticClass:\"content-bottom-input\",attrs:{\"type\":\"text\",\"disabled\":_setup.cannotSendMessage,\"placeholder\":_setup.cannotSendMessage ? _setup.t('Muted by the moderator') : _setup.t('Type a message'),\"enterkeyhint\":\"send\"},domProps:{\"value\":(_setup.sendMsg)},on:{\"keyup\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\"))return null;return _setup.sendMessage.apply(null, arguments)},\"input\":function($event){if($event.target.composing)return;_setup.sendMsg=$event.target.value}}})],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"emoji-tool\"},[_c(_setup.SvgIcon,{staticClass:\"arrow emoji-icon\",attrs:{\"icon-name\":\"emoji-h5\",\"size\":\"medium\"},on:{\"click\":_setup.togglePopover}}),(_setup.visible)?_c('div',{ref:\"emojiListRef\",class:_setup.isMobile? 'emoji-list-h5':'emoji-list',attrs:{\"id\":\"emoji-list\"}},_vm._l((_setup.emojiList),function(childrenItem,childrenIndex){return _c('div',{key:childrenIndex,staticClass:\"emoji-item\",on:{\"click\":function($event){return _setup.chooseEmoji(childrenItem)}}},[_c('img',{attrs:{\"src\":_setup.emojiUrl + _setup.emojiMap[childrenItem]}})])}),0):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { defineComponent as _defineComponent } from 'vue'\nimport { ref, onMounted, onUnmounted } from 'vue';\nimport { emojiUrl, emojiMap, emojiList } from '../util';\nimport SvgIcon from '../../common/SvgIcon.vue';\nimport { isMobile } from '../../../utils/useMediaValue';\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'emojiPC',\n emits: ['choose-emoji'],\n setup(__props, { emit }) {\n\nconst emojiListRef = ref();\n\nconst visible = ref(false);\n\nconst chooseEmoji = (itemName: string) => {\n const emojiInfo = itemName;\n closePopover();\n emit('choose-emoji', emojiInfo);\n};\n\nconst togglePopover = () => {\n visible.value = !visible.value;\n};\n\nconst closePopover = () => {\n visible.value = false;\n};\n\nfunction handleDocumentClick(event: MouseEvent) {\n if (visible.value && !emojiListRef.value.contains(event.target)) {\n visible.value = false;\n }\n}\n\nonMounted(() => {\n document.addEventListener('click', handleDocumentClick, true);\n});\n\nonUnmounted(() => {\n document.removeEventListener('click', handleDocumentClick, true);\n});\n\nreturn { __sfc: true,emojiListRef, visible, emit, chooseEmoji, togglePopover, closePopover, handleDocumentClick, emojiUrl, emojiMap, emojiList, SvgIcon, isMobile }\n}\n\n})","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./emojiPC.vue?vue&type=script&setup=true&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./emojiPC.vue?vue&type=script&setup=true&lang=ts&\"","import { render, staticRenderFns } from \"./emojiPC.vue?vue&type=template&id=78a2609f&scoped=true&\"\nimport script from \"./emojiPC.vue?vue&type=script&setup=true&lang=ts&\"\nexport * from \"./emojiPC.vue?vue&type=script&setup=true&lang=ts&\"\nimport style0 from \"./emojiPC.vue?vue&type=style&index=0&id=78a2609f&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"78a2609f\",\n null\n \n)\n\nexport default component.exports","import emojiPC from './emojiPC.vue';\nexport default emojiPC;\n\n","import { computed, ref, watch } from 'vue';\nimport { storeToRefs } from 'pinia';\nimport { ElMessage } from '../../../elementComp';\n\nimport useGetRoomEngine from '../../../hooks/useRoomEngine';\nimport { useChatStore } from '../../../stores/chat';\nimport { useRoomStore } from '../../../stores/room';\nimport { useI18n } from '../../../locales';\nexport default function useChatEditor() {\n const roomEngine = useGetRoomEngine();\n\n const { t } = useI18n();\n const chatStore = useChatStore();\n const roomStore = useRoomStore();\n\n const { isMessageDisableByAdmin } = storeToRefs(chatStore);\n const { isMessageDisableForAllUser } = storeToRefs(roomStore);\n const editorInputEle = ref();\n const sendMsg = ref('');\n const isEmojiToolbarVisible = ref(false);\n watch(isMessageDisableByAdmin, (value) => {\n if (value) {\n sendMsg.value = '';\n }\n });\n\n watch(isMessageDisableForAllUser, (value) => {\n if (value) {\n sendMsg.value = '';\n }\n });\n const cannotSendMessage = computed(() => Boolean(isMessageDisableByAdmin.value || isMessageDisableForAllUser.value));\n const sendMessage = async () => {\n const msg = sendMsg.value.replace('\\n', '');\n sendMsg.value = '';\n if (msg === '') {\n return;\n }\n isEmojiToolbarVisible.value = false;\n try {\n await roomEngine.instance?.sendTextMessage({\n messageText: msg,\n });\n chatStore.updateMessageList({\n ID: Math.random().toString(),\n type: 'TIMTextElem',\n payload: {\n text: msg,\n },\n nick: roomStore.localUser.userName || roomStore.localUser.userId,\n from: roomStore.localUser.userId,\n flow: 'out',\n sequence: Math.random(),\n });\n } catch (e) {\n /**\n * Message delivery failure\n *\n * 消息发送失败\n **/\n ElMessage.error(t('Failed to send the message'));\n }\n };\n\n const handleChooseEmoji = (emojiName: string) => {\n sendMsg.value += emojiName;\n editorInputEle.value.focus();\n };\n const togglePopover = () => {\n isEmojiToolbarVisible.value = !isEmojiToolbarVisible.value;\n };\n return {\n t,\n editorInputEle,\n sendMsg,\n isMessageDisableByAdmin,\n cannotSendMessage,\n sendMessage,\n handleChooseEmoji,\n isEmojiToolbarVisible,\n togglePopover,\n };\n}\n","import { defineComponent as _defineComponent } from 'vue'\nimport emoji from '../EditorTools';\nimport useChatEditor from './useChatEditor';\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'ChatEditorH5',\n setup(__props) {\n\nconst {\n t,\n editorInputEle,\n sendMsg,\n cannotSendMessage,\n sendMessage,\n handleChooseEmoji,\n} = useChatEditor();\n\n\nreturn { __sfc: true,t, editorInputEle, sendMsg, cannotSendMessage, sendMessage, handleChooseEmoji, emoji }\n}\n\n})","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ChatEditorH5.vue?vue&type=script&setup=true&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ChatEditorH5.vue?vue&type=script&setup=true&lang=ts&\"","import { render, staticRenderFns } from \"./ChatEditorH5.vue?vue&type=template&id=4ae1f1c7&scoped=true&\"\nimport script from \"./ChatEditorH5.vue?vue&type=script&setup=true&lang=ts&\"\nexport * from \"./ChatEditorH5.vue?vue&type=script&setup=true&lang=ts&\"\nimport style0 from \"./ChatEditorH5.vue?vue&type=style&index=0&id=4ae1f1c7&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4ae1f1c7\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{class:['chat-editor', _setup.cannotSendMessage ? 'disable-editor': '']},[_c('textarea',{directives:[{name:\"model\",rawName:\"v-model\",value:(_setup.sendMsg),expression:\"sendMsg\"}],ref:\"editorInputEle\",staticClass:\"content-bottom-input\",attrs:{\"disabled\":_setup.cannotSendMessage,\"placeholder\":_setup.cannotSendMessage ? _setup.t('Muted by the moderator') : _setup.t('Type a message')},domProps:{\"value\":(_setup.sendMsg)},on:{\"keyup\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\"))return null;return _setup.sendMessage.apply(null, arguments)},\"input\":function($event){if($event.target.composing)return;_setup.sendMsg=$event.target.value}}}),_vm._v(\" \"),(!_setup.cannotSendMessage)?_c('div',{staticClass:\"chat-editor-toolbar\"},[_c('div',{staticClass:\"left-section\"},[_c(_setup.emoji,{on:{\"choose-emoji\":_setup.handleChooseEmoji}})],1),_c('div',{class:['send-btn', `${_setup.sendMsg.length > 0 ? 'active' : ''}`],on:{\"click\":_setup.sendMessage}},[_vm._v(_vm._s(_setup.t('Send')))])]):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { defineComponent as _defineComponent } from 'vue'\nimport emoji from '../EditorTools';\nimport useChatEditor from './useChatEditor';\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'ChatEditorPC',\n setup(__props) {\n\nconst {\n t,\n editorInputEle,\n sendMsg,\n cannotSendMessage,\n sendMessage,\n handleChooseEmoji,\n} = useChatEditor();\n\n\nreturn { __sfc: true,t, editorInputEle, sendMsg, cannotSendMessage, sendMessage, handleChooseEmoji, emoji }\n}\n\n})","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ChatEditorPC.vue?vue&type=script&setup=true&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ChatEditorPC.vue?vue&type=script&setup=true&lang=ts&\"","import { render, staticRenderFns } from \"./ChatEditorPC.vue?vue&type=template&id=6cdfd1ed&scoped=true&\"\nimport script from \"./ChatEditorPC.vue?vue&type=script&setup=true&lang=ts&\"\nexport * from \"./ChatEditorPC.vue?vue&type=script&setup=true&lang=ts&\"\nimport style0 from \"./ChatEditorPC.vue?vue&type=style&index=0&id=6cdfd1ed&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6cdfd1ed\",\n null\n \n)\n\nexport default component.exports","import ChatEditorH5 from './ChatEditorH5.vue';\nimport ChatEditorPC from './ChatEditorPC.vue';\nimport { isMobile } from '../../../utils/useMediaValue';\n\n\nconst ChatEditor = isMobile ? ChatEditorH5 : ChatEditorPC;\n\nexport default ChatEditor;\n\n","import { defineComponent as _defineComponent } from 'vue'\nimport MessageList from './MessageList';\nimport ChatEditor from './ChatEditor';\nimport { isMobile } from '../../utils/useMediaValue';\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'index',\n setup(__props) {\n\n\nreturn { __sfc: true,MessageList, ChatEditor, isMobile }\n}\n\n})","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&setup=true&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&setup=true&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=6588445b&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&setup=true&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&setup=true&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=6588445b&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6588445b\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"manage-member-container\"},[(_setup.applyToAnchorList.length > 0)?_c('div',{staticClass:\"apply-on-stage-info\"},[_c('div',{staticClass:\"apply-info\"},[_vm._v(\" \"+_vm._s(`${_setup.applyToAnchorList[0].userName || _setup.applyToAnchorList[0].userId} ${_setup.t('Applying for the stage')}`)+\" \")])]):_vm._e(),_c('div',{staticClass:\"member-list-container\"},[_c('div',{staticClass:\"member-list-header\"},[_vm._v(\" \"+_vm._s(_setup.t('Member List'))+\" \"),_c('span',{staticClass:\"member-count\"},[_vm._v(\"(\"+_vm._s(_setup.userNumber)+_vm._s(_setup.t('members'))+\")\")])]),_c('div',{staticClass:\"member-list-content\"},_vm._l((_setup.userList),function(userInfo){return _c(_setup.MemberItem,{key:userInfo.userId,attrs:{\"user-info\":userInfo}})}),1)]),_c('div',{staticClass:\"manage-member-bottom\"},[_c('div',{staticClass:\"manage-member-button\",class:_setup.isMicrophoneDisableForAllUser ? 'lift-all' : '',on:{\"touchstart\":function($event){return _setup.toggleManageMember(_setup.ManageControlType.AUDIO)}}},[_vm._v(\" \"+_vm._s(_setup.audioManageInfo)+\" \")]),_c('div',{staticClass:\"manage-member-button\",class:_setup.isCameraDisableForAllUser ? 'lift-all' : '',on:{\"touchstart\":function($event){return _setup.toggleManageMember(_setup.ManageControlType.VIDEO)}}},[_vm._v(\" \"+_vm._s(_setup.videoManageInfo)+\" \")])]),_c(_setup.Dialog,{staticClass:\"custom-element-class\",attrs:{\"model-value\":_setup.showManageAllUserDialog,\"modal\":false,\"show-close\":false,\"append-to-body\":true,\"close-on-click-modal\":false,\"close-on-press-escape\":false,\"width\":\"500px\"},scopedSlots:_vm._u([{key:\"footer\",fn:function(){return [_c('div',{staticClass:\"button-container-mobile\"},[_c('span',{staticClass:\"cancel\",on:{\"click\":function($event){_setup.showManageAllUserDialog = false}}},[_vm._v(_vm._s(_setup.t('Cancel')))]),_c('span',{staticClass:\"agree\",on:{\"click\":_setup.doToggleManageMember}},[_vm._v(_vm._s(_setup.dialogActionInfo))])])]},proxy:true}])},[_c('span',[_vm._v(\" \"+_vm._s(_setup.dialogTitleInfo)+\" \")])])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{directives:[{name:\"tap\",rawName:\"v-tap\",value:(_setup.handleMemberItemClick),expression:\"handleMemberItemClick\"}],ref:(el) => _setup.setMemberItemRef(el),staticClass:\"member-item-container\"},[_c(_setup.MemberInfo,{ref:(el) => _setup.setMemberInfoRef(el),attrs:{\"show-state-icon\":true,\"user-info\":_vm.userInfo}}),(_setup.showMemberControl)?_c(_setup.MemberControl,{ref:(el) => _setup.setMemberControlRef(el),attrs:{\"user-info\":_vm.userInfo},on:{\"on-close-control\":_setup.handleCloseControl}}):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{class:[_setup.isMobile ? 'member-info-mobile' : 'member-info']},[_c('div',{staticClass:\"member-basic-info\"},[_c(_setup.Avatar,{staticClass:\"avatar-url\",attrs:{\"img-src\":_vm.userInfo.avatarUrl}}),_c('div',{staticClass:\"user-name\"},[_vm._v(_vm._s(_vm.userInfo.userName || _vm.userInfo.userId))]),(_setup.isMaster && _setup.isMe)?_c('div',{staticClass:\"user-extra-info\"},[_vm._v(\" \"+_vm._s(_setup.t('Host'))+\", \"+_vm._s(_setup.t('Me'))+\" \")]):(_setup.isMe)?_c('div',{staticClass:\"user-extra-info\"},[_vm._v(\" \"+_vm._s(_setup.t('Me'))+\" \")]):(_setup.basicStore.masterUserId === _vm.userInfo.userId)?_c('div',{staticClass:\"user-extra-info\"},[_vm._v(\" \"+_vm._s(_setup.t('Host'))+\" \")]):_vm._e()],1),(!_setup.isMe && _vm.showStateIcon)?_c('div',{staticClass:\"member-av-state\"},[(_vm.userInfo.onSeat)?_c('div',[_c(_setup.SvgIcon,{staticClass:\"setting-icon\",attrs:{\"icon-name\":_vm.userInfo.hasAudioStream ? _setup.ICON_NAME.MicOn : _setup.ICON_NAME.MicOff,\"size\":\"large\"}}),_c(_setup.SvgIcon,{staticClass:\"setting-icon video-icon\",attrs:{\"icon-name\":_vm.userInfo.hasVideoStream ? _setup.ICON_NAME.CameraOn : _setup.ICON_NAME.CameraOff,\"size\":\"large\"}})],1):_vm._e(),(!_vm.userInfo.onSeat && !_vm.userInfo.isUserApplyingToAnchor)?_c('div',[_c(_setup.SvgIcon,{staticClass:\"setting-icon\",attrs:{\"icon-name\":_setup.ICON_NAME.MicOffDisabled,\"size\":\"large\"}}),_c(_setup.SvgIcon,{staticClass:\"setting-icon video-icon\",attrs:{\"icon-name\":_setup.ICON_NAME.CameraOffDisabled,\"size\":\"large\"}})],1):_vm._e(),(!_vm.userInfo.onSeat && _vm.userInfo.isUserApplyingToAnchor)?_c('div',[_c(_setup.SvgIcon,{attrs:{\"icon-name\":\"apply-active\"}})],1):_vm._e()]):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { defineComponent as _defineComponent } from 'vue'\nimport { computed } from 'vue';\nimport Avatar from '../../base/Avatar.vue';\nimport { useBasicStore } from '../../../stores/basic';\nimport { UserInfo, useRoomStore } from '../../../stores/room';\nimport { storeToRefs } from 'pinia';\nimport { ICON_NAME } from '../../../constants/icon';\nimport SvgIcon from '../../common/SvgIcon.vue';\nimport { useI18n } from '../../../locales';\nimport { isMobile } from '../../../utils/useMediaValue';\n\ninterface Props {\n userInfo: UserInfo,\n showStateIcon?: Boolean,\n}\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'MemberInfo',\n props: {\n userInfo: null,\n showStateIcon: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n userInfo: UserInfo,\n showStateIcon?: Boolean,\n}\n\nconst { t } = useI18n();\n\n\nconst basicStore = useBasicStore();\nconst roomStore = useRoomStore();\nconst { isMaster } = storeToRefs(roomStore);\n\nconst isMe = computed(() => basicStore.userId === props.userInfo.userId);\n\n\nreturn { __sfc: true,t, props, basicStore, roomStore, isMaster, isMe, Avatar, ICON_NAME, SvgIcon, isMobile }\n}\n\n})","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./MemberInfo.vue?vue&type=script&setup=true&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./MemberInfo.vue?vue&type=script&setup=true&lang=ts&\"","import { render, staticRenderFns } from \"./MemberInfo.vue?vue&type=template&id=0325ed23&scoped=true&\"\nimport script from \"./MemberInfo.vue?vue&type=script&setup=true&lang=ts&\"\nexport * from \"./MemberInfo.vue?vue&type=script&setup=true&lang=ts&\"\nimport style0 from \"./MemberInfo.vue?vue&type=style&index=0&id=0325ed23&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0325ed23\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return (!_setup.isMe)?_c('div',{staticClass:\"member-control-container\"},[_c('div',{staticClass:\"member-title\"},[_c('img',{staticClass:\"avatar-url\",attrs:{\"src\":_vm.userInfo.avatarUrl || _setup.defaultAvatar}}),_c('div',{staticClass:\"member-title-content\"},[_vm._v(_vm._s(_vm.userInfo.userName || _vm.userInfo.userId))]),(_setup.isWeChat)?_c('span',{directives:[{name:\"tap\",rawName:\"v-tap.stop\",value:(_setup.handleCloseControl),expression:\"handleCloseControl\",modifiers:{\"stop\":true}}],staticClass:\"cancel\"},[_vm._v(_vm._s(_setup.t('Cancel')))]):_vm._e()]),_vm._l((_setup.controlList),function(item,index){return _c('div',{directives:[{name:\"tap\",rawName:\"v-tap\",value:(() => item.func(_vm.userInfo)),expression:\"() => item.func(userInfo)\"}],key:index,staticClass:\"user-operate-item\"},[_c(_setup.SvgIcon,{staticClass:\"icon-svg\",attrs:{\"icon-name\":item.iconName}}),_c('div',{staticClass:\"control-title\"},[_vm._v(_vm._s(item.title))])],1)})],2):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { defineComponent as _defineComponent } from 'vue'\nimport { computed } from 'vue';\nimport { useI18n } from '../../../locales';\n\nimport { UserInfo, useRoomStore } from '../../../stores/room';\nimport defaultAvatar from '../../../assets/imgs/avatar.png';\nimport useGetRoomEngine from '../../../hooks/useRoomEngine';\nimport { useBasicStore } from '../../../stores/basic';\nimport SvgIcon from '../../common/SvgIcon.vue';\nimport useMasterApplyControl from '../../../hooks/useMasterApplyControl';\nimport { isWeChat } from '../../../utils/useMediaValue';\nimport { TUIMediaDevice } from '@tencentcloud/tuiroom-engine-js';\nimport '../../../directives/vTap';\n\ninterface Props {\n userInfo: UserInfo,\n}\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'MemberControlH5',\n props: {\n userInfo: null\n },\n emits: ['on-close-control'],\n setup(__props: any, { emit }) {\n\nconst props = __props as {\n userInfo: UserInfo,\n}\n\nconst roomEngine = useGetRoomEngine();\nconst { t } = useI18n();\n\nconst basicStore = useBasicStore();\nconst roomStore = useRoomStore();\n/**\n * Functions related to the Raise Your Hand function\n *\n * 举手发言功能相关函数\n**/\nconst {\n agreeUserOnStage,\n denyUserOnStage,\n inviteUserOnStage,\n cancelInviteUserOnStage,\n kickUserOffStage,\n} = useMasterApplyControl();\n\n\n\n\nconst isMe = computed(() => basicStore.userId === props.userInfo.userId);\nconst isAnchor = computed(() => props.userInfo.onSeat === true);\nconst isAudience = computed(() => props.userInfo.onSeat !== true);\nconst isFreeSpeechMode = computed(() => roomStore.isFreeSpeakMode);\nconst isSpeakAfterTakingSeat = computed(() => roomStore.isSpeakAfterTakingSeatMode);\n\nconst requestStageTitle = computed(() => (\n isAnchor.value\n ? t('Step down')\n : props.userInfo.isInvitingUserToAnchor\n ? t('Cancel stage')\n : t('Invite stage')\n));\n\n/**\n * Invitation to the stage/uninvitation to the stage\n *\n * 邀请上台/取消邀请上台\n**/\nasync function toggleInviteUserOnStage(userInfo: UserInfo) {\n const { isInvitingUserToAnchor } = userInfo;\n if (isInvitingUserToAnchor) {\n cancelInviteUserOnStage(userInfo);\n } else {\n inviteUserOnStage(userInfo);\n }\n}\n\n// 邀请上台 / 取消邀请上台\nconst toggleInviteStage = computed(() => ({ iconName: 'apply', title: requestStageTitle.value, func: toggleInviteUserOnStage }));\n\n// 邀请下台\nconst makeOffStage = computed(() => ({ iconName: 'apply', title: t('Step down'), func: kickUserOffStage }));\n\n// 同意上台\nconst agreeOnStage = computed(() => ({ iconName: 'apply', title: t('Agree to the stage'), func: agreeUserOnStage }));\n\n// 拒绝上台\nconst denyOnStage = computed(() => ({ iconName: 'apply', title: t('Refuse stage'), func: denyUserOnStage }));\n\nconst audioControlTitle = computed(() => (\n props.userInfo.hasAudioStream\n ? t('Mute')\n : (props.userInfo.isRequestingUserOpenMic\n ? t('Cancel Unmute')\n : t('Unmute'))\n));\nconst audioControl = computed(() => ({ iconName: 'mic-on', title: audioControlTitle.value, func: muteUserAudio }));\n\nconst videoControlTitle = computed(() => {\n if (props.userInfo.hasVideoStream) {\n return t('Disable video');\n }\n if (props.userInfo.isRequestingUserOpenCamera) {\n return t('Cancel Enable video');\n }\n return t('Enable video');\n});\nconst videoControl = computed(() => ({ iconName: 'camera-on', title: videoControlTitle.value, func: muteUserVideo }));\n\nconst chatControlTitle = computed(() => (props.userInfo.isChatMutedByMaster ? t('Enable chat') : t('Disable chat')));\nconst forbidChat = computed(() => ({ iconName: 'chat', title: chatControlTitle.value, func: disableUserChat }));\n\nconst kickUser = computed(() => ({ iconName: 'invite', title: t('Kick out'), func: kickOffUser }));\n\n/**\n* Control the centralized matching of elements\n *\n * Free speech mode\n * 1. Current user is the anchor.\n * Banning/unbanning Banning/unbanning drawing\n * Banning chat\n * Kicked out of the room\n *\n * Raise hand to speak mode\n * 1. Current user is the host.\n * Banning/unbanning Banning/unbanning drawing\n * Invite to step down\n * Ban chat\n * Kicked out of the room\n * 2.\n * 2. Audience did not request to be on the mic.\n * Invite on stage / Disinvite on stage * Ban chat\n * Kicked out of the room\n * 3.\n * 3. the audience is applying for the mic.\n * Agree to go on stage Deny go on stage\n * Ban chat\n * Kicked out of the room\n *\n * 控制元素的集中匹配情况\n *\n * 自由发言模式\n * 1.当前用户为主播:\n * 禁言/解除禁言/取消解除禁言 禁画/解除禁画/取消解除禁画\n * 禁止聊天\n * 踢出房间\n *\n * 举手发言模式\n * 1. 当前用户为主播:\n * 禁言/解除禁言/取消解除禁言 禁画/解除禁画/取消解除禁画\n * 邀请下台\n * 禁止聊天\n * 踢出房间\n *\n * 2. 观众没有申请上麦:\n * 邀请上台/取消邀请上台 禁止聊天\n * 踢出房间\n *\n * 3. 观众正在申请上麦:\n * 同意上台 拒绝上台\n * 禁止聊天\n * 踢出房间\n**/\nconst controlList = computed(() => {\n const controlRelationObj = {\n freeSpeech: [audioControl.value, videoControl.value, forbidChat.value, kickUser.value],\n applySpeechAndAnchor:\n [audioControl.value, videoControl.value, makeOffStage.value, forbidChat.value, kickUser.value],\n applySpeechAndIsApplyingToAnchor: [agreeOnStage.value, denyOnStage.value, forbidChat.value, kickUser.value],\n applySpeechAndAudience: [toggleInviteStage.value, forbidChat.value, kickUser.value],\n default: [forbidChat.value, kickUser.value],\n };\n\n if (isFreeSpeechMode.value) {\n return controlRelationObj.freeSpeech;\n }\n if (isSpeakAfterTakingSeat.value && isAnchor.value) {\n return controlRelationObj.applySpeechAndAnchor;\n }\n if (isSpeakAfterTakingSeat.value && isAudience.value && props.userInfo.isUserApplyingToAnchor) {\n return controlRelationObj.applySpeechAndIsApplyingToAnchor;\n }\n if (isSpeakAfterTakingSeat.value && isAudience.value && !props.userInfo.isUserApplyingToAnchor) {\n return controlRelationObj.applySpeechAndAudience;\n }\n return controlRelationObj.default;\n});\n\n/**\n * Banning/Unbanning\n *\n * 禁麦/邀请打开麦克风\n**/\nasync function muteUserAudio(userInfo: UserInfo) {\n if (userInfo.hasAudioStream) {\n await roomEngine.instance?.closeRemoteDeviceByAdmin({\n userId: userInfo.userId,\n device: TUIMediaDevice.kMicrophone,\n });\n } else {\n if (userInfo.isRequestingUserOpenMic) {\n const requestId = userInfo.requestUserOpenMicRequestId;\n requestId && await roomEngine.instance?.cancelRequest({ requestId });\n roomStore.setRequestUserOpenMic({ userId: userInfo.userId, isRequesting: false });\n } else {\n const request = await roomEngine.instance?.openRemoteDeviceByAdmin({\n userId: userInfo.userId,\n device: TUIMediaDevice.kMicrophone,\n timeout: 0,\n requestCallback: () => {\n // 处理请求超时,应答,拒绝的情况\n roomStore.setRequestUserOpenMic({ userId: userInfo.userId, isRequesting: false });\n },\n });\n if (request && request.requestId) {\n roomStore.setRequestUserOpenMic({ userId: userInfo.userId, isRequesting: true, requestId: request.requestId });\n }\n }\n }\n}\n\n/**\n * Banned painting/unbanned painting\n *\n * 禁画/取消禁画\n**/\nasync function muteUserVideo(userInfo: UserInfo) {\n if (userInfo.hasVideoStream) {\n await roomEngine.instance?.closeRemoteDeviceByAdmin({\n userId: userInfo.userId,\n device: TUIMediaDevice.kCamera,\n });\n } else {\n if (userInfo.isRequestingUserOpenCamera) {\n const requestId = userInfo.requestUserOpenCameraRequestId;\n requestId && await roomEngine.instance?.cancelRequest({ requestId });\n roomStore.setRequestUserOpenCamera({ userId: userInfo.userId, isRequesting: false });\n } else {\n const request = await roomEngine.instance?.openRemoteDeviceByAdmin({\n userId: userInfo.userId,\n device: TUIMediaDevice.kCamera,\n timeout: 0,\n requestCallback: () => {\n // 处理请求超时,应答,拒绝的情况\n roomStore.setRequestUserOpenCamera({ userId: userInfo.userId, isRequesting: false });\n },\n });\n if (request && request.requestId) {\n roomStore.setRequestUserOpenCamera({\n userId: userInfo.userId,\n isRequesting: true,\n requestId: request.requestId,\n });\n }\n }\n }\n}\n/**\n * Allow text chat / Cancel text chat\n *\n * 允许文字聊天/取消文字聊天\n**/\nfunction disableUserChat(userInfo: UserInfo) {\n const currentState = userInfo.isChatMutedByMaster;\n roomStore.setMuteUserChat(userInfo.userId, !currentState);\n roomEngine.instance?.disableSendingMessageByAdmin({\n userId: userInfo.userId,\n isDisable: !currentState,\n });\n}\n\n/**\n * Kick the user out of the room\n *\n * 将用户踢出房间\n**/\nfunction kickOffUser(userInfo: UserInfo) {\n roomEngine.instance?.kickRemoteUserOutOfRoom({\n userId: userInfo.userId,\n });\n}\n\nfunction handleCloseControl() {\n emit('on-close-control');\n}\n\nreturn { __sfc: true,roomEngine, t, basicStore, roomStore, agreeUserOnStage, denyUserOnStage, inviteUserOnStage, cancelInviteUserOnStage, kickUserOffStage, emit, props, isMe, isAnchor, isAudience, isFreeSpeechMode, isSpeakAfterTakingSeat, requestStageTitle, toggleInviteUserOnStage, toggleInviteStage, makeOffStage, agreeOnStage, denyOnStage, audioControlTitle, audioControl, videoControlTitle, videoControl, chatControlTitle, forbidChat, kickUser, controlList, muteUserAudio, muteUserVideo, disableUserChat, kickOffUser, handleCloseControl, defaultAvatar, SvgIcon, isWeChat }\n}\n\n})","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./MemberControlH5.vue?vue&type=script&setup=true&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./MemberControlH5.vue?vue&type=script&setup=true&lang=ts&\"","import { render, staticRenderFns } from \"./MemberControlH5.vue?vue&type=template&id=d259161c&scoped=true&\"\nimport script from \"./MemberControlH5.vue?vue&type=script&setup=true&lang=ts&\"\nexport * from \"./MemberControlH5.vue?vue&type=script&setup=true&lang=ts&\"\nimport style0 from \"./MemberControlH5.vue?vue&type=style&index=0&id=d259161c&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"d259161c\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return (!_setup.isMe)?_c('div',{staticClass:\"member-control-container\"},[_c('div',{staticClass:\"mute-btn\",on:{\"click\":function($event){return _setup.singleControl.func(_vm.userInfo)}}},[_vm._v(\" \"+_vm._s(_setup.singleControl.title)+\" \")]),_c('div',{staticClass:\"more-container\",on:{\"click\":_setup.handlePopUp}},[_c('div',{staticClass:\"more-btn\",on:{\"click\":_setup.toggleClickMoreBtn}},[_vm._v(\" \"+_vm._s(_setup.t('More'))+\" \"),_c(_setup.SvgIcon,{staticClass:\"more-icon\",attrs:{\"icon-name\":_setup.ICON_NAME.ArrowBorderDown}})],1),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_setup.showMoreControl),expression:\"showMoreControl\"}],class:_setup.dropdownClass,attrs:{\"id\":\"operate-list\"},on:{\"mouseleave\":_setup.handleMouseLeave}},_vm._l((_setup.controlList),function(item,index){return _c('div',{key:index,staticClass:\"user-operate-item\",on:{\"click\":function($event){return item.func(_vm.userInfo)}}},[_vm._v(\" \"+_vm._s(item.title)+\" \")])}),0)])]):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { defineComponent as _defineComponent } from 'vue'\nimport { ref, computed } from 'vue';\nimport { useI18n } from '../../../locales';\n\nimport { UserInfo, useRoomStore } from '../../../stores/room';\nimport { ICON_NAME } from '../../../constants/icon';\nimport useGetRoomEngine from '../../../hooks/useRoomEngine';\nimport { useBasicStore } from '../../../stores/basic';\nimport SvgIcon from '../../common/SvgIcon.vue';\nimport useMasterApplyControl from '../../../hooks/useMasterApplyControl';\nimport { TUIMediaDevice } from '@tencentcloud/tuiroom-engine-js';\ninterface Props {\n userInfo: UserInfo,\n}\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'MemberControlPC',\n props: {\n userInfo: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n userInfo: UserInfo,\n}\n\nconst roomEngine = useGetRoomEngine();\nconst { t } = useI18n();\n\nconst basicStore = useBasicStore();\nconst roomStore = useRoomStore();\nconst dropdownClass = ref('');\n/**\n * Functions related to the Raise Your Hand function\n *\n * 举手发言功能相关函数\n**/\nconst {\n agreeUserOnStage,\n denyUserOnStage,\n inviteUserOnStage,\n cancelInviteUserOnStage,\n kickUserOffStage,\n} = useMasterApplyControl();\n\n\n\nconst showMoreControl = ref(false);\nconst isMe = computed(() => basicStore.userId === props.userInfo.userId);\nconst isAnchor = computed(() => props.userInfo.onSeat === true);\nconst isAudience = computed(() => props.userInfo.onSeat !== true);\nconst isFreeSpeechMode = computed(() => roomStore.isFreeSpeakMode);\nconst isSpeakAfterTakingSeat = computed(() => roomStore.isSpeakAfterTakingSeatMode);\n/**\n* Control the centralized matching of elements\n *\n * Free speech mode\n * 1. Current user is the anchor.\n * Banning/unbanning Banning/unbanning drawing\n * Banning chat\n * Kicked out of the room\n *\n * Raise hand to speak mode\n * 1. Current user is the host.\n * Banning/unbanning Banning/unbanning drawing\n * Invite to step down\n * Ban chat\n * Kicked out of the room\n * 2.\n * 2. Audience did not request to be on the mic.\n * Invite on stage / Disinvite on stage * Ban chat\n * Kicked out of the room\n * 3.\n * 3. the audience is applying for the mic.\n * Agree to go on stage Deny go on stage\n * Ban chat\n * Kicked out of the room\n *\n * 控制元素的集中匹配情况\n *\n * 自由发言模式\n * 1.当前用户为主播:\n * 禁言/解除禁言/取消解除禁言 禁画/解除禁画/取消解除禁画\n * 禁止聊天\n * 踢出房间\n *\n * 举手发言模式\n * 1. 当前用户为主播:\n * 禁言/解除禁言/取消解除禁言 禁画/解除禁画/取消解除禁画\n * 邀请下台\n * 禁止聊天\n * 踢出房间\n *\n * 2. 观众没有申请上麦:\n * 邀请上台/取消邀请上台 禁止聊天\n * 踢出房间\n *\n * 3. 观众正在申请上麦:\n * 同意上台 拒绝上台\n * 禁止聊天\n * 踢出房间\n**/\nfunction handlePopUp() {\n const dropdown = document.getElementById('operate-list');\n const roomContainer = document.getElementById('roomContainer');\n const dropdownRectBottom = dropdown !== null && dropdown.getBoundingClientRect().bottom;\n const roomContainerHeight = roomContainer !== null && roomContainer.offsetHeight;\n if (dropdownRectBottom > roomContainerHeight) {\n dropdownClass.value = 'user-operate-list dropdownUp';\n } else {\n dropdownClass.value = 'user-operate-list';\n }\n};\n\nconst singleControl = computed(() => {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const control = { title: '', func: (userInfo: UserInfo) => {} };\n if (isFreeSpeechMode.value) {\n control.title = props.userInfo.hasAudioStream ? t('Mute') : (props.userInfo.isRequestingUserOpenMic ? t('Cancel Unmute') : t('Unmute'));\n control.func = muteUserAudio;\n } else if (isSpeakAfterTakingSeat.value) {\n if (isAnchor.value) {\n control.title = props.userInfo.hasAudioStream ? t('Mute') : (props.userInfo.isRequestingUserOpenMic ? t('Cancel Unmute') : t('Unmute'));\n control.func = muteUserAudio;\n } else if (isAudience.value) {\n if (props.userInfo.isUserApplyingToAnchor) {\n control.title = t('Agree to the stage');\n control.func = agreeUserOnStage;\n } else {\n control.title = props.userInfo.isInvitingUserToAnchor ? t('Cancel stage') : t('Invite stage');\n control.func = toggleInviteUserOnStage;\n }\n }\n }\n return control;\n});\n\nconst denyOnStage = computed(() => ({ title: t('Refuse stage'), func: denyUserOnStage }));\nconst makeOffStage = computed(() => ({ title: t('Step down'), func: kickUserOffStage }));\n\nconst videoControlTitle = computed(() => {\n if (props.userInfo.hasVideoStream) {\n return t('Disable video');\n }\n if (props.userInfo.isRequestingUserOpenCamera) {\n return t('Cancel Enable video');\n }\n return t('Enable video');\n});\nconst videoControl = computed(() => ({ title: videoControlTitle.value, func: muteUserVideo }));\n\nconst chatControlTitle = computed(() => (props.userInfo.isChatMutedByMaster ? t('Enable chat') : t('Disable chat')));\nconst forbidChat = computed(() => ({ title: chatControlTitle.value, func: disableUserChat }));\n\nconst kickUser = computed(() => ({ title: t('Kick out'), func: kickOffUser }));\nconst controlList = computed(() => {\n const list = [forbidChat.value, kickUser.value];\n if (isFreeSpeechMode.value) {\n list.unshift(videoControl.value);\n }\n if (isAnchor.value && isSpeakAfterTakingSeat.value) {\n list.unshift(videoControl.value);\n list.splice(1, 0, makeOffStage.value);\n }\n if (isAudience.value && props.userInfo.isUserApplyingToAnchor) {\n list.splice(0, 0, denyOnStage.value);\n }\n return list;\n});\n\nfunction toggleClickMoreBtn() {\n showMoreControl.value = !showMoreControl.value;\n}\nfunction handleMouseLeave() {\n showMoreControl.value = false;\n}\n\n/**\n * Invitation to the stage/uninvitation to the stage\n *\n * 邀请上台/取消邀请上台\n**/\nasync function toggleInviteUserOnStage(userInfo: UserInfo) {\n const { isInvitingUserToAnchor } = userInfo;\n if (isInvitingUserToAnchor) {\n cancelInviteUserOnStage(userInfo);\n } else {\n inviteUserOnStage(userInfo);\n }\n}\n\n/**\n * Banning/Unbanning\n *\n * 禁麦/邀请打开麦克风\n**/\nasync function muteUserAudio(userInfo: UserInfo) {\n if (userInfo.hasAudioStream) {\n await roomEngine.instance?.closeRemoteDeviceByAdmin({\n userId: userInfo.userId,\n device: TUIMediaDevice.kMicrophone,\n });\n } else {\n if (userInfo.isRequestingUserOpenMic) {\n const requestId = userInfo.requestUserOpenMicRequestId;\n requestId && await roomEngine.instance?.cancelRequest({ requestId });\n roomStore.setRequestUserOpenMic({ userId: userInfo.userId, isRequesting: false });\n } else {\n const request = await roomEngine.instance?.openRemoteDeviceByAdmin({\n userId: userInfo.userId,\n device: TUIMediaDevice.kMicrophone,\n timeout: 0,\n requestCallback: () => {\n // 处理请求超时,应答,拒绝的情况\n roomStore.setRequestUserOpenMic({ userId: userInfo.userId, isRequesting: false });\n },\n });\n if (request && request.requestId) {\n roomStore.setRequestUserOpenMic({ userId: userInfo.userId, isRequesting: true, requestId: request.requestId });\n }\n }\n }\n}\n\n/**\n * Banned painting/unbanned painting\n *\n * 禁画/取消禁画\n**/\nasync function muteUserVideo(userInfo: UserInfo) {\n if (userInfo.hasVideoStream) {\n await roomEngine.instance?.closeRemoteDeviceByAdmin({\n userId: userInfo.userId,\n device: TUIMediaDevice.kCamera,\n });\n } else {\n if (userInfo.isRequestingUserOpenCamera) {\n const requestId = userInfo.requestUserOpenCameraRequestId;\n requestId && await roomEngine.instance?.cancelRequest({ requestId });\n roomStore.setRequestUserOpenCamera({ userId: userInfo.userId, isRequesting: false });\n } else {\n const request = await roomEngine.instance?.openRemoteDeviceByAdmin({\n userId: userInfo.userId,\n device: TUIMediaDevice.kCamera,\n timeout: 0,\n requestCallback: () => {\n // 处理请求超时,应答,拒绝的情况\n roomStore.setRequestUserOpenCamera({ userId: userInfo.userId, isRequesting: false });\n },\n });\n if (request && request.requestId) {\n roomStore.setRequestUserOpenCamera({\n userId: userInfo.userId,\n isRequesting: true,\n requestId: request.requestId,\n });\n }\n }\n }\n}\n/**\n * Allow text chat / Cancel text chat\n *\n * 允许文字聊天/取消文字聊天\n**/\nfunction disableUserChat(userInfo: UserInfo) {\n const currentState = userInfo.isChatMutedByMaster;\n roomStore.setMuteUserChat(userInfo.userId, !currentState);\n roomEngine.instance?.disableSendingMessageByAdmin({\n userId: userInfo.userId,\n isDisable: !currentState,\n });\n}\n\n/**\n * Kick the user out of the room\n *\n * 将用户踢出房间\n**/\nfunction kickOffUser(userInfo: UserInfo) {\n roomEngine.instance?.kickRemoteUserOutOfRoom({\n userId: userInfo.userId,\n });\n}\n\n\nreturn { __sfc: true,roomEngine, t, basicStore, roomStore, dropdownClass, agreeUserOnStage, denyUserOnStage, inviteUserOnStage, cancelInviteUserOnStage, kickUserOffStage, props, showMoreControl, isMe, isAnchor, isAudience, isFreeSpeechMode, isSpeakAfterTakingSeat, handlePopUp, singleControl, denyOnStage, makeOffStage, videoControlTitle, videoControl, chatControlTitle, forbidChat, kickUser, controlList, toggleClickMoreBtn, handleMouseLeave, toggleInviteUserOnStage, muteUserAudio, muteUserVideo, disableUserChat, kickOffUser, ICON_NAME, SvgIcon }\n}\n\n})","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./MemberControlPC.vue?vue&type=script&setup=true&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./MemberControlPC.vue?vue&type=script&setup=true&lang=ts&\"","import { render, staticRenderFns } from \"./MemberControlPC.vue?vue&type=template&id=28dfca21&scoped=true&\"\nimport script from \"./MemberControlPC.vue?vue&type=script&setup=true&lang=ts&\"\nexport * from \"./MemberControlPC.vue?vue&type=script&setup=true&lang=ts&\"\nimport style0 from \"./MemberControlPC.vue?vue&type=style&index=0&id=28dfca21&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"28dfca21\",\n null\n \n)\n\nexport default component.exports","import MemberControlH5 from './MemberControlH5.vue';\nimport MemberControlPC from './MemberControlPC.vue';\n\nimport { isMobile } from '../../../utils/useMediaValue';\n\nconst MemberControl = isMobile ? MemberControlH5 : MemberControlPC;\n\nexport default MemberControl;\n","import { ref, nextTick } from 'vue';\n\nexport default function useMemberItem() {\n const showMemberControl = ref(false);\n\n function handleMouseEnter() {\n showMemberControl.value = true;\n }\n\n function handleMouseLeave() {\n showMemberControl.value = false;\n }\n\n const memberItemEl = ref();\n function setMemberItemRef(el: any) {\n memberItemEl.value = el;\n }\n\n const memberInfoEl = ref();\n const MemberControlEl = ref();\n function setMemberInfoRef(el: any) {\n memberInfoEl.value = el;\n }\n function setMemberControlRef(el: any) {\n MemberControlEl.value = el;\n }\n\n function handleMemberItemClick() {\n if (!showMemberControl.value) {\n showMemberControl.value = true;\n }\n }\n async function handleCloseControl() {\n await nextTick();\n showMemberControl.value = false;\n }\n\n function handleDocumentClick(event: MouseEvent) {\n if (showMemberControl.value && memberItemEl.value && !memberItemEl.value.contains(event.target)) {\n showMemberControl.value = false;\n }\n }\n\n\n return {\n showMemberControl,\n handleMouseEnter,\n handleMouseLeave,\n setMemberItemRef,\n setMemberInfoRef,\n setMemberControlRef,\n handleMemberItemClick,\n handleDocumentClick,\n handleCloseControl,\n };\n}\n\n\n","import { defineComponent as _defineComponent } from 'vue'\nimport { onMounted, onUnmounted } from 'vue';\nimport MemberInfo from '../MemberItemCommon/MemberInfo.vue';\nimport MemberControl from '../MemberControl';\nimport { UserInfo } from '../../../stores/room';\nimport useMemberItem from './useMemberItemHooks';\nimport '../../../directives/vTap';\n\ninterface Props {\n userInfo: UserInfo,\n}\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'indexH5',\n props: {\n userInfo: null\n },\n setup(__props: any) {\n\nconst {\n showMemberControl,\n setMemberItemRef,\n setMemberInfoRef,\n setMemberControlRef,\n handleMemberItemClick,\n handleDocumentClick,\n handleCloseControl,\n} = useMemberItem();\n\n\n\nonMounted(() => {\n document.addEventListener('click', handleDocumentClick, true);\n});\n\nonUnmounted(() => {\n document.removeEventListener('click', handleDocumentClick, true);\n});\n\n\nreturn { __sfc: true,showMemberControl, setMemberItemRef, setMemberInfoRef, setMemberControlRef, handleMemberItemClick, handleDocumentClick, handleCloseControl, MemberInfo, MemberControl }\n}\n\n})","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./indexH5.vue?vue&type=script&setup=true&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./indexH5.vue?vue&type=script&setup=true&lang=ts&\"","import { render, staticRenderFns } from \"./indexH5.vue?vue&type=template&id=51bdd126&scoped=true&\"\nimport script from \"./indexH5.vue?vue&type=script&setup=true&lang=ts&\"\nexport * from \"./indexH5.vue?vue&type=script&setup=true&lang=ts&\"\nimport style0 from \"./indexH5.vue?vue&type=style&index=0&id=51bdd126&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"51bdd126\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"member-item-container\",on:{\"mouseenter\":_setup.handleMouseEnter,\"mouseleave\":_setup.handleMouseLeave}},[_c(_setup.MemberInfo,{attrs:{\"user-info\":_vm.userInfo,\"show-state-icon\":!_setup.showMemberControl}}),_c(_setup.MemberControl,{directives:[{name:\"show\",rawName:\"v-show\",value:(_setup.showMemberControl),expression:\"showMemberControl\"}],attrs:{\"user-info\":_vm.userInfo}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { defineComponent as _defineComponent } from 'vue'\nimport MemberInfo from '../MemberItemCommon/MemberInfo.vue';\nimport MemberControl from '../MemberControl';\nimport { UserInfo } from '../../../stores/room';\nimport useMemberItem from './useMemberItemHooks';\n\ninterface Props {\n userInfo: UserInfo,\n}\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'indexPC',\n props: {\n userInfo: null\n },\n setup(__props: any) {\n\nconst {\n showMemberControl,\n handleMouseEnter,\n handleMouseLeave,\n} = useMemberItem();\n\n\n\n\n\nreturn { __sfc: true,showMemberControl, handleMouseEnter, handleMouseLeave, MemberInfo, MemberControl }\n}\n\n})","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./indexPC.vue?vue&type=script&setup=true&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./indexPC.vue?vue&type=script&setup=true&lang=ts&\"","import { render, staticRenderFns } from \"./indexPC.vue?vue&type=template&id=2d674c35&scoped=true&\"\nimport script from \"./indexPC.vue?vue&type=script&setup=true&lang=ts&\"\nexport * from \"./indexPC.vue?vue&type=script&setup=true&lang=ts&\"\nimport style0 from \"./indexPC.vue?vue&type=style&index=0&id=2d674c35&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"2d674c35\",\n null\n \n)\n\nexport default component.exports","import indexH5 from './indexH5.vue';\nimport indexPC from './indexPC.vue';\n\nimport { isMobile } from '../../../utils/useMediaValue';\n\nconst index = isMobile ? indexH5 : indexPC;\n\nexport default index;\n","import { storeToRefs } from 'pinia';\nimport useGetRoomEngine from '../../hooks/useRoomEngine';\nimport { useRoomStore } from '../../stores/room';\nimport { useBasicStore } from '../../stores/basic';\nimport { useI18n } from '../../locales';\nimport { TUIMediaDevice } from '@tencentcloud/tuiroom-engine-js';\nimport { Ref, computed, nextTick, ref } from 'vue';\n\nexport default function useIndex() {\n const roomEngine = useGetRoomEngine();\n\n const { t } = useI18n();\n\n const basicStore = useBasicStore();\n const roomStore = useRoomStore();\n\n const {\n isMicrophoneDisableForAllUser,\n isCameraDisableForAllUser,\n } = storeToRefs(roomStore);\n const audioManageInfo = computed(() => (roomStore.isMicrophoneDisableForAllUser ? t('Lift all mute') : t('All mute')));\n const videoManageInfo = computed(() => (roomStore.isCameraDisableForAllUser ? t('Lift stop all video') : t('All stop video')));\n\n const showManageAllUserDialog: Ref = ref(false);\n const dialogTitleInfo: Ref = ref('');\n const dialogActionInfo: Ref = ref('');\n\n enum ManageControlType {\n AUDIO = 'audio',\n VIDEO = 'video',\n Message = 'message',\n }\n const currentControlType: Ref = ref(ManageControlType.AUDIO);\n\n async function toggleManageMember(type: ManageControlType) {\n showManageAllUserDialog.value = true;\n currentControlType.value = type;\n switch (type) {\n case ManageControlType.AUDIO:\n dialogTitleInfo.value = roomStore.isMicrophoneDisableForAllUser\n ? t('Can you lift all mute')\n : t('All current and new members will be muted.');\n // 小程序更新视图\n await nextTick();\n dialogActionInfo.value = audioManageInfo.value;\n break;\n case ManageControlType.VIDEO:\n dialogTitleInfo.value = roomStore.isCameraDisableForAllUser\n ? t('Should we turn on the video for everyone')\n : t('All current and new members will turn off their videos.');\n await nextTick();\n dialogActionInfo.value = videoManageInfo.value;\n break;\n default:\n break;\n }\n }\n\n async function doToggleManageMember() {\n switch (currentControlType.value) {\n case ManageControlType.AUDIO:\n toggleAllAudio();\n break;\n case ManageControlType.VIDEO:\n toggleAllVideo();\n break;\n default:\n break;\n }\n showManageAllUserDialog.value = false;\n }\n function showApplyUserLit() {\n basicStore.setShowApplyUserList(true);\n }\n\n async function toggleAllAudio() {\n const microphoneDisableState = !isMicrophoneDisableForAllUser.value;\n await roomEngine.instance?.disableDeviceForAllUserByAdmin({\n isDisable: microphoneDisableState,\n device: TUIMediaDevice.kMicrophone,\n });\n roomStore.setMicrophoneDisableState(microphoneDisableState);\n }\n\n async function toggleAllVideo() {\n const cameraDisableState = !isCameraDisableForAllUser.value;\n await roomEngine.instance?.disableDeviceForAllUserByAdmin({\n isDisable: cameraDisableState,\n device: TUIMediaDevice.kCamera,\n });\n roomStore.setCameraDisableState(cameraDisableState);\n }\n return {\n showApplyUserLit,\n toggleAllAudio,\n toggleAllVideo,\n t,\n toggleManageMember,\n doToggleManageMember,\n audioManageInfo,\n videoManageInfo,\n showManageAllUserDialog,\n dialogTitleInfo,\n dialogActionInfo,\n ManageControlType,\n };\n}\n","import { defineComponent as _defineComponent } from 'vue'\nimport MemberItem from '../ManageMember/MemberItem';\nimport Dialog from '../../elementComp/Dialog';\nimport useIndex from './useIndexHooks';\nimport { storeToRefs } from 'pinia';\nimport { useRoomStore } from '../../stores/room';\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'indexH5',\n setup(__props) {\n\nconst roomStore = useRoomStore();\nconst {\n userList,\n userNumber,\n applyToAnchorList,\n isMicrophoneDisableForAllUser,\n isCameraDisableForAllUser,\n} = storeToRefs(roomStore);\n\nconst {\n audioManageInfo,\n videoManageInfo,\n showManageAllUserDialog,\n dialogTitleInfo,\n dialogActionInfo,\n ManageControlType,\n toggleManageMember,\n doToggleManageMember,\n t,\n} = useIndex();\n\n\n\nreturn { __sfc: true,roomStore, userList, userNumber, applyToAnchorList, isMicrophoneDisableForAllUser, isCameraDisableForAllUser, audioManageInfo, videoManageInfo, showManageAllUserDialog, dialogTitleInfo, dialogActionInfo, ManageControlType, toggleManageMember, doToggleManageMember, t, MemberItem, Dialog }\n}\n\n})","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./indexH5.vue?vue&type=script&setup=true&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./indexH5.vue?vue&type=script&setup=true&lang=ts&\"","import { render, staticRenderFns } from \"./indexH5.vue?vue&type=template&id=746e3a0c&scoped=true&\"\nimport script from \"./indexH5.vue?vue&type=script&setup=true&lang=ts&\"\nexport * from \"./indexH5.vue?vue&type=script&setup=true&lang=ts&\"\nimport style0 from \"./indexH5.vue?vue&type=style&index=0&id=746e3a0c&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"746e3a0c\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"manage-member-container\"},[(_setup.applyToAnchorList.length > 0)?_c('div',{staticClass:\"apply-on-stage-info\"},[_c('div',{staticClass:\"apply-info\"},[_vm._v(\" \"+_vm._s(`${_setup.applyToAnchorList[0].userName || _setup.applyToAnchorList[0].userId} ${_setup.t('Applying for the stage')}`)+\" \")]),_c('div',{staticClass:\"button\",on:{\"click\":_setup.showApplyUserLit}},[_vm._v(_vm._s(_setup.t('Check')))])]):_vm._e(),_c('div',{staticClass:\"global-setting\"},[_c('div',{staticClass:\"setting-item\"},[_c('div',{staticClass:\"item-left-section\"},[_c(_setup.SvgIcon,{staticClass:\"setting-icon\",attrs:{\"icon-name\":_setup.ICON_NAME.MicOn,\"size\":\"large\"}}),_c('span',{staticClass:\"setting-name\"},[_vm._v(_vm._s(_setup.t('Disable all audios')))])],1),_c('div',{staticClass:\"item-right-section\"},[_c('el-switch',{attrs:{\"value\":_setup.isMicrophoneDisableForAllUser},on:{\"change\":_setup.toggleAllAudio}})],1)]),_c('div',{staticClass:\"setting-item\"},[_c('div',{staticClass:\"item-left-section\"},[_c(_setup.SvgIcon,{staticClass:\"setting-icon\",attrs:{\"icon-name\":_setup.ICON_NAME.CameraOn,\"size\":\"large\"}}),_c('span',{staticClass:\"setting-name\"},[_vm._v(_vm._s(_setup.t('Disable all videos')))])],1),_c('div',{staticClass:\"item-right-section\"},[_c('el-switch',{attrs:{\"value\":_setup.isCameraDisableForAllUser},on:{\"change\":_setup.toggleAllVideo}})],1)])]),_c('div',{staticClass:\"divide-line\"}),_c('div',{staticClass:\"member-list-container\"},[_c('div',{staticClass:\"member-list-header\"},[_vm._v(\" \"+_vm._s(_setup.t('Member List'))+\" \"),_c('span',{staticClass:\"member-count\"},[_vm._v(\"(\"+_vm._s(_setup.userNumber)+_vm._s(_setup.t('members'))+\")\")])]),_c('div',{staticClass:\"member-list-content\"},_vm._l((_setup.userList),function(userInfo){return _c(_setup.MemberItem,{key:userInfo.userId,attrs:{\"user-info\":userInfo}})}),1)])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { defineComponent as _defineComponent } from 'vue'\nimport MemberItem from '../ManageMember/MemberItem';\nimport SvgIcon from '../common/SvgIcon.vue';\n\nimport { ICON_NAME } from '../../constants/icon';\nimport { storeToRefs } from 'pinia';\nimport { useRoomStore } from '../../stores/room';\nimport useIndex from './useIndexHooks';\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'indexPC',\n setup(__props) {\n\nconst roomStore = useRoomStore();\n\nconst {\n userList,\n userNumber,\n applyToAnchorList,\n isMicrophoneDisableForAllUser,\n isCameraDisableForAllUser,\n} = storeToRefs(roomStore);\n\nconst {\n t,\n showApplyUserLit,\n toggleAllAudio,\n toggleAllVideo,\n} = useIndex();\n\n\nreturn { __sfc: true,roomStore, userList, userNumber, applyToAnchorList, isMicrophoneDisableForAllUser, isCameraDisableForAllUser, t, showApplyUserLit, toggleAllAudio, toggleAllVideo, MemberItem, SvgIcon, ICON_NAME }\n}\n\n})","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./indexPC.vue?vue&type=script&setup=true&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./indexPC.vue?vue&type=script&setup=true&lang=ts&\"","import { render, staticRenderFns } from \"./indexPC.vue?vue&type=template&id=74166061&scoped=true&\"\nimport script from \"./indexPC.vue?vue&type=script&setup=true&lang=ts&\"\nexport * from \"./indexPC.vue?vue&type=script&setup=true&lang=ts&\"\nimport style0 from \"./indexPC.vue?vue&type=style&index=0&id=74166061&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"74166061\",\n null\n \n)\n\nexport default component.exports","import indexH5 from './indexH5.vue';\nimport indexPC from './indexPC.vue';\n\nimport { isMobile } from '../../utils/useMediaValue';\n\nconst index = isMobile ? indexH5 : indexPC;\n\nexport default index;\n","import TUIRoomEngine, { TUIRoomEvents } from '@tencentcloud/tuiroom-engine-js';\nimport useGetRoomEngine from '../../hooks/useRoomEngine';\nimport { useChatStore } from '../../stores/chat';\nimport { storeToRefs } from 'pinia';\nimport { useBasicStore } from '../../stores/basic';\nimport { useI18n } from '../../locales';\nimport { computed, onUnmounted } from 'vue';\nimport logger from '../../utils/common/logger';\n\nexport default function useSideBar() {\n const roomEngine = useGetRoomEngine();\n const { t } = useI18n();\n\n const chatStore = useChatStore();\n const basicStore = useBasicStore();\n const { isSidebarOpen, sidebarName } = storeToRefs(basicStore);\n const showSideBar = computed(() => isSidebarOpen.value && sidebarName.value !== 'transfer-leave');\n const title = computed((): string => {\n let sidebarTitle = '';\n switch (sidebarName.value) {\n case 'chat':\n sidebarTitle = 'Chat';\n break;\n case 'invite':\n sidebarTitle = 'Invite';\n break;\n case 'more':\n sidebarTitle = 'More';\n break;\n case 'manage-member':\n sidebarTitle = 'Member management';\n break;\n default:\n break;\n }\n return t(sidebarTitle);\n });\n\n function handleClose(done: any) {\n basicStore.setSidebarOpenStatus(false);\n basicStore.setSidebarName('');\n done();\n }\n\n /** 监听消息接收,放在这里是为了打开 chat 之前只记录消息未读数 */\n const onReceiveTextMessage = (data: { roomId: string, message: any }) => {\n logger.warn('onReceiveTextMessage:', data);\n if (!basicStore.isSidebarOpen || basicStore.sidebarName !== 'chat') {\n // eslint-disable-next-line no-plusplus\n chatStore.updateUnReadCount(++chatStore.unReadCount);\n }\n };\n\n\n TUIRoomEngine.once('ready', () => {\n roomEngine.instance?.on(TUIRoomEvents.onReceiveTextMessage, onReceiveTextMessage);\n });\n\n onUnmounted(() => {\n roomEngine.instance?.off(TUIRoomEvents.onReceiveTextMessage, onReceiveTextMessage);\n });\n return {\n t,\n isSidebarOpen,\n title,\n sidebarName,\n handleClose,\n showSideBar,\n }\n ;\n}\n\n","import { defineComponent as _defineComponent } from 'vue'\nimport Chat from '../Chat/index.vue';\nimport ManageMember from '../ManageMember/index';\nimport popup from '../common/PopUpH5.vue';\nimport useSideBar from './useSideBarHooks';\nimport ChatEditor from '../Chat/ChatEditor';\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'indexH5',\n setup(__props) {\n\n\nconst {\n title,\n sidebarName,\n showSideBar,\n} = useSideBar();\n\n\nreturn { __sfc: true,title, sidebarName, showSideBar, Chat, ManageMember, popup, ChatEditor }\n}\n\n})","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./indexH5.vue?vue&type=script&setup=true&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./indexH5.vue?vue&type=script&setup=true&lang=ts&\"","import { render, staticRenderFns } from \"./indexH5.vue?vue&type=template&id=40f5a35a&scoped=true&\"\nimport script from \"./indexH5.vue?vue&type=script&setup=true&lang=ts&\"\nexport * from \"./indexH5.vue?vue&type=script&setup=true&lang=ts&\"\nimport style0 from \"./indexH5.vue?vue&type=style&index=0&id=40f5a35a&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"40f5a35a\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"sidebar-container\"},[_c(_setup.Drawer,{attrs:{\"model-value\":_setup.isSidebarOpen,\"modal\":false,\"title\":_setup.title,\"direction\":\"rtl\",\"before-close\":_setup.handleClose,\"size\":480}},[(_setup.sidebarName == 'chat')?_c(_setup.Chat):_vm._e(),(_setup.sidebarName == 'invite')?_c(_setup.RoomInvite):_vm._e(),(_setup.sidebarName == 'more')?_c(_setup.RoomMore):_vm._e(),(_setup.sidebarName == 'manage-member')?_c(_setup.ManageMember):_vm._e()],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { defineComponent as _defineComponent } from 'vue'\nimport Chat from '../Chat/index.vue';\nimport Drawer from '../../elementComp/Drawer.vue';\nimport useSideBar from './useSideBarHooks';\nimport RoomInvite from '../RoomInvite';\nimport ManageMember from '../ManageMember';\nimport RoomMore from '../RoomMore';\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'indexPC',\n setup(__props) {\n\n\nconst {\n isSidebarOpen,\n title,\n handleClose,\n sidebarName,\n} = useSideBar();\n\n\nreturn { __sfc: true,isSidebarOpen, title, handleClose, sidebarName, Chat, Drawer, RoomInvite, ManageMember, RoomMore }\n}\n\n})","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./indexPC.vue?vue&type=script&setup=true&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./indexPC.vue?vue&type=script&setup=true&lang=ts&\"","import { render, staticRenderFns } from \"./indexPC.vue?vue&type=template&id=659a61f2&\"\nimport script from \"./indexPC.vue?vue&type=script&setup=true&lang=ts&\"\nexport * from \"./indexPC.vue?vue&type=script&setup=true&lang=ts&\"\nimport style0 from \"./indexPC.vue?vue&type=style&index=0&id=659a61f2&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import indexH5 from './indexH5.vue';\nimport indexPc from './indexPC.vue';\nimport { isMobile } from '../../utils/useMediaValue';\n\nconst Index = isMobile ? indexH5 : indexPc;\n\nexport default Index;\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"content-container\"},[_c(_setup.StreamContainer,{attrs:{\"show-room-tool\":_vm.showRoomTool}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{ref:\"streamContainerRef\",staticClass:\"stream-container\",on:{\"touchstart\":_setup.handleTouchStart,\"touchend\":_setup.handleTouchEnd}},[_c('div',{class:_setup.streamContainerClass},[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_setup.layout === _setup.LAYOUT.LARGE_SMALL_WINDOW),expression:\"layout === LAYOUT.LARGE_SMALL_WINDOW\"}],ref:\"enlargedContainerRef\",staticClass:\"enlarged-stream-container\"},[(_setup.enlargeStream)?_c(_setup.StreamRegion,{attrs:{\"stream\":_setup.enlargeStream}}):_vm._e()],1),_c('div',{staticClass:\"stream-list-container\",class:[_setup.onlyVideoStreamList.length > 1 ? 'multi-stream-container' : 'single-stream-container']},[_c('div',{ref:\"streamListRef\",class:['stream-list', `${_setup.isFirstPageInSixPointLayout ? '' : 'not-first-page'}`]},_vm._l((_setup.onlyVideoStreamList),function(stream){return _c(_setup.StreamRegion,{directives:[{name:\"show\",rawName:\"v-show\",value:(_setup.showStreamList.indexOf(stream) > -1),expression:\"showStreamList.indexOf(stream) > -1\"}],key:`${stream.userId}_${stream.streamType}`,class:[_setup.onlyVideoStreamList.length > 1 ? 'multi-stream' : 'single-stream'],attrs:{\"stream\":stream,\"enlarge-dom-id\":_setup.enlargeDomId,\"show-room-tool\":_vm.showRoomTool}})}),1)])]),(_setup.totalPageNumber > 1)?_c('div',{staticClass:\"swipe\"},_vm._l((_setup.totalPageNumber),function(item,index){return _c('div',{key:item,staticClass:\"swipe-dots\",class:[_setup.isActiveDot(index) ? 'swipe-current-dots' : '']})}),0):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return (_setup.playRegionDomId !== _vm.enlargeDomId)?_c('div',{ref:\"streamRegionRef\",staticClass:\"user-stream-container\",class:[_setup.showVoiceBorder ? 'border' : '']},[_c('div',{staticClass:\"stream-region\",attrs:{\"id\":_setup.playRegionDomId}}),(!_vm.stream.hasVideoStream && !_vm.stream.hasScreenStream)?_c('div',{staticClass:\"center-user-info-container\"},[_c('img',{staticClass:\"avatar-region\",attrs:{\"src\":_vm.stream.avatarUrl || _setup.defaultAvatar}})]):_vm._e(),_c('div',{staticClass:\"corner-user-info-container\"},[(_setup.showMasterIcon)?_c(_setup.SvgIcon,{staticClass:\"master-icon\",attrs:{\"size\":\"custom\",\"icon-name\":\"user\"}}):_vm._e(),(!_setup.isScreenStream)?_c(_setup.AudioIcon,{staticClass:\"audio-icon\",attrs:{\"audio-volume\":_vm.stream.audioVolume,\"is-muted\":!_vm.stream.hasAudioStream,\"size\":\"small\"}}):_vm._e(),(_setup.isScreenStream)?_c(_setup.SvgIcon,{staticClass:\"screen-icon\",attrs:{\"icon-name\":\"screen-share\"}}):_vm._e(),_c('span',{staticClass:\"user-name\",attrs:{\"title\":_setup.userInfo}},[_vm._v(_vm._s(_setup.userInfo))]),(_setup.isScreenStream)?_c('span',[_vm._v(\" \"+_vm._s(_setup.t('is sharing their screen'))+\" \")]):_vm._e()],1)]):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { defineComponent as _defineComponent } from 'vue'\nimport { ref, watch, nextTick, computed, onMounted } from 'vue';\nimport { StreamInfo, useRoomStore } from '../../../stores/room';\nimport defaultAvatar from '../../../assets/imgs/avatar.png';\nimport { useBasicStore } from '../../../stores/basic';\nimport logger from '../../../utils/common/logger';\nimport AudioIcon from '../../base/AudioIcon.vue';\nimport SvgIcon from '../../common/SvgIcon.vue';\nimport { useI18n } from '../../../locales';\nimport {\n TUIVideoStreamType,\n TRTCVideoStreamType,\n TRTCVideoFillMode,\n TRTCVideoMirrorType,\n TRTCVideoRotation,\n} from '@tencentcloud/tuiroom-engine-js';\nimport useGetRoomEngine from '../../../hooks/useRoomEngine';\nimport { isInnerScene } from '../../../utils/constants';\ninterface Props {\n stream: StreamInfo;\n enlargeDomId?: string;\n}\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'StreamRegionH5',\n props: {\n stream: null,\n enlargeDomId: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n stream: StreamInfo;\n enlargeDomId?: string;\n}\n\nconst roomEngine = useGetRoomEngine();\n\nconst logPrefix = '[StreamRegion]';\nconst basicStore = useBasicStore();\nconst roomStore = useRoomStore();\n\nconst { t } = useI18n();\n\n\n\nconst streamRegionRef = ref();\nconst showVoiceBorder = computed(() => (\n props.stream?.audioVolume !== 0 && props.stream?.streamType !== TUIVideoStreamType.kScreenStream\n));\nconst playRegionDomId = computed(() => `${props.stream.userId}_${props.stream.streamType}`);\n\nconst showMasterIcon = computed(() => {\n const { userId, streamType } = props.stream;\n return userId === roomStore.masterUserId && streamType === TUIVideoStreamType.kCameraStream;\n});\n\nconst isScreenStream = computed(() => props.stream.streamType === TUIVideoStreamType.kScreenStream);\n\nconst userInfo = computed(() => {\n if (isInnerScene) {\n return `${props.stream.userName} | ${props.stream.userId}` || props.stream.userId;\n }\n return props.stream.userName || props.stream.userId;\n});\n\nonMounted(() => {\n watch(\n () => props.stream.hasVideoStream,\n async (val) => {\n if (val) {\n await nextTick();\n const userIdEl = document?.getElementById(`${playRegionDomId.value}`) as HTMLDivElement;\n if (userIdEl) {\n logger.debug(`${logPrefix}watch isVideoStreamAvailable:`, props.stream.userId, userIdEl);\n if (basicStore.userId === props.stream.userId) {\n if (props.stream.hasVideoStream) {\n await roomEngine.instance?.setLocalVideoView({\n streamType: TUIVideoStreamType.kCameraStream,\n view: `${playRegionDomId.value}`,\n });\n }\n } else {\n roomEngine.instance?.setRemoteVideoView({\n userId: props.stream.userId,\n streamType: props.stream.streamType,\n view: `${playRegionDomId.value}`,\n });\n await roomEngine.instance?.startPlayRemoteVideo({\n userId: props.stream.userId,\n streamType: props.stream.streamType,\n });\n const trtcCloud = roomEngine.instance?.getTRTCCloud();\n await trtcCloud?.setRemoteRenderParams(props.stream.userId, TRTCVideoStreamType.TRTCVideoStreamTypeBig, {\n mirrorType: TRTCVideoMirrorType.TRTCVideoMirrorType_Disable,\n rotation: TRTCVideoRotation.TRTCVideoRotation0,\n fillMode: TRTCVideoFillMode.TRTCVideoFillMode_Fill,\n });\n }\n }\n }\n },\n { immediate: true },\n );\n});\n\nonMounted(() => {\n watch(\n () => props.stream.hasScreenStream,\n async (val) => {\n if (val) {\n await nextTick();\n const userIdEl = document?.getElementById(`${playRegionDomId.value}`) as HTMLDivElement;\n if (userIdEl) {\n logger.debug(`${logPrefix}watch isScreenStreamAvailable:`, props.stream.userId, userIdEl);\n roomEngine.instance?.setRemoteVideoView({\n userId: props.stream.userId,\n streamType: props.stream.streamType,\n view: `${playRegionDomId.value}`,\n });\n await roomEngine.instance?.startPlayRemoteVideo({\n userId: props.stream.userId,\n streamType: props.stream.streamType,\n });\n const trtcCloud = roomEngine.instance?.getTRTCCloud();\n await trtcCloud?.setRemoteRenderParams(props.stream.userId, TRTCVideoStreamType.TRTCVideoStreamTypeSub, {\n mirrorType: TRTCVideoMirrorType.TRTCVideoMirrorType_Disable,\n rotation: TRTCVideoRotation.TRTCVideoRotation0,\n fillMode: TRTCVideoFillMode.TRTCVideoFillMode_Fit,\n });\n }\n }\n },\n { immediate: true },\n );\n});\n\n/**\n * enlargeUserId The switch requires that both the small window\n * corresponding to the previously played stream and the stream that needs to be newly played be replayed.\n *\n * enlargeUserId 切换的时候需要让之前播放流对应的小窗口和需要新播放的流都重新播放\n**/\nonMounted(() => {\n watch(\n () => props.enlargeDomId,\n async (val, oldVal) => {\n if (playRegionDomId.value === oldVal || playRegionDomId.value === val) {\n await nextTick();\n const userIdEl = document?.getElementById(`${playRegionDomId.value}`) as HTMLDivElement;\n if (userIdEl) {\n if (basicStore.userId === props.stream.userId) {\n /**\n * Replay local video streams only when they are open\n *\n * 只有当本地视频流是打开状态的时候,才重新播放本地流\n **/\n if (props.stream.hasVideoStream) {\n await roomEngine.instance?.setLocalVideoView({\n streamType: TUIVideoStreamType.kCameraStream,\n view: `${playRegionDomId.value}`,\n });\n }\n } else {\n roomEngine.instance?.setRemoteVideoView({\n userId: props.stream.userId,\n streamType: props.stream.streamType,\n view: `${playRegionDomId.value}`,\n });\n await roomEngine.instance?.startPlayRemoteVideo({\n userId: props.stream.userId,\n streamType: props.stream.streamType,\n });\n };\n }\n }\n },\n );\n});\n\nreturn { __sfc: true,roomEngine, logPrefix, basicStore, roomStore, t, props, streamRegionRef, showVoiceBorder, playRegionDomId, showMasterIcon, isScreenStream, userInfo, defaultAvatar, AudioIcon, SvgIcon }\n}\n\n})","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./StreamRegionH5.vue?vue&type=script&setup=true&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./StreamRegionH5.vue?vue&type=script&setup=true&lang=ts&\"","import { render, staticRenderFns } from \"./StreamRegionH5.vue?vue&type=template&id=9adfd868&scoped=true&\"\nimport script from \"./StreamRegionH5.vue?vue&type=script&setup=true&lang=ts&\"\nexport * from \"./StreamRegionH5.vue?vue&type=script&setup=true&lang=ts&\"\nimport style0 from \"./StreamRegionH5.vue?vue&type=style&index=0&id=9adfd868&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"9adfd868\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return (_setup.playRegionDomId !== _vm.enlargeDomId)?_c('div',{ref:\"streamRegionRef\",staticClass:\"user-stream-container\",on:{\"dblclick\":function($event){return _vm.$emit('room_dblclick')}}},[(_setup.loading)?_c('div',{staticClass:\"loading-region\"},[_c(_setup.SvgIcon,{staticClass:\"loading\",attrs:{\"icon-name\":\"loading\"}})],1):_vm._e(),_c('div',{staticClass:\"stream-region\",attrs:{\"id\":_setup.playRegionDomId}}),(!_vm.stream.hasVideoStream && !_vm.stream.hasScreenStream)?_c('div',{ref:\"centerUserInfoRef\",staticClass:\"center-user-info-container\"},[_c(_setup.Avatar,{staticClass:\"avatar-region\",attrs:{\"img-src\":_vm.stream.avatarUrl}})],1):_vm._e(),_c('div',{staticClass:\"corner-user-info-container\"},[(_setup.showMasterIcon)?_c(_setup.SvgIcon,{staticClass:\"master-icon\",attrs:{\"icon-name\":\"user\"}}):_vm._e(),(!_setup.isScreenStream)?_c(_setup.AudioIcon,{attrs:{\"audio-volume\":_vm.stream.audioVolume,\"is-muted\":!_vm.stream.hasAudioStream,\"size\":\"small\"}}):_vm._e(),(_setup.isScreenStream)?_c(_setup.SvgIcon,{staticClass:\"screen-icon\",attrs:{\"icon-name\":\"screen-share\"}}):_vm._e(),_c('span',{staticClass:\"user-name\",attrs:{\"title\":_setup.userInfo}},[_vm._v(_vm._s(_setup.userInfo))]),(_setup.isScreenStream)?_c('span',[_vm._v(\" \"+_vm._s(_setup.t('is sharing their screen'))+\" \")]):_vm._e()],1)]):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { defineComponent as _defineComponent } from 'vue'\nimport { ref, watch, nextTick, computed } from 'vue';\nimport { StreamInfo, useRoomStore } from '../../../stores/room';\nimport Avatar from '../../base/Avatar.vue';\nimport { useBasicStore } from '../../../stores/basic';\nimport logger from '../../../utils/common/logger';\nimport AudioIcon from '../../base/AudioIcon.vue';\nimport SvgIcon from '../../common/SvgIcon.vue';\nimport { useI18n } from '../../../locales';\nimport { TUIVideoStreamType } from '@tencentcloud/tuiroom-engine-js';\nimport useGetRoomEngine from '../../../hooks/useRoomEngine';\nimport { isInnerScene } from '../../../utils/constants';\n\ninterface Props {\n stream: StreamInfo,\n enlargeDomId?: string,\n changeLargeStream?:boolean,\n}\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'StreamRegionPC',\n props: {\n stream: null,\n enlargeDomId: null,\n changeLargeStream: { type: Boolean }\n },\n setup(__props: any) {\n\nconst props = __props as {\n stream: StreamInfo,\n enlargeDomId?: string,\n changeLargeStream?:boolean,\n}\n\nconst roomEngine = useGetRoomEngine();\n\nconst logPrefix = '[StreamRegion]';\nconst basicStore = useBasicStore();\nconst roomStore = useRoomStore();\n\nconst { t } = useI18n();\n\n\n\n\nconst streamRegionRef = ref();\nconst centerUserInfoRef = ref();\nconst loading = ref(false);\n\nconst playRegionDomId = computed(() => `${props.stream.userId}_${props.stream.streamType}`);\n\nconst showMasterIcon = computed(() => {\n const { userId, streamType } = props.stream;\n return userId === roomStore.masterUserId && streamType === TUIVideoStreamType.kCameraStream;\n});\n\nconst isScreenStream = computed(() => props.stream.streamType === TUIVideoStreamType.kScreenStream);\nconst userInfo = computed(() => {\n if (isInnerScene) {\n return `${props.stream.userName} | ${props.stream.userId}` || props.stream.userId;\n }\n return props.stream.userName || props.stream.userId;\n});\n\n// 要拉取远端用户的流类型\nconst streamTypeToFetch = computed(() => {\n const { streamType, userId } = props.stream;\n const { kScreenStream, kCameraStream } = TUIVideoStreamType;\n const { defaultStreamType } = roomStore;\n const { userId: localUserId } = basicStore;\n if (streamType === kScreenStream) {\n return kScreenStream;\n }\n if (playRegionDomId.value === props.enlargeDomId || userId === localUserId) {\n return kCameraStream;\n }\n if (streamType === kCameraStream) {\n return defaultStreamType;\n }\n return streamType;\n});\n\nconst startPlayRemoteVideo = async () => {\n const { userId } = props.stream;\n // 播放远端流\n loading.value = true;\n roomEngine.instance?.setRemoteVideoView({ userId, streamType: streamTypeToFetch.value, view: `${playRegionDomId.value}` });\n await roomEngine.instance?.startPlayRemoteVideo({ userId, streamType: streamTypeToFetch.value });\n // 播放远端流成功\n loading.value = false;\n};\n\nconst stopPlayRemoteVideo = async () => {\n loading.value = false;\n await roomEngine.instance?.\n stopPlayRemoteVideo({ userId: props.stream.userId, streamType: streamTypeToFetch.value });\n};\n\nif (props.stream.streamType === TUIVideoStreamType.kCameraStream\n || props.stream.streamType === TUIVideoStreamType.kCameraStreamLow) {\n watch(\n () => [props.stream.hasVideoStream, props.stream.isVisible],\n async (val, oldVal) => {\n if (props.stream.userId === basicStore.userId) {\n return;\n }\n const [hasVideoStream, isVisible] = val;\n if (hasVideoStream && isVisible) {\n await nextTick();\n const userIdEl = document.getElementById(`${playRegionDomId.value}`) as HTMLDivElement;\n if (userIdEl) {\n logger.debug(`${logPrefix}watch isVideoStreamAvailable:`, props.stream.userId, userIdEl);\n await startPlayRemoteVideo();\n }\n }\n if (oldVal) {\n const [oldHasVideoStream, oldIsVisible] = oldVal;\n // 从有流且可见状态变为有流但不可见,无流但可见,无流且不可见状态,停止播放流\n if ((oldHasVideoStream && oldIsVisible) && (!hasVideoStream || !isVisible)) {\n await stopPlayRemoteVideo();\n }\n }\n },\n { immediate: true },\n );\n}\n\nif (props.stream.streamType === TUIVideoStreamType.kScreenStream) {\n watch(\n () => [props.stream.hasScreenStream, props.stream.isVisible],\n async (val, oldVal) => {\n const [hasScreenStream, isVisible] = val;\n if (hasScreenStream && isVisible) {\n await nextTick();\n const userIdEl = document.getElementById(`${playRegionDomId.value}`) as HTMLDivElement;\n if (userIdEl) {\n logger.debug(`${logPrefix}watch isScreenStreamAvailable:`, props.stream.userId, userIdEl);\n await startPlayRemoteVideo();\n }\n }\n if (oldVal) {\n const [oldHasScreenStream, oldIsVisible] = oldVal;\n // 从有流且可见状态变为有流但不可见,无流但可见,无流且不可见状态,停止播放流\n if ((oldHasScreenStream && oldIsVisible) && (!hasScreenStream || !isVisible)) {\n await stopPlayRemoteVideo();\n }\n }\n },\n { immediate: true },\n );\n}\n\n\n/**\n * enlargeUserId The switch requires that both the small window\n * corresponding to the previously played stream and the stream that needs to be newly played be replayed.\n *\n * enlargeUserId 切换的时候需要让之前播放流对应的小窗口和需要新播放的流都重新播放\n**/\nwatch(\n () => props.enlargeDomId,\n async (val, oldVal) => {\n if (playRegionDomId.value === oldVal || playRegionDomId.value === val) {\n await nextTick();\n const userIdEl = document.getElementById(`${playRegionDomId.value}`) as HTMLDivElement;\n if (userIdEl) {\n if (basicStore.userId === props.stream.userId) {\n /**\n * Replay local video streams only when they are open\n *\n * 只有当本地视频流是打开状态的时候,才重新播放本地流\n **/\n if (props.stream.hasVideoStream) {\n await roomEngine.instance?.setLocalVideoView({\n streamType: streamTypeToFetch.value,\n view: `${playRegionDomId.value}`,\n });\n }\n } else {\n await startPlayRemoteVideo();\n };\n }\n }\n },\n { immediate: true },\n);\n\nreturn { __sfc: true,roomEngine, logPrefix, basicStore, roomStore, t, props, streamRegionRef, centerUserInfoRef, loading, playRegionDomId, showMasterIcon, isScreenStream, userInfo, streamTypeToFetch, startPlayRemoteVideo, stopPlayRemoteVideo, Avatar, AudioIcon, SvgIcon }\n}\n\n})","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./StreamRegionPC.vue?vue&type=script&setup=true&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./StreamRegionPC.vue?vue&type=script&setup=true&lang=ts&\"","import { render, staticRenderFns } from \"./StreamRegionPC.vue?vue&type=template&id=693d2878&scoped=true&\"\nimport script from \"./StreamRegionPC.vue?vue&type=script&setup=true&lang=ts&\"\nexport * from \"./StreamRegionPC.vue?vue&type=script&setup=true&lang=ts&\"\nimport style0 from \"./StreamRegionPC.vue?vue&type=style&index=0&id=693d2878&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"693d2878\",\n null\n \n)\n\nexport default component.exports","import StreamRegionH5 from './StreamRegionH5.vue';\nimport StreamRegionPc from './StreamRegionPC.vue';\nimport { isMobile } from '../../../utils/useMediaValue';\n\nconst StreamRegion = isMobile ? StreamRegionH5 : StreamRegionPc;\n\nexport default StreamRegion;\n","import { watch } from 'vue';\nimport useGetRoomEngine from '../../../hooks/useRoomEngine';\nimport { useRoomStore } from '../../../stores/room';\nimport { TUIChangeReason, TUIUserInfo, TUIVideoStreamType } from '@tencentcloud/tuiroom-engine-js';\nimport { ElMessage } from '../../../elementComp';\nimport { useI18n } from '../../../locales';\nimport { useBasicStore } from '../../../stores/basic';\nimport { MESSAGE_DURATION } from '../../../constants/message';\nimport { storeToRefs } from 'pinia';\nimport { isMobile, isWeChat } from '../../../utils/useMediaValue';\nimport logger from '../../../utils/common/logger';\n\nconst logPrefix = '[StreamContainer]';\n\nexport default function useStreamContainer() {\n /**\n * --- The following processing stream events ----\n *\n * --- 以下处理流事件 ----\n **/\n const roomEngine = useGetRoomEngine();\n const basicStore = useBasicStore();\n const roomStore = useRoomStore();\n const { t } = useI18n();\n\n // 远端用户进入\n const onRemoteUserEnterRoom = (eventInfo: { userInfo: TUIUserInfo }) => {\n roomStore.addRemoteUser(eventInfo.userInfo);\n };\n\n // 远端用户离开\n const onRemoteUserLeaveRoom = (eventInfo: { userInfo: TUIUserInfo }) => {\n roomStore.removeRemoteUser(eventInfo.userInfo.userId);\n };\n\n // 麦位变化\n const onSeatListChanged = (eventInfo: { seatList: any[], seatedList: any[], leftList: any[] }) => {\n const { seatList, seatedList, leftList } = eventInfo;\n roomStore.updateOnSeatList(seatList, seatedList, leftList);\n };\n\n // 用户音频状态发生改变\n const onUserAudioStateChanged = (eventInfo: {\n userId: string,\n hasAudio: boolean,\n reason: TUIChangeReason,\n }) => {\n const { userId, hasAudio, reason } = eventInfo;\n roomStore.updateUserAudioState(userId, hasAudio);\n // 处理状态变更\n if (userId === basicStore.userId && !hasAudio && reason === TUIChangeReason.kChangedByAdmin) {\n // 主持人关闭麦克风\n ElMessage({\n type: 'warning',\n message: t('The host has turned off your microphone'),\n duration: MESSAGE_DURATION.NORMAL,\n });\n /**\n * When the host turns on a full ban, the microphone of a single person is turned on\n * and off separately, and the microphone status of the corresponding user is inoperable at this time\n *\n * 主持人开启全员禁言时,单独打开再关闭单人的麦克风,此时对应用户的麦克风状态为无法操作\n **/\n roomStore.setCanControlSelfAudio(!roomStore.isMicrophoneDisableForAllUser);\n }\n };\n const {\n isDefaultOpenCamera,\n isDefaultOpenMicrophone,\n isLocalAudioIconDisable,\n isLocalVideoIconDisable,\n } = storeToRefs(roomStore);\n\n watch(isDefaultOpenCamera, async (val) => {\n if (val && !isLocalVideoIconDisable.value) {\n /**\n * Turn on the local camera\n *\n * 开启本地摄像头\n **/\n\n if (isWeChat) {\n await roomEngine.instance?.setLocalVideoView({\n streamType: TUIVideoStreamType.kCameraStream,\n view: `${roomStore.localStream.userId}_${roomStore.localStream.streamType}`,\n });\n // @ts-ignore\n await roomEngine.instance?.openLocalCamera({ isFrontCamera: basicStore.isFrontCamera });\n } else if (isMobile) {\n const previewDom = document?.getElementById(`${roomStore.localStream.userId}_${roomStore.localStream.streamType}`);\n if (!previewDom) {\n logger.error(`${logPrefix}watch isDefaultOpenCamera:`, isDefaultOpenCamera, previewDom);\n return;\n }\n await roomEngine.instance?.setLocalVideoView({\n streamType: TUIVideoStreamType.kCameraStream,\n view: `${roomStore.localStream.userId}_${roomStore.localStream.streamType}`,\n });\n // @ts-ignore\n await roomEngine.instance?.openLocalCamera({ isFrontCamera: basicStore.isFrontCamera });\n return;\n } else {\n const previewDom = document?.getElementById(`${roomStore.localStream.userId}_${roomStore.localStream.streamType}`);\n if (!previewDom) {\n logger.error(`${logPrefix}watch isDefaultOpenCamera:`, isDefaultOpenCamera, previewDom);\n return;\n }\n /**\n * Set device id\n *\n * 设置设备id\n **/\n if (!roomStore.currentCameraId) {\n const cameraList = await roomEngine.instance?.getCameraDevicesList();\n if (cameraList && cameraList.length > 0) {\n roomStore.setCurrentCameraId(cameraList[0].deviceId);\n }\n }\n await roomEngine.instance?.setCurrentCameraDevice({ deviceId: roomStore.currentCameraId });\n /**\n * Turn on the local camera\n *\n * 开启本地摄像头\n **/\n await roomEngine.instance?.setLocalVideoView({\n streamType: TUIVideoStreamType.kCameraStream,\n view: `${roomStore.localStream.userId}_${roomStore.localStream.streamType}`,\n });\n await roomEngine.instance?.openLocalCamera();\n }\n }\n });\n\n watch(isDefaultOpenMicrophone, async (val) => {\n if (val && !isLocalAudioIconDisable.value) {\n /**\n * Advance the timing of startMicrophone to ensure that it is executed before startCameraPreview\n *\n * 提前 startMicrophone 的时机,保证在 startCameraPreview 之前执行\n **/\n await roomEngine.instance?.openLocalMicrophone();\n if (!isWeChat && !isMobile) {\n const microphoneList = await roomEngine.instance?.getMicDevicesList();\n const speakerList = await roomEngine.instance?.getSpeakerDevicesList();\n if (microphoneList?.length === 0 || speakerList?.length === 0) return;\n if (!roomStore.currentMicrophoneId && microphoneList.length > 0) {\n roomStore.setCurrentMicrophoneId(microphoneList[0].deviceId);\n }\n if (!roomStore.currentSpeakerId && speakerList.length > 0) {\n roomStore.setCurrentSpeakerId(speakerList[0].deviceId);\n }\n await roomEngine.instance?.setCurrentMicDevice({ deviceId: roomStore.currentMicrophoneId });\n }\n }\n });\n return {\n onRemoteUserEnterRoom,\n onRemoteUserLeaveRoom,\n onSeatListChanged,\n onUserAudioStateChanged,\n t,\n };\n}\n","import { defineComponent as _defineComponent } from 'vue'\nimport { ref, onUnmounted, Ref, ComputedRef, watch, computed } from 'vue';\nimport { storeToRefs } from 'pinia';\nimport { StreamInfo, useRoomStore } from '../../../stores/room';\nimport { useBasicStore } from '../../../stores/basic';\nimport { LAYOUT } from '../../../constants/render';\nimport StreamRegion from '../StreamRegion';\nimport { ElMessage } from '../../../elementComp';\nimport { MESSAGE_DURATION } from '../../../constants/message';\nimport logger from '../../../utils/common/logger';\nimport { throttle } from '../../../utils/utils';\n\nimport TUIRoomEngine, { TUIChangeReason, TUIRoomEvents, TUIVideoStreamType, TRTCVolumeInfo } from '@tencentcloud/tuiroom-engine-js';\nimport useGetRoomEngine from '../../../hooks/useRoomEngine';\nimport useStreamContainer from './useStreamContainerHooks';\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'StreamContainerH5',\n props: {\n showRoomTool: { type: Boolean }\n },\n setup(__props: any) {\n\nconst logPrefix = '[StreamContainer]';\nconst {\n onRemoteUserEnterRoom,\n onRemoteUserLeaveRoom,\n onSeatListChanged,\n onUserAudioStateChanged,\n t,\n} = useStreamContainer();\n\nconst roomEngine = useGetRoomEngine();\n\n\n\n\n\nconst streamContainerRef = ref(null);\n\nconst roomStore = useRoomStore();\nconst {\n streamList,\n streamNumber,\n localStream,\n remoteStreamObj,\n} = storeToRefs(roomStore);\nconst basicStore = useBasicStore();\n// 小程序默认布局为六宫格模式\nbasicStore.setLayout(LAYOUT.SIX_EQUAL_POINTS);\nconst { layout } = storeToRefs(basicStore);\n\nconst enlargeStream: Ref = ref(null);\nconst enlargeDomId = computed(() => (enlargeStream.value ? `${enlargeStream.value.userId}_${enlargeStream.value.streamType}` : ''));\nconst currentSpeakerUserId: Ref = ref('');\nconst startX = ref();\nconst startY = ref();\n\nconst onlyVideoStreamList = computed(() => (\n streamList.value.filter(stream => stream.streamType === TUIVideoStreamType.kCameraStream)\n));\nconst currentPageIndex = ref(0);\n\nwatch(() => onlyVideoStreamList.value.length, (val) => {\n if (layout.value === LAYOUT.SIX_EQUAL_POINTS) {\n const equalPointIndex = enlargeStream.value ? currentPageIndex.value - 1 : currentPageIndex.value;\n if (Math.ceil(val / 6) < equalPointIndex + 1 && equalPointIndex > 0) {\n currentPageIndex.value = currentPageIndex.value - 1;\n }\n }\n});\n\nconst isFirstPageInSixPointLayout: Ref = computed(() => {\n if (layout.value === LAYOUT.SIX_EQUAL_POINTS) {\n return enlargeStream.value ? currentPageIndex.value === 1 : currentPageIndex.value === 0;\n }\n return false;\n});\n\n/**\n * ----- The following handles the nine-pane page flip logic -----\n *\n * ----- 以下处理六宫格翻页逻辑 -----\n**/\nconst showStreamList: ComputedRef = computed(() => {\n if (layout.value === LAYOUT.SIX_EQUAL_POINTS) {\n if (enlargeStream.value) {\n return onlyVideoStreamList.value.slice((currentPageIndex.value - 1) * 6, (currentPageIndex.value - 1) * 6 + 6);\n }\n return onlyVideoStreamList.value.slice(currentPageIndex.value * 6, currentPageIndex.value * 6 + 6);\n }\n if (layout.value === LAYOUT.LARGE_SMALL_WINDOW) {\n const userId = enlargeStream.value?.userId;\n if (currentSpeakerUserId.value) {\n return currentSpeakerUserId.value === localStream.value.userId\n ? [localStream.value]\n : [remoteStreamObj.value[`${currentSpeakerUserId.value}_${TUIVideoStreamType.kCameraStream}`]];\n }\n return [remoteStreamObj.value[`${userId}_${TUIVideoStreamType.kCameraStream}`]];\n }\n return [];\n});\n\n\n/**\n * Show left and right page flip icons\n *\n * 显示左右翻页图标\n**/\nconst totalPageNumber = computed(() => {\n const totalPageOfVideoStream = onlyVideoStreamList.value.length > 6 ? Math.ceil(streamNumber.value / 6) : 1;\n return enlargeStream.value ? totalPageOfVideoStream + 1 : totalPageOfVideoStream;\n});\n\nfunction isActiveDot(index: number) {\n if (layout.value === LAYOUT.LARGE_SMALL_WINDOW) {\n return index === 0;\n }\n if (layout.value === LAYOUT.SIX_EQUAL_POINTS) {\n return index === currentPageIndex.value;\n }\n return false;\n}\n\n/**\n * Swipe left to turn the page\n *\n * 向左滑动翻页\n**/\nfunction handleTurnPageLeft() {\n if (currentPageIndex.value === 0) {\n return;\n }\n currentPageIndex.value = currentPageIndex.value - 1;\n if (enlargeStream.value && currentPageIndex.value === 0) {\n basicStore.setLayout(LAYOUT.LARGE_SMALL_WINDOW);\n }\n}\n\n/**\n * Swipe right to turn the page\n *\n * 向右滑动翻页\n**/\nfunction handleTurnPageRight() {\n if (currentPageIndex.value === totalPageNumber.value - 1) {\n return;\n }\n currentPageIndex.value = currentPageIndex.value + 1;\n if (layout.value === LAYOUT.LARGE_SMALL_WINDOW) {\n basicStore.setLayout(LAYOUT.SIX_EQUAL_POINTS);\n }\n}\n\n/**\n * ----- The following processing stream layout ---------\n *\n * ----- 以下处理流布局 ---------\n**/\nconst enlargedContainerRef = ref();\nconst streamListRef = ref();\n\nconst streamContainerClass = computed(() => {\n let containerClass = '';\n switch (layout.value) {\n case LAYOUT.SIX_EQUAL_POINTS:\n containerClass = 'stream-container-flatten';\n break;\n case LAYOUT.LARGE_SMALL_WINDOW:\n containerClass = 'stream-container-large-small';\n break;\n default:\n break;\n }\n return containerClass;\n});\n\nfunction handleTouchStart(event:any) {\n startX.value = event?.changedTouches[0]?.pageX;\n startY.value = event?.changedTouches[0]?.pageY;\n}\n\nfunction handleTouchEnd(event:any) {\n const moveDirectionX = event?.changedTouches[0].pageX - startX.value;\n const moveDirectionY = event?.changedTouches[0].pageY - startY.value;\n if (Math.abs(moveDirectionY) > Math.abs(moveDirectionX) || Math.abs(moveDirectionX) < 5) {\n return;\n }\n if (moveDirectionX < 0) {\n // 右滑\n handleTurnPageRight();\n }\n if (moveDirectionX > 0) {\n // 左滑\n handleTurnPageLeft();\n }\n}\n\n/**\n * --- The following processing stream events ----\n *\n * --- 以下处理流事件 ----\n**/\n\n\nconst onUserVideoStateChanged = (eventInfo: {\n userId: string,\n streamType: TUIVideoStreamType,\n hasVideo: boolean,\n reason: TUIChangeReason,\n}) => {\n const { userId, streamType, hasVideo, reason } = eventInfo;\n // 更新 roomStore 流状态数据\n roomStore.updateUserVideoState(userId, streamType, hasVideo);\n\n // 处理状态变更\n if (userId === basicStore.userId && !hasVideo && reason === TUIChangeReason.kChangedByAdmin) {\n // 主持人关闭摄像头\n if (streamType === TUIVideoStreamType.kCameraStream) {\n ElMessage({\n type: 'warning',\n message: t('The host has turned off your camera'),\n duration: MESSAGE_DURATION.NORMAL,\n });\n // When the moderator opens the whole staff forbidden to draw,\n // open and then close the single person's camera alone, at this time\n // the corresponding user's camera status for inoperable\n // 主持人开启全员禁画时,单独打开再关闭单人的摄像头,此时对应用户的摄像头状态为无法操作\n roomStore.setCanControlSelfVideo(!roomStore.isCameraDisableForAllUser);\n }\n // 主持人关闭屏幕分享\n if (streamType === TUIVideoStreamType.kScreenStream) {\n ElMessage({\n type: 'warning',\n message: t('The host has turned off your screen sharing'),\n duration: MESSAGE_DURATION.NORMAL,\n });\n }\n }\n\n // 当远端屏幕分享变化的时候,处理流布局\n if (userId !== basicStore.userId && streamType === TUIVideoStreamType.kScreenStream) {\n if (hasVideo) {\n enlargeStream.value = roomStore.remoteStreamObj[`${userId}_${streamType}`] as StreamInfo;\n if (enlargeStream.value) {\n basicStore.setLayout(LAYOUT.LARGE_SMALL_WINDOW);\n currentPageIndex.value = 0;\n }\n } else {\n if (userId === enlargeStream.value?.userId) {\n /**\n * Reset the stream playback layout when the remote screen sharing stream is stopped\n *\n * 远端屏幕分享流停止的时候,重新设置流播放布局\n **/\n logger.debug(`${logPrefix} onUserVideoStateChanged: stop`, userId, streamType);\n roomEngine.instance?.stopPlayRemoteVideo({\n userId,\n streamType,\n });\n if (enlargeStream.value) {\n enlargeStream.value = null;\n }\n if (layout.value === LAYOUT.LARGE_SMALL_WINDOW) {\n basicStore.setLayout(LAYOUT.SIX_EQUAL_POINTS);\n currentPageIndex.value = 0;\n } else if (layout.value === LAYOUT.SIX_EQUAL_POINTS && currentPageIndex.value > 0) {\n currentPageIndex.value = currentPageIndex.value - 1;\n }\n }\n }\n }\n};\n\n// 计算音量最大的 userId\nfunction handleLargestVoice(userVolumeList: Array) {\n if (currentSpeakerUserId.value) {\n const lastSpeakerUserVolumeInfo = userVolumeList.find((item: TRTCVolumeInfo) => (\n item.userId === currentSpeakerUserId.value\n ));\n if (lastSpeakerUserVolumeInfo && lastSpeakerUserVolumeInfo.volume > 0) {\n return;\n }\n }\n let largestVolume = 0;\n let largestUserId = '';\n userVolumeList.forEach((item: TRTCVolumeInfo) => {\n const { userId, volume } = item;\n if (volume > largestVolume) {\n largestVolume = volume;\n largestUserId = userId;\n }\n });\n if (largestVolume === 0) {\n currentSpeakerUserId.value = '';\n } else {\n currentSpeakerUserId.value = largestUserId;\n }\n}\n\nconst handleLargestVoiceThrottle = throttle(handleLargestVoice, 1000);\n\n// 音量变化\nconst onUserVoiceVolumeChanged = (eventInfo: {\n userVolumeList: any[],\n}) => {\n const { userVolumeList } = eventInfo;\n if (layout.value === LAYOUT.LARGE_SMALL_WINDOW) {\n if (userVolumeList.length === 0) {\n currentSpeakerUserId.value = '';\n } else {\n handleLargestVoiceThrottle(userVolumeList);\n }\n }\n};\n\n\nTUIRoomEngine.once('ready', () => {\n roomEngine.instance?.on(TUIRoomEvents.onRemoteUserEnterRoom, onRemoteUserEnterRoom);\n roomEngine.instance?.on(TUIRoomEvents.onRemoteUserLeaveRoom, onRemoteUserLeaveRoom);\n roomEngine.instance?.on(TUIRoomEvents.onSeatListChanged, onSeatListChanged);\n roomEngine.instance?.on(TUIRoomEvents.onUserVideoStateChanged, onUserVideoStateChanged);\n roomEngine.instance?.on(TUIRoomEvents.onUserAudioStateChanged, onUserAudioStateChanged);\n roomEngine.instance?.on(TUIRoomEvents.onUserVoiceVolumeChanged, onUserVoiceVolumeChanged);\n});\n\nonUnmounted(() => {\n roomEngine.instance?.off(TUIRoomEvents.onRemoteUserEnterRoom, onRemoteUserEnterRoom);\n roomEngine.instance?.off(TUIRoomEvents.onRemoteUserLeaveRoom, onRemoteUserLeaveRoom);\n roomEngine.instance?.off(TUIRoomEvents.onSeatListChanged, onSeatListChanged);\n roomEngine.instance?.off(TUIRoomEvents.onUserVideoStateChanged, onUserVideoStateChanged);\n roomEngine.instance?.off(TUIRoomEvents.onUserAudioStateChanged, onUserAudioStateChanged);\n roomEngine.instance?.off(TUIRoomEvents.onUserVoiceVolumeChanged, onUserVoiceVolumeChanged);\n});\n\nreturn { __sfc: true,logPrefix, onRemoteUserEnterRoom, onRemoteUserLeaveRoom, onSeatListChanged, onUserAudioStateChanged, t, roomEngine, streamContainerRef, roomStore, streamList, streamNumber, localStream, remoteStreamObj, basicStore, layout, enlargeStream, enlargeDomId, currentSpeakerUserId, startX, startY, onlyVideoStreamList, currentPageIndex, isFirstPageInSixPointLayout, showStreamList, totalPageNumber, isActiveDot, handleTurnPageLeft, handleTurnPageRight, enlargedContainerRef, streamListRef, streamContainerClass, handleTouchStart, handleTouchEnd, onUserVideoStateChanged, handleLargestVoice, handleLargestVoiceThrottle, onUserVoiceVolumeChanged, LAYOUT, StreamRegion }\n}\n\n})","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./StreamContainerH5.vue?vue&type=script&setup=true&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./StreamContainerH5.vue?vue&type=script&setup=true&lang=ts&\"","import { render, staticRenderFns } from \"./StreamContainerH5.vue?vue&type=template&id=3424abc2&scoped=true&\"\nimport script from \"./StreamContainerH5.vue?vue&type=script&setup=true&lang=ts&\"\nexport * from \"./StreamContainerH5.vue?vue&type=script&setup=true&lang=ts&\"\nimport style0 from \"./StreamContainerH5.vue?vue&type=style&index=0&id=3424abc2&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3424abc2\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{class:_setup.streamContainerClass},[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_setup.showIconControl),expression:\"showIconControl\"}],ref:\"enlargedContainerRef\",staticClass:\"enlarged-stream-container\"},[(_setup.enlargeStream)?_c(_setup.StreamRegion,{key:`${_setup.enlargeStream.userId}_${_setup.enlargeStream.streamType}`,style:(_setup.enlargedStreamStyle),attrs:{\"stream\":_setup.enlargeStream}}):_vm._e()],1),_c('div',{class:['stream-list-container', `${_setup.showSideList ? '' : 'hide-list'}`]},[_c('div',{ref:\"streamListRef\",staticClass:\"stream-list\"},_vm._l((_setup.streamList),function(stream){return _c(_setup.StreamRegion,{directives:[{name:\"show\",rawName:\"v-show\",value:(_setup.showStreamList.indexOf(stream) > -1),expression:\"showStreamList.indexOf(stream) > -1\"}],key:`${stream.userId}_${stream.streamType}`,staticClass:\"single-stream\",style:(_setup.streamStyle),attrs:{\"stream\":stream,\"enlarge-dom-id\":_setup.enlargeDomId},on:{\"room_dblclick\":function($event){return _setup.handleEnlargeStreamRegion(stream)}}})}),1)]),(_setup.showIconControl && _vm.showRoomTool)?_c('div',{class:_setup.arrowClass,on:{\"click\":_setup.handleClickIcon}},[_c(_setup.SvgIcon,{attrs:{\"icon-name\":\"line-arrow-up\",\"size\":\"medium\"}})],1):_vm._e(),(_setup.showTurnPageControl && _vm.showRoomTool)?_c('div',{staticClass:\"turn-page-container\"},[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_setup.showTurnPageLeftArrow),expression:\"showTurnPageLeftArrow\"}],staticClass:\"turn-page-arrow-container left-container\",on:{\"click\":_setup.handleTurnPageLeft}},[_c('div',{staticClass:\"turn-page-arrow\"})]),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_setup.showTurnPageRightArrow),expression:\"showTurnPageRightArrow\"}],staticClass:\"turn-page-arrow-container right-container\",on:{\"click\":_setup.handleTurnPageRight}},[_c('div',{staticClass:\"turn-page-arrow turn-page-right\"})])]):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { defineComponent as _defineComponent } from 'vue'\nimport { ref, onMounted, onUnmounted, Ref, ComputedRef, watch, nextTick, computed } from 'vue';\nimport { storeToRefs } from 'pinia';\nimport { StreamInfo, useRoomStore } from '../../../stores/room';\nimport { useBasicStore } from '../../../stores/basic';\nimport { LAYOUT } from '../../../constants/render';\nimport StreamRegion from '../StreamRegion';\nimport SvgIcon from '../../common/SvgIcon.vue';\nimport { ElMessage } from '../../../elementComp';\nimport { MESSAGE_DURATION } from '../../../constants/message';\nimport { debounce } from '../../../utils/utils';\nimport logger from '../../../utils/common/logger';\n\nimport TUIRoomEngine, { TUIUserInfo, TUIChangeReason, TUIRoomEvents, TUIVideoStreamType, TUISeatInfo } from '@tencentcloud/tuiroom-engine-js';\nimport useGetRoomEngine from '../../../hooks/useRoomEngine';\nimport useStreamContainer from './useStreamContainerHooks';\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'StreamContainerPC',\n props: {\n showRoomTool: { type: Boolean }\n },\n setup(__props: any) {\n\nconst logPrefix = '[StreamContainer]';\nconst {\n onRemoteUserEnterRoom,\n onUserAudioStateChanged,\n t,\n} = useStreamContainer();\nconst roomEngine = useGetRoomEngine();\n\n\n\n\nconst streamStyle: Ref> = ref({ width: '0', height: '0' });\nconst enlargedStreamStyle: Ref> = ref({ width: '0', height: '0' });\nconst roomStore = useRoomStore();\nconst { streamList, streamNumber, remoteStreamList } = storeToRefs(roomStore);\nconst basicStore = useBasicStore();\nconst { layout } = storeToRefs(basicStore);\nconst showSideList = ref(true);\n\nconst enlargeStream: Ref = ref(null);\nconst enlargeDomId = computed(() => (enlargeStream.value ? `${enlargeStream.value.userId}_${enlargeStream.value.streamType}` : ''));\n\nwatch(() => remoteStreamList.value.length, (val) => {\n // 当没有远端流的时候,将流布局改为九宫格\n if (val === 0) {\n basicStore.setLayout(LAYOUT.NINE_EQUAL_POINTS);\n enlargeStream.value = null;\n return;\n }\n});\n\nwatch(() => streamList.value.length, () => {\n if (layout.value === LAYOUT.RIGHT_SIDE_LIST || layout.value === LAYOUT.TOP_SIDE_LIST) {\n handleStreamContainerScroll();\n }\n});\n\nwatch(() => enlargeDomId.value, () => {\n if (layout.value === LAYOUT.RIGHT_SIDE_LIST || layout.value === LAYOUT.TOP_SIDE_LIST) {\n handleStreamContainerScroll();\n }\n});\n\n/**\n * ----- The following handles the nine-pane page flip logic -----\n *\n * ----- 以下处理九宫格翻页逻辑 -----\n**/\nconst currentPageIndex = ref(0);\nconst showStreamList: ComputedRef = computed(() => {\n if (layout.value !== LAYOUT.NINE_EQUAL_POINTS) {\n return streamList.value.filter(item => `${item.userId}_${item.streamType}` !== enlargeDomId.value);\n }\n return streamList.value.slice(currentPageIndex.value * 9, currentPageIndex.value * 9 + 9);\n});\n\nwatch([() => showStreamList.value.length, currentPageIndex], () => {\n if (layout.value === LAYOUT.NINE_EQUAL_POINTS) {\n const streamIdList: string[] = [];\n showStreamList.value.forEach((item) => {\n const currentStreamId = `${item.userId}_${item.streamType}`;\n streamIdList.push(currentStreamId);\n });\n roomStore.updateUserStreamVisible(streamIdList);\n }\n});\n\nwatch(streamNumber, (val) => {\n if (currentPageIndex.value > Math.ceil(val / 9) - 1) {\n currentPageIndex.value = Math.ceil(val / 9) - 1;\n handleNineEqualPointsLayout();\n }\n});\n\n/**\n * Show left and right page flip icons\n *\n * 显示左右翻页图标\n**/\nconst showTurnPageControl = computed(() => layout.value === LAYOUT.NINE_EQUAL_POINTS && streamNumber.value > 9);\n/**\n * Whether or not to show the nine-page-to-left button\n *\n * 是否展示九宫格朝左翻页按钮\n**/\nconst showTurnPageLeftArrow = computed(() => currentPageIndex.value > 0);\n/**\n * Whether or not to display the nine-pane rightward-facing page button\n *\n * 是否展示九宫格朝右翻页按钮\n**/\nconst showTurnPageRightArrow = computed(() => streamNumber.value > currentPageIndex.value * 9 + 9);\n\n/**\n * Nine grid layout towards the left to turn the page\n *\n * 九宫格布局朝左翻页\n**/\nfunction handleTurnPageLeft() {\n currentPageIndex.value = currentPageIndex.value - 1;\n handleNineEqualPointsLayout();\n}\n\n/**\n * Nine grid layout towards the right to turn the page\n *\n * 九宫格布局朝右翻页\n**/\nfunction handleTurnPageRight() {\n currentPageIndex.value = currentPageIndex.value + 1;\n handleNineEqualPointsLayout();\n}\n\n/**\n * ----- The following processing stream layout ---------\n *\n * ----- 以下处理流布局 ---------\n**/\nconst streamContainerClass = ref('');\nconst enlargedContainerRef = ref();\nconst streamListRef = ref();\n\nconst arrowClass = computed(() => {\n let arrowDirection = '';\n if (layout.value === LAYOUT.TOP_SIDE_LIST) {\n arrowDirection = showSideList.value ? 'up' : 'down';\n }\n if (layout.value === LAYOUT.RIGHT_SIDE_LIST) {\n arrowDirection = showSideList.value ? 'right' : 'left';\n }\n return `icon-control arrow-${arrowDirection}`;\n});\n\nfunction handleClickIcon() {\n showSideList.value = !showSideList.value;\n if (!showSideList.value) {\n let width = 0;\n let height = 0;\n const containerWidth = document.getElementById('roomContainer')!.offsetWidth;\n const containerHeight = document.getElementById('roomContainer')!.offsetHeight;\n const scaleWidth = containerWidth / 16;\n const scaleHeight = containerHeight / 9;\n if (scaleWidth > scaleHeight) {\n width = (containerHeight / 9) * 16;\n height = containerHeight;\n }\n if (scaleWidth <= scaleHeight) {\n width = containerWidth;\n height = (containerWidth / 16) * 9;\n }\n enlargedStreamStyle.value.width = `${width}px`;\n enlargedStreamStyle.value.height = `${height}px`;\n /**\n * Modify the width and height of the enlargedContainer\n *\n * 修改 enlargedContainer 的宽和高\n **/\n if (layout.value === LAYOUT.RIGHT_SIDE_LIST) {\n enlargedContainerRef.value.style.width = '100%';\n enlargedContainerRef.value.style.height = '100%';\n return;\n }\n if (layout.value === LAYOUT.TOP_SIDE_LIST) {\n enlargedContainerRef.value.style.top = '0px';\n enlargedContainerRef.value.style.width = '100%';\n enlargedContainerRef.value.style.height = '100%';\n return;\n }\n } else {\n if (layout.value === LAYOUT.RIGHT_SIDE_LIST) {\n handleRightSideListLayout();\n enlargedContainerRef.value.style.width = 'calc(100% - 260px)';\n enlargedContainerRef.value.style.height = '100%';\n return;\n }\n if (layout.value === LAYOUT.TOP_SIDE_LIST) {\n handleTopSideListLayout();\n enlargedContainerRef.value.style.top = '175px';\n enlargedContainerRef.value.style.width = '100%';\n enlargedContainerRef.value.style.height = 'calc(100% - 175px)';\n return;\n }\n }\n}\n\n/**\n * Handle nine-pattern layout\n *\n * 处理九宫格布局\n**/\nasync function handleNineEqualPointsLayout() {\n streamContainerClass.value = 'stream-container-flatten';\n\n enlargeStream.value = null;\n\n const number = showStreamList.value.length;\n let width = 0;\n let height = 0;\n const roomContainerElement = document.getElementById('roomContainer');\n if (!roomContainerElement) {\n return;\n }\n let containerWidth = roomContainerElement!.offsetWidth;\n let containerHeight = roomContainerElement!.offsetHeight;\n if (number <= 4) {\n containerWidth = number < 2 ? roomContainerElement!.offsetWidth / number : roomContainerElement!.offsetWidth / 2;\n containerHeight = roomContainerElement!.offsetHeight / Math.ceil(number / 2);\n } else if (number > 4) {\n containerWidth = number < 3 ? roomContainerElement!.offsetWidth / number : roomContainerElement!.offsetWidth / 3;\n containerHeight = roomContainerElement!.offsetHeight / Math.ceil(number / 3);\n }\n\n const scaleWidth = containerWidth / 16;\n const scaleHeight = containerHeight / 9;\n if (scaleWidth > scaleHeight) {\n width = (containerHeight / 9) * 16;\n height = containerHeight;\n }\n if (scaleWidth <= scaleHeight) {\n width = containerWidth;\n height = (containerWidth / 16) * 9;\n }\n // 九宫格模式需要减掉 streamRegion 的 margin 的尺寸\n streamStyle.value.width = `${width - 8}px`;\n streamStyle.value.height = `${height - 8}px`;\n}\n\n/**\n * Handle sidebar layout\n *\n * 处理侧边栏布局\n**/\nasync function handleRightSideListLayout() {\n streamContainerClass.value = 'stream-container-right';\n\n if (!enlargeStream.value) {\n [enlargeStream.value] = remoteStreamList.value;\n }\n\n await nextTick();\n\n streamStyle.value = {};\n\n if (enlargedContainerRef.value) {\n const containerWidth = enlargedContainerRef.value.offsetWidth;\n const containerHeight = enlargedContainerRef.value.offsetHeight;\n let width = 0;\n let height = 0;\n const scaleWidth = containerWidth / 16;\n const scaleHeight = containerHeight / 9;\n if (scaleWidth > scaleHeight) {\n width = (containerHeight / 9) * 16;\n height = containerHeight;\n }\n if (scaleWidth <= scaleHeight) {\n width = containerWidth;\n height = (containerWidth / 16) * 9;\n }\n enlargedStreamStyle.value.width = `${width}px`;\n enlargedStreamStyle.value.height = `${height}px`;\n }\n}\n\n/**\n * Handle top bar layout\n *\n * 处理顶部栏布局\n**/\nasync function handleTopSideListLayout() {\n streamContainerClass.value = 'stream-container-top';\n\n if (!enlargeStream.value) {\n [enlargeStream.value] = remoteStreamList.value;\n }\n\n await nextTick();\n\n streamStyle.value = {};\n\n if (enlargedContainerRef.value) {\n const containerWidth = enlargedContainerRef.value.offsetWidth;\n const containerHeight = enlargedContainerRef.value.offsetHeight;\n let width = 0;\n let height = 0;\n const scaleWidth = containerWidth / 16;\n const scaleHeight = containerHeight / 9;\n if (scaleWidth > scaleHeight) {\n width = (containerHeight / 9) * 16;\n height = containerHeight;\n }\n if (scaleWidth <= scaleHeight) {\n width = containerWidth;\n height = (containerWidth / 16) * 9;\n }\n enlargedStreamStyle.value.width = `${width}px`;\n enlargedStreamStyle.value.height = `${height}px`;\n }\n}\n\n/**\n * Double-click to switch the stream to the zoom in section\n *\n * 双击切换流到放大区域\n**/\nfunction handleEnlargeStreamRegion(stream: StreamInfo) {\n if (layout.value === LAYOUT.NINE_EQUAL_POINTS) {\n basicStore.setLayout(LAYOUT.RIGHT_SIDE_LIST);\n }\n enlargeStream.value = stream;\n}\n\n/**\n * Handle the page layout when the page loads or the layout changes\n *\n * 页面加载或者 layout 改变时,处理页面布局\n**/\nasync function handleLayout() {\n switch (layout.value as any) {\n case LAYOUT.NINE_EQUAL_POINTS:\n await handleNineEqualPointsLayout();\n break;\n case LAYOUT.RIGHT_SIDE_LIST:\n showSideList.value = true;\n enlargedContainerRef.value.style.width = 'calc(100% - 260px)';\n enlargedContainerRef.value.style.height = '100%';\n await handleRightSideListLayout();\n await handleStreamContainerScroll();\n break;\n case LAYOUT.TOP_SIDE_LIST:\n showSideList.value = true;\n enlargedContainerRef.value.style.width = '100%';\n enlargedContainerRef.value.style.height = 'calc(100% - 175px)';\n await handleTopSideListLayout();\n await handleStreamContainerScroll();\n break;\n default:\n break;\n }\n}\n\n/**\n * Processing stream window size when page rescaling\n *\n * 页面 resize 时,处理流窗口尺寸\n**/\nasync function handleResize() {\n switch (layout.value as any) {\n case LAYOUT.NINE_EQUAL_POINTS:\n await handleNineEqualPointsLayout();\n break;\n case LAYOUT.RIGHT_SIDE_LIST:\n await handleRightSideListLayout();\n await handleStreamContainerScroll();\n break;\n case LAYOUT.TOP_SIDE_LIST:\n await handleTopSideListLayout();\n await handleStreamContainerScroll();\n break;\n default:\n break;\n }\n}\n\nonMounted(() => {\n handleLayout();\n ['resize', 'pageshow'].forEach((event) => {\n window.addEventListener(event, handleResize);\n });\n});\n\nonUnmounted(() => {\n ['resize', 'pageshow'].forEach((event) => {\n window.removeEventListener(event, handleResize);\n });\n});\n\nwatch(streamNumber, () => {\n if (layout.value === LAYOUT.NINE_EQUAL_POINTS) {\n handleNineEqualPointsLayout();\n }\n});\n\nwatch(layout, () => {\n handleLayout();\n});\n\nconst showIconControl = computed(() => [LAYOUT.RIGHT_SIDE_LIST, LAYOUT.TOP_SIDE_LIST].indexOf(layout.value) >= 0);\n\n\nconst onUserVideoStateChanged = (eventInfo: {\n userId: string,\n streamType: TUIVideoStreamType,\n hasVideo: boolean,\n reason: TUIChangeReason,\n}) => {\n const { userId, streamType, hasVideo, reason } = eventInfo;\n // 更新 roomStore 流状态数据\n roomStore.updateUserVideoState(userId, streamType, hasVideo);\n\n // 处理状态变更\n if (userId === basicStore.userId && !hasVideo && reason === TUIChangeReason.kChangedByAdmin) {\n // 主持人关闭摄像头\n if (streamType === TUIVideoStreamType.kCameraStream) {\n ElMessage({\n type: 'warning',\n message: t('The host has turned off your camera'),\n duration: MESSAGE_DURATION.NORMAL,\n });\n // When the moderator opens the whole staff forbidden to draw,\n // open and then close the single person's camera alone, at this time\n // the corresponding user's camera status for inoperable\n // 主持人开启全员禁画时,单独打开再关闭单人的摄像头,此时对应用户的摄像头状态为无法操作\n roomStore.setCanControlSelfVideo(!roomStore.isCameraDisableForAllUser);\n }\n // 主持人关闭屏幕分享\n if (streamType === TUIVideoStreamType.kScreenStream) {\n ElMessage({\n type: 'warning',\n message: t('The host has turned off your screen sharing'),\n duration: MESSAGE_DURATION.NORMAL,\n });\n }\n }\n\n // 当远端屏幕分享变化的时候,处理流布局\n if (userId !== basicStore.userId && streamType === TUIVideoStreamType.kScreenStream) {\n if (hasVideo) {\n roomStore.setHasOtherScreenShare(true);\n enlargeStream.value = roomStore.remoteStreamObj[`${userId}_${streamType}`] as StreamInfo;\n if (enlargeStream.value) {\n if (layout.value !== LAYOUT.RIGHT_SIDE_LIST && layout.value !== LAYOUT.TOP_SIDE_LIST) {\n basicStore.setLayout(LAYOUT.RIGHT_SIDE_LIST);\n }\n }\n } else {\n roomStore.setHasOtherScreenShare(false);\n /**\n * Reset the stream playback layout when the remote screen sharing stream is stopped\n *\n * 远端屏幕分享流停止的时候,重新设置流播放布局\n **/\n if (userId === enlargeStream.value?.userId) {\n handleLargeStreamLeave();\n }\n\n logger.debug(`${logPrefix} onUserVideoStateChanged: stop`, userId, streamType);\n roomEngine.instance?.stopPlayRemoteVideo({\n userId,\n streamType,\n });\n }\n }\n};\n\n// 麦位变化\nconst onSeatListChanged = (eventInfo:\n { seatList: TUISeatInfo[], seatedList: TUISeatInfo[], leftList: TUISeatInfo[] }) => {\n const { seatList, seatedList, leftList } = eventInfo;\n roomStore.updateOnSeatList(seatList, seatedList, leftList);\n const leftUserIdList = leftList.map(item => item.userId);\n // 最大屏用户下麦时,需要更换最大屏用户\n if (enlargeStream.value && leftUserIdList.includes(enlargeStream.value?.userId)) {\n handleLargeStreamLeave();\n }\n};\n\n// 远端用户离开\nconst onRemoteUserLeaveRoom = (eventInfo: { userInfo: TUIUserInfo }) => {\n const { userInfo: { userId } } = eventInfo;\n roomStore.removeRemoteUser(userId);\n if (userId === enlargeStream.value?.userId) {\n handleLargeStreamLeave();\n }\n};\n\n// 处理大窗口流离开\nconst handleLargeStreamLeave = () => {\n if (roomStore.remoteStreamList.length === 0) {\n basicStore.setLayout(LAYOUT.NINE_EQUAL_POINTS);\n enlargeStream.value = null;\n } else {\n [enlargeStream.value] = roomStore.remoteStreamList;\n }\n};\n\n// 处理侧边栏&顶部栏的视频懒加载\nconst handleStreamContainerScroll = async () => {\n const childDom = streamListRef.value.children[0];\n // 添加 nextTick 处理顶部栏模式下新增用户触发 scroll,但是拿到的 streamListRef.value.offsetWidth 还没有更新的问题\n await nextTick();\n\n // 从第几个\n let index = 0;\n let finalIndex = 0;\n // 可视区域有几个\n let number = 0;\n\n if (layout.value === LAYOUT.RIGHT_SIDE_LIST) {\n const firstChildHeight = childDom.offsetHeight + 10;\n const normalChildHeight = childDom.offsetHeight + 14;\n const streamListRefEnd = streamListRef.value.scrollTop + streamListRef.value.offsetHeight;\n index = Math.floor((streamListRef.value.scrollTop - firstChildHeight) / normalChildHeight) + 1;\n finalIndex = Math.ceil((streamListRefEnd - firstChildHeight) / normalChildHeight) + 1;\n } else if (layout.value === LAYOUT.TOP_SIDE_LIST) {\n const firstChildWidth = childDom.offsetWidth;\n const normalChildWidth = childDom.offsetWidth + 14;\n const streamListRefEnd = streamListRef.value.scrollLeft + streamListRef.value.offsetWidth;\n index = Math.floor((streamListRef.value.scrollLeft - firstChildWidth) / normalChildWidth) + 1;\n finalIndex = Math.ceil((streamListRefEnd - firstChildWidth) / normalChildWidth) + 1;\n }\n if (index < 0) {\n index = 0;\n }\n number = finalIndex - index;\n if (number > (showStreamList.value.length - index)) {\n number = showStreamList.value.length - index;\n }\n\n const streamUserIdList = [];\n [...new Array(number)].forEach(() => {\n const currentStreamId = `${showStreamList.value[index].userId}_${showStreamList.value[index].streamType}`;\n streamUserIdList.push(currentStreamId);\n index = index + 1;\n });\n streamUserIdList.push(enlargeDomId.value);\n\n // 修改对应的 streamInfo 的 isVisible 为 true\n roomStore.updateUserStreamVisible(streamUserIdList);\n};\n\nconst handleStreamContainerScrollDebounce = debounce(handleStreamContainerScroll, 300);\n\nonMounted(() => {\n streamListRef.value.addEventListener('scroll', handleStreamContainerScrollDebounce);\n});\n\nonUnmounted(() => {\n streamListRef.value && streamListRef.value.removeEventListener('scroll', handleStreamContainerScrollDebounce);\n});\n\nTUIRoomEngine.once('ready', () => {\n roomEngine.instance?.on(TUIRoomEvents.onRemoteUserEnterRoom, onRemoteUserEnterRoom);\n roomEngine.instance?.on(TUIRoomEvents.onRemoteUserLeaveRoom, onRemoteUserLeaveRoom);\n roomEngine.instance?.on(TUIRoomEvents.onSeatListChanged, onSeatListChanged);\n roomEngine.instance?.on(TUIRoomEvents.onUserVideoStateChanged, onUserVideoStateChanged);\n roomEngine.instance?.on(TUIRoomEvents.onUserAudioStateChanged, onUserAudioStateChanged);\n});\n\nonUnmounted(() => {\n roomEngine.instance?.off(TUIRoomEvents.onRemoteUserEnterRoom, onRemoteUserEnterRoom);\n roomEngine.instance?.off(TUIRoomEvents.onRemoteUserLeaveRoom, onRemoteUserLeaveRoom);\n roomEngine.instance?.off(TUIRoomEvents.onSeatListChanged, onSeatListChanged);\n roomEngine.instance?.off(TUIRoomEvents.onUserVideoStateChanged, onUserVideoStateChanged);\n roomEngine.instance?.off(TUIRoomEvents.onUserAudioStateChanged, onUserAudioStateChanged);\n});\n\nreturn { __sfc: true,logPrefix, onRemoteUserEnterRoom, onUserAudioStateChanged, t, roomEngine, streamStyle, enlargedStreamStyle, roomStore, streamList, streamNumber, remoteStreamList, basicStore, layout, showSideList, enlargeStream, enlargeDomId, currentPageIndex, showStreamList, showTurnPageControl, showTurnPageLeftArrow, showTurnPageRightArrow, handleTurnPageLeft, handleTurnPageRight, streamContainerClass, enlargedContainerRef, streamListRef, arrowClass, handleClickIcon, handleNineEqualPointsLayout, handleRightSideListLayout, handleTopSideListLayout, handleEnlargeStreamRegion, handleLayout, handleResize, showIconControl, onUserVideoStateChanged, onSeatListChanged, onRemoteUserLeaveRoom, handleLargeStreamLeave, handleStreamContainerScroll, handleStreamContainerScrollDebounce, StreamRegion, SvgIcon }\n}\n\n})","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./StreamContainerPC.vue?vue&type=script&setup=true&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./StreamContainerPC.vue?vue&type=script&setup=true&lang=ts&\"","import { render, staticRenderFns } from \"./StreamContainerPC.vue?vue&type=template&id=35d1e596&scoped=true&\"\nimport script from \"./StreamContainerPC.vue?vue&type=script&setup=true&lang=ts&\"\nexport * from \"./StreamContainerPC.vue?vue&type=script&setup=true&lang=ts&\"\nimport style0 from \"./StreamContainerPC.vue?vue&type=style&index=0&id=35d1e596&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"35d1e596\",\n null\n \n)\n\nexport default component.exports","import StreamContainerH5 from './StreamContainerH5.vue';\nimport StreamContainerPc from './StreamContainerPC.vue';\nimport { isMobile } from '../../../utils/useMediaValue';\n\nconst StreamContainer = isMobile ? StreamContainerH5 : StreamContainerPc;\n\nexport default StreamContainer;\n","import { defineComponent as _defineComponent } from 'vue'\nimport StreamContainer from './StreamContainer';\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'index',\n props: {\n showRoomTool: { type: Boolean }\n },\n setup(__props: any) {\n\n\n\nreturn { __sfc: true,StreamContainer }\n}\n\n})","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&setup=true&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&setup=true&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=f3be1146&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&setup=true&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&setup=true&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=f3be1146&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"f3be1146\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return (_setup.showSettingDialog)?_c('div',{staticClass:\"setting-dialog\"},[_c('div',{staticClass:\"dialog-tabs\"},[_c('span',{staticClass:\"dialog-title\"},[_vm._v(_vm._s(_setup.t('Settings')))]),_vm._l((_setup.settingTabsTitleList),function(item,index){return _c('div',{key:index,class:['tabs-title', `${_setup.activeSettingTab === item.value ? 'active' : ''}`],on:{\"click\":function($event){return _setup.handleUpdateActiveTab(item.value)}}},[_vm._v(\" \"+_vm._s(item.label)+\" \")])})],2),_c('div',{staticClass:\"divide-line\"}),_c('div',{staticClass:\"dialog-content\"},[(_setup.activeSettingTab === 'audio')?_c(_setup.AudioSettingTab,{attrs:{\"mode\":_setup.SettingMode.DETAIL}}):_vm._e(),(_setup.activeSettingTab === 'video')?_c(_setup.VideoSettingTab,{attrs:{\"mode\":_setup.SettingMode.DETAIL,\"with-preview\":true}}):_vm._e()],1),_c(_setup.SvgIcon,{staticClass:\"close-icon\",attrs:{\"icon-name\":\"close\",\"size\":\"medium\"},on:{\"click\":_setup.handleCloseSettingDialog}})],1):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { defineComponent as _defineComponent } from 'vue'\nimport SvgIcon from '../common/SvgIcon.vue';\nimport AudioSettingTab from '../base/AudioSettingTab.vue';\nimport VideoSettingTab from '../base/VideoSettingTab.vue';\nimport { useBasicStore } from '../../stores/basic';\nimport { storeToRefs } from 'pinia';\nimport { SettingMode } from '../../constants/render';\nimport { useI18n } from '../../locales';\nimport { computed } from 'vue';\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'index',\n setup(__props) {\n\n// import { ref } from 'vue';\nconst { t } = useI18n();\n\nconst basicStore = useBasicStore();\n\nconst { showSettingDialog, activeSettingTab } = storeToRefs(basicStore);\n\n/**\n * TODO: Refine the rest of the settings Tab\n *\n * TODO: 完善其余设置 Tab\n**/\nconst settingTabsTitleList = computed(() => [\n { label: t('Audio settings'), value: 'audio' },\n { label: t('Camera settings'), value: 'video' },\n // { label: '美颜和虚拟设置', value: 'beauty' },\n // { label: '统计功能', value: 'static' },\n // { label: '录制', value: 'record' },\n]);\n\nfunction handleUpdateActiveTab(tabTitle: string) {\n basicStore.setActiveSettingTab(tabTitle);\n}\n\nfunction handleCloseSettingDialog() {\n basicStore.setShowSettingDialog(false);\n}\n\n\nreturn { __sfc: true,t, basicStore, showSettingDialog, activeSettingTab, settingTabsTitleList, handleUpdateActiveTab, handleCloseSettingDialog, SvgIcon, AudioSettingTab, VideoSettingTab, SettingMode }\n}\n\n})","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&setup=true&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&setup=true&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=3d8c7752&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&setup=true&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&setup=true&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=3d8c7752&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3d8c7752\",\n null\n \n)\n\nexport default component.exports","import { defineComponent as _defineComponent } from 'vue'\nimport { ElMessage, ElMessageBox } from './elementComp';\nimport { ref, onMounted, onUnmounted, Ref, watch } from 'vue';\nimport { storeToRefs } from 'pinia';\nimport RoomHeader from './components/RoomHeader/index';\nimport RoomFooter from './components/RoomFooter/index';\nimport RoomSidebar from './components/RoomSidebar';\nimport RoomContent from './components/RoomContent/index.vue';\nimport RoomSetting from './components/RoomSetting/index.vue';\nimport { debounce, throttle } from './utils/utils';\nimport { useBasicStore } from './stores/basic';\nimport { useRoomStore } from './stores/room';\nimport { useChatStore } from './stores/chat';\nimport { isMobile, isWeChat } from './utils/useMediaValue';\nimport './directives/vTap';\nimport TUIRoomEngine, {\n TRTCVideoMirrorType,\n TRTCVideoRotation,\n TRTCVideoFillMode,\n TUIRoomEvents,\n TUIRoomType,\n TRTCDeviceType,\n TRTCDeviceState,\n TUISpeechMode,\n TUIKickedOutOfRoomReason,\n TRTCVideoResolution,\n TRTCVideoEncParam,\n TUIRole,\n} from '@tencentcloud/tuiroom-engine-js';\n\n\nimport TUIRoomAegis from './utils/aegis';\nimport { MESSAGE_DURATION } from './constants/message';\nimport { useI18n } from './locales';\n\nimport useGetRoomEngine from './hooks/useRoomEngine';\nimport logger from './utils/common/logger';\n\ninterface RoomParam {\n\tisOpenCamera: boolean,\n\tisOpenMicrophone: boolean,\n\tdefaultCameraId: string,\n\tdefaultMicrophoneId: string,\n\tdefaultSpeakerId: string,\n}\n\ninterface RoomInitData {\n sdkAppId: number,\n userId: string,\n userSig: string,\n userName: string,\n avatarUrl: string,\n showHeaderTool: boolean,\n theme?: {\n defaultTheme: 'black' | 'white',\n isSupportSwitchTheme: boolean,\n },\n}\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'index',\n emits: [\n 'on-log-out',\n 'on-create-room',\n 'on-enter-room',\n 'on-exit-room',\n 'on-destroy-room',\n // 用户被踢出房间\n 'on-kicked-out-of-room',\n // 用户被踢下线\n 'on-kicked-off-line',\n // 用户 userSig 过期\n 'on-userSig-expired',\n],\n setup(__props, { expose, emit }) {\n\nconst roomEngine = useGetRoomEngine();\nconst { t } = useI18n();\n\nexpose({\n init,\n createRoom,\n enterRoom,\n dismissRoom,\n leaveRoom,\n resetStore,\n t,\n});\n\n\n\nconst logPrefix = '[Room]';\n\nconst basicStore = useBasicStore();\nconst roomStore = useRoomStore();\nconst chatStore = useChatStore();\n\nconst { sdkAppId, showHeaderTool, } = storeToRefs(basicStore);\nconst { localUser } = storeToRefs(roomStore);\n\n/**\n * Handle page mouse hover display toolbar logic\n *\n * 处理页面鼠标悬浮显示工具栏逻辑\n**/\nconst roomContentRef = ref>();\nconst showRoomTool: Ref = ref(true);\nconst roomRef: Ref = ref();\nfunction handleHideRoomTool() {\n showRoomTool.value = false;\n}\n\nconst handleHideRoomToolDebounce = debounce(handleHideRoomTool, 5000);\nconst handleHideRoomToolThrottle = throttle(handleHideRoomToolDebounce, 1000);\n\nconst smallParam = new TRTCVideoEncParam();\nsmallParam.videoResolution = TRTCVideoResolution.TRTCVideoResolution_640_360;\nsmallParam.videoFps = 10;\nsmallParam.videoBitrate = 550;\n\n// PC 端处理 room 控制栏交互\nif (!isWeChat && !isMobile) {\n onMounted(() => {\n roomRef.value?.addEventListener('mouseenter', () => {\n showRoomTool.value = true;\n handleHideRoomToolDebounce();\n });\n roomRef.value?.addEventListener('click', () => {\n showRoomTool.value = true;\n handleHideRoomToolDebounce();\n }, false);\n roomRef.value?.addEventListener('mousemove', () => {\n showRoomTool.value = true;\n handleHideRoomToolThrottle();\n });\n roomRef.value?.addEventListener('mouseleave', () => {\n showRoomTool.value = false;\n });\n });\n onUnmounted(() => {\n roomRef.value?.removeEventListener('mouseenter', () => {\n showRoomTool.value = true;\n handleHideRoomToolDebounce();\n });\n roomRef.value?.removeEventListener('click', () => {\n showRoomTool.value = true;\n handleHideRoomToolDebounce();\n }, false);\n roomRef.value?.removeEventListener('mousemove', () => {\n showRoomTool.value = true;\n handleHideRoomToolThrottle();\n });\n roomRef.value?.removeEventListener('mouseleave', () => {\n showRoomTool.value = false;\n });\n });\n}\n\n// H5 及小程序端处理 room 控制栏交互\nfunction handleRoomContentTap() {\n showRoomTool.value = !showRoomTool.value;\n if (showRoomTool.value) {\n handleHideRoomToolDebounce();\n }\n}\n\nonMounted(async () => {\n const defaults = basicStore.defaultTheme;\n const storageCurrentTheme = localStorage.getItem('tuiRoom-currentTheme') || defaults;\n basicStore.setDefaultTheme(storageCurrentTheme);\n document.body.setAttribute('data-theme', storageCurrentTheme);\n if (isMobile) {\n const trtcCloud = roomEngine.instance?.getTRTCCloud();\n await trtcCloud?.setLocalRenderParams({\n mirrorType: TRTCVideoMirrorType.TRTCVideoMirrorType_Auto,\n rotation: TRTCVideoRotation.TRTCVideoRotation0,\n fillMode: TRTCVideoFillMode.TRTCVideoFillMode_Fill,\n });\n }\n});\n\n\nasync function dismissRoom() {\n try {\n logger.log(`${logPrefix}dismissRoom: enter`);\n await closeMediaBeforeLeave();\n await roomEngine.instance?.destroyRoom();\n emit('on-destroy-room');\n } catch (error) {\n logger.error(`${logPrefix}dismissRoom error:`, error);\n }\n}\n\nasync function leaveRoom() {\n try {\n await closeMediaBeforeLeave();\n const response = await roomEngine.instance?.exitRoom();\n emit('on-exit-room');\n logger.log(`${logPrefix}leaveRoom:`, response);\n } catch (error) {\n logger.error(`${logPrefix}leaveRoom error:`, error);\n }\n}\n\nasync function closeMediaBeforeLeave() {\n if (localUser.value.hasAudioStream) {\n await roomEngine.instance?.closeLocalMicrophone();\n }\n if (localUser.value.hasVideoStream) {\n await roomEngine.instance?.closeLocalCamera();\n }\n}\n\nasync function init(option: RoomInitData) {\n basicStore.setBasicInfo(option);\n roomStore.setLocalUser(option);\n const { sdkAppId, userId, userSig, userName, avatarUrl } = option;\n await TUIRoomEngine.login({ sdkAppId, userId, userSig });\n debugger\n await TUIRoomEngine.setSelfInfo({ userName, avatarUrl });\n}\n\nasync function createRoom(options: {\n roomId: string,\n roomName: string,\n roomMode: 'FreeToSpeak' | 'SpeakAfterTakingSeat',\n roomParam?: RoomParam,\n}) {\n const { roomId, roomName, roomMode, roomParam } = options;\n try {\n if (!roomEngine.instance) {\n return;\n }\n basicStore.setRoomId(roomId);\n logger.debug(`${logPrefix}createRoom:`, roomId, roomMode, roomParam);\n const roomParams = {\n roomId,\n name: roomName,\n roomType: TUIRoomType.kConference,\n };\n if (roomMode === 'FreeToSpeak') {\n Object.assign(roomParams, {\n speechMode: TUISpeechMode.kFreeToSpeak,\n });\n } else {\n Object.assign(roomParams, {\n speechMode: TUISpeechMode.kSpeakAfterTakingSeat,\n });\n }\n await roomEngine.instance?.createRoom(roomParams);\n emit('on-create-room', {\n code: 0,\n message: 'create room success',\n });\n const trtcCloud = roomEngine.instance?.getTRTCCloud();\n trtcCloud.setDefaultStreamRecvMode(true, false);\n trtcCloud.enableSmallVideoStream(true, smallParam);\n const roomInfo = await roomEngine.instance?.enterRoom({ roomId });\n emit('on-enter-room', {\n code: 0,\n message: 'enter room success',\n });\n roomStore.setRoomInfo(roomInfo);\n // 申请发言模式房主上麦\n if (roomInfo.speechMode === TUISpeechMode.kSpeakAfterTakingSeat) {\n await roomEngine.instance?.takeSeat({ seatIndex: -1, timeout: 0 });\n }\n\n await getUserList();\n /**\n * setRoomParam must come after setRoomInfo,because roomInfo contains information\n * about whether or not to turn on the no-mac ban.\n *\n * setRoomParam 必须在 setRoomInfo 之后,因为 roomInfo 中有是否开启全员禁麦禁画的信息\n **/\n roomStore.setRoomParam(roomParam);\n TUIRoomAegis.reportEvent({ name: 'createRoom', ext1: 'createRoom-success' });\n } catch (error) {\n logger.error(`${logPrefix}createRoom error:`, error);\n basicStore.reset();\n throw error;\n }\n}\n\nasync function enterRoom(options: {roomId: string, roomParam?: RoomParam }) {\n const { roomId, roomParam } = options;\n try {\n if (!roomEngine.instance) {\n return;\n }\n basicStore.setRoomId(roomId);\n logger.debug(`${logPrefix}enterRoom:`, roomId, roomParam);\n const trtcCloud = roomEngine.instance?.getTRTCCloud();\n trtcCloud.setDefaultStreamRecvMode(true, false);\n trtcCloud.enableSmallVideoStream(true, smallParam);\n const roomInfo = await roomEngine.instance?.enterRoom({ roomId });\n roomStore.setRoomInfo(roomInfo);\n await getUserList();\n /**\n * setRoomParam must come after setRoomInfo,because roomInfo contains information\n * about whether or not to turn on the no-mac ban.\n *\n * setRoomParam 必须在 setRoomInfo 之后,因为 roomInfo 中有是否开启全员禁麦禁画的信息\n **/\n roomStore.setRoomParam(roomParam);\n emit('on-enter-room', {\n code: 0,\n message: 'enter room success',\n });\n TUIRoomAegis.reportEvent({ name: 'enterRoom', ext1: 'enterRoom-success' });\n } catch (error) {\n logger.error(`${logPrefix}enterRoom error:`, error);\n basicStore.reset();\n throw error;\n }\n}\n\nasync function getUserList() {\n try {\n const { userInfoList } = await roomEngine.instance?.getUserList() as any;\n roomStore.setUserList(userInfoList);\n } catch (error: any) {\n logger.error('TUIRoomEngine.getUserList', error.code, error.message);\n }\n}\n\nconst onUserVoiceVolumeChanged = (eventInfo: { userVolumeList: []}) => {\n const { userVolumeList } = eventInfo;\n roomStore.setAudioVolume(userVolumeList);\n};\n\nconst onUserNetworkQualityChanged = (eventInfo: { userNetworkList: [] }) => {\n basicStore.setLocalQuality(eventInfo.userNetworkList);\n};\n\n// To do 临时注释,待放开\n// const onStatistics = (statistics: TRTCStatistics) => {\n// basicStore.setStatistics(statistics);\n// };\n\nfunction resetStore() {\n basicStore.reset();\n chatStore.reset();\n roomStore.reset();\n}\n\nconst logOut = () => {\n resetStore();\n emit('on-log-out');\n};\n\nconst onDestroyRoom = (info: { code: number; message: string }) => {\n resetStore();\n emit('on-destroy-room', info);\n};\n\nconst onExitRoom = (info: { code: number; message: string }) => {\n resetStore();\n emit('on-exit-room', info);\n};\n\nconst onError = (error: any) => {\n logger.error('roomEngine.onError: ', error);\n};\n\nconst onSendMessageForUserDisableChanged = (data: { userId: string, isDisable: boolean }) => {\n const { userId, isDisable } = data;\n if (userId === localUser.value.userId) {\n const tipMessage = isDisable ? t('You have been banned from text chat by the host') : t('You are allowed to text chat by the host');\n ElMessage({\n type: 'warning',\n message: tipMessage,\n duration: MESSAGE_DURATION.NORMAL,\n });\n chatStore.setSendMessageDisableChanged(isDisable);\n }\n};\n\nconst onKickedOutOfRoom = async (eventInfo: { roomId: string, reason: TUIKickedOutOfRoomReason, message: string }) => {\n const { roomId, reason, message } = eventInfo;\n try {\n resetStore();\n let notice = '';\n switch (reason) {\n case TUIKickedOutOfRoomReason.kKickedByAdmin:\n notice = t('kicked out of the room by the host');\n break;\n case TUIKickedOutOfRoomReason.kKickedByLoggedOnOtherDevice:\n notice = t('kicked out of the room by other device');\n break;\n case TUIKickedOutOfRoomReason.kKickedByServer:\n notice = t('kicked out of the room by serve');\n break;\n }\n ElMessageBox.alert(notice, t('Note'), {\n confirmButtonText: t('Confirm'),\n customClass: 'custom-element-class',\n appendTo: '#roomContainer',\n callback: async () => {\n emit('on-kicked-out-of-room', { roomId, reason, message });\n },\n });\n } catch (error) {\n logger.error(`${logPrefix}onKickedOutOfRoom error:`, error);\n }\n};\n\nconst onUserSigExpired = () => {\n ElMessageBox.alert('userSig 已过期', t('Note'), {\n confirmButtonText: t('Confirm'),\n customClass: 'custom-element-class',\n appendTo: '#roomContainer',\n callback: async () => {\n emit('on-userSig-expired');\n },\n });\n};\n\nconst onKickedOffLine = (eventInfo: { message: string }) => {\n const { message } = eventInfo;\n ElMessageBox.alert('系统检测到您的账号被踢下线', t('Note'), {\n confirmButtonText: t('Confirm'),\n customClass: 'custom-element-class',\n appendTo: '#roomContainer',\n callback: async () => {\n emit('on-kicked-off-line', { message });\n },\n });\n};\n\n// todo: 处理禁言所有人和禁画所有人\nasync function handleAudioStateChange(isDisableAudio: boolean) {\n const tipMessage = isDisableAudio ? t('The host has muted all') : t('The host has unmuted all');\n ElMessage({\n type: 'warning',\n message: tipMessage,\n duration: MESSAGE_DURATION.NORMAL,\n });\n /**\n * If the host lifts the full ban and does not actively turn up the user microphone\n *\n * 如果主持人解除全员禁言,不主动调起用户麦克风\n **/\n if (isDisableAudio) {\n await roomEngine.instance?.closeLocalMicrophone();\n }\n}\n\nasync function handleVideoStateChange(isDisableVideo: boolean) {\n const tipMessage = isDisableVideo ? t('The host has turned on the ban on all paintings') : t('The host has lifted the ban on all paintings');\n ElMessage({\n type: 'warning',\n message: tipMessage,\n duration: MESSAGE_DURATION.NORMAL,\n });\n /**\n * If the host lifts the full ban on drawing and does not actively turn up the user camera\n *\n * 如果主持人解除全员禁画,不主动调起用户摄像头\n **/\n if (isDisableVideo) {\n await roomEngine.instance?.closeLocalCamera();\n }\n}\n\nasync function handleMessageStateChange(isDisableMessage: boolean) {\n const tipMessage = isDisableMessage ? t('The host has turned on the ban on all chat') : t('The host has lifted the ban on all chat');\n ElMessage({\n type: 'warning',\n message: tipMessage,\n duration: MESSAGE_DURATION.NORMAL,\n });\n}\n\nconst onAllUserCameraDisableChanged = async (eventInfo: { roomId: string, isDisable: boolean }) => {\n const { isDisable } = eventInfo;\n if (isDisable !== roomStore.isCameraDisableForAllUser && localUser.value.userRole === TUIRole.kGeneralUser) {\n handleVideoStateChange(isDisable);\n roomStore.setCanControlSelfVideo(!isDisable);\n }\n roomStore.setDisableCameraForAllUserByAdmin(isDisable);\n};\n\nconst onAllUserMicrophoneDisableChanged = async (eventInfo: { roomId: string, isDisable: boolean }) => {\n const { isDisable } = eventInfo;\n if (isDisable !== roomStore.isMicrophoneDisableForAllUser && localUser.value.userRole === TUIRole.kGeneralUser) {\n handleAudioStateChange(isDisable);\n roomStore.setCanControlSelfAudio(!isDisable);\n }\n roomStore.setDisableMicrophoneForAllUserByAdmin(isDisable);\n};\n\nconst onSendMessageForAllUserDisableChanged = async (eventInfo: { roomId: string, isDisable: boolean}) => {\n const { isDisable } = eventInfo;\n if (isDisable !== roomStore.isMessageDisableForAllUser && localUser.value.userRole === TUIRole.kGeneralUser) {\n handleMessageStateChange(isDisable);\n }\n roomStore.setDisableMessageAllUserByAdmin(isDisable);\n};\n// 初始化获取设备列表\nasync function getMediaDeviceList() {\n const cameraList = await roomEngine.instance?.getCameraDevicesList();\n const microphoneList = await roomEngine.instance?.getMicDevicesList();\n const speakerList = await roomEngine.instance?.getSpeakerDevicesList();\n cameraList && roomStore.setCameraList(cameraList);\n microphoneList && roomStore.setMicrophoneList(microphoneList);\n speakerList && roomStore.setSpeakerList(speakerList);\n\n const cameraInfo = roomEngine.instance?.getCurrentCameraDevice();\n const micInfo = roomEngine.instance?.getCurrentMicDevice();\n const speakerInfo = roomEngine.instance?.getCurrentSpeakerDevice();\n if (cameraInfo && cameraInfo.deviceId) {\n roomStore.setCurrentCameraId(cameraInfo.deviceId);\n }\n if (micInfo && micInfo.deviceId) {\n roomStore.setCurrentMicrophoneId(micInfo.deviceId);\n }\n if (speakerInfo && speakerInfo.deviceId) {\n roomStore.setCurrentSpeakerId(speakerInfo.deviceId);\n }\n}\n\n/**\n * Device changes: device switching, device plugging and unplugging events\n *\n * 设备变化:设备切换、设备插拔事件\n**/\nasync function onDeviceChange(eventInfo: {deviceId: string, type: number, state: number}) {\n const stateList = ['add', 'remove', 'active'];\n const { deviceId, type, state } = eventInfo;\n if (type === TRTCDeviceType.TRTCDeviceTypeMic) {\n logger.log(`onDeviceChange: deviceId: ${deviceId}, type: microphone, state: ${stateList[state]}`);\n const deviceList = await roomEngine.instance?.getMicDevicesList();\n deviceList && roomStore.setMicrophoneList(deviceList);\n if (state === TRTCDeviceState.TRTCDeviceStateActive) {\n roomStore.setCurrentMicrophoneId(deviceId);\n }\n return;\n }\n if (type === TRTCDeviceType.TRTCDeviceTypeSpeaker) {\n logger.log(`onDeviceChange: deviceId: ${deviceId}, type: speaker, state: ${stateList[state]}`);\n const deviceList = await roomEngine.instance?.getSpeakerDevicesList();\n deviceList && roomStore.setSpeakerList(deviceList);\n if (state === TRTCDeviceState.TRTCDeviceStateActive) {\n roomStore.setCurrentSpeakerId(deviceId);\n }\n return;\n }\n if (type === TRTCDeviceType.TRTCDeviceTypeCamera) {\n logger.log(`onDeviceChange: deviceId: ${deviceId}, type: camera, state: ${stateList[state]}`);\n const deviceList = await roomEngine.instance?.getCameraDevicesList();\n deviceList && roomStore.setCameraList(deviceList);\n if (state === TRTCDeviceState.TRTCDeviceStateActive) {\n roomStore.setCurrentCameraId(deviceId);\n }\n }\n}\n\nTUIRoomEngine.once('ready', () => {\n roomEngine.instance?.on(TUIRoomEvents.onError, onError);\n roomEngine.instance?.on(TUIRoomEvents.onUserVoiceVolumeChanged, onUserVoiceVolumeChanged);\n roomEngine.instance?.on(TUIRoomEvents.onUserNetworkQualityChanged, onUserNetworkQualityChanged);\n roomEngine.instance?.on(TUIRoomEvents.onKickedOutOfRoom, onKickedOutOfRoom);\n roomEngine.instance?.on(TUIRoomEvents.onSendMessageForUserDisableChanged, onSendMessageForUserDisableChanged);\n roomEngine.instance?.on(TUIRoomEvents.onUserSigExpired, onUserSigExpired);\n roomEngine.instance?.on(TUIRoomEvents.onKickedOffLine, onKickedOffLine);\n roomEngine.instance?.on(TUIRoomEvents.onAllUserCameraDisableChanged, onAllUserCameraDisableChanged);\n roomEngine.instance?.on(TUIRoomEvents.onAllUserMicrophoneDisableChanged, onAllUserMicrophoneDisableChanged);\n roomEngine.instance?.on(TUIRoomEvents.onSendMessageForAllUserDisableChanged, onSendMessageForAllUserDisableChanged);\n roomEngine.instance?.on(TUIRoomEvents.onDeviceChange, onDeviceChange);\n getMediaDeviceList();\n});\n\nonUnmounted(() => {\n roomEngine.instance?.off(TUIRoomEvents.onError, onError);\n roomEngine.instance?.off(TUIRoomEvents.onUserVoiceVolumeChanged, onUserVoiceVolumeChanged);\n roomEngine.instance?.off(TUIRoomEvents.onUserNetworkQualityChanged, onUserNetworkQualityChanged);\n roomEngine.instance?.off(TUIRoomEvents.onKickedOutOfRoom, onKickedOutOfRoom);\n roomEngine.instance?.off(TUIRoomEvents.onSendMessageForUserDisableChanged, onSendMessageForUserDisableChanged);\n roomEngine.instance?.off(TUIRoomEvents.onUserSigExpired, onUserSigExpired);\n roomEngine.instance?.off(TUIRoomEvents.onKickedOffLine, onKickedOffLine);\n roomEngine.instance?.off(TUIRoomEvents.onAllUserCameraDisableChanged, onAllUserCameraDisableChanged);\n roomEngine.instance?.off(TUIRoomEvents.onAllUserMicrophoneDisableChanged, onAllUserMicrophoneDisableChanged);\n roomEngine.instance?.off(TUIRoomEvents.onSendMessageForAllUserDisableChanged, onSendMessageForAllUserDisableChanged);\n roomEngine.instance?.off(TUIRoomEvents.onDeviceChange, onDeviceChange);\n});\n\nwatch(sdkAppId, (val: number) => {\n if (val) {\n TUIRoomAegis.setSdkAppId(val);\n TUIRoomAegis.reportEvent({\n name: 'loaded',\n ext1: 'loaded-success',\n });\n }\n});\n\nreturn { __sfc: true,roomEngine, t, emit, logPrefix, basicStore, roomStore, chatStore, sdkAppId, showHeaderTool, localUser, roomContentRef, showRoomTool, roomRef, handleHideRoomTool, handleHideRoomToolDebounce, handleHideRoomToolThrottle, smallParam, handleRoomContentTap, dismissRoom, leaveRoom, closeMediaBeforeLeave, init, createRoom, enterRoom, getUserList, onUserVoiceVolumeChanged, onUserNetworkQualityChanged, resetStore, logOut, onDestroyRoom, onExitRoom, onError, onSendMessageForUserDisableChanged, onKickedOutOfRoom, onUserSigExpired, onKickedOffLine, handleAudioStateChange, handleVideoStateChange, handleMessageStateChange, onAllUserCameraDisableChanged, onAllUserMicrophoneDisableChanged, onSendMessageForAllUserDisableChanged, getMediaDeviceList, onDeviceChange, RoomHeader, RoomFooter, RoomSidebar, RoomContent, RoomSetting }\n}\n\n})","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&setup=true&lang=ts&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&setup=true&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=7c957b1c&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&setup=true&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&setup=true&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=7c957b1c&prod&lang=css&\"\nimport style1 from \"./index.vue?vue&type=style&index=1&id=7c957b1c&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7c957b1c\",\n null\n \n)\n\nexport default component.exports","\n \n\n\n\n\n\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./room.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./room.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./room.vue?vue&type=template&id=815ba35e&\"\nimport script from \"./room.vue?vue&type=script&lang=js&\"\nexport * from \"./room.vue?vue&type=script&lang=js&\"\nimport style0 from \"./room.vue?vue&type=style&index=0&id=815ba35e&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports"],"names":["render","_vm","this","_c","_self","ref","on","handleLogOut","onCreateRoom","onEnterRoom","onExitRoom","onDestroyRoom","onKickedOutOfRoom","onKickedOffLine","onUserSigExpired","staticRenderFns","bind","fn","thisArg","apply","arguments","toString","Object","prototype","getPrototypeOf","kindOf","cache","thing","str","call","slice","toLowerCase","create","kindOfTest","type","typeOfTest","isArray","Array","isUndefined","isBuffer","val","constructor","isFunction","isArrayBuffer","isArrayBufferView","result","ArrayBuffer","isView","buffer","isString","isNumber","isObject","isBoolean","isPlainObject","Symbol","toStringTag","iterator","isDate","isFile","isBlob","isFileList","isStream","pipe","isFormData","kind","FormData","append","isURLSearchParams","trim","replace","forEach","obj","allOwnKeys","i","l","length","keys","getOwnPropertyNames","len","key","findKey","_key","_global","globalThis","self","window","global","isContextDefined","context","merge","caseless","assignValue","targetKey","extend","a","b","stripBOM","content","charCodeAt","inherits","superConstructor","props","descriptors","defineProperty","value","assign","toFlatObject","sourceObj","destObj","filter","propFilter","prop","merged","endsWith","searchString","position","String","undefined","lastIndex","indexOf","toArray","arr","isTypedArray","TypedArray","Uint8Array","forEachEntry","generator","next","done","pair","matchAll","regExp","matches","exec","push","isHTMLForm","toCamelCase","m","p1","p2","toUpperCase","hasOwnProperty","isRegExp","reduceDescriptors","reducer","getOwnPropertyDescriptors","reducedDescriptors","descriptor","name","ret","defineProperties","freezeMethods","enumerable","writable","set","Error","toObjectSet","arrayOrString","delimiter","define","split","noop","toFiniteNumber","defaultValue","Number","isFinite","ALPHA","DIGIT","ALPHABET","ALPHA_DIGIT","generateString","size","alphabet","Math","random","isSpecCompliantForm","toJSONObject","stack","visit","source","target","reducedValue","isAsyncFn","isThenable","then","catch","hasOwnProp","AxiosError","message","code","config","request","response","captureStackTrace","utils","toJSON","description","number","fileName","lineNumber","columnNumber","status","from","error","customProps","axiosError","cause","isVisitable","removeBrackets","renderKey","path","dots","concat","map","token","join","isFlatArray","some","predicates","test","toFormData","formData","options","TypeError","PlatformFormData","metaTokens","indexes","option","visitor","defaultVisitor","_Blob","Blob","useBlob","convertValue","toISOString","Buffer","JSON","stringify","el","index","exposedHelpers","build","pop","encode","charMap","encodeURIComponent","match","AxiosURLSearchParams","params","_pairs","encoder","_encode","buildURL","url","serializeFn","serialize","serializedParams","hashmarkIndex","InterceptorManager","handlers","use","fulfilled","rejected","synchronous","runWhen","eject","id","clear","h","silentJSONParsing","forcedJSONParsing","clarifyTimeoutError","URLSearchParams","isStandardBrowserEnv","product","navigator","document","isStandardBrowserWebWorkerEnv","WorkerGlobalScope","importScripts","isBrowser","classes","protocols","toURLEncodedForm","data","platform","helpers","parsePropPath","arrayToObject","formDataToJSON","buildPath","isNumericKey","isLast","entries","stringifySafely","rawValue","parser","parse","e","defaults","transitional","transitionalDefaults","adapter","transformRequest","headers","contentType","getContentType","hasJSONContentType","isObjectPayload","setContentType","formSerializer","_FormData","env","transformResponse","JSONRequested","responseType","strictJSONParsing","timeout","xsrfCookieName","xsrfHeaderName","maxContentLength","maxBodyLength","validateStatus","common","method","ignoreDuplicateOf","rawHeaders","parsed","line","substring","$internals","normalizeHeader","header","normalizeValue","parseTokens","tokens","tokensRE","isValidHeaderName","matchHeaderValue","isHeaderNameFilter","formatHeader","w","char","buildAccessors","accessorName","methodName","arg1","arg2","arg3","configurable","AxiosHeaders","valueOrRewrite","rewrite","setHeader","_value","_header","_rewrite","lHeader","setHeaders","parseHeaders","get","has","matcher","delete","deleted","deleteHeader","normalize","format","normalized","targets","asStrings","static","first","computed","internals","accessors","defineAccessor","accessor","mapped","headerValue","transformData","fns","isCancel","__CANCEL__","CanceledError","settle","resolve","reject","floor","write","expires","domain","secure","cookie","Date","toGMTString","read","RegExp","decodeURIComponent","remove","now","isAbsoluteURL","combineURLs","baseURL","relativeURL","buildFullPath","requestedURL","msie","userAgent","urlParsingNode","createElement","originURL","resolveURL","href","setAttribute","protocol","host","search","hash","hostname","port","pathname","charAt","location","requestURL","parseProtocol","speedometer","samplesCount","min","bytes","timestamps","firstSampleTS","head","tail","chunkLength","startedAt","bytesCount","passed","round","progressEventReducer","listener","isDownloadStream","bytesNotified","_speedometer","loaded","total","lengthComputable","progressBytes","rate","inRange","progress","estimated","event","isXHRAdapterSupported","XMLHttpRequest","Promise","requestData","requestHeaders","onCanceled","cancelToken","unsubscribe","signal","removeEventListener","auth","username","password","unescape","btoa","fullPath","onloadend","responseHeaders","getAllResponseHeaders","responseData","responseText","statusText","err","open","paramsSerializer","onreadystatechange","readyState","responseURL","setTimeout","onabort","onerror","ontimeout","timeoutErrorMessage","xsrfValue","withCredentials","isURLSameOrigin","cookies","setRequestHeader","onDownloadProgress","addEventListener","onUploadProgress","upload","cancel","abort","subscribe","aborted","send","knownAdapters","http","httpAdapter","xhr","xhrAdapter","renderReason","reason","isResolvedHandle","getAdapter","adapters","nameOrAdapter","rejectedReasons","reasons","state","s","throwIfCancellationRequested","throwIfRequested","dispatchRequest","headersToObject","mergeConfig","config1","config2","getMergedValue","mergeDeepProperties","valueFromConfig2","defaultToConfig2","mergeDirectKeys","mergeMap","timeoutMessage","decompress","beforeRedirect","transport","httpAgent","httpsAgent","socketPath","responseEncoding","configValue","VERSION","validators","deprecatedWarnings","assertOptions","schema","allowUnknown","opt","validator","version","formatMessage","desc","opts","console","warn","Axios","instanceConfig","interceptors","configOrUrl","boolean","function","contextHeaders","requestInterceptorChain","synchronousRequestInterceptors","interceptor","unshift","responseInterceptorChain","promise","chain","newConfig","onFulfilled","onRejected","getUri","generateHTTPMethod","isForm","CancelToken","executor","resolvePromise","_listeners","onfulfilled","_resolve","splice","c","spread","callback","isAxiosError","payload","HttpStatusCode","Continue","SwitchingProtocols","Processing","EarlyHints","Ok","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlreadyReported","ImUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","Unused","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthorized","PaymentRequired","Forbidden","NotFound","MethodNotAllowed","NotAcceptable","ProxyAuthenticationRequired","RequestTimeout","Conflict","Gone","LengthRequired","PreconditionFailed","PayloadTooLarge","UriTooLong","UnsupportedMediaType","RangeNotSatisfiable","ExpectationFailed","ImATeapot","MisdirectedRequest","UnprocessableEntity","Locked","FailedDependency","TooEarly","UpgradeRequired","PreconditionRequired","TooManyRequests","RequestHeaderFieldsTooLarge","UnavailableForLegalReasons","InternalServerError","NotImplemented","BadGateway","ServiceUnavailable","GatewayTimeout","HttpVersionNotSupported","VariantAlsoNegotiates","InsufficientStorage","LoopDetected","NotExtended","NetworkAuthenticationRequired","createInstance","defaultConfig","instance","axios","Cancel","all","promises","formToJSON","default","_setup","_setupProxy","staticClass","attrs","RoomHeader","directives","rawName","showRoomTool","showHeaderTool","expression","logOut","RoomContent","handleRoomContentTap","RoomFooter","RoomSidebar","RoomSetting","SwitchCamera","SwitchMirror","RoomInfo","EndControl","stopMeeting","_v","_s","t","visible","class","isShowLeaveRoomDialog","currentDialogType","DialogType","BasicDialog","roomStore","isMaster","_e","$event","stopPropagation","dismissRoom","leaveRoom","TransferDialog","popup","showSideBar","scopedSlots","_u","staticStyle","searchName","domProps","composing","_l","filteredList","user","userId","handleShowMemberControl","Avatar","avatarUrl","userName","selectedUser","SvgIcon","hasNoData","proxy","transferAndLeave","useEndControl","useI18n","logPrefix","roomEngine","useGetRoomEngine","basicStore","useBasicStore","logger","useRoomStore","localUser","remoteAnchorList","storeToRefs","title","isSidebarOpen","sidebarName","showTransfer","searchUser","includes","toggleMangeMemberSidebar","setSidebarOpenStatus","setSidebarName","resetState","async","closeMediaBeforeLeave","hasAudioStream","closeLocalMicrophone","hasVideoStream","closeLocalCamera","handleClose","_t","_defineComponent","__name","setup","__props","__sfc","component","emits","emit","destroyRoom","exitRoom","changeUserRoleResponse","changeUserRole","userRole","TUIRole","exitRoomResponse","onRoomDismissed","roomId","eventInfo","ElMessageBox","customClass","confirmButtonText","appendTo","onUserRoleChanged","newName","getUserName","tipMessage","ElMessage","setLocalUser","setRemoteUserRole","setMasterUserId","isAnchor","isSpeakAfterTakingSeatMode","takeSeat","seatIndex","TUIRoomEngine","TUIRoomEvents","onUnmounted","off","Dialog","model","$$v","isMobile","EndControlH5","EndControlPC","handleSwitchCamera","backgroundSize","isFrontCamera","switchCamera","setIsFrontCamera","toogleMirrorStatus","trtcCloud","getTRTCCloud","setLocalRenderParams","mirrorType","isLocalStreamMirror","TRTCVideoMirrorType","rotation","TRTCVideoRotation","fillMode","TRTCVideoFillMode","setIsLocalStreamMirror","isShowRoomInfoTitle","toggleShowRoomInfoStatus","conferenceTitle","isShowRoomInfo","handleHiddenRoomInfo","masterUserName","roomType","onCopy","isWeChat","inviteLink","masterUserId","roomInfoRef","isFreeSpeakMode","origin","clipBoard","handleDocumentClick","contains","onMounted","IS_LOCAL","IS_OFFICIAL_DEMO","isUploadLoaded","isUploadDetailEvent","aegisId","projectName","aegis","script","src","getElementsByTagName","appendChild","onload","Aegis","uin","reportApiSpeed","reportAssetSpeed","spa","roomAegis","storedReportEventList","reportEvent","TUIRoomAegis","setSdkAppId","sdkAppId","eventName","ext1","eventDesc","uploadData","ext2","ext3","hasUploadedEventList","info","UserInfo","showHeaderInfo","$emit","Language","SwitchTheme","LayoutControl","streamNumber","handleClickLayoutIcon","showLayoutList","layout","LAYOUT","NINE_EQUAL_POINTS","handleClick","fill","item","RIGHT_SIDE_LIST","TOP_SIDE_LIST","layoutList","setLayout","Boolean","indexH5","indexPC","AudioControl","handleControlClick","VideoControl","ApplyControl","ChatControl","ManageMemberControl","MoreControl","IconButton","localStream","hasMore","showAudioSettingTab","isLocalAudioIconDisable","toggleMuteAudio","handleMore","AudioIcon","audioVolume","AudioSettingTab","showRequestOpenMicDialog","handleReject","handleAccept","useRoomEngine","isAudience","isMicrophoneDisableForAllUser","audioIconButtonRef","audioSettingRef","warningMessage","WARNING_MESSAGE","duration","MESSAGE_DURATION","setCanControlSelfAudio","microphoneList","getMicDevicesList","hasMicrophoneDevice","openLocalMicrophone","$el","requestOpenMicRequestId","onRequestReceived","requestAction","requestId","TUIRequestAction","responseRemoteRequest","agree","onRequestCancelled","iconName","isLocalVideoIconDisable","toggleMuteVideo","VideoSettingTab","showVideoSettingTab","showRequestOpenCameraDialog","isCameraDisableForAllUser","videoIconButtonRef","videoSettingRef","ICON_NAME","setCanControlSelfVideo","cameraList","getCameraDevicesList","hasCameraDevice","setLocalVideoView","view","streamType","TUIVideoStreamType","openLocalCamera","requestOpenCameraRequestId","chatStore","unReadCount","toggleChatSidebar","useChatStore","defineStore","messageList","isMessageDisableByAdmin","isCompleted","nextReqMessageId","getters","actions","updateMessageList","messageIds","ID","setMessageListInfo","updateUnReadCount","count","addHistoryMessages","filteredMessageList","sort","messageA","messageB","sequence","setSendMessageDisableChanged","isDisable","reset","MasterApplyControl","MemberApplyControl","ApplyOnSeat","toggleApplySpeech","hasApplyToAnchorUser","showApplyUserList","applyToAnchorList","hideApplyList","handleUserApply","denyAllUserApply","addApplyToAnchorUser","removeApplyToAnchorUser","applyUserId","userInfo","remoteUserObj","applyToAnchorRequestId","agreeUserOnStage","denyUserOnStage","applyUserList","inviteUserOnStage","takeUserOnSeatByAdmin","requestCallback","callbackInfo","requestCallbackType","TUIRequestCallbackType","removeInviteToAnchorUser","addInviteToAnchorUser","cancelInviteUserOnStage","inviteToAnchorRequestId","cancelRequest","kickUserOffStage","kickUserOffSeatByAdmin","onBeforeUnmount","useMasterApplyControl","masterApplyControlRef","masterApplyListRef","setShowApplyUserList","iconTitle","showMemberApplyAttention","hideApplyAttention","showInviteDialog","handleInvite","lang","isApplyingOnSeat","onSeat","leaveSeat","cancelSeatApplication","sendSeatApplication","onKickedOffSeat","watch","immediate","deep","More","showMore","showMoreContent","ContactControl","InviteControl","useControl","toggleInviteSidebar","isShowInviteTab","roomInvite","handleCloseInvite","visibleInviteContentList","copyLink","useRoomInvite","shareLink","isRoomLinkVisible","isElectron","isElectronEnv","urlConcatenation","schemeLink","inviteContentList","reactive","useRoomInviteControl","Index","inviteRef","toggleContactSidebar","isShowContactTab","roomContact","handleOnCloseContact","handleCloseContact","contactContentList","useRoomMoreHooks","groupNumber","email","useRoomMoreControl","contactRef","Map","handler","evt","bus","mitt","moreContentRef","userMoreControl","toggleMoreSidebar","MoreControlH5","MoreControlPc","useRoomFooter","ScreenShareControl","FullScreenControl","SettingControl","isSharing","screenShareDisabled","toggleScreenShare","showStopShareRegion","openStopConfirmDialog","ScreenShareStopped","dialogVisible","cancelStop","stopScreenShare","hasOtherScreenShare","btnStopRef","startScreenSharing","stopScreenSharing","screenCaptureStopped","oldVal","isFullScreen","toggleScreen","exitFullScreen","isVue27","roomContainer","body","setFullScreen","getElementById","handleFullScreenChange","showSettingDialog","handleShowSettingDialog","setShowSettingDialog","indexPc","Chat","ManageMember","ChatEditor","MessageList","refInFor","flow","nick","MessageText","text","handleTextMessageShowContext","emojiUrl","emojiMap","emojiList","decodeMessageText","renderDom","temp","left","right","emojiKey","useMessageList","historyMessageList","messageAimId","messageBottomEl","loadMore","isScrollNotAtBottom","isScrollToTop","handleMessageListScroll","messageContainer","bottom","scrollHeight","scrollTop","clientHeight","handleGetHistoryMessageList","tim","getTIM","imResponse","getMessageList","conversationID","nextReqMessageID","middleReqMessageId","currentMessageList","getIMMessageList","conversationData","newMessageList","oldMessageList","nextTick","lastMessage","oldLastMessage","scrollIntoView","onReceiveTextMessage","messageId","filterCurrentMessageList","cannotSendMessage","emoji","handleChooseEmoji","sendMsg","_k","keyCode","sendMessage","togglePopover","childrenItem","childrenIndex","chooseEmoji","emojiListRef","itemName","emojiInfo","closePopover","useChatEditor","isMessageDisableForAllUser","editorInputEle","isEmojiToolbarVisible","msg","sendTextMessage","messageText","emojiName","focus","ChatEditorH5","ChatEditorPC","userNumber","userList","MemberItem","toggleManageMember","ManageControlType","AUDIO","audioManageInfo","VIDEO","videoManageInfo","showManageAllUserDialog","doToggleManageMember","dialogActionInfo","dialogTitleInfo","handleMemberItemClick","setMemberItemRef","MemberInfo","setMemberInfoRef","showMemberControl","MemberControl","setMemberControlRef","handleCloseControl","isMe","showStateIcon","MicOn","MicOff","CameraOn","CameraOff","isUserApplyingToAnchor","MicOffDisabled","CameraOffDisabled","defaultAvatar","modifiers","controlList","func","isFreeSpeechMode","isSpeakAfterTakingSeat","requestStageTitle","isInvitingUserToAnchor","toggleInviteUserOnStage","toggleInviteStage","makeOffStage","agreeOnStage","denyOnStage","audioControlTitle","isRequestingUserOpenMic","audioControl","muteUserAudio","videoControlTitle","isRequestingUserOpenCamera","videoControl","muteUserVideo","chatControlTitle","isChatMutedByMaster","forbidChat","disableUserChat","kickUser","kickOffUser","controlRelationObj","freeSpeech","applySpeechAndAnchor","applySpeechAndIsApplyingToAnchor","applySpeechAndAudience","closeRemoteDeviceByAdmin","device","TUIMediaDevice","requestUserOpenMicRequestId","setRequestUserOpenMic","isRequesting","openRemoteDeviceByAdmin","requestUserOpenCameraRequestId","setRequestUserOpenCamera","currentState","setMuteUserChat","disableSendingMessageByAdmin","kickRemoteUserOutOfRoom","singleControl","handlePopUp","toggleClickMoreBtn","ArrowBorderDown","showMoreControl","dropdownClass","handleMouseLeave","dropdown","dropdownRectBottom","getBoundingClientRect","roomContainerHeight","offsetHeight","control","list","MemberControlH5","MemberControlPC","useMemberItem","handleMouseEnter","memberItemEl","memberInfoEl","MemberControlEl","useIndex","currentControlType","toggleAllAudio","toggleAllVideo","showApplyUserLit","microphoneDisableState","disableDeviceForAllUserByAdmin","setMicrophoneDisableState","cameraDisableState","setCameraDisableState","useSideBar","sidebarTitle","Drawer","RoomInvite","RoomMore","StreamContainer","handleTouchStart","handleTouchEnd","streamContainerClass","LARGE_SMALL_WINDOW","enlargeStream","StreamRegion","onlyVideoStreamList","isFirstPageInSixPointLayout","stream","showStreamList","enlargeDomId","totalPageNumber","isActiveDot","playRegionDomId","showVoiceBorder","hasScreenStream","showMasterIcon","isScreenStream","streamRegionRef","isInnerScene","userIdEl","setRemoteVideoView","startPlayRemoteVideo","setRemoteRenderParams","TRTCVideoStreamType","loading","changeLargeStream","centerUserInfoRef","streamTypeToFetch","kScreenStream","kCameraStream","defaultStreamType","localUserId","stopPlayRemoteVideo","isVisible","oldHasVideoStream","oldIsVisible","oldHasScreenStream","StreamRegionH5","StreamRegionPc","useStreamContainer","onRemoteUserEnterRoom","addRemoteUser","onRemoteUserLeaveRoom","removeRemoteUser","onSeatListChanged","seatList","seatedList","leftList","updateOnSeatList","onUserAudioStateChanged","hasAudio","updateUserAudioState","TUIChangeReason","isDefaultOpenCamera","isDefaultOpenMicrophone","previewDom","currentCameraId","setCurrentCameraId","deviceId","setCurrentCameraDevice","speakerList","getSpeakerDevicesList","currentMicrophoneId","setCurrentMicrophoneId","currentSpeakerId","setCurrentSpeakerId","setCurrentMicDevice","streamContainerRef","streamList","remoteStreamObj","currentSpeakerUserId","startX","startY","currentPageIndex","equalPointIndex","ceil","totalPageOfVideoStream","handleTurnPageLeft","handleTurnPageRight","enlargedContainerRef","streamListRef","containerClass","changedTouches","pageX","pageY","moveDirectionX","moveDirectionY","abs","onUserVideoStateChanged","hasVideo","updateUserVideoState","handleLargestVoice","userVolumeList","lastSpeakerUserVolumeInfo","find","volume","largestVolume","largestUserId","handleLargestVoiceThrottle","throttle","onUserVoiceVolumeChanged","showIconControl","style","enlargedStreamStyle","showSideList","streamStyle","handleEnlargeStreamRegion","arrowClass","handleClickIcon","showTurnPageControl","showTurnPageLeftArrow","showTurnPageRightArrow","width","height","remoteStreamList","handleStreamContainerScroll","streamIdList","currentStreamId","updateUserStreamVisible","handleNineEqualPointsLayout","arrowDirection","handleRightSideListLayout","handleTopSideListLayout","top","containerWidth","offsetWidth","containerHeight","scaleWidth","scaleHeight","roomContainerElement","handleLayout","handleResize","setHasOtherScreenShare","handleLargeStreamLeave","leftUserIdList","childDom","children","finalIndex","firstChildHeight","normalChildHeight","streamListRefEnd","firstChildWidth","normalChildWidth","scrollLeft","streamUserIdList","handleStreamContainerScrollDebounce","debounce","StreamContainerH5","StreamContainerPc","settingTabsTitleList","activeSettingTab","handleUpdateActiveTab","label","SettingMode","DETAIL","handleCloseSettingDialog","tabTitle","setActiveSettingTab","expose","init","createRoom","enterRoom","resetStore","roomContentRef","roomRef","handleHideRoomTool","handleHideRoomToolDebounce","handleHideRoomToolThrottle","smallParam","TRTCVideoEncParam","setBasicInfo","userSig","roomName","roomMode","roomParam","setRoomId","roomParams","TUIRoomType","speechMode","TUISpeechMode","setDefaultStreamRecvMode","enableSmallVideoStream","roomInfo","setRoomInfo","getUserList","setRoomParam","userInfoList","setUserList","videoResolution","TRTCVideoResolution","videoFps","videoBitrate","defaultTheme","storageCurrentTheme","localStorage","getItem","setDefaultTheme","setAudioVolume","onUserNetworkQualityChanged","setLocalQuality","userNetworkList","onError","onSendMessageForUserDisableChanged","notice","TUIKickedOutOfRoomReason","handleAudioStateChange","isDisableAudio","handleVideoStateChange","isDisableVideo","handleMessageStateChange","isDisableMessage","onAllUserCameraDisableChanged","setDisableCameraForAllUserByAdmin","onAllUserMicrophoneDisableChanged","setDisableMicrophoneForAllUserByAdmin","onSendMessageForAllUserDisableChanged","setDisableMessageAllUserByAdmin","getMediaDeviceList","setCameraList","setMicrophoneList","setSpeakerList","cameraInfo","getCurrentCameraDevice","micInfo","getCurrentMicDevice","speakerInfo","getCurrentSpeakerDevice","onDeviceChange","stateList","TRTCDeviceType","deviceList","TRTCDeviceState","TUIRoomRef","router","to","components","RoomContainer","query","action","MessageBox","sessionStorage","methods","alert","roomNo"],"sourceRoot":""}
\ No newline at end of file
diff --git a/Miniapp-H5/dist/js/app.4272f5c4.js b/Miniapp-H5/dist/js/app.45470ce6.js
similarity index 99%
rename from Miniapp-H5/dist/js/app.4272f5c4.js
rename to Miniapp-H5/dist/js/app.45470ce6.js
index c309dae..d5b40db 100644
--- a/Miniapp-H5/dist/js/app.4272f5c4.js
+++ b/Miniapp-H5/dist/js/app.45470ce6.js
@@ -1,2 +1,2 @@
-(function(){var e={1342:function(e,t,r){"use strict";r.d(t,{Z:function(){return d}});var n=function(){var e=this,t=e._self._c,r=e._self._setupProxy;return t("div",{class:["audio-icon-container",`${"small"==e.size&&"small"}`]},[t("div",{staticClass:"audio-level"},e._l(new Array(5).fill(""),(function(e,n){return t("div",{key:n,staticClass:"audio-level-item",class:["audio-level-item",`${r.showAudioLevel>n&&"active"}`]})})),0),t(r.SvgIcon,{staticClass:"audio-icon",attrs:{"icon-name":r.iconName}})],1)},i=[],o=r(6369),a=r(6316),s=r(6671),l=(0,o.defineComponent)({__name:"AudioIcon",props:{audioVolume:null,isMuted:{type:Boolean},size:null,isDisabled:{type:Boolean}},setup(e){const t=e,r=(0,o.computed)((()=>t.isDisabled?s.Z.MicOffDisabled:t.isMuted?s.Z.MicOff:s.Z.MicOn)),n=(0,o.computed)((()=>t.isMuted||!t.audioVolume?0:4*t.audioVolume/100*5));return{__sfc:!0,props:t,iconName:r,showAudioLevel:n,SvgIcon:a.Z}}}),c=l,u=r(3736),h=(0,u.Z)(c,n,i,!1,null,"5bc7b022",null),d=h.exports},3929:function(e,t,r){"use strict";r.d(t,{Z:function(){return m}});var n=function(){var e=this,t=e._self._c,r=e._self._setupProxy;return t("div",{staticClass:"audio-setting-tab"},[t("div",{class:["item-setting-container",r.isSampleMode&&"hasDividingLine"]},[t("div",{staticClass:"item-setting"},[t("span",{staticClass:"title"},[e._v(e._s(r.t("Mic")))]),t("div",{staticClass:"flex"},[t(r.DeviceSelect,{class:r.isDetailMode?"detail-select":"",attrs:{"device-type":"microphone"}}),r.isDetailMode?t("div",{staticClass:"button",on:{click:r.handleMicrophoneTest}},[e._v(" "+e._s(r.isTestingMicrophone?r.t("Stop"):r.t("Test"))+" ")]):e._e()],1)]),t("div",{staticClass:"item-setting"},[t("span",{staticClass:"title"},[e._v(e._s(r.t("Output")))]),t("div",{staticClass:"mic-bar-container"},e._l(new Array(r.volumeTotalNum).fill(""),(function(e,n){return t("div",{key:n,class:["mic-bar",""+(r.showVolume&&r.volumeNum>n?"active":"")]})})),0)])]),r.speakerList.length>0?t("div",{class:["item-setting-container",r.isSampleMode&&"hasDividingLine"]},[t("div",{staticClass:"item-setting"},[t("span",{staticClass:"title"},[e._v(e._s(r.t("Speaker")))]),t("div",{staticClass:"flex"},[t(r.DeviceSelect,{class:r.isDetailMode?"detail-select":"",attrs:{"device-type":"speaker",disabled:e.mode===r.SettingMode.DETAIL}}),r.isDetailMode?t("div",{staticClass:"button",on:{click:r.handleSpeakerTest}},[e._v(" "+e._s(r.isTestingSpeaker?r.t("Stop"):r.t("Test"))+" ")]):e._e()],1)])]):e._e()])},i=[],o=r(6369),a=r(8754),s=r(4990),l=r(3927),c=r(7357),u=r(1020),h=(0,o.defineComponent)({__name:"AudioSettingTab",props:{mode:null},setup(e){const t=e,r=t.mode||l.n.SIMPLE,n=(0,o.computed)((()=>r===l.n.SIMPLE)),i=(0,o.computed)((()=>r===l.n.DETAIL)),h=(0,s.A)(),{speakerList:d}=(0,u.Jk)(h),f=(0,o.computed)((()=>i.value?36:28)),p=(0,o.computed)((()=>(h.localStream.audioVolume||0)*f.value/100)),m=(0,o.computed)((()=>n.value||i.value&&g.value)),g=(0,o.ref)(!1);function v(){g.value=!g.value}const _=(0,o.ref)(!1),w=document?.createElement("audio"),{t:b}=(0,c.Q)();function y(){_.value?(w&&(w.pause(),w.currentTime=0),_.value=!1):(_.value=!0,w&&(w.src="https://web.sdk.qcloud.com/trtc/electron/download/resources/media/TestSpeaker.mp3",w.play()))}return(0,o.onBeforeUnmount)((()=>{w&&w.pause()})),{__sfc:!0,props:t,settingMode:r,isSampleMode:n,isDetailMode:i,roomStore:h,speakerList:d,volumeTotalNum:f,volumeNum:p,showVolume:m,isTestingMicrophone:g,handleMicrophoneTest:v,isTestingSpeaker:_,audioPlayer:w,t:b,handleSpeakerTest:y,DeviceSelect:a.Z,SettingMode:l.n}}}),d=h,f=r(3736),p=(0,f.Z)(d,n,i,!1,null,"ce40fa86",null),m=p.exports},9225:function(e,t,r){"use strict";r.d(t,{Z:function(){return h}});var n=function(){var e=this,t=e._self._c,r=e._self._setupProxy;return t("img",{staticClass:"default-avatar",attrs:{src:e.imgSrc||r.defaultAvatar,onerror:r.showDefaultAvatar}})},i=[],o=r(6369),a=r(7717),s=(0,o.defineComponent)({__name:"Avatar",props:{imgSrc:null},setup(e){function t(e){e.target.src=a}return{__sfc:!0,showDefaultAvatar:t,defaultAvatar:a}}}),l=s,c=r(3736),u=(0,c.Z)(l,n,i,!1,null,null,null),h=u.exports},8754:function(e,t,r){"use strict";r.d(t,{Z:function(){return f}});var n=function(){var e=this,t=e._self._c,r=e._self._setupProxy;return t("el-select",{staticClass:"select custom-element-class",attrs:{placeholder:"placeholder",disabled:e.disabled,teleported:!1,"popper-append-to-body":!1},on:{change:r.handleChange},model:{value:r.currentDeviceId,callback:function(e){r.currentDeviceId=e},expression:"currentDeviceId"}},e._l(r.deviceList,(function(e){return t("el-option",{key:e.deviceId,attrs:{label:e.deviceName,value:e.deviceId}})})),1)},i=[],o=r(6369),a=r(4990),s=r(1020),l=r(3681),c=(0,o.defineComponent)({__name:"DeviceSelect",props:{deviceType:null,onChange:null,disabled:null},setup(e){const{deviceType:t,onChange:r,disabled:n=!1}=e,i=(0,l.Z)(),c=(0,a.A)(),{cameraList:u,microphoneList:h,speakerList:d,currentCameraId:f,currentMicrophoneId:p,currentSpeakerId:m}=(0,s.Jk)(c),g=(0,o.ref)(w()),v=(0,o.ref)(_());function _(){return"camera"===t?f:"microphone"===t?p:"speaker"===t?m:""}function w(){return"camera"===t?u:"microphone"===t?h:"speaker"===t?d:[]}async function b(e){switch(r&&r(e),t){case"camera":await(i.instance?.setCurrentCameraDevice({deviceId:e})),c.setCurrentCameraId(e);break;case"microphone":await(i.instance?.setCurrentMicDevice({deviceId:e})),c.setCurrentMicrophoneId(e);break;case"speaker":await(i.instance?.setCurrentSpeakerDevice({deviceId:e})),c.setCurrentSpeakerId(e);break;default:break}}return{__sfc:!0,roomEngine:i,roomStore:c,cameraList:u,microphoneList:h,speakerList:d,currentCameraId:f,currentMicrophoneId:p,currentSpeakerId:m,deviceList:g,currentDeviceId:v,getInitDeviceId:_,getDeviceList:w,handleChange:b}}}),u=c,h=r(3736),d=(0,h.Z)(u,n,i,!1,null,"160545a2",null),f=d.exports},9139:function(e,t,r){"use strict";r.d(t,{Z:function(){return f}});var n=function(){var e=this,t=e._self._c,r=e._self._setupProxy;return t(r.SvgIcon,{staticClass:"language-icon",attrs:{"icon-name":"lang",size:"large"},on:{click:r.handleChange}})},i=[],o=r(6369),a=r(6316),s=r(251),l=r(7357),c=(0,o.defineComponent)({__name:"Language",setup(e){const t=(0,s.o)(),r=()=>{switch(l.Z.global.locale.value){case"en-US":l.Z.global.locale.value="zh-CN",t.setLang("zh-CN"),localStorage.setItem("tuiRoom-language","zh-CN");break;case"zh-CN":l.Z.global.locale.value="en-US",t.setLang("en-US"),localStorage.setItem("tuiRoom-language","en-US");break}};return{__sfc:!0,basicStore:t,handleChange:r,SvgIcon:a.Z}}}),u=c,h=r(3736),d=(0,h.Z)(u,n,i,!1,null,null,null),f=d.exports},7698:function(e,t,r){"use strict";r.d(t,{Z:function(){return f}});var n=function(){var e=this,t=e._self._c,r=e._self._setupProxy;return t(r.SvgIcon,{staticClass:"switch-theme",attrs:{"icon-name":"switch-theme",size:"medium"},on:{click:r.handleSwitchTheme}})},i=[],o=r(6369),a=r(6316),s=r(251),l=r(1020),c=(0,o.defineComponent)({__name:"SwitchTheme",setup(e){const t=(0,s.o)(),{defaultTheme:r}=(0,l.Jk)(t);function n(){const e=document.body.getAttribute("data-theme")||r;"white"===e?t.setDefaultTheme("black"):"black"===e&&t.setDefaultTheme("white")}function i(e){switch(e){case"black":document.body.setAttribute("data-theme","black"),localStorage.setItem("tuiRoom-currentTheme","black");break;case"white":document.body.setAttribute("data-theme","white"),localStorage.setItem("tuiRoom-currentTheme","white");break}}return(0,o.watch)(r,(e=>{i(e)})),(0,o.onMounted)((()=>{const e=t.defaultTheme,r=localStorage.getItem("tuiRoom-currentTheme")||e;t.setDefaultTheme(r),document.body.setAttribute("data-theme",r)})),{__sfc:!0,basicStore:t,defaultTheme:r,handleSwitchTheme:n,doSwitchTheme:i,SvgIcon:a.Z}}}),u=c,h=r(3736),d=(0,h.Z)(u,n,i,!1,null,null,null),f=d.exports},8283:function(e,t,r){"use strict";r.d(t,{Z:function(){return T}});var n=function(){var e=this,t=e._self._c,r=e._self._setupProxy;return t("div",{staticClass:"video-tab"},[t("div",{class:["item-setting-container",r.isSampleMode&&"hasDividingLine"]},[t("div",{staticClass:"item-setting"},[t("span",{staticClass:"title"},[e._v(e._s(r.t("Camera")))]),t(r.DeviceSelect,{class:r.isDetailMode?"detail-select":"",attrs:{"device-type":"camera"}})],1),r.isDetailMode&&e.withPreview?t("div",{staticClass:"item-setting"},[t("span",{staticClass:"title"},[e._v(e._s(r.t("Preview")))]),t("div",{staticClass:"video-preview",attrs:{id:"test-camera-preview"}})]):e._e(),r.isDetailMode?t("el-checkbox",{staticClass:"mirror-checkbox custom-element-class",attrs:{label:r.t("Mirror")},model:{value:r.isLocalStreamMirror,callback:function(e){r.isLocalStreamMirror=e},expression:"isLocalStreamMirror"}}):e._e()],1),r.isSampleMode?t("div",{class:["item-setting-container",r.isSampleMode&&"hasDividingLine"]},[t("span",{staticClass:"title"},[e._v(e._s(r.t("Resolution")))]),t(r.VideoProfile)],1):e._e(),r.isSampleMode?t("div",{class:["item-setting-container",r.isSampleMode&&"hasDividingLine"]},[t("div",{staticClass:"item",on:{click:r.handleMoreCameraSetting}},[e._v(e._s(r.t("More Camera Settings")))])]):e._e()])},i=[],o=r(6369),a=r(8754),s=function(){var e=this,t=e._self._c,r=e._self._setupProxy;return t("el-select",{staticClass:"select custom-element-class",attrs:{placeholder:"placeholder",teleported:!1,"popper-append-to-body":!1},model:{value:r.localVideoQuality,callback:function(e){r.localVideoQuality=e},expression:"localVideoQuality"}},e._l(r.videoProfileList,(function(e,r){return t("el-option",{key:r,attrs:{label:e.label,value:e.value}})})),1)},l=[],c=r(7357),u=r(452),h=r.n(u),d=r(4990),f=r(3681),p=r(1020),m=(0,o.defineComponent)({__name:"VideoProfile",setup(e){const t=(0,f.Z)(),r=(0,d.A)(),{localVideoQuality:n}=(0,p.Jk)(r),{t:i}=(0,c.Q)(),a=(0,o.computed)((()=>[{label:i("Low Definition"),value:u.TUIVideoQuality.kVideoQuality_360p},{label:i("Standard Definition"),value:u.TUIVideoQuality.kVideoQuality_540p},{label:i("High Definition"),value:u.TUIVideoQuality.kVideoQuality_720p},{label:i("Super Definition"),value:u.TUIVideoQuality.kVideoQuality_1080p}]));return(0,o.watch)(n,(e=>{t.instance?.updateVideoQuality({quality:e})})),h().once("ready",(()=>{t.instance?.updateVideoQuality({quality:n.value})})),{__sfc:!0,roomEngine:t,roomStore:r,localVideoQuality:n,t:i,videoProfileList:a}}}),g=m,v=r(3736),_=(0,v.Z)(g,s,l,!1,null,"00a64cb2",null),w=_.exports,b=r(251),y=r(3927),S=r(4237),k=r(2843),C=(0,o.defineComponent)({__name:"VideoSettingTab",props:{mode:null,withPreview:{type:Boolean}},setup(e){const t=e,r=(0,f.Z)(),n=(0,S.Al)(),i=t.mode||y.n.SIMPLE,s=(0,o.computed)((()=>i===y.n.SIMPLE)),l=(0,o.computed)((()=>i===y.n.DETAIL)),h=(0,b.o)(),d=(0,o.ref)(h.isLocalStreamMirror);(0,o.watch)(d,(async e=>{const t=r.instance?.getTRTCCloud();k.t?await(t?.setLocalRenderParams({mirrorType:u.TRTCVideoMirrorType.TRTCVideoMirrorType_Auto,rotation:u.TRTCVideoRotation.TRTCVideoRotation0,fillMode:u.TRTCVideoFillMode.TRTCVideoFillMode_Fill})):await(t?.setLocalRenderParams({mirrorType:e?u.TRTCVideoMirrorType.TRTCVideoMirrorType_Enable:u.TRTCVideoMirrorType.TRTCVideoMirrorType_Disable,rotation:u.TRTCVideoRotation.TRTCVideoRotation0,fillMode:u.TRTCVideoFillMode.TRTCVideoFillMode_Fill})),h.setIsLocalStreamMirror(e)}));const{t:p}=(0,c.Q)();function m(){h.setShowSettingDialog(!0),h.setActiveSettingTab("video")}return l.value&&t.withPreview&&((0,o.onMounted)((async()=>{if(r.instance?.startCameraDeviceTest({view:"test-camera-preview"}),n){const e=r.instance?.getTRTCCloud();await(e?.setLocalRenderParams({mirrorType:d.value?u.TRTCVideoMirrorType.TRTCVideoMirrorType_Enable:u.TRTCVideoMirrorType.TRTCVideoMirrorType_Disable,rotation:u.TRTCVideoRotation.TRTCVideoRotation0,fillMode:u.TRTCVideoFillMode.TRTCVideoFillMode_Fill}))}})),(0,o.onUnmounted)((()=>{r.instance?.stopCameraDeviceTest()}))),{__sfc:!0,roomEngine:r,isElectron:n,props:t,settingMode:i,isSampleMode:s,isDetailMode:l,basicStore:h,isLocalStreamMirror:d,t:p,handleMoreCameraSetting:m,DeviceSelect:a.Z,VideoProfile:w}}}),A=C,I=(0,v.Z)(A,n,i,!1,null,"7cf837b8",null),T=I.exports},2097:function(e,t,r){"use strict";r.d(t,{Z:function(){return h}});var n=function(){var e=this,t=e._self._c,r=e._self._setupProxy;return t("div",{class:["icon-box",`${!e.hideHoverEffect&&"hover-effect"}`,`${e.disabled&&"disabled"}`]},[t("span",{staticClass:"icon-content",on:{click:function(t){return e.$emit("click-icon")}}},[e.iconName?t(r.SvgIcon,{attrs:{"icon-name":e.iconName}}):e._e(),e._t("default"),t("span",{staticClass:"title",class:e.isActive?"title-active":"title"},[e._v(e._s(e.title))])],2),e.hasMore?t("span",{ref:"moreSpanRef",staticClass:"icon-arrow",on:{click:function(t){return e.$emit("click-more")}}},[t(r.SvgIcon,{staticClass:"arrow",attrs:{"icon-name":"arrow-up",size:"small"}})],1):e._e()])},i=[],o=r(6369),a=r(6316),s=(0,o.defineComponent)({__name:"IconButton",props:{title:null,iconName:null,hasMore:{type:Boolean},hideHoverEffect:{type:Boolean},disabled:{type:Boolean},isActive:{type:Boolean}},emits:["click-icon","click-more"],setup(e){return{__sfc:!0,SvgIcon:a.Z}}}),l=s,c=r(3736),u=(0,c.Z)(l,n,i,!1,null,"3303a58b",null),h=u.exports},6316:function(e,t,r){"use strict";r.d(t,{Z:function(){return u}});var n=function(){var e=this,t=e._self._c,r=e._self._setupProxy;return t("span",{class:[r.svgClass,e.customClass],style:e.customStyle,on:{click:r.handleClick}})},i=[],o=r(6369),a=(0,o.defineComponent)({__name:"SvgIcon",props:{iconName:null,size:null,customClass:null,customStyle:null},emits:["click"],setup(e,{emit:t}){const r=e,n=(0,o.computed)((()=>`${r.iconName}`)),i=(0,o.computed)((()=>{const e=r.size&&["large","medium","small","custom"].includes(r.size),t=e?r.size:"large";return`svg-icon ${t}-icon ${n.value}`}));function a(e){t("click",e)}return{__sfc:!0,props:r,emit:t,svgName:n,svgClass:i,handleClick:a}}}),s=a,l=r(3736),c=(0,l.Z)(s,n,i,!1,null,"52c6be46",null),u=c.exports},4679:function(e,t,r){"use strict";r.d(t,{Z:function(){return u}});var n=function(){var e=this,t=e._self._c,r=e._self._setupProxy;return t("el-drawer",{attrs:{visible:r.visible,title:r.props.title,"before-close":r.props.beforeClose,modal:r.props.modal,direction:r.props.direction,size:r.props.size},on:{"update:visible":function(e){r.visible=e}}},[e._t("default")],2)},i=[],o=r(6369),a=(0,o.defineComponent)({__name:"Drawer",props:{modelValue:{type:Boolean},title:null,beforeClose:null,modal:{type:Boolean},appendToBody:{type:Boolean},width:null,direction:null,size:null,customClass:null},setup(e){const t=e,r=(0,o.ref)(t.modelValue);return(0,o.watch)((()=>t.modelValue),(e=>{r.value=e})),{__sfc:!0,props:t,visible:r}}}),s=a,l=r(3736),c=(0,l.Z)(s,n,i,!1,null,null,null),u=c.exports},9643:function(e,t,r){"use strict";r.d(t,{Z:function(){return D}});var n=function(){var e=this,t=e._self._c,r=e._self._setupProxy;return t("div",{ref:"userInfoRef",staticClass:"user-info-container"},[t("div",{directives:[{name:"tap",rawName:"v-tap",value:r.handleUserControl,expression:"handleUserControl"}],staticClass:"user-info-content"},[t("img",{staticClass:"avatar",attrs:{src:e.avatarUrl||r.defaultAvatar}}),t("div",{staticClass:"name"},[e._v(e._s(e.userName||e.userId))])]),r.showUserControl?t("div",{staticClass:"user-control-container"},[t("div",{staticClass:"logout-mobile"},[t("div",{staticClass:"logout-mobile-main"},[t("div",{directives:[{name:"tap",rawName:"v-tap",value:()=>e.$emit("log-out"),expression:"() => $emit('log-out')"}],staticClass:"logout"},[t("i",[e._v(" "+e._s(r.t("Log out")))])]),t("div",{staticClass:"close",on:{click:function(e){e.stopPropagation(),r.showUserControl=!1}}},[t("i",[e._v(e._s(r.t("Cancel")))])])])])]):e._e()])},i=[],o=r(6369),a=r(7717),s=r(6671),l=r(7357),c=r(251),u=r(1020),h=r(3235),d=r(6897),f=r(452),p=r.n(f),m=r(4990),g=r(7175);function v(){const{t:e}=(0,l.Q)(),t=(0,c.o)(),{userName:r}=(0,u.Jk)(t),n=(0,o.ref)(),i=(0,o.ref)(!1),a=(0,o.ref)(!1),f=(0,o.ref)(g.Uh),v=(0,o.ref)(""),_=(0,m.A)(),w=(0,o.computed)((()=>i.value?s.Z.LineArrowUp:s.Z.LineArrowDown));function b(){i.value=!i.value}function y(e){n.value.contains(e.target)||(i.value=!1)}function S(){a.value=!0,v.value=r.value}function k(){a.value=!1}async function C(r){0!==r.length?(t.setUserName(r),p().setSelfInfo({userName:r,avatarUrl:_.localUser.avatarUrl||""}),_.setLocalUser({userName:r}),k()):(0,h.z)({type:"warning",message:e("Username length should be greater than 0"),duration:d.U.NORMAL})}return(0,o.onMounted)((()=>{window.addEventListener("click",y)})),(0,o.onUnmounted)((()=>{window.removeEventListener("click",y)})),{t:e,showEditNameItem:f,showUserControl:i,iconName:w,showUserNameEdit:a,userInfoRef:n,tempUserName:v,handleUserControl:b,showEditUserNameDialog:S,closeEditUserNameDialog:k,handleSaveUserName:C}}r(5175);var _=(0,o.defineComponent)({__name:"UserInfoH5",props:{userId:null,userName:null,avatarUrl:null},emits:["log-out"],setup(e){const{userInfoRef:t,showUserControl:r,t:n,handleUserControl:i}=v();return{__sfc:!0,userInfoRef:t,showUserControl:r,t:n,handleUserControl:i,defaultAvatar:a}}}),w=_,b=r(3736),y=(0,b.Z)(w,n,i,!1,null,null,null),S=y.exports,k=function(){var e=this,t=e._self._c,r=e._self._setupProxy;return t("div",{ref:"userInfoRef",staticClass:"user-info-container"},[t("div",{staticClass:"user-info-content",on:{click:r.handleUserControl}},[t(r.Avatar,{staticClass:"avatar",attrs:{"img-src":e.avatarUrl}}),t("div",{staticClass:"name"},[e._v(e._s(e.userName||e.userId))]),t(r.SvgIcon,{staticClass:"down-icon",attrs:{"icon-name":r.iconName,size:"medium"}})],1),r.showUserControl?t("div",{staticClass:"user-control-container"},[t("div",{directives:[{name:"show",rawName:"v-show",value:r.showEditNameItem,expression:"showEditNameItem"}]},[t("div",{staticClass:"user-control-item-head",on:{click:r.showEditUserNameDialog}},[e._v(e._s(r.t("Edit profile")))])]),t("div",{staticClass:"user-control-item-foot",on:{click:function(t){return e.$emit("log-out")}}},[e._v(e._s(r.t("Log out")))])]):e._e(),t(r.Dialog,{staticClass:"custom-element-class",attrs:{title:r.t("Edit profile"),width:"420px","model-value":r.showUserNameEdit,modal:!0,"append-to-body":!1,"close-on-click-modal":!0},on:{close:r.closeEditUserNameDialog}},[t("div",{staticClass:"dialog-content"},[t("span",{staticClass:"title"},[e._v(e._s(r.t("User Name")))]),t("div",{staticClass:"input-container"},[t("el-input",{attrs:{type:"text",maxlength:"80",placeholder:r.t("Please input user name")},model:{value:r.tempUserName,callback:function(e){r.tempUserName=e},expression:"tempUserName"}})],1)]),t("div",{staticClass:"dialog-footer"},[t("el-button",{on:{click:r.closeEditUserNameDialog}},[e._v(e._s(r.t("Cancel")))]),t("el-button",{attrs:{type:"primary"},on:{click:function(e){return r.handleSaveUserName(r.tempUserName)}}},[e._v(e._s(r.t("Save")))])],1)])],1)},C=[],A=r(5266),I=r(6316),T=r(9225),E=(0,o.defineComponent)({__name:"UserInfoPC",props:{userId:null,userName:null,avatarUrl:null},emits:["log-out"],setup(e){const{t:t,showEditNameItem:r,iconName:n,showUserControl:i,showUserNameEdit:o,userInfoRef:a,tempUserName:s,handleUserControl:l,showEditUserNameDialog:c,closeEditUserNameDialog:u,handleSaveUserName:h}=v();return{__sfc:!0,t:t,showEditNameItem:r,iconName:n,showUserControl:i,showUserNameEdit:o,userInfoRef:a,tempUserName:s,handleUserControl:l,showEditUserNameDialog:c,closeEditUserNameDialog:u,handleSaveUserName:h,Dialog:A.Z,SvgIcon:I.Z,Avatar:T.Z}}}),R=E,L=(0,b.Z)(R,k,C,!1,null,null,null),M=L.exports,U=r(2843);const x=U.t?S:M;var D=x},6671:function(e,t,r){"use strict";var n;r.d(t,{Z:function(){return n}}),function(e){e["MicOn"]="mic-on",e["MicOff"]="mic-off",e["MicOffDisabled"]="mic-off-gray",e["CameraOn"]="camera-on",e["CameraOff"]="camera-off",e["CameraOffDisabled"]="camera-off-gray",e["ArrowBorderDown"]="arrow-border-down",e["ScreenSharing"]="screen-sharing",e["ScreenShare"]="screen-share",e["ScreenShareStopped"]="screen-share-stopped",e["ScreenShareDisabled"]="screen-share-disabled",e["ChatActive"]="chat-active",e["Chat"]="chat",e["ExitFullScreen"]="exit-fullscreen",e["FullScreen"]="full-screen",e["InviteActive"]="invite-active",e["Invite"]="invite",e["ManageMemberActive"]="manage-member-active",e["ManageMember"]="manage-member",e["More"]="more",e["MoreActive"]="more-active",e["SettingActive"]="setting-active",e["Setting"]="setting",e["LineArrowUp"]="line-arrow-up",e["LineArrowDown"]="line-arrow-down",e["ApplyOnSeat"]="apply",e["ApplyActive"]="apply-active",e["GoOffSeat"]="go-off-seat"}(n||(n={}))},6897:function(e,t,r){"use strict";var n,i;r.d(t,{B:function(){return n},U:function(){return i}}),function(e){e["UNMUTE_LOCAL_MIC_FAIL_MUTE_ALL"]="Has been fully muted and cannot open the microphone",e["UNMUTE_LOCAL_MIC_FAIL_MUTE_BY_MASTER"]="Has been muted by the host and cannot open the microphone",e["UNMUTE_LOCAL_MIC_FAIL_AUDIENCE"]="To apply to speak in the room, please raise your hand first to apply for the microphone",e["UNMUTE_LOCAL_CAMERA_FAIL_MUTE_ALL"]="Has been full static painting, can not open the video",e["UNMUTE_LOCAL_CAMERA_FAIL_MUTE_BY_MASTER"]="It has been stilled by the host and cannot open the video",e["UNMUTE_LOCAL_CAMERA_FAIL_AUDIENCE"]="To apply to speak in the room, please raise your hand first to apply for the microphone"}(n||(n={})),function(e){e[e["NORMAL"]=3e3]="NORMAL",e[e["LONG"]=5e3]="LONG"}(i||(i={}))},3927:function(e,t,r){"use strict";var n,i;r.d(t,{_:function(){return n},n:function(){return i}}),function(e){e["SIX_EQUAL_POINTS"]="six_equal_points",e["NINE_EQUAL_POINTS"]="nine_equal_points",e["TWENTY_FIVE_EQUAL_POINTS"]="twenty_five_equal_points",e["RIGHT_SIDE_LIST"]="right_side_list",e["TOP_SIDE_LIST"]="top_side_list",e["LARGE_SMALL_WINDOW"]="large_small_window",e["GRID_VIEW"]="grid_view"}(n||(n={})),function(e){e["SIMPLE"]="simple",e["DETAIL"]="detail"}(i||(i={}))},5175:function(e,t,r){"use strict";var n=r(7327),i=r(3303);class o{constructor(e,t){(0,n.Z)(this,"dom",void 0),(0,n.Z)(this,"callback",void 0),(0,n.Z)(this,"isMove",void 0),this.dom=e,this.callback=t.value,this.isMove=!1,e?.addEventListener("touchstart",(()=>{this.touchstart()}),{passive:!0}),e?.addEventListener("touchmove",(()=>{this.touchmove()}),{passive:!0}),e?.addEventListener("touchend",(()=>{this.touchend()}),{passive:!0})}touchstart(){this.isMove=!1}touchmove(){this.isMove=!0}touchend(){this.isMove||this.callback()}}i.Z.directive("tap",{bind:function(e,t){return new o(e,t)}})},5266:function(e,t,r){"use strict";r.d(t,{Z:function(){return w}});var n=function(){var e=this,t=e._self._c,r=e._self._setupProxy;return r.props.modelValue?t("div",{staticClass:"dialog-container"},[t("span",{staticClass:"dialog-title"},[e._v(e._s(r.props.title))]),t("div",{staticClass:"dialog-content"},[e._t("default")],2),t("div",{staticClass:"dialog-footer"},[e._t("footer")],2)]):e._e()},i=[],o=r(6369),a=(0,o.defineComponent)({__name:"DialogH5",props:{modelValue:{type:Boolean},title:null},setup(e){const t=e;return{__sfc:!0,props:t}}}),s=a,l=r(3736),c=(0,l.Z)(s,n,i,!1,null,null,null),u=c.exports,h=function(){var e=this,t=e._self._c,r=e._self._setupProxy;return t("el-dialog",{attrs:{visible:r.props.modelValue,title:r.props.title,"before-close":r.props.beforeClose,modal:r.props.modal,"append-to-body":r.props.appendToBody,width:r.props.width,"show-close":r.props.showClose,"close-on-click-modal":r.props.closeOnClickModal,"close-on-press-escape":r.props.closeOnPressEscape,"modal-append-to-body":!1},on:{"update:visible":function(t){return e.$set(r.props,"modelValue",t)}},scopedSlots:e._u([{key:"footer",fn:function(){return[e._t("footer")]},proxy:!0}],null,!0)},[e._t("default")],2)},d=[],f=(0,o.defineComponent)({__name:"DialogPC",props:{modelValue:{type:Boolean},title:null,beforeClose:null,modal:{type:Boolean},appendToBody:{type:Boolean},width:null,showClose:{type:Boolean},closeOnClickModal:{type:Boolean},closeOnPressEscape:{type:Boolean}},setup(e){const t=e;return{__sfc:!0,props:t}}}),p=f,m=(0,l.Z)(p,h,d,!1,null,null,null),g=m.exports,v=r(2843);const _=v.t?u:g;var w=_},3235:function(e,t,r){"use strict";r.d(t,{T:function(){return o},z:function(){return i}});var n=r(8499);const i=n.Message,o=n.MessageBox},3681:function(e,t,r){"use strict";r.d(t,{Z:function(){return l}});var n=r(452),i=r.n(n),o=r(7175);const a={instance:null},s=o.$B?"vue3":"vue2";function l(){return a}i().once("ready",(()=>{a.instance=new(i()),a.instance?.callExperimentalAPI(JSON.stringify({api:"setFramework",params:{component:"TUIRoomKit",language:s}}))}))},7357:function(e,t,r){"use strict";r.d(t,{Z:function(){return c},Q:function(){return o.QT}});var n=r(6369),i=r(6018),o=r(9165),a=r(5581),s={"":"","Sign in":"请登录","Phone Login":"手机登录","Email Login":"邮箱登录","I have read and agree to the":"我已阅读并同意","Privacy Policy":"隐私协议",and:"和","Terms of Use":"用户协议",Login:"登录","Mobile number":"请输入您的手机号","Verification code":"请输入验证码","Email address":"请输入邮箱","Please enter a valid phone number!":"请输入正确的手机号!","Please enter a valid email address!":"请输入正确的邮箱地址!","Please enter your phone number!":"请输入手机号!","Please enter your email address!":"请输入邮箱地址!","Please enter the verification code!":"请输入验证码!","Please accept the privacy policy and user agreement!":"请同意隐私协议及用户协议!","Incorrect verification code, please check the code!":"验证码错误,请检查验证码!","The verification code has expired, please retrieve a new one!":"验证码已过期,请重新获取验证码!","The verification code has been used, please retrieve a new one!":"验证码已使用,请重新获取验证码!","Login failed, please try again.":"登录失败,请重试",SEND:"获取验证码"," ":"倒计时","The room does not exist, please confirm the room number or create a room!":"房间不存在,请确认房间号或创建房间!","Log out":"退出登录","Edit profile":"编辑资料","User Name":"用户名","Please input user name":"请输入用户名","Username length should be greater than 0":"昵称长度应该大于0",Save:"保存",Camera:"摄像头",Mic:"麦克风","Off Camera":"摄像头已关闭","Mic settings":"麦克风设置",Output:"输出",Speaker:"扬声器",Test:"测试",Stop:"停止测试",Preview:"视频画面",Mirror:"翻转镜像",Resolution:"分辨率","More Camera Settings":"更多摄像头设置","Join the room ?":"是否进入房间?","You are invited to room ":"您被邀请进入 ",Room:"房间",Join:"确定进入","New Room":"新建房间","Room Type":"房间类型","Your Name":"您的名字","Turn on the microphone":"开启麦克风","Turn on the speaker":"开启扬声器","Turn on the video":"开启视频","Free Speech Room":"自由发言房间","Raise Hand Room":"举手发言房间","Join Room":"进入房间","Enter room ID":"输入房间号","video conferencing":" 的视频会议","Room ID":"房间号","Low Definition":"流畅","Standard Definition":"标清","High Definition":"高清","Super Definition":"超清","End sharing":"结束共享","Stop sharing?":"是否停止屏幕共享?","Stop sharing":"停止共享",Sure:"确定",Sharing:"屏幕共享中","Share screen":"共享屏幕","Others will no longer see your screen after you stop sharing. Are you sure you want to stop?":"是否结束当前的共享屏幕,停止后所有人将无法继续观看屏幕内容","Others will no longer see your screen after you stop sharing.":"停止后所有人将无法继续观看屏幕内容","You currently do not have sharing permission, please raise your hand to apply for sharing permission first":"您当前没有共享权限,请先举手申请上台获取共享权限",Host:"主持人",Me:"我",me:"我",More:"更多","Raise hand":"举手",Agree:"同意",Chat:"聊天",Cancel:"取消",Exit:"退出全屏","Full screen":"全屏",Members:"管理成员",Invite:"邀请成员",Settings:"设置",EndPC:"结束会议",EndH5:"结束",Tips:"提示",'You are currently the room host, please select the appropriate action.If you select "Leave Room", the room will not be dissolved and you will need to appoint a new host.':"您当前是房间主持人,请选择相应操作。若选择“离开房间”,则房间不会解散,您需要指定新主持人。","If you do not want to end the meeting, please designate a new host before leaving the meeting.":"如果您不想结束会议,请在离开会议前指定新的主持人。","Are you sure you want to leave this room?":"确定离开房间吗?","New host":"选择主持人","Transfer and leave":"移交并离开","Leave room?":"是否要离开房间","Select a new host":"请选择新的房间主持人","Appoint a new host":"指定一位新的主持人","The host closed the room.":"主持人结束会议,已解散房间",Note:"通知",Confirm:"确认",Leave:"离开房间",Dismiss:"解散房间","Moderator changed to ":"主持人已变更为","Muted by the moderator":"已被主持人禁言","Type a message":"说点什么...",Send:"发送","Failed to send the message":"发送消息失败","Applying for the stage":"正在申请上台",Check:"查看","Disable all audios":"禁言所有人","Disable all videos":"禁画所有人","All mute":"全体静音","All current and new members will be muted.":"所有及新加入的成员将被静音","All current and new members will turn off their videos.":"所有及新加入的成员将关闭视频","All stop video":"全体禁画","Lift all mute":"取消全体静音","Should we turn on the video for everyone":"是否打开全员视频","Can you lift all mute":"是否取消全体静音","Lift stop all video":"取消全体禁画","No relevant user found.":"未找到相关用户","Member List":"成员列表",Unmute:"解除禁言","Cancel Unmute":"取消解除禁言",Mute:"禁言",members:"人","Failed to get chat message":"获取聊天消息失败","Agree to the stage":"同意上台","Cancel stage":"取消邀请上台","Invite stage":"邀请上台","Refuse stage":"拒绝上台","Enable video":"解除禁画","Cancel Enable video":"取消解除禁画","Disable video":"禁画","Enable chat":"允许文字聊天","Disable chat":"禁止文字聊天","Kick out":"踢出房间","is sharing their screen":"的屏幕分享","Apply to stage application":"请求上台申请",Reject:"拒绝","Reject All":"全部拒绝","Please raise your hand to apply":"如果您想发言请先举手申请上麦","The host invites you to speak on stage":"主持人邀请您上台发言","After agreeing to go on stage, you can turn on the camera and microphone. Do you agree to go on stage?":"同意上台后可打开摄像头和麦克风,是否同意上台?","Hand down":"手放下","Step down(Master)":"邀请下台","Step down":"下台","The host has approved your application":"主持人同意了你的上台申请","The host has rejected your application for the stage":"主持人拒绝了你的上台申请","You have been invited by the host to step down, please raise your hand if you need to speak":"您已被主持人邀请下台,需要发言请先举手","Select a screen/window":"选择屏幕/窗口",Screen:"屏幕",Window:"窗口",Share:"开始分享","Select a screen or window first":"请选择要分享的屏幕或者窗口",Grid:"一屏九等分","Gallery on right":"右侧成员列表","Gallery at top":"顶部成员列表","Network ":"网络","Latency: ":"网络延迟:","Frame rate: ":"帧率:","Bitrate: ":"码率:",Unknown:"状态未知",Excellent:"状态极佳",Good:"状态较好",Fair:"状态一般",Poor:"状态差","Very poor":"状态极差",Disconnected:"断开连接","Share the room ID or invite link":"您可以通过复制房间号或者邀请链接的方式邀请更多人加入房间","Invite by room number":"通过房间号邀请","Invite via room link":"通过房间链接邀请","Room Link":"房间链接","You can share the room number or link to invite more people to join the room.":"您可以分享房间号或链接邀请更多人加入房间。","If you have any questions, please feel free to join our QQ group or send an email":"如果有任何问题欢迎加入我们的QQ群或者发送邮件。","Room QR code":"房间二维码","Search for conference attendees":"搜索参会成员","Invite via client scheme":"通过客户端 scheme 邀请","Contact us":"联系我们","Member management":"成员管理","Grid view":"宫格视图","Join our QQ group chat or email us.":"如果有任何问题欢迎加入我们的QQ群或者发送邮件","group chat":"QQ 群",Email:"邮箱地址","Audio settings":"声音设置","Camera settings":"摄像头设置","Copied successfully":"复制成功","accepted the invitation to the stage":"接受了上台邀请","declined the invitation to the stage":"拒绝了上台邀请","The host has muted all":"主持人已开启全体静音","The host has unmuted all":"主持人已解除全体静音","The host has turned off your microphone":"主持人已关闭您的麦克风","The host invites you to turn on the microphone":"主持人邀请你打开麦克风","The host has turned on the ban on all paintings":"主持人已开启全体禁画","The host has lifted the ban on all paintings":"主持人已解除全体禁画","The host has turned on the ban on all chat":"主持人已开启全体禁止文字聊天","The host has lifted the ban on all chat":"主持人已解除全体禁止文字聊天","The host has turned off your camera":"主持人已关闭您的摄像头","The host invites you to turn on the camera":"主持人邀请你打开摄像头","The host has turned off your screen sharing":"主持人已关闭您的屏幕分享","Turn on the camera":"打开摄像头","Keep it closed":"保持关闭","You have been banned from text chat by the host":"您被主持人禁止文字聊天","You are allowed to text chat by the host":"您被主持人允许文字聊天","kicked out of the room by the host":"被主持人踢出房间","kicked out of the room by other device":"相同账号在其他客户端进入房间","kicked out of the room by serve":"被服务端踢出房间","Reject on Stage failed, please retry":"拒绝 {userName} 上台失败, 请重试","Has been fully muted and cannot open the microphone":"已被全员静音,无法打开麦克风","Has been muted by the host and cannot open the microphone":"已被主持人静音,无法打开麦克风","To apply to speak in the room, please raise your hand first to apply for the microphone":"申请发言房间,请先举手申请上麦","Has been full static painting, can not open the video":"已被全员静画,无法打开视频","It has been stilled by the host and cannot open the video":"已被主持人静画,无法打开视频","Failed to enter the room.":"进入房间失败!","Has been full static painting, can not share your screen":"已被全员静画,无法打开屏幕分享","Microphone not detected on current device":"当前设备未检测到麦克风","Camera not detected on current device":"当前设备未检测到摄像头","Camera And Microphone not detected on current device":"当前设备未检测到摄像头和麦克风","Another user is currently sharing the screen, screen sharing is not possible.":"当前有其他用户正在屏幕共享,无法进行屏幕共享","This action causes the room to be exited, does it continue?":"该操作会导致退出房间,是否继续?","This action causes the room to be disbanded, does it continue?":"该操作会导致解散房间,是否继续?"},l={"":"","Sign in":"Sign in","Phone Login":"Phone Login","Email Login":"Email Login","I have read and agree to the":"I have read and agree to the","Privacy Policy":"Privacy Policy",and:"and","Terms of Use":"Terms of Use",Login:"Login","Mobile number":"Mobile number","Verification code":"Verification code","Email address":"Email address","Please enter a valid phone number!":"Please enter a valid phone number!","Please enter a valid email address!":"Please enter a valid email address!","Please enter your phone number!":"Please enter your phone number!","Please enter your email address!":"Please enter your email address!","Please enter the verification code!":"Please enter the verification code!","Please accept the privacy policy and user agreement!":"Please accept the privacy policy and user agreement!","Incorrect verification code, please check the code!":"Incorrect verification code, please check the code!","The verification code has expired, please retrieve a new one!":"The verification code has expired, please retrieve a new one!","The verification code has been used, please retrieve a new one!":"The verification code has been used, please retrieve a new one!","Login failed, please try again.":"Login failed, please try again.",SEND:"SEND"," ":" ","The room does not exist, please confirm the room number or create a room!":"The room does not exist, please confirm the room number or create a room!","Log out":"Log out","Edit profile":"Edit profile","User Name":"User Name","Please input user name":"Please input user name","Username length should be greater than 0":"Username length should be greater than 0",Save:"Save",Camera:"Camera",Mic:"Mic","Off Camera":"Off Camera","Mic settings":"Mic settings",Output:"Output",Speaker:"Speaker",Test:"Test",Stop:"Stop",Preview:"Preview",Mirror:"Mirror",Resolution:"Resolution","More Camera Settings":"More Camera Settings","Join the room ?":"Join the room ?","You are invited to room ":"You are invited to room ",Room:"Room",Join:"Join",Sure:"Sure","New Room":"New Room","Room Type":"Room Type","Your Name":"Your Name","Grid view":"Grid view","Speaker view":"Speaker view","Turn on the microphone":"Turn on the microphone","Turn on the speaker":"Turn on the speaker","Turn on the video":"Turn on the video","Free Speech Room":"Free Speech Room","Raise Hand Room":"Raise Hand Room","Join Room":"Join Room","Enter room ID":"Enter room ID","video conferencing":" 's video conferencing","Room ID":"Room ID","Low Definition":"Low Definition","Standard Definition":"Standard Definition","High Definition":"High Definition","Super Definition":"Super Definition","End sharing":"End sharing","Stop sharing?":"Stop sharing?","Stop sharing":"Stop sharing",Sharing:"Sharing","Share screen":"Share screen","Others will no longer see your screen after you stop sharing. Are you sure you want to stop?":"Others will no longer see your screen after you stop sharing. Are you sure you want to stop?","Others will no longer see your screen after you stop sharing.":"Others will no longer see your screen after you stop sharing.","You currently do not have sharing permission, please raise your hand to apply for sharing permission first":"You currently do not have sharing permission, please raise your hand to apply for sharing permission first",Host:"Host",Me:"Me",me:"me",More:"More","Raise hand":"Raise hand",Agree:"Agree",Chat:"Chat",Cancel:"Cancel",Exit:"Exit","Full screen":"Full screen",Members:"Members",Invite:"Invite",Settings:"Settings",EndPC:"End",EndH5:"End",'You are currently the room host, please select the appropriate action.If you select "Leave Room", the room will not be dissolved and you will need to appoint a new host.':'You are currently the room host, please select the appropriate action.If you select "Leave Room", the room will not be dissolved and you will need to appoint a new host.',"If you do not want to end the meeting, please designate a new host before leaving the meeting.":"If you do not want to end the meeting, please designate a new host before leaving the meeting.","Are you sure you want to leave this room?":"Are you sure you want to leave this room?","New host":"New host","Transfer and leave":"Transfer and leave","Leave room?":"Leave room?","Select a new host":"Select a new host","Appoint a new host":"Appoint a new host","The host closed the room.":"The host closed the room.",Note:"Note",Confirm:"Confirm",Leave:"Leave",Dismiss:"Dismiss","Moderator changed to ":"Moderator changed to ","Muted by the moderator":"Muted by the moderator","Type a message":"Type a message",Send:"Send","Failed to send the message":"Failed to send the message","Applying for the stage":"Applying for the stage",Check:"Check","Disable all audios":"Disable all audios","Disable all videos":"Disable all videos","Member List":"Member List","All mute":"All mute","All stop video":"All stop video","Lift all mute":"Lift all mute","Should we turn on the video for everyone":"Should we turn on the video for everyone","Can you lift all mute":"Can you lift all mute","Lift stop all video":"Lift stop all video",Unmute:"Unmute","Cancel Unmute":"Cancel Unmute",Mute:"Mute",members:"members","Failed to get chat message":"Failed to get chat message","Agree to the stage":"Agree to the stage","Cancel stage":"Cancel stage","Invite stage":"Invite stage","Refuse stage":"Refuse stage","Step down":"Step down","Step down(Master)":"Step down","Enable video":"Enable video","Disable video":"Disable video","Enable chat":"Enable chat","Disable chat":"Disable chat","Kick out":"Kick out","is sharing their screen":"is sharing their screen","Apply to stage application":"Apply to stage application",Reject:"Reject","Reject All":"Reject All","Please raise your hand to apply":"Please raise your hand to apply","The host invites you to speak on stage":"The host invites you to speak on stage","After agreeing to go on stage, you can turn on the camera and microphone. Do you agree to go on stage?":"After agreeing to go on stage, you can turn on the camera and microphone. Do you agree to go on stage?","Hand down":"Hand down","The host has approved your application":"The host has approved your application","The host has rejected your application for the stage":"The host has rejected your application for the stage","You have been invited by the host to step down, please raise your hand if you need to speak":"You have been invited by the host to step down, please raise your hand if you need to speak","Select a screen/window":"Select a screen/window",Screen:"Screen",Window:"Window",Share:"Share","Select a screen or window first":"Select a screen or window first",Grid:"Grid",Tips:"Tips","Gallery on right":"Gallery on right","Gallery at top":"Gallery at top","Network ":"Network ","Latency: ":"Latency: ","Frame rate: ":"Frame rate: ","Bitrate: ":"Bitrate: ",Unknown:"Unknown",Excellent:"Excellent",Good:"Good",Fair:"Fair",Poor:"Poor","Very poor":"Very poor",Disconnected:"Disconnected","Share the room ID or invite link":"Share the room ID or invite link","Invite by room number":"Invite by room number","Invite via room link":"Invite via room link","Room Link":"Room Link","You can share the room number or link to invite more people to join the room.":"You can share the room number or link to invite more people to join the room.","If you have any questions, please feel free to join our QQ group or send an email":"If you have any questions, please feel free to join our QQ group or send an email","Room QR code":"Room QR code","Search for conference attendees":"Search for conference attendees","Invite via client scheme":"Invite via client scheme","All current and new members will be muted.":"All current and new members will be muted","All current and new members will turn off their videos.":"All current and new members will turn off their videos","No relevant user found.":"No relevant user found.","Contact us":"Contact us","Member management":"Member management","Join our QQ group chat or email us.":"Join our QQ group chat or email us.","group chat":"group chat",Email:"Email","Audio settings":"Audio settings","Camera settings":"Camera settings","Copied successfully":"Copied successfully","accepted the invitation to the stage":"accepted the invitation to the stage","declined the invitation to the stage":"declined the invitation to the stage","The host has muted all":"The host has muted all","The host has unmuted all":"The host has unmuted all","The host has turned off your microphone":"The host has turned off your microphone","The host invites you to turn on the microphone":"The host invites you to turn on the microphone","The host has turned on the ban on all paintings":"The host has turned on the ban on all paintings","The host has lifted the ban on all paintings":"The host has lifted the ban on all paintings","The host has turned on the ban on all chat":"The host has turned on the ban on all chat","The host has lifted the ban on all chat":"The host has lifted the ban on all chat","The host has turned off your camera":"The host has turned off your camera","The host invites you to turn on the camera":"The host invites you to turn on the camera","The host has turned off your screen sharing":"The host has turned off your screen sharing","Turn on the camera":"Turn on the camera","Keep it closed":"Keep it closed","You have been banned from text chat by the host":"You have been banned from text chat by the host","You are allowed to text chat by the host":"You are allowed to text chat by the host","kicked out of the room by the host":"kicked out of the room by the host","kicked out of the room by other device":"kicked out of the room by other device","kicked out of the room by serve":"kicked out of the room by serve","Reject on Stage failed, please retry":"Reject {userName} on Stage failed, please retry","Has been fully muted and cannot open the microphone":"Has been fully muted and cannot open the microphone","Has been muted by the host and cannot open the microphone":"Has been muted by the host and cannot open the microphone","To apply to speak in the room, please raise your hand first to apply for the microphone":"To apply to speak in the room, please raise your hand first to apply for the microphone","Has been full static painting, can not open the video":"Has been full static painting, can not open the video","It has been stilled by the host and cannot open the video":"It has been stilled by the host and cannot open the video","Failed to enter the room.":"Failed to enter the room.","Has been full static painting, can not share your screen":"Has been full static painting, can not share your screen.","Microphone not detected on current device":"Microphone not detected on current device","Camera not detected on current device":"Camera not detected on current device","Camera And Microphone not detected on current device":"Camera And Microphone not detected on current device","Another user is currently sharing the screen, screen sharing is not possible.":"Another user is currently sharing the screen, screen sharing is not possible.","This action causes the room to be disbanded, does it continue?":"This action causes the room to be disbanded, does it continue?","This action causes the room to be exited, does it continue?":"This action causes the room to be exited, does it continue?"};n["default"].use(i.Z,{bridge:!0});var c=(0,o.o)({legacy:!1,locale:(0,a.G)()||"zh-CN",messages:{"zh-CN":s,"en-US":l}},i.Z)},251:function(e,t,r){"use strict";r.d(t,{o:function(){return l}});var n=r(1020),i=r(5581),o=r(3927),a=r(4237),s=r(2843);const l=(0,n.Q_)("basic",{state:()=>({sdkAppId:0,userId:"",userSig:"",userName:"",avatarUrl:"",useStringRoomId:!1,roomId:"",roomMode:"FreeSpeech",isSidebarOpen:!1,layout:o._.NINE_EQUAL_POINTS,showSettingDialog:!1,showApplyUserList:!1,activeSettingTab:"audio",isLocalStreamMirror:!0,isFrontCamera:!0,sidebarName:"",masterUserId:"",localQuality:0,lang:(0,i.G)(),defaultTheme:"black",isSupportSwitchTheme:!0,showHeaderTool:!0,shareLink:"",isRoomLinkVisible:!(0,a.Al)()&&!s.e}),getters:{},actions:{setSdkAppId(e){this.sdkAppId=e},setUserId(e){this.userId=e},setUserSig(e){this.userSig=e},setUserName(e){this.userName=e},setAvatarUrl(e){this.avatarUrl=e},setRoomId(e){this.roomId=e,this.useStringRoomId="string"===typeof e},setRoomMode(e){this.roomMode=e},setSidebarOpenStatus(e){this.isSidebarOpen=e},setSidebarName(e){this.sidebarName=e},setLayout(e){this.layout=e},setShowSettingDialog(e){this.showSettingDialog=e},setShowApplyUserList(e){this.showApplyUserList=e},setActiveSettingTab(e){this.activeSettingTab=e},setIsLocalStreamMirror(e){this.isLocalStreamMirror=e},setIsFrontCamera(e){this.isFrontCamera=e},setDefaultTheme(e){this.defaultTheme=e},setIsSupportSwitchTheme(e){this.isSupportSwitchTheme=e},setShowHeaderTool(e){this.showHeaderTool=e},setShareLink(e){this.shareLink=e},setIsRoomLinkVisible(e){this.isRoomLinkVisible=e},setBasicInfo(e){if(!e)return;const{sdkAppId:t,userId:r,userSig:n,userName:i,avatarUrl:o,roomId:s,theme:l,showHeaderTool:c}=e;t&&this.setSdkAppId(t),r&&this.setUserId(r),n&&this.setUserSig(n),i&&this.setUserName(i),o&&this.setAvatarUrl(o),s&&this.setRoomId(s),l&&!(0,a.o8)(l.defaultTheme)&&this.setDefaultTheme(l.defaultTheme),l&&!(0,a.o8)(l.isSupportSwitchTheme)&&this.setIsSupportSwitchTheme(l.isSupportSwitchTheme),!(0,a.o8)(c)&&this.setShowHeaderTool(c)},setMasterUserId(e){this.masterUserId=e},setLocalQuality(e){const t=e.find((e=>e.userId===this.userId));this.localQuality=t.quality},setLang(e){this.lang=e},reset(){this.isSidebarOpen=!1,this.layout=o._.NINE_EQUAL_POINTS,this.showSettingDialog=!1,this.activeSettingTab="audio",this.isLocalStreamMirror=!0,this.sidebarName="",this.masterUserId="",this.localQuality=0,this.roomId="",this.sdkAppId=0,this.userId="",this.userSig="",this.userName="",this.avatarUrl="",this.useStringRoomId=!1,this.roomMode="FreeSpeech",this.showApplyUserList=!1,this.isFrontCamera=!0,this.defaultTheme="black",this.isSupportSwitchTheme=!0,this.showHeaderTool=!0,this.shareLink=""}}})},4990:function(e,t,r){"use strict";r.d(t,{A:function(){return u}});var n=r(1020),i=r(452),o=r(251),a=r(7175),s=r(3303),l=r(3681);const c=(0,l.Z)(),u=(0,n.Q_)("room",{state:()=>({localUser:{userId:"",userName:"",avatarUrl:"",hasAudioStream:!1,hasVideoStream:!1,hasScreenStream:!1,userRole:i.TUIRole.kGeneralUser,audioVolume:0,onSeat:!1,cameraStreamInfo:{userId:"",userName:"",avatarUrl:"",audioVolume:0,hasAudioStream:!1,hasVideoStream:!1,streamType:i.TUIVideoStreamType.kCameraStream,isVisible:!0},screenStreamInfo:{userId:"",userName:"",avatarUrl:"",hasScreenStream:!1,streamType:i.TUIVideoStreamType.kScreenStream,isVisible:!0}},remoteUserObj:{},isDefaultOpenCamera:!1,isDefaultOpenMicrophone:!1,canControlSelfAudio:!0,canControlSelfVideo:!0,localVideoQuality:i.TUIVideoQuality.kVideoQuality_720p,currentCameraId:"",currentMicrophoneId:"",currentSpeakerId:"",cameraList:[],microphoneList:[],speakerList:[],masterUserId:"",isMicrophoneDisableForAllUser:!1,isCameraDisableForAllUser:!1,isMessageDisableForAllUser:!1,speechMode:i.TUISpeechMode.kFreeToSpeak,maxMembersCount:5,hasVideoStreamObject:{},currentStreamIdListInVisibleView:[],hasOtherScreenShare:!1}),getters:{isMaster(e){return e.localUser.userId===e.masterUserId},isAnchor(e){return!!this.isFreeSpeakMode||(this.isSpeakAfterTakingSeatMode?e.localUser.onSeat:void 0)},isAudience(e){return!this.isFreeSpeakMode&&(this.isSpeakAfterTakingSeatMode?!e.localUser.onSeat:void 0)},isSpeakAfterTakingSeatMode(){return this.speechMode===i.TUISpeechMode.kSpeakAfterTakingSeat},isFreeSpeakMode(){return this.speechMode===i.TUISpeechMode.kFreeToSpeak},isLocalAudioIconDisable(){const e=!this.isMaster&&!this.canControlSelfAudio;return e||this.isAudience},isLocalVideoIconDisable(){const e=!this.isMaster&&!this.canControlSelfVideo;return e||this.isAudience},localStream:e=>{const{userId:t,userName:r,avatarUrl:n,hasAudioStream:i,hasVideoStream:o,audioVolume:a}=e.localUser;return Object.assign(e.localUser.cameraStreamInfo,{userId:t,userName:r,avatarUrl:n,hasAudioStream:i,hasVideoStream:o,audioVolume:a}),e.localUser.cameraStreamInfo},remoteStreamObj:e=>{const t={};return[...Object.values(e.remoteUserObj)].forEach((e=>{const{userId:r,avatarUrl:n,userName:o,onSeat:a,hasAudioStream:s,hasVideoStream:l,hasScreenStream:c,audioVolume:u,isVideoVisible:h,isScreenVisible:d}=e;a&&(t[`${r}_${i.TUIVideoStreamType.kCameraStream}`]=Object.assign(e.cameraStreamInfo,{userId:r,avatarUrl:n,userName:o,hasAudioStream:s,hasVideoStream:l,audioVolume:u,streamType:i.TUIVideoStreamType.kCameraStream,isVisible:h})),c&&(t[`${r}_${i.TUIVideoStreamType.kScreenStream}`]=Object.assign(e.screenStreamInfo,{userId:r,avatarUrl:n,userName:o,hasScreenStream:c,streamType:i.TUIVideoStreamType.kScreenStream,isVisible:d}))})),t},remoteStreamList(){return[...Object.values(this.remoteStreamObj)]},streamList(){return[this.localStream,...Object.values(this.remoteStreamObj)]},streamNumber(){return this.streamList.length},remoteAnchorList:e=>[...Object.values(e.remoteUserObj)].filter((e=>e.onSeat)),userList:e=>[e.localUser,...Object.values(e.remoteUserObj)],userNumber(){return this.userList.length},applyToAnchorList:e=>[...Object.values(e.remoteUserObj)].filter((e=>e.isUserApplyingToAnchor))||[],defaultStreamType(){return Object.keys(this.hasVideoStreamObject).length>this.maxMembersCount?i.TUIVideoStreamType.kCameraStreamLow:i.TUIVideoStreamType.kCameraStream}},actions:{setLocalUser(e){Object.assign(this.localUser,e)},updateLocalStream(e){Object.assign(this.localStream,e)},getUserName(e){return e===this.localUser.userId?this.localUser.userName||e:this.remoteUserObj[e]?.userName||e},getNewUserInfo(e){const t={userId:e,userName:"",avatarUrl:"",hasAudioStream:!1,hasVideoStream:!1,hasScreenStream:!1,isVideoVisible:!1,isScreenVisible:!1,userRole:i.TUIRole.kGeneralUser,audioVolume:0,onSeat:!this.isSpeakAfterTakingSeatMode,cameraStreamInfo:{userId:e,userName:"",avatarUrl:"",audioVolume:0,hasAudioStream:!1,hasVideoStream:!1,streamType:i.TUIVideoStreamType.kCameraStream,isVisible:!1},screenStreamInfo:{userId:e,userName:"",avatarUrl:"",hasScreenStream:!1,streamType:i.TUIVideoStreamType.kScreenStream,isVisible:!1}};return this.isMaster&&Object.assign(t,{isChatMutedByMaster:!1,isUserApplyingToAnchor:!1,isInvitingUserToAnchor:!1}),t},setUserList(e){e.forEach((e=>{if(e.userId!==this.localUser.userId)if(this.remoteUserObj[e.userId])Object.assign(this.remoteUserObj[e.userId],e);else{const t=Object.assign(this.getNewUserInfo(e.userId),e);a.$B?this.remoteUserObj[e.userId]=t:s.Z.set(this.remoteUserObj,e.userId,t)}else Object.assign(this.localUser,e)}))},addRemoteUser(e){const{userId:t}=e,r=(0,o.o)();if(t&&t!==r.userId)if(this.remoteUserObj[t])Object.assign(this.remoteUserObj[t],e);else{const r=Object.assign(this.getNewUserInfo(t),e);a.$B?this.remoteUserObj[t]=r:s.Z.set(this.remoteUserObj,t,r)}},updateRemoteUser(e,t){const r=this.remoteUserObj[e];if(!r)return;const{nick:n,avatar:i}=t;Object.assign(r,{userName:n,avatarUrl:i})},updateOnSeatList(e,t,r){"{}"===JSON.stringify(this.remoteUserObj)?e.forEach((e=>{const{userId:t}=e;if(t===this.localUser.userId)Object.assign(this.localUser,{onSeat:!0});else{const e=Object.assign(this.getNewUserInfo(t),{onSeat:!0});a.$B?this.remoteUserObj[t]=e:s.Z.set(this.remoteUserObj,t,e)}})):(t.forEach((e=>{const{userId:t}=e;if(t===this.localUser.userId)Object.assign(this.localUser,{onSeat:!0});else{const e=this.remoteUserObj[t];if(e)Object.assign(e,{onSeat:!0});else{const e=Object.assign(this.getNewUserInfo(t),{onSeat:!0});a.$B?this.remoteUserObj[t]=e:s.Z.set(this.remoteUserObj,t,e)}}})),r.forEach((e=>{if(e.userId===this.localUser.userId)Object.assign(this.localUser,{onSeat:!1});else{const t=this.remoteUserObj[e.userId];t&&Object.assign(t,{onSeat:!1})}})))},updateUserVideoState(e,t,r){const n=(0,o.o)();let l=e===n.userId?this.localUser:this.remoteUserObj[e];!l&&r&&(l=this.getNewUserInfo(e),a.$B?this.remoteUserObj[e]=l:s.Z.set(this.remoteUserObj,e,l)),l&&(this.updatehasVideoStreamObject(l,r,e===n.userId),t===i.TUIVideoStreamType.kCameraStream||t===i.TUIVideoStreamType.kCameraStreamLow?l.hasVideoStream=r:t===i.TUIVideoStreamType.kScreenStream&&(l.hasScreenStream=r))},updatehasVideoStreamObject(e,t,r){if(r)return;const{userId:n,cameraStreamInfo:i,screenStreamInfo:o,hasVideoStream:l}=e,c=`${n}_${l?i.streamType:o.streamType}`;t?a.$B?this.hasVideoStreamObject[c]=e:s.Z.set(this.hasVideoStreamObject,c,e):a.$B?delete this.hasVideoStreamObject[c]:s.Z["delete"](this.hasVideoStreamObject,c)},updateUserAudioState(e,t){const r=(0,o.o)();let n=e===r.userId?this.localUser:this.remoteUserObj[e];!n&&t&&(n=this.getNewUserInfo(e),a.$B?this.remoteUserObj[e]=n:s.Z.set(this.remoteUserObj,e,n)),n&&(n.hasAudioStream=t)},removeRemoteUser(e){const t=(0,o.o)();e&&e!==t.userId&&(a.$B?delete this.remoteUserObj[e]:s.Z["delete"](this.remoteUserObj,e))},updateUserStreamVisible(e){e.forEach((e=>{const t=e.slice(0,e.length-2),r=Number(e.slice(-1));if(t===this.localUser.userId)return;const n=this.remoteUserObj[t];n&&(r===i.TUIVideoStreamType.kCameraStream||r===i.TUIVideoStreamType.kCameraStreamLow?n.isVideoVisible=!0:r===i.TUIVideoStreamType.kScreenStream&&(n.isScreenVisible=!0))})),this.currentStreamIdListInVisibleView.forEach((t=>{const r=t.slice(0,t.length-2),n=Number(t.slice(-1));if(e.indexOf(t)<0){const e=this.remoteUserObj[r];if(!e)return;n===i.TUIVideoStreamType.kCameraStream||n===i.TUIVideoStreamType.kCameraStreamLow?e.isVideoVisible=!1:n===i.TUIVideoStreamType.kScreenStream&&(e.isScreenVisible=!1)}})),this.currentStreamIdListInVisibleView=e},setAudioVolume(e){const t=(0,o.o)();e.forEach((e=>{const{userId:r,volume:n}=e;if(r===t.userId||""===r)this.localUser.audioVolume=n;else{const e=this.remoteUserObj[r];e&&(e.audioVolume=n)}}))},setCurrentCameraId(e){this.currentCameraId=e},setCurrentMicrophoneId(e){this.currentMicrophoneId=e},setCurrentSpeakerId(e){this.currentSpeakerId=e},setRoomInfo(e){const{roomOwner:t,isMicrophoneDisableForAllUser:r,isCameraDisableForAllUser:n,isMessageDisableForAllUser:o,speechMode:a}=e;this.localUser.userId===t&&(this.localUser.userRole=i.TUIRole.kRoomOwner),this.masterUserId=t,this.isMicrophoneDisableForAllUser=r,this.isCameraDisableForAllUser=n,this.isMessageDisableForAllUser=o,this.speechMode=a,this.canControlSelfAudio=!this.isMicrophoneDisableForAllUser,this.canControlSelfVideo=!this.isCameraDisableForAllUser},setDisableMicrophoneForAllUserByAdmin(e){this.isMicrophoneDisableForAllUser=e},setDisableCameraForAllUserByAdmin(e){this.isCameraDisableForAllUser=e},setDisableMessageAllUserByAdmin(e){this.isMessageDisableForAllUser=e},setMasterUserId(e){this.masterUserId=e},setRoomParam(e){if(!e)return;const{isOpenCamera:t,isOpenMicrophone:r,defaultCameraId:n,defaultMicrophoneId:i,defaultSpeakerId:o}=e;n&&(this.setCurrentCameraId(n),c.instance?.setCurrentCameraDevice({deviceId:n})),i&&(this.setCurrentMicrophoneId(i),c.instance?.setCurrentMicDevice({deviceId:i})),o&&(this.setCurrentSpeakerId(o),c.instance?.setCurrentSpeakerDevice({deviceId:o})),(this.isMaster||!this.isMicrophoneDisableForAllUser&&this.isFreeSpeakMode)&&"boolean"===typeof r&&(this.isDefaultOpenMicrophone=r),(this.isMaster||!this.isCameraDisableForAllUser&&this.isFreeSpeakMode)&&"boolean"===typeof t&&(this.isDefaultOpenCamera=t)},setCanControlSelfAudio(e){this.canControlSelfAudio=e},setCanControlSelfVideo(e){this.canControlSelfVideo=e},updateVideoQuality(e){this.localVideoQuality=e},setCameraList(e){this.cameraList=e,!this.currentCameraId&&e.length>0&&this.setCurrentCameraId(e[0].deviceId)},setMicrophoneList(e){this.microphoneList=e,!this.currentMicrophoneId&&e.length>0&&this.setCurrentMicrophoneId(e[0].deviceId)},setSpeakerList(e){this.speakerList=e,!this.currentSpeakerId&&e.length>0&&this.setCurrentSpeakerId(e[0].deviceId)},setMicrophoneDisableState(e){this.isMicrophoneDisableForAllUser=e},setCameraDisableState(e){this.isCameraDisableForAllUser=e},setMuteUserChat(e,t){const r=this.remoteUserObj[e];r&&(r.isChatMutedByMaster=t)},setRemoteUserRole(e,t){const r=this.remoteUserObj[e];r&&(r.userRole=t)},setRequestUserOpenMic(e){const{userId:t,isRequesting:r,requestId:n}=e,i=this.remoteUserObj[t];i&&(i.isRequestingUserOpenMic=r,i.requestUserOpenMicRequestId=r?n:"")},setRequestUserOpenCamera(e){const{userId:t,isRequesting:r,requestId:n}=e,i=this.remoteUserObj[t];i&&(i.isRequestingUserOpenCamera=r,i.requestUserOpenCameraRequestId=r?n:"")},addApplyToAnchorUser(e){const{userId:t,requestId:r}=e,n=this.remoteUserObj[t];n&&(n.isUserApplyingToAnchor=!0,n.applyToAnchorRequestId=r)},removeApplyToAnchorUser(e){const t=this.remoteUserObj[e];t&&(t.isUserApplyingToAnchor=!1,t.applyToAnchorRequestId="")},addInviteToAnchorUser(e){const{userId:t,requestId:r}=e,n=this.remoteUserObj[t];n&&(n.isInvitingUserToAnchor=!0,n.inviteToAnchorRequestId=r)},removeInviteToAnchorUser(e){const t=this.remoteUserObj[e];t&&(t.isInvitingUserToAnchor=!1,t.inviteToAnchorRequestId="")},setHasOtherScreenShare(e){this.hasOtherScreenShare=e},reset(){this.localUser={userId:"",userName:"",avatarUrl:"",hasAudioStream:!1,hasVideoStream:!1,hasScreenStream:!1,userRole:i.TUIRole.kGeneralUser,audioVolume:0,onSeat:!1,cameraStreamInfo:{userId:"",userName:"",avatarUrl:"",audioVolume:0,hasAudioStream:!1,hasVideoStream:!1,streamType:i.TUIVideoStreamType.kCameraStream,isVisible:!0},screenStreamInfo:{userId:"",userName:"",avatarUrl:"",hasScreenStream:!1,streamType:i.TUIVideoStreamType.kScreenStream,isVisible:!0}},this.remoteUserObj={},this.isDefaultOpenCamera=!1,this.isDefaultOpenMicrophone=!1,this.canControlSelfAudio=!0,this.canControlSelfVideo=!0,this.localVideoQuality=i.TUIVideoQuality.kVideoQuality_720p,this.currentCameraId="",this.currentMicrophoneId="",this.currentSpeakerId="",this.cameraList=[],this.microphoneList=[],this.speakerList=[],this.masterUserId="",this.isMicrophoneDisableForAllUser=!1,this.isCameraDisableForAllUser=!1,this.isMessageDisableForAllUser=!1,this.speechMode=i.TUISpeechMode.kFreeToSpeak,this.hasVideoStreamObject={},this.hasOtherScreenShare=!1}}})},5581:function(e,t,r){"use strict";r.d(t,{G:function(){return i}});var n=r(4237);function i(){let e=(0,n.eY)("lang")||localStorage.getItem("tuiRoom-language")||navigator.language||"zh";return e=e.replace(/_/,"-").toLowerCase(),"zh-cn"===e||"zh"===e?e="zh-CN":"en"!==e&&"en-us"!==e&&"en-GB"!==e||(e="en-US"),e}},6419:function(e,t,r){"use strict";var n;r.d(t,{Z:function(){return u}}),function(e){e["ON_CHANGE_LOG_LEVEL"]="onChangeLogLevel"}(n||(n={}));const i={LOG_LEVEL_DEBUG:-1,LOG_LEVEL_LOG:0,LOG_LEVEL_INFO:1,LOG_LEVEL_WARN:2,LOG_LEVEL_ERROR:3,LOG_LEVEL_NON_LOGGING:4};var o;function a(e){const t=e.toString().length;let r;switch(t){case 1:r=`00${e}`;break;case 2:r=`0${e}`;break;default:r=e;break}return r}function s(e){const t=new Date;return`${t.toLocaleTimeString("en-US",{hour12:!1})}.${a(t.getMilliseconds())} [${e}]:`}(function(e){e["MAIN"]="main-process",e["RENDER"]="render-process"})(o||(o={}));let l=i.LOG_LEVEL_DEBUG;const c={debug(...e){l<=i.LOG_LEVEL_DEBUG&&console.debug(`${s(o.RENDER)}`,...e)},log(...e){l<=i.LOG_LEVEL_LOG&&console.log(`${s(o.RENDER)}`,...e)},info(...e){l<=i.LOG_LEVEL_INFO&&console.info(`${s(o.RENDER)}`,...e)},warn(...e){l<=i.LOG_LEVEL_WARN&&console.warn(`${s(o.RENDER)}`,...e)},error(...e){l<=i.LOG_LEVEL_ERROR&&console.error(`${s(o.RENDER)}`,...e)},setLevel(e){e>=i.LOG_LEVEL_DEBUG&&e<=i.LOG_LEVEL_NON_LOGGING?(console.log(`${s(o.RENDER)} set log level from ${l} to ${e}`),l=e,window.electron?.ipcRenderer&&window.electron.ipcRenderer.send(n.ON_CHANGE_LOG_LEVEL,e)):console.error(`${s(o.RENDER)} logger.setLevel() invalid params:${e}`)},getLevel(){return l}};var u=c},7175:function(e,t,r){"use strict";r.d(t,{$B:function(){return o},P_:function(){return i},Uh:function(){return a}});var n=r(6369);const i=/^2\.7\.*/.test(n.version),o=/^3\.*/.test(n.version),a=void 0},2843:function(e,t,r){"use strict";r.d(t,{e:function(){return n},t:function(){return i}});const n="undefined"!==typeof wx&&"function"===typeof wx.getSystemInfoSync&&Boolean(wx.getSystemInfoSync().fontSizeSetting),i=window?.matchMedia("(max-width: 600px)").matches||n},4237:function(e,t,r){"use strict";r.d(t,{jO:function(){return i},Ds:function(){return o},Pr:function(){return l},eY:function(){return c},Al:function(){return u},o8:function(){return h},EV:function(){return s},P2:function(){return a}});var n=r(2843);const i=e=>new Promise(((t,r)=>{if(n.e)uni.setClipboardData({data:e,success(){uni.getClipboardData({success(e){t({code:0,data:e})},fail(e){r({code:-1,err:e})}})},fail(e){r({code:-1,err:e})}});else try{navigator.clipboard.writeText(`${e}`),t({code:0,data:e})}catch(i){r({code:-1,err:i})}}));function o(e,t){let r;return function(...n){r>0&&clearTimeout(r),r=window?.setTimeout((()=>{e.apply(this,n),r=-1}),t)}}function a(e,t){let r=0;return function(...n){const i=Date.now();i-r>t&&(e.apply(this,n),r=i)}}function s(e){const t=e;t?.requestFullscreen?t?.requestFullscreen():t?.mozRequestFullScreen?t?.mozRequestFullScreen():t?.webkitRequestFullScreen?t?.webkitRequestFullScreen():t?.msRequestFullscreen&&t?.msRequestFullscreen()}function l(){if(!document?.fullscreenElement&&!document?.webkitFullscreenElement&&!document?.mozFullScreenElement)return;const e=document;e?.exitFullscreen?e?.exitFullscreen():e?.msExitFullscreen?e?.msExitFullscreen():e?.mozCancelFullScreen?e?.mozCancelFullScreen():e?.webkitExitFullscreen&&e?.webkitExitFullscreen()}function c(e){const t=window?.location.href.replace(/^[^?]*\?/,""),r=new RegExp(`(^|&)${e}=([^]*)(&|$|)`,"i"),n=t?.match(r);return n?n[2]:null}function u(){const e=navigator?.userAgent.toLowerCase();return e?.indexOf(" electron/")>-1}function h(e){return"undefined"===typeof e}},3303:function(e,t,r){"use strict";var n=r(6369);t["Z"]=n["default"]},3470:function(e,t,r){"use strict";var n=r(6369),i=function(){var e=this,t=e._self._c;return t("div",{attrs:{id:"app"}},[t("router-view")],1)},o=[],a=r(3736),s={},l=(0,a.Z)(s,i,o,!1,null,null,null),c=l.exports,u=r(1420),h=r(1020),d=r(8499),f=r.n(d),p=r(7357);n["default"].use(h.og);const m=(0,h.WB)();n["default"].use(f()),n["default"].use(p.Z),n["default"].config.productionTip=!1,u.Z.beforeEach(((e,t,r)=>{let n=e.fullPath;if(-1!=n.indexOf("name")&&-1!=n.indexOf("id")){let e=n.split("name="),t=e[1],i=t.split("&id=");sessionStorage.setItem("userName",i[0]),sessionStorage.setItem("id",i[1]),r()}else r()})),new n["default"]({pinia:m,router:u.Z,render:e=>e(c)}).$mount("#app")},1420:function(e,t,r){"use strict";r.d(t,{Z:function(){return Wa}});var n=r(6369),i=r(2631),o=function(){var e=this,t=e._self._c;return t("div",{staticClass:"home-container"},[t("div",{staticClass:"header"},[t("user-info",{staticClass:"header-item user-info",attrs:{"user-id":e.userId,"user-name":e.userName,"user-avatar":e.userAvatar},on:{"log-out":e.handleLogOut}}),t("language-icon",{staticClass:"header-item language"}),t("switch-theme",{staticClass:"header-item theme"})],1),e.isMobile?e._e():t("stream-preview",{ref:"streamPreviewRef"}),t("room-control",{ref:"roomControlRef",attrs:{"given-room-id":e.givenRoomId,"user-name":e.userName||e.userId},on:{"create-room":e.handleCreateRoom,"enter-room":e.handleEnterRoom}})],1)},a=[],s=(r(7658),r(9643)),l=r(9139),c=r(7698),u=function(){var e=this,t=e._self._c,r=e._self._setupProxy;return t("div",[t("div",{directives:[{name:"loading",rawName:"v-loading",value:r.loading,expression:"loading"}],staticClass:"stream-container",attrs:{"element-loading-background":"#000000"}},[t("div",{ref:"streamPreviewRef",staticClass:"stream-preview",attrs:{id:"stream-preview"}}),r.isCameraMuted?t("div",{staticClass:"stream-info"},[t("span",{staticClass:"attention-info"},[e._v(e._s(r.t("Off Camera")))])]):e._e(),t("div",{staticClass:"control-region"},[t(r.IconButton,{ref:"audioIconButtonRef",attrs:{title:r.t("Mic"),"is-active":r.isMicMuted,"hide-hover-effect":!0,"has-more":!0},on:{"click-icon":r.toggleMuteAudio,"click-more":r.handleMicSetting}},[t(r.AudioIcon,{attrs:{"audio-volume":r.audioVolume,"is-muted":r.isMicMuted}})],1),t(r.IconButton,{ref:"videoIconButtonRef",staticClass:"icon",attrs:{title:r.t("Camera"),"is-active":r.isCameraMuted,"icon-name":r.cameraIconName,"hide-hover-effect":!0,"has-more":!0},on:{"click-icon":r.toggleMuteVideo,"click-more":r.handleCameraSetting}})],1)]),t("div",{staticClass:"drawer-container"},[t(r.Drawer,{attrs:{"model-value":r.isSettingOpen,modal:!1,title:r.t(r.settingTitle),direction:"rtl","before-close":r.handleDrawerClose,size:480}},["audio"===r.settingTab?t(r.AudioSettingTab,{attrs:{mode:r.SettingMode.DETAIL}}):"video"===r.settingTab?t(r.VideoSettingTab,{attrs:{mode:r.SettingMode.DETAIL,"with-preview":!1}}):e._e()],1)],1)])},h=[],d=r(452),f=r.n(d),p=r(2097),m=r(3927),g=r(3929),v=r(8283),_=r(1342),w=r(4990),b=r(6671),y=r(7357),S=r(3681),k=r(4237),C=r(4679),A=r(3235),I=r(6419),T=(0,n.defineComponent)({__name:"StreamPreview",setup(e,{expose:t}){const r=(0,w.A)(),{t:i}=(0,y.Q)(),o=(0,n.ref)(0),a=(0,k.Al)(),s=(0,S.Z)();t({getRoomParam:M,startStreamPreview:x});const l={isOpenCamera:!0,isOpenMicrophone:!0,defaultCameraId:"",defaultMicrophoneId:"",defaultSpeakerId:""},c=(0,n.ref)(),u=(0,n.ref)(!0),h=(0,n.ref)(!1),T=(0,n.ref)(!1),E=(0,n.computed)((()=>T.value?b.Z.CameraOff:b.Z.CameraOn));async function R(){h.value=!h.value,l.isOpenMicrophone=!h.value,h.value?(await(s.instance?.stopMicDeviceTest()),o.value=0):await(s.instance?.startMicDeviceTest({interval:200}))}async function L(){T.value=!T.value,l.isOpenCamera=!T.value,T.value?await(s.instance?.stopCameraDeviceTest()):await(s.instance?.startCameraDeviceTest({view:"stream-preview"}))}function M(){return l.defaultCameraId=r.currentCameraId,l.defaultMicrophoneId=r.currentMicrophoneId,l.defaultSpeakerId=r.currentSpeakerId,l}const U=e=>{o.value=e};async function x(){const e=await(s.instance?.getCameraDevicesList()),t=await(s.instance?.getMicDevicesList()),n=await(s.instance?.getSpeakerDevicesList()),o=e&&e.length>0,a=t&&t.length>0;let l="";o&&!a?l="Microphone not detected on current device":!o&&a?l="Camera not detected on current device":o||a||(l="Camera And Microphone not detected on current device"),l&&A.T.alert(i(l),i("Note"),{customClass:"custom-element-class",confirmButtonText:i("Confirm")}),e&&r.setCameraList(e),t&&r.setMicrophoneList(t),n&&r.setSpeakerList(n);const c=s.instance?.getCurrentCameraDevice(),h=s.instance?.getCurrentMicDevice(),d=s.instance?.getCurrentSpeakerDevice();c&&c.deviceId&&r.setCurrentCameraId(c.deviceId),h&&h.deviceId&&r.setCurrentMicrophoneId(h.deviceId),d&&d.deviceId&&r.setCurrentSpeakerId(d.deviceId),o&&await(s.instance?.startCameraDeviceTest({view:"stream-preview"})),a&&await(s.instance?.startMicDeviceTest({interval:200})),u.value=!1}async function D(e){const t=["add","remove","active"],{deviceId:n,type:i,state:o}=e;if(i===d.TRTCDeviceType.TRTCDeviceTypeMic){I.Z.log(`onDeviceChange: deviceId: ${n}, type: microphone, state: ${t[o]}`);const e=await(s.instance?.getMicDevicesList());return r.setMicrophoneList(e),void(o===d.TRTCDeviceState.TRTCDeviceStateActive&&r.setCurrentMicrophoneId(n))}if(i===d.TRTCDeviceType.TRTCDeviceTypeSpeaker){I.Z.log(`onDeviceChange: deviceId: ${n}, type: speaker, state: ${t[o]}`);const e=await(s.instance?.getSpeakerDevicesList());return r.setSpeakerList(e),void(o===d.TRTCDeviceState.TRTCDeviceStateActive&&r.setCurrentSpeakerId(n))}if(i===d.TRTCDeviceType.TRTCDeviceTypeCamera){I.Z.log(`onDeviceChange: deviceId: ${n}, type: camera, state: ${t[o]}`);const e=await(s.instance?.getCameraDevicesList());r.setCameraList(e),o===d.TRTCDeviceState.TRTCDeviceStateActive&&r.setCurrentCameraId(n)}}f().once("ready",(async()=>{const e=s.instance?.getTRTCCloud();e?.on("onTestMicVolume",U),s.instance?.on(d.TUIRoomEvents.onDeviceChange,D)})),(0,n.onBeforeUnmount)((async()=>{await(s.instance?.stopCameraDeviceTest()),await(s.instance?.stopMicDeviceTest());const e=s.instance?.getTRTCCloud();e?.off("onTestMicVolume",U),s.instance?.off(d.TUIRoomEvents.onDeviceChange,D)}));const O=(0,n.ref)(!1),N=(0,n.ref)(""),B=(0,n.ref)("");function P(){O.value=!0,N.value="Mic settings",B.value="audio"}function z(){O.value=!0,N.value="Camera settings",B.value="video"}function F(e){B.value="",O.value=!1,e()}return{__sfc:!0,roomStore:r,t:i,audioVolume:o,isElectron:a,roomEngine:s,tuiRoomParam:l,streamPreviewRef:c,loading:u,isMicMuted:h,isCameraMuted:T,cameraIconName:E,toggleMuteAudio:R,toggleMuteVideo:L,getRoomParam:M,onUserVoiceVolume:U,startStreamPreview:x,onDeviceChange:D,isSettingOpen:O,settingTitle:N,settingTab:B,handleMicSetting:P,handleCameraSetting:z,handleDrawerClose:F,IconButton:p.Z,SettingMode:m.n,AudioSettingTab:g.Z,VideoSettingTab:v.Z,AudioIcon:_.Z,Drawer:C.Z}}}),E=T,R=r(3736),L=(0,R.Z)(E,u,h,!1,null,null,null),M=L.exports,U=function(){var e=this,t=e._self._c,r=e._self._setupProxy;return t("div",{staticClass:"control-container"},[r.showRoomDetail?e._e():t("div",{staticClass:"container-header"},[t("div",[r.isEN?t("div",{staticClass:"login-logo"},[t("img",{staticClass:"login-top",attrs:{src:r.logoEn}})]):t("div",{staticClass:"container-icon"},[t(r.SvgIcon,{staticClass:"tencent-cloud",attrs:{"icon-name":"tencent-cloud",size:"custom"}}),t(r.SvgIcon,{staticClass:"tencent-cloud-text",attrs:{"icon-name":"tencent-cloud-text",size:"custom"}})],1)]),t("div",{staticClass:"container-bottom"},[t("div",{directives:[{name:"tap",rawName:"v-tap",value:r.enterRoom,expression:"enterRoom"}],staticClass:"join-room"},[t(r.SvgIcon,{staticClass:"enter-icon",attrs:{"icon-name":"enter-room",size:"custom"}}),t("span",{staticClass:"title"},[e._v(e._s(r.t("Join Room")))])],1)])]),r.showRoomDetail||r.hasGivenRoomId?t("div",{staticClass:"room-detail"},[t("div",{staticClass:"room-detail-header"},[t(r.SvgIcon,{directives:[{name:"tap",rawName:"v-tap",value:r.handleClose,expression:"handleClose"}],staticClass:"close-icon",attrs:{"icon-name":"close-back",size:"custom"}}),r.isJoinRoom||r.hasGivenRoomId?t("span",{staticClass:"room-detail-header-title"},[e._v(e._s(r.t("Join Room")))]):t("span",{staticClass:"room-detail-header-title"},[e._v(e._s(r.t("New Room")))])],1),t("div",{staticClass:"room-detail-middle"},[t("div",{staticClass:"room-detail-info"},[r.isJoinRoom||r.hasGivenRoomId?t("div",{staticClass:"room-detail-info-box"},[t("span",{staticClass:"room-detail-title"},[e._v(" "+e._s(r.t("Room ID")))]),t("input",{directives:[{name:"model",rawName:"v-model",value:r.roomId,expression:"roomId"}],staticClass:"roomid-input",attrs:{type:"number",placeholder:r.t("Enter room ID"),maxlength:"10",enterkeyhint:"complete"},domProps:{value:r.roomId},on:{keyup:r.handleInput,input:function(e){e.target.composing||(r.roomId=e.target.value)}}})]):t("div",{staticClass:"room-detail-info-box",on:{click:r.chooseRoomType}},[t("span",{staticClass:"room-detail-title"},[e._v(" "+e._s(r.t("Room Type")))]),t("div",{staticClass:"room-show-title"},[t("span",{staticClass:"room-show-title"},[e._v(e._s(r.roomType))])]),t(r.SvgIcon,{staticClass:"chevron-down-icon",attrs:{"icon-name":"chevron-down",size:"custom"}})],1),t("div",{staticClass:"room-detail-info-box"},[t("span",{staticClass:"room-detail-title"},[e._v(e._s(r.t("Your Name")))]),t("input",{directives:[{name:"model",rawName:"v-model",value:r.currentUserName,expression:"currentUserName"}],staticClass:"roomid-input",attrs:{enterkeyhint:"complete",maxlength:"16",minlength:"1"},domProps:{value:r.currentUserName},on:{keyup:r.handleInputName,input:function(e){e.target.composing||(r.currentUserName=e.target.value)}}})])]),t("div",{staticClass:"room-detail-setting"},[t("div",{staticClass:"room-detail-setting-list"},[e._v(" "+e._s(r.t("Turn on the microphone"))+" "),t("div",{directives:[{name:"tap",rawName:"v-tap",value:()=>r.toggle("isMicOn"),expression:"() => toggle('isMicOn')"}],staticClass:"slider-box",class:[r.isMicOn&&"slider-open"]},[t("span",{staticClass:"slider-block"})])]),t("div",{staticClass:"room-detail-setting-list"},[e._v(" "+e._s(r.t("Turn on the video"))+" "),t("div",{directives:[{name:"tap",rawName:"v-tap",value:()=>r.toggle("isCamerOn"),expression:"() => toggle('isCamerOn')"}],staticClass:"slider-box",class:[r.isCamerOn&&"slider-open"]},[t("span",{staticClass:"slider-block"})])])])]),t("div",{staticClass:"room-detail-bottom"},[r.isJoinRoom||r.hasGivenRoomId?t("span",{directives:[{name:"tap",rawName:"v-tap",value:()=>r.handleRoomOption("Join"),expression:"() => handleRoomOption('Join')"}],staticClass:"button"},[e._v(e._s(r.t("Join Room")))]):t("span",{directives:[{name:"tap",rawName:"v-tap",value:()=>r.handleRoomOption("New"),expression:"() => handleRoomOption('New')"}],staticClass:"button"},[e._v(e._s(r.t("New Room")))])])]):e._e(),r.showMoreType?t("div",{staticClass:"room-choose-mobile"},[t("div",{ref:"moreTypeRef",class:[r.showMoreType?"room-type-container":"close-room-type-container"]},[t("div",{staticClass:"room-choose-button"},[t("span",{staticClass:"choose-cancel",on:{click:function(e){r.showMoreType=!1}}},[e._v(e._s(r.t("Cancel")))]),t("span",{directives:[{name:"tap",rawName:"v-tap",value:r.handleConfirm,expression:"handleConfirm"}],staticClass:"choose-confirm"},[e._v(e._s(r.t("Sure")))])]),t("div",{staticClass:"room-type-hidden"},[t("span",{directives:[{name:"tap",rawName:"v-tap",value:()=>r.chooseCurrentType("FreeToSpeak"),expression:"() => chooseCurrentType('FreeToSpeak')"}],staticClass:"room-choose-title",class:["FreeToSpeak"===r.mode&&"room-current-title"]},[e._v(e._s(r.t("Free Speech Room")))]),t("span",{directives:[{name:"tap",rawName:"v-tap",value:()=>r.chooseCurrentType("SpeakAfterTakingSeat"),expression:"() => chooseCurrentType('SpeakAfterTakingSeat')"}],staticClass:"room-choose-title",class:["SpeakAfterTakingSeat"===r.mode&&"room-current-title"]},[e._v(e._s(r.t("Raise Hand Room")))])])])]):e._e()])},x=[],D=r(6316),O=r.p+"img/logo.2972e3c8.png",N=r.p+"img/logo-en.a0a06d09.png";function B(){const e=(0,n.computed)((()=>"zh-CN"===y.Z.global.locale.value?O:N)),t=(0,n.computed)((()=>"en-US"===y.Z.global.locale.value)),r=(0,n.ref)(!1),{t:i}=(0,y.Q)();return{logo:e,isEN:t,logoEn:N,t:i,showCreateRoomOption:r}}r(5175);var P=(0,n.defineComponent)({__name:"RoomControlH5",props:{userName:null,givenRoomId:null},emits:["create-room","enter-room","update-user-name"],setup(e,{expose:t,emit:r}){const i=e,{logoEn:o,t:a,isEN:s}=B(),l=(0,n.ref)(),c=(0,w.A)(),u=(0,n.ref)(!1),h=(0,n.ref)(!1),d=(0,n.ref)(!1),f=(0,n.computed)((()=>"FreeToSpeak"===g.value?a("Free Speech Room"):a("Raise Hand Room"))),p=(0,n.ref)(!0),m=(0,n.ref)(!0),g=(0,n.ref)("FreeToSpeak"),v=(0,n.ref)(""),_={isOpenCamera:!0,isOpenMicrophone:!0,defaultCameraId:"",defaultMicrophoneId:"",defaultSpeakerId:""};t({getRoomParam:R});const b=(0,n.ref)(i.userName||`user_${Math.ceil(10*Math.random())}`),y=(0,n.computed)((()=>"string"===typeof i.givenRoomId&&""!==i.givenRoomId));function S(){u.value=!u.value,d.value=!1}function k(){u.value=!u.value,d.value=!0}function C(){h.value=!h.value}function A(e){g.value=e}function I(){h.value=!h.value}function T(){u.value=!1,h.value=!1}function E(e){switch(e){case"isMicOn":p.value=!p.value,_.isOpenMicrophone=p.value;break;case"isCamerOn":m.value=!m.value,_.isOpenCamera=m.value;break;default:break}}function R(){return _.defaultCameraId=c.currentCameraId,_.defaultMicrophoneId=c.currentMicrophoneId,_.defaultSpeakerId=c.currentSpeakerId,_}function L(e){v.value=e.target.value}function M(e){b.value=e.target.value}function U(e){h.value&&!l.value.contains(e.target)&&(h.value=!1)}function x(e){switch(r("update-user-name",b.value),e){case"Join":r("enter-room",String(v.value));break;case"New":r("create-room",g.value);break;default:break}}return(0,n.watch)((()=>i.givenRoomId),(e=>{e&&(v.value=e)}),{immediate:!0}),(0,n.onMounted)((()=>{document?.addEventListener("click",U,!0)})),(0,n.onUnmounted)((()=>{document?.removeEventListener("click",U,!0)})),{__sfc:!0,logoEn:o,t:a,isEN:s,moreTypeRef:l,roomStore:c,showRoomDetail:u,showMoreType:h,isJoinRoom:d,roomType:f,isMicOn:p,isCamerOn:m,mode:g,roomId:v,tuiRoomParam:_,emit:r,props:i,currentUserName:b,hasGivenRoomId:y,createRoom:S,enterRoom:k,chooseRoomType:C,chooseCurrentType:A,handleConfirm:I,handleClose:T,toggle:E,getRoomParam:R,handleInput:L,handleInputName:M,handleDocumentClick:U,handleRoomOption:x,SvgIcon:D.Z}}}),z=P,F=(0,R.Z)(z,U,x,!1,null,"2bcd0d5f",null),Z=F.exports,V=function(){var e=this,t=e._self._c,r=e._self._setupProxy;return t("div",{staticClass:"control-container"},[t("div",{staticClass:"control-content"},[t("img",{directives:[{name:"show",rawName:"v-show",value:e.showLogo,expression:"showLogo"}],staticClass:"logo",attrs:{src:r.logo}}),r.hasGivenRoomId?t("div",{staticClass:"control-region"},[t("span",{staticClass:"invite-title"},[e._v(e._s(r.t("Join the room ?")))]),t("span",{staticClass:"invite-info"},[e._v(e._s(r.t("You are invited to room "))+e._s(`${e.givenRoomId} `)+e._s(r.t("Room")))]),t("div",{staticClass:"button enter-given-room-button",on:{click:r.enterGivenRoom}},[t("span",{staticClass:"title"},[e._v(e._s(r.t("Join")))])])]):t("div",{staticClass:"control-region"},[t("div",{staticClass:"button create-room-button",attrs:{type:"primary"},on:{mouseenter:r.handleMouseEnter,mouseleave:r.handleMouseLeave}},[t("div",{staticClass:"create-room"},[t(r.SvgIcon,{attrs:{"icon-name":"add-icon"}}),t("span",{staticClass:"title"},[e._v(e._s(r.t("New Room")))])],1),t("div",{staticClass:"connect-region"}),t("div",{directives:[{name:"show",rawName:"v-show",value:r.showCreateRoomOption,expression:"showCreateRoomOption"}],staticClass:"create-room-mode"},[t("div",{staticClass:"create-room-option",on:{click:function(e){return r.createRoom("FreeToSpeak")}}},[t(r.SvgIcon,{staticClass:"icon",attrs:{"icon-name":"free-speech-icon"}}),t("span",{staticClass:"title"},[e._v(e._s(r.t("Free Speech Room")))])],1),t("div",{staticClass:"create-room-option",on:{click:function(e){return r.createRoom("SpeakAfterTakingSeat")}}},[t(r.SvgIcon,{staticClass:"icon",attrs:{"icon-name":"apply-speech-icon"}}),t("span",{staticClass:"title"},[e._v(e._s(r.t("Raise Hand Room")))])],1)])]),t("div",{staticClass:"button join-room-button",attrs:{type:"primary"},on:{click:r.enterRoom}},[t("input",{directives:[{name:"model",rawName:"v-model",value:r.roomId,expression:"roomId"}],staticClass:"input",attrs:{placeholder:r.t("Enter room ID"),maxlength:"10"},domProps:{value:r.roomId},on:{click:function(e){e.stopPropagation()},input:function(e){e.target.composing||(r.roomId=e.target.value)}}}),t("span",{staticClass:"title"},[e._v(e._s(r.t("Join Room")))])])])])])},j=[],H=(0,n.defineComponent)({__name:"RoomControlPC",props:{showLogo:{type:Boolean,default:!0},givenRoomId:null},emits:["create-room","enter-room"],setup(e,{emit:t}){const r=e,{logo:i,showCreateRoomOption:o,t:a}=B(),s=(0,n.computed)((()=>"string"===typeof r.givenRoomId&&""!==r.givenRoomId)),l=(0,n.ref)("");function c(){t("enter-room",r.givenRoomId)}function u(){o.value=!0}function h(){o.value=!1}function d(e){t("create-room",e)}function f(){l.value&&t("enter-room",String(l.value))}return(0,n.watch)(l,(e=>{l.value=e.replace(/[^\d]/g,"")})),{__sfc:!0,logo:i,showCreateRoomOption:o,t:a,props:r,hasGivenRoomId:s,roomId:l,emit:t,enterGivenRoom:c,handleMouseEnter:u,handleMouseLeave:h,createRoom:d,enterRoom:f,SvgIcon:D.Z}}}),G=H,Y=(0,R.Z)(G,V,j,!1,null,"e855f218",null),W=Y.exports,Q=r(2843);const K=Q.t?Z:W;var q=K,X=(r(541),r(2087),"undefined"!=typeof r.g?r.g:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{}),J=[],$=[],ee="undefined"!=typeof Uint8Array?Uint8Array:Array,te=!1;function re(){te=!0;for(var e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",t=0,r=e.length;t>18&63]+J[i>>12&63]+J[i>>6&63]+J[63&i]);return o.join("")}function ie(e){var t;te||re();for(var r=e.length,n=r%3,i="",o=[],a=0,s=r-n;as?s:a+16383));return 1===n?(t=e[r-1],i+=J[t>>2],i+=J[t<<4&63],i+="=="):2===n&&(t=(e[r-2]<<8)+e[r-1],i+=J[t>>10],i+=J[t>>4&63],i+=J[t<<2&63],i+="="),o.push(i),o.join("")}function oe(e,t,r,n,i){var o,a,s=8*i-n-1,l=(1<>1,u=-7,h=r?i-1:0,d=r?-1:1,f=e[t+h];for(h+=d,o=f&(1<<-u)-1,f>>=-u,u+=s;u>0;o=256*o+e[t+h],h+=d,u-=8);for(a=o&(1<<-u)-1,o>>=-u,u+=n;u>0;a=256*a+e[t+h],h+=d,u-=8);if(0===o)o=1-c;else{if(o===l)return a?NaN:1/0*(f?-1:1);a+=Math.pow(2,n),o-=c}return(f?-1:1)*a*Math.pow(2,o-n)}function ae(e,t,r,n,i,o){var a,s,l,c=8*o-i-1,u=(1<>1,d=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,f=n?0:o-1,p=n?1:-1,m=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(s=isNaN(t)?1:0,a=u):(a=Math.floor(Math.log(t)/Math.LN2),t*(l=Math.pow(2,-a))<1&&(a--,l*=2),(t+=a+h>=1?d/l:d*Math.pow(2,1-h))*l>=2&&(a++,l/=2),a+h>=u?(s=0,a=u):a+h>=1?(s=(t*l-1)*Math.pow(2,i),a+=h):(s=t*Math.pow(2,h-1)*Math.pow(2,i),a=0));i>=8;e[r+f]=255&s,f+=p,s/=256,i-=8);for(a=a<0;e[r+f]=255&a,f+=p,a/=256,c-=8);e[r+f-p]|=128*m}var se={}.toString,le=Array.isArray||function(e){return"[object Array]"==se.call(e)};function ce(){return he.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function ue(e,t){if(ce()=ce())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+ce().toString(16)+" bytes");return 0|e}function ve(e){return!(null==e||!e._isBuffer)}function _e(e,t){if(ve(e))return e.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(e)||e instanceof ArrayBuffer))return e.byteLength;"string"!=typeof e&&(e=""+e);var r=e.length;if(0===r)return 0;for(var n=!1;;)switch(t){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":case void 0:return Ge(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*r;case"hex":return r>>>1;case"base64":return Ye(e).length;default:if(n)return Ge(e).length;t=(""+t).toLowerCase(),n=!0}}function we(e,t,r){var n=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===r||r>this.length)&&(r=this.length),r<=0)return"";if((r>>>=0)<=(t>>>=0))return"";for(e||(e="utf8");;)switch(e){case"hex":return De(this,t,r);case"utf8":case"utf-8":return Le(this,t,r);case"ascii":return Ue(this,t,r);case"latin1":case"binary":return xe(this,t,r);case"base64":return Re(this,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return Oe(this,t,r);default:if(n)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),n=!0}}function be(e,t,r){var n=e[t];e[t]=e[r],e[r]=n}function ye(e,t,r,n,i){if(0===e.length)return-1;if("string"==typeof r?(n=r,r=0):r>2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),r=+r,isNaN(r)&&(r=i?0:e.length-1),r<0&&(r=e.length+r),r>=e.length){if(i)return-1;r=e.length-1}else if(r<0){if(!i)return-1;r=0}if("string"==typeof t&&(t=he.from(t,n)),ve(t))return 0===t.length?-1:Se(e,t,r,n,i);if("number"==typeof t)return t&=255,he.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?i?Uint8Array.prototype.indexOf.call(e,t,r):Uint8Array.prototype.lastIndexOf.call(e,t,r):Se(e,[t],r,n,i);throw new TypeError("val must be string, number or Buffer")}function Se(e,t,r,n,i){var o,a=1,s=e.length,l=t.length;if(void 0!==n&&("ucs2"===(n=String(n).toLowerCase())||"ucs-2"===n||"utf16le"===n||"utf-16le"===n)){if(e.length<2||t.length<2)return-1;a=2,s/=2,l/=2,r/=2}function c(e,t){return 1===a?e[t]:e.readUInt16BE(t*a)}if(i){var u=-1;for(o=r;os&&(r=s-l),o=r;o>=0;o--){for(var h=!0,d=0;di&&(n=i):n=i;var o=t.length;if(o%2!=0)throw new TypeError("Invalid hex string");n>o/2&&(n=o/2);for(var a=0;a>8,i=r%256,o.push(i),o.push(n);return o}(t,e.length-r),e,r,n)}function Re(e,t,r){return 0===t&&r===e.length?ie(e):ie(e.slice(t,r))}function Le(e,t,r){r=Math.min(e.length,r);for(var n=[],i=t;i239?4:c>223?3:c>191?2:1;if(i+h<=r)switch(h){case 1:c<128&&(u=c);break;case 2:128==(192&(o=e[i+1]))&&(l=(31&c)<<6|63&o)>127&&(u=l);break;case 3:o=e[i+1],a=e[i+2],128==(192&o)&&128==(192&a)&&(l=(15&c)<<12|(63&o)<<6|63&a)>2047&&(l<55296||l>57343)&&(u=l);break;case 4:o=e[i+1],a=e[i+2],s=e[i+3],128==(192&o)&&128==(192&a)&&128==(192&s)&&(l=(15&c)<<18|(63&o)<<12|(63&a)<<6|63&s)>65535&&l<1114112&&(u=l)}null===u?(u=65533,h=1):u>65535&&(u-=65536,n.push(u>>>10&1023|55296),u=56320|1023&u),n.push(u),i+=h}return function(e){var t=e.length;if(t<=Me)return String.fromCharCode.apply(String,e);for(var r="",n=0;n0&&(e=this.toString("hex",0,50).match(/.{2}/g).join(" "),this.length>50&&(e+=" ... ")),""},he.prototype.compare=function(e,t,r,n,i){if(!ve(e))throw new TypeError("Argument must be a Buffer");if(void 0===t&&(t=0),void 0===r&&(r=e?e.length:0),void 0===n&&(n=0),void 0===i&&(i=this.length),t<0||r>e.length||n<0||i>this.length)throw new RangeError("out of range index");if(n>=i&&t>=r)return 0;if(n>=i)return-1;if(t>=r)return 1;if(this===e)return 0;for(var o=(i>>>=0)-(n>>>=0),a=(r>>>=0)-(t>>>=0),s=Math.min(o,a),l=this.slice(n,i),c=e.slice(t,r),u=0;ui)&&(r=i),e.length>0&&(r<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");n||(n="utf8");for(var o=!1;;)switch(n){case"hex":return ke(this,e,t,r);case"utf8":case"utf-8":return Ce(this,e,t,r);case"ascii":return Ae(this,e,t,r);case"latin1":case"binary":return Ie(this,e,t,r);case"base64":return Te(this,e,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return Ee(this,e,t,r);default:if(o)throw new TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),o=!0}},he.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var Me=4096;function Ue(e,t,r){var n="";r=Math.min(e.length,r);for(var i=t;in)&&(r=n);for(var i="",o=t;or)throw new RangeError("Trying to access beyond buffer length")}function Be(e,t,r,n,i,o){if(!ve(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>i||te.length)throw new RangeError("Index out of range")}function Pe(e,t,r,n){t<0&&(t=65535+t+1);for(var i=0,o=Math.min(e.length-r,2);i>>8*(n?i:1-i)}function ze(e,t,r,n){t<0&&(t=4294967295+t+1);for(var i=0,o=Math.min(e.length-r,4);i>>8*(n?i:3-i)&255}function Fe(e,t,r,n,i,o){if(r+n>e.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("Index out of range")}function Ze(e,t,r,n,i){return i||Fe(e,0,r,4),ae(e,t,r,n,23,4),r+4}function Ve(e,t,r,n,i){return i||Fe(e,0,r,8),ae(e,t,r,n,52,8),r+8}he.prototype.slice=function(e,t){var r,n=this.length;if((e=~~e)<0?(e+=n)<0&&(e=0):e>n&&(e=n),(t=void 0===t?n:~~t)<0?(t+=n)<0&&(t=0):t>n&&(t=n),t0&&(i*=256);)n+=this[e+--t]*i;return n},he.prototype.readUInt8=function(e,t){return t||Ne(e,1,this.length),this[e]},he.prototype.readUInt16LE=function(e,t){return t||Ne(e,2,this.length),this[e]|this[e+1]<<8},he.prototype.readUInt16BE=function(e,t){return t||Ne(e,2,this.length),this[e]<<8|this[e+1]},he.prototype.readUInt32LE=function(e,t){return t||Ne(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},he.prototype.readUInt32BE=function(e,t){return t||Ne(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},he.prototype.readIntLE=function(e,t,r){e|=0,t|=0,r||Ne(e,t,this.length);for(var n=this[e],i=1,o=0;++o=(i*=128)&&(n-=Math.pow(2,8*t)),n},he.prototype.readIntBE=function(e,t,r){e|=0,t|=0,r||Ne(e,t,this.length);for(var n=t,i=1,o=this[e+--n];n>0&&(i*=256);)o+=this[e+--n]*i;return o>=(i*=128)&&(o-=Math.pow(2,8*t)),o},he.prototype.readInt8=function(e,t){return t||Ne(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},he.prototype.readInt16LE=function(e,t){t||Ne(e,2,this.length);var r=this[e]|this[e+1]<<8;return 32768&r?4294901760|r:r},he.prototype.readInt16BE=function(e,t){t||Ne(e,2,this.length);var r=this[e+1]|this[e]<<8;return 32768&r?4294901760|r:r},he.prototype.readInt32LE=function(e,t){return t||Ne(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},he.prototype.readInt32BE=function(e,t){return t||Ne(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},he.prototype.readFloatLE=function(e,t){return t||Ne(e,4,this.length),oe(this,e,!0,23,4)},he.prototype.readFloatBE=function(e,t){return t||Ne(e,4,this.length),oe(this,e,!1,23,4)},he.prototype.readDoubleLE=function(e,t){return t||Ne(e,8,this.length),oe(this,e,!0,52,8)},he.prototype.readDoubleBE=function(e,t){return t||Ne(e,8,this.length),oe(this,e,!1,52,8)},he.prototype.writeUIntLE=function(e,t,r,n){e=+e,t|=0,r|=0,n||Be(this,e,t,r,Math.pow(2,8*r)-1,0);var i=1,o=0;for(this[t]=255&e;++o=0&&(o*=256);)this[t+i]=e/o&255;return t+r},he.prototype.writeUInt8=function(e,t,r){return e=+e,t|=0,r||Be(this,e,t,1,255,0),he.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[t]=255&e,t+1},he.prototype.writeUInt16LE=function(e,t,r){return e=+e,t|=0,r||Be(this,e,t,2,65535,0),he.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):Pe(this,e,t,!0),t+2},he.prototype.writeUInt16BE=function(e,t,r){return e=+e,t|=0,r||Be(this,e,t,2,65535,0),he.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):Pe(this,e,t,!1),t+2},he.prototype.writeUInt32LE=function(e,t,r){return e=+e,t|=0,r||Be(this,e,t,4,4294967295,0),he.TYPED_ARRAY_SUPPORT?(this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e):ze(this,e,t,!0),t+4},he.prototype.writeUInt32BE=function(e,t,r){return e=+e,t|=0,r||Be(this,e,t,4,4294967295,0),he.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):ze(this,e,t,!1),t+4},he.prototype.writeIntLE=function(e,t,r,n){if(e=+e,t|=0,!n){var i=Math.pow(2,8*r-1);Be(this,e,t,r,i-1,-i)}var o=0,a=1,s=0;for(this[t]=255&e;++o>0)-s&255;return t+r},he.prototype.writeIntBE=function(e,t,r,n){if(e=+e,t|=0,!n){var i=Math.pow(2,8*r-1);Be(this,e,t,r,i-1,-i)}var o=r-1,a=1,s=0;for(this[t+o]=255&e;--o>=0&&(a*=256);)e<0&&0===s&&0!==this[t+o+1]&&(s=1),this[t+o]=(e/a>>0)-s&255;return t+r},he.prototype.writeInt8=function(e,t,r){return e=+e,t|=0,r||Be(this,e,t,1,127,-128),he.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),e<0&&(e=255+e+1),this[t]=255&e,t+1},he.prototype.writeInt16LE=function(e,t,r){return e=+e,t|=0,r||Be(this,e,t,2,32767,-32768),he.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):Pe(this,e,t,!0),t+2},he.prototype.writeInt16BE=function(e,t,r){return e=+e,t|=0,r||Be(this,e,t,2,32767,-32768),he.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):Pe(this,e,t,!1),t+2},he.prototype.writeInt32LE=function(e,t,r){return e=+e,t|=0,r||Be(this,e,t,4,2147483647,-2147483648),he.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24):ze(this,e,t,!0),t+4},he.prototype.writeInt32BE=function(e,t,r){return e=+e,t|=0,r||Be(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),he.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):ze(this,e,t,!1),t+4},he.prototype.writeFloatLE=function(e,t,r){return Ze(this,e,t,!0,r)},he.prototype.writeFloatBE=function(e,t,r){return Ze(this,e,t,!1,r)},he.prototype.writeDoubleLE=function(e,t,r){return Ve(this,e,t,!0,r)},he.prototype.writeDoubleBE=function(e,t,r){return Ve(this,e,t,!1,r)},he.prototype.copy=function(e,t,r,n){if(r||(r=0),n||0===n||(n=this.length),t>=e.length&&(t=e.length),t||(t=0),n>0&&n=this.length)throw new RangeError("sourceStart out of bounds");if(n<0)throw new RangeError("sourceEnd out of bounds");n>this.length&&(n=this.length),e.length-t=0;--i)e[i+t]=this[i+r];else if(o<1e3||!he.TYPED_ARRAY_SUPPORT)for(i=0;i>>=0,r=void 0===r?this.length:r>>>0,e||(e=0),"number"==typeof e)for(o=t;o55295&&r<57344){if(!i){if(r>56319){(t-=3)>-1&&o.push(239,191,189);continue}if(a+1===n){(t-=3)>-1&&o.push(239,191,189);continue}i=r;continue}if(r<56320){(t-=3)>-1&&o.push(239,191,189),i=r;continue}r=65536+(i-55296<<10|r-56320)}else i&&(t-=3)>-1&&o.push(239,191,189);if(i=null,r<128){if((t-=1)<0)break;o.push(r)}else if(r<2048){if((t-=2)<0)break;o.push(r>>6|192,63&r|128)}else if(r<65536){if((t-=3)<0)break;o.push(r>>12|224,r>>6&63|128,63&r|128)}else{if(!(r<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;o.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}}return o}function Ye(e){return function(e){var t,r,n,i,o,a;te||re();var s=e.length;if(s%4>0)throw new Error("Invalid string. Length must be a multiple of 4");o="="===e[s-2]?2:"="===e[s-1]?1:0,a=new ee(3*s/4-o),n=o>0?s-4:s;var l=0;for(t=0,r=0;t>16&255,a[l++]=i>>8&255,a[l++]=255&i;return 2===o?(i=$[e.charCodeAt(t)]<<2|$[e.charCodeAt(t+1)]>>4,a[l++]=255&i):1===o&&(i=$[e.charCodeAt(t)]<<10|$[e.charCodeAt(t+1)]<<4|$[e.charCodeAt(t+2)]>>2,a[l++]=i>>8&255,a[l++]=255&i),a}(function(e){if((e=function(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}(e).replace(je,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}(e))}function We(e,t,r,n){for(var i=0;i=t.length||i>=e.length);++i)t[i+r]=e[i];return i}function Qe(e){return null!=e&&(!!e._isBuffer||Ke(e)||function(e){return"function"==typeof e.readFloatLE&&"function"==typeof e.slice&&Ke(e.slice(0,0))}(e))}function Ke(e){return!!e.constructor&&"function"==typeof e.constructor.isBuffer&&e.constructor.isBuffer(e)}function qe(e,t){return e(t={exports:{}},t.exports),t.exports}"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof r.g?r.g:"undefined"!=typeof self&&self;var Xe=qe((function(e,t){var r;e.exports=(r=r||function(e,t){var r=Object.create||function(){function e(){}return function(t){var r;return e.prototype=t,r=new e,e.prototype=null,r}}(),n={},i=n.lib={},o=i.Base={extend:function(e){var t=r(this);return e&&t.mixIn(e),t.hasOwnProperty("init")&&this.init!==t.init||(t.init=function(){t.$super.init.apply(this,arguments)}),t.init.prototype=t,t.$super=this,t},create:function(){var e=this.extend();return e.init.apply(e,arguments),e},init:function(){},mixIn:function(e){for(var t in e)e.hasOwnProperty(t)&&(this[t]=e[t]);e.hasOwnProperty("toString")&&(this.toString=e.toString)},clone:function(){return this.init.prototype.extend(this)}},a=i.WordArray=o.extend({init:function(e,t){e=this.words=e||[],this.sigBytes=null!=t?t:4*e.length},toString:function(e){return(e||l).stringify(this)},concat:function(e){var t=this.words,r=e.words,n=this.sigBytes,i=e.sigBytes;if(this.clamp(),n%4)for(var o=0;o>>2]>>>24-o%4*8&255;t[n+o>>>2]|=a<<24-(n+o)%4*8}else for(o=0;o>>2]=r[o>>>2];return this.sigBytes+=i,this},clamp:function(){var t=this.words,r=this.sigBytes;t[r>>>2]&=4294967295<<32-r%4*8,t.length=e.ceil(r/4)},clone:function(){var e=o.clone.call(this);return e.words=this.words.slice(0),e},random:function(t){for(var r,n=[],i=function(t){var r=987654321,n=4294967295;return function(){var i=((r=36969*(65535&r)+(r>>16)&n)<<16)+(t=18e3*(65535&t)+(t>>16)&n)&n;return i/=4294967296,(i+=.5)*(e.random()>.5?1:-1)}},o=0;o>>2]>>>24-i%4*8&255;n.push((o>>>4).toString(16)),n.push((15&o).toString(16))}return n.join("")},parse:function(e){for(var t=e.length,r=[],n=0;n>>3]|=parseInt(e.substr(n,2),16)<<24-n%8*4;return new a.init(r,t/2)}},c=s.Latin1={stringify:function(e){for(var t=e.words,r=e.sigBytes,n=[],i=0;i>>2]>>>24-i%4*8&255;n.push(String.fromCharCode(o))}return n.join("")},parse:function(e){for(var t=e.length,r=[],n=0;n>>2]|=(255&e.charCodeAt(n))<<24-n%4*8;return new a.init(r,t)}},u=s.Utf8={stringify:function(e){try{return decodeURIComponent(escape(c.stringify(e)))}catch(e){throw new Error("Malformed UTF-8 data")}},parse:function(e){return c.parse(unescape(encodeURIComponent(e)))}},h=i.BufferedBlockAlgorithm=o.extend({reset:function(){this._data=new a.init,this._nDataBytes=0},_append:function(e){"string"==typeof e&&(e=u.parse(e)),this._data.concat(e),this._nDataBytes+=e.sigBytes},_process:function(t){var r=this._data,n=r.words,i=r.sigBytes,o=this.blockSize,s=4*o,l=i/s,c=(l=t?e.ceil(l):e.max((0|l)-this._minBufferSize,0))*o,u=e.min(4*c,i);if(c){for(var h=0;h>>2]|=e[i]<<24-i%4*8;t.call(this,n,r)}else t.apply(this,arguments)}).prototype=e}}(),r.lib.WordArray)})),qe((function(e,t){var r;e.exports=(r=Xe,function(){var e=r,t=e.lib.WordArray,n=e.enc;function i(e){return e<<8&4278255360|e>>>8&16711935}n.Utf16=n.Utf16BE={stringify:function(e){for(var t=e.words,r=e.sigBytes,n=[],i=0;i>>2]>>>16-i%4*8&65535;n.push(String.fromCharCode(o))}return n.join("")},parse:function(e){for(var r=e.length,n=[],i=0;i>>1]|=e.charCodeAt(i)<<16-i%2*16;return t.create(n,2*r)}},n.Utf16LE={stringify:function(e){for(var t=e.words,r=e.sigBytes,n=[],o=0;o>>2]>>>16-o%4*8&65535);n.push(String.fromCharCode(a))}return n.join("")},parse:function(e){for(var r=e.length,n=[],o=0;o>>1]|=i(e.charCodeAt(o)<<16-o%2*16);return t.create(n,2*r)}}}(),r.enc.Utf16)})),qe((function(e,t){var r,n,i;e.exports=(i=(n=r=Xe).lib.WordArray,n.enc.Base64={stringify:function(e){var t=e.words,r=e.sigBytes,n=this._map;e.clamp();for(var i=[],o=0;o>>2]>>>24-o%4*8&255)<<16|(t[o+1>>>2]>>>24-(o+1)%4*8&255)<<8|t[o+2>>>2]>>>24-(o+2)%4*8&255,s=0;s<4&&o+.75*s>>6*(3-s)&63));var l=n.charAt(64);if(l)for(;i.length%4;)i.push(l);return i.join("")},parse:function(e){var t=e.length,r=this._map,n=this._reverseMap;if(!n){n=this._reverseMap=[];for(var o=0;o>>6-a%4*2;n[o>>>2]|=(s|l)<<24-o%4*8,o++}return i.create(n,o)}(e,t,n)},_map:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="},r.enc.Base64)})),qe((function(e,t){var r;e.exports=(r=Xe,function(e){var t=r,n=t.lib,i=n.WordArray,o=n.Hasher,a=t.algo,s=[];!function(){for(var t=0;t<64;t++)s[t]=4294967296*e.abs(e.sin(t+1))|0}();var l=a.MD5=o.extend({_doReset:function(){this._hash=new i.init([1732584193,4023233417,2562383102,271733878])},_doProcessBlock:function(e,t){for(var r=0;r<16;r++){var n=t+r,i=e[n];e[n]=16711935&(i<<8|i>>>24)|4278255360&(i<<24|i>>>8)}var o=this._hash.words,a=e[t+0],l=e[t+1],f=e[t+2],p=e[t+3],m=e[t+4],g=e[t+5],v=e[t+6],_=e[t+7],w=e[t+8],b=e[t+9],y=e[t+10],S=e[t+11],k=e[t+12],C=e[t+13],A=e[t+14],I=e[t+15],T=o[0],E=o[1],R=o[2],L=o[3];T=c(T,E,R,L,a,7,s[0]),L=c(L,T,E,R,l,12,s[1]),R=c(R,L,T,E,f,17,s[2]),E=c(E,R,L,T,p,22,s[3]),T=c(T,E,R,L,m,7,s[4]),L=c(L,T,E,R,g,12,s[5]),R=c(R,L,T,E,v,17,s[6]),E=c(E,R,L,T,_,22,s[7]),T=c(T,E,R,L,w,7,s[8]),L=c(L,T,E,R,b,12,s[9]),R=c(R,L,T,E,y,17,s[10]),E=c(E,R,L,T,S,22,s[11]),T=c(T,E,R,L,k,7,s[12]),L=c(L,T,E,R,C,12,s[13]),R=c(R,L,T,E,A,17,s[14]),T=u(T,E=c(E,R,L,T,I,22,s[15]),R,L,l,5,s[16]),L=u(L,T,E,R,v,9,s[17]),R=u(R,L,T,E,S,14,s[18]),E=u(E,R,L,T,a,20,s[19]),T=u(T,E,R,L,g,5,s[20]),L=u(L,T,E,R,y,9,s[21]),R=u(R,L,T,E,I,14,s[22]),E=u(E,R,L,T,m,20,s[23]),T=u(T,E,R,L,b,5,s[24]),L=u(L,T,E,R,A,9,s[25]),R=u(R,L,T,E,p,14,s[26]),E=u(E,R,L,T,w,20,s[27]),T=u(T,E,R,L,C,5,s[28]),L=u(L,T,E,R,f,9,s[29]),R=u(R,L,T,E,_,14,s[30]),T=h(T,E=u(E,R,L,T,k,20,s[31]),R,L,g,4,s[32]),L=h(L,T,E,R,w,11,s[33]),R=h(R,L,T,E,S,16,s[34]),E=h(E,R,L,T,A,23,s[35]),T=h(T,E,R,L,l,4,s[36]),L=h(L,T,E,R,m,11,s[37]),R=h(R,L,T,E,_,16,s[38]),E=h(E,R,L,T,y,23,s[39]),T=h(T,E,R,L,C,4,s[40]),L=h(L,T,E,R,a,11,s[41]),R=h(R,L,T,E,p,16,s[42]),E=h(E,R,L,T,v,23,s[43]),T=h(T,E,R,L,b,4,s[44]),L=h(L,T,E,R,k,11,s[45]),R=h(R,L,T,E,I,16,s[46]),T=d(T,E=h(E,R,L,T,f,23,s[47]),R,L,a,6,s[48]),L=d(L,T,E,R,_,10,s[49]),R=d(R,L,T,E,A,15,s[50]),E=d(E,R,L,T,g,21,s[51]),T=d(T,E,R,L,k,6,s[52]),L=d(L,T,E,R,p,10,s[53]),R=d(R,L,T,E,y,15,s[54]),E=d(E,R,L,T,l,21,s[55]),T=d(T,E,R,L,w,6,s[56]),L=d(L,T,E,R,I,10,s[57]),R=d(R,L,T,E,v,15,s[58]),E=d(E,R,L,T,C,21,s[59]),T=d(T,E,R,L,m,6,s[60]),L=d(L,T,E,R,S,10,s[61]),R=d(R,L,T,E,f,15,s[62]),E=d(E,R,L,T,b,21,s[63]),o[0]=o[0]+T|0,o[1]=o[1]+E|0,o[2]=o[2]+R|0,o[3]=o[3]+L|0},_doFinalize:function(){var t=this._data,r=t.words,n=8*this._nDataBytes,i=8*t.sigBytes;r[i>>>5]|=128<<24-i%32;var o=e.floor(n/4294967296),a=n;r[15+(i+64>>>9<<4)]=16711935&(o<<8|o>>>24)|4278255360&(o<<24|o>>>8),r[14+(i+64>>>9<<4)]=16711935&(a<<8|a>>>24)|4278255360&(a<<24|a>>>8),t.sigBytes=4*(r.length+1),this._process();for(var s=this._hash,l=s.words,c=0;c<4;c++){var u=l[c];l[c]=16711935&(u<<8|u>>>24)|4278255360&(u<<24|u>>>8)}return s},clone:function(){var e=o.clone.call(this);return e._hash=this._hash.clone(),e}});function c(e,t,r,n,i,o,a){var s=e+(t&r|~t&n)+i+a;return(s<>>32-o)+t}function u(e,t,r,n,i,o,a){var s=e+(t&n|r&~n)+i+a;return(s<>>32-o)+t}function h(e,t,r,n,i,o,a){var s=e+(t^r^n)+i+a;return(s<>>32-o)+t}function d(e,t,r,n,i,o,a){var s=e+(r^(t|~n))+i+a;return(s<>>32-o)+t}t.MD5=o._createHelper(l),t.HmacMD5=o._createHmacHelper(l)}(Math),r.MD5)})),qe((function(e,t){var r,n,i,o,a,s,l,c;e.exports=(i=(n=r=Xe).lib,o=i.WordArray,a=i.Hasher,s=n.algo,l=[],c=s.SHA1=a.extend({_doReset:function(){this._hash=new o.init([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(e,t){for(var r=this._hash.words,n=r[0],i=r[1],o=r[2],a=r[3],s=r[4],c=0;c<80;c++){if(c<16)l[c]=0|e[t+c];else{var u=l[c-3]^l[c-8]^l[c-14]^l[c-16];l[c]=u<<1|u>>>31}var h=(n<<5|n>>>27)+s+l[c];h+=c<20?1518500249+(i&o|~i&a):c<40?1859775393+(i^o^a):c<60?(i&o|i&a|o&a)-1894007588:(i^o^a)-899497514,s=a,a=o,o=i<<30|i>>>2,i=n,n=h}r[0]=r[0]+n|0,r[1]=r[1]+i|0,r[2]=r[2]+o|0,r[3]=r[3]+a|0,r[4]=r[4]+s|0},_doFinalize:function(){var e=this._data,t=e.words,r=8*this._nDataBytes,n=8*e.sigBytes;return t[n>>>5]|=128<<24-n%32,t[14+(n+64>>>9<<4)]=Math.floor(r/4294967296),t[15+(n+64>>>9<<4)]=r,e.sigBytes=4*t.length,this._process(),this._hash},clone:function(){var e=a.clone.call(this);return e._hash=this._hash.clone(),e}}),n.SHA1=a._createHelper(c),n.HmacSHA1=a._createHmacHelper(c),r.SHA1)})),qe((function(e,t){var r;e.exports=(r=Xe,function(e){var t=r,n=t.lib,i=n.WordArray,o=n.Hasher,a=t.algo,s=[],l=[];!function(){function t(t){for(var r=e.sqrt(t),n=2;n<=r;n++)if(!(t%n))return!1;return!0}function r(e){return 4294967296*(e-(0|e))|0}for(var n=2,i=0;i<64;)t(n)&&(i<8&&(s[i]=r(e.pow(n,.5))),l[i]=r(e.pow(n,1/3)),i++),n++}();var c=[],u=a.SHA256=o.extend({_doReset:function(){this._hash=new i.init(s.slice(0))},_doProcessBlock:function(e,t){for(var r=this._hash.words,n=r[0],i=r[1],o=r[2],a=r[3],s=r[4],u=r[5],h=r[6],d=r[7],f=0;f<64;f++){if(f<16)c[f]=0|e[t+f];else{var p=c[f-15],m=(p<<25|p>>>7)^(p<<14|p>>>18)^p>>>3,g=c[f-2],v=(g<<15|g>>>17)^(g<<13|g>>>19)^g>>>10;c[f]=m+c[f-7]+v+c[f-16]}var _=n&i^n&o^i&o,w=(n<<30|n>>>2)^(n<<19|n>>>13)^(n<<10|n>>>22),b=d+((s<<26|s>>>6)^(s<<21|s>>>11)^(s<<7|s>>>25))+(s&u^~s&h)+l[f]+c[f];d=h,h=u,u=s,s=a+b|0,a=o,o=i,i=n,n=b+(w+_)|0}r[0]=r[0]+n|0,r[1]=r[1]+i|0,r[2]=r[2]+o|0,r[3]=r[3]+a|0,r[4]=r[4]+s|0,r[5]=r[5]+u|0,r[6]=r[6]+h|0,r[7]=r[7]+d|0},_doFinalize:function(){var t=this._data,r=t.words,n=8*this._nDataBytes,i=8*t.sigBytes;return r[i>>>5]|=128<<24-i%32,r[14+(i+64>>>9<<4)]=e.floor(n/4294967296),r[15+(i+64>>>9<<4)]=n,t.sigBytes=4*r.length,this._process(),this._hash},clone:function(){var e=o.clone.call(this);return e._hash=this._hash.clone(),e}});t.SHA256=o._createHelper(u),t.HmacSHA256=o._createHmacHelper(u)}(Math),r.SHA256)})),qe((function(e,t){var r,n,i,o,a,s;e.exports=(i=(n=r=Xe).lib.WordArray,o=n.algo,a=o.SHA256,s=o.SHA224=a.extend({_doReset:function(){this._hash=new i.init([3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428])},_doFinalize:function(){var e=a._doFinalize.call(this);return e.sigBytes-=4,e}}),n.SHA224=a._createHelper(s),n.HmacSHA224=a._createHmacHelper(s),r.SHA224)})),qe((function(e,t){var r;e.exports=(r=Xe,function(){var e=r,t=e.lib.Hasher,n=e.x64,i=n.Word,o=n.WordArray,a=e.algo;function s(){return i.create.apply(i,arguments)}var l=[s(1116352408,3609767458),s(1899447441,602891725),s(3049323471,3964484399),s(3921009573,2173295548),s(961987163,4081628472),s(1508970993,3053834265),s(2453635748,2937671579),s(2870763221,3664609560),s(3624381080,2734883394),s(310598401,1164996542),s(607225278,1323610764),s(1426881987,3590304994),s(1925078388,4068182383),s(2162078206,991336113),s(2614888103,633803317),s(3248222580,3479774868),s(3835390401,2666613458),s(4022224774,944711139),s(264347078,2341262773),s(604807628,2007800933),s(770255983,1495990901),s(1249150122,1856431235),s(1555081692,3175218132),s(1996064986,2198950837),s(2554220882,3999719339),s(2821834349,766784016),s(2952996808,2566594879),s(3210313671,3203337956),s(3336571891,1034457026),s(3584528711,2466948901),s(113926993,3758326383),s(338241895,168717936),s(666307205,1188179964),s(773529912,1546045734),s(1294757372,1522805485),s(1396182291,2643833823),s(1695183700,2343527390),s(1986661051,1014477480),s(2177026350,1206759142),s(2456956037,344077627),s(2730485921,1290863460),s(2820302411,3158454273),s(3259730800,3505952657),s(3345764771,106217008),s(3516065817,3606008344),s(3600352804,1432725776),s(4094571909,1467031594),s(275423344,851169720),s(430227734,3100823752),s(506948616,1363258195),s(659060556,3750685593),s(883997877,3785050280),s(958139571,3318307427),s(1322822218,3812723403),s(1537002063,2003034995),s(1747873779,3602036899),s(1955562222,1575990012),s(2024104815,1125592928),s(2227730452,2716904306),s(2361852424,442776044),s(2428436474,593698344),s(2756734187,3733110249),s(3204031479,2999351573),s(3329325298,3815920427),s(3391569614,3928383900),s(3515267271,566280711),s(3940187606,3454069534),s(4118630271,4000239992),s(116418474,1914138554),s(174292421,2731055270),s(289380356,3203993006),s(460393269,320620315),s(685471733,587496836),s(852142971,1086792851),s(1017036298,365543100),s(1126000580,2618297676),s(1288033470,3409855158),s(1501505948,4234509866),s(1607167915,987167468),s(1816402316,1246189591)],c=[];!function(){for(var e=0;e<80;e++)c[e]=s()}();var u=a.SHA512=t.extend({_doReset:function(){this._hash=new o.init([new i.init(1779033703,4089235720),new i.init(3144134277,2227873595),new i.init(1013904242,4271175723),new i.init(2773480762,1595750129),new i.init(1359893119,2917565137),new i.init(2600822924,725511199),new i.init(528734635,4215389547),new i.init(1541459225,327033209)])},_doProcessBlock:function(e,t){for(var r=this._hash.words,n=r[0],i=r[1],o=r[2],a=r[3],s=r[4],u=r[5],h=r[6],d=r[7],f=n.high,p=n.low,m=i.high,g=i.low,v=o.high,_=o.low,w=a.high,b=a.low,y=s.high,S=s.low,k=u.high,C=u.low,A=h.high,I=h.low,T=d.high,E=d.low,R=f,L=p,M=m,U=g,x=v,D=_,O=w,N=b,B=y,P=S,z=k,F=C,Z=A,V=I,j=T,H=E,G=0;G<80;G++){var Y=c[G];if(G<16)var W=Y.high=0|e[t+2*G],Q=Y.low=0|e[t+2*G+1];else{var K=c[G-15],q=K.high,X=K.low,J=(q>>>1|X<<31)^(q>>>8|X<<24)^q>>>7,$=(X>>>1|q<<31)^(X>>>8|q<<24)^(X>>>7|q<<25),ee=c[G-2],te=ee.high,re=ee.low,ne=(te>>>19|re<<13)^(te<<3|re>>>29)^te>>>6,ie=(re>>>19|te<<13)^(re<<3|te>>>29)^(re>>>6|te<<26),oe=c[G-7],ae=oe.high,se=oe.low,le=c[G-16],ce=le.high,ue=le.low;W=(W=(W=J+ae+((Q=$+se)>>>0<$>>>0?1:0))+ne+((Q+=ie)>>>0>>0?1:0))+ce+((Q+=ue)>>>0>>0?1:0),Y.high=W,Y.low=Q}var he,de=B&z^~B&Z,fe=P&F^~P&V,pe=R&M^R&x^M&x,me=L&U^L&D^U&D,ge=(R>>>28|L<<4)^(R<<30|L>>>2)^(R<<25|L>>>7),ve=(L>>>28|R<<4)^(L<<30|R>>>2)^(L<<25|R>>>7),_e=(B>>>14|P<<18)^(B>>>18|P<<14)^(B<<23|P>>>9),we=(P>>>14|B<<18)^(P>>>18|B<<14)^(P<<23|B>>>9),be=l[G],ye=be.high,Se=be.low,ke=j+_e+((he=H+we)>>>0>>0?1:0),Ce=ve+me;j=Z,H=V,Z=z,V=F,z=B,F=P,B=O+(ke=(ke=(ke=ke+de+((he+=fe)>>>0>>0?1:0))+ye+((he+=Se)>>>0>>0?1:0))+W+((he+=Q)>>>0>>0?1:0))+((P=N+he|0)>>>0>>0?1:0)|0,O=x,N=D,x=M,D=U,M=R,U=L,R=ke+(ge+pe+(Ce>>>0>>0?1:0))+((L=he+Ce|0)>>>0>>0?1:0)|0}p=n.low=p+L,n.high=f+R+(p>>>0>>0?1:0),g=i.low=g+U,i.high=m+M+(g>>>0>>0?1:0),_=o.low=_+D,o.high=v+x+(_>>>0>>0?1:0),b=a.low=b+N,a.high=w+O+(b>>>0>>0?1:0),S=s.low=S+P,s.high=y+B+(S>>>0>>0?1:0),C=u.low=C+F,u.high=k+z+(C>>>0>>0?1:0),I=h.low=I+V,h.high=A+Z+(I>>>0