File manager - Edit - /home/c14075/dragmet-ural.ru/www/bitrix/js/im/application/call/dist/call.bundle.js.map
Back
{"version":3,"file":"call.bundle.js","sources":["../src/utils/restclient.js","../src/controller.js"],"sourcesContent":["import { RestClient } from \"rest.client\";\nimport { Utils } from \"im.lib.utils\";\n\nconst RestAuth = Object.freeze({\n\tguest: 'guest',\n});\n\nexport class CallRestClient\n{\n\tconstructor(params)\n\t{\n\t\tthis.queryAuthRestore = false;\n\n\t\tthis.setAuthId(RestAuth.guest);\n\n\t\tthis.restClient = new RestClient({\n\t\t\tendpoint: params.endpoint,\n\t\t\tqueryParams: this.queryParams,\n\t\t\tcors: true\n\t\t});\n\t}\n\n\tsetAuthId(authId, customAuthId = '')\n\t{\n\t\tif (typeof this.queryParams !== 'object')\n\t\t{\n\t\t\tthis.queryParams = {};\n\t\t}\n\n\t\tif (\n\t\t\tauthId == RestAuth.guest\n\t\t\t|| typeof authId === 'string' && authId.match(/^[a-f0-9]{32}$/)\n\t\t)\n\t\t{\n\t\t\tthis.queryParams.call_auth_id = authId;\n\t\t}\n\t\telse\n\t\t{\n\t\t\tconsole.error(`%CallRestClient.setAuthId: auth is not correct (%c${authId}%c)`, \"color: black;\", \"font-weight: bold; color: red\", \"color: black\");\n\t\t\treturn false;\n\t\t}\n\n\t\tif (\n\t\t\tauthId == RestAuth.guest\n\t\t\t&& typeof customAuthId === 'string' && customAuthId.match(/^[a-f0-9]{32}$/)\n\t\t)\n\t\t{\n\t\t\tthis.queryParams.call_custom_auth_id = customAuthId;\n\t\t}\n\n\t\treturn true;\n\t}\n\n\tsetChatId(chatId)\n\t{\n\t\tif (typeof this.queryParams !== 'object')\n\t\t{\n\t\t\tthis.queryParams = {};\n\t\t}\n\n\t\tthis.queryParams.call_chat_id = chatId;\n\t}\n\n\tsetConfId(alias)\n\t{\n\t\tif (typeof this.queryParams !== 'object')\n\t\t{\n\t\t\tthis.queryParams = {};\n\t\t}\n\n\t\tthis.queryParams.videoconf_id = alias;\n\t}\n\n\tsetPassword(password)\n\t{\n\t\tif (typeof this.queryParams !== 'object')\n\t\t{\n\t\t\tthis.queryParams = {};\n\t\t}\n\n\t\tthis.queryParams.videoconf_password = password;\n\t}\n\n\tcallMethod(method, params, callback, sendCallback, logTag = null)\n\t{\n\t\tif (!logTag)\n\t\t{\n\t\t\tlogTag = Utils.getLogTrackingParams({\n\t\t\t\tname: method,\n\t\t\t});\n\t\t}\n\n\t\tconst promise = new BX.Promise();\n\n\t\t// TODO: Callbacks methods will not work!\n\t\tthis.restClient.callMethod(method, params, null, sendCallback, logTag).then(result => {\n\n\t\t\tthis.queryAuthRestore = false;\n\t\t\tpromise.fulfill(result);\n\n\t\t}).catch(result => {\n\n\t\t\tlet error = result.error();\n\t\t\tif (error.ex.error == 'LIVECHAT_AUTH_WIDGET_USER')\n\t\t\t{\n\t\t\t\tthis.setAuthId(error.ex.hash);\n\n\t\t\t\tif (method === RestMethod.widgetUserRegister)\n\t\t\t\t{\n\t\t\t\t\tconsole.warn(`BX.LiveChatRestClient: ${error.ex.error_description} (${error.ex.error})`);\n\n\t\t\t\t\tthis.queryAuthRestore = false;\n\t\t\t\t\tpromise.reject(result);\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\tif (!this.queryAuthRestore)\n\t\t\t\t{\n\t\t\t\t\tconsole.warn('BX.LiveChatRestClient: your auth-token has expired, send query with a new token');\n\n\t\t\t\t\tthis.queryAuthRestore = true;\n\t\t\t\t\tthis.restClient.callMethod(method, params, null, sendCallback, logTag).then(result => {\n\t\t\t\t\t\tthis.queryAuthRestore = false;\n\t\t\t\t\t\tpromise.fulfill(result);\n\t\t\t\t\t}).catch(result => {\n\t\t\t\t\t\tthis.queryAuthRestore = false;\n\t\t\t\t\t\tpromise.reject(result);\n\t\t\t\t\t});\n\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthis.queryAuthRestore = false;\n\t\t\tpromise.reject(result);\n\t\t});\n\n\t\treturn promise;\n\t};\n\n\tcallBatch(calls, callback, bHaltOnError, sendCallback, logTag)\n\t{\n\t\tlet resultCallback = (result) => {\n\t\t\tlet error = null;\n\t\t\tfor (let method in calls)\n\t\t\t{\n\t\t\t\tif (!calls.hasOwnProperty(method))\n\t\t\t\t{\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tlet error = result[method].error();\n\t\t\t\tif (error && error.ex.error == 'LIVECHAT_AUTH_WIDGET_USER')\n\t\t\t\t{\n\t\t\t\t\tthis.setAuthId(error.ex.hash);\n\t\t\t\t\tif (method === RestMethod.widgetUserRegister)\n\t\t\t\t\t{\n\t\t\t\t\t\tconsole.warn(`BX.LiveChatRestClient: ${error.ex.error_description} (${error.ex.error})`);\n\n\t\t\t\t\t\tthis.queryAuthRestore = false;\n\t\t\t\t\t\tcallback(result);\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (!this.queryAuthRestore)\n\t\t\t\t\t{\n\t\t\t\t\t\tconsole.warn('BX.LiveChatRestClient: your auth-token has expired, send query with a new token');\n\n\t\t\t\t\t\tthis.queryAuthRestore = true;\n\t\t\t\t\t\tthis.restClient.callBatch(calls, callback, bHaltOnError, sendCallback, logTag);\n\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthis.queryAuthRestore = false;\n\t\t\tcallback(result);\n\n\t\t\treturn true;\n\t\t};\n\n\t\treturn this.restClient.callBatch(calls, resultCallback, bHaltOnError, sendCallback, logTag);\n\t};\n}","/**\n * Bitrix Im mobile\n * Dialog application\n *\n * @package bitrix\n * @subpackage mobile\n * @copyright 2001-2020 Bitrix\n */\n\n// im\nimport 'im_call';\nimport 'im.debug';\nimport 'im.application.launch';\nimport 'im.component.call';\nimport { CallApplicationModel } from \"im.model\";\nimport { Controller } from 'im.controller';\nimport { Utils } from \"im.lib.utils\";\nimport { Cookie } from \"im.lib.cookie\";\nimport { LocalStorage } from \"im.lib.localstorage\";\nimport { Logger } from \"im.lib.logger\";\nimport { Clipboard } from 'im.lib.clipboard';\nimport { Uploader } from \"im.lib.uploader\";\nimport { Desktop } from \"im.lib.desktop\";\nimport {\n\tCallApplicationErrorCode,\n\tEventType,\n\tFileStatus,\n\tRestMethod as ImRestMethod,\n\tRestMethodHandler as ImRestMethodHandler\n} from \"im.const\";\n\n//ui\nimport 'ui.notification';\nimport 'ui.buttons';\nimport 'ui.progressround';\nimport 'ui.viewer';\nimport { VueVendorV2 } from \"ui.vue\";\nimport { VuexBuilder } from \"ui.vue.vuex\";\n\n// core\nimport {Loc} from \"main.core\";\nimport \"promise\";\nimport 'main.date';\nimport { Menu } from 'main.popup'\n\n// pull and rest\nimport { PullClient } from \"pull.client\";\nimport { ImCallPullHandler } from \"im.provider.pull\";\nimport { CallRestClient } from \"./utils/restclient\"\n\nclass CallApplication\n{\n\t/* region 01. Initialize */\n\tconstructor(params = {})\n\t{\n\t\tthis.inited = false;\n\t\tthis.dialogInited = false;\n\t\tthis.initPromise = new BX.Promise;\n\n\t\tthis.params = params;\n\t\tthis.params.userId = this.params.userId? parseInt(this.params.userId): 0;\n\t\tthis.params.siteId = this.params.siteId || '';\n\t\tthis.params.chatId = this.params.chatId? parseInt(this.params.chatId): 0;\n\t\tthis.params.dialogId = this.params.chatId? 'chat'+this.params.chatId.toString(): '0';\n\t\tthis.params.passwordRequired = !!this.params.passwordRequired;\n\n\t\tthis.messagesQueue = [];\n\n\t\tthis.template = null;\n\t\tthis.rootNode = this.params.node || document.createElement('div');\n\n\t\tthis.event = new VueVendorV2;\n\n\t\tthis.callContainer = null;\n\t\tthis.callView = null;\n\t\tthis.preCall = null;\n\t\tthis.currentCall = null;\n\t\tthis.videoStrategy = null;\n\n\t\tthis.featureConfig = {};\n\t\t(params.featureConfig || []).forEach(limit => {\n\t\t\tthis.featureConfig[limit.id] = limit;\n\t\t});\n\n\t\tthis.localVideoStream = null;\n\n\t\tthis.conferencePageTagInterval = null;\n\n\t\tthis.onCallUserInvitedHandler = this.onCallUserInvited.bind(this);\n\t\tthis.onCallUserStateChangedHandler = this.onCallUserStateChanged.bind(this);\n\t\tthis.onCallUserMicrophoneStateHandler = this.onCallUserMicrophoneState.bind(this);\n\t\tthis.onCallLocalMediaReceivedHandler = BX.debounce(this.onCallLocalMediaReceived.bind(this), 1000);\n\t\tthis.onCallUserStreamReceivedHandler = this.onCallUserStreamReceived.bind(this);\n\t\tthis.onCallUserStreamRemovedHandler = this.onCallUserStreamRemoved.bind(this);\n\t\tthis.onCallUserVoiceStartedHandler = this.onCallUserVoiceStarted.bind(this);\n\t\tthis.onCallUserVoiceStoppedHandler = this.onCallUserVoiceStopped.bind(this);\n\t\tthis.onCallUserScreenStateHandler = this.onCallUserScreenState.bind(this);\n\t\tthis.onCallUserRecordStateHandler = this.onCallUserRecordState.bind(this);\n\t\tthis.onCallUserFloorRequestHandler = this.onCallUserFloorRequest.bind(this);\n\t\tthis._onCallJoinHandler = this.onCallJoin.bind(this);\n\t\tthis.onCallLeaveHandler = this.onCallLeave.bind(this);\n\t\tthis.onCallDestroyHandler = this.onCallDestroy.bind(this);\n\n\t\tthis.onPreCallDestroyHandler = this.onPreCallDestroy.bind(this);\n\t\tthis.onPreCallUserStateChangedHandler = this.onPreCallUserStateChanged.bind(this);\n\n\t\tthis.waitingForCallStatus = false;\n\t\tthis.waitingForCallStatusTimeout = null;\n\t\tthis.callEventReceived = false;\n\t\tthis.callRecordState = BX.Call.View.RecordState.Stopped;\n\t\tthis.callRecordType = BX.Call.View.RecordType.None;\n\n\t\tthis.desktop = null;\n\t\tthis.floatingScreenShareWindow = null;\n\n\t\tthis.initDesktopEvents()\n\t\t\t.then(() => this.initRestClient())\n\t\t\t.then(() => this.subscribePreCallChanges())\n\t\t\t.then(() => this.initPullClient())\n\t\t\t.then(() => this.initCore())\n\t\t\t.then(() => this.setModelData())\n\t\t\t.then(() => this.initComponent())\n\t\t\t.then(() => this.initCallInterface())\n\t\t\t.then(() => this.initUploader())\n\t\t\t.then(() => this.initUserComplete())\n\t\t\t.catch(() => {})\n\t\t;\n\t}\n\n\tinitDesktopEvents()\n\t{\n\t\tif (!Utils.platform.isBitrixDesktop())\n\t\t{\n\t\t\treturn new Promise((resolve, reject) => resolve());\n\t\t}\n\n\t\tthis.desktop = new Desktop();\n\t\tthis.floatingScreenShareWindow = new BX.Call.FloatingScreenShare({\n\t\t\tdesktop: this.desktop,\n\t\t\tonBackToCallClick: this.onFloatingScreenShareBackToCallClick.bind(this),\n\t\t\tonStopSharingClick: this.onFloatingScreenShareStopClick.bind(this)\n\t\t});\n\n\t\tif (this.floatingScreenShareWindow)\n\t\t{\n\t\t\tthis.desktop.addCustomEvent(\"BXScreenMediaSharing\", (id, title, x, y, width, height, app) =>\n\t\t\t{\n\t\t\t\tthis.floatingScreenShareWindow.setSharingData({\n\t\t\t\t\ttitle: title,\n\t\t\t\t\tx: x,\n\t\t\t\t\ty: y,\n\t\t\t\t\twidth: width,\n\t\t\t\t\theight: height,\n\t\t\t\t\tapp: app\n\t\t\t\t}).then(() => {\n\t\t\t\t\tthis.floatingScreenShareWindow.show();\n\t\t\t\t}).catch(error => {\n\t\t\t\t\tLogger.log('setSharingData error', error);\n\t\t\t\t});\n\t\t\t});\n\n\t\t\twindow.addEventListener('focus', () => {\n\t\t\t\tthis.onWindowFocus();\n\t\t\t});\n\n\t\t\twindow.addEventListener('blur', () => {\n\t\t\t\tthis.onWindowBlur();\n\t\t\t});\n\t\t}\n\n\t\tif (this.desktop.isReady() && !(opener||top).BX.desktop)\n\t\t{\n\t\t\tBXDesktopSystem.CloseTab(location.href);\n\t\t}\n\n\t\treturn new Promise((resolve, reject) => resolve());\n\t}\n\n\tinitRestClient()\n\t{\n\t\tthis.restClient = new CallRestClient({endpoint: this.getHost()+'/rest'});\n\t\tthis.restClient.setConfId(this.params.conferenceId);\n\n\t\treturn new Promise((resolve, reject) => resolve());\n\t}\n\n\tinitPullClient()\n\t{\n\t\tif (!this.params.isIntranetOrExtranet)\n\t\t{\n\t\t\tthis.pullClient = new PullClient({\n\t\t\t\tserverEnabled: true,\n\t\t\t\tuserId: this.params.userId,\n\t\t\t\tsiteId: this.params.siteId,\n\t\t\t\trestClient: this.restClient,\n\t\t\t\tskipStorageInit: true,\n\t\t\t\tconfigTimestamp: 0,\n\t\t\t\tskipCheckRevision: true,\n\t\t\t\tgetPublicListMethod: 'im.call.channel.public.list'\n\t\t\t});\n\n\t\t\treturn new Promise((resolve, reject) => resolve());\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis.pullClient = BX.PULL;\n\n\t\t\treturn this.pullClient.start().then(() => {\n\t\t\t\treturn new Promise((resolve, reject) => resolve());\n\t\t\t});\n\t\t}\n\t}\n\n\tinitPullHandlers()\n\t{\n\t\tthis.pullClient.subscribe(\n\t\t\tnew ImCallPullHandler({\n\t\t\t\tstore: this.controller.getStore(),\n\t\t\t\tapplication: this,\n\t\t\t\tcontroller: this.controller,\n\t\t\t})\n\t\t);\n\n\t\treturn new Promise((resolve, reject) => resolve());\n\t}\n\n\tinitCore()\n\t{\n\t\tthis.controller = new Controller({\n\t\t\thost: this.getHost(),\n\t\t\tsiteId: this.params.siteId,\n\t\t\tuserId: this.params.userId,\n\t\t\tlanguageId: this.params.language,\n\t\t\tpull: {client: this.pullClient},\n\t\t\trest: {client: this.restClient},\n\t\t\t//localize: this.localize,\n\t\t\tvuexBuilder: {\n\t\t\t\tdatabase: !Utils.browser.isIe(),\n\t\t\t\tdatabaseName: 'imol/call',\n\t\t\t\tdatabaseType: VuexBuilder.DatabaseType.localStorage,\n\t\t\t\tmodels: [\n\t\t\t\t\tCallApplicationModel.create()\n\t\t\t\t],\n\t\t\t}\n\t\t});\n\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tthis.controller.ready().then(() => resolve());\n\t\t});\n\t}\n\n\tinitComponent()\n\t{\n\t\tif (this.getStartupErrorCode())\n\t\t{\n\t\t\tthis.setError(this.getStartupErrorCode());\n\t\t}\n\n\t\treturn this.controller.createVue(this, {\n\t\t\tel: this.rootNode,\n\t\t\tdata: () =>\n\t\t\t{\n\t\t\t\treturn {\n\t\t\t\t\tchatId: this.getChatId(),\n\t\t\t\t\tdialogId: this.getDialogId()\n\t\t\t\t};\n\t\t\t},\n\t\t\ttemplate: `<bx-im-component-call :chatId=\"chatId\"/>`,\n\t\t})\n\t\t.then(vue => {\n\t\t\tthis.template = vue;\n\n\t\t\treturn new Promise((resolve, reject) => resolve());\n\t\t});\n\t}\n\n\tsetModelData()\n\t{\n\t\tthis.controller.getStore().commit('application/set', {\n\t\t\tdialog: {\n\t\t\t\tchatId: this.getChatId(),\n\t\t\t\tdialogId: this.getDialogId()\n\t\t\t},\n\t\t});\n\n\t\tif (this.params.passwordRequired)\n\t\t{\n\t\t\tthis.controller.getStore().commit('callApplication/common', {\n\t\t\t\tpassChecked: false,\n\t\t\t});\n\t\t}\n\n\t\tif (this.params.conferenceTitle)\n\t\t{\n\t\t\tthis.controller.getStore().commit('callApplication/setConferenceTitle', {\n\t\t\t\tconferenceTitle: this.params.conferenceTitle,\n\t\t\t});\n\t\t}\n\n\t\tif (this.params.alias)\n\t\t{\n\t\t\tthis.controller.getStore().commit('callApplication/setAlias', {\n\t\t\t\talias: this.params.alias,\n\t\t\t});\n\t\t}\n\n\t\treturn new Promise((resolve, reject) => resolve());\n\t}\n\n\tinitCallInterface()\n\t{\n\t\tthis.callContainer = document.getElementById('bx-im-component-call-container');\n\n\t\tthis.callView = new BX.Call.View({\n\t\t\tcontainer: this.callContainer,\n\t\t\tshowChatButtons: true,\n\t\t\tshowShareButton: this.getFeatureState('screenSharing') !== CallApplication.FeatureState.Disabled,\n\t\t\tshowRecordButton: this.getFeatureState('record') !== CallApplication.FeatureState.Disabled,\n\t\t\tuserLimit: BX.Call.Util.getUserLimit(),\n\t\t\tisIntranetOrExtranet: !!this.params.isIntranetOrExtranet,\n\t\t\tlanguage: this.params.language,\n\t\t\tlayout: Utils.device.isMobile() ? BX.Call.View.Layout.Mobile : BX.Call.View.Layout.Centered,\n\t\t\tuiState: BX.Call.View.UiState.Preparing,\n\t\t\tblockedButtons: ['camera', 'microphone', 'chat', 'floorRequest', 'screen', 'record'],\n\t\t\tlocalUserState: BX.Call.UserState.Idle,\n\t\t\thiddenButtons: this.params.isIntranetOrExtranet? []: ['record']\n\t\t});\n\n\t\tthis.callView.subscribe(BX.Call.View.Event.onButtonClick, this.onCallButtonClick.bind(this));\n\t\tthis.callView.subscribe(BX.Call.View.Event.onReplaceCamera, this.onCallReplaceCamera.bind(this));\n\t\tthis.callView.subscribe(BX.Call.View.Event.onReplaceMicrophone, this.onCallReplaceMicrophone.bind(this));\n\t\tthis.callView.subscribe(BX.Call.View.Event.onReplaceSpeaker, this.onCallReplaceSpeaker.bind(this));\n\t\tthis.callView.subscribe(BX.Call.View.Event.onChangeHdVideo, this.onCallViewChangeHdVideo.bind(this));\n\t\tthis.callView.subscribe(BX.Call.View.Event.onChangeMicAutoParams, this.onCallViewChangeMicAutoParams.bind(this));\n\t\tthis.callView.subscribe(BX.Call.View.Event.onUserNameMouseOver, this.onCallViewUserNameMouseOver.bind(this));\n\t\tthis.callView.subscribe(BX.Call.View.Event.onUserNameMouseOut, this.onCallViewUserNameMouseOut.bind(this));\n\t\tthis.callView.subscribe(BX.Call.View.Event.onUserNameClick, this.onCallViewUserNameClick.bind(this));\n\t\tthis.callView.subscribe(BX.Call.View.Event.onUserChangeNameClick, this.onCallViewUserChangeNameClick.bind(this));\n\n\t\tthis.callView.blockAddUser();\n\t\tthis.callView.blockHistoryButton();\n\n\t\tif (!Utils.device.isMobile())\n\t\t{\n\t\t\tthis.callView.show();\n\t\t}\n\n\t\treturn new Promise((resolve, reject) => resolve());\n\t}\n\n\tinitUser()\n\t{\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tif (this.getStartupErrorCode() || !this.controller.getStore().state.callApplication.common.passChecked)\n\t\t\t{\n\t\t\t\treturn reject();\n\t\t\t}\n\n\t\t\tif (this.params.userId > 0)\n\t\t\t{\n\t\t\t\tthis.controller.setUserId(this.params.userId);\n\n\t\t\t\tif (this.params.isIntranetOrExtranet)\n\t\t\t\t{\n\t\t\t\t\tthis.switchToSessAuth();\n\n\t\t\t\t\tthis.controller.getStore().commit('callApplication/user', {\n\t\t\t\t\t\tid: this.params.userId\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tlet hashFromCookie = this.getUserHashCookie();\n\t\t\t\t\tif (hashFromCookie)\n\t\t\t\t\t{\n\t\t\t\t\t\tthis.restClient.setAuthId(hashFromCookie);\n\t\t\t\t\t\tthis.restClient.setChatId(this.getChatId());\n\t\t\t\t\t\tthis.controller.getStore().commit('callApplication/user', {\n\t\t\t\t\t\t\tid: this.params.userId,\n\t\t\t\t\t\t\thash: hashFromCookie\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\tthis.pullClient.start();\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tthis.controller.getStore().commit('callApplication/common', {\n\t\t\t\t\tinited: true\n\t\t\t\t});\n\n\t\t\t\treturn resolve();\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tthis.restClient.setAuthId('guest');\n\t\t\t\tthis.restClient.setChatId(this.getChatId());\n\n\t\t\t\tif (typeof BX.SidePanel !== 'undefined')\n\t\t\t\t{\n\t\t\t\t\tBX.SidePanel.Instance.disableAnchorBinding();\n\t\t\t\t}\n\n\t\t\t\treturn this.restClient.callMethod('im.call.user.register', {\n\t\t\t\t\talias: this.params.alias,\n\t\t\t\t\tuser_hash: this.getUserHashCookie() || '',\n\t\t\t\t}).then(result =>\n\t\t\t\t{\n\t\t\t\t\tBX.message['USER_ID'] = result.data().id;\n\t\t\t\t\tthis.controller.getStore().commit('callApplication/user', {\n\t\t\t\t\t\tid: result.data().id,\n\t\t\t\t\t\thash: result.data().hash\n\t\t\t\t\t});\n\n\t\t\t\t\tthis.controller.setUserId(result.data().id);\n\t\t\t\t\tthis.callView.setLocalUserId(result.data().id);\n\n\t\t\t\t\tif (result.data().created)\n\t\t\t\t\t{\n\t\t\t\t\t\tthis.params.userCount++;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.controller.getStore().commit('callApplication/common', {\n\t\t\t\t\t\tinited: true\n\t\t\t\t\t});\n\n\t\t\t\t\tthis.restClient.setAuthId(result.data().hash);\n\t\t\t\t\tthis.pullClient.start();\n\n\t\t\t\t\treturn resolve();\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\t}\n\n\tinitUploader()\n\t{\n\t\tthis.uploader = new Uploader({\n\t\t\tgeneratePreview: true,\n\t\t\tsender: {\n\t\t\t\tactionUploadChunk: 'im.call.disk.upload',\n\t\t\t\tactionCommitFile: 'im.call.disk.commit',\n\t\t\t}\n\t\t});\n\n\t\tthis.uploader.subscribe('onStartUpload', event => {\n\t\t\tconst eventData = event.getData();\n\t\t\tLogger.log('Uploader: onStartUpload', eventData);\n\n\t\t\tthis.controller.getStore().dispatch('files/update', {\n\t\t\t\tchatId: this.getChatId(),\n\t\t\t\tid: eventData.id,\n\t\t\t\tfields: {\n\t\t\t\t\tstatus: FileStatus.upload,\n\t\t\t\t\tprogress: 0\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\n\t\tthis.uploader.subscribe('onProgress', (event) => {\n\t\t\tconst eventData = event.getData();\n\t\t\tLogger.log('Uploader: onProgress', eventData);\n\n\t\t\tthis.controller.getStore().dispatch('files/update', {\n\t\t\t\tchatId: this.getChatId(),\n\t\t\t\tid: eventData.id,\n\t\t\t\tfields: {\n\t\t\t\t\tstatus: FileStatus.upload,\n\t\t\t\t\tprogress: (eventData.progress === 100 ? 99 : eventData.progress),\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\n\t\tthis.uploader.subscribe('onSelectFile', (event) => {\n\t\t\tconst eventData = event.getData();\n\t\t\tconst file = eventData.file;\n\t\t\tLogger.log('Uploader: onSelectFile', eventData);\n\n\t\t\tlet fileType = 'file';\n\t\t\tif (file.type.toString().startsWith('image'))\n\t\t\t{\n\t\t\t\tfileType = 'image';\n\t\t\t}\n\t\t\telse if (file.type.toString().startsWith('video'))\n\t\t\t{\n\t\t\t\tfileType = 'video';\n\t\t\t}\n\n\t\t\tthis.controller.getStore().dispatch('files/add', {\n\t\t\t\tchatId: this.getChatId(),\n\t\t\t\tauthorId: this.controller.getUserId(),\n\t\t\t\tname: file.name,\n\t\t\t\ttype: fileType,\n\t\t\t\textension: file.name.split('.').splice(-1)[0],\n\t\t\t\tsize: file.size,\n\t\t\t\timage: !eventData.previewData? false: {\n\t\t\t\t\twidth: eventData.previewDataWidth,\n\t\t\t\t\theight: eventData.previewDataHeight,\n\t\t\t\t},\n\t\t\t\tstatus: FileStatus.wait,\n\t\t\t\tprogress: 0,\n\t\t\t\tauthorName: this.controller.application.getCurrentUser().name,\n\t\t\t\turlPreview: eventData.previewData? URL.createObjectURL(eventData.previewData) : \"\",\n\t\t\t}).then(fileId => {\n\t\t\t\tthis.addMessage('', {id: fileId, source: eventData, previewBlob: eventData.previewData})\n\t\t\t});\n\t\t});\n\n\t\tthis.uploader.subscribe('onComplete', (event) => {\n\t\t\tconst eventData = event.getData();\n\t\t\tLogger.log('Uploader: onComplete', eventData);\n\n\t\t\tthis.controller.getStore().dispatch('files/update', {\n\t\t\t\tchatId: this.getChatId(),\n\t\t\t\tid: eventData.id,\n\t\t\t\tfields: {\n\t\t\t\t\tstatus: FileStatus.wait,\n\t\t\t\t\tprogress: 100\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tconst message = this.messagesQueue.find(message => {\n\t\t\t\tif (message.file)\n\t\t\t\t{\n\t\t\t\t\treturn message.file.id === eventData.id;\n\t\t\t\t}\n\n\t\t\t\treturn false;\n\t\t\t});\n\t\t\tconst fileType = this.controller.getStore().getters['files/get'](this.getChatId(), message.file.id, true).type;\n\n\t\t\tthis.fileCommit({\n\t\t\t\tchatId: this.getChatId(),\n\t\t\t\tuploadId: eventData.result.data.file.id,\n\t\t\t\tmessageText: message.text,\n\t\t\t\tmessageId: message.id,\n\t\t\t\tfileId: message.file.id,\n\t\t\t\tfileType\n\t\t\t}, message);\n\t\t});\n\n\t\tthis.uploader.subscribe('onUploadFileError', (event) => {\n\t\t\tconst eventData = event.getData();\n\t\t\tLogger.log('Uploader: onUploadFileError', eventData);\n\n\t\t\tconst message = this.messagesQueue.find(message => {\n\t\t\t\tif (message.file)\n\t\t\t\t{\n\t\t\t\t\treturn message.file.id === eventData.id;\n\t\t\t\t}\n\n\t\t\t\treturn false;\n\t\t\t});\n\n\t\t\tthis.fileError(this.getChatId(), message.file.id, message.id);\n\t\t});\n\n\t\tthis.uploader.subscribe('onCreateFileError', (event) => {\n\t\t\tconst eventData = event.getData();\n\t\t\tLogger.log('Uploader: onCreateFileError', eventData);\n\n\t\t\tconst message = this.messagesQueue.find(message => {\n\t\t\t\tif (message.file)\n\t\t\t\t{\n\t\t\t\t\treturn message.file.id === eventData.id;\n\t\t\t\t}\n\n\t\t\t\treturn false;\n\t\t\t});\n\n\t\t\tthis.fileError(this.getChatId(), message.file.id, message.id);\n\t\t});\n\n\t\treturn new Promise((resolve, reject) => resolve());\n\t}\n\n\tinitUserComplete()\n\t{\n\t\treturn this.initUser()\n\t\t\t.then(() => this.startPageTagInterval())\n\t\t\t.then(() => this.tryJoinExistingCall())\n\t\t\t.then(() => this.initCall())\n\t\t\t.then(() => this.initPullHandlers())\n\t\t\t.then(() => this.subscribeToStoreChanges())\n\t\t\t.then(() => this.initComplete())\n\t\t\t.catch(() => {});\n\t}\n\n\tstartPageTagInterval()\n\t{\n\t\treturn new Promise((resolve) => {\n\t\t\tclearInterval(this.conferencePageTagInterval);\n\t\t\tthis.conferencePageTagInterval = setInterval(() => {\n\t\t\t\tLocalStorage.set(this.params.siteId, this.params.userId, BX.CallEngine.getConferencePageTag(this.params.dialogId), \"Y\", 2);\n\t\t\t}, 1000);\n\t\t\tresolve();\n\t\t})\n\t}\n\n\ttryJoinExistingCall()\n\t{\n\t\tthis.restClient.callMethod(\"im.call.tryJoinCall\", {\n\t\t\tentityType: 'chat',\n\t\t\tentityId: this.params.dialogId,\n\t\t\tprovider: BX.Call.Provider.Voximplant,\n\t\t\ttype: BX.Call.Type.Permanent\n\t\t})\n\t\t\t.then(result => {\n\t\t\t\tLogger.warn('tryJoinCall', result.data());\n\t\t\t\tif (result.data().success)\n\t\t\t\t{\n\t\t\t\t\tthis.waitingForCallStatus = true;\n\t\t\t\t\tthis.waitingForCallStatusTimeout = setTimeout(() => {\n\t\t\t\t\t\tthis.waitingForCallStatus = false;\n\t\t\t\t\t\tif (!this.callEventReceived)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tthis.setConferenceStatus(false);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthis.callEventReceived = false;\n\t\t\t\t\t}, 5000);\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tthis.setConferenceStatus(false);\n\t\t\t\t}\n\t\t\t})\n\t}\n\n\tsubscribePreCallChanges()\n\t{\n\t\tBX.addCustomEvent(window, 'CallEvents::callCreated', this.onCallCreated.bind(this));\n\t}\n\n\tonCallCreated(e)\n\t{\n\t\tLogger.warn('we got event onCallCreated', e);\n\t\tif(this.preCall || this.currentCall)\n\t\t{\n\t\t\treturn;\n\t\t}\n\t\tlet call = e.call;\n\t\tif (call.associatedEntity.type === 'chat' && call.associatedEntity.id === this.params.dialogId)\n\t\t{\n\t\t\tthis.preCall = e.call;\n\t\t\tthis.updatePreCallCounter();\n\t\t\tthis.preCall.addEventListener(BX.Call.Event.onUserStateChanged, this.onPreCallUserStateChangedHandler);\n\t\t\tthis.preCall.addEventListener(BX.Call.Event.onDestroy, this.onPreCallDestroyHandler);\n\n\t\t\tif (this.waitingForCallStatus)\n\t\t\t{\n\t\t\t\tthis.callEventReceived = true;\n\t\t\t}\n\t\t\tthis.setConferenceStatus(true);\n\t\t\tthis.setConferenceStartDate(e.call.startDate);\n\t\t}\n\n\t\tconst userReadyToJoin = this.controller.getStore().state.callApplication.common.userReadyToJoin;\n\t\tif (userReadyToJoin)\n\t\t{\n\t\t\tconst videoEnabled = this.controller.getStore().state.callApplication.common.joinWithVideo;\n\t\t\tsetTimeout(() => {\n\t\t\t\tBX.Call.Hardware.init().then(() => {\n\t\t\t\t\tthis.startCall(videoEnabled);\n\t\t\t\t});\n\t\t\t}, 1000);\n\t\t}\n\t}\n\n\treleasePreCall()\n\t{\n\t\tif(this.preCall)\n\t\t{\n\t\t\tthis.preCall.removeEventListener(BX.Call.Event.onUserStateChanged, this.onPreCallUserStateChangedHandler);\n\t\t\tthis.preCall.removeEventListener(BX.Call.Event.onDestroy, this.onPreCallDestroyHandler);\n\t\t\tthis.preCall = null;\n\t\t}\n\t}\n\n\tonPreCallDestroy(e)\n\t{\n\t\tif (this.waitingForCallStatusTimeout)\n\t\t{\n\t\t\tclearTimeout(this.waitingForCallStatusTimeout);\n\t\t}\n\t\tthis.setConferenceStatus(false);\n\n\t\tthis.releasePreCall();\n\t}\n\n\tonPreCallUserStateChanged(e)\n\t{\n\t\tthis.updatePreCallCounter();\n\t}\n\n\tupdatePreCallCounter()\n\t{\n\t\tif(this.preCall)\n\t\t{\n\t\t\tthis.controller.getStore().commit('callApplication/common', {\n\t\t\t\tuserInCallCount: this.preCall.getParticipatingUsers().length\n\t\t\t});\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis.controller.getStore().commit('callApplication/common', {\n\t\t\t\tuserInCallCount: 0\n\t\t\t});\n\t\t}\n\t}\n\n\tinitCall()\n\t{\n\t\tBX.CallEngine.setRestClient(this.restClient);\n\t\tBX.CallEngine.setPullClient(this.pullClient);\n\t\tBX.CallEngine.setCurrentUserId(this.controller.getUserId());\n\t\tthis.callView.unblockButtons(['chat']);\n\t}\n\n\tcreateVideoStrategy()\n\t{\n\t\tif (this.videoStrategy)\n\t\t{\n\t\t\tthis.videoStrategy.destroy();\n\t\t}\n\n\t\tvar strategyType = Utils.device.isMobile() ? BX.Call.VideoStrategy.Type.OnlySpeaker : BX.Call.VideoStrategy.Type.AllowAll;\n\n\t\tthis.videoStrategy = new BX.Call.VideoStrategy({\n\t\t\tcall: this.currentCall,\n\t\t\tcallView: this.callView,\n\t\t\tstrategyType: strategyType\n\t\t});\n\t}\n\n\tremoveVideoStrategy()\n\t{\n\t\tif (this.videoStrategy)\n\t\t{\n\t\t\tthis.videoStrategy.destroy();\n\t\t}\n\t\tthis.videoStrategy = null;\n\t}\n\n\tsubscribeToStoreChanges()\n\t{\n\t\tthis.controller.getStore().subscribe((mutation, state) => {\n\t\t\tconst { payload, type } = mutation;\n\t\t\tif (type === 'users/update' && payload.fields.name)\n\t\t\t{\n\t\t\t\tif(this.callView)\n\t\t\t\t{\n\t\t\t\t\tthis.callView.updateUserData(\n\t\t\t\t\t\t{[payload.id]: {name: payload.fields.name}}\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t\telse if (type === 'dialogues/update' && typeof payload.fields.counter === 'number')\n\t\t\t{\n\t\t\t\tif(this.callView)\n\t\t\t\t{\n\t\t\t\t\tthis.callView.setButtonCounter('chat', payload.fields.counter);\n\t\t\t\t}\n\t\t\t}\n\t\t\telse if (type === 'dialogues/update' && payload.fields.name)\n\t\t\t{\n\t\t\t\tdocument.title = payload.fields.name;\n\t\t\t}\n\t\t});\n\t}\n\n\tinitComplete()\n\t{\n\t\tthis.controller.getStore().commit('callApplication/common', {\n\t\t\tuserCount: this.params.userCount\n\t\t});\n\n\t\tif (this.controller.getStore().state.callApplication.common.inited)\n\t\t{\n\t\t\tthis.inited = true;\n\t\t\tthis.initPromise.resolve(this);\n\t\t}\n\t}\n\n\tready()\n\t{\n\t\tif (this.inited)\n\t\t{\n\t\t\tlet promise = new BX.Promise;\n\t\t\tpromise.resolve(this);\n\n\t\t\treturn promise;\n\t\t}\n\n\t\treturn this.initPromise;\n\t}\n\n\trestart()\n\t{\n\t\tconsole.trace(\"restart\");\n\t\treturn;\n\t\tif(this.currentCall)\n\t\t{\n\t\t\tthis.removeCallEvents();\n\t\t\tthis.currentCall = null;\n\t\t}\n\n\t\tif(this.callView)\n\t\t{\n\t\t\tthis.callView.releaseLocalMedia();\n\t\t\tthis.callView.close();\n\t\t\tthis.callView.destroy();\n\t\t\tthis.callView = null;\n\t\t}\n\t\tthis.initCallInterface();\n\t\tthis.initCall();\n\t\tthis.controller.getStore().commit('callApplication/returnToPreparation');\n\t}\n\n/* endregion 01. Initialize */\n\n/* region 02. Methods */\n\n\t/* region 01. Call methods */\n\tinitHardware()\n\t{\n\t\treturn new Promise((resolve, reject) =>\n\t\t{\n\t\t\tBX.Call.Hardware.init().then(() => {\n\t\t\t\tif (Object.values(BX.Call.Hardware.microphoneList).length === 0)\n\t\t\t\t{\n\t\t\t\t\tthis.setError(CallApplicationErrorCode.missingMicrophone);\n\t\t\t\t}\n\t\t\t\tthis.callView.unblockButtons([\"camera\", \"microphone\"]);\n\t\t\t\tthis.callView.enableMediaSelection();\n\t\t\t\tresolve();\n\t\t\t}).catch(error => {\n\t\t\t\tif (error === 'NO_WEBRTC' && this.isHttps())\n\t\t\t\t{\n\t\t\t\t\tthis.setError(CallApplicationErrorCode.unsupportedBrowser);\n\t\t\t\t}\n\t\t\t\telse if (error === 'NO_WEBRTC' && !this.isHttps())\n\t\t\t\t{\n\t\t\t\t\tthis.setError(CallApplicationErrorCode.unsafeConnection);\n\t\t\t\t}\n\t\t\t\treject(error)\n\t\t\t})\n\t\t});\n\t}\n\n\tstartCall(videoEnabled)\n\t{\n\t\tconst provider = BX.Call.Provider.Voximplant;\n\n\t\tif (Utils.device.isMobile())\n\t\t{\n\t\t\tthis.callView.show();\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis.callView.setLayout(BX.Call.View.Layout.Grid);\n\t\t}\n\n\t\tthis.callView.setUiState(BX.Call.View.UiState.Calling);\n\t\tthis.callView.setLocalUserState(BX.Call.UserState.Connected);\n\n\t\tif (this.localVideoStream)\n\t\t{\n\t\t\tif (videoEnabled)\n\t\t\t{\n\t\t\t\tthis.callView.setLocalStream(this.localVideoStream, true);\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tthis.stopLocalVideoStream();\n\t\t\t}\n\t\t}\n\t\tif (!videoEnabled)\n\t\t{\n\t\t\tthis.callView.setCameraState(false);\n\t\t}\n\t\tthis.controller.getStore().commit('callApplication/startCall');\n\n\t\tBX.Call.Engine.getInstance().createCall({\n\t\t\ttype: BX.Call.Type.Permanent,\n\t\t\tentityType: 'chat',\n\t\t\tentityId: this.getDialogId(),\n\t\t\tprovider: provider,\n\t\t\tvideoEnabled: videoEnabled,\n\t\t\tenableMicAutoParameters: BX.Call.Hardware.enableMicAutoParameters,\n\t\t\tjoinExisting: true\n\t\t}).then(e => {\n\t\t\tLogger.warn('call created', e);\n\n\t\t\tthis.currentCall = e.call;\n\t\t\t//this.currentCall.useHdVideo(BX.Call.Hardware.preferHdQuality);\n\t\t\tthis.currentCall.useHdVideo(true);\n\t\t\tif(BX.Call.Hardware.defaultMicrophone)\n\t\t\t{\n\t\t\t\tthis.currentCall.setMicrophoneId(BX.Call.Hardware.defaultMicrophone);\n\t\t\t}\n\t\t\tif(BX.Call.Hardware.defaultCamera)\n\t\t\t{\n\t\t\t\tthis.currentCall.setCameraId(BX.Call.Hardware.defaultCamera);\n\t\t\t}\n\n\t\t\tif(!Utils.device.isMobile())\n\t\t\t{\n\t\t\t\tthis.callView.setLayout(BX.Call.View.Layout.Grid);\n\t\t\t}\n\t\t\tthis.callView.appendUsers(this.currentCall.getUsers());\n\t\t\tBX.Call.Util.getUsers(this.currentCall.id, this.getCallUsers(true)).then(userData => {\n\t\t\t\tthis.callView.updateUserData(userData)\n\t\t\t});\n\t\t\tthis.releasePreCall();\n\t\t\tthis.bindCallEvents();\n\n\t\t\tif(this.callView.isMuted)\n\t\t\t{\n\t\t\t\tthis.currentCall.setMuted(true);\n\t\t\t}\n\t\t\tif(e.isNew)\n\t\t\t{\n\t\t\t\tthis.currentCall.setVideoEnabled(videoEnabled);\n\t\t\t\tthis.currentCall.inviteUsers();\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tthis.currentCall.answer({\n\t\t\t\t\tuseVideo: videoEnabled\n\t\t\t\t});\n\t\t\t}\n\n\t\t}).catch(e => {\n\t\t\tLogger.warn('creating call error', e);\n\t\t});\n\t}\n\n\tendCall()\n\t{\n\t\tif (this.currentCall)\n\t\t{\n\t\t\tthis.removeCallEvents();\n\t\t\tthis.currentCall.hangup();\n\t\t}\n\n\t\tif (this.isRecording())\n\t\t{\n\t\t\tBXDesktopSystem.CallRecordStop();\n\t\t}\n\t\tthis.callRecordState = BX.Call.View.RecordState.Stopped;\n\t\tthis.callRecordType = BX.Call.View.RecordType.None;\n\t\tif (this.callRecordMenu)\n\t\t{\n\t\t\tthis.callRecordMenu.close();\n\t\t}\n\n\t\tif (Utils.platform.isBitrixDesktop())\n\t\t{\n\t\t\tthis.floatingScreenShareWindow.destroy();\n\t\t\tthis.floatingScreenShareWindow = null;\n\t\t\twindow.close();\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis.callView.releaseLocalMedia();\n\t\t\tthis.callView.close();\n\t\t\tthis.setError(CallApplicationErrorCode.userLeftCall);\n\t\t\tthis.controller.getStore().commit('callApplication/endCall');\n\t\t}\n\t}\n\n\tkickFromCall()\n\t{\n\t\tthis.setError(CallApplicationErrorCode.kickedFromCall);\n\t\tthis.pullClient.disconnect();\n\t\tthis.endCall();\n\t}\n\n\tgetCallUsers(includeSelf)\n\t{\n\t\tlet result = Object.keys(this.currentCall.getUsers());\n\t\tif (includeSelf)\n\t\t{\n\t\t\tresult.push(this.currentCall.userId);\n\t\t}\n\t\treturn result;\n\t}\n\n\tsetLocalVideoStream(stream)\n\t{\n\t\tthis.localVideoStream = stream;\n\t}\n\n\tstopLocalVideoStream()\n\t{\n\t\tif (this.localVideoStream)\n\t\t{\n\t\t\tthis.localVideoStream.getTracks().forEach(tr => tr.stop());\n\t\t}\n\t\tthis.localVideoStream = null;\n\t}\n\n\tsetSelectedCamera(cameraId)\n\t{\n\t\tif (this.callView)\n\t\t{\n\t\t\tthis.callView.setCameraId(cameraId)\n\t\t}\n\t}\n\n\tsetSelectedMic(micId)\n\t{\n\t\tif (this.callView)\n\t\t{\n\t\t\tthis.callView.setMicrophoneId(micId);\n\t\t}\n\t}\n\n\tgetFeature(id)\n\t{\n\t\tif (typeof this.featureConfig[id] === 'undefined')\n\t\t{\n\t\t\treturn {\n\t\t\t\tid,\n\t\t\t\tstate: CallApplication.FeatureState.Enabled,\n\t\t\t\tarticleCode: ''\n\t\t\t}\n\t\t}\n\n\t\treturn this.featureConfig[id];\n\t}\n\n\tgetFeatureState(id)\n\t{\n\t\treturn this.getFeature(id).state;\n\t}\n\n\tcanRecord()\n\t{\n\t\treturn Utils.platform.isBitrixDesktop() && Utils.platform.getDesktopVersion() >= 54;\n\t}\n\n\tisRecording()\n\t{\n\t\treturn this.canRecord() && this.callRecordState != BX.Call.View.RecordState.Stopped;\n\t}\n\n\tshowFeatureLimitSlider(id)\n\t{\n\t\tconst articleCode = this.getFeature(id).articleCode;\n\t\tif (!articleCode || !window.BX.UI.InfoHelper)\n\t\t{\n\t\t\tconsole.warn('Limit article not found', id);\n\t\t\treturn false;\n\t\t}\n\n\t\twindow.BX.UI.InfoHelper.show(articleCode);\n\n\t\treturn true;\n\t}\n\n\tonCallReplaceCamera(event)\n\t{\n\t\tlet cameraId = event.data.deviceId;\n\t\tBX.Call.Hardware.defaultCamera = cameraId;\n\t\tif (this.currentCall)\n\t\t{\n\t\t\tthis.currentCall.setCameraId(cameraId);\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis.template.$emit('cameraSelected', cameraId);\n\t\t}\n\t}\n\n\tonCallReplaceMicrophone(event)\n\t{\n\t\tlet microphoneId = event.data.deviceId;\n\t\tBX.Call.Hardware.defaultMicrophone = microphoneId.deviceId;\n\t\tif (this.callView)\n\t\t{\n\t\t\tthis.callView.setMicrophoneId(microphoneId);\n\t\t}\n\t\tif (this.currentCall)\n\t\t{\n\t\t\tthis.currentCall.setMicrophoneId(microphoneId);\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis.template.$emit('micSelected', event.data.deviceId);\n\t\t}\n\t}\n\n\tonCallReplaceSpeaker(event)\n\t{\n\t\tBX.Call.Hardware.defaultSpeaker = event.data.deviceId;\n\t}\n\n\tonCallViewChangeHdVideo(event)\n\t{\n\t\tBX.Call.Hardware.preferHdQuality = event.data.allowHdVideo;\n\t}\n\n\tonCallViewChangeMicAutoParams(event)\n\t{\n\t\tBX.Call.Hardware.enableMicAutoParameters = event.data.allowMicAutoParams;\n\t}\n\n\tonCallViewUserNameMouseOver()\n\t{\n\t\tif (!this.isExternalUser())\n\t\t{\n\t\t\treturn false;\n\t\t}\n\n\t\tthis.callView.toggleLocalUserNameEditIcon();\n\t}\n\n\tonCallViewUserNameMouseOut()\n\t{\n\t\tif (!this.isExternalUser())\n\t\t{\n\t\t\treturn false;\n\t\t}\n\n\t\tthis.callView.toggleLocalUserNameEditIcon();\n\t}\n\n\tonCallViewUserNameClick()\n\t{\n\t\tif (!this.isExternalUser())\n\t\t{\n\t\t\treturn false;\n\t\t}\n\n\t\tthis.callView.toggleLocalUserNameInput();\n\t}\n\n\tonCallViewUserChangeNameClick(event)\n\t{\n\t\tif (!this.isExternalUser())\n\t\t{\n\t\t\treturn false;\n\t\t}\n\n\t\tif (Utils.device.isMobile())\n\t\t{\n\t\t\tthis.renameGuestMobile(event)\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis.renameGuest(event);\n\t\t}\n\t}\n\n\trenameGuest(event)\n\t{\n\t\tif (event.data.needToUpdate)\n\t\t{\n\t\t\tthis.callView.toggleLocalUserNameLoader();\n\t\t\tthis.setUserName(event.data.newName).then(() => {\n\t\t\t\tLogger.log('setting name to', event.data.newName);\n\t\t\t}).catch(error => {\n\t\t\t\tLogger.log('error setting name', error);\n\t\t\t});\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis.callView.toggleLocalUserNameInput();\n\t\t}\n\t}\n\n\trenameGuestMobile(event)\n\t{\n\t\tif (event.data.needToUpdate)\n\t\t{\n\t\t\tthis.callView.toggleRenameSliderInputLoader();\n\t\t\tthis.setUserName(event.data.newName).then(() => {\n\t\t\t\tLogger.log('setting name to', event.data.newName);\n\t\t\t\tif (this.callView.renameSlider)\n\t\t\t\t{\n\t\t\t\t\tthis.callView.renameSlider.close();\n\t\t\t\t}\n\t\t\t}).catch(error => {\n\t\t\t\tLogger.log('error setting name', error);\n\t\t\t});\n\t\t}\n\t\telse if (!event.data.needToUpdate && this.callView.renameSlider)\n\t\t{\n\t\t\tthis.callView.renameSlider.close();\n\t\t}\n\t}\n\n\tonCallButtonClick(event)\n\t{\n\t\tconst buttonName = event.data.buttonName;\n\t\tLogger.warn('Button clicked!', buttonName);\n\n\t\tconst handlers = {\n\t\t\thangup: this.onCallViewHangupButtonClick.bind(this),\n\t\t\tclose: this.onCallViewCloseButtonClick.bind(this),\n\t\t\t//inviteUser: this.onCallViewInviteUserButtonClick.bind(this),\n\t\t\ttoggleMute: this.onCallViewToggleMuteButtonClick.bind(this),\n\t\t\ttoggleScreenSharing: this.onCallViewToggleScreenSharingButtonClick.bind(this),\n\t\t\trecord: this.onCallViewRecordButtonClick.bind(this),\n\t\t\ttoggleVideo: this.onCallViewToggleVideoButtonClick.bind(this),\n\t\t\tshowChat: this.onCallViewShowChatButtonClick.bind(this),\n\t\t\tshare: this.onCallViewShareButtonClick.bind(this),\n\t\t\tfullscreen: this.onCallViewFullScreenButtonClick.bind(this),\n\t\t\tfloorRequest: this.onCallViewFloorRequestButtonClick.bind(this),\n\t\t};\n\n\t\tif(handlers[buttonName])\n\t\t{\n\t\t\thandlers[buttonName](event);\n\t\t}\n\t\telse\n\t\t{\n\t\t\tLogger.error('Button handler not found!', buttonName);\n\t\t}\n\t}\n\n\tonCallViewHangupButtonClick(e)\n\t{\n\t\tthis.endCall();\n\t}\n\n\tonCallViewCloseButtonClick(e)\n\t{\n\t\tthis.endCall();\n\t}\n\n\tonCallViewToggleMuteButtonClick(event)\n\t{\n\t\tif (this.currentCall)\n\t\t{\n\t\t\tthis.currentCall.setMuted(event.data.muted);\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis.template.$emit('setMicState', !event.data.muted);\n\t\t}\n\n\t\tif (this.isRecording())\n\t\t{\n\t\t\tBXDesktopSystem.CallRecordMute(event.data.muted);\n\t\t}\n\n\t\tthis.callView.setMuted(event.data.muted);\n\t}\n\n\tonCallViewToggleScreenSharingButtonClick()\n\t{\n\t\tif (this.getFeatureState('screenSharing') === CallApplication.FeatureState.Limited)\n\t\t{\n\t\t\tthis.showFeatureLimitSlider('screenSharing');\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.getFeatureState('screenSharing') === CallApplication.FeatureState.Disabled)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.currentCall.isScreenSharingStarted())\n\t\t{\n\t\t\tthis.currentCall.stopScreenSharing();\n\n\t\t\tif (this.isRecording())\n\t\t\t{\n\t\t\t\tBXDesktopSystem.CallRecordStopSharing();\n\t\t\t}\n\n\t\t\tif (this.floatingScreenShareWindow)\n\t\t\t{\n\t\t\t\tthis.floatingScreenShareWindow.close();\n\t\t\t}\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis.restClient.callMethod(\"im.call.onShareScreen\", {callId: this.currentCall.id});\n\t\t\tthis.currentCall.startScreenSharing();\n\t\t}\n\t}\n\n\tonCallViewRecordButtonClick(event)\n\t{\n\t\tif (event.data.recordState === BX.Call.View.RecordState.Started)\n\t\t{\n\t\t\tif (this.getFeatureState('record') === CallApplication.FeatureState.Limited)\n\t\t\t{\n\t\t\t\tthis.showFeatureLimitSlider('record');\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (this.getFeatureState('record') === CallApplication.FeatureState.Disabled)\n\t\t\t{\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (this.canRecord())\n\t\t\t{\n\t\t\t\tif (Utils.platform.isBitrixDesktop() && Utils.platform.getDesktopVersion() >= 55)\n\t\t\t\t{\n\t\t\t\t\tif (!this.callRecordMenu)\n\t\t\t\t\t{\n\t\t\t\t\t\tthis.callRecordMenu = new Menu({\n\t\t\t\t\t\t\tbindElement: event.data.node,\n\t\t\t\t\t\t\titems: [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\ttext: BX.message('IM_M_CALL_MENU_RECORD_VIDEO'),\n\t\t\t\t\t\t\t\t\tonclick: (event, item) => {\n\t\t\t\t\t\t\t\t\t\tthis.onCallViewRecordMenuClick(BX.Call.View.RecordType.Video);\n\t\t\t\t\t\t\t\t\t\titem.getMenuWindow().close();\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\ttext: BX.message('IM_M_CALL_MENU_RECORD_AUDIO'),\n\t\t\t\t\t\t\t\t\tonclick: (event, item) => {\n\t\t\t\t\t\t\t\t\t\tthis.onCallViewRecordMenuClick(BX.Call.View.RecordType.Audio);\n\t\t\t\t\t\t\t\t\t\titem.getMenuWindow().close();\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\tangle: {position: \"top\", offset: 80},\n\t\t\t\t\t\t\toffsetTop: 0,\n\t\t\t\t\t\t\toffsetLeft: -25,\n\t\t\t\t\t\t\tevents : {\n\t\t\t\t\t\t\t\tonPopupClose : function () {\n\t\t\t\t\t\t\t\t\tthis.callRecordMenu.destroy();\n\t\t\t\t\t\t\t\t}.bind(this),\n\t\t\t\t\t\t\t\tonPopupDestroy : function () {\n\t\t\t\t\t\t\t\t\tthis.callRecordMenu = null;\n\t\t\t\t\t\t\t\t}.bind(this),\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\tthis.callRecordMenu.toggle();\n\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tthis.callView.setButtonActive('record', true);\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tif (window.BX.Helper)\n\t\t\t\t{\n\t\t\t\t\twindow.BX.Helper.show(\"redirect=detail&code=12398134\");\n\t\t\t\t}\n\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\telse if (event.data.recordState === BX.Call.View.RecordState.Paused)\n\t\t{\n\t\t\tif (this.canRecord())\n\t\t\t{\n\t\t\t\tBXDesktopSystem.CallRecordPause(true);\n\t\t\t}\n\t\t}\n\t\telse if (event.data.recordState === BX.Call.View.RecordState.Resumed)\n\t\t{\n\t\t\tif (this.canRecord())\n\t\t\t{\n\t\t\t\tBXDesktopSystem.CallRecordPause(false);\n\t\t\t}\n\t\t}\n\t\telse if (event.data.recordState === BX.Call.View.RecordState.Stopped)\n\t\t{\n\t\t\tthis.callView.setButtonActive('record', false);\n\t\t}\n\n\t\tthis.currentCall.sendRecordState({\n\t\t\taction: event.data.recordState,\n\t\t\tdate: new Date()\n\t\t});\n\n\t\tthis.callRecordState = event.data.recordState;\n\t}\n\n\tonCallViewRecordMenuClick(type)\n\t{\n\t\tthis.callView.setButtonActive('record', true);\n\t\tthis.callRecordType = type;\n\n\t\tthis.currentCall.sendRecordState({\n\t\t\taction: BX.Call.View.RecordState.Started,\n\t\t\tdate: new Date()\n\t\t});\n\n\t\tthis.callRecordState = BX.Call.View.RecordState.Started;\n\t}\n\n\tonCallViewToggleVideoButtonClick(event)\n\t{\n\t\tif (this.currentCall)\n\t\t{\n\t\t\tif (!BX.Call.Hardware.initialized)\n\t\t\t{\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (event.data.video && Object.values(BX.Call.Hardware.cameraList).length === 0)\n\t\t\t{\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif(!event.data.video)\n\t\t\t{\n\t\t\t\tthis.callView.releaseLocalMedia();\n\t\t\t}\n\t\t\tthis.currentCall.setVideoEnabled(event.data.video);\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis.template.$emit('setCameraState', event.data.video);\n\t\t}\n\t}\n\n\tonCallViewShareButtonClick()\n\t{\n\t\tlet notifyWidth = 400;\n\t\tif (Utils.device.isMobile() && document.body.clientWidth < 400)\n\t\t{\n\t\t\tnotifyWidth = document.body.clientWidth - 40;\n\t\t}\n\n\t\tBX.UI.Notification.Center.notify({\n\t\t\tcontent: Loc.getMessage('BX_IM_VIDEOCONF_LINK_COPY_DONE'),\n\t\t\tautoHideDelay: 4000,\n\t\t\twidth: notifyWidth\n\t\t});\n\n\t\tClipboard.copy(this.getDialogData().public.link);\n\t}\n\n\tonCallViewFullScreenButtonClick()\n\t{\n\t\tthis.toggleFullScreen();\n\t}\n\n\tonFloatingScreenShareBackToCallClick()\n\t{\n\t\tBXDesktopWindow.ExecuteCommand('show.active')\n\t\tif (this.floatingScreenShareWindow)\n\t\t{\n\t\t\tthis.floatingScreenShareWindow.hide();\n\t\t}\n\t}\n\n\tonFloatingScreenShareStopClick()\n\t{\n\t\tBXDesktopWindow.ExecuteCommand('show.active')\n\t\tthis.onCallViewToggleScreenSharingButtonClick();\n\t}\n\n\tonWindowFocus()\n\t{\n\t\tif (this.floatingScreenShareWindow)\n\t\t{\n\t\t\tthis.floatingScreenShareWindow.hide();\n\t\t}\n\t}\n\n\tonWindowBlur()\n\t{\n\t\tif(this.floatingScreenShareWindow && this.currentCall && this.currentCall.isScreenSharingStarted())\n\t\t{\n\t\t\tthis.floatingScreenShareWindow.show();\n\t\t}\n\t}\n\n\tisFullScreen ()\n\t{\n\t\tif (\"webkitFullscreenElement\" in document)\n\t\t{\n\t\t\treturn (!!document.webkitFullscreenElement);\n\t\t}\n\t\telse if (\"fullscreenElement\" in document)\n\t\t{\n\t\t\treturn (!!document.fullscreenElement);\n\t\t}\n\t\treturn false;\n\t}\n\n\ttoggleFullScreen ()\n\t{\n\t\tif(this.isFullScreen())\n\t\t{\n\t\t\tthis.exitFullScreen();\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis.enterFullScreen();\n\t\t}\n\t}\n\n\tenterFullScreen ()\n\t{\n\t\tif (BX.browser.IsChrome() || BX.browser.IsSafari())\n\t\t{\n\t\t\tdocument.body.webkitRequestFullScreen();\n\t\t}\n\t\telse if (BX.browser.IsFirefox())\n\t\t{\n\t\t\tdocument.body.requestFullscreen();\n\t\t}\n\t}\n\n\texitFullScreen()\n\t{\n\t\tif (document.cancelFullScreen)\n\t\t{\n\t\t\tdocument.cancelFullScreen();\n\t\t}\n\t\telse if (document.mozCancelFullScreen)\n\t\t{\n\t\t\tdocument.mozCancelFullScreen();\n\t\t}\n\t\telse if (document.webkitCancelFullScreen)\n\t\t{\n\t\t\tdocument.webkitCancelFullScreen();\n\t\t}\n\t\telse if (document.document.exitFullscreen())\n\t\t{\n\t\t\tdocument.exitFullscreen()\n\t\t}\n\t}\n\n\tonCallViewShowChatButtonClick()\n\t{\n\t\tthis.toggleChat();\n\t}\n\n\tonCallViewFloorRequestButtonClick()\n\t{\n\t\tconst floorState = this.callView.getUserFloorRequestState(BX.CallEngine.getCurrentUserId());\n\t\tconst talkingState = this.callView.getUserTalking(BX.CallEngine.getCurrentUserId());\n\n\t\tthis.callView.setUserFloorRequestState(BX.CallEngine.getCurrentUserId(), !floorState);\n\n\t\tif (this.currentCall)\n\t\t{\n\t\t\tthis.currentCall.requestFloor(!floorState);\n\t\t}\n\n\t\tclearTimeout(this.callViewFloorRequestTimeout);\n\t\tif (talkingState && !floorState)\n\t\t{\n\t\t\tthis.callViewFloorRequestTimeout = setTimeout(() =>\n\t\t\t{\n\t\t\t\tif (this.currentCall)\n\t\t\t\t{\n\t\t\t\t\tthis.currentCall.requestFloor(false);\n\t\t\t\t}\n\t\t\t}, 1500);\n\t\t}\n\t}\n\n\tbindCallEvents()\n\t{\n\t\tthis.currentCall.addEventListener(BX.Call.Event.onUserInvited, this.onCallUserInvitedHandler);\n\t\tthis.currentCall.addEventListener(BX.Call.Event.onDestroy, this.onCallDestroyHandler);\n\t\tthis.currentCall.addEventListener(BX.Call.Event.onUserStateChanged, this.onCallUserStateChangedHandler);\n\t\tthis.currentCall.addEventListener(BX.Call.Event.onUserMicrophoneState, this.onCallUserMicrophoneStateHandler);\n\t\tthis.currentCall.addEventListener(BX.Call.Event.onLocalMediaReceived, this.onCallLocalMediaReceivedHandler);\n\t\tthis.currentCall.addEventListener(BX.Call.Event.onStreamReceived, this.onCallUserStreamReceivedHandler);\n\t\tthis.currentCall.addEventListener(BX.Call.Event.onStreamRemoved, this.onCallUserStreamRemovedHandler);\n\t\tthis.currentCall.addEventListener(BX.Call.Event.onUserVoiceStarted, this.onCallUserVoiceStartedHandler);\n\t\tthis.currentCall.addEventListener(BX.Call.Event.onUserVoiceStopped, this.onCallUserVoiceStoppedHandler);\n\t\tthis.currentCall.addEventListener(BX.Call.Event.onUserScreenState, this.onCallUserScreenStateHandler);\n\t\tthis.currentCall.addEventListener(BX.Call.Event.onUserRecordState, this.onCallUserRecordStateHandler);\n\t\tthis.currentCall.addEventListener(BX.Call.Event.onUserFloorRequest, this.onCallUserFloorRequestHandler);\n\t\t//this.currentCall.addEventListener(BX.Call.Event.onDeviceListUpdated, this._onCallDeviceListUpdatedHandler);\n\t\t//this.currentCall.addEventListener(BX.Call.Event.onCallFailure, this._onCallFailureHandler);\n\t\tthis.currentCall.addEventListener(BX.Call.Event.onJoin, this._onCallJoinHandler);\n\t\tthis.currentCall.addEventListener(BX.Call.Event.onLeave, this.onCallLeaveHandler);\n\t}\n\n\tremoveCallEvents()\n\t{\n\t\tthis.currentCall.removeEventListener(BX.Call.Event.onUserInvited, this.onCallUserInvitedHandler);\n\t\tthis.currentCall.removeEventListener(BX.Call.Event.onDestroy, this.onCallDestroyHandler);\n\t\tthis.currentCall.removeEventListener(BX.Call.Event.onUserStateChanged, this.onCallUserStateChangedHandler);\n\t\tthis.currentCall.removeEventListener(BX.Call.Event.onUserMicrophoneState, this.onCallUserMicrophoneStateHandler);\n\t\tthis.currentCall.removeEventListener(BX.Call.Event.onLocalMediaReceived, this.onCallLocalMediaReceivedHandler);\n\t\tthis.currentCall.removeEventListener(BX.Call.Event.onStreamReceived, this.onCallUserStreamReceivedHandler);\n\t\t//this.currentCall.removeEventListener(BX.Call.Event.onStreamRemoved, this.onCallUserStreamRemoved.bind(this));\n\t\tthis.currentCall.removeEventListener(BX.Call.Event.onUserVoiceStarted, this.onCallUserVoiceStartedHandler);\n\t\tthis.currentCall.removeEventListener(BX.Call.Event.onUserVoiceStopped, this.onCallUserVoiceStoppedHandler);\n\t\tthis.currentCall.removeEventListener(BX.Call.Event.onUserScreenState, this.onCallUserScreenStateHandler);\n\t\tthis.currentCall.removeEventListener(BX.Call.Event.onUserRecordState, this.onCallUserRecordStateHandler);\n\t\tthis.currentCall.removeEventListener(BX.Call.Event.onUserFloorRequest, this.onCallUserFloorRequestHandler);\n\t\t//this.currentCall.removeEventListener(BX.Call.Event.onDeviceListUpdated, this._onCallDeviceListUpdatedHandler);\n\t\t//this.currentCall.removeEventListener(BX.Call.Event.onCallFailure, this._onCallFailureHandler);\n\t\tthis.currentCall.removeEventListener(BX.Call.Event.onLeave, this.onCallLeaveHandler);\n\t}\n\n\tonCallUserInvited(e)\n\t{\n\t\tthis.callView.addUser(e.userId);\n\n\t\tBX.Call.Util.getUsers(this.currentCall.id, [e.userId]).then(userData => {\n\t\t\tthis.callView.updateUserData(userData)\n\t\t});\n\t}\n\n\tonCallUserStateChanged(e)\n\t{\n\t\tthis.callView.setUserState(e.userId, e.state);\n\t}\n\n\tonCallUserMicrophoneState(e)\n\t{\n\t\tthis.callView.setUserMicrophoneState(e.userId, e.microphoneState);\n\t}\n\n\tonCallLocalMediaReceived(e)\n\t{\n\t\t//this.template.$emit('callLocalMediaReceived');\n\n\t\tthis.stopLocalVideoStream();\n\t\tthis.callView.setLocalStream(e.stream, e.tag == \"main\");\n\t\tthis.callView.setButtonActive(\"screen\", e.tag == \"screen\");\n\t\tif(e.tag == \"screen\")\n\t\t{\n\t\t\tthis.callView.blockSwitchCamera();\n\t\t\tthis.callView.updateButtons();\n\t\t}\n\t\telse\n\t\t{\n\t\t\tif(!this.currentCall.callFromMobile)\n\t\t\t{\n\t\t\t\tthis.callView.unblockSwitchCamera();\n\t\t\t\tthis.callView.updateButtons();\n\t\t\t}\n\t\t}\n\t}\n\n\tonCallUserStreamReceived(e)\n\t{\n\t\tif (this.callView)\n\t\t{\n\t\t\tif (\"stream\" in e)\n\t\t\t{\n\t\t\t\tthis.callView.setStream(e.userId, e.stream);\n\t\t\t}\n\t\t\tif (\"mediaRenderer\" in e && e.mediaRenderer.kind === \"audio\")\n\t\t\t{\n\t\t\t\tthis.callView.setStream(e.userId, e.mediaRenderer.stream);\n\t\t\t}\n\t\t\tif (\"mediaRenderer\" in e && (e.mediaRenderer.kind === \"video\" || e.mediaRenderer.kind === \"sharing\"))\n\t\t\t{\n\t\t\t\tthis.callView.setVideoRenderer(e.userId, e.mediaRenderer);\n\t\t\t}\n\t\t}\n\t}\n\n\tonCallUserStreamRemoved(e)\n\t{\n\t\tif (\"mediaRenderer\" in e && (e.mediaRenderer.kind === \"video\" || e.mediaRenderer.kind === \"sharing\"))\n\t\t{\n\t\t\tthis.callView.setVideoRenderer(e.userId, null);\n\t\t}\n\t}\n\n\tonCallUserVoiceStarted(e)\n\t{\n\t\tthis.callView.setUserTalking(e.userId, true);\n\t\tthis.callView.setUserFloorRequestState(e.userId, false);\n\t}\n\n\tonCallUserVoiceStopped(e)\n\t{\n\t\tthis.callView.setUserTalking(e.userId, false);\n\t}\n\n\tonCallUserScreenState(e)\n\t{\n\t\tif(this.callView)\n\t\t{\n\t\t\tthis.callView.setUserScreenState(e.userId, e.screenState);\n\t\t}\n\t}\n\n\tonCallUserRecordState(event)\n\t{\n\t\tthis.callRecordState = event.recordState.state;\n\t\tthis.callView.setRecordState(event.recordState);\n\n\t\tif (!this.canRecord() || event.userId != this.controller.getUserId())\n\t\t{\n\t\t\treturn true;\n\t\t}\n\n\t\tif (\n\t\t\tevent.recordState.state === BX.Call.View.RecordState.Started\n\t\t\t&& event.recordState.userId == this.controller.getUserId()\n\t\t)\n\t\t{\n\t\t\tconst windowId = window.bxdWindowId || window.document.title;\n\t\t\tlet fileName = BX.message('IM_CALL_RECORD_NAME');\n\t\t\tlet dialogId = this.currentCall.associatedEntity.id;\n\t\t\tlet dialogName = this.currentCall.associatedEntity.name;\n\t\t\tlet callId = this.currentCall.id;\n\t\t\tlet callDate = BX.Main.Date.format(this.params.formatRecordDate || 'd.m.Y');\n\n\t\t\tif (fileName)\n\t\t\t{\n\t\t\t\tfileName = fileName\n\t\t\t\t\t.replace('#CHAT_TITLE#', dialogName)\n\t\t\t\t\t.replace('#CALL_ID#', callId)\n\t\t\t\t\t.replace('#DATE#', callDate)\n\t\t\t\t;\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tfileName = \"call_record_\"+this.currentCall.id;\n\t\t\t}\n\n\t\t\tBX.CallEngine.getRestClient().callMethod(\"im.call.onStartRecord\", {callId: this.currentCall.id});\n\n\t\t\tBXDesktopSystem.CallRecordStart({\n\t\t\t\twindowId,\n\t\t\t\tfileName,\n\t\t\t\tcallId,\n\t\t\t\tcallDate,\n\t\t\t\tdialogId,\n\t\t\t\tdialogName,\n\t\t\t\tvideo: this.callRecordType !== BX.Call.View.RecordType.Audio,\n\t\t\t\tmuted: this.currentCall.isMuted(),\n\t\t\t\tcropTop: 72,\n\t\t\t\tcropBottom: 73,\n\t\t\t});\n\t\t}\n\t\telse if (event.recordState.state === BX.Call.View.RecordState.Stopped)\n\t\t{\n\t\t\tBXDesktopSystem.CallRecordStop();\n\t\t}\n\n\t\treturn true;\n\t}\n\n\tonCallUserFloorRequest(e)\n\t{\n\t\tthis.callView.setUserFloorRequestState(e.userId, e.requestActive);\n\t}\n\n\tonCallJoin(e)\n\t{\n\t\tif (!e.local)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tthis.callView.unblockButtons(['camera', 'floorRequest', 'screen', 'record']);\n\t\tthis.callView.setUiState(BX.Call.View.UiState.Connected);\n\t}\n\n\tonCallLeave(e)\n\t{\n\t\tif (!e.local)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tthis.endCall();\n\t}\n\n\tonCallDestroy(e)\n\t{\n\t\tthis.currentCall = null;\n\n\t\tif (this.floatingScreenShareWindow)\n\t\t{\n\t\t\tthis.floatingScreenShareWindow.close;\n\t\t}\n\n\t\tthis.restart();\n\t}\n\n\tonCheckDevicesSave(changedValues)\n\t{\n\t\tif (changedValues['camera'])\n\t\t{\n\t\t\tBX.Call.Hardware.defaultCamera = changedValues['camera'];\n\t\t}\n\n\t\tif (changedValues['microphone'])\n\t\t{\n\t\t\tBX.Call.Hardware.defaultMicrophone = changedValues['microphone'];\n\t\t}\n\n\t\tif (changedValues['audioOutput'])\n\t\t{\n\t\t\tBX.Call.Hardware.defaultSpeaker = changedValues['audioOutput'];\n\t\t}\n\n\t\tif (changedValues['preferHDQuality'])\n\t\t{\n\t\t\tBX.Call.Hardware.preferHdQuality = changedValues['preferHDQuality'];\n\t\t}\n\n\t\tif (changedValues['enableMicAutoParameters'])\n\t\t{\n\t\t\tBX.Call.Hardware.enableMicAutoParameters = changedValues['enableMicAutoParameters'];\n\t\t}\n\t}\n\n\tsetCameraState(state)\n\t{\n\t\tthis.callView.setCameraState(state);\n\t}\n\t/* endregion 01. Call methods */\n\n\t/* region 02. Component methods */\n\t\t/* region 01. General actions */\n\t\tisChatShow()\n\t\t{\n\t\t\treturn this.controller.getStore().state.callApplication.common.showChat;\n\t\t}\n\n\t\ttoggleChat()\n\t\t{\n\t\t\tlet newState = !this.isChatShow();\n\n\t\t\tthis.controller.getStore().state.callApplication.common.showChat = newState;\n\t\t\tthis.callView.setButtonActive('chat', newState);\n\t\t}\n\n\t\tsetDialogInited()\n\t\t{\n\t\t\tthis.dialogInited = true;\n\t\t\tlet dialogData = this.getDialogData();\n\t\t\tdocument.title = dialogData.name;\n\t\t}\n\n\t\tchangeVideoconfUrl(newUrl)\n\t\t{\n\t\t\twindow.history.pushState(\"\", \"\", newUrl);\n\t\t}\n\n\t\tsendNewMessageNotify(text)\n\t\t{\n\t\t\tif (Utils.device.isMobile())\n\t\t\t{\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\tconst MAX_LENGTH = 40;\n\t\t\tconst AUTO_HIDE_TIME = 4000;\n\n\t\t\ttext = text.replace(/<br \\/>/gi, ' ');\n\n\t\t\ttext = text.replace(/\\[USER=([0-9]+)](.*?)\\[\\/USER]/ig, (whole, userId, text) => text);\n\t\t\ttext = text.replace(/\\[CHAT=(imol\\|)?([0-9]+)](.*?)\\[\\/CHAT]/ig, (whole, imol, chatId, text) => text);\n\t\t\ttext = text.replace(/\\[PCH=([0-9]+)](.*?)\\[\\/PCH]/ig, (whole, historyId, text) => text);\n\t\t\ttext = text.replace(/\\[SEND(?:=(.+?))?](.+?)?\\[\\/SEND]/ig, (whole, command, text) => text? text: command);\n\t\t\ttext = text.replace(/\\[PUT(?:=(.+?))?](.+?)?\\[\\/PUT]/ig, (whole, command, text) => text? text: command);\n\t\t\ttext = text.replace(/\\[CALL(?:=(.+?))?](.+?)?\\[\\/CALL]/ig, (whole, command, text) => text? text: command);\n\t\t\ttext = text.replace(/\\[ATTACH=([0-9]+)]/ig, (whole, historyId, text) => '');\n\n\t\t\tif (text.length > MAX_LENGTH)\n\t\t\t{\n\t\t\t\ttext = text.substring(0, MAX_LENGTH - 1) + '...';\n\t\t\t}\n\n\t\t\tconst notifyNode = BX.create(\"div\", {\n\t\t\t\tprops: {\n\t\t\t\t\tclassName: 'bx-im-application-call-notify-new-message'\n\t\t\t\t},\n\t\t\t\thtml: text\n\t\t\t});\n\n\t\t\tconst notify = BX.UI.Notification.Center.notify({\n\t\t\t\tcontent: notifyNode,\n\t\t\t\tautoHideDelay: AUTO_HIDE_TIME\n\t\t\t});\n\n\t\t\tnotifyNode.addEventListener('click', (event) => {\n\t\t\t\tnotify.close();\n\t\t\t\tthis.toggleChat();\n\t\t\t});\n\n\t\t\treturn true;\n\t\t}\n\n\t\tinsertText(params = {})\n\t\t{\n\t\t\tthis.template.$emit(EventType.textarea.insertText, params);\n\t\t}\n\t\t/* endregion 01. General actions */\n\n\t\t/* region 02. Store actions */\n\t\tsetError(errorCode)\n\t\t{\n\t\t\tthis.controller.getStore().commit('callApplication/setError', {errorCode});\n\t\t}\n\n\t\ttoggleSmiles()\n\t\t{\n\t\t\tthis.controller.getStore().commit('callApplication/toggleSmiles');\n\t\t}\n\n\t\tsetJoinType(joinWithVideo)\n\t\t{\n\t\t\tthis.controller.getStore().commit('callApplication/setJoinType', {joinWithVideo});\n\t\t}\n\n\t\tsetConferenceStatus(conferenceStarted)\n\t\t{\n\t\t\tthis.controller.getStore().commit('callApplication/setConferenceStatus', {conferenceStarted});\n\t\t}\n\n\t\tsetConferenceStartDate(conferenceStartDate)\n\t\t{\n\t\t\tthis.controller.getStore().commit('callApplication/setConferenceStartDate', {conferenceStartDate});\n\t\t}\n\n\t\tsetUserReadyToJoin()\n\t\t{\n\t\t\tthis.controller.getStore().commit('callApplication/setUserReadyToJoin');\n\t\t}\n\t\t/* endregion 02. Store actions */\n\n\t\t/* region 03. Rest actions */\n\t\tsetUserName(name)\n\t\t{\n\t\t\treturn new Promise((resolve, reject) => {\n\t\t\t\tthis.restClient.callMethod('im.call.user.update', {\n\t\t\t\t\tname: name,\n\t\t\t\t\tchat_id: this.getChatId()\n\t\t\t\t}).then(() => {\n\t\t\t\t\tresolve();\n\t\t\t\t});\n\t\t\t});\n\t\t}\n\n\t\tcheckPassword(password)\n\t\t{\n\t\t\treturn new Promise((resolve, reject) => {\n\t\t\t\tthis.restClient.callMethod('im.videoconf.password.check', { password, alias: this.params.alias })\n\t\t\t\t\t.then(result => {\n\t\t\t\t\t\tif (result.data() === true)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tthis.restClient.setPassword(password);\n\t\t\t\t\t\t\tthis.controller.getStore().commit('callApplication/common', {\n\t\t\t\t\t\t\t\tpassChecked: true\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tthis.initUserComplete();\n\t\t\t\t\t\t\tresolve();\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\treject();\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t});\n\t\t}\n\t\t/* endregion 03. Rest actions */\n\n\t\t/* region 04. Messages and files */\n\t\taddMessage(text = '', file = null)\n\t\t{\n\t\t\tif (!text && !file)\n\t\t\t{\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tif (!this.controller.application.isUnreadMessagesLoaded())\n\t\t\t{\n\t\t\t\tthis.sendMessage({ id: 0, text, file });\n\t\t\t\tthis.processSendMessages();\n\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\tlet params = {};\n\t\t\tif (file)\n\t\t\t{\n\t\t\t\tparams.FILE_ID = [file.id];\n\t\t\t}\n\n\t\t\tthis.controller.getStore().commit('application/increaseDialogExtraCount');\n\n\t\t\tthis.controller.getStore().dispatch('messages/add', {\n\t\t\t\tchatId: this.getChatId(),\n\t\t\t\tauthorId: this.controller.getUserId(),\n\t\t\t\ttext: text,\n\t\t\t\tparams,\n\t\t\t\tsending: !file,\n\t\t\t}).then(messageId => {\n\t\t\t\tthis.messagesQueue.push({\n\t\t\t\t\tid: messageId,\n\t\t\t\t\ttext,\n\t\t\t\t\tfile,\n\t\t\t\t\tsending: false\n\t\t\t\t});\n\n\t\t\t\tthis.processSendMessages();\n\t\t\t});\n\n\t\t\treturn true;\n\t\t}\n\n\t\tprocessSendMessages()\n\t\t{\n\t\t\tif (!this.getDiskFolderId())\n\t\t\t{\n\t\t\t\tthis.requestDiskFolderId().then(() => {\n\t\t\t\t\tthis.processSendMessages();\n\t\t\t\t}).catch(() => {\n\t\t\t\t\tLogger.warn('uploadFile', 'Error get disk folder id');\n\t\t\t\t\treturn false;\n\t\t\t\t});\n\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tthis.messagesQueue.filter(element => !element.sending).forEach(element => {\n\t\t\t\telement.sending = true;\n\t\t\t\tif (element.file)\n\t\t\t\t{\n\t\t\t\t\tthis.sendMessageWithFile(element);\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tthis.sendMessage(element);\n\t\t\t\t}\n\t\t\t});\n\n\t\t\treturn true;\n\t\t}\n\n\t\tsendMessage(message)\n\t\t{\n\t\t\tthis.controller.application.stopWriting();\n\n\t\t\t//let quiteId = this.controller.getStore().getters['dialogues/getQuoteId'](this.getDialogId());\n\t\t\t//if (quiteId)\n\t\t\t//{\n\t\t\t//\tlet quoteMessage = this.controller.getStore().getters['messages/getMessage'](this.getChatId(), quiteId);\n\t\t\t//\tif (quoteMessage)\n\t\t\t//\t{\n\t\t\t//\t\tlet user = this.controller.getStore().getters['users/get'](quoteMessage.authorId);\n\t\t\t//\n\t\t\t//\t\tlet newMessage = [];\n\t\t\t//\t\tnewMessage.push(\"------------------------------------------------------\");\n\t\t\t//\t\tnewMessage.push((user.name ? user.name : this.getLocalize('BX_LIVECHAT_SYSTEM_MESSAGE')));\n\t\t\t//\t\tnewMessage.push(quoteMessage.text);\n\t\t\t//\t\tnewMessage.push('------------------------------------------------------');\n\t\t\t//\t\tnewMessage.push(message.text);\n\t\t\t//\t\tmessage.text = newMessage.join(\"\\n\");\n\t\t\t//\n\t\t\t//\t\tthis.quoteMessageClear();\n\t\t\t//\t}\n\t\t\t//}\n\n\t\t\tmessage.chatId = this.getChatId();\n\n\t\t\tthis.controller.restClient.callMethod(ImRestMethod.imMessageAdd, {\n\t\t\t\t'TEMPLATE_ID': message.id,\n\t\t\t\t'CHAT_ID': message.chatId,\n\t\t\t\t'MESSAGE': message.text\n\t\t\t}, null, null)\n\t\t\t.then(response => {\n\t\t\t\tthis.controller.getStore().dispatch('messages/update', {\n\t\t\t\t\tid: message.id,\n\t\t\t\t\tchatId: message.chatId,\n\t\t\t\t\tfields: {\n\t\t\t\t\t\tid: response.data(),\n\t\t\t\t\t\tsending: false,\n\t\t\t\t\t\terror: false,\n\t\t\t\t\t}\n\t\t\t\t}).then(() => {\n\t\t\t\t\tthis.controller.getStore().dispatch('messages/actionFinish', {\n\t\t\t\t\t\tid: response.data(),\n\t\t\t\t\t\tchatId: message.chatId\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t\t//this.controller.executeRestAnswer(ImRestMethodHandler.imMessageAdd, response, message);\n\t\t\t}).catch(error => {\n\t\t\t\t//this.controller.executeRestAnswer(ImRestMethodHandler.imMessageAdd, error, message);\n\t\t\t});\n\n\t\t\treturn true;\n\t\t}\n\n\t\tsendMessageWithFile(message)\n\t\t{\n\t\t\tthis.controller.application.stopWriting();\n\n\t\t\tlet diskFolderId = this.getDiskFolderId();\n\t\t\tmessage.chatId = this.getChatId();\n\n\t\t\tthis.uploader.senderOptions.customHeaders['Call-Auth-Id'] = this.getUserHash();\n\t\t\tthis.uploader.senderOptions.customHeaders['Call-Chat-Id'] = message.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: diskFolderId,\n\t\t\t\tpreviewBlob: message.file.previewBlob,\n\t\t\t});\n\t\t}\n\n\t\tuploadFile(event)\n\t\t{\n\t\t\tif (!event)\n\t\t\t{\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tthis.uploader.addFilesFromEvent(event);\n\t\t}\n\n\t\tfileError(chatId, fileId, messageId = 0)\n\t\t{\n\t\t\tthis.controller.getStore().dispatch('files/update', {\n\t\t\t\tchatId: chatId,\n\t\t\t\tid: fileId,\n\t\t\t\tfields: {\n\t\t\t\t\tstatus: FileStatus.error,\n\t\t\t\t\tprogress: 0\n\t\t\t\t}\n\t\t\t});\n\t\t\tif (messageId)\n\t\t\t{\n\t\t\t\tthis.controller.getStore().dispatch('messages/actionError', {\n\t\t\t\t\tchatId: chatId,\n\t\t\t\t\tid: messageId,\n\t\t\t\t\tretry: false,\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\trequestDiskFolderId()\n\t{\n\t\tif (this.requestDiskFolderPromise)\n\t\t{\n\t\t\treturn this.requestDiskFolderPromise;\n\t\t}\n\n\t\tthis.requestDiskFolderPromise = new Promise((resolve, reject) =>\n\t\t{\n\t\t\tif (\n\t\t\t\tthis.flagRequestDiskFolderIdSended\n\t\t\t\t|| this.getDiskFolderId()\n\t\t\t)\n\t\t\t{\n\t\t\t\tthis.flagRequestDiskFolderIdSended = false;\n\t\t\t\tresolve();\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\tthis.flagRequestDiskFolderIdSended = true;\n\n\t\t\tthis.controller.restClient.callMethod(ImRestMethod.imDiskFolderGet, {chat_id: this.controller.application.getChatId()}).then(response => {\n\t\t\t\tthis.controller.executeRestAnswer(ImRestMethodHandler.imDiskFolderGet, response);\n\t\t\t\tthis.flagRequestDiskFolderIdSended = false;\n\t\t\t\tresolve();\n\t\t\t}).catch(error => {\n\t\t\t\tthis.flagRequestDiskFolderIdSended = false;\n\t\t\t\tthis.controller.executeRestAnswer(ImRestMethodHandler.imDiskFolderGet, error);\n\t\t\t\treject();\n\t\t\t});\n\t\t});\n\n\t\treturn this.requestDiskFolderPromise;\n\t}\n\n\t\tfileCommit(params, message)\n\t\t{\n\t\t\tthis.controller.restClient.callMethod(ImRestMethod.imDiskFileCommit, {\n\t\t\t\tchat_id: params.chatId,\n\t\t\t\tupload_id: params.uploadId,\n\t\t\t\tmessage: params.messageText,\n\t\t\t\ttemplate_id: params.messageId,\n\t\t\t\tfile_template_id: params.fileId,\n\t\t\t}, null, null, ).then(response => {\n\t\t\t\tthis.controller.executeRestAnswer(ImRestMethodHandler.imDiskFileCommit, response, message);\n\t\t\t}).catch(error => {\n\t\t\t\tthis.controller.executeRestAnswer(ImRestMethodHandler.imDiskFileCommit, error, message);\n\t\t\t});\n\n\t\t\treturn true;\n\t\t}\n\t\t/* endregion 04. Messages and files */\n\t/* endregion 02. Component methods */\n\n/* endregion 02. Methods */\n\n/* region 03. Utils */\n\n\taddLocalize(phrases)\n\t{\n\t\treturn this.controller.addLocalize(phrases);\n\t}\n\n\tgetLocalize(name)\n\t{\n\t\treturn this.controller.getLocalize(name);\n\t}\n\n\tisExternalUser()\n\t{\n\t\treturn !!this.getUserHash();\n\t}\n\n\tgetChatId()\n\t{\n\t\treturn parseInt(this.params.chatId);\n\t}\n\n\tgetDialogId()\n\t{\n\t\treturn this.params.dialogId;\n\t}\n\n\tgetDialogData()\n\t{\n\t\tif (!this.dialogInited)\n\t\t{\n\t\t\treturn false;\n\t\t}\n\n\t\treturn this.controller.getStore().getters['dialogues/get'](this.getDialogId());\n\t}\n\n\tgetHost()\n\t{\n\t\treturn location.origin || '';\n\t}\n\n\tgetStartupErrorCode()\n\t{\n\t\treturn this.params.startupErrorCode? this.params.startupErrorCode : '';\n\t}\n\n\tgetDiskFolderId()\n\t{\n\t\treturn this.controller.getStore().state.application.dialog.diskFolderId;\n\t}\n\n\tisHttps()\n\t{\n\t\treturn location.protocol === 'https:';\n\t}\n\n\tgetUserHash()\n\t{\n\t\treturn this.controller.getStore().state.callApplication.user.hash;\n\t}\n\n\tgetUserHashCookie()\n\t{\n\t\tlet userHash = '';\n\n\t\tlet cookie = Cookie.get(null, 'BITRIX_CALL_HASH');\n\t\tif (typeof cookie === 'string' && cookie.match(/^[a-f0-9]{32}$/))\n\t\t{\n\t\t\tuserHash = cookie;\n\t\t}\n\n\t\treturn userHash;\n\t}\n\n\tgetAlias()\n\t{\n\t\treturn this.params.alias ? this.params.alias : '';\n\t}\n\n\tswitchToSessAuth()\n\t{\n\t\tthis.restClient.restClient.queryParams = undefined;\n\t\treturn true;\n\t}\n\n/* endregion 03. Utils */\n}\n\nCallApplication.FeatureState = {\n\tEnabled: 'enabled',\n\tDisabled: 'disabled',\n\tLimited: 'limited',\n};\n\nexport {CallApplication};\n"],"names":["RestAuth","Object","freeze","guest","CallRestClient","params","queryAuthRestore","setAuthId","restClient","RestClient","endpoint","queryParams","cors","authId","customAuthId","match","call_auth_id","console","error","call_custom_auth_id","chatId","call_chat_id","alias","videoconf_id","password","videoconf_password","method","callback","sendCallback","logTag","Utils","getLogTrackingParams","name","promise","BX","Promise","callMethod","then","result","fulfill","catch","ex","hash","RestMethod","widgetUserRegister","warn","error_description","reject","calls","bHaltOnError","resultCallback","hasOwnProperty","callBatch","CallApplication","inited","dialogInited","initPromise","userId","parseInt","siteId","dialogId","toString","passwordRequired","messagesQueue","template","rootNode","node","document","createElement","event","VueVendorV2","callContainer","callView","preCall","currentCall","videoStrategy","featureConfig","forEach","limit","id","localVideoStream","conferencePageTagInterval","onCallUserInvitedHandler","onCallUserInvited","bind","onCallUserStateChangedHandler","onCallUserStateChanged","onCallUserMicrophoneStateHandler","onCallUserMicrophoneState","onCallLocalMediaReceivedHandler","debounce","onCallLocalMediaReceived","onCallUserStreamReceivedHandler","onCallUserStreamReceived","onCallUserStreamRemovedHandler","onCallUserStreamRemoved","onCallUserVoiceStartedHandler","onCallUserVoiceStarted","onCallUserVoiceStoppedHandler","onCallUserVoiceStopped","onCallUserScreenStateHandler","onCallUserScreenState","onCallUserRecordStateHandler","onCallUserRecordState","onCallUserFloorRequestHandler","onCallUserFloorRequest","_onCallJoinHandler","onCallJoin","onCallLeaveHandler","onCallLeave","onCallDestroyHandler","onCallDestroy","onPreCallDestroyHandler","onPreCallDestroy","onPreCallUserStateChangedHandler","onPreCallUserStateChanged","waitingForCallStatus","waitingForCallStatusTimeout","callEventReceived","callRecordState","Call","View","RecordState","Stopped","callRecordType","RecordType","None","desktop","floatingScreenShareWindow","initDesktopEvents","initRestClient","subscribePreCallChanges","initPullClient","initCore","setModelData","initComponent","initCallInterface","initUploader","initUserComplete","platform","isBitrixDesktop","resolve","Desktop","FloatingScreenShare","onBackToCallClick","onFloatingScreenShareBackToCallClick","onStopSharingClick","onFloatingScreenShareStopClick","addCustomEvent","title","x","y","width","height","app","setSharingData","show","Logger","log","window","addEventListener","onWindowFocus","onWindowBlur","isReady","opener","top","BXDesktopSystem","CloseTab","location","href","getHost","setConfId","conferenceId","isIntranetOrExtranet","pullClient","PullClient","serverEnabled","skipStorageInit","configTimestamp","skipCheckRevision","getPublicListMethod","PULL","start","subscribe","ImCallPullHandler","store","controller","getStore","application","Controller","host","languageId","language","pull","client","rest","vuexBuilder","database","browser","isIe","databaseName","databaseType","VuexBuilder","DatabaseType","localStorage","models","CallApplicationModel","create","ready","getStartupErrorCode","setError","createVue","el","data","getChatId","getDialogId","vue","commit","dialog","passChecked","conferenceTitle","getElementById","container","showChatButtons","showShareButton","getFeatureState","FeatureState","Disabled","showRecordButton","userLimit","Util","getUserLimit","layout","device","isMobile","Layout","Mobile","Centered","uiState","UiState","Preparing","blockedButtons","localUserState","UserState","Idle","hiddenButtons","Event","onButtonClick","onCallButtonClick","onReplaceCamera","onCallReplaceCamera","onReplaceMicrophone","onCallReplaceMicrophone","onReplaceSpeaker","onCallReplaceSpeaker","onChangeHdVideo","onCallViewChangeHdVideo","onChangeMicAutoParams","onCallViewChangeMicAutoParams","onUserNameMouseOver","onCallViewUserNameMouseOver","onUserNameMouseOut","onCallViewUserNameMouseOut","onUserNameClick","onCallViewUserNameClick","onUserChangeNameClick","onCallViewUserChangeNameClick","blockAddUser","blockHistoryButton","state","callApplication","common","setUserId","switchToSessAuth","hashFromCookie","getUserHashCookie","setChatId","SidePanel","Instance","disableAnchorBinding","user_hash","message","setLocalUserId","created","userCount","uploader","Uploader","generatePreview","sender","actionUploadChunk","actionCommitFile","eventData","getData","dispatch","fields","status","FileStatus","upload","progress","file","fileType","type","startsWith","authorId","getUserId","extension","split","splice","size","image","previewData","previewDataWidth","previewDataHeight","wait","authorName","getCurrentUser","urlPreview","URL","createObjectURL","fileId","addMessage","source","previewBlob","find","getters","fileCommit","uploadId","messageText","text","messageId","fileError","initUser","startPageTagInterval","tryJoinExistingCall","initCall","initPullHandlers","subscribeToStoreChanges","initComplete","clearInterval","setInterval","LocalStorage","set","CallEngine","getConferencePageTag","entityType","entityId","provider","Provider","Voximplant","Type","Permanent","success","setTimeout","setConferenceStatus","onCallCreated","e","call","associatedEntity","updatePreCallCounter","onUserStateChanged","onDestroy","setConferenceStartDate","startDate","userReadyToJoin","videoEnabled","joinWithVideo","Hardware","init","startCall","removeEventListener","clearTimeout","releasePreCall","userInCallCount","getParticipatingUsers","length","setRestClient","setPullClient","setCurrentUserId","unblockButtons","destroy","strategyType","VideoStrategy","OnlySpeaker","AllowAll","mutation","payload","updateUserData","counter","setButtonCounter","trace","removeCallEvents","releaseLocalMedia","close","values","microphoneList","CallApplicationErrorCode","missingMicrophone","enableMediaSelection","isHttps","unsupportedBrowser","unsafeConnection","setLayout","Grid","setUiState","Calling","setLocalUserState","Connected","setLocalStream","stopLocalVideoStream","setCameraState","Engine","getInstance","createCall","enableMicAutoParameters","joinExisting","useHdVideo","defaultMicrophone","setMicrophoneId","defaultCamera","setCameraId","appendUsers","getUsers","getCallUsers","userData","bindCallEvents","isMuted","setMuted","isNew","setVideoEnabled","inviteUsers","answer","useVideo","hangup","isRecording","CallRecordStop","callRecordMenu","userLeftCall","kickedFromCall","disconnect","endCall","includeSelf","keys","push","stream","getTracks","tr","stop","cameraId","micId","Enabled","articleCode","getFeature","getDesktopVersion","canRecord","UI","InfoHelper","deviceId","$emit","microphoneId","defaultSpeaker","preferHdQuality","allowHdVideo","allowMicAutoParams","isExternalUser","toggleLocalUserNameEditIcon","toggleLocalUserNameInput","renameGuestMobile","renameGuest","needToUpdate","toggleLocalUserNameLoader","setUserName","newName","toggleRenameSliderInputLoader","renameSlider","buttonName","handlers","onCallViewHangupButtonClick","onCallViewCloseButtonClick","toggleMute","onCallViewToggleMuteButtonClick","toggleScreenSharing","onCallViewToggleScreenSharingButtonClick","record","onCallViewRecordButtonClick","toggleVideo","onCallViewToggleVideoButtonClick","showChat","onCallViewShowChatButtonClick","share","onCallViewShareButtonClick","fullscreen","onCallViewFullScreenButtonClick","floorRequest","onCallViewFloorRequestButtonClick","muted","CallRecordMute","Limited","showFeatureLimitSlider","isScreenSharingStarted","stopScreenSharing","CallRecordStopSharing","callId","startScreenSharing","recordState","Started","Menu","bindElement","items","onclick","item","onCallViewRecordMenuClick","Video","getMenuWindow","Audio","angle","position","offset","offsetTop","offsetLeft","events","onPopupClose","onPopupDestroy","toggle","setButtonActive","Helper","Paused","CallRecordPause","Resumed","sendRecordState","action","date","Date","initialized","video","cameraList","notifyWidth","body","clientWidth","Notification","Center","notify","content","Loc","getMessage","autoHideDelay","Clipboard","copy","getDialogData","public","link","toggleFullScreen","BXDesktopWindow","ExecuteCommand","hide","webkitFullscreenElement","fullscreenElement","isFullScreen","exitFullScreen","enterFullScreen","IsChrome","IsSafari","webkitRequestFullScreen","IsFirefox","requestFullscreen","cancelFullScreen","mozCancelFullScreen","webkitCancelFullScreen","exitFullscreen","toggleChat","floorState","getUserFloorRequestState","getCurrentUserId","talkingState","getUserTalking","setUserFloorRequestState","requestFloor","callViewFloorRequestTimeout","onUserInvited","onUserMicrophoneState","onLocalMediaReceived","onStreamReceived","onStreamRemoved","onUserVoiceStarted","onUserVoiceStopped","onUserScreenState","onUserRecordState","onUserFloorRequest","onJoin","onLeave","addUser","setUserState","setUserMicrophoneState","microphoneState","tag","blockSwitchCamera","updateButtons","callFromMobile","unblockSwitchCamera","setStream","mediaRenderer","kind","setVideoRenderer","setUserTalking","setUserScreenState","screenState","setRecordState","windowId","bxdWindowId","fileName","dialogName","callDate","Main","format","formatRecordDate","replace","getRestClient","CallRecordStart","cropTop","cropBottom","requestActive","local","restart","changedValues","newState","isChatShow","dialogData","newUrl","history","pushState","MAX_LENGTH","AUTO_HIDE_TIME","whole","imol","historyId","command","substring","notifyNode","props","className","html","EventType","textarea","insertText","errorCode","conferenceStarted","conferenceStartDate","chat_id","setPassword","isUnreadMessagesLoaded","sendMessage","processSendMessages","FILE_ID","sending","getDiskFolderId","requestDiskFolderId","filter","element","sendMessageWithFile","stopWriting","ImRestMethod","imMessageAdd","response","diskFolderId","senderOptions","customHeaders","getUserHash","addTask","taskId","fileData","generateUniqueName","addFilesFromEvent","retry","requestDiskFolderPromise","flagRequestDiskFolderIdSended","imDiskFolderGet","executeRestAnswer","ImRestMethodHandler","imDiskFileCommit","upload_id","template_id","file_template_id","phrases","addLocalize","getLocalize","origin","startupErrorCode","protocol","user","userHash","cookie","Cookie","get","undefined"],"mappings":"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"}
| ver. 1.4 |
Github
|
.
| PHP 7.4.33 | Generation time: 0.27 |
proxy
|
phpinfo
|
Settings