{"version":3,"sources":["webpack:///js/app.1731dc4fbc6e73db5a6c.js","webpack:///./src/log.ts","webpack:///./src/peers.ts","webpack:///./src/device.ts","webpack:///./src/screenshare.ts","webpack:///./src/components/Stream.vue?092d","webpack:///./src/session.ts","webpack:///./src/components/AudioDeviceSelect.vue?19b7","webpack:///./src/components/OptionsMenuSelect.vue?5c53","webpack:///./src/components/VideoDeviceSelect.vue?bfce","webpack:///./src/internationalization.ts","webpack:///./src/plugin/socket.ts","webpack:///./src/polyfills.ts","webpack:///./src/store/index.ts","webpack:///./src/App.vue?35a7","webpack:///./src/App.vue?5bd1","webpack:///./src/components/JoinPrompt.vue?d7b8","webpack:///./src/components/Local.vue?bfe5","webpack:///./src/components/MyStream.vue?9297","webpack:///./src/components/OptionsMenuSelect.vue?cec2","webpack:///./src/components/ScreenMenuSelect.vue?7702","webpack:///./src/components/Stream.vue?9690","webpack:///./src/App.vue?54ea","webpack:///./src/components/AudioDeviceSelect.vue?ac13","webpack:///./src/components/ChatPanel.vue?e4f3","webpack:///./src/components/InfoBox.vue?15e6","webpack:///./src/components/JoinPrompt.vue?f144","webpack:///./src/components/Local.vue?b110","webpack:///./src/components/MyStream.vue?f4e7","webpack:///./src/components/OptionsMenuSelect.vue?9b5a","webpack:///./src/components/Participants.vue?fff2","webpack:///./src/components/ScreenMenuSelect.vue?456e","webpack:///./src/components/Spinner.vue?5b28","webpack:///./src/components/Stream.vue?d1d9","webpack:///./src/components/VideoDeviceSelect.vue?993e","webpack:///./src/components/chat/Message.vue?5c70","webpack:///./src/bandwidth.ts","webpack:///./src/communication.ts","webpack:///./src/frame_rate.ts","webpack:///./src/guid.ts","webpack:///./src/ice.ts","webpack:///./src/main.ts","webpack:///./src/store/chat.ts","webpack:///./src/assets/chat.svg","webpack:///./src/assets/close.svg","webpack:///./src/assets/wirecast-rendezvous-logo.png","webpack:///./src/components/ChatPanel.vue?9f87","webpack:///./src/components/InfoBox.vue?d8ac","webpack:///./src/components/JoinPrompt.vue?a64c","webpack:///./src/components/Local.vue?811d","webpack:///./src/components/MyStream.vue?8bd5","webpack:///./src/components/Participants.vue?da77","webpack:///./src/components/ScreenMenuSelect.vue?c7c5","webpack:///./src/components/Spinner.vue?9eb2","webpack:///./src/components/chat/Message.vue?5677","webpack:///./src/components/Participants.vue?0a2d","webpack:///./src/components/AudioDeviceSelect.vue?3a74","webpack:///./src/components/chat/Message.vue?2f3d","webpack:///./src/components/VideoDeviceSelect.vue?7798","webpack:///./src/components/Local.vue?b597","webpack:///./src/components/JoinPrompt.vue?e334","webpack:///./src/components/Stream.vue?63d2","webpack:///./src/components/ScreenMenuSelect.vue?29f4","webpack:///./src/App.vue?2f5f","webpack:///./src/components/InfoBox.vue?57a1","webpack:///./src/components/MyStream.vue?cf11","webpack:///./src/components/Spinner.vue?9119","webpack:///./src/components/OptionsMenuSelect.vue?128e","webpack:///./src/components/ChatPanel.vue?486c"],"names":["webpackJsonp","Array","concat","module","__webpack_exports__","__webpack_require__","createLog","moduleName","content","_i","arguments","length","shouldPrint","console","log","apply","__spreadArrays","Date","__WEBPACK_IMPORTED_MODULE_0_search_params__","n","this","s","i","il","r","k","a","j","jl","params","window","location","search","replace","find","param","name","getByIdentifier","peerIdentifier","registeredPeers","get","getAll","limitBitrate","peers","from","values","peersCount","setLimit","peer","connection","localDescription","type","createOffer","offerToReceiveAudio","offerToReceiveVideo","then","e","setLocalDescription","sdp","remoteDescription","setRemoteDescription","RTCSessionDescription","__WEBPACK_IMPORTED_MODULE_2__bandwidth__","error","createAnswer","forEach","pendingLimit","clearInterval","hasEmptyLocalDescription","_a","signalingState","iceConnectionState","toString","setInterval","createConnection","session","peerName","reconnectCount","master","supportMusic","supportSimultaneousScreen","_this","identifier","RTCPeerConnection","iceServers","stream","isSuspended","onReady","screenStream","transceivers","Transceivers","lastResult","isLocal","localConnectionType","remoteConnectionType","bandwidthStatsTicker","onicecandidate","candidate","__WEBPACK_IMPORTED_MODULE_1__session__","peersIdentifier","sdpMid","sdpMLineIndex","onsignalingstatechange","event","ontrack","streams","getAudioTracks","getVideoTracks","onremovetrack","set","__awaiter","stats","__generator","label","getStats","sent","report","now","timestamp","bytesSent","bytes","packetsSent","id","bitrate","onBitrateChange","toFixed","findTransceiverIndex","trackSender","getTransceivers","findIndex","elem","sender","addTracks","localStream","localScreenStream","audioTrack","videoTrack","addTrack","regularAudio","regularVideo","addTransceiver","direction","musicAudio","screenVideo","screenShareTrack","closeConnection","close","closeAll","value","remove","removeAll","clear","setH264","originalSDP","matchH264Codec","match","h264Code","m","str","codecs","split","filter","codec","includes","join","modifySdpForMusic","isLocalDesc","newSDP","lines","pop","audio_section_counter","line","indexOf","description","desc","_b","updateDescriptions","$store","answer","__WEBPACK_IMPORTED_MODULE_4_webrtc_adapter__","browserDetails","browser","dispatch","sessionGuid","offer","createCandidate","candidateOptions","e_1","RTCIceCandidate","trys","push","addIceCandidate","__WEBPACK_IMPORTED_MODULE_3__log__","thisArg","_arguments","P","generator","adopt","resolve","Promise","reject","fulfilled","step","next","rejected","result","done","body","verb","v","op","f","TypeError","_","y","t","call","ops","g","throw","return","Symbol","iterator","undefined","Map","getInputDevices","devicesType","devices","navigator","mediaDevices","enumerateDevices","kind","deviceId","test","RegExp","getDummyVideoTrack","dummyVideoTrack","canvas","document","createElement","getContext","captureStream","Object","assign","enabled","ctx","dummyTrackInterval","fillRect","stopDummyVideoTrack","getVideoDevices","getAudioDevices","getAudioTrackForDevice","audioDevice","audioProcessingDisabled","audioDeviceId","audioConstraints","audioStream","audio","exact","autoGainControl","ideal","echoCancellation","noiseSuppression","video","getUserMedia","getVideoTrackForDevice","videoDevice","videoDeviceId","frameRateValue","frameRateConstraint","constrains","videoStream","__WEBPACK_IMPORTED_MODULE_1__frame_rate__","frameRate","max","__assign","width","min","height","getPreferredDevices","__WEBPACK_IMPORTED_MODULE_0_js_cookie__","setPreferredDevices","findDeviceById","deviceToFindId","allDevices","device","getDefaultFromList","preferredDeviceId","deviceList","store","foundDevice","__WEBPACK_IMPORTED_MODULE_2__log__","p","prototype","hasOwnProperty","getScreenStream","getters","getDisplayMedia","cursor","configureStreamForScreenAndVideo","$socket","err_1","addEventListener","sharingScreenAndVideo","disableScreenAndVideo","message","configureStreamForScreenOnly","err_2","sharingScreenOnly","disableScreenOnly","commit","enableScreenAndVideo","sendWithoutSession","enableScreenOnly","errorId","deviceName","stopScreen","stop","__WEBPACK_IMPORTED_MODULE_0__log__","exports","injectStyle","ssrContext","Component","customBlock","createWebSocket","onOpen","onClose","getAppState","host","socket","WebSocket","onopen","onclose","__WEBPACK_IMPORTED_MODULE_1__peers__","setTimeout","init","options","onMessage","peerGuid","__WEBPACK_IMPORTED_MODULE_0__guid__","onmessage","send","__WEBPACK_IMPORTED_MODULE_2__ice__","action","payload","json","JSON","stringify","receive","receiverFn","parse","data","__rest","getOwnPropertySymbols","propertyIsEnumerable","isAnySyntax","languageString","isLanguageSyntax","isLocaleSyntax","extractLanguageFromLocale","locale","extractLanguagesFromHeader","acceptsLanguageString","isSupported","language","supportedLanguages","extractLanguage","DEFAULT_LANGUAGE","choices","map","bestChoice","getLanguage","__WEBPACK_IMPORTED_MODULE_0__session__","install","Vue","readyPromise","bus","open","userName","username","appState","$emit","bind","onerror","onError","$on","chatEnabled","entry","url","startsWith","urls","turnUsername","credential","turnPassword","on","listener","messageJson","whenReady","itemToTest","item","Element","matches","msMatchesSelector","webkitMatchesSelector","__WEBPACK_IMPORTED_MODULE_0_vue__","__WEBPACK_IMPORTED_MODULE_1_vuex__","__WEBPACK_IMPORTED_MODULE_2__device__","__WEBPACK_IMPORTED_MODULE_3__peers__","__WEBPACK_IMPORTED_MODULE_4__chat__","use","getUserMediaCalled","Store","modules","chat","state","errors","fatal","minor","current","local","updated","defaultLocalUserName","localUserName","screenShareError","bitrateLimitPeerCount","videoFlipped","localAudioEnabled","screenTallyActive","fatalError","minorError","audioDeviceError","videoDeviceError","videoDevices","audioDevices","currentVideoDevice","currentAudioDevice","preferredVideoDevice","preferredAudioDevice","localStreamUpdated","supportScreensharing","mutations","newState","newName","val","newValue","actions","updateAppState","setFatalError","setMinorError","setAudioDeviceError","setVideoDeviceError","setScreenShareError","setLocalScreenStream","loadVideoDevices","_c","_d","loadAudioDevices","updateCurrentVideoDevice","previousDevice","updateCurrentAudioDevice","updateLocalAudioTrack","catchAudioDeviceError","getAudioTrack","currentStream","error_1","removeTrack","MediaStream","updateLocalVideoTrack","isVideoDeviceScreen","catchVideoDeviceError","getVideoTrack","getScreenSharingTrack","error_2","updatePeerTracks","videoTransceiver","replaceTrack","regularAudioTransceiver","enhancedAudioTransceiver","updateLocalUserName","removePeer","addPeer","clearPeers","updateSharingScreenAndVideo","screenShareTransceiver","updateVideoFlipped","updateAudioProcessingDisabled","updateSupportMusic","updateLocalAudioEnabled","updateSupportSimultaneousScreen","updateScreenTallyActive","__i18n","defineProperty","__WEBPACK_IMPORTED_MODULE_2__components_Participants__","__WEBPACK_IMPORTED_MODULE_2__components_Participants___default","__WEBPACK_IMPORTED_MODULE_3__components_ChatPanel__","__WEBPACK_IMPORTED_MODULE_3__components_ChatPanel___default","__WEBPACK_IMPORTED_MODULE_4__components_Local__","__WEBPACK_IMPORTED_MODULE_4__components_Local___default","__WEBPACK_IMPORTED_MODULE_5__components_InfoBox__","__WEBPACK_IMPORTED_MODULE_5__components_InfoBox___default","__WEBPACK_IMPORTED_MODULE_6__components_JoinPrompt__","__WEBPACK_IMPORTED_MODULE_6__components_JoinPrompt___default","__WEBPACK_IMPORTED_MODULE_7__components_Spinner__","__WEBPACK_IMPORTED_MODULE_7__components_Spinner___default","__WEBPACK_IMPORTED_MODULE_8__components_Stream__","__WEBPACK_IMPORTED_MODULE_8__components_Stream___default","__WEBPACK_IMPORTED_MODULE_9__screenshare__","component","components","InfoBox","JoinPrompt","Participants","ChatPanel","Local","Stream","watch","$i18n","computed","isError","isPure","isConnected","isJoining","isDisconnected","isIOS","isErrorNoRTC","isSessionUnknown","isSessionFull","isSessionAlreadyConnected","chatFeatureEnabled","methods","onMinorErrorDismiss","onShareScreenErrorDismiss","enableScreenshareOnly","disableScreenshareOnly","created","userAgent","__WEBPACK_IMPORTED_MODULE_0_vuex__","__WEBPACK_IMPORTED_MODULE_1__device__","selectedDevice","unsubscribe","onChange","beforeMount","subscribe","preferredDevice","destroyed","__WEBPACK_IMPORTED_MODULE_1_lodash__","__WEBPACK_IMPORTED_MODULE_2__chat_Message__","__WEBPACK_IMPORTED_MODULE_2__chat_Message___default","Message","messageTextareaFocus","noMessages","chatMessages","sendMessage","shiftKey","trimmedMessage","autoResize","closeChatPanel","setChatPanelOpened","scrollToLastMessage","container","$refs","scrollTop","scrollHeight","messageTextarea","style","cssText","keyCode","showChat","mounted","extend","__WEBPACK_IMPORTED_MODULE_0__communication__","__WEBPACK_IMPORTED_MODULE_1__MyStream_vue__","__WEBPACK_IMPORTED_MODULE_1__MyStream_vue___default","MyStream","isButtonDisabled","onInput","defaultName","onSubmit","__WEBPACK_IMPORTED_MODULE_1__Stream__","__WEBPACK_IMPORTED_MODULE_1__Stream___default","__WEBPACK_IMPORTED_MODULE_2__VideoDeviceSelect__","__WEBPACK_IMPORTED_MODULE_2__VideoDeviceSelect___default","__WEBPACK_IMPORTED_MODULE_3__AudioDeviceSelect__","__WEBPACK_IMPORTED_MODULE_3__AudioDeviceSelect___default","__WEBPACK_IMPORTED_MODULE_4__OptionsMenuSelect__","__WEBPACK_IMPORTED_MODULE_4__OptionsMenuSelect___default","__WEBPACK_IMPORTED_MODULE_5__ScreenMenuSelect__","__WEBPACK_IMPORTED_MODULE_5__ScreenMenuSelect___default","VideoDeviceSelect","AudioDeviceSelect","OptionsMenuSelect","ScreenMenuSelect","localPeerId","dropdownVisible","screenDropdownVisible","sourceStream","toggleDropdown","toggleScreenDropdown","target","__WEBPACK_IMPORTED_MODULE_0__Stream__","__WEBPACK_IMPORTED_MODULE_0__Stream___default","__WEBPACK_IMPORTED_MODULE_1__VideoDeviceSelect__","__WEBPACK_IMPORTED_MODULE_1__VideoDeviceSelect___default","__WEBPACK_IMPORTED_MODULE_2__AudioDeviceSelect__","__WEBPACK_IMPORTED_MODULE_2__AudioDeviceSelect___default","__WEBPACK_IMPORTED_MODULE_3__OptionsMenuSelect__","__WEBPACK_IMPORTED_MODULE_3__OptionsMenuSelect___default","__WEBPACK_IMPORTED_MODULE_5__device__","$nextTick","preferredConstraints","fallbackConstraints","getTracks","track","props","allowed","getScreenShareStream","onScreenSharingChange","checked","layoutModified","expandedStream","screenSource","isAnyStreamExpanded","expandStream","videoDisplayClass","__WEBPACK_IMPORTED_MODULE_1__screenshare__","selectedOption","toggleTrack","tracksGetter","setVideoElementSource","$el","source","videoElement","querySelector","VideoOriginal","muted","onloadedmetadata","videoWidth","videoHeight","srcObject","setVideoElementScreenSource","VideoScreen","lockElementHeight","firstVideoElement","offsetHeight","freeElementHeight","removeAttribute","attachCanPlayEvent","onCanPlay","isVideoReady","removeEventListener","__WEBPACK_IMPORTED_MODULE_1_search_params__","__WEBPACK_IMPORTED_MODULE_2__screenshare__","handler","isLocalStream","videoEnabled","audioEnabled","isLive","isAudioMuted","remoteAudioEnabled","showBitrate","isChrome","streamClass","localInitialMode","isTallyActive","isScreenShare","isRemoteAudioMuted","showChatIcon","toggleVideo","toggleAudio","subaction","tallyPeerIdentifier","__WEBPACK_IMPORTED_MODULE_1_date_fns__","__WEBPACK_IMPORTED_MODULE_2_autolinker__","isMaster","linkedContent","link","className","sanitizeHtml","stripPrefix","time","peerId","messageIndex","index","localChatPeerId","isDeleted","deleted","canBeDeleted","messageBubbleColor","getPeerColor","chatBubbleCssClass","bubbleClass","deleteMessage","isFirefox","__WEBPACK_IMPORTED_MODULE_3_webrtc_adapter__","getBitrate","bandwidth","getBitrateByPeersCount","keys","setMediaBitrate","media","bitrateWanted","lineType","debug","newLines","slice","catchConnectionError","fn","onPeerConnectionClosed","onPeerConnectionDisconnected","onPeerConnectionConnected","candidatePair","localIP","remoteIP","turnIPs","nominated","localCandidateId","ipAddress","ip","remoteCandidateId","iceServer","exec","localType","remoteType","onPeerConnectionFailed","restartIce","createPeer","suspended","wirecastPeer","__WEBPACK_IMPORTED_MODULE_0__peers__","onconnectionstatechange","connectionState","oniceconnectionstatechange","onnegotiationneeded","getOrCreatePeer","onCreateAnswer","screenShareStream","onICE","onCreateOffer","info","onGotAnswer","onGotChatMessages","messages","onDeletedChatMessage","all","onPeerDisconnected","__WEBPACK_IMPORTED_MODULE_4__screenshare__","onDisconnect","onUpdateSharingStateResponse","establish","getFrameRate","fps","savePeerGuid","guid","__WEBPACK_IMPORTED_MODULE_1_js_cookie___default","peerGuidCookie","createPeerGuid","__WEBPACK_IMPORTED_MODULE_0_uuid_v4___default","getPeerGuid","getSessionGuid","pathname","Error","__WEBPACK_IMPORTED_MODULE_0_uuid_v4__","__WEBPACK_IMPORTED_MODULE_1_js_cookie__","d","servers","__WEBPACK_IMPORTED_MODULE_1_vue_i18n__","__WEBPACK_IMPORTED_MODULE_2__App__","__WEBPACK_IMPORTED_MODULE_2__App___default","__WEBPACK_IMPORTED_MODULE_3__plugin_socket__","__WEBPACK_IMPORTED_MODULE_4__store__","__WEBPACK_IMPORTED_MODULE_5__internationalization__","__WEBPACK_IMPORTED_MODULE_6__polyfills__","config","productionTip","i18n","el","template","App","Raven","__WEBPACK_IMPORTED_MODULE_0_lodash__","GUEST_PEERS_CHAT_COLORS","chatPanelOpened","peersColors","newMessageIndicator","sort","message1","message2","getPeersWithColor","showNewMessageIndicator","addChatMessages","newMessages","setChatFeatureEnabled","newChatFeatureStatus","newOpenedStatus","setLocalChatPeerId","newPeerId","setLocalChatPeerColor","setPeerChatColor","colorIndex","color","setNewMessageIndicator","newStatus","deleteChatMessage","deletedMessageIndex","deleteAllChatMessages","toggleChatPanelOpened","gotChatMessages","messagePeers","newPeers","enableChat","disableChat","render","_vm","_h","$createElement","_self","staticClass","class","expanded-view","_l","key","attrs","screen-source","is-local-stream","nativeOn","click","$event","staticRenderFns","_v","directives","rawName","expression","domProps","_q","change","__c","_s","_e","backgroundColor","innerHTML","disabled","title","$t","data-settings-dropdown","data-screen-dropdown","submit","preventDefault","maxlength","input","composing","staticStyle","text-align","stopPropagation","_m","isVisible","share-mode-video","autoplay","data-original","share-mode-screen","data-screen","slot","display","overflow","background","background-size","href","is-visible","src","_t","initialMode","local-initial-mode","isArray","$$a","$$el","$$c","$$i","ref","rows","placeholder","keyup","_k","keydown","focus","focusout"],"mappings":"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e,EAAQ4T,GoB1pExB5T,EAAA4T,QAAA,SAAAG,GAAuCA,EAAAc,QAAA0J,OAAA,gTpBgqEjC,SAAUve,EAAQ4T,GqBhqExB5T,EAAA4T,QAAA,SAAAG,GAAuCA,EAAAc,QAAA0J,OAAA,4QrBqqE9B,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CAEH,SAAUve,EAAQ4T,KAMlB,SAAU5T,EAAQ4T,KAMlB,SAAU5T,EAAQ4T,KAMlB,SAAU5T,EAAQ4T,KAMlB,SAAU5T,EAAQ4T,KAMlB,SAAU5T,EAAQ4T,KAMlB,SAAU5T,EAAQ4T,KAMlB,SAAU5T,EAAQ4T,KAMlB,SAAU5T,EAAQ4T,KAMlB,SAAU5T,EAAQ4T,KAMlB,SAAU5T,EAAQ4T,KAMlB,SAAU5T,EAAQ4T,KAMlB,SAAU5T,EAAQ4T,KAMlB,SAAU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","file":"js/app.1731dc4fbc6e73db5a6c.js","sourcesContent":["webpackJsonp([1],Array(18).concat([\n/* 18 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (immutable) */ __webpack_exports__[\"a\"] = createLog;\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_search_params__ = __webpack_require__(28);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_search_params___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_search_params__);\nvar __spreadArrays = (this && this.__spreadArrays) || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n};\n\nvar params = __WEBPACK_IMPORTED_MODULE_0_search_params__[\"parse\"](window.location.search.replace(/^\\?/, \"\"));\nvar shouldPrint = !!params.find(function (param) { return param.name === \"show_logs\"; });\nfunction createLog(moduleName) {\n return function () {\n var content = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n content[_i] = arguments[_i];\n }\n if (!shouldPrint)\n return;\n console.log.apply(console, __spreadArrays([\"[ \" + Date() + \" ]\", \"[ \" + moduleName + \" ]\"], content));\n };\n}\n\n\n/***/ }),\n/* 19 */,\n/* 20 */,\n/* 21 */,\n/* 22 */,\n/* 23 */,\n/* 24 */,\n/* 25 */,\n/* 26 */,\n/* 27 */,\n/* 28 */,\n/* 29 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* unused harmony export Transceivers */\n/* harmony export (immutable) */ __webpack_exports__[\"e\"] = getByIdentifier;\n/* harmony export (immutable) */ __webpack_exports__[\"i\"] = getAll;\n/* harmony export (immutable) */ __webpack_exports__[\"c\"] = createConnection;\n/* harmony export (immutable) */ __webpack_exports__[\"m\"] = findTransceiverIndex;\n/* harmony export (immutable) */ __webpack_exports__[\"h\"] = addTracks;\n/* harmony export (immutable) */ __webpack_exports__[\"a\"] = closeConnection;\n/* harmony export (immutable) */ __webpack_exports__[\"k\"] = closeAll;\n/* harmony export (immutable) */ __webpack_exports__[\"b\"] = remove;\n/* harmony export (immutable) */ __webpack_exports__[\"l\"] = removeAll;\n/* harmony export (immutable) */ __webpack_exports__[\"j\"] = setRemoteDescription;\n/* unused harmony export setLocalDescription */\n/* harmony export (immutable) */ __webpack_exports__[\"f\"] = updateDescriptions;\n/* harmony export (immutable) */ __webpack_exports__[\"d\"] = createOffer;\n/* harmony export (immutable) */ __webpack_exports__[\"g\"] = createCandidate;\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_search_params__ = __webpack_require__(28);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_search_params___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_search_params__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__session__ = __webpack_require__(69);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__bandwidth__ = __webpack_require__(336);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__log__ = __webpack_require__(18);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_webrtc_adapter__ = __webpack_require__(30);\n/**\n * Peer lifecycle management\n * @module Peer\n */\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\n\n\n\n\n\nvar log = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_3__log__[\"a\" /* default */])(\"peers\");\nvar Transceivers = /** @class */ (function () {\n function Transceivers() {\n this.regularAudio = undefined;\n this.regularVideo = undefined;\n this.screenVideo = undefined;\n this.musicAudio = undefined;\n }\n return Transceivers;\n}());\n\nvar registeredPeers = new Map();\nfunction getByIdentifier(peerIdentifier) {\n return registeredPeers.get(peerIdentifier);\n}\n// Debug only\nfunction getAll() {\n return registeredPeers;\n}\nfunction limitBitrate() {\n var peers = Array.from(getAll().values());\n var peersCount = peers.length;\n log(\"Limiting bitrate because of peers count:\", peersCount);\n var setLimit = function (peer) {\n var connection = peer.connection;\n log(\"Limiting bitrate for\", peer.name, \"type:\", connection.localDescription.type);\n if (connection.localDescription.type === \"offer\") {\n connection\n .createOffer({\n offerToReceiveAudio: 1,\n offerToReceiveVideo: 1,\n })\n .then(function (e) {\n return connection.setLocalDescription(e);\n })\n .then(function () {\n var sdp = connection.remoteDescription.sdp;\n connection.setRemoteDescription(new RTCSessionDescription({\n type: \"answer\",\n sdp: __WEBPACK_IMPORTED_MODULE_2__bandwidth__[\"a\" /* setMediaBitrate */](sdp, \"video\"),\n }));\n })[\"catch\"](function (error) {\n console.error(error);\n console.error(\"invalid sdp:\", __WEBPACK_IMPORTED_MODULE_2__bandwidth__[\"a\" /* setMediaBitrate */](connection.remoteDescription.sdp, \"video\"));\n });\n }\n if (\"answer\" === connection.localDescription.type) {\n connection\n .setRemoteDescription(new RTCSessionDescription({\n type: \"offer\",\n sdp: __WEBPACK_IMPORTED_MODULE_2__bandwidth__[\"a\" /* setMediaBitrate */](connection.remoteDescription.sdp, \"video\"),\n }))\n .then(function () {\n return connection.createAnswer();\n })\n .then(function (e) {\n return connection.setLocalDescription(e);\n })[\"catch\"](function (error) { return console.error(\"Error while limiting bandwidth and creating answer\", error); });\n }\n };\n peers.forEach(function (peer) {\n if (peer.pendingLimit) {\n clearInterval(peer.pendingLimit);\n }\n var hasEmptyLocalDescription = function (_a) {\n var connection = _a.connection;\n if (!connection.localDescription)\n return true;\n return !connection.localDescription.type;\n };\n if (peer.connection.signalingState !== \"stable\" ||\n hasEmptyLocalDescription(peer) ||\n peer.connection.iceConnectionState.toString() !== \"stable\") {\n log(\"Connection not stable for\", peer.name, \" - waiting...\");\n peer.pendingLimit = setInterval(function () {\n if (peer.connection.signalingState !== \"stable\" ||\n hasEmptyLocalDescription(peer) ||\n peer.connection.iceConnectionState.toString() !== \"stable\") {\n return;\n }\n setLimit(peer);\n clearInterval(peer.pendingLimit);\n }, 250);\n return;\n }\n setLimit(peer);\n });\n}\n/**\n * Creates new RTCPeerConnection\n */\nfunction createConnection(session, peerIdentifier, peerName, reconnectCount, master, supportMusic, supportSimultaneousScreen) {\n var _this = this;\n var peer = {\n identifier: peerIdentifier,\n connection: new RTCPeerConnection({ iceServers: session.iceServers }),\n name: peerName,\n stream: null,\n isSuspended: false,\n onReady: function () { },\n pendingLimit: null,\n master: master,\n supportMusic: master && supportMusic,\n screenStream: null,\n supportSimultaneousScreen: supportSimultaneousScreen,\n transceivers: new Transceivers(),\n lastResult: null,\n isLocal: peerName === \"local\",\n localConnectionType: \"\",\n remoteConnectionType: \"\",\n reconnectCount: reconnectCount,\n bandwidthStatsTicker: null,\n };\n var connection = peer.connection;\n connection.onicecandidate = function (_a) {\n var candidate = _a.candidate;\n // REND-50: standard allows candidate.candidate to be empty string\n // but this causes Safari to throw parsing error. Workaround is to\n // not send empty string candidates (only FF send them).\n if (!candidate || !candidate.candidate)\n return;\n __WEBPACK_IMPORTED_MODULE_1__session__[\"a\" /* send */](session, \"ice\", {\n peersIdentifier: peerIdentifier,\n sdp: candidate.candidate,\n sdpMid: candidate.sdpMid,\n sdpMLineIndex: candidate.sdpMLineIndex,\n });\n };\n connection.onsignalingstatechange = function (event) {\n log(\"Signaling state for \" + peer.name + \":\", connection.signalingState);\n };\n connection.ontrack = function (event) {\n if (event.streams.length == 1) {\n if (!event.streams[0].getAudioTracks()[0]) {\n log(\"Adding remote screen stream for\", peer.name);\n peer.screenStream = event.streams[0];\n event.streams[0].onremovetrack = function () {\n event.streams[0].onremovetrack = null;\n peer.screenStream = null;\n };\n }\n else if (event.streams[0].getAudioTracks()[0] && event.streams[0].getVideoTracks()[0]) {\n log(\"Adding remote stream for\", peer.name);\n peer.stream = event.streams[0];\n peer.onReady();\n peer.onReady = function () { };\n }\n }\n };\n registeredPeers.set(peerIdentifier, peer);\n log(\"Created connection for\", peerName);\n // Bandwidth debug peer stats\n clearInterval(peer.bandwidthStatsTicker);\n peer.bandwidthStatsTicker = setInterval(function () { return __awaiter(_this, void 0, void 0, function () {\n var stats;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, connection.getStats(null)];\n case 1:\n stats = _a.sent();\n stats.forEach(function (report) {\n var now = report.timestamp;\n if (report.type === \"outboundrtp\" ||\n report.type === \"outbound-rtp\" ||\n (report.type === \"ssrc\" && report.bytesSent)) {\n var bytes = report.bytesSent;\n var packets = report.packetsSent;\n if (peer.lastResult && peer.lastResult.get(report.id)) {\n // calculate bitrate\n var bitrate = (8 * (bytes - peer.lastResult.get(report.id).bytesSent)) /\n (now - peer.lastResult.get(report.id).timestamp);\n if (bitrate && typeof peer.onBitrateChange === \"function\") {\n peer.onBitrateChange(bitrate.toFixed());\n }\n }\n }\n });\n peer.lastResult = stats;\n return [2 /*return*/];\n }\n });\n }); }, 1000);\n limitBitrate();\n return peer;\n}\nfunction findTransceiverIndex(peer, trackSender) {\n return peer.connection.getTransceivers().findIndex(function (elem) {\n return elem.sender === trackSender;\n });\n}\nfunction addTracks(peer, localStream, localScreenStream) {\n if (!localStream) {\n log(\"Local stream empty\", peer.name);\n return;\n }\n log(\"Adding local tracks to connection\", peer.name);\n var audioTrack = localStream.getAudioTracks()[0];\n var videoTrack = localStream.getVideoTracks()[0];\n if (audioTrack) {\n var trackSender = peer.connection.addTrack(audioTrack, localStream);\n peer.transceivers.regularAudio = findTransceiverIndex(peer, trackSender);\n }\n if (videoTrack) {\n var trackSender = peer.connection.addTrack(videoTrack, localStream);\n peer.transceivers.regularVideo = findTransceiverIndex(peer, trackSender);\n }\n // Add additional transceiver for peers supporting music audio - for now Wirecast only\n if (peer.supportMusic) {\n peer.connection.addTransceiver(\"audio\", { direction: \"inactive\", streams: [localStream] });\n peer.transceivers.musicAudio = peer.connection.getTransceivers().length - 1;\n }\n if (!peer.connection.getTransceivers()[peer.transceivers.screenVideo] && peer.supportSimultaneousScreen) {\n if (localScreenStream && localScreenStream.getVideoTracks()[0]) {\n var screenShareTrack = localScreenStream.getVideoTracks()[0];\n var trackSender = null;\n if (peer.master) {\n trackSender = peer.connection.addTrack(screenShareTrack);\n }\n else {\n trackSender = peer.connection.addTrack(screenShareTrack, localScreenStream);\n }\n peer.transceivers.screenVideo = findTransceiverIndex(peer, trackSender);\n }\n }\n}\nfunction closeConnection(peer) {\n log(\"Closing connection\", peer.name);\n // Stop bandwidth debug peer stats reports\n clearInterval(peer.bandwidthStatsTicker);\n peer.connection.close();\n}\nfunction closeAll() {\n registeredPeers.forEach(function (value) { return closeConnection(value); });\n log(\"Closed all connections\");\n}\nfunction remove(peer) {\n log(\"Removing peer from registry\", peer.name);\n registeredPeers[\"delete\"](peer.identifier);\n}\nfunction removeAll() {\n registeredPeers.clear();\n log(\"Removed all peers\", registeredPeers);\n}\nfunction setH264(originalSDP) {\n var params = __WEBPACK_IMPORTED_MODULE_0_search_params__[\"parse\"](window.location.search.replace(/^\\?/, \"\"));\n var disable = params.find(function (param) { return param.name === \"disable_codec_overriding\"; });\n if (disable) {\n return originalSDP;\n }\n var matchH264Codec = originalSDP.match(/a=rtpmap:([\\d]+) H264/i);\n if (!matchH264Codec) {\n console.error(\"H.264 codec absent in SDP\");\n console.error(\"Original SDP:\", originalSDP);\n return originalSDP;\n }\n var h264Code = matchH264Codec[1];\n log(\"Overriding default codec to H.264\");\n return originalSDP.replace(/(m=video [\\d]+ [a-zA-Z\\/]+) ([\\d ]+)+/, function (m, str, codecs) {\n var newStr = str +\n \" \" +\n (h264Code + \" \" +\n codecs\n .split(\" \")\n .filter(function (codec) { return ![h264Code.toString()].includes(codec); })\n .join(\" \"));\n return newStr;\n });\n}\nfunction modifySdpForMusic(originalSDP, isLocalDesc) {\n var newSDP = \"\";\n var separator = \"\\r\\n\";\n var lines = originalSDP.split(separator);\n lines.pop();\n var audio_section_counter = 0;\n lines.forEach(function (line) {\n if (line.indexOf('m=audio') === 0) {\n audio_section_counter++;\n }\n if (isLocalDesc) {\n if (audio_section_counter > 1) {\n if (line.includes(\"fmtp\")) {\n if (line.includes(\"stereo\")) {\n line = line.replace('stereo=0', 'stereo=1');\n }\n else {\n line += \";stereo=1\";\n }\n }\n }\n }\n else {\n if (audio_section_counter == 1) {\n if (line.includes(\"fmtp\")) {\n if (line.includes(\"stereo\")) {\n line = line.replace('stereo=1', 'stereo=0');\n }\n }\n }\n if (audio_section_counter > 1) {\n if (line.includes(\"fmtp\")) {\n line += \";maxaveragebitrate=256000\";\n }\n }\n }\n newSDP += line + separator;\n });\n return newSDP;\n}\nfunction setRemoteDescription(_a, description) {\n var connection = _a.connection;\n return __awaiter(this, void 0, void 0, function () {\n var desc;\n return __generator(this, function (_b) {\n try {\n desc = new RTCSessionDescription(description);\n return [2 /*return*/, connection.setRemoteDescription(new RTCSessionDescription({\n type: desc.type,\n sdp: setH264(__WEBPACK_IMPORTED_MODULE_2__bandwidth__[\"a\" /* setMediaBitrate */](modifySdpForMusic(desc.sdp, false), \"video\")),\n }))];\n }\n catch (e) {\n throw e;\n }\n return [2 /*return*/];\n });\n });\n}\nfunction setLocalDescription(_a, description) {\n var connection = _a.connection;\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_b) {\n try {\n description.sdp = modifySdpForMusic(description.sdp, true);\n return [2 /*return*/, connection.setLocalDescription(new RTCSessionDescription(description))];\n }\n catch (e) {\n throw e;\n }\n return [2 /*return*/];\n });\n });\n}\n/**\n * A shorthand function to call setRemoteDescription and setLocalDescription\n */\nfunction updateDescriptions(session, peer, description, $store, localStream, localScreenStream) {\n return __awaiter(this, void 0, void 0, function () {\n var answer;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n log(\"Updating description for peer\", peer.name);\n return [4 /*yield*/, setRemoteDescription(peer, description)];\n case 1:\n _a.sent();\n addTracks(peer, localStream, localScreenStream);\n return [4 /*yield*/, peer.connection.createAnswer()];\n case 2:\n answer = _a.sent();\n return [4 /*yield*/, setLocalDescription(peer, answer)\n // Workaround for Safari 15\n // https://telestream.atlassian.net/browse/REND-28\n ];\n case 3:\n _a.sent();\n // Workaround for Safari 15\n // https://telestream.atlassian.net/browse/REND-28\n if (__WEBPACK_IMPORTED_MODULE_4_webrtc_adapter__[\"a\" /* default */].browserDetails.browser === \"safari\") {\n $store.dispatch(\"updatePeerTracks\");\n }\n log(\"Update description\", peer.name);\n answer.sdp = __WEBPACK_IMPORTED_MODULE_2__bandwidth__[\"a\" /* setMediaBitrate */](answer.sdp, \"video\");\n // send the answer to a server to be forwarded back to the caller (you)\n __WEBPACK_IMPORTED_MODULE_1__session__[\"a\" /* send */](session, \"createdAnswer\", {\n sdp: setH264(answer.sdp),\n type: answer.type,\n sessionGuid: session.sessionGuid,\n peersIdentifier: peer.identifier,\n });\n return [2 /*return*/];\n }\n });\n });\n}\nfunction createOffer(session, peer) {\n return __awaiter(this, void 0, void 0, function () {\n var offer;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, peer.connection.createOffer()\n //offer.sdp = setMusicMode(offer.sdp)\n ];\n case 1:\n offer = _a.sent();\n //offer.sdp = setMusicMode(offer.sdp)\n return [4 /*yield*/, setLocalDescription(peer, offer)];\n case 2:\n //offer.sdp = setMusicMode(offer.sdp)\n _a.sent();\n log(\"Creating offer\", peer.name);\n __WEBPACK_IMPORTED_MODULE_1__session__[\"a\" /* send */](session, \"peerMadeOffer\", {\n sdp: setH264(offer.sdp),\n type: offer.type,\n peersIdentifier: peer.identifier,\n });\n return [2 /*return*/];\n }\n });\n });\n}\nfunction createCandidate(session, peer, candidateOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var candidate, e_1;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n candidate = new RTCIceCandidate({\n sdpMLineIndex: candidateOptions.sdpMLineIndex,\n sdpMid: candidateOptions.sdpMid,\n candidate: candidateOptions.sdp,\n });\n log(\"Creating ICE candidate\", peer.name);\n _a.label = 1;\n case 1:\n _a.trys.push([1, 3, , 4]);\n return [4 /*yield*/, peer.connection.addIceCandidate(candidate)];\n case 2:\n _a.sent();\n return [3 /*break*/, 4];\n case 3:\n e_1 = _a.sent();\n console.error(\"Adding ICE candidate failed\", e_1, \"candidate\", candidate, \"sdp\", candidateOptions.sdp);\n throw e_1;\n case 4: return [2 /*return*/];\n }\n });\n });\n}\n\n\n/***/ }),\n/* 30 */,\n/* 31 */,\n/* 32 */,\n/* 33 */,\n/* 34 */,\n/* 35 */,\n/* 36 */,\n/* 37 */,\n/* 38 */,\n/* 39 */,\n/* 40 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (immutable) */ __webpack_exports__[\"j\"] = getDummyVideoTrack;\n/* harmony export (immutable) */ __webpack_exports__[\"i\"] = stopDummyVideoTrack;\n/* harmony export (immutable) */ __webpack_exports__[\"e\"] = getVideoDevices;\n/* harmony export (immutable) */ __webpack_exports__[\"f\"] = getAudioDevices;\n/* harmony export (immutable) */ __webpack_exports__[\"g\"] = getAudioTrackForDevice;\n/* harmony export (immutable) */ __webpack_exports__[\"h\"] = getVideoTrackForDevice;\n/* harmony export (immutable) */ __webpack_exports__[\"b\"] = getPreferredDevices;\n/* harmony export (immutable) */ __webpack_exports__[\"d\"] = setPreferredDevices;\n/* harmony export (immutable) */ __webpack_exports__[\"a\"] = findDeviceById;\n/* harmony export (immutable) */ __webpack_exports__[\"c\"] = getDefaultFromList;\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_js_cookie__ = __webpack_require__(68);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_js_cookie___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_js_cookie__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__frame_rate__ = __webpack_require__(338);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__log__ = __webpack_require__(18);\n/**\n * Perform device-releated actions (get list of devices, getUserMedia, etc.)\n * @module Device\n */\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\n\n\n\nvar log = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__log__[\"a\" /* default */])(\"device\");\nvar dummyVideoTrack = null;\nvar dummyTrackInterval = null;\nvar canvas = null;\nfunction getInputDevices(devicesType) {\n return __awaiter(this, void 0, void 0, function () {\n var devices;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, navigator.mediaDevices.enumerateDevices()\n // Only return: 1) input devices, 2) devices with compatible kind (audio or video), 3) devices with valid id and label\n ];\n case 1:\n devices = _a.sent();\n // Only return: 1) input devices, 2) devices with compatible kind (audio or video), 3) devices with valid id and label\n return [2 /*return*/, devices.filter(function (_a) {\n var kind = _a.kind, deviceId = _a.deviceId, label = _a.label;\n return /input/.test(kind) && new RegExp(devicesType).test(kind) && deviceId !== \"\" && label !== \"\";\n })];\n }\n });\n });\n}\nfunction getDummyVideoTrack() {\n if (!dummyVideoTrack) {\n canvas = document.createElement(\"canvas\");\n // Workaround for FF only: https://bugzilla.mozilla.org/show_bug.cgi?id=1572422\n // canvas.getContext needs to be called before captureStream to avoid\n // NS_ERROR_NOT_INITIALIZED being thrown.\n canvas.getContext('2d');\n var stream = canvas.captureStream();\n dummyVideoTrack = Object.assign(stream.getVideoTracks()[0], { enabled: false });\n }\n var width = 320, height = 180;\n var ctx = canvas.getContext('2d');\n dummyTrackInterval = setInterval(function () {\n ctx.fillRect(0, 0, width, height);\n }, 1000);\n return dummyVideoTrack;\n}\nfunction stopDummyVideoTrack() {\n if (dummyTrackInterval) {\n clearInterval(dummyTrackInterval);\n dummyTrackInterval = null;\n return true;\n }\n return false;\n}\nfunction getVideoDevices() {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, getInputDevices(\"video\")];\n case 1: return [2 /*return*/, _a.sent()];\n }\n });\n });\n}\nfunction getAudioDevices() {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, getInputDevices(\"audio\")];\n case 1: return [2 /*return*/, _a.sent()];\n }\n });\n });\n}\nfunction getAudioTrackForDevice(audioDevice, audioProcessingDisabled) {\n return __awaiter(this, void 0, void 0, function () {\n var audioDeviceId, audioConstraints, audioStream;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n audioDeviceId = audioDevice.deviceId;\n if (!audioDeviceId) {\n return [2 /*return*/, null];\n }\n audioConstraints = {\n audio: {\n deviceId: audioDeviceId ? { exact: audioDeviceId } : undefined,\n autoGainControl: { ideal: false },\n echoCancellation: { ideal: !audioProcessingDisabled },\n noiseSuppression: { ideal: !audioProcessingDisabled }\n },\n video: false\n };\n return [4 /*yield*/, navigator.mediaDevices.getUserMedia(audioConstraints)];\n case 1:\n audioStream = _a.sent();\n if (!audioStream) {\n return [2 /*return*/, null];\n }\n return [2 /*return*/, audioStream.getAudioTracks()[0]];\n }\n });\n });\n}\nfunction getVideoTrackForDevice(videoDevice) {\n return __awaiter(this, void 0, void 0, function () {\n var videoDeviceId, frameRateValue, frameRateConstraint, constrains, videoStream;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n videoDeviceId = videoDevice.deviceId;\n if (!videoDeviceId) {\n return [2 /*return*/, null];\n }\n frameRateValue = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__frame_rate__[\"a\" /* getFrameRate */])();\n frameRateConstraint = frameRateValue ? { frameRate: { max: frameRateValue } } : {};\n if (frameRateValue) {\n log(\"Will use \" + frameRateValue + \" FPS\");\n }\n constrains = {\n video: __assign({ deviceId: videoDeviceId ? { exact: videoDeviceId } : undefined, width: { max: 1280, ideal: 1280, min: 1280 / 4 }, height: { max: 720, ideal: 720, min: 720 / 4 } }, frameRateConstraint),\n audio: false,\n };\n return [4 /*yield*/, navigator.mediaDevices.getUserMedia(constrains)];\n case 1:\n videoStream = _a.sent();\n if (!videoStream) {\n return [2 /*return*/, null];\n }\n return [2 /*return*/, videoStream.getVideoTracks()[0]];\n }\n });\n });\n}\nfunction getPreferredDevices() {\n return {\n videoDeviceId: __WEBPACK_IMPORTED_MODULE_0_js_cookie__[\"get\"](\"net.telestream.webrtc.selectedVideoDeviceId\"),\n audioDeviceId: __WEBPACK_IMPORTED_MODULE_0_js_cookie__[\"get\"](\"net.telestream.webrtc.selectedAudioDeviceId\"),\n };\n}\nfunction setPreferredDevices(_a) {\n var video = _a.video, audio = _a.audio;\n if (video) {\n __WEBPACK_IMPORTED_MODULE_0_js_cookie__[\"set\"](\"net.telestream.webrtc.selectedVideoDeviceId\", video);\n }\n if (audio) {\n __WEBPACK_IMPORTED_MODULE_0_js_cookie__[\"set\"](\"net.telestream.webrtc.selectedAudioDeviceId\", audio);\n }\n}\n/**\n * Find device by device ID among other devices\n * @param {string} deviceToFindId - id of the device to find\n */\nfunction findDeviceById(deviceToFindId, allDevices) {\n return allDevices.find(function (device) { return device.deviceId === deviceToFindId; });\n}\nfunction getDefaultFromList(preferredDeviceId, deviceList, store) {\n if (!deviceList || deviceList.length === 0)\n return undefined;\n var foundDevice = findDeviceById(preferredDeviceId, deviceList);\n if (foundDevice) {\n return foundDevice.deviceId;\n }\n return deviceList[0].deviceId;\n}\n\n\n/***/ }),\n/* 41 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (immutable) */ __webpack_exports__[\"c\"] = enableScreenAndVideo;\n/* harmony export (immutable) */ __webpack_exports__[\"a\"] = enableScreenOnly;\n/* harmony export (immutable) */ __webpack_exports__[\"b\"] = stopScreen;\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__log__ = __webpack_require__(18);\n/**\n * Perform screenshare-releated actions.\n * @module Screenshare\n */\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\n\nvar log = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__log__[\"a\" /* default */])(\"screenshare\");\nfunction getScreenStream($store) {\n return __awaiter(this, void 0, void 0, function () {\n var stream;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n stream = $store.getters.localScreenStream;\n if (!!stream) return [3 /*break*/, 2];\n return [4 /*yield*/, window.navigator.mediaDevices.getDisplayMedia({\n video: {\n cursor: \"always\",\n },\n audio: false,\n })];\n case 1:\n stream = _a.sent();\n $store.dispatch(\"setLocalScreenStream\", stream);\n _a.label = 2;\n case 2: return [2 /*return*/, stream];\n }\n });\n });\n}\nfunction configureStreamForScreenAndVideo($store, $socket) {\n return __awaiter(this, void 0, void 0, function () {\n var stream, err_1;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 2, , 3]);\n return [4 /*yield*/, getScreenStream($store)];\n case 1:\n stream = _a.sent();\n stream.getVideoTracks()[0].addEventListener(\"ended\", function () {\n // The sharing was ended e.g. by clicking the chrome \"Stop Sharing\" button.\n if ($store.getters.sharingScreenAndVideo) {\n disableScreenAndVideo($store, $socket);\n $store.dispatch(\"setLocalScreenStream\", null);\n }\n });\n return [3 /*break*/, 3];\n case 2:\n err_1 = _a.sent();\n $store.dispatch(\"setScreenShareError\", err_1.message);\n $store.dispatch(\"setLocalScreenStream\", null);\n $store.dispatch(\"updateSharingScreenAndVideo\", false);\n return [3 /*break*/, 3];\n case 3: return [2 /*return*/];\n }\n });\n });\n}\nfunction configureStreamForScreenOnly($store) {\n return __awaiter(this, void 0, void 0, function () {\n var stream, err_2;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 2, , 3]);\n return [4 /*yield*/, getScreenStream($store)];\n case 1:\n stream = _a.sent();\n $store.dispatch(\"updateCurrentVideoDevice\", { deviceId: \"screen\" });\n stream.getVideoTracks()[0].addEventListener(\"ended\", function () {\n // The sharing was ended e.g. by clicking the chrome \"Stop Sharing\" button.\n if ($store.getters.sharingScreenOnly) {\n disableScreenOnly($store);\n $store.dispatch(\"setLocalScreenStream\", null);\n }\n });\n return [3 /*break*/, 3];\n case 2:\n err_2 = _a.sent();\n $store.commit(\"screenShareError\", err_2.message);\n $store.dispatch(\"setLocalScreenStream\", null);\n return [3 /*break*/, 3];\n case 3: return [2 /*return*/];\n }\n });\n });\n}\nfunction enableScreenAndVideo($store, $socket) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if ($store.getters.sharingScreenOnly) {\n disableScreenOnly($store);\n }\n // Clear previous screenshare errors\n $store.dispatch(\"setScreenShareError\", undefined);\n return [4 /*yield*/, configureStreamForScreenAndVideo($store, $socket)];\n case 1:\n _a.sent();\n if (!$store.getters.localScreenStream) {\n return [2 /*return*/];\n }\n $socket.sendWithoutSession(\"updateSharingState\", {\n enabled: true,\n });\n return [2 /*return*/];\n }\n });\n });\n}\nfunction disableScreenAndVideo($store, $socket) {\n $socket.sendWithoutSession(\"updateSharingState\", {\n enabled: false,\n });\n $store.dispatch(\"updateSharingScreenAndVideo\", false);\n}\nfunction enableScreenOnly($store, $socket) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if ($store.getters.sharingScreenAndVideo) {\n disableScreenAndVideo($store, $socket);\n }\n // Clear previous device and screenshare errors\n $store.dispatch(\"setVideoDeviceError\", { errorId: undefined, deviceName: undefined });\n $store.dispatch(\"setScreenShareError\", undefined);\n return [4 /*yield*/, configureStreamForScreenOnly($store)];\n case 1:\n _a.sent();\n return [2 /*return*/];\n }\n });\n });\n}\nfunction disableScreenOnly($store) {\n $store.dispatch(\"updateCurrentVideoDevice\", { deviceId: undefined });\n}\nfunction stopScreen($store, $socket) {\n if ($store.getters.sharingScreenAndVideo) {\n disableScreenAndVideo($store, $socket);\n }\n else if ($store.getters.sharingScreenOnly) {\n disableScreenOnly($store);\n }\n // Stop screen track\n var stream = $store.getters.localScreenStream;\n if (stream && stream.getVideoTracks()[0]) {\n stream.getVideoTracks()[0].stop();\n }\n $store.dispatch(\"setScreenShareError\", undefined);\n $store.dispatch(\"setLocalScreenStream\", null);\n}\n\n\n/***/ }),\n/* 42 */\n/***/ (function(module, exports, __webpack_require__) {\n\nfunction injectStyle (ssrContext) {\n __webpack_require__(312)\n}\nvar Component = __webpack_require__(3)(\n /* script */\n __webpack_require__(333),\n /* template */\n __webpack_require__(364),\n /* styles */\n injectStyle,\n /* scopeId */\n \"data-v-3f3118d0\",\n /* moduleIdentifier (server only) */\n null\n)\n\n/* customBlocks */\nvar customBlock = __webpack_require__(147)\nif (typeof customBlock === \"function\") {customBlock(Component)}\n\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n/* 43 */,\n/* 44 */,\n/* 45 */,\n/* 46 */,\n/* 47 */,\n/* 48 */,\n/* 49 */,\n/* 50 */,\n/* 51 */,\n/* 52 */,\n/* 53 */,\n/* 54 */,\n/* 55 */,\n/* 56 */,\n/* 57 */,\n/* 58 */,\n/* 59 */,\n/* 60 */,\n/* 61 */,\n/* 62 */,\n/* 63 */,\n/* 64 */,\n/* 65 */,\n/* 66 */,\n/* 67 */,\n/* 68 */,\n/* 69 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (immutable) */ __webpack_exports__[\"b\"] = init;\n/* harmony export (immutable) */ __webpack_exports__[\"a\"] = send;\n/* harmony export (immutable) */ __webpack_exports__[\"c\"] = receive;\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__guid__ = __webpack_require__(339);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__peers__ = __webpack_require__(29);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__ice__ = __webpack_require__(340);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__log__ = __webpack_require__(18);\n/**\n * Establish websocket connection, expose helper functions to send and receive\n * messages\n * @module Session\n */\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\n\n\n\n\nvar log = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_3__log__[\"a\" /* default */])(\"session\");\nfunction createWebSocket(onOpen, onClose, getAppState) {\n log(\"Creating new websocket\");\n var host = window.location.host;\n if (false) {\n host = process.env.SOCKET_URL;\n }\n var socket = new WebSocket(\"wss://\" + host + \":443\");\n socket.onopen = onOpen(socket);\n socket.onclose = function () {\n log(\"Socket closed\");\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__peers__[\"k\" /* closeAll */])();\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__peers__[\"l\" /* removeAll */])();\n onClose();\n if (getAppState() === \"disconnected\") {\n log(\"Has been disconnected from session, no reconnect attempt\");\n return;\n }\n setTimeout(function () {\n log(\"Reconnecting...\");\n createWebSocket(onOpen, onClose, getAppState);\n }, 5 * 1000);\n };\n return socket;\n}\nfunction init(options, onMessage) {\n var peerGuid = __WEBPACK_IMPORTED_MODULE_0__guid__[\"a\" /* getPeerGuid */]() || __WEBPACK_IMPORTED_MODULE_0__guid__[\"b\" /* createPeerGuid */]();\n var sessionGuid = __WEBPACK_IMPORTED_MODULE_0__guid__[\"c\" /* getSessionGuid */]();\n var onOpen = function (socket) { return function () {\n log(\"<- Joining\");\n session.socket = socket;\n socket.onmessage = onMessage;\n send(session, \"joinPeer\", __assign({ peersIdentifier: peerGuid }, options));\n }; };\n var session = {\n socket: createWebSocket(onOpen, options.onClose, options.getAppState),\n sessionGuid: sessionGuid,\n peerGuid: peerGuid,\n iceServers: __WEBPACK_IMPORTED_MODULE_2__ice__[\"a\" /* servers */],\n };\n return session;\n}\nfunction send(session, action, payload) {\n var json = JSON.stringify(__assign({ action: action, sessionGuid: session.sessionGuid }, payload));\n session.socket.send(json);\n}\nfunction receive(receiverFn) {\n return function (event) {\n var _a = JSON.parse(event.data), action = _a.action, payload = __rest(_a, [\"action\"]);\n receiverFn(action, payload);\n };\n}\n\n\n/***/ }),\n/* 70 */,\n/* 71 */,\n/* 72 */,\n/* 73 */,\n/* 74 */,\n/* 75 */,\n/* 76 */,\n/* 77 */,\n/* 78 */,\n/* 79 */,\n/* 80 */,\n/* 81 */,\n/* 82 */,\n/* 83 */,\n/* 84 */,\n/* 85 */,\n/* 86 */,\n/* 87 */,\n/* 88 */,\n/* 89 */,\n/* 90 */,\n/* 91 */,\n/* 92 */,\n/* 93 */,\n/* 94 */,\n/* 95 */,\n/* 96 */,\n/* 97 */,\n/* 98 */,\n/* 99 */,\n/* 100 */,\n/* 101 */,\n/* 102 */,\n/* 103 */,\n/* 104 */,\n/* 105 */,\n/* 106 */,\n/* 107 */,\n/* 108 */,\n/* 109 */,\n/* 110 */,\n/* 111 */,\n/* 112 */,\n/* 113 */,\n/* 114 */,\n/* 115 */,\n/* 116 */,\n/* 117 */,\n/* 118 */,\n/* 119 */,\n/* 120 */,\n/* 121 */,\n/* 122 */,\n/* 123 */,\n/* 124 */,\n/* 125 */,\n/* 126 */,\n/* 127 */,\n/* 128 */,\n/* 129 */,\n/* 130 */,\n/* 131 */,\n/* 132 */\n/***/ (function(module, exports, __webpack_require__) {\n\nfunction injectStyle (ssrContext) {\n __webpack_require__(306)\n}\nvar Component = __webpack_require__(3)(\n /* script */\n __webpack_require__(323),\n /* template */\n __webpack_require__(359),\n /* styles */\n injectStyle,\n /* scopeId */\n \"data-v-0ba4e300\",\n /* moduleIdentifier (server only) */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n/* 133 */\n/***/ (function(module, exports, __webpack_require__) {\n\nfunction injectStyle (ssrContext) {\n __webpack_require__(318)\n}\nvar Component = __webpack_require__(3)(\n /* script */\n __webpack_require__(329),\n /* template */\n __webpack_require__(370),\n /* styles */\n injectStyle,\n /* scopeId */\n \"data-v-8e6d55de\",\n /* moduleIdentifier (server only) */\n null\n)\n\n/* customBlocks */\nvar customBlock = __webpack_require__(145)\nif (typeof customBlock === \"function\") {customBlock(Component)}\n\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n/* 134 */\n/***/ (function(module, exports, __webpack_require__) {\n\nfunction injectStyle (ssrContext) {\n __webpack_require__(308)\n}\nvar Component = __webpack_require__(3)(\n /* script */\n __webpack_require__(334),\n /* template */\n __webpack_require__(361),\n /* styles */\n injectStyle,\n /* scopeId */\n \"data-v-265371a5\",\n /* moduleIdentifier (server only) */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n/* 135 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (immutable) */ __webpack_exports__[\"a\"] = getLanguage;\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_js_cookie__ = __webpack_require__(68);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_js_cookie___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_js_cookie__);\n\nvar DEFAULT_LANGUAGE = \"en\";\nvar supportedLanguages = [\n \"en\",\n \"de\" /*, // German\n 'es', // Spanish\n 'pt-BR', //Brazilian Portugues\n 'fr', // French\n 'jp' // Japanese\n */,\n];\n// In which syntax the languageString is in? See for more:\n// https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Accept-Language\nfunction isAnySyntax(languageString) {\n return languageString === \"*\";\n}\nfunction isLanguageSyntax(languageString) {\n return !/-/.test(languageString);\n}\nfunction isLocaleSyntax(languageString) {\n return /-/.test(languageString);\n}\n/*\n * Extract language (e.g. 'en') from local string, like en-US\n */\nfunction extractLanguageFromLocale(locale) {\n return locale.replace(/-[a-z]{2,3}/i, \"\");\n}\n/*\n * Extract preffered languages from Accepts-Language content\n */\nfunction extractLanguagesFromHeader(acceptsLanguageString) {\n return acceptsLanguageString\n .replace(/q=[0-9\\.]+/g, \"\") // Remove quality values\n .split(/,[\\s]?/); // Turn string to array of language codes\n}\nfunction isSupported(language) {\n return supportedLanguages.includes(language);\n}\nfunction extractLanguage(acceptsLanguageString) {\n if (!acceptsLanguageString)\n return DEFAULT_LANGUAGE;\n var choices = extractLanguagesFromHeader(acceptsLanguageString)\n .map(function (language) {\n // Special case with Brazilian Portugese\n if (language === \"pt-BR\")\n return language;\n if (isLanguageSyntax(language))\n return language;\n if (isLocaleSyntax(language))\n return extractLanguageFromLocale(language);\n })\n .filter(isSupported);\n var bestChoice = choices[0];\n if (isAnySyntax(bestChoice))\n return DEFAULT_LANGUAGE;\n return bestChoice;\n}\nfunction getLanguage() {\n var cookieValue = __WEBPACK_IMPORTED_MODULE_0_js_cookie__[\"get\"](\"lang\");\n return extractLanguage(cookieValue) || DEFAULT_LANGUAGE;\n}\n\n\n/***/ }),\n/* 136 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__session__ = __webpack_require__(69);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__peers__ = __webpack_require__(29);\n/**\n * Plugin that exposes $socket (a simple event bus) in every Vue component we use\n * @module Plugin/Socket\n */\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = ({\n install: function (Vue, options) {\n var readyPromise = new Promise(function (resolve, reject) {\n var $socket = {\n session: null,\n bus: new Vue(),\n open: function (userName) {\n var _this = this;\n // establish websocket connection\n this.session = __WEBPACK_IMPORTED_MODULE_0__session__[\"b\" /* init */]({\n username: userName,\n onClose: function () {\n options.store.dispatch(\"clearPeers\");\n __WEBPACK_IMPORTED_MODULE_1__peers__[\"k\" /* closeAll */]();\n __WEBPACK_IMPORTED_MODULE_1__peers__[\"l\" /* removeAll */]();\n },\n getAppState: function () {\n return options.store.getters.appState;\n },\n }, __WEBPACK_IMPORTED_MODULE_0__session__[\"c\" /* receive */](this.bus.$emit.bind(this.bus)));\n // this.session.socket is the real socket here\n this.session.socket.onerror = function (error) {\n if (typeof options.onError === \"function\") {\n options.onError(error);\n return;\n }\n throw error;\n };\n // set session guid and resolve readyPromise when connection\n // is established and we get a response from server\n this.bus.$on(\"joinPeerResponse\", function (payload) {\n if (payload.sessionGuid) {\n _this.session.sessionGuid = payload.sessionGuid;\n }\n if (payload.chatEnabled) {\n options.store.dispatch(\"enableChat\", { peersIdentifier: payload.peersIdentifier });\n }\n else {\n options.store.dispatch(\"disableChat\");\n }\n if (payload.supportMusic) {\n options.store.dispatch(\"updateSupportMusic\", true);\n }\n if (payload.supportSimultaneousScreen) {\n options.store.dispatch(\"updateSupportSimultaneousScreen\", true);\n }\n if (payload.iceServers) {\n _this.session.iceServers = payload.iceServers.map(function (entry) {\n return entry.url.startsWith(\"turn:\")\n ? {\n urls: [entry.url],\n username: entry.turnUsername,\n credential: entry.turnPassword,\n }\n : { urls: [entry.url] };\n });\n }\n resolve({\n session: _this.session,\n socket: _this.session.socket,\n });\n });\n },\n on: function (message, listener) {\n this.bus.$on(message, listener);\n },\n send: function (message, payload) {\n __WEBPACK_IMPORTED_MODULE_0__session__[\"a\" /* send */](this.session, message, payload);\n },\n sendWithoutSession: function (action, payload) {\n var messageJson = JSON.stringify(__assign({ action: action }, payload));\n this.session.socket.send(messageJson);\n },\n whenReady: function () {\n return readyPromise;\n },\n };\n Vue.prototype.$socket = $socket;\n });\n },\n});\n\n\n/***/ }),\n/* 137 */\n/***/ (function(module, exports) {\n\nif (!Array.prototype.includes) {\n Array.prototype.includes = function (itemToTest) {\n return !!this.find(function (item) { return item === itemToTest; });\n };\n}\nif (!Element.prototype.matches) {\n Element.prototype.matches = Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector;\n}\n\n\n/***/ }),\n/* 138 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vue__ = __webpack_require__(31);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_vuex__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__device__ = __webpack_require__(40);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__peers__ = __webpack_require__(29);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__chat__ = __webpack_require__(342);\n/**\n * Our state store\n * @module Store\n */\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __spreadArrays = (this && this.__spreadArrays) || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n};\n\n\n\n\n\n__WEBPACK_IMPORTED_MODULE_0_vue__[\"a\" /* default */].use(__WEBPACK_IMPORTED_MODULE_1_vuex__[\"d\" /* default */]);\nvar getUserMediaCalled = false;\nvar store = new __WEBPACK_IMPORTED_MODULE_1_vuex__[\"d\" /* default */].Store({\n modules: {\n chat: __WEBPACK_IMPORTED_MODULE_4__chat__[\"a\" /* default */],\n },\n state: {\n appState: \"pure\",\n errors: {\n fatal: null,\n minor: undefined,\n audioDevice: {\n errorId: undefined,\n deviceName: undefined,\n },\n videoDevice: {\n errorId: undefined,\n deviceName: undefined,\n },\n },\n devices: {\n video: [],\n audio: [],\n current: {\n video: null,\n audio: null,\n },\n },\n streams: {\n local: null,\n updated: false,\n },\n localScreenStream: null,\n defaultLocalUserName: \"You\",\n localUserName: \"You\",\n peers: [],\n screenShareError: null,\n sharingScreenAndVideo: false,\n bitrateLimitPeerCount: 0,\n videoFlipped: false,\n audioProcessingDisabled: false,\n supportMusic: false,\n localAudioEnabled: true,\n supportSimultaneousScreen: false,\n screenTallyActive: false,\n },\n getters: {\n appState: function (state) {\n return state.appState;\n },\n fatalError: function (state) {\n return state.errors.fatal;\n },\n minorError: function (state) {\n return state.errors.minor;\n },\n audioDeviceError: function (state) {\n return state.errors.audioDevice;\n },\n videoDeviceError: function (state) {\n return state.errors.videoDevice;\n },\n videoDevices: function (state) {\n return state.devices.video;\n },\n audioDevices: function (state) {\n return state.devices.audio;\n },\n currentVideoDevice: function (state) {\n return state.devices.current.video;\n },\n currentAudioDevice: function (state) {\n return state.devices.current.audio;\n },\n preferredVideoDevice: function () {\n return __WEBPACK_IMPORTED_MODULE_2__device__[\"b\" /* getPreferredDevices */]().videoDeviceId;\n },\n preferredAudioDevice: function () {\n return __WEBPACK_IMPORTED_MODULE_2__device__[\"b\" /* getPreferredDevices */]().audioDeviceId;\n },\n localStream: function (state) {\n return state.streams.local;\n },\n localStreamUpdated: function (state) {\n return state.streams.updated;\n },\n localScreenStream: function (state) {\n return state.localScreenStream;\n },\n defaultLocalUserName: function (state) {\n return state.defaultLocalUserName;\n },\n localUserName: function (state) {\n return state.localUserName;\n },\n peers: function (state) {\n return __spreadArrays(state.peers);\n },\n screenShareError: function (state) {\n return state.screenShareError;\n },\n sharingScreenAndVideo: function (state) {\n return state.sharingScreenAndVideo;\n },\n sharingScreenOnly: function (state) {\n if (state.devices.current.video) {\n return state.devices.current.video.deviceId === \"screen\";\n }\n return false;\n },\n bitrateLimitPeerCount: function (state) {\n return state.bitrateLimitPeerCount;\n },\n videoFlipped: function (state) {\n return state.videoFlipped;\n },\n audioProcessingDisabled: function (state) {\n return state.audioProcessingDisabled;\n },\n supportMusic: function (state) {\n return state.supportMusic;\n },\n localAudioEnabled: function (state) {\n return state.localAudioEnabled;\n },\n supportSimultaneousScreen: function (state) {\n return state.supportSimultaneousScreen;\n },\n supportScreensharing: function () {\n return navigator.mediaDevices && \"getDisplayMedia\" in navigator.mediaDevices;\n },\n screenTallyActive: function (state) {\n return state.screenTallyActive;\n },\n },\n mutations: {\n appState: function (state, newState) {\n state.appState = newState;\n },\n fatalError: function (state, errorId) {\n state.errors.fatal = errorId;\n },\n minorError: function (state, error) {\n state.errors.minor = error;\n },\n audioDeviceError: function (state, error) {\n state.errors.audioDevice.errorId = error.errorId;\n state.errors.audioDevice.deviceName = error.deviceName;\n },\n videoDeviceError: function (state, error) {\n state.errors.videoDevice.errorId = error.errorId;\n state.errors.videoDevice.deviceName = error.deviceName;\n },\n videoDevices: function (state, devices) {\n state.devices.video = devices;\n },\n audioDevices: function (state, devices) {\n state.devices.audio = devices;\n },\n currentVideoDevice: function (state, device) {\n state.devices.current.video = device;\n },\n currentAudioDevice: function (state, device) {\n state.devices.current.audio = device;\n },\n localStream: function (state, stream) {\n state.streams.local = stream;\n state.streams.updated = true;\n },\n localStreamUpdated: function (state, updated) {\n state.streams.updated = updated;\n },\n localScreenStream: function (state, screenStream) {\n state.localScreenStream = screenStream;\n },\n preferredVideoDevice: function (_, deviceId) {\n __WEBPACK_IMPORTED_MODULE_2__device__[\"d\" /* setPreferredDevices */]({ video: deviceId });\n },\n preferredAudioDevice: function (_, deviceId) {\n __WEBPACK_IMPORTED_MODULE_2__device__[\"d\" /* setPreferredDevices */]({ audio: deviceId });\n },\n localUserName: function (state, newName) {\n state.localUserName = newName;\n },\n peers: function (state, peers) {\n state.peers = peers;\n },\n screenShareError: function (state, val) {\n state.screenShareError = val;\n },\n sharingScreenAndVideo: function (state, newValue) {\n state.sharingScreenAndVideo = newValue;\n },\n bitrateLimitPeerCount: function (state, newValue) {\n state.bitrateLimitPeerCount = newValue;\n },\n videoFlipped: function (state, newValue) {\n state.videoFlipped = newValue;\n },\n audioProcessingDisabled: function (state, newValue) {\n state.audioProcessingDisabled = newValue;\n },\n supportMusic: function (state, newValue) {\n state.supportMusic = newValue;\n },\n localAudioEnabled: function (state, newValue) {\n state.localAudioEnabled = newValue;\n },\n supportSimultaneousScreen: function (state, newValue) {\n state.supportSimultaneousScreen = newValue;\n },\n screenTallyActive: function (state, newValue) {\n state.screenTallyActive = newValue;\n },\n },\n actions: {\n updateAppState: function (_a, newState) {\n var commit = _a.commit;\n commit(\"appState\", newState);\n },\n setFatalError: function (_a, errorId) {\n var commit = _a.commit;\n commit(\"fatalError\", errorId);\n },\n setMinorError: function (_a, error) {\n var commit = _a.commit;\n commit(\"minorError\", error);\n },\n setAudioDeviceError: function (_a, error) {\n var commit = _a.commit;\n commit(\"audioDeviceError\", error);\n },\n setVideoDeviceError: function (_a, error) {\n var commit = _a.commit;\n commit(\"videoDeviceError\", error);\n },\n setScreenShareError: function (_a, error) {\n var commit = _a.commit;\n commit(\"screenShareError\", error);\n },\n setLocalScreenStream: function (_a, screenStream) {\n var commit = _a.commit;\n commit(\"localScreenStream\", screenStream);\n },\n loadVideoDevices: function (_a) {\n var commit = _a.commit;\n return __awaiter(this, void 0, void 0, function () {\n var _b, _c;\n return __generator(this, function (_d) {\n switch (_d.label) {\n case 0:\n _b = commit;\n _c = [\"videoDevices\"];\n return [4 /*yield*/, __WEBPACK_IMPORTED_MODULE_2__device__[\"e\" /* getVideoDevices */]()];\n case 1:\n _b.apply(void 0, _c.concat([_d.sent()]));\n return [2 /*return*/];\n }\n });\n });\n },\n loadAudioDevices: function (_a) {\n var commit = _a.commit;\n return __awaiter(this, void 0, void 0, function () {\n var _b, _c;\n return __generator(this, function (_d) {\n switch (_d.label) {\n case 0:\n _b = commit;\n _c = [\"audioDevices\"];\n return [4 /*yield*/, __WEBPACK_IMPORTED_MODULE_2__device__[\"f\" /* getAudioDevices */]()];\n case 1:\n _b.apply(void 0, _c.concat([_d.sent()]));\n return [2 /*return*/];\n }\n });\n });\n },\n updateCurrentVideoDevice: function (_a, device) {\n var commit = _a.commit, dispatch = _a.dispatch, state = _a.state;\n var previousDevice = state.devices.current.video;\n commit(\"currentVideoDevice\", device);\n dispatch(\"updateLocalVideoTrack\", previousDevice);\n if (device && device.deviceId && device.deviceId !== \"screen\") {\n dispatch(\"preferredVideoDevice\", device.deviceId);\n }\n },\n updateCurrentAudioDevice: function (_a, device) {\n var commit = _a.commit, dispatch = _a.dispatch;\n commit(\"currentAudioDevice\", device);\n dispatch(\"updateLocalAudioTrack\");\n if (device && device.deviceId) {\n dispatch(\"preferredAudioDevice\", device.deviceId);\n }\n },\n updateLocalAudioTrack: function (_a) {\n var commit = _a.commit, dispatch = _a.dispatch, state = _a.state;\n return __awaiter(this, void 0, void 0, function () {\n var audioDevice, audioProcessingDisabled, catchAudioDeviceError, getAudioTrack, currentStream, audioTrack;\n var _this = this;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n audioDevice = state.devices.current.audio || { deviceId: undefined };\n audioProcessingDisabled = state.audioProcessingDisabled;\n catchAudioDeviceError = function (error, deviceName) {\n commit(\"currentAudioDevice\", { deviceId: undefined });\n if (error.name === \"NotAllowedError\") {\n dispatch(\"setAudioDeviceError\", { errorId: \"NOT_ALLOWED\", deviceName: deviceName });\n return;\n }\n // Firefox\n if (error.name === \"AbortError\") {\n if (!getUserMediaCalled) {\n // TODO: Workaround for FF hanging in subsequent getUserMedia calls\n // after first trial finished with AbortError\n dispatch(\"setAudioDeviceError\", { errorId: \"ABORT_ERROR_FF\", deviceName: deviceName });\n return;\n }\n }\n dispatch(\"setAudioDeviceError\", { errorId: \"NOT_READABLE_DEVICE\", deviceName: deviceName });\n };\n getAudioTrack = function () { return __awaiter(_this, void 0, void 0, function () {\n var error_1;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 2, , 3]);\n return [4 /*yield*/, __WEBPACK_IMPORTED_MODULE_2__device__[\"g\" /* getAudioTrackForDevice */](audioDevice, audioProcessingDisabled)];\n case 1: return [2 /*return*/, _a.sent()];\n case 2:\n error_1 = _a.sent();\n catchAudioDeviceError(error_1, audioDevice.label);\n return [3 /*break*/, 3];\n case 3: return [2 /*return*/];\n }\n });\n }); };\n currentStream = state.streams.local;\n if (currentStream) {\n if (currentStream.getAudioTracks()[0]) {\n currentStream.getAudioTracks()[0].stop();\n }\n }\n return [4 /*yield*/, getAudioTrack()];\n case 1:\n audioTrack = _b.sent();\n getUserMediaCalled = true;\n currentStream = state.streams.local;\n if (currentStream) {\n if (currentStream.getAudioTracks()[0]) {\n currentStream.getAudioTracks()[0].stop();\n currentStream.removeTrack(currentStream.getAudioTracks()[0]);\n }\n }\n else {\n currentStream = new MediaStream();\n }\n if (audioTrack) {\n currentStream.addTrack(audioTrack);\n }\n commit(\"localStream\", currentStream);\n dispatch(\"updatePeerTracks\");\n return [2 /*return*/];\n }\n });\n });\n },\n updateLocalVideoTrack: function (_a, previousDevice) {\n var commit = _a.commit, dispatch = _a.dispatch, state = _a.state;\n return __awaiter(this, void 0, void 0, function () {\n var videoDevice, isVideoDeviceScreen, catchVideoDeviceError, getVideoTrack, getScreenSharingTrack, videoTrack, currentStream;\n var _this = this;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n videoDevice = state.devices.current.video || { deviceId: undefined };\n isVideoDeviceScreen = function () {\n return videoDevice.deviceId === \"screen\";\n };\n catchVideoDeviceError = function (error, deviceName) {\n commit(\"currentVideoDevice\", { deviceId: undefined });\n if (error.name === \"NotAllowedError\") {\n dispatch(\"setVideoDeviceError\", { errorId: \"NOT_ALLOWED\", deviceName: deviceName });\n return;\n }\n // Firefox\n if (error.name === \"AbortError\") {\n if (!getUserMediaCalled) {\n // TODO: Workaround for FF hanging in subsequent getUserMedia calls\n // after first trial finished with AbortError\n dispatch(\"setVideoDeviceError\", { errorId: \"ABORT_ERROR_FF\", deviceName: deviceName });\n return;\n }\n }\n dispatch(\"setVideoDeviceError\", { errorId: \"NOT_READABLE_DEVICE\", deviceName: deviceName });\n };\n getVideoTrack = function () { return __awaiter(_this, void 0, void 0, function () {\n var error_2;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 2, , 3]);\n return [4 /*yield*/, __WEBPACK_IMPORTED_MODULE_2__device__[\"h\" /* getVideoTrackForDevice */](videoDevice)];\n case 1: return [2 /*return*/, _a.sent()];\n case 2:\n error_2 = _a.sent();\n catchVideoDeviceError(error_2, videoDevice.label);\n return [3 /*break*/, 3];\n case 3: return [2 /*return*/];\n }\n });\n }); };\n getScreenSharingTrack = function () {\n var localScreenStream = state.localScreenStream;\n if (localScreenStream && localScreenStream.getVideoTracks()[0]) {\n return localScreenStream.getVideoTracks()[0];\n }\n return null;\n };\n if (!isVideoDeviceScreen()) return [3 /*break*/, 1];\n videoTrack = getScreenSharingTrack();\n return [3 /*break*/, 3];\n case 1: return [4 /*yield*/, getVideoTrack()];\n case 2:\n videoTrack = _b.sent();\n _b.label = 3;\n case 3:\n getUserMediaCalled = true;\n currentStream = state.streams.local;\n if (currentStream) {\n if (currentStream.getVideoTracks()[0]) {\n if (!__WEBPACK_IMPORTED_MODULE_2__device__[\"i\" /* stopDummyVideoTrack */]() && previousDevice.deviceId !== \"screen\") {\n currentStream.getVideoTracks()[0].stop();\n }\n currentStream.removeTrack(currentStream.getVideoTracks()[0]);\n }\n }\n else {\n currentStream = new MediaStream();\n }\n if (!videoTrack) {\n videoTrack = __WEBPACK_IMPORTED_MODULE_2__device__[\"j\" /* getDummyVideoTrack */]();\n }\n currentStream.addTrack(videoTrack);\n commit(\"localStream\", currentStream);\n dispatch(\"updatePeerTracks\");\n return [2 /*return*/];\n }\n });\n });\n },\n updatePeerTracks: function (_a) {\n var state = _a.state;\n var peers = state.peers;\n var stream = state.streams.local;\n var audioProcessingDisabled = state.audioProcessingDisabled;\n peers.forEach(function (peer) {\n var connection = peer.connection;\n if (peer.isLocal)\n return;\n if (typeof connection.getTransceivers === \"function\") {\n var videoTrack = stream.getVideoTracks()[0];\n var videoTransceiver = connection.getTransceivers()[peer.transceivers.regularVideo];\n if (videoTrack && videoTransceiver) {\n videoTransceiver.sender.replaceTrack(videoTrack);\n videoTransceiver.direction = \"sendrecv\";\n }\n var audioTrack = stream.getAudioTracks()[0];\n var regularAudioTransceiver = connection.getTransceivers()[peer.transceivers.regularAudio];\n var enhancedAudioTransceiver = connection.getTransceivers()[peer.transceivers.musicAudio];\n if (audioTrack && regularAudioTransceiver) {\n if (peer.master && enhancedAudioTransceiver) {\n if (audioProcessingDisabled) {\n regularAudioTransceiver.sender.replaceTrack(null);\n regularAudioTransceiver.direction = \"recvonly\";\n enhancedAudioTransceiver.sender.replaceTrack(audioTrack);\n enhancedAudioTransceiver.direction = \"sendonly\";\n }\n else {\n regularAudioTransceiver.sender.replaceTrack(audioTrack);\n regularAudioTransceiver.direction = \"sendrecv\";\n enhancedAudioTransceiver.sender.replaceTrack(null);\n enhancedAudioTransceiver.direction = \"inactive\";\n }\n }\n else {\n regularAudioTransceiver.sender.replaceTrack(audioTrack);\n }\n }\n }\n });\n },\n preferredVideoDevice: function (_a, deviceId) {\n var commit = _a.commit;\n commit(\"preferredVideoDevice\", deviceId);\n },\n preferredAudioDevice: function (_a, deviceId) {\n var commit = _a.commit;\n commit(\"preferredAudioDevice\", deviceId);\n },\n updateLocalUserName: function (_a, newName) {\n var commit = _a.commit;\n commit(\"localUserName\", newName);\n },\n removePeer: function (_a, peer) {\n var commit = _a.commit, state = _a.state;\n var peers = state.peers;\n commit(\"peers\", peers.filter(function (item) { return item.identifier !== peer.identifier; }));\n },\n addPeer: function (_a, peer) {\n var state = _a.state;\n var peers = state.peers;\n peers.push(peer);\n },\n clearPeers: function (_a) {\n var commit = _a.commit;\n commit(\"peers\", []);\n },\n updateSharingScreenAndVideo: function (_a, newValue) {\n var commit = _a.commit, dispatch = _a.dispatch, state = _a.state;\n return __awaiter(this, void 0, void 0, function () {\n var stream, currentVideoDevice, peers;\n return __generator(this, function (_b) {\n commit(\"sharingScreenAndVideo\", newValue);\n stream = null;\n if (newValue) {\n stream = state.localScreenStream;\n }\n currentVideoDevice = state.devices.current.video;\n peers = state.peers;\n peers.forEach(function (peer) {\n if (peer.isLocal)\n return;\n var connection = peer.connection;\n if (typeof connection.getTransceivers === \"function\") {\n if (currentVideoDevice.deviceId === \"screen\" && state.sharingScreenAndVideo) {\n dispatch(\"updateCurrentVideoDevice\", { deviceId: undefined });\n }\n var screenShareTransceiver = connection.getTransceivers()[peer.transceivers.screenVideo];\n if (state.sharingScreenAndVideo && stream && stream.getVideoTracks()[0]) {\n if (!screenShareTransceiver) {\n var trackSender = null;\n if (peer.master) {\n trackSender = connection.addTrack(stream.getVideoTracks()[0]);\n }\n else {\n trackSender = connection.addTrack(stream.getVideoTracks()[0], stream);\n }\n peer.transceivers.screenVideo = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_3__peers__[\"m\" /* findTransceiverIndex */])(peer, trackSender);\n }\n else {\n screenShareTransceiver.sender.replaceTrack(stream.getVideoTracks()[0]);\n screenShareTransceiver.direction = \"sendonly\";\n }\n }\n else {\n if (screenShareTransceiver) {\n screenShareTransceiver.sender.replaceTrack(null);\n screenShareTransceiver.direction = \"recvonly\";\n }\n }\n }\n });\n return [2 /*return*/];\n });\n });\n },\n bitrateLimitPeerCount: function (_a, newValue) {\n var commit = _a.commit;\n commit(\"bitrateLimitPeerCount\", newValue);\n },\n updateVideoFlipped: function (_a, newValue) {\n var commit = _a.commit;\n commit(\"videoFlipped\", newValue);\n },\n updateAudioProcessingDisabled: function (_a, newValue) {\n var commit = _a.commit, dispatch = _a.dispatch;\n commit(\"audioProcessingDisabled\", newValue);\n dispatch(\"updateLocalAudioTrack\");\n },\n updateSupportMusic: function (_a, newValue) {\n var commit = _a.commit;\n commit(\"supportMusic\", newValue);\n },\n updateLocalAudioEnabled: function (_a, newValue) {\n var commit = _a.commit;\n commit(\"localAudioEnabled\", newValue);\n },\n updateSupportSimultaneousScreen: function (_a, newValue) {\n var commit = _a.commit;\n commit(\"supportSimultaneousScreen\", newValue);\n },\n updateScreenTallyActive: function (_a, newValue) {\n var commit = _a.commit;\n commit(\"screenTallyActive\", newValue);\n }\n },\n});\n/* harmony default export */ __webpack_exports__[\"a\"] = (store);\n\n\n/***/ }),\n/* 139 */,\n/* 140 */\n/***/ (function(module, exports, __webpack_require__) {\n\nfunction injectStyle (ssrContext) {\n __webpack_require__(314)\n}\nvar Component = __webpack_require__(3)(\n /* script */\n __webpack_require__(322),\n /* template */\n __webpack_require__(366),\n /* styles */\n injectStyle,\n /* scopeId */\n null,\n /* moduleIdentifier (server only) */\n null\n)\n\n/* customBlocks */\nvar customBlock = __webpack_require__(141)\nif (typeof customBlock === \"function\") {customBlock(Component)}\n\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n/* 141 */\n/***/ (function(module, exports) {\n\nmodule.exports = function (Component) { Component.options.__i18n = '{\"en\":{\"error\":{\"connection\":\"An error that may affect your connection occured.\",\"websocket\":\"Websocket error has occurred. Check your network configuration (e.g. Firewall).\",\"session_unknown\":{\"header\":\"Unable to find the session to join\",\"content\":\"Please ask your host to check the URL you were given and make sure Wirecast is connected to the session.\"},\"session_full\":{\"header\":\"Session currently full\",\"content\":\"The session is full and cannot add any more participants. If you believe this is an error, please contact your host and request access.\"},\"session_already_connected\":{\"header\":\"Unable to connect to the session\",\"content\":\"Please ensure you are not joining the same session from the same browser.\"},\"no_rtc\":{\"content\":\"Your browser does not support the video & audio conversations. Please reopen using Chrome or Firefox to continue.\"}},\"message\":{\"waiting\":{\"content\":\"Waiting to join the conversation...\"},\"welcome\":{\"header\":\"Welcome\",\"content\":\"You are about to join a Wirecast Rendezvous session. Once connected, your host and any other participants will be able to see your webcam and hear your microphone. Please enter a name that will be transmitted to your host alerting them to your arrival.\"},\"session_ended\":{\"content\":\"The session has now ended\"}}},\"de\":{\"error\":{\"connection\":\"Ein Fehler, der unter Umständen Ihre Verbindung beeinflusst, ist aufgetreten.\",\"websocket\":\"Websocket-Fehler ist aufgetreten. Überprüfen Sie Ihre Netzwerkkonfiguration (z. B. Firewall).\",\"session_unknown\":{\"header\":\"Sitzung, der beigetreten werden soll, konnte nicht gefunden werden\",\"content\":\"Bitten Sie Ihren Gastgeber, die Ihnen gegebene URL zu überprüfen und sicherzustellen, dass Wirecast mit der Sitzung verbunden ist.\"},\"session_full\":{\"header\":\"Sitzung ist momentan voll\",\"content\":\"Die Sitzung ist voll und ihr können keine weiteren Teilnehmer hinzugefügt werden. Wenn Sie glauben, dass hier ein Fehler vorliegt, wenden Sie sich an den Gastgeber und fordern Sie Zugriff an.\"},\"session_already_connected\":{\"header\":\"Verbindung zur Sitzung fehlgeschlagen\",\"content\":\"Stellen Sie sicher, dass Sie der gleichen Sitzung nicht vom gleichen Browser aus beitreten.\"},\"no_rtc\":{\"content\":\"Ihr Browser unterstützt die Video- und Audiounterhaltungen nicht. Öffnen Sie erneut in Chrome oder Firefox, um fortzufahren.\"}},\"message\":{\"waiting\":{\"content\":\"Auf Beitreten zur Unterhaltung warten ...\"},\"welcome\":{\"header\":\"Willkommen\",\"content\":\"Sie sind im Begriff, mit Wirecast einer Rendezvous-Sitzung beizutreten. Sobald eine Verbindung besteht, können Ihr Gastgeber und andere Teilnehmer durch Ihre Webcam sehen und Töne von Ihrem Mikrofon hören. Geben Sie einen Namen ein, der dem Gastgeber übermittelt wird, um ihm Ihr Erscheinen mitzuteilen.\"},\"session_ended\":{\"content\":\"Die Sitzung ist beendet\"}}}}' }\n\n/***/ }),\n/* 142 */\n/***/ (function(module, exports) {\n\nmodule.exports = function (Component) { Component.options.__i18n = '{\"en\":{\"content\":\"Your name\",\"button_join\":\"Join\"},\"de\":{\"content\":\"Ihr Name\",\"button_join\":\"Beitreten\"}}' }\n\n/***/ }),\n/* 143 */\n/***/ (function(module, exports) {\n\nmodule.exports = function (Component) { Component.options.__i18n = '{\"en\":{\"button_settings_title\":\"Settings\",\"button_screen_share_title\":\"Share screen\"},\"de\":{\"button_settings_title\":\"Settings\",\"button_screen_share_title\":\"Share screen\"}}' }\n\n/***/ }),\n/* 144 */\n/***/ (function(module, exports) {\n\nmodule.exports = function (Component) { Component.options.__i18n = '{\"en\":{\"button_settings_title\":\"Settings\"},\"de\":{\"button_settings_title\":\"Settings\"}}' }\n\n/***/ }),\n/* 145 */\n/***/ (function(module, exports) {\n\nmodule.exports = function (Component) { Component.options.__i18n = '{\"en\":{\"button_flip_video_horizontally\":\"Flip Video Horizontally\",\"button_enable_music_mode\":\"Enable Music Mode\",\"button_share_screen_title\":\"Share Screen\"},\"de\":{\"button_flip_video_horizontally\":\"Video horizontal spiegeln\",\"button_enable_music_mode\":\"Musikmodus aktivieren\",\"button_share_screen_title\":\"Bildschirm teilen\"}}' }\n\n/***/ }),\n/* 146 */\n/***/ (function(module, exports) {\n\nmodule.exports = function (Component) { Component.options.__i18n = '{\"en\":{\"screen-share-and-camera\":\"Share Screen & Camera\",\"screen-share-only\":\"Share Screen (Disable Camera)\",\"stop-screen-share\":\"Stop Screen Share\"},\"de\":{\"screen-share-and-camera\":\"Share Screen & Camera\",\"screen-share-only\":\"Share Screen (Disable Camera)\",\"stop-screen-share\":\"Stop Screen Share\"}}' }\n\n/***/ }),\n/* 147 */\n/***/ (function(module, exports) {\n\nmodule.exports = function (Component) { Component.options.__i18n = '{\"en\":{\"button_mute_video_title\":\"Mute video\",\"button_mute_audio_title\":\"Mute audio\",\"button_show_chat_title\":\"Show chat\"},\"de\":{\"button_mute_video_title\":\"Video stummschalten\",\"button_mute_audio_title\":\"Audio stummschalten\",\"button_show_chat_title\":\"Show chat\"}}' }\n\n/***/ }),\n/* 148 */,\n/* 149 */,\n/* 150 */,\n/* 151 */,\n/* 152 */,\n/* 153 */,\n/* 154 */,\n/* 155 */,\n/* 156 */,\n/* 157 */,\n/* 158 */,\n/* 159 */,\n/* 160 */,\n/* 161 */,\n/* 162 */,\n/* 163 */,\n/* 164 */,\n/* 165 */,\n/* 166 */,\n/* 167 */,\n/* 168 */,\n/* 169 */,\n/* 170 */,\n/* 171 */,\n/* 172 */,\n/* 173 */,\n/* 174 */,\n/* 175 */,\n/* 176 */,\n/* 177 */,\n/* 178 */,\n/* 179 */,\n/* 180 */,\n/* 181 */,\n/* 182 */,\n/* 183 */,\n/* 184 */,\n/* 185 */,\n/* 186 */,\n/* 187 */,\n/* 188 */,\n/* 189 */,\n/* 190 */,\n/* 191 */,\n/* 192 */,\n/* 193 */,\n/* 194 */,\n/* 195 */,\n/* 196 */,\n/* 197 */,\n/* 198 */,\n/* 199 */,\n/* 200 */,\n/* 201 */,\n/* 202 */,\n/* 203 */,\n/* 204 */,\n/* 205 */,\n/* 206 */,\n/* 207 */,\n/* 208 */,\n/* 209 */,\n/* 210 */,\n/* 211 */,\n/* 212 */,\n/* 213 */,\n/* 214 */,\n/* 215 */,\n/* 216 */,\n/* 217 */,\n/* 218 */,\n/* 219 */,\n/* 220 */,\n/* 221 */,\n/* 222 */,\n/* 223 */,\n/* 224 */,\n/* 225 */,\n/* 226 */,\n/* 227 */,\n/* 228 */,\n/* 229 */,\n/* 230 */,\n/* 231 */,\n/* 232 */,\n/* 233 */,\n/* 234 */,\n/* 235 */,\n/* 236 */,\n/* 237 */,\n/* 238 */,\n/* 239 */,\n/* 240 */,\n/* 241 */,\n/* 242 */,\n/* 243 */,\n/* 244 */,\n/* 245 */,\n/* 246 */,\n/* 247 */,\n/* 248 */,\n/* 249 */,\n/* 250 */,\n/* 251 */,\n/* 252 */,\n/* 253 */,\n/* 254 */,\n/* 255 */,\n/* 256 */,\n/* 257 */,\n/* 258 */,\n/* 259 */,\n/* 260 */,\n/* 261 */,\n/* 262 */,\n/* 263 */,\n/* 264 */,\n/* 265 */,\n/* 266 */,\n/* 267 */,\n/* 268 */,\n/* 269 */,\n/* 270 */,\n/* 271 */,\n/* 272 */,\n/* 273 */,\n/* 274 */,\n/* 275 */,\n/* 276 */,\n/* 277 */,\n/* 278 */,\n/* 279 */,\n/* 280 */,\n/* 281 */,\n/* 282 */,\n/* 283 */,\n/* 284 */,\n/* 285 */,\n/* 286 */,\n/* 287 */,\n/* 288 */,\n/* 289 */,\n/* 290 */,\n/* 291 */,\n/* 292 */,\n/* 293 */,\n/* 294 */,\n/* 295 */,\n/* 296 */,\n/* 297 */,\n/* 298 */,\n/* 299 */,\n/* 300 */,\n/* 301 */,\n/* 302 */,\n/* 303 */,\n/* 304 */,\n/* 305 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n/* 306 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n/* 307 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n/* 308 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n/* 309 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n/* 310 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n/* 311 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n/* 312 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n/* 313 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n/* 314 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n/* 315 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n/* 316 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n/* 317 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n/* 318 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n/* 319 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n/* 320 */,\n/* 321 */,\n/* 322 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vue__ = __webpack_require__(31);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_vuex__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__components_Participants__ = __webpack_require__(354);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__components_Participants___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2__components_Participants__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__components_ChatPanel__ = __webpack_require__(349);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__components_ChatPanel___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3__components_ChatPanel__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__components_Local__ = __webpack_require__(352);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__components_Local___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4__components_Local__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__components_InfoBox__ = __webpack_require__(350);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__components_InfoBox___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5__components_InfoBox__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__components_JoinPrompt__ = __webpack_require__(351);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__components_JoinPrompt___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_6__components_JoinPrompt__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__components_Spinner__ = __webpack_require__(356);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__components_Spinner___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_7__components_Spinner__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__components_Stream__ = __webpack_require__(42);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__components_Stream___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_8__components_Stream__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__screenshare__ = __webpack_require__(41);\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\n\n\n\n\n\n\n\n\n\n\n// Register Spinner globally\n__WEBPACK_IMPORTED_MODULE_0_vue__[\"a\" /* default */].component(\"Spinner\", __WEBPACK_IMPORTED_MODULE_7__components_Spinner___default.a);\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: \"app\",\n components: {\n InfoBox: __WEBPACK_IMPORTED_MODULE_5__components_InfoBox___default.a,\n JoinPrompt: __WEBPACK_IMPORTED_MODULE_6__components_JoinPrompt___default.a,\n Participants: __WEBPACK_IMPORTED_MODULE_2__components_Participants___default.a,\n ChatPanel: __WEBPACK_IMPORTED_MODULE_3__components_ChatPanel___default.a,\n Local: __WEBPACK_IMPORTED_MODULE_4__components_Local___default.a,\n Stream: __WEBPACK_IMPORTED_MODULE_8__components_Stream___default.a,\n },\n watch: {\n locale: function (val) {\n this.$i18n.locale = val;\n },\n },\n computed: __assign(__assign({}, __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1_vuex__[\"a\" /* mapGetters */])([\"chatFeatureEnabled\", \"sharingScreenAndVideo\", \"sharingScreenOnly\", \"screenTallyActive\"])), { isError: function () {\n return !!this.$store.getters.fatalError;\n },\n isPure: function () {\n return !this.isError && this.$store.getters.appState === \"pure\";\n },\n isConnected: function () {\n return !this.isError && this.$store.getters.appState === \"connected\";\n },\n isJoining: function () {\n return !this.isError && this.$store.getters.appState === \"joining\";\n },\n isDisconnected: function () {\n return !this.isError && this.$store.getters.appState === \"disconnected\";\n },\n isIOS: function () {\n return !this.isError && this.$store.getters.appState === \"ios\";\n },\n /* Environment error predicates */\n isErrorNoRTC: function () {\n return this.isError && this.$store.getters.fatalError === \"NO_RTC\";\n },\n /* Session error predicates */\n isSessionUnknown: function () {\n return this.$store.getters.fatalError === \"SESSION_UNKNOWN\";\n },\n isSessionFull: function () {\n return this.$store.getters.fatalError === \"SESSION_FULL\";\n },\n isSessionAlreadyConnected: function () {\n return this.$store.getters.fatalError === \"SESSION_ALREADYCONNECTED\";\n },\n /* Minor Error */\n minorError: function () {\n return this.$store.getters.minorError;\n },\n audioDeviceError: function () {\n return this.$store.getters.audioDeviceError;\n },\n videoDeviceError: function () {\n return this.$store.getters.videoDeviceError;\n },\n screenShareError: function () {\n return this.$store.getters.screenShareError;\n },\n /* Show chat */\n chatEnabled: function () {\n return this.isConnected && this.chatFeatureEnabled;\n } }),\n methods: {\n onMinorErrorDismiss: function () {\n this.$store.dispatch(\"setMinorError\", false);\n },\n onShareScreenErrorDismiss: function () {\n this.$store.dispatch(\"setScreenShareError\", null);\n },\n enableScreenshareOnly: function () {\n __WEBPACK_IMPORTED_MODULE_9__screenshare__[\"a\" /* enableScreenOnly */](this.$store, this.$socket);\n },\n disableScreenshareOnly: function () {\n __WEBPACK_IMPORTED_MODULE_9__screenshare__[\"b\" /* stopScreen */](this.$store, this.$socket);\n },\n },\n created: function () {\n if (/iphone|ipad/i.test(navigator.userAgent)) {\n this.$store.dispatch(\"updateAppState\", \"ios\");\n return;\n }\n if (!window.RTCPeerConnection) {\n this.$store.dispatch(\"setFatalError\", \"NO_RTC\");\n }\n },\n});\n\n\n/***/ }),\n/* 323 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vuex__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__device__ = __webpack_require__(40);\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: \"audio_device_select\",\n data: function () {\n return {\n selectedDevice: {},\n unsubscribe: null,\n };\n },\n computed: __assign({}, __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_vuex__[\"a\" /* mapGetters */])([\"currentAudioDevice\", \"audioDevices\"])),\n methods: {\n onChange: function () {\n // Clear previous device errors\n this.$store.dispatch(\"setAudioDeviceError\", { errorId: undefined, deviceName: undefined });\n var device = __WEBPACK_IMPORTED_MODULE_1__device__[\"a\" /* findDeviceById */](this.selectedDevice, this.audioDevices);\n if (!device) {\n this.$store.dispatch(\"updateCurrentAudioDevice\", { deviceId: undefined });\n this.$store.dispatch(\"setAudioDeviceError\", { errorId: \"NO_DEVICES\", deviceName: undefined });\n return;\n }\n this.$store.dispatch(\"updateCurrentAudioDevice\", device);\n },\n },\n beforeMount: function () {\n return __awaiter(this, void 0, void 0, function () {\n var _this = this;\n return __generator(this, function (_a) {\n if (this.currentAudioDevice) {\n this.selectedDevice = this.currentAudioDevice.deviceId;\n }\n this.unsubscribe = this.$store.subscribe(function (_a) {\n var type = _a.type;\n if (type === \"currentAudioDevice\") {\n if (_this.currentAudioDevice && _this.currentAudioDevice.deviceId === undefined) {\n _this.selectedDevice = undefined;\n return;\n }\n }\n if (type !== \"audioDevices\")\n return;\n if (!_this.currentAudioDevice) {\n // It is a first time audio devices are loaded. Try to pick preferred device.\n var preferredDevice = __WEBPACK_IMPORTED_MODULE_1__device__[\"b\" /* getPreferredDevices */]().audioDeviceId;\n _this.selectedDevice = __WEBPACK_IMPORTED_MODULE_1__device__[\"c\" /* getDefaultFromList */](preferredDevice, _this.$store.getters.audioDevices, _this.$store);\n _this.onChange();\n return;\n }\n var selectedPresent = _this.audioDevices.find(function (_a) {\n var deviceId = _a.deviceId;\n return deviceId === _this.selectedDevice;\n });\n // Currently selected device is present, so no need to continue.\n // For Chrome device may change but deviceId is still the same (default, communications).\n // Call onChange in such case.\n if (selectedPresent && _this.selectedDevice !== \"default\" && _this.selectedDevice !== \"communications\")\n return;\n if (_this.selectedDevice === \"default\" || _this.selectedDevice === \"communications\") {\n _this.onChange();\n return;\n }\n _this.selectedDevice = undefined;\n _this.$store.dispatch(\"updateCurrentAudioDevice\", { deviceId: undefined });\n });\n return [2 /*return*/];\n });\n });\n },\n destroyed: function () {\n if (typeof this.unsubscribe === \"function\") {\n this.unsubscribe();\n }\n },\n});\n\n\n/***/ }),\n/* 324 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vuex__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_lodash__ = __webpack_require__(130);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_lodash___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_lodash__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__chat_Message__ = __webpack_require__(357);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__chat_Message___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2__chat_Message__);\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: \"ChatPanel\",\n components: {\n Message: __WEBPACK_IMPORTED_MODULE_2__chat_Message___default.a,\n },\n data: function () {\n return {\n message: \"\",\n messageTextareaFocus: false,\n };\n },\n computed: __assign(__assign({}, __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_vuex__[\"a\" /* mapGetters */])([\"showChat\", \"chatMessages\"])), { noMessages: function () {\n return this.chatMessages.length === 0;\n } }),\n methods: __assign(__assign({}, __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_vuex__[\"c\" /* mapMutations */])([\"setChatPanelOpened\"])), { sendMessage: function (event) {\n if (event.shiftKey) {\n return;\n }\n var trimmedMessage = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1_lodash__[\"trim\"])(this.message);\n if (trimmedMessage == \"\")\n return;\n this.$socket.sendWithoutSession(\"sendChatMessage\", {\n content: trimmedMessage,\n });\n this.message = \"\";\n this.autoResize();\n },\n closeChatPanel: function () {\n this.setChatPanelOpened(false);\n },\n scrollToLastMessage: function () {\n var container = this.$refs[\"chat-content\"];\n container.scrollTop = container.scrollHeight;\n },\n autoResize: function (event) {\n var _this = this;\n var messageTextarea = this.$refs[\"chat-message\"];\n setTimeout(function () {\n messageTextarea.style.cssText = \"height:auto; padding:0\";\n var height = messageTextarea.scrollHeight;\n if (height > 48)\n height = 48;\n if (event === undefined || event.shiftKey || event.keyCode !== 13) {\n messageTextarea.style.cssText = \"height:\" + height + \"px\";\n }\n _this.scrollToLastMessage();\n });\n } }),\n watch: {\n chatMessages: function () {\n setTimeout(this.scrollToLastMessage, 0);\n },\n showChat: function (newValue) {\n if (newValue)\n setTimeout(this.scrollToLastMessage, 0);\n },\n },\n mounted: function () {\n this.scrollToLastMessage();\n },\n});\n\n\n/***/ }),\n/* 325 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vue__ = __webpack_require__(31);\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (__WEBPACK_IMPORTED_MODULE_0_vue__[\"a\" /* default */].extend({\n name: \"infoBox\",\n data: function () {\n return {};\n },\n}));\n\n\n/***/ }),\n/* 326 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__communication__ = __webpack_require__(337);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__MyStream_vue__ = __webpack_require__(353);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__MyStream_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1__MyStream_vue__);\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: \"joinPrompt\",\n components: {\n MyStream: __WEBPACK_IMPORTED_MODULE_1__MyStream_vue___default.a,\n },\n data: function () {\n return {\n name: \"\",\n };\n },\n computed: {\n isButtonDisabled: function () {\n return !this.name || this.$store.getters.audioDeviceError.errorId;\n },\n },\n watch: {\n locale: function (val) {\n this.$i18n.locale = val;\n },\n },\n methods: {\n onInput: function () {\n var defaultName = this.$store.getters.defaultLocalUserName;\n this.$store.dispatch(\"updateLocalUserName\", this.name || defaultName);\n },\n onSubmit: function () {\n var _this = this;\n this.$store.dispatch(\"updateAppState\", \"joining\");\n this.$socket.on(\"joinPeerResponse\", function (payload) {\n if (payload.result !== \"OK\") {\n _this.$store.dispatch(\"setFatalError\", payload.result);\n return;\n }\n _this.$store.dispatch(\"setFatalError\", undefined);\n });\n __WEBPACK_IMPORTED_MODULE_0__communication__[\"a\" /* establish */](this.$socket, this.$store);\n this.$socket.open(this.name);\n },\n },\n});\n\n\n/***/ }),\n/* 327 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vuex__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__Stream__ = __webpack_require__(42);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__Stream___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1__Stream__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__VideoDeviceSelect__ = __webpack_require__(134);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__VideoDeviceSelect___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2__VideoDeviceSelect__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__AudioDeviceSelect__ = __webpack_require__(132);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__AudioDeviceSelect___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3__AudioDeviceSelect__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__OptionsMenuSelect__ = __webpack_require__(133);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__OptionsMenuSelect___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4__OptionsMenuSelect__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__ScreenMenuSelect__ = __webpack_require__(355);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__ScreenMenuSelect___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5__ScreenMenuSelect__);\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\n\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: \"local\",\n components: {\n Stream: __WEBPACK_IMPORTED_MODULE_1__Stream___default.a,\n VideoDeviceSelect: __WEBPACK_IMPORTED_MODULE_2__VideoDeviceSelect___default.a,\n AudioDeviceSelect: __WEBPACK_IMPORTED_MODULE_3__AudioDeviceSelect___default.a,\n OptionsMenuSelect: __WEBPACK_IMPORTED_MODULE_4__OptionsMenuSelect___default.a,\n ScreenMenuSelect: __WEBPACK_IMPORTED_MODULE_5__ScreenMenuSelect___default.a,\n },\n data: function () {\n return {\n localPeerId: \"\",\n dropdownVisible: false,\n screenDropdownVisible: false,\n };\n },\n computed: __assign(__assign({}, __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_vuex__[\"a\" /* mapGetters */])([\"supportScreensharing\", \"sharingScreenAndVideo\", \"sharingScreenOnly\"])), { sourceStream: function () {\n return this.$store.getters.localStream;\n },\n isError: function () {\n return !!this.$store.getters.fatalError;\n },\n isConnected: function () {\n return !this.isError && this.$store.getters.appState === \"connected\";\n } }),\n methods: {\n toggleDropdown: function () {\n this.dropdownVisible = !this.dropdownVisible;\n },\n toggleScreenDropdown: function () {\n this.screenDropdownVisible = !this.screenDropdownVisible;\n },\n },\n created: function () {\n var _this = this;\n this.$socket.whenReady().then(function (_a) {\n var session = _a.session;\n _this.localPeerId = session.peerGuid;\n });\n document.addEventListener(\"click\", function (event) {\n if (event.target.matches(\"[data-settings-dropdown]\"))\n return;\n _this.dropdownVisible = false;\n });\n document.addEventListener(\"click\", function (event) {\n if (event.target.matches(\"[data-screen-dropdown]\"))\n return;\n _this.screenDropdownVisible = false;\n });\n },\n});\n\n\n/***/ }),\n/* 328 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__Stream__ = __webpack_require__(42);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__Stream___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__Stream__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__VideoDeviceSelect__ = __webpack_require__(134);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__VideoDeviceSelect___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1__VideoDeviceSelect__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__AudioDeviceSelect__ = __webpack_require__(132);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__AudioDeviceSelect___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2__AudioDeviceSelect__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__OptionsMenuSelect__ = __webpack_require__(133);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__OptionsMenuSelect___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3__OptionsMenuSelect__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_webrtc_adapter__ = __webpack_require__(30);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__device__ = __webpack_require__(40);\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\n\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: \"local\",\n components: {\n Stream: __WEBPACK_IMPORTED_MODULE_0__Stream___default.a,\n VideoDeviceSelect: __WEBPACK_IMPORTED_MODULE_1__VideoDeviceSelect___default.a,\n AudioDeviceSelect: __WEBPACK_IMPORTED_MODULE_2__AudioDeviceSelect___default.a,\n OptionsMenuSelect: __WEBPACK_IMPORTED_MODULE_3__OptionsMenuSelect___default.a,\n },\n data: function () {\n return {\n localPeerId: \"\",\n dropdownVisible: false,\n };\n },\n computed: {\n sourceStream: function () {\n return this.$store.getters.localStream;\n },\n },\n methods: {\n toggleDropdown: function () {\n this.dropdownVisible = !this.dropdownVisible;\n },\n },\n mounted: function () {\n this.$nextTick(function () {\n return __awaiter(this, void 0, void 0, function () {\n var audioDeviceId, videoDeviceId, preferredConstraints, fallbackConstraints, stream, err_1, err_2;\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n audioDeviceId = __WEBPACK_IMPORTED_MODULE_5__device__[\"b\" /* getPreferredDevices */]().audioDeviceId;\n videoDeviceId = __WEBPACK_IMPORTED_MODULE_5__device__[\"b\" /* getPreferredDevices */]().videoDeviceId;\n preferredConstraints = { audio: { deviceId: audioDeviceId }, video: false };\n fallbackConstraints = { audio: true, video: false };\n if (__WEBPACK_IMPORTED_MODULE_4_webrtc_adapter__[\"a\" /* default */].browserDetails.browser === \"chrome\") {\n preferredConstraints = Object.assign({ audio: { deviceId: audioDeviceId },\n video: { deviceId: videoDeviceId,\n width: { max: 1280, ideal: 1280, min: 1280 / 4 },\n height: { max: 720, ideal: 720, min: 720 / 4 }, } });\n fallbackConstraints = Object.assign({ audio: true, video: { width: { max: 1280, ideal: 1280, min: 1280 / 4 },\n height: { max: 720, ideal: 720, min: 720 / 4 }, } });\n }\n _a.label = 1;\n case 1:\n _a.trys.push([1, 3, , 8]);\n return [4 /*yield*/, navigator.mediaDevices.getUserMedia(preferredConstraints)];\n case 2:\n stream = _a.sent();\n return [3 /*break*/, 8];\n case 3:\n err_1 = _a.sent();\n if (!(err_1.name !== \"NotAllowedError\")) return [3 /*break*/, 7];\n _a.label = 4;\n case 4:\n _a.trys.push([4, 6, , 7]);\n return [4 /*yield*/, navigator.mediaDevices.getUserMedia(fallbackConstraints)];\n case 5:\n stream = _a.sent();\n return [3 /*break*/, 7];\n case 6:\n err_2 = _a.sent();\n return [3 /*break*/, 7];\n case 7: return [3 /*break*/, 8];\n case 8: return [4 /*yield*/, this.$store.dispatch(\"loadAudioDevices\")];\n case 9:\n _a.sent();\n return [4 /*yield*/, this.$store.dispatch(\"loadVideoDevices\")\n // Stop tracks. They are not going to be used anyway.\n ];\n case 10:\n _a.sent();\n // Stop tracks. They are not going to be used anyway.\n if (stream) {\n stream.getTracks().forEach(function (track) {\n track.stop();\n });\n }\n // Listen for device changes only after first initialization \n navigator.mediaDevices.addEventListener(\"devicechange\", function () {\n _this.$store.dispatch(\"loadAudioDevices\");\n _this.$store.dispatch(\"loadVideoDevices\");\n });\n return [2 /*return*/];\n }\n });\n });\n });\n },\n created: function () {\n var _this = this;\n this.$socket.whenReady().then(function (_a) {\n var session = _a.session;\n _this.localPeerId = session.peerGuid;\n });\n document.addEventListener(\"click\", function (event) {\n if (event.target.matches(\"[data-settings-dropdown]\"))\n return;\n _this.dropdownVisible = false;\n });\n },\n});\n\n\n/***/ }),\n/* 329 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vuex__ = __webpack_require__(6);\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: \"options_menu_select\",\n props: [\"initialMode\"],\n watch: {\n sharingScreenAndVideo: function (allowed) {\n this.sharingScreenAndVideo = allowed;\n }\n },\n computed: __assign(__assign({}, __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_vuex__[\"a\" /* mapGetters */])([\"supportMusic\", \"sharingScreenAndVideo\", \"sharingScreenOnly\"])), { videoFlipped: {\n get: function () {\n return this.$store.getters.videoFlipped;\n },\n set: function (val) {\n this.$store.dispatch(\"updateVideoFlipped\", val);\n }\n }, audioProcessingDisabled: {\n get: function () {\n return this.$store.getters.audioProcessingDisabled;\n },\n set: function (val) {\n this.$store.dispatch(\"updateAudioProcessingDisabled\", val);\n }\n } }),\n methods: {\n getScreenShareStream: function () {\n return __awaiter(this, void 0, void 0, function () {\n var stream, err_1;\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 3, , 4]);\n stream = this.$store.getters.localScreenStream;\n if (!!stream) return [3 /*break*/, 2];\n return [4 /*yield*/, window.navigator.mediaDevices.getDisplayMedia({\n video: {\n cursor: \"always\",\n },\n audio: false,\n })];\n case 1:\n stream = _a.sent();\n this.$store.dispatch(\"setLocalScreenStream\", stream);\n _a.label = 2;\n case 2:\n stream.getVideoTracks()[0].addEventListener(\"ended\", function () {\n // The sharing was ended e.g. by clicking the chrome \"Stop Sharing\" button.\n _this.$socket.sendWithoutSession(\"updateSharingState\", {\n enabled: false,\n });\n _this.$store.dispatch(\"updateSharingScreenAndVideo\", false);\n _this.$store.dispatch(\"setLocalScreenStream\", null);\n });\n this.$store.dispatch(\"setScreenShareError\", null);\n return [3 /*break*/, 4];\n case 3:\n err_1 = _a.sent();\n this.$store.dispatch(\"setScreenShareError\", err_1.message);\n this.$store.dispatch(\"setLocalScreenStream\", null);\n this.$store.dispatch(\"updateSharingScreenAndVideo\", false);\n return [3 /*break*/, 4];\n case 4: return [2 /*return*/];\n }\n });\n });\n },\n onScreenSharingChange: function (_a) {\n var target = _a.target;\n return __awaiter(this, void 0, void 0, function () {\n var enabled;\n var _this = this;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n enabled = target.checked;\n if (!enabled) return [3 /*break*/, 2];\n return [4 /*yield*/, this.getScreenShareStream()];\n case 1:\n _b.sent();\n if (!this.$store.getters.localScreenStream) {\n return [2 /*return*/];\n }\n _b.label = 2;\n case 2:\n this.$socket.sendWithoutSession(\"updateSharingState\", {\n enabled: enabled,\n });\n if (!enabled) {\n setTimeout(function () {\n _this.$store.dispatch(\"updateSharingScreenAndVideo\", enabled);\n });\n }\n return [2 /*return*/];\n }\n });\n });\n },\n }\n});\n\n\n/***/ }),\n/* 330 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__Stream__ = __webpack_require__(42);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__Stream___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__Stream__);\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: \"participants\",\n components: {\n Stream: __WEBPACK_IMPORTED_MODULE_0__Stream___default.a,\n },\n data: function () {\n return {\n layoutModified: false,\n expandedStream: \"\",\n };\n },\n watch: {\n peers: function (peers) {\n var _this = this;\n peers.forEach(function (peer) {\n if (peer.screenSource) {\n _this.expandedStream = peer.identifier;\n }\n });\n if (this.expandedStream || this.layoutModified)\n return;\n this.expandedStream = peers[0].identifier;\n },\n },\n computed: {\n peers: function () {\n return this.$store.getters.peers.filter(function (peer) { return !peer.isLocal; });\n },\n isAnyStreamExpanded: function () {\n return !!this.expandedStream;\n },\n },\n methods: {\n expandStream: function (id) {\n this.layoutModified = true;\n if (this.expandedStream === id && this.peers.length > 1) {\n this.expandedStream = \"\";\n return;\n }\n this.expandedStream = id;\n },\n videoDisplayClass: function (id) {\n if (this.expandedStream === id)\n return \"expanded-video\";\n return \"minature-video\";\n },\n },\n});\n\n\n/***/ }),\n/* 331 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vuex__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__screenshare__ = __webpack_require__(41);\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: \"screen_menu_select\",\n data: function () {\n return {\n selectedOption: undefined\n };\n },\n computed: __assign({}, __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_vuex__[\"a\" /* mapGetters */])([\"sharingScreenAndVideo\", \"supportSimultaneousScreen\", \"sharingScreenOnly\"])),\n watch: {\n sharingScreenAndVideo: function (enabled) {\n if (enabled) {\n this.selectedOption = \"screen-camera\";\n }\n else {\n if (!this.sharingScreenOnly) {\n this.selectedOption = undefined;\n }\n }\n },\n sharingScreenOnly: function (enabled) {\n if (enabled) {\n this.selectedOption = \"screen-only\";\n }\n else {\n if (!this.sharingScreenAndVideo) {\n this.selectedOption = undefined;\n }\n }\n },\n },\n methods: {\n onChange: function (event) {\n var _this = this;\n this.selectedOption = undefined;\n setTimeout(function () {\n switch (event.target.value) {\n case \"screen-camera\":\n __WEBPACK_IMPORTED_MODULE_1__screenshare__[\"c\" /* enableScreenAndVideo */](_this.$store, _this.$socket);\n break;\n case \"screen-only\":\n __WEBPACK_IMPORTED_MODULE_1__screenshare__[\"a\" /* enableScreenOnly */](_this.$store, _this.$socket);\n break;\n default:\n __WEBPACK_IMPORTED_MODULE_1__screenshare__[\"b\" /* stopScreen */](_this.$store, _this.$socket);\n }\n }, 0);\n },\n }\n});\n\n\n/***/ }),\n/* 332 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n props: [\"isVisible\"],\n data: function () {\n return {};\n },\n});\n\n\n/***/ }),\n/* 333 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vuex__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_search_params__ = __webpack_require__(28);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_search_params___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_search_params__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__screenshare__ = __webpack_require__(41);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__log__ = __webpack_require__(18);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_webrtc_adapter__ = __webpack_require__(30);\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\n\n\n\n\n\nvar VideoOriginal = \"video[data-original]\";\nvar VideoScreen = \"video[data-screen]\";\nvar log = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_3__log__[\"a\" /* default */])(\"stream\");\nfunction toggleTrack(tracksGetter) {\n var track = tracksGetter()[0];\n if (!track) {\n console.error(\"No track found\", tracksGetter);\n return;\n }\n return (track.enabled = !track.enabled);\n}\n// label argument is for debug only\nfunction setVideoElementSource($el, source, isLocal, label) {\n var videoElement = $el.querySelector(VideoOriginal);\n if (isLocal) {\n videoElement.muted = true;\n videoElement.onloadedmetadata = function () {\n log(\"Local resolution: \" + videoElement.videoWidth + \"x\" + videoElement.videoHeight);\n };\n }\n if (videoElement.srcObject && source && videoElement.srcObject.id === source.id) {\n return;\n }\n log(\"Setting new stream for\", label, \":\", source.id);\n videoElement.srcObject = source;\n}\nfunction setVideoElementScreenSource($el, screenSource, isLocal, label) {\n var videoElement = $el.querySelector(VideoScreen);\n if (isLocal) {\n videoElement.muted = true;\n videoElement.onloadedmetadata = function () {\n log(\"Local resolution: \" + videoElement.videoWidth + \"x\" + videoElement.videoHeight);\n };\n }\n if (videoElement.srcObject && screenSource && videoElement.srcObject.id === screenSource.id) {\n return;\n }\n log(\"Setting new stream for\", label, \":\", screenSource.id);\n videoElement.srcObject = screenSource;\n}\nfunction lockElementHeight(videoElement) {\n var firstVideoElement = document.querySelector(\"[container] \" + VideoOriginal);\n if (firstVideoElement && firstVideoElement !== videoElement) {\n var height = firstVideoElement.offsetHeight;\n //videoElement.setAttribute('style', `height: ${height}px`);\n }\n}\nfunction freeElementHeight(videoElement) {\n videoElement.removeAttribute(\"style\");\n}\nfunction attachCanPlayEvent() {\n var _this = this;\n var videoElement = this.$el.querySelector(VideoOriginal);\n lockElementHeight(videoElement);\n var onCanPlay = function () {\n freeElementHeight(videoElement);\n _this.isVideoReady = true;\n videoElement.removeEventListener(\"canplay\", onCanPlay);\n };\n videoElement.addEventListener(\"canplay\", onCanPlay);\n}\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: \"stream\",\n props: [\"source\", \"screenSource\", \"label\", \"isLocalStream\", \"id\", \"peer\", \"localInitialMode\"],\n watch: {\n source: {\n handler: function (currentStream) {\n if (!currentStream) {\n console.error(\"Stream empty for \" + this.userName);\n return;\n }\n setVideoElementSource(this.$el, currentStream, this.isLocalStream, this.userName);\n },\n },\n localStreamUpdated: {\n handler: function (updated) {\n if (!updated || !this.source)\n return;\n var videoTrack = this.source.getVideoTracks()[0];\n if (videoTrack) {\n videoTrack.enabled = this.videoEnabled;\n }\n var audioTrack = this.source.getAudioTracks()[0];\n if (audioTrack) {\n audioTrack.enabled = this.audioEnabled;\n }\n this.$store.commit(\"localStreamUpdated\", false);\n }\n },\n screenSource: {\n handler: function (screenStream) {\n if (!screenStream)\n return;\n setVideoElementScreenSource(this.$el, screenStream, this.isLocalStream, this.userName);\n }\n },\n locale: function (val) {\n this.$i18n.locale = val;\n },\n },\n data: function () {\n return {\n isLive: false,\n isAudioMuted: false,\n isVideoReady: false,\n videoEnabled: true,\n remoteAudioEnabled: true,\n showBitrate: false,\n bitrate: 0,\n isChrome: __WEBPACK_IMPORTED_MODULE_4_webrtc_adapter__[\"a\" /* default */].browserDetails.browser === \"chrome\",\n };\n },\n computed: __assign(__assign({}, __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_vuex__[\"a\" /* mapGetters */])([\"chatFeatureEnabled\", \"showNewMessageIndicator\", \"localStreamUpdated\", \"sharingScreenOnly\", \"supportSimultaneousScreen\"])), { streamClass: function () {\n if (this.localInitialMode) {\n return \"local-initial\";\n }\n return this.isLocalStream ? \"local\" : \"remote\";\n },\n userName: function () {\n if (this.isLocalStream)\n return this.$store.getters.localUserName;\n return this.label;\n },\n isSuspended: function () {\n if (this.isLocalStream)\n return false;\n return this.peer.isSuspended;\n },\n isTallyActive: function () {\n if (this.$store.getters.appState !== \"connected\")\n return false;\n if (!this.isLocalStream)\n return false;\n return this.isLive;\n },\n isScreenShare: function () {\n if (this.screenSource)\n return true;\n return false;\n },\n isRemoteAudioMuted: function () {\n if (this.$store.getters.appState !== \"connected\")\n return false;\n if (this.isLocalStream)\n return false;\n return this.isAudioMuted;\n },\n showChatIcon: function () {\n return this.localInitialMode !== true && this.isLocalStream && this.chatFeatureEnabled;\n },\n videoFlipped: function () {\n return this.$store.getters.videoFlipped;\n }, audioEnabled: {\n get: function () {\n if (this.isLocalStream) {\n return this.$store.getters.localAudioEnabled;\n }\n return this.remoteAudioEnabled;\n },\n set: function (val) {\n if (this.isLocalStream) {\n this.$store.dispatch(\"updateLocalAudioEnabled\", val);\n }\n else {\n this.remoteAudioEnabled = val;\n }\n }\n } }),\n methods: __assign(__assign({}, __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_vuex__[\"b\" /* mapActions */])([\"toggleChatPanelOpened\"])), { toggleVideo: function () {\n if (this.isLocalStream && this.sharingScreenOnly) {\n // This is for backward compatibility with WC < 15.1\n if (this.supportSimultaneousScreen) {\n __WEBPACK_IMPORTED_MODULE_2__screenshare__[\"c\" /* enableScreenAndVideo */](this.$store, this.$socket);\n }\n else {\n __WEBPACK_IMPORTED_MODULE_2__screenshare__[\"b\" /* stopScreen */](this.$store, this.$socket);\n }\n return;\n }\n if (!this.source)\n return;\n this.videoEnabled = toggleTrack(this.source.getVideoTracks.bind(this.source));\n },\n toggleAudio: function () {\n if (!this.source)\n return;\n this.audioEnabled = toggleTrack(this.source.getAudioTracks.bind(this.source));\n if (this.$store.getters.appState !== \"connected\")\n return false;\n if (!this.isLocalStream)\n return false;\n var messageJson = {\n subaction: \"audioMuteStateChanged\",\n value: !this.audioEnabled\n };\n this.$socket.send(\"broadcastToPeers\", messageJson);\n } }),\n mounted: function () {\n var _this = this;\n var params = __WEBPACK_IMPORTED_MODULE_1_search_params__[\"parse\"](window.location.search.replace(/^\\?/, \"\"));\n var bitrate = params.find(function (param) { return param.name === \"show_bitrate\"; });\n if (!this.isLocalStream && bitrate) {\n this.showBitrate = true;\n this.peer.onBitrateChange = function (bitrate) {\n _this.bitrate = bitrate;\n };\n }\n // Tally and audio mute update\n this.$socket.on(\"gotBroadcastToAll\", function (payload) {\n if (payload.subaction === \"tallyStateChanged\") {\n if (payload.tallyPeerIdentifier !== _this.id)\n return;\n _this.isLive = payload.value;\n }\n else if (payload.subaction === \"screenTallyStateChanged\") {\n if (payload.peersIdentifier !== _this.id)\n return;\n _this.$store.dispatch(\"updateScreenTallyActive\", payload.value);\n }\n else if (payload.subaction === \"audioMuteStateChanged\") {\n if (payload.peersIdentifier !== _this.id)\n return;\n _this.isAudioMuted = payload.value;\n }\n });\n this.$socket.on(\"gotDirectMessage\", function (payload) {\n if (payload.subaction === \"tallyStateChanged\") {\n if (payload.tallyPeerIdentifier !== _this.id)\n return;\n _this.isLive = payload.value;\n }\n else if (payload.subaction === \"screenTallyStateChanged\") {\n if (payload.peersIdentifier !== _this.id)\n return;\n _this.$store.dispatch(\"updateScreenTallyActive\", payload.value);\n }\n else if (payload.subaction === \"audioMuteStateChanged\") {\n if (payload.peersIdentifier !== _this.id)\n return;\n _this.isAudioMuted = payload.value;\n }\n });\n attachCanPlayEvent.call(this);\n if (!this.source) {\n return;\n }\n var audioTrack = this.source.getAudioTracks()[0];\n if (audioTrack) {\n this.audioEnabled = audioTrack.enabled;\n }\n var videoTrack = this.source.getVideoTracks()[0];\n if (videoTrack) {\n this.videoEnabled = videoTrack.enabled;\n }\n setVideoElementSource(this.$el, this.source, this.isLocalStream, this.userName);\n },\n});\n\n\n/***/ }),\n/* 334 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vuex__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__device__ = __webpack_require__(40);\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: \"video_device_select\",\n data: function () {\n var self = this;\n return {\n selectedDevice: {},\n unsubscribe: null,\n };\n },\n computed: __assign({}, __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_vuex__[\"a\" /* mapGetters */])([\"currentVideoDevice\", \"videoDevices\", \"sharingScreenOnly\"])),\n methods: {\n onChange: function () {\n // Clear previous device and screen errors\n this.$store.dispatch(\"setVideoDeviceError\", { errorId: undefined, deviceName: undefined });\n this.$store.dispatch(\"setScreenShareError\", undefined);\n var device = __WEBPACK_IMPORTED_MODULE_1__device__[\"a\" /* findDeviceById */](this.selectedDevice, this.videoDevices);\n if (!device) {\n this.$store.dispatch(\"updateCurrentVideoDevice\", { deviceId: undefined });\n return;\n }\n this.$store.dispatch(\"updateCurrentVideoDevice\", device);\n },\n },\n beforeMount: function () {\n return __awaiter(this, void 0, void 0, function () {\n var _this = this;\n return __generator(this, function (_a) {\n if (this.currentVideoDevice) {\n this.selectedDevice = this.currentVideoDevice.deviceId;\n }\n // Update device list and stream when current device is\n // removed\n this.unsubscribe = this.$store.subscribe(function (_a) {\n var type = _a.type;\n if (type === \"currentVideoDevice\") {\n if (_this.currentVideoDevice && (_this.currentVideoDevice.deviceId === undefined\n || _this.currentVideoDevice.deviceId === \"screen\")) {\n _this.selectedDevice = undefined;\n return;\n }\n }\n if (type !== \"videoDevices\")\n return;\n if (!_this.currentVideoDevice) {\n // It is a first time video devices are loaded. Try to pick preferred device.\n var preferredDevice = __WEBPACK_IMPORTED_MODULE_1__device__[\"b\" /* getPreferredDevices */]().videoDeviceId;\n _this.selectedDevice = __WEBPACK_IMPORTED_MODULE_1__device__[\"c\" /* getDefaultFromList */](preferredDevice, _this.videoDevices, _this.$store);\n _this.onChange();\n return;\n }\n var selectedPresent = _this.videoDevices.find(function (_a) {\n var deviceId = _a.deviceId;\n return deviceId === _this.selectedDevice;\n });\n // Currently selected device is present, so no need to continue\n if (selectedPresent)\n return;\n _this.selectedDevice = undefined;\n _this.$store.dispatch(\"updateCurrentVideoDevice\", { deviceId: undefined });\n });\n return [2 /*return*/];\n });\n });\n },\n destroyed: function () {\n if (typeof this.unsubscribe === \"function\") {\n this.unsubscribe();\n }\n },\n});\n\n\n/***/ }),\n/* 335 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vuex__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_date_fns__ = __webpack_require__(221);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_autolinker__ = __webpack_require__(149);\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: \"Message\",\n props: [\"message\"],\n computed: __assign(__assign({}, __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_vuex__[\"a\" /* mapGetters */])([\"localChatPeerId\", \"getPeerColor\"])), { username: function () {\n if (this.isLocal)\n return \"You\";\n if (this.isMaster)\n return \"Host\";\n return this.message.username;\n },\n content: function () {\n return this.message.content || \"\";\n },\n linkedContent: function () {\n return __WEBPACK_IMPORTED_MODULE_2_autolinker__[\"a\" /* default */].link(this.content, {\n className: \"chat-message-url\",\n sanitizeHtml: true,\n stripPrefix: false,\n });\n },\n time: function () {\n return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1_date_fns__[\"a\" /* format */])(new Date(this.message.time), \"H:mm\");\n },\n peerId: function () {\n return this.message.peersIdentifier;\n },\n messageIndex: function () {\n return this.message.index;\n },\n isLocal: function () {\n return this.peerId === this.localChatPeerId;\n },\n isMaster: function () {\n return this.message.master;\n },\n isDeleted: function () {\n return this.message.deleted;\n },\n canBeDeleted: function () {\n return this.isLocal && !this.isDeleted;\n },\n messageBubbleColor: function () {\n if (this.isMaster)\n return \"#161616\";\n return this.getPeerColor(this.peerId);\n },\n chatBubbleCssClass: function () {\n var bubbleClass = [\"chat-bubble\"];\n if (this.isMaster)\n bubbleClass.push(\"chat-bubble-master\");\n if (this.isLocal)\n bubbleClass.push(\"chat-bubble-me\");\n if (this.isDeleted)\n bubbleClass.push(\"chat-bubble-deleted\");\n return bubbleClass.join(\" \");\n } }),\n methods: {\n deleteMessage: function () {\n this.$socket.sendWithoutSession(\"deleteChatMessage\", {\n index: this.messageIndex,\n });\n },\n },\n});\n\n\n/***/ }),\n/* 336 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (immutable) */ __webpack_exports__[\"a\"] = setMediaBitrate;\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_search_params__ = __webpack_require__(28);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_search_params___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_search_params__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__peers__ = __webpack_require__(29);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__log__ = __webpack_require__(18);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_webrtc_adapter__ = __webpack_require__(30);\n\n\n\n\nvar log = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__log__[\"a\" /* default */])(\"bandwidth\");\nfunction isFirefox() {\n return __WEBPACK_IMPORTED_MODULE_3_webrtc_adapter__[\"a\" /* default */].browserDetails.browser === \"firefox\";\n}\nfunction getBitrate() {\n var params = __WEBPACK_IMPORTED_MODULE_0_search_params__[\"parse\"](window.location.search.replace(/^\\?/, \"\"));\n var bandwidth = params.find(function (param) { return param.name === \"bandwidth\"; });\n if (bandwidth && bandwidth.value) {\n log(\"Will use bandwidth:\", +bandwidth.value);\n return +bandwidth.value;\n }\n}\nfunction getBitrateByPeersCount() {\n var peersCount = Array.from(__WEBPACK_IMPORTED_MODULE_1__peers__[\"i\" /* getAll */]().keys()).length;\n var limit = [\n undefined,\n undefined,\n undefined,\n 384,\n 256,\n 192,\n 128,\n 128,\n 64,\n ][peersCount];\n return limit;\n}\nfunction setMediaBitrate(sdp, media) {\n var lines = sdp.split(\"\\n\");\n var line = -1;\n var bitrateWanted = getBitrate() || getBitrateByPeersCount();\n if (!bitrateWanted) {\n log(\"No bandwidth limit\");\n return sdp;\n }\n else {\n log(\"Limiting bandwidth to\", bitrateWanted);\n }\n var lineType = isFirefox() ? \"b=TIAS:\" : \"b=AS:\";\n var bitrate = isFirefox() ? bitrateWanted * 1000 : bitrateWanted;\n for (var i = 0; i < lines.length; i++) {\n if (lines[i].indexOf(\"m=\" + media) === 0) {\n line = i;\n break;\n }\n }\n if (line === -1) {\n console.debug(\"Could not find the m line for\", media);\n return sdp;\n }\n console.debug(\"Found the m line for\", media, \"at line\", line);\n // Pass the m line\n line++;\n // Skip i and c lines\n while (lines[line].indexOf(\"i=\") === 0 || lines[line].indexOf(\"c=\") === 0) {\n line++;\n }\n // If we're on a b line, replace it\n if (lines[line].indexOf(\"b\") === 0) {\n console.debug(\"Replaced b line at line\", line);\n lines[line] = lineType + bitrate;\n return lines.join(\"\\n\");\n }\n // Add a new b line\n console.debug(\"Adding new b line before line\", line);\n var newLines = lines.slice(0, line);\n newLines.push(lineType + bitrate);\n newLines = newLines.concat(lines.slice(line, lines.length));\n return newLines.join(\"\\n\");\n}\n\n\n/***/ }),\n/* 337 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (immutable) */ __webpack_exports__[\"a\"] = establish;\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__peers__ = __webpack_require__(29);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__session__ = __webpack_require__(69);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__log__ = __webpack_require__(18);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_webrtc_adapter__ = __webpack_require__(30);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__screenshare__ = __webpack_require__(41);\n/**\n * Protocol logic implementation\n * @module Communication\n */\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\n\n\n\n\n\nvar log = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__log__[\"a\" /* default */])(\"communication\");\nfunction catchConnectionError($store, fn) {\n try {\n fn();\n }\n catch (e) {\n $store.dispatch(\"setMinorError\", \"CONNECTION\");\n console.error(\"Connection error\");\n console.error(e);\n }\n}\nfunction onPeerConnectionClosed(_a) {\n var $store = _a.$store, peer = _a.peer, session = _a.session;\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_b) {\n log(\"onPeerConnectionClosed\", peer.name);\n return [2 /*return*/];\n });\n });\n}\nfunction onPeerConnectionDisconnected(_a) {\n var $store = _a.$store, peer = _a.peer, session = _a.session;\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_b) {\n log(\"onPeerConnectionDisconnected\", peer.name, \"suspended?\", peer.isSuspended);\n peer.isSuspended = true;\n return [2 /*return*/];\n });\n });\n}\nfunction onPeerConnectionConnected(_a) {\n var _this = this;\n var $store = _a.$store, peer = _a.peer, session = _a.session;\n log(\"onPeerConnectionConnected\", peer.name);\n peer.isSuspended = false;\n var messageJson = {\n identifier: peer.identifier,\n subaction: \"audioMuteStateChanged\",\n value: !$store.getters.localAudioEnabled\n };\n __WEBPACK_IMPORTED_MODULE_1__session__[\"a\" /* send */](session, \"directMessage\", messageJson);\n setTimeout(function () { return __awaiter(_this, void 0, void 0, function () {\n var stats, candidatePair, localIP, remoteIP, turnIPs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, peer.connection.getStats(null)];\n case 1:\n stats = _a.sent();\n candidatePair = Array.from(stats.values()).find(function (report) {\n return report.type == \"candidate-pair\" && report.state == \"succeeded\" && report.nominated == true;\n });\n if (!candidatePair) {\n log(\"Undefined candidates\");\n return [2 /*return*/];\n }\n localIP = \"\";\n remoteIP = \"\";\n stats.forEach(function (report) {\n switch (report.id) {\n case candidatePair.localCandidateId:\n localIP = \"ipAddress\" in report ? report.ipAddress : report.ip;\n break;\n case candidatePair.remoteCandidateId:\n remoteIP = \"ipAddress\" in report ? report.ipAddress : report.ip;\n break;\n }\n });\n log(\"WebRTC connection local_ip: \", localIP, \"remote_ip: \", remoteIP);\n if (!localIP || !remoteIP)\n return [2 /*return*/];\n turnIPs = session.iceServers\n .map(function (iceServer) {\n if (iceServer.urls.length == 0)\n return null;\n var match = /turn:(\\d+\\.\\d+\\.\\d+\\.\\d+)/.exec(iceServer.urls[0]);\n return match === null ? null : match[1];\n })\n .filter(function (ip) { return ip != null; });\n peer.localConnectionType = turnIPs.includes(localIP) ? \"turn\" : \"non-turn\";\n peer.remoteConnectionType = turnIPs.includes(remoteIP) ? \"turn\" : \"non-turn\";\n __WEBPACK_IMPORTED_MODULE_1__session__[\"a\" /* send */](session, \"reportConnection\", {\n reconnectCount: peer.reconnectCount++,\n localType: peer.localConnectionType,\n remoteType: peer.remoteConnectionType,\n });\n return [2 /*return*/];\n }\n });\n }); }, 0);\n}\nfunction onPeerConnectionFailed(_a) {\n var $store = _a.$store, peer = _a.peer, session = _a.session;\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_b) {\n log(\"FAILED connection for\", peer.name, peer);\n log(\"Trying to restart ICE for\", peer.name);\n peer.isSuspended = true;\n peer.connection.restartIce();\n return [2 /*return*/];\n });\n });\n}\nfunction createPeer($store, session, payload, reconnectCount, suspended) {\n if (reconnectCount === void 0) { reconnectCount = 0; }\n if (suspended === void 0) { suspended = false; }\n var peersIdentifier = payload.peersIdentifier, username = payload.username, master = payload.master;\n // Remove and close old master peer when reconnecting Wirecast\n if (master) {\n var wirecastPeer = $store.getters.peers.find(function (item) { return item.master; });\n if (wirecastPeer) {\n wirecastPeer.isSuspended = true;\n __WEBPACK_IMPORTED_MODULE_0__peers__[\"a\" /* closeConnection */](wirecastPeer);\n __WEBPACK_IMPORTED_MODULE_0__peers__[\"b\" /* remove */](wirecastPeer);\n $store.dispatch(\"removePeer\", wirecastPeer);\n }\n }\n var peer = __WEBPACK_IMPORTED_MODULE_0__peers__[\"c\" /* createConnection */](session, peersIdentifier, username, reconnectCount, master, $store.getters.supportMusic, $store.getters.supportSimultaneousScreen);\n peer.isSuspended = suspended;\n var connection = peer.connection;\n log(\"-> Creating peer for\", username, \"(\", peersIdentifier, \")\");\n connection.onconnectionstatechange = function () {\n log(username, \"Connection state change to\", connection.connectionState);\n // This is a workaround for a Chrome bug,\n // where iceConnectionState does not go to \"failed\" state.\n // Instead, use connectionState to see if connection has failed.\n // https://bugs.chromium.org/p/chromium/issues/detail?id=935898\n if (__WEBPACK_IMPORTED_MODULE_3_webrtc_adapter__[\"a\" /* default */].browserDetails.browser === \"chrome\") {\n var state = connection.connectionState;\n if (state == \"failed\") {\n onPeerConnectionFailed({ $store: $store, peer: peer, session: session });\n }\n }\n };\n connection.oniceconnectionstatechange = function () {\n var state = connection.iceConnectionState;\n log(\"-> ICE Connection state change for\", username, \"to\", state);\n var handler = new Map([\n [\"closed\", onPeerConnectionClosed],\n [\"disconnected\", onPeerConnectionDisconnected],\n [\"connected\", onPeerConnectionConnected],\n [\"failed\", onPeerConnectionFailed],\n ]).get(state);\n if (!handler)\n return;\n handler({ $store: $store, peer: peer, session: session });\n };\n connection.onnegotiationneeded = function () { return catchConnectionError($store, function () { return __WEBPACK_IMPORTED_MODULE_0__peers__[\"d\" /* createOffer */](session, peer); }); };\n peer.onReady = function () {\n $store.dispatch(\"addPeer\", peer);\n };\n return peer;\n}\nfunction getOrCreatePeer($socket, $store, peersIdentifier, payload) {\n return __WEBPACK_IMPORTED_MODULE_0__peers__[\"e\" /* getByIdentifier */](peersIdentifier) || createPeer($store, $socket.session, payload);\n}\nfunction onCreateAnswer($socket, $store) {\n return function (payload) {\n var peersIdentifier = payload.peersIdentifier;\n var peer = getOrCreatePeer($socket, $store, peersIdentifier, payload);\n log(\"-> onCreateAnswer\", peer.name);\n var localStream;\n var screenShareStream;\n if (!peer.connection.localDescription) {\n localStream = $store.getters.localStream;\n if (!$store.getters.sharingScreenOnly) {\n screenShareStream = $store.getters.localScreenStream;\n }\n }\n catchConnectionError($store, function () { return __WEBPACK_IMPORTED_MODULE_0__peers__[\"f\" /* updateDescriptions */]($socket.session, peer, payload, $store, localStream, screenShareStream); });\n // joining to a session\n if ($store.getters.appState === \"disconnected\" || $store.getters.appState === \"joining\") {\n log(\"-> Joined session successfully\");\n $store.dispatch(\"updateAppState\", \"connected\");\n }\n };\n}\nfunction onICE($socket, $store) {\n return function (payload) {\n var peer = __WEBPACK_IMPORTED_MODULE_0__peers__[\"e\" /* getByIdentifier */](payload.peersIdentifier);\n if (!peer) {\n console.error(\"No such peer\", payload.peersIdentifier);\n return;\n }\n __WEBPACK_IMPORTED_MODULE_0__peers__[\"g\" /* createCandidate */]($socket.session, peer, payload);\n };\n}\nfunction onCreateOffer($socket, $store) {\n return function (payload) {\n var peersIdentifier = payload.peersIdentifier, username = payload.username;\n var peer = getOrCreatePeer($socket, $store, peersIdentifier, payload);\n if (!peer.connection.localDescription) {\n var localStream = $store.getters.localStream;\n var screenShareStream = $store.getters.localScreenStream;\n __WEBPACK_IMPORTED_MODULE_0__peers__[\"h\" /* addTracks */](peer, localStream, screenShareStream);\n }\n log(\"-> onCreateOffer\", username);\n console.info(\"### Peers\", __WEBPACK_IMPORTED_MODULE_0__peers__[\"i\" /* getAll */]());\n peer.name = username;\n };\n}\nfunction onGotAnswer($socket, $store) {\n return function (payload) {\n var peer = __WEBPACK_IMPORTED_MODULE_0__peers__[\"e\" /* getByIdentifier */](payload.peersIdentifier);\n log(\"Current peers\", __WEBPACK_IMPORTED_MODULE_0__peers__[\"i\" /* getAll */]());\n log(\"-> Got answer\", peer.name);\n catchConnectionError($store, function () { return __WEBPACK_IMPORTED_MODULE_0__peers__[\"j\" /* setRemoteDescription */](peer, payload); });\n };\n}\nfunction onGotChatMessages($socket, $store) {\n return function (payload) {\n $store.dispatch(\"gotChatMessages\", payload.messages);\n };\n}\nfunction onDeletedChatMessage($socket, $store) {\n return function (payload) {\n if (payload.all === true) {\n $store.commit(\"deleteAllChatMessages\");\n return;\n }\n $store.commit(\"deleteChatMessage\", payload.index);\n };\n}\nfunction onPeerDisconnected($socket, $store) {\n return function (payload) {\n var peer = __WEBPACK_IMPORTED_MODULE_0__peers__[\"e\" /* getByIdentifier */](payload.peersIdentifier);\n if (peer) {\n log(\"-> Disconnection from\", peer.name);\n peer.isSuspended = true;\n __WEBPACK_IMPORTED_MODULE_0__peers__[\"a\" /* closeConnection */](peer);\n __WEBPACK_IMPORTED_MODULE_0__peers__[\"b\" /* remove */](peer);\n $store.dispatch(\"removePeer\", peer);\n }\n if (!$store.getters.peers.length) {\n $store.dispatch(\"updateAppState\", \"disconnected\");\n __WEBPACK_IMPORTED_MODULE_4__screenshare__[\"b\" /* stopScreen */]($store, $socket);\n }\n };\n}\nfunction onDisconnect($socket, $store) {\n return function () {\n log(\"-> Disconnecting\");\n __WEBPACK_IMPORTED_MODULE_4__screenshare__[\"b\" /* stopScreen */]($store, $socket);\n $store.dispatch(\"clearPeers\");\n $socket.session.socket.close();\n $store.dispatch(\"updateAppState\", \"disconnected\");\n };\n}\nfunction onUpdateSharingStateResponse($socket, $store) {\n return function (payload) {\n log(\"-> UpdateSharingStateResponse. Allowed: \", payload.allowed);\n $store.dispatch(\"updateSharingScreenAndVideo\", payload.allowed);\n if (!payload.allowed) {\n $store.dispatch(\"setScreenShareError\", \"SHARING_NOT_ALLOWED\");\n }\n };\n}\n/**\n * Starts listening on given socket (must be SocketPlugin.Socket)\n * @param {SocketPlugin.Socket} $socket - socket to listen to\n * @param {Vuex} $store - vuex store to dispatch actions to\n */\nfunction establish($socket, $store) {\n var session = $socket.session;\n $socket.on(\"createAnswer\", onCreateAnswer($socket, $store));\n $socket.on(\"ice\", onICE($socket, $store));\n $socket.on(\"createOffer\", onCreateOffer($socket, $store));\n $socket.on(\"gotAnswer\", onGotAnswer($socket, $store));\n $socket.on(\"gotChatMessages\", onGotChatMessages($socket, $store));\n $socket.on(\"deletedChatMessage\", onDeletedChatMessage($socket, $store));\n $socket.on(\"peerDisconnected\", onPeerDisconnected($socket, $store));\n $socket.on(\"disconnect\", onDisconnect($socket, $store));\n $socket.on(\"updateSharingStateResponse\", onUpdateSharingStateResponse($socket, $store));\n}\n\n\n/***/ }),\n/* 338 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (immutable) */ __webpack_exports__[\"a\"] = getFrameRate;\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_search_params__ = __webpack_require__(28);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_search_params___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_search_params__);\n\nfunction getFrameRate() {\n var params = __WEBPACK_IMPORTED_MODULE_0_search_params__[\"parse\"](window.location.search.replace(/^\\?/, \"\"));\n var fps = params.find(function (param) { return param.name === \"fps\"; });\n if (fps) {\n return fps.value;\n }\n}\n\n\n/***/ }),\n/* 339 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (immutable) */ __webpack_exports__[\"b\"] = createPeerGuid;\n/* harmony export (immutable) */ __webpack_exports__[\"a\"] = getPeerGuid;\n/* harmony export (immutable) */ __webpack_exports__[\"c\"] = getSessionGuid;\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_uuid_v4__ = __webpack_require__(348);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_uuid_v4___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_uuid_v4__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_js_cookie__ = __webpack_require__(68);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_js_cookie___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_js_cookie__);\n/**\n * Guuid generation and storing\n * @module Guuid\n */\n\n\nvar peerGuidCookie = \"net.telestream.webrtc.peerIdentifier\";\nfunction savePeerGuid(guid) {\n __WEBPACK_IMPORTED_MODULE_1_js_cookie___default.a.set(peerGuidCookie, guid);\n}\nfunction createPeerGuid() {\n var guid = __WEBPACK_IMPORTED_MODULE_0_uuid_v4___default()();\n savePeerGuid(guid);\n return guid;\n}\nfunction getPeerGuid() {\n return __WEBPACK_IMPORTED_MODULE_1_js_cookie___default.a.get(peerGuidCookie);\n}\nfunction getSessionGuid() {\n var pathname = window.location.pathname;\n var _a = pathname.match(/\\/s\\/([^\\/|\\?]+)/), sessionGuid = _a[1];\n if (!sessionGuid) {\n throw new Error(\"Could not find session guid in the URL pathname: \" + pathname);\n }\n return sessionGuid;\n}\n\n\n/***/ }),\n/* 340 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return servers; });\n/**\n * This module only holds the list of ICE servers available\n * @module ICE\n */\nvar servers = [{ urls: \"stun:stun.l.google.com:19302\" }];\n\n\n/***/ }),\n/* 341 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vue__ = __webpack_require__(31);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_vue_i18n__ = __webpack_require__(139);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__App__ = __webpack_require__(140);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__App___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2__App__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__plugin_socket__ = __webpack_require__(136);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__store__ = __webpack_require__(138);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__internationalization__ = __webpack_require__(135);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__polyfills__ = __webpack_require__(137);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__polyfills___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_6__polyfills__);\n\n\n\n\n\n\n\nconsole.log(\"git commit: \" + \"c39c8d2bc9a44f7c0ade23b7b8f737e0ff80a0ce\");\n__WEBPACK_IMPORTED_MODULE_0_vue__[\"a\" /* default */].use(__WEBPACK_IMPORTED_MODULE_3__plugin_socket__[\"a\" /* default */], {\n store: __WEBPACK_IMPORTED_MODULE_4__store__[\"a\" /* default */],\n onError: function (error) {\n __WEBPACK_IMPORTED_MODULE_4__store__[\"a\" /* default */].dispatch(\"setMinorError\", \"WEBSOCKET\");\n console.error(error);\n },\n});\n__WEBPACK_IMPORTED_MODULE_0_vue__[\"a\" /* default */].use(__WEBPACK_IMPORTED_MODULE_1_vue_i18n__[\"a\" /* default */]);\n__WEBPACK_IMPORTED_MODULE_0_vue__[\"a\" /* default */].config.productionTip = false;\nvar i18n = new __WEBPACK_IMPORTED_MODULE_1_vue_i18n__[\"a\" /* default */]({\n locale: __WEBPACK_IMPORTED_MODULE_5__internationalization__[\"a\" /* getLanguage */](),\n});\n/* eslint-disable no-new */\n/* tslint:disable:no-unused-expression */\nnew __WEBPACK_IMPORTED_MODULE_0_vue__[\"a\" /* default */]({\n el: \"#app\",\n template: \"\",\n components: { App: __WEBPACK_IMPORTED_MODULE_2__App___default.a },\n store: __WEBPACK_IMPORTED_MODULE_4__store__[\"a\" /* default */],\n i18n: i18n,\n});\nif (window.Raven) {\n window.Raven.config(\"https://541a1dde7b5147c989e8d153a89a350f@sentry.io/197022\").install();\n}\n\n\n/***/ }),\n/* 342 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash__ = __webpack_require__(130);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_lodash__);\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __spreadArrays = (this && this.__spreadArrays) || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n};\n\nvar LOCAL_PEER_CHAT_COLOR = \"#029bd4\";\nvar DEFAULT_GUEST_PEER_CHAT_COLOR = \"#20986c\";\nvar GUEST_PEERS_CHAT_COLORS = [\"#20986c\", \"#431eac\", \"#3978be\", \"#41a558\", \"#6300bf\", \"#0064b8\", \"#14988d\", \"#0041b9\"];\n/* harmony default export */ __webpack_exports__[\"a\"] = ({\n state: {\n chatFeatureEnabled: false,\n chatPanelOpened: true,\n localChatPeerId: undefined,\n peersColors: {},\n newMessageIndicator: false,\n messages: [],\n },\n getters: {\n showChat: function (state) {\n return state.chatFeatureEnabled && state.chatPanelOpened;\n },\n chatFeatureEnabled: function (state) {\n return state.chatFeatureEnabled;\n },\n chatPanelOpened: function (state) {\n return state.chatPanelOpened;\n },\n chatMessages: function (state) {\n return state.messages.sort(function (message1, message2) { return message1.index - message2.index; });\n },\n localChatPeerId: function (state) {\n return state.localChatPeerId;\n },\n getPeerColor: function (state) { return function (peerId) {\n return state.peersColors[peerId] || DEFAULT_GUEST_PEER_CHAT_COLOR;\n }; },\n getPeersWithColor: function (state) {\n return Object.keys(state.peersColors);\n },\n showNewMessageIndicator: function (state) {\n return state.newMessageIndicator && !state.chatPanelOpened;\n },\n },\n mutations: {\n addChatMessages: function (state, newMessages) {\n state.messages = __spreadArrays(state.messages, newMessages);\n },\n setChatFeatureEnabled: function (state, newChatFeatureStatus) {\n state.chatFeatureEnabled = newChatFeatureStatus;\n },\n setChatPanelOpened: function (state, newOpenedStatus) {\n state.chatPanelOpened = newOpenedStatus;\n if (!newOpenedStatus)\n state.newMessageIndicator = false;\n },\n setLocalChatPeerId: function (state, newPeerId) {\n state.localChatPeerId = newPeerId;\n },\n setLocalChatPeerColor: function (state, newPeerId) {\n var _a;\n state.peersColors = __assign(__assign({}, state.peersColors), (_a = {}, _a[newPeerId] = LOCAL_PEER_CHAT_COLOR, _a));\n },\n setPeerChatColor: function (state, newPeerId) {\n var _a;\n var colorIndex = Object.keys(state.peersColors).length % GUEST_PEERS_CHAT_COLORS.length;\n var color = GUEST_PEERS_CHAT_COLORS[colorIndex];\n state.peersColors = __assign(__assign({}, state.peersColors), (_a = {}, _a[newPeerId] = color, _a));\n },\n setNewMessageIndicator: function (state, newStatus) {\n state.newMessageIndicator = newStatus;\n },\n deleteChatMessage: function (state, deletedMessageIndex) {\n state.messages = state.messages.map(function (message) {\n if (message.index === deletedMessageIndex) {\n return __assign(__assign({}, message), { content: \"This message has been deleted.\", deleted: true });\n }\n return message;\n });\n },\n deleteAllChatMessages: function (state) {\n state.messages = [];\n },\n },\n actions: {\n toggleChatPanelOpened: function (_a) {\n var getters = _a.getters, commit = _a.commit;\n commit(\"setChatPanelOpened\", !getters.chatPanelOpened);\n },\n gotChatMessages: function (_a, newMessages) {\n var getters = _a.getters, commit = _a.commit;\n var messagePeers = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_lodash__[\"uniq\"])(newMessages.map(function (message) { return message.peersIdentifier; }));\n var newPeers = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_lodash__[\"difference\"])(messagePeers, getters.getPeersWithColor);\n if (newPeers.length > 0) {\n newPeers.forEach(function (peerId) { return commit(\"setPeerChatColor\", peerId); });\n }\n commit(\"addChatMessages\", newMessages);\n if (!getters.chatPanelOpened)\n commit(\"setNewMessageIndicator\", true);\n },\n enableChat: function (_a, _b) {\n var commit = _a.commit;\n var peersIdentifier = _b.peersIdentifier;\n commit(\"setChatFeatureEnabled\", true);\n commit(\"setChatPanelOpened\", true);\n commit(\"setLocalChatPeerId\", peersIdentifier);\n commit(\"setLocalChatPeerColor\", peersIdentifier);\n },\n disableChat: function (_a) {\n var commit = _a.commit;\n commit(\"setChatFeatureEnabled\", false);\n commit(\"setChatPanelOpened\", false);\n commit(\"setLocalChatPeerId\", undefined);\n },\n },\n});\n\n\n/***/ }),\n/* 343 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDI0LjEuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IgoJIHZpZXdCb3g9IjAgMCAxOCAxNiIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgMTggMTY7IiB4bWw6c3BhY2U9InByZXNlcnZlIj4KPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KCS5zdDB7ZmlsbDojRkZGRkZGO30KPC9zdHlsZT4KPGRlc2M+Q3JlYXRlZCB3aXRoIFNrZXRjaC48L2Rlc2M+CjxnIGlkPSJfeDMyX18xOF8iPgoJPGc+CgkJPHBhdGggY2xhc3M9InN0MCIgZD0iTTExLjIsOS4xSDYuOGMtMC4yLDAtMC40LDAuMi0wLjQsMC40YzAsMC4yLDAuMiwwLjQsMC40LDAuNGg0LjRjMC4yLDAsMC40LTAuMiwwLjQtMC40CgkJCUMxMS43LDkuMywxMS41LDkuMSwxMS4yLDkuMXogTTEyLjEsNi40SDUuOWMtMC4yLDAtMC40LDAuMi0wLjQsMC40YzAsMC4yLDAuMiwwLjQsMC40LDAuNGg2LjJjMC4yLDAsMC40LTAuMiwwLjQtMC40CgkJCUMxMi41LDYuNiwxMi4zLDYuNCwxMi4xLDYuNHogTTksMS41Yy0zLjksMC03LjEsMi44LTcuMSw2LjJjMCwyLDEsMy43LDIuNyw0Ljh2My4xbDMuMS0xLjljMC40LDAuMSwwLjksMC4xLDEuMywwLjEKCQkJYzMuOSwwLDcuMS0yLjgsNy4xLTYuMkMxNi4xLDQuMywxMi45LDEuNSw5LDEuNXogTTksMTMuMWMtMC41LDAtMS0wLjEtMS41LTAuMmwtMi4xLDEuM2wwLTIuMWMtMS42LTEtMi42LTIuNi0yLjYtNC40CgkJCWMwLTIuOSwyLjgtNS4zLDYuMi01LjNzNi4yLDIuNCw2LjIsNS4zQzE1LjIsMTAuNywxMi40LDEzLjEsOSwxMy4xeiIvPgoJPC9nPgo8L2c+Cjwvc3ZnPgo=\"\n\n/***/ }),\n/* 344 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDI0LjEuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IgoJIHZpZXdCb3g9IjAgMCAxOCAxNiIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgMTggMTY7IiB4bWw6c3BhY2U9InByZXNlcnZlIj4KPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KCS5zdDB7ZmlsbDojRkZGRkZGO30KPC9zdHlsZT4KPGRlc2M+Q3JlYXRlZCB3aXRoIFNrZXRjaC48L2Rlc2M+CjxkZXNjPkNyZWF0ZWQgd2l0aCBTa2V0Y2guPC9kZXNjPgo8cmVjdCB4PSI4LjciIHk9IjAuNCIgdHJhbnNmb3JtPSJtYXRyaXgoMC43MDcxIDAuNzA3MSAtMC43MDcxIDAuNzA3MSA4LjI5MjkgLTQuMDIwOCkiIGNsYXNzPSJzdDAiIHdpZHRoPSIwLjciIGhlaWdodD0iMTUuMiIvPgo8cmVjdCB4PSI4LjciIHk9IjAuNCIgdHJhbnNmb3JtPSJtYXRyaXgoLTAuNzA3MSAwLjcwNzEgLTAuNzA3MSAtMC43MDcxIDIxLjAyMDggNy4yOTI5KSIgY2xhc3M9InN0MCIgd2lkdGg9IjAuNyIgaGVpZ2h0PSIxNS4yIi8+Cjwvc3ZnPgo=\"\n\n/***/ }),\n/* 345 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAXkAAABICAYAAAATUoWBAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyNpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQwIDc5LjE2MDQ1MSwgMjAxNy8wNS8wNi0wMTowODoyMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChNYWNpbnRvc2gpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjAxN0UxOEZERDE2NjExRTc4NUQ0OTBDRDlCQjYxNjk2IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjAxN0UxOEZFRDE2NjExRTc4NUQ0OTBDRDlCQjYxNjk2Ij4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MDE3RTE4RkJEMTY2MTFFNzg1RDQ5MENEOUJCNjE2OTYiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MDE3RTE4RkNEMTY2MTFFNzg1RDQ5MENEOUJCNjE2OTYiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4kMm/oAAAhoUlEQVR42uxdCWAU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\"\n\n/***/ }),\n/* 346 */,\n/* 347 */,\n/* 348 */,\n/* 349 */\n/***/ (function(module, exports, __webpack_require__) {\n\nfunction injectStyle (ssrContext) {\n __webpack_require__(319)\n}\nvar Component = __webpack_require__(3)(\n /* script */\n __webpack_require__(324),\n /* template */\n __webpack_require__(371),\n /* styles */\n injectStyle,\n /* scopeId */\n null,\n /* moduleIdentifier (server only) */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n/* 350 */\n/***/ (function(module, exports, __webpack_require__) {\n\nfunction injectStyle (ssrContext) {\n __webpack_require__(315)\n}\nvar Component = __webpack_require__(3)(\n /* script */\n __webpack_require__(325),\n /* template */\n __webpack_require__(367),\n /* styles */\n injectStyle,\n /* scopeId */\n \"data-v-5cf084d5\",\n /* moduleIdentifier (server only) */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n/* 351 */\n/***/ (function(module, exports, __webpack_require__) {\n\nfunction injectStyle (ssrContext) {\n __webpack_require__(311)\n __webpack_require__(310)\n}\nvar Component = __webpack_require__(3)(\n /* script */\n __webpack_require__(326),\n /* template */\n __webpack_require__(363),\n /* styles */\n injectStyle,\n /* scopeId */\n \"data-v-382ff846\",\n /* moduleIdentifier (server only) */\n null\n)\n\n/* customBlocks */\nvar customBlock = __webpack_require__(142)\nif (typeof customBlock === \"function\") {customBlock(Component)}\n\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n/* 352 */\n/***/ (function(module, exports, __webpack_require__) {\n\nfunction injectStyle (ssrContext) {\n __webpack_require__(309)\n}\nvar Component = __webpack_require__(3)(\n /* script */\n __webpack_require__(327),\n /* template */\n __webpack_require__(362),\n /* styles */\n injectStyle,\n /* scopeId */\n \"data-v-2cfd8303\",\n /* moduleIdentifier (server only) */\n null\n)\n\n/* customBlocks */\nvar customBlock = __webpack_require__(143)\nif (typeof customBlock === \"function\") {customBlock(Component)}\n\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n/* 353 */\n/***/ (function(module, exports, __webpack_require__) {\n\nfunction injectStyle (ssrContext) {\n __webpack_require__(316)\n}\nvar Component = __webpack_require__(3)(\n /* script */\n __webpack_require__(328),\n /* template */\n __webpack_require__(368),\n /* styles */\n injectStyle,\n /* scopeId */\n \"data-v-62225338\",\n /* moduleIdentifier (server only) */\n null\n)\n\n/* customBlocks */\nvar customBlock = __webpack_require__(144)\nif (typeof customBlock === \"function\") {customBlock(Component)}\n\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n/* 354 */\n/***/ (function(module, exports, __webpack_require__) {\n\nfunction injectStyle (ssrContext) {\n __webpack_require__(305)\n}\nvar Component = __webpack_require__(3)(\n /* script */\n __webpack_require__(330),\n /* template */\n __webpack_require__(358),\n /* styles */\n injectStyle,\n /* scopeId */\n \"data-v-00f5ebb8\",\n /* moduleIdentifier (server only) */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n/* 355 */\n/***/ (function(module, exports, __webpack_require__) {\n\nfunction injectStyle (ssrContext) {\n __webpack_require__(313)\n}\nvar Component = __webpack_require__(3)(\n /* script */\n __webpack_require__(331),\n /* template */\n __webpack_require__(365),\n /* styles */\n injectStyle,\n /* scopeId */\n \"data-v-51967d42\",\n /* moduleIdentifier (server only) */\n null\n)\n\n/* customBlocks */\nvar customBlock = __webpack_require__(146)\nif (typeof customBlock === \"function\") {customBlock(Component)}\n\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n/* 356 */\n/***/ (function(module, exports, __webpack_require__) {\n\nfunction injectStyle (ssrContext) {\n __webpack_require__(317)\n}\nvar Component = __webpack_require__(3)(\n /* script */\n __webpack_require__(332),\n /* template */\n __webpack_require__(369),\n /* styles */\n injectStyle,\n /* scopeId */\n \"data-v-718baeb1\",\n /* moduleIdentifier (server only) */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n/* 357 */\n/***/ (function(module, exports, __webpack_require__) {\n\nfunction injectStyle (ssrContext) {\n __webpack_require__(307)\n}\nvar Component = __webpack_require__(3)(\n /* script */\n __webpack_require__(335),\n /* template */\n __webpack_require__(360),\n /* styles */\n injectStyle,\n /* scopeId */\n null,\n /* moduleIdentifier (server only) */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n/* 358 */\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"streams-container\",\n class: {\n 'expanded-view': _vm.isAnyStreamExpanded\n }\n }, _vm._l((_vm.peers), function(peer) {\n return _c('stream', {\n key: peer.identifier,\n class: _vm.videoDisplayClass(peer.identifier),\n attrs: {\n \"source\": peer.stream,\n \"screen-source\": peer.screenStream,\n \"is-local-stream\": false,\n \"label\": peer.name,\n \"id\": peer.identifier,\n \"peer\": peer\n },\n nativeOn: {\n \"click\": function($event) {\n _vm.expandStream(peer.identifier)\n }\n }\n })\n }))\n},staticRenderFns: []}\n\n/***/ }),\n/* 359 */\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"select-wrapper\"\n }, [_c('span', [_vm._v(\"Microphone\")]), _vm._v(\" \"), _vm._l((_vm.audioDevices), function(device) {\n return _c('label', [_c('input', {\n directives: [{\n name: \"model\",\n rawName: \"v-model\",\n value: (_vm.selectedDevice),\n expression: \"selectedDevice\"\n }],\n attrs: {\n \"type\": \"radio\"\n },\n domProps: {\n \"value\": device.deviceId,\n \"checked\": _vm._q(_vm.selectedDevice, device.deviceId)\n },\n on: {\n \"change\": _vm.onChange,\n \"__c\": function($event) {\n _vm.selectedDevice = device.deviceId\n }\n }\n }), _vm._v(\"\\n \" + _vm._s(device.label) + \"\\n \")])\n })], 2)\n},staticRenderFns: []}\n\n/***/ }),\n/* 360 */\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n class: (\"chat-message-single \" + (_vm.isLocal ? 'local-message' : ''))\n }, [_c('div', {\n staticClass: \"chat-message-header\"\n }, [_c('span', {\n staticClass: \"chat-message-username\"\n }, [_vm._v(_vm._s(_vm.username))]), _vm._v(\" \"), _c('span', {\n staticClass: \"chat-message-time\"\n }, [_vm._v(_vm._s(_vm.time))])]), _vm._v(\" \"), _c('div', {\n staticClass: \"bubble-container\"\n }, [(_vm.canBeDeleted) ? _c('div', {\n staticClass: \"chat-bin\"\n }, [_c('div', {\n on: {\n \"click\": _vm.deleteMessage\n }\n }, [_c('span', {\n staticClass: \"delete-chat-message\"\n })])]) : _vm._e(), _vm._v(\" \"), _c('div', {\n class: _vm.chatBubbleCssClass,\n style: ({\n backgroundColor: _vm.messageBubbleColor\n })\n }, [_c('span', {\n domProps: {\n \"innerHTML\": _vm._s(_vm.linkedContent)\n }\n })])])])\n},staticRenderFns: []}\n\n/***/ }),\n/* 361 */\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"select-wrapper\"\n }, [_c('span', [_vm._v(\"Camera\")]), _vm._v(\" \"), _vm._l((_vm.videoDevices), function(device) {\n return _c('label', [_c('input', {\n directives: [{\n name: \"model\",\n rawName: \"v-model\",\n value: (_vm.selectedDevice),\n expression: \"selectedDevice\"\n }],\n attrs: {\n \"disabled\": _vm.sharingScreenOnly,\n \"name\": \"video-device\",\n \"type\": \"radio\"\n },\n domProps: {\n \"value\": device.deviceId,\n \"checked\": _vm._q(_vm.selectedDevice, device.deviceId)\n },\n on: {\n \"change\": _vm.onChange,\n \"__c\": function($event) {\n _vm.selectedDevice = device.deviceId\n }\n }\n }), _vm._v(\"\\n \" + _vm._s(device.label) + \"\\n \")])\n })], 2)\n},staticRenderFns: []}\n\n/***/ }),\n/* 362 */\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"local\"\n }, [_c('div', {\n staticClass: \"dropdown\",\n attrs: {\n \"title\": _vm.$t('button_settings_title')\n }\n }, [_c('i', {\n staticClass: \"icon-settings-menu icons\",\n attrs: {\n \"data-settings-dropdown\": \"\"\n },\n on: {\n \"click\": _vm.toggleDropdown\n }\n }), _vm._v(\" \"), _c('div', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (_vm.dropdownVisible),\n expression: \"dropdownVisible\"\n }],\n staticClass: \"dropdown-content\"\n }, [_c('audio-device-select'), _vm._v(\" \"), _c('video-device-select'), _vm._v(\" \"), _c('options-menu-select')], 1)]), _vm._v(\" \"), _c('div', {\n staticClass: \"screenDropdown\",\n attrs: {\n \"title\": _vm.$t('button_screen_share_title')\n }\n }, [_c('i', {\n class: (\"\" + ((_vm.sharingScreenAndVideo || _vm.sharingScreenOnly) ? 'icon-active-desktop-menu icons' : 'icon-desktop-menu icons')),\n attrs: {\n \"data-screen-dropdown\": \"\"\n },\n on: {\n \"click\": _vm.toggleScreenDropdown\n }\n }), _vm._v(\" \"), _c('div', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (_vm.supportScreensharing && _vm.isConnected && _vm.screenDropdownVisible),\n expression: \"supportScreensharing && isConnected && screenDropdownVisible\"\n }],\n staticClass: \"dropdown-content\"\n }, [_c('screen-menu-select')], 1)]), _vm._v(\" \"), _c('stream', {\n attrs: {\n \"source\": _vm.sourceStream,\n \"is-local-stream\": true,\n \"id\": _vm.localPeerId\n }\n })], 1)\n},staticRenderFns: []}\n\n/***/ }),\n/* 363 */\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"join-prompt\"\n }, [_c('my-stream'), _vm._v(\" \"), _c('form', {\n on: {\n \"submit\": function($event) {\n $event.preventDefault();\n _vm.onSubmit($event)\n }\n }\n }, [_vm._v(\"\\n \" + _vm._s(_vm.$t(\"content\")) + \":\\n \"), _c('input', {\n directives: [{\n name: \"model\",\n rawName: \"v-model\",\n value: (_vm.name),\n expression: \"name\"\n }],\n attrs: {\n \"type\": \"text\",\n \"maxlength\": \"30\"\n },\n domProps: {\n \"value\": (_vm.name)\n },\n on: {\n \"input\": [function($event) {\n if ($event.target.composing) { return; }\n _vm.name = $event.target.value\n }, _vm.onInput]\n }\n }), _vm._v(\" \"), _c('button', {\n attrs: {\n \"disabled\": _vm.isButtonDisabled\n }\n }, [_vm._v(_vm._s(_vm.$t(\"button_join\")))])])], 1)\n},staticRenderFns: []}\n\n/***/ }),\n/* 364 */\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"stream\",\n class: _vm.streamClass\n }, [_c('div', {\n staticClass: \"controls-bg\"\n }), _vm._v(\" \"), _c('div', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (_vm.localInitialMode !== true),\n expression: \"localInitialMode !== true\"\n }],\n staticClass: \"label\"\n }, [_vm._v(_vm._s(_vm.userName))]), _vm._v(\" \"), _c('div', {\n staticClass: \"controls\"\n }, [_c('span', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (!_vm.isLocalStream && _vm.showBitrate),\n expression: \"!isLocalStream && showBitrate\"\n }],\n staticStyle: {\n \"text-align\": \"left\",\n \"color\": \"aqua\"\n }\n }, [_vm._v(\"\\n \" + _vm._s(_vm.bitrate) + \"\\n \")]), _vm._v(\" \"), _c('button', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (_vm.showChatIcon),\n expression: \"showChatIcon\"\n }],\n attrs: {\n \"title\": _vm.$t('button_show_chat_title')\n },\n on: {\n \"click\": _vm.toggleChatPanelOpened\n }\n }, [_c('i', {\n staticClass: \"icon-chat\"\n }, [_c('i', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (_vm.showNewMessageIndicator),\n expression: \"showNewMessageIndicator\"\n }],\n staticClass: \"icon-chat-new\"\n })])]), _vm._v(\" \"), _c('button', {\n attrs: {\n \"title\": _vm.$t('button_mute_video_title')\n },\n on: {\n \"click\": function($event) {\n $event.stopPropagation();\n _vm.toggleVideo($event)\n }\n }\n }, [_c('i', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (_vm.isLocalStream && (_vm.videoEnabled && !_vm.sharingScreenOnly)),\n expression: \"isLocalStream && (videoEnabled && !sharingScreenOnly)\"\n }],\n staticClass: \"icon-cam-n-menu\"\n }), _vm._v(\" \"), _c('i', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (_vm.isLocalStream && (!_vm.videoEnabled || _vm.sharingScreenOnly)),\n expression: \"isLocalStream && (!videoEnabled || sharingScreenOnly)\"\n }],\n staticClass: \"icon-cam-menu\"\n }), _vm._v(\" \"), _c('i', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (!_vm.isLocalStream && _vm.videoEnabled),\n expression: \"!isLocalStream && videoEnabled\"\n }],\n staticClass: \"icon-cam-n-menu\"\n }), _vm._v(\" \"), _c('i', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (!_vm.isLocalStream && !_vm.videoEnabled),\n expression: \"!isLocalStream && !videoEnabled\"\n }],\n staticClass: \"icon-cam-menu\"\n })]), _vm._v(\" \"), _c('button', {\n attrs: {\n \"title\": _vm.$t('button_mute_audio_title')\n },\n on: {\n \"click\": function($event) {\n $event.stopPropagation();\n _vm.toggleAudio($event)\n }\n }\n }, [_c('i', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (!_vm.isLocalStream && _vm.audioEnabled),\n expression: \"!isLocalStream && audioEnabled\"\n }],\n staticClass: \"icon-audio-n-menu\"\n }), _vm._v(\" \"), _c('i', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (!_vm.isLocalStream && !_vm.audioEnabled),\n expression: \"!isLocalStream && !audioEnabled\"\n }],\n staticClass: \"icon-audio-menu\"\n }), _vm._v(\" \"), _c('i', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (_vm.isLocalStream && _vm.audioEnabled),\n expression: \"isLocalStream && audioEnabled\"\n }],\n staticClass: \"icon-micro-n-menu\"\n }), _vm._v(\" \"), _c('i', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (_vm.isLocalStream && !_vm.audioEnabled),\n expression: \"isLocalStream && !audioEnabled\"\n }],\n staticClass: \"icon-micro-menu\"\n })]), _vm._v(\" \"), _c('button', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (_vm.isRemoteAudioMuted),\n expression: \"isRemoteAudioMuted\"\n }],\n staticClass: \"remote-icon\"\n }, [_c('i', {\n staticClass: \"icon-remote-micro-menu\"\n })])]), _vm._v(\" \"), _c('div', {\n staticClass: \"container\",\n attrs: {\n \"container\": \"\"\n }\n }, [_vm._m(0), _vm._v(\" \"), _c('spinner', {\n attrs: {\n \"isVisible\": !_vm.isVideoReady || _vm.isSuspended\n }\n }), _vm._v(\" \"), _c('span', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (_vm.isSuspended),\n expression: \"isSuspended\"\n }],\n staticClass: \"connection-problem\"\n }, [_vm._v(\"Connection problems...\")]), _vm._v(\" \"), _c('div', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (_vm.isTallyActive),\n expression: \"isTallyActive\"\n }],\n staticClass: \"tally\"\n }), _vm._v(\" \"), _c('div', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (!_vm.videoEnabled),\n expression: \"!videoEnabled\"\n }],\n staticClass: \"video-muted\"\n }, [_c('i', {\n staticClass: \"tsc-cam-menu\"\n })]), _vm._v(\" \"), _c('div', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (!_vm.audioEnabled && _vm.isLocalStream),\n expression: \"!audioEnabled && isLocalStream\"\n }],\n staticClass: \"audio-muted\"\n }, [_c('i', {\n staticClass: \"tsc-micro-menu\"\n })]), _vm._v(\" \"), _c('video', {\n class: [_vm.videoFlipped ? 'main-video-mirror' : 'main-video', {\n 'share-mode-video': _vm.isScreenShare\n }],\n attrs: {\n \"autoplay\": \"\",\n \"data-original\": \"\"\n }\n }), _vm._v(\" \"), _c('video', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (_vm.isScreenShare),\n expression: \"isScreenShare\"\n }],\n class: {\n 'share-mode-screen': _vm.isScreenShare\n },\n attrs: {\n \"autoplay\": \"\",\n \"data-screen\": \"\"\n }\n })], 1)])\n},staticRenderFns: [function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"zoom\"\n }, [_c('div', {\n staticClass: \"move-center\"\n }, [_c('div', {\n staticClass: \"icons\"\n }, [_c('i', {\n staticClass: \"icon-zoom\"\n }), _vm._v(\" \"), _c('i', {\n staticClass: \"icon-grid\"\n })])])])\n}]}\n\n/***/ }),\n/* 365 */\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"select-wrapper\"\n }, [_c('label', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (_vm.supportSimultaneousScreen),\n expression: \"supportSimultaneousScreen\"\n }]\n }, [_c('input', {\n directives: [{\n name: \"model\",\n rawName: \"v-model\",\n value: (_vm.selectedOption),\n expression: \"selectedOption\"\n }],\n attrs: {\n \"type\": \"radio\",\n \"value\": \"screen-camera\"\n },\n domProps: {\n \"checked\": _vm._q(_vm.selectedOption, \"screen-camera\")\n },\n on: {\n \"change\": function($event) {\n $event.preventDefault();\n _vm.onChange($event)\n },\n \"__c\": function($event) {\n _vm.selectedOption = \"screen-camera\"\n }\n }\n }), _vm._v(\"\\n \" + _vm._s(_vm.$t(\"screen-share-and-camera\")) + \"\\n \")]), _vm._v(\" \"), _c('label', [_c('input', {\n directives: [{\n name: \"model\",\n rawName: \"v-model\",\n value: (_vm.selectedOption),\n expression: \"selectedOption\"\n }],\n attrs: {\n \"type\": \"radio\",\n \"value\": \"screen-only\"\n },\n domProps: {\n \"checked\": _vm._q(_vm.selectedOption, \"screen-only\")\n },\n on: {\n \"change\": function($event) {\n $event.preventDefault();\n _vm.onChange($event)\n },\n \"__c\": function($event) {\n _vm.selectedOption = \"screen-only\"\n }\n }\n }), _vm._v(\"\\n \" + _vm._s(_vm.$t(\"screen-share-only\")) + \"\\n \")]), _vm._v(\" \"), _c('label', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (_vm.sharingScreenOnly || _vm.sharingScreenAndVideo),\n expression: \"sharingScreenOnly || sharingScreenAndVideo\"\n }]\n }, [_c('input', {\n directives: [{\n name: \"model\",\n rawName: \"v-model\",\n value: (_vm.selectedOption),\n expression: \"selectedOption\"\n }],\n attrs: {\n \"type\": \"radio\",\n \"value\": \"disabled\"\n },\n domProps: {\n \"checked\": _vm._q(_vm.selectedOption, \"disabled\")\n },\n on: {\n \"change\": function($event) {\n $event.preventDefault();\n _vm.onChange($event)\n },\n \"__c\": function($event) {\n _vm.selectedOption = \"disabled\"\n }\n }\n }), _vm._v(\"\\n \" + _vm._s(_vm.$t(\"stop-screen-share\")) + \"\\n \")])])\n},staticRenderFns: []}\n\n/***/ }),\n/* 366 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n attrs: {\n \"id\": \"app\"\n }\n }, [_c('div', {\n attrs: {\n \"id\": \"menu\"\n }\n }, [_vm._m(0), _vm._v(\" \"), (!_vm.isErrorNoRTC && !_vm.isIOS && !_vm.isPure) ? _c('local') : _vm._e()], 1), _vm._v(\" \"), _c('div', {\n staticClass: \"content-container\"\n }, [_c('div', {\n staticClass: \"remote-container\"\n }, [_c('div', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (_vm.minorError),\n expression: \"minorError\"\n }],\n staticClass: \"error-notification\"\n }, [(_vm.minorError === 'WEBSOCKET') ? _c('p', [_vm._v(\"\\n \" + _vm._s(_vm.$t(\"error.websocket\")) + \"\\n \")]) : (_vm.minorError === 'CONNECTION') ? _c('p', [_vm._v(\"\\n \" + _vm._s(_vm.$t(\"error.connection\")) + \"\\n \")]) : _vm._e()]), _vm._v(\" \"), _c('div', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (_vm.audioDeviceError.errorId),\n expression: \"audioDeviceError.errorId\"\n }],\n staticClass: \"error-notification\"\n }, [(_vm.audioDeviceError.errorId === 'NOT_ALLOWED') ? _c('p', [_vm._v(\"\\n Please allow Rendezvous to access your microphone.\\n \")]) : (_vm.audioDeviceError.errorId === 'ABORT_ERROR_FF') ? _c('p', [_c('strong', [_vm._v(_vm._s(_vm.audioDeviceError.deviceName))]), _vm._v(\" is not available. Please choose another microphone and refresh the page.\\n \")]) : (_vm.audioDeviceError.errorId === 'NO_DEVICES') ? _c('p', [_vm._v(\"\\n No audio device found. Please connect a microphone.\\n \")]) : (_vm.audioDeviceError.errorId === 'NOT_READABLE_DEVICE') ? _c('p', [_c('strong', [_vm._v(_vm._s(_vm.audioDeviceError.deviceName))]), _vm._v(\" is not available. Please choose another microphone.\\n \")]) : _vm._e()]), _vm._v(\" \"), _c('div', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (_vm.videoDeviceError.errorId),\n expression: \"videoDeviceError.errorId\"\n }],\n staticClass: \"info-notification\"\n }, [(_vm.videoDeviceError.errorId === 'NOT_ALLOWED') ? _c('p', [_vm._v(\"\\n Please allow Rendezvous to access your camera.\\n \")]) : (_vm.videoDeviceError.errorId === 'ABORT_ERROR_FF') ? _c('p', [_c('strong', [_vm._v(_vm._s(_vm.videoDeviceError.deviceName))]), _vm._v(\" is not available. Please choose another camera and refresh the page.\\n \")]) : (_vm.videoDeviceError.errorId === 'NOT_READABLE_DEVICE') ? _c('p', [_c('strong', [_vm._v(_vm._s(_vm.videoDeviceError.deviceName))]), _vm._v(\" is not available. Please choose another camera.\\n \")]) : _vm._e()]), _vm._v(\" \"), _c('div', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (_vm.screenShareError),\n expression: \"screenShareError\"\n }],\n staticClass: \"info-notification\"\n }, [(_vm.screenShareError === 'SHARING_NOT_ALLOWED') ? _c('p', [_vm._v(\"\\n Only one person can share both screen and camera.\\n \"), _c('button', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (!_vm.sharingScreenOnly),\n expression: \"!sharingScreenOnly\"\n }],\n on: {\n \"click\": function($event) {\n $event.stopPropagation();\n _vm.enableScreenshareOnly($event)\n }\n }\n }, [_vm._v(\"Share screen only & disable camera\")]), _vm._v(\" \"), _c('button', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (_vm.sharingScreenOnly),\n expression: \"sharingScreenOnly\"\n }],\n on: {\n \"click\": function($event) {\n $event.stopPropagation();\n _vm.disableScreenshareOnly($event)\n }\n }\n }, [_vm._v(\"Share camera instead of screen\")]), _vm._v(\" \"), _c('button', {\n on: {\n \"click\": function($event) {\n $event.stopPropagation();\n _vm.onShareScreenErrorDismiss($event)\n }\n }\n }, [_vm._v(\"Cancel\")])]) : _c('p', [_vm._v(\"\\n Failed to share the screen: \"), _c('strong', [_vm._v(_vm._s(_vm.screenShareError))])])]), _vm._v(\" \"), _c('div', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (_vm.sharingScreenAndVideo && !_vm.screenTallyActive),\n expression: \"sharingScreenAndVideo && !screenTallyActive\"\n }],\n staticClass: \"info-notification\"\n }, [_c('p', [_vm._v(\"\\n You are screen sharing.\\n \")])]), _vm._v(\" \"), _c('div', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (_vm.sharingScreenAndVideo && _vm.screenTallyActive),\n expression: \"sharingScreenAndVideo && screenTallyActive\"\n }],\n staticClass: \"info-notification\"\n }, [_c('p', [_vm._v(\"\\n You are screen sharing. Your screen is live.\\n \")])]), _vm._v(\" \"), (_vm.isPure) ? _c('info-box', [_c('h1', {\n slot: \"header\"\n }, [_vm._v(_vm._s(_vm.$t(\"message.welcome.header\")))]), _vm._v(\" \"), _c('p', [_vm._v(\"\\n \" + _vm._s(_vm.$t(\"message.welcome.content\")) + \"\\n \")]), _vm._v(\" \"), _c('join-prompt')], 1) : _vm._e(), _vm._v(\" \"), _c('info-box', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (_vm.isIOS),\n expression: \"isIOS\"\n }]\n }, [_c('p', [_vm._v(\"\\n To join to Wirecast Rendezvous session from an iOS device, please install Wirecast Go from the\\n App Store.\\n \")]), _vm._v(\" \"), _c('div', {\n staticClass: \"text-centered\"\n }, [_c('a', {\n staticStyle: {\n \"display\": \"inline-block\",\n \"overflow\": \"hidden\",\n \"background\": \"url(//linkmaker.itunes.apple.com/assets/shared/badges/en-us/appstore-lrg.svg) no-repeat\",\n \"width\": \"135px\",\n \"height\": \"40px\",\n \"background-size\": \"contain\"\n },\n attrs: {\n \"href\": \"https://itunes.apple.com/us/app/wirecast-go/id987286934?mt=8\"\n }\n })])]), _vm._v(\" \"), _c('info-box', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (_vm.isError && _vm.isSessionUnknown),\n expression: \"isError && isSessionUnknown\"\n }]\n }, [_c('h1', {\n slot: \"header\"\n }, [_vm._v(_vm._s(_vm.$t(\"error.session_unknown.header\")))]), _vm._v(\" \"), _c('p', [_vm._v(\"\\n \" + _vm._s(_vm.$t(\"error.session_unknown.content\")) + \"\\n \")])]), _vm._v(\" \"), _c('info-box', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (_vm.isError && _vm.isSessionFull),\n expression: \"isError && isSessionFull\"\n }]\n }, [_c('h1', {\n slot: \"header\"\n }, [_vm._v(_vm._s(_vm.$t(\"error.session_full.header\")))]), _vm._v(\" \"), _c('p', [_vm._v(\"\\n \" + _vm._s(_vm.$t(\"error.session_full.content\")) + \"\\n \")])]), _vm._v(\" \"), _c('info-box', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (_vm.isError && _vm.isSessionAlreadyConnected),\n expression: \"isError && isSessionAlreadyConnected\"\n }]\n }, [_c('h1', {\n slot: \"header\"\n }, [_vm._v(_vm._s(_vm.$t(\"error.session_already_connected.header\")))]), _vm._v(\" \"), _c('p', [_vm._v(\"\\n \" + _vm._s(_vm.$t(\"error.session_already_connected.content\")) + \"\\n \")])]), _vm._v(\" \"), _c('info-box', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (_vm.isJoining),\n expression: \"isJoining\"\n }],\n staticClass: \"joining centered\"\n }, [_c('p', {\n staticClass: \"text-centered\"\n }, [_vm._v(\"\\n \" + _vm._s(_vm.$t(\"message.waiting.content\")) + \"\\n \")]), _vm._v(\" \"), _c('spinner', {\n staticClass: \"static\",\n attrs: {\n \"is-visible\": \"true\"\n }\n })], 1), _vm._v(\" \"), _c('info-box', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (_vm.isErrorNoRTC),\n expression: \"isErrorNoRTC\"\n }]\n }, [_c('p', {\n staticClass: \"text-centered\"\n }, [_vm._v(\"\\n \" + _vm._s(_vm.$t(\"error.no_rtc.content\")) + \"\\n \")])]), _vm._v(\" \"), _c('info-box', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (_vm.isDisconnected),\n expression: \"isDisconnected\"\n }],\n staticClass: \"centered\"\n }, [_c('p', {\n staticClass: \"text-centered\"\n }, [_vm._v(\"\\n \" + _vm._s(_vm.$t(\"message.session_ended.content\")) + \"\\n \")])]), _vm._v(\" \"), _c('participants', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (_vm.isConnected),\n expression: \"isConnected\"\n }]\n })], 1), _vm._v(\" \"), (_vm.chatEnabled) ? _c('chat-panel') : _vm._e()], 1)])\n},staticRenderFns: [function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('header', {\n attrs: {\n \"id\": \"app-bar\"\n }\n }, [_c('img', {\n attrs: {\n \"src\": __webpack_require__(345)\n }\n })])\n}]}\n\n/***/ }),\n/* 367 */\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"info-box-container\"\n }, [_c('div', {\n staticClass: \"info-box\"\n }, [_c('header', [_vm._t(\"header\")], 2), _vm._v(\" \"), _vm._t(\"default\"), _vm._v(\" \"), _c('div', {\n staticClass: \"clearfix\"\n })], 2)])\n},staticRenderFns: []}\n\n/***/ }),\n/* 368 */\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"my-stream\"\n }, [_c('div', {\n staticClass: \"dropdown\",\n attrs: {\n \"title\": _vm.$t('button_settings_title')\n }\n }, [_c('i', {\n staticClass: \"icon-settings-menu icons\",\n attrs: {\n \"data-settings-dropdown\": \"\"\n },\n on: {\n \"click\": _vm.toggleDropdown\n }\n }), _vm._v(\" \"), _c('div', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (_vm.dropdownVisible),\n expression: \"dropdownVisible\"\n }],\n staticClass: \"dropdown-content\"\n }, [_c('audio-device-select'), _vm._v(\" \"), _c('video-device-select'), _vm._v(\" \"), _c('options-menu-select', {\n attrs: {\n \"initialMode\": true\n }\n })], 1)]), _vm._v(\" \"), _c('stream', {\n attrs: {\n \"source\": _vm.sourceStream,\n \"is-local-stream\": true,\n \"id\": _vm.localPeerId,\n \"local-initial-mode\": true\n }\n })], 1)\n},staticRenderFns: []}\n\n/***/ }),\n/* 369 */\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('transition', {\n attrs: {\n \"name\": \"fade\"\n }\n }, [_c('div', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (_vm.isVisible),\n expression: \"isVisible\"\n }],\n attrs: {\n \"id\": \"spinner\"\n }\n }, [_c('div', {\n staticClass: \"loading-spinner\"\n })])])\n},staticRenderFns: []}\n\n/***/ }),\n/* 370 */\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"select-wrapper\"\n }, [_c('span', [_vm._v(\"Options\")]), _vm._v(\" \"), _c('label', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (!_vm.sharingScreenOnly),\n expression: \"!sharingScreenOnly\"\n }]\n }, [_c('input', {\n directives: [{\n name: \"model\",\n rawName: \"v-model\",\n value: (_vm.videoFlipped),\n expression: \"videoFlipped\"\n }],\n attrs: {\n \"name\": \"flip-video-horizontally\",\n \"type\": \"checkbox\"\n },\n domProps: {\n \"checked\": Array.isArray(_vm.videoFlipped) ? _vm._i(_vm.videoFlipped, null) > -1 : (_vm.videoFlipped)\n },\n on: {\n \"__c\": function($event) {\n var $$a = _vm.videoFlipped,\n $$el = $event.target,\n $$c = $$el.checked ? (true) : (false);\n if (Array.isArray($$a)) {\n var $$v = null,\n $$i = _vm._i($$a, $$v);\n if ($$c) {\n $$i < 0 && (_vm.videoFlipped = $$a.concat($$v))\n } else {\n $$i > -1 && (_vm.videoFlipped = $$a.slice(0, $$i).concat($$a.slice($$i + 1)))\n }\n } else {\n _vm.videoFlipped = $$c\n }\n }\n }\n }), _vm._v(\"\\n \" + _vm._s(_vm.$t(\"button_flip_video_horizontally\")) + \"\\n \")]), _vm._v(\" \"), _c('label', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (!_vm.initialMode && _vm.supportMusic),\n expression: \"!initialMode && supportMusic\"\n }]\n }, [_c('input', {\n directives: [{\n name: \"model\",\n rawName: \"v-model\",\n value: (_vm.audioProcessingDisabled),\n expression: \"audioProcessingDisabled\"\n }],\n attrs: {\n \"name\": \"disable-audio-processing\",\n \"type\": \"checkbox\"\n },\n domProps: {\n \"checked\": Array.isArray(_vm.audioProcessingDisabled) ? _vm._i(_vm.audioProcessingDisabled, null) > -1 : (_vm.audioProcessingDisabled)\n },\n on: {\n \"__c\": function($event) {\n var $$a = _vm.audioProcessingDisabled,\n $$el = $event.target,\n $$c = $$el.checked ? (true) : (false);\n if (Array.isArray($$a)) {\n var $$v = null,\n $$i = _vm._i($$a, $$v);\n if ($$c) {\n $$i < 0 && (_vm.audioProcessingDisabled = $$a.concat($$v))\n } else {\n $$i > -1 && (_vm.audioProcessingDisabled = $$a.slice(0, $$i).concat($$a.slice($$i + 1)))\n }\n } else {\n _vm.audioProcessingDisabled = $$c\n }\n }\n }\n }), _vm._v(\"\\n \" + _vm._s(_vm.$t(\"button_enable_music_mode\")) + \"\\n \")])])\n},staticRenderFns: []}\n\n/***/ }),\n/* 371 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (_vm.showChat),\n expression: \"showChat\"\n }],\n staticClass: \"chat-container\"\n }, [_c('div', {\n staticClass: \"chat-header\"\n }, [_c('div', {\n staticClass: \"chat-close\"\n }, [_c('img', {\n attrs: {\n \"src\": __webpack_require__(344)\n },\n on: {\n \"click\": _vm.closeChatPanel\n }\n })]), _vm._v(\" \"), _vm._m(0)]), _vm._v(\" \"), _c('div', {\n ref: \"chat-content\",\n staticClass: \"chat-content\"\n }, [(_vm.noMessages) ? _c('div', {\n staticClass: \"chat-empty-state\"\n }, [_vm._m(1)]) : _vm._e(), _vm._v(\" \"), (!_vm.noMessages) ? _c('div', {\n staticClass: \"chat-messages\"\n }, _vm._l((_vm.chatMessages), function(message, index) {\n return _c('message', {\n key: index,\n attrs: {\n \"message\": message\n }\n })\n })) : _vm._e()]), _vm._v(\" \"), _c('div', {\n staticClass: \"chat-footer\"\n }, [_c('div', {\n class: (\"footer-message-container \" + (_vm.messageTextareaFocus ? 'footer-message-container-focus' : ''))\n }, [_c('textarea', {\n directives: [{\n name: \"model\",\n rawName: \"v-model\",\n value: (_vm.message),\n expression: \"message\"\n }],\n ref: \"chat-message\",\n staticClass: \"message-textarea\",\n attrs: {\n \"maxlength\": \"10000\",\n \"rows\": \"1\",\n \"placeholder\": \"Send message...\"\n },\n domProps: {\n \"value\": (_vm.message)\n },\n on: {\n \"keyup\": function($event) {\n if (!('button' in $event) && _vm._k($event.keyCode, \"enter\", 13)) { return null; }\n _vm.sendMessage($event)\n },\n \"keydown\": function($event) {\n _vm.autoResize($event)\n },\n \"focus\": function($event) {\n _vm.messageTextareaFocus = true\n },\n \"focusout\": function($event) {\n _vm.messageTextareaFocus = false\n },\n \"input\": function($event) {\n if ($event.target.composing) { return; }\n _vm.message = $event.target.value\n }\n }\n }), _vm._v(\" \"), _c('button', {\n staticClass: \"send-button\",\n on: {\n \"click\": function($event) {\n _vm.sendMessage($event)\n }\n }\n })])])])\n},staticRenderFns: [function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"chat-title\"\n }, [_c('span', [_vm._v(\"Live chat\")])])\n},function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"chat-empty-state-content\"\n }, [_c('img', {\n attrs: {\n \"src\": __webpack_require__(343)\n }\n }), _vm._v(\" \"), _c('span', [_vm._v(\"Chat won't be visible in live broadcast.\")]), _vm._v(\" \"), _c('span', [_vm._v(\"Be the first to write something\")])])\n}]}\n\n/***/ })\n]),[341]);\n\n\n// WEBPACK FOOTER //\n// js/app.1731dc4fbc6e73db5a6c.js","var __spreadArrays = (this && this.__spreadArrays) || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n};\nimport * as SearchParams from \"search-params\";\nvar params = SearchParams.parse(window.location.search.replace(/^\\?/, \"\"));\nvar shouldPrint = !!params.find(function (param) { return param.name === \"show_logs\"; });\nexport default function createLog(moduleName) {\n return function () {\n var content = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n content[_i] = arguments[_i];\n }\n if (!shouldPrint)\n return;\n console.log.apply(console, __spreadArrays([\"[ \" + Date() + \" ]\", \"[ \" + moduleName + \" ]\"], content));\n };\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/log.ts\n// module id = 18\n// module chunks = 1","/**\n * Peer lifecycle management\n * @module Peer\n */\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport * as SearchParams from \"search-params\";\nimport * as Session from \"./session\";\nimport * as Bandwidth from \"./bandwidth\";\nimport createLog from \"./log\";\nimport adapter from \"webrtc-adapter\";\nvar log = createLog(\"peers\");\nvar Transceivers = /** @class */ (function () {\n function Transceivers() {\n this.regularAudio = undefined;\n this.regularVideo = undefined;\n this.screenVideo = undefined;\n this.musicAudio = undefined;\n }\n return Transceivers;\n}());\nexport { Transceivers };\nvar registeredPeers = new Map();\nexport function getByIdentifier(peerIdentifier) {\n return registeredPeers.get(peerIdentifier);\n}\n// Debug only\nexport function getAll() {\n return registeredPeers;\n}\nfunction limitBitrate() {\n var peers = Array.from(getAll().values());\n var peersCount = peers.length;\n log(\"Limiting bitrate because of peers count:\", peersCount);\n var setLimit = function (peer) {\n var connection = peer.connection;\n log(\"Limiting bitrate for\", peer.name, \"type:\", connection.localDescription.type);\n if (connection.localDescription.type === \"offer\") {\n connection\n .createOffer({\n offerToReceiveAudio: 1,\n offerToReceiveVideo: 1,\n })\n .then(function (e) {\n return connection.setLocalDescription(e);\n })\n .then(function () {\n var sdp = connection.remoteDescription.sdp;\n connection.setRemoteDescription(new RTCSessionDescription({\n type: \"answer\",\n sdp: Bandwidth.setMediaBitrate(sdp, \"video\"),\n }));\n })[\"catch\"](function (error) {\n console.error(error);\n console.error(\"invalid sdp:\", Bandwidth.setMediaBitrate(connection.remoteDescription.sdp, \"video\"));\n });\n }\n if (\"answer\" === connection.localDescription.type) {\n connection\n .setRemoteDescription(new RTCSessionDescription({\n type: \"offer\",\n sdp: Bandwidth.setMediaBitrate(connection.remoteDescription.sdp, \"video\"),\n }))\n .then(function () {\n return connection.createAnswer();\n })\n .then(function (e) {\n return connection.setLocalDescription(e);\n })[\"catch\"](function (error) { return console.error(\"Error while limiting bandwidth and creating answer\", error); });\n }\n };\n peers.forEach(function (peer) {\n if (peer.pendingLimit) {\n clearInterval(peer.pendingLimit);\n }\n var hasEmptyLocalDescription = function (_a) {\n var connection = _a.connection;\n if (!connection.localDescription)\n return true;\n return !connection.localDescription.type;\n };\n if (peer.connection.signalingState !== \"stable\" ||\n hasEmptyLocalDescription(peer) ||\n peer.connection.iceConnectionState.toString() !== \"stable\") {\n log(\"Connection not stable for\", peer.name, \" - waiting...\");\n peer.pendingLimit = setInterval(function () {\n if (peer.connection.signalingState !== \"stable\" ||\n hasEmptyLocalDescription(peer) ||\n peer.connection.iceConnectionState.toString() !== \"stable\") {\n return;\n }\n setLimit(peer);\n clearInterval(peer.pendingLimit);\n }, 250);\n return;\n }\n setLimit(peer);\n });\n}\n/**\n * Creates new RTCPeerConnection\n */\nexport function createConnection(session, peerIdentifier, peerName, reconnectCount, master, supportMusic, supportSimultaneousScreen) {\n var _this = this;\n var peer = {\n identifier: peerIdentifier,\n connection: new RTCPeerConnection({ iceServers: session.iceServers }),\n name: peerName,\n stream: null,\n isSuspended: false,\n onReady: function () { },\n pendingLimit: null,\n master: master,\n supportMusic: master && supportMusic,\n screenStream: null,\n supportSimultaneousScreen: supportSimultaneousScreen,\n transceivers: new Transceivers(),\n lastResult: null,\n isLocal: peerName === \"local\",\n localConnectionType: \"\",\n remoteConnectionType: \"\",\n reconnectCount: reconnectCount,\n bandwidthStatsTicker: null,\n };\n var connection = peer.connection;\n connection.onicecandidate = function (_a) {\n var candidate = _a.candidate;\n // REND-50: standard allows candidate.candidate to be empty string\n // but this causes Safari to throw parsing error. Workaround is to\n // not send empty string candidates (only FF send them).\n if (!candidate || !candidate.candidate)\n return;\n Session.send(session, \"ice\", {\n peersIdentifier: peerIdentifier,\n sdp: candidate.candidate,\n sdpMid: candidate.sdpMid,\n sdpMLineIndex: candidate.sdpMLineIndex,\n });\n };\n connection.onsignalingstatechange = function (event) {\n log(\"Signaling state for \" + peer.name + \":\", connection.signalingState);\n };\n connection.ontrack = function (event) {\n if (event.streams.length == 1) {\n if (!event.streams[0].getAudioTracks()[0]) {\n log(\"Adding remote screen stream for\", peer.name);\n peer.screenStream = event.streams[0];\n event.streams[0].onremovetrack = function () {\n event.streams[0].onremovetrack = null;\n peer.screenStream = null;\n };\n }\n else if (event.streams[0].getAudioTracks()[0] && event.streams[0].getVideoTracks()[0]) {\n log(\"Adding remote stream for\", peer.name);\n peer.stream = event.streams[0];\n peer.onReady();\n peer.onReady = function () { };\n }\n }\n };\n registeredPeers.set(peerIdentifier, peer);\n log(\"Created connection for\", peerName);\n // Bandwidth debug peer stats\n clearInterval(peer.bandwidthStatsTicker);\n peer.bandwidthStatsTicker = setInterval(function () { return __awaiter(_this, void 0, void 0, function () {\n var stats;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, connection.getStats(null)];\n case 1:\n stats = _a.sent();\n stats.forEach(function (report) {\n var now = report.timestamp;\n if (report.type === \"outboundrtp\" ||\n report.type === \"outbound-rtp\" ||\n (report.type === \"ssrc\" && report.bytesSent)) {\n var bytes = report.bytesSent;\n var packets = report.packetsSent;\n if (peer.lastResult && peer.lastResult.get(report.id)) {\n // calculate bitrate\n var bitrate = (8 * (bytes - peer.lastResult.get(report.id).bytesSent)) /\n (now - peer.lastResult.get(report.id).timestamp);\n if (bitrate && typeof peer.onBitrateChange === \"function\") {\n peer.onBitrateChange(bitrate.toFixed());\n }\n }\n }\n });\n peer.lastResult = stats;\n return [2 /*return*/];\n }\n });\n }); }, 1000);\n limitBitrate();\n return peer;\n}\nexport function findTransceiverIndex(peer, trackSender) {\n return peer.connection.getTransceivers().findIndex(function (elem) {\n return elem.sender === trackSender;\n });\n}\nexport function addTracks(peer, localStream, localScreenStream) {\n if (!localStream) {\n log(\"Local stream empty\", peer.name);\n return;\n }\n log(\"Adding local tracks to connection\", peer.name);\n var audioTrack = localStream.getAudioTracks()[0];\n var videoTrack = localStream.getVideoTracks()[0];\n if (audioTrack) {\n var trackSender = peer.connection.addTrack(audioTrack, localStream);\n peer.transceivers.regularAudio = findTransceiverIndex(peer, trackSender);\n }\n if (videoTrack) {\n var trackSender = peer.connection.addTrack(videoTrack, localStream);\n peer.transceivers.regularVideo = findTransceiverIndex(peer, trackSender);\n }\n // Add additional transceiver for peers supporting music audio - for now Wirecast only\n if (peer.supportMusic) {\n peer.connection.addTransceiver(\"audio\", { direction: \"inactive\", streams: [localStream] });\n peer.transceivers.musicAudio = peer.connection.getTransceivers().length - 1;\n }\n if (!peer.connection.getTransceivers()[peer.transceivers.screenVideo] && peer.supportSimultaneousScreen) {\n if (localScreenStream && localScreenStream.getVideoTracks()[0]) {\n var screenShareTrack = localScreenStream.getVideoTracks()[0];\n var trackSender = null;\n if (peer.master) {\n trackSender = peer.connection.addTrack(screenShareTrack);\n }\n else {\n trackSender = peer.connection.addTrack(screenShareTrack, localScreenStream);\n }\n peer.transceivers.screenVideo = findTransceiverIndex(peer, trackSender);\n }\n }\n}\nexport function closeConnection(peer) {\n log(\"Closing connection\", peer.name);\n // Stop bandwidth debug peer stats reports\n clearInterval(peer.bandwidthStatsTicker);\n peer.connection.close();\n}\nexport function closeAll() {\n registeredPeers.forEach(function (value) { return closeConnection(value); });\n log(\"Closed all connections\");\n}\nexport function remove(peer) {\n log(\"Removing peer from registry\", peer.name);\n registeredPeers[\"delete\"](peer.identifier);\n}\nexport function removeAll() {\n registeredPeers.clear();\n log(\"Removed all peers\", registeredPeers);\n}\nfunction setH264(originalSDP) {\n var params = SearchParams.parse(window.location.search.replace(/^\\?/, \"\"));\n var disable = params.find(function (param) { return param.name === \"disable_codec_overriding\"; });\n if (disable) {\n return originalSDP;\n }\n var matchH264Codec = originalSDP.match(/a=rtpmap:([\\d]+) H264/i);\n if (!matchH264Codec) {\n console.error(\"H.264 codec absent in SDP\");\n console.error(\"Original SDP:\", originalSDP);\n return originalSDP;\n }\n var h264Code = matchH264Codec[1];\n log(\"Overriding default codec to H.264\");\n return originalSDP.replace(/(m=video [\\d]+ [a-zA-Z\\/]+) ([\\d ]+)+/, function (m, str, codecs) {\n var newStr = str +\n \" \" +\n (h264Code + \" \" +\n codecs\n .split(\" \")\n .filter(function (codec) { return ![h264Code.toString()].includes(codec); })\n .join(\" \"));\n return newStr;\n });\n}\nfunction modifySdpForMusic(originalSDP, isLocalDesc) {\n var newSDP = \"\";\n var separator = \"\\r\\n\";\n var lines = originalSDP.split(separator);\n lines.pop();\n var audio_section_counter = 0;\n lines.forEach(function (line) {\n if (line.indexOf('m=audio') === 0) {\n audio_section_counter++;\n }\n if (isLocalDesc) {\n if (audio_section_counter > 1) {\n if (line.includes(\"fmtp\")) {\n if (line.includes(\"stereo\")) {\n line = line.replace('stereo=0', 'stereo=1');\n }\n else {\n line += \";stereo=1\";\n }\n }\n }\n }\n else {\n if (audio_section_counter == 1) {\n if (line.includes(\"fmtp\")) {\n if (line.includes(\"stereo\")) {\n line = line.replace('stereo=1', 'stereo=0');\n }\n }\n }\n if (audio_section_counter > 1) {\n if (line.includes(\"fmtp\")) {\n line += \";maxaveragebitrate=256000\";\n }\n }\n }\n newSDP += line + separator;\n });\n return newSDP;\n}\nexport function setRemoteDescription(_a, description) {\n var connection = _a.connection;\n return __awaiter(this, void 0, void 0, function () {\n var desc;\n return __generator(this, function (_b) {\n try {\n desc = new RTCSessionDescription(description);\n return [2 /*return*/, connection.setRemoteDescription(new RTCSessionDescription({\n type: desc.type,\n sdp: setH264(Bandwidth.setMediaBitrate(modifySdpForMusic(desc.sdp, false), \"video\")),\n }))];\n }\n catch (e) {\n throw e;\n }\n return [2 /*return*/];\n });\n });\n}\nexport function setLocalDescription(_a, description) {\n var connection = _a.connection;\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_b) {\n try {\n description.sdp = modifySdpForMusic(description.sdp, true);\n return [2 /*return*/, connection.setLocalDescription(new RTCSessionDescription(description))];\n }\n catch (e) {\n throw e;\n }\n return [2 /*return*/];\n });\n });\n}\n/**\n * A shorthand function to call setRemoteDescription and setLocalDescription\n */\nexport function updateDescriptions(session, peer, description, $store, localStream, localScreenStream) {\n return __awaiter(this, void 0, void 0, function () {\n var answer;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n log(\"Updating description for peer\", peer.name);\n return [4 /*yield*/, setRemoteDescription(peer, description)];\n case 1:\n _a.sent();\n addTracks(peer, localStream, localScreenStream);\n return [4 /*yield*/, peer.connection.createAnswer()];\n case 2:\n answer = _a.sent();\n return [4 /*yield*/, setLocalDescription(peer, answer)\n // Workaround for Safari 15\n // https://telestream.atlassian.net/browse/REND-28\n ];\n case 3:\n _a.sent();\n // Workaround for Safari 15\n // https://telestream.atlassian.net/browse/REND-28\n if (adapter.browserDetails.browser === \"safari\") {\n $store.dispatch(\"updatePeerTracks\");\n }\n log(\"Update description\", peer.name);\n answer.sdp = Bandwidth.setMediaBitrate(answer.sdp, \"video\");\n // send the answer to a server to be forwarded back to the caller (you)\n Session.send(session, \"createdAnswer\", {\n sdp: setH264(answer.sdp),\n type: answer.type,\n sessionGuid: session.sessionGuid,\n peersIdentifier: peer.identifier,\n });\n return [2 /*return*/];\n }\n });\n });\n}\nexport function createOffer(session, peer) {\n return __awaiter(this, void 0, void 0, function () {\n var offer;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, peer.connection.createOffer()\n //offer.sdp = setMusicMode(offer.sdp)\n ];\n case 1:\n offer = _a.sent();\n //offer.sdp = setMusicMode(offer.sdp)\n return [4 /*yield*/, setLocalDescription(peer, offer)];\n case 2:\n //offer.sdp = setMusicMode(offer.sdp)\n _a.sent();\n log(\"Creating offer\", peer.name);\n Session.send(session, \"peerMadeOffer\", {\n sdp: setH264(offer.sdp),\n type: offer.type,\n peersIdentifier: peer.identifier,\n });\n return [2 /*return*/];\n }\n });\n });\n}\nexport function createCandidate(session, peer, candidateOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var candidate, e_1;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n candidate = new RTCIceCandidate({\n sdpMLineIndex: candidateOptions.sdpMLineIndex,\n sdpMid: candidateOptions.sdpMid,\n candidate: candidateOptions.sdp,\n });\n log(\"Creating ICE candidate\", peer.name);\n _a.label = 1;\n case 1:\n _a.trys.push([1, 3, , 4]);\n return [4 /*yield*/, peer.connection.addIceCandidate(candidate)];\n case 2:\n _a.sent();\n return [3 /*break*/, 4];\n case 3:\n e_1 = _a.sent();\n console.error(\"Adding ICE candidate failed\", e_1, \"candidate\", candidate, \"sdp\", candidateOptions.sdp);\n throw e_1;\n case 4: return [2 /*return*/];\n }\n });\n });\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/peers.ts\n// module id = 29\n// module chunks = 1","/**\n * Perform device-releated actions (get list of devices, getUserMedia, etc.)\n * @module Device\n */\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport * as Cookies from \"js-cookie\";\nimport { getFrameRate } from \"./frame_rate\";\nimport createLog from \"./log\";\nvar log = createLog(\"device\");\nvar dummyVideoTrack = null;\nvar dummyTrackInterval = null;\nvar canvas = null;\nfunction getInputDevices(devicesType) {\n return __awaiter(this, void 0, void 0, function () {\n var devices;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, navigator.mediaDevices.enumerateDevices()\n // Only return: 1) input devices, 2) devices with compatible kind (audio or video), 3) devices with valid id and label\n ];\n case 1:\n devices = _a.sent();\n // Only return: 1) input devices, 2) devices with compatible kind (audio or video), 3) devices with valid id and label\n return [2 /*return*/, devices.filter(function (_a) {\n var kind = _a.kind, deviceId = _a.deviceId, label = _a.label;\n return /input/.test(kind) && new RegExp(devicesType).test(kind) && deviceId !== \"\" && label !== \"\";\n })];\n }\n });\n });\n}\nexport function getDummyVideoTrack() {\n if (!dummyVideoTrack) {\n canvas = document.createElement(\"canvas\");\n // Workaround for FF only: https://bugzilla.mozilla.org/show_bug.cgi?id=1572422\n // canvas.getContext needs to be called before captureStream to avoid\n // NS_ERROR_NOT_INITIALIZED being thrown.\n canvas.getContext('2d');\n var stream = canvas.captureStream();\n dummyVideoTrack = Object.assign(stream.getVideoTracks()[0], { enabled: false });\n }\n var width = 320, height = 180;\n var ctx = canvas.getContext('2d');\n dummyTrackInterval = setInterval(function () {\n ctx.fillRect(0, 0, width, height);\n }, 1000);\n return dummyVideoTrack;\n}\nexport function stopDummyVideoTrack() {\n if (dummyTrackInterval) {\n clearInterval(dummyTrackInterval);\n dummyTrackInterval = null;\n return true;\n }\n return false;\n}\nexport function getVideoDevices() {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, getInputDevices(\"video\")];\n case 1: return [2 /*return*/, _a.sent()];\n }\n });\n });\n}\nexport function getAudioDevices() {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, getInputDevices(\"audio\")];\n case 1: return [2 /*return*/, _a.sent()];\n }\n });\n });\n}\nexport function getAudioTrackForDevice(audioDevice, audioProcessingDisabled) {\n return __awaiter(this, void 0, void 0, function () {\n var audioDeviceId, audioConstraints, audioStream;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n audioDeviceId = audioDevice.deviceId;\n if (!audioDeviceId) {\n return [2 /*return*/, null];\n }\n audioConstraints = {\n audio: {\n deviceId: audioDeviceId ? { exact: audioDeviceId } : undefined,\n autoGainControl: { ideal: false },\n echoCancellation: { ideal: !audioProcessingDisabled },\n noiseSuppression: { ideal: !audioProcessingDisabled }\n },\n video: false\n };\n return [4 /*yield*/, navigator.mediaDevices.getUserMedia(audioConstraints)];\n case 1:\n audioStream = _a.sent();\n if (!audioStream) {\n return [2 /*return*/, null];\n }\n return [2 /*return*/, audioStream.getAudioTracks()[0]];\n }\n });\n });\n}\nexport function getVideoTrackForDevice(videoDevice) {\n return __awaiter(this, void 0, void 0, function () {\n var videoDeviceId, frameRateValue, frameRateConstraint, constrains, videoStream;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n videoDeviceId = videoDevice.deviceId;\n if (!videoDeviceId) {\n return [2 /*return*/, null];\n }\n frameRateValue = getFrameRate();\n frameRateConstraint = frameRateValue ? { frameRate: { max: frameRateValue } } : {};\n if (frameRateValue) {\n log(\"Will use \" + frameRateValue + \" FPS\");\n }\n constrains = {\n video: __assign({ deviceId: videoDeviceId ? { exact: videoDeviceId } : undefined, width: { max: 1280, ideal: 1280, min: 1280 / 4 }, height: { max: 720, ideal: 720, min: 720 / 4 } }, frameRateConstraint),\n audio: false,\n };\n return [4 /*yield*/, navigator.mediaDevices.getUserMedia(constrains)];\n case 1:\n videoStream = _a.sent();\n if (!videoStream) {\n return [2 /*return*/, null];\n }\n return [2 /*return*/, videoStream.getVideoTracks()[0]];\n }\n });\n });\n}\nexport function getPreferredDevices() {\n return {\n videoDeviceId: Cookies.get(\"net.telestream.webrtc.selectedVideoDeviceId\"),\n audioDeviceId: Cookies.get(\"net.telestream.webrtc.selectedAudioDeviceId\"),\n };\n}\nexport function setPreferredDevices(_a) {\n var video = _a.video, audio = _a.audio;\n if (video) {\n Cookies.set(\"net.telestream.webrtc.selectedVideoDeviceId\", video);\n }\n if (audio) {\n Cookies.set(\"net.telestream.webrtc.selectedAudioDeviceId\", audio);\n }\n}\n/**\n * Find device by device ID among other devices\n * @param {string} deviceToFindId - id of the device to find\n */\nexport function findDeviceById(deviceToFindId, allDevices) {\n return allDevices.find(function (device) { return device.deviceId === deviceToFindId; });\n}\nexport function getDefaultFromList(preferredDeviceId, deviceList, store) {\n if (!deviceList || deviceList.length === 0)\n return undefined;\n var foundDevice = findDeviceById(preferredDeviceId, deviceList);\n if (foundDevice) {\n return foundDevice.deviceId;\n }\n return deviceList[0].deviceId;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/device.ts\n// module id = 40\n// module chunks = 1","/**\n * Perform screenshare-releated actions.\n * @module Screenshare\n */\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport createLog from \"./log\";\nvar log = createLog(\"screenshare\");\nfunction getScreenStream($store) {\n return __awaiter(this, void 0, void 0, function () {\n var stream;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n stream = $store.getters.localScreenStream;\n if (!!stream) return [3 /*break*/, 2];\n return [4 /*yield*/, window.navigator.mediaDevices.getDisplayMedia({\n video: {\n cursor: \"always\",\n },\n audio: false,\n })];\n case 1:\n stream = _a.sent();\n $store.dispatch(\"setLocalScreenStream\", stream);\n _a.label = 2;\n case 2: return [2 /*return*/, stream];\n }\n });\n });\n}\nfunction configureStreamForScreenAndVideo($store, $socket) {\n return __awaiter(this, void 0, void 0, function () {\n var stream, err_1;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 2, , 3]);\n return [4 /*yield*/, getScreenStream($store)];\n case 1:\n stream = _a.sent();\n stream.getVideoTracks()[0].addEventListener(\"ended\", function () {\n // The sharing was ended e.g. by clicking the chrome \"Stop Sharing\" button.\n if ($store.getters.sharingScreenAndVideo) {\n disableScreenAndVideo($store, $socket);\n $store.dispatch(\"setLocalScreenStream\", null);\n }\n });\n return [3 /*break*/, 3];\n case 2:\n err_1 = _a.sent();\n $store.dispatch(\"setScreenShareError\", err_1.message);\n $store.dispatch(\"setLocalScreenStream\", null);\n $store.dispatch(\"updateSharingScreenAndVideo\", false);\n return [3 /*break*/, 3];\n case 3: return [2 /*return*/];\n }\n });\n });\n}\nfunction configureStreamForScreenOnly($store) {\n return __awaiter(this, void 0, void 0, function () {\n var stream, err_2;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 2, , 3]);\n return [4 /*yield*/, getScreenStream($store)];\n case 1:\n stream = _a.sent();\n $store.dispatch(\"updateCurrentVideoDevice\", { deviceId: \"screen\" });\n stream.getVideoTracks()[0].addEventListener(\"ended\", function () {\n // The sharing was ended e.g. by clicking the chrome \"Stop Sharing\" button.\n if ($store.getters.sharingScreenOnly) {\n disableScreenOnly($store);\n $store.dispatch(\"setLocalScreenStream\", null);\n }\n });\n return [3 /*break*/, 3];\n case 2:\n err_2 = _a.sent();\n $store.commit(\"screenShareError\", err_2.message);\n $store.dispatch(\"setLocalScreenStream\", null);\n return [3 /*break*/, 3];\n case 3: return [2 /*return*/];\n }\n });\n });\n}\nexport function enableScreenAndVideo($store, $socket) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if ($store.getters.sharingScreenOnly) {\n disableScreenOnly($store);\n }\n // Clear previous screenshare errors\n $store.dispatch(\"setScreenShareError\", undefined);\n return [4 /*yield*/, configureStreamForScreenAndVideo($store, $socket)];\n case 1:\n _a.sent();\n if (!$store.getters.localScreenStream) {\n return [2 /*return*/];\n }\n $socket.sendWithoutSession(\"updateSharingState\", {\n enabled: true,\n });\n return [2 /*return*/];\n }\n });\n });\n}\nfunction disableScreenAndVideo($store, $socket) {\n $socket.sendWithoutSession(\"updateSharingState\", {\n enabled: false,\n });\n $store.dispatch(\"updateSharingScreenAndVideo\", false);\n}\nexport function enableScreenOnly($store, $socket) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if ($store.getters.sharingScreenAndVideo) {\n disableScreenAndVideo($store, $socket);\n }\n // Clear previous device and screenshare errors\n $store.dispatch(\"setVideoDeviceError\", { errorId: undefined, deviceName: undefined });\n $store.dispatch(\"setScreenShareError\", undefined);\n return [4 /*yield*/, configureStreamForScreenOnly($store)];\n case 1:\n _a.sent();\n return [2 /*return*/];\n }\n });\n });\n}\nfunction disableScreenOnly($store) {\n $store.dispatch(\"updateCurrentVideoDevice\", { deviceId: undefined });\n}\nexport function stopScreen($store, $socket) {\n if ($store.getters.sharingScreenAndVideo) {\n disableScreenAndVideo($store, $socket);\n }\n else if ($store.getters.sharingScreenOnly) {\n disableScreenOnly($store);\n }\n // Stop screen track\n var stream = $store.getters.localScreenStream;\n if (stream && stream.getVideoTracks()[0]) {\n stream.getVideoTracks()[0].stop();\n }\n $store.dispatch(\"setScreenShareError\", undefined);\n $store.dispatch(\"setLocalScreenStream\", null);\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/screenshare.ts\n// module id = 41\n// module chunks = 1","function injectStyle (ssrContext) {\n require(\"!!../../node_modules/extract-text-webpack-plugin/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"minimize\\\":true,\\\"sourceMap\\\":true}!../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-3f3118d0\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!sass-loader?{\\\"sourceMap\\\":true}!../../node_modules/vue-loader/lib/selector?type=styles&index=0!./Stream.vue\")\n}\nvar Component = require(\"!../../node_modules/vue-loader/lib/component-normalizer\")(\n /* script */\n require(\"!!ts-loader!../../node_modules/vue-loader/lib/selector?type=script&index=0!./Stream.vue\"),\n /* template */\n require(\"!!../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-3f3118d0\\\"}!../../node_modules/vue-loader/lib/selector?type=template&index=0!./Stream.vue\"),\n /* styles */\n injectStyle,\n /* scopeId */\n \"data-v-3f3118d0\",\n /* moduleIdentifier (server only) */\n null\n)\n\n/* customBlocks */\nvar customBlock = require(\"!!@kazupon/vue-i18n-loader!yaml-loader!../../node_modules/vue-loader/lib/selector?type=customBlocks&index=0!./Stream.vue\")\nif (typeof customBlock === \"function\") {customBlock(Component)}\n\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/Stream.vue\n// module id = 42\n// module chunks = 1","/**\n * Establish websocket connection, expose helper functions to send and receive\n * messages\n * @module Session\n */\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as Guid from \"./guid\";\nimport { closeAll as closeAllPeers, removeAll as removeAllPeers } from \"./peers\";\nimport { servers as defaultIceServers } from \"./ice\";\nimport createLog from \"./log\";\nvar log = createLog(\"session\");\nfunction createWebSocket(onOpen, onClose, getAppState) {\n log(\"Creating new websocket\");\n var host = window.location.host;\n if (process.env.NODE_ENV === \"development\") {\n host = process.env.SOCKET_URL;\n }\n var socket = new WebSocket(\"wss://\" + host + \":443\");\n socket.onopen = onOpen(socket);\n socket.onclose = function () {\n log(\"Socket closed\");\n closeAllPeers();\n removeAllPeers();\n onClose();\n if (getAppState() === \"disconnected\") {\n log(\"Has been disconnected from session, no reconnect attempt\");\n return;\n }\n setTimeout(function () {\n log(\"Reconnecting...\");\n createWebSocket(onOpen, onClose, getAppState);\n }, 5 * 1000);\n };\n return socket;\n}\nexport function init(options, onMessage) {\n var peerGuid = Guid.getPeerGuid() || Guid.createPeerGuid();\n var sessionGuid = Guid.getSessionGuid();\n var onOpen = function (socket) { return function () {\n log(\"<- Joining\");\n session.socket = socket;\n socket.onmessage = onMessage;\n send(session, \"joinPeer\", __assign({ peersIdentifier: peerGuid }, options));\n }; };\n var session = {\n socket: createWebSocket(onOpen, options.onClose, options.getAppState),\n sessionGuid: sessionGuid,\n peerGuid: peerGuid,\n iceServers: defaultIceServers,\n };\n return session;\n}\nexport function send(session, action, payload) {\n var json = JSON.stringify(__assign({ action: action, sessionGuid: session.sessionGuid }, payload));\n session.socket.send(json);\n}\nexport function receive(receiverFn) {\n return function (event) {\n var _a = JSON.parse(event.data), action = _a.action, payload = __rest(_a, [\"action\"]);\n receiverFn(action, payload);\n };\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/session.ts\n// module id = 69\n// module chunks = 1","function injectStyle (ssrContext) {\n require(\"!!../../node_modules/extract-text-webpack-plugin/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"minimize\\\":true,\\\"sourceMap\\\":true}!../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-0ba4e300\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!../../node_modules/vue-loader/lib/selector?type=styles&index=0!./AudioDeviceSelect.vue\")\n}\nvar Component = require(\"!../../node_modules/vue-loader/lib/component-normalizer\")(\n /* script */\n require(\"!!ts-loader!../../node_modules/vue-loader/lib/selector?type=script&index=0!./AudioDeviceSelect.vue\"),\n /* template */\n require(\"!!../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-0ba4e300\\\"}!../../node_modules/vue-loader/lib/selector?type=template&index=0!./AudioDeviceSelect.vue\"),\n /* styles */\n injectStyle,\n /* scopeId */\n \"data-v-0ba4e300\",\n /* moduleIdentifier (server only) */\n null\n)\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/AudioDeviceSelect.vue\n// module id = 132\n// module chunks = 1","function injectStyle (ssrContext) {\n require(\"!!../../node_modules/extract-text-webpack-plugin/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"minimize\\\":true,\\\"sourceMap\\\":true}!../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-8e6d55de\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!../../node_modules/vue-loader/lib/selector?type=styles&index=0!./OptionsMenuSelect.vue\")\n}\nvar Component = require(\"!../../node_modules/vue-loader/lib/component-normalizer\")(\n /* script */\n require(\"!!ts-loader!../../node_modules/vue-loader/lib/selector?type=script&index=0!./OptionsMenuSelect.vue\"),\n /* template */\n require(\"!!../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-8e6d55de\\\"}!../../node_modules/vue-loader/lib/selector?type=template&index=0!./OptionsMenuSelect.vue\"),\n /* styles */\n injectStyle,\n /* scopeId */\n \"data-v-8e6d55de\",\n /* moduleIdentifier (server only) */\n null\n)\n\n/* customBlocks */\nvar customBlock = require(\"!!@kazupon/vue-i18n-loader!yaml-loader!../../node_modules/vue-loader/lib/selector?type=customBlocks&index=0!./OptionsMenuSelect.vue\")\nif (typeof customBlock === \"function\") {customBlock(Component)}\n\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/OptionsMenuSelect.vue\n// module id = 133\n// module chunks = 1","function injectStyle (ssrContext) {\n require(\"!!../../node_modules/extract-text-webpack-plugin/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"minimize\\\":true,\\\"sourceMap\\\":true}!../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-265371a5\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!../../node_modules/vue-loader/lib/selector?type=styles&index=0!./VideoDeviceSelect.vue\")\n}\nvar Component = require(\"!../../node_modules/vue-loader/lib/component-normalizer\")(\n /* script */\n require(\"!!ts-loader!../../node_modules/vue-loader/lib/selector?type=script&index=0!./VideoDeviceSelect.vue\"),\n /* template */\n require(\"!!../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-265371a5\\\"}!../../node_modules/vue-loader/lib/selector?type=template&index=0!./VideoDeviceSelect.vue\"),\n /* styles */\n injectStyle,\n /* scopeId */\n \"data-v-265371a5\",\n /* moduleIdentifier (server only) */\n null\n)\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/VideoDeviceSelect.vue\n// module id = 134\n// module chunks = 1","import * as Cookies from \"js-cookie\";\nvar DEFAULT_LANGUAGE = \"en\";\nvar supportedLanguages = [\n \"en\",\n \"de\" /*, // German\n 'es', // Spanish\n 'pt-BR', //Brazilian Portugues\n 'fr', // French\n 'jp' // Japanese\n */,\n];\n// In which syntax the languageString is in? See for more:\n// https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Accept-Language\nfunction isAnySyntax(languageString) {\n return languageString === \"*\";\n}\nfunction isLanguageSyntax(languageString) {\n return !/-/.test(languageString);\n}\nfunction isLocaleSyntax(languageString) {\n return /-/.test(languageString);\n}\n/*\n * Extract language (e.g. 'en') from local string, like en-US\n */\nfunction extractLanguageFromLocale(locale) {\n return locale.replace(/-[a-z]{2,3}/i, \"\");\n}\n/*\n * Extract preffered languages from Accepts-Language content\n */\nfunction extractLanguagesFromHeader(acceptsLanguageString) {\n return acceptsLanguageString\n .replace(/q=[0-9\\.]+/g, \"\") // Remove quality values\n .split(/,[\\s]?/); // Turn string to array of language codes\n}\nfunction isSupported(language) {\n return supportedLanguages.includes(language);\n}\nfunction extractLanguage(acceptsLanguageString) {\n if (!acceptsLanguageString)\n return DEFAULT_LANGUAGE;\n var choices = extractLanguagesFromHeader(acceptsLanguageString)\n .map(function (language) {\n // Special case with Brazilian Portugese\n if (language === \"pt-BR\")\n return language;\n if (isLanguageSyntax(language))\n return language;\n if (isLocaleSyntax(language))\n return extractLanguageFromLocale(language);\n })\n .filter(isSupported);\n var bestChoice = choices[0];\n if (isAnySyntax(bestChoice))\n return DEFAULT_LANGUAGE;\n return bestChoice;\n}\nexport function getLanguage() {\n var cookieValue = Cookies.get(\"lang\");\n return extractLanguage(cookieValue) || DEFAULT_LANGUAGE;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/internationalization.ts\n// module id = 135\n// module chunks = 1","/**\n * Plugin that exposes $socket (a simple event bus) in every Vue component we use\n * @module Plugin/Socket\n */\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport * as Session from \"../session\";\nimport * as Peers from \"../peers\";\nexport default {\n install: function (Vue, options) {\n var readyPromise = new Promise(function (resolve, reject) {\n var $socket = {\n session: null,\n bus: new Vue(),\n open: function (userName) {\n var _this = this;\n // establish websocket connection\n this.session = Session.init({\n username: userName,\n onClose: function () {\n options.store.dispatch(\"clearPeers\");\n Peers.closeAll();\n Peers.removeAll();\n },\n getAppState: function () {\n return options.store.getters.appState;\n },\n }, Session.receive(this.bus.$emit.bind(this.bus)));\n // this.session.socket is the real socket here\n this.session.socket.onerror = function (error) {\n if (typeof options.onError === \"function\") {\n options.onError(error);\n return;\n }\n throw error;\n };\n // set session guid and resolve readyPromise when connection\n // is established and we get a response from server\n this.bus.$on(\"joinPeerResponse\", function (payload) {\n if (payload.sessionGuid) {\n _this.session.sessionGuid = payload.sessionGuid;\n }\n if (payload.chatEnabled) {\n options.store.dispatch(\"enableChat\", { peersIdentifier: payload.peersIdentifier });\n }\n else {\n options.store.dispatch(\"disableChat\");\n }\n if (payload.supportMusic) {\n options.store.dispatch(\"updateSupportMusic\", true);\n }\n if (payload.supportSimultaneousScreen) {\n options.store.dispatch(\"updateSupportSimultaneousScreen\", true);\n }\n if (payload.iceServers) {\n _this.session.iceServers = payload.iceServers.map(function (entry) {\n return entry.url.startsWith(\"turn:\")\n ? {\n urls: [entry.url],\n username: entry.turnUsername,\n credential: entry.turnPassword,\n }\n : { urls: [entry.url] };\n });\n }\n resolve({\n session: _this.session,\n socket: _this.session.socket,\n });\n });\n },\n on: function (message, listener) {\n this.bus.$on(message, listener);\n },\n send: function (message, payload) {\n Session.send(this.session, message, payload);\n },\n sendWithoutSession: function (action, payload) {\n var messageJson = JSON.stringify(__assign({ action: action }, payload));\n this.session.socket.send(messageJson);\n },\n whenReady: function () {\n return readyPromise;\n },\n };\n Vue.prototype.$socket = $socket;\n });\n },\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/plugin/socket.ts\n// module id = 136\n// module chunks = 1","if (!Array.prototype.includes) {\n Array.prototype.includes = function (itemToTest) {\n return !!this.find(function (item) { return item === itemToTest; });\n };\n}\nif (!Element.prototype.matches) {\n Element.prototype.matches = Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/polyfills.ts\n// module id = 137\n// module chunks = 1","/**\n * Our state store\n * @module Store\n */\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __spreadArrays = (this && this.__spreadArrays) || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n};\nimport Vue from \"vue\";\nimport Vuex from \"vuex\";\nimport * as Devices from \"../device\";\nimport { findTransceiverIndex } from \"../peers\";\nimport chatStore from \"./chat\";\nVue.use(Vuex);\nvar getUserMediaCalled = false;\nvar store = new Vuex.Store({\n modules: {\n chat: chatStore,\n },\n state: {\n appState: \"pure\",\n errors: {\n fatal: null,\n minor: undefined,\n audioDevice: {\n errorId: undefined,\n deviceName: undefined,\n },\n videoDevice: {\n errorId: undefined,\n deviceName: undefined,\n },\n },\n devices: {\n video: [],\n audio: [],\n current: {\n video: null,\n audio: null,\n },\n },\n streams: {\n local: null,\n updated: false,\n },\n localScreenStream: null,\n defaultLocalUserName: \"You\",\n localUserName: \"You\",\n peers: [],\n screenShareError: null,\n sharingScreenAndVideo: false,\n bitrateLimitPeerCount: 0,\n videoFlipped: false,\n audioProcessingDisabled: false,\n supportMusic: false,\n localAudioEnabled: true,\n supportSimultaneousScreen: false,\n screenTallyActive: false,\n },\n getters: {\n appState: function (state) {\n return state.appState;\n },\n fatalError: function (state) {\n return state.errors.fatal;\n },\n minorError: function (state) {\n return state.errors.minor;\n },\n audioDeviceError: function (state) {\n return state.errors.audioDevice;\n },\n videoDeviceError: function (state) {\n return state.errors.videoDevice;\n },\n videoDevices: function (state) {\n return state.devices.video;\n },\n audioDevices: function (state) {\n return state.devices.audio;\n },\n currentVideoDevice: function (state) {\n return state.devices.current.video;\n },\n currentAudioDevice: function (state) {\n return state.devices.current.audio;\n },\n preferredVideoDevice: function () {\n return Devices.getPreferredDevices().videoDeviceId;\n },\n preferredAudioDevice: function () {\n return Devices.getPreferredDevices().audioDeviceId;\n },\n localStream: function (state) {\n return state.streams.local;\n },\n localStreamUpdated: function (state) {\n return state.streams.updated;\n },\n localScreenStream: function (state) {\n return state.localScreenStream;\n },\n defaultLocalUserName: function (state) {\n return state.defaultLocalUserName;\n },\n localUserName: function (state) {\n return state.localUserName;\n },\n peers: function (state) {\n return __spreadArrays(state.peers);\n },\n screenShareError: function (state) {\n return state.screenShareError;\n },\n sharingScreenAndVideo: function (state) {\n return state.sharingScreenAndVideo;\n },\n sharingScreenOnly: function (state) {\n if (state.devices.current.video) {\n return state.devices.current.video.deviceId === \"screen\";\n }\n return false;\n },\n bitrateLimitPeerCount: function (state) {\n return state.bitrateLimitPeerCount;\n },\n videoFlipped: function (state) {\n return state.videoFlipped;\n },\n audioProcessingDisabled: function (state) {\n return state.audioProcessingDisabled;\n },\n supportMusic: function (state) {\n return state.supportMusic;\n },\n localAudioEnabled: function (state) {\n return state.localAudioEnabled;\n },\n supportSimultaneousScreen: function (state) {\n return state.supportSimultaneousScreen;\n },\n supportScreensharing: function () {\n return navigator.mediaDevices && \"getDisplayMedia\" in navigator.mediaDevices;\n },\n screenTallyActive: function (state) {\n return state.screenTallyActive;\n },\n },\n mutations: {\n appState: function (state, newState) {\n state.appState = newState;\n },\n fatalError: function (state, errorId) {\n state.errors.fatal = errorId;\n },\n minorError: function (state, error) {\n state.errors.minor = error;\n },\n audioDeviceError: function (state, error) {\n state.errors.audioDevice.errorId = error.errorId;\n state.errors.audioDevice.deviceName = error.deviceName;\n },\n videoDeviceError: function (state, error) {\n state.errors.videoDevice.errorId = error.errorId;\n state.errors.videoDevice.deviceName = error.deviceName;\n },\n videoDevices: function (state, devices) {\n state.devices.video = devices;\n },\n audioDevices: function (state, devices) {\n state.devices.audio = devices;\n },\n currentVideoDevice: function (state, device) {\n state.devices.current.video = device;\n },\n currentAudioDevice: function (state, device) {\n state.devices.current.audio = device;\n },\n localStream: function (state, stream) {\n state.streams.local = stream;\n state.streams.updated = true;\n },\n localStreamUpdated: function (state, updated) {\n state.streams.updated = updated;\n },\n localScreenStream: function (state, screenStream) {\n state.localScreenStream = screenStream;\n },\n preferredVideoDevice: function (_, deviceId) {\n Devices.setPreferredDevices({ video: deviceId });\n },\n preferredAudioDevice: function (_, deviceId) {\n Devices.setPreferredDevices({ audio: deviceId });\n },\n localUserName: function (state, newName) {\n state.localUserName = newName;\n },\n peers: function (state, peers) {\n state.peers = peers;\n },\n screenShareError: function (state, val) {\n state.screenShareError = val;\n },\n sharingScreenAndVideo: function (state, newValue) {\n state.sharingScreenAndVideo = newValue;\n },\n bitrateLimitPeerCount: function (state, newValue) {\n state.bitrateLimitPeerCount = newValue;\n },\n videoFlipped: function (state, newValue) {\n state.videoFlipped = newValue;\n },\n audioProcessingDisabled: function (state, newValue) {\n state.audioProcessingDisabled = newValue;\n },\n supportMusic: function (state, newValue) {\n state.supportMusic = newValue;\n },\n localAudioEnabled: function (state, newValue) {\n state.localAudioEnabled = newValue;\n },\n supportSimultaneousScreen: function (state, newValue) {\n state.supportSimultaneousScreen = newValue;\n },\n screenTallyActive: function (state, newValue) {\n state.screenTallyActive = newValue;\n },\n },\n actions: {\n updateAppState: function (_a, newState) {\n var commit = _a.commit;\n commit(\"appState\", newState);\n },\n setFatalError: function (_a, errorId) {\n var commit = _a.commit;\n commit(\"fatalError\", errorId);\n },\n setMinorError: function (_a, error) {\n var commit = _a.commit;\n commit(\"minorError\", error);\n },\n setAudioDeviceError: function (_a, error) {\n var commit = _a.commit;\n commit(\"audioDeviceError\", error);\n },\n setVideoDeviceError: function (_a, error) {\n var commit = _a.commit;\n commit(\"videoDeviceError\", error);\n },\n setScreenShareError: function (_a, error) {\n var commit = _a.commit;\n commit(\"screenShareError\", error);\n },\n setLocalScreenStream: function (_a, screenStream) {\n var commit = _a.commit;\n commit(\"localScreenStream\", screenStream);\n },\n loadVideoDevices: function (_a) {\n var commit = _a.commit;\n return __awaiter(this, void 0, void 0, function () {\n var _b, _c;\n return __generator(this, function (_d) {\n switch (_d.label) {\n case 0:\n _b = commit;\n _c = [\"videoDevices\"];\n return [4 /*yield*/, Devices.getVideoDevices()];\n case 1:\n _b.apply(void 0, _c.concat([_d.sent()]));\n return [2 /*return*/];\n }\n });\n });\n },\n loadAudioDevices: function (_a) {\n var commit = _a.commit;\n return __awaiter(this, void 0, void 0, function () {\n var _b, _c;\n return __generator(this, function (_d) {\n switch (_d.label) {\n case 0:\n _b = commit;\n _c = [\"audioDevices\"];\n return [4 /*yield*/, Devices.getAudioDevices()];\n case 1:\n _b.apply(void 0, _c.concat([_d.sent()]));\n return [2 /*return*/];\n }\n });\n });\n },\n updateCurrentVideoDevice: function (_a, device) {\n var commit = _a.commit, dispatch = _a.dispatch, state = _a.state;\n var previousDevice = state.devices.current.video;\n commit(\"currentVideoDevice\", device);\n dispatch(\"updateLocalVideoTrack\", previousDevice);\n if (device && device.deviceId && device.deviceId !== \"screen\") {\n dispatch(\"preferredVideoDevice\", device.deviceId);\n }\n },\n updateCurrentAudioDevice: function (_a, device) {\n var commit = _a.commit, dispatch = _a.dispatch;\n commit(\"currentAudioDevice\", device);\n dispatch(\"updateLocalAudioTrack\");\n if (device && device.deviceId) {\n dispatch(\"preferredAudioDevice\", device.deviceId);\n }\n },\n updateLocalAudioTrack: function (_a) {\n var commit = _a.commit, dispatch = _a.dispatch, state = _a.state;\n return __awaiter(this, void 0, void 0, function () {\n var audioDevice, audioProcessingDisabled, catchAudioDeviceError, getAudioTrack, currentStream, audioTrack;\n var _this = this;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n audioDevice = state.devices.current.audio || { deviceId: undefined };\n audioProcessingDisabled = state.audioProcessingDisabled;\n catchAudioDeviceError = function (error, deviceName) {\n commit(\"currentAudioDevice\", { deviceId: undefined });\n if (error.name === \"NotAllowedError\") {\n dispatch(\"setAudioDeviceError\", { errorId: \"NOT_ALLOWED\", deviceName: deviceName });\n return;\n }\n // Firefox\n if (error.name === \"AbortError\") {\n if (!getUserMediaCalled) {\n // TODO: Workaround for FF hanging in subsequent getUserMedia calls\n // after first trial finished with AbortError\n dispatch(\"setAudioDeviceError\", { errorId: \"ABORT_ERROR_FF\", deviceName: deviceName });\n return;\n }\n }\n dispatch(\"setAudioDeviceError\", { errorId: \"NOT_READABLE_DEVICE\", deviceName: deviceName });\n };\n getAudioTrack = function () { return __awaiter(_this, void 0, void 0, function () {\n var error_1;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 2, , 3]);\n return [4 /*yield*/, Devices.getAudioTrackForDevice(audioDevice, audioProcessingDisabled)];\n case 1: return [2 /*return*/, _a.sent()];\n case 2:\n error_1 = _a.sent();\n catchAudioDeviceError(error_1, audioDevice.label);\n return [3 /*break*/, 3];\n case 3: return [2 /*return*/];\n }\n });\n }); };\n currentStream = state.streams.local;\n if (currentStream) {\n if (currentStream.getAudioTracks()[0]) {\n currentStream.getAudioTracks()[0].stop();\n }\n }\n return [4 /*yield*/, getAudioTrack()];\n case 1:\n audioTrack = _b.sent();\n getUserMediaCalled = true;\n currentStream = state.streams.local;\n if (currentStream) {\n if (currentStream.getAudioTracks()[0]) {\n currentStream.getAudioTracks()[0].stop();\n currentStream.removeTrack(currentStream.getAudioTracks()[0]);\n }\n }\n else {\n currentStream = new MediaStream();\n }\n if (audioTrack) {\n currentStream.addTrack(audioTrack);\n }\n commit(\"localStream\", currentStream);\n dispatch(\"updatePeerTracks\");\n return [2 /*return*/];\n }\n });\n });\n },\n updateLocalVideoTrack: function (_a, previousDevice) {\n var commit = _a.commit, dispatch = _a.dispatch, state = _a.state;\n return __awaiter(this, void 0, void 0, function () {\n var videoDevice, isVideoDeviceScreen, catchVideoDeviceError, getVideoTrack, getScreenSharingTrack, videoTrack, currentStream;\n var _this = this;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n videoDevice = state.devices.current.video || { deviceId: undefined };\n isVideoDeviceScreen = function () {\n return videoDevice.deviceId === \"screen\";\n };\n catchVideoDeviceError = function (error, deviceName) {\n commit(\"currentVideoDevice\", { deviceId: undefined });\n if (error.name === \"NotAllowedError\") {\n dispatch(\"setVideoDeviceError\", { errorId: \"NOT_ALLOWED\", deviceName: deviceName });\n return;\n }\n // Firefox\n if (error.name === \"AbortError\") {\n if (!getUserMediaCalled) {\n // TODO: Workaround for FF hanging in subsequent getUserMedia calls\n // after first trial finished with AbortError\n dispatch(\"setVideoDeviceError\", { errorId: \"ABORT_ERROR_FF\", deviceName: deviceName });\n return;\n }\n }\n dispatch(\"setVideoDeviceError\", { errorId: \"NOT_READABLE_DEVICE\", deviceName: deviceName });\n };\n getVideoTrack = function () { return __awaiter(_this, void 0, void 0, function () {\n var error_2;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 2, , 3]);\n return [4 /*yield*/, Devices.getVideoTrackForDevice(videoDevice)];\n case 1: return [2 /*return*/, _a.sent()];\n case 2:\n error_2 = _a.sent();\n catchVideoDeviceError(error_2, videoDevice.label);\n return [3 /*break*/, 3];\n case 3: return [2 /*return*/];\n }\n });\n }); };\n getScreenSharingTrack = function () {\n var localScreenStream = state.localScreenStream;\n if (localScreenStream && localScreenStream.getVideoTracks()[0]) {\n return localScreenStream.getVideoTracks()[0];\n }\n return null;\n };\n if (!isVideoDeviceScreen()) return [3 /*break*/, 1];\n videoTrack = getScreenSharingTrack();\n return [3 /*break*/, 3];\n case 1: return [4 /*yield*/, getVideoTrack()];\n case 2:\n videoTrack = _b.sent();\n _b.label = 3;\n case 3:\n getUserMediaCalled = true;\n currentStream = state.streams.local;\n if (currentStream) {\n if (currentStream.getVideoTracks()[0]) {\n if (!Devices.stopDummyVideoTrack() && previousDevice.deviceId !== \"screen\") {\n currentStream.getVideoTracks()[0].stop();\n }\n currentStream.removeTrack(currentStream.getVideoTracks()[0]);\n }\n }\n else {\n currentStream = new MediaStream();\n }\n if (!videoTrack) {\n videoTrack = Devices.getDummyVideoTrack();\n }\n currentStream.addTrack(videoTrack);\n commit(\"localStream\", currentStream);\n dispatch(\"updatePeerTracks\");\n return [2 /*return*/];\n }\n });\n });\n },\n updatePeerTracks: function (_a) {\n var state = _a.state;\n var peers = state.peers;\n var stream = state.streams.local;\n var audioProcessingDisabled = state.audioProcessingDisabled;\n peers.forEach(function (peer) {\n var connection = peer.connection;\n if (peer.isLocal)\n return;\n if (typeof connection.getTransceivers === \"function\") {\n var videoTrack = stream.getVideoTracks()[0];\n var videoTransceiver = connection.getTransceivers()[peer.transceivers.regularVideo];\n if (videoTrack && videoTransceiver) {\n videoTransceiver.sender.replaceTrack(videoTrack);\n videoTransceiver.direction = \"sendrecv\";\n }\n var audioTrack = stream.getAudioTracks()[0];\n var regularAudioTransceiver = connection.getTransceivers()[peer.transceivers.regularAudio];\n var enhancedAudioTransceiver = connection.getTransceivers()[peer.transceivers.musicAudio];\n if (audioTrack && regularAudioTransceiver) {\n if (peer.master && enhancedAudioTransceiver) {\n if (audioProcessingDisabled) {\n regularAudioTransceiver.sender.replaceTrack(null);\n regularAudioTransceiver.direction = \"recvonly\";\n enhancedAudioTransceiver.sender.replaceTrack(audioTrack);\n enhancedAudioTransceiver.direction = \"sendonly\";\n }\n else {\n regularAudioTransceiver.sender.replaceTrack(audioTrack);\n regularAudioTransceiver.direction = \"sendrecv\";\n enhancedAudioTransceiver.sender.replaceTrack(null);\n enhancedAudioTransceiver.direction = \"inactive\";\n }\n }\n else {\n regularAudioTransceiver.sender.replaceTrack(audioTrack);\n }\n }\n }\n });\n },\n preferredVideoDevice: function (_a, deviceId) {\n var commit = _a.commit;\n commit(\"preferredVideoDevice\", deviceId);\n },\n preferredAudioDevice: function (_a, deviceId) {\n var commit = _a.commit;\n commit(\"preferredAudioDevice\", deviceId);\n },\n updateLocalUserName: function (_a, newName) {\n var commit = _a.commit;\n commit(\"localUserName\", newName);\n },\n removePeer: function (_a, peer) {\n var commit = _a.commit, state = _a.state;\n var peers = state.peers;\n commit(\"peers\", peers.filter(function (item) { return item.identifier !== peer.identifier; }));\n },\n addPeer: function (_a, peer) {\n var state = _a.state;\n var peers = state.peers;\n peers.push(peer);\n },\n clearPeers: function (_a) {\n var commit = _a.commit;\n commit(\"peers\", []);\n },\n updateSharingScreenAndVideo: function (_a, newValue) {\n var commit = _a.commit, dispatch = _a.dispatch, state = _a.state;\n return __awaiter(this, void 0, void 0, function () {\n var stream, currentVideoDevice, peers;\n return __generator(this, function (_b) {\n commit(\"sharingScreenAndVideo\", newValue);\n stream = null;\n if (newValue) {\n stream = state.localScreenStream;\n }\n currentVideoDevice = state.devices.current.video;\n peers = state.peers;\n peers.forEach(function (peer) {\n if (peer.isLocal)\n return;\n var connection = peer.connection;\n if (typeof connection.getTransceivers === \"function\") {\n if (currentVideoDevice.deviceId === \"screen\" && state.sharingScreenAndVideo) {\n dispatch(\"updateCurrentVideoDevice\", { deviceId: undefined });\n }\n var screenShareTransceiver = connection.getTransceivers()[peer.transceivers.screenVideo];\n if (state.sharingScreenAndVideo && stream && stream.getVideoTracks()[0]) {\n if (!screenShareTransceiver) {\n var trackSender = null;\n if (peer.master) {\n trackSender = connection.addTrack(stream.getVideoTracks()[0]);\n }\n else {\n trackSender = connection.addTrack(stream.getVideoTracks()[0], stream);\n }\n peer.transceivers.screenVideo = findTransceiverIndex(peer, trackSender);\n }\n else {\n screenShareTransceiver.sender.replaceTrack(stream.getVideoTracks()[0]);\n screenShareTransceiver.direction = \"sendonly\";\n }\n }\n else {\n if (screenShareTransceiver) {\n screenShareTransceiver.sender.replaceTrack(null);\n screenShareTransceiver.direction = \"recvonly\";\n }\n }\n }\n });\n return [2 /*return*/];\n });\n });\n },\n bitrateLimitPeerCount: function (_a, newValue) {\n var commit = _a.commit;\n commit(\"bitrateLimitPeerCount\", newValue);\n },\n updateVideoFlipped: function (_a, newValue) {\n var commit = _a.commit;\n commit(\"videoFlipped\", newValue);\n },\n updateAudioProcessingDisabled: function (_a, newValue) {\n var commit = _a.commit, dispatch = _a.dispatch;\n commit(\"audioProcessingDisabled\", newValue);\n dispatch(\"updateLocalAudioTrack\");\n },\n updateSupportMusic: function (_a, newValue) {\n var commit = _a.commit;\n commit(\"supportMusic\", newValue);\n },\n updateLocalAudioEnabled: function (_a, newValue) {\n var commit = _a.commit;\n commit(\"localAudioEnabled\", newValue);\n },\n updateSupportSimultaneousScreen: function (_a, newValue) {\n var commit = _a.commit;\n commit(\"supportSimultaneousScreen\", newValue);\n },\n updateScreenTallyActive: function (_a, newValue) {\n var commit = _a.commit;\n commit(\"screenTallyActive\", newValue);\n }\n },\n});\nexport default store;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/store/index.ts\n// module id = 138\n// module chunks = 1","function injectStyle (ssrContext) {\n require(\"!!../node_modules/extract-text-webpack-plugin/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"minimize\\\":true,\\\"sourceMap\\\":true}!../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-59c95520\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!sass-loader?{\\\"sourceMap\\\":true}!../node_modules/vue-loader/lib/selector?type=styles&index=0!./App.vue\")\n}\nvar Component = require(\"!../node_modules/vue-loader/lib/component-normalizer\")(\n /* script */\n require(\"!!ts-loader!../node_modules/vue-loader/lib/selector?type=script&index=0!./App.vue\"),\n /* template */\n require(\"!!../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-59c95520\\\"}!../node_modules/vue-loader/lib/selector?type=template&index=0!./App.vue\"),\n /* styles */\n injectStyle,\n /* scopeId */\n null,\n /* moduleIdentifier (server only) */\n null\n)\n\n/* customBlocks */\nvar customBlock = require(\"!!@kazupon/vue-i18n-loader!yaml-loader!../node_modules/vue-loader/lib/selector?type=customBlocks&index=0!./App.vue\")\nif (typeof customBlock === \"function\") {customBlock(Component)}\n\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/App.vue\n// module id = 140\n// module chunks = 1","module.exports = function (Component) { Component.options.__i18n = '{\"en\":{\"error\":{\"connection\":\"An error that may affect your connection occured.\",\"websocket\":\"Websocket error has occurred. Check your network configuration (e.g. Firewall).\",\"session_unknown\":{\"header\":\"Unable to find the session to join\",\"content\":\"Please ask your host to check the URL you were given and make sure Wirecast is connected to the session.\"},\"session_full\":{\"header\":\"Session currently full\",\"content\":\"The session is full and cannot add any more participants. If you believe this is an error, please contact your host and request access.\"},\"session_already_connected\":{\"header\":\"Unable to connect to the session\",\"content\":\"Please ensure you are not joining the same session from the same browser.\"},\"no_rtc\":{\"content\":\"Your browser does not support the video & audio conversations. Please reopen using Chrome or Firefox to continue.\"}},\"message\":{\"waiting\":{\"content\":\"Waiting to join the conversation...\"},\"welcome\":{\"header\":\"Welcome\",\"content\":\"You are about to join a Wirecast Rendezvous session. Once connected, your host and any other participants will be able to see your webcam and hear your microphone. Please enter a name that will be transmitted to your host alerting them to your arrival.\"},\"session_ended\":{\"content\":\"The session has now ended\"}}},\"de\":{\"error\":{\"connection\":\"Ein Fehler, der unter Umständen Ihre Verbindung beeinflusst, ist aufgetreten.\",\"websocket\":\"Websocket-Fehler ist aufgetreten. Überprüfen Sie Ihre Netzwerkkonfiguration (z. B. Firewall).\",\"session_unknown\":{\"header\":\"Sitzung, der beigetreten werden soll, konnte nicht gefunden werden\",\"content\":\"Bitten Sie Ihren Gastgeber, die Ihnen gegebene URL zu überprüfen und sicherzustellen, dass Wirecast mit der Sitzung verbunden ist.\"},\"session_full\":{\"header\":\"Sitzung ist momentan voll\",\"content\":\"Die Sitzung ist voll und ihr können keine weiteren Teilnehmer hinzugefügt werden. Wenn Sie glauben, dass hier ein Fehler vorliegt, wenden Sie sich an den Gastgeber und fordern Sie Zugriff an.\"},\"session_already_connected\":{\"header\":\"Verbindung zur Sitzung fehlgeschlagen\",\"content\":\"Stellen Sie sicher, dass Sie der gleichen Sitzung nicht vom gleichen Browser aus beitreten.\"},\"no_rtc\":{\"content\":\"Ihr Browser unterstützt die Video- und Audiounterhaltungen nicht. Öffnen Sie erneut in Chrome oder Firefox, um fortzufahren.\"}},\"message\":{\"waiting\":{\"content\":\"Auf Beitreten zur Unterhaltung warten ...\"},\"welcome\":{\"header\":\"Willkommen\",\"content\":\"Sie sind im Begriff, mit Wirecast einer Rendezvous-Sitzung beizutreten. Sobald eine Verbindung besteht, können Ihr Gastgeber und andere Teilnehmer durch Ihre Webcam sehen und Töne von Ihrem Mikrofon hören. Geben Sie einen Namen ein, der dem Gastgeber übermittelt wird, um ihm Ihr Erscheinen mitzuteilen.\"},\"session_ended\":{\"content\":\"Die Sitzung ist beendet\"}}}}' }\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/@kazupon/vue-i18n-loader/lib!./~/yaml-loader!./~/vue-loader/lib/selector.js?type=customBlocks&index=0!./src/App.vue\n// module id = 141\n// module chunks = 1","module.exports = function (Component) { Component.options.__i18n = '{\"en\":{\"content\":\"Your name\",\"button_join\":\"Join\"},\"de\":{\"content\":\"Ihr Name\",\"button_join\":\"Beitreten\"}}' }\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/@kazupon/vue-i18n-loader/lib!./~/yaml-loader!./~/vue-loader/lib/selector.js?type=customBlocks&index=0!./src/components/JoinPrompt.vue\n// module id = 142\n// module chunks = 1","module.exports = function (Component) { Component.options.__i18n = '{\"en\":{\"button_settings_title\":\"Settings\",\"button_screen_share_title\":\"Share screen\"},\"de\":{\"button_settings_title\":\"Settings\",\"button_screen_share_title\":\"Share screen\"}}' }\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/@kazupon/vue-i18n-loader/lib!./~/yaml-loader!./~/vue-loader/lib/selector.js?type=customBlocks&index=0!./src/components/Local.vue\n// module id = 143\n// module chunks = 1","module.exports = function (Component) { Component.options.__i18n = '{\"en\":{\"button_settings_title\":\"Settings\"},\"de\":{\"button_settings_title\":\"Settings\"}}' }\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/@kazupon/vue-i18n-loader/lib!./~/yaml-loader!./~/vue-loader/lib/selector.js?type=customBlocks&index=0!./src/components/MyStream.vue\n// module id = 144\n// module chunks = 1","module.exports = function (Component) { Component.options.__i18n = '{\"en\":{\"button_flip_video_horizontally\":\"Flip Video Horizontally\",\"button_enable_music_mode\":\"Enable Music Mode\",\"button_share_screen_title\":\"Share Screen\"},\"de\":{\"button_flip_video_horizontally\":\"Video horizontal spiegeln\",\"button_enable_music_mode\":\"Musikmodus aktivieren\",\"button_share_screen_title\":\"Bildschirm teilen\"}}' }\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/@kazupon/vue-i18n-loader/lib!./~/yaml-loader!./~/vue-loader/lib/selector.js?type=customBlocks&index=0!./src/components/OptionsMenuSelect.vue\n// module id = 145\n// module chunks = 1","module.exports = function (Component) { Component.options.__i18n = '{\"en\":{\"screen-share-and-camera\":\"Share Screen & Camera\",\"screen-share-only\":\"Share Screen (Disable Camera)\",\"stop-screen-share\":\"Stop Screen Share\"},\"de\":{\"screen-share-and-camera\":\"Share Screen & Camera\",\"screen-share-only\":\"Share Screen (Disable Camera)\",\"stop-screen-share\":\"Stop Screen Share\"}}' }\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/@kazupon/vue-i18n-loader/lib!./~/yaml-loader!./~/vue-loader/lib/selector.js?type=customBlocks&index=0!./src/components/ScreenMenuSelect.vue\n// module id = 146\n// module chunks = 1","module.exports = function (Component) { Component.options.__i18n = '{\"en\":{\"button_mute_video_title\":\"Mute video\",\"button_mute_audio_title\":\"Mute audio\",\"button_show_chat_title\":\"Show chat\"},\"de\":{\"button_mute_video_title\":\"Video stummschalten\",\"button_mute_audio_title\":\"Audio stummschalten\",\"button_show_chat_title\":\"Show chat\"}}' }\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/@kazupon/vue-i18n-loader/lib!./~/yaml-loader!./~/vue-loader/lib/selector.js?type=customBlocks&index=0!./src/components/Stream.vue\n// module id = 147\n// module chunks = 1","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport Vue from \"vue\";\nimport { mapGetters } from \"vuex\";\nimport Participants from \"./components/Participants\";\nimport ChatPanel from \"./components/ChatPanel\";\nimport Local from \"./components/Local\";\nimport InfoBox from \"./components/InfoBox\";\nimport JoinPrompt from \"./components/JoinPrompt\";\nimport Spinner from \"./components/Spinner\";\nimport Stream from \"./components/Stream\";\nimport * as Screenshare from \"./screenshare\";\n// Register Spinner globally\nVue.component(\"Spinner\", Spinner);\nexport default {\n name: \"app\",\n components: {\n InfoBox: InfoBox,\n JoinPrompt: JoinPrompt,\n Participants: Participants,\n ChatPanel: ChatPanel,\n Local: Local,\n Stream: Stream,\n },\n watch: {\n locale: function (val) {\n this.$i18n.locale = val;\n },\n },\n computed: __assign(__assign({}, mapGetters([\"chatFeatureEnabled\", \"sharingScreenAndVideo\", \"sharingScreenOnly\", \"screenTallyActive\"])), { isError: function () {\n return !!this.$store.getters.fatalError;\n },\n isPure: function () {\n return !this.isError && this.$store.getters.appState === \"pure\";\n },\n isConnected: function () {\n return !this.isError && this.$store.getters.appState === \"connected\";\n },\n isJoining: function () {\n return !this.isError && this.$store.getters.appState === \"joining\";\n },\n isDisconnected: function () {\n return !this.isError && this.$store.getters.appState === \"disconnected\";\n },\n isIOS: function () {\n return !this.isError && this.$store.getters.appState === \"ios\";\n },\n /* Environment error predicates */\n isErrorNoRTC: function () {\n return this.isError && this.$store.getters.fatalError === \"NO_RTC\";\n },\n /* Session error predicates */\n isSessionUnknown: function () {\n return this.$store.getters.fatalError === \"SESSION_UNKNOWN\";\n },\n isSessionFull: function () {\n return this.$store.getters.fatalError === \"SESSION_FULL\";\n },\n isSessionAlreadyConnected: function () {\n return this.$store.getters.fatalError === \"SESSION_ALREADYCONNECTED\";\n },\n /* Minor Error */\n minorError: function () {\n return this.$store.getters.minorError;\n },\n audioDeviceError: function () {\n return this.$store.getters.audioDeviceError;\n },\n videoDeviceError: function () {\n return this.$store.getters.videoDeviceError;\n },\n screenShareError: function () {\n return this.$store.getters.screenShareError;\n },\n /* Show chat */\n chatEnabled: function () {\n return this.isConnected && this.chatFeatureEnabled;\n } }),\n methods: {\n onMinorErrorDismiss: function () {\n this.$store.dispatch(\"setMinorError\", false);\n },\n onShareScreenErrorDismiss: function () {\n this.$store.dispatch(\"setScreenShareError\", null);\n },\n enableScreenshareOnly: function () {\n Screenshare.enableScreenOnly(this.$store, this.$socket);\n },\n disableScreenshareOnly: function () {\n Screenshare.stopScreen(this.$store, this.$socket);\n },\n },\n created: function () {\n if (/iphone|ipad/i.test(navigator.userAgent)) {\n this.$store.dispatch(\"updateAppState\", \"ios\");\n return;\n }\n if (!window.RTCPeerConnection) {\n this.$store.dispatch(\"setFatalError\", \"NO_RTC\");\n }\n },\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/ts-loader!./~/vue-loader/lib/selector.js?type=script&index=0!./src/App.vue\n// module id = 322\n// module chunks = 1","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport { mapGetters } from \"vuex\";\nimport * as Device from \"../device\";\nexport default {\n name: \"audio_device_select\",\n data: function () {\n return {\n selectedDevice: {},\n unsubscribe: null,\n };\n },\n computed: __assign({}, mapGetters([\"currentAudioDevice\", \"audioDevices\"])),\n methods: {\n onChange: function () {\n // Clear previous device errors\n this.$store.dispatch(\"setAudioDeviceError\", { errorId: undefined, deviceName: undefined });\n var device = Device.findDeviceById(this.selectedDevice, this.audioDevices);\n if (!device) {\n this.$store.dispatch(\"updateCurrentAudioDevice\", { deviceId: undefined });\n this.$store.dispatch(\"setAudioDeviceError\", { errorId: \"NO_DEVICES\", deviceName: undefined });\n return;\n }\n this.$store.dispatch(\"updateCurrentAudioDevice\", device);\n },\n },\n beforeMount: function () {\n return __awaiter(this, void 0, void 0, function () {\n var _this = this;\n return __generator(this, function (_a) {\n if (this.currentAudioDevice) {\n this.selectedDevice = this.currentAudioDevice.deviceId;\n }\n this.unsubscribe = this.$store.subscribe(function (_a) {\n var type = _a.type;\n if (type === \"currentAudioDevice\") {\n if (_this.currentAudioDevice && _this.currentAudioDevice.deviceId === undefined) {\n _this.selectedDevice = undefined;\n return;\n }\n }\n if (type !== \"audioDevices\")\n return;\n if (!_this.currentAudioDevice) {\n // It is a first time audio devices are loaded. Try to pick preferred device.\n var preferredDevice = Device.getPreferredDevices().audioDeviceId;\n _this.selectedDevice = Device.getDefaultFromList(preferredDevice, _this.$store.getters.audioDevices, _this.$store);\n _this.onChange();\n return;\n }\n var selectedPresent = _this.audioDevices.find(function (_a) {\n var deviceId = _a.deviceId;\n return deviceId === _this.selectedDevice;\n });\n // Currently selected device is present, so no need to continue.\n // For Chrome device may change but deviceId is still the same (default, communications).\n // Call onChange in such case.\n if (selectedPresent && _this.selectedDevice !== \"default\" && _this.selectedDevice !== \"communications\")\n return;\n if (_this.selectedDevice === \"default\" || _this.selectedDevice === \"communications\") {\n _this.onChange();\n return;\n }\n _this.selectedDevice = undefined;\n _this.$store.dispatch(\"updateCurrentAudioDevice\", { deviceId: undefined });\n });\n return [2 /*return*/];\n });\n });\n },\n destroyed: function () {\n if (typeof this.unsubscribe === \"function\") {\n this.unsubscribe();\n }\n },\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/ts-loader!./~/vue-loader/lib/selector.js?type=script&index=0!./src/components/AudioDeviceSelect.vue\n// module id = 323\n// module chunks = 1","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport { mapGetters, mapMutations } from \"vuex\";\nimport { trim } from \"lodash\";\nimport Message from \"./chat/Message\";\nexport default {\n name: \"ChatPanel\",\n components: {\n Message: Message,\n },\n data: function () {\n return {\n message: \"\",\n messageTextareaFocus: false,\n };\n },\n computed: __assign(__assign({}, mapGetters([\"showChat\", \"chatMessages\"])), { noMessages: function () {\n return this.chatMessages.length === 0;\n } }),\n methods: __assign(__assign({}, mapMutations([\"setChatPanelOpened\"])), { sendMessage: function (event) {\n if (event.shiftKey) {\n return;\n }\n var trimmedMessage = trim(this.message);\n if (trimmedMessage == \"\")\n return;\n this.$socket.sendWithoutSession(\"sendChatMessage\", {\n content: trimmedMessage,\n });\n this.message = \"\";\n this.autoResize();\n },\n closeChatPanel: function () {\n this.setChatPanelOpened(false);\n },\n scrollToLastMessage: function () {\n var container = this.$refs[\"chat-content\"];\n container.scrollTop = container.scrollHeight;\n },\n autoResize: function (event) {\n var _this = this;\n var messageTextarea = this.$refs[\"chat-message\"];\n setTimeout(function () {\n messageTextarea.style.cssText = \"height:auto; padding:0\";\n var height = messageTextarea.scrollHeight;\n if (height > 48)\n height = 48;\n if (event === undefined || event.shiftKey || event.keyCode !== 13) {\n messageTextarea.style.cssText = \"height:\" + height + \"px\";\n }\n _this.scrollToLastMessage();\n });\n } }),\n watch: {\n chatMessages: function () {\n setTimeout(this.scrollToLastMessage, 0);\n },\n showChat: function (newValue) {\n if (newValue)\n setTimeout(this.scrollToLastMessage, 0);\n },\n },\n mounted: function () {\n this.scrollToLastMessage();\n },\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/ts-loader!./~/vue-loader/lib/selector.js?type=script&index=0!./src/components/ChatPanel.vue\n// module id = 324\n// module chunks = 1","import Vue from \"vue\";\nexport default Vue.extend({\n name: \"infoBox\",\n data: function () {\n return {};\n },\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/ts-loader!./~/vue-loader/lib/selector.js?type=script&index=0!./src/components/InfoBox.vue\n// module id = 325\n// module chunks = 1","import * as Communication from \"../communication\";\nimport MyStream from \"./MyStream.vue\";\nexport default {\n name: \"joinPrompt\",\n components: {\n MyStream: MyStream,\n },\n data: function () {\n return {\n name: \"\",\n };\n },\n computed: {\n isButtonDisabled: function () {\n return !this.name || this.$store.getters.audioDeviceError.errorId;\n },\n },\n watch: {\n locale: function (val) {\n this.$i18n.locale = val;\n },\n },\n methods: {\n onInput: function () {\n var defaultName = this.$store.getters.defaultLocalUserName;\n this.$store.dispatch(\"updateLocalUserName\", this.name || defaultName);\n },\n onSubmit: function () {\n var _this = this;\n this.$store.dispatch(\"updateAppState\", \"joining\");\n this.$socket.on(\"joinPeerResponse\", function (payload) {\n if (payload.result !== \"OK\") {\n _this.$store.dispatch(\"setFatalError\", payload.result);\n return;\n }\n _this.$store.dispatch(\"setFatalError\", undefined);\n });\n Communication.establish(this.$socket, this.$store);\n this.$socket.open(this.name);\n },\n },\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/ts-loader!./~/vue-loader/lib/selector.js?type=script&index=0!./src/components/JoinPrompt.vue\n// module id = 326\n// module chunks = 1","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport { mapGetters } from \"vuex\";\nimport Stream from \"./Stream\";\nimport VideoDeviceSelect from \"./VideoDeviceSelect\";\nimport AudioDeviceSelect from \"./AudioDeviceSelect\";\nimport OptionsMenuSelect from \"./OptionsMenuSelect\";\nimport ScreenMenuSelect from \"./ScreenMenuSelect\";\nexport default {\n name: \"local\",\n components: {\n Stream: Stream,\n VideoDeviceSelect: VideoDeviceSelect,\n AudioDeviceSelect: AudioDeviceSelect,\n OptionsMenuSelect: OptionsMenuSelect,\n ScreenMenuSelect: ScreenMenuSelect,\n },\n data: function () {\n return {\n localPeerId: \"\",\n dropdownVisible: false,\n screenDropdownVisible: false,\n };\n },\n computed: __assign(__assign({}, mapGetters([\"supportScreensharing\", \"sharingScreenAndVideo\", \"sharingScreenOnly\"])), { sourceStream: function () {\n return this.$store.getters.localStream;\n },\n isError: function () {\n return !!this.$store.getters.fatalError;\n },\n isConnected: function () {\n return !this.isError && this.$store.getters.appState === \"connected\";\n } }),\n methods: {\n toggleDropdown: function () {\n this.dropdownVisible = !this.dropdownVisible;\n },\n toggleScreenDropdown: function () {\n this.screenDropdownVisible = !this.screenDropdownVisible;\n },\n },\n created: function () {\n var _this = this;\n this.$socket.whenReady().then(function (_a) {\n var session = _a.session;\n _this.localPeerId = session.peerGuid;\n });\n document.addEventListener(\"click\", function (event) {\n if (event.target.matches(\"[data-settings-dropdown]\"))\n return;\n _this.dropdownVisible = false;\n });\n document.addEventListener(\"click\", function (event) {\n if (event.target.matches(\"[data-screen-dropdown]\"))\n return;\n _this.screenDropdownVisible = false;\n });\n },\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/ts-loader!./~/vue-loader/lib/selector.js?type=script&index=0!./src/components/Local.vue\n// module id = 327\n// module chunks = 1","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport Stream from \"./Stream\";\nimport VideoDeviceSelect from \"./VideoDeviceSelect\";\nimport AudioDeviceSelect from \"./AudioDeviceSelect\";\nimport OptionsMenuSelect from \"./OptionsMenuSelect\";\nimport adapter from \"webrtc-adapter\";\nimport * as Device from \"../device\";\nexport default {\n name: \"local\",\n components: {\n Stream: Stream,\n VideoDeviceSelect: VideoDeviceSelect,\n AudioDeviceSelect: AudioDeviceSelect,\n OptionsMenuSelect: OptionsMenuSelect,\n },\n data: function () {\n return {\n localPeerId: \"\",\n dropdownVisible: false,\n };\n },\n computed: {\n sourceStream: function () {\n return this.$store.getters.localStream;\n },\n },\n methods: {\n toggleDropdown: function () {\n this.dropdownVisible = !this.dropdownVisible;\n },\n },\n mounted: function () {\n this.$nextTick(function () {\n return __awaiter(this, void 0, void 0, function () {\n var audioDeviceId, videoDeviceId, preferredConstraints, fallbackConstraints, stream, err_1, err_2;\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n audioDeviceId = Device.getPreferredDevices().audioDeviceId;\n videoDeviceId = Device.getPreferredDevices().videoDeviceId;\n preferredConstraints = { audio: { deviceId: audioDeviceId }, video: false };\n fallbackConstraints = { audio: true, video: false };\n if (adapter.browserDetails.browser === \"chrome\") {\n preferredConstraints = Object.assign({ audio: { deviceId: audioDeviceId },\n video: { deviceId: videoDeviceId,\n width: { max: 1280, ideal: 1280, min: 1280 / 4 },\n height: { max: 720, ideal: 720, min: 720 / 4 }, } });\n fallbackConstraints = Object.assign({ audio: true, video: { width: { max: 1280, ideal: 1280, min: 1280 / 4 },\n height: { max: 720, ideal: 720, min: 720 / 4 }, } });\n }\n _a.label = 1;\n case 1:\n _a.trys.push([1, 3, , 8]);\n return [4 /*yield*/, navigator.mediaDevices.getUserMedia(preferredConstraints)];\n case 2:\n stream = _a.sent();\n return [3 /*break*/, 8];\n case 3:\n err_1 = _a.sent();\n if (!(err_1.name !== \"NotAllowedError\")) return [3 /*break*/, 7];\n _a.label = 4;\n case 4:\n _a.trys.push([4, 6, , 7]);\n return [4 /*yield*/, navigator.mediaDevices.getUserMedia(fallbackConstraints)];\n case 5:\n stream = _a.sent();\n return [3 /*break*/, 7];\n case 6:\n err_2 = _a.sent();\n return [3 /*break*/, 7];\n case 7: return [3 /*break*/, 8];\n case 8: return [4 /*yield*/, this.$store.dispatch(\"loadAudioDevices\")];\n case 9:\n _a.sent();\n return [4 /*yield*/, this.$store.dispatch(\"loadVideoDevices\")\n // Stop tracks. They are not going to be used anyway.\n ];\n case 10:\n _a.sent();\n // Stop tracks. They are not going to be used anyway.\n if (stream) {\n stream.getTracks().forEach(function (track) {\n track.stop();\n });\n }\n // Listen for device changes only after first initialization \n navigator.mediaDevices.addEventListener(\"devicechange\", function () {\n _this.$store.dispatch(\"loadAudioDevices\");\n _this.$store.dispatch(\"loadVideoDevices\");\n });\n return [2 /*return*/];\n }\n });\n });\n });\n },\n created: function () {\n var _this = this;\n this.$socket.whenReady().then(function (_a) {\n var session = _a.session;\n _this.localPeerId = session.peerGuid;\n });\n document.addEventListener(\"click\", function (event) {\n if (event.target.matches(\"[data-settings-dropdown]\"))\n return;\n _this.dropdownVisible = false;\n });\n },\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/ts-loader!./~/vue-loader/lib/selector.js?type=script&index=0!./src/components/MyStream.vue\n// module id = 328\n// module chunks = 1","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport { mapGetters } from \"vuex\";\nexport default {\n name: \"options_menu_select\",\n props: [\"initialMode\"],\n watch: {\n sharingScreenAndVideo: function (allowed) {\n this.sharingScreenAndVideo = allowed;\n }\n },\n computed: __assign(__assign({}, mapGetters([\"supportMusic\", \"sharingScreenAndVideo\", \"sharingScreenOnly\"])), { videoFlipped: {\n get: function () {\n return this.$store.getters.videoFlipped;\n },\n set: function (val) {\n this.$store.dispatch(\"updateVideoFlipped\", val);\n }\n }, audioProcessingDisabled: {\n get: function () {\n return this.$store.getters.audioProcessingDisabled;\n },\n set: function (val) {\n this.$store.dispatch(\"updateAudioProcessingDisabled\", val);\n }\n } }),\n methods: {\n getScreenShareStream: function () {\n return __awaiter(this, void 0, void 0, function () {\n var stream, err_1;\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 3, , 4]);\n stream = this.$store.getters.localScreenStream;\n if (!!stream) return [3 /*break*/, 2];\n return [4 /*yield*/, window.navigator.mediaDevices.getDisplayMedia({\n video: {\n cursor: \"always\",\n },\n audio: false,\n })];\n case 1:\n stream = _a.sent();\n this.$store.dispatch(\"setLocalScreenStream\", stream);\n _a.label = 2;\n case 2:\n stream.getVideoTracks()[0].addEventListener(\"ended\", function () {\n // The sharing was ended e.g. by clicking the chrome \"Stop Sharing\" button.\n _this.$socket.sendWithoutSession(\"updateSharingState\", {\n enabled: false,\n });\n _this.$store.dispatch(\"updateSharingScreenAndVideo\", false);\n _this.$store.dispatch(\"setLocalScreenStream\", null);\n });\n this.$store.dispatch(\"setScreenShareError\", null);\n return [3 /*break*/, 4];\n case 3:\n err_1 = _a.sent();\n this.$store.dispatch(\"setScreenShareError\", err_1.message);\n this.$store.dispatch(\"setLocalScreenStream\", null);\n this.$store.dispatch(\"updateSharingScreenAndVideo\", false);\n return [3 /*break*/, 4];\n case 4: return [2 /*return*/];\n }\n });\n });\n },\n onScreenSharingChange: function (_a) {\n var target = _a.target;\n return __awaiter(this, void 0, void 0, function () {\n var enabled;\n var _this = this;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n enabled = target.checked;\n if (!enabled) return [3 /*break*/, 2];\n return [4 /*yield*/, this.getScreenShareStream()];\n case 1:\n _b.sent();\n if (!this.$store.getters.localScreenStream) {\n return [2 /*return*/];\n }\n _b.label = 2;\n case 2:\n this.$socket.sendWithoutSession(\"updateSharingState\", {\n enabled: enabled,\n });\n if (!enabled) {\n setTimeout(function () {\n _this.$store.dispatch(\"updateSharingScreenAndVideo\", enabled);\n });\n }\n return [2 /*return*/];\n }\n });\n });\n },\n }\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/ts-loader!./~/vue-loader/lib/selector.js?type=script&index=0!./src/components/OptionsMenuSelect.vue\n// module id = 329\n// module chunks = 1","import Stream from \"./Stream\";\nexport default {\n name: \"participants\",\n components: {\n Stream: Stream,\n },\n data: function () {\n return {\n layoutModified: false,\n expandedStream: \"\",\n };\n },\n watch: {\n peers: function (peers) {\n var _this = this;\n peers.forEach(function (peer) {\n if (peer.screenSource) {\n _this.expandedStream = peer.identifier;\n }\n });\n if (this.expandedStream || this.layoutModified)\n return;\n this.expandedStream = peers[0].identifier;\n },\n },\n computed: {\n peers: function () {\n return this.$store.getters.peers.filter(function (peer) { return !peer.isLocal; });\n },\n isAnyStreamExpanded: function () {\n return !!this.expandedStream;\n },\n },\n methods: {\n expandStream: function (id) {\n this.layoutModified = true;\n if (this.expandedStream === id && this.peers.length > 1) {\n this.expandedStream = \"\";\n return;\n }\n this.expandedStream = id;\n },\n videoDisplayClass: function (id) {\n if (this.expandedStream === id)\n return \"expanded-video\";\n return \"minature-video\";\n },\n },\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/ts-loader!./~/vue-loader/lib/selector.js?type=script&index=0!./src/components/Participants.vue\n// module id = 330\n// module chunks = 1","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport { mapGetters } from \"vuex\";\nimport * as Screenshare from \"../screenshare\";\nexport default {\n name: \"screen_menu_select\",\n data: function () {\n return {\n selectedOption: undefined\n };\n },\n computed: __assign({}, mapGetters([\"sharingScreenAndVideo\", \"supportSimultaneousScreen\", \"sharingScreenOnly\"])),\n watch: {\n sharingScreenAndVideo: function (enabled) {\n if (enabled) {\n this.selectedOption = \"screen-camera\";\n }\n else {\n if (!this.sharingScreenOnly) {\n this.selectedOption = undefined;\n }\n }\n },\n sharingScreenOnly: function (enabled) {\n if (enabled) {\n this.selectedOption = \"screen-only\";\n }\n else {\n if (!this.sharingScreenAndVideo) {\n this.selectedOption = undefined;\n }\n }\n },\n },\n methods: {\n onChange: function (event) {\n var _this = this;\n this.selectedOption = undefined;\n setTimeout(function () {\n switch (event.target.value) {\n case \"screen-camera\":\n Screenshare.enableScreenAndVideo(_this.$store, _this.$socket);\n break;\n case \"screen-only\":\n Screenshare.enableScreenOnly(_this.$store, _this.$socket);\n break;\n default:\n Screenshare.stopScreen(_this.$store, _this.$socket);\n }\n }, 0);\n },\n }\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/ts-loader!./~/vue-loader/lib/selector.js?type=script&index=0!./src/components/ScreenMenuSelect.vue\n// module id = 331\n// module chunks = 1","export default {\n props: [\"isVisible\"],\n data: function () {\n return {};\n },\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/ts-loader!./~/vue-loader/lib/selector.js?type=script&index=0!./src/components/Spinner.vue\n// module id = 332\n// module chunks = 1","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport { mapGetters, mapActions } from \"vuex\";\nimport * as SearchParams from \"search-params\";\nimport * as Screenshare from \"../screenshare\";\nimport createLog from \"../log\";\nimport adapter from \"webrtc-adapter\";\nvar VideoOriginal = \"video[data-original]\";\nvar VideoScreen = \"video[data-screen]\";\nvar log = createLog(\"stream\");\nfunction toggleTrack(tracksGetter) {\n var track = tracksGetter()[0];\n if (!track) {\n console.error(\"No track found\", tracksGetter);\n return;\n }\n return (track.enabled = !track.enabled);\n}\n// label argument is for debug only\nfunction setVideoElementSource($el, source, isLocal, label) {\n var videoElement = $el.querySelector(VideoOriginal);\n if (isLocal) {\n videoElement.muted = true;\n videoElement.onloadedmetadata = function () {\n log(\"Local resolution: \" + videoElement.videoWidth + \"x\" + videoElement.videoHeight);\n };\n }\n if (videoElement.srcObject && source && videoElement.srcObject.id === source.id) {\n return;\n }\n log(\"Setting new stream for\", label, \":\", source.id);\n videoElement.srcObject = source;\n}\nfunction setVideoElementScreenSource($el, screenSource, isLocal, label) {\n var videoElement = $el.querySelector(VideoScreen);\n if (isLocal) {\n videoElement.muted = true;\n videoElement.onloadedmetadata = function () {\n log(\"Local resolution: \" + videoElement.videoWidth + \"x\" + videoElement.videoHeight);\n };\n }\n if (videoElement.srcObject && screenSource && videoElement.srcObject.id === screenSource.id) {\n return;\n }\n log(\"Setting new stream for\", label, \":\", screenSource.id);\n videoElement.srcObject = screenSource;\n}\nfunction lockElementHeight(videoElement) {\n var firstVideoElement = document.querySelector(\"[container] \" + VideoOriginal);\n if (firstVideoElement && firstVideoElement !== videoElement) {\n var height = firstVideoElement.offsetHeight;\n //videoElement.setAttribute('style', `height: ${height}px`);\n }\n}\nfunction freeElementHeight(videoElement) {\n videoElement.removeAttribute(\"style\");\n}\nfunction attachCanPlayEvent() {\n var _this = this;\n var videoElement = this.$el.querySelector(VideoOriginal);\n lockElementHeight(videoElement);\n var onCanPlay = function () {\n freeElementHeight(videoElement);\n _this.isVideoReady = true;\n videoElement.removeEventListener(\"canplay\", onCanPlay);\n };\n videoElement.addEventListener(\"canplay\", onCanPlay);\n}\nexport default {\n name: \"stream\",\n props: [\"source\", \"screenSource\", \"label\", \"isLocalStream\", \"id\", \"peer\", \"localInitialMode\"],\n watch: {\n source: {\n handler: function (currentStream) {\n if (!currentStream) {\n console.error(\"Stream empty for \" + this.userName);\n return;\n }\n setVideoElementSource(this.$el, currentStream, this.isLocalStream, this.userName);\n },\n },\n localStreamUpdated: {\n handler: function (updated) {\n if (!updated || !this.source)\n return;\n var videoTrack = this.source.getVideoTracks()[0];\n if (videoTrack) {\n videoTrack.enabled = this.videoEnabled;\n }\n var audioTrack = this.source.getAudioTracks()[0];\n if (audioTrack) {\n audioTrack.enabled = this.audioEnabled;\n }\n this.$store.commit(\"localStreamUpdated\", false);\n }\n },\n screenSource: {\n handler: function (screenStream) {\n if (!screenStream)\n return;\n setVideoElementScreenSource(this.$el, screenStream, this.isLocalStream, this.userName);\n }\n },\n locale: function (val) {\n this.$i18n.locale = val;\n },\n },\n data: function () {\n return {\n isLive: false,\n isAudioMuted: false,\n isVideoReady: false,\n videoEnabled: true,\n remoteAudioEnabled: true,\n showBitrate: false,\n bitrate: 0,\n isChrome: adapter.browserDetails.browser === \"chrome\",\n };\n },\n computed: __assign(__assign({}, mapGetters([\"chatFeatureEnabled\", \"showNewMessageIndicator\", \"localStreamUpdated\", \"sharingScreenOnly\", \"supportSimultaneousScreen\"])), { streamClass: function () {\n if (this.localInitialMode) {\n return \"local-initial\";\n }\n return this.isLocalStream ? \"local\" : \"remote\";\n },\n userName: function () {\n if (this.isLocalStream)\n return this.$store.getters.localUserName;\n return this.label;\n },\n isSuspended: function () {\n if (this.isLocalStream)\n return false;\n return this.peer.isSuspended;\n },\n isTallyActive: function () {\n if (this.$store.getters.appState !== \"connected\")\n return false;\n if (!this.isLocalStream)\n return false;\n return this.isLive;\n },\n isScreenShare: function () {\n if (this.screenSource)\n return true;\n return false;\n },\n isRemoteAudioMuted: function () {\n if (this.$store.getters.appState !== \"connected\")\n return false;\n if (this.isLocalStream)\n return false;\n return this.isAudioMuted;\n },\n showChatIcon: function () {\n return this.localInitialMode !== true && this.isLocalStream && this.chatFeatureEnabled;\n },\n videoFlipped: function () {\n return this.$store.getters.videoFlipped;\n }, audioEnabled: {\n get: function () {\n if (this.isLocalStream) {\n return this.$store.getters.localAudioEnabled;\n }\n return this.remoteAudioEnabled;\n },\n set: function (val) {\n if (this.isLocalStream) {\n this.$store.dispatch(\"updateLocalAudioEnabled\", val);\n }\n else {\n this.remoteAudioEnabled = val;\n }\n }\n } }),\n methods: __assign(__assign({}, mapActions([\"toggleChatPanelOpened\"])), { toggleVideo: function () {\n if (this.isLocalStream && this.sharingScreenOnly) {\n // This is for backward compatibility with WC < 15.1\n if (this.supportSimultaneousScreen) {\n Screenshare.enableScreenAndVideo(this.$store, this.$socket);\n }\n else {\n Screenshare.stopScreen(this.$store, this.$socket);\n }\n return;\n }\n if (!this.source)\n return;\n this.videoEnabled = toggleTrack(this.source.getVideoTracks.bind(this.source));\n },\n toggleAudio: function () {\n if (!this.source)\n return;\n this.audioEnabled = toggleTrack(this.source.getAudioTracks.bind(this.source));\n if (this.$store.getters.appState !== \"connected\")\n return false;\n if (!this.isLocalStream)\n return false;\n var messageJson = {\n subaction: \"audioMuteStateChanged\",\n value: !this.audioEnabled\n };\n this.$socket.send(\"broadcastToPeers\", messageJson);\n } }),\n mounted: function () {\n var _this = this;\n var params = SearchParams.parse(window.location.search.replace(/^\\?/, \"\"));\n var bitrate = params.find(function (param) { return param.name === \"show_bitrate\"; });\n if (!this.isLocalStream && bitrate) {\n this.showBitrate = true;\n this.peer.onBitrateChange = function (bitrate) {\n _this.bitrate = bitrate;\n };\n }\n // Tally and audio mute update\n this.$socket.on(\"gotBroadcastToAll\", function (payload) {\n if (payload.subaction === \"tallyStateChanged\") {\n if (payload.tallyPeerIdentifier !== _this.id)\n return;\n _this.isLive = payload.value;\n }\n else if (payload.subaction === \"screenTallyStateChanged\") {\n if (payload.peersIdentifier !== _this.id)\n return;\n _this.$store.dispatch(\"updateScreenTallyActive\", payload.value);\n }\n else if (payload.subaction === \"audioMuteStateChanged\") {\n if (payload.peersIdentifier !== _this.id)\n return;\n _this.isAudioMuted = payload.value;\n }\n });\n this.$socket.on(\"gotDirectMessage\", function (payload) {\n if (payload.subaction === \"tallyStateChanged\") {\n if (payload.tallyPeerIdentifier !== _this.id)\n return;\n _this.isLive = payload.value;\n }\n else if (payload.subaction === \"screenTallyStateChanged\") {\n if (payload.peersIdentifier !== _this.id)\n return;\n _this.$store.dispatch(\"updateScreenTallyActive\", payload.value);\n }\n else if (payload.subaction === \"audioMuteStateChanged\") {\n if (payload.peersIdentifier !== _this.id)\n return;\n _this.isAudioMuted = payload.value;\n }\n });\n attachCanPlayEvent.call(this);\n if (!this.source) {\n return;\n }\n var audioTrack = this.source.getAudioTracks()[0];\n if (audioTrack) {\n this.audioEnabled = audioTrack.enabled;\n }\n var videoTrack = this.source.getVideoTracks()[0];\n if (videoTrack) {\n this.videoEnabled = videoTrack.enabled;\n }\n setVideoElementSource(this.$el, this.source, this.isLocalStream, this.userName);\n },\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/ts-loader!./~/vue-loader/lib/selector.js?type=script&index=0!./src/components/Stream.vue\n// module id = 333\n// module chunks = 1","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport { mapGetters } from \"vuex\";\nimport * as Device from \"../device\";\nexport default {\n name: \"video_device_select\",\n data: function () {\n var self = this;\n return {\n selectedDevice: {},\n unsubscribe: null,\n };\n },\n computed: __assign({}, mapGetters([\"currentVideoDevice\", \"videoDevices\", \"sharingScreenOnly\"])),\n methods: {\n onChange: function () {\n // Clear previous device and screen errors\n this.$store.dispatch(\"setVideoDeviceError\", { errorId: undefined, deviceName: undefined });\n this.$store.dispatch(\"setScreenShareError\", undefined);\n var device = Device.findDeviceById(this.selectedDevice, this.videoDevices);\n if (!device) {\n this.$store.dispatch(\"updateCurrentVideoDevice\", { deviceId: undefined });\n return;\n }\n this.$store.dispatch(\"updateCurrentVideoDevice\", device);\n },\n },\n beforeMount: function () {\n return __awaiter(this, void 0, void 0, function () {\n var _this = this;\n return __generator(this, function (_a) {\n if (this.currentVideoDevice) {\n this.selectedDevice = this.currentVideoDevice.deviceId;\n }\n // Update device list and stream when current device is\n // removed\n this.unsubscribe = this.$store.subscribe(function (_a) {\n var type = _a.type;\n if (type === \"currentVideoDevice\") {\n if (_this.currentVideoDevice && (_this.currentVideoDevice.deviceId === undefined\n || _this.currentVideoDevice.deviceId === \"screen\")) {\n _this.selectedDevice = undefined;\n return;\n }\n }\n if (type !== \"videoDevices\")\n return;\n if (!_this.currentVideoDevice) {\n // It is a first time video devices are loaded. Try to pick preferred device.\n var preferredDevice = Device.getPreferredDevices().videoDeviceId;\n _this.selectedDevice = Device.getDefaultFromList(preferredDevice, _this.videoDevices, _this.$store);\n _this.onChange();\n return;\n }\n var selectedPresent = _this.videoDevices.find(function (_a) {\n var deviceId = _a.deviceId;\n return deviceId === _this.selectedDevice;\n });\n // Currently selected device is present, so no need to continue\n if (selectedPresent)\n return;\n _this.selectedDevice = undefined;\n _this.$store.dispatch(\"updateCurrentVideoDevice\", { deviceId: undefined });\n });\n return [2 /*return*/];\n });\n });\n },\n destroyed: function () {\n if (typeof this.unsubscribe === \"function\") {\n this.unsubscribe();\n }\n },\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/ts-loader!./~/vue-loader/lib/selector.js?type=script&index=0!./src/components/VideoDeviceSelect.vue\n// module id = 334\n// module chunks = 1","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport { mapGetters } from \"vuex\";\nimport { format } from \"date-fns\";\nimport Autolinker from \"autolinker\";\nexport default {\n name: \"Message\",\n props: [\"message\"],\n computed: __assign(__assign({}, mapGetters([\"localChatPeerId\", \"getPeerColor\"])), { username: function () {\n if (this.isLocal)\n return \"You\";\n if (this.isMaster)\n return \"Host\";\n return this.message.username;\n },\n content: function () {\n return this.message.content || \"\";\n },\n linkedContent: function () {\n return Autolinker.link(this.content, {\n className: \"chat-message-url\",\n sanitizeHtml: true,\n stripPrefix: false,\n });\n },\n time: function () {\n return format(new Date(this.message.time), \"H:mm\");\n },\n peerId: function () {\n return this.message.peersIdentifier;\n },\n messageIndex: function () {\n return this.message.index;\n },\n isLocal: function () {\n return this.peerId === this.localChatPeerId;\n },\n isMaster: function () {\n return this.message.master;\n },\n isDeleted: function () {\n return this.message.deleted;\n },\n canBeDeleted: function () {\n return this.isLocal && !this.isDeleted;\n },\n messageBubbleColor: function () {\n if (this.isMaster)\n return \"#161616\";\n return this.getPeerColor(this.peerId);\n },\n chatBubbleCssClass: function () {\n var bubbleClass = [\"chat-bubble\"];\n if (this.isMaster)\n bubbleClass.push(\"chat-bubble-master\");\n if (this.isLocal)\n bubbleClass.push(\"chat-bubble-me\");\n if (this.isDeleted)\n bubbleClass.push(\"chat-bubble-deleted\");\n return bubbleClass.join(\" \");\n } }),\n methods: {\n deleteMessage: function () {\n this.$socket.sendWithoutSession(\"deleteChatMessage\", {\n index: this.messageIndex,\n });\n },\n },\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/ts-loader!./~/vue-loader/lib/selector.js?type=script&index=0!./src/components/chat/Message.vue\n// module id = 335\n// module chunks = 1","import * as SearchParams from \"search-params\";\nimport * as Peers from \"./peers\";\nimport createLog from \"./log\";\nimport adapter from \"webrtc-adapter\";\nvar log = createLog(\"bandwidth\");\nfunction isFirefox() {\n return adapter.browserDetails.browser === \"firefox\";\n}\nfunction getBitrate() {\n var params = SearchParams.parse(window.location.search.replace(/^\\?/, \"\"));\n var bandwidth = params.find(function (param) { return param.name === \"bandwidth\"; });\n if (bandwidth && bandwidth.value) {\n log(\"Will use bandwidth:\", +bandwidth.value);\n return +bandwidth.value;\n }\n}\nfunction getBitrateByPeersCount() {\n var peersCount = Array.from(Peers.getAll().keys()).length;\n var limit = [\n undefined,\n undefined,\n undefined,\n 384,\n 256,\n 192,\n 128,\n 128,\n 64,\n ][peersCount];\n return limit;\n}\nexport function setMediaBitrate(sdp, media) {\n var lines = sdp.split(\"\\n\");\n var line = -1;\n var bitrateWanted = getBitrate() || getBitrateByPeersCount();\n if (!bitrateWanted) {\n log(\"No bandwidth limit\");\n return sdp;\n }\n else {\n log(\"Limiting bandwidth to\", bitrateWanted);\n }\n var lineType = isFirefox() ? \"b=TIAS:\" : \"b=AS:\";\n var bitrate = isFirefox() ? bitrateWanted * 1000 : bitrateWanted;\n for (var i = 0; i < lines.length; i++) {\n if (lines[i].indexOf(\"m=\" + media) === 0) {\n line = i;\n break;\n }\n }\n if (line === -1) {\n console.debug(\"Could not find the m line for\", media);\n return sdp;\n }\n console.debug(\"Found the m line for\", media, \"at line\", line);\n // Pass the m line\n line++;\n // Skip i and c lines\n while (lines[line].indexOf(\"i=\") === 0 || lines[line].indexOf(\"c=\") === 0) {\n line++;\n }\n // If we're on a b line, replace it\n if (lines[line].indexOf(\"b\") === 0) {\n console.debug(\"Replaced b line at line\", line);\n lines[line] = lineType + bitrate;\n return lines.join(\"\\n\");\n }\n // Add a new b line\n console.debug(\"Adding new b line before line\", line);\n var newLines = lines.slice(0, line);\n newLines.push(lineType + bitrate);\n newLines = newLines.concat(lines.slice(line, lines.length));\n return newLines.join(\"\\n\");\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/bandwidth.ts\n// module id = 336\n// module chunks = 1","/**\n * Protocol logic implementation\n * @module Communication\n */\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport * as Peers from \"./peers\";\nimport * as Session from \"./session\";\nimport createLog from \"./log\";\nimport adapter from \"webrtc-adapter\";\nimport * as Screenshare from \"./screenshare\";\nvar log = createLog(\"communication\");\nfunction catchConnectionError($store, fn) {\n try {\n fn();\n }\n catch (e) {\n $store.dispatch(\"setMinorError\", \"CONNECTION\");\n console.error(\"Connection error\");\n console.error(e);\n }\n}\nfunction onPeerConnectionClosed(_a) {\n var $store = _a.$store, peer = _a.peer, session = _a.session;\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_b) {\n log(\"onPeerConnectionClosed\", peer.name);\n return [2 /*return*/];\n });\n });\n}\nfunction onPeerConnectionDisconnected(_a) {\n var $store = _a.$store, peer = _a.peer, session = _a.session;\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_b) {\n log(\"onPeerConnectionDisconnected\", peer.name, \"suspended?\", peer.isSuspended);\n peer.isSuspended = true;\n return [2 /*return*/];\n });\n });\n}\nfunction onPeerConnectionConnected(_a) {\n var _this = this;\n var $store = _a.$store, peer = _a.peer, session = _a.session;\n log(\"onPeerConnectionConnected\", peer.name);\n peer.isSuspended = false;\n var messageJson = {\n identifier: peer.identifier,\n subaction: \"audioMuteStateChanged\",\n value: !$store.getters.localAudioEnabled\n };\n Session.send(session, \"directMessage\", messageJson);\n setTimeout(function () { return __awaiter(_this, void 0, void 0, function () {\n var stats, candidatePair, localIP, remoteIP, turnIPs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, peer.connection.getStats(null)];\n case 1:\n stats = _a.sent();\n candidatePair = Array.from(stats.values()).find(function (report) {\n return report.type == \"candidate-pair\" && report.state == \"succeeded\" && report.nominated == true;\n });\n if (!candidatePair) {\n log(\"Undefined candidates\");\n return [2 /*return*/];\n }\n localIP = \"\";\n remoteIP = \"\";\n stats.forEach(function (report) {\n switch (report.id) {\n case candidatePair.localCandidateId:\n localIP = \"ipAddress\" in report ? report.ipAddress : report.ip;\n break;\n case candidatePair.remoteCandidateId:\n remoteIP = \"ipAddress\" in report ? report.ipAddress : report.ip;\n break;\n }\n });\n log(\"WebRTC connection local_ip: \", localIP, \"remote_ip: \", remoteIP);\n if (!localIP || !remoteIP)\n return [2 /*return*/];\n turnIPs = session.iceServers\n .map(function (iceServer) {\n if (iceServer.urls.length == 0)\n return null;\n var match = /turn:(\\d+\\.\\d+\\.\\d+\\.\\d+)/.exec(iceServer.urls[0]);\n return match === null ? null : match[1];\n })\n .filter(function (ip) { return ip != null; });\n peer.localConnectionType = turnIPs.includes(localIP) ? \"turn\" : \"non-turn\";\n peer.remoteConnectionType = turnIPs.includes(remoteIP) ? \"turn\" : \"non-turn\";\n Session.send(session, \"reportConnection\", {\n reconnectCount: peer.reconnectCount++,\n localType: peer.localConnectionType,\n remoteType: peer.remoteConnectionType,\n });\n return [2 /*return*/];\n }\n });\n }); }, 0);\n}\nfunction onPeerConnectionFailed(_a) {\n var $store = _a.$store, peer = _a.peer, session = _a.session;\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_b) {\n log(\"FAILED connection for\", peer.name, peer);\n log(\"Trying to restart ICE for\", peer.name);\n peer.isSuspended = true;\n peer.connection.restartIce();\n return [2 /*return*/];\n });\n });\n}\nfunction createPeer($store, session, payload, reconnectCount, suspended) {\n if (reconnectCount === void 0) { reconnectCount = 0; }\n if (suspended === void 0) { suspended = false; }\n var peersIdentifier = payload.peersIdentifier, username = payload.username, master = payload.master;\n // Remove and close old master peer when reconnecting Wirecast\n if (master) {\n var wirecastPeer = $store.getters.peers.find(function (item) { return item.master; });\n if (wirecastPeer) {\n wirecastPeer.isSuspended = true;\n Peers.closeConnection(wirecastPeer);\n Peers.remove(wirecastPeer);\n $store.dispatch(\"removePeer\", wirecastPeer);\n }\n }\n var peer = Peers.createConnection(session, peersIdentifier, username, reconnectCount, master, $store.getters.supportMusic, $store.getters.supportSimultaneousScreen);\n peer.isSuspended = suspended;\n var connection = peer.connection;\n log(\"-> Creating peer for\", username, \"(\", peersIdentifier, \")\");\n connection.onconnectionstatechange = function () {\n log(username, \"Connection state change to\", connection.connectionState);\n // This is a workaround for a Chrome bug,\n // where iceConnectionState does not go to \"failed\" state.\n // Instead, use connectionState to see if connection has failed.\n // https://bugs.chromium.org/p/chromium/issues/detail?id=935898\n if (adapter.browserDetails.browser === \"chrome\") {\n var state = connection.connectionState;\n if (state == \"failed\") {\n onPeerConnectionFailed({ $store: $store, peer: peer, session: session });\n }\n }\n };\n connection.oniceconnectionstatechange = function () {\n var state = connection.iceConnectionState;\n log(\"-> ICE Connection state change for\", username, \"to\", state);\n var handler = new Map([\n [\"closed\", onPeerConnectionClosed],\n [\"disconnected\", onPeerConnectionDisconnected],\n [\"connected\", onPeerConnectionConnected],\n [\"failed\", onPeerConnectionFailed],\n ]).get(state);\n if (!handler)\n return;\n handler({ $store: $store, peer: peer, session: session });\n };\n connection.onnegotiationneeded = function () { return catchConnectionError($store, function () { return Peers.createOffer(session, peer); }); };\n peer.onReady = function () {\n $store.dispatch(\"addPeer\", peer);\n };\n return peer;\n}\nfunction getOrCreatePeer($socket, $store, peersIdentifier, payload) {\n return Peers.getByIdentifier(peersIdentifier) || createPeer($store, $socket.session, payload);\n}\nfunction onCreateAnswer($socket, $store) {\n return function (payload) {\n var peersIdentifier = payload.peersIdentifier;\n var peer = getOrCreatePeer($socket, $store, peersIdentifier, payload);\n log(\"-> onCreateAnswer\", peer.name);\n var localStream;\n var screenShareStream;\n if (!peer.connection.localDescription) {\n localStream = $store.getters.localStream;\n if (!$store.getters.sharingScreenOnly) {\n screenShareStream = $store.getters.localScreenStream;\n }\n }\n catchConnectionError($store, function () { return Peers.updateDescriptions($socket.session, peer, payload, $store, localStream, screenShareStream); });\n // joining to a session\n if ($store.getters.appState === \"disconnected\" || $store.getters.appState === \"joining\") {\n log(\"-> Joined session successfully\");\n $store.dispatch(\"updateAppState\", \"connected\");\n }\n };\n}\nfunction onICE($socket, $store) {\n return function (payload) {\n var peer = Peers.getByIdentifier(payload.peersIdentifier);\n if (!peer) {\n console.error(\"No such peer\", payload.peersIdentifier);\n return;\n }\n Peers.createCandidate($socket.session, peer, payload);\n };\n}\nfunction onCreateOffer($socket, $store) {\n return function (payload) {\n var peersIdentifier = payload.peersIdentifier, username = payload.username;\n var peer = getOrCreatePeer($socket, $store, peersIdentifier, payload);\n if (!peer.connection.localDescription) {\n var localStream = $store.getters.localStream;\n var screenShareStream = $store.getters.localScreenStream;\n Peers.addTracks(peer, localStream, screenShareStream);\n }\n log(\"-> onCreateOffer\", username);\n console.info(\"### Peers\", Peers.getAll());\n peer.name = username;\n };\n}\nfunction onGotAnswer($socket, $store) {\n return function (payload) {\n var peer = Peers.getByIdentifier(payload.peersIdentifier);\n log(\"Current peers\", Peers.getAll());\n log(\"-> Got answer\", peer.name);\n catchConnectionError($store, function () { return Peers.setRemoteDescription(peer, payload); });\n };\n}\nfunction onGotChatMessages($socket, $store) {\n return function (payload) {\n $store.dispatch(\"gotChatMessages\", payload.messages);\n };\n}\nfunction onDeletedChatMessage($socket, $store) {\n return function (payload) {\n if (payload.all === true) {\n $store.commit(\"deleteAllChatMessages\");\n return;\n }\n $store.commit(\"deleteChatMessage\", payload.index);\n };\n}\nfunction onPeerDisconnected($socket, $store) {\n return function (payload) {\n var peer = Peers.getByIdentifier(payload.peersIdentifier);\n if (peer) {\n log(\"-> Disconnection from\", peer.name);\n peer.isSuspended = true;\n Peers.closeConnection(peer);\n Peers.remove(peer);\n $store.dispatch(\"removePeer\", peer);\n }\n if (!$store.getters.peers.length) {\n $store.dispatch(\"updateAppState\", \"disconnected\");\n Screenshare.stopScreen($store, $socket);\n }\n };\n}\nfunction onDisconnect($socket, $store) {\n return function () {\n log(\"-> Disconnecting\");\n Screenshare.stopScreen($store, $socket);\n $store.dispatch(\"clearPeers\");\n $socket.session.socket.close();\n $store.dispatch(\"updateAppState\", \"disconnected\");\n };\n}\nfunction onUpdateSharingStateResponse($socket, $store) {\n return function (payload) {\n log(\"-> UpdateSharingStateResponse. Allowed: \", payload.allowed);\n $store.dispatch(\"updateSharingScreenAndVideo\", payload.allowed);\n if (!payload.allowed) {\n $store.dispatch(\"setScreenShareError\", \"SHARING_NOT_ALLOWED\");\n }\n };\n}\n/**\n * Starts listening on given socket (must be SocketPlugin.Socket)\n * @param {SocketPlugin.Socket} $socket - socket to listen to\n * @param {Vuex} $store - vuex store to dispatch actions to\n */\nexport function establish($socket, $store) {\n var session = $socket.session;\n $socket.on(\"createAnswer\", onCreateAnswer($socket, $store));\n $socket.on(\"ice\", onICE($socket, $store));\n $socket.on(\"createOffer\", onCreateOffer($socket, $store));\n $socket.on(\"gotAnswer\", onGotAnswer($socket, $store));\n $socket.on(\"gotChatMessages\", onGotChatMessages($socket, $store));\n $socket.on(\"deletedChatMessage\", onDeletedChatMessage($socket, $store));\n $socket.on(\"peerDisconnected\", onPeerDisconnected($socket, $store));\n $socket.on(\"disconnect\", onDisconnect($socket, $store));\n $socket.on(\"updateSharingStateResponse\", onUpdateSharingStateResponse($socket, $store));\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/communication.ts\n// module id = 337\n// module chunks = 1","import * as SearchParams from \"search-params\";\nexport function getFrameRate() {\n var params = SearchParams.parse(window.location.search.replace(/^\\?/, \"\"));\n var fps = params.find(function (param) { return param.name === \"fps\"; });\n if (fps) {\n return fps.value;\n }\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/frame_rate.ts\n// module id = 338\n// module chunks = 1","/**\n * Guuid generation and storing\n * @module Guuid\n */\nimport uuidv4 from \"uuid/v4\";\nimport Cookies from \"js-cookie\";\nvar peerGuidCookie = \"net.telestream.webrtc.peerIdentifier\";\nfunction savePeerGuid(guid) {\n Cookies.set(peerGuidCookie, guid);\n}\nexport function createPeerGuid() {\n var guid = uuidv4();\n savePeerGuid(guid);\n return guid;\n}\nexport function getPeerGuid() {\n return Cookies.get(peerGuidCookie);\n}\nexport function getSessionGuid() {\n var pathname = window.location.pathname;\n var _a = pathname.match(/\\/s\\/([^\\/|\\?]+)/), sessionGuid = _a[1];\n if (!sessionGuid) {\n throw new Error(\"Could not find session guid in the URL pathname: \" + pathname);\n }\n return sessionGuid;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/guid.ts\n// module id = 339\n// module chunks = 1","/**\n * This module only holds the list of ICE servers available\n * @module ICE\n */\nexport var servers = [{ urls: \"stun:stun.l.google.com:19302\" }];\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/ice.ts\n// module id = 340\n// module chunks = 1","import Vue from \"vue\";\nimport VueI18n from \"vue-i18n\";\nimport App from \"./App\";\nimport SocketPlugin from \"./plugin/socket\";\nimport Store from \"./store\";\nimport * as Internationalization from \"./internationalization\";\nimport \"./polyfills\";\nconsole.log(\"git commit: \" + process.env.GIT_COMMIT);\nVue.use(SocketPlugin, {\n store: Store,\n onError: function (error) {\n Store.dispatch(\"setMinorError\", \"WEBSOCKET\");\n console.error(error);\n },\n});\nVue.use(VueI18n);\nVue.config.productionTip = false;\nvar i18n = new VueI18n({\n locale: Internationalization.getLanguage(),\n});\n/* eslint-disable no-new */\n/* tslint:disable:no-unused-expression */\nnew Vue({\n el: \"#app\",\n template: \"\",\n components: { App: App },\n store: Store,\n i18n: i18n,\n});\nif (window.Raven) {\n window.Raven.config(\"https://541a1dde7b5147c989e8d153a89a350f@sentry.io/197022\").install();\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/main.ts\n// module id = 341\n// module chunks = 1","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __spreadArrays = (this && this.__spreadArrays) || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n};\nimport { uniq, difference } from \"lodash\";\nvar LOCAL_PEER_CHAT_COLOR = \"#029bd4\";\nvar DEFAULT_GUEST_PEER_CHAT_COLOR = \"#20986c\";\nvar GUEST_PEERS_CHAT_COLORS = [\"#20986c\", \"#431eac\", \"#3978be\", \"#41a558\", \"#6300bf\", \"#0064b8\", \"#14988d\", \"#0041b9\"];\nexport default {\n state: {\n chatFeatureEnabled: false,\n chatPanelOpened: true,\n localChatPeerId: undefined,\n peersColors: {},\n newMessageIndicator: false,\n messages: [],\n },\n getters: {\n showChat: function (state) {\n return state.chatFeatureEnabled && state.chatPanelOpened;\n },\n chatFeatureEnabled: function (state) {\n return state.chatFeatureEnabled;\n },\n chatPanelOpened: function (state) {\n return state.chatPanelOpened;\n },\n chatMessages: function (state) {\n return state.messages.sort(function (message1, message2) { return message1.index - message2.index; });\n },\n localChatPeerId: function (state) {\n return state.localChatPeerId;\n },\n getPeerColor: function (state) { return function (peerId) {\n return state.peersColors[peerId] || DEFAULT_GUEST_PEER_CHAT_COLOR;\n }; },\n getPeersWithColor: function (state) {\n return Object.keys(state.peersColors);\n },\n showNewMessageIndicator: function (state) {\n return state.newMessageIndicator && !state.chatPanelOpened;\n },\n },\n mutations: {\n addChatMessages: function (state, newMessages) {\n state.messages = __spreadArrays(state.messages, newMessages);\n },\n setChatFeatureEnabled: function (state, newChatFeatureStatus) {\n state.chatFeatureEnabled = newChatFeatureStatus;\n },\n setChatPanelOpened: function (state, newOpenedStatus) {\n state.chatPanelOpened = newOpenedStatus;\n if (!newOpenedStatus)\n state.newMessageIndicator = false;\n },\n setLocalChatPeerId: function (state, newPeerId) {\n state.localChatPeerId = newPeerId;\n },\n setLocalChatPeerColor: function (state, newPeerId) {\n var _a;\n state.peersColors = __assign(__assign({}, state.peersColors), (_a = {}, _a[newPeerId] = LOCAL_PEER_CHAT_COLOR, _a));\n },\n setPeerChatColor: function (state, newPeerId) {\n var _a;\n var colorIndex = Object.keys(state.peersColors).length % GUEST_PEERS_CHAT_COLORS.length;\n var color = GUEST_PEERS_CHAT_COLORS[colorIndex];\n state.peersColors = __assign(__assign({}, state.peersColors), (_a = {}, _a[newPeerId] = color, _a));\n },\n setNewMessageIndicator: function (state, newStatus) {\n state.newMessageIndicator = newStatus;\n },\n deleteChatMessage: function (state, deletedMessageIndex) {\n state.messages = state.messages.map(function (message) {\n if (message.index === deletedMessageIndex) {\n return __assign(__assign({}, message), { content: \"This message has been deleted.\", deleted: true });\n }\n return message;\n });\n },\n deleteAllChatMessages: function (state) {\n state.messages = [];\n },\n },\n actions: {\n toggleChatPanelOpened: function (_a) {\n var getters = _a.getters, commit = _a.commit;\n commit(\"setChatPanelOpened\", !getters.chatPanelOpened);\n },\n gotChatMessages: function (_a, newMessages) {\n var getters = _a.getters, commit = _a.commit;\n var messagePeers = uniq(newMessages.map(function (message) { return message.peersIdentifier; }));\n var newPeers = difference(messagePeers, getters.getPeersWithColor);\n if (newPeers.length > 0) {\n newPeers.forEach(function (peerId) { return commit(\"setPeerChatColor\", peerId); });\n }\n commit(\"addChatMessages\", newMessages);\n if (!getters.chatPanelOpened)\n commit(\"setNewMessageIndicator\", true);\n },\n enableChat: function (_a, _b) {\n var commit = _a.commit;\n var peersIdentifier = _b.peersIdentifier;\n commit(\"setChatFeatureEnabled\", true);\n commit(\"setChatPanelOpened\", true);\n commit(\"setLocalChatPeerId\", peersIdentifier);\n commit(\"setLocalChatPeerColor\", peersIdentifier);\n },\n disableChat: function (_a) {\n var commit = _a.commit;\n commit(\"setChatFeatureEnabled\", false);\n commit(\"setChatPanelOpened\", false);\n commit(\"setLocalChatPeerId\", undefined);\n },\n },\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/store/chat.ts\n// module id = 342\n// module chunks = 1","module.exports = \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDI0LjEuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IgoJIHZpZXdCb3g9IjAgMCAxOCAxNiIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgMTggMTY7IiB4bWw6c3BhY2U9InByZXNlcnZlIj4KPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KCS5zdDB7ZmlsbDojRkZGRkZGO30KPC9zdHlsZT4KPGRlc2M+Q3JlYXRlZCB3aXRoIFNrZXRjaC48L2Rlc2M+CjxnIGlkPSJfeDMyX18xOF8iPgoJPGc+CgkJPHBhdGggY2xhc3M9InN0MCIgZD0iTTExLjIsOS4xSDYuOGMtMC4yLDAtMC40LDAuMi0wLjQsMC40YzAsMC4yLDAuMiwwLjQsMC40LDAuNGg0LjRjMC4yLDAsMC40LTAuMiwwLjQtMC40CgkJCUMxMS43LDkuMywxMS41LDkuMSwxMS4yLDkuMXogTTEyLjEsNi40SDUuOWMtMC4yLDAtMC40LDAuMi0wLjQsMC40YzAsMC4yLDAuMiwwLjQsMC40LDAuNGg2LjJjMC4yLDAsMC40LTAuMiwwLjQtMC40CgkJCUMxMi41LDYuNiwxMi4zLDYuNCwxMi4xLDYuNHogTTksMS41Yy0zLjksMC03LjEsMi44LTcuMSw2LjJjMCwyLDEsMy43LDIuNyw0Ljh2My4xbDMuMS0xLjljMC40LDAuMSwwLjksMC4xLDEuMywwLjEKCQkJYzMuOSwwLDcuMS0yLjgsNy4xLTYuMkMxNi4xLDQuMywxMi45LDEuNSw5LDEuNXogTTksMTMuMWMtMC41LDAtMS0wLjEtMS41LTAuMmwtMi4xLDEuM2wwLTIuMWMtMS42LTEtMi42LTIuNi0yLjYtNC40CgkJCWMwLTIuOSwyLjgtNS4zLDYuMi01LjNzNi4yLDIuNCw2LjIsNS4zQzE1LjIsMTAuNywxMi40LDEzLjEsOSwxMy4xeiIvPgoJPC9nPgo8L2c+Cjwvc3ZnPgo=\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/assets/chat.svg\n// module id = 343\n// module chunks = 1","module.exports = \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDI0LjEuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IgoJIHZpZXdCb3g9IjAgMCAxOCAxNiIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgMTggMTY7IiB4bWw6c3BhY2U9InByZXNlcnZlIj4KPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KCS5zdDB7ZmlsbDojRkZGRkZGO30KPC9zdHlsZT4KPGRlc2M+Q3JlYXRlZCB3aXRoIFNrZXRjaC48L2Rlc2M+CjxkZXNjPkNyZWF0ZWQgd2l0aCBTa2V0Y2guPC9kZXNjPgo8cmVjdCB4PSI4LjciIHk9IjAuNCIgdHJhbnNmb3JtPSJtYXRyaXgoMC43MDcxIDAuNzA3MSAtMC43MDcxIDAuNzA3MSA4LjI5MjkgLTQuMDIwOCkiIGNsYXNzPSJzdDAiIHdpZHRoPSIwLjciIGhlaWdodD0iMTUuMiIvPgo8cmVjdCB4PSI4LjciIHk9IjAuNCIgdHJhbnNmb3JtPSJtYXRyaXgoLTAuNzA3MSAwLjcwNzEgLTAuNzA3MSAtMC43MDcxIDIxLjAyMDggNy4yOTI5KSIgY2xhc3M9InN0MCIgd2lkdGg9IjAuNyIgaGVpZ2h0PSIxNS4yIi8+Cjwvc3ZnPgo=\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/assets/close.svg\n// module id = 344\n// module chunks = 1","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAXkAAABICAYAAAATUoWBAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyNpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQwIDc5LjE2MDQ1MSwgMjAxNy8wNS8wNi0wMTowODoyMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChNYWNpbnRvc2gpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjAxN0UxOEZERDE2NjExRTc4NUQ0OTBDRDlCQjYxNjk2IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjAxN0UxOEZFRDE2NjExRTc4NUQ0OTBDRDlCQjYxNjk2Ij4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MDE3RTE4RkJEMTY2MTFFNzg1RDQ5MENEOUJCNjE2OTYiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MDE3RTE4RkNEMTY2MTFFNzg1RDQ5MENEOUJCNjE2OTYiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4kMm/oAAAhoUlEQVR42uxdCWAU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\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/assets/wirecast-rendezvous-logo.png\n// module id = 345\n// module chunks = 1","function injectStyle (ssrContext) {\n require(\"!!../../node_modules/extract-text-webpack-plugin/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"minimize\\\":true,\\\"sourceMap\\\":true}!../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-97896eb8\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!sass-loader?{\\\"sourceMap\\\":true}!../../node_modules/vue-loader/lib/selector?type=styles&index=0!./ChatPanel.vue\")\n}\nvar Component = require(\"!../../node_modules/vue-loader/lib/component-normalizer\")(\n /* script */\n require(\"!!ts-loader!../../node_modules/vue-loader/lib/selector?type=script&index=0!./ChatPanel.vue\"),\n /* template */\n require(\"!!../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-97896eb8\\\"}!../../node_modules/vue-loader/lib/selector?type=template&index=0!./ChatPanel.vue\"),\n /* styles */\n injectStyle,\n /* scopeId */\n null,\n /* moduleIdentifier (server only) */\n null\n)\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/ChatPanel.vue\n// module id = 349\n// module chunks = 1","function injectStyle (ssrContext) {\n require(\"!!../../node_modules/extract-text-webpack-plugin/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"minimize\\\":true,\\\"sourceMap\\\":true}!../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-5cf084d5\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!../../node_modules/vue-loader/lib/selector?type=styles&index=0!./InfoBox.vue\")\n}\nvar Component = require(\"!../../node_modules/vue-loader/lib/component-normalizer\")(\n /* script */\n require(\"!!ts-loader!../../node_modules/vue-loader/lib/selector?type=script&index=0!./InfoBox.vue\"),\n /* template */\n require(\"!!../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-5cf084d5\\\"}!../../node_modules/vue-loader/lib/selector?type=template&index=0!./InfoBox.vue\"),\n /* styles */\n injectStyle,\n /* scopeId */\n \"data-v-5cf084d5\",\n /* moduleIdentifier (server only) */\n null\n)\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/InfoBox.vue\n// module id = 350\n// module chunks = 1","function injectStyle (ssrContext) {\n require(\"!!../../node_modules/extract-text-webpack-plugin/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"minimize\\\":true,\\\"sourceMap\\\":true}!../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-382ff846\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!../../node_modules/vue-loader/lib/selector?type=styles&index=0!./JoinPrompt.vue\")\n require(\"!!../../node_modules/extract-text-webpack-plugin/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"minimize\\\":true,\\\"sourceMap\\\":true}!../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-382ff846\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!../../node_modules/vue-loader/lib/selector?type=styles&index=1!./JoinPrompt.vue\")\n}\nvar Component = require(\"!../../node_modules/vue-loader/lib/component-normalizer\")(\n /* script */\n require(\"!!ts-loader!../../node_modules/vue-loader/lib/selector?type=script&index=0!./JoinPrompt.vue\"),\n /* template */\n require(\"!!../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-382ff846\\\"}!../../node_modules/vue-loader/lib/selector?type=template&index=0!./JoinPrompt.vue\"),\n /* styles */\n injectStyle,\n /* scopeId */\n \"data-v-382ff846\",\n /* moduleIdentifier (server only) */\n null\n)\n\n/* customBlocks */\nvar customBlock = require(\"!!@kazupon/vue-i18n-loader!yaml-loader!../../node_modules/vue-loader/lib/selector?type=customBlocks&index=0!./JoinPrompt.vue\")\nif (typeof customBlock === \"function\") {customBlock(Component)}\n\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/JoinPrompt.vue\n// module id = 351\n// module chunks = 1","function injectStyle (ssrContext) {\n require(\"!!../../node_modules/extract-text-webpack-plugin/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"minimize\\\":true,\\\"sourceMap\\\":true}!../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-2cfd8303\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!../../node_modules/vue-loader/lib/selector?type=styles&index=0!./Local.vue\")\n}\nvar Component = require(\"!../../node_modules/vue-loader/lib/component-normalizer\")(\n /* script */\n require(\"!!ts-loader!../../node_modules/vue-loader/lib/selector?type=script&index=0!./Local.vue\"),\n /* template */\n require(\"!!../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-2cfd8303\\\"}!../../node_modules/vue-loader/lib/selector?type=template&index=0!./Local.vue\"),\n /* styles */\n injectStyle,\n /* scopeId */\n \"data-v-2cfd8303\",\n /* moduleIdentifier (server only) */\n null\n)\n\n/* customBlocks */\nvar customBlock = require(\"!!@kazupon/vue-i18n-loader!yaml-loader!../../node_modules/vue-loader/lib/selector?type=customBlocks&index=0!./Local.vue\")\nif (typeof customBlock === \"function\") {customBlock(Component)}\n\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/Local.vue\n// module id = 352\n// module chunks = 1","function injectStyle (ssrContext) {\n require(\"!!../../node_modules/extract-text-webpack-plugin/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"minimize\\\":true,\\\"sourceMap\\\":true}!../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-62225338\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!../../node_modules/vue-loader/lib/selector?type=styles&index=0!./MyStream.vue\")\n}\nvar Component = require(\"!../../node_modules/vue-loader/lib/component-normalizer\")(\n /* script */\n require(\"!!ts-loader!../../node_modules/vue-loader/lib/selector?type=script&index=0!./MyStream.vue\"),\n /* template */\n require(\"!!../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-62225338\\\"}!../../node_modules/vue-loader/lib/selector?type=template&index=0!./MyStream.vue\"),\n /* styles */\n injectStyle,\n /* scopeId */\n \"data-v-62225338\",\n /* moduleIdentifier (server only) */\n null\n)\n\n/* customBlocks */\nvar customBlock = require(\"!!@kazupon/vue-i18n-loader!yaml-loader!../../node_modules/vue-loader/lib/selector?type=customBlocks&index=0!./MyStream.vue\")\nif (typeof customBlock === \"function\") {customBlock(Component)}\n\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/MyStream.vue\n// module id = 353\n// module chunks = 1","function injectStyle (ssrContext) {\n require(\"!!../../node_modules/extract-text-webpack-plugin/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"minimize\\\":true,\\\"sourceMap\\\":true}!../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-00f5ebb8\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!sass-loader?{\\\"sourceMap\\\":true}!../../node_modules/vue-loader/lib/selector?type=styles&index=0!./Participants.vue\")\n}\nvar Component = require(\"!../../node_modules/vue-loader/lib/component-normalizer\")(\n /* script */\n require(\"!!ts-loader!../../node_modules/vue-loader/lib/selector?type=script&index=0!./Participants.vue\"),\n /* template */\n require(\"!!../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-00f5ebb8\\\"}!../../node_modules/vue-loader/lib/selector?type=template&index=0!./Participants.vue\"),\n /* styles */\n injectStyle,\n /* scopeId */\n \"data-v-00f5ebb8\",\n /* moduleIdentifier (server only) */\n null\n)\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/Participants.vue\n// module id = 354\n// module chunks = 1","function injectStyle (ssrContext) {\n require(\"!!../../node_modules/extract-text-webpack-plugin/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"minimize\\\":true,\\\"sourceMap\\\":true}!../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-51967d42\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!../../node_modules/vue-loader/lib/selector?type=styles&index=0!./ScreenMenuSelect.vue\")\n}\nvar Component = require(\"!../../node_modules/vue-loader/lib/component-normalizer\")(\n /* script */\n require(\"!!ts-loader!../../node_modules/vue-loader/lib/selector?type=script&index=0!./ScreenMenuSelect.vue\"),\n /* template */\n require(\"!!../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-51967d42\\\"}!../../node_modules/vue-loader/lib/selector?type=template&index=0!./ScreenMenuSelect.vue\"),\n /* styles */\n injectStyle,\n /* scopeId */\n \"data-v-51967d42\",\n /* moduleIdentifier (server only) */\n null\n)\n\n/* customBlocks */\nvar customBlock = require(\"!!@kazupon/vue-i18n-loader!yaml-loader!../../node_modules/vue-loader/lib/selector?type=customBlocks&index=0!./ScreenMenuSelect.vue\")\nif (typeof customBlock === \"function\") {customBlock(Component)}\n\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/ScreenMenuSelect.vue\n// module id = 355\n// module chunks = 1","function injectStyle (ssrContext) {\n require(\"!!../../node_modules/extract-text-webpack-plugin/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"minimize\\\":true,\\\"sourceMap\\\":true}!../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-718baeb1\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!../../node_modules/vue-loader/lib/selector?type=styles&index=0!./Spinner.vue\")\n}\nvar Component = require(\"!../../node_modules/vue-loader/lib/component-normalizer\")(\n /* script */\n require(\"!!ts-loader!../../node_modules/vue-loader/lib/selector?type=script&index=0!./Spinner.vue\"),\n /* template */\n require(\"!!../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-718baeb1\\\"}!../../node_modules/vue-loader/lib/selector?type=template&index=0!./Spinner.vue\"),\n /* styles */\n injectStyle,\n /* scopeId */\n \"data-v-718baeb1\",\n /* moduleIdentifier (server only) */\n null\n)\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/Spinner.vue\n// module id = 356\n// module chunks = 1","function injectStyle (ssrContext) {\n require(\"!!../../../node_modules/extract-text-webpack-plugin/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"minimize\\\":true,\\\"sourceMap\\\":true}!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-1cff7828\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!sass-loader?{\\\"sourceMap\\\":true}!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./Message.vue\")\n}\nvar Component = require(\"!../../../node_modules/vue-loader/lib/component-normalizer\")(\n /* script */\n require(\"!!ts-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./Message.vue\"),\n /* template */\n require(\"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-1cff7828\\\"}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./Message.vue\"),\n /* styles */\n injectStyle,\n /* scopeId */\n null,\n /* moduleIdentifier (server only) */\n null\n)\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/chat/Message.vue\n// module id = 357\n// module chunks = 1","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"streams-container\",\n class: {\n 'expanded-view': _vm.isAnyStreamExpanded\n }\n }, _vm._l((_vm.peers), function(peer) {\n return _c('stream', {\n key: peer.identifier,\n class: _vm.videoDisplayClass(peer.identifier),\n attrs: {\n \"source\": peer.stream,\n \"screen-source\": peer.screenStream,\n \"is-local-stream\": false,\n \"label\": peer.name,\n \"id\": peer.identifier,\n \"peer\": peer\n },\n nativeOn: {\n \"click\": function($event) {\n _vm.expandStream(peer.identifier)\n }\n }\n })\n }))\n},staticRenderFns: []}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-00f5ebb8\"}!./~/vue-loader/lib/selector.js?type=template&index=0!./src/components/Participants.vue\n// module id = 358\n// module chunks = 1","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"select-wrapper\"\n }, [_c('span', [_vm._v(\"Microphone\")]), _vm._v(\" \"), _vm._l((_vm.audioDevices), function(device) {\n return _c('label', [_c('input', {\n directives: [{\n name: \"model\",\n rawName: \"v-model\",\n value: (_vm.selectedDevice),\n expression: \"selectedDevice\"\n }],\n attrs: {\n \"type\": \"radio\"\n },\n domProps: {\n \"value\": device.deviceId,\n \"checked\": _vm._q(_vm.selectedDevice, device.deviceId)\n },\n on: {\n \"change\": _vm.onChange,\n \"__c\": function($event) {\n _vm.selectedDevice = device.deviceId\n }\n }\n }), _vm._v(\"\\n \" + _vm._s(device.label) + \"\\n \")])\n })], 2)\n},staticRenderFns: []}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-0ba4e300\"}!./~/vue-loader/lib/selector.js?type=template&index=0!./src/components/AudioDeviceSelect.vue\n// module id = 359\n// module chunks = 1","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n class: (\"chat-message-single \" + (_vm.isLocal ? 'local-message' : ''))\n }, [_c('div', {\n staticClass: \"chat-message-header\"\n }, [_c('span', {\n staticClass: \"chat-message-username\"\n }, [_vm._v(_vm._s(_vm.username))]), _vm._v(\" \"), _c('span', {\n staticClass: \"chat-message-time\"\n }, [_vm._v(_vm._s(_vm.time))])]), _vm._v(\" \"), _c('div', {\n staticClass: \"bubble-container\"\n }, [(_vm.canBeDeleted) ? _c('div', {\n staticClass: \"chat-bin\"\n }, [_c('div', {\n on: {\n \"click\": _vm.deleteMessage\n }\n }, [_c('span', {\n staticClass: \"delete-chat-message\"\n })])]) : _vm._e(), _vm._v(\" \"), _c('div', {\n class: _vm.chatBubbleCssClass,\n style: ({\n backgroundColor: _vm.messageBubbleColor\n })\n }, [_c('span', {\n domProps: {\n \"innerHTML\": _vm._s(_vm.linkedContent)\n }\n })])])])\n},staticRenderFns: []}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-1cff7828\"}!./~/vue-loader/lib/selector.js?type=template&index=0!./src/components/chat/Message.vue\n// module id = 360\n// module chunks = 1","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"select-wrapper\"\n }, [_c('span', [_vm._v(\"Camera\")]), _vm._v(\" \"), _vm._l((_vm.videoDevices), function(device) {\n return _c('label', [_c('input', {\n directives: [{\n name: \"model\",\n rawName: \"v-model\",\n value: (_vm.selectedDevice),\n expression: \"selectedDevice\"\n }],\n attrs: {\n \"disabled\": _vm.sharingScreenOnly,\n \"name\": \"video-device\",\n \"type\": \"radio\"\n },\n domProps: {\n \"value\": device.deviceId,\n \"checked\": _vm._q(_vm.selectedDevice, device.deviceId)\n },\n on: {\n \"change\": _vm.onChange,\n \"__c\": function($event) {\n _vm.selectedDevice = device.deviceId\n }\n }\n }), _vm._v(\"\\n \" + _vm._s(device.label) + \"\\n \")])\n })], 2)\n},staticRenderFns: []}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-265371a5\"}!./~/vue-loader/lib/selector.js?type=template&index=0!./src/components/VideoDeviceSelect.vue\n// module id = 361\n// module chunks = 1","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"local\"\n }, [_c('div', {\n staticClass: \"dropdown\",\n attrs: {\n \"title\": _vm.$t('button_settings_title')\n }\n }, [_c('i', {\n staticClass: \"icon-settings-menu icons\",\n attrs: {\n \"data-settings-dropdown\": \"\"\n },\n on: {\n \"click\": _vm.toggleDropdown\n }\n }), _vm._v(\" \"), _c('div', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (_vm.dropdownVisible),\n expression: \"dropdownVisible\"\n }],\n staticClass: \"dropdown-content\"\n }, [_c('audio-device-select'), _vm._v(\" \"), _c('video-device-select'), _vm._v(\" \"), _c('options-menu-select')], 1)]), _vm._v(\" \"), _c('div', {\n staticClass: \"screenDropdown\",\n attrs: {\n \"title\": _vm.$t('button_screen_share_title')\n }\n }, [_c('i', {\n class: (\"\" + ((_vm.sharingScreenAndVideo || _vm.sharingScreenOnly) ? 'icon-active-desktop-menu icons' : 'icon-desktop-menu icons')),\n attrs: {\n \"data-screen-dropdown\": \"\"\n },\n on: {\n \"click\": _vm.toggleScreenDropdown\n }\n }), _vm._v(\" \"), _c('div', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (_vm.supportScreensharing && _vm.isConnected && _vm.screenDropdownVisible),\n expression: \"supportScreensharing && isConnected && screenDropdownVisible\"\n }],\n staticClass: \"dropdown-content\"\n }, [_c('screen-menu-select')], 1)]), _vm._v(\" \"), _c('stream', {\n attrs: {\n \"source\": _vm.sourceStream,\n \"is-local-stream\": true,\n \"id\": _vm.localPeerId\n }\n })], 1)\n},staticRenderFns: []}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-2cfd8303\"}!./~/vue-loader/lib/selector.js?type=template&index=0!./src/components/Local.vue\n// module id = 362\n// module chunks = 1","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"join-prompt\"\n }, [_c('my-stream'), _vm._v(\" \"), _c('form', {\n on: {\n \"submit\": function($event) {\n $event.preventDefault();\n _vm.onSubmit($event)\n }\n }\n }, [_vm._v(\"\\n \" + _vm._s(_vm.$t(\"content\")) + \":\\n \"), _c('input', {\n directives: [{\n name: \"model\",\n rawName: \"v-model\",\n value: (_vm.name),\n expression: \"name\"\n }],\n attrs: {\n \"type\": \"text\",\n \"maxlength\": \"30\"\n },\n domProps: {\n \"value\": (_vm.name)\n },\n on: {\n \"input\": [function($event) {\n if ($event.target.composing) { return; }\n _vm.name = $event.target.value\n }, _vm.onInput]\n }\n }), _vm._v(\" \"), _c('button', {\n attrs: {\n \"disabled\": _vm.isButtonDisabled\n }\n }, [_vm._v(_vm._s(_vm.$t(\"button_join\")))])])], 1)\n},staticRenderFns: []}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-382ff846\"}!./~/vue-loader/lib/selector.js?type=template&index=0!./src/components/JoinPrompt.vue\n// module id = 363\n// module chunks = 1","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"stream\",\n class: _vm.streamClass\n }, [_c('div', {\n staticClass: \"controls-bg\"\n }), _vm._v(\" \"), _c('div', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (_vm.localInitialMode !== true),\n expression: \"localInitialMode !== true\"\n }],\n staticClass: \"label\"\n }, [_vm._v(_vm._s(_vm.userName))]), _vm._v(\" \"), _c('div', {\n staticClass: \"controls\"\n }, [_c('span', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (!_vm.isLocalStream && _vm.showBitrate),\n expression: \"!isLocalStream && showBitrate\"\n }],\n staticStyle: {\n \"text-align\": \"left\",\n \"color\": \"aqua\"\n }\n }, [_vm._v(\"\\n \" + _vm._s(_vm.bitrate) + \"\\n \")]), _vm._v(\" \"), _c('button', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (_vm.showChatIcon),\n expression: \"showChatIcon\"\n }],\n attrs: {\n \"title\": _vm.$t('button_show_chat_title')\n },\n on: {\n \"click\": _vm.toggleChatPanelOpened\n }\n }, [_c('i', {\n staticClass: \"icon-chat\"\n }, [_c('i', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (_vm.showNewMessageIndicator),\n expression: \"showNewMessageIndicator\"\n }],\n staticClass: \"icon-chat-new\"\n })])]), _vm._v(\" \"), _c('button', {\n attrs: {\n \"title\": _vm.$t('button_mute_video_title')\n },\n on: {\n \"click\": function($event) {\n $event.stopPropagation();\n _vm.toggleVideo($event)\n }\n }\n }, [_c('i', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (_vm.isLocalStream && (_vm.videoEnabled && !_vm.sharingScreenOnly)),\n expression: \"isLocalStream && (videoEnabled && !sharingScreenOnly)\"\n }],\n staticClass: \"icon-cam-n-menu\"\n }), _vm._v(\" \"), _c('i', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (_vm.isLocalStream && (!_vm.videoEnabled || _vm.sharingScreenOnly)),\n expression: \"isLocalStream && (!videoEnabled || sharingScreenOnly)\"\n }],\n staticClass: \"icon-cam-menu\"\n }), _vm._v(\" \"), _c('i', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (!_vm.isLocalStream && _vm.videoEnabled),\n expression: \"!isLocalStream && videoEnabled\"\n }],\n staticClass: \"icon-cam-n-menu\"\n }), _vm._v(\" \"), _c('i', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (!_vm.isLocalStream && !_vm.videoEnabled),\n expression: \"!isLocalStream && !videoEnabled\"\n }],\n staticClass: \"icon-cam-menu\"\n })]), _vm._v(\" \"), _c('button', {\n attrs: {\n \"title\": _vm.$t('button_mute_audio_title')\n },\n on: {\n \"click\": function($event) {\n $event.stopPropagation();\n _vm.toggleAudio($event)\n }\n }\n }, [_c('i', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (!_vm.isLocalStream && _vm.audioEnabled),\n expression: \"!isLocalStream && audioEnabled\"\n }],\n staticClass: \"icon-audio-n-menu\"\n }), _vm._v(\" \"), _c('i', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (!_vm.isLocalStream && !_vm.audioEnabled),\n expression: \"!isLocalStream && !audioEnabled\"\n }],\n staticClass: \"icon-audio-menu\"\n }), _vm._v(\" \"), _c('i', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (_vm.isLocalStream && _vm.audioEnabled),\n expression: \"isLocalStream && audioEnabled\"\n }],\n staticClass: \"icon-micro-n-menu\"\n }), _vm._v(\" \"), _c('i', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (_vm.isLocalStream && !_vm.audioEnabled),\n expression: \"isLocalStream && !audioEnabled\"\n }],\n staticClass: \"icon-micro-menu\"\n })]), _vm._v(\" \"), _c('button', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (_vm.isRemoteAudioMuted),\n expression: \"isRemoteAudioMuted\"\n }],\n staticClass: \"remote-icon\"\n }, [_c('i', {\n staticClass: \"icon-remote-micro-menu\"\n })])]), _vm._v(\" \"), _c('div', {\n staticClass: \"container\",\n attrs: {\n \"container\": \"\"\n }\n }, [_vm._m(0), _vm._v(\" \"), _c('spinner', {\n attrs: {\n \"isVisible\": !_vm.isVideoReady || _vm.isSuspended\n }\n }), _vm._v(\" \"), _c('span', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (_vm.isSuspended),\n expression: \"isSuspended\"\n }],\n staticClass: \"connection-problem\"\n }, [_vm._v(\"Connection problems...\")]), _vm._v(\" \"), _c('div', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (_vm.isTallyActive),\n expression: \"isTallyActive\"\n }],\n staticClass: \"tally\"\n }), _vm._v(\" \"), _c('div', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (!_vm.videoEnabled),\n expression: \"!videoEnabled\"\n }],\n staticClass: \"video-muted\"\n }, [_c('i', {\n staticClass: \"tsc-cam-menu\"\n })]), _vm._v(\" \"), _c('div', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (!_vm.audioEnabled && _vm.isLocalStream),\n expression: \"!audioEnabled && isLocalStream\"\n }],\n staticClass: \"audio-muted\"\n }, [_c('i', {\n staticClass: \"tsc-micro-menu\"\n })]), _vm._v(\" \"), _c('video', {\n class: [_vm.videoFlipped ? 'main-video-mirror' : 'main-video', {\n 'share-mode-video': _vm.isScreenShare\n }],\n attrs: {\n \"autoplay\": \"\",\n \"data-original\": \"\"\n }\n }), _vm._v(\" \"), _c('video', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (_vm.isScreenShare),\n expression: \"isScreenShare\"\n }],\n class: {\n 'share-mode-screen': _vm.isScreenShare\n },\n attrs: {\n \"autoplay\": \"\",\n \"data-screen\": \"\"\n }\n })], 1)])\n},staticRenderFns: [function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"zoom\"\n }, [_c('div', {\n staticClass: \"move-center\"\n }, [_c('div', {\n staticClass: \"icons\"\n }, [_c('i', {\n staticClass: \"icon-zoom\"\n }), _vm._v(\" \"), _c('i', {\n staticClass: \"icon-grid\"\n })])])])\n}]}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-3f3118d0\"}!./~/vue-loader/lib/selector.js?type=template&index=0!./src/components/Stream.vue\n// module id = 364\n// module chunks = 1","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"select-wrapper\"\n }, [_c('label', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (_vm.supportSimultaneousScreen),\n expression: \"supportSimultaneousScreen\"\n }]\n }, [_c('input', {\n directives: [{\n name: \"model\",\n rawName: \"v-model\",\n value: (_vm.selectedOption),\n expression: \"selectedOption\"\n }],\n attrs: {\n \"type\": \"radio\",\n \"value\": \"screen-camera\"\n },\n domProps: {\n \"checked\": _vm._q(_vm.selectedOption, \"screen-camera\")\n },\n on: {\n \"change\": function($event) {\n $event.preventDefault();\n _vm.onChange($event)\n },\n \"__c\": function($event) {\n _vm.selectedOption = \"screen-camera\"\n }\n }\n }), _vm._v(\"\\n \" + _vm._s(_vm.$t(\"screen-share-and-camera\")) + \"\\n \")]), _vm._v(\" \"), _c('label', [_c('input', {\n directives: [{\n name: \"model\",\n rawName: \"v-model\",\n value: (_vm.selectedOption),\n expression: \"selectedOption\"\n }],\n attrs: {\n \"type\": \"radio\",\n \"value\": \"screen-only\"\n },\n domProps: {\n \"checked\": _vm._q(_vm.selectedOption, \"screen-only\")\n },\n on: {\n \"change\": function($event) {\n $event.preventDefault();\n _vm.onChange($event)\n },\n \"__c\": function($event) {\n _vm.selectedOption = \"screen-only\"\n }\n }\n }), _vm._v(\"\\n \" + _vm._s(_vm.$t(\"screen-share-only\")) + \"\\n \")]), _vm._v(\" \"), _c('label', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (_vm.sharingScreenOnly || _vm.sharingScreenAndVideo),\n expression: \"sharingScreenOnly || sharingScreenAndVideo\"\n }]\n }, [_c('input', {\n directives: [{\n name: \"model\",\n rawName: \"v-model\",\n value: (_vm.selectedOption),\n expression: \"selectedOption\"\n }],\n attrs: {\n \"type\": \"radio\",\n \"value\": \"disabled\"\n },\n domProps: {\n \"checked\": _vm._q(_vm.selectedOption, \"disabled\")\n },\n on: {\n \"change\": function($event) {\n $event.preventDefault();\n _vm.onChange($event)\n },\n \"__c\": function($event) {\n _vm.selectedOption = \"disabled\"\n }\n }\n }), _vm._v(\"\\n \" + _vm._s(_vm.$t(\"stop-screen-share\")) + \"\\n \")])])\n},staticRenderFns: []}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-51967d42\"}!./~/vue-loader/lib/selector.js?type=template&index=0!./src/components/ScreenMenuSelect.vue\n// module id = 365\n// module chunks = 1","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n attrs: {\n \"id\": \"app\"\n }\n }, [_c('div', {\n attrs: {\n \"id\": \"menu\"\n }\n }, [_vm._m(0), _vm._v(\" \"), (!_vm.isErrorNoRTC && !_vm.isIOS && !_vm.isPure) ? _c('local') : _vm._e()], 1), _vm._v(\" \"), _c('div', {\n staticClass: \"content-container\"\n }, [_c('div', {\n staticClass: \"remote-container\"\n }, [_c('div', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (_vm.minorError),\n expression: \"minorError\"\n }],\n staticClass: \"error-notification\"\n }, [(_vm.minorError === 'WEBSOCKET') ? _c('p', [_vm._v(\"\\n \" + _vm._s(_vm.$t(\"error.websocket\")) + \"\\n \")]) : (_vm.minorError === 'CONNECTION') ? _c('p', [_vm._v(\"\\n \" + _vm._s(_vm.$t(\"error.connection\")) + \"\\n \")]) : _vm._e()]), _vm._v(\" \"), _c('div', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (_vm.audioDeviceError.errorId),\n expression: \"audioDeviceError.errorId\"\n }],\n staticClass: \"error-notification\"\n }, [(_vm.audioDeviceError.errorId === 'NOT_ALLOWED') ? _c('p', [_vm._v(\"\\n Please allow Rendezvous to access your microphone.\\n \")]) : (_vm.audioDeviceError.errorId === 'ABORT_ERROR_FF') ? _c('p', [_c('strong', [_vm._v(_vm._s(_vm.audioDeviceError.deviceName))]), _vm._v(\" is not available. Please choose another microphone and refresh the page.\\n \")]) : (_vm.audioDeviceError.errorId === 'NO_DEVICES') ? _c('p', [_vm._v(\"\\n No audio device found. Please connect a microphone.\\n \")]) : (_vm.audioDeviceError.errorId === 'NOT_READABLE_DEVICE') ? _c('p', [_c('strong', [_vm._v(_vm._s(_vm.audioDeviceError.deviceName))]), _vm._v(\" is not available. Please choose another microphone.\\n \")]) : _vm._e()]), _vm._v(\" \"), _c('div', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (_vm.videoDeviceError.errorId),\n expression: \"videoDeviceError.errorId\"\n }],\n staticClass: \"info-notification\"\n }, [(_vm.videoDeviceError.errorId === 'NOT_ALLOWED') ? _c('p', [_vm._v(\"\\n Please allow Rendezvous to access your camera.\\n \")]) : (_vm.videoDeviceError.errorId === 'ABORT_ERROR_FF') ? _c('p', [_c('strong', [_vm._v(_vm._s(_vm.videoDeviceError.deviceName))]), _vm._v(\" is not available. Please choose another camera and refresh the page.\\n \")]) : (_vm.videoDeviceError.errorId === 'NOT_READABLE_DEVICE') ? _c('p', [_c('strong', [_vm._v(_vm._s(_vm.videoDeviceError.deviceName))]), _vm._v(\" is not available. Please choose another camera.\\n \")]) : _vm._e()]), _vm._v(\" \"), _c('div', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (_vm.screenShareError),\n expression: \"screenShareError\"\n }],\n staticClass: \"info-notification\"\n }, [(_vm.screenShareError === 'SHARING_NOT_ALLOWED') ? _c('p', [_vm._v(\"\\n Only one person can share both screen and camera.\\n \"), _c('button', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (!_vm.sharingScreenOnly),\n expression: \"!sharingScreenOnly\"\n }],\n on: {\n \"click\": function($event) {\n $event.stopPropagation();\n _vm.enableScreenshareOnly($event)\n }\n }\n }, [_vm._v(\"Share screen only & disable camera\")]), _vm._v(\" \"), _c('button', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (_vm.sharingScreenOnly),\n expression: \"sharingScreenOnly\"\n }],\n on: {\n \"click\": function($event) {\n $event.stopPropagation();\n _vm.disableScreenshareOnly($event)\n }\n }\n }, [_vm._v(\"Share camera instead of screen\")]), _vm._v(\" \"), _c('button', {\n on: {\n \"click\": function($event) {\n $event.stopPropagation();\n _vm.onShareScreenErrorDismiss($event)\n }\n }\n }, [_vm._v(\"Cancel\")])]) : _c('p', [_vm._v(\"\\n Failed to share the screen: \"), _c('strong', [_vm._v(_vm._s(_vm.screenShareError))])])]), _vm._v(\" \"), _c('div', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (_vm.sharingScreenAndVideo && !_vm.screenTallyActive),\n expression: \"sharingScreenAndVideo && !screenTallyActive\"\n }],\n staticClass: \"info-notification\"\n }, [_c('p', [_vm._v(\"\\n You are screen sharing.\\n \")])]), _vm._v(\" \"), _c('div', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (_vm.sharingScreenAndVideo && _vm.screenTallyActive),\n expression: \"sharingScreenAndVideo && screenTallyActive\"\n }],\n staticClass: \"info-notification\"\n }, [_c('p', [_vm._v(\"\\n You are screen sharing. Your screen is live.\\n \")])]), _vm._v(\" \"), (_vm.isPure) ? _c('info-box', [_c('h1', {\n slot: \"header\"\n }, [_vm._v(_vm._s(_vm.$t(\"message.welcome.header\")))]), _vm._v(\" \"), _c('p', [_vm._v(\"\\n \" + _vm._s(_vm.$t(\"message.welcome.content\")) + \"\\n \")]), _vm._v(\" \"), _c('join-prompt')], 1) : _vm._e(), _vm._v(\" \"), _c('info-box', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (_vm.isIOS),\n expression: \"isIOS\"\n }]\n }, [_c('p', [_vm._v(\"\\n To join to Wirecast Rendezvous session from an iOS device, please install Wirecast Go from the\\n App Store.\\n \")]), _vm._v(\" \"), _c('div', {\n staticClass: \"text-centered\"\n }, [_c('a', {\n staticStyle: {\n \"display\": \"inline-block\",\n \"overflow\": \"hidden\",\n \"background\": \"url(//linkmaker.itunes.apple.com/assets/shared/badges/en-us/appstore-lrg.svg) no-repeat\",\n \"width\": \"135px\",\n \"height\": \"40px\",\n \"background-size\": \"contain\"\n },\n attrs: {\n \"href\": \"https://itunes.apple.com/us/app/wirecast-go/id987286934?mt=8\"\n }\n })])]), _vm._v(\" \"), _c('info-box', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (_vm.isError && _vm.isSessionUnknown),\n expression: \"isError && isSessionUnknown\"\n }]\n }, [_c('h1', {\n slot: \"header\"\n }, [_vm._v(_vm._s(_vm.$t(\"error.session_unknown.header\")))]), _vm._v(\" \"), _c('p', [_vm._v(\"\\n \" + _vm._s(_vm.$t(\"error.session_unknown.content\")) + \"\\n \")])]), _vm._v(\" \"), _c('info-box', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (_vm.isError && _vm.isSessionFull),\n expression: \"isError && isSessionFull\"\n }]\n }, [_c('h1', {\n slot: \"header\"\n }, [_vm._v(_vm._s(_vm.$t(\"error.session_full.header\")))]), _vm._v(\" \"), _c('p', [_vm._v(\"\\n \" + _vm._s(_vm.$t(\"error.session_full.content\")) + \"\\n \")])]), _vm._v(\" \"), _c('info-box', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (_vm.isError && _vm.isSessionAlreadyConnected),\n expression: \"isError && isSessionAlreadyConnected\"\n }]\n }, [_c('h1', {\n slot: \"header\"\n }, [_vm._v(_vm._s(_vm.$t(\"error.session_already_connected.header\")))]), _vm._v(\" \"), _c('p', [_vm._v(\"\\n \" + _vm._s(_vm.$t(\"error.session_already_connected.content\")) + \"\\n \")])]), _vm._v(\" \"), _c('info-box', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (_vm.isJoining),\n expression: \"isJoining\"\n }],\n staticClass: \"joining centered\"\n }, [_c('p', {\n staticClass: \"text-centered\"\n }, [_vm._v(\"\\n \" + _vm._s(_vm.$t(\"message.waiting.content\")) + \"\\n \")]), _vm._v(\" \"), _c('spinner', {\n staticClass: \"static\",\n attrs: {\n \"is-visible\": \"true\"\n }\n })], 1), _vm._v(\" \"), _c('info-box', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (_vm.isErrorNoRTC),\n expression: \"isErrorNoRTC\"\n }]\n }, [_c('p', {\n staticClass: \"text-centered\"\n }, [_vm._v(\"\\n \" + _vm._s(_vm.$t(\"error.no_rtc.content\")) + \"\\n \")])]), _vm._v(\" \"), _c('info-box', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (_vm.isDisconnected),\n expression: \"isDisconnected\"\n }],\n staticClass: \"centered\"\n }, [_c('p', {\n staticClass: \"text-centered\"\n }, [_vm._v(\"\\n \" + _vm._s(_vm.$t(\"message.session_ended.content\")) + \"\\n \")])]), _vm._v(\" \"), _c('participants', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (_vm.isConnected),\n expression: \"isConnected\"\n }]\n })], 1), _vm._v(\" \"), (_vm.chatEnabled) ? _c('chat-panel') : _vm._e()], 1)])\n},staticRenderFns: [function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('header', {\n attrs: {\n \"id\": \"app-bar\"\n }\n }, [_c('img', {\n attrs: {\n \"src\": require(\"./assets/wirecast-rendezvous-logo.png\")\n }\n })])\n}]}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-59c95520\"}!./~/vue-loader/lib/selector.js?type=template&index=0!./src/App.vue\n// module id = 366\n// module chunks = 1","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"info-box-container\"\n }, [_c('div', {\n staticClass: \"info-box\"\n }, [_c('header', [_vm._t(\"header\")], 2), _vm._v(\" \"), _vm._t(\"default\"), _vm._v(\" \"), _c('div', {\n staticClass: \"clearfix\"\n })], 2)])\n},staticRenderFns: []}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-5cf084d5\"}!./~/vue-loader/lib/selector.js?type=template&index=0!./src/components/InfoBox.vue\n// module id = 367\n// module chunks = 1","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"my-stream\"\n }, [_c('div', {\n staticClass: \"dropdown\",\n attrs: {\n \"title\": _vm.$t('button_settings_title')\n }\n }, [_c('i', {\n staticClass: \"icon-settings-menu icons\",\n attrs: {\n \"data-settings-dropdown\": \"\"\n },\n on: {\n \"click\": _vm.toggleDropdown\n }\n }), _vm._v(\" \"), _c('div', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (_vm.dropdownVisible),\n expression: \"dropdownVisible\"\n }],\n staticClass: \"dropdown-content\"\n }, [_c('audio-device-select'), _vm._v(\" \"), _c('video-device-select'), _vm._v(\" \"), _c('options-menu-select', {\n attrs: {\n \"initialMode\": true\n }\n })], 1)]), _vm._v(\" \"), _c('stream', {\n attrs: {\n \"source\": _vm.sourceStream,\n \"is-local-stream\": true,\n \"id\": _vm.localPeerId,\n \"local-initial-mode\": true\n }\n })], 1)\n},staticRenderFns: []}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-62225338\"}!./~/vue-loader/lib/selector.js?type=template&index=0!./src/components/MyStream.vue\n// module id = 368\n// module chunks = 1","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('transition', {\n attrs: {\n \"name\": \"fade\"\n }\n }, [_c('div', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (_vm.isVisible),\n expression: \"isVisible\"\n }],\n attrs: {\n \"id\": \"spinner\"\n }\n }, [_c('div', {\n staticClass: \"loading-spinner\"\n })])])\n},staticRenderFns: []}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-718baeb1\"}!./~/vue-loader/lib/selector.js?type=template&index=0!./src/components/Spinner.vue\n// module id = 369\n// module chunks = 1","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"select-wrapper\"\n }, [_c('span', [_vm._v(\"Options\")]), _vm._v(\" \"), _c('label', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (!_vm.sharingScreenOnly),\n expression: \"!sharingScreenOnly\"\n }]\n }, [_c('input', {\n directives: [{\n name: \"model\",\n rawName: \"v-model\",\n value: (_vm.videoFlipped),\n expression: \"videoFlipped\"\n }],\n attrs: {\n \"name\": \"flip-video-horizontally\",\n \"type\": \"checkbox\"\n },\n domProps: {\n \"checked\": Array.isArray(_vm.videoFlipped) ? _vm._i(_vm.videoFlipped, null) > -1 : (_vm.videoFlipped)\n },\n on: {\n \"__c\": function($event) {\n var $$a = _vm.videoFlipped,\n $$el = $event.target,\n $$c = $$el.checked ? (true) : (false);\n if (Array.isArray($$a)) {\n var $$v = null,\n $$i = _vm._i($$a, $$v);\n if ($$c) {\n $$i < 0 && (_vm.videoFlipped = $$a.concat($$v))\n } else {\n $$i > -1 && (_vm.videoFlipped = $$a.slice(0, $$i).concat($$a.slice($$i + 1)))\n }\n } else {\n _vm.videoFlipped = $$c\n }\n }\n }\n }), _vm._v(\"\\n \" + _vm._s(_vm.$t(\"button_flip_video_horizontally\")) + \"\\n \")]), _vm._v(\" \"), _c('label', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (!_vm.initialMode && _vm.supportMusic),\n expression: \"!initialMode && supportMusic\"\n }]\n }, [_c('input', {\n directives: [{\n name: \"model\",\n rawName: \"v-model\",\n value: (_vm.audioProcessingDisabled),\n expression: \"audioProcessingDisabled\"\n }],\n attrs: {\n \"name\": \"disable-audio-processing\",\n \"type\": \"checkbox\"\n },\n domProps: {\n \"checked\": Array.isArray(_vm.audioProcessingDisabled) ? _vm._i(_vm.audioProcessingDisabled, null) > -1 : (_vm.audioProcessingDisabled)\n },\n on: {\n \"__c\": function($event) {\n var $$a = _vm.audioProcessingDisabled,\n $$el = $event.target,\n $$c = $$el.checked ? (true) : (false);\n if (Array.isArray($$a)) {\n var $$v = null,\n $$i = _vm._i($$a, $$v);\n if ($$c) {\n $$i < 0 && (_vm.audioProcessingDisabled = $$a.concat($$v))\n } else {\n $$i > -1 && (_vm.audioProcessingDisabled = $$a.slice(0, $$i).concat($$a.slice($$i + 1)))\n }\n } else {\n _vm.audioProcessingDisabled = $$c\n }\n }\n }\n }), _vm._v(\"\\n \" + _vm._s(_vm.$t(\"button_enable_music_mode\")) + \"\\n \")])])\n},staticRenderFns: []}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-8e6d55de\"}!./~/vue-loader/lib/selector.js?type=template&index=0!./src/components/OptionsMenuSelect.vue\n// module id = 370\n// module chunks = 1","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (_vm.showChat),\n expression: \"showChat\"\n }],\n staticClass: \"chat-container\"\n }, [_c('div', {\n staticClass: \"chat-header\"\n }, [_c('div', {\n staticClass: \"chat-close\"\n }, [_c('img', {\n attrs: {\n \"src\": require(\"../assets/close.svg\")\n },\n on: {\n \"click\": _vm.closeChatPanel\n }\n })]), _vm._v(\" \"), _vm._m(0)]), _vm._v(\" \"), _c('div', {\n ref: \"chat-content\",\n staticClass: \"chat-content\"\n }, [(_vm.noMessages) ? _c('div', {\n staticClass: \"chat-empty-state\"\n }, [_vm._m(1)]) : _vm._e(), _vm._v(\" \"), (!_vm.noMessages) ? _c('div', {\n staticClass: \"chat-messages\"\n }, _vm._l((_vm.chatMessages), function(message, index) {\n return _c('message', {\n key: index,\n attrs: {\n \"message\": message\n }\n })\n })) : _vm._e()]), _vm._v(\" \"), _c('div', {\n staticClass: \"chat-footer\"\n }, [_c('div', {\n class: (\"footer-message-container \" + (_vm.messageTextareaFocus ? 'footer-message-container-focus' : ''))\n }, [_c('textarea', {\n directives: [{\n name: \"model\",\n rawName: \"v-model\",\n value: (_vm.message),\n expression: \"message\"\n }],\n ref: \"chat-message\",\n staticClass: \"message-textarea\",\n attrs: {\n \"maxlength\": \"10000\",\n \"rows\": \"1\",\n \"placeholder\": \"Send message...\"\n },\n domProps: {\n \"value\": (_vm.message)\n },\n on: {\n \"keyup\": function($event) {\n if (!('button' in $event) && _vm._k($event.keyCode, \"enter\", 13)) { return null; }\n _vm.sendMessage($event)\n },\n \"keydown\": function($event) {\n _vm.autoResize($event)\n },\n \"focus\": function($event) {\n _vm.messageTextareaFocus = true\n },\n \"focusout\": function($event) {\n _vm.messageTextareaFocus = false\n },\n \"input\": function($event) {\n if ($event.target.composing) { return; }\n _vm.message = $event.target.value\n }\n }\n }), _vm._v(\" \"), _c('button', {\n staticClass: \"send-button\",\n on: {\n \"click\": function($event) {\n _vm.sendMessage($event)\n }\n }\n })])])])\n},staticRenderFns: [function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"chat-title\"\n }, [_c('span', [_vm._v(\"Live chat\")])])\n},function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"chat-empty-state-content\"\n }, [_c('img', {\n attrs: {\n \"src\": require(\"../assets/chat.svg\")\n }\n }), _vm._v(\" \"), _c('span', [_vm._v(\"Chat won't be visible in live broadcast.\")]), _vm._v(\" \"), _c('span', [_vm._v(\"Be the first to write something\")])])\n}]}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-97896eb8\"}!./~/vue-loader/lib/selector.js?type=template&index=0!./src/components/ChatPanel.vue\n// module id = 371\n// module chunks = 1"],"sourceRoot":""}