File manager - Edit - /home/c14075/dragmet-ural.ru/www/bitrix/js/im/component/conference/conference-public/dist/call.bundle.js.map
Back
{"version":3,"file":"call.bundle.js","sources":["../src/component/bx-im-component-call-smiles.js","../src/component/mic-level.js","../src/component/check-devices.js","../src/component/error.js","../src/component/orientation-disabled.js","../src/component.js"],"sourcesContent":["/**\n * Bitrix Videoconf\n * Smiles component (Vue component)\n *\n * @package bitrix\n * @subpackage imopenlines\n * @copyright 2001-2019 Bitrix\n */\n\nimport {Vue} from \"ui.vue\";\nimport 'ui.vue.components.smiles';\n\nVue.cloneComponent('bx-im-component-call-smiles', 'bx-smiles',\n\t{\n\t\tmethods:\n\t\t\t{\n\t\t\t\thideForm(event)\n\t\t\t\t{\n\t\t\t\t\tthis.$parent.hideSmiles();\n\t\t\t\t},\n\t\t\t},\n\t\ttemplate: `\n\t\t<div class=\"bx-im-component-smiles-box\">\n\t\t\t<div class=\"bx-im-component-smiles-box-close\" @click=\"hideForm\"></div>\n\t\t\t<div class=\"bx-livechat-alert-smiles-box\">\n\t\t\t\t#PARENT_TEMPLATE#\n\t\t\t</div>\n\t\t</div>\n\t`\n\t});","import { Vue } from \"ui.vue\";\nimport { Vuex } from \"ui.vue.vuex\";\nimport { Type } from \"main.core\";\nimport {Logger} from \"im.lib.logger\";\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\t{\n\t\t\tlocalize()\n\t\t\t{\n\t\t\t\treturn Vue.getFilteredPhrases('BX_IM_COMPONENT_CALL_CHECK_DEVICES_', this.$root.$bitrixMessages);\n\t\t\t}\n\t\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 {Vue} 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\";\n\nimport 'ui.forms';\nimport { Vuex } from \"ui.vue.vuex\";\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}\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.getDefaultDevices();\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 Vue.getFilteredPhrases('BX_IM_COMPONENT_CALL_CHECK_DEVICES_', this.$root.$bitrixMessages);\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.$root.$bitrixApplication.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.$root.$bitrixApplication;\n\t\t}\n\t},\n\tcomponents:\n\t\t{ MicLevel },\n\ttemplate: `\n\t<div class=\"bx-im-component-call-check-devices\">\n\t\t<div v-show=\"noVideo\">\n\t\t\t<div class=\"bx-im-component-call-check-devices-camera-no-video\">\n\t\t\t\t<div class=\"bx-im-component-call-check-devices-camera-no-video-icon\"></div>\n\t\t\t\t<div class=\"bx-im-component-call-check-devices-camera-no-video-text\">{{ noVideoText }}</div>\n\t\t\t</div>\n\t\t</div>\n\t\t<div v-show=\"!noVideo\">\n\t\t\t<div class=\"bx-im-component-call-check-devices-camera-video-container\">\n\t\t\t\t<video ref=\"video\" class=\"bx-im-component-call-check-devices-camera-video\" muted autoplay playsinline></video>\n\t\t\t</div>\n\t\t</div>\n\t\t<template v-if=\"!isMobile()\">\n\t\t\t<mic-level v-show=\"showMic\" :localStream=\"mediaStream\"/>\n\t\t</template>\n\t</div>\n\t`\n};\n\nexport {CheckDevices};","import { Vue } from \"ui.vue\";\nimport { CallApplicationErrorCode, CallErrorCode } from \"im.const\";\nimport { Cookie } from 'im.lib.cookie';\nimport { Utils } from \"im.lib.utils\";\nimport { Vuex } from \"ui.vue.vuex\";\n\nconst ErrorComponent = {\n\tprops: ['errorCode'],\n\tdata()\n\t{\n\t\treturn {\n\t\t\tdownloadAppArticleCode: 11387752\n\t\t}\n\t},\n\tcomputed:\n\t{\n\t\tbitrix24only()\n\t\t{\n\t\t\treturn this.errorCode === CallApplicationErrorCode.bitrix24only;\n\t\t},\n\t\tdetectIntranetUser()\n\t\t{\n\t\t\treturn this.errorCode === CallApplicationErrorCode.detectIntranetUser;\n\t\t},\n\t\tuserLimitReached()\n\t\t{\n\t\t\treturn this.errorCode === CallApplicationErrorCode.userLimitReached;\n\t\t},\n\t\tkickedFromCall()\n\t\t{\n\t\t\treturn this.errorCode === CallApplicationErrorCode.kickedFromCall;\n\t\t},\n\t\twrongAlias()\n\t\t{\n\t\t\treturn this.errorCode === CallApplicationErrorCode.wrongAlias;\n\t\t},\n\t\tconferenceFinished()\n\t\t{\n\t\t\treturn this.errorCode === CallApplicationErrorCode.finished;\n\t\t},\n\t\tunsupportedBrowser()\n\t\t{\n\t\t\treturn this.errorCode === CallApplicationErrorCode.unsupportedBrowser;\n\t\t},\n\t\tmissingMicrophone()\n\t\t{\n\t\t\treturn this.errorCode === CallApplicationErrorCode.missingMicrophone;\n\t\t},\n\t\tunsafeConnection()\n\t\t{\n\t\t\treturn this.errorCode === CallApplicationErrorCode.unsafeConnection;\n\t\t},\n\t\tnoSignalFromCamera()\n\t\t{\n\t\t\treturn this.errorCode === CallErrorCode.noSignalFromCamera;\n\t\t},\n\t\tuserLeftCall()\n\t\t{\n\t\t\treturn this.errorCode === CallApplicationErrorCode.userLeftCall;\n\t\t},\n\t\tlocalize()\n\t\t{\n\t\t\treturn Vue.getFilteredPhrases('BX_IM_COMPONENT_CALL_', this.$root.$bitrixMessages);\n\t\t},\n\t\t...Vuex.mapState({\n\t\t\tcallApplication: state => state.callApplication\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.callApplication.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.$root.$bitrixApplication.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},\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<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_USER_LEFT_THE_CALL'] }}</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</template>\n\t\t</div>\n\t`\n};\n\nexport {ErrorComponent};","const OrientationDisabled = {\n\tcomputed:\n\t{\n\t\tlocalize()\n\t\t{\n\t\t\treturn Object.freeze({\n\t\t\t\tBX_IM_COMPONENT_CALL_ROTATE_DEVICE: this.$root.$bitrixMessages.BX_IM_COMPONENT_CALL_ROTATE_DEVICE\n\t\t\t});\n\t\t}\n\t},\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{{ localize.BX_IM_COMPONENT_CALL_ROTATE_DEVICE }}\n\t\t\t</div>\n\t\t</div>\n\t`\n};\n\nexport {OrientationDisabled};","/**\n * Bitrix im\n * Pubic call vue component\n *\n * @package bitrix\n * @subpackage mobile\n * @copyright 2001-2019 Bitrix\n */\n\nimport {Vue} from \"ui.vue\";\nimport {Vuex} from \"ui.vue.vuex\";\nimport {Logger} from \"im.lib.logger\";\nimport {Utils} from \"im.lib.utils\";\nimport {\n\tCallStateType,\n\tCallErrorCode,\n\tEventType,\n\tCallApplicationErrorCode,\n\tDeviceType,\n\tDeviceOrientation\n} from \"im.const\";\nimport { MessageBox, MessageBoxButtons } from 'ui.dialogs.messagebox';\nimport {DialogCore, TextareaCore, DialogReadMessages} from 'im.mixin';\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 './component/bx-im-component-call-smiles';\nimport {CheckDevices} from './component/check-devices';\nimport {ErrorComponent} from \"./component/error\";\nimport {OrientationDisabled} from \"./component/orientation-disabled\";\n\n//css\nimport \"./component.css\";\n\nconst popupModes = Object.freeze({\n\tpreparation: 'preparation'\n});\n\n/**\n * @notice Do not mutate or clone this component! It is under development.\n */\nVue.component('bx-im-component-call',\n{\n\tprops: ['dialogId'],\n\tmixins: [DialogCore, TextareaCore, DialogReadMessages],\n\tdata: function()\n\t{\n\t\treturn {\n\t\t\tuserNewName: '',\n\t\t\tpassword: '',\n\t\t\tcheckingPassword: false,\n\t\t\twrongPassword: false,\n\t\t\tpermissionsRequested: false,\n\t\t\twaitingForStart: false,\n\t\t\tpopupMode: popupModes.preparation,\n\t\t\tviewPortMetaNode: null,\n\t\t\tconferenceDuration: '',\n\t\t\tdurationInterval: null\n\t\t};\n\t},\n\tcreated()\n\t{\n\t\t//for textareaCore\n\t\tEventEmitter.subscribe(EventType.conference.initCompleted, this.initUploader);\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(CallApplicationErrorCode.unsafeConnection);\n\t\t}\n\n\t\tif (!this.passwordChecked)\n\t\t{\n\t\t\tthis.$refs['passwordInput'].focus();\n\t\t}\n\t},\n\tdestroyed()\n\t{\n\t\tclearInterval(this.durationInterval);\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.scrollToBottom);\n\t\t\t\t\tEventEmitter.emit(EventType.textarea.externalFocus);\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\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\tuserInited(newValue)\n\t\t{\n\t\t\tif (newValue === true && this.isDesktop() && this.passwordChecked)\n\t\t\t{\n\t\t\t\tthis.requestPermissions();\n\t\t\t}\n\t\t}\n\t},\n\tcomputed:\n\t{\n\t\tEventType: () => EventType,\n\t\tuserId()\n\t\t{\n\t\t\treturn this.application.common.userId;\n\t\t},\n\t\tconferenceTitle()\n\t\t{\n\t\t\treturn this.callApplication.common.conferenceTitle;\n\t\t},\n\t\tconferenceStarted()\n\t\t{\n\t\t\treturn this.callApplication.common.conferenceStarted;\n\t\t},\n\t\tconferenceStartDate()\n\t\t{\n\t\t\treturn this.callApplication.common.conferenceStartDate;\n\t\t},\n\t\tconferenceStatusClasses()\n\t\t{\n\t\t\tconst classes = ['bx-im-component-call-info-status'];\n\n\t\t\tif (this.conferenceStarted === true)\n\t\t\t{\n\t\t\t\tclasses.push('bx-im-component-call-info-status-active');\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tclasses.push('bx-im-component-call-info-status-not-active');\n\t\t\t}\n\n\t\t\treturn classes;\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\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\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\tdialogName()\n\t\t{\n\t\t\tif (this.dialog)\n\t\t\t{\n\t\t\t\treturn this.dialog.name;\n\t\t\t}\n\t\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\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\tuserInited()\n\t\t{\n\t\t\treturn this.callApplication.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\tisChatShowed()\n\t\t{\n\t\t\treturn this.callApplication.common.showChat;\n\t\t},\n\t\tuserCounter()\n\t\t{\n\t\t\treturn this.dialog.userCounter;\n\t\t},\n\t\tuserInCallCounter()\n\t\t{\n\t\t\treturn this.callApplication.common.userInCallCount;\n\t\t},\n\t\tisPreparationStep()\n\t\t{\n\t\t\treturn this.callApplication.common.state === CallStateType.preparation;\n\t\t},\n\t\terror()\n\t\t{\n\t\t\treturn this.callApplication.common.error;\n\t\t},\n\t\tpasswordChecked()\n\t\t{\n\t\t\treturn this.callApplication.common.passChecked;\n\t\t},\n\t\tmobileDisabled()\n\t\t{\n\t\t\treturn false;\n\t\t\tif (this.application.device.type === DeviceType.mobile)\n\t\t\t{\n\t\t\t\tif (navigator.userAgent.toString().includes('iPad'))\n\t\t\t\t{\n\t\t\t\t}\n\t\t\t\telse if (this.application.device.orientation === DeviceOrientation.horizontal)\n\t\t\t\t{\n\t\t\t\t\tif (navigator.userAgent.toString().includes('iPhone'))\n\t\t\t\t\t{\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t\telse\n\t\t\t\t\t{\n\t\t\t\t\t\treturn !(typeof window.screen === 'object' && window.screen.availHeight >= 800);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn false;\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\tlocalize()\n\t\t{\n\t\t\treturn Vue.getFilteredPhrases('BX_IM_COMPONENT_CALL_', this.$root.$bitrixMessages);\n\t\t},\n\t\t...Vuex.mapState({\n\t\t\tcallApplication: state => state.callApplication,\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\tmethods:\n\t{\n\t\t/* region 01. Actions */\n\t\tsetNewName()\n\t\t{\n\t\t\tif (this.userNewName.length > 0)\n\t\t\t{\n\t\t\t\tthis.getApplication().setUserName(this.userNewName.trim());\n\t\t\t}\n\t\t},\n\t\tstartCall()\n\t\t{\n\t\t\tthis.getApplication().startCall();\n\t\t},\n\t\thideSmiles()\n\t\t{\n\t\t\tthis.getApplication().toggleSmiles();\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(checkResult => {\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\trequestPermissions()\n\t\t{\n\t\t\tthis.getApplication().initHardware().then(() => {\n\t\t\t\tthis.$nextTick(() => {\n\t\t\t\t\tthis.permissionsRequested = true;\n\t\t\t\t});\n\t\t\t}).catch((error) => {\n\t\t\t\tMessageBox.show({\n\t\t\t\t\tmessage: this.localize['BX_IM_COMPONENT_CALL_HARDWARE_ERROR'],\n\t\t\t\t\tmodal: true,\n\t\t\t\t\tbuttons: MessageBoxButtons.OK\n\t\t\t\t});\n\t\t\t});\n\t\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\tthis.waitingForStart = true;\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\tthis.getApplication().startCall(video);\n\t\t\t}\n\t\t},\n\t\topenChat()\n\t\t{\n\t\t\tthis.getApplication().toggleChat();\n\t\t},\n\t\t/**\n\t\t *\n\t\t * @notice redefined method from textareaCore\n\t\t */\n\t\taddMessageWithFile(message)\n\t\t{\n\t\t\tthis.stopWriting();\n\n\t\t\tmessage.chatId = this.chatId;\n\n\t\t\tthis.uploader.senderOptions.customHeaders['Call-Auth-Id'] = this.getUserHash();\n\t\t\tthis.uploader.senderOptions.customHeaders['Call-Chat-Id'] = this.chatId;\n\n\t\t\tthis.uploader.addTask({\n\t\t\t\ttaskId: message.file.id,\n\t\t\t\tfileData: message.file.source.file,\n\t\t\t\tfileName: message.file.source.file.name,\n\t\t\t\tgenerateUniqueName: true,\n\t\t\t\tdiskFolderId: this.diskFolderId,\n\t\t\t\tpreviewBlob: message.file.previewBlob,\n\t\t\t});\n\t\t},\n\t\t/* endregion 01. Actions */\n\t\t/* region 02. Handlers */\n\t\tonCloseChat()\n\t\t{\n\t\t\tthis.getApplication().toggleChat();\n\t\t},\n\t\t// onTextareaSend(event)\n\t\t// {\n\t\t// \tif (!event.text)\n\t\t// \t{\n\t\t// \t\treturn false;\n\t\t// \t}\n\t\t//\n\t\t// \tif (this.callApplication.common.showSmiles)\n\t\t// \t{\n\t\t// \t\tthis.getApplication().toggleSmiles();\n\t\t// \t}\n\t\t//\n\t\t// \tthis.getApplication().addMessage(event.text);\n\t\t// },\n\t\t// onTextareaFileSelected(event)\n\t\t// {\n\t\t// \tlet fileInput = event && event.fileChangeEvent && event.fileChangeEvent.target.files.length > 0 ? event.fileChangeEvent : '';\n\t\t// \tif (!fileInput)\n\t\t// \t{\n\t\t// \t\treturn false;\n\t\t// \t}\n\t\t//\n\t\t// \tthis.getApplication().uploadFile(fileInput);\n\t\t// },\n\t\t// onTextareaWrites(event)\n\t\t// {\n\t\t// \tthis.getController().application.startWriting();\n\t\t// },\n\n\t\t/**\n\t\t *\n\t\t * @notice redefined from textareaCore\n\t\t */\n\t\tonTextareaAppButtonClick(event)\n\t\t{\n\t\t\tif (event.appId === 'smile')\n\t\t\t{\n\t\t\t\tthis.getApplication().toggleSmiles();\n\t\t\t}\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.externalFocus);\n\t\t},\n\t\t/* endregion 02. Handlers */\n\t\t/* region 03. Helpers */\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\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\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.$store.state.callApplication.user.hash;\n\t\t}\n\t\t/* endregion 03. Helpers */\n\t},\n\tcomponents: {ErrorComponent, CheckDevices, OrientationDisabled},\n\t// language=Vue\n\ttemplate: `\n\t\t<div class=\"bx-im-component-call-wrap\">\n\t\t\t<div v-show=\"mobileDisabled\">\n\t\t\t\t<orientation-disabled/>\n\t\t\t</div>\n\t\t\t<div v-show=\"!mobileDisabled\" class=\"bx-im-component-call\">\n\t\t\t\t<div class=\"bx-im-component-call-left\">\n\t\t\t\t\t<div id=\"bx-im-component-call-container\"></div>\n\t\t\t\t\t<div v-if=\"isPreparationStep\" class=\"bx-im-component-call-left-preparation\">\n\t\t\t\t\t\t<!-- Step 1: Errors -->\n\t\t\t\t\t\t<template v-if=\"error\">\n\t\t\t\t\t\t\t<error-component :errorCode=\"error\" />\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\t<!-- Step 2: Password check -->\n\t\t\t\t\t\t<template v-else-if=\"!passwordChecked\">\n\t\t\t\t\t\t\t<div class=\"bx-im-component-call-info-container\">\n\t\t\t\t\t\t\t\t<div class=\"bx-im-component-call-info-logo\"></div>\n\t\t\t\t\t\t\t\t<div class=\"bx-im-component-call-info-title\">{{ conferenceTitle }}</div>\n\t<!--\t\t\t\t\t\t<div class=\"bx-im-component-call-info-date\">26.08.2020, 12:00 - 13:00</div>-->\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div class=\"bx-im-component-call-password-container\">\n\t\t\t\t\t\t\t\t<template v-if=\"wrongPassword\">\n\t\t\t\t\t\t\t\t\t<div class=\"bx-im-component-call-password-error\">\n\t\t\t\t\t\t\t\t\t\t{{ localize['BX_IM_COMPONENT_CALL_PASSWORD_WRONG'] }}\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t\t<template v-else>\n\t\t\t\t\t\t\t\t\t<div class=\"bx-im-component-call-password-title\">\n\t\t\t\t\t\t\t\t\t\t<div class=\"bx-im-component-call-password-title-logo\"></div>\n\t\t\t\t\t\t\t\t\t\t<div class=\"bx-im-component-call-password-title-text\">{{ localize['BX_IM_COMPONENT_CALL_PASSWORD_TITLE'] }}</div>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t\t<input @keyup.enter=\"checkPassword\" type=\"text\" v-model=\"password\" class=\"bx-im-component-call-password-input\" :placeholder=\"localize['BX_IM_COMPONENT_CALL_PASSWORD_PLACEHOLDER']\" ref=\"passwordInput\"/>\n\t\t\t\t\t\t\t\t<button @click=\"checkPassword\" class=\"ui-btn ui-btn-sm ui-btn-primary bx-im-component-call-password-button\">{{ localize['BX_IM_COMPONENT_CALL_PASSWORD_JOIN'] }}</button>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\t<template v-else-if=\"!error && passwordChecked\">\n\t\t\t\t\t\t\t<!-- Step 3: Loading -->\n\t\t\t\t\t\t\t<template v-if=\"!userInited\">\n\t\t\t\t\t\t\t\t<div class=\"bx-im-component-call-loading\">\n\t\t\t\t\t\t\t\t\t<div class=\"bx-im-component-call-loading-text\">{{ localize['BX_IM_COMPONENT_CALL_LOADING'] }}</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<template v-else>\n\t\t\t\t\t\t\t\t<!-- Step 4: Permissions -->\n\t\t\t\t\t\t\t\t<template v-if=\"!isDesktop() && !permissionsRequested\">\n\t\t\t\t\t\t\t\t\t<div class=\"bx-im-component-call-info-container\">\n\t\t\t\t\t\t\t\t\t\t<div class=\"bx-im-component-call-info-logo\"></div>\n\t\t\t\t\t\t\t\t\t\t<div class=\"bx-im-component-call-info-title\">{{ conferenceTitle }}</div>\n\t<!--\t\t\t\t\t\t\t\t<div class=\"bx-im-component-call-info-date\">26.08.2020, 12:00 - 13:00</div>-->\n\t\t\t\t\t\t\t\t\t\t<div :class=\"conferenceStatusClasses\">{{ conferenceStatusText }}</div>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t<div class=\"bx-im-component-call-permissions-container\">\n\t\t\t\t\t\t\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\t\t\t\t\t\t<button @click=\"requestPermissions\" class=\"ui-btn ui-btn-sm ui-btn-primary bx-im-component-call-permissions-button\">{{ localize['BX_IM_COMPONENT_CALL_PERMISSIONS_BUTTON'] }}</button>\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<div class=\"bx-im-component-call-open-chat-button-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t<button @click=\"openChat\" class=\"ui-btn ui-btn-sm ui-btn-icon-chat bx-im-component-call-open-chat-button\">{{ localize['BX_IM_COMPONENT_CALL_OPEN_CHAT'] }}</button>\n\t\t\t\t\t\t\t\t\t\t\t\t<template v-if=\"dialogCounter > 0\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"bx-im-component-call-open-chat-button-counter\">{{ dialogCounter }}</div>\n\t\t\t\t\t\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</template>\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<div class=\"bx-im-component-call-info-container\">\n\t\t\t\t\t\t\t\t\t\t<div class=\"bx-im-component-call-info-logo\"></div>\n\t\t\t\t\t\t\t\t\t\t<div class=\"bx-im-component-call-info-title\">{{ conferenceTitle }}</div>\n\t<!--\t\t\t\t\t\t\t\t<div class=\"bx-im-component-call-info-date\">26.08.2020, 12:00 - 13:00</div>-->\n\t\t\t\t\t\t\t\t\t\t<div :class=\"conferenceStatusClasses\">{{ conferenceStatusText }}</div>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t<div class=\"bx-im-component-call-permissions-container\">\n\t\t\t\t\t\t\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\t\t\t\t\t\t<button class=\"ui-btn ui-btn-sm ui-btn-wait bx-im-component-call-permissions-button\">{{ localize['BX_IM_COMPONENT_CALL_PERMISSIONS_BUTTON'] }}</button>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t\t<!-- Step 5: Usual interface with video and mic check -->\n\t\t\t\t\t\t\t\t<template v-else-if=\"permissionsRequested\">\n\t\t\t\t\t\t\t\t\t<div class=\"bx-im-component-call-video-step-container\">\n\t\t\t\t\t\t\t\t\t\t<!-- Compact conference info -->\n\t\t\t\t\t\t\t\t\t\t<div class=\"bx-im-component-call-info-container-compact\">\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"bx-im-component-call-info-title-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"bx-im-component-call-info-logo\"></div>\n\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"bx-im-component-call-info-title\">{{ conferenceTitle }}</div>\n\t\t\t\t\t\t\t\t\t\t\t</div>\n\t<!--\t\t\t\t\t\t\t\t\t<div class=\"bx-im-component-call-info-date\">26.08.2020, 12:00 - 13:00</div>-->\n\t\t\t\t\t\t\t\t\t\t\t<div :class=\"conferenceStatusClasses\">{{ conferenceStatusText }}</div>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t<!-- Video and mic check -->\n\t\t\t\t\t\t\t\t\t\t<div class=\"bx-im-component-call-device-check-container\">\n\t\t\t\t\t\t\t\t\t\t\t<check-devices />\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\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\t<template v-if=\"!waitingForStart\">\n\t\t\t\t\t\t\t\t\t\t\t\t<!-- If we know user name -->\n\t\t\t\t\t\t\t\t\t\t\t\t<template v-if=\"user && userHasRealName\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<template v-if=\"!user.extranet\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"bx-im-component-call-intranet-name-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"bx-im-component-call-intranet-name-title\">{{ localize['BX_IM_COMPONENT_CALL_INTRANET_NAME_TITLE'] }}</div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"bx-im-component-call-intranet-name-content\">\n\t\t\t\t\t\t\t\t\t\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\t\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\t\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\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<template v-if=\"!isDesktop()\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<a :href=\"logoutLink\" class=\"bx-im-component-call-intranet-name-logout\">{{ localize['BX_IM_COMPONENT_CALL_INTRANET_LOGOUT'] }}</a>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<template v-else-if=\"user.extranet\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"bx-im-component-call-guest-name-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"bx-im-component-call-guest-name-text\">{{ user.name }}</div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t\t\t\t\t\t<!-- New guest, need to specify name -->\n\t\t\t\t\t\t\t\t\t\t\t\t<template v-else-if=\"user && !userHasRealName\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tv-model=\"userNewName\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\ttype=\"text\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t:placeholder=\"localize['BX_IM_COMPONENT_CALL_NAME_PLACEHOLDER']\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tclass=\"bx-im-component-call-name-input\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tref=\"nameInput\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t\t\t\t\t\t<!-- Action buttons -->\n\t\t\t\t\t\t\t\t\t\t\t\t<!-- Intranet user can start conference -->\n\t\t\t\t\t\t\t\t\t\t\t\t<template v-if=\"user\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<template v-if=\"!user.extranet && !conferenceStarted\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<button @click=\"startConference({video: true})\" class=\"ui-btn ui-btn-sm ui-btn-primary bx-im-component-call-join-video\">{{ localize['BX_IM_COMPONENT_CALL_START_WITH_VIDEO'] }}</button>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<button @click=\"startConference({video: false})\" class=\"ui-btn ui-btn-sm bx-im-component-call-join-audio\">{{ localize['BX_IM_COMPONENT_CALL_START_WITH_AUDIO'] }}</button>\n\t\t\t\t\t\t\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<!-- Others can join -->\n\t\t\t\t\t\t\t\t\t\t\t\t\t<template v-else>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<button @click=\"joinConference({video: true})\" class=\"ui-btn ui-btn-sm ui-btn-primary bx-im-component-call-join-video\">{{ localize['BX_IM_COMPONENT_CALL_JOIN_WITH_VIDEO'] }}</button>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<button @click=\"joinConference({video: false})\" class=\"ui-btn ui-btn-sm bx-im-component-call-join-audio\">{{ localize['BX_IM_COMPONENT_CALL_JOIN_WITH_AUDIO'] }}</button>\n\t\t\t\t\t\t\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t\t\t\t\t<!-- Waiting for start-->\n\t\t\t\t\t\t\t\t\t\t\t<template v-else>\n\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"bx-im-component-call-wait-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"bx-im-component-call-wait-logo\"></div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"bx-im-component-call-wait-title\">{{ localize['BX_IM_COMPONENT_CALL_WAIT_START_TITLE'] }}</div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"bx-im-component-call-wait-user-counter\">{{ localize['BX_IM_COMPONENT_CALL_WAIT_START_USER_COUNT'] }} {{ userCounter }}</div>\n\t\t\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\t\t<div class=\"bx-im-component-call-open-chat-button-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<button @click=\"openChat\" class=\"ui-btn ui-btn-sm ui-btn-icon-chat bx-im-component-call-open-chat-button\">{{ localize['BX_IM_COMPONENT_CALL_OPEN_CHAT'] }}</button>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<template v-if=\"dialogCounter > 0\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"bx-im-component-call-open-chat-button-counter\">{{ dialogCounter }}</div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t</template>\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\t<template v-if=\"userInited && !error\">\n\t\t\t\t\t<transition :name=\"!isMobile()? 'videoconf-chat-slide': ''\">\n\t\t\t\t\t\t<div v-show=\"isChatShowed\" class=\"bx-im-component-call-right\">\n\t\t\t\t\t\t\t<div class=\"bx-im-component-call-right-header\">\n\t\t\t\t\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\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\t\t\t\t</div>\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<template v-if=\"callApplication.common.showSmiles\">\n\t\t\t\t\t\t\t\t\t\t<bx-im-component-call-smiles @selectSmile=\"onSmilesSelectSmile\" @selectSet=\"onSmilesSelectSet\"/>\t\n\t\t\t\t\t\t\t\t\t</template>\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</div>\n\t\t\t\t\t</transition>\n\t\t\t\t</template>\n\t\t\t</div>\n\t\t</div>\n\t`\n});"],"names":["Vue","cloneComponent","methods","hideForm","event","$parent","hideSmiles","template","MicLevel","props","data","bars","barDisabledColor","barEnabledColor","watch","localStream","stream","Type","isNil","startAudioCheck","mounted","document","querySelectorAll","computed","localize","getFilteredPhrases","$root","$bitrixMessages","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","created","$on","state","onCameraStateChange","onMicStateChange","stopLocalVideo","cameraId","onCameraSelected","micId","onMicSelected","getDefaultDevices","destroyed","noVideoText","constraints","audio","video","Utils","device","isMobile","width","ideal","height","BX","Call","Hardware","defaultCamera","deviceId","exact","Object","keys","cameraList","defaultMicrophone","navigator","mediaDevices","getUserMedia","then","setLocalStream","getVideoTracks","getSettings","playLocalVideo","getApplication","setSelectedCamera","getAudioTracks","setSelectedMic","catch","e","Logger","warn","getLocalStream","error","setCameraState","setLocalVideoStream","$refs","volume","srcObject","play","getTracks","tr","stop","stopLocalVideoStream","$bitrixApplication","components","ErrorComponent","downloadAppArticleCode","bitrix24only","errorCode","CallApplicationErrorCode","detectIntranetUser","userLimitReached","kickedFromCall","wrongAlias","conferenceFinished","finished","unsupportedBrowser","missingMicrophone","unsafeConnection","noSignalFromCamera","CallErrorCode","userLeftCall","Vuex","mapState","callApplication","reloadPage","location","reload","redirectToAuthorize","href","origin","pathname","continueAsGuest","Cookie","set","common","alias","path","getBxLink","getAlias","openHelpArticle","Helper","show","OrientationDisabled","freeze","BX_IM_COMPONENT_CALL_ROTATE_DEVICE","popupModes","preparation","component","mixins","DialogCore","TextareaCore","DialogReadMessages","userNewName","password","checkingPassword","wrongPassword","permissionsRequested","waitingForStart","popupMode","viewPortMetaNode","conferenceDuration","durationInterval","EventEmitter","subscribe","EventType","conference","initCompleted","initUploader","setMobileMeta","body","classList","add","isDesktop","addEventListener","onBeforeUnload","bind","isHttps","setError","passwordChecked","focus","clearInterval","isChatShowed","newValue","$nextTick","emit","dialog","scrollToBottom","textarea","externalFocus","dialogInited","setDialogInited","conferenceStarted","setInterval","updateConferenceDuration","userInited","requestPermissions","userId","application","conferenceTitle","conferenceStartDate","conferenceStatusClasses","classes","push","conferenceStatusText","intranetAvatarStyle","user","extranet","avatar","backgroundImage","init","dialogName","name","dialogCounter","counter","publicLink","public","link","inited","userHasRealName","showChat","userCounter","userInCallCounter","userInCallCount","isPreparationStep","CallStateType","passChecked","mobileDisabled","type","DeviceType","mobile","userAgent","toString","includes","orientation","DeviceOrientation","horizontal","screen","availHeight","logoutLink","bitrix_sessid","users","collection","dialogues","dialogId","setNewName","setUserName","trim","startCall","toggleSmiles","checkPassword","checkResult","finally","initHardware","MessageBox","message","modal","buttons","MessageBoxButtons","OK","startConference","joinConference","setUserReadyToJoin","setJoinType","openChat","toggleChat","addMessageWithFile","stopWriting","chatId","uploader","senderOptions","customHeaders","getUserHash","addTask","taskId","file","id","fileData","source","fileName","generateUniqueName","diskFolderId","previewBlob","onCloseChat","onTextareaAppButtonClick","appId","callView","preventDefault","returnValue","onSmilesSelectSmile","insertText","text","onSmilesSelectSet","platform","isBitrixDesktop","createElement","setAttribute","head","appendChild","browser","isSafariBased","startDate","currentDate","Date","durationInSeconds","floor","minutes","seconds","protocol","$store","hash"],"mappings":"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"}
| ver. 1.4 |
Github
|
.
| PHP 7.4.33 | Generation time: 0.27 |
proxy
|
phpinfo
|
Settings