File manager - Edit - /home/c14075/dragmet-ural.ru/www/bitrix/js/im/component/call/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';\n\n//global components\nimport \"im.view.textarea\";\nimport \"im.component.dialog\";\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: ['chatId'],\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\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\tshowChat(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\tthis.$root.$emit(EventType.textarea.focus);\n\t\t\t\t\tthis.$root.$emit(EventType.dialog.scrollToBottom);\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\tdialogId()\n\t\t{\n\t\t\treturn this.application.dialog.dialogId;\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\tshowChat()\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/* 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\tonTextareaSend(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\n\t\t\tif (this.callApplication.common.showSmiles)\n\t\t\t{\n\t\t\t\tthis.getApplication().toggleSmiles();\n\t\t\t}\n\n\t\t\tthis.getApplication().addMessage(event.text);\n\t\t},\n\t\tonTextareaFileSelected(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\n\t\t\tthis.getApplication().uploadFile(fileInput);\n\t\t},\n\t\tonTextareaWrites(event)\n\t\t{\n\t\t\tthis.getController().application.startWriting();\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\tthis.$root.$emit(EventType.textarea.insertText, { text: event.text });\n\t\t},\n\t\tonSmilesSelectSet()\n\t\t{\n\t\t\tthis.$root.$emit(EventType.textarea.focus);\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\tgetApplication()\n\t\t{\n\t\t\treturn this.$root.$bitrixApplication;\n\t\t},\n\t\tgetController()\n\t\t{\n\t\t\treturn this.$root.$bitrixController;\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\t/* endregion 03. Helpers */\n\t},\n\tcomponents: {ErrorComponent, CheckDevices, OrientationDisabled},\n\n\t// language=Vue\n\ttemplate: `\n\t\t<div :class=\"['bx-im-component-call-wrap', {'bx-im-component-call-wrap-with-chat': showChat}]\">\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=\"showChat\" 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\t:listenEventScrollToBottom=\"EventType.dialog.scrollToBottom\"\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-view-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\t:listenEventInsertText=\"EventType.textarea.insertText\"\n\t\t\t\t\t\t\t\t\t\t:listenEventFocus=\"EventType.textarea.focus\"\n\t\t\t\t\t\t\t\t\t\t:listenEventBlur=\"EventType.textarea.blur\"\n\t\t\t\t\t\t\t\t\t\t@send=\"onTextareaSend\"\n\t\t\t\t\t\t\t\t\t\t@fileSelected=\"onTextareaFileSelected\"\n\t\t\t\t\t\t\t\t\t\t@writes=\"onTextareaWrites\"\n\t\t\t\t\t\t\t\t\t\t@appButtonClick=\"onTextareaAppButtonClick\"\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","userNewName","password","checkingPassword","wrongPassword","permissionsRequested","waitingForStart","popupMode","viewPortMetaNode","conferenceDuration","durationInterval","setMobileMeta","body","classList","add","isDesktop","addEventListener","onBeforeUnload","bind","isHttps","setError","passwordChecked","focus","clearInterval","showChat","newValue","$nextTick","$emit","EventType","textarea","dialog","scrollToBottom","dialogInited","setDialogInited","conferenceStarted","setInterval","updateConferenceDuration","userInited","requestPermissions","userId","application","dialogId","conferenceTitle","conferenceStartDate","conferenceStatusClasses","classes","push","conferenceStatusText","intranetAvatarStyle","user","extranet","avatar","backgroundImage","init","dialogName","name","dialogCounter","counter","publicLink","public","link","inited","userHasRealName","userCounter","userInCallCounter","userInCallCount","isPreparationStep","CallStateType","passChecked","mobileDisabled","type","DeviceType","mobile","userAgent","toString","includes","orientation","DeviceOrientation","horizontal","screen","availHeight","logoutLink","bitrix_sessid","users","collection","dialogues","setNewName","setUserName","trim","startCall","toggleSmiles","checkPassword","checkResult","finally","initHardware","MessageBox","message","modal","buttons","MessageBoxButtons","OK","startConference","joinConference","setUserReadyToJoin","setJoinType","openChat","toggleChat","onCloseChat","onTextareaSend","text","showSmiles","addMessage","onTextareaFileSelected","fileInput","fileChangeEvent","target","files","uploadFile","onTextareaWrites","getController","startWriting","onTextareaAppButtonClick","appId","callView","preventDefault","returnValue","onSmilesSelectSmile","insertText","onSmilesSelectSet","platform","isBitrixDesktop","createElement","setAttribute","head","appendChild","browser","isSafariBased","$bitrixController","startDate","currentDate","Date","durationInSeconds","floor","minutes","seconds","protocol"],"mappings":"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"}
| ver. 1.4 |
Github
|
.
| PHP 7.4.33 | Generation time: 0.28 |
proxy
|
phpinfo
|
Settings