File manager - Edit - /home/c14075/dragmet-ural.ru/www/bitrix/js/im/component/conference/conference-public/dist/conference-public.bundle.js.map
Back
{"version":3,"file":"conference-public.bundle.js","sources":["../src/event-handler/conference-textarea-handler.js","../src/event-handler/conference-textarea-upload-handler.js","../src/component/conference-smiles.js","../src/component/mic-level.js","../src/component/check-devices.js","../src/component/error.js","../src/component/orientation-disabled.js","../src/component/password-check.js","../src/component/loading-status.js","../src/component/request-permissions.js","../src/component/mobile-chat-button.js","../src/component/conference-info.js","../src/component/user-form.js","../src/component/chat-header.js","../src/component/waiting-for-start.js","../src/component/user-list/user-list-item.js","../src/component/user-list/user-list.js","../src/component/user-list/user-list-header.js","../src/conference-public.js"],"sourcesContent":["import { TextareaHandler } from \"im.event-handler\";\n\nexport class ConferenceTextareaHandler extends TextareaHandler\n{\n\tapplication: Object = null;\n\n\tconstructor($Bitrix)\n\t{\n\t\tsuper($Bitrix);\n\t\tthis.application = $Bitrix.Application.get();\n\t}\n\n\tonAppButtonClick({data: event})\n\t{\n\t\tif (event.appId === 'smile')\n\t\t{\n\t\t\tthis.application.toggleSmiles();\n\t\t}\n\t}\n}","import { TextareaUploadHandler } from 'im.event-handler';\nimport { Logger } from 'im.lib.logger';\n\nexport class ConferenceTextareaUploadHandler extends TextareaUploadHandler\n{\n\taddMessageWithFile(event)\n\t{\n\t\tconst message = event.getData();\n\n\t\tif (!this.getDiskFolderId())\n\t\t{\n\t\t\tthis.requestDiskFolderId(message.chatId).then(() => {\n\t\t\t\tthis.addMessageWithFile(event);\n\t\t\t}).catch(error => {\n\t\t\t\tLogger.error('addMessageWithFile error', error);\n\t\t\t\treturn false;\n\t\t\t});\n\n\t\t\treturn false;\n\t\t}\n\n\t\tmessage.chatId = this.getChatId();\n\n\t\tthis.setUploaderCustomHeaders();\n\n\t\tthis.uploader.addTask({\n\t\t\ttaskId: message.file.id,\n\t\t\tfileData: message.file.source.file,\n\t\t\tfileName: message.file.source.file.name,\n\t\t\tgenerateUniqueName: true,\n\t\t\tdiskFolderId: this.getDiskFolderId(),\n\t\t\tpreviewBlob: message.file.previewBlob,\n\t\t});\n\t}\n\n\tsetUploaderCustomHeaders()\n\t{\n\t\tif (!this.uploader.senderOptions.customHeaders)\n\t\t{\n\t\t\tthis.uploader.senderOptions.customHeaders = {};\n\t\t}\n\t\tthis.uploader.senderOptions.customHeaders['Call-Auth-Id'] = this.getUserHash();\n\t\tthis.uploader.senderOptions.customHeaders['Call-Chat-Id'] = this.getChatId();\n\t}\n\n\tgetUserHash(): string\n\t{\n\t\treturn this.controller.store.state.conference.user.hash;\n\t}\n\n\tgetActionCommitFile(): ?string\n\t{\n\t\treturn 'im.call.disk.commit';\n\t}\n\n\tgetActionUploadChunk(): ?string\n\t{\n\t\treturn 'im.call.disk.upload';\n\t}\n}","import 'ui.vue.components.smiles';\nimport { EventEmitter } from 'main.core.events';\nimport { EventType } from \"im.const\";\n\nconst ConferenceSmiles = {\n\tmethods:\n\t{\n\t\tonSelectSmile(event)\n\t\t{\n\t\t\tthis.$emit('selectSmile', event);\n\t\t},\n\t\tonSelectSet(event)\n\t\t{\n\t\t\tthis.$emit('selectSet', event);\n\t\t},\n\t\thideSmiles()\n\t\t{\n\t\t\tEventEmitter.emit(EventType.conference.hideSmiles);\n\t\t}\n\t},\n\t// language=Vue\n\ttemplate: `\n\t\t<div class=\"bx-im-component-smiles-box\">\n\t\t\t<div class=\"bx-im-component-smiles-box-close\" @click=\"hideSmiles\"></div>\n\t\t\t<div class=\"bx-im-component-smiles-box-list\">\n\t\t\t\t<bx-smiles\n\t\t\t\t\t@selectSmile=\"onSelectSmile\"\n\t\t\t\t\t@selectSet=\"onSelectSet\"\n\t\t\t\t/>\n\t\t\t</div>\n\t\t</div>\n\t`\n};\n\nexport {ConferenceSmiles};","import { BitrixVue } from \"ui.vue\";\nimport { Type } from \"main.core\";\n\nconst MicLevel = {\n\tprops: ['localStream'],\n\tdata()\n\t{\n\t\treturn {\n\t\t\tbars: [],\n\t\t\tbarDisabledColor: 'rgba(255,255,255,0.42)',\n\t\t\tbarEnabledColor: '#B3E600'\n\t\t}\n\t},\n\twatch:\n\t{\n\t\tlocalStream(stream)\n\t\t{\n\t\t\tif (!Type.isNil(stream))\n\t\t\t{\n\t\t\t\tthis.startAudioCheck();\n\t\t\t}\n\t\t},\n\t},\n\tmounted()\n\t{\n\t\tthis.bars = [...document.querySelectorAll('.bx-im-component-call-check-devices-micro-level-item')];\n\t},\n\tcomputed:\n\t{\n\t\tlocalize()\n\t\t{\n\t\t\treturn BitrixVue.getFilteredPhrases('BX_IM_COMPONENT_CALL_CHECK_DEVICES_');\n\t\t}\n\t},\n\tmethods:\n\t{\n\t\tstartAudioCheck()\n\t\t{\n\t\t\tthis.audioContext = new (window.AudioContext || window.webkitAudioContext)();\n\t\t\tthis.analyser = this.audioContext.createAnalyser();\n\t\t\tthis.microphone = this.audioContext.createMediaStreamSource(this.localStream);\n\t\t\tthis.scriptNode = this.audioContext.createScriptProcessor(2048, 1, 1);\n\n\t\t\tthis.analyser.smoothingTimeConstant = 0.8;\n\t\t\tthis.analyser.fftSize = 1024;\n\n\t\t\tthis.microphone.connect(this.analyser);\n\t\t\tthis.analyser.connect(this.scriptNode);\n\t\t\tthis.scriptNode.connect(this.audioContext.destination);\n\t\t\tthis.scriptNode.onaudioprocess = this.processVolume;\n\t\t},\n\t\tprocessVolume()\n\t\t{\n\t\t\tlet arr = new Uint8Array(this.analyser.frequencyBinCount);\n\t\t\tthis.analyser.getByteFrequencyData(arr);\n\t\t\tlet values = 0;\n\n\t\t\tfor (let i = 0; i < arr.length; i++)\n\t\t\t{\n\t\t\t\tvalues += arr[i];\n\t\t\t}\n\t\t\tlet average = values / arr.length;\n\n\t\t\tlet oneBarValue = 100 / this.bars.length;\n\t\t\tlet barsToColor = Math.round(average / oneBarValue);\n\t\t\tlet elementsToColor = this.bars.slice(0, barsToColor);\n\t\t\tthis.bars.forEach(elem => {\n\t\t\t\telem.style.backgroundColor = this.barDisabledColor;\n\t\t\t});\n\t\t\telementsToColor.forEach(elem => {\n\t\t\t\telem.style.backgroundColor = this.barEnabledColor;\n\t\t\t});\n\t\t}\n\t},\n\ttemplate: `\n\t\t<div class=\"bx-im-component-call-check-devices-row\">\n\t\t\t<div class=\"bx-im-component-call-check-devices-micro-icon\"></div>\n\t\t\t<div class=\"bx-im-component-call-check-devices-micro-level\">\n\t\t\t\t<div class=\"bx-im-component-call-check-devices-micro-level-item\"></div>\n\t\t\t\t<div class=\"bx-im-component-call-check-devices-micro-level-item\"></div>\n\t\t\t\t<div class=\"bx-im-component-call-check-devices-micro-level-item\"></div>\n\t\t\t\t<div class=\"bx-im-component-call-check-devices-micro-level-item\"></div>\n\t\t\t\t<div class=\"bx-im-component-call-check-devices-micro-level-item\"></div>\n\t\t\t\t<div class=\"bx-im-component-call-check-devices-micro-level-item\"></div>\n\t\t\t\t<div class=\"bx-im-component-call-check-devices-micro-level-item\"></div>\n\t\t\t\t<div class=\"bx-im-component-call-check-devices-micro-level-item\"></div>\n\t\t\t\t<div class=\"bx-im-component-call-check-devices-micro-level-item\"></div>\n\t\t\t\t<div class=\"bx-im-component-call-check-devices-micro-level-item\"></div>\n\t\t\t\t<div class=\"bx-im-component-call-check-devices-micro-level-item\"></div>\n\t\t\t\t<div class=\"bx-im-component-call-check-devices-micro-level-item\"></div>\n\t\t\t\t<div class=\"bx-im-component-call-check-devices-micro-level-item\"></div>\n\t\t\t\t<div class=\"bx-im-component-call-check-devices-micro-level-item\"></div>\n\t\t\t\t<div class=\"bx-im-component-call-check-devices-micro-level-item\"></div>\n\t\t\t\t<div class=\"bx-im-component-call-check-devices-micro-level-item\"></div>\n\t\t\t\t<div class=\"bx-im-component-call-check-devices-micro-level-item\"></div>\n\t\t\t\t<div class=\"bx-im-component-call-check-devices-micro-level-item\"></div>\n\t\t\t\t<div class=\"bx-im-component-call-check-devices-micro-level-item\"></div>\n\t\t\t\t<div class=\"bx-im-component-call-check-devices-micro-level-item\"></div>\n\t\t\t</div>\n\t\t</div>\n\t`\n};\n\nexport {MicLevel};","import {BitrixVue} from \"ui.vue\";\nimport {MicLevel} from './mic-level';\nimport {Type} from \"main.core\";\nimport {Logger} from \"im.lib.logger\";\nimport {Utils} from \"im.lib.utils\";\nimport { MessageBox, MessageBoxButtons } from \"ui.dialogs.messagebox\";\n\nimport 'ui.forms';\n\nconst CheckDevices = {\n\tdata()\n\t{\n\t\treturn {\n\t\t\tnoVideo: true,\n\t\t\tselectedCamera: null,\n\t\t\tselectedMic: null,\n\t\t\tmediaStream: null,\n\t\t\tshowMic: true,\n\t\t\tuserDisabledCamera: false,\n\t\t\tgettingVideo: false,\n\t\t\tisFlippedVideo: BX.Call.Hardware.enableMirroring,\n\t\t}\n\t},\n\tcreated()\n\t{\n\t\tthis.$root.$on('setCameraState', (state) => {this.onCameraStateChange(state)});\n\t\tthis.$root.$on('setMicState', (state) => {this.onMicStateChange(state)});\n\t\tthis.$root.$on('callLocalMediaReceived', () => {this.stopLocalVideo()});\n\t\tthis.$root.$on('cameraSelected', (cameraId) => {this.onCameraSelected(cameraId)});\n\t\tthis.$root.$on('micSelected', (micId) => {this.onMicSelected(micId)});\n\n\t\tthis.getApplication().initHardware().then(() => {\n\t\t\tthis.getDefaultDevices();\n\t\t}).catch(() => {\n\t\t\tMessageBox.show({\n\t\t\t\tmessage: this.$Bitrix.Loc.getMessage('BX_IM_COMPONENT_CALL_HARDWARE_ERROR'),\n\t\t\t\tmodal: true,\n\t\t\t\tbuttons: MessageBoxButtons.OK\n\t\t\t});\n\t\t});\n\n\t},\n\tdestroyed()\n\t{\n\t\t// do not stop local media stream, because it is required in the controller\n\t\tthis.mediaStream = null;\n\t},\n\tcomputed:\n\t{\n\t\tnoVideoText()\n\t\t{\n\t\t\tif (this.gettingVideo)\n\t\t\t{\n\t\t\t\treturn this.localize['BX_IM_COMPONENT_CALL_CHECK_DEVICES_GETTING_CAMERA'];\n\t\t\t}\n\n\t\t\tif (this.userDisabledCamera)\n\t\t\t{\n\t\t\t\treturn this.localize['BX_IM_COMPONENT_CALL_CHECK_DEVICES_DISABLED_CAMERA'];\n\t\t\t}\n\n\t\t\treturn this.localize['BX_IM_COMPONENT_CALL_CHECK_DEVICES_NO_VIDEO'];\n\t\t},\n\t\tlocalize()\n\t\t{\n\t\t\treturn BitrixVue.getFilteredPhrases('BX_IM_COMPONENT_CALL_CHECK_DEVICES_');\n\t\t},\n\t\tcameraVideoClasses()\n\t\t{\n\t\t\treturn {\n\t\t\t\t'bx-im-component-call-check-devices-camera-video' : true,\n\t\t\t\t'bx-im-component-call-check-devices-camera-video-flipped' : this.isFlippedVideo\n\t\t\t};\n\t\t},\n\t},\n\tmethods:\n\t{\n\t\tgetDefaultDevices()\n\t\t{\n\t\t\tthis.gettingVideo = true;\n\t\t\tconst constraints = {audio: true, video: true};\n\n\t\t\tif (!Utils.device.isMobile())\n\t\t\t{\n\t\t\t\tconstraints.video = {};\n\t\t\t\tconstraints.video.width = {ideal: /*BX.Call.Hardware.preferHdQuality*/ true ? 1280 : 640};\n\t\t\t\tconstraints.video.height = {ideal: /*BX.Call.Hardware.preferHdQuality*/ true ? 720 : 360};\n\t\t\t}\n\n\t\t\tif (BX.Call.Hardware.defaultCamera)\n\t\t\t{\n\t\t\t\tthis.selectedCamera = BX.Call.Hardware.defaultCamera;\n\t\t\t\tconstraints.video = {deviceId: { exact: this.selectedCamera }};\n\t\t\t}\n\t\t\telse if (Object.keys(BX.Call.Hardware.cameraList).length === 0)\n\t\t\t{\n\t\t\t\tconstraints.video = false;\n\t\t\t}\n\n\t\t\tif (BX.Call.Hardware.defaultMicrophone)\n\t\t\t{\n\t\t\t\tthis.selectedMic = BX.Call.Hardware.defaultMicrophone;\n\t\t\t\tconstraints.audio = {deviceId: { exact: this.selectedMic }};\n\t\t\t}\n\n\t\t\tnavigator.mediaDevices.getUserMedia(constraints)\n\t\t\t\t.then(stream => {\n\t\t\t\t\tthis.gettingVideo = false;\n\t\t\t\t\tthis.setLocalStream(stream);\n\t\t\t\t\tif (stream.getVideoTracks().length > 0)\n\t\t\t\t\t{\n\t\t\t\t\t\tif (!this.selectedCamera)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tthis.selectedCamera = stream.getVideoTracks()[0].getSettings().deviceId;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthis.noVideo = false;\n\t\t\t\t\t\tthis.playLocalVideo();\n\t\t\t\t\t\tthis.getApplication().setSelectedCamera(this.selectedCamera);\n\t\t\t\t\t}\n\t\t\t\t\tif (stream.getAudioTracks().length > 0)\n\t\t\t\t\t{\n\t\t\t\t\t\tif (!this.selectedMic)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tthis.selectedMic = stream.getAudioTracks()[0].getSettings().deviceId;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthis.getApplication().setSelectedMic(this.selectedMic);\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t\t.catch(e => {\n\t\t\t\t\tthis.gettingVideo = false;\n\t\t\t\t\tLogger.warn('Error getting default media stream', e);\n\t\t\t\t});\n\t\t},\n\t\tgetLocalStream()\n\t\t{\n\t\t\tthis.gettingVideo = true;\n\t\t\tif (Type.isNil(this.selectedCamera) && Type.isNil(this.selectedMic))\n\t\t\t{\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tconst constraints = {video: false, audio: false};\n\t\t\tif (this.selectedCamera && !this.noVideo)\n\t\t\t{\n\t\t\t\tconstraints.video = {deviceId: { exact: this.selectedCamera }};\n\t\t\t\tif (!Utils.device.isMobile() )\n\t\t\t\t{\n\t\t\t\t\tconstraints.video.width = {ideal: /*BX.Call.Hardware.preferHdQuality*/ true ? 1280 : 640};\n\t\t\t\t\tconstraints.video.height = {ideal: /*BX.Call.Hardware.preferHdQuality*/ true ? 720 : 360};\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (this.selectedMic)\n\t\t\t{\n\t\t\t\tconstraints.audio = { deviceId: { exact: this.selectedMic } };\n\t\t\t}\n\n\t\t\tnavigator.mediaDevices.getUserMedia(constraints).then(stream => {\n\t\t\t\tthis.gettingVideo = false;\n\t\t\t\tthis.setLocalStream(stream);\n\t\t\t\tif (stream.getVideoTracks().length > 0)\n\t\t\t\t{\n\t\t\t\t\tthis.playLocalVideo();\n\t\t\t\t}\n\t\t\t}).catch(error => {\n\t\t\t\tthis.gettingVideo = false;\n\t\t\t\tLogger.warn('Getting video from camera error', error);\n\t\t\t\tthis.noVideo = true;\n\t\t\t\tthis.getApplication().setCameraState(false);\n\t\t\t});\n\t\t},\n\t\tsetLocalStream(stream)\n\t\t{\n\t\t\tthis.mediaStream = stream;\n\t\t\tthis.getApplication().setLocalVideoStream(this.mediaStream);\n\t\t},\n\t\tplayLocalVideo()\n\t\t{\n\t\t\tLogger.warn('playing local video');\n\t\t\tthis.noVideo = false;\n\t\t\tthis.userDisabledCamera = false;\n\t\t\tthis.getApplication().setCameraState(true);\n\t\t\tthis.$refs['video'].volume = 0;\n\t\t\tthis.$refs['video'].srcObject = this.mediaStream;\n\t\t\tthis.$refs['video'].play();\n\t\t},\n\t\tstopLocalVideo()\n\t\t{\n\t\t\tif(!this.mediaStream)\n\t\t\t{\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis.mediaStream.getTracks().forEach(tr => tr.stop());\n\t\t\tthis.mediaStream = null;\n\t\t\tthis.getApplication().stopLocalVideoStream();\n\t\t},\n\t\tonCameraSelected(cameraId)\n\t\t{\n\t\t\tthis.stopLocalVideo();\n\t\t\tthis.selectedCamera = cameraId;\n\t\t\tthis.getLocalStream();\n\t\t},\n\t\tonMicSelected(micId)\n\t\t{\n\t\t\t/*this.stopLocalVideo();\n\t\t\tthis.selectedMic = micId;\n\t\t\tthis.getLocalStream();*/\n\t\t},\n\t\tonCameraStateChange(state)\n\t\t{\n\t\t\tif (state)\n\t\t\t{\n\t\t\t\tthis.noVideo = false;\n\t\t\t\tthis.getLocalStream();\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tthis.stopLocalVideo();\n\t\t\t\tthis.userDisabledCamera = true;\n\t\t\t\tthis.noVideo = true;\n\t\t\t\tthis.getApplication().setCameraState(false);\n\t\t\t}\n\t\t},\n\t\tonMicStateChange(state)\n\t\t{\n\t\t\tif (state)\n\t\t\t{\n\t\t\t\tthis.getLocalStream();\n\t\t\t}\n\n\t\t\tthis.showMic = state;\n\t\t},\n\t\tisMobile()\n\t\t{\n\t\t\treturn Utils.device.isMobile();\n\t\t},\n\t\tgetApplication()\n\t\t{\n\t\t\treturn this.$Bitrix.Application.get();\n\t\t},\n\t},\n\tcomponents:\n\t\t{ MicLevel },\n\ttemplate: `\n\t<div class=\"bx-im-component-call-device-check-container\">\n\t\t<div class=\"bx-im-component-call-check-devices\">\n\t\t\t<div v-show=\"noVideo\">\n\t\t\t\t<div class=\"bx-im-component-call-check-devices-camera-no-video\">\n\t\t\t\t\t<div class=\"bx-im-component-call-check-devices-camera-no-video-icon\"></div>\n\t\t\t\t\t<div class=\"bx-im-component-call-check-devices-camera-no-video-text\">{{ noVideoText }}</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div v-show=\"!noVideo\">\n\t\t\t\t<div class=\"bx-im-component-call-check-devices-camera-video-container\">\n\t\t\t\t\t<video :class=\"cameraVideoClasses\" ref=\"video\" muted autoplay playsinline></video>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<template v-if=\"!isMobile()\">\n\t\t\t\t<mic-level v-show=\"showMic\" :localStream=\"mediaStream\"/>\n\t\t\t</template>\n\t\t</div>\n\t</div>\n\t`\n};\n\nexport {CheckDevices};","import { BitrixVue } from \"ui.vue\";\nimport { ConferenceErrorCode } from \"im.const\";\nimport { Cookie } from 'im.lib.cookie';\nimport { Utils } from \"im.lib.utils\";\nimport { Vuex } from \"ui.vue.vuex\";\n\nimport 'im.component.call-feedback';\n\nconst Error = {\n\tdata()\n\t{\n\t\treturn {\n\t\t\tdownloadAppArticleCode: 11387752,\n\t\t\tcallFeedbackSent: false\n\t\t}\n\t},\n\tcomputed:\n\t{\n\t\terrorCode()\n\t\t{\n\t\t\treturn this.conference.common.error;\n\t\t},\n\t\tbitrix24only()\n\t\t{\n\t\t\treturn this.errorCode === ConferenceErrorCode.bitrix24only;\n\t\t},\n\t\tdetectIntranetUser()\n\t\t{\n\t\t\treturn this.errorCode === ConferenceErrorCode.detectIntranetUser;\n\t\t},\n\t\tuserLimitReached()\n\t\t{\n\t\t\treturn this.errorCode === ConferenceErrorCode.userLimitReached;\n\t\t},\n\t\tkickedFromCall()\n\t\t{\n\t\t\treturn this.errorCode === ConferenceErrorCode.kickedFromCall;\n\t\t},\n\t\twrongAlias()\n\t\t{\n\t\t\treturn this.errorCode === ConferenceErrorCode.wrongAlias;\n\t\t},\n\t\tconferenceFinished()\n\t\t{\n\t\t\treturn this.errorCode === ConferenceErrorCode.finished;\n\t\t},\n\t\tunsupportedBrowser()\n\t\t{\n\t\t\treturn this.errorCode === ConferenceErrorCode.unsupportedBrowser;\n\t\t},\n\t\tmissingMicrophone()\n\t\t{\n\t\t\treturn this.errorCode === ConferenceErrorCode.missingMicrophone;\n\t\t},\n\t\tunsafeConnection()\n\t\t{\n\t\t\treturn this.errorCode === ConferenceErrorCode.unsafeConnection;\n\t\t},\n\t\tnoSignalFromCamera()\n\t\t{\n\t\t\treturn this.errorCode === ConferenceErrorCode.noSignalFromCamera;\n\t\t},\n\t\tuserLeftCall()\n\t\t{\n\t\t\treturn this.errorCode === ConferenceErrorCode.userLeftCall;\n\t\t},\n\t\tshowFeedback()\n\t\t{\n\t\t\tconsole.warn('this.$Bitrix.Application.get()', this.$Bitrix.Application.get());\n\t\t\tconsole.warn('this.$Bitrix.Application.get().showFeedback', this.$Bitrix.Application.get().showFeedback);\n\t\t\treturn this.$Bitrix.Application.get().showFeedback;\n\t\t},\n\t\tcallDetails()\n\t\t{\n\t\t\tconsole.warn('this.$Bitrix.Application.get().callDetails', this.$Bitrix.Application.get().callDetails);\n\t\t\treturn this.$Bitrix.Application.get().callDetails;\n\t\t},\n\t\tlocalize()\n\t\t{\n\t\t\treturn BitrixVue.getFilteredPhrases('BX_IM_COMPONENT_CALL_');\n\t\t},\n\t\t...Vuex.mapState({\n\t\t\tconference: state => state.conference\n\t\t})\n\t},\n\tmethods:\n\t{\n\t\treloadPage()\n\t\t{\n\t\t\tlocation.reload();\n\t\t},\n\t\tredirectToAuthorize()\n\t\t{\n\t\t\tlocation.href = location.origin + '/auth/?backurl=' + location.pathname;\n\t\t},\n\t\tcontinueAsGuest()\n\t\t{\n\t\t\tCookie.set(null, `VIDEOCONF_GUEST_${this.conference.common.alias}`, '', {path: '/'});\n\t\t\tlocation.reload(true);\n\t\t},\n\t\tgetBxLink()\n\t\t{\n\t\t\treturn `bx://videoconf/code/${this.$Bitrix.Application.get().getAlias()}`;\n\t\t},\n\t\topenHelpArticle()\n\t\t{\n\t\t\tif (BX.Helper)\n\t\t\t{\n\t\t\t\tBX.Helper.show(\"redirect=detail&code=\" + this.downloadAppArticleCode);\n\t\t\t}\n\t\t},\n\t\tisMobile()\n\t\t{\n\t\t\treturn Utils.device.isMobile();\n\t\t},\n\t\tonFeedbackSent()\n\t\t{\n\t\t\tsetTimeout(() => {\n\t\t\t\tthis.callFeedbackSent = true;\n\t\t\t}, 1500);\n\t\t}\n\t},\n\ttemplate: `\n\t\t<div class=\"bx-im-component-call-error-wrap\">\n\t\t\t<template v-if=\"bitrix24only\">\n\t\t\t\t<div class=\"bx-im-component-call-error-container\">\n\t\t\t\t\t<div class=\"bx-im-component-call-error-icon bx-im-component-call-error-icon-b24only\"></div>\n\t\t\t\t\t<div class=\"bx-im-component-call-error-content\">\n\t\t\t\t\t\t<div class=\"bx-im-component-call-error-text\">{{ localize['BX_IM_COMPONENT_CALL_ERROR_MESSAGE_B24_ONLY'] }}</div>\n\t\t\t\t\t\t<template v-if=\"!isMobile()\">\n\t\t\t\t\t\t\t<a @click.prevent=\"openHelpArticle\" class=\"bx-im-component-call-error-more-link\">{{ localize['BX_IM_COMPONENT_CALL_BUTTON_CREATE_OWN'] }}</a>\n\t\t\t\t\t\t</template>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</template>\n\t\t\t<template v-if=\"detectIntranetUser\">\n\t\t\t\t<div class=\"bx-im-component-call-error-container\">\n\t\t\t\t\t<div class=\"bx-im-component-call-error-icon bx-im-component-call-error-icon-intranet\"></div>\n\t\t\t\t\t<div class=\"bx-im-component-call-error-content\">\n\t\t\t\t\t\t<div class=\"bx-im-component-call-error-text\">{{ localize['BX_IM_COMPONENT_CALL_ERROR_MESSAGE_PLEASE_LOG_IN'] }}</div>\n\t\t\t\t\t\t<div class=\"bx-im-component-call-error-buttons\">\n\t\t\t\t\t\t\t<button @click=\"redirectToAuthorize\" class=\"ui-btn ui-btn-sm ui-btn-primary bx-im-component-call-error-button-authorize\">{{ this.localize['BX_IM_COMPONENT_CALL_BUTTON_AUTHORIZE'] }}</button>\n\t\t\t\t\t\t\t<button @click=\"continueAsGuest\" class=\"ui-btn ui-btn-sm bx-im-component-call-error-button-as-guest\">{{ this.localize['BX_IM_COMPONENT_CALL_BUTTON_AS_GUEST'] }}</button>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</template>\n\t\t\t<template v-if=\"userLimitReached\">\n\t\t\t\t<div class=\"bx-im-component-call-error-container\">\n\t\t\t\t\t<div class=\"bx-im-component-call-error-icon bx-im-component-call-error-icon-full\"></div>\n\t\t\t\t\t<div class=\"bx-im-component-call-error-content\">\n\t\t\t\t\t\t<div class=\"bx-im-component-call-error-text\">{{ localize['BX_IM_COMPONENT_CALL_ERROR_MESSAGE_USER_LIMIT'] }}</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</template>\n\t\t\t<template v-if=\"kickedFromCall\">\n\t\t\t\t<div class=\"bx-im-component-call-error-container\">\n\t\t\t\t\t<div class=\"bx-im-component-call-error-icon bx-im-component-call-error-icon-kicked\"></div>\n\t\t\t\t\t<div class=\"bx-im-component-call-error-content\">\n\t\t\t\t\t\t<div class=\"bx-im-component-call-error-text\">{{ localize['BX_IM_COMPONENT_CALL_ERROR_MESSAGE_KICKED'] }}</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</template>\n\t\t\t<template v-if=\"wrongAlias || conferenceFinished\">\n\t\t\t\t<div class=\"bx-im-component-call-error-container\">\n\t\t\t\t\t<div class=\"bx-im-component-call-error-icon bx-im-component-call-error-icon-finished\"></div>\n\t\t\t\t\t<div class=\"bx-im-component-call-error-content\">\n\t\t\t\t\t\t<div class=\"bx-im-component-call-error-text\">{{ localize['BX_IM_COMPONENT_CALL_ERROR_FINISHED'] }}</div>\n\t\t\t\t\t\t<template v-if=\"!isMobile()\">\n\t\t\t\t\t\t\t<a @click.prevent=\"openHelpArticle\" class=\"bx-im-component-call-error-more-link\">{{ localize['BX_IM_COMPONENT_CALL_BUTTON_CREATE_OWN'] }}</a>\n\t\t\t\t\t\t</template>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</template>\n\t\t\t<template v-if=\"unsupportedBrowser\">\n\t\t\t\t<div class=\"bx-im-component-call-error-container\">\n\t\t\t\t\t<div class=\"bx-im-component-call-error-icon bx-im-component-call-error-icon-browser\"></div>\n\t\t\t\t\t<div class=\"bx-im-component-call-error-content\">\n\t\t\t\t\t\t<div class=\"bx-im-component-call-error-text\">{{ localize['BX_IM_COMPONENT_CALL_ERROR_UNSUPPORTED_BROWSER'] }}</div>\n\t\t\t\t\t\t<template v-if=\"!isMobile()\">\n\t\t\t\t\t\t\t<a @click.prevent=\"openHelpArticle\" class=\"bx-im-component-call-error-more-link\">{{ localize['BX_IM_COMPONENT_CALL_BUTTON_DETAILS'] }}</a>\n\t\t\t\t\t\t</template>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</template>\n\t\t\t<template v-if=\"missingMicrophone\">\n\t\t\t\t<div class=\"bx-im-component-call-error-container\">\n\t\t\t\t\t<div class=\"bx-im-component-call-error-content\">\n\t\t\t\t\t\t<div class=\"bx-im-component-call-error-text\">{{ localize['BX_IM_COMPONENT_CALL_ERROR_NO_MIC'] }}</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</template>\n\t\t\t<template v-if=\"unsafeConnection\">\n\t\t\t\t<div class=\"bx-im-component-call-error-container\">\n\t\t\t\t\t<div class=\"bx-im-component-call-error-icon bx-im-component-call-error-icon-https\"></div>\n\t\t\t\t\t<div class=\"bx-im-component-call-error-content\">\n\t\t\t\t\t\t<div class=\"bx-im-component-call-error-text\">{{ localize['BX_IM_COMPONENT_CALL_ERROR_NO_HTTPS'] }}</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</template>\n\t\t\t<template v-if=\"noSignalFromCamera\">\n\t\t\t\t<div class=\"bx-im-component-call-error-container\">\n\t\t\t\t\t<div class=\"bx-im-component-call-error-content\">\n\t\t\t\t\t\t<div class=\"bx-im-component-call-error-text\">{{ localize['BX_IM_COMPONENT_CALL_ERROR_NO_SIGNAL_FROM_CAMERA'] }}</div>\n\t\t\t\t\t\t<div class=\"bx-im-component-call-error-buttons\">\n\t\t\t\t\t\t\t<button @click=\"reloadPage\" class=\"ui-btn ui-btn-sm ui-btn-no-caps\">{{ localize['BX_IM_COMPONENT_CALL_BUTTON_RELOAD'] }}</button>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</template>\n\t\t\t<template v-if=\"userLeftCall\">\n\t\t\t\t<template v-if=\"!callFeedbackSent && showFeedback\">\n\t\t\t\t\t<bx-im-component-call-feedback @feedbackSent=\"onFeedbackSent\" :callDetails=\"callDetails\" :darkMode=\"true\"/>\n\t\t\t\t</template>\n\t\t\t\t<template v-else>\n\t\t\t\t\t<div class=\"bx-im-component-call-error-container\">\n\t\t\t\t\t\t<div class=\"bx-im-component-call-error-content\">\n\t\t\t\t\t\t\t<div class=\"bx-im-component-call-error-text\">{{ localize['BX_IM_COMPONENT_CALL_ERROR_USER_LEFT_THE_CALL'] }}</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</template>\n\t\t\t</template>\n\t\t</div>\n\t`\n};\n\nexport {Error};","const OrientationDisabled = {\n\ttemplate: `\n\t\t<div class=\"bx-im-component-call-orientation-disabled-wrap\">\n\t\t\t<div class=\"bx-im-component-call-orientation-disabled-icon\"></div>\n\t\t\t<div class=\"bx-im-component-call-orientation-disabled-text\">\n\t\t\t\t{{ $Bitrix.Loc.getMessage('BX_IM_COMPONENT_CALL_ROTATE_DEVICE') }}\n\t\t\t</div>\n\t\t</div>\n\t`\n};\n\nexport {OrientationDisabled};","import { BitrixVue } from \"ui.vue\";\nimport { Vuex } from \"ui.vue.vuex\";\nimport { EventEmitter } from \"main.core.events\";\nimport { EventType } from \"im.const\";\n\nconst PasswordCheck = {\n\tdata()\n\t{\n\t\treturn {\n\t\t\tpassword: '',\n\t\t\tcheckingPassword: '',\n\t\t\twrongPassword: ''\n\t\t}\n\t},\n\tcreated()\n\t{\n\t\tEventEmitter.subscribe(EventType.conference.setPasswordFocus, this.onSetPasswordFocus);\n\t},\n\tbeforeDestroy()\n\t{\n\t\tEventEmitter.unsubscribe(EventType.conference.setPasswordFocus, this.onSetPasswordFocus);\n\t},\n\tcomputed:\n\t{\n\t\tconferenceTitle()\n\t\t{\n\t\t\treturn this.conference.common.conferenceTitle;\n\t\t},\n\t\tlocalize()\n\t\t{\n\t\t\treturn BitrixVue.getFilteredPhrases('BX_IM_COMPONENT_CALL_');\n\t\t},\n\t\t...Vuex.mapState({\n\t\t\tconference: state => state.conference\n\t\t})\n\t},\n\tmethods:\n\t{\n\t\tonSetPasswordFocus()\n\t\t{\n\t\t\tthis.$refs['passwordInput'].focus();\n\t\t},\n\t\tcheckPassword()\n\t\t{\n\t\t\tif (!this.password || this.checkingPassword)\n\t\t\t{\n\t\t\t\tthis.wrongPassword = true;\n\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tthis.checkingPassword = true;\n\t\t\tthis.wrongPassword = false;\n\t\t\tthis.getApplication().checkPassword(this.password)\n\t\t\t\t.catch(() => {\n\t\t\t\t\tthis.wrongPassword = true;\n\t\t\t\t})\n\t\t\t\t.finally(() => {\n\t\t\t\t\tthis.checkingPassword = false;\n\t\t\t\t});\n\t\t},\n\t\tgetApplication()\n\t\t{\n\t\t\treturn this.$Bitrix.Application.get();\n\t\t}\n\t},\n\t// language=Vue\n\ttemplate: `\n\t\t<div>\n\t\t\t<div class=\"bx-im-component-call-info-container\">\n\t\t\t\t<div class=\"bx-im-component-call-info-logo\"></div>\n\t\t\t\t<div class=\"bx-im-component-call-info-title\">{{ conferenceTitle }}</div>\n\t\t\t</div>\n\t\t\t<div class=\"bx-im-component-call-password-container\">\n\t\t\t\t<template v-if=\"wrongPassword\">\n\t\t\t\t\t<div class=\"bx-im-component-call-password-error\">\n\t\t\t\t\t\t{{ localize['BX_IM_COMPONENT_CALL_PASSWORD_WRONG'] }}\n\t\t\t\t\t</div>\n\t\t\t\t</template>\n\t\t\t\t<template v-else>\n\t\t\t\t\t<div class=\"bx-im-component-call-password-title\">\n\t\t\t\t\t\t<div class=\"bx-im-component-call-password-title-logo\"></div>\n\t\t\t\t\t\t<div class=\"bx-im-component-call-password-title-text\">\n\t\t\t\t\t\t\t{{ localize['BX_IM_COMPONENT_CALL_PASSWORD_TITLE'] }}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</template>\n\t\t\t\t<input\n\t\t\t\t\t@keyup.enter=\"checkPassword\"\n\t\t\t\t\ttype=\"text\"\n\t\t\t\t\tv-model=\"password\"\n\t\t\t\t\tclass=\"bx-im-component-call-password-input\"\n\t\t\t\t\t:placeholder=\"localize['BX_IM_COMPONENT_CALL_PASSWORD_PLACEHOLDER']\"\n\t\t\t\t\tref=\"passwordInput\"\n\t\t\t\t/>\n\t\t\t\t<button @click=\"checkPassword\" class=\"ui-btn ui-btn-sm ui-btn-primary bx-im-component-call-password-button\">\n\t\t\t \t\t{{ localize['BX_IM_COMPONENT_CALL_PASSWORD_JOIN'] }}\n\t\t\t\t</button>\n\t\t\t</div>\n\t\t</div>\n\t`\n};\n\nexport {PasswordCheck};","import { BitrixVue } from \"ui.vue\";\n\nconst LoadingStatus = {\n\tcomputed:\n\t{\n\t\tlocalize()\n\t\t{\n\t\t\treturn BitrixVue.getFilteredPhrases('BX_IM_COMPONENT_CALL_');\n\t\t}\n\t},\n\t// language=Vue\n\ttemplate: `\n\t\t<div class=\"bx-im-component-call-loading\">\n\t\t\t<div class=\"bx-im-component-call-loading-text\">{{ localize['BX_IM_COMPONENT_CALL_LOADING'] }}</div>\n\t\t</div>\n\t`\n};\n\nexport {LoadingStatus};","import { BitrixVue } from \"ui.vue\";\nimport { MessageBox, MessageBoxButtons } from \"ui.dialogs.messagebox\";\nimport { EventEmitter } from \"main.core.events\";\nimport { EventType } from \"im.const\";\n\nconst NOT_ALLOWED_ERROR_CODE = 'NotAllowedError';\nconst NOT_FOUND_ERROR_CODE = 'NotFoundError';\n\nconst RequestPermissions = {\n\tprops: {\n\t\tskipRequest: {\n\t\t\ttype: Boolean,\n\t\t\trequired: false,\n\t\t\tdefault: false\n\t\t}\n\t},\n\tcreated()\n\t{\n\t\tEventEmitter.subscribe(EventType.conference.requestPermissions, this.onRequestPermissions);\n\t},\n\tbeforeDestroy()\n\t{\n\t\tEventEmitter.unsubscribe(EventType.conference.requestPermissions, this.onRequestPermissions);\n\t},\n\tcomputed:\n\t{\n\t\tlocalize()\n\t\t{\n\t\t\treturn BitrixVue.getFilteredPhrases('BX_IM_COMPONENT_CALL_');\n\t\t}\n\t},\n\tmethods:\n\t{\n\t\tonRequestPermissions()\n\t\t{\n\t\t\tthis.requestPermissions();\n\t\t},\n\t\trequestPermissions()\n\t\t{\n\t\t\tthis.getApplication().initHardware().then(() => {\n\t\t\t\treturn navigator.mediaDevices.getUserMedia({audio: true, video: true});\n\t\t\t}).then(() => {\n\t\t\t\tthis.setPermissionsRequestedFlag();\n\t\t\t}).catch((error) => {\n\t\t\t\tif (error.name === NOT_ALLOWED_ERROR_CODE)\n\t\t\t\t{\n\t\t\t\t\tthis.showMessageBox(this.localize['BX_IM_COMPONENT_CALL_NOT_ALLOWED_ERROR']);\n\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\telse if (error.name === NOT_FOUND_ERROR_CODE)\n\t\t\t\t{\n\t\t\t\t\t// means there is no camera, request only microphone\n\t\t\t\t\treturn navigator.mediaDevices.getUserMedia({audio: true, video: false}).then(() => {\n\t\t\t\t\t\tthis.setPermissionsRequestedFlag();\n\t\t\t\t\t}).catch((error) => {\n\t\t\t\t\t\tif (error.name === NOT_ALLOWED_ERROR_CODE)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tthis.showMessageBox(this.localize['BX_IM_COMPONENT_CALL_NOT_ALLOWED_ERROR']);\n\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\tthis.showMessageBox(this.localize['BX_IM_COMPONENT_CALL_HARDWARE_ERROR']);\n\t\t\t});\n\t\t},\n\t\tsetPermissionsRequestedFlag()\n\t\t{\n\t\t\tthis.$nextTick(() => this.$store.dispatch('conference/setPermissionsRequested', {status: true}));\n\t\t},\n\t\tshowMessageBox(text)\n\t\t{\n\t\t\tMessageBox.show({\n\t\t\t\tmessage: text,\n\t\t\t\tmodal: true,\n\t\t\t\tbuttons: MessageBoxButtons.OK\n\t\t\t});\n\t\t},\n\t\tgetApplication()\n\t\t{\n\t\t\treturn this.$Bitrix.Application.get();\n\t\t}\n\t},\n\t// language=Vue\n\ttemplate: `\n\t\t<div class=\"bx-im-component-call-permissions-container\">\n\t\t\t<template v-if=\"!skipRequest\">\n\t\t\t\t<div class=\"bx-im-component-call-permissions-text\">{{ localize['BX_IM_COMPONENT_CALL_PERMISSIONS_TEXT'] }}</div>\n\t\t\t\t<button @click=\"requestPermissions\" class=\"ui-btn ui-btn-sm ui-btn-primary bx-im-component-call-permissions-button\">\n\t\t\t\t\t{{ localize['BX_IM_COMPONENT_CALL_ENABLE_DEVICES_BUTTON'] }}\n\t\t\t\t</button>\n\t\t\t\t<slot></slot>\n\t\t\t</template>\n\t\t\t<template v-else>\n\t\t\t\t<div class=\"bx-im-component-call-permissions-text\">{{ localize['BX_IM_COMPONENT_CALL_PERMISSIONS_LOADING'] }}</div>\n\t\t\t\t<button class=\"ui-btn ui-btn-sm ui-btn-wait bx-im-component-call-permissions-button\">\n\t\t\t\t\t{{ localize['BX_IM_COMPONENT_CALL_PERMISSIONS_BUTTON'] }}\n\t\t\t\t</button>\n\t\t\t</template>\n\t\t</div>\n\t`\n};\n\nexport {RequestPermissions};","import { BitrixVue } from \"ui.vue\";\nimport { Vuex } from \"ui.vue.vuex\";\n\nconst MobileChatButton = {\n\tcomputed:\n\t{\n\t\tdialogCounter()\n\t\t{\n\t\t\tif (this.dialog)\n\t\t\t{\n\t\t\t\treturn this.dialog.counter;\n\t\t\t}\n\t\t},\n\t\tuserCounter()\n\t\t{\n\t\t\treturn this.conference.common.userCount;\n\t\t},\n\t\tlocalize()\n\t\t{\n\t\t\treturn BitrixVue.getFilteredPhrases('BX_IM_COMPONENT_CALL_');\n\t\t},\n\t\t...Vuex.mapState({\n\t\t\tdialog: state => state.dialogues.collection[state.application.dialog.dialogId],\n\t\t\tconference: state => state.conference\n\t\t})\n\t},\n\tmethods:\n\t{\n\t\topenChat()\n\t\t{\n\t\t\tthis.getApplication().toggleChat();\n\t\t},\n\t\topenUserList()\n\t\t{\n\t\t\tthis.getApplication().toggleUserList();\n\t\t},\n\t\tgetApplication()\n\t\t{\n\t\t\treturn this.$Bitrix.Application.get();\n\t\t}\n\t},\n\ttemplate: `\n\t\t<div class=\"bx-im-component-call-open-chat-button-container\">\n\t\t\t<div @click=\"openChat\" class=\"ui-btn ui-btn-sm ui-btn-icon-chat bx-im-component-call-open-chat-button\">\n\t\t\t\t{{ localize['BX_IM_COMPONENT_CALL_OPEN_CHAT'] }}\n\t\t\t\t<div v-if=\"dialogCounter > 0\" class=\"bx-im-component-call-open-chat-button-counter\">{{ dialogCounter }}</div>\n\t\t\t</div>\n\t\t\t\n\t\t\t<div @click=\"openUserList\" class=\"ui-btn ui-btn-sm ui-btn-icon-chat bx-im-component-call-open-user-list-button\">\n\t\t\t\t{{ localize['BX_IM_COMPONENT_CALL_OPEN_USER_LIST'] }}\n\t\t\t\t<div class=\"bx-im-component-call-open-chat-button-counter\">{{ userCounter }}</div>\n\t\t\t</div>\n\t\t</div>\n\t`\n};\n\nexport {MobileChatButton};","import { BitrixVue } from \"ui.vue\";\nimport { Vuex } from \"ui.vue.vuex\";\n\nconst ConferenceInfo = {\n\tprops: {\n\t\tcompactMode: {\n\t\t\ttype: Boolean,\n\t\t\trequired: false,\n\t\t\tdefault: false\n\t\t}\n\t},\n\tdata()\n\t{\n\t\treturn {\n\t\t\tconferenceDuration: '',\n\t\t\tdurationInterval: null\n\t\t}\n\t},\n\tcreated()\n\t{\n\t\tif (this.conferenceStarted)\n\t\t{\n\t\t\tthis.updateConferenceDuration();\n\t\t\tthis.durationInterval = setInterval(() => {\n\t\t\t\tthis.updateConferenceDuration();\n\t\t\t}, 1000);\n\t\t}\n\t},\n\tbeforeDestroy()\n\t{\n\t\tclearInterval(this.durationInterval);\n\t},\n\tcomputed:\n\t{\n\t\tconferenceStarted()\n\t\t{\n\t\t\treturn this.conference.common.conferenceStarted;\n\t\t},\n\t\tconferenceStartDate()\n\t\t{\n\t\t\treturn this.conference.common.conferenceStartDate;\n\t\t},\n\t\tconferenceTitle()\n\t\t{\n\t\t\treturn this.conference.common.conferenceTitle;\n\t\t},\n\t\tuserId()\n\t\t{\n\t\t\treturn this.application.common.userId;\n\t\t},\n\t\tisBroadcast()\n\t\t{\n\t\t\treturn this.conference.common.isBroadcast;\n\t\t},\n\t\tpresentersList()\n\t\t{\n\t\t\treturn this.conference.common.presenters;\n\t\t},\n\t\tpresentersInfo()\n\t\t{\n\t\t\treturn this.$store.getters['users/getList'](this.presentersList);\n\t\t},\n\t\tformattedPresentersList()\n\t\t{\n\t\t\tconst presentersCount = this.presentersList.length;\n\t\t\tconst prefix = presentersCount > 1 ? this.localize['BX_IM_COMPONENT_CALL_SPEAKERS_MULTIPLE'] : this.localize['BX_IM_COMPONENT_CALL_SPEAKER'];\n\t\t\tconst presenters = this.presentersInfo.map(user => user.name).join(', ');\n\n\t\t\treturn `${prefix}: ${presenters}`;\n\t\t},\n\t\tisCurrentUserPresenter()\n\t\t{\n\t\t\treturn this.presentersList.includes(this.userId);\n\t\t},\n\t\tconferenceStatusText()\n\t\t{\n\t\t\tif (this.conferenceStarted === true)\n\t\t\t{\n\t\t\t\treturn `${this.localize['BX_IM_COMPONENT_CALL_STATUS_STARTED']}, ${this.conferenceDuration}`;\n\t\t\t}\n\t\t\telse if (this.conferenceStarted === false)\n\t\t\t{\n\t\t\t\treturn this.localize['BX_IM_COMPONENT_CALL_STATUS_NOT_STARTED'];\n\t\t\t}\n\t\t\telse if (this.conferenceStarted === null)\n\t\t\t{\n\t\t\t\treturn this.localize['BX_IM_COMPONENT_CALL_STATUS_LOADING'];\n\t\t\t}\n\t\t},\n\t\tconferenceStatusClasses()\n\t\t{\n\t\t\treturn [\n\t\t\t\t'bx-im-component-call-info-status',\n\t\t\t\tthis.conferenceStarted? 'bx-im-component-call-info-status-active' : 'bx-im-component-call-info-status-not-active'\n\t\t\t];\n\t\t},\n\t\tcontainerClasses()\n\t\t{\n\t\t\treturn [this.compactMode? 'bx-im-component-call-info-container-compact' : 'bx-im-component-call-info-container'];\n\t\t},\n\t\tlocalize()\n\t\t{\n\t\t\treturn BitrixVue.getFilteredPhrases('BX_IM_COMPONENT_CALL_');\n\t\t},\n\t\t...Vuex.mapState({\n\t\t\tconference: state => state.conference\n\t\t})\n\t},\n\twatch:\n\t{\n\t\tconferenceStarted(newValue)\n\t\t{\n\t\t\tif (newValue === true)\n\t\t\t{\n\t\t\t\tthis.durationInterval = setInterval(() => {\n\t\t\t\t\tthis.updateConferenceDuration();\n\t\t\t\t}, 1000);\n\t\t\t}\n\n\t\t\tthis.updateConferenceDuration();\n\t\t},\n\t},\n\tmethods:\n\t{\n\t\tupdateConferenceDuration()\n\t\t{\n\t\t\tif (!this.conferenceStartDate)\n\t\t\t{\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tconst startDate = this.conferenceStartDate;\n\t\t\tconst currentDate = new Date();\n\n\t\t\tlet durationInSeconds = Math.floor((currentDate - startDate) / 1000);\n\t\t\tlet minutes = 0;\n\t\t\tif (durationInSeconds > 60)\n\t\t\t{\n\t\t\t\tminutes = Math.floor(durationInSeconds / 60);\n\t\t\t\tif (minutes < 10)\n\t\t\t\t{\n\t\t\t\t\tminutes = '0' + minutes;\n\t\t\t\t}\n\t\t\t}\n\t\t\tlet seconds = durationInSeconds - (minutes * 60);\n\t\t\tif (seconds < 10)\n\t\t\t{\n\t\t\t\tseconds = '0' + seconds;\n\t\t\t}\n\t\t\tthis.conferenceDuration = `${minutes}:${seconds}`;\n\n\t\t\treturn true;\n\t\t}\n\t},\n\t// language=Vue\n\ttemplate: `\n\t\t<div :class=\"containerClasses\">\n\t\t\t<template v-if=\"compactMode\">\n\t\t\t\t<div class=\"bx-im-component-call-info-title-container\">\n\t\t\t\t\t<div class=\"bx-im-component-call-info-logo\"></div>\n\t\t\t\t\t<div class=\"bx-im-component-call-info-title\">{{ conferenceTitle }}</div>\n\t\t\t\t</div>\n\t\t\t\t<div v-if=\"isBroadcast\" class=\"bx-im-component-call-info-speakers\">{{ formattedPresentersList }}</div>\n\t\t\t</template>\n\t\t\t<template v-else>\n\t\t\t\t<div class=\"bx-im-component-call-info-logo\"></div>\n\t\t\t\t<div class=\"bx-im-component-call-info-title\">{{ conferenceTitle }}</div>\n\t\t\t \t<div v-if=\"isBroadcast\" class=\"bx-im-component-call-info-speakers\">{{ formattedPresentersList }}</div>\t\n\t\t\t</template>\n\t\t\t<div :class=\"conferenceStatusClasses\">{{ conferenceStatusText }}</div>\n\t\t</div>\n\t`\n};\n\nexport {ConferenceInfo};","import { BitrixVue } from \"ui.vue\";\nimport { Vuex } from \"ui.vue.vuex\";\nimport { Utils } from \"im.lib.utils\";\nimport { EventEmitter } from \"main.core.events\";\nimport { EventType } from \"im.const\";\nimport { Logger } from \"im.lib.logger\";\n\nconst UserForm = {\n\tdata()\n\t{\n\t\treturn {\n\t\t\tuserNewName: ''\n\t\t}\n\t},\n\tcomputed:\n\t{\n\t\tconferenceStarted()\n\t\t{\n\t\t\treturn this.conference.common.conferenceStarted;\n\t\t},\n\t\tuserHasRealName()\n\t\t{\n\t\t\tif (this.user)\n\t\t\t{\n\t\t\t\treturn this.user.name !== this.localize['BX_IM_COMPONENT_CALL_DEFAULT_USER_NAME'];\n\t\t\t}\n\n\t\t\treturn false;\n\t\t},\n\t\tintranetAvatarStyle()\n\t\t{\n\t\t\tif (this.user && !this.user.extranet && this.user.avatar)\n\t\t\t{\n\t\t\t\treturn {\n\t\t\t\t\tbackgroundImage: `url('${this.user.avatar}')`\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn '';\n\t\t},\n\t\tlogoutLink()\n\t\t{\n\t\t\treturn `${this.publicLink}?logout=yes&sessid=${BX.bitrix_sessid()}`;\n\t\t},\n\t\tpublicLink()\n\t\t{\n\t\t\tif (this.dialog)\n\t\t\t{\n\t\t\t\treturn this.dialog.public.link;\n\t\t\t}\n\t\t},\n\t\tuserId()\n\t\t{\n\t\t\treturn this.application.common.userId;\n\t\t},\n\t\tisBroadcast()\n\t\t{\n\t\t\treturn this.conference.common.isBroadcast;\n\t\t},\n\t\tpresentersList()\n\t\t{\n\t\t\treturn this.conference.common.presenters;\n\t\t},\n\t\tisCurrentUserPresenter()\n\t\t{\n\t\t\treturn this.presentersList.includes(this.userId);\n\t\t},\n\t\tlocalize()\n\t\t{\n\t\t\treturn BitrixVue.getFilteredPhrases('BX_IM_COMPONENT_CALL_');\n\t\t},\n\t\tvideoModeButtonClasses()\n\t\t{\n\t\t\tconst classes = ['ui-btn', 'ui-btn-sm', 'ui-btn-primary', 'bx-im-component-call-join-video'];\n\n\t\t\tif (!this.getApplication().hardwareInited)\n\t\t\t{\n\t\t\t\tclasses.push('ui-btn-disabled');\n\t\t\t}\n\n\t\t\treturn classes;\n\t\t},\n\t\taudioModeButtonClasses()\n\t\t{\n\t\t\tconst classes = ['ui-btn', 'ui-btn-sm', 'bx-im-component-call-join-audio'];\n\n\t\t\tif (!this.getApplication().hardwareInited)\n\t\t\t{\n\t\t\t\tclasses.push('ui-btn-disabled');\n\t\t\t}\n\n\t\t\treturn classes;\n\t\t},\n\t\t...Vuex.mapState({\n\t\t\tuser: state => state.users.collection[state.application.common.userId],\n\t\t\tapplication: state => state.application,\n\t\t\tconference: state => state.conference\n\t\t})\n\t},\n\tmethods:\n\t{\n\t\tstartConference({ video })\n\t\t{\n\t\t\tthis.getApplication().startCall(video);\n\t\t},\n\t\tjoinConference({ video })\n\t\t{\n\t\t\tif (this.user.extranet && !this.userHasRealName)\n\t\t\t{\n\t\t\t\tthis.setNewName();\n\t\t\t}\n\n\t\t\tif (!this.conferenceStarted)\n\t\t\t{\n\t\t\t\tEventEmitter.emit(EventType.conference.waitForStart);\n\n\t\t\t\tthis.getApplication().setUserReadyToJoin();\n\t\t\t\tthis.getApplication().setJoinType(video);\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tconst viewerMode = this.isBroadcast && !this.isCurrentUserPresenter;\n\t\t\t\tLogger.warn('ready to join call', video, viewerMode);\n\t\t\t\tif (viewerMode)\n\t\t\t\t{\n\t\t\t\t\tthis.getApplication().joinCall(this.getApplication().preCall.id, {\n\t\t\t\t\t\tjoinAsViewer: true\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tthis.getApplication().startCall(video);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tsetNewName()\n\t\t{\n\t\t\tif (this.userNewName.length > 0)\n\t\t\t{\n\t\t\t\tthis.getApplication().renameGuest(this.userNewName.trim());\n\t\t\t}\n\t\t},\n\t\tgetApplication()\n\t\t{\n\t\t\treturn this.$Bitrix.Application.get();\n\t\t},\n\t\tisDesktop()\n\t\t{\n\t\t\treturn Utils.platform.isBitrixDesktop();\n\t\t},\n\t},\n\ttemplate: `\n\t\t<div class=\"bx-im-component-call-form\">\n\t\t\t<template v-if=\"user && userHasRealName\">\n\t\t\t\t<template v-if=\"!user.extranet\">\n\t\t\t\t\t<div class=\"bx-im-component-call-intranet-name-container\">\n\t\t\t\t\t\t<div class=\"bx-im-component-call-intranet-name-title\">\n\t\t\t\t\t\t\t{{ localize['BX_IM_COMPONENT_CALL_INTRANET_NAME_TITLE'] }}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div class=\"bx-im-component-call-intranet-name-content\">\n\t\t\t\t\t\t\t<div class=\"bx-im-component-call-intranet-name-content-left\">\n\t\t\t\t\t\t\t\t<div :style=\"intranetAvatarStyle\" class=\"bx-im-component-call-intranet-name-avatar\"></div>\n\t\t\t\t\t\t\t\t<div class=\"bx-im-component-call-intranet-name-text\">{{ user.name }}</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<template v-if=\"!isDesktop()\">\n\t\t\t\t\t\t\t\t<a :href=\"logoutLink\" class=\"bx-im-component-call-intranet-name-logout\">\n\t\t\t\t\t\t\t\t\t{{ localize['BX_IM_COMPONENT_CALL_INTRANET_LOGOUT'] }}\n\t\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</template>\n\t\t\t\t<template v-else-if=\"user.extranet\">\n\t\t\t\t\t<div class=\"bx-im-component-call-guest-name-container\">\n\t\t\t\t\t\t<div class=\"bx-im-component-call-guest-name-text\">{{ user.name }}</div>\n\t\t\t\t\t</div>\n\t\t\t\t</template>\n\t\t\t</template>\n\t\t\t<!-- New guest, need to specify name -->\n\t\t\t<template v-else-if=\"user && !userHasRealName\">\n\t\t\t\t<input\n\t\t\t\t\tv-model=\"userNewName\"\n\t\t\t\t\ttype=\"text\"\n\t\t\t\t\t:placeholder=\"localize['BX_IM_COMPONENT_CALL_NAME_PLACEHOLDER']\"\n\t\t\t\t\tclass=\"bx-im-component-call-name-input\"\n\t\t\t\t\tref=\"nameInput\"\n\t\t\t\t/>\n\t\t\t</template>\n\t\t\t<!-- Buttons -->\n\t\t\t<template v-if=\"user\">\n\t\t\t\t<!-- Broadcast mode -->\n\t\t\t\t<template v-if=\"isBroadcast\">\n\t\t\t\t\t<!-- Speaker can start conference -->\n\t\t\t\t\t<template v-if=\"isCurrentUserPresenter && !conferenceStarted\">\n\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t@click=\"startConference({video: true})\"\n\t\t\t\t\t\t\t:class=\"videoModeButtonClasses\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{{ localize['BX_IM_COMPONENT_CALL_START_WITH_VIDEO'] }}\n\t\t\t\t\t\t</button>\n\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t@click=\"startConference({video: false})\"\n\t\t\t\t\t\t\t:class=\"audioModeButtonClasses\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{{ localize['BX_IM_COMPONENT_CALL_START_WITH_AUDIO'] }}\n\t\t\t\t\t\t</button>\n\t\t\t\t\t</template>\n\t\t\t\t\t<!-- Speakers can join with audio/video -->\n\t\t\t\t\t<template v-else-if=\"conferenceStarted && isCurrentUserPresenter\">\n\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t@click=\"joinConference({video: true})\"\n\t\t\t\t\t\t\t:class=\"videoModeButtonClasses\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{{ localize['BX_IM_COMPONENT_CALL_JOIN_WITH_VIDEO'] }}\n\t\t\t\t\t\t</button>\n\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t@click=\"joinConference({video: false})\"\n\t\t\t\t\t\t\t:class=\"audioModeButtonClasses\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{{ localize['BX_IM_COMPONENT_CALL_JOIN_WITH_AUDIO'] }}\n\t\t\t\t\t\t</button>\n\t\t\t\t\t</template>\n\t\t\t\t\t<!-- Others can join as viewers -->\n\t\t\t\t\t<template v-else-if=\"!isCurrentUserPresenter\">\n\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t@click=\"joinConference({video: false})\"\n\t\t\t\t\t\t\tclass=\"ui-btn ui-btn-sm ui-btn-primary bx-im-component-call-join-video\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{{ localize['BX_IM_COMPONENT_CALL_JOIN'] }}\n\t\t\t\t\t\t</button>\n\t\t\t\t\t</template>\n\t\t\t\t</template>\n\t\t\t\t<!-- End broadcast mode -->\n\t\t\t\t<template v-else-if=\"!isBroadcast\">\n\t\t\t\t\t<!-- Intranet user can start conference -->\n\t\t\t\t\t<template v-if=\"!user.extranet && !conferenceStarted\">\n\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t@click=\"startConference({video: true})\"\n\t\t\t\t\t\t\t:class=\"videoModeButtonClasses\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{{ localize['BX_IM_COMPONENT_CALL_START_WITH_VIDEO'] }}\n\t\t\t\t\t\t</button>\n\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t@click=\"startConference({video: false})\"\n\t\t\t\t\t\t\t:class=\"audioModeButtonClasses\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{{ localize['BX_IM_COMPONENT_CALL_START_WITH_AUDIO'] }}\n\t\t\t\t\t\t</button>\n\t\t\t\t\t</template>\n\t\t\t\t\t<!-- Others can join -->\n\t\t\t\t\t<template v-else>\n\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t@click=\"joinConference({video: true})\"\n\t\t\t\t\t\t\t:class=\"videoModeButtonClasses\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{{ localize['BX_IM_COMPONENT_CALL_JOIN_WITH_VIDEO'] }}\n\t\t\t\t\t\t</button>\n\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t@click=\"joinConference({video: false})\"\n\t\t\t\t\t\t\t:class=\"audioModeButtonClasses\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{{ localize['BX_IM_COMPONENT_CALL_JOIN_WITH_AUDIO'] }}\n\t\t\t\t\t\t</button>\n\t\t\t\t\t</template>\n\t\t\t\t</template>\n\t\t\t</template>\n\t\t\t<!--End normal (not broadcast) mode-->\n\t\t</div>\n\t`\n};\n\nexport {UserForm};","import { BitrixVue } from \"ui.vue\";\nimport { Vuex } from \"ui.vue.vuex\";\nimport { Utils } from \"im.lib.utils\";\nimport { Desktop } from \"im.lib.desktop\";\n\nconst ChatHeader = {\n\tcreated()\n\t{\n\t\tthis.desktop = new Desktop();\n\t},\n\tcomputed:\n\t{\n\t\tshowTotalCounter()\n\t\t{\n\t\t\treturn Utils.platform.isBitrixDesktop()\n\t\t\t\t&& (this.desktop.getApiVersion() >= 60 || !Utils.platform.isWindows())\n\t\t\t\t&& !this.getApplication().isExternalUser()\n\t\t\t\t&& this.messageCount > 0;\n\t\t},\n\t\tmessageCount()\n\t\t{\n\t\t\treturn this.conference.common.messageCount;\n\t\t},\n\t\tformattedCounter()\n\t\t{\n\t\t\treturn this.messageCount > 99 ? '99+' : this.messageCount;\n\t\t},\n\t\tlocalize()\n\t\t{\n\t\t\treturn BitrixVue.getFilteredPhrases('BX_IM_COMPONENT_CALL_');\n\t\t},\n\t\t...Vuex.mapState({\n\t\t\tconference: state => state.conference\n\t\t})\n\t},\n\tmethods:\n\t{\n\t\tonCloseChat()\n\t\t{\n\t\t\tthis.getApplication().toggleChat();\n\t\t},\n\t\tonTotalCounterClick()\n\t\t{\n\t\t\tif (opener && opener.BXDesktopWindow)\n\t\t\t{\n\t\t\t\topener.BXDesktopWindow.ExecuteCommand('show.active');\n\t\t\t}\n\t\t},\n\t\tgetApplication()\n\t\t{\n\t\t\treturn this.$Bitrix.Application.get();\n\t\t}\n\t},\n\ttemplate: `\n\t\t<div class=\"bx-im-component-call-right-header\">\n\t\t\t<div class=\"bx-im-component-call-right-header-left\">\n\t\t\t\t<div @click=\"onCloseChat\" class=\"bx-im-component-call-right-header-close\" :title=\"localize['BX_IM_COMPONENT_CALL_CHAT_CLOSE_TITLE']\"></div>\n\t\t\t\t<div class=\"bx-im-component-call-right-header-title\">{{ localize['BX_IM_COMPONENT_CALL_CHAT_TITLE'] }}</div>\n\t\t\t</div>\n\t\t\t<template v-if=\"showTotalCounter\">\n\t\t\t\t<div @click=\"onTotalCounterClick\" class=\"bx-im-component-call-right-header-right bx-im-component-call-right-header-all-chats\">\n\t\t\t\t\t<div class=\"bx-im-component-call-right-header-all-chats-title\">{{ localize['BX_IM_COMPONENT_CALL_ALL_CHATS'] }}</div>\n\t\t\t\t\t<div class=\"bx-im-component-call-right-header-all-chats-counter\">{{ messageCount }}</div>\n\t\t\t\t</div>\n\t\t\t</template>\n\t\t</div>\n\t`\n};\n\nexport {ChatHeader};","import { BitrixVue } from \"ui.vue\";\nimport { Vuex } from \"ui.vue.vuex\";\n\nconst WaitingForStart = {\n\tcomputed:\n\t{\n\t\tuserCounter()\n\t\t{\n\t\t\treturn this.dialog.userCounter;\n\t\t},\n\t\tlocalize()\n\t\t{\n\t\t\treturn BitrixVue.getFilteredPhrases('BX_IM_COMPONENT_CALL_');\n\t\t},\n\t\t...Vuex.mapState({\n\t\t\tconference: state => state.conference,\n\t\t\tdialog: state => state.dialogues.collection[state.application.dialog.dialogId]\n\t\t})\n\t},\n\t// language=Vue\n\ttemplate: `\n\t\t<div class=\"bx-im-component-call-wait-container\">\n\t\t\t<div class=\"bx-im-component-call-wait-logo\"></div>\n\t\t\t<div class=\"bx-im-component-call-wait-title\">{{ localize['BX_IM_COMPONENT_CALL_WAIT_START_TITLE'] }}</div>\n\t\t\t<div class=\"bx-im-component-call-wait-user-counter\">\n\t\t\t\t{{ localize['BX_IM_COMPONENT_CALL_WAIT_START_USER_COUNT'] }} {{ userCounter }}\n\t\t\t</div>\n\t\t\t<slot></slot>\n\t\t</div>\n\t`\n};\n\nexport {WaitingForStart};","import { Vuex } from \"ui.vue.vuex\";\nimport { Utils } from \"im.lib.utils\";\nimport { MenuManager } from \"main.popup\";\nimport { ConferenceUserState, ConferenceStateType, EventType } from 'im.const';\nimport { EventEmitter } from \"main.core.events\";\n\nconst UserListItem = {\n\tprops: {\n\t\tuserId: {\n\t\t\ttype: Number,\n\t\t\trequired: true\n\t\t}\n\t},\n\tdata: function() {\n\t\treturn {\n\t\t\trenameMode: false,\n\t\t\tnewName: '',\n\t\t\trenameRequested: false,\n\t\t\tmenuId: 'bx-messenger-context-popup-external-data',\n\t\t\tonlineStates: [ConferenceUserState.Ready, ConferenceUserState.Connected]\n\t\t}\n\t},\n\tcomputed:\n\t{\n\t\tuser()\n\t\t{\n\t\t\treturn this.$store.getters['users/get'](this.userId, true);\n\t\t},\n\t\t// statuses\n\t\tcurrentUser()\n\t\t{\n\t\t\treturn this.application.common.userId;\n\t\t},\n\t\tchatOwner()\n\t\t{\n\t\t\tif (!this.dialog)\n\t\t\t{\n\t\t\t\treturn 0;\n\t\t\t}\n\n\t\t\treturn this.dialog.ownerId;\n\t\t},\n\t\tisCurrentUserOwner()\n\t\t{\n\t\t\treturn this.chatOwner === this.currentUser;\n\t\t},\n\t\tisCurrentUserExternal()\n\t\t{\n\t\t\treturn !!this.conference.user.hash;\n\t\t},\n\t\tisMobile()\n\t\t{\n\t\t\treturn Utils.device.isMobile();\n\t\t},\n\t\tisDesktop()\n\t\t{\n\t\t\treturn Utils.platform.isBitrixDesktop();\n\t\t},\n\t\tisGuestWithDefaultName()\n\t\t{\n\t\t\tconst guestDefaultName = this.$Bitrix.Loc.getMessage('BX_IM_COMPONENT_CALL_DEFAULT_USER_NAME');\n\n\t\t\treturn this.user.id === this.currentUser && this.user.extranet && this.user.name === guestDefaultName;\n\t\t},\n\t\tuserCallStatus()\n\t\t{\n\t\t\treturn this.$store.getters['call/getUser'](this.user.id);\n\t\t},\n\t\tisUserInCall()\n\t\t{\n\t\t\treturn this.onlineStates.includes(this.userCallStatus.state);\n\t\t},\n\t\tuserInCallCount()\n\t\t{\n\t\t\tconst usersInCall = Object.values(this.call.users).filter(user => {\n\t\t\t\treturn this.onlineStates.includes(user.state);\n\t\t\t});\n\n\t\t\treturn usersInCall.length;\n\t\t},\n\t\tisBroadcast()\n\t\t{\n\t\t\treturn this.conference.common.isBroadcast;\n\t\t},\n\t\tpresentersList()\n\t\t{\n\t\t\treturn this.conference.common.presenters;\n\t\t},\n\t\tisUserPresenter()\n\t\t{\n\t\t\treturn this.presentersList.includes(this.user.id);\n\t\t},\n\t\t// end statuses\n\t\tformattedSubtitle()\n\t\t{\n\t\t\tconst subtitles = [];\n\n\t\t\tif (this.user.id === this.chatOwner)\n\t\t\t{\n\t\t\t\tsubtitles.push(this.$Bitrix.Loc.getMessage('BX_IM_COMPONENT_CALL_USER_LIST_STATUS_OWNER'));\n\t\t\t}\n\n\t\t\tif (this.user.id === this.currentUser)\n\t\t\t{\n\t\t\t\tsubtitles.push(this.$Bitrix.Loc.getMessage('BX_IM_COMPONENT_CALL_USER_LIST_STATUS_CURRENT_USER'));\n\t\t\t}\n\n\t\t\t// if (!this.user.extranet && !this.user.isOnline)\n\t\t\t// {\n\t\t\t// \tsubtitles.push(this.$Bitrix.Loc.getMessage('BX_IM_COMPONENT_CALL_USER_LIST_STATUS_OFFLINE'));\n\t\t\t// }\n\n\t\t\treturn subtitles.join(', ');\n\t\t},\n\t\tisMenuNeeded()\n\t\t{\n\t\t\treturn this.getMenuItems.length > 0;\n\t\t},\n\t\tmenuItems()\n\t\t{\n\t\t\tconst items = [];\n\t\t\t// for self\n\t\t\tif (this.user.id === this.currentUser)\n\t\t\t{\n\t\t\t\t// self-rename\n\t\t\t\tif (this.isCurrentUserExternal)\n\t\t\t\t{\n\t\t\t\t\titems.push({\n\t\t\t\t\t\ttext: this.$Bitrix.Loc.getMessage('BX_IM_COMPONENT_CALL_USER_LIST_MENU_RENAME_SELF'),\n\t\t\t\t\t\tonclick: () => {\n\t\t\t\t\t\t\tthis.closeMenu();\n\t\t\t\t\t\t\tthis.onRenameStart();\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\t// change background\n\t\t\t\tif (this.isDesktop)\n\t\t\t\t{\n\t\t\t\t\titems.push({\n\t\t\t\t\t\ttext: this.$Bitrix.Loc.getMessage('BX_IM_COMPONENT_CALL_USER_LIST_MENU_CHANGE_BACKGROUND'),\n\t\t\t\t\t\tonclick: () => {\n\t\t\t\t\t\t\tthis.closeMenu();\n\t\t\t\t\t\t\tthis.$emit('userChangeBackground');\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t\t// for other users\n\t\t\telse\n\t\t\t{\n\t\t\t\t// force-rename\n\t\t\t\tif (this.isCurrentUserOwner && this.user.externalAuthId === 'call')\n\t\t\t\t{\n\t\t\t\t\titems.push({\n\t\t\t\t\t\ttext: this.$Bitrix.Loc.getMessage('BX_IM_COMPONENT_CALL_USER_LIST_MENU_RENAME'),\n\t\t\t\t\t\tonclick: () => {\n\t\t\t\t\t\t\tthis.closeMenu();\n\t\t\t\t\t\t\tthis.onRenameStart();\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\t// kick\n\t\t\t\tif (this.isCurrentUserOwner && !this.isUserPresenter)\n\t\t\t\t{\n\t\t\t\t\titems.push({\n\t\t\t\t\t\ttext: this.$Bitrix.Loc.getMessage('BX_IM_COMPONENT_CALL_USER_LIST_MENU_KICK'),\n\t\t\t\t\t\tonclick: () => {\n\t\t\t\t\t\t\tthis.closeMenu();\n\t\t\t\t\t\t\tthis.$emit('userKick', {user: this.user});\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tif (this.isUserInCall && this.userCallStatus.cameraState && this.userInCallCount > 2)\n\t\t\t\t{\n\t\t\t\t\t// pin\n\t\t\t\t\tif (!this.userCallStatus.pinned)\n\t\t\t\t\t{\n\t\t\t\t\t\titems.push({\n\t\t\t\t\t\t\ttext: this.$Bitrix.Loc.getMessage('BX_IM_COMPONENT_CALL_USER_LIST_MENU_PIN'),\n\t\t\t\t\t\t\tonclick: () => {\n\t\t\t\t\t\t\t\tthis.closeMenu();\n\t\t\t\t\t\t\t\tthis.$emit('userPin', {user: this.user});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\t// unpin\n\t\t\t\t\telse\n\t\t\t\t\t{\n\t\t\t\t\t\titems.push({\n\t\t\t\t\t\t\ttext: this.$Bitrix.Loc.getMessage('BX_IM_COMPONENT_CALL_USER_LIST_MENU_UNPIN'),\n\t\t\t\t\t\t\tonclick: () => {\n\t\t\t\t\t\t\t\tthis.closeMenu();\n\t\t\t\t\t\t\t\tthis.$emit('userUnpin');\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\n\t\t\t\t}\n\t\t\t\t// open 1-1 chat and profile\n\t\t\t\tif (this.isDesktop && !this.user.extranet)\n\t\t\t\t{\n\t\t\t\t\titems.push({\n\t\t\t\t\t\ttext: this.$Bitrix.Loc.getMessage('BX_IM_COMPONENT_CALL_USER_LIST_MENU_OPEN_CHAT'),\n\t\t\t\t\t\tonclick: () => {\n\t\t\t\t\t\t\tthis.closeMenu();\n\t\t\t\t\t\t\tthis.$emit('userOpenChat', {user: this.user});\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\titems.push({\n\t\t\t\t\t\ttext: this.$Bitrix.Loc.getMessage('BX_IM_COMPONENT_CALL_USER_LIST_MENU_OPEN_PROFILE'),\n\t\t\t\t\t\tonclick: () => {\n\t\t\t\t\t\t\tthis.closeMenu();\n\t\t\t\t\t\t\tthis.$emit('userOpenProfile', {user: this.user});\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\t// insert name\n\t\t\t\titems.push({\n\t\t\t\t\ttext: this.$Bitrix.Loc.getMessage('BX_IM_COMPONENT_CALL_USER_LIST_MENU_INSERT_NAME'),\n\t\t\t\t\tonclick: () => {\n\t\t\t\t\t\tthis.closeMenu();\n\t\t\t\t\t\tthis.$emit('userInsertName', {user: this.user});\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\n\t\t\treturn items;\n\t\t},\n\t\tavatarWrapClasses()\n\t\t{\n\t\t\tconst classes = ['bx-im-component-call-user-list-item-avatar-wrap'];\n\n\t\t\tif (this.userCallStatus.talking)\n\t\t\t{\n\t\t\t\tclasses.push('bx-im-component-call-user-list-item-avatar-wrap-talking');\n\t\t\t}\n\n\t\t\treturn classes;\n\t\t},\n\t\tavatarClasses()\n\t\t{\n\t\t\tconst classes = ['bx-im-component-call-user-list-item-avatar'];\n\n\t\t\tif (!this.user.avatar && this.user.extranet)\n\t\t\t{\n\t\t\t\tclasses.push('bx-im-component-call-user-list-item-avatar-extranet');\n\t\t\t}\n\t\t\telse if (!this.user.avatar && !this.user.extranet)\n\t\t\t{\n\t\t\t\tclasses.push('bx-im-component-call-user-list-item-avatar-default');\n\t\t\t}\n\n\t\t\treturn classes;\n\t\t},\n\t\tavatarStyle()\n\t\t{\n\t\t\tconst style = {};\n\n\t\t\tif (this.user.avatar)\n\t\t\t{\n\t\t\t\tstyle.backgroundImage = `url('${this.user.avatar}')`;\n\t\t\t}\n\t\t\telse if (!this.user.avatar && !this.user.extranet)\n\t\t\t{\n\t\t\t\tstyle.backgroundColor = this.user.color;\n\t\t\t}\n\n\t\t\treturn style;\n\t\t},\n\t\tisCallStatusPanelNeeded()\n\t\t{\n\t\t\tif (this.isBroadcast)\n\t\t\t{\n\t\t\t\treturn this.conference.common.state === ConferenceStateType.call && this.isUserInCall && this.isUserPresenter;\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\treturn this.conference.common.state === ConferenceStateType.call && this.isUserInCall;\n\t\t\t}\n\t\t},\n\t\tcallLeftIconClasses()\n\t\t{\n\t\t\tconst classes = ['bx-im-component-call-user-list-item-icons-icon bx-im-component-call-user-list-item-icons-left'];\n\n\t\t\tif (this.userCallStatus.floorRequestState)\n\t\t\t{\n\t\t\t\tclasses.push('bx-im-component-call-user-list-item-icons-floor-request');\n\t\t\t}\n\t\t\telse if (this.userCallStatus.screenState)\n\t\t\t{\n\t\t\t\tclasses.push('bx-im-component-call-user-list-item-icons-screen');\n\t\t\t}\n\n\t\t\treturn classes;\n\t\t},\n\t\tcallCenterIconClasses()\n\t\t{\n\t\t\tconst classes = ['bx-im-component-call-user-list-item-icons-icon bx-im-component-call-user-list-item-icons-center'];\n\n\t\t\tif (this.userCallStatus.microphoneState)\n\t\t\t{\n\t\t\t\tclasses.push('bx-im-component-call-user-list-item-icons-mic-on');\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tclasses.push('bx-im-component-call-user-list-item-icons-mic-off');\n\t\t\t}\n\n\t\t\treturn classes;\n\t\t},\n\t\tcallRightIconClasses()\n\t\t{\n\t\t\tconst classes = ['bx-im-component-call-user-list-item-icons-icon bx-im-component-call-user-list-item-icons-right'];\n\n\t\t\tif (this.userCallStatus.cameraState)\n\t\t\t{\n\t\t\t\tclasses.push('bx-im-component-call-user-list-item-icons-camera-on');\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tclasses.push('bx-im-component-call-user-list-item-icons-camera-off');\n\t\t\t}\n\n\t\t\treturn classes;\n\t\t},\n\t\tbodyClasses()\n\t\t{\n\t\t\tconst classes = ['bx-im-component-call-user-list-item-body'];\n\n\t\t\tif (!this.isUserInCall)\n\t\t\t{\n\t\t\t\tclasses.push('bx-im-component-call-user-list-item-body-offline');\n\t\t\t}\n\n\t\t\treturn classes;\n\t\t},\n\t\t...Vuex.mapState({\n\t\t\tapplication: state => state.application,\n\t\t\tconference: state => state.conference,\n\t\t\tcall: state => state.call,\n\t\t\tdialog: state => state.dialogues.collection[state.application.dialog.dialogId]\n\t\t})\n\t},\n\tmethods:\n\t{\n\t\topenMenu()\n\t\t{\n\t\t\tif (this.menuPopup)\n\t\t\t{\n\t\t\t\tthis.closeMenu();\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\t//menu for other items\n\t\t\tconst existingMenu = MenuManager.getMenuById(this.menuId);\n\t\t\tif (existingMenu)\n\t\t\t{\n\t\t\t\texistingMenu.destroy();\n\t\t\t}\n\n\t\t\tthis.menuPopup = MenuManager.create({\n\t\t\t\tid: this.menuId,\n\t\t\t\tbindElement: this.$refs['user-menu'],\n\t\t\t\titems: this.menuItems,\n\t\t\t\tevents: {\n\t\t\t\t\tonPopupClose: () => this.menuPopup.destroy(),\n\t\t\t\t\tonPopupDestroy: () => this.menuPopup = null\n\t\t\t\t},\n\t\t\t});\n\n\t\t\tthis.menuPopup.show();\n\t\t},\n\t\tcloseMenu()\n\t\t{\n\t\t\tthis.menuPopup.destroy();\n\t\t\tthis.menuPopup = null;\n\t\t},\n\t\tonRenameStart()\n\t\t{\n\t\t\tthis.newName = this.user.name;\n\t\t\tthis.renameMode = true;\n\t\t\tthis.$nextTick(() => {\n\t\t\t\tthis.$refs['rename-input'].focus();\n\t\t\t\tthis.$refs['rename-input'].select();\n\t\t\t});\n\t\t},\n\t\tonRenameKeyDown(event)\n\t\t{\n\t\t\t//enter\n\t\t\tif (event.keyCode === 13)\n\t\t\t{\n\t\t\t\tthis.changeName();\n\t\t\t}\n\t\t\t//escape\n\t\t\telse if (event.keyCode === 27)\n\t\t\t{\n\t\t\t\tthis.renameMode = false;\n\t\t\t}\n\t\t},\n\t\tchangeName()\n\t\t{\n\t\t\tif (this.user.name === this.newName.trim() || this.newName === '')\n\t\t\t{\n\t\t\t\tthis.renameMode = false;\n\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tthis.$emit('userChangeName', {user: this.user, newName: this.newName});\n\t\t\tthis.$nextTick(() => {\n\t\t\t\tthis.renameMode = false;\n\t\t\t});\n\t\t},\n\t\tonFocus(event)\n\t\t{\n\t\t\tEventEmitter.emit(EventType.conference.userRenameFocus, event);\n\t\t},\n\t\tonBlur(event)\n\t\t{\n\t\t\tEventEmitter.emit(EventType.conference.userRenameBlur, event);\n\t\t},\n\t},\n\t//language=Vue\n\ttemplate: `\n\t\t<div class=\"bx-im-component-call-user-list-item\">\n\t\t\t<!-- Avatar -->\n\t\t\t<div :class=\"avatarWrapClasses\">\n\t\t\t\t<div :class=\"avatarClasses\" :style=\"avatarStyle\"></div>\n\t\t\t</div>\n\t\t\t<!-- Body -->\n\t\t\t<div :class=\"bodyClasses\">\n\t\t\t\t<!-- Introduce yourself blinking mode -->\n\t\t\t\t<template v-if=\"!renameMode && isGuestWithDefaultName\">\n\t\t\t\t\t<div class=\"bx-im-component-call-user-list-item-body-left\">\n\t\t\t\t\t\t<div @click=\"onRenameStart\" class=\"bx-im-component-call-user-list-introduce-yourself\">\n\t\t\t\t\t\t\t<div class=\"bx-im-component-call-user-list-introduce-yourself-text\">{{ $Bitrix.Loc.getMessage('BX_IM_COMPONENT_CALL_USER_LIST_INTRODUCE_YOURSELF') }}</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</template>\n\t\t\t\t<!-- Rename mode -->\n\t\t\t\t<template v-else-if=\"renameMode\">\n\t\t\t\t\t<div class=\"bx-im-component-call-user-list-item-body-left\">\n\t\t\t\t\t\t<div class=\"bx-im-component-call-user-list-change-name-container\">\n\t\t\t\t\t\t\t<div @click=\"renameMode = false\" class=\"bx-im-component-call-user-list-change-name-cancel\"></div>\n\t\t\t\t\t\t\t<input @keydown=\"onRenameKeyDown\" @focus=\"onFocus\" @blur=\"onBlur\" v-model=\"newName\" :ref=\"'rename-input'\" type=\"text\" class=\"bx-im-component-call-user-list-change-name-input\">\n\t\t\t\t\t\t\t<div v-if=\"!renameRequested\" @click=\"changeName\" class=\"bx-im-component-call-user-list-change-name-confirm\"></div>\n\t\t\t\t\t\t\t<div v-else class=\"bx-im-component-call-user-list-change-name-loader\">\n\t\t\t\t\t\t\t\t<div class=\"bx-im-component-call-user-list-change-name-loader-icon\"></div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</template>\n\t\t\t\t<template v-if=\"!renameMode && !isGuestWithDefaultName\">\n\t\t\t\t\t<div class=\"bx-im-component-call-user-list-item-body-left\">\n\t\t\t\t\t\t<div class=\"bx-im-component-call-user-list-item-name-wrap\">\n\t\t\t\t\t\t\t<!-- Name -->\n\t\t\t\t\t\t\t<div class=\"bx-im-component-call-user-list-item-name\">{{ user.name }}</div>\n\t\t\t\t\t\t\t<!-- Status subtitle -->\n\t\t\t\t\t\t\t<div v-if=\"formattedSubtitle !== ''\" class=\"bx-im-component-call-user-list-item-name-subtitle\">{{ formattedSubtitle }}</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<!-- Context menu icon -->\n\t\t\t\t\t\t<div v-if=\"menuItems.length > 0 && !isMobile\" @click=\"openMenu\" ref=\"user-menu\" class=\"bx-im-component-call-user-list-item-menu\"></div>\n\t\t\t\t\t</div>\n\t\t\t\t</template>\n\t\t\t\t<template v-if=\"isCallStatusPanelNeeded\">\n\t\t\t\t\t<div class=\"bx-im-component-call-user-list-item-icons\">\n\t\t\t\t\t\t<div :class=\"callLeftIconClasses\"></div>\n\t\t\t\t\t\t<div :class=\"callCenterIconClasses\"></div>\n\t\t\t\t\t\t<div :class=\"callRightIconClasses\"></div>\n\t\t\t\t\t</div>\n\t\t\t\t</template>\n\t\t\t</div>\n\t\t</div>\n\t`\n};\n\nexport {UserListItem};","import { Vuex } from \"ui.vue.vuex\";\nimport { Logger } from \"im.lib.logger\";\nimport { EventEmitter } from 'main.core.events';\nimport { EventType } from \"im.const\";\nimport { ConferenceRightPanelMode as RightPanelMode, ConferenceUserState } from 'im.const';\nimport { MessageBox, MessageBoxButtons } from \"ui.dialogs.messagebox\";\n\nimport {UserListItem} from './user-list-item';\n\nconst UserList = {\n\tcomponents: {UserListItem},\n\tdata()\n\t{\n\t\treturn {\n\t\t\tusersPerPage: 50,\n\t\t\tfirstPageLoaded: false,\n\t\t\tpagesLoaded: 0,\n\t\t\thasMoreToLoad: true,\n\t\t\trename: {\n\t\t\t\tuser: 0,\n\t\t\t\tnewName: '',\n\t\t\t\trenameRequested: false\n\t\t\t}\n\t\t}\n\t},\n\tcreated()\n\t{\n\t\tLogger.warn('Conference: user list created');\n\t\tthis.requestUsers({firstPage: true});\n\t},\n\tbeforeDestroy()\n\t{\n\t\tthis.loaderObserver = null;\n\t},\n\tcomputed:\n\t{\n\t\tuserId()\n\t\t{\n\t\t\treturn this.application.common.userId;\n\t\t},\n\t\tisBroadcast()\n\t\t{\n\t\t\treturn this.conference.common.isBroadcast;\n\t\t},\n\t\tusersList()\n\t\t{\n\t\t\tconst users = this.conference.common.users.filter(user => {\n\t\t\t\treturn !this.presentersList.includes(user);\n\t\t\t});\n\n\t\t\treturn [...users].sort(this.userSortFunction);\n\t\t},\n\t\tpresentersList()\n\t\t{\n\t\t\treturn [...this.conference.common.presenters].sort(this.userSortFunction);\n\t\t},\n\t\trightPanelMode()\n\t\t{\n\t\t\treturn this.conference.common.rightPanelMode;\n\t\t},\n\t\t...Vuex.mapState({\n\t\t\tuser: state => state.users.collection[state.application.common.userId],\n\t\t\tapplication: state => state.application,\n\t\t\tconference: state => state.conference,\n\t\t\tcall: state => state.call,\n\t\t\tdialog: state => state.dialogues.collection[state.application.dialog.dialogId]\n\t\t})\n\t},\n\tmethods:\n\t{\n\t\trequestUsers({firstPage = false} = {})\n\t\t{\n\t\t\tthis.$Bitrix.RestClient.get().callMethod('im.dialog.users.list', {\n\t\t\t\t'DIALOG_ID': this.application.dialog.dialogId,\n\t\t\t\t'LIMIT': this.usersPerPage,\n\t\t\t\t'OFFSET': firstPage? 0 : (this.pagesLoaded * this.usersPerPage)\n\t\t\t}).then(result => {\n\t\t\t\tLogger.warn('Conference: getting next user list result', result.data());\n\t\t\t\tconst users = result.data();\n\t\t\t\tthis.pagesLoaded++;\n\t\t\t\tif (users.length < this.usersPerPage)\n\t\t\t\t{\n\t\t\t\t\tthis.hasMoreToLoad = false;\n\t\t\t\t}\n\n\t\t\t\tthis.$store.dispatch('users/set', users);\n\t\t\t\tconst usersIds = users.map(user => user.id);\n\n\t\t\t\treturn this.$store.dispatch('conference/setUsers', { users: usersIds });\n\t\t\t}).then(() => {\n\t\t\t\tif (firstPage)\n\t\t\t\t{\n\t\t\t\t\tthis.firstPageLoaded = true;\n\t\t\t\t}\n\t\t\t}).catch(result => {\n\t\t\t\tLogger.warn('Conference: error getting users list', result.error().ex);\n\t\t\t});\n\t\t},\n\t\tonUserMenuKick({user})\n\t\t{\n\t\t\tthis.showUserKickConfirm(user);\n\t\t},\n\t\tshowUserKickConfirm(user)\n\t\t{\n\t\t\tif (this.userKickConfirm)\n\t\t\t{\n\t\t\t\tthis.userKickConfirm.close();\n\t\t\t}\n\n\t\t\tlet confirmMessage = this.$Bitrix.Loc.getMessage('BX_IM_COMPONENT_CALL_KICK_INTRANET_USER_CONFIRM_TEXT');\n\t\t\tif (user.extranet)\n\t\t\t{\n\t\t\t\tconfirmMessage = this.$Bitrix.Loc.getMessage('BX_IM_COMPONENT_CALL_KICK_GUEST_USER_CONFIRM_TEXT');\n\t\t\t}\n\t\t\tthis.userKickConfirm = MessageBox.create({\n\t\t\t\tmessage: confirmMessage,\n\t\t\t\tmodal: true,\n\t\t\t\tbuttons: MessageBoxButtons.OK_CANCEL,\n\t\t\t\tonOk: () => {\n\t\t\t\t\tthis.kickUser(user);\n\t\t\t\t\tthis.userKickConfirm.close();\n\t\t\t\t},\n\t\t\t\tonCancel: () => {\n\t\t\t\t\tthis.userKickConfirm.close();\n\t\t\t\t}\n\t\t\t});\n\t\t\tthis.userKickConfirm.show();\n\t\t},\n\t\tkickUser(user)\n\t\t{\n\t\t\tthis.$store.dispatch('conference/removeUsers', { users: [user.id] });\n\t\t\tthis.$Bitrix.RestClient.get().callMethod('im.chat.user.delete', {\n\t\t\t\tuser_id: user.id,\n\t\t\t\tchat_id: this.application.dialog.chatId\n\t\t\t}).catch((error) => {\n\t\t\t\tLogger.error('Conference: removing user from chat error', error);\n\t\t\t\tthis.$store.dispatch('conference/setUsers', { users: [user.id] });\n\t\t\t});\n\t\t},\n\t\tonUserMenuInsertName({user})\n\t\t{\n\t\t\tif (this.rightPanelMode === RightPanelMode.hidden || this.rightPanelMode === RightPanelMode.users)\n\t\t\t{\n\t\t\t\tthis.getApplication().toggleChat();\n\t\t\t}\n\t\t\tthis.$nextTick(() => {\n\t\t\t\tEventEmitter.emit(EventType.textarea.insertText, {text: `${user.name}, `, focus: true});\n\t\t\t});\n\t\t},\n\t\tonUserChangeName({user, newName})\n\t\t{\n\t\t\tconst method = user.id === this.userId ? 'im.call.user.update' : 'im.call.user.force.rename';\n\n\t\t\tconst oldName = user.name;\n\t\t\tthis.$store.dispatch('users/update', {\n\t\t\t\tid: user.id,\n\t\t\t\tfields: {name: newName, lastActivityDate: new Date()}\n\t\t\t});\n\t\t\tthis.$Bitrix.RestClient.get().callMethod(method, {\n\t\t\t\tname: newName,\n\t\t\t\tchat_id: this.application.dialog.chatId,\n\t\t\t\tuser_id: user.id\n\t\t\t}).then(() => {\n\t\t\t\tLogger.warn('Conference: rename completed', user.id, newName);\n\t\t\t\tif (oldName === this.$Bitrix.Loc.getMessage('BX_IM_COMPONENT_CALL_DEFAULT_USER_NAME'))\n\t\t\t\t{\n\t\t\t\t\tthis.getApplication().setUserWasRenamed();\n\t\t\t\t}\n\t\t\t}).catch((error) => {\n\t\t\t\tLogger.error('Conference: renaming error', error);\n\t\t\t\tthis.$store.dispatch('users/update', {\n\t\t\t\t\tid: user.id,\n\t\t\t\t\tfields: {name: oldName, lastActivityDate: new Date()}\n\t\t\t\t});\n\t\t\t});\n\t\t},\n\t\tonUserMenuPin({user})\n\t\t{\n\t\t\tthis.getApplication().pinUser(user);\n\t\t},\n\t\tonUserMenuUnpin()\n\t\t{\n\t\t\tthis.getApplication().unpinUser();\n\t\t},\n\t\tonUserMenuChangeBackground()\n\t\t{\n\t\t\tthis.getApplication().changeBackground();\n\t\t},\n\t\tonUserMenuOpenChat({user})\n\t\t{\n\t\t\tthis.getApplication().openChat(user);\n\t\t},\n\t\tonUserMenuOpenProfile({user})\n\t\t{\n\t\t\tthis.getApplication().openProfile(user);\n\t\t},\n\t\t// Helpers\n\t\tgetLoaderObserver()\n\t\t{\n\t\t\tconst options = {\n\t\t\t\troot: document.querySelector('.bx-im-component-call-right-users'),\n\t\t\t\tthreshold: 0.01\n\t\t\t};\n\n\t\t\tconst callback = (entries, observer) => {\n\t\t\t\tentries.forEach(entry => {\n\t\t\t\t\tif (entry.isIntersecting && entry.intersectionRatio > 0.01)\n\t\t\t\t\t{\n\t\t\t\t\t\tLogger.warn('Conference: UserList: I see loader! Load next page!');\n\t\t\t\t\t\tthis.requestUsers();\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t};\n\n\t\t\treturn new IntersectionObserver(callback, options);\n\t\t},\n\t\tuserSortFunction(userA, userB)\n\t\t{\n\t\t\tif (userA === this.userId)\n\t\t\t{\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t\tif (userB === this.userId)\n\t\t\t{\n\t\t\t\treturn 1;\n\t\t\t}\n\n\t\t\tif (this.call.users[userA] && (this.call.users[userA].floorRequestState || this.call.users[userA].screenState))\n\t\t\t{\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t\tif (this.call.users[userB] && (this.call.users[userB].floorRequestState || this.call.users[userB].screenState))\n\t\t\t{\n\t\t\t\treturn 1;\n\t\t\t}\n\n\t\t\tif (this.call.users[userA] && [ConferenceUserState.Ready, ConferenceUserState.Connected].includes(this.call.users[userA].state))\n\t\t\t{\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t\tif (this.call.users[userB] && [ConferenceUserState.Ready, ConferenceUserState.Connected].includes(this.call.users[userB].state))\n\t\t\t{\n\t\t\t\treturn 1;\n\t\t\t}\n\n\t\t\treturn 0;\n\t\t},\n\t\tgetApplication()\n\t\t{\n\t\t\treturn this.$Bitrix.Application.get();\n\t\t}\n\t},\n\tdirectives:\n\t{\n\t\t'bx-im-directive-user-list-observer':\n\t\t\t{\n\t\t\t\tinserted(element, bindings, vnode)\n\t\t\t\t{\n\t\t\t\t\tvnode.context.loaderObserver = vnode.context.getLoaderObserver();\n\t\t\t\t\tvnode.context.loaderObserver.observe(element);\n\n\t\t\t\t\treturn true;\n\t\t\t\t},\n\t\t\t\tunbind(element, bindings, vnode)\n\t\t\t\t{\n\t\t\t\t\tif (vnode.context.loaderObserver)\n\t\t\t\t\t{\n\t\t\t\t\t\tvnode.context.loaderObserver.unobserve(element);\n\t\t\t\t\t}\n\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t},\n\t},\n\ttemplate: `\n\t\t<div class=\"bx-im-component-call-user-list\">\n\t\t\t<!-- Loading first page -->\n\t\t\t<div v-if=\"!firstPageLoaded\" class=\"bx-im-component-call-user-list-loader\">\n\t\t\t\t<div class=\"bx-im-component-call-user-list-loader-icon\"></div>\n\t\t\t\t<div class=\"bx-im-component-call-user-list-loader-text\">\n\t\t\t\t\t{{ $Bitrix.Loc.getMessage('BX_IM_COMPONENT_CALL_USER_LIST_LOADING_USERS') }}\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<!-- Loading completed -->\n\t\t\t<template v-else>\n\t\t\t\t<!-- Speakers list section (if broadcast) -->\n\t\t\t\t<template v-if=\"isBroadcast\">\n\t\t\t\t\t<!-- Speakers category title -->\n\t\t\t\t\t<div class=\"bx-im-component-call-user-list-category\">\n\t\t\t\t\t\t<div class=\"bx-im-component-call-user-list-category-text\">\n\t\t\t\t\t\t\t{{ $Bitrix.Loc.getMessage('BX_IM_COMPONENT_CALL_USER_LIST_CATEGORY_PRESENTERS') }}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div class=\"bx-im-component-call-user-list-category-counter\">\n\t\t\t\t\t\t\t{{ presentersList.length }}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t\t<!-- Speakers list -->\n\t\t\t\t\t<div class=\"bx-im-component-call-user-list-items\">\n\t\t\t\t\t\t<template v-for=\"presenter in presentersList\">\n\t\t\t\t\t\t\t<UserListItem\n\t\t\t\t\t\t\t\t@userChangeName=\"onUserChangeName\"\n\t\t\t\t\t\t\t\t@userKick=\"onUserMenuKick\"\n\t\t\t\t\t\t\t\t@userInsertName=\"onUserMenuInsertName\"\n\t\t\t\t\t\t\t\t@userPin=\"onUserMenuPin\"\n\t\t\t\t\t\t\t\t@userUnpin=\"onUserMenuUnpin\"\n\t\t\t\t\t\t\t\t@userChangeBackground=\"onUserMenuChangeBackground\"\n\t\t\t\t\t\t\t\t@userOpenChat=\"onUserMenuOpenChat\"\n\t\t\t\t\t\t\t\t@userOpenProfile=\"onUserMenuOpenProfile\"\n\t\t\t\t\t\t\t\t:userId=\"presenter\"\n\t\t\t\t\t\t\t\t:key=\"presenter\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</template>\n\t\t\t\t\t</div>\n\t\t\t\t</template>\n\t\t\t\t<!-- Participants list section (if there are any users) -->\n\t\t\t\t<template v-if=\"usersList.length > 0\">\n\t\t\t\t\t<!-- Show participants category title if broadcast -->\n\t\t\t\t\t<div v-if=\"isBroadcast\" class=\"bx-im-component-call-user-list-category bx-im-component-call-user-list-category-participants\">\n\t\t\t\t\t\t<div class=\"bx-im-component-call-user-list-category-text\">\n\t\t\t\t\t\t\t{{ $Bitrix.Loc.getMessage('BX_IM_COMPONENT_CALL_USER_LIST_CATEGORY_PARTICIPANTS') }}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div class=\"bx-im-component-call-user-list-category-counter\">\n\t\t\t\t\t\t\t{{ usersList.length }}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t\t<!-- Participants list -->\n\t\t\t\t\t<div class=\"bx-im-component-call-user-list-items\">\n\t\t\t\t\t\t<template v-for=\"user in usersList\">\n\t\t\t\t\t\t\t<UserListItem\n\t\t\t\t\t\t\t\t@userChangeName=\"onUserChangeName\"\n\t\t\t\t\t\t\t\t@userKick=\"onUserMenuKick\"\n\t\t\t\t\t\t\t\t@userInsertName=\"onUserMenuInsertName\" \n\t\t\t\t\t\t\t\t@userPin=\"onUserMenuPin\"\n\t\t\t\t\t\t\t\t@userUnpin=\"onUserMenuUnpin\"\n\t\t\t\t\t\t\t\t@userChangeBackground=\"onUserMenuChangeBackground\"\n\t\t\t\t\t\t\t\t@userOpenChat=\"onUserMenuOpenChat\"\n\t\t\t\t\t\t\t\t@userOpenProfile=\"onUserMenuOpenProfile\"\n\t\t\t\t\t\t\t\t:userId=\"user\"\n\t\t\t\t\t\t\t\t:key=\"user\" />\n\t\t\t\t\t\t</template>\n\t\t\t\t\t</div>\n\t\t\t\t</template>\n\t\t\t\t<!-- Next page loader -->\n\t\t\t\t<div v-if=\"hasMoreToLoad\" v-bx-im-directive-user-list-observer class=\"bx-im-component-call-user-list-loader\">\n\t\t\t\t\t<div class=\"bx-im-component-call-user-list-loader-icon\"></div>\n\t\t\t\t\t<div class=\"bx-im-component-call-user-list-loader-text\">\n\t\t\t\t\t\t{{ $Bitrix.Loc.getMessage('BX_IM_COMPONENT_CALL_USER_LIST_LOADING_USERS') }}\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</template>\t\n\t\t</div>\n\t`\n};\n\nexport {UserList};","import { Vuex } from \"ui.vue.vuex\";\nimport { MenuManager } from 'main.popup';\nimport { Clipboard } from \"im.lib.clipboard\";\nimport { MessageBox, MessageBoxButtons } from \"ui.dialogs.messagebox\";\n\nconst UserListHeader = {\n\tcomputed:\n\t{\n\t\tuserId()\n\t\t{\n\t\t\treturn this.application.common.userId;\n\t\t},\n\t\tisCurrentUserOwner()\n\t\t{\n\t\t\tif (!this.dialog)\n\t\t\t{\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\treturn this.dialog.ownerId === this.userId;\n\t\t},\n\t\t...Vuex.mapState({\n\t\t\tuser: state => state.users.collection[state.application.common.userId],\n\t\t\tapplication: state => state.application,\n\t\t\tconference: state => state.conference,\n\t\t\tdialog: state => state.dialogues.collection[state.application.dialog.dialogId]\n\t\t})\n\t},\n\tmethods:\n\t{\n\t\tonCloseUsers()\n\t\t{\n\t\t\tthis.getApplication().toggleUserList();\n\t\t},\n\t\topenMenu()\n\t\t{\n\t\t\tif (this.menuPopup)\n\t\t\t{\n\t\t\t\tthis.closeMenu();\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tthis.menuPopup = MenuManager.create({\n\t\t\t\tid: 'bx-im-component-call-user-list-header-popup',\n\t\t\t\tbindElement: this.$refs['user-list-header-menu'],\n\t\t\t\titems: this.getMenuItems(),\n\t\t\t\tevents: {\n\t\t\t\t\tonPopupClose: () => this.menuPopup.destroy(),\n\t\t\t\t\tonPopupDestroy: () => this.menuPopup = null\n\t\t\t\t},\n\t\t\t});\n\n\t\t\tthis.menuPopup.show();\n\t\t},\n\t\tcloseMenu()\n\t\t{\n\t\t\tthis.menuPopup.destroy();\n\t\t\tthis.menuPopup = null;\n\t\t},\n\t\tgetMenuItems()\n\t\t{\n\t\t\tconst items = [{\n\t\t\t\ttext: this.$Bitrix.Loc.getMessage('BX_IM_COMPONENT_CALL_USER_LIST_HEADER_MENU_COPY_LINK'),\n\t\t\t\tonclick: () => {\n\t\t\t\t\tthis.closeMenu();\n\t\t\t\t\tthis.onMenuCopyLink();\n\t\t\t\t}\n\t\t\t}];\n\t\t\tif (this.isCurrentUserOwner)\n\t\t\t{\n\t\t\t\titems.push({\n\t\t\t\t\ttext: this.$Bitrix.Loc.getMessage('BX_IM_COMPONENT_CALL_USER_LIST_HEADER_MENU_CHANGE_LINK'),\n\t\t\t\t\tonclick: () => {\n\t\t\t\t\t\tthis.closeMenu();\n\t\t\t\t\t\tthis.onMenuChangeLink();\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\n\t\t\treturn items;\n\t\t},\n\t\tonMenuCopyLink()\n\t\t{\n\t\t\tconst publicLink = this.dialog.public.link;\n\t\t\tClipboard.copy(publicLink);\n\n\t\t\tconst notificationText = this.$Bitrix.Loc.getMessage('BX_IM_COMPONENT_CALL_LINK_COPIED');\n\t\t\tBX.UI.Notification.Center.notify({\n\t\t\t\tcontent: notificationText,\n\t\t\t\tautoHideDelay: 4000\n\t\t\t})\n\t\t},\n\t\tonMenuChangeLink()\n\t\t{\n\t\t\tconst confirmMessage = this.$Bitrix.Loc.getMessage('BX_IM_COMPONENT_CALL_CHANGE_LINK_CONFIRM_TEXT');\n\t\t\tthis.changeLinkConfirm = MessageBox.create({\n\t\t\t\tmessage: confirmMessage,\n\t\t\t\tmodal: true,\n\t\t\t\tbuttons: MessageBoxButtons.OK_CANCEL,\n\t\t\t\tonOk: () => {\n\t\t\t\t\tthis.changeLink();\n\t\t\t\t\tthis.changeLinkConfirm.getPopupWindow().destroy();\n\t\t\t\t},\n\t\t\t\tonCancel: () => {\n\t\t\t\t\tthis.changeLinkConfirm.getPopupWindow().destroy();\n\t\t\t\t}\n\t\t\t});\n\t\t\tthis.changeLinkConfirm.show();\n\t\t},\n\t\tchangeLink()\n\t\t{\n\t\t\tthis.getApplication().changeLink().then(() => {\n\t\t\t\tconst notificationText = this.$Bitrix.Loc.getMessage('BX_IM_COMPONENT_CALL_LINK_CHANGED');\n\t\t\t\tBX.UI.Notification.Center.notify({\n\t\t\t\t\tcontent: notificationText,\n\t\t\t\t\tautoHideDelay: 4000\n\t\t\t\t})\n\t\t\t}).catch(error => {\n\t\t\t\tconsole.error('Conference: change link error', error);\n\t\t\t});\n\t\t},\n\t\tgetApplication()\n\t\t{\n\t\t\treturn this.$Bitrix.Application.get();\n\t\t}\n\t},\n\ttemplate: `\n\t\t<div class=\"bx-im-component-call-right-header\">\n\t\t\t<div class=\"bx-im-component-call-right-header-left\">\n\t\t\t\t<div @click=\"onCloseUsers\" class=\"bx-im-component-call-right-header-close\" :title=\"$Bitrix.Loc.getMessage['BX_IM_COMPONENT_CALL_CHAT_CLOSE_TITLE']\"></div>\n\t\t\t<div class=\"bx-im-component-call-right-header-title\">{{ $Bitrix.Loc.getMessage('BX_IM_COMPONENT_CALL_USERS_LIST_TITLE') }}</div>\n\t\t\t</div>\n\t\t\t<div class=\"bx-im-component-call-right-header-right\">\n\t\t\t\t<div @click=\"openMenu\" class=\"bx-im-component-call-user-list-header-more\" ref=\"user-list-header-menu\"></div>\t\n\t\t\t</div>\n\t\t</div>\n\t`\n};\n\nexport {UserListHeader};","/**\n * Bitrix im\n * Pubic conference Vue component\n *\n * @package bitrix\n * @subpackage im\n * @copyright 2001-2021 Bitrix\n */\n\nimport 'ui.design-tokens';\nimport 'ui.fonts.opensans';\n\nimport {BitrixVue} from \"ui.vue\";\nimport {Vuex} from \"ui.vue.vuex\";\nimport {Utils} from \"im.lib.utils\";\nimport {\n\tConferenceStateType,\n\tEventType,\n\tConferenceErrorCode,\n\tConferenceRightPanelMode as RightPanelMode\n} from \"im.const\";\nimport { SendMessageHandler, ReadingHandler, ReactionHandler } from \"im.event-handler\";\nimport {ConferenceTextareaHandler} from \"./event-handler/conference-textarea-handler\";\nimport {ConferenceTextareaUploadHandler} from \"./event-handler/conference-textarea-upload-handler\";\nimport {EventEmitter} from \"main.core.events\";\n\n//global components\nimport \"im.component.dialog\";\nimport \"im.component.textarea\";\nimport \"ui.switcher\";\n\n//internal components\nimport {ConferenceSmiles} from './component/conference-smiles';\nimport {CheckDevices} from './component/check-devices';\nimport {Error} from \"./component/error\";\nimport {OrientationDisabled} from \"./component/orientation-disabled\";\nimport {PasswordCheck} from \"./component/password-check\";\nimport {LoadingStatus} from \"./component/loading-status\";\nimport {RequestPermissions} from \"./component/request-permissions\";\nimport {MobileChatButton} from \"./component/mobile-chat-button\";\nimport {ConferenceInfo} from \"./component/conference-info\";\nimport {UserForm} from \"./component/user-form\";\nimport {ChatHeader} from \"./component/chat-header\";\nimport {WaitingForStart} from \"./component/waiting-for-start\";\nimport {UserList} from \"./component/user-list/user-list\";\nimport {UserListHeader} from \"./component/user-list/user-list-header\";\n\n//css\nimport \"./conference-public.css\";\n\n//const\nconst popupModes = Object.freeze({\n\tpreparation: 'preparation'\n});\n\nBitrixVue.component('bx-im-component-conference-public',\n{\n\tcomponents: {\n\t\tError, CheckDevices, OrientationDisabled, PasswordCheck, LoadingStatus,\n\t\tRequestPermissions, MobileChatButton, ConferenceInfo, UserForm, ChatHeader, WaitingForStart, UserList, UserListHeader,\n\t\tConferenceSmiles\n\t},\n\tprops: {\n\t\tdialogId: { type: String, default: \"0\" }\n\t},\n\tdata: function()\n\t{\n\t\treturn {\n\t\t\twaitingForStart: false,\n\t\t\tpopupMode: popupModes.preparation,\n\t\t\tviewPortMetaNode: null,\n\t\t\tchatDrag: false,\n\t\t\t// in %\n\t\t\trightPanelSplitMode: {\n\t\t\t\tusersHeight: 50,\n\t\t\t\tchatHeight: 50,\n\t\t\t\tchatMinHeight: 30,\n\t\t\t\tchatMaxHeight: 80\n\t\t\t}\n\t\t};\n\t},\n\tcreated()\n\t{\n\t\tthis.initEventHandlers();\n\n\t\tEventEmitter.subscribe(EventType.conference.waitForStart, this.onWaitForStart);\n\t\tEventEmitter.subscribe(EventType.conference.hideSmiles, this.onHideSmiles);\n\n\t\tif (this.isMobile())\n\t\t{\n\t\t\tthis.setMobileMeta();\n\t\t}\n\t\telse\n\t\t{\n\t\t\tdocument.body.classList.add('bx-im-application-call-desktop-state');\n\t\t}\n\n\t\tif (!this.isDesktop())\n\t\t{\n\t\t\twindow.addEventListener('beforeunload', this.onBeforeUnload.bind(this));\n\t\t}\n\t},\n\tmounted()\n\t{\n\t\tif (!this.isHttps())\n\t\t{\n\t\t\tthis.getApplication().setError(ConferenceErrorCode.unsafeConnection);\n\t\t}\n\n\t\tif (!this.passwordChecked)\n\t\t{\n\t\t\tEventEmitter.emit(EventType.conference.setPasswordFocus);\n\t\t}\n\t},\n\tbeforeDestroy()\n\t{\n\t\tthis.destroyHandlers();\n\n\t\tEventEmitter.unsubscribe(EventType.conference.waitForStart, this.onWaitForStart);\n\t\tEventEmitter.unsubscribe(EventType.conference.hideSmiles, this.onHideSmiles);\n\n\t\tclearInterval(this.durationInterval);\n\t},\n\tcomputed:\n\t{\n\t\tEventType: () => EventType,\n\t\tRightPanelMode: () => RightPanelMode,\n\t\tuserId()\n\t\t{\n\t\t\treturn this.application.common.userId;\n\t\t},\n\t\tdialogInited()\n\t\t{\n\t\t\tif (this.dialog)\n\t\t\t{\n\t\t\t\treturn this.dialog.init;\n\t\t\t}\n\t\t},\n\t\tconferenceStarted()\n\t\t{\n\t\t\treturn this.conference.common.conferenceStarted;\n\t\t},\n\t\tuserInited()\n\t\t{\n\t\t\treturn this.conference.common.inited;\n\t\t},\n\t\tuserHasRealName()\n\t\t{\n\t\t\tif (this.user)\n\t\t\t{\n\t\t\t\treturn this.user.name !== this.localize['BX_IM_COMPONENT_CALL_DEFAULT_USER_NAME'];\n\t\t\t}\n\n\t\t\treturn false;\n\t\t},\n\t\trightPanelMode()\n\t\t{\n\t\t\treturn this.conference.common.rightPanelMode;\n\t\t},\n\t\tuserListClasses()\n\t\t{\n\t\t\tconst result = [];\n\t\t\tif (this.rightPanelMode === 'split')\n\t\t\t{\n\t\t\t\tresult.push('bx-im-component-call-right-top');\n\t\t\t}\n\t\t\telse if (this.rightPanelMode === 'users')\n\t\t\t{\n\t\t\t\tresult.push('bx-im-component-call-right-full');\n\t\t\t}\n\n\t\t\treturn result;\n\t\t},\n\t\tuserListStyles()\n\t\t{\n\t\t\tif (this.rightPanelMode !== RightPanelMode.split)\n\t\t\t{\n\t\t\t\treturn {};\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\theight: `${this.rightPanelSplitMode.usersHeight}%`\n\t\t\t}\n\t\t},\n\t\tchatClasses()\n\t\t{\n\t\t\tconst result = [];\n\t\t\tif (this.rightPanelMode === 'split')\n\t\t\t{\n\t\t\t\tresult.push('bx-im-component-call-right-bottom');\n\t\t\t}\n\t\t\telse if (this.rightPanelMode === 'chat')\n\t\t\t{\n\t\t\t\tresult.push('bx-im-component-call-right-full');\n\t\t\t}\n\n\t\t\treturn result;\n\t\t},\n\t\tchatStyles()\n\t\t{\n\t\t\tif (this.rightPanelMode !== RightPanelMode.split)\n\t\t\t{\n\t\t\t\treturn {};\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\theight: `${this.rightPanelSplitMode.chatHeight}%`\n\t\t\t}\n\t\t},\n\t\tisChatShowed()\n\t\t{\n\t\t\treturn this.conference.common.showChat;\n\t\t},\n\t\tisPreparationStep()\n\t\t{\n\t\t\treturn this.conference.common.state === ConferenceStateType.preparation;\n\t\t},\n\t\tisBroadcast()\n\t\t{\n\t\t\treturn this.conference.common.isBroadcast;\n\t\t},\n\t\tpresentersList()\n\t\t{\n\t\t\treturn this.conference.common.presenters;\n\t\t},\n\t\tisCurrentUserPresenter()\n\t\t{\n\t\t\treturn this.presentersList.includes(this.userId);\n\t\t},\n\t\terrorCode()\n\t\t{\n\t\t\treturn this.conference.common.error;\n\t\t},\n\t\tpasswordChecked()\n\t\t{\n\t\t\treturn this.conference.common.passChecked;\n\t\t},\n\t\tpermissionsRequested()\n\t\t{\n\t\t\treturn this.conference.common.permissionsRequested;\n\t\t},\n\t\tcallContainerClasses()\n\t\t{\n\t\t\treturn [this.conference.common.callEnded ? 'with-clouds': ''];\n\t\t},\n\t\twrapClasses()\n\t\t{\n\t\t\tconst classes = ['bx-im-component-call-wrap'];\n\n\t\t\tif (this.isMobile() && this.isBroadcast && !this.isCurrentUserPresenter && this.isPreparationStep)\n\t\t\t{\n\t\t\t\tclasses.push('bx-im-component-call-mobile-viewer-mode');\n\t\t\t}\n\n\t\t\treturn classes;\n\t\t},\n\t\tchatId()\n\t\t{\n\t\t\tif (this.application)\n\t\t\t{\n\t\t\t\treturn this.application.dialog.chatId;\n\t\t\t}\n\n\t\t\treturn 0;\n\t\t},\n\t\tlocalize()\n\t\t{\n\t\t\treturn BitrixVue.getFilteredPhrases(['BX_IM_COMPONENT_CALL_', 'IM_DIALOG_CLIPBOARD_']);\n\t\t},\n\t\t...Vuex.mapState({\n\t\t\tconference: state => state.conference,\n\t\t\tapplication: state => state.application,\n\t\t\tuser: state => state.users.collection[state.application.common.userId],\n\t\t\tdialog: state => state.dialogues.collection[state.application.dialog.dialogId]\n\t\t})\n\t},\n\twatch:\n\t{\n\t\tisChatShowed(newValue)\n\t\t{\n\t\t\tif (this.isMobile())\n\t\t\t{\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tif (newValue === true)\n\t\t\t{\n\t\t\t\tthis.$nextTick(() => {\n\t\t\t\t\tEventEmitter.emit(EventType.dialog.scrollOnStart, {chatId: this.chatId});\n\t\t\t\t\tEventEmitter.emit(EventType.textarea.setFocus);\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\trightPanelMode(newValue)\n\t\t{\n\t\t\tif (newValue === RightPanelMode.chat || newValue === RightPanelMode.split)\n\t\t\t{\n\t\t\t\tthis.$nextTick(() => {\n\t\t\t\t\tEventEmitter.emit(EventType.dialog.scrollOnStart, {chatId: this.chatId});\n\t\t\t\t\tEventEmitter.emit(EventType.textarea.setFocus);\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\tdialogInited(newValue)\n\t\t{\n\t\t\tif (newValue === true)\n\t\t\t{\n\t\t\t\tthis.getApplication().setDialogInited();\n\t\t\t}\n\t\t},\n\t\t//to skip request permissions step in desktop\n\t\tuserInited(newValue)\n\t\t{\n\t\t\tif (newValue === true && this.isDesktop() && this.passwordChecked)\n\t\t\t{\n\t\t\t\tthis.$nextTick(() => {\n\t\t\t\t\tEventEmitter.emit(EventType.conference.requestPermissions);\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\tuser()\n\t\t{\n\t\t\tif (this.user && this.userHasRealName)\n\t\t\t{\n\t\t\t\tthis.getApplication().setUserWasRenamed();\n\t\t\t}\n\t\t}\n\t},\n\tmethods:\n\t{\n\t\tinitEventHandlers()\n\t\t{\n\t\t\tthis.sendMessageHandler = new SendMessageHandler(this.$Bitrix);\n\t\t\tthis.textareaHandler = new ConferenceTextareaHandler(this.$Bitrix);\n\t\t\tthis.readingHandler = new ReadingHandler(this.$Bitrix);\n\t\t\tthis.reactionHandler = new ReactionHandler(this.$Bitrix);\n\t\t\tthis.textareaUploadHandler = new ConferenceTextareaUploadHandler(this.$Bitrix);\n\t\t},\n\t\tdestroyHandlers()\n\t\t{\n\t\t\tthis.sendMessageHandler.destroy();\n\t\t\tthis.textareaHandler.destroy();\n\t\t\tthis.readingHandler.destroy();\n\t\t\tthis.reactionHandler.destroy();\n\t\t\tthis.textareaUploadHandler.destroy();\n\t\t},\n\t\tonHideSmiles()\n\t\t{\n\t\t\tthis.getApplication().toggleSmiles();\n\t\t},\n\t\tonBeforeUnload(event)\n\t\t{\n\t\t\tif (!this.getApplication().callView)\n\t\t\t{\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (!this.isPreparationStep)\n\t\t\t{\n\t\t\t\tevent.preventDefault();\n event.returnValue = '';\n\t\t\t}\n\t\t},\n\t\tonSmilesSelectSmile(event)\n\t\t{\n\t\t\tEventEmitter.emit(EventType.textarea.insertText, { text: event.text });\n\t\t},\n\t\tonSmilesSelectSet()\n\t\t{\n\t\t\tEventEmitter.emit(EventType.textarea.setFocus);\n\t\t},\n\t\tonWaitForStart()\n\t\t{\n\t\t\tthis.waitingForStart = true;\n\t\t},\n\t\tonChatStartDrag(event)\n\t\t{\n\t\t\tif (this.chatDrag)\n\t\t\t{\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.chatDrag = true;\n\n\t\t\tthis.chatDragStartPoint = event.clientY;\n\t\t\tthis.chatDragStartHeight = this.rightPanelSplitMode.chatHeight;\n\n\t\t\tthis.addChatDragEvents();\n\t\t},\n\t\tonChatContinueDrag(event)\n\t\t{\n\t\t\tif (!this.chatDrag)\n\t\t\t{\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.chatDragControlPoint = event.clientY;\n\t\t\tconst availableHeight = document.body.clientHeight;\n\n\t\t\tconst maxHeightInPx = availableHeight * (this.rightPanelSplitMode.chatMaxHeight / 100);\n\t\t\tconst minHeightInPx = availableHeight * (this.rightPanelSplitMode.chatMinHeight / 100)\n\t\t\tconst startHeightInPx = availableHeight * (this.chatDragStartHeight / 100);\n\t\t\tconst chatHeightInPx = Math.max(\n\t\t\t\tMath.min(startHeightInPx + this.chatDragStartPoint - this.chatDragControlPoint, maxHeightInPx),\n\t\t\t\tminHeightInPx\n\t\t\t);\n\n\t\t\tconst chatHeight = (chatHeightInPx / availableHeight) * 100;\n\n\t\t\tif (this.rightPanelSplitMode.chatHeight !== chatHeight)\n\t\t\t{\n\t\t\t\tthis.rightPanelSplitMode.chatHeight = chatHeight;\n\t\t\t\tthis.rightPanelSplitMode.usersHeight = 100 - chatHeight;\n\t\t\t}\n\t\t},\n\t\tonChatStopDrag(event)\n\t\t{\n\t\t\tif (!this.chatDrag)\n\t\t\t{\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.chatDrag = false;\n\t\t\tthis.removeChatDragEvents();\n\t\t\tEventEmitter.emit(EventType.dialog.scrollToBottom, {chatId: this.chatId, force: true});\n\t\t},\n\t\taddChatDragEvents()\n\t\t{\n\t\t\tdocument.addEventListener('mousemove', this.onChatContinueDrag);\n\t\t\tdocument.addEventListener('mouseup', this.onChatStopDrag);\n\t\t\tdocument.addEventListener('mouseleave', this.onChatStopDrag);\n\t\t},\n\t\tremoveChatDragEvents()\n\t\t{\n\t\t\tdocument.removeEventListener('mousemove', this.onChatContinueDrag);\n\t\t\tdocument.removeEventListener('mouseup', this.onChatStopDrag);\n\t\t\tdocument.removeEventListener('mouseleave', this.onChatStopDrag);\n\t\t},\n\n\t\tisMobile()\n\t\t{\n\t\t\treturn Utils.device.isMobile();\n\t\t},\n\t\tisDesktop()\n\t\t{\n\t\t\treturn Utils.platform.isBitrixDesktop();\n\t\t},\n\t\tsetMobileMeta()\n\t\t{\n\t\t\tif (!this.viewPortMetaNode)\n\t\t\t{\n\t\t\t\tthis.viewPortMetaNode = document.createElement('meta');\n\t\t\t\tthis.viewPortMetaNode.setAttribute('name', 'viewport');\n\t\t\t\tthis.viewPortMetaNode.setAttribute(\"content\", \"width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0\");\n\t\t\t\tdocument.head.appendChild(this.viewPortMetaNode);\n\t\t\t}\n\n\t\t\tdocument.body.classList.add('bx-im-application-call-mobile-state');\n\n\t\t\tif (Utils.browser.isSafariBased())\n\t\t\t{\n\t\t\t\tdocument.body.classList.add('bx-im-application-call-mobile-safari-based');\n\t\t\t}\n\t\t},\n\t\tisHttps()\n\t\t{\n\t\t\treturn location.protocol === 'https:';\n\t\t},\n\t\tgetUserHash()\n\t\t{\n\t\t\treturn this.conference.user.hash;\n\t\t},\n\t\tgetApplication()\n\t\t{\n\t\t\treturn this.$Bitrix.Application.get();\n\t\t},\n\t\t/* endregion 03. Helpers */\n\t},\n\ttemplate: `\n\t<div :class=\"wrapClasses\">\n\t\t<div class=\"bx-im-component-call\">\n\t\t\t<div class=\"bx-im-component-call-left\">\n\t\t\t\t<div id=\"bx-im-component-call-container\" :class=\"callContainerClasses\"></div>\n\t\t\t\t<div v-if=\"isPreparationStep\" class=\"bx-im-component-call-left-preparation\">\n\t\t\t\t\t<!-- Step 1: Errors page -->\n\t\t\t\t\t<Error v-if=\"errorCode\"/>\n\t\t\t\t\t<!-- Step 2: Password page -->\n\t\t\t\t\t<PasswordCheck v-else-if=\"!passwordChecked\"/>\n\t\t\t\t\t<template v-else-if=\"!errorCode && passwordChecked\">\n\t\t\t\t\t\t<!-- Step 3: Loading page -->\n\t\t\t\t\t\t<LoadingStatus v-if=\"!userInited\"/>\n\t\t\t\t\t\t<template v-else-if=\"userInited\">\n\t\t\t\t\t\t\t<!-- BROADCAST MODE -->\n\t\t\t\t\t\t \t<template v-if=\"isBroadcast\">\n\t\t\t\t\t\t \t\t<template v-if=\"!isDesktop() && !permissionsRequested && isCurrentUserPresenter\">\n\t\t\t\t\t\t\t\t\t<ConferenceInfo/>\n\t\t\t\t\t\t\t\t\t<RequestPermissions>\n\t\t\t\t\t\t\t\t\t\t<template v-if=\"isMobile()\">\n\t\t\t\t\t\t\t\t\t\t\t<MobileChatButton/>\n\t\t\t\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t\t\t</RequestPermissions>\n\t\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t\t<!-- Skip permissions request for desktop and show button with loader -->\n\t\t\t\t\t\t\t\t<template v-if=\"isDesktop() && (!permissionsRequested || !user) && isCurrentUserPresenter\">\n\t\t\t\t\t\t\t\t\t<ConferenceInfo/>\n\t\t\t\t\t\t\t\t\t<RequestPermissions :skipRequest=\"true\"/>\n\t\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t\t<!-- Step 5: Page with video and mic check -->\n\t\t\t\t\t\t\t\t<div v-if=\"permissionsRequested || !isCurrentUserPresenter\" class=\"bx-im-component-call-video-step-container\">\n\t\t\t\t\t\t\t\t\t<!-- Compact conference info -->\n\t\t\t\t\t\t\t\t\t<ConferenceInfo :compactMode=\"true\"/>\n\t\t\t\t\t\t\t\t\t<CheckDevices v-if=\"isCurrentUserPresenter\" />\n\t\t\t\t\t\t\t\t\t<!-- Bottom part of interface -->\n\t\t\t\t\t\t\t\t\t<div class=\"bx-im-component-call-bottom-container\">\n\t\t\t\t\t\t\t\t\t\t<UserForm v-if=\"!waitingForStart\"/>\n\t\t\t\t\t\t\t\t\t\t<WaitingForStart v-else>\n\t\t\t\t\t\t\t\t\t\t\t<template v-if=\"isMobile()\">\n\t\t\t\t\t\t\t\t\t\t\t\t<MobileChatButton/>\n\t\t\t\t\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t\t\t\t</WaitingForStart>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t<!-- END BROADCAST MODE -->\n\t\t\t\t\t\t\t<!-- NORMAL MODE (NOT BROADCAST) -->\n\t\t\t\t\t\t \t<template v-else-if=\"!isBroadcast\">\n\t\t\t\t\t\t\t\t<!-- Step 4: Permissions page -->\n\t\t\t\t\t\t\t\t<template v-if=\"!isDesktop() && !permissionsRequested\">\n\t\t\t\t\t\t\t\t\t<ConferenceInfo/>\n\t\t\t\t\t\t\t\t\t<RequestPermissions>\n\t\t\t\t\t\t\t\t\t\t<template v-if=\"isMobile()\">\n\t\t\t\t\t\t\t\t\t\t\t<MobileChatButton/>\n\t\t\t\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t\t\t</RequestPermissions>\n\t\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t\t<!-- Skip permissions request for desktop and show button with loader -->\n\t\t\t\t\t\t\t\t<template v-if=\"isDesktop() && (!permissionsRequested || !user)\">\n\t\t\t\t\t\t\t\t\t<ConferenceInfo/>\n\t\t\t\t\t\t\t\t\t<RequestPermissions :skipRequest=\"true\"/>\n\t\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t\t<!-- Step 5: Page with video and mic check -->\n\t\t\t\t\t\t\t\t<div v-else-if=\"permissionsRequested\" class=\"bx-im-component-call-video-step-container\">\n\t\t\t\t\t\t\t\t\t<!-- Compact conference info -->\n\t\t\t\t\t\t\t\t\t<ConferenceInfo :compactMode=\"true\"/>\n\t\t\t\t\t\t\t\t\t<CheckDevices/>\n\t\t\t\t\t\t\t\t\t<!-- Bottom part of interface -->\n\t\t\t\t\t\t\t\t\t<div class=\"bx-im-component-call-bottom-container\">\n\t\t\t\t\t\t\t\t\t\t<UserForm v-if=\"!waitingForStart\"/>\n\t\t\t\t\t\t\t\t\t\t<WaitingForStart v-else>\n\t\t\t\t\t\t\t\t\t\t\t<template v-if=\"isMobile()\">\n\t\t\t\t\t\t\t\t\t\t\t\t<MobileChatButton/>\n\t\t\t\t\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t\t\t\t</WaitingForStart>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t<!-- END NORMAL MODE (NOT BROADCAST) -->\n\t\t\t\t\t\t</template>\n\t\t\t\t\t</template>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<template v-if=\"userInited && !errorCode\">\n\t\t\t\t<transition :name=\"!isMobile()? 'videoconf-chat-slide': ''\">\n\t\t\t\t\t<div v-show=\"rightPanelMode !== RightPanelMode.hidden\" class=\"bx-im-component-call-right\">\n\t\t\t\t\t\t<!-- Start users list -->\n\t\t\t\t\t\t<div v-show=\"rightPanelMode === RightPanelMode.split || rightPanelMode === RightPanelMode.users\" :class=\"userListClasses\" :style=\"userListStyles\">\n\t\t\t\t\t\t\t<UserListHeader />\n\t\t\t\t\t\t\t<div class=\"bx-im-component-call-right-users\">\n\t\t\t\t\t\t\t\t<UserList />\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<!-- End users list -->\n\t\t\t\t\t\t<!-- Start chat -->\n\t\t\t\t\t\t<div v-show=\"rightPanelMode === RightPanelMode.split || rightPanelMode === RightPanelMode.chat\" :class=\"chatClasses\" :style=\"chatStyles\">\n\t\t\t\t\t\t\t<!-- Resize handler -->\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tv-if=\"rightPanelMode === RightPanelMode.split\"\n\t\t\t\t\t\t\t\t@mousedown=\"onChatStartDrag\"\n\t\t\t\t\t\t\t\tclass=\"bx-im-component-call-right-bottom-resize-handle\"\n\t\t\t\t\t\t\t></div>\n\t\t\t\t\t\t\t<ChatHeader />\n\t\t\t\t\t\t\t<div class=\"bx-im-component-call-right-chat\">\n\t\t\t\t\t\t\t\t<bx-im-component-dialog\n\t\t\t\t\t\t\t\t\t:userId=\"userId\"\n\t\t\t\t\t\t\t\t\t:dialogId=\"dialogId\"\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t<keep-alive include=\"bx-im-component-call-smiles\">\n\t\t\t\t\t\t\t\t\t<ConferenceSmiles\n\t\t\t\t\t\t\t\t\t\tv-if=\"conference.common.showSmiles\"\n\t\t\t\t\t\t\t\t\t\t@selectSmile=\"onSmilesSelectSmile\"\n\t\t\t\t\t\t\t\t\t\t@selectSet=\"onSmilesSelectSet\"\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</keep-alive>\n\t\t\t\t\t\t\t\t<div v-if=\"user\" class=\"bx-im-component-call-textarea\">\n\t\t\t\t\t\t\t\t\t<bx-im-component-textarea\n\t\t\t\t\t\t\t\t\t\t:userId=\"userId\"\n\t\t\t\t\t\t\t\t\t\t:dialogId=\"dialogId\"\n\t\t\t\t\t\t\t\t\t\t:writesEventLetter=\"3\"\n\t\t\t\t\t\t\t\t\t\t:enableFile=\"true\"\n\t\t\t\t\t\t\t\t\t\t:enableEdit=\"true\"\n\t\t\t\t\t\t\t\t\t\t:enableCommand=\"false\"\n\t\t\t\t\t\t\t\t\t\t:enableMention=\"false\"\n\t\t\t\t\t\t\t\t\t\t:autoFocus=\"true\"\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<!-- End chat -->\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</transition>\n\t\t\t</template>\n\t\t</div>\n\t</div>\n\t`\n});\n"],"names":["ConferenceTextareaHandler","$Bitrix","application","Application","get","event","data","appId","toggleSmiles","TextareaHandler","ConferenceTextareaUploadHandler","message","getData","getDiskFolderId","requestDiskFolderId","chatId","then","addMessageWithFile","error","Logger","getChatId","setUploaderCustomHeaders","uploader","addTask","taskId","file","id","fileData","source","fileName","name","generateUniqueName","diskFolderId","previewBlob","senderOptions","customHeaders","getUserHash","controller","store","state","conference","user","hash","TextareaUploadHandler","ConferenceSmiles","methods","onSelectSmile","$emit","onSelectSet","hideSmiles","EventEmitter","emit","EventType","template","MicLevel","props","bars","barDisabledColor","barEnabledColor","watch","localStream","stream","Type","isNil","startAudioCheck","mounted","document","querySelectorAll","computed","localize","BitrixVue","getFilteredPhrases","audioContext","window","AudioContext","webkitAudioContext","analyser","createAnalyser","microphone","createMediaStreamSource","scriptNode","createScriptProcessor","smoothingTimeConstant","fftSize","connect","destination","onaudioprocess","processVolume","arr","Uint8Array","frequencyBinCount","getByteFrequencyData","values","i","length","average","oneBarValue","barsToColor","Math","round","elementsToColor","slice","forEach","elem","style","backgroundColor","CheckDevices","noVideo","selectedCamera","selectedMic","mediaStream","showMic","userDisabledCamera","gettingVideo","isFlippedVideo","BX","Call","Hardware","enableMirroring","created","$root","$on","onCameraStateChange","onMicStateChange","stopLocalVideo","cameraId","onCameraSelected","micId","onMicSelected","getApplication","initHardware","getDefaultDevices","MessageBox","show","Loc","getMessage","modal","buttons","MessageBoxButtons","OK","destroyed","noVideoText","cameraVideoClasses","constraints","audio","video","Utils","device","isMobile","width","ideal","height","defaultCamera","deviceId","exact","Object","keys","cameraList","defaultMicrophone","navigator","mediaDevices","getUserMedia","setLocalStream","getVideoTracks","getSettings","playLocalVideo","setSelectedCamera","getAudioTracks","setSelectedMic","e","warn","getLocalStream","setCameraState","setLocalVideoStream","$refs","volume","srcObject","play","getTracks","tr","stop","stopLocalVideoStream","components","Error","downloadAppArticleCode","callFeedbackSent","errorCode","common","bitrix24only","ConferenceErrorCode","detectIntranetUser","userLimitReached","kickedFromCall","wrongAlias","conferenceFinished","finished","unsupportedBrowser","missingMicrophone","unsafeConnection","noSignalFromCamera","userLeftCall","showFeedback","console","callDetails","Vuex","mapState","reloadPage","location","reload","redirectToAuthorize","href","origin","pathname","continueAsGuest","Cookie","set","alias","path","getBxLink","getAlias","openHelpArticle","Helper","onFeedbackSent","setTimeout","OrientationDisabled","PasswordCheck","password","checkingPassword","wrongPassword","subscribe","setPasswordFocus","onSetPasswordFocus","beforeDestroy","unsubscribe","conferenceTitle","focus","checkPassword","LoadingStatus","NOT_ALLOWED_ERROR_CODE","NOT_FOUND_ERROR_CODE","RequestPermissions","skipRequest","type","Boolean","required","requestPermissions","onRequestPermissions","setPermissionsRequestedFlag","showMessageBox","$nextTick","$store","dispatch","status","text","MobileChatButton","dialogCounter","dialog","counter","userCounter","userCount","dialogues","collection","dialogId","openChat","toggleChat","openUserList","toggleUserList","ConferenceInfo","compactMode","conferenceDuration","durationInterval","conferenceStarted","updateConferenceDuration","setInterval","clearInterval","conferenceStartDate","userId","isBroadcast","presentersList","presenters","presentersInfo","getters","formattedPresentersList","presentersCount","prefix","map","join","isCurrentUserPresenter","includes","conferenceStatusText","conferenceStatusClasses","containerClasses","newValue","startDate","currentDate","Date","durationInSeconds","floor","minutes","seconds","UserForm","userNewName","userHasRealName","intranetAvatarStyle","extranet","avatar","backgroundImage","logoutLink","publicLink","bitrix_sessid","link","videoModeButtonClasses","classes","hardwareInited","push","audioModeButtonClasses","users","startConference","startCall","joinConference","setNewName","waitForStart","setUserReadyToJoin","setJoinType","viewerMode","joinCall","preCall","joinAsViewer","renameGuest","trim","isDesktop","platform","isBitrixDesktop","ChatHeader","desktop","Desktop","showTotalCounter","getApiVersion","isWindows","isExternalUser","messageCount","formattedCounter","onCloseChat","onTotalCounterClick","opener","BXDesktopWindow","ExecuteCommand","WaitingForStart","UserListItem","Number","renameMode","newName","renameRequested","menuId","onlineStates","ConferenceUserState","Ready","Connected","currentUser","chatOwner","ownerId","isCurrentUserOwner","isCurrentUserExternal","isGuestWithDefaultName","guestDefaultName","userCallStatus","isUserInCall","userInCallCount","usersInCall","call","filter","isUserPresenter","formattedSubtitle","subtitles","isMenuNeeded","getMenuItems","menuItems","items","onclick","closeMenu","onRenameStart","externalAuthId","cameraState","pinned","avatarWrapClasses","talking","avatarClasses","avatarStyle","color","isCallStatusPanelNeeded","ConferenceStateType","callLeftIconClasses","floorRequestState","screenState","callCenterIconClasses","microphoneState","callRightIconClasses","bodyClasses","openMenu","menuPopup","existingMenu","MenuManager","getMenuById","destroy","create","bindElement","events","onPopupClose","onPopupDestroy","select","onRenameKeyDown","keyCode","changeName","onFocus","userRenameFocus","onBlur","userRenameBlur","UserList","usersPerPage","firstPageLoaded","pagesLoaded","hasMoreToLoad","rename","requestUsers","firstPage","loaderObserver","usersList","sort","userSortFunction","rightPanelMode","RestClient","callMethod","result","usersIds","ex","onUserMenuKick","showUserKickConfirm","userKickConfirm","close","confirmMessage","OK_CANCEL","onOk","kickUser","onCancel","user_id","chat_id","onUserMenuInsertName","RightPanelMode","hidden","textarea","insertText","onUserChangeName","method","oldName","fields","lastActivityDate","setUserWasRenamed","onUserMenuPin","pinUser","onUserMenuUnpin","unpinUser","onUserMenuChangeBackground","changeBackground","onUserMenuOpenChat","onUserMenuOpenProfile","openProfile","getLoaderObserver","options","root","querySelector","threshold","callback","entries","observer","entry","isIntersecting","intersectionRatio","IntersectionObserver","userA","userB","directives","inserted","element","bindings","vnode","context","observe","unbind","unobserve","UserListHeader","onCloseUsers","onMenuCopyLink","onMenuChangeLink","Clipboard","copy","notificationText","UI","Notification","Center","notify","content","autoHideDelay","changeLinkConfirm","changeLink","getPopupWindow","popupModes","freeze","preparation","component","String","waitingForStart","popupMode","viewPortMetaNode","chatDrag","rightPanelSplitMode","usersHeight","chatHeight","chatMinHeight","chatMaxHeight","initEventHandlers","onWaitForStart","onHideSmiles","setMobileMeta","body","classList","add","addEventListener","onBeforeUnload","bind","isHttps","setError","passwordChecked","destroyHandlers","dialogInited","init","userInited","inited","userListClasses","userListStyles","split","chatClasses","chatStyles","isChatShowed","showChat","isPreparationStep","passChecked","permissionsRequested","callContainerClasses","callEnded","wrapClasses","scrollOnStart","setFocus","chat","setDialogInited","sendMessageHandler","SendMessageHandler","textareaHandler","readingHandler","ReadingHandler","reactionHandler","ReactionHandler","textareaUploadHandler","callView","preventDefault","returnValue","onSmilesSelectSmile","onSmilesSelectSet","onChatStartDrag","chatDragStartPoint","clientY","chatDragStartHeight","addChatDragEvents","onChatContinueDrag","chatDragControlPoint","availableHeight","clientHeight","maxHeightInPx","minHeightInPx","startHeightInPx","chatHeightInPx","max","min","onChatStopDrag","removeChatDragEvents","scrollToBottom","force","removeEventListener","createElement","setAttribute","head","appendChild","browser","isSafariBased","protocol"],"mappings":"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"}
| ver. 1.4 |
Github
|
.
| PHP 7.4.33 | Generation time: 0.27 |
proxy
|
phpinfo
|
Settings