@rqmii_immersive/agent-react-sdk 5.6.5 → 5.6.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/Orb-B1DErA0O.cjs +4517 -0
- package/dist/Orb-B1DErA0O.cjs.map +1 -0
- package/dist/RqmiiAgentChat-C0ymqkkq.cjs +2 -0
- package/dist/RqmiiAgentChat-C0ymqkkq.cjs.map +1 -0
- package/dist/RqmiiCloudAvatarPlayer-CmovoCKk.cjs +2918 -0
- package/dist/RqmiiCloudAvatarPlayer-CmovoCKk.cjs.map +1 -0
- package/dist/RqmiiErrorBoundary-Byif85f5.cjs +2 -0
- package/dist/RqmiiErrorBoundary-Byif85f5.cjs.map +1 -0
- package/dist/embed/chunks/Orb-CBt2svdc.js +40903 -0
- package/dist/embed/chunks/Orb-CBt2svdc.js.map +1 -0
- package/dist/embed/chunks/RqmiiCloudAvatarPlayer-DpvI9bmI.js +3357 -0
- package/dist/embed/chunks/RqmiiCloudAvatarPlayer-DpvI9bmI.js.map +1 -0
- package/dist/embed/chunks/chat-box-avatar-DlUI3fDi.js +10 -0
- package/dist/embed/chunks/chat-box-avatar-DlUI3fDi.js.map +1 -0
- package/dist/embed/chunks/chat-box-text-and-voice-BgdFP0_P.js +112 -0
- package/dist/embed/chunks/chat-box-text-and-voice-BgdFP0_P.js.map +1 -0
- package/dist/embed/chunks/chat-box-voice-D0gPyOVt.js +74 -0
- package/dist/embed/chunks/chat-box-voice-D0gPyOVt.js.map +1 -0
- package/dist/embed/chunks/embed-core-B3d4u3wf.js +12623 -0
- package/dist/embed/chunks/embed-core-B3d4u3wf.js.map +1 -0
- package/dist/embed/chunks/highlighted-body-KPVGNVTW-CJl4AHHd.js +19 -0
- package/dist/embed/chunks/highlighted-body-KPVGNVTW-CJl4AHHd.js.map +1 -0
- package/dist/embed/chunks/mermaid-HWGCJPDP-DD9SRoUR.js +22773 -0
- package/dist/embed/chunks/mermaid-HWGCJPDP-DD9SRoUR.js.map +1 -0
- package/dist/embed/chunks/use-rqmii-vad-COqAsQsT.js +10225 -0
- package/dist/embed/chunks/use-rqmii-vad-COqAsQsT.js.map +1 -0
- package/dist/embed/core.js +6 -0
- package/dist/embed/core.js.map +1 -0
- package/dist/embed.js +2 -0
- package/dist/embed.js.map +1 -0
- package/dist/highlighted-body-KPVGNVTW-CSL27xRm.cjs +2 -0
- package/dist/highlighted-body-KPVGNVTW-CSL27xRm.cjs.map +1 -0
- package/dist/index.cjs +50 -0
- package/dist/index.cjs.map +1 -0
- package/dist/lazy.cjs +2 -0
- package/dist/lazy.cjs.map +1 -0
- package/dist/mermaid-HWGCJPDP-CssnmrD3.cjs +2 -0
- package/dist/mermaid-HWGCJPDP-CssnmrD3.cjs.map +1 -0
- package/dist/schedule-load-DbAlv7OH.cjs +2 -0
- package/dist/schedule-load-DbAlv7OH.cjs.map +1 -0
- package/dist/ui-1UzY5QCI.cjs +251 -0
- package/dist/ui-1UzY5QCI.cjs.map +1 -0
- package/dist/ui.cjs +2 -0
- package/dist/ui.cjs.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RqmiiCloudAvatarPlayer-DpvI9bmI.js","sources":["../../../node_modules/sdp/sdp.js","../../../node_modules/@epicgames-ps/lib-pixelstreamingfrontend-ue5.4/dist/lib-pixelstreamingfrontend.esm.js","../../../src/components/pxs/EpicPixelStreamingPlayer.tsx","../../../src/components/RqmiiCloudAvatarPlayer.tsx"],"sourcesContent":["/* eslint-env node */\n'use strict';\n\n// SDP helpers.\nconst SDPUtils = {};\n\n// Generate an alphanumeric identifier for cname or mids.\n// TODO: use UUIDs instead? https://gist.github.com/jed/982883\nSDPUtils.generateIdentifier = function() {\n return Math.random().toString(36).substring(2, 12);\n};\n\n// The RTCP CNAME used by all peerconnections from the same JS.\nSDPUtils.localCName = SDPUtils.generateIdentifier();\n\n// Splits SDP into lines, dealing with both CRLF and LF.\nSDPUtils.splitLines = function(blob) {\n return blob.trim().split('\\n').map(line => line.trim());\n};\n// Splits SDP into sessionpart and mediasections. Ensures CRLF.\nSDPUtils.splitSections = function(blob) {\n const parts = blob.split('\\nm=');\n return parts.map((part, index) => (index > 0 ?\n 'm=' + part : part).trim() + '\\r\\n');\n};\n\n// Returns the session description.\nSDPUtils.getDescription = function(blob) {\n const sections = SDPUtils.splitSections(blob);\n return sections && sections[0];\n};\n\n// Returns the individual media sections.\nSDPUtils.getMediaSections = function(blob) {\n const sections = SDPUtils.splitSections(blob);\n sections.shift();\n return sections;\n};\n\n// Returns lines that start with a certain prefix.\nSDPUtils.matchPrefix = function(blob, prefix) {\n return SDPUtils.splitLines(blob).filter(line => line.indexOf(prefix) === 0);\n};\n\n// Parses an ICE candidate line. Sample input:\n// candidate:702786350 2 udp 41819902 8.8.8.8 60769 typ relay raddr 8.8.8.8\n// rport 55996\"\n// Input can be prefixed with a=.\nSDPUtils.parseCandidate = function(line) {\n let parts;\n // Parse both variants.\n if (line.indexOf('a=candidate:') === 0) {\n parts = line.substring(12).split(' ');\n } else {\n parts = line.substring(10).split(' ');\n }\n\n const candidate = {\n foundation: parts[0],\n component: {1: 'rtp', 2: 'rtcp'}[parts[1]] || parts[1],\n protocol: parts[2].toLowerCase(),\n priority: parseInt(parts[3], 10),\n ip: parts[4],\n address: parts[4], // address is an alias for ip.\n port: parseInt(parts[5], 10),\n // skip parts[6] == 'typ'\n type: parts[7],\n };\n\n for (let i = 8; i < parts.length; i += 2) {\n switch (parts[i]) {\n case 'raddr':\n candidate.relatedAddress = parts[i + 1];\n break;\n case 'rport':\n candidate.relatedPort = parseInt(parts[i + 1], 10);\n break;\n case 'tcptype':\n candidate.tcpType = parts[i + 1];\n break;\n case 'ufrag':\n candidate.ufrag = parts[i + 1]; // for backward compatibility.\n candidate.usernameFragment = parts[i + 1];\n break;\n default: // extension handling, in particular ufrag. Don't overwrite.\n if (candidate[parts[i]] === undefined) {\n candidate[parts[i]] = parts[i + 1];\n }\n break;\n }\n }\n return candidate;\n};\n\n// Translates a candidate object into SDP candidate attribute.\n// This does not include the a= prefix!\nSDPUtils.writeCandidate = function(candidate) {\n const sdp = [];\n sdp.push(candidate.foundation);\n\n const component = candidate.component;\n if (component === 'rtp') {\n sdp.push(1);\n } else if (component === 'rtcp') {\n sdp.push(2);\n } else {\n sdp.push(component);\n }\n sdp.push(candidate.protocol.toUpperCase());\n sdp.push(candidate.priority);\n sdp.push(candidate.address || candidate.ip);\n sdp.push(candidate.port);\n\n const type = candidate.type;\n sdp.push('typ');\n sdp.push(type);\n if (type !== 'host' && candidate.relatedAddress &&\n candidate.relatedPort !== undefined) {\n sdp.push('raddr');\n sdp.push(candidate.relatedAddress);\n sdp.push('rport');\n sdp.push(candidate.relatedPort);\n }\n if (candidate.tcpType && candidate.protocol.toLowerCase() === 'tcp') {\n sdp.push('tcptype');\n sdp.push(candidate.tcpType);\n }\n if (candidate.usernameFragment || candidate.ufrag) {\n sdp.push('ufrag');\n sdp.push(candidate.usernameFragment || candidate.ufrag);\n }\n return 'candidate:' + sdp.join(' ');\n};\n\n// Parses an ice-options line, returns an array of option tags.\n// Sample input:\n// a=ice-options:foo bar\nSDPUtils.parseIceOptions = function(line) {\n return line.substring(14).split(' ');\n};\n\n// Parses a rtpmap line, returns RTCRtpCoddecParameters. Sample input:\n// a=rtpmap:111 opus/48000/2\nSDPUtils.parseRtpMap = function(line) {\n let parts = line.substring(9).split(' ');\n const parsed = {\n payloadType: parseInt(parts.shift(), 10), // was: id\n };\n\n parts = parts[0].split('/');\n\n parsed.name = parts[0];\n parsed.clockRate = parseInt(parts[1], 10); // was: clockrate\n parsed.channels = parts.length === 3 ? parseInt(parts[2], 10) : 1;\n // legacy alias, got renamed back to channels in ORTC.\n parsed.numChannels = parsed.channels;\n return parsed;\n};\n\n// Generates a rtpmap line from RTCRtpCodecCapability or\n// RTCRtpCodecParameters.\nSDPUtils.writeRtpMap = function(codec) {\n let pt = codec.payloadType;\n if (codec.preferredPayloadType !== undefined) {\n pt = codec.preferredPayloadType;\n }\n const channels = codec.channels || codec.numChannels || 1;\n return 'a=rtpmap:' + pt + ' ' + codec.name + '/' + codec.clockRate +\n (channels !== 1 ? '/' + channels : '') + '\\r\\n';\n};\n\n// Parses a extmap line (headerextension from RFC 5285). Sample input:\n// a=extmap:2 urn:ietf:params:rtp-hdrext:toffset\n// a=extmap:2/sendonly urn:ietf:params:rtp-hdrext:toffset\nSDPUtils.parseExtmap = function(line) {\n const parts = line.substring(9).split(' ');\n return {\n id: parseInt(parts[0], 10),\n direction: parts[0].indexOf('/') > 0 ? parts[0].split('/')[1] : 'sendrecv',\n uri: parts[1],\n attributes: parts.slice(2).join(' '),\n };\n};\n\n// Generates an extmap line from RTCRtpHeaderExtensionParameters or\n// RTCRtpHeaderExtension.\nSDPUtils.writeExtmap = function(headerExtension) {\n return 'a=extmap:' + (headerExtension.id || headerExtension.preferredId) +\n (headerExtension.direction && headerExtension.direction !== 'sendrecv'\n ? '/' + headerExtension.direction\n : '') +\n ' ' + headerExtension.uri +\n (headerExtension.attributes ? ' ' + headerExtension.attributes : '') +\n '\\r\\n';\n};\n\n// Parses a fmtp line, returns dictionary. Sample input:\n// a=fmtp:96 vbr=on;cng=on\n// Also deals with vbr=on; cng=on\n// Non-key-value such as telephone-events `0-15` get parsed as\n// {`0-15`:undefined}\nSDPUtils.parseFmtp = function(line) {\n const parsed = {};\n let kv;\n const parts = line.substring(line.indexOf(' ') + 1).split(';');\n for (let j = 0; j < parts.length; j++) {\n kv = parts[j].trim().split('=');\n parsed[kv[0].trim()] = kv[1];\n }\n return parsed;\n};\n\n// Generates a fmtp line from RTCRtpCodecCapability or RTCRtpCodecParameters.\nSDPUtils.writeFmtp = function(codec) {\n let line = '';\n let pt = codec.payloadType;\n if (codec.preferredPayloadType !== undefined) {\n pt = codec.preferredPayloadType;\n }\n if (codec.parameters && Object.keys(codec.parameters).length) {\n const params = [];\n Object.keys(codec.parameters).forEach(param => {\n if (codec.parameters[param] !== undefined) {\n params.push(param + '=' + codec.parameters[param]);\n } else {\n params.push(param);\n }\n });\n line += 'a=fmtp:' + pt + ' ' + params.join(';') + '\\r\\n';\n }\n return line;\n};\n\n// Parses a rtcp-fb line, returns RTCPRtcpFeedback object. Sample input:\n// a=rtcp-fb:98 nack rpsi\nSDPUtils.parseRtcpFb = function(line) {\n const parts = line.substring(line.indexOf(' ') + 1).split(' ');\n return {\n type: parts.shift(),\n parameter: parts.join(' '),\n };\n};\n\n// Generate a=rtcp-fb lines from RTCRtpCodecCapability or RTCRtpCodecParameters.\nSDPUtils.writeRtcpFb = function(codec) {\n let lines = '';\n let pt = codec.payloadType;\n if (codec.preferredPayloadType !== undefined) {\n pt = codec.preferredPayloadType;\n }\n if (codec.rtcpFeedback && codec.rtcpFeedback.length) {\n // FIXME: special handling for trr-int?\n codec.rtcpFeedback.forEach(fb => {\n lines += 'a=rtcp-fb:' + pt + ' ' + fb.type +\n (fb.parameter && fb.parameter.length ? ' ' + fb.parameter : '') +\n '\\r\\n';\n });\n }\n return lines;\n};\n\n// Parses a RFC 5576 ssrc media attribute. Sample input:\n// a=ssrc:3735928559 cname:something\nSDPUtils.parseSsrcMedia = function(line) {\n const sp = line.indexOf(' ');\n const parts = {\n ssrc: parseInt(line.substring(7, sp), 10),\n };\n const colon = line.indexOf(':', sp);\n if (colon > -1) {\n parts.attribute = line.substring(sp + 1, colon);\n parts.value = line.substring(colon + 1);\n } else {\n parts.attribute = line.substring(sp + 1);\n }\n return parts;\n};\n\n// Parse a ssrc-group line (see RFC 5576). Sample input:\n// a=ssrc-group:semantics 12 34\nSDPUtils.parseSsrcGroup = function(line) {\n const parts = line.substring(13).split(' ');\n return {\n semantics: parts.shift(),\n ssrcs: parts.map(ssrc => parseInt(ssrc, 10)),\n };\n};\n\n// Extracts the MID (RFC 5888) from a media section.\n// Returns the MID or undefined if no mid line was found.\nSDPUtils.getMid = function(mediaSection) {\n const mid = SDPUtils.matchPrefix(mediaSection, 'a=mid:')[0];\n if (mid) {\n return mid.substring(6);\n }\n};\n\n// Parses a fingerprint line for DTLS-SRTP.\nSDPUtils.parseFingerprint = function(line) {\n const parts = line.substring(14).split(' ');\n return {\n algorithm: parts[0].toLowerCase(), // algorithm is case-sensitive in Edge.\n value: parts[1].toUpperCase(), // the definition is upper-case in RFC 4572.\n };\n};\n\n// Extracts DTLS parameters from SDP media section or sessionpart.\n// FIXME: for consistency with other functions this should only\n// get the fingerprint line as input. See also getIceParameters.\nSDPUtils.getDtlsParameters = function(mediaSection, sessionpart) {\n const lines = SDPUtils.matchPrefix(mediaSection + sessionpart,\n 'a=fingerprint:');\n // Note: a=setup line is ignored since we use the 'auto' role in Edge.\n return {\n role: 'auto',\n fingerprints: lines.map(SDPUtils.parseFingerprint),\n };\n};\n\n// Serializes DTLS parameters to SDP.\nSDPUtils.writeDtlsParameters = function(params, setupType) {\n let sdp = 'a=setup:' + setupType + '\\r\\n';\n params.fingerprints.forEach(fp => {\n sdp += 'a=fingerprint:' + fp.algorithm + ' ' + fp.value + '\\r\\n';\n });\n return sdp;\n};\n\n// Parses a=crypto lines into\n// https://rawgit.com/aboba/edgertc/master/msortc-rs4.html#dictionary-rtcsrtpsdesparameters-members\nSDPUtils.parseCryptoLine = function(line) {\n const parts = line.substring(9).split(' ');\n return {\n tag: parseInt(parts[0], 10),\n cryptoSuite: parts[1],\n keyParams: parts[2],\n sessionParams: parts.slice(3),\n };\n};\n\nSDPUtils.writeCryptoLine = function(parameters) {\n return 'a=crypto:' + parameters.tag + ' ' +\n parameters.cryptoSuite + ' ' +\n (typeof parameters.keyParams === 'object'\n ? SDPUtils.writeCryptoKeyParams(parameters.keyParams)\n : parameters.keyParams) +\n (parameters.sessionParams ? ' ' + parameters.sessionParams.join(' ') : '') +\n '\\r\\n';\n};\n\n// Parses the crypto key parameters into\n// https://rawgit.com/aboba/edgertc/master/msortc-rs4.html#rtcsrtpkeyparam*\nSDPUtils.parseCryptoKeyParams = function(keyParams) {\n if (keyParams.indexOf('inline:') !== 0) {\n return null;\n }\n const parts = keyParams.substring(7).split('|');\n return {\n keyMethod: 'inline',\n keySalt: parts[0],\n lifeTime: parts[1],\n mkiValue: parts[2] ? parts[2].split(':')[0] : undefined,\n mkiLength: parts[2] ? parts[2].split(':')[1] : undefined,\n };\n};\n\nSDPUtils.writeCryptoKeyParams = function(keyParams) {\n return keyParams.keyMethod + ':'\n + keyParams.keySalt +\n (keyParams.lifeTime ? '|' + keyParams.lifeTime : '') +\n (keyParams.mkiValue && keyParams.mkiLength\n ? '|' + keyParams.mkiValue + ':' + keyParams.mkiLength\n : '');\n};\n\n// Extracts all SDES parameters.\nSDPUtils.getCryptoParameters = function(mediaSection, sessionpart) {\n const lines = SDPUtils.matchPrefix(mediaSection + sessionpart,\n 'a=crypto:');\n return lines.map(SDPUtils.parseCryptoLine);\n};\n\n// Parses ICE information from SDP media section or sessionpart.\n// FIXME: for consistency with other functions this should only\n// get the ice-ufrag and ice-pwd lines as input.\nSDPUtils.getIceParameters = function(mediaSection, sessionpart) {\n const ufrag = SDPUtils.matchPrefix(mediaSection + sessionpart,\n 'a=ice-ufrag:')[0];\n const pwd = SDPUtils.matchPrefix(mediaSection + sessionpart,\n 'a=ice-pwd:')[0];\n if (!(ufrag && pwd)) {\n return null;\n }\n return {\n usernameFragment: ufrag.substring(12),\n password: pwd.substring(10),\n };\n};\n\n// Serializes ICE parameters to SDP.\nSDPUtils.writeIceParameters = function(params) {\n let sdp = 'a=ice-ufrag:' + params.usernameFragment + '\\r\\n' +\n 'a=ice-pwd:' + params.password + '\\r\\n';\n if (params.iceLite) {\n sdp += 'a=ice-lite\\r\\n';\n }\n return sdp;\n};\n\n// Parses the SDP media section and returns RTCRtpParameters.\nSDPUtils.parseRtpParameters = function(mediaSection) {\n const description = {\n codecs: [],\n headerExtensions: [],\n fecMechanisms: [],\n rtcp: [],\n };\n const lines = SDPUtils.splitLines(mediaSection);\n const mline = lines[0].split(' ');\n description.profile = mline[2];\n for (let i = 3; i < mline.length; i++) { // find all codecs from mline[3..]\n const pt = mline[i];\n const rtpmapline = SDPUtils.matchPrefix(\n mediaSection, 'a=rtpmap:' + pt + ' ')[0];\n if (rtpmapline) {\n const codec = SDPUtils.parseRtpMap(rtpmapline);\n const fmtps = SDPUtils.matchPrefix(\n mediaSection, 'a=fmtp:' + pt + ' ');\n // Only the first a=fmtp:<pt> is considered.\n codec.parameters = fmtps.length ? SDPUtils.parseFmtp(fmtps[0]) : {};\n codec.rtcpFeedback = SDPUtils.matchPrefix(\n mediaSection, 'a=rtcp-fb:' + pt + ' ')\n .map(SDPUtils.parseRtcpFb);\n description.codecs.push(codec);\n // parse FEC mechanisms from rtpmap lines.\n switch (codec.name.toUpperCase()) {\n case 'RED':\n case 'ULPFEC':\n description.fecMechanisms.push(codec.name.toUpperCase());\n break;\n default: // only RED and ULPFEC are recognized as FEC mechanisms.\n break;\n }\n }\n }\n SDPUtils.matchPrefix(mediaSection, 'a=extmap:').forEach(line => {\n description.headerExtensions.push(SDPUtils.parseExtmap(line));\n });\n const wildcardRtcpFb = SDPUtils.matchPrefix(mediaSection, 'a=rtcp-fb:* ')\n .map(SDPUtils.parseRtcpFb);\n description.codecs.forEach(codec => {\n wildcardRtcpFb.forEach(fb=> {\n const duplicate = codec.rtcpFeedback.find(existingFeedback => {\n return existingFeedback.type === fb.type &&\n existingFeedback.parameter === fb.parameter;\n });\n if (!duplicate) {\n codec.rtcpFeedback.push(fb);\n }\n });\n });\n // FIXME: parse rtcp.\n return description;\n};\n\n// Generates parts of the SDP media section describing the capabilities /\n// parameters.\nSDPUtils.writeRtpDescription = function(kind, caps) {\n let sdp = '';\n\n // Build the mline.\n sdp += 'm=' + kind + ' ';\n sdp += caps.codecs.length > 0 ? '9' : '0'; // reject if no codecs.\n sdp += ' ' + (caps.profile || 'UDP/TLS/RTP/SAVPF') + ' ';\n sdp += caps.codecs.map(codec => {\n if (codec.preferredPayloadType !== undefined) {\n return codec.preferredPayloadType;\n }\n return codec.payloadType;\n }).join(' ') + '\\r\\n';\n\n sdp += 'c=IN IP4 0.0.0.0\\r\\n';\n sdp += 'a=rtcp:9 IN IP4 0.0.0.0\\r\\n';\n\n // Add a=rtpmap lines for each codec. Also fmtp and rtcp-fb.\n caps.codecs.forEach(codec => {\n sdp += SDPUtils.writeRtpMap(codec);\n sdp += SDPUtils.writeFmtp(codec);\n sdp += SDPUtils.writeRtcpFb(codec);\n });\n let maxptime = 0;\n caps.codecs.forEach(codec => {\n if (codec.maxptime > maxptime) {\n maxptime = codec.maxptime;\n }\n });\n if (maxptime > 0) {\n sdp += 'a=maxptime:' + maxptime + '\\r\\n';\n }\n\n if (caps.headerExtensions) {\n caps.headerExtensions.forEach(extension => {\n sdp += SDPUtils.writeExtmap(extension);\n });\n }\n // FIXME: write fecMechanisms.\n return sdp;\n};\n\n// Parses the SDP media section and returns an array of\n// RTCRtpEncodingParameters.\nSDPUtils.parseRtpEncodingParameters = function(mediaSection) {\n const encodingParameters = [];\n const description = SDPUtils.parseRtpParameters(mediaSection);\n const hasRed = description.fecMechanisms.indexOf('RED') !== -1;\n const hasUlpfec = description.fecMechanisms.indexOf('ULPFEC') !== -1;\n\n // filter a=ssrc:... cname:, ignore PlanB-msid\n const ssrcs = SDPUtils.matchPrefix(mediaSection, 'a=ssrc:')\n .map(line => SDPUtils.parseSsrcMedia(line))\n .filter(parts => parts.attribute === 'cname');\n const primarySsrc = ssrcs.length > 0 && ssrcs[0].ssrc;\n let secondarySsrc;\n\n const flows = SDPUtils.matchPrefix(mediaSection, 'a=ssrc-group:FID')\n .map(line => {\n const parts = line.substring(17).split(' ');\n return parts.map(part => parseInt(part, 10));\n });\n if (flows.length > 0 && flows[0].length > 1 && flows[0][0] === primarySsrc) {\n secondarySsrc = flows[0][1];\n }\n\n description.codecs.forEach(codec => {\n if (codec.name.toUpperCase() === 'RTX' && codec.parameters.apt) {\n let encParam = {\n ssrc: primarySsrc,\n codecPayloadType: parseInt(codec.parameters.apt, 10),\n };\n if (primarySsrc && secondarySsrc) {\n encParam.rtx = {ssrc: secondarySsrc};\n }\n encodingParameters.push(encParam);\n if (hasRed) {\n encParam = JSON.parse(JSON.stringify(encParam));\n encParam.fec = {\n ssrc: primarySsrc,\n mechanism: hasUlpfec ? 'red+ulpfec' : 'red',\n };\n encodingParameters.push(encParam);\n }\n }\n });\n if (encodingParameters.length === 0 && primarySsrc) {\n encodingParameters.push({\n ssrc: primarySsrc,\n });\n }\n\n // we support both b=AS and b=TIAS but interpret AS as TIAS.\n let bandwidth = SDPUtils.matchPrefix(mediaSection, 'b=');\n if (bandwidth.length) {\n if (bandwidth[0].indexOf('b=TIAS:') === 0) {\n bandwidth = parseInt(bandwidth[0].substring(7), 10);\n } else if (bandwidth[0].indexOf('b=AS:') === 0) {\n // use formula from JSEP to convert b=AS to TIAS value.\n bandwidth = parseInt(bandwidth[0].substring(5), 10) * 1000 * 0.95\n - (50 * 40 * 8);\n } else {\n bandwidth = undefined;\n }\n encodingParameters.forEach(params => {\n params.maxBitrate = bandwidth;\n });\n }\n return encodingParameters;\n};\n\n// parses http://draft.ortc.org/#rtcrtcpparameters*\nSDPUtils.parseRtcpParameters = function(mediaSection) {\n const rtcpParameters = {};\n\n // Gets the first SSRC. Note that with RTX there might be multiple\n // SSRCs.\n const remoteSsrc = SDPUtils.matchPrefix(mediaSection, 'a=ssrc:')\n .map(line => SDPUtils.parseSsrcMedia(line))\n .filter(obj => obj.attribute === 'cname')[0];\n if (remoteSsrc) {\n rtcpParameters.cname = remoteSsrc.value;\n rtcpParameters.ssrc = remoteSsrc.ssrc;\n }\n\n // Edge uses the compound attribute instead of reducedSize\n // compound is !reducedSize\n const rsize = SDPUtils.matchPrefix(mediaSection, 'a=rtcp-rsize');\n rtcpParameters.reducedSize = rsize.length > 0;\n rtcpParameters.compound = rsize.length === 0;\n\n // parses the rtcp-mux attrіbute.\n // Note that Edge does not support unmuxed RTCP.\n const mux = SDPUtils.matchPrefix(mediaSection, 'a=rtcp-mux');\n rtcpParameters.mux = mux.length > 0;\n\n return rtcpParameters;\n};\n\nSDPUtils.writeRtcpParameters = function(rtcpParameters) {\n let sdp = '';\n if (rtcpParameters.reducedSize) {\n sdp += 'a=rtcp-rsize\\r\\n';\n }\n if (rtcpParameters.mux) {\n sdp += 'a=rtcp-mux\\r\\n';\n }\n if (rtcpParameters.ssrc !== undefined && rtcpParameters.cname) {\n sdp += 'a=ssrc:' + rtcpParameters.ssrc +\n ' cname:' + rtcpParameters.cname + '\\r\\n';\n }\n return sdp;\n};\n\n\n// parses either a=msid: or a=ssrc:... msid lines and returns\n// the id of the MediaStream and MediaStreamTrack.\nSDPUtils.parseMsid = function(mediaSection) {\n let parts;\n const spec = SDPUtils.matchPrefix(mediaSection, 'a=msid:');\n if (spec.length === 1) {\n parts = spec[0].substring(7).split(' ');\n return {stream: parts[0], track: parts[1]};\n }\n const planB = SDPUtils.matchPrefix(mediaSection, 'a=ssrc:')\n .map(line => SDPUtils.parseSsrcMedia(line))\n .filter(msidParts => msidParts.attribute === 'msid');\n if (planB.length > 0) {\n parts = planB[0].value.split(' ');\n return {stream: parts[0], track: parts[1]};\n }\n};\n\n// SCTP\n// parses draft-ietf-mmusic-sctp-sdp-26 first and falls back\n// to draft-ietf-mmusic-sctp-sdp-05\nSDPUtils.parseSctpDescription = function(mediaSection) {\n const mline = SDPUtils.parseMLine(mediaSection);\n const maxSizeLine = SDPUtils.matchPrefix(mediaSection, 'a=max-message-size:');\n let maxMessageSize;\n if (maxSizeLine.length > 0) {\n maxMessageSize = parseInt(maxSizeLine[0].substring(19), 10);\n }\n if (isNaN(maxMessageSize)) {\n maxMessageSize = 65536;\n }\n const sctpPort = SDPUtils.matchPrefix(mediaSection, 'a=sctp-port:');\n if (sctpPort.length > 0) {\n return {\n port: parseInt(sctpPort[0].substring(12), 10),\n protocol: mline.fmt,\n maxMessageSize,\n };\n }\n const sctpMapLines = SDPUtils.matchPrefix(mediaSection, 'a=sctpmap:');\n if (sctpMapLines.length > 0) {\n const parts = sctpMapLines[0]\n .substring(10)\n .split(' ');\n return {\n port: parseInt(parts[0], 10),\n protocol: parts[1],\n maxMessageSize,\n };\n }\n};\n\n// SCTP\n// outputs the draft-ietf-mmusic-sctp-sdp-26 version that all browsers\n// support by now receiving in this format, unless we originally parsed\n// as the draft-ietf-mmusic-sctp-sdp-05 format (indicated by the m-line\n// protocol of DTLS/SCTP -- without UDP/ or TCP/)\nSDPUtils.writeSctpDescription = function(media, sctp) {\n let output = [];\n if (media.protocol !== 'DTLS/SCTP') {\n output = [\n 'm=' + media.kind + ' 9 ' + media.protocol + ' ' + sctp.protocol + '\\r\\n',\n 'c=IN IP4 0.0.0.0\\r\\n',\n 'a=sctp-port:' + sctp.port + '\\r\\n',\n ];\n } else {\n output = [\n 'm=' + media.kind + ' 9 ' + media.protocol + ' ' + sctp.port + '\\r\\n',\n 'c=IN IP4 0.0.0.0\\r\\n',\n 'a=sctpmap:' + sctp.port + ' ' + sctp.protocol + ' 65535\\r\\n',\n ];\n }\n if (sctp.maxMessageSize !== undefined) {\n output.push('a=max-message-size:' + sctp.maxMessageSize + '\\r\\n');\n }\n return output.join('');\n};\n\n// Generate a session ID for SDP.\n// https://tools.ietf.org/html/draft-ietf-rtcweb-jsep-20#section-5.2.1\n// recommends using a cryptographically random +ve 64-bit value\n// but right now this should be acceptable and within the right range\nSDPUtils.generateSessionId = function() {\n return Math.random().toString().substr(2, 22);\n};\n\n// Write boiler plate for start of SDP\n// sessId argument is optional - if not supplied it will\n// be generated randomly\n// sessVersion is optional and defaults to 2\n// sessUser is optional and defaults to 'thisisadapterortc'\nSDPUtils.writeSessionBoilerplate = function(sessId, sessVer, sessUser) {\n let sessionId;\n const version = sessVer !== undefined ? sessVer : 2;\n if (sessId) {\n sessionId = sessId;\n } else {\n sessionId = SDPUtils.generateSessionId();\n }\n const user = sessUser || 'thisisadapterortc';\n // FIXME: sess-id should be an NTP timestamp.\n return 'v=0\\r\\n' +\n 'o=' + user + ' ' + sessionId + ' ' + version +\n ' IN IP4 127.0.0.1\\r\\n' +\n 's=-\\r\\n' +\n 't=0 0\\r\\n';\n};\n\n// Gets the direction from the mediaSection or the sessionpart.\nSDPUtils.getDirection = function(mediaSection, sessionpart) {\n // Look for sendrecv, sendonly, recvonly, inactive, default to sendrecv.\n const lines = SDPUtils.splitLines(mediaSection);\n for (let i = 0; i < lines.length; i++) {\n switch (lines[i]) {\n case 'a=sendrecv':\n case 'a=sendonly':\n case 'a=recvonly':\n case 'a=inactive':\n return lines[i].substring(2);\n default:\n // FIXME: What should happen here?\n }\n }\n if (sessionpart) {\n return SDPUtils.getDirection(sessionpart);\n }\n return 'sendrecv';\n};\n\nSDPUtils.getKind = function(mediaSection) {\n const lines = SDPUtils.splitLines(mediaSection);\n const mline = lines[0].split(' ');\n return mline[0].substring(2);\n};\n\nSDPUtils.isRejected = function(mediaSection) {\n return mediaSection.split(' ', 2)[1] === '0';\n};\n\nSDPUtils.parseMLine = function(mediaSection) {\n const lines = SDPUtils.splitLines(mediaSection);\n const parts = lines[0].substring(2).split(' ');\n return {\n kind: parts[0],\n port: parseInt(parts[1], 10),\n protocol: parts[2],\n fmt: parts.slice(3).join(' '),\n };\n};\n\nSDPUtils.parseOLine = function(mediaSection) {\n const line = SDPUtils.matchPrefix(mediaSection, 'o=')[0];\n const parts = line.substring(2).split(' ');\n return {\n username: parts[0],\n sessionId: parts[1],\n sessionVersion: parseInt(parts[2], 10),\n netType: parts[3],\n addressType: parts[4],\n address: parts[5],\n };\n};\n\n// a very naive interpretation of a valid SDP.\nSDPUtils.isValidSDP = function(blob) {\n if (typeof blob !== 'string' || blob.length === 0) {\n return false;\n }\n const lines = SDPUtils.splitLines(blob);\n for (let i = 0; i < lines.length; i++) {\n if (lines[i].length < 2 || lines[i].charAt(1) !== '=') {\n return false;\n }\n // TODO: check the modifier a bit more.\n }\n return true;\n};\n\n// Expose public methods.\nif (typeof module === 'object') {\n module.exports = SDPUtils;\n}\n","import*as e from\"sdp\";var t,s,n={d:(e,t)=>{for(var s in t)n.o(t,s)&&!n.o(e,s)&&Object.defineProperty(e,s,{enumerable:!0,get:t[s]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t)},r={};n.d(r,{Dz:()=>ye,g$:()=>A,Lt:()=>k,Q9:()=>x,qf:()=>L,hV:()=>Ae,z$:()=>wt,J0:()=>Pe,De:()=>Te,$C:()=>Ee,al:()=>_,_W:()=>V,Gv:()=>se,m:()=>ne,tz:()=>z,Nu:()=>Re,zg:()=>He,vp:()=>he,vU:()=>ue,wF:()=>J,rv:()=>we,Nh:()=>be,ss:()=>_e,qW:()=>re,QL:()=>te,cf:()=>Ne,eM:()=>j,Yd:()=>i,Tk:()=>Ge,iM:()=>S,qy:()=>a,ce:()=>v,sK:()=>me,Ok:()=>Ce,q5:()=>ke,g:()=>Mt,xl:()=>q,I:()=>$,bx:()=>X,dD:()=>de,Ib:()=>M,Az:()=>w,Iw:()=>b,qY:()=>P,db:()=>R,mR:()=>ie,Tn:()=>C,rV:()=>Y,gh:()=>W,Mi:()=>N,j:()=>K,YB:()=>Q,Yt:()=>ee,i5:()=>Z,x_:()=>Se,Am:()=>pt,eR:()=>F,r8:()=>H,u3:()=>We,vd:()=>O,iV:()=>U,jZ:()=>I,SW:()=>B,ZH:()=>G,Ni:()=>vt,lh:()=>D,ZP:()=>ce,bq:()=>f,$f:()=>ft,eu:()=>le,Ax:()=>oe,Mc:()=>ae});class i{static GetStackTrace(){const e=new Error;let t=\"No Stack Available for this browser\";return e.stack&&(t=e.stack.toString().replace(/Error/g,\"\")),t}static SetLoggerVerbosity(e){null!=this.verboseLogLevel&&(this.verboseLogLevel=e)}static Log(e,t,s){if(s>this.verboseLogLevel)return;const n=`Level: Log\\nMsg: ${t}\\nCaller: ${e}`;console.log(n)}static Info(e,t,s){if(s>this.verboseLogLevel)return;const n=`Level: Info\\nMsg: ${t}`;console.info(n)}static Error(e,t){const s=`Level: Error\\nMsg: ${t}\\nCaller: ${e}`;console.error(s)}static Warning(e,t){const s=`Level: Warning\\nCaller: ${e}\\nMsg: ${t}`;console.warn(s)}}i.verboseLogLevel=5,function(e){e.LIST_STREAMERS=\"listStreamers\",e.SUBSCRIBE=\"subscribe\",e.UNSUBSCRIBE=\"unsubscribe\",e.ICE_CANDIDATE=\"iceCandidate\",e.OFFER=\"offer\",e.ANSWER=\"answer\",e.DATACHANNELREQUEST=\"dataChannelRequest\",e.SFURECVDATACHANNELREADY=\"peerDataChannelsReady\",e.PONG=\"pong\"}(t||(t={}));class a{sendFilter(e,t){return t}payload(){return i.Log(i.GetStackTrace(),\"Sending => \\n\"+JSON.stringify(this,this.sendFilter,4),6),JSON.stringify(this,this.sendFilter)}}class o extends a{constructor(){super(),this.type=t.LIST_STREAMERS}}class l extends a{constructor(e){super(),this.type=t.SUBSCRIBE,this.streamerId=e}}class d extends a{constructor(){super(),this.type=t.UNSUBSCRIBE}}class c extends a{constructor(e){super(),this.type=t.PONG,this.time=e}}class h extends a{constructor(e,s){super(),this.type=t.OFFER,this.minBitrate=0,this.maxBitrate=0,e&&(this.type=e.type,this.sdp=e.sdp,this.minBitrate=s.minBitrateBps,this.maxBitrate=s.maxBitrateBps)}sendFilter(e,t){if(\"minBitrate\"!=e&&\"maxBitrate\"!=e||!(t<=0))return t}}class u extends a{constructor(e,s){super(),this.type=t.ANSWER,this.minBitrate=0,this.maxBitrate=0,e&&(this.type=e.type,this.sdp=e.sdp,this.minBitrate=s.minBitrateBps,this.maxBitrate=s.maxBitrateBps)}sendFilter(e,t){if(\"minBitrate\"!=e&&\"maxBitrate\"!=e||!(t<=0))return t}}class g extends a{constructor(){super(),this.type=t.DATACHANNELREQUEST}}class m extends a{constructor(){super(),this.type=t.SFURECVDATACHANNELREADY}}class p{constructor(e){this.type=t.ICE_CANDIDATE,this.candidate=e}payload(){return i.Log(i.GetStackTrace(),\"Sending => \\n\"+JSON.stringify(this,void 0,4),6),JSON.stringify(this)}}!function(e){e.CONFIG=\"config\",e.STREAMER_LIST=\"streamerList\",e.STREAMER_ID_CHANGED=\"streamerIDChanged\",e.PLAYER_COUNT=\"playerCount\",e.OFFER=\"offer\",e.ANSWER=\"answer\",e.ICE_CANDIDATE=\"iceCandidate\",e.PEER_DATA_CHANNELS=\"peerDataChannels\",e.PING=\"ping\",e.WARNING=\"warning\"}(s||(s={}));class S{}class v extends S{}class C{constructor(){this.FromUEMessageHandlers=new Map}addMessageHandler(e,t){this.FromUEMessageHandlers.set(e,t)}handleMessage(e,t){this.FromUEMessageHandlers.has(e)?this.FromUEMessageHandlers.get(e)(t):i.Error(i.GetStackTrace(),`Message type of ${e} does not have a message handler registered on the frontend - ignoring message.`)}static setupDefaultHandlers(e){e.signallingProtocol.addMessageHandler(s.PING,(t=>{const n=new c((new Date).getTime()).payload();i.Log(i.GetStackTrace(),s.PING+\": \"+t,6),e.webSocket.send(n)})),e.signallingProtocol.addMessageHandler(s.CONFIG,(t=>{i.Log(i.GetStackTrace(),s.CONFIG,6);const n=JSON.parse(t);e.onConfig(n)})),e.signallingProtocol.addMessageHandler(s.STREAMER_LIST,(t=>{i.Log(i.GetStackTrace(),s.STREAMER_LIST,6);const n=JSON.parse(t);e.onStreamerList(n)})),e.signallingProtocol.addMessageHandler(s.STREAMER_ID_CHANGED,(t=>{i.Log(i.GetStackTrace(),s.STREAMER_ID_CHANGED,6);const n=JSON.parse(t);e.onStreamerIDChanged(n)})),e.signallingProtocol.addMessageHandler(s.PLAYER_COUNT,(t=>{i.Log(i.GetStackTrace(),s.PLAYER_COUNT,6);const n=JSON.parse(t);i.Log(i.GetStackTrace(),\"Player Count: \"+n.count,6),e.onPlayerCount(n)})),e.signallingProtocol.addMessageHandler(s.ANSWER,(t=>{i.Log(i.GetStackTrace(),s.ANSWER,6);const n=JSON.parse(t);e.onWebRtcAnswer(n)})),e.signallingProtocol.addMessageHandler(s.OFFER,(t=>{i.Log(i.GetStackTrace(),s.OFFER,6);const n=JSON.parse(t);e.onWebRtcOffer(n)})),e.signallingProtocol.addMessageHandler(s.ICE_CANDIDATE,(t=>{i.Log(i.GetStackTrace(),s.ICE_CANDIDATE,6);const n=JSON.parse(t);e.onIceCandidate(n.candidate)})),e.signallingProtocol.addMessageHandler(s.WARNING,(e=>{i.Warning(i.GetStackTrace(),`Warning received: ${e}`)})),e.signallingProtocol.addMessageHandler(s.PEER_DATA_CHANNELS,(t=>{i.Log(i.GetStackTrace(),s.PEER_DATA_CHANNELS,6);const n=JSON.parse(t);e.onWebRtcPeerDataChannels(n)}))}}class f{constructor(){this.WS_OPEN_STATE=1,this.onOpen=new EventTarget,this.onClose=new EventTarget,this.signallingProtocol=new C,C.setupDefaultHandlers(this)}connect(e){i.Log(i.GetStackTrace(),e,6);try{return this.webSocket=new WebSocket(e),this.webSocket.onopen=e=>this.handleOnOpen(e),this.webSocket.onerror=()=>this.handleOnError(),this.webSocket.onclose=e=>this.handleOnClose(e),this.webSocket.onmessage=e=>this.handleOnMessage(e),this.webSocket.onmessagebinary=e=>this.handleOnMessageBinary(e),!0}catch(e){return i.Error(e,e),!1}}handleOnMessageBinary(e){e&&e.data&&e.data.text().then((e=>{const t=new MessageEvent(\"messageFromBinary\",{data:e});this.handleOnMessage(t)})).catch((e=>{i.Error(i.GetStackTrace(),`Failed to parse binary blob from websocket, reason: ${e}`)}))}handleOnMessage(e){if(e.data&&e.data instanceof Blob)return void this.handleOnMessageBinary(e);const t=JSON.parse(e.data);i.Log(i.GetStackTrace(),\"received => \\n\"+JSON.stringify(JSON.parse(e.data),void 0,4),6),this.signallingProtocol.handleMessage(t.type,e.data)}handleOnOpen(e){i.Log(i.GetStackTrace(),\"Connected to the signalling server via WebSocket\",6),this.onOpen.dispatchEvent(new Event(\"open\"))}handleOnError(){i.Error(i.GetStackTrace(),\"WebSocket error\")}handleOnClose(e){i.Log(i.GetStackTrace(),\"Disconnected to the signalling server via WebSocket: \"+JSON.stringify(e.code)+\" - \"+e.reason),this.onClose.dispatchEvent(new CustomEvent(\"close\",{detail:e}))}requestStreamerList(){const e=new o;this.webSocket.send(e.payload())}sendSubscribe(e){const t=new l(e);this.webSocket.send(t.payload())}sendUnsubscribe(){const e=new d;this.webSocket.send(e.payload())}sendWebRtcOffer(e,t){const s=new h(e,t);this.webSocket.send(s.payload())}sendWebRtcAnswer(e,t){const s=new u(e,t);this.webSocket.send(s.payload())}sendWebRtcDatachannelRequest(){const e=new g;this.webSocket.send(e.payload())}sendSFURecvDataChannelReady(){const e=new m;this.webSocket.send(e.payload())}sendIceCandidate(e){if(i.Log(i.GetStackTrace(),\"Sending Ice Candidate\"),this.webSocket&&this.webSocket.readyState===this.WS_OPEN_STATE){const t=new p(e);this.webSocket.send(t.payload())}}close(){var e;null===(e=this.webSocket)||void 0===e||e.close()}onConfig(e){}onStreamerList(e){}onStreamerIDChanged(e){}onIceCandidate(e){}onWebRtcAnswer(e){}onWebRtcOffer(e){}onWebRtcPeerDataChannels(e){}onPlayerCount(e){}}class T{constructor(e){this.videoElementProvider=e,this.audioElement=document.createElement(\"Audio\"),this.videoElementProvider.setAudioElement(this.audioElement)}handleOnTrack(e){if(i.Log(i.GetStackTrace(),\"handleOnTrack \"+JSON.stringify(e.streams),6),\"probator\"==e.track.id)return;const t=this.videoElementProvider.getVideoElement();if(e.track&&i.Log(i.GetStackTrace(),\"Got track - \"+e.track.kind+\" id=\"+e.track.id+\" readyState=\"+e.track.readyState,6),\"audio\"!=e.track.kind)return\"video\"==e.track.kind&&t.srcObject!==e.streams[0]?(t.srcObject=e.streams[0],void i.Log(i.GetStackTrace(),\"Set video source from video track ontrack.\")):void 0;this.CreateAudioTrack(e.streams[0])}CreateAudioTrack(e){const t=this.videoElementProvider.getVideoElement();t.srcObject!=e&&t.srcObject&&t.srcObject!==e&&(this.audioElement.srcObject=e,i.Log(i.GetStackTrace(),\"Created new audio element to play separate audio stream.\"))}}class E{constructor(e){this.freezeFrameHeight=0,this.freezeFrameWidth=0,this.rootDiv=e,this.rootElement=document.createElement(\"div\"),this.rootElement.id=\"freezeFrame\",this.rootElement.style.display=\"none\",this.rootElement.style.pointerEvents=\"none\",this.rootElement.style.position=\"absolute\",this.rootElement.style.zIndex=\"20\",this.imageElement=document.createElement(\"img\"),this.imageElement.style.position=\"absolute\",this.rootElement.appendChild(this.imageElement),this.rootDiv.appendChild(this.rootElement)}setElementForShow(){this.rootElement.style.display=\"block\"}setElementForHide(){this.rootElement.style.display=\"none\"}updateImageElementSource(e){const t=btoa(e.reduce(((e,t)=>e+String.fromCharCode(t)),\"\"));this.imageElement.src=\"data:image/jpeg;base64,\"+t}setDimensionsFromElementAndResize(){this.freezeFrameHeight=this.imageElement.naturalHeight,this.freezeFrameWidth=this.imageElement.naturalWidth,this.resize()}resize(){if(0!==this.freezeFrameWidth&&0!==this.freezeFrameHeight){let e=0,t=0,s=0,n=0;const r=this.rootDiv.clientWidth/this.rootDiv.clientHeight,i=this.freezeFrameWidth/this.freezeFrameHeight;r<i?(e=this.rootDiv.clientWidth,t=Math.floor(this.rootDiv.clientWidth/i),s=Math.floor(.5*(this.rootDiv.clientHeight-t)),n=0):(e=Math.floor(this.rootDiv.clientHeight*i),t=this.rootDiv.clientHeight,s=0,n=Math.floor(.5*(this.rootDiv.clientWidth-e))),this.rootElement.style.width=this.rootDiv.offsetWidth+\"px\",this.rootElement.style.height=this.rootDiv.offsetHeight+\"px\",this.rootElement.style.left=\"0px\",this.rootElement.style.top=\"0px\",this.imageElement.style.width=e+\"px\",this.imageElement.style.height=t+\"px\",this.imageElement.style.left=n+\"px\",this.imageElement.style.top=s+\"px\"}}}class y{constructor(e){this.receiving=!1,this.size=0,this.jpeg=void 0,this.valid=!1,this.freezeFrameDelay=50,this.freezeFrame=new E(e)}showFreezeFrame(){this.valid&&this.freezeFrame.setElementForShow()}hideFreezeFrame(){this.valid=!1,this.freezeFrame.setElementForHide()}updateFreezeFrameAndShow(e,t){this.freezeFrame.updateImageElementSource(e),this.freezeFrame.imageElement.onload=()=>{this.freezeFrame.setDimensionsFromElementAndResize(),t()}}processFreezeFrameMessage(e,t){this.receiving||(this.receiving=!0,this.valid=!1,this.size=0,this.jpeg=void 0),this.size=new DataView(e.slice(1,5).buffer).getInt32(0,!0);const s=e.slice(5);if(this.jpeg){const e=new Uint8Array(this.jpeg.length+s.length);e.set(this.jpeg,0),e.set(s,this.jpeg.length),this.jpeg=e}else this.jpeg=s,this.receiving=!0,i.Log(i.GetStackTrace(),`received first chunk of freeze frame: ${this.jpeg.length}/${this.size}`,6);this.jpeg.length===this.size?(this.receiving=!1,this.valid=!0,i.Log(i.GetStackTrace(),`received complete freeze frame ${this.size}`,6),this.updateFreezeFrameAndShow(this.jpeg,t)):this.jpeg.length>this.size&&(i.Error(i.GetStackTrace(),`received bigger freeze frame than advertised: ${this.jpeg.length}/${this.size}`),this.jpeg=void 0,this.receiving=!1)}}class M{constructor(e,t,s,n,r=(()=>{})){this.onChange=r,this.onChangeEmit=()=>{},this.id=e,this.description=s,this.label=t,this.value=n}set label(e){this._label=e,this.onChangeEmit(this._value)}get label(){return this._label}get value(){return this._value}set value(e){this._value=e,this.onChange(this._value,this),this.onChangeEmit(this._value)}}class w extends M{constructor(e,t,s,n,r,i=(()=>{})){super(e,t,s,n,i);const a=new URLSearchParams(window.location.search);if(r&&a.has(this.id)){const e=this.getUrlParamFlag();this.flag=e}else this.flag=n;this.useUrlParams=r}getUrlParamFlag(){const e=new URLSearchParams(window.location.search);return!!e.has(this.id)&&\"false\"!==e.get(this.id)&&\"False\"!==e.get(this.id)}updateURLParams(){if(this.useUrlParams){const e=new URLSearchParams(window.location.search);!0===this.flag?e.set(this.id,\"true\"):e.set(this.id,\"false\"),window.history.replaceState({},\"\",\"\"!==e.toString()?`${location.pathname}?${e}`:`${location.pathname}`)}}enable(){this.flag=!0}get flag(){return!!this.value}set flag(e){this.value=e}}class b extends M{constructor(e,t,s,n,r,i,a,o=(()=>{})){super(e,t,s,i,o),this._min=n,this._max=r;const l=new URLSearchParams(window.location.search);if(a&&l.has(this.id)){const e=Number.parseFloat(l.get(this.id));this.number=Number.isNaN(e)?i:e}else this.number=i;this.useUrlParams=a}updateURLParams(){if(this.useUrlParams){const e=new URLSearchParams(window.location.search);e.set(this.id,this.number.toString()),window.history.replaceState({},\"\",\"\"!==e.toString()?`${location.pathname}?${e}`:`${location.pathname}`)}}set number(e){this.value=this.clamp(e)}get number(){return this.value}clamp(e){return null==this._min&&null==this._max?e:null==this._min?Math.min(this._max,e):null==this._max?Math.max(this._min,e):Math.max(Math.min(this._max,e),this._min)}get min(){return this._min}get max(){return this._max}addOnChangedListener(e){this.onChange=e}}class R extends M{constructor(e,t,s,n,r,i=(()=>{})){super(e,t,s,n,i);const a=new URLSearchParams(window.location.search);if(r&&a.has(this.id)){const e=this.getUrlParamText();this.text=e}else this.text=n;this.useUrlParams=r}getUrlParamText(){var e;const t=new URLSearchParams(window.location.search);return t.has(this.id)&&null!==(e=t.get(this.id))&&void 0!==e?e:\"\"}updateURLParams(){if(this.useUrlParams){const e=new URLSearchParams(window.location.search);e.set(this.id,this.text),window.history.replaceState({},\"\",\"\"!==e.toString()?`${location.pathname}?${e}`:`${location.pathname}`)}}get text(){return this.value}set text(e){this.value=e}}class P extends M{constructor(e,t,s,n,r,i,a=(()=>{})){super(e,t,s,n,a),this.options=r;const o=new URLSearchParams(window.location.search),l=i&&o.has(this.id)?this.getUrlParamText():n;this.selected=l,this.useUrlParams=i}getUrlParamText(){var e;const t=new URLSearchParams(window.location.search);return t.has(this.id)&&null!==(e=t.get(this.id))&&void 0!==e?e:\"\"}updateURLParams(){if(this.useUrlParams){const e=new URLSearchParams(window.location.search);e.set(this.id,this.selected),window.history.replaceState({},\"\",\"\"!==e.toString()?`${location.pathname}?${e}`:`${location.pathname}`)}}addOnChangedListener(e){this.onChange=e}get options(){return this._options}set options(e){this._options=e,this.onChangeEmit(this.selected)}get selected(){return this.value}set selected(e){let t=this.options.filter((t=>-1!==t.indexOf(e)));t.length?this.value=t[0]:(t=this.options.filter((t=>-1!==t.indexOf(e.split(\" \")[0]))),t.length&&(this.value=t[0]))}}class k extends Event{constructor(e){super(\"afkWarningActivate\"),this.data=e}}class L extends Event{constructor(e){super(\"afkWarningUpdate\"),this.data=e}}class x extends Event{constructor(){super(\"afkWarningDeactivate\")}}class A extends Event{constructor(){super(\"afkTimedOut\")}}class F extends Event{constructor(e){super(\"videoEncoderAvgQP\"),this.data=e}}class D extends Event{constructor(){super(\"webRtcSdp\")}}class O extends Event{constructor(){super(\"webRtcAutoConnect\")}}class I extends Event{constructor(){super(\"webRtcConnecting\")}}class U extends Event{constructor(){super(\"webRtcConnected\")}}class G extends Event{constructor(){super(\"webRtcFailed\")}}class B extends Event{constructor(e){super(\"webRtcDisconnected\"),this.data=e}}class z extends Event{constructor(e){super(\"dataChannelOpen\"),this.data=e}}class _ extends Event{constructor(e){super(\"dataChannelClose\"),this.data=e}}class V extends Event{constructor(e){super(\"dataChannelError\"),this.data=e}}class H extends Event{constructor(){super(\"videoInitialized\")}}class W extends Event{constructor(){super(\"streamLoading\")}}class N extends Event{constructor(){super(\"streamConnect\")}}class K extends Event{constructor(){super(\"streamDisconnect\")}}class Q extends Event{constructor(){super(\"streamReconnect\")}}class q extends Event{constructor(e){super(\"playStreamError\"),this.data=e}}class $ extends Event{constructor(){super(\"playStream\")}}class X extends Event{constructor(e){super(\"playStreamRejected\"),this.data=e}}class j extends Event{constructor(e){super(\"loadFreezeFrame\"),this.data=e}}class J extends Event{constructor(){super(\"hideFreezeFrame\")}}class Y extends Event{constructor(e){super(\"statsReceived\"),this.data=e}}class Z extends Event{constructor(e){super(\"streamerListMessage\"),this.data=e}}class ee extends Event{constructor(e){super(\"StreamerIDChangedMessage\"),this.data=e}}class te extends Event{constructor(e){super(\"latencyTestResult\"),this.data=e}}class se extends Event{constructor(e){super(\"dataChannelLatencyTestResponse\"),this.data=e}}class ne extends Event{constructor(e){super(\"dataChannelLatencyTestResult\"),this.data=e}}class re extends Event{constructor(e){super(\"initialSettings\"),this.data=e}}class ie extends Event{constructor(e){super(\"settingsChanged\"),this.data=e}}class ae extends Event{constructor(){super(\"xrSessionStarted\")}}class oe extends Event{constructor(){super(\"xrSessionEnded\")}}class le extends Event{constructor(e){super(\"xrFrame\"),this.data=e}}class de extends Event{constructor(e){super(\"playerCount\"),this.data=e}}class ce extends Event{constructor(){super(\"webRtcTCPRelayDetected\")}}class he extends EventTarget{dispatchEvent(e){return super.dispatchEvent(e)}addEventListener(e,t){super.addEventListener(e,t)}removeEventListener(e,t){super.removeEventListener(e,t)}}class ue{}ue.AutoConnect=\"AutoConnect\",ue.AutoPlayVideo=\"AutoPlayVideo\",ue.AFKDetection=\"TimeoutIfIdle\",ue.BrowserSendOffer=\"OfferToReceive\",ue.HoveringMouseMode=\"HoveringMouse\",ue.ForceMonoAudio=\"ForceMonoAudio\",ue.ForceTURN=\"ForceTURN\",ue.FakeMouseWithTouches=\"FakeMouseWithTouches\",ue.IsQualityController=\"ControlsQuality\",ue.MatchViewportResolution=\"MatchViewportRes\",ue.StartVideoMuted=\"StartVideoMuted\",ue.SuppressBrowserKeys=\"SuppressBrowserKeys\",ue.UseMic=\"UseMic\",ue.KeyboardInput=\"KeyboardInput\",ue.MouseInput=\"MouseInput\",ue.TouchInput=\"TouchInput\",ue.GamepadInput=\"GamepadInput\",ue.XRControllerInput=\"XRControllerInput\",ue.WaitForStreamer=\"WaitForStreamer\",ue.HideUI=\"HideUI\";const ge=e=>Object.getOwnPropertyNames(ue).some((t=>ue[t]===e));class me{}me.AFKTimeoutSecs=\"AFKTimeout\",me.AFKCountdownSecs=\"AFKCountdown\",me.MinQP=\"MinQP\",me.MaxQP=\"MaxQP\",me.WebRTCFPS=\"WebRTCFPS\",me.WebRTCMinBitrate=\"WebRTCMinBitrate\",me.WebRTCMaxBitrate=\"WebRTCMaxBitrate\",me.MaxReconnectAttempts=\"MaxReconnectAttempts\",me.StreamerAutoJoinInterval=\"StreamerAutoJoinInterval\";const pe=e=>Object.getOwnPropertyNames(me).some((t=>me[t]===e));class Se{}Se.SignallingServerUrl=\"ss\";const ve=e=>Object.getOwnPropertyNames(Se).some((t=>Se[t]===e));class Ce{}Ce.PreferredCodec=\"PreferredCodec\",Ce.StreamerId=\"StreamerId\";const fe=e=>Object.getOwnPropertyNames(Ce).some((t=>Ce[t]===e));class Te{constructor(e={}){this.flags=new Map,this.numericParameters=new Map,this.textParameters=new Map,this.optionParameters=new Map;const{initialSettings:t,useUrlParams:s}=e;this._useUrlParams=!!s,this.populateDefaultSettings(this._useUrlParams,t)}get useUrlParams(){return this._useUrlParams}populateDefaultSettings(e,t){this.textParameters.set(Se.SignallingServerUrl,new R(Se.SignallingServerUrl,\"Signalling url\",\"Url of the signalling server\",t&&t.hasOwnProperty(Se.SignallingServerUrl)?t[Se.SignallingServerUrl]:(\"https:\"===location.protocol?\"wss://\":\"ws://\")+window.location.hostname+(\"80\"===window.location.port||\"\"===window.location.port?\"\":`:${window.location.port}`),e)),this.optionParameters.set(Ce.StreamerId,new P(Ce.StreamerId,\"Streamer ID\",\"The ID of the streamer to stream.\",t&&t.hasOwnProperty(Ce.StreamerId)?t[Ce.StreamerId]:\"\",[],e)),this.optionParameters.set(Ce.PreferredCodec,new P(Ce.PreferredCodec,\"Preferred Codec\",\"The preferred codec to be used during codec negotiation\",\"H264 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e01f\",t&&t.hasOwnProperty(Ce.PreferredCodec)?[t[Ce.PreferredCodec]]:function(){const e=[];if(!RTCRtpReceiver.getCapabilities)return e.push(\"Only available on Chrome\"),e;const t=/(VP\\d|H26\\d|AV1).*/;return RTCRtpReceiver.getCapabilities(\"video\").codecs.forEach((s=>{const n=s.mimeType.split(\"/\")[1]+\" \"+(s.sdpFmtpLine||\"\");null!==t.exec(n)&&e.push(n)})),e}(),e)),this.flags.set(ue.AutoConnect,new w(ue.AutoConnect,\"Auto connect to stream\",\"Whether we should attempt to auto connect to the signalling server or show a click to start prompt.\",!(!t||!t.hasOwnProperty(ue.AutoConnect))&&t[ue.AutoConnect],e)),this.flags.set(ue.AutoPlayVideo,new w(ue.AutoPlayVideo,\"Auto play video\",\"When video is ready automatically start playing it as opposed to showing a play button.\",!t||!t.hasOwnProperty(ue.AutoPlayVideo)||t[ue.AutoPlayVideo],e)),this.flags.set(ue.BrowserSendOffer,new w(ue.BrowserSendOffer,\"Browser send offer\",\"Browser will initiate the WebRTC handshake by sending the offer to the streamer\",!(!t||!t.hasOwnProperty(ue.BrowserSendOffer))&&t[ue.BrowserSendOffer],e)),this.flags.set(ue.UseMic,new w(ue.UseMic,\"Use microphone\",\"Make browser request microphone access and open an input audio track.\",!(!t||!t.hasOwnProperty(ue.UseMic))&&t[ue.UseMic],e)),this.flags.set(ue.StartVideoMuted,new w(ue.StartVideoMuted,\"Start video muted\",\"Video will start muted if true.\",!(!t||!t.hasOwnProperty(ue.StartVideoMuted))&&t[ue.StartVideoMuted],e)),this.flags.set(ue.SuppressBrowserKeys,new w(ue.SuppressBrowserKeys,\"Suppress browser keys\",\"Suppress certain browser keys that we use in UE, for example F5 to show shader complexity instead of refresh the page.\",!t||!t.hasOwnProperty(ue.SuppressBrowserKeys)||t[ue.SuppressBrowserKeys],e)),this.flags.set(ue.IsQualityController,new w(ue.IsQualityController,\"Is quality controller?\",\"True if this peer controls stream quality\",!t||!t.hasOwnProperty(ue.IsQualityController)||t[ue.IsQualityController],e)),this.flags.set(ue.ForceMonoAudio,new w(ue.ForceMonoAudio,\"Force mono audio\",\"Force browser to request mono audio in the SDP\",!(!t||!t.hasOwnProperty(ue.ForceMonoAudio))&&t[ue.ForceMonoAudio],e)),this.flags.set(ue.ForceTURN,new w(ue.ForceTURN,\"Force TURN\",\"Only generate TURN/Relayed ICE candidates.\",!(!t||!t.hasOwnProperty(ue.ForceTURN))&&t[ue.ForceTURN],e)),this.flags.set(ue.AFKDetection,new w(ue.AFKDetection,\"AFK if idle\",\"Timeout the experience if user is AFK for a period.\",!(!t||!t.hasOwnProperty(ue.AFKDetection))&&t[ue.AFKDetection],e)),this.flags.set(ue.MatchViewportResolution,new w(ue.MatchViewportResolution,\"Match viewport resolution\",\"Pixel Streaming will be instructed to dynamically resize the video stream to match the size of the video element.\",!(!t||!t.hasOwnProperty(ue.MatchViewportResolution))&&t[ue.MatchViewportResolution],e)),this.flags.set(ue.HoveringMouseMode,new w(ue.HoveringMouseMode,\"Control Scheme: Locked Mouse\",\"Either locked mouse, where the pointer is consumed by the video and locked to it, or hovering mouse, where the mouse is not consumed.\",!(!t||!t.hasOwnProperty(ue.HoveringMouseMode))&&t[ue.HoveringMouseMode],e,((e,t)=>{t.label=`Control Scheme: ${e?\"Hovering\":\"Locked\"} Mouse`}))),this.flags.set(ue.FakeMouseWithTouches,new w(ue.FakeMouseWithTouches,\"Fake mouse with touches\",\"A single finger touch is converted into a mouse event. This allows a non-touch application to be controlled partially via a touch device.\",!(!t||!t.hasOwnProperty(ue.FakeMouseWithTouches))&&t[ue.FakeMouseWithTouches],e)),this.flags.set(ue.KeyboardInput,new w(ue.KeyboardInput,\"Keyboard input\",\"If enabled, send keyboard events to streamer\",!t||!t.hasOwnProperty(ue.KeyboardInput)||t[ue.KeyboardInput],e)),this.flags.set(ue.MouseInput,new w(ue.MouseInput,\"Mouse input\",\"If enabled, send mouse events to streamer\",!t||!t.hasOwnProperty(ue.MouseInput)||t[ue.MouseInput],e)),this.flags.set(ue.TouchInput,new w(ue.TouchInput,\"Touch input\",\"If enabled, send touch events to streamer\",!t||!t.hasOwnProperty(ue.TouchInput)||t[ue.TouchInput],e)),this.flags.set(ue.GamepadInput,new w(ue.GamepadInput,\"Gamepad input\",\"If enabled, send gamepad events to streamer\",!t||!t.hasOwnProperty(ue.GamepadInput)||t[ue.GamepadInput],e)),this.flags.set(ue.XRControllerInput,new w(ue.XRControllerInput,\"XR controller input\",\"If enabled, send XR controller events to streamer\",!t||!t.hasOwnProperty(ue.XRControllerInput)||t[ue.XRControllerInput],e)),this.flags.set(ue.WaitForStreamer,new w(ue.WaitForStreamer,\"Wait for streamer\",\"Will continue trying to connect to the first streamer available.\",!t||!t.hasOwnProperty(ue.WaitForStreamer)||t[ue.WaitForStreamer],e)),this.flags.set(ue.HideUI,new w(ue.HideUI,\"Hide the UI overlay\",\"Will hide all UI overlay details\",!(!t||!t.hasOwnProperty(ue.HideUI))&&t[ue.HideUI],e)),this.numericParameters.set(me.AFKTimeoutSecs,new b(me.AFKTimeoutSecs,\"AFK timeout\",\"The time (in seconds) it takes for the application to time out if AFK timeout is enabled.\",0,null,t&&t.hasOwnProperty(me.AFKTimeoutSecs)?t[me.AFKTimeoutSecs]:120,e)),this.numericParameters.set(me.AFKCountdownSecs,new b(me.AFKCountdownSecs,\"AFK countdown\",\"The time (in seconds) for a user to respond before the stream is ended after an AFK timeout.\",10,null,10,e)),this.numericParameters.set(me.MaxReconnectAttempts,new b(me.MaxReconnectAttempts,\"Max Reconnects\",\"Maximum number of reconnects the application will attempt when a streamer disconnects.\",0,999,t&&t.hasOwnProperty(me.MaxReconnectAttempts)?t[me.MaxReconnectAttempts]:3,e)),this.numericParameters.set(me.MinQP,new b(me.MinQP,\"Min QP\",\"The lower bound for the quantization parameter (QP) of the encoder. 0 = Best quality, 51 = worst quality.\",0,51,t&&t.hasOwnProperty(me.MinQP)?t[me.MinQP]:0,e)),this.numericParameters.set(me.MaxQP,new b(me.MaxQP,\"Max QP\",\"The upper bound for the quantization parameter (QP) of the encoder. 0 = Best quality, 51 = worst quality.\",0,51,t&&t.hasOwnProperty(me.MaxQP)?t[me.MaxQP]:51,e)),this.numericParameters.set(me.WebRTCFPS,new b(me.WebRTCFPS,\"Max FPS\",\"The maximum FPS that WebRTC will try to transmit frames at.\",1,999,t&&t.hasOwnProperty(me.WebRTCFPS)?t[me.WebRTCFPS]:60,e)),this.numericParameters.set(me.WebRTCMinBitrate,new b(me.WebRTCMinBitrate,\"Min Bitrate (kbps)\",\"The minimum bitrate that WebRTC should use.\",0,5e5,t&&t.hasOwnProperty(me.WebRTCMinBitrate)?t[me.WebRTCMinBitrate]:0,e)),this.numericParameters.set(me.WebRTCMaxBitrate,new b(me.WebRTCMaxBitrate,\"Max Bitrate (kbps)\",\"The maximum bitrate that WebRTC should use.\",0,5e5,t&&t.hasOwnProperty(me.WebRTCMaxBitrate)?t[me.WebRTCMaxBitrate]:0,e)),this.numericParameters.set(me.StreamerAutoJoinInterval,new b(me.StreamerAutoJoinInterval,\"Streamer Auto Join Interval (ms)\",\"Delay between retries when waiting for an available streamer.\",500,9e5,t&&t.hasOwnProperty(me.StreamerAutoJoinInterval)?t[me.StreamerAutoJoinInterval]:3e3,e))}_addOnNumericSettingChangedListener(e,t){this.numericParameters.has(e)&&this.numericParameters.get(e).addOnChangedListener(t)}_addOnOptionSettingChangedListener(e,t){this.optionParameters.has(e)&&this.optionParameters.get(e).addOnChangedListener(t)}getNumericSettingValue(e){if(this.numericParameters.has(e))return this.numericParameters.get(e).number;throw new Error(`There is no numeric setting with the id of ${e}`)}getTextSettingValue(e){if(this.textParameters.has(e))return this.textParameters.get(e).value;throw new Error(`There is no numeric setting with the id of ${e}`)}setNumericSetting(e,t){if(!this.numericParameters.has(e))throw new Error(`There is no numeric setting with the id of ${e}`);this.numericParameters.get(e).number=t}_addOnSettingChangedListener(e,t){this.flags.has(e)&&(this.flags.get(e).onChange=t)}_addOnTextSettingChangedListener(e,t){this.textParameters.has(e)&&(this.textParameters.get(e).onChange=t)}getSettingOption(e){return this.optionParameters.get(e)}isFlagEnabled(e){return this.flags.get(e).flag}setFlagEnabled(e,t){this.flags.has(e)?this.flags.get(e).flag=t:i.Warning(i.GetStackTrace(),`Cannot toggle flag called ${e} - it does not exist in the Config.flags map.`)}setTextSetting(e,t){this.textParameters.has(e)?this.textParameters.get(e).text=t:i.Warning(i.GetStackTrace(),`Cannot set text setting called ${e} - it does not exist in the Config.textParameters map.`)}setOptionSettingOptions(e,t){this.optionParameters.has(e)?this.optionParameters.get(e).options=t:i.Warning(i.GetStackTrace(),`Cannot set text setting called ${e} - it does not exist in the Config.optionParameters map.`)}setOptionSettingValue(e,t){if(this.optionParameters.has(e)){const s=this.optionParameters.get(e),n=s.options;n.includes(t)||(n.push(t),s.options=n),s.selected=t}else i.Warning(i.GetStackTrace(),`Cannot set text setting called ${e} - it does not exist in the Config.enumParameters map.`)}setFlagLabel(e,t){this.flags.has(e)?this.flags.get(e).label=t:i.Warning(i.GetStackTrace(),`Cannot set label for flag called ${e} - it does not exist in the Config.flags map.`)}setSettings(e){for(const t of Object.keys(e))ge(t)?this.setFlagEnabled(t,e[t]):pe(t)?this.setNumericSetting(t,e[t]):ve(t)?this.setTextSetting(t,e[t]):fe(t)&&this.setOptionSettingValue(t,e[t])}getSettings(){const e={};for(const[t,s]of this.flags.entries())e[t]=s.flag;for(const[t,s]of this.numericParameters.entries())e[t]=s.number;for(const[t,s]of this.textParameters.entries())e[t]=s.text;for(const[t,s]of this.optionParameters.entries())e[t]=s.selected;return e}getFlags(){return Array.from(this.flags.values())}getTextSettings(){return Array.from(this.textParameters.values())}getNumericSettings(){return Array.from(this.numericParameters.values())}getOptionSettings(){return Array.from(this.optionParameters.values())}_registerOnChangeEvents(e){for(const t of this.flags.keys()){const s=this.flags.get(t);s&&(s.onChangeEmit=t=>e.dispatchEvent(new ie({id:s.id,type:\"flag\",value:t,target:s})))}for(const t of this.numericParameters.keys()){const s=this.numericParameters.get(t);s&&(s.onChangeEmit=t=>e.dispatchEvent(new ie({id:s.id,type:\"number\",value:t,target:s})))}for(const t of this.textParameters.keys()){const s=this.textParameters.get(t);s&&(s.onChangeEmit=t=>e.dispatchEvent(new ie({id:s.id,type:\"text\",value:t,target:s})))}for(const t of this.optionParameters.keys()){const s=this.optionParameters.get(t);s&&(s.onChangeEmit=t=>e.dispatchEvent(new ie({id:s.id,type:\"option\",value:t,target:s})))}}}var Ee;!function(e){e[e.LockedMouse=0]=\"LockedMouse\",e[e.HoveringMouse=1]=\"HoveringMouse\"}(Ee||(Ee={}));class ye{constructor(e,t,s){this.active=!1,this.countdownActive=!1,this.warnTimer=void 0,this.countDown=0,this.countDownTimer=void 0,this.config=e,this.pixelStreaming=t,this.onDismissAfk=s,this.onAFKTimedOutCallback=()=>{console.log(\"AFK timed out, did you want to override this callback?\")}}onAfkClick(){clearInterval(this.countDownTimer),(this.active||this.countdownActive)&&(this.startAfkWarningTimer(),this.pixelStreaming.dispatchEvent(new x))}startAfkWarningTimer(){this.config.getNumericSettingValue(me.AFKTimeoutSecs)>0&&this.config.isFlagEnabled(ue.AFKDetection)?this.active=!0:this.active=!1,this.resetAfkWarningTimer()}stopAfkWarningTimer(){this.active=!1,this.countdownActive=!1,clearTimeout(this.warnTimer),clearInterval(this.countDownTimer)}pauseAfkWarningTimer(){this.active=!1}resetAfkWarningTimer(){this.active&&this.config.isFlagEnabled(ue.AFKDetection)&&(clearTimeout(this.warnTimer),this.warnTimer=setTimeout((()=>this.activateAfkEvent()),1e3*this.config.getNumericSettingValue(me.AFKTimeoutSecs)))}activateAfkEvent(){this.pauseAfkWarningTimer(),this.pixelStreaming.dispatchEvent(new k({countDown:this.countDown,dismissAfk:this.onDismissAfk})),this.countDown=this.config.getNumericSettingValue(me.AFKCountdownSecs),this.countdownActive=!0,this.pixelStreaming.dispatchEvent(new L({countDown:this.countDown})),this.config.isFlagEnabled(ue.HoveringMouseMode)||document.exitPointerLock&&document.exitPointerLock(),this.countDownTimer=setInterval((()=>{this.countDown--,0==this.countDown?(this.pixelStreaming.dispatchEvent(new A),this.onAFKTimedOutCallback(),i.Log(i.GetStackTrace(),\"You have been disconnected due to inactivity\"),this.stopAfkWarningTimer()):this.pixelStreaming.dispatchEvent(new L({countDown:this.countDown}))}),1e3)}}class Me{constructor(){this.isReceivingFreezeFrame=!1}getDataChannelInstance(){return this}createDataChannel(e,t,s){this.peerConnection=e,this.label=t,this.datachannelOptions=s,null==s&&(this.datachannelOptions={},this.datachannelOptions.ordered=!0),this.dataChannel=this.peerConnection.createDataChannel(this.label,this.datachannelOptions),this.setupDataChannel()}setupDataChannel(){this.dataChannel.binaryType=\"arraybuffer\",this.dataChannel.onopen=e=>this.handleOnOpen(e),this.dataChannel.onclose=e=>this.handleOnClose(e),this.dataChannel.onmessage=e=>this.handleOnMessage(e),this.dataChannel.onerror=e=>this.handleOnError(e)}handleOnOpen(e){var t;i.Log(i.GetStackTrace(),`Data Channel (${this.label}) opened.`,7),this.onOpen(null===(t=this.dataChannel)||void 0===t?void 0:t.label,e)}handleOnClose(e){var t;i.Log(i.GetStackTrace(),`Data Channel (${this.label}) closed.`,7),this.onClose(null===(t=this.dataChannel)||void 0===t?void 0:t.label,e)}handleOnMessage(e){i.Log(i.GetStackTrace(),`Data Channel (${this.label}) message: ${e}`,8)}handleOnError(e){var t;i.Log(i.GetStackTrace(),`Data Channel (${this.label}) error: ${e}`,7),this.onError(null===(t=this.dataChannel)||void 0===t?void 0:t.label,e)}onOpen(e,t){}onClose(e,t){}onError(e,t){}}class we{}class be{}class Re{}class Pe{}class ke{}class Le{}class xe{}class Ae{constructor(){this.inboundVideoStats=new be,this.inboundAudioStats=new we,this.DataChannelStats=new Re,this.outBoundVideoStats=new ke,this.sessionStats=new Le,this.streamStats=new xe,this.codecs=new Map}processStats(e){this.localCandidates=new Array,this.remoteCandidates=new Array,this.candidatePairs=new Array,e.forEach((e=>{switch(e.type){case\"candidate-pair\":this.handleCandidatePair(e);break;case\"certificate\":case\"media-source\":case\"media-playout\":case\"outbound-rtp\":case\"peer-connection\":case\"remote-inbound-rtp\":break;case\"codec\":this.handleCodec(e);break;case\"data-channel\":this.handleDataChannel(e);break;case\"inbound-rtp\":this.handleInBoundRTP(e);break;case\"local-candidate\":this.handleLocalCandidate(e);break;case\"remote-candidate\":this.handleRemoteCandidate(e);break;case\"remote-outbound-rtp\":this.handleRemoteOutBound(e);break;case\"track\":this.handleTrack(e);break;case\"transport\":this.handleTransport(e);break;case\"stream\":this.handleStream(e);break;default:i.Error(i.GetStackTrace(),\"unhandled Stat Type\"),i.Log(i.GetStackTrace(),e)}}))}handleStream(e){this.streamStats=e}handleCandidatePair(e){this.candidatePairs.push(e)}handleDataChannel(e){this.DataChannelStats.bytesReceived=e.bytesReceived,this.DataChannelStats.bytesSent=e.bytesSent,this.DataChannelStats.dataChannelIdentifier=e.dataChannelIdentifier,this.DataChannelStats.id=e.id,this.DataChannelStats.label=e.label,this.DataChannelStats.messagesReceived=e.messagesReceived,this.DataChannelStats.messagesSent=e.messagesSent,this.DataChannelStats.protocol=e.protocol,this.DataChannelStats.state=e.state,this.DataChannelStats.timestamp=e.timestamp}handleLocalCandidate(e){const t=new Pe;t.label=\"local-candidate\",t.address=e.address,t.port=e.port,t.protocol=e.protocol,t.candidateType=e.candidateType,t.id=e.id,t.relayProtocol=e.relayProtocol,t.transportId=e.transportId,this.localCandidates.push(t)}handleRemoteCandidate(e){const t=new Pe;t.label=\"remote-candidate\",t.address=e.address,t.port=e.port,t.protocol=e.protocol,t.id=e.id,t.candidateType=e.candidateType,t.relayProtocol=e.relayProtocol,t.transportId=e.transportId,this.remoteCandidates.push(t)}handleInBoundRTP(e){switch(e.kind){case\"video\":this.inboundVideoStats=e,null!=this.lastVideoStats&&(this.inboundVideoStats.bitrate=8*(this.inboundVideoStats.bytesReceived-this.lastVideoStats.bytesReceived)/(this.inboundVideoStats.timestamp-this.lastVideoStats.timestamp),this.inboundVideoStats.bitrate=Math.floor(this.inboundVideoStats.bitrate)),this.lastVideoStats=Object.assign({},this.inboundVideoStats);break;case\"audio\":this.inboundAudioStats=e,null!=this.lastAudioStats&&(this.inboundAudioStats.bitrate=8*(this.inboundAudioStats.bytesReceived-this.lastAudioStats.bytesReceived)/(this.inboundAudioStats.timestamp-this.lastAudioStats.timestamp),this.inboundAudioStats.bitrate=Math.floor(this.inboundAudioStats.bitrate)),this.lastAudioStats=Object.assign({},this.inboundAudioStats);break;default:i.Log(i.GetStackTrace(),\"Kind is not handled\")}}handleRemoteOutBound(e){\"video\"===e.kind&&(this.outBoundVideoStats.bytesSent=e.bytesSent,this.outBoundVideoStats.id=e.id,this.outBoundVideoStats.localId=e.localId,this.outBoundVideoStats.packetsSent=e.packetsSent,this.outBoundVideoStats.remoteTimestamp=e.remoteTimestamp,this.outBoundVideoStats.timestamp=e.timestamp)}handleTrack(e){\"track\"!==e.type||\"video_label\"!==e.trackIdentifier&&\"video\"!==e.kind||(this.inboundVideoStats.framesDropped=e.framesDropped,this.inboundVideoStats.framesReceived=e.framesReceived,this.inboundVideoStats.frameHeight=e.frameHeight,this.inboundVideoStats.frameWidth=e.frameWidth)}handleTransport(e){this.transportStats=e}handleCodec(e){const t=e.id,s=`${e.mimeType.replace(\"video/\",\"\").replace(\"audio/\",\"\")}${e.sdpFmtpLine?` ${e.sdpFmtpLine}`:\"\"}`;this.codecs.set(t,s)}handleSessionStatistics(e,t,s){const n=Date.now()-e;this.sessionStats.runTime=new Date(n).toISOString().substr(11,8).toString();const r=null===t?\"Not sent yet\":t?\"true\":\"false\";this.sessionStats.controlsStreamInput=r,this.sessionStats.videoEncoderAvgQP=s}isNumber(e){return\"number\"==typeof e&&isFinite(e)}getActiveCandidatePair(){return this.transportStats?this.candidatePairs.find((e=>e.id===this.transportStats.selectedCandidatePairId),null):this.candidatePairs.find((e=>e.selected),null)}}const Fe=(De={parseRtpParameters:()=>e.parseRtpParameters,splitSections:()=>e.splitSections},Oe={},n.d(Oe,De),Oe);var De,Oe;class Ie{static isVideoTransciever(e){return this.canTransceiverReceiveVideo(e)||this.canTransceiverSendVideo(e)}static canTransceiverReceiveVideo(e){return!!e&&(\"sendrecv\"===e.direction||\"recvonly\"===e.direction)&&e.receiver&&e.receiver.track&&\"video\"===e.receiver.track.kind}static canTransceiverSendVideo(e){return!!e&&(\"sendrecv\"===e.direction||\"sendonly\"===e.direction)&&e.sender&&e.sender.track&&\"video\"===e.sender.track.kind}static isAudioTransciever(e){return this.canTransceiverReceiveAudio(e)||this.canTransceiverSendAudio(e)}static canTransceiverReceiveAudio(e){return!!e&&(\"sendrecv\"===e.direction||\"recvonly\"===e.direction)&&e.receiver&&e.receiver.track&&\"audio\"===e.receiver.track.kind}static canTransceiverSendAudio(e){return!!e&&(\"sendrecv\"===e.direction||\"sendonly\"===e.direction)&&e.sender&&e.sender.track&&\"audio\"===e.sender.track.kind}}var Ue,Ge,Be=function(e,t,s,n){return new(s||(s=Promise))((function(r,i){function a(e){try{l(n.next(e))}catch(e){i(e)}}function o(e){try{l(n.throw(e))}catch(e){i(e)}}function l(e){var t;e.done?r(e.value):(t=e.value,t instanceof s?t:new s((function(e){e(t)}))).then(a,o)}l((n=n.apply(e,t||[])).next())}))};class ze{constructor(e,t,s){this.config=t,this.createPeerConnection(e,s)}createPeerConnection(e,t){this.config.isFlagEnabled(ue.ForceTURN)&&(e.iceTransportPolicy=\"relay\",i.Log(i.GetStackTrace(),\"Forcing TURN usage by setting ICE Transport Policy in peer connection config.\")),this.peerConnection=new RTCPeerConnection(e),this.peerConnection.onsignalingstatechange=e=>this.handleSignalStateChange(e),this.peerConnection.oniceconnectionstatechange=e=>this.handleIceConnectionStateChange(e),this.peerConnection.onicegatheringstatechange=e=>this.handleIceGatheringStateChange(e),this.peerConnection.ontrack=e=>this.handleOnTrack(e),this.peerConnection.onicecandidate=e=>this.handleIceCandidate(e),this.peerConnection.ondatachannel=e=>this.handleDataChannel(e),this.aggregatedStats=new Ae,this.preferredCodec=t,this.updateCodecSelection=!0}createOffer(e,t){return Be(this,void 0,void 0,(function*(){i.Log(i.GetStackTrace(),\"Create Offer\",6);const s=\"localhost\"===location.hostname||\"127.0.0.1\"===location.hostname,n=\"https:\"===location.protocol;let r=t.isFlagEnabled(ue.UseMic);!r||s||n||(r=!1,i.Error(i.GetStackTrace(),\"Microphone access in the browser will not work if you are not on HTTPS or localhost. Disabling mic access.\"),i.Error(i.GetStackTrace(),\"For testing you can enable HTTP microphone access Chrome by visiting chrome://flags/ and enabling 'unsafely-treat-insecure-origin-as-secure'\")),this.setupTransceiversAsync(r).finally((()=>{var t;null===(t=this.peerConnection)||void 0===t||t.createOffer(e).then((e=>{var t;this.showTextOverlayConnecting(),e.sdp=this.mungeSDP(e.sdp,r),null===(t=this.peerConnection)||void 0===t||t.setLocalDescription(e),this.onSendWebRTCOffer(e)})).catch((()=>{this.showTextOverlaySetupFailure()}))}))}))}receiveOffer(e,t){var s;return Be(this,void 0,void 0,(function*(){i.Log(i.GetStackTrace(),\"Receive Offer\",6),null===(s=this.peerConnection)||void 0===s||s.setRemoteDescription(e).then((()=>{const s=\"localhost\"===location.hostname||\"127.0.0.1\"===location.hostname,n=\"https:\"===location.protocol;let r=t.isFlagEnabled(ue.UseMic);!r||s||n||(r=!1,i.Error(i.GetStackTrace(),\"Microphone access in the browser will not work if you are not on HTTPS or localhost. Disabling mic access.\"),i.Error(i.GetStackTrace(),\"For testing you can enable HTTP microphone access Chrome by visiting chrome://flags/ and enabling 'unsafely-treat-insecure-origin-as-secure'\")),this.config.setOptionSettingOptions(Ce.PreferredCodec,this.fuzzyIntersectUEAndBrowserCodecs(e)),this.setupTransceiversAsync(r).finally((()=>{var e;null===(e=this.peerConnection)||void 0===e||e.createAnswer().then((e=>{var t;return e.sdp=this.mungeSDP(e.sdp,r),null===(t=this.peerConnection)||void 0===t?void 0:t.setLocalDescription(e)})).then((()=>{var e;this.onSendWebRTCAnswer(null===(e=this.peerConnection)||void 0===e?void 0:e.currentLocalDescription)})).catch((()=>{i.Error(i.GetStackTrace(),\"createAnswer() failed\")}))}))}))}))}receiveAnswer(e){var t;null===(t=this.peerConnection)||void 0===t||t.setRemoteDescription(e),this.config.setOptionSettingOptions(Ce.PreferredCodec,this.fuzzyIntersectUEAndBrowserCodecs(e))}generateStats(){var e;null===(e=this.peerConnection)||void 0===e||e.getStats(null).then((e=>{this.aggregatedStats.processStats(e),this.onVideoStats(this.aggregatedStats),this.updateCodecSelection&&this.aggregatedStats.inboundVideoStats.codecId&&this.config.setOptionSettingValue(Ce.PreferredCodec,this.aggregatedStats.codecs.get(this.aggregatedStats.inboundVideoStats.codecId))}))}close(){this.peerConnection&&(this.peerConnection.close(),this.peerConnection=null)}mungeSDP(e,t){let s=e.replace(/(a=fmtp:\\d+ .*level-asymmetry-allowed=.*)\\r\\n/gm,\"$1;x-google-start-bitrate=10000;x-google-max-bitrate=100000\\r\\n\"),n=\"maxaveragebitrate=510000;\";return t&&(n+=\"sprop-maxcapturerate=48000;\"),n+=this.config.isFlagEnabled(ue.ForceMonoAudio)?\"stereo=0;\":\"stereo=1;\",n+=\"useinbandfec=1\",s=s.replace(\"useinbandfec=1\",n),s}handleOnIce(e){var t;i.Log(i.GetStackTrace(),\"peerconnection handleOnIce\",6),this.config.isFlagEnabled(ue.ForceTURN)&&e.candidate.indexOf(\"relay\")<0?i.Info(i.GetStackTrace(),`Dropping candidate because it was not TURN relay. | Type= ${e.type} | Protocol= ${e.protocol} | Address=${e.address} | Port=${e.port} |`,6):null===(t=this.peerConnection)||void 0===t||t.addIceCandidate(e)}handleSignalStateChange(e){i.Log(i.GetStackTrace(),\"signaling state change: \"+e,6)}handleIceConnectionStateChange(e){i.Log(i.GetStackTrace(),\"ice connection state change: \"+e,6),this.onIceConnectionStateChange(e)}handleIceGatheringStateChange(e){i.Log(i.GetStackTrace(),\"ice gathering state change: \"+JSON.stringify(e),6)}handleOnTrack(e){this.onTrack(e)}handleIceCandidate(e){this.onPeerIceCandidate(e)}handleDataChannel(e){this.onDataChannel(e)}onTrack(e){}onIceConnectionStateChange(e){}onPeerIceCandidate(e){}onDataChannel(e){}fuzzyIntersectUEAndBrowserCodecs(e){const t=new Array,s=this.parseAvailableCodecs(e),n=this.config.getSettingOption(Ce.PreferredCodec).options;for(const e of s)if(n.includes(e))t.push(e);else{const s=e.split(\" \")[0];for(const e of n)if(e.includes(s)){t.push(e);break}}return t}setupTransceiversAsync(e){var t,s,n,r,i,a,o,l,d,c,h,u;return Be(this,void 0,void 0,(function*(){let g=!1;for(const e of null!==(s=null===(t=this.peerConnection)||void 0===t?void 0:t.getTransceivers())&&void 0!==s?s:[])if(e&&e.receiver&&e.receiver.track&&\"video\"===e.receiver.track.kind){g=!0;break}if(g||null===(n=this.peerConnection)||void 0===n||n.addTransceiver(\"video\",{direction:\"recvonly\"}),RTCRtpReceiver.getCapabilities&&\"\"!=this.preferredCodec)for(const e of null!==(i=null===(r=this.peerConnection)||void 0===r?void 0:r.getTransceivers())&&void 0!==i?i:[])if(e&&e.receiver&&e.receiver.track&&\"video\"===e.receiver.track.kind&&e.setCodecPreferences){const t=this.preferredCodec.split(\" \"),s={mimeType:\"video/\"+t[0],clockRate:9e4,sdpFmtpLine:t[1]?t[1]:\"\"},n=[s];RTCRtpReceiver.getCapabilities(\"video\").codecs.forEach((e=>{(e.mimeType!=s.mimeType||(null==e?void 0:e.sdpFmtpLine)!=(null==s?void 0:s.sdpFmtpLine))&&n.push(e)}));for(const e of n)void 0!==(null==e?void 0:e.sdpFmtpLine)&&\"\"!==e.sdpFmtpLine||delete e.sdpFmtpLine;e.setCodecPreferences(n)}let m=!1;for(const e of null!==(o=null===(a=this.peerConnection)||void 0===a?void 0:a.getTransceivers())&&void 0!==o?o:[])if(e&&e.receiver&&e.receiver.track&&\"audio\"===e.receiver.track.kind){m=!0;break}if(e){const e={video:!1,audio:{autoGainControl:!1,channelCount:1,echoCancellation:!1,latency:0,noiseSuppression:!1,sampleRate:48e3,sampleSize:16,volume:1}},t=yield navigator.mediaDevices.getUserMedia(e);if(t)if(m){for(const e of null!==(c=null===(d=this.peerConnection)||void 0===d?void 0:d.getTransceivers())&&void 0!==c?c:[])if(Ie.canTransceiverReceiveAudio(e))for(const s of t.getTracks())s.kind&&\"audio\"==s.kind&&(e.sender.replaceTrack(s),e.direction=\"sendrecv\")}else for(const e of t.getTracks())e.kind&&\"audio\"==e.kind&&(null===(h=this.peerConnection)||void 0===h||h.addTransceiver(e,{direction:\"sendrecv\"}));else m||null===(u=this.peerConnection)||void 0===u||u.addTransceiver(\"audio\",{direction:\"recvonly\"})}else m||null===(l=this.peerConnection)||void 0===l||l.addTransceiver(\"audio\",{direction:\"recvonly\"})}))}onVideoStats(e){}onSendWebRTCOffer(e){}onSendWebRTCAnswer(e){}showTextOverlayConnecting(){}showTextOverlaySetupFailure(){}parseAvailableCodecs(e){if(!RTCRtpReceiver.getCapabilities)return[\"Only available on Chrome\"];const t=[],s=(0,Fe.splitSections)(e.sdp);return s.shift(),s.forEach((e=>{const{codecs:s}=(0,Fe.parseRtpParameters)(e),n=/(VP\\d|H26\\d|AV1).*/;s.forEach((e=>{const s=e.name+\" \"+Object.keys(e.parameters||{}).map((t=>t+\"=\"+e.parameters[t])).join(\";\");if(null!==n.exec(s)){\"VP9\"==e.name&&(e.parameters={\"profile-id\":\"0\"});const s=e.name+\" \"+Object.keys(e.parameters||{}).map((t=>t+\"=\"+e.parameters[t])).join(\";\");t.push(s)}}))})),t}}class _e{constructor(){this.PixelStreamingSettings=new Ve,this.EncoderSettings=new He,this.WebRTCSettings=new We}ueCompatible(){null!=this.WebRTCSettings.MaxFPS&&(this.WebRTCSettings.FPS=this.WebRTCSettings.MaxFPS)}}class Ve{}class He{}class We{}class Ne{constructor(){this.ReceiptTimeMs=null,this.TransmissionTimeMs=null,this.PreCaptureTimeMs=null,this.PostCaptureTimeMs=null,this.PreEncodeTimeMs=null,this.PostEncodeTimeMs=null,this.EncodeMs=null,this.CaptureToSendMs=null,this.testStartTimeMs=0,this.browserReceiptTimeMs=0,this.latencyExcludingDecode=0,this.testDuration=0,this.networkLatency=0,this.browserSendLatency=0,this.frameDisplayDeltaTimeMs=0,this.endToEndLatency=0,this.encodeLatency=0}setFrameDisplayDeltaTime(e){0==this.frameDisplayDeltaTimeMs&&(this.frameDisplayDeltaTimeMs=Math.round(e))}processFields(){null!=this.EncodeMs||null==this.PreEncodeTimeMs&&null==this.PostEncodeTimeMs||(i.Log(i.GetStackTrace(),`Setting Encode Ms \\n ${this.PostEncodeTimeMs} \\n ${this.PreEncodeTimeMs}`,6),this.EncodeMs=this.PostEncodeTimeMs-this.PreEncodeTimeMs),null!=this.CaptureToSendMs||null==this.PreCaptureTimeMs&&null==this.PostCaptureTimeMs||(i.Log(i.GetStackTrace(),`Setting CaptureToSendMs Ms \\n ${this.PostCaptureTimeMs} \\n ${this.PreCaptureTimeMs}`,6),this.CaptureToSendMs=this.PostCaptureTimeMs-this.PreCaptureTimeMs)}}class Ke{static setExtensionFromBytes(e,t){t.receiving||(t.mimetype=\"\",t.extension=\"\",t.receiving=!0,t.valid=!1,t.chunks=0,t.data=[],t.timestampStart=(new Date).getTime(),i.Log(i.GetStackTrace(),\"Received first chunk of file\",6));const s=new TextDecoder(\"utf-16\").decode(e.slice(1));i.Log(i.GetStackTrace(),s,6),t.extension=s}static setMimeTypeFromBytes(e,t){t.receiving||(t.mimetype=\"\",t.extension=\"\",t.receiving=!0,t.valid=!1,t.chunks=0,t.data=[],t.timestampStart=(new Date).getTime(),i.Log(i.GetStackTrace(),\"Received first chunk of file\",6));const s=new TextDecoder(\"utf-16\").decode(e.slice(1));i.Log(i.GetStackTrace(),s,6),t.mimetype=s}static setContentsFromBytes(e,t){if(!t.receiving)return;t.chunks=Math.ceil(new DataView(e.slice(1,5).buffer).getInt32(0,!0)/16379);const s=e.slice(5);if(t.data.push(s),i.Log(i.GetStackTrace(),`Received file chunk: ${t.data.length}/${t.chunks}`,6),t.data.length===t.chunks){t.receiving=!1,t.valid=!0,i.Log(i.GetStackTrace(),\"Received complete file\",6);const e=(new Date).getTime()-t.timestampStart,s=Math.round(16384*t.chunks/e);i.Log(i.GetStackTrace(),`Average transfer bitrate: ${s}kb/s over ${e/1e3} seconds`,6);const n=new Blob(t.data,{type:t.mimetype}),r=document.createElement(\"a\");r.setAttribute(\"href\",URL.createObjectURL(n)),r.setAttribute(\"download\",`transfer.${t.extension}`),document.body.append(r),r.remove()}else t.data.length>t.chunks&&(t.receiving=!1,i.Error(i.GetStackTrace(),`Received bigger file than advertised: ${t.data.length}/${t.chunks}`))}}class Qe{constructor(){this.mimetype=\"\",this.extension=\"\",this.receiving=!1,this.chunks=0,this.data=[],this.valid=!1}}class qe{}qe.mainButton=0,qe.auxiliaryButton=1,qe.secondaryButton=2,qe.fourthButton=3,qe.fifthButton=4;class $e{}$e.primaryButton=1,$e.secondaryButton=2,$e.auxiliaryButton=4,$e.fourthButton=8,$e.fifthButton=16;class Xe{constructor(){this.unregisterCallbacks=[]}addUnregisterCallback(e){this.unregisterCallbacks.push(e)}unregisterAll(){for(const e of this.unregisterCallbacks)e();this.unregisterCallbacks=[]}}class je{constructor(e,t,s){this.touchEventListenerTracker=new Xe,this.toStreamerMessagesProvider=e,this.videoElementProvider=t,this.coordinateConverter=s;const n=e=>this.onTouchStart(e),r=e=>this.onTouchEnd(e),i=e=>this.onTouchMove(e);document.addEventListener(\"touchstart\",n,{passive:!1}),document.addEventListener(\"touchend\",r,{passive:!1}),document.addEventListener(\"touchmove\",i,{passive:!1}),this.touchEventListenerTracker.addUnregisterCallback((()=>document.removeEventListener(\"touchstart\",n))),this.touchEventListenerTracker.addUnregisterCallback((()=>document.removeEventListener(\"touchend\",r))),this.touchEventListenerTracker.addUnregisterCallback((()=>document.removeEventListener(\"touchmove\",i)))}unregisterTouchEvents(){this.touchEventListenerTracker.unregisterAll()}setVideoElementParentClientRect(e){this.videoElementParentClientRect=e}onTouchStart(e){if(this.videoElementProvider.isVideoReady()&&e.target===this.videoElementProvider.getVideoElement()){if(null==this.fakeTouchFinger){const t=e.changedTouches[0];this.fakeTouchFinger=new Je(t.identifier,t.clientX-this.videoElementParentClientRect.left,t.clientY-this.videoElementParentClientRect.top);const s=this.videoElementProvider.getVideoParentElement(),n=new MouseEvent(\"mouseenter\",t);s.dispatchEvent(n);const r=this.coordinateConverter.normalizeAndQuantizeUnsigned(this.fakeTouchFinger.x,this.fakeTouchFinger.y);this.toStreamerMessagesProvider.toStreamerHandlers.get(\"MouseDown\")([qe.mainButton,r.x,r.y])}e.preventDefault()}}onTouchEnd(e){if(!this.videoElementProvider.isVideoReady()||null==this.fakeTouchFinger)return;const t=this.videoElementProvider.getVideoParentElement(),s=this.toStreamerMessagesProvider.toStreamerHandlers;for(let n=0;n<e.changedTouches.length;n++){const r=e.changedTouches[n];if(r.identifier===this.fakeTouchFinger.id){const e=r.clientX-this.videoElementParentClientRect.left,n=r.clientY-this.videoElementParentClientRect.top,i=this.coordinateConverter.normalizeAndQuantizeUnsigned(e,n);s.get(\"MouseUp\")([qe.mainButton,i.x,i.y]);const a=new MouseEvent(\"mouseleave\",r);t.dispatchEvent(a),this.fakeTouchFinger=null;break}}e.preventDefault()}onTouchMove(e){if(!this.videoElementProvider.isVideoReady()||null==this.fakeTouchFinger)return;const t=this.toStreamerMessagesProvider.toStreamerHandlers;for(let s=0;s<e.touches.length;s++){const n=e.touches[s];if(n.identifier===this.fakeTouchFinger.id){const e=n.clientX-this.videoElementParentClientRect.left,s=n.clientY-this.videoElementParentClientRect.top,r=this.coordinateConverter.normalizeAndQuantizeUnsigned(e,s),i=this.coordinateConverter.normalizeAndQuantizeSigned(e-this.fakeTouchFinger.x,s-this.fakeTouchFinger.y);t.get(\"MouseMove\")([r.x,r.y,i.x,i.y]),this.fakeTouchFinger.x=e,this.fakeTouchFinger.y=s;break}}e.preventDefault()}}class Je{constructor(e,t,s){this.id=e,this.x=t,this.y=s}}class Ye{}Ye.backSpace=8,Ye.shift=16,Ye.control=17,Ye.alt=18,Ye.rightShift=253,Ye.rightControl=254,Ye.rightAlt=255;class Ze{constructor(e,t,s){this.keyboardEventListenerTracker=new Xe,this.CodeToKeyCode={Escape:27,Digit0:48,Digit1:49,Digit2:50,Digit3:51,Digit4:52,Digit5:53,Digit6:54,Digit7:55,Digit8:56,Digit9:57,Minus:173,Equal:187,Backspace:8,Tab:9,KeyQ:81,KeyW:87,KeyE:69,KeyR:82,KeyT:84,KeyY:89,KeyU:85,KeyI:73,KeyO:79,KeyP:80,BracketLeft:219,BracketRight:221,Enter:13,ControlLeft:17,KeyA:65,KeyS:83,KeyD:68,KeyF:70,KeyG:71,KeyH:72,KeyJ:74,KeyK:75,KeyL:76,Semicolon:186,Quote:222,Backquote:192,ShiftLeft:16,Backslash:220,KeyZ:90,KeyX:88,KeyC:67,KeyV:86,KeyB:66,KeyN:78,KeyM:77,Comma:188,Period:190,Slash:191,ShiftRight:253,AltLeft:18,Space:32,CapsLock:20,F1:112,F2:113,F3:114,F4:115,F5:116,F6:117,F7:118,F8:119,F9:120,F10:121,F11:122,F12:123,Pause:19,ScrollLock:145,NumpadDivide:111,NumpadMultiply:106,NumpadSubtract:109,NumpadAdd:107,NumpadDecimal:110,Numpad9:105,Numpad8:104,Numpad7:103,Numpad6:102,Numpad5:101,Numpad4:100,Numpad3:99,Numpad2:98,Numpad1:97,Numpad0:96,NumLock:144,ControlRight:254,AltRight:255,Home:36,End:35,ArrowUp:38,ArrowLeft:37,ArrowRight:39,ArrowDown:40,PageUp:33,PageDown:34,Insert:45,Delete:46,ContextMenu:93},this.toStreamerMessagesProvider=e,this.config=t,this.activeKeysProvider=s}registerKeyBoardEvents(){const e=e=>this.handleOnCompositionEnd(e),t=e=>this.handleOnKeyDown(e),s=e=>this.handleOnKeyUp(e),n=e=>this.handleOnKeyPress(e);document.addEventListener(\"compositionend\",e),document.addEventListener(\"keydown\",t),document.addEventListener(\"keyup\",s),document.addEventListener(\"keypress\",n),this.keyboardEventListenerTracker.addUnregisterCallback((()=>document.removeEventListener(\"compositionend\",e))),this.keyboardEventListenerTracker.addUnregisterCallback((()=>document.removeEventListener(\"keydown\",t))),this.keyboardEventListenerTracker.addUnregisterCallback((()=>document.removeEventListener(\"keyup\",s))),this.keyboardEventListenerTracker.addUnregisterCallback((()=>document.removeEventListener(\"keypress\",n)))}unregisterKeyBoardEvents(){this.keyboardEventListenerTracker.unregisterAll()}handleOnKeyDown(e){const t=this.getKeycode(e);t&&229!==t&&(i.Log(i.GetStackTrace(),`key down ${t}, repeat = ${e.repeat}`,6),this.toStreamerMessagesProvider.toStreamerHandlers.get(\"KeyDown\")([this.getKeycode(e),e.repeat?1:0]),this.activeKeysProvider.getActiveKeys().push(t),t===Ye.backSpace&&document.dispatchEvent(new KeyboardEvent(\"keypress\",{charCode:Ye.backSpace})),this.config.isFlagEnabled(ue.SuppressBrowserKeys)&&this.isKeyCodeBrowserKey(t)&&e.preventDefault())}handleOnKeyUp(e){const t=this.getKeycode(e);t&&(i.Log(i.GetStackTrace(),`key up ${t}`,6),this.toStreamerMessagesProvider.toStreamerHandlers.get(\"KeyUp\")([t]),this.config.isFlagEnabled(ue.SuppressBrowserKeys)&&this.isKeyCodeBrowserKey(t)&&e.preventDefault())}handleOnKeyPress(e){if(!(\"charCode\"in e))return void i.Warning(i.GetStackTrace(),\"KeyboardEvent.charCode is deprecated in this browser, cannot send key press.\");const t=e.charCode;i.Log(i.GetStackTrace(),`key press ${t}`,6),this.toStreamerMessagesProvider.toStreamerHandlers.get(\"KeyPress\")([t])}handleOnCompositionEnd(e){e.data&&e.data.length&&e.data.split(\"\").forEach((e=>{this.handleOnKeyDown(new KeyboardEvent(\"keydown\",{keyCode:e.toUpperCase().charCodeAt(0),charCode:e.charCodeAt(0)})),this.handleOnKeyPress(new KeyboardEvent(\"keypress\",{keyCode:e.toUpperCase().charCodeAt(0),charCode:e.charCodeAt(0)})),this.handleOnKeyUp(new KeyboardEvent(\"keyup\",{keyCode:e.toUpperCase().charCodeAt(0),charCode:e.charCodeAt(0)}))}))}getKeycode(e){if(!(\"keyCode\"in e)){const t=e;return t.code in this.CodeToKeyCode?this.CodeToKeyCode[t.code]:(i.Warning(i.GetStackTrace(),`Keyboard code of ${t.code} is not supported in our mapping, ignoring this key.`),null)}return e.keyCode===Ye.shift&&\"ShiftRight\"===e.code?Ye.rightShift:e.keyCode===Ye.control&&\"ControlRight\"===e.code?Ye.rightControl:e.keyCode===Ye.alt&&\"AltRight\"===e.code?Ye.rightAlt:e.keyCode}isKeyCodeBrowserKey(e){return e>=112&&e<=123||9===e}}class et{constructor(e,t,s){this.x=0,this.y=0,this.updateMouseMovePositionEvent=e=>{this.updateMouseMovePosition(e)},this.mouseEventListenerTracker=new Xe,this.videoElementProvider=e,this.mouseController=t,this.activeKeysProvider=s;const n=this.videoElementProvider.getVideoParentElement();this.x=n.getBoundingClientRect().width/2,this.y=n.getBoundingClientRect().height/2,this.coord=this.mouseController.coordinateConverter.normalizeAndQuantizeUnsigned(this.x,this.y)}unregisterMouseEvents(){this.mouseEventListenerTracker.unregisterAll()}lockStateChange(){const e=this.videoElementProvider.getVideoParentElement(),t=this.mouseController.toStreamerMessagesProvider.toStreamerHandlers;if(document.pointerLockElement===e||document.mozPointerLockElement===e)i.Log(i.GetStackTrace(),\"Pointer locked\",6),document.addEventListener(\"mousemove\",this.updateMouseMovePositionEvent,!1),this.mouseEventListenerTracker.addUnregisterCallback((()=>document.removeEventListener(\"mousemove\",this.updateMouseMovePositionEvent,!1)));else{i.Log(i.GetStackTrace(),\"The pointer lock status is now unlocked\",6),document.removeEventListener(\"mousemove\",this.updateMouseMovePositionEvent,!1);let e=this.activeKeysProvider.getActiveKeys();const s=new Set(e),n=[];s.forEach((e=>{n[e]})),n.forEach((e=>{t.get(\"KeyUp\")([e])})),e=[]}}updateMouseMovePosition(e){if(!this.videoElementProvider.isVideoReady())return;const t=this.mouseController.toStreamerMessagesProvider.toStreamerHandlers,s=this.videoElementProvider.getVideoParentElement().clientWidth,n=this.videoElementProvider.getVideoParentElement().clientHeight;this.x+=e.movementX,this.y+=e.movementY,this.x>s&&(this.x-=s),this.y>n&&(this.y-=n),this.x<0&&(this.x=s+this.x),this.y<0&&(this.y=n-this.y),this.coord=this.mouseController.coordinateConverter.normalizeAndQuantizeUnsigned(this.x,this.y);const r=this.mouseController.coordinateConverter.normalizeAndQuantizeSigned(e.movementX,e.movementY);t.get(\"MouseMove\")([this.coord.x,this.coord.y,r.x,r.y])}handleMouseDown(e){this.videoElementProvider.isVideoReady()&&this.mouseController.toStreamerMessagesProvider.toStreamerHandlers.get(\"MouseDown\")([e.button,this.coord.x,this.coord.y])}handleMouseUp(e){this.videoElementProvider.isVideoReady()&&this.mouseController.toStreamerMessagesProvider.toStreamerHandlers.get(\"MouseUp\")([e.button,this.coord.x,this.coord.y])}handleMouseWheel(e){this.videoElementProvider.isVideoReady()&&this.mouseController.toStreamerMessagesProvider.toStreamerHandlers.get(\"MouseWheel\")([e.wheelDelta,this.coord.x,this.coord.y])}handleMouseDouble(e){this.videoElementProvider.isVideoReady()&&this.mouseController.toStreamerMessagesProvider.toStreamerHandlers.get(\"MouseDouble\")([e.button,this.coord.x,this.coord.y])}handlePressMouseButtons(e){this.videoElementProvider.isVideoReady()&&this.mouseController.pressMouseButtons(e.buttons,this.x,this.y)}handleReleaseMouseButtons(e){this.videoElementProvider.isVideoReady()&&this.mouseController.releaseMouseButtons(e.buttons,this.x,this.y)}}class tt{constructor(e){this.mouseController=e}unregisterMouseEvents(){}updateMouseMovePosition(e){if(!this.mouseController.videoElementProvider.isVideoReady())return;i.Log(i.GetStackTrace(),\"MouseMove\",6);const t=this.mouseController.coordinateConverter.normalizeAndQuantizeUnsigned(e.offsetX,e.offsetY),s=this.mouseController.coordinateConverter.normalizeAndQuantizeSigned(e.movementX,e.movementY);this.mouseController.toStreamerMessagesProvider.toStreamerHandlers.get(\"MouseMove\")([t.x,t.y,s.x,s.y]),e.preventDefault()}handleMouseDown(e){if(!this.mouseController.videoElementProvider.isVideoReady())return;i.Log(i.GetStackTrace(),\"onMouse Down\",6);const t=this.mouseController.coordinateConverter.normalizeAndQuantizeUnsigned(e.offsetX,e.offsetY);this.mouseController.toStreamerMessagesProvider.toStreamerHandlers.get(\"MouseDown\")([e.button,t.x,t.y]),e.preventDefault()}handleMouseUp(e){if(!this.mouseController.videoElementProvider.isVideoReady())return;i.Log(i.GetStackTrace(),\"onMouse Up\",6);const t=this.mouseController.coordinateConverter.normalizeAndQuantizeUnsigned(e.offsetX,e.offsetY);this.mouseController.toStreamerMessagesProvider.toStreamerHandlers.get(\"MouseUp\")([e.button,t.x,t.y]),e.preventDefault()}handleContextMenu(e){this.mouseController.videoElementProvider.isVideoReady()&&e.preventDefault()}handleMouseWheel(e){if(!this.mouseController.videoElementProvider.isVideoReady())return;const t=this.mouseController.coordinateConverter.normalizeAndQuantizeUnsigned(e.offsetX,e.offsetY);this.mouseController.toStreamerMessagesProvider.toStreamerHandlers.get(\"MouseWheel\")([e.wheelDelta,t.x,t.y]),e.preventDefault()}handleMouseDouble(e){if(!this.mouseController.videoElementProvider.isVideoReady())return;const t=this.mouseController.coordinateConverter.normalizeAndQuantizeUnsigned(e.offsetX,e.offsetY);this.mouseController.toStreamerMessagesProvider.toStreamerHandlers.get(\"MouseDouble\")([e.button,t.x,t.y])}handlePressMouseButtons(e){this.mouseController.videoElementProvider.isVideoReady()&&(i.Log(i.GetStackTrace(),\"onMouse press\",6),this.mouseController.pressMouseButtons(e.buttons,e.offsetX,e.offsetY))}handleReleaseMouseButtons(e){this.mouseController.videoElementProvider.isVideoReady()&&(i.Log(i.GetStackTrace(),\"onMouse release\",6),this.mouseController.releaseMouseButtons(e.buttons,e.offsetX,e.offsetY))}}class st{constructor(e,t,s,n){this.mouseEventListenerTracker=new Xe,this.toStreamerMessagesProvider=e,this.coordinateConverter=s,this.videoElementProvider=t,this.activeKeysProvider=n,this.registerMouseEnterAndLeaveEvents()}unregisterMouseEvents(){this.mouseEventListenerTracker.unregisterAll()}registerLockedMouseEvents(e){const t=this.videoElementProvider.getVideoParentElement(),s=new et(this.videoElementProvider,e,this.activeKeysProvider);if(t.requestPointerLock=t.requestPointerLock||t.mozRequestPointerLock,document.exitPointerLock=document.exitPointerLock||document.mozExitPointerLock,t.requestPointerLock){const e=()=>{t.requestPointerLock()};t.addEventListener(\"click\",e),this.mouseEventListenerTracker.addUnregisterCallback((()=>t.removeEventListener(\"click\",e)))}const n=()=>s.lockStateChange();document.addEventListener(\"pointerlockchange\",n,!1),document.addEventListener(\"mozpointerlockchange\",n,!1),this.mouseEventListenerTracker.addUnregisterCallback((()=>document.removeEventListener(\"pointerlockchange\",n,!1))),this.mouseEventListenerTracker.addUnregisterCallback((()=>document.removeEventListener(\"mozpointerlockchange\",n,!1)));const r=e=>s.handleMouseDown(e),i=e=>s.handleMouseUp(e),a=e=>s.handleMouseWheel(e),o=e=>s.handleMouseDouble(e);t.addEventListener(\"mousedown\",r),t.addEventListener(\"mouseup\",i),t.addEventListener(\"wheel\",a),t.addEventListener(\"dblclick\",o),this.mouseEventListenerTracker.addUnregisterCallback((()=>t.removeEventListener(\"mousedown\",r))),this.mouseEventListenerTracker.addUnregisterCallback((()=>t.removeEventListener(\"mouseup\",i))),this.mouseEventListenerTracker.addUnregisterCallback((()=>t.removeEventListener(\"wheel\",a))),this.mouseEventListenerTracker.addUnregisterCallback((()=>t.removeEventListener(\"dblclick\",o))),this.mouseEventListenerTracker.addUnregisterCallback((()=>s.unregisterMouseEvents())),this.mouseEventListenerTracker.addUnregisterCallback((()=>{!document.exitPointerLock||document.pointerLockElement!==t&&document.mozPointerLockElement!==t||document.exitPointerLock()}))}registerHoveringMouseEvents(e){const t=this.videoElementProvider.getVideoParentElement(),s=new tt(e),n=e=>s.updateMouseMovePosition(e),r=e=>s.handleMouseDown(e),i=e=>s.handleMouseUp(e),a=e=>s.handleContextMenu(e),o=e=>s.handleMouseWheel(e),l=e=>s.handleMouseDouble(e);t.addEventListener(\"mousemove\",n),t.addEventListener(\"mousedown\",r),t.addEventListener(\"mouseup\",i),t.addEventListener(\"contextmenu\",a),t.addEventListener(\"wheel\",o),t.addEventListener(\"dblclick\",l),this.mouseEventListenerTracker.addUnregisterCallback((()=>t.removeEventListener(\"mousemove\",n))),this.mouseEventListenerTracker.addUnregisterCallback((()=>t.removeEventListener(\"mousedown\",r))),this.mouseEventListenerTracker.addUnregisterCallback((()=>t.removeEventListener(\"mouseup\",i))),this.mouseEventListenerTracker.addUnregisterCallback((()=>t.removeEventListener(\"contextmenu\",a))),this.mouseEventListenerTracker.addUnregisterCallback((()=>t.removeEventListener(\"wheel\",o))),this.mouseEventListenerTracker.addUnregisterCallback((()=>t.removeEventListener(\"dblclick\",l))),this.mouseEventListenerTracker.addUnregisterCallback((()=>s.unregisterMouseEvents()))}registerMouseEnterAndLeaveEvents(){const e=this.videoElementProvider.getVideoParentElement(),t=e=>{this.videoElementProvider.isVideoReady()&&(i.Log(i.GetStackTrace(),\"Mouse Entered\",6),this.sendMouseEnter(),this.pressMouseButtons(e.buttons,e.x,e.y))},s=e=>{this.videoElementProvider.isVideoReady()&&(i.Log(i.GetStackTrace(),\"Mouse Left\",6),this.sendMouseLeave(),this.releaseMouseButtons(e.buttons,e.x,e.y))};e.addEventListener(\"mouseenter\",t),e.addEventListener(\"mouseleave\",s),this.mouseEventListenerTracker.addUnregisterCallback((()=>e.removeEventListener(\"mouseenter\",t))),this.mouseEventListenerTracker.addUnregisterCallback((()=>e.removeEventListener(\"mouseleave\",s)))}releaseMouseButtons(e,t,s){const n=this.coordinateConverter.normalizeAndQuantizeUnsigned(t,s);e&$e.primaryButton&&this.sendMouseUp(qe.mainButton,n.x,n.y),e&$e.secondaryButton&&this.sendMouseUp(qe.secondaryButton,n.x,n.y),e&$e.auxiliaryButton&&this.sendMouseUp(qe.auxiliaryButton,n.x,n.y),e&$e.fourthButton&&this.sendMouseUp(qe.fourthButton,n.x,n.y),e&$e.fifthButton&&this.sendMouseUp(qe.fifthButton,n.x,n.y)}pressMouseButtons(e,t,s){if(!this.videoElementProvider.isVideoReady())return;const n=this.coordinateConverter.normalizeAndQuantizeUnsigned(t,s);e&$e.primaryButton&&this.sendMouseDown(qe.mainButton,n.x,n.y),e&$e.secondaryButton&&this.sendMouseDown(qe.secondaryButton,n.x,n.y),e&$e.auxiliaryButton&&this.sendMouseDown(qe.auxiliaryButton,n.x,n.y),e&$e.fourthButton&&this.sendMouseDown(qe.fourthButton,n.x,n.y),e&$e.fifthButton&&this.sendMouseDown(qe.fifthButton,n.x,n.y)}sendMouseEnter(){this.videoElementProvider.isVideoReady()&&this.toStreamerMessagesProvider.toStreamerHandlers.get(\"MouseEnter\")()}sendMouseLeave(){this.videoElementProvider.isVideoReady()&&this.toStreamerMessagesProvider.toStreamerHandlers.get(\"MouseLeave\")()}sendMouseDown(e,t,s){this.videoElementProvider.isVideoReady()&&(i.Log(i.GetStackTrace(),`mouse button ${e} down at (${t}, ${s})`,6),this.toStreamerMessagesProvider.toStreamerHandlers.get(\"MouseDown\")([e,t,s]))}sendMouseUp(e,t,s){if(!this.videoElementProvider.isVideoReady())return;i.Log(i.GetStackTrace(),`mouse button ${e} up at (${t}, ${s})`,6);const n=this.coordinateConverter.normalizeAndQuantizeUnsigned(t,s);this.toStreamerMessagesProvider.toStreamerHandlers.get(\"MouseUp\")([e,n.x,n.y])}}class nt{constructor(e,t,s){this.fingers=[9,8,7,6,5,4,3,2,1,0],this.fingerIds=new Map,this.maxByteValue=255,this.touchEventListenerTracker=new Xe,this.toStreamerMessagesProvider=e,this.videoElementProvider=t,this.coordinateConverter=s,this.videoElementParent=t.getVideoElement();const n=e=>this.onTouchStart(e),r=e=>this.onTouchEnd(e),a=e=>this.onTouchMove(e);this.videoElementParent.addEventListener(\"touchstart\",n),this.videoElementParent.addEventListener(\"touchend\",r),this.videoElementParent.addEventListener(\"touchmove\",a),this.touchEventListenerTracker.addUnregisterCallback((()=>this.videoElementParent.removeEventListener(\"touchstart\",n))),this.touchEventListenerTracker.addUnregisterCallback((()=>this.videoElementParent.removeEventListener(\"touchend\",r))),this.touchEventListenerTracker.addUnregisterCallback((()=>this.videoElementParent.removeEventListener(\"touchmove\",a))),i.Log(i.GetStackTrace(),\"Touch Events Registered\",6);const o=e=>{e.preventDefault()};document.addEventListener(\"touchmove\",o),this.touchEventListenerTracker.addUnregisterCallback((()=>document.removeEventListener(\"touchmove\",o)))}unregisterTouchEvents(){this.touchEventListenerTracker.unregisterAll()}rememberTouch(e){const t=this.fingers.pop();void 0===t&&i.Log(i.GetStackTrace(),\"exhausted touch identifiers\",6),this.fingerIds.set(e.identifier,t)}forgetTouch(e){this.fingers.push(this.fingerIds.get(e.identifier)),this.fingers.sort((function(e,t){return t-e})),this.fingerIds.delete(e.identifier)}onTouchStart(e){if(this.videoElementProvider.isVideoReady()){for(let t=0;t<e.changedTouches.length;t++)this.rememberTouch(e.changedTouches[t]);i.Log(i.GetStackTrace(),\"touch start\",6),this.emitTouchData(\"TouchStart\",e.changedTouches),e.preventDefault()}}onTouchEnd(e){if(this.videoElementProvider.isVideoReady()){i.Log(i.GetStackTrace(),\"touch end\",6),this.emitTouchData(\"TouchEnd\",e.changedTouches);for(let t=0;t<e.changedTouches.length;t++)this.forgetTouch(e.changedTouches[t]);e.preventDefault()}}onTouchMove(e){this.videoElementProvider.isVideoReady()&&(i.Log(i.GetStackTrace(),\"touch move\",6),this.emitTouchData(\"TouchMove\",e.touches),e.preventDefault())}emitTouchData(e,t){if(!this.videoElementProvider.isVideoReady())return;const s=this.videoElementProvider.getVideoParentElement().getBoundingClientRect(),n=this.toStreamerMessagesProvider.toStreamerHandlers;for(let r=0;r<t.length;r++){const a=1,o=t[r],l=o.clientX-s.left,d=o.clientY-s.top;i.Log(i.GetStackTrace(),`F${this.fingerIds.get(o.identifier)}=(${l}, ${d})`,6);const c=this.coordinateConverter.normalizeAndQuantizeUnsigned(l,d);switch(e){case\"TouchStart\":n.get(\"TouchStart\")([a,c.x,c.y,this.fingerIds.get(o.identifier),this.maxByteValue*(o.force>0?o.force:1),c.inRange?1:0]);break;case\"TouchEnd\":n.get(\"TouchEnd\")([a,c.x,c.y,this.fingerIds.get(o.identifier),this.maxByteValue*o.force,c.inRange?1:0]);break;case\"TouchMove\":n.get(\"TouchMove\")([a,c.x,c.y,this.fingerIds.get(o.identifier),this.maxByteValue*(o.force>0?o.force:1),c.inRange?1:0])}}}}class rt{constructor(e){this.gamePadEventListenerTracker=new Xe,this.toStreamerMessagesProvider=e,this.requestAnimationFrame=(window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.requestAnimationFrame).bind(window);const t=window;if(window.addEventListener(\"beforeunload\",(e=>this.onBeforeUnload(e))),\"GamepadEvent\"in t){const e=e=>this.gamePadConnectHandler(e),t=e=>this.gamePadDisconnectHandler(e);window.addEventListener(\"gamepadconnected\",e),window.addEventListener(\"gamepaddisconnected\",t),this.gamePadEventListenerTracker.addUnregisterCallback((()=>window.removeEventListener(\"gamepadconnected\",e))),this.gamePadEventListenerTracker.addUnregisterCallback((()=>window.removeEventListener(\"gamepaddisconnected\",t)))}else if(\"WebKitGamepadEvent\"in t){const e=e=>this.gamePadConnectHandler(e),t=e=>this.gamePadDisconnectHandler(e);window.addEventListener(\"webkitgamepadconnected\",e),window.addEventListener(\"webkitgamepaddisconnected\",t),this.gamePadEventListenerTracker.addUnregisterCallback((()=>window.removeEventListener(\"webkitgamepadconnected\",e))),this.gamePadEventListenerTracker.addUnregisterCallback((()=>window.removeEventListener(\"webkitgamepaddisconnected\",t)))}if(this.controllers=[],navigator.getGamepads)for(const e of navigator.getGamepads())e&&this.gamePadConnectHandler(new GamepadEvent(\"gamepadconnected\",{gamepad:e}))}unregisterGamePadEvents(){this.gamePadEventListenerTracker.unregisterAll();for(const e of this.controllers)void 0!==e.id&&this.onGamepadDisconnected(e.id);this.controllers=[],this.onGamepadConnected=()=>{},this.onGamepadDisconnected=()=>{}}gamePadConnectHandler(e){i.Log(i.GetStackTrace(),\"Gamepad connect handler\",6);const t=e.gamepad,s={currentState:t,prevState:t,id:void 0};this.controllers.push(s),this.controllers[t.index].currentState=t,this.controllers[t.index].prevState=t,i.Log(i.GetStackTrace(),\"gamepad: \"+t.id+\" connected\",6),window.requestAnimationFrame((()=>this.updateStatus())),this.onGamepadConnected()}gamePadDisconnectHandler(e){i.Log(i.GetStackTrace(),\"Gamepad disconnect handler\",6),i.Log(i.GetStackTrace(),\"gamepad: \"+e.gamepad.id+\" disconnected\",6);const t=this.controllers[e.gamepad.index];delete this.controllers[e.gamepad.index],this.controllers=this.controllers.filter((e=>void 0!==e)),this.onGamepadDisconnected(t.id)}scanGamePads(){const e=navigator.getGamepads?navigator.getGamepads():navigator.webkitGetGamepads?navigator.webkitGetGamepads():[];for(let t=0;t<e.length;t++)e[t]&&e[t].index in this.controllers&&(this.controllers[e[t].index].currentState=e[t])}updateStatus(){this.scanGamePads();const e=this.toStreamerMessagesProvider.toStreamerHandlers;for(const t of this.controllers){const s=void 0===t.id?this.controllers.indexOf(t):t.id,n=t.currentState;for(let n=0;n<t.currentState.buttons.length;n++){const r=t.currentState.buttons[n],i=t.prevState.buttons[n];r.pressed?n==Ue.LeftTrigger?e.get(\"GamepadAnalog\")([s,5,r.value]):n==Ue.RightTrigger?e.get(\"GamepadAnalog\")([s,6,r.value]):e.get(\"GamepadButtonPressed\")([s,n,i.pressed?1:0]):!r.pressed&&i.pressed&&(n==Ue.LeftTrigger?e.get(\"GamepadAnalog\")([s,5,0]):n==Ue.RightTrigger?e.get(\"GamepadAnalog\")([s,6,0]):e.get(\"GamepadButtonReleased\")([s,n,0]))}for(let t=0;t<n.axes.length;t+=2){const r=parseFloat(n.axes[t].toFixed(4)),i=-parseFloat(n.axes[t+1].toFixed(4));e.get(\"GamepadAnalog\")([s,t+1,r]),e.get(\"GamepadAnalog\")([s,t+2,i])}this.controllers[s].prevState=n}this.controllers.length>0&&this.requestAnimationFrame((()=>this.updateStatus()))}onGamepadResponseReceived(e){for(const t of this.controllers)if(void 0===t.id){t.id=e;break}}onGamepadConnected(){}onGamepadDisconnected(e){}onBeforeUnload(e){for(const e of this.controllers)this.onGamepadDisconnected(e.id)}}!function(e){e[e.RightClusterBottomButton=0]=\"RightClusterBottomButton\",e[e.RightClusterRightButton=1]=\"RightClusterRightButton\",e[e.RightClusterLeftButton=2]=\"RightClusterLeftButton\",e[e.RightClusterTopButton=3]=\"RightClusterTopButton\",e[e.LeftShoulder=4]=\"LeftShoulder\",e[e.RightShoulder=5]=\"RightShoulder\",e[e.LeftTrigger=6]=\"LeftTrigger\",e[e.RightTrigger=7]=\"RightTrigger\",e[e.SelectOrBack=8]=\"SelectOrBack\",e[e.StartOrForward=9]=\"StartOrForward\",e[e.LeftAnalogPress=10]=\"LeftAnalogPress\",e[e.RightAnalogPress=11]=\"RightAnalogPress\",e[e.LeftClusterTopButton=12]=\"LeftClusterTopButton\",e[e.LeftClusterBottomButton=13]=\"LeftClusterBottomButton\",e[e.LeftClusterLeftButton=14]=\"LeftClusterLeftButton\",e[e.LeftClusterRightButton=15]=\"LeftClusterRightButton\",e[e.CentreButton=16]=\"CentreButton\",e[e.LeftStickHorizontal=0]=\"LeftStickHorizontal\",e[e.LeftStickVertical=1]=\"LeftStickVertical\",e[e.RightStickHorizontal=2]=\"RightStickHorizontal\",e[e.RightStickVertical=3]=\"RightStickVertical\"}(Ue||(Ue={}));class it{constructor(e,t,s){this.activeKeys=new at,this.toStreamerMessagesProvider=e,this.videoElementProvider=t,this.coordinateConverter=s}registerKeyBoard(e){i.Log(i.GetStackTrace(),\"Register Keyboard Events\",7);const t=new Ze(this.toStreamerMessagesProvider,e,this.activeKeys);return t.registerKeyBoardEvents(),t}registerMouse(e){i.Log(i.GetStackTrace(),\"Register Mouse Events\",7);const t=new st(this.toStreamerMessagesProvider,this.videoElementProvider,this.coordinateConverter,this.activeKeys);switch(e){case Ee.LockedMouse:t.registerLockedMouseEvents(t);break;case Ee.HoveringMouse:t.registerHoveringMouseEvents(t);break;default:i.Info(i.GetStackTrace(),\"unknown Control Scheme Type Defaulting to Locked Mouse Events\"),t.registerLockedMouseEvents(t)}return t}registerTouch(e,t){if(i.Log(i.GetStackTrace(),\"Registering Touch\",6),e){const e=new je(this.toStreamerMessagesProvider,this.videoElementProvider,this.coordinateConverter);return e.setVideoElementParentClientRect(t),e}return new nt(this.toStreamerMessagesProvider,this.videoElementProvider,this.coordinateConverter)}registerGamePad(){return i.Log(i.GetStackTrace(),\"Register Game Pad\",7),new rt(this.toStreamerMessagesProvider)}}class at{constructor(){this.activeKeys=[],this.activeKeys=[]}getActiveKeys(){return this.activeKeys}}class ot{constructor(e,t){this.lastTimeResized=(new Date).getTime(),this.videoElement=document.createElement(\"video\"),this.config=t,this.videoElement.id=\"streamingVideo\",this.videoElement.disablePictureInPicture=!0,this.videoElement.playsInline=!0,this.videoElement.style.width=\"100%\",this.videoElement.style.height=\"100%\",this.videoElement.style.position=\"absolute\",this.videoElement.style.pointerEvents=\"all\",e.appendChild(this.videoElement),this.onResizePlayerCallback=()=>{console.log(\"Resolution changed, restyling player, did you forget to override this function?\")},this.onMatchViewportResolutionCallback=()=>{console.log(\"Resolution changed and match viewport resolution is turned on, did you forget to override this function?\")},this.videoElement.onclick=()=>{null!=this.audioElement&&this.audioElement.paused&&this.audioElement.play(),this.videoElement.paused&&this.videoElement.play()},this.videoElement.onloadedmetadata=()=>{this.onVideoInitialized()},window.addEventListener(\"resize\",(()=>this.resizePlayerStyle()),!0),window.addEventListener(\"orientationchange\",(()=>this.onOrientationChange()))}setAudioElement(e){this.audioElement=e}play(){return this.videoElement.muted=this.config.isFlagEnabled(ue.StartVideoMuted),this.videoElement.autoplay=this.config.isFlagEnabled(ue.AutoPlayVideo),this.videoElement.play()}isPaused(){return this.videoElement.paused}isVideoReady(){return void 0!==this.videoElement.readyState&&this.videoElement.readyState>0}hasVideoSource(){return void 0!==this.videoElement.srcObject&&null!==this.videoElement.srcObject}getVideoElement(){return this.videoElement}getVideoParentElement(){return this.videoElement.parentElement}setVideoEnabled(e){this.videoElement.srcObject.getTracks().forEach((t=>t.enabled=e))}onVideoInitialized(){}onOrientationChange(){clearTimeout(this.orientationChangeTimeout),this.orientationChangeTimeout=window.setTimeout((()=>{this.resizePlayerStyle()}),500)}resizePlayerStyle(){const e=this.getVideoParentElement();e&&(this.updateVideoStreamSize(),e.classList.contains(\"fixed-size\")||this.resizePlayerStyleToFillParentElement(),this.onResizePlayerCallback())}resizePlayerStyleToFillParentElement(){this.getVideoParentElement().setAttribute(\"style\",\"top: 0px; left: 0px; width: 100%; height: 100%; cursor: default;\")}updateVideoStreamSize(){if(this.config.isFlagEnabled(ue.MatchViewportResolution))if((new Date).getTime()-this.lastTimeResized>300){const e=this.getVideoParentElement();if(!e)return;this.onMatchViewportResolutionCallback(e.clientWidth,e.clientHeight),this.lastTimeResized=(new Date).getTime()}else i.Log(i.GetStackTrace(),\"Resizing too often - skipping\",6),clearTimeout(this.resizeTimeoutHandle),this.resizeTimeoutHandle=window.setTimeout((()=>this.updateVideoStreamSize()),100)}}class lt{constructor(){this.toStreamerHandlers=new Map,this.fromStreamerHandlers=new Map,this.toStreamerMessages=new Map,this.fromStreamerMessages=new Map}populateDefaultProtocol(){this.toStreamerMessages.set(\"IFrameRequest\",{id:0,structure:[]}),this.toStreamerMessages.set(\"RequestQualityControl\",{id:1,structure:[]}),this.toStreamerMessages.set(\"FpsRequest\",{id:2,structure:[]}),this.toStreamerMessages.set(\"AverageBitrateRequest\",{id:3,structure:[]}),this.toStreamerMessages.set(\"StartStreaming\",{id:4,structure:[]}),this.toStreamerMessages.set(\"StopStreaming\",{id:5,structure:[]}),this.toStreamerMessages.set(\"LatencyTest\",{id:6,structure:[\"string\"]}),this.toStreamerMessages.set(\"RequestInitialSettings\",{id:7,structure:[]}),this.toStreamerMessages.set(\"TestEcho\",{id:8,structure:[]}),this.toStreamerMessages.set(\"DataChannelLatencyTest\",{id:9,structure:[]}),this.toStreamerMessages.set(\"UIInteraction\",{id:50,structure:[\"string\"]}),this.toStreamerMessages.set(\"Command\",{id:51,structure:[\"string\"]}),this.toStreamerMessages.set(\"KeyDown\",{id:60,structure:[\"uint8\",\"uint8\"]}),this.toStreamerMessages.set(\"KeyUp\",{id:61,structure:[\"uint8\"]}),this.toStreamerMessages.set(\"KeyPress\",{id:62,structure:[\"uint16\"]}),this.toStreamerMessages.set(\"MouseEnter\",{id:70,structure:[]}),this.toStreamerMessages.set(\"MouseLeave\",{id:71,structure:[]}),this.toStreamerMessages.set(\"MouseDown\",{id:72,structure:[\"uint8\",\"uint16\",\"uint16\"]}),this.toStreamerMessages.set(\"MouseUp\",{id:73,structure:[\"uint8\",\"uint16\",\"uint16\"]}),this.toStreamerMessages.set(\"MouseMove\",{id:74,structure:[\"uint16\",\"uint16\",\"int16\",\"int16\"]}),this.toStreamerMessages.set(\"MouseWheel\",{id:75,structure:[\"int16\",\"uint16\",\"uint16\"]}),this.toStreamerMessages.set(\"MouseDouble\",{id:76,structure:[\"uint8\",\"uint16\",\"uint16\"]}),this.toStreamerMessages.set(\"TouchStart\",{id:80,structure:[\"uint8\",\"uint16\",\"uint16\",\"uint8\",\"uint8\",\"uint8\"]}),this.toStreamerMessages.set(\"TouchEnd\",{id:81,structure:[\"uint8\",\"uint16\",\"uint16\",\"uint8\",\"uint8\",\"uint8\"]}),this.toStreamerMessages.set(\"TouchMove\",{id:82,structure:[\"uint8\",\"uint16\",\"uint16\",\"uint8\",\"uint8\",\"uint8\"]}),this.toStreamerMessages.set(\"GamepadConnected\",{id:93,structure:[]}),this.toStreamerMessages.set(\"GamepadButtonPressed\",{id:90,structure:[\"uint8\",\"uint8\",\"uint8\"]}),this.toStreamerMessages.set(\"GamepadButtonReleased\",{id:91,structure:[\"uint8\",\"uint8\",\"uint8\"]}),this.toStreamerMessages.set(\"GamepadAnalog\",{id:92,structure:[\"uint8\",\"uint8\",\"double\"]}),this.toStreamerMessages.set(\"GamepadDisconnected\",{id:94,structure:[\"uint8\"]}),this.fromStreamerMessages.set(0,\"QualityControlOwnership\"),this.fromStreamerMessages.set(1,\"Response\"),this.fromStreamerMessages.set(2,\"Command\"),this.fromStreamerMessages.set(3,\"FreezeFrame\"),this.fromStreamerMessages.set(4,\"UnfreezeFrame\"),this.fromStreamerMessages.set(5,\"VideoEncoderAvgQP\"),this.fromStreamerMessages.set(6,\"LatencyTest\"),this.fromStreamerMessages.set(7,\"InitialSettings\"),this.fromStreamerMessages.set(8,\"FileExtension\"),this.fromStreamerMessages.set(9,\"FileMimeType\"),this.fromStreamerMessages.set(10,\"FileContents\"),this.fromStreamerMessages.set(11,\"TestEcho\"),this.fromStreamerMessages.set(12,\"InputControlOwnership\"),this.fromStreamerMessages.set(13,\"GamepadResponse\"),this.fromStreamerMessages.set(14,\"DataChannelLatencyTest\"),this.fromStreamerMessages.set(255,\"Protocol\")}registerMessageHandler(e,t,s){switch(e){case Ge.ToStreamer:this.toStreamerHandlers.set(t,s);break;case Ge.FromStreamer:this.fromStreamerHandlers.set(t,s);break;default:i.Log(i.GetStackTrace(),`Unknown message direction ${e}`)}}}!function(e){e[e.ToStreamer=0]=\"ToStreamer\",e[e.FromStreamer=1]=\"FromStreamer\"}(Ge||(Ge={}));class dt{constructor(){this.responseEventListeners=new Map}addResponseEventListener(e,t){this.responseEventListeners.set(e,t)}removeResponseEventListener(e){this.responseEventListeners.delete(e)}onResponse(e){i.Log(i.GetStackTrace(),\"DataChannelReceiveMessageType.Response\",6);const t=new TextDecoder(\"utf-16\").decode(e.slice(1));i.Log(i.GetStackTrace(),t,6),this.responseEventListeners.forEach((e=>{e(t)}))}}class ct{constructor(e,t){this.dataChannelSender=e,this.toStreamerMessagesMapProvider=t}sendMessageToStreamer(e,t){void 0===t&&(t=[]);const s=this.toStreamerMessagesMapProvider.toStreamerMessages.get(e);if(void 0===s)return void i.Error(i.GetStackTrace(),`Attempted to send a message to the streamer with message type: ${e}, but the frontend hasn't been configured to send such a message. Check you've added the message type in your cpp`);if(s.structure&&t&&s.structure.length!==t.length)return void i.Error(i.GetStackTrace(),`Provided message data doesn't match expected layout. Expected [ ${s.structure.map((e=>{switch(e){case\"uint8\":case\"uint16\":case\"int16\":case\"float\":case\"double\":return\"number\";case\"string\":return\"string\"}})).toString()} ] but received [ ${t.map((e=>typeof e)).toString()} ]`);let n=0;const r=new TextEncoder;t.forEach(((e,t)=>{switch(s.structure[t]){case\"uint8\":n+=1;break;case\"uint16\":case\"int16\":n+=2;break;case\"float\":n+=4;break;case\"double\":n+=8;break;case\"string\":n+=2,n+=2*r.encode(e).length}}));const a=new DataView(new ArrayBuffer(n+1));a.setUint8(0,s.id);let o=1;t.forEach(((e,t)=>{switch(s.structure[t]){case\"uint8\":a.setUint8(o,e),o+=1;break;case\"uint16\":a.setUint16(o,e,!0),o+=2;break;case\"int16\":a.setInt16(o,e,!0),o+=2;break;case\"float\":a.setFloat32(o,e,!0),o+=4;break;case\"double\":a.setFloat64(o,e,!0),o+=8;break;case\"string\":a.setUint16(o,e.length,!0),o+=2;for(let t=0;t<e.length;t++)a.setUint16(o,e.charCodeAt(t),!0),o+=2}})),this.dataChannelSender.canSend()?this.dataChannelSender.sendData(a.buffer):i.Info(i.GetStackTrace(),`Data channel cannot send yet, skipping sending message: ${e} - ${new Uint8Array(a.buffer)}`)}}class ht{constructor(e){this.sendMessageController=e}SendRequestQualityControl(){this.sendMessageController.sendMessageToStreamer(\"RequestQualityControl\")}SendMaxFpsRequest(){this.sendMessageController.sendMessageToStreamer(\"FpsRequest\")}SendAverageBitrateRequest(){this.sendMessageController.sendMessageToStreamer(\"AverageBitrateRequest\")}SendStartStreaming(){this.sendMessageController.sendMessageToStreamer(\"StartStreaming\")}SendStopStreaming(){this.sendMessageController.sendMessageToStreamer(\"StopStreaming\")}SendRequestInitialSettings(){this.sendMessageController.sendMessageToStreamer(\"RequestInitialSettings\")}}class ut{constructor(e){this.dataChannelProvider=e}canSend(){return void 0!==this.dataChannelProvider.getDataChannelInstance().dataChannel&&\"open\"==this.dataChannelProvider.getDataChannelInstance().dataChannel.readyState}sendData(e){const t=this.dataChannelProvider.getDataChannelInstance();\"open\"==t.dataChannel.readyState?(t.dataChannel.send(e),i.Log(i.GetStackTrace(),`Message Sent: ${new Uint8Array(e)}`,6),this.resetAfkWarningTimerOnDataSend()):i.Error(i.GetStackTrace(),`Message Failed: ${new Uint8Array(e)}`)}resetAfkWarningTimerOnDataSend(){}}class gt{constructor(e){this.videoElementProvider=e,this.normalizeAndQuantizeUnsignedFunc=()=>{throw new Error(\"Normalize and quantize unsigned, method not implemented.\")},this.normalizeAndQuantizeSignedFunc=()=>{throw new Error(\"Normalize and unquantize signed, method not implemented.\")},this.denormalizeAndUnquantizeUnsignedFunc=()=>{throw new Error(\"Denormalize and unquantize unsigned, method not implemented.\")}}normalizeAndQuantizeUnsigned(e,t){return this.normalizeAndQuantizeUnsignedFunc(e,t)}unquantizeAndDenormalizeUnsigned(e,t){return this.denormalizeAndUnquantizeUnsignedFunc(e,t)}normalizeAndQuantizeSigned(e,t){return this.normalizeAndQuantizeSignedFunc(e,t)}setupNormalizeAndQuantize(){if(this.videoElementParent=this.videoElementProvider.getVideoParentElement(),this.videoElement=this.videoElementProvider.getVideoElement(),this.videoElementParent&&this.videoElement){const e=this.videoElementParent.clientWidth||1,t=this.videoElementParent.clientHeight||1,s=this.videoElement.videoWidth||1,n=t/e,r=(this.videoElement.videoHeight||1)/s;n>r?(i.Log(i.GetStackTrace(),\"Setup Normalize and Quantize for playerAspectRatio > videoAspectRatio\",6),this.ratio=n/r,this.normalizeAndQuantizeUnsignedFunc=(e,t)=>this.normalizeAndQuantizeUnsignedPlayerBigger(e,t),this.normalizeAndQuantizeSignedFunc=(e,t)=>this.normalizeAndQuantizeSignedPlayerBigger(e,t),this.denormalizeAndUnquantizeUnsignedFunc=(e,t)=>this.denormalizeAndUnquantizeUnsignedPlayerBigger(e,t)):(i.Log(i.GetStackTrace(),\"Setup Normalize and Quantize for playerAspectRatio <= videoAspectRatio\",6),this.ratio=r/n,this.normalizeAndQuantizeUnsignedFunc=(e,t)=>this.normalizeAndQuantizeUnsignedPlayerSmaller(e,t),this.normalizeAndQuantizeSignedFunc=(e,t)=>this.normalizeAndQuantizeSignedPlayerSmaller(e,t),this.denormalizeAndUnquantizeUnsignedFunc=(e,t)=>this.denormalizeAndUnquantizeUnsignedPlayerSmaller(e,t))}}normalizeAndQuantizeUnsignedPlayerBigger(e,t){const s=e/this.videoElementParent.clientWidth,n=this.ratio*(t/this.videoElementParent.clientHeight-.5)+.5;return s<0||s>1||n<0||n>1?new mt(!1,65535,65535):new mt(!0,65536*s,65536*n)}denormalizeAndUnquantizeUnsignedPlayerBigger(e,t){const s=e/65536,n=(t/65536-.5)/this.ratio+.5;return new pt(s*this.videoElementParent.clientWidth,n*this.videoElementParent.clientHeight)}normalizeAndQuantizeSignedPlayerBigger(e,t){const s=e/(.5*this.videoElementParent.clientWidth),n=this.ratio*t/(.5*this.videoElementParent.clientHeight);return new St(32767*s,32767*n)}normalizeAndQuantizeUnsignedPlayerSmaller(e,t){const s=this.ratio*(e/this.videoElementParent.clientWidth-.5)+.5,n=t/this.videoElementParent.clientHeight;return s<0||s>1||n<0||n>1?new mt(!1,65535,65535):new mt(!0,65536*s,65536*n)}denormalizeAndUnquantizeUnsignedPlayerSmaller(e,t){const s=(e/65536-.5)/this.ratio+.5,n=t/65536;return new pt(s*this.videoElementParent.clientWidth,n*this.videoElementParent.clientHeight)}normalizeAndQuantizeSignedPlayerSmaller(e,t){const s=this.ratio*e/(.5*this.videoElementParent.clientWidth),n=t/(.5*this.videoElementParent.clientHeight);return new St(32767*s,32767*n)}}class mt{constructor(e,t,s){this.inRange=e,this.x=t,this.y=s}}class pt{constructor(e,t){this.x=e,this.y=t}}class St{constructor(e,t){this.x=e,this.y=t}}class vt{constructor(e,t){this.shouldShowPlayOverlay=!0,this.autoJoinTimer=void 0,this.config=e,this.pixelStreaming=t,this.responseController=new dt,this.file=new Qe,this.sdpConstraints={offerToReceiveAudio:!0,offerToReceiveVideo:!0},this.afkController=new ye(this.config,this.pixelStreaming,this.onAfkTriggered.bind(this)),this.afkController.onAFKTimedOutCallback=()=>{this.closeSignalingServer(\"You have been disconnected due to inactivity\")},this.freezeFrameController=new y(this.pixelStreaming.videoElementParent),this.videoPlayer=new ot(this.pixelStreaming.videoElementParent,this.config),this.videoPlayer.onVideoInitialized=()=>this.handleVideoInitialized(),this.videoPlayer.onMatchViewportResolutionCallback=(e,t)=>{const s={\"Resolution.Width\":e,\"Resolution.Height\":t};this.streamMessageController.toStreamerHandlers.get(\"Command\")([JSON.stringify(s)])},this.videoPlayer.onResizePlayerCallback=()=>{this.setUpMouseAndFreezeFrame()},this.streamController=new T(this.videoPlayer),this.coordinateConverter=new gt(this.videoPlayer),this.sendrecvDataChannelController=new Me,this.recvDataChannelController=new Me,this.registerDataChannelEventEmitters(this.sendrecvDataChannelController),this.registerDataChannelEventEmitters(this.recvDataChannelController),this.dataChannelSender=new ut(this.sendrecvDataChannelController),this.dataChannelSender.resetAfkWarningTimerOnDataSend=()=>this.afkController.resetAfkWarningTimer(),this.streamMessageController=new lt,this.webSocketController=new f,this.webSocketController.onConfig=e=>this.handleOnConfigMessage(e),this.webSocketController.onStreamerList=e=>this.handleStreamerListMessage(e),this.webSocketController.onStreamerIDChanged=e=>this.handleStreamerIDChangedMessage(e),this.webSocketController.onPlayerCount=e=>{this.pixelStreaming._onPlayerCount(e.count)},this.webSocketController.onOpen.addEventListener(\"open\",(()=>{this.config.isFlagEnabled(ue.BrowserSendOffer)||this.webSocketController.requestStreamerList()})),this.webSocketController.onClose.addEventListener(\"close\",(e=>{const t=this.shouldReconnect&&1001!=e.detail.code&&this.config.getNumericSettingValue(me.MaxReconnectAttempts)>0,s=this.disconnectMessage?this.disconnectMessage:e.detail.reason;this.pixelStreaming._onDisconnect(s,!t&&!this.isReconnecting),this.afkController.stopAfkWarningTimer(),this.statsTimerHandle&&void 0!==this.statsTimerHandle&&window.clearInterval(this.statsTimerHandle),this.setVideoEncoderAvgQP(0),this.setTouchInputEnabled(!1),this.setMouseInputEnabled(!1),this.setKeyboardInputEnabled(!1),this.setGamePadInputEnabled(!1),t&&setTimeout((()=>{this.isReconnecting=!0,this.reconnectAttempt++,this.tryReconnect(e.detail.reason)}),2e3)})),this.sendMessageController=new ct(this.dataChannelSender,this.streamMessageController),this.toStreamerMessagesController=new ht(this.sendMessageController),this.registerMessageHandlers(),this.streamMessageController.populateDefaultProtocol(),this.inputClassesFactory=new it(this.streamMessageController,this.videoPlayer,this.coordinateConverter),this.isUsingSFU=!1,this.isQualityController=!1,this.preferredCodec=\"\",this.shouldReconnect=!0,this.isReconnecting=!1,this.reconnectAttempt=0,this.config._addOnOptionSettingChangedListener(Ce.StreamerId,(e=>{\"\"!==e&&(this.peerConnectionController.peerConnection.close(),this.peerConnectionController.createPeerConnection(this.peerConfig,this.preferredCodec),this.subscribedStream=e,this.webSocketController.sendSubscribe(e))})),this.setVideoEncoderAvgQP(-1),this.signallingUrlBuilder=()=>{let e=this.config.getTextSettingValue(Se.SignallingServerUrl);return this.config.isFlagEnabled(ue.BrowserSendOffer)&&(e+=\"?\"+ue.BrowserSendOffer+\"=true\"),e}}requestUnquantizedAndDenormalizeUnsigned(e,t){return this.coordinateConverter.unquantizeAndDenormalizeUnsigned(e,t)}handleOnMessage(e){const t=new Uint8Array(e.data);i.Log(i.GetStackTrace(),\"Message incoming:\"+t,6);const s=this.streamMessageController.fromStreamerMessages.get(t[0]);this.streamMessageController.fromStreamerHandlers.get(s)(e.data)}registerMessageHandlers(){this.streamMessageController.registerMessageHandler(Ge.FromStreamer,\"QualityControlOwnership\",(e=>this.onQualityControlOwnership(e))),this.streamMessageController.registerMessageHandler(Ge.FromStreamer,\"Response\",(e=>this.responseController.onResponse(e))),this.streamMessageController.registerMessageHandler(Ge.FromStreamer,\"Command\",(e=>{this.onCommand(e)})),this.streamMessageController.registerMessageHandler(Ge.FromStreamer,\"FreezeFrame\",(e=>this.onFreezeFrameMessage(e))),this.streamMessageController.registerMessageHandler(Ge.FromStreamer,\"UnfreezeFrame\",(()=>this.invalidateFreezeFrameAndEnableVideo())),this.streamMessageController.registerMessageHandler(Ge.FromStreamer,\"VideoEncoderAvgQP\",(e=>this.handleVideoEncoderAvgQP(e))),this.streamMessageController.registerMessageHandler(Ge.FromStreamer,\"LatencyTest\",(e=>this.handleLatencyTestResult(e))),this.streamMessageController.registerMessageHandler(Ge.FromStreamer,\"DataChannelLatencyTest\",(e=>this.handleDataChannelLatencyTestResponse(e))),this.streamMessageController.registerMessageHandler(Ge.FromStreamer,\"InitialSettings\",(e=>this.handleInitialSettings(e))),this.streamMessageController.registerMessageHandler(Ge.FromStreamer,\"FileExtension\",(e=>this.onFileExtension(e))),this.streamMessageController.registerMessageHandler(Ge.FromStreamer,\"FileMimeType\",(e=>this.onFileMimeType(e))),this.streamMessageController.registerMessageHandler(Ge.FromStreamer,\"FileContents\",(e=>this.onFileContents(e))),this.streamMessageController.registerMessageHandler(Ge.FromStreamer,\"TestEcho\",(()=>{})),this.streamMessageController.registerMessageHandler(Ge.FromStreamer,\"InputControlOwnership\",(e=>this.onInputControlOwnership(e))),this.streamMessageController.registerMessageHandler(Ge.FromStreamer,\"GamepadResponse\",(e=>this.onGamepadResponse(e))),this.streamMessageController.registerMessageHandler(Ge.FromStreamer,\"Protocol\",(e=>this.onProtocolMessage(e))),this.streamMessageController.registerMessageHandler(Ge.ToStreamer,\"IFrameRequest\",(()=>this.sendMessageController.sendMessageToStreamer(\"IFrameRequest\"))),this.streamMessageController.registerMessageHandler(Ge.ToStreamer,\"RequestQualityControl\",(()=>this.sendMessageController.sendMessageToStreamer(\"RequestQualityControl\"))),this.streamMessageController.registerMessageHandler(Ge.ToStreamer,\"FpsRequest\",(()=>this.sendMessageController.sendMessageToStreamer(\"FpsRequest\"))),this.streamMessageController.registerMessageHandler(Ge.ToStreamer,\"AverageBitrateRequest\",(()=>this.sendMessageController.sendMessageToStreamer(\"AverageBitrateRequest\"))),this.streamMessageController.registerMessageHandler(Ge.ToStreamer,\"StartStreaming\",(()=>this.sendMessageController.sendMessageToStreamer(\"StartStreaming\"))),this.streamMessageController.registerMessageHandler(Ge.ToStreamer,\"StopStreaming\",(()=>this.sendMessageController.sendMessageToStreamer(\"StopStreaming\"))),this.streamMessageController.registerMessageHandler(Ge.ToStreamer,\"LatencyTest\",(e=>this.sendMessageController.sendMessageToStreamer(\"LatencyTest\",e))),this.streamMessageController.registerMessageHandler(Ge.ToStreamer,\"RequestInitialSettings\",(()=>this.sendMessageController.sendMessageToStreamer(\"RequestInitialSettings\"))),this.streamMessageController.registerMessageHandler(Ge.ToStreamer,\"TestEcho\",(()=>{})),this.streamMessageController.registerMessageHandler(Ge.ToStreamer,\"UIInteraction\",(e=>this.sendMessageController.sendMessageToStreamer(\"UIInteraction\",e))),this.streamMessageController.registerMessageHandler(Ge.ToStreamer,\"Command\",(e=>this.sendMessageController.sendMessageToStreamer(\"Command\",e))),this.streamMessageController.registerMessageHandler(Ge.ToStreamer,\"TextboxEntry\",(e=>this.sendMessageController.sendMessageToStreamer(\"TextboxEntry\",e))),this.streamMessageController.registerMessageHandler(Ge.ToStreamer,\"KeyDown\",(e=>this.sendMessageController.sendMessageToStreamer(\"KeyDown\",e))),this.streamMessageController.registerMessageHandler(Ge.ToStreamer,\"KeyUp\",(e=>this.sendMessageController.sendMessageToStreamer(\"KeyUp\",e))),this.streamMessageController.registerMessageHandler(Ge.ToStreamer,\"KeyPress\",(e=>this.sendMessageController.sendMessageToStreamer(\"KeyPress\",e))),this.streamMessageController.registerMessageHandler(Ge.ToStreamer,\"MouseEnter\",(e=>this.sendMessageController.sendMessageToStreamer(\"MouseEnter\",e))),this.streamMessageController.registerMessageHandler(Ge.ToStreamer,\"MouseLeave\",(e=>this.sendMessageController.sendMessageToStreamer(\"MouseLeave\",e))),this.streamMessageController.registerMessageHandler(Ge.ToStreamer,\"MouseDown\",(e=>this.sendMessageController.sendMessageToStreamer(\"MouseDown\",e))),this.streamMessageController.registerMessageHandler(Ge.ToStreamer,\"MouseUp\",(e=>this.sendMessageController.sendMessageToStreamer(\"MouseUp\",e))),this.streamMessageController.registerMessageHandler(Ge.ToStreamer,\"MouseMove\",(e=>this.sendMessageController.sendMessageToStreamer(\"MouseMove\",e))),this.streamMessageController.registerMessageHandler(Ge.ToStreamer,\"MouseWheel\",(e=>this.sendMessageController.sendMessageToStreamer(\"MouseWheel\",e))),this.streamMessageController.registerMessageHandler(Ge.ToStreamer,\"MouseDouble\",(e=>this.sendMessageController.sendMessageToStreamer(\"MouseDouble\",e))),this.streamMessageController.registerMessageHandler(Ge.ToStreamer,\"TouchStart\",(e=>this.sendMessageController.sendMessageToStreamer(\"TouchStart\",e))),this.streamMessageController.registerMessageHandler(Ge.ToStreamer,\"TouchEnd\",(e=>this.sendMessageController.sendMessageToStreamer(\"TouchEnd\",e))),this.streamMessageController.registerMessageHandler(Ge.ToStreamer,\"TouchMove\",(e=>this.sendMessageController.sendMessageToStreamer(\"TouchMove\",e))),this.streamMessageController.registerMessageHandler(Ge.ToStreamer,\"GamepadConnected\",(()=>this.sendMessageController.sendMessageToStreamer(\"GamepadConnected\"))),this.streamMessageController.registerMessageHandler(Ge.ToStreamer,\"GamepadButtonPressed\",(e=>this.sendMessageController.sendMessageToStreamer(\"GamepadButtonPressed\",e))),this.streamMessageController.registerMessageHandler(Ge.ToStreamer,\"GamepadButtonReleased\",(e=>this.sendMessageController.sendMessageToStreamer(\"GamepadButtonReleased\",e))),this.streamMessageController.registerMessageHandler(Ge.ToStreamer,\"GamepadAnalog\",(e=>this.sendMessageController.sendMessageToStreamer(\"GamepadAnalog\",e))),this.streamMessageController.registerMessageHandler(Ge.ToStreamer,\"GamepadDisconnected\",(e=>this.sendMessageController.sendMessageToStreamer(\"GamepadDisconnected\",e))),this.streamMessageController.registerMessageHandler(Ge.ToStreamer,\"XREyeViews\",(e=>this.sendMessageController.sendMessageToStreamer(\"XREyeViews\",e))),this.streamMessageController.registerMessageHandler(Ge.ToStreamer,\"XRHMDTransform\",(e=>this.sendMessageController.sendMessageToStreamer(\"XRHMDTransform\",e))),this.streamMessageController.registerMessageHandler(Ge.ToStreamer,\"XRControllerTransform\",(e=>this.sendMessageController.sendMessageToStreamer(\"XRControllerTransform\",e))),this.streamMessageController.registerMessageHandler(Ge.ToStreamer,\"XRSystem\",(e=>this.sendMessageController.sendMessageToStreamer(\"XRSystem\",e))),this.streamMessageController.registerMessageHandler(Ge.ToStreamer,\"XRButtonTouched\",(e=>this.sendMessageController.sendMessageToStreamer(\"XRButtonTouched\",e))),this.streamMessageController.registerMessageHandler(Ge.ToStreamer,\"XRButtonTouchReleased\",(e=>this.sendMessageController.sendMessageToStreamer(\"XRButtonTouchReleased\",e))),this.streamMessageController.registerMessageHandler(Ge.ToStreamer,\"XRButtonPressed\",(e=>this.sendMessageController.sendMessageToStreamer(\"XRButtonPressed\",e))),this.streamMessageController.registerMessageHandler(Ge.ToStreamer,\"XRButtonReleased\",(e=>this.sendMessageController.sendMessageToStreamer(\"XRButtonReleased\",e))),this.streamMessageController.registerMessageHandler(Ge.ToStreamer,\"XRAnalog\",(e=>this.sendMessageController.sendMessageToStreamer(\"XRAnalog\",e)))}onCommand(e){i.Log(i.GetStackTrace(),\"DataChannelReceiveMessageType.Command\",6);const t=new TextDecoder(\"utf-16\").decode(e.slice(1));i.Log(i.GetStackTrace(),\"Data Channel Command: \"+t,6);const s=JSON.parse(t);\"onScreenKeyboard\"===s.command&&this.pixelStreaming._activateOnScreenKeyboard(s)}onProtocolMessage(e){try{const t=new TextDecoder(\"utf-16\").decode(e.slice(1)),s=JSON.parse(t);Object.prototype.hasOwnProperty.call(s,\"Direction\")||i.Error(i.GetStackTrace(),\"Malformed protocol received. Ensure the protocol message contains a direction\");const n=s.Direction;delete s.Direction,i.Log(i.GetStackTrace(),`Received new ${n==Ge.FromStreamer?\"FromStreamer\":\"ToStreamer\"} protocol. Updating existing protocol...`),Object.keys(s).forEach((e=>{const t=s[e];switch(n){case Ge.ToStreamer:if(!Object.prototype.hasOwnProperty.call(t,\"id\"))return void i.Error(i.GetStackTrace(),`ToStreamer->${e} protocol definition was malformed as it didn't contain at least an id\\n\\n Definition was: ${JSON.stringify(t,null,2)}`);if(\"UIInteraction\"===e||\"Command\"===e||\"LatencyTest\"===e)return;this.streamMessageController.toStreamerHandlers.get(e)?this.streamMessageController.toStreamerMessages.set(e,t):i.Error(i.GetStackTrace(),`There was no registered handler for \"${e}\" - try adding one using registerMessageHandler(MessageDirection.ToStreamer, \"${e}\", myHandler)`);break;case Ge.FromStreamer:if(!Object.prototype.hasOwnProperty.call(t,\"id\"))return void i.Error(i.GetStackTrace(),`FromStreamer->${e} protocol definition was malformed as it didn't contain at least an id\\n\\n Definition was: ${JSON.stringify(t,null,2)}`);this.streamMessageController.fromStreamerHandlers.get(e)?this.streamMessageController.fromStreamerMessages.set(t.id,e):i.Error(i.GetStackTrace(),`There was no registered handler for \"${t}\" - try adding one using registerMessageHandler(MessageDirection.FromStreamer, \"${e}\", myHandler)`);break;default:i.Error(i.GetStackTrace(),`Unknown direction: ${n}`)}})),this.toStreamerMessagesController.SendRequestInitialSettings(),this.toStreamerMessagesController.SendRequestQualityControl()}catch(e){i.Log(i.GetStackTrace(),e)}}onInputControlOwnership(e){const t=new Uint8Array(e);i.Log(i.GetStackTrace(),\"DataChannelReceiveMessageType.InputControlOwnership\",6);const s=new Boolean(t[1]).valueOf();i.Log(i.GetStackTrace(),`Received input controller message - will your input control the stream: ${s}`),this.pixelStreaming._onInputControlOwnership(s)}onGamepadResponse(e){const t=new TextDecoder(\"utf-16\").decode(e.slice(1)),s=JSON.parse(t);this.gamePadController.onGamepadResponseReceived(s.controllerId)}onAfkTriggered(){this.afkController.onAfkClick(),this.videoPlayer.isPaused()&&this.videoPlayer.hasVideoSource()&&this.playStream()}setAfkEnabled(e){e?this.onAfkTriggered():this.afkController.stopAfkWarningTimer()}tryReconnect(e){this.webSocketController?(this.isReconnecting=!0,this.webSocketController.webSocket&&this.webSocketController.webSocket.readyState!=WebSocket.CLOSED?(this.closeSignalingServer(`${e} Restarting stream...`),setTimeout((()=>{this.tryReconnect(e)}),3e3)):(this.pixelStreaming._onWebRtcAutoConnect(),this.connectToSignallingServer())):i.Log(i.GetStackTrace(),\"The Web Socket Controller does not exist so this will not work right now.\")}loadFreezeFrameOrShowPlayOverlay(){this.pixelStreaming.dispatchEvent(new j({shouldShowPlayOverlay:this.shouldShowPlayOverlay,isValid:this.freezeFrameController.valid,jpegData:this.freezeFrameController.jpeg})),!0===this.shouldShowPlayOverlay?(i.Log(i.GetStackTrace(),\"showing play overlay\"),this.resizePlayerStyle()):(i.Log(i.GetStackTrace(),\"showing freeze frame\"),this.freezeFrameController.showFreezeFrame()),setTimeout((()=>{this.videoPlayer.setVideoEnabled(!1)}),this.freezeFrameController.freezeFrameDelay)}onFreezeFrameMessage(e){i.Log(i.GetStackTrace(),\"DataChannelReceiveMessageType.FreezeFrame\",6);const t=new Uint8Array(e);this.freezeFrameController.processFreezeFrameMessage(t,(()=>this.loadFreezeFrameOrShowPlayOverlay()))}invalidateFreezeFrameAndEnableVideo(){i.Log(i.GetStackTrace(),\"DataChannelReceiveMessageType.FreezeFrame\",6),setTimeout((()=>{this.pixelStreaming.dispatchEvent(new J),this.freezeFrameController.hideFreezeFrame()}),this.freezeFrameController.freezeFrameDelay),this.videoPlayer.getVideoElement()&&this.videoPlayer.setVideoEnabled(!0)}onFileExtension(e){const t=new Uint8Array(e);Ke.setExtensionFromBytes(t,this.file)}onFileMimeType(e){const t=new Uint8Array(e);Ke.setMimeTypeFromBytes(t,this.file)}onFileContents(e){const t=new Uint8Array(e);Ke.setContentsFromBytes(t,this.file)}playStream(){if(!this.videoPlayer.getVideoElement()){const e=\"Could not play video stream because the video player was not initialized correctly.\";return this.pixelStreaming.dispatchEvent(new q({message:e})),i.Error(i.GetStackTrace(),e),void this.closeSignalingServer(\"Stream not initialized correctly\")}if(this.videoPlayer.hasVideoSource()){if(this.setTouchInputEnabled(this.config.isFlagEnabled(ue.TouchInput)),this.pixelStreaming.dispatchEvent(new $),this.streamController.audioElement.srcObject){const e=this.config.isFlagEnabled(ue.StartVideoMuted);this.streamController.audioElement.muted=e,e?this.playVideo():this.streamController.audioElement.play().then((()=>{this.playVideo()})).catch((e=>{i.Log(i.GetStackTrace(),e),i.Log(i.GetStackTrace(),\"Browser does not support autoplaying video without interaction - to resolve this we are going to show the play button overlay.\"),this.pixelStreaming.dispatchEvent(new X({reason:e}))}))}else this.playVideo();this.shouldShowPlayOverlay=!1,this.freezeFrameController.showFreezeFrame()}else i.Warning(i.GetStackTrace(),\"Cannot play stream, the video element has no srcObject to play.\")}playVideo(){this.videoPlayer.play().catch((e=>{this.streamController.audioElement.srcObject&&this.streamController.audioElement.pause(),i.Log(i.GetStackTrace(),e),i.Log(i.GetStackTrace(),\"Browser does not support autoplaying video without interaction - to resolve this we are going to show the play button overlay.\"),this.pixelStreaming.dispatchEvent(new X({reason:e}))}))}autoPlayVideoOrSetUpPlayOverlay(){this.config.isFlagEnabled(ue.AutoPlayVideo)&&this.playStream(),this.resizePlayerStyle()}connectToSignallingServer(){this.locallyClosed=!1,this.shouldReconnect=!0,this.disconnectMessage=null;const e=this.signallingUrlBuilder();this.webSocketController.connect(e)}startSession(e){if(this.peerConfig=e,this.config.isFlagEnabled(ue.ForceTURN)&&!this.checkTurnServerAvailability(e))return i.Info(i.GetStackTrace(),\"No turn server was found in the Peer Connection Options. TURN cannot be forced, closing connection. Please use STUN instead\"),void this.closeSignalingServer(\"TURN cannot be forced, closing connection. Please use STUN instead.\");this.peerConnectionController=new ze(this.peerConfig,this.config,this.preferredCodec),this.peerConnectionController.onVideoStats=e=>this.handleVideoStats(e),this.peerConnectionController.onSendWebRTCOffer=e=>this.handleSendWebRTCOffer(e),this.peerConnectionController.onSendWebRTCAnswer=e=>this.handleSendWebRTCAnswer(e),this.peerConnectionController.onPeerIceCandidate=e=>this.handleSendIceCandidate(e),this.peerConnectionController.onDataChannel=e=>this.handleDataChannel(e),this.peerConnectionController.showTextOverlayConnecting=()=>this.pixelStreaming._onWebRtcConnecting(),this.peerConnectionController.showTextOverlaySetupFailure=()=>this.pixelStreaming._onWebRtcFailed();let t=!1;this.peerConnectionController.onIceConnectionStateChange=()=>{!t&&[\"connected\",\"completed\"].includes(this.peerConnectionController.peerConnection.iceConnectionState)&&(this.pixelStreaming._onWebRtcConnected(),t=!0)},this.peerConnectionController.onTrack=e=>this.streamController.handleOnTrack(e),this.config.isFlagEnabled(ue.BrowserSendOffer)&&(this.sendrecvDataChannelController.createDataChannel(this.peerConnectionController.peerConnection,\"cirrus\",this.datachannelOptions),this.sendrecvDataChannelController.handleOnMessage=e=>this.handleOnMessage(e),this.peerConnectionController.createOffer(this.sdpConstraints,this.config))}checkTurnServerAvailability(e){if(!e.iceServers)return i.Info(i.GetStackTrace(),\"A turn sever was not found\"),!1;for(const t of e.iceServers)for(const e of t.urls)if(e.includes(\"turn\"))return i.Log(i.GetStackTrace(),`A turn sever was found at ${e}`),!0;return i.Info(i.GetStackTrace(),\"A turn sever was not found\"),!1}handleOnConfigMessage(e){this.resizePlayerStyle(),this.startSession(e.peerConnectionOptions),this.webSocketController.onWebRtcAnswer=e=>this.handleWebRtcAnswer(e),this.webSocketController.onWebRtcOffer=e=>this.handleWebRtcOffer(e),this.webSocketController.onWebRtcPeerDataChannels=e=>this.handleWebRtcSFUPeerDatachannels(e),this.webSocketController.onIceCandidate=e=>this.handleIceCandidate(e)}handleStreamerListMessage(e){i.Log(i.GetStackTrace(),`Got streamer list ${e.ids}`,6);let t=null;var s=this.config.getSettingOption(Ce.StreamerId);s.selected.toString().trim()&&(t=s.selected);const n=[...e.ids];n.unshift(\"\"),this.config.setOptionSettingOptions(Ce.StreamerId,n);let r=null;const a=this.config.isFlagEnabled(ue.WaitForStreamer),o=this.config.getNumericSettingValue(me.MaxReconnectAttempts),l=this.config.getNumericSettingValue(me.StreamerAutoJoinInterval),d=this.config.useUrlParams,c=new URLSearchParams(window.location.search);d&&c.has(Ce.StreamerId)?t=c.get(Ce.StreamerId):this.subscribedStream&&(t=this.subscribedStream),t&&e.ids.includes(t)?r=t:t&&a||1!=e.ids.length||(r=e.ids[0]),r?(this.isReconnecting=!1,this.reconnectAttempt=0,this.config.setOptionSettingValue(Ce.StreamerId,r)):a&&(this.reconnectAttempt<o?(this.isReconnecting=!0,this.reconnectAttempt++,setTimeout((()=>{this.webSocketController.requestStreamerList()}),l)):(this.reconnectAttempt=0,this.isReconnecting=!1,this.shouldReconnect=!1)),this.pixelStreaming.dispatchEvent(new Z({messageStreamerList:e,autoSelectedStreamerId:r,wantedStreamerId:t}))}handleStreamerIDChangedMessage(e){const t=e.newID;var s=this.config.getSettingOption(Ce.StreamerId),n=s.onChange;s.onChange=()=>{};for(var r=s.options,i=0;i<r.length;++i)if(r[i]==this.subscribedStream){r[i]=t;break}s.options=r,s.selected=t,s.onChange=n,this.subscribedStream=e.newID,this.pixelStreaming.dispatchEvent(new ee({newID:t}))}handleWebRtcAnswer(e){i.Log(i.GetStackTrace(),`Got answer sdp ${e.sdp}`,6);const t={sdp:e.sdp,type:\"answer\"};this.peerConnectionController.receiveAnswer(t),this.handlePostWebrtcNegotiation()}handleWebRtcOffer(e){i.Log(i.GetStackTrace(),`Got offer sdp ${e.sdp}`,6),this.isUsingSFU=!!e.sfu&&e.sfu,this.isUsingSFU&&(this.peerConnectionController.preferredCodec=\"\");const t={sdp:e.sdp,type:\"offer\"};this.peerConnectionController.receiveOffer(t,this.config),this.handlePostWebrtcNegotiation()}handleWebRtcSFUPeerDatachannels(e){const t={ordered:!0,negotiated:!0,id:e.sendStreamId},s=e.sendStreamId!=e.recvStreamId;if(this.sendrecvDataChannelController.createDataChannel(this.peerConnectionController.peerConnection,s?\"send-datachannel\":\"datachannel\",t),s){const t={ordered:!0,negotiated:!0,id:e.recvStreamId};this.recvDataChannelController.createDataChannel(this.peerConnectionController.peerConnection,\"recv-datachannel\",t),this.recvDataChannelController.handleOnOpen=()=>this.webSocketController.sendSFURecvDataChannelReady(),this.recvDataChannelController.handleOnMessage=e=>this.handleOnMessage(e)}else this.sendrecvDataChannelController.handleOnMessage=e=>this.handleOnMessage(e)}handlePostWebrtcNegotiation(){this.afkController.startAfkWarningTimer(),this.pixelStreaming._onWebRtcSdp(),this.statsTimerHandle&&void 0!==this.statsTimerHandle&&window.clearInterval(this.statsTimerHandle),this.statsTimerHandle=window.setInterval((()=>this.getStats()),1e3),this.setMouseInputEnabled(this.config.isFlagEnabled(ue.MouseInput)),this.setKeyboardInputEnabled(this.config.isFlagEnabled(ue.KeyboardInput)),this.setGamePadInputEnabled(this.config.isFlagEnabled(ue.GamepadInput))}handleIceCandidate(e){i.Log(i.GetStackTrace(),\"Web RTC Controller: onWebRtcIce\",6);const t=new RTCIceCandidate(e);this.peerConnectionController.handleOnIce(t)}handleSendIceCandidate(e){i.Log(i.GetStackTrace(),\"OnIceCandidate\",6),e.candidate&&e.candidate.candidate&&this.webSocketController.sendIceCandidate(e.candidate)}handleDataChannel(e){i.Log(i.GetStackTrace(),\"Data channel created for us by browser as we are a receiving peer.\",6),this.sendrecvDataChannelController.dataChannel=e.channel,this.sendrecvDataChannelController.setupDataChannel(),this.sendrecvDataChannelController.handleOnMessage=e=>this.handleOnMessage(e)}handleSendWebRTCOffer(e){i.Log(i.GetStackTrace(),\"Sending the offer to the Server\",6);const t={minBitrateBps:1e3*this.config.getNumericSettingValue(me.WebRTCMinBitrate),maxBitrateBps:1e3*this.config.getNumericSettingValue(me.WebRTCMaxBitrate)};this.webSocketController.sendWebRtcOffer(e,t)}handleSendWebRTCAnswer(e){i.Log(i.GetStackTrace(),\"Sending the answer to the Server\",6);const t={minBitrateBps:1e3*this.config.getNumericSettingValue(me.WebRTCMinBitrate),maxBitrateBps:1e3*this.config.getNumericSettingValue(me.WebRTCMaxBitrate)};this.webSocketController.sendWebRtcAnswer(e,t),this.isUsingSFU&&this.webSocketController.sendWebRtcDatachannelRequest()}setUpMouseAndFreezeFrame(){this.videoElementParentClientRect=this.videoPlayer.getVideoParentElement().getBoundingClientRect(),this.coordinateConverter.setupNormalizeAndQuantize(),this.freezeFrameController.freezeFrame.resize()}closeSignalingServer(e){var t;this.locallyClosed=!0,this.shouldReconnect=!1,this.disconnectMessage=e,null===(t=this.webSocketController)||void 0===t||t.close()}closePeerConnection(){var e;null===(e=this.peerConnectionController)||void 0===e||e.close()}close(){this.closeSignalingServer(\"\"),this.closePeerConnection()}getStats(){this.peerConnectionController.generateStats()}sendLatencyTest(){this.latencyStartTime=Date.now(),this.streamMessageController.toStreamerHandlers.get(\"LatencyTest\")([JSON.stringify({StartTime:this.latencyStartTime})])}sendDataChannelLatencyTest(e){this.streamMessageController.toStreamerHandlers.get(\"DataChannelLatencyTest\")([JSON.stringify(e)])}sendEncoderMinQP(e){i.Log(i.GetStackTrace(),`MinQP=${e}\\n`,6),null!=e&&this.streamMessageController.toStreamerHandlers.get(\"Command\")([JSON.stringify({\"Encoder.MinQP\":e})])}sendEncoderMaxQP(e){i.Log(i.GetStackTrace(),`MaxQP=${e}\\n`,6),null!=e&&this.streamMessageController.toStreamerHandlers.get(\"Command\")([JSON.stringify({\"Encoder.MaxQP\":e})])}sendWebRTCMinBitrate(e){i.Log(i.GetStackTrace(),`WebRTC Min Bitrate=${e}`,6),null!=e&&this.streamMessageController.toStreamerHandlers.get(\"Command\")([JSON.stringify({\"WebRTC.MinBitrate\":e})])}sendWebRTCMaxBitrate(e){i.Log(i.GetStackTrace(),`WebRTC Max Bitrate=${e}`,6),null!=e&&this.streamMessageController.toStreamerHandlers.get(\"Command\")([JSON.stringify({\"WebRTC.MaxBitrate\":e})])}sendWebRTCFps(e){i.Log(i.GetStackTrace(),`WebRTC FPS=${e}`,6),null!=e&&(this.streamMessageController.toStreamerHandlers.get(\"Command\")([JSON.stringify({\"WebRTC.Fps\":e})]),this.streamMessageController.toStreamerHandlers.get(\"Command\")([JSON.stringify({\"WebRTC.MaxFps\":e})]))}sendShowFps(){i.Log(i.GetStackTrace(),\"---- Sending show stat to UE ----\",6),this.streamMessageController.toStreamerHandlers.get(\"Command\")([JSON.stringify({\"stat.fps\":\"\"})])}sendIframeRequest(){i.Log(i.GetStackTrace(),\"---- Sending Request for an IFrame ----\",6),this.streamMessageController.toStreamerHandlers.get(\"IFrameRequest\")()}emitUIInteraction(e){i.Log(i.GetStackTrace(),\"---- Sending custom UIInteraction message ----\",6),this.streamMessageController.toStreamerHandlers.get(\"UIInteraction\")([JSON.stringify(e)])}emitCommand(e){i.Log(i.GetStackTrace(),\"---- Sending custom Command message ----\",6),this.streamMessageController.toStreamerHandlers.get(\"Command\")([JSON.stringify(e)])}emitConsoleCommand(e){i.Log(i.GetStackTrace(),\"---- Sending custom Command:ConsoleCommand message ----\",6),this.streamMessageController.toStreamerHandlers.get(\"Command\")([JSON.stringify({ConsoleCommand:e})])}sendRequestQualityControlOwnership(){i.Log(i.GetStackTrace(),\"---- Sending Request to Control Quality ----\",6),this.toStreamerMessagesController.SendRequestQualityControl()}handleLatencyTestResult(e){i.Log(i.GetStackTrace(),\"DataChannelReceiveMessageType.latencyTest\",6);const t=new TextDecoder(\"utf-16\").decode(e.slice(1)),s=new Ne;Object.assign(s,JSON.parse(t)),s.processFields(),s.testStartTimeMs=this.latencyStartTime,s.browserReceiptTimeMs=Date.now(),s.latencyExcludingDecode=~~(s.browserReceiptTimeMs-s.testStartTimeMs),s.testDuration=~~(s.TransmissionTimeMs-s.ReceiptTimeMs),s.networkLatency=~~(s.latencyExcludingDecode-s.testDuration),s.frameDisplayDeltaTimeMs&&s.browserReceiptTimeMs&&(s.endToEndLatency=(s.frameDisplayDeltaTimeMs,s.networkLatency,~~+s.CaptureToSendMs)),this.pixelStreaming._onLatencyTestResult(s)}handleDataChannelLatencyTestResponse(e){i.Log(i.GetStackTrace(),\"DataChannelReceiveMessageType.dataChannelLatencyResponse\",6);const t=new TextDecoder(\"utf-16\").decode(e.slice(1)),s=JSON.parse(t);this.pixelStreaming._onDataChannelLatencyTestResponse(s)}handleInitialSettings(e){i.Log(i.GetStackTrace(),\"DataChannelReceiveMessageType.InitialSettings\",6);const t=new TextDecoder(\"utf-16\").decode(e.slice(1)),s=JSON.parse(t),n=new _e;s.Encoder&&(n.EncoderSettings=s.Encoder),s.WebRTC&&(n.WebRTCSettings=s.WebRTC),s.PixelStreaming&&(n.PixelStreamingSettings=s.PixelStreaming),s.ConfigOptions&&void 0!==s.ConfigOptions.DefaultToHover&&this.config.setFlagEnabled(ue.HoveringMouseMode,!!s.ConfigOptions.DefaultToHover),n.ueCompatible(),i.Log(i.GetStackTrace(),t,6),this.pixelStreaming._onInitialSettings(n)}handleVideoEncoderAvgQP(e){i.Log(i.GetStackTrace(),\"DataChannelReceiveMessageType.VideoEncoderAvgQP\",6);const t=Number(new TextDecoder(\"utf-16\").decode(e.slice(1)));this.setVideoEncoderAvgQP(t)}handleVideoInitialized(){this.pixelStreaming._onVideoInitialized(),this.autoPlayVideoOrSetUpPlayOverlay(),this.resizePlayerStyle(),this.videoPlayer.updateVideoStreamSize()}onQualityControlOwnership(e){const t=new Uint8Array(e);i.Log(i.GetStackTrace(),\"DataChannelReceiveMessageType.QualityControlOwnership\",6),this.isQualityController=new Boolean(t[1]).valueOf(),i.Log(i.GetStackTrace(),`Received quality controller message, will control quality: ${this.isQualityController}`),this.pixelStreaming._onQualityControlOwnership(this.isQualityController)}handleVideoStats(e){this.pixelStreaming._onVideoStats(e)}resizePlayerStyle(){this.videoPlayer.resizePlayerStyle()}setPreferredCodec(e){this.preferredCodec=e,this.peerConnectionController&&(this.peerConnectionController.preferredCodec=e,this.peerConnectionController.updateCodecSelection=!1)}setVideoEncoderAvgQP(e){this.videoAvgQp=e,this.pixelStreaming._onVideoEncoderAvgQP(this.videoAvgQp)}setKeyboardInputEnabled(e){var t;null===(t=this.keyboardController)||void 0===t||t.unregisterKeyBoardEvents(),e&&(this.keyboardController=this.inputClassesFactory.registerKeyBoard(this.config))}setMouseInputEnabled(e){var t;if(null===(t=this.mouseController)||void 0===t||t.unregisterMouseEvents(),e){const e=this.config.isFlagEnabled(ue.HoveringMouseMode)?Ee.HoveringMouse:Ee.LockedMouse;this.mouseController=this.inputClassesFactory.registerMouse(e)}}setTouchInputEnabled(e){var t;null===(t=this.touchController)||void 0===t||t.unregisterTouchEvents(),e&&(this.touchController=this.inputClassesFactory.registerTouch(this.config.isFlagEnabled(ue.FakeMouseWithTouches),this.videoElementParentClientRect))}setGamePadInputEnabled(e){var t;null===(t=this.gamePadController)||void 0===t||t.unregisterGamePadEvents(),e&&(this.gamePadController=this.inputClassesFactory.registerGamePad(),this.gamePadController.onGamepadConnected=()=>{this.streamMessageController.toStreamerHandlers.get(\"GamepadConnected\")()},this.gamePadController.onGamepadDisconnected=e=>{this.streamMessageController.toStreamerHandlers.get(\"GamepadDisconnected\")([e])})}registerDataChannelEventEmitters(e){e.onOpen=(e,t)=>this.pixelStreaming.dispatchEvent(new z({label:e,event:t})),e.onClose=(e,t)=>this.pixelStreaming.dispatchEvent(new _({label:e,event:t})),e.onError=(e,t)=>this.pixelStreaming.dispatchEvent(new V({label:e,event:t}))}registerMessageHandler(e,t,s){t===Ge.FromStreamer&&void 0===s&&i.Warning(i.GetStackTrace(),`Unable to register handler for ${e} as no handler was passed`),this.streamMessageController.registerMessageHandler(t,e,(n=>void 0===s&&t===Ge.ToStreamer?this.sendMessageController.sendMessageToStreamer(e,n):s(n)))}}class Ct{constructor(e){this.toStreamerMessagesProvider=e,this.controllers=[]}static deepCopyGamepad(e){return JSON.parse(JSON.stringify({buttons:e.buttons.map((e=>JSON.parse(JSON.stringify({pressed:e.pressed,touched:e.touched,value:e.value})))),axes:e.axes}))}updateStatus(e,t,s){if(e.gamepad){const n=t.getPose(e.gripSpace,s);if(!n)return;let r=0;e.profiles.includes(\"htc-vive\")?r=1:e.profiles.includes(\"oculus-touch\")&&(r=2),this.toStreamerMessagesProvider.toStreamerHandlers.get(\"XRSystem\")([r]);let i=2;switch(e.handedness){case\"left\":i=0;break;case\"right\":i=1}const a=n.transform.matrix,o=[];for(let e=0;e<16;e++)o[e]=new Float32Array([a[e]])[0];this.toStreamerMessagesProvider.toStreamerHandlers.get(\"XRControllerTransform\")([o[0],o[4],o[8],o[12],o[1],o[5],o[9],o[13],o[2],o[6],o[10],o[14],o[3],o[7],o[11],o[15],i]),void 0===this.controllers[i]&&(this.controllers[i]={prevState:void 0,currentState:void 0,id:void 0},this.controllers[i].prevState=Ct.deepCopyGamepad(e.gamepad)),this.controllers[i].currentState=Ct.deepCopyGamepad(e.gamepad);const l=this.controllers[i],d=l.currentState,c=l.prevState;for(let e=0;e<d.buttons.length;e++){const t=d.buttons[e],s=c.buttons[e];if(t.pressed){let t=s.pressed?1:0;this.toStreamerMessagesProvider.toStreamerHandlers.get(\"XRButtonPressed\")([i,e,t])}else s.pressed&&this.toStreamerMessagesProvider.toStreamerHandlers.get(\"XRButtonReleased\")([i,e,0]);if(t.touched){let t=s.touched?1:0;this.toStreamerMessagesProvider.toStreamerHandlers.get(\"XRButtonTouched\")([i,e,t])}else s.touched&&this.toStreamerMessagesProvider.toStreamerHandlers.get(\"XRButtonTouchReleased\")([i,e,0])}for(let e=0;e<d.axes.length;e++){let t=d.axes[e];t!=c.axes[e]&&this.toStreamerMessagesProvider.toStreamerHandlers.get(\"XRAnalog\")([i,e,t])}this.controllers[i].prevState=d}}}class ft{constructor(e){this.xrViewerPose=null,this.videoTexture=null,this.prevVideoWidth=0,this.prevVideoHeight=0,this.leftView=null,this.rightView=null,this.xrSession=null,this.webRtcController=e,this.xrGamepadController=new Ct(this.webRtcController.streamMessageController),this.onSessionEnded=new EventTarget,this.onSessionStarted=new EventTarget,this.onFrame=new EventTarget}xrClicked(){if(this.xrSession)this.xrSession.end();else{if(!navigator.xr)return void i.Error(i.GetStackTrace(),\"This browser does not support XR.\");navigator.xr.requestSession(\"immersive-vr\",{optionalFeatures:[]}).then((e=>{this.onXrSessionStarted(e)}))}}onXrSessionEnded(){i.Log(i.GetStackTrace(),\"XR Session ended\"),this.xrSession=null,this.onSessionEnded.dispatchEvent(new Event(\"xrSessionEnded\"))}initGL(){if(this.gl)return;const e=document.createElement(\"canvas\");this.gl=e.getContext(\"webgl2\",{xrCompatible:!0}),this.gl.clearColor(0,0,0,1)}initShaders(){const e=this.gl.createShader(this.gl.VERTEX_SHADER);this.gl.shaderSource(e,\"\\n attribute vec2 a_position;\\n attribute vec2 a_texCoord;\\n\\n // varyings\\n varying vec2 v_texCoord;\\n\\n void main() {\\n gl_Position = vec4(a_position.x, a_position.y, 0, 1);\\n // pass the texCoord to the fragment shader\\n // The GPU will interpolate this value between points.\\n v_texCoord = a_texCoord;\\n }\\n \"),this.gl.compileShader(e);const t=this.gl.createShader(this.gl.FRAGMENT_SHADER);this.gl.shaderSource(t,\"\\n precision mediump float;\\n\\n // our texture\\n uniform sampler2D u_image;\\n\\n // the texCoords passed in from the vertex shader.\\n varying vec2 v_texCoord;\\n\\n void main() {\\n gl_FragColor = texture2D(u_image, v_texCoord);\\n }\\n \"),this.gl.compileShader(t);const s=this.gl.createProgram();this.gl.attachShader(s,e),this.gl.attachShader(s,t),this.gl.linkProgram(s),this.gl.useProgram(s),this.positionLocation=this.gl.getAttribLocation(s,\"a_position\"),this.texcoordLocation=this.gl.getAttribLocation(s,\"a_texCoord\")}updateVideoTexture(){this.videoTexture||(this.videoTexture=this.gl.createTexture(),this.gl.bindTexture(this.gl.TEXTURE_2D,this.videoTexture),this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_WRAP_S,this.gl.CLAMP_TO_EDGE),this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_WRAP_T,this.gl.CLAMP_TO_EDGE),this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_MIN_FILTER,this.gl.LINEAR),this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_MAG_FILTER,this.gl.LINEAR));let e=this.webRtcController.videoPlayer.getVideoElement().videoHeight,t=this.webRtcController.videoPlayer.getVideoElement().videoWidth;this.prevVideoHeight!=e||this.prevVideoWidth!=t?this.gl.texImage2D(this.gl.TEXTURE_2D,0,this.gl.RGBA,t,e,0,this.gl.RGBA,this.gl.UNSIGNED_BYTE,this.webRtcController.videoPlayer.getVideoElement()):this.gl.texSubImage2D(this.gl.TEXTURE_2D,0,0,0,t,e,this.gl.RGBA,this.gl.UNSIGNED_BYTE,this.webRtcController.videoPlayer.getVideoElement()),this.prevVideoHeight=e,this.prevVideoWidth=t}initBuffers(){this.positionBuffer=this.gl.createBuffer(),this.gl.bindBuffer(this.gl.ARRAY_BUFFER,this.positionBuffer),this.gl.enableVertexAttribArray(this.positionLocation),this.gl.bufferData(this.gl.ARRAY_BUFFER,new Float32Array([-1,1,1,1,-1,-1,-1,-1,1,1,1,-1]),this.gl.STATIC_DRAW),this.gl.vertexAttribPointer(this.positionLocation,2,this.gl.FLOAT,!1,0,0),this.texcoordBuffer=this.gl.createBuffer(),this.gl.bindBuffer(this.gl.ARRAY_BUFFER,this.texcoordBuffer),this.gl.enableVertexAttribArray(this.texcoordLocation),this.gl.bufferData(this.gl.ARRAY_BUFFER,new Float32Array([0,0,1,0,0,1,0,1,1,0,1,1]),this.gl.STATIC_DRAW),this.gl.vertexAttribPointer(this.texcoordLocation,2,this.gl.FLOAT,!1,0,0)}onXrSessionStarted(e){i.Log(i.GetStackTrace(),\"XR Session started\"),this.xrSession=e,this.xrSession.addEventListener(\"end\",(()=>{this.onXrSessionEnded()})),this.initGL(),this.initShaders(),this.initBuffers(),e.requestReferenceSpace(\"local\").then((t=>{if(this.xrRefSpace=t,this.xrSession.updateRenderState({baseLayer:new XRWebGLLayer(this.xrSession,this.gl)}),this.xrSession.supportedFrameRates)for(let t of this.xrSession.supportedFrameRates)90==t&&e.updateTargetFrameRate(90);this.xrSession.requestAnimationFrame(this.onXrFrame.bind(this))})),this.onSessionStarted.dispatchEvent(new Event(\"xrSessionStarted\"))}sendXRDataToUE(){if(null==this.leftView||null==this.rightView)return;const e=this.leftView.transform.matrix,t=this.leftView.projectionMatrix,s=this.rightView.transform.matrix,n=this.rightView.projectionMatrix;this.webRtcController.streamMessageController.toStreamerHandlers.get(\"XREyeViews\")([e[0],e[4],e[8],e[12],e[1],e[5],e[9],e[13],e[2],e[6],e[10],e[14],e[3],e[7],e[11],e[15],t[0],t[4],t[8],t[12],t[1],t[5],t[9],t[13],t[2],t[6],t[10],t[14],t[3],t[7],t[11],t[15],s[0],s[4],s[8],s[12],s[1],s[5],s[9],s[13],s[2],s[6],s[10],s[14],s[3],s[7],s[11],s[15],n[0],n[4],n[8],n[12],n[1],n[5],n[9],n[13],n[2],n[6],n[10],n[14],n[3],n[7],n[11],n[15]])}onXrFrame(e,t){if(this.xrViewerPose=t.getViewerPose(this.xrRefSpace),this.xrViewerPose){if(this.updateViews(),null==this.leftView||null==this.rightView)return;this.sendXRDataToUE(),this.updateVideoTexture(),this.render()}this.webRtcController.config.isFlagEnabled(ue.XRControllerInput)&&this.xrSession.inputSources.forEach(((e,s,n)=>{this.xrGamepadController.updateStatus(e,t,this.xrRefSpace)}),this),this.xrSession.requestAnimationFrame(((e,t)=>this.onXrFrame(e,t))),this.onFrame.dispatchEvent(new le({time:e,frame:t}))}updateViews(){if(this.xrViewerPose)for(const e of this.xrViewerPose.views)\"left\"===e.eye?this.leftView=e:\"right\"===e.eye&&(this.rightView=e)}render(){if(!this.gl)return;const e=this.xrSession.renderState.baseLayer;this.gl.bindFramebuffer(this.gl.FRAMEBUFFER,e.framebuffer),this.gl.viewport(0,0,e.framebufferWidth,e.framebufferHeight),this.gl.drawArrays(this.gl.TRIANGLES,0,6)}static isSessionSupported(e){return\"https:\"!==location.protocol&&i.Info(null,\"WebXR requires https, if you want WebXR use https.\"),navigator.xr?navigator.xr.isSessionSupported(e):new Promise((()=>!1))}}class Tt{constructor(e){this.editTextButton=null,this.hiddenInput=null,\"ontouchstart\"in document.documentElement&&this.createOnScreenKeyboardHelpers(e)}unquantizeAndDenormalizeUnsigned(e,t){return null}createOnScreenKeyboardHelpers(e){this.hiddenInput||(this.hiddenInput=document.createElement(\"input\"),this.hiddenInput.id=\"hiddenInput\",this.hiddenInput.maxLength=0,this.hiddenInput.style.position=\"absolute\",this.hiddenInput.style.left=\"-10%\",this.hiddenInput.style.width=\"0px\",this.hiddenInput.style.opacity=\"0\",e.appendChild(this.hiddenInput)),this.editTextButton||(this.editTextButton=document.createElement(\"button\"),this.editTextButton.id=\"editTextButton\",this.editTextButton.innerHTML=\"edit text\",e.appendChild(this.editTextButton),this.editTextButton.style.display=\"none\",this.editTextButton.addEventListener(\"touchend\",(e=>{this.hiddenInput.focus(),e.preventDefault()})))}showOnScreenKeyboard(e){if(e.showOnScreenKeyboard){this.editTextButton.style.display=\"default\";const t=this.unquantizeAndDenormalizeUnsigned(e.x,e.y);this.editTextButton.style.top=t.y.toString()+\"px\",this.editTextButton.style.left=(t.x-40).toString()+\"px\"}else this.editTextButton.style.display=\"none\",this.hiddenInput.blur()}}class Et{constructor(e){this.seq=e.Seq,this.playerSentTimestamp=Date.now(),this.requestFillerSize=e.Filler?e.Filler.length:0}update(e){this.playerReceivedTimestamp=Date.now(),this.streamerReceivedTimestamp=e.ReceivedTimestamp,this.streamerSentTimestamp=e.SentTimestamp,this.responseFillerSize=e.Filler?e.Filler.length:0}}class yt{constructor(e,t){this.sink=e,this.callback=t,this.records=new Map,this.seq=0}start(e){return!this.isRunning()&&(this.startTime=Date.now(),this.records.clear(),this.interval=setInterval((()=>{Date.now()-this.startTime>=e.duration?this.stop():this.sendRequest(e.requestSize,e.responseSize)}).bind(this),Math.floor(1e3/e.rps)),!0)}stop(){this.interval&&(clearInterval(this.interval),this.interval=void 0,this.callback(this.produceResult()))}produceResult(){const e=new Map(this.records);return{records:e,dataChannelRtt:Math.ceil(Array.from(this.records.values()).reduce(((e,t)=>e+(t.playerReceivedTimestamp-t.playerSentTimestamp)),0)/this.records.size),playerToStreamerTime:Math.ceil(Array.from(this.records.values()).reduce(((e,t)=>e+(t.streamerReceivedTimestamp-t.playerSentTimestamp)),0)/this.records.size),streamerToPlayerTime:Math.ceil(Array.from(this.records.values()).reduce(((e,t)=>e+(t.playerReceivedTimestamp-t.streamerSentTimestamp)),0)/this.records.size),exportLatencyAsCSV:()=>{let t=\"Timestamp;RTT;PlayerToStreamer;StreamerToPlayer;\\n\";return e.forEach((e=>{t+=e.playerSentTimestamp+\";\",t+=e.playerReceivedTimestamp-e.playerSentTimestamp+\";\",t+=e.streamerReceivedTimestamp-e.playerSentTimestamp+\";\",t+=e.playerReceivedTimestamp-e.streamerSentTimestamp+\";\",t+=\"\\n\"})),t}}}isRunning(){return!!this.interval}receive(e){if(!this.isRunning())return;if(!e)return void i.Error(i.GetStackTrace(),\"Undefined response from server\");let t=this.records.get(e.Seq);t&&t.update(e)}sendRequest(e,t){let s=this.createRequest(e,t),n=new Et(s);this.records.set(n.seq,n),this.sink(s)}createRequest(e,t){return{Seq:this.seq++,FillResponseSize:t,Filler:e?\"A\".repeat(e):\"\"}}}class Mt{constructor(e,t){this.allowConsoleCommands=!1,this.config=e,(null==t?void 0:t.videoElementParent)&&(this._videoElementParent=t.videoElementParent),this._eventEmitter=new he,this.configureSettings(),this.setWebRtcPlayerController(new vt(this.config,this)),this.onScreenKeyboardHelper=new Tt(this.videoElementParent),this.onScreenKeyboardHelper.unquantizeAndDenormalizeUnsigned=(e,t)=>this._webRtcController.requestUnquantizedAndDenormalizeUnsigned(e,t),this._activateOnScreenKeyboard=e=>this.onScreenKeyboardHelper.showOnScreenKeyboard(e),this._webXrController=new ft(this._webRtcController),this._setupWebRtcTCPRelayDetection=this._setupWebRtcTCPRelayDetection.bind(this),this._eventEmitter.addEventListener(\"webRtcConnected\",(e=>{this._eventEmitter.addEventListener(\"statsReceived\",this._setupWebRtcTCPRelayDetection)}))}get videoElementParent(){return this._videoElementParent||(this._videoElementParent=document.createElement(\"div\"),this._videoElementParent.id=\"videoElementParent\"),this._videoElementParent}configureSettings(){this.config._addOnSettingChangedListener(ue.IsQualityController,(e=>{!0!==e||this._webRtcController.isQualityController||this._webRtcController.sendRequestQualityControlOwnership()})),this.config._addOnSettingChangedListener(ue.AFKDetection,(e=>{this._webRtcController.setAfkEnabled(e)})),this.config._addOnSettingChangedListener(ue.MatchViewportResolution,(()=>{this._webRtcController.videoPlayer.updateVideoStreamSize()})),this.config._addOnSettingChangedListener(ue.HoveringMouseMode,(e=>{this.config.setFlagLabel(ue.HoveringMouseMode,`Control Scheme: ${e?\"Hovering\":\"Locked\"} Mouse`),this._webRtcController.setMouseInputEnabled(this.config.isFlagEnabled(ue.MouseInput))})),this.config._addOnSettingChangedListener(ue.KeyboardInput,(e=>{this._webRtcController.setKeyboardInputEnabled(e)})),this.config._addOnSettingChangedListener(ue.MouseInput,(e=>{this._webRtcController.setMouseInputEnabled(e)})),this.config._addOnSettingChangedListener(ue.FakeMouseWithTouches,(e=>{this._webRtcController.setTouchInputEnabled(this.config.isFlagEnabled(ue.TouchInput))})),this.config._addOnSettingChangedListener(ue.TouchInput,(e=>{this._webRtcController.setTouchInputEnabled(e)})),this.config._addOnSettingChangedListener(ue.GamepadInput,(e=>{this._webRtcController.setGamePadInputEnabled(e)})),this.config._addOnNumericSettingChangedListener(me.MinQP,(e=>{i.Log(i.GetStackTrace(),\"-------- Sending MinQP --------\",7),this._webRtcController.sendEncoderMinQP(e),i.Log(i.GetStackTrace(),\"-------------------------------------------\",7)})),this.config._addOnNumericSettingChangedListener(me.MaxQP,(e=>{i.Log(i.GetStackTrace(),\"-------- Sending encoder settings --------\",7),this._webRtcController.sendEncoderMaxQP(e),i.Log(i.GetStackTrace(),\"-------------------------------------------\",7)})),this.config._addOnNumericSettingChangedListener(me.WebRTCMinBitrate,(e=>{i.Log(i.GetStackTrace(),\"-------- Sending web rtc settings --------\",7),this._webRtcController.sendWebRTCMinBitrate(1e3*e),i.Log(i.GetStackTrace(),\"-------------------------------------------\",7)})),this.config._addOnNumericSettingChangedListener(me.WebRTCMaxBitrate,(e=>{i.Log(i.GetStackTrace(),\"-------- Sending web rtc settings --------\",7),this._webRtcController.sendWebRTCMaxBitrate(1e3*e),i.Log(i.GetStackTrace(),\"-------------------------------------------\",7)})),this.config._addOnNumericSettingChangedListener(me.WebRTCFPS,(e=>{i.Log(i.GetStackTrace(),\"-------- Sending web rtc settings --------\",7),this._webRtcController.sendWebRTCFps(e),i.Log(i.GetStackTrace(),\"-------------------------------------------\",7)})),this.config._addOnOptionSettingChangedListener(Ce.PreferredCodec,(e=>{this._webRtcController&&this._webRtcController.setPreferredCodec(e)})),this.config._registerOnChangeEvents(this._eventEmitter)}_activateOnScreenKeyboard(e){throw new Error(\"Method not implemented.\")}_onInputControlOwnership(e){this._inputController=e}setWebRtcPlayerController(e){this._webRtcController=e,this._webRtcController.setPreferredCodec(this.config.getSettingOption(Ce.PreferredCodec).selected),this._webRtcController.resizePlayerStyle(),this.checkForAutoConnect()}connect(){this._eventEmitter.dispatchEvent(new N),this._webRtcController.connectToSignallingServer()}reconnect(){this._eventEmitter.dispatchEvent(new Q),this._webRtcController.tryReconnect(\"Reconnecting...\")}disconnect(){this._eventEmitter.dispatchEvent(new K),this._webRtcController.close()}play(){this._onStreamLoading(),this._webRtcController.playStream()}checkForAutoConnect(){this.config.isFlagEnabled(ue.AutoConnect)&&(this._onWebRtcAutoConnect(),this._webRtcController.connectToSignallingServer())}unmuteMicrophone(e=!1){if(!this.config.isFlagEnabled(\"UseMic\"))return e?(this.config.setFlagEnabled(\"UseMic\",!0),void this.reconnect()):void i.Warning(i.GetStackTrace(),\"Trying to unmute mic, but PixelStreaming was initialized with no microphone track. Call with forceEnable == true to re-connect with a mic track.\");this.setMicrophoneMuted(!1)}muteMicrophone(){this.config.isFlagEnabled(\"UseMic\")?this.setMicrophoneMuted(!0):i.Info(i.GetStackTrace(),\"Trying to mute mic, but PixelStreaming has no microphone track, so sending sound is already disabled.\")}setMicrophoneMuted(e){var t,s,n,r;for(const i of null!==(r=null===(n=null===(s=null===(t=this._webRtcController)||void 0===t?void 0:t.peerConnectionController)||void 0===s?void 0:s.peerConnection)||void 0===n?void 0:n.getTransceivers())&&void 0!==r?r:[])Ie.canTransceiverSendAudio(i)&&(i.sender.track.enabled=!e)}_onWebRtcAutoConnect(){this._eventEmitter.dispatchEvent(new O)}_onWebRtcSdp(){this._eventEmitter.dispatchEvent(new D)}_onStreamLoading(){this._eventEmitter.dispatchEvent(new W)}_onDisconnect(e,t){this._eventEmitter.dispatchEvent(new B({eventString:e,allowClickToReconnect:t}))}_onWebRtcConnecting(){this._eventEmitter.dispatchEvent(new I)}_onWebRtcConnected(){this._eventEmitter.dispatchEvent(new U)}_onWebRtcFailed(){this._eventEmitter.dispatchEvent(new G)}_onVideoInitialized(){this._eventEmitter.dispatchEvent(new H),this._videoStartTime=Date.now()}_onLatencyTestResult(e){this._eventEmitter.dispatchEvent(new te({latencyTimings:e}))}_onDataChannelLatencyTestResponse(e){this._eventEmitter.dispatchEvent(new se({response:e}))}_onVideoStats(e){this._videoStartTime&&void 0!==this._videoStartTime||(this._videoStartTime=Date.now()),e.handleSessionStatistics(this._videoStartTime,this._inputController,this._webRtcController.videoAvgQp),this._eventEmitter.dispatchEvent(new Y({aggregatedStats:e}))}_onVideoEncoderAvgQP(e){this._eventEmitter.dispatchEvent(new F({avgQP:e}))}_onInitialSettings(e){var t;this._eventEmitter.dispatchEvent(new re({settings:e})),e.PixelStreamingSettings&&(this.allowConsoleCommands=null!==(t=e.PixelStreamingSettings.AllowPixelStreamingCommands)&&void 0!==t&&t,!1===this.allowConsoleCommands&&i.Info(i.GetStackTrace(),\"-AllowPixelStreamingCommands=false, sending arbitrary console commands from browser to UE is disabled.\"));const s=this.config.useUrlParams,n=new URLSearchParams(window.location.search);i.Info(i.GetStackTrace(),`using URL parameters ${s}`),e.EncoderSettings&&(this.config.setNumericSetting(me.MinQP,s&&n.has(me.MinQP)?Number.parseFloat(n.get(me.MinQP)):e.EncoderSettings.MinQP),this.config.setNumericSetting(me.MaxQP,s&&n.has(me.MaxQP)?Number.parseFloat(n.get(me.MaxQP)):e.EncoderSettings.MaxQP)),e.WebRTCSettings&&(this.config.setNumericSetting(me.WebRTCMinBitrate,s&&n.has(me.WebRTCMinBitrate)?Number.parseFloat(n.get(me.WebRTCMinBitrate)):e.WebRTCSettings.MinBitrate/1e3),this.config.setNumericSetting(me.WebRTCMaxBitrate,s&&n.has(me.WebRTCMaxBitrate)?Number.parseFloat(n.get(me.WebRTCMaxBitrate)):e.WebRTCSettings.MaxBitrate/1e3),this.config.setNumericSetting(me.WebRTCFPS,s&&n.has(me.WebRTCFPS)?Number.parseFloat(n.get(me.WebRTCFPS)):e.WebRTCSettings.FPS))}_onQualityControlOwnership(e){this.config.setFlagEnabled(ue.IsQualityController,e)}_onPlayerCount(e){this._eventEmitter.dispatchEvent(new de({count:e}))}_setupWebRtcTCPRelayDetection(e){let t=e.data.aggregatedStats.getActiveCandidatePair();if(null!=t){let s=e.data.aggregatedStats.localCandidates.find((e=>e.id==t.localCandidateId),null);null!=s&&\"relay\"==s.candidateType&&\"tcp\"==s.relayProtocol&&this._eventEmitter.dispatchEvent(new ce),this._eventEmitter.removeEventListener(\"statsReceived\",this._setupWebRtcTCPRelayDetection)}}requestLatencyTest(){return!!this._webRtcController.videoPlayer.isVideoReady()&&(this._webRtcController.sendLatencyTest(),!0)}requestDataChannelLatencyTest(e){return!!this._webRtcController.videoPlayer.isVideoReady()&&(this._dataChannelLatencyTestController||(this._dataChannelLatencyTestController=new yt(this._webRtcController.sendDataChannelLatencyTest.bind(this._webRtcController),(e=>{this._eventEmitter.dispatchEvent(new ne({result:e}))})),this.addEventListener(\"dataChannelLatencyTestResponse\",(({data:{response:e}})=>{this._dataChannelLatencyTestController.receive(e)}))),this._dataChannelLatencyTestController.start(e))}requestShowFps(){return!!this._webRtcController.videoPlayer.isVideoReady()&&(this._webRtcController.sendShowFps(),!0)}requestIframe(){return!!this._webRtcController.videoPlayer.isVideoReady()&&(this._webRtcController.sendIframeRequest(),!0)}emitUIInteraction(e){return!!this._webRtcController.videoPlayer.isVideoReady()&&(this._webRtcController.emitUIInteraction(e),!0)}emitCommand(e){return!(!this._webRtcController.videoPlayer.isVideoReady()||!this.allowConsoleCommands&&\"ConsoleCommand\"in e||(this._webRtcController.emitCommand(e),0))}emitConsoleCommand(e){return!(!this.allowConsoleCommands||!this._webRtcController.videoPlayer.isVideoReady()||(this._webRtcController.emitConsoleCommand(e),0))}addResponseEventListener(e,t){this._webRtcController.responseController.addResponseEventListener(e,t)}removeResponseEventListener(e){this._webRtcController.responseController.removeResponseEventListener(e)}dispatchEvent(e){return this._eventEmitter.dispatchEvent(e)}addEventListener(e,t){this._eventEmitter.addEventListener(e,t)}removeEventListener(e,t){this._eventEmitter.removeEventListener(e,t)}toggleXR(){this.webXrController.xrClicked()}setSignallingUrlBuilder(e){this._webRtcController.signallingUrlBuilder=e}get webSocketController(){return this._webRtcController.webSocketController}get webXrController(){return this._webXrController}registerMessageHandler(e,t,s){t!==Ge.FromStreamer||void 0!==s?t===Ge.ToStreamer&&void 0===s?this._webRtcController.streamMessageController.registerMessageHandler(t,e,(t=>this._webRtcController.sendMessageController.sendMessageToStreamer(e,t))):this._webRtcController.streamMessageController.registerMessageHandler(t,e,(e=>s(e))):i.Warning(i.GetStackTrace(),`Unable to register an undefined handler for ${e}`)}get toStreamerHandlers(){return this._webRtcController.streamMessageController.toStreamerHandlers}isReconnecting(){return this._webRtcController.isReconnecting}}class wt{}var bt=r.Dz,Rt=r.g$,Pt=r.Lt,kt=r.Q9,Lt=r.qf,xt=r.hV,At=r.z$,Ft=r.J0,Dt=r.De,Ot=r.$C,It=r.al,Ut=r._W,Gt=r.Gv,Bt=r.m,zt=r.tz,_t=r.Nu,Vt=r.zg,Ht=r.vp,Wt=r.vU,Nt=r.wF,Kt=r.rv,Qt=r.Nh,qt=r.ss,$t=r.qW,Xt=r.QL,jt=r.cf,Jt=r.eM,Yt=r.Yd,Zt=r.Tk,es=r.iM,ts=r.qy,ss=r.ce,ns=r.sK,rs=r.Ok,is=r.q5,as=r.g,os=r.xl,ls=r.I,ds=r.bx,cs=r.dD,hs=r.Ib,us=r.Az,gs=r.Iw,ms=r.qY,ps=r.db,Ss=r.mR,vs=r.Tn,Cs=r.rV,fs=r.gh,Ts=r.Mi,Es=r.j,ys=r.YB,Ms=r.Yt,ws=r.i5,bs=r.x_,Rs=r.Am,Ps=r.eR,ks=r.r8,Ls=r.u3,xs=r.vd,As=r.iV,Fs=r.jZ,Ds=r.SW,Os=r.ZH,Is=r.Ni,Us=r.lh,Gs=r.ZP,Bs=r.bq,zs=r.$f,_s=r.eu,Vs=r.Ax,Hs=r.Mc;export{bt as AfkLogic,Rt as AfkTimedOutEvent,Pt as AfkWarningActivateEvent,kt as AfkWarningDeactivateEvent,Lt as AfkWarningUpdateEvent,xt as AggregatedStats,At as CandidatePairStats,Ft as CandidateStat,Dt as Config,Ot as ControlSchemeType,It as DataChannelCloseEvent,Ut as DataChannelErrorEvent,Gt as DataChannelLatencyTestResponseEvent,Bt as DataChannelLatencyTestResultEvent,zt as DataChannelOpenEvent,_t as DataChannelStats,Vt as EncoderSettings,Ht as EventEmitter,Wt as Flags,Nt as HideFreezeFrameEvent,Kt as InboundAudioStats,Qt as InboundVideoStats,qt as InitialSettings,$t as InitialSettingsEvent,Xt as LatencyTestResultEvent,jt as LatencyTestResults,Jt as LoadFreezeFrameEvent,Yt as Logger,Zt as MessageDirection,es as MessageRecv,ts as MessageSend,ss as MessageStreamerList,ns as NumericParameters,rs as OptionParameters,is as OutBoundVideoStats,as as PixelStreaming,os as PlayStreamErrorEvent,ls as PlayStreamEvent,ds as PlayStreamRejectedEvent,cs as PlayerCountEvent,hs as SettingBase,us as SettingFlag,gs as SettingNumber,ms as SettingOption,ps as SettingText,Ss as SettingsChangedEvent,vs as SignallingProtocol,Cs as StatsReceivedEvent,fs as StreamLoadingEvent,Ts as StreamPreConnectEvent,Es as StreamPreDisconnectEvent,ys as StreamReconnectEvent,Ms as StreamerIDChangedMessageEvent,ws as StreamerListMessageEvent,bs as TextParameters,Rs as UnquantizedAndDenormalizeUnsigned,Ps as VideoEncoderAvgQPEvent,ks as VideoInitializedEvent,Ls as WebRTCSettings,xs as WebRtcAutoConnectEvent,As as WebRtcConnectedEvent,Fs as WebRtcConnectingEvent,Ds as WebRtcDisconnectedEvent,Os as WebRtcFailedEvent,Is as WebRtcPlayerController,Us as WebRtcSdpEvent,Gs as WebRtcTCPRelayDetectedEvent,Bs as WebSocketController,zs as WebXRController,_s as XrFrameEvent,Vs as XrSessionEndedEvent,Hs as XrSessionStartedEvent};","import { useEffect, useRef, useState } from 'react';\nimport { Config, PixelStreaming } from '@epicgames-ps/lib-pixelstreamingfrontend-ue5.4';\nimport './PixelStreamingPlayer.css';\nimport type { EpicPixelStreamingPlayerProps } from '../../types';\n\nconst EpicPixelStreamingPlayer = ({\n signallingUrl,\n autoConnect = true,\n width,\n height,\n onConnecting,\n onLoading,\n onConnected,\n onDisconnected,\n onError,\n muted = false,\n}: EpicPixelStreamingPlayerProps) => {\n const containerRef = useRef<HTMLDivElement>(null);\n const pixelStreamingRef = useRef<PixelStreaming | null>(null);\n const isConnectedRef = useRef(false);\n const [isConnected, setIsConnected] = useState(false);\n const [isLoading, setIsLoading] = useState(false);\n const [errorMessage, setErrorMessage] = useState<string | null>(null);\n\n useEffect(() => {\n if (!containerRef.current || !signallingUrl) return;\n if (onConnecting) onConnecting();\n\n if (process.env.NODE_ENV === 'development') {\n console.log('Initializing Epic Pixel Streaming with URL:', signallingUrl);\n }\n\n if (!('mediaDevices' in navigator)) {\n Object.defineProperty(navigator, 'mediaDevices', { value: {} });\n }\n if (!navigator.mediaDevices.getUserMedia) {\n navigator.mediaDevices.getUserMedia = function () {\n return Promise.reject(new Error('getUserMedia is not supported'));\n };\n }\n\n try {\n const config = new Config({\n useUrlParams: false,\n initialSettings: {\n 'ss': signallingUrl,\n 'AutoConnect': autoConnect,\n 'AutoPlayVideo': true,\n 'StartVideoMuted': muted,\n 'UseMic': false,\n 'HoveringMouse': false,\n 'FakeMouseWithTouches': true,\n 'TouchInput': false,\n 'MouseInput': false,\n 'KeyboardInput': false,\n 'WaitForStreamer': true,\n },\n });\n\n const stream = new PixelStreaming(config, {\n videoElementParent: containerRef.current,\n });\n\n stream.addEventListener('webRtcConnected', () => {\n isConnectedRef.current = true;\n setIsConnected(true);\n setIsLoading(false);\n setErrorMessage(null);\n onConnected?.();\n });\n\n stream.addEventListener('webRtcDisconnected', () => {\n isConnectedRef.current = false;\n setIsConnected(false);\n onDisconnected?.();\n });\n\n stream.addEventListener('streamLoading', () => {\n setIsLoading(true);\n onLoading?.();\n });\n\n stream.addEventListener('playStreamError', () => {\n setErrorMessage('Failed to play stream');\n setIsLoading(false);\n onError?.('Failed to play stream');\n });\n\n stream.addEventListener('playStream', () => {\n setIsLoading(false);\n if (!isConnectedRef.current) {\n isConnectedRef.current = true;\n setIsConnected(true);\n onConnected?.();\n }\n });\n\n stream.addEventListener('videoInitialized', () => {\n setIsLoading(false);\n });\n\n pixelStreamingRef.current = stream;\n } catch (error) {\n if (process.env.NODE_ENV === 'development') {\n console.error('Failed to initialize Pixel Streaming:', error);\n }\n setErrorMessage('Failed to initialize streaming: ' + (error as Error).message);\n setIsLoading(false);\n onError?.((error as Error).message);\n }\n\n return () => {\n if (pixelStreamingRef.current) {\n try {\n const ps = pixelStreamingRef.current as unknown as { _webSocketController?: { close: () => void } };\n if (ps._webSocketController) {\n ps._webSocketController.close();\n }\n pixelStreamingRef.current.disconnect();\n } catch (error) {\n if (process.env.NODE_ENV === 'development') {\n console.error('Error during cleanup:', error);\n }\n }\n pixelStreamingRef.current = null;\n }\n };\n }, [signallingUrl, autoConnect, onConnecting, onLoading, onConnected, onDisconnected, onError]);\n\n useEffect(() => {\n if (!pixelStreamingRef.current) return;\n\n try {\n const ps = pixelStreamingRef.current as unknown as {\n _webRtcController?: {\n videoPlayer?: {\n audioElement?: { srcObject?: MediaStream };\n getVideoElement: () => HTMLVideoElement;\n };\n };\n };\n const videoPlayer = ps._webRtcController?.videoPlayer;\n if (!videoPlayer) return;\n\n let audioControlled = false;\n\n if (videoPlayer.audioElement) {\n const audioStream = videoPlayer.audioElement.srcObject;\n if (audioStream) {\n const audioTracks = audioStream.getAudioTracks();\n if (audioTracks.length > 0) {\n audioTracks.forEach(track => { track.enabled = !muted; });\n audioControlled = true;\n }\n }\n }\n\n const videoElement = videoPlayer.getVideoElement();\n if (videoElement && videoElement.srcObject && videoElement.srcObject instanceof MediaStream) {\n const stream = videoElement.srcObject;\n const audioTracks = stream.getAudioTracks();\n if (audioTracks.length > 0) {\n audioTracks.forEach((track: MediaStreamTrack) => { track.enabled = !muted; });\n audioControlled = true;\n }\n }\n\n if (!audioControlled && videoElement) {\n videoElement.muted = muted;\n }\n } catch (e) {\n if (process.env.NODE_ENV === 'development') {\n console.error('Error controlling audio:', e);\n }\n }\n }, [muted]);\n\n return (\n <div\n className=\"pixel-streaming-container\"\n style={{\n width: width || '100%',\n height: height || '100%',\n position: 'relative',\n display: 'flex',\n flexDirection: 'column',\n touchAction: 'none',\n WebkitTouchCallout: 'none',\n WebkitUserSelect: 'none',\n userSelect: 'none',\n }}\n >\n <div\n ref={containerRef}\n className=\"player-container\"\n style={{\n position: 'absolute',\n top: 0,\n left: 0,\n width: '100%',\n height: '100%',\n overflow: 'hidden',\n touchAction: 'none',\n }}\n />\n\n {isLoading && (\n <div className=\"loading-overlay\">\n <div className=\"loading-spinner\"></div>\n <div className=\"loading-text\">Connecting to stream...</div>\n </div>\n )}\n\n {!isConnected && !isLoading && errorMessage && (\n <div className=\"connection-overlay\">\n <div className=\"error-message\">{errorMessage}</div>\n </div>\n )}\n </div>\n );\n};\n\nexport default EpicPixelStreamingPlayer;\n","import React from 'react';\nimport EpicPixelStreamingPlayer from './pxs/EpicPixelStreamingPlayer';\nimport { useRqmiiAvatar } from '../hooks/use-rqmii-avatar';\nimport { CLOUD_STREAM_STATE } from '../core/constants';\nimport type { RqmiiCloudAvatarPlayerProps } from '../types';\n\nexport function RqmiiCloudAvatarPlayer({\n className,\n style,\n autoConnect = true,\n muted = false,\n onConnected,\n onDisconnected,\n onError,\n}: RqmiiCloudAvatarPlayerProps) {\n const { streamingUrl, setCloudStreamState } = useRqmiiAvatar();\n\n if (!streamingUrl) {\n return null;\n }\n\n const handleConnecting = () => {\n setCloudStreamState(CLOUD_STREAM_STATE.CONNECTING);\n };\n\n const handleLoading = () => {\n setCloudStreamState(CLOUD_STREAM_STATE.LOADING);\n };\n\n const handleConnected = () => {\n setCloudStreamState(CLOUD_STREAM_STATE.CONNECTED);\n onConnected?.();\n };\n\n const handleDisconnected = () => {\n setCloudStreamState(CLOUD_STREAM_STATE.DISCONNECTED);\n onDisconnected?.();\n };\n\n const handleError = (error: unknown) => {\n setCloudStreamState(CLOUD_STREAM_STATE.ERROR, error);\n onError?.(error);\n };\n\n return (\n <div className={className} style={style}>\n <EpicPixelStreamingPlayer\n signallingUrl={streamingUrl}\n autoConnect={autoConnect}\n muted={muted}\n onConnecting={handleConnecting}\n onLoading={handleLoading}\n onConnected={handleConnected}\n onDisconnected={handleDisconnected}\n onError={handleError}\n />\n </div>\n );\n}\n"],"names":["SDPUtils","blob","line","part","index","sections","prefix","parts","candidate","sdp","component","type","parsed","codec","pt","channels","headerExtension","kv","j","params","param","lines","fb","sp","colon","ssrc","mediaSection","mid","sessionpart","setupType","fp","parameters","keyParams","ufrag","pwd","description","mline","i","rtpmapline","fmtps","wildcardRtcpFb","existingFeedback","kind","caps","maxptime","extension","encodingParameters","hasRed","hasUlpfec","ssrcs","primarySsrc","secondarySsrc","flows","encParam","bandwidth","rtcpParameters","remoteSsrc","obj","rsize","mux","spec","planB","msidParts","maxSizeLine","maxMessageSize","sctpPort","sctpMapLines","media","sctp","output","sessId","sessVer","sessUser","sessionId","version","module","t","s","n","e","r","ye","A","k","x","L","Ae","wt","Pe","Te","Ee","_","V","se","ne","z","Re","He","he","ue","J","we","be","_e","re","te","Ne","Ge","S","a","v","me","Ce","ke","Mt","q","$","X","de","M","w","b","P","R","ie","C","Y","W","N","K","Q","ee","Z","Se","F","H","We","O","U","I","B","G","vt","D","ce","f","ft","le","oe","ae","o","l","d","c","h","u","g","m","p","T","E","y","ge","pe","ve","fe","Me","Le","xe","Fe","De","e.parseRtpParameters","e.splitSections","Oe","Ie","Ue","Be","ze","Ve","Ke","Qe","qe","$e","Xe","je","Je","Ye","Ze","et","tt","st","nt","rt","it","at","ot","lt","dt","ct","ht","ut","gt","mt","St","Ct","Tt","Et","yt","Dt","as","EpicPixelStreamingPlayer","signallingUrl","autoConnect","width","height","onConnecting","onLoading","onConnected","onDisconnected","onError","muted","containerRef","useRef","pixelStreamingRef","isConnectedRef","isConnected","setIsConnected","useState","isLoading","setIsLoading","errorMessage","setErrorMessage","useEffect","config","Config","stream","PixelStreaming","error","ps","videoPlayer","audioControlled","audioStream","audioTracks","track","videoElement","jsxs","jsx","RqmiiCloudAvatarPlayer","className","style","streamingUrl","setCloudStreamState","useRqmiiAvatar","handleConnecting","CLOUD_STREAM_STATE","handleLoading","handleConnected","handleDisconnected","handleError"],"mappings":"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","x_google_ignoreList":[0,1]}
|