@100mslive/react-sdk 0.0.5-alpha.6 → 0.0.5

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/README.md ADDED
@@ -0,0 +1,40 @@
1
+ ### About
2
+
3
+ This package holds the code for the react wrapper over the core SDK.
4
+ An easy way to use the store, actions and notifications are provided via
5
+ React hooks. Some other hooks are also provided for ease of use which wrap
6
+ over the primitive ones.
7
+ If someone is using class based react components, they'll be better off
8
+ with using the core sdk directly.
9
+
10
+ ### Primitive Hooks
11
+
12
+ These are hooks wrapper over the sdk things.
13
+
14
+ - useHMSStore - to get any state from store
15
+ - useHMSActions - hmsActions to perform any actions
16
+ - useHMSNotifications - to receive any new notifications/error for the room
17
+ - useHMSVanillaStore - return the store object directly to be used in non react context
18
+ - useHMSStatsStore - to get webrtc related stats
19
+
20
+
21
+ ### Developer Guidelines
22
+
23
+ The core is in HMSRoomProvider, there is one major limitation right now that
24
+ only one room can be joined at a time.
25
+
26
+ If adding a new hook or working on a previous one, do keep in mind of
27
+ the below things -
28
+
29
+ - don't assume anything on how, when or the frequency at which the hook will
30
+ be called, every hook should have well-defined and documented input/output
31
+ interfaces and should be subscribing to bare minimum things needed to accomplish its job.
32
+ - use useCallback to create any function which will be returned by the hook
33
+ and subsequently called by the UI.
34
+ - no errors should be swallowed by the hook, if a function call can give error, take
35
+ an explicit handleError to call.
36
+ - make sure to use await for async calls, else try catch won't have an effect
37
+ - Pull all usage of hooks on top before defining any functions.
38
+ - Prefer IDs to objects for both input arguments and in result object. This
39
+ facilitates writing optimised code on the app layer, as objects are prone to change
40
+ leading to unnecessary re renders on different levels.
@@ -1,5 +1,6 @@
1
- import { EqualityChecker, StateSelector } from 'zustand';
2
- import { HMSStore, IStoreReadOnly, HMSStatsStore } from '@100mslive/hms-video-store';
3
- export interface IHMSReactStore<S extends HMSStore | HMSStatsStore> extends IStoreReadOnly<S> {
4
- <U>(selector: StateSelector<S, U>, equalityFn?: EqualityChecker<U>): U;
5
- }
1
+ /**
2
+ * use this to control how errors are handled within a function exposed by a hook. By default this
3
+ * only logs the error to the console, and can be overridden for any other behaviour. For e.g.
4
+ * `(err) => throw err;` will ensure that any error is thrown back to the caller when the function is called.
5
+ */
6
+ export declare type hooksErrHandler = (err: Error, method?: string) => void;
@@ -1,7 +1,24 @@
1
- export declare const useAVToggle: () => {
1
+ import { hooksErrHandler } from '../hooks/types';
2
+ export interface useAVToggleResult {
3
+ /**
4
+ * true if unmuted and vice versa
5
+ */
2
6
  isLocalAudioEnabled: boolean;
3
7
  isLocalVideoEnabled: boolean;
4
- toggleAudio: () => Promise<void>;
5
- toggleVideo: () => Promise<void>;
6
- isAllowedToPublish: import("@100mslive/hms-video-store").HMSPublishAllowed;
7
- };
8
+ /**
9
+ * use this function to toggle audio state, the function will only be present if the user
10
+ * has permission to unmute audio
11
+ */
12
+ toggleAudio?: () => void;
13
+ /**
14
+ * use this function to toggle video state, the function will only be present if the user
15
+ * has permission to unmute video
16
+ */
17
+ toggleVideo?: () => void;
18
+ }
19
+ /**
20
+ * Use this hook to implement mute/unmute for audio and video.
21
+ * isAllowedToPublish can be used to decide whether to show the toggle buttons in the UI.
22
+ * @param handleError to handle any error during toggle of audio/video
23
+ */
24
+ export declare const useAVToggle: (handleError?: hooksErrHandler) => useAVToggleResult;
@@ -0,0 +1,9 @@
1
+ import { HMSTrackID } from '@100mslive/hms-video-store';
2
+ /**
3
+ * This hook can be used to implement an audio level changer on tile level.
4
+ * @param trackId of the track whose volume is needed
5
+ */
6
+ export declare const useAudio: (trackId: HMSTrackID) => {
7
+ volume: number | undefined;
8
+ setVolume: (volume: number) => void;
9
+ };
@@ -0,0 +1,15 @@
1
+ import React from 'react';
2
+ /**
3
+ * This hook can be used to apply css properties on an element based on the current audio level for the passed in track.
4
+ * It doesn't return the audio level as it's optimised for performance. As audio level could be changing frequently we
5
+ * want to minimise the number of components an audio level change causes to re render.
6
+ * An e.g. use of this hook will be to apply box-shadow on parent tile based on audio level.
7
+ * @param trackId is the audio track id for which audio level needs to be used
8
+ * @param getStyle is a function which can take in current audio level and return the style to apply for the ref
9
+ * @param ref is the ref of the element on which you want the css to apply
10
+ */
11
+ export declare function useAudioLevelStyles({ trackId, getStyle, ref, }: {
12
+ trackId?: string;
13
+ getStyle: (level: number) => Record<string, string>;
14
+ ref: React.RefObject<any>;
15
+ }): void;
@@ -1,12 +1,32 @@
1
- import { HMSMediaSettings } from '@100mslive/hms-video-store';
2
- import { ChangeEventHandler } from 'react';
3
- export declare const useDevices: () => {
4
- showVideo: boolean;
5
- videoInput: MediaDeviceInfo[];
6
- showAudio: boolean;
7
- audioInput: MediaDeviceInfo[];
8
- audioOutput: MediaDeviceInfo[];
9
- isSubscribing: boolean;
10
- selectedDevices: HMSMediaSettings;
11
- handleInputChange: ChangeEventHandler<any>;
12
- } | null;
1
+ import { hooksErrHandler } from '../hooks/types';
2
+ declare enum DeviceType {
3
+ videoInput = "videoInput",
4
+ audioInput = "audioInput",
5
+ audioOutput = "audioOutput"
6
+ }
7
+ declare type DeviceTypeInfo<T> = {
8
+ [key in DeviceType]?: T;
9
+ };
10
+ export interface useDevicesResult {
11
+ allDevices: DeviceTypeInfo<MediaDeviceInfo[]>;
12
+ selectedDeviceIDs: DeviceTypeInfo<string>;
13
+ updateDevice: ({ deviceType, deviceId }: {
14
+ deviceType: DeviceType;
15
+ deviceId: string;
16
+ }) => Promise<void>;
17
+ }
18
+ /**
19
+ * This hook can be used to implement a UI component which allows the user to manually change their
20
+ * audio/video device. It returns the list of all devices as well as the currently selected one. The input
21
+ * devices will be returned based on what the user is allowed to publish, so a audio only user won't get
22
+ * the videInput field.
23
+ *
24
+ * Note:
25
+ * - Browsers give access to the list of devices only if the user has given permission to access them
26
+ * - Changing devices manually work best in combination with remembering the user's selection for the next time, do
27
+ * pass the rememberDeviceSelection flag at time of join for this to happen.
28
+ *
29
+ * @param handleError error handler for any errors during device change
30
+ */
31
+ export declare const useDevices: (handleError?: hooksErrHandler) => useDevicesResult;
32
+ export {};
@@ -1,12 +1,41 @@
1
- /// <reference types="react" />
2
- import { HMSRoomState } from '@100mslive/hms-video-store';
3
- export declare const usePreview: (authToken: string, userName?: string) => {
4
- localPeer: import("@100mslive/hms-video-store").HMSPeer;
5
- roomState: HMSRoomState;
6
- audioEnabled: boolean;
7
- videoEnabled: boolean | undefined;
8
- isAllowedToPublish: import("@100mslive/hms-video-store").HMSPublishAllowed;
9
- disableJoin: boolean;
10
- actions: import("@100mslive/hms-video-store").HMSActions;
11
- setInProgress: import("react").Dispatch<import("react").SetStateAction<boolean>>;
12
- };
1
+ import { hooksErrHandler } from '../hooks/types';
2
+ export interface usePreviewInput {
3
+ /**
4
+ * name of user who is joining, this is only required if join is called
5
+ */
6
+ name?: string;
7
+ /**
8
+ * app side authentication token
9
+ */
10
+ token: string;
11
+ /**
12
+ * any extra metadata info for the peer
13
+ */
14
+ metadata?: string;
15
+ /**
16
+ * function to handle errors happening during preview
17
+ */
18
+ handleError?: hooksErrHandler;
19
+ }
20
+ export interface usePreviewResult {
21
+ /**
22
+ * enable the join button for the user only when this is true
23
+ */
24
+ enableJoin: boolean;
25
+ /**
26
+ * call this function to join the room
27
+ */
28
+ join: () => void;
29
+ /**
30
+ * once the user has joined the room, till leave happens this flag will be true. It can be used
31
+ * to decide to show between preview form and conferencing component/video tiles.
32
+ */
33
+ isConnected: boolean;
34
+ }
35
+ /**
36
+ * This hook can be used to build a preview UI component, this lets you call preview everytime the passed in
37
+ * token changes. This hook is best used in combination with useDevices for changing devices, useAVToggle for
38
+ * muting/unmuting and useAudioLevelStyles for showing mic audio level to the user.
39
+ * Any device change or mute/unmute will be carried across to join.
40
+ */
41
+ export declare const usePreview: ({ name, token, metadata, handleError, }: usePreviewInput) => usePreviewResult;
@@ -0,0 +1,35 @@
1
+ import { hooksErrHandler } from '../hooks/types';
2
+ import { HMSPeerID, HMSTrackID } from '@100mslive/hms-video-store';
3
+ export interface useScreenShareResult {
4
+ /**
5
+ * true if the local user is screensharing, false otherwise
6
+ */
7
+ amIScreenSharing: boolean;
8
+ /**
9
+ * toggle screenshare for the local user, will only be present if the user has the permission to toggle
10
+ */
11
+ toggleScreenShare?: () => void;
12
+ /**
13
+ * the id of the peer who is currently screensharing, will only be present if there is a screenshare in the room.
14
+ * In case of multiple screenshares, the behaviour of which one is picked is not defined.
15
+ */
16
+ screenSharingPeerId?: HMSPeerID;
17
+ /**
18
+ * screenShare audio track id, will only be present if there is a screenshare with video track
19
+ */
20
+ screenShareVideoTrackId?: HMSTrackID;
21
+ /**
22
+ * screenShare audio track id, will only be present if there is a screenshare with audio track
23
+ */
24
+ screenShareAudioTrackId?: HMSTrackID;
25
+ }
26
+ /**
27
+ * This hook can be used to implement a screenshare toggle button as well as know about the screenshare in the room.
28
+ * This works best if your application only needs to show one screenshare in large view at a time with other screenshares
29
+ * similar to normal user tiles.
30
+ * For any complicated requirement with multiple screenshares it's best to use the store directly.
31
+ * For viewing the screenshare this hook is best used in combination with useVideo.
32
+ * For implementing control bar for local peer, this is used based with useAVToggle.
33
+ * @param handleError to handle any errors during screenshare toggle
34
+ */
35
+ export declare const useScreenShare: (handleError?: hooksErrHandler) => useScreenShareResult;
@@ -1,7 +1,9 @@
1
1
  import { HMSTrackID } from '@100mslive/hms-video-store';
2
2
  /**
3
- *
3
+ * This hooks can be used to implement a video tile component. Given a track id it will return a ref.
4
+ * The returned ref can be used to set on a video element meant to display the video.
5
+ * The hook will take care of attaching and detaching video, and will automatically detach when the video
6
+ * goes out of view to save on bandwidth.
4
7
  * @param trackId {HMSTrackID}
5
- * the returned ref can be used to set on a video element meant to display the video for the passed in track id. The hook will take care of attaching and detaching video, and will automatically detach when the video goes out of view to save on bandwidth.
6
8
  */
7
9
  export declare const useVideo: (trackId: HMSTrackID) => (node: any) => void;
package/dist/index.cjs.js CHANGED
@@ -1,44 +1 @@
1
- var Fr=Object.create;var xe=Object.defineProperty,Vr=Object.defineProperties,Br=Object.getOwnPropertyDescriptor,Hr=Object.getOwnPropertyDescriptors,jr=Object.getOwnPropertyNames,Kt=Object.getOwnPropertySymbols,$r=Object.getPrototypeOf,qt=Object.prototype.hasOwnProperty,Wr=Object.prototype.propertyIsEnumerable;var zt=(e,t,i)=>t in e?xe(e,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[t]=i,Ue=(e,t)=>{for(var i in t||(t={}))qt.call(t,i)&&zt(e,i,t[i]);if(Kt)for(var i of Kt(t))Wr.call(t,i)&&zt(e,i,t[i]);return e},Ge=(e,t)=>Vr(e,Hr(t)),Jt=e=>xe(e,"__esModule",{value:!0});var ve=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),Fe=(e,t)=>{Jt(e);for(var i in t)xe(e,i,{get:t[i],enumerable:!0})},Q=(e,t,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of jr(t))!qt.call(e,r)&&r!=="default"&&xe(e,r,{get:()=>t[r],enumerable:!(i=Br(t,r))||i.enumerable});return e},U=e=>Q(Jt(xe(e!=null?Fr($r(e)):{},"default",e&&e.__esModule&&"default"in e?{get:()=>e.default,enumerable:!0}:{value:e,enumerable:!0})),e);var Ve=(e,t,i)=>new Promise((r,s)=>{var o=m=>{try{l(i.next(m))}catch(h){s(h)}},a=m=>{try{l(i.throw(m))}catch(h){s(h)}},l=m=>m.done?r(m.value):Promise.resolve(m.value).then(o,a);l((i=i.apply(e,t)).next())});var wt=ve((hn,Mt)=>{"use strict";var k={};k.generateIdentifier=function(){return Math.random().toString(36).substr(2,10)};k.localCName=k.generateIdentifier();k.splitLines=function(e){return e.trim().split(`
2
- `).map(t=>t.trim())};k.splitSections=function(e){return e.split(`
3
- m=`).map((i,r)=>(r>0?"m="+i:i).trim()+`\r
4
- `)};k.getDescription=function(e){let t=k.splitSections(e);return t&&t[0]};k.getMediaSections=function(e){let t=k.splitSections(e);return t.shift(),t};k.matchPrefix=function(e,t){return k.splitLines(e).filter(i=>i.indexOf(t)===0)};k.parseCandidate=function(e){let t;e.indexOf("a=candidate:")===0?t=e.substring(12).split(" "):t=e.substring(10).split(" ");let i={foundation:t[0],component:{1:"rtp",2:"rtcp"}[t[1]]||t[1],protocol:t[2].toLowerCase(),priority:parseInt(t[3],10),ip:t[4],address:t[4],port:parseInt(t[5],10),type:t[7]};for(let r=8;r<t.length;r+=2)switch(t[r]){case"raddr":i.relatedAddress=t[r+1];break;case"rport":i.relatedPort=parseInt(t[r+1],10);break;case"tcptype":i.tcpType=t[r+1];break;case"ufrag":i.ufrag=t[r+1],i.usernameFragment=t[r+1];break;default:i[t[r]]===void 0&&(i[t[r]]=t[r+1]);break}return i};k.writeCandidate=function(e){let t=[];t.push(e.foundation);let i=e.component;i==="rtp"?t.push(1):i==="rtcp"?t.push(2):t.push(i),t.push(e.protocol.toUpperCase()),t.push(e.priority),t.push(e.address||e.ip),t.push(e.port);let r=e.type;return t.push("typ"),t.push(r),r!=="host"&&e.relatedAddress&&e.relatedPort&&(t.push("raddr"),t.push(e.relatedAddress),t.push("rport"),t.push(e.relatedPort)),e.tcpType&&e.protocol.toLowerCase()==="tcp"&&(t.push("tcptype"),t.push(e.tcpType)),(e.usernameFragment||e.ufrag)&&(t.push("ufrag"),t.push(e.usernameFragment||e.ufrag)),"candidate:"+t.join(" ")};k.parseIceOptions=function(e){return e.substr(14).split(" ")};k.parseRtpMap=function(e){let t=e.substr(9).split(" "),i={payloadType:parseInt(t.shift(),10)};return t=t[0].split("/"),i.name=t[0],i.clockRate=parseInt(t[1],10),i.channels=t.length===3?parseInt(t[2],10):1,i.numChannels=i.channels,i};k.writeRtpMap=function(e){let t=e.payloadType;e.preferredPayloadType!==void 0&&(t=e.preferredPayloadType);let i=e.channels||e.numChannels||1;return"a=rtpmap:"+t+" "+e.name+"/"+e.clockRate+(i!==1?"/"+i:"")+`\r
5
- `};k.parseExtmap=function(e){let t=e.substr(9).split(" ");return{id:parseInt(t[0],10),direction:t[0].indexOf("/")>0?t[0].split("/")[1]:"sendrecv",uri:t[1]}};k.writeExtmap=function(e){return"a=extmap:"+(e.id||e.preferredId)+(e.direction&&e.direction!=="sendrecv"?"/"+e.direction:"")+" "+e.uri+`\r
6
- `};k.parseFmtp=function(e){let t={},i,r=e.substr(e.indexOf(" ")+1).split(";");for(let s=0;s<r.length;s++)i=r[s].trim().split("="),t[i[0].trim()]=i[1];return t};k.writeFmtp=function(e){let t="",i=e.payloadType;if(e.preferredPayloadType!==void 0&&(i=e.preferredPayloadType),e.parameters&&Object.keys(e.parameters).length){let r=[];Object.keys(e.parameters).forEach(s=>{e.parameters[s]!==void 0?r.push(s+"="+e.parameters[s]):r.push(s)}),t+="a=fmtp:"+i+" "+r.join(";")+`\r
7
- `}return t};k.parseRtcpFb=function(e){let t=e.substr(e.indexOf(" ")+1).split(" ");return{type:t.shift(),parameter:t.join(" ")}};k.writeRtcpFb=function(e){let t="",i=e.payloadType;return e.preferredPayloadType!==void 0&&(i=e.preferredPayloadType),e.rtcpFeedback&&e.rtcpFeedback.length&&e.rtcpFeedback.forEach(r=>{t+="a=rtcp-fb:"+i+" "+r.type+(r.parameter&&r.parameter.length?" "+r.parameter:"")+`\r
8
- `}),t};k.parseSsrcMedia=function(e){let t=e.indexOf(" "),i={ssrc:parseInt(e.substr(7,t-7),10)},r=e.indexOf(":",t);return r>-1?(i.attribute=e.substr(t+1,r-t-1),i.value=e.substr(r+1)):i.attribute=e.substr(t+1),i};k.parseSsrcGroup=function(e){let t=e.substr(13).split(" ");return{semantics:t.shift(),ssrcs:t.map(i=>parseInt(i,10))}};k.getMid=function(e){let t=k.matchPrefix(e,"a=mid:")[0];if(t)return t.substr(6)};k.parseFingerprint=function(e){let t=e.substr(14).split(" ");return{algorithm:t[0].toLowerCase(),value:t[1].toUpperCase()}};k.getDtlsParameters=function(e,t){let i=k.matchPrefix(e+t,"a=fingerprint:");return{role:"auto",fingerprints:i.map(k.parseFingerprint)}};k.writeDtlsParameters=function(e,t){let i="a=setup:"+t+`\r
9
- `;return e.fingerprints.forEach(r=>{i+="a=fingerprint:"+r.algorithm+" "+r.value+`\r
10
- `}),i};k.parseCryptoLine=function(e){let t=e.substr(9).split(" ");return{tag:parseInt(t[0],10),cryptoSuite:t[1],keyParams:t[2],sessionParams:t.slice(3)}};k.writeCryptoLine=function(e){return"a=crypto:"+e.tag+" "+e.cryptoSuite+" "+(typeof e.keyParams=="object"?k.writeCryptoKeyParams(e.keyParams):e.keyParams)+(e.sessionParams?" "+e.sessionParams.join(" "):"")+`\r
11
- `};k.parseCryptoKeyParams=function(e){if(e.indexOf("inline:")!==0)return null;let t=e.substr(7).split("|");return{keyMethod:"inline",keySalt:t[0],lifeTime:t[1],mkiValue:t[2]?t[2].split(":")[0]:void 0,mkiLength:t[2]?t[2].split(":")[1]:void 0}};k.writeCryptoKeyParams=function(e){return e.keyMethod+":"+e.keySalt+(e.lifeTime?"|"+e.lifeTime:"")+(e.mkiValue&&e.mkiLength?"|"+e.mkiValue+":"+e.mkiLength:"")};k.getCryptoParameters=function(e,t){return k.matchPrefix(e+t,"a=crypto:").map(k.parseCryptoLine)};k.getIceParameters=function(e,t){let i=k.matchPrefix(e+t,"a=ice-ufrag:")[0],r=k.matchPrefix(e+t,"a=ice-pwd:")[0];return i&&r?{usernameFragment:i.substr(12),password:r.substr(10)}:null};k.writeIceParameters=function(e){let t="a=ice-ufrag:"+e.usernameFragment+`\r
12
- a=ice-pwd:`+e.password+`\r
13
- `;return e.iceLite&&(t+=`a=ice-lite\r
14
- `),t};k.parseRtpParameters=function(e){let t={codecs:[],headerExtensions:[],fecMechanisms:[],rtcp:[]},r=k.splitLines(e)[0].split(" ");for(let s=3;s<r.length;s++){let o=r[s],a=k.matchPrefix(e,"a=rtpmap:"+o+" ")[0];if(a){let l=k.parseRtpMap(a),m=k.matchPrefix(e,"a=fmtp:"+o+" ");switch(l.parameters=m.length?k.parseFmtp(m[0]):{},l.rtcpFeedback=k.matchPrefix(e,"a=rtcp-fb:"+o+" ").map(k.parseRtcpFb),t.codecs.push(l),l.name.toUpperCase()){case"RED":case"ULPFEC":t.fecMechanisms.push(l.name.toUpperCase());break;default:break}}}return k.matchPrefix(e,"a=extmap:").forEach(s=>{t.headerExtensions.push(k.parseExtmap(s))}),t};k.writeRtpDescription=function(e,t){let i="";i+="m="+e+" ",i+=t.codecs.length>0?"9":"0",i+=" UDP/TLS/RTP/SAVPF ",i+=t.codecs.map(s=>s.preferredPayloadType!==void 0?s.preferredPayloadType:s.payloadType).join(" ")+`\r
15
- `,i+=`c=IN IP4 0.0.0.0\r
16
- `,i+=`a=rtcp:9 IN IP4 0.0.0.0\r
17
- `,t.codecs.forEach(s=>{i+=k.writeRtpMap(s),i+=k.writeFmtp(s),i+=k.writeRtcpFb(s)});let r=0;return t.codecs.forEach(s=>{s.maxptime>r&&(r=s.maxptime)}),r>0&&(i+="a=maxptime:"+r+`\r
18
- `),t.headerExtensions&&t.headerExtensions.forEach(s=>{i+=k.writeExtmap(s)}),i};k.parseRtpEncodingParameters=function(e){let t=[],i=k.parseRtpParameters(e),r=i.fecMechanisms.indexOf("RED")!==-1,s=i.fecMechanisms.indexOf("ULPFEC")!==-1,o=k.matchPrefix(e,"a=ssrc:").map(c=>k.parseSsrcMedia(c)).filter(c=>c.attribute==="cname"),a=o.length>0&&o[0].ssrc,l,m=k.matchPrefix(e,"a=ssrc-group:FID").map(c=>c.substr(17).split(" ").map(u=>parseInt(u,10)));m.length>0&&m[0].length>1&&m[0][0]===a&&(l=m[0][1]),i.codecs.forEach(c=>{if(c.name.toUpperCase()==="RTX"&&c.parameters.apt){let p={ssrc:a,codecPayloadType:parseInt(c.parameters.apt,10)};a&&l&&(p.rtx={ssrc:l}),t.push(p),r&&(p=JSON.parse(JSON.stringify(p)),p.fec={ssrc:a,mechanism:s?"red+ulpfec":"red"},t.push(p))}}),t.length===0&&a&&t.push({ssrc:a});let h=k.matchPrefix(e,"b=");return h.length&&(h[0].indexOf("b=TIAS:")===0?h=parseInt(h[0].substr(7),10):h[0].indexOf("b=AS:")===0?h=parseInt(h[0].substr(5),10)*1e3*.95-50*40*8:h=void 0,t.forEach(c=>{c.maxBitrate=h})),t};k.parseRtcpParameters=function(e){let t={},i=k.matchPrefix(e,"a=ssrc:").map(o=>k.parseSsrcMedia(o)).filter(o=>o.attribute==="cname")[0];i&&(t.cname=i.value,t.ssrc=i.ssrc);let r=k.matchPrefix(e,"a=rtcp-rsize");t.reducedSize=r.length>0,t.compound=r.length===0;let s=k.matchPrefix(e,"a=rtcp-mux");return t.mux=s.length>0,t};k.writeRtcpParameters=function(e){let t="";return e.reducedSize&&(t+=`a=rtcp-rsize\r
19
- `),e.mux&&(t+=`a=rtcp-mux\r
20
- `),e.ssrc!==void 0&&e.cname&&(t+="a=ssrc:"+e.ssrc+" cname:"+e.cname+`\r
21
- `),t};k.parseMsid=function(e){let t,i=k.matchPrefix(e,"a=msid:");if(i.length===1)return t=i[0].substr(7).split(" "),{stream:t[0],track:t[1]};let r=k.matchPrefix(e,"a=ssrc:").map(s=>k.parseSsrcMedia(s)).filter(s=>s.attribute==="msid");if(r.length>0)return t=r[0].value.split(" "),{stream:t[0],track:t[1]}};k.parseSctpDescription=function(e){let t=k.parseMLine(e),i=k.matchPrefix(e,"a=max-message-size:"),r;i.length>0&&(r=parseInt(i[0].substr(19),10)),isNaN(r)&&(r=65536);let s=k.matchPrefix(e,"a=sctp-port:");if(s.length>0)return{port:parseInt(s[0].substr(12),10),protocol:t.fmt,maxMessageSize:r};let o=k.matchPrefix(e,"a=sctpmap:");if(o.length>0){let a=o[0].substr(10).split(" ");return{port:parseInt(a[0],10),protocol:a[1],maxMessageSize:r}}};k.writeSctpDescription=function(e,t){let i=[];return e.protocol!=="DTLS/SCTP"?i=["m="+e.kind+" 9 "+e.protocol+" "+t.protocol+`\r
22
- `,`c=IN IP4 0.0.0.0\r
23
- `,"a=sctp-port:"+t.port+`\r
24
- `]:i=["m="+e.kind+" 9 "+e.protocol+" "+t.port+`\r
25
- `,`c=IN IP4 0.0.0.0\r
26
- `,"a=sctpmap:"+t.port+" "+t.protocol+` 65535\r
27
- `],t.maxMessageSize!==void 0&&i.push("a=max-message-size:"+t.maxMessageSize+`\r
28
- `),i.join("")};k.generateSessionId=function(){return Math.random().toString().substr(2,21)};k.writeSessionBoilerplate=function(e,t,i){let r,s=t!==void 0?t:2;return e?r=e:r=k.generateSessionId(),`v=0\r
29
- o=`+(i||"thisisadapterortc")+" "+r+" "+s+` IN IP4 127.0.0.1\r
30
- s=-\r
31
- t=0 0\r
32
- `};k.getDirection=function(e,t){let i=k.splitLines(e);for(let r=0;r<i.length;r++)switch(i[r]){case"a=sendrecv":case"a=sendonly":case"a=recvonly":case"a=inactive":return i[r].substr(2);default:}return t?k.getDirection(t):"sendrecv"};k.getKind=function(e){return k.splitLines(e)[0].split(" ")[0].substr(2)};k.isRejected=function(e){return e.split(" ",2)[1]==="0"};k.parseMLine=function(e){let i=k.splitLines(e)[0].substr(2).split(" ");return{kind:i[0],port:parseInt(i[1],10),protocol:i[2],fmt:i.slice(3).join(" ")}};k.parseOLine=function(e){let i=k.matchPrefix(e,"o=")[0].substr(2).split(" ");return{username:i[0],sessionId:i[1],sessionVersion:parseInt(i[2],10),netType:i[3],addressType:i[4],address:i[5]}};k.isValidSDP=function(e){if(typeof e!="string"||e.length===0)return!1;let t=k.splitLines(e);for(let i=0;i<t.length;i++)if(t[i].length<2||t[i].charAt(1)!=="=")return!1;return!0};typeof Mt=="object"&&(Mt.exports=k)});var xt=ve((Tn,Bi)=>{var Vi=Bi.exports={v:[{name:"version",reg:/^(\d*)$/}],o:[{name:"origin",reg:/^(\S*) (\d*) (\d*) (\S*) IP(\d) (\S*)/,names:["username","sessionId","sessionVersion","netType","ipVer","address"],format:"%s %s %d %s IP%d %s"}],s:[{name:"name"}],i:[{name:"description"}],u:[{name:"uri"}],e:[{name:"email"}],p:[{name:"phone"}],z:[{name:"timezones"}],r:[{name:"repeats"}],t:[{name:"timing",reg:/^(\d*) (\d*)/,names:["start","stop"],format:"%d %d"}],c:[{name:"connection",reg:/^IN IP(\d) (\S*)/,names:["version","ip"],format:"IN IP%d %s"}],b:[{push:"bandwidth",reg:/^(TIAS|AS|CT|RR|RS):(\d*)/,names:["type","limit"],format:"%s:%s"}],m:[{reg:/^(\w*) (\d*) ([\w/]*)(?: (.*))?/,names:["type","port","protocol","payloads"],format:"%s %d %s %s"}],a:[{push:"rtp",reg:/^rtpmap:(\d*) ([\w\-.]*)(?:\s*\/(\d*)(?:\s*\/(\S*))?)?/,names:["payload","codec","rate","encoding"],format:function(e){return e.encoding?"rtpmap:%d %s/%s/%s":e.rate?"rtpmap:%d %s/%s":"rtpmap:%d %s"}},{push:"fmtp",reg:/^fmtp:(\d*) ([\S| ]*)/,names:["payload","config"],format:"fmtp:%d %s"},{name:"control",reg:/^control:(.*)/,format:"control:%s"},{name:"rtcp",reg:/^rtcp:(\d*)(?: (\S*) IP(\d) (\S*))?/,names:["port","netType","ipVer","address"],format:function(e){return e.address!=null?"rtcp:%d %s IP%d %s":"rtcp:%d"}},{push:"rtcpFbTrrInt",reg:/^rtcp-fb:(\*|\d*) trr-int (\d*)/,names:["payload","value"],format:"rtcp-fb:%s trr-int %d"},{push:"rtcpFb",reg:/^rtcp-fb:(\*|\d*) ([\w-_]*)(?: ([\w-_]*))?/,names:["payload","type","subtype"],format:function(e){return e.subtype!=null?"rtcp-fb:%s %s %s":"rtcp-fb:%s %s"}},{push:"ext",reg:/^extmap:(\d+)(?:\/(\w+))?(?: (urn:ietf:params:rtp-hdrext:encrypt))? (\S*)(?: (\S*))?/,names:["value","direction","encrypt-uri","uri","config"],format:function(e){return"extmap:%d"+(e.direction?"/%s":"%v")+(e["encrypt-uri"]?" %s":"%v")+" %s"+(e.config?" %s":"")}},{name:"extmapAllowMixed",reg:/^(extmap-allow-mixed)/},{push:"crypto",reg:/^crypto:(\d*) ([\w_]*) (\S*)(?: (\S*))?/,names:["id","suite","config","sessionConfig"],format:function(e){return e.sessionConfig!=null?"crypto:%d %s %s %s":"crypto:%d %s %s"}},{name:"setup",reg:/^setup:(\w*)/,format:"setup:%s"},{name:"connectionType",reg:/^connection:(new|existing)/,format:"connection:%s"},{name:"mid",reg:/^mid:([^\s]*)/,format:"mid:%s"},{name:"msid",reg:/^msid:(.*)/,format:"msid:%s"},{name:"ptime",reg:/^ptime:(\d*(?:\.\d*)*)/,format:"ptime:%d"},{name:"maxptime",reg:/^maxptime:(\d*(?:\.\d*)*)/,format:"maxptime:%d"},{name:"direction",reg:/^(sendrecv|recvonly|sendonly|inactive)/},{name:"icelite",reg:/^(ice-lite)/},{name:"iceUfrag",reg:/^ice-ufrag:(\S*)/,format:"ice-ufrag:%s"},{name:"icePwd",reg:/^ice-pwd:(\S*)/,format:"ice-pwd:%s"},{name:"fingerprint",reg:/^fingerprint:(\S*) (\S*)/,names:["type","hash"],format:"fingerprint:%s %s"},{push:"candidates",reg:/^candidate:(\S*) (\d*) (\S*) (\d*) (\S*) (\d*) typ (\S*)(?: raddr (\S*) rport (\d*))?(?: tcptype (\S*))?(?: generation (\d*))?(?: network-id (\d*))?(?: network-cost (\d*))?/,names:["foundation","component","transport","priority","ip","port","type","raddr","rport","tcptype","generation","network-id","network-cost"],format:function(e){var t="candidate:%s %d %s %d %s %d typ %s";return t+=e.raddr!=null?" raddr %s rport %d":"%v%v",t+=e.tcptype!=null?" tcptype %s":"%v",e.generation!=null&&(t+=" generation %d"),t+=e["network-id"]!=null?" network-id %d":"%v",t+=e["network-cost"]!=null?" network-cost %d":"%v",t}},{name:"endOfCandidates",reg:/^(end-of-candidates)/},{name:"remoteCandidates",reg:/^remote-candidates:(.*)/,format:"remote-candidates:%s"},{name:"iceOptions",reg:/^ice-options:(\S*)/,format:"ice-options:%s"},{push:"ssrcs",reg:/^ssrc:(\d*) ([\w_-]*)(?::(.*))?/,names:["id","attribute","value"],format:function(e){var t="ssrc:%d";return e.attribute!=null&&(t+=" %s",e.value!=null&&(t+=":%s")),t}},{push:"ssrcGroups",reg:/^ssrc-group:([\x21\x23\x24\x25\x26\x27\x2A\x2B\x2D\x2E\w]*) (.*)/,names:["semantics","ssrcs"],format:"ssrc-group:%s %s"},{name:"msidSemantic",reg:/^msid-semantic:\s?(\w*) (\S*)/,names:["semantic","token"],format:"msid-semantic: %s %s"},{push:"groups",reg:/^group:(\w*) (.*)/,names:["type","mids"],format:"group:%s %s"},{name:"rtcpMux",reg:/^(rtcp-mux)/},{name:"rtcpRsize",reg:/^(rtcp-rsize)/},{name:"sctpmap",reg:/^sctpmap:([\w_/]*) (\S*)(?: (\S*))?/,names:["sctpmapNumber","app","maxMessageSize"],format:function(e){return e.maxMessageSize!=null?"sctpmap:%s %s %s":"sctpmap:%s %s"}},{name:"xGoogleFlag",reg:/^x-google-flag:([^\s]*)/,format:"x-google-flag:%s"},{push:"rids",reg:/^rid:([\d\w]+) (\w+)(?: ([\S| ]*))?/,names:["id","direction","params"],format:function(e){return e.params?"rid:%s %s %s":"rid:%s %s"}},{push:"imageattrs",reg:new RegExp("^imageattr:(\\d+|\\*)[\\s\\t]+(send|recv)[\\s\\t]+(\\*|\\[\\S+\\](?:[\\s\\t]+\\[\\S+\\])*)(?:[\\s\\t]+(recv|send)[\\s\\t]+(\\*|\\[\\S+\\](?:[\\s\\t]+\\[\\S+\\])*))?"),names:["pt","dir1","attrs1","dir2","attrs2"],format:function(e){return"imageattr:%s %s %s"+(e.dir2?" %s %s":"")}},{name:"simulcast",reg:new RegExp("^simulcast:(send|recv) ([a-zA-Z0-9\\-_~;,]+)(?:\\s?(send|recv) ([a-zA-Z0-9\\-_~;,]+))?$"),names:["dir1","list1","dir2","list2"],format:function(e){return"simulcast:%s %s"+(e.dir2?" %s %s":"")}},{name:"simulcast_03",reg:/^simulcast:[\s\t]+([\S+\s\t]+)$/,names:["value"],format:"simulcast: %s"},{name:"framerate",reg:/^framerate:(\d+(?:$|\.\d+))/,format:"framerate:%s"},{name:"sourceFilter",reg:/^source-filter: *(excl|incl) (\S*) (IP4|IP6|\*) (\S*) (.*)/,names:["filterMode","netType","addressTypes","destAddress","srcList"],format:"source-filter: %s %s %s %s %s"},{name:"bundleOnly",reg:/^(bundle-only)/},{name:"label",reg:/^label:(.+)/,format:"label:%s"},{name:"sctpPort",reg:/^sctp-port:(\d+)$/,format:"sctp-port:%s"},{name:"maxMessageSize",reg:/^max-message-size:(\d+)$/,format:"max-message-size:%s"},{push:"tsRefClocks",reg:/^ts-refclk:([^\s=]*)(?:=(\S*))?/,names:["clksrc","clksrcExt"],format:function(e){return"ts-refclk:%s"+(e.clksrcExt!=null?"=%s":"")}},{name:"mediaClk",reg:/^mediaclk:(?:id=(\S*))? *([^\s=]*)(?:=(\S*))?(?: *rate=(\d+)\/(\d+))?/,names:["id","mediaClockName","mediaClockValue","rateNumerator","rateDenominator"],format:function(e){var t="mediaclk:";return t+=e.id!=null?"id=%s %s":"%v%s",t+=e.mediaClockValue!=null?"=%s":"",t+=e.rateNumerator!=null?" rate=%s":"",t+=e.rateDenominator!=null?"/%s":"",t}},{name:"keywords",reg:/^keywds:(.+)$/,format:"keywds:%s"},{name:"content",reg:/^content:(.+)/,format:"content:%s"},{name:"bfcpFloorCtrl",reg:/^floorctrl:(c-only|s-only|c-s)/,format:"floorctrl:%s"},{name:"bfcpConfId",reg:/^confid:(\d+)/,format:"confid:%s"},{name:"bfcpUserId",reg:/^userid:(\d+)/,format:"userid:%s"},{name:"bfcpFloorId",reg:/^floorid:(.+) (?:m-stream|mstrm):(.+)/,names:["id","mStream"],format:"floorid:%s mstrm:%s"},{push:"invalid",names:["value"]}]};Object.keys(Vi).forEach(function(e){var t=Vi[e];t.forEach(function(i){i.reg||(i.reg=/(.*)/),i.format||(i.format="%s")})})});var $i=ve(oe=>{var _e=function(e){return String(Number(e))===e?Number(e):e},Xr=function(e,t,i,r){if(r&&!i)t[r]=_e(e[1]);else for(var s=0;s<i.length;s+=1)e[s+1]!=null&&(t[i[s]]=_e(e[s+1]))},es=function(e,t,i){var r=e.name&&e.names;e.push&&!t[e.push]?t[e.push]=[]:r&&!t[e.name]&&(t[e.name]={});var s=e.push?{}:r?t[e.name]:t;Xr(i.match(e.reg),s,e.names,e.name),e.push&&t[e.push].push(s)},Hi=xt(),ts=RegExp.prototype.test.bind(/^([a-z])=(.*)/);oe.parse=function(e){var t={},i=[],r=t;return e.split(/(\r\n|\r|\n)/).filter(ts).forEach(function(s){var o=s[0],a=s.slice(2);o==="m"&&(i.push({rtp:[],fmtp:[]}),r=i[i.length-1]);for(var l=0;l<(Hi[o]||[]).length;l+=1){var m=Hi[o][l];if(m.reg.test(a))return es(m,r,a)}}),t.media=i,t};var ji=function(e,t){var i=t.split(/=(.+)/,2);return i.length===2?e[i[0]]=_e(i[1]):i.length===1&&t.length>1&&(e[i[0]]=void 0),e};oe.parseParams=function(e){return e.split(/;\s?/).reduce(ji,{})};oe.parseFmtpConfig=oe.parseParams;oe.parsePayloads=function(e){return e.toString().split(" ").map(Number)};oe.parseRemoteCandidates=function(e){for(var t=[],i=e.split(" ").map(_e),r=0;r<i.length;r+=3)t.push({component:i[r],ip:i[r+1],port:i[r+2]});return t};oe.parseImageAttributes=function(e){return e.split(" ").map(function(t){return t.substring(1,t.length-1).split(",").reduce(ji,{})})};oe.parseSimulcastStreamList=function(e){return e.split(";").map(function(t){return t.split(",").map(function(i){var r,s=!1;return i[0]!=="~"?r=_e(i):(r=_e(i.substring(1,i.length)),s=!0),{scid:r,paused:s}})})}});var Ki=ve((En,Wi)=>{var Ut=xt(),is=/%[sdv%]/g,rs=function(e){var t=1,i=arguments,r=i.length;return e.replace(is,function(s){if(t>=r)return s;var o=i[t];switch(t+=1,s){case"%%":return"%";case"%s":return String(o);case"%d":return Number(o);case"%v":return""}})},$e=function(e,t,i){var r=t.format instanceof Function?t.format(t.push?i:i[t.name]):t.format,s=[e+"="+r];if(t.names)for(var o=0;o<t.names.length;o+=1){var a=t.names[o];t.name?s.push(i[t.name][a]):s.push(i[t.names[o]])}else s.push(i[t.name]);return rs.apply(null,s)},ss=["v","o","s","i","u","e","p","c","b","t","r","z","a"],ns=["i","c","b","a"];Wi.exports=function(e,t){t=t||{},e.version==null&&(e.version=0),e.name==null&&(e.name=" "),e.media.forEach(function(o){o.payloads==null&&(o.payloads="")});var i=t.outerOrder||ss,r=t.innerOrder||ns,s=[];return i.forEach(function(o){Ut[o].forEach(function(a){a.name in e&&e[a.name]!=null?s.push($e(o,a,e)):a.push in e&&e[a.push]!=null&&e[a.push].forEach(function(l){s.push($e(o,a,l))})})}),e.media.forEach(function(o){s.push($e("m",Ut.m[0],o)),r.forEach(function(a){Ut[a].forEach(function(l){l.name in o&&o[l.name]!=null?s.push($e(a,l,o)):l.push in o&&o[l.push]!=null&&o[l.push].forEach(function(m){s.push($e(a,l,m))})})})}),s.join(`\r
33
- `)+`\r
34
- `}});var qi=ve(ce=>{var Te=$i(),as=Ki();ce.write=as;ce.parse=Te.parse;ce.parseParams=Te.parseParams;ce.parseFmtpConfig=Te.parseFmtpConfig;ce.parsePayloads=Te.parsePayloads;ce.parseRemoteCandidates=Te.parseRemoteCandidates;ce.parseImageAttributes=Te.parseImageAttributes;ce.parseSimulcastStreamList=Te.parseSimulcastStreamList});var zi=ve((We,ut)=>{(function(e,t){"use strict";var i="1.0.2",r="",s="?",o="function",a="undefined",l="object",m="string",h="major",c="model",p="name",u="type",v="vendor",E="version",A="architecture",z="console",I="mobile",_="tablet",J="smarttv",re="wearable",le="embedded",fe=255,F="Amazon",we="Apple",Le="ASUS",Ee="BlackBerry",ne="Browser",ye="Chrome",D="Edge",ke="Firefox",de="Google",Je="Huawei",n="LG",d="Microsoft",f="Motorola",g="Opera",T="Samsung",S="Sony",y="Xiaomi",P="Zebra",C="Facebook",b=function(w,x){var L={};for(var W in w)x[W]&&x[W].length%2==0?L[W]=x[W].concat(w[W]):L[W]=w[W];return L},R=function(w){for(var x={},L=0;L<w.length;L++)x[w[L].toUpperCase()]=w[L];return x},K=function(w,x){return typeof w===m?M(x).indexOf(M(w))!==-1:!1},M=function(w){return w.toLowerCase()},N=function(w){return typeof w===m?w.replace(/[^\d\.]/g,r).split(".")[0]:t},G=function(w,x){if(typeof w===m)return w=w.replace(/^\s\s*/,r).replace(/\s\s*$/,r),typeof x===a?w:w.substring(0,fe)},j=function(w,x){for(var L=0,W,O,Qe,V,Ne,se;L<x.length&&!Ne;){var $t=x[L],Wt=x[L+1];for(W=O=0;W<$t.length&&!Ne;)if(Ne=$t[W++].exec(w),Ne)for(Qe=0;Qe<Wt.length;Qe++)se=Ne[++O],V=Wt[Qe],typeof V===l&&V.length>0?V.length===2?typeof V[1]==o?this[V[0]]=V[1].call(this,se):this[V[0]]=V[1]:V.length===3?typeof V[1]===o&&!(V[1].exec&&V[1].test)?this[V[0]]=se?V[1].call(this,se,V[2]):t:this[V[0]]=se?se.replace(V[1],V[2]):t:V.length===4&&(this[V[0]]=se?V[3].call(this,se.replace(V[1],V[2])):t):this[V]=se||t;L+=2}},ge=function(w,x){for(var L in x)if(typeof x[L]===l&&x[L].length>0){for(var W=0;W<x[L].length;W++)if(K(x[L][W],w))return L===s?t:L}else if(K(x[L],w))return L===s?t:L;return w},Oe={"1.0":"/8","1.2":"/1","1.3":"/3","2.0":"/412","2.0.2":"/416","2.0.3":"/417","2.0.4":"/419","?":"/"},ue={ME:"4.90","NT 3.11":"NT3.51","NT 4.0":"NT4.0","2000":"NT 5.0",XP:["NT 5.1","NT 5.2"],Vista:"NT 6.0","7":"NT 6.1","8":"NT 6.2","8.1":"NT 6.3","10":["NT 6.4","NT 10.0"],RT:"ARM"},Ce={browser:[[/\b(?:crmo|crios)\/([\w\.]+)/i],[E,[p,"Chrome"]],[/edg(?:e|ios|a)?\/([\w\.]+)/i],[E,[p,"Edge"]],[/(opera mini)\/([-\w\.]+)/i,/(opera [mobiletab]{3,6})\b.+version\/([-\w\.]+)/i,/(opera)(?:.+version\/|[\/ ]+)([\w\.]+)/i],[p,E],[/opios[\/ ]+([\w\.]+)/i],[E,[p,g+" Mini"]],[/\bopr\/([\w\.]+)/i],[E,[p,g]],[/(kindle)\/([\w\.]+)/i,/(lunascape|maxthon|netfront|jasmine|blazer)[\/ ]?([\w\.]*)/i,/(avant |iemobile|slim)(?:browser)?[\/ ]?([\w\.]*)/i,/(ba?idubrowser)[\/ ]?([\w\.]+)/i,/(?:ms|\()(ie) ([\w\.]+)/i,/(flock|rockmelt|midori|epiphany|silk|skyfire|ovibrowser|bolt|iron|vivaldi|iridium|phantomjs|bowser|quark|qupzilla|falkon|rekonq|puffin|brave|whale|qqbrowserlite|qq)\/([-\w\.]+)/i,/(weibo)__([\d\.]+)/i],[p,E],[/(?:\buc? ?browser|(?:juc.+)ucweb)[\/ ]?([\w\.]+)/i],[E,[p,"UC"+ne]],[/\bqbcore\/([\w\.]+)/i],[E,[p,"WeChat(Win) Desktop"]],[/micromessenger\/([\w\.]+)/i],[E,[p,"WeChat"]],[/konqueror\/([\w\.]+)/i],[E,[p,"Konqueror"]],[/trident.+rv[: ]([\w\.]{1,9})\b.+like gecko/i],[E,[p,"IE"]],[/yabrowser\/([\w\.]+)/i],[E,[p,"Yandex"]],[/(avast|avg)\/([\w\.]+)/i],[[p,/(.+)/,"$1 Secure "+ne],E],[/\bfocus\/([\w\.]+)/i],[E,[p,ke+" Focus"]],[/\bopt\/([\w\.]+)/i],[E,[p,g+" Touch"]],[/coc_coc\w+\/([\w\.]+)/i],[E,[p,"Coc Coc"]],[/dolfin\/([\w\.]+)/i],[E,[p,"Dolphin"]],[/coast\/([\w\.]+)/i],[E,[p,g+" Coast"]],[/miuibrowser\/([\w\.]+)/i],[E,[p,"MIUI "+ne]],[/fxios\/([-\w\.]+)/i],[E,[p,ke]],[/\bqihu|(qi?ho?o?|360)browser/i],[[p,"360 "+ne]],[/(oculus|samsung|sailfish)browser\/([\w\.]+)/i],[[p,/(.+)/,"$1 "+ne],E],[/(comodo_dragon)\/([\w\.]+)/i],[[p,/_/g," "],E],[/(electron)\/([\w\.]+) safari/i,/(tesla)(?: qtcarbrowser|\/(20\d\d\.[-\w\.]+))/i,/m?(qqbrowser|baiduboxapp|2345Explorer)[\/ ]?([\w\.]+)/i],[p,E],[/(metasr)[\/ ]?([\w\.]+)/i,/(lbbrowser)/i],[p],[/((?:fban\/fbios|fb_iab\/fb4a)(?!.+fbav)|;fbav\/([\w\.]+);)/i],[[p,C],E],[/safari (line)\/([\w\.]+)/i,/\b(line)\/([\w\.]+)\/iab/i,/(chromium|instagram)[\/ ]([-\w\.]+)/i],[p,E],[/\bgsa\/([\w\.]+) .*safari\//i],[E,[p,"GSA"]],[/headlesschrome(?:\/([\w\.]+)| )/i],[E,[p,ye+" Headless"]],[/ wv\).+(chrome)\/([\w\.]+)/i],[[p,ye+" WebView"],E],[/droid.+ version\/([\w\.]+)\b.+(?:mobile safari|safari)/i],[E,[p,"Android "+ne]],[/(chrome|omniweb|arora|[tizenoka]{5} ?browser)\/v?([\w\.]+)/i],[p,E],[/version\/([\w\.]+) .*mobile\/\w+ (safari)/i],[E,[p,"Mobile Safari"]],[/version\/([\w\.]+) .*(mobile ?safari|safari)/i],[E,p],[/webkit.+?(mobile ?safari|safari)(\/[\w\.]+)/i],[p,[E,ge,Oe]],[/(webkit|khtml)\/([\w\.]+)/i],[p,E],[/(navigator|netscape\d?)\/([-\w\.]+)/i],[[p,"Netscape"],E],[/mobile vr; rv:([\w\.]+)\).+firefox/i],[E,[p,ke+" Reality"]],[/ekiohf.+(flow)\/([\w\.]+)/i,/(swiftfox)/i,/(icedragon|iceweasel|camino|chimera|fennec|maemo browser|minimo|conkeror|klar)[\/ ]?([\w\.\+]+)/i,/(seamonkey|k-meleon|icecat|iceape|firebird|phoenix|palemoon|basilisk|waterfox)\/([-\w\.]+)$/i,/(firefox)\/([\w\.]+)/i,/(mozilla)\/([\w\.]+) .+rv\:.+gecko\/\d+/i,/(polaris|lynx|dillo|icab|doris|amaya|w3m|netsurf|sleipnir|obigo|mosaic|(?:go|ice|up)[\. ]?browser)[-\/ ]?v?([\w\.]+)/i,/(links) \(([\w\.]+)/i],[p,E]],cpu:[[/(?:(amd|x(?:(?:86|64)[-_])?|wow|win)64)[;\)]/i],[[A,"amd64"]],[/(ia32(?=;))/i],[[A,M]],[/((?:i[346]|x)86)[;\)]/i],[[A,"ia32"]],[/\b(aarch64|arm(v?8e?l?|_?64))\b/i],[[A,"arm64"]],[/\b(arm(?:v[67])?ht?n?[fl]p?)\b/i],[[A,"armhf"]],[/windows (ce|mobile); ppc;/i],[[A,"arm"]],[/((?:ppc|powerpc)(?:64)?)(?: mac|;|\))/i],[[A,/ower/,r,M]],[/(sun4\w)[;\)]/i],[[A,"sparc"]],[/((?:avr32|ia64(?=;))|68k(?=\))|\barm(?=v(?:[1-7]|[5-7]1)l?|;|eabi)|(?=atmel )avr|(?:irix|mips|sparc)(?:64)?\b|pa-risc)/i],[[A,M]]],device:[[/\b(sch-i[89]0\d|shw-m380s|sm-[pt]\w{2,4}|gt-[pn]\d{2,4}|sgh-t8[56]9|nexus 10)/i],[c,[v,T],[u,_]],[/\b((?:s[cgp]h|gt|sm)-\w+|galaxy nexus)/i,/samsung[- ]([-\w]+)/i,/sec-(sgh\w+)/i],[c,[v,T],[u,I]],[/\((ip(?:hone|od)[\w ]*);/i],[c,[v,we],[u,I]],[/\((ipad);[-\w\),; ]+apple/i,/applecoremedia\/[\w\.]+ \((ipad)/i,/\b(ipad)\d\d?,\d\d?[;\]].+ios/i],[c,[v,we],[u,_]],[/\b((?:ag[rs][23]?|bah2?|sht?|btv)-a?[lw]\d{2})\b(?!.+d\/s)/i],[c,[v,Je],[u,_]],[/(?:huawei|honor)([-\w ]+)[;\)]/i,/\b(nexus 6p|\w{2,4}-[atu]?[ln][01259x][012359][an]?)\b(?!.+d\/s)/i],[c,[v,Je],[u,I]],[/\b(poco[\w ]+)(?: bui|\))/i,/\b; (\w+) build\/hm\1/i,/\b(hm[-_ ]?note?[_ ]?(?:\d\w)?) bui/i,/\b(redmi[\-_ ]?(?:note|k)?[\w_ ]+)(?: bui|\))/i,/\b(mi[-_ ]?(?:a\d|one|one[_ ]plus|note lte|max)?[_ ]?(?:\d?\w?)[_ ]?(?:plus|se|lite)?)(?: bui|\))/i],[[c,/_/g," "],[v,y],[u,I]],[/\b(mi[-_ ]?(?:pad)(?:[\w_ ]+))(?: bui|\))/i],[[c,/_/g," "],[v,y],[u,_]],[/; (\w+) bui.+ oppo/i,/\b(cph[12]\d{3}|p(?:af|c[al]|d\w|e[ar])[mt]\d0|x9007|a101op)\b/i],[c,[v,"OPPO"],[u,I]],[/vivo (\w+)(?: bui|\))/i,/\b(v[12]\d{3}\w?[at])(?: bui|;)/i],[c,[v,"Vivo"],[u,I]],[/\b(rmx[12]\d{3})(?: bui|;|\))/i],[c,[v,"Realme"],[u,I]],[/\b(milestone|droid(?:[2-4x]| (?:bionic|x2|pro|razr))?:?( 4g)?)\b[\w ]+build\//i,/\bmot(?:orola)?[- ](\w*)/i,/((?:moto[\w\(\) ]+|xt\d{3,4}|nexus 6)(?= bui|\)))/i],[c,[v,f],[u,I]],[/\b(mz60\d|xoom[2 ]{0,2}) build\//i],[c,[v,f],[u,_]],[/((?=lg)?[vl]k\-?\d{3}) bui| 3\.[-\w; ]{10}lg?-([06cv9]{3,4})/i],[c,[v,n],[u,_]],[/(lm(?:-?f100[nv]?|-[\w\.]+)(?= bui|\))|nexus [45])/i,/\blg[-e;\/ ]+((?!browser|netcast|android tv)\w+)/i,/\blg-?([\d\w]+) bui/i],[c,[v,n],[u,I]],[/(ideatab[-\w ]+)/i,/lenovo ?(s[56]000[-\w]+|tab(?:[\w ]+)|yt[-\d\w]{6}|tb[-\d\w]{6})/i],[c,[v,"Lenovo"],[u,_]],[/(?:maemo|nokia).*(n900|lumia \d+)/i,/nokia[-_ ]?([-\w\.]*)/i],[[c,/_/g," "],[v,"Nokia"],[u,I]],[/(pixel c)\b/i],[c,[v,de],[u,_]],[/droid.+; (pixel[\daxl ]{0,6})(?: bui|\))/i],[c,[v,de],[u,I]],[/droid.+ ([c-g]\d{4}|so[-gl]\w+|xq-a\w[4-7][12])(?= bui|\).+chrome\/(?![1-6]{0,1}\d\.))/i],[c,[v,S],[u,I]],[/sony tablet [ps]/i,/\b(?:sony)?sgp\w+(?: bui|\))/i],[[c,"Xperia Tablet"],[v,S],[u,_]],[/ (kb2005|in20[12]5|be20[12][59])\b/i,/(?:one)?(?:plus)? (a\d0\d\d)(?: b|\))/i],[c,[v,"OnePlus"],[u,I]],[/(alexa)webm/i,/(kf[a-z]{2}wi)( bui|\))/i,/(kf[a-z]+)( bui|\)).+silk\//i],[c,[v,F],[u,_]],[/((?:sd|kf)[0349hijorstuw]+)( bui|\)).+silk\//i],[[c,/(.+)/g,"Fire Phone $1"],[v,F],[u,I]],[/(playbook);[-\w\),; ]+(rim)/i],[c,v,[u,_]],[/\b((?:bb[a-f]|st[hv])100-\d)/i,/\(bb10; (\w+)/i],[c,[v,Ee],[u,I]],[/(?:\b|asus_)(transfo[prime ]{4,10} \w+|eeepc|slider \w+|nexus 7|padfone|p00[cj])/i],[c,[v,Le],[u,_]],[/ (z[bes]6[027][012][km][ls]|zenfone \d\w?)\b/i],[c,[v,Le],[u,I]],[/(nexus 9)/i],[c,[v,"HTC"],[u,_]],[/(htc)[-;_ ]{1,2}([\w ]+(?=\)| bui)|\w+)/i,/(zte)[- ]([\w ]+?)(?: bui|\/|\))/i,/(alcatel|geeksphone|nexian|panasonic|sony)[-_ ]?([-\w]*)/i],[v,[c,/_/g," "],[u,I]],[/droid.+; ([ab][1-7]-?[0178a]\d\d?)/i],[c,[v,"Acer"],[u,_]],[/droid.+; (m[1-5] note) bui/i,/\bmz-([-\w]{2,})/i],[c,[v,"Meizu"],[u,I]],[/\b(sh-?[altvz]?\d\d[a-ekm]?)/i],[c,[v,"Sharp"],[u,I]],[/(blackberry|benq|palm(?=\-)|sonyericsson|acer|asus|dell|meizu|motorola|polytron)[-_ ]?([-\w]*)/i,/(hp) ([\w ]+\w)/i,/(asus)-?(\w+)/i,/(microsoft); (lumia[\w ]+)/i,/(lenovo)[-_ ]?([-\w]+)/i,/(jolla)/i,/(oppo) ?([\w ]+) bui/i],[v,c,[u,I]],[/(archos) (gamepad2?)/i,/(hp).+(touchpad(?!.+tablet)|tablet)/i,/(kindle)\/([\w\.]+)/i,/(nook)[\w ]+build\/(\w+)/i,/(dell) (strea[kpr\d ]*[\dko])/i,/(le[- ]+pan)[- ]+(\w{1,9}) bui/i,/(trinity)[- ]*(t\d{3}) bui/i,/(gigaset)[- ]+(q\w{1,9}) bui/i,/(vodafone) ([\w ]+)(?:\)| bui)/i],[v,c,[u,_]],[/(surface duo)/i],[c,[v,d],[u,_]],[/droid [\d\.]+; (fp\du?)(?: b|\))/i],[c,[v,"Fairphone"],[u,I]],[/(u304aa)/i],[c,[v,"AT&T"],[u,I]],[/\bsie-(\w*)/i],[c,[v,"Siemens"],[u,I]],[/\b(rct\w+) b/i],[c,[v,"RCA"],[u,_]],[/\b(venue[\d ]{2,7}) b/i],[c,[v,"Dell"],[u,_]],[/\b(q(?:mv|ta)\w+) b/i],[c,[v,"Verizon"],[u,_]],[/\b(?:barnes[& ]+noble |bn[rt])([\w\+ ]*) b/i],[c,[v,"Barnes & Noble"],[u,_]],[/\b(tm\d{3}\w+) b/i],[c,[v,"NuVision"],[u,_]],[/\b(k88) b/i],[c,[v,"ZTE"],[u,_]],[/\b(nx\d{3}j) b/i],[c,[v,"ZTE"],[u,I]],[/\b(gen\d{3}) b.+49h/i],[c,[v,"Swiss"],[u,I]],[/\b(zur\d{3}) b/i],[c,[v,"Swiss"],[u,_]],[/\b((zeki)?tb.*\b) b/i],[c,[v,"Zeki"],[u,_]],[/\b([yr]\d{2}) b/i,/\b(dragon[- ]+touch |dt)(\w{5}) b/i],[[v,"Dragon Touch"],c,[u,_]],[/\b(ns-?\w{0,9}) b/i],[c,[v,"Insignia"],[u,_]],[/\b((nxa|next)-?\w{0,9}) b/i],[c,[v,"NextBook"],[u,_]],[/\b(xtreme\_)?(v(1[045]|2[015]|[3469]0|7[05])) b/i],[[v,"Voice"],c,[u,I]],[/\b(lvtel\-)?(v1[12]) b/i],[[v,"LvTel"],c,[u,I]],[/\b(ph-1) /i],[c,[v,"Essential"],[u,I]],[/\b(v(100md|700na|7011|917g).*\b) b/i],[c,[v,"Envizen"],[u,_]],[/\b(trio[-\w\. ]+) b/i],[c,[v,"MachSpeed"],[u,_]],[/\btu_(1491) b/i],[c,[v,"Rotor"],[u,_]],[/(shield[\w ]+) b/i],[c,[v,"Nvidia"],[u,_]],[/(sprint) (\w+)/i],[v,c,[u,I]],[/(kin\.[onetw]{3})/i],[[c,/\./g," "],[v,d],[u,I]],[/droid.+; (cc6666?|et5[16]|mc[239][23]x?|vc8[03]x?)\)/i],[c,[v,P],[u,_]],[/droid.+; (ec30|ps20|tc[2-8]\d[kx])\)/i],[c,[v,P],[u,I]],[/(ouya)/i,/(nintendo) ([wids3utch]+)/i],[v,c,[u,z]],[/droid.+; (shield) bui/i],[c,[v,"Nvidia"],[u,z]],[/(playstation [345portablevi]+)/i],[c,[v,S],[u,z]],[/\b(xbox(?: one)?(?!; xbox))[\); ]/i],[c,[v,d],[u,z]],[/smart-tv.+(samsung)/i],[v,[u,J]],[/hbbtv.+maple;(\d+)/i],[[c,/^/,"SmartTV"],[v,T],[u,J]],[/(nux; netcast.+smarttv|lg (netcast\.tv-201\d|android tv))/i],[[v,n],[u,J]],[/(apple) ?tv/i],[v,[c,we+" TV"],[u,J]],[/crkey/i],[[c,ye+"cast"],[v,de],[u,J]],[/droid.+aft(\w)( bui|\))/i],[c,[v,F],[u,J]],[/\(dtv[\);].+(aquos)/i],[c,[v,"Sharp"],[u,J]],[/\b(roku)[\dx]*[\)\/]((?:dvp-)?[\d\.]*)/i,/hbbtv\/\d+\.\d+\.\d+ +\([\w ]*; *(\w[^;]*);([^;]*)/i],[[v,G],[c,G],[u,J]],[/\b(android tv|smart[- ]?tv|opera tv|tv; rv:)\b/i],[[u,J]],[/((pebble))app/i],[v,c,[u,re]],[/droid.+; (glass) \d/i],[c,[v,de],[u,re]],[/droid.+; (wt63?0{2,3})\)/i],[c,[v,P],[u,re]],[/(quest( 2)?)/i],[c,[v,C],[u,re]],[/(tesla)(?: qtcarbrowser|\/[-\w\.]+)/i],[v,[u,le]],[/droid .+?; ([^;]+?)(?: bui|\) applew).+? mobile safari/i],[c,[u,I]],[/droid .+?; ([^;]+?)(?: bui|\) applew).+?(?! mobile) safari/i],[c,[u,_]],[/\b((tablet|tab)[;\/]|focus\/\d(?!.+mobile))/i],[[u,_]],[/(phone|mobile(?:[;\/]| safari)|pda(?=.+windows ce))/i],[[u,I]],[/(android[-\w\. ]{0,9});.+buil/i],[c,[v,"Generic"]]],engine:[[/windows.+ edge\/([\w\.]+)/i],[E,[p,D+"HTML"]],[/webkit\/537\.36.+chrome\/(?!27)([\w\.]+)/i],[E,[p,"Blink"]],[/(presto)\/([\w\.]+)/i,/(webkit|trident|netfront|netsurf|amaya|lynx|w3m|goanna)\/([\w\.]+)/i,/ekioh(flow)\/([\w\.]+)/i,/(khtml|tasman|links)[\/ ]\(?([\w\.]+)/i,/(icab)[\/ ]([23]\.[\d\.]+)/i],[p,E],[/rv\:([\w\.]{1,9})\b.+(gecko)/i],[E,p]],os:[[/microsoft (windows) (vista|xp)/i],[p,E],[/(windows) nt 6\.2; (arm)/i,/(windows (?:phone(?: os)?|mobile))[\/ ]?([\d\.\w ]*)/i,/(windows)[\/ ]?([ntce\d\. ]+\w)(?!.+xbox)/i],[p,[E,ge,ue]],[/(win(?=3|9|n)|win 9x )([nt\d\.]+)/i],[[p,"Windows"],[E,ge,ue]],[/ip[honead]{2,4}\b(?:.*os ([\w]+) like mac|; opera)/i,/cfnetwork\/.+darwin/i],[[E,/_/g,"."],[p,"iOS"]],[/(mac os x) ?([\w\. ]*)/i,/(macintosh|mac_powerpc\b)(?!.+haiku)/i],[[p,"Mac OS"],[E,/_/g,"."]],[/droid ([\w\.]+)\b.+(android[- ]x86)/i],[E,p],[/(android|webos|qnx|bada|rim tablet os|maemo|meego|sailfish)[-\/ ]?([\w\.]*)/i,/(blackberry)\w*\/([\w\.]*)/i,/(tizen|kaios)[\/ ]([\w\.]+)/i,/\((series40);/i],[p,E],[/\(bb(10);/i],[E,[p,Ee]],[/(?:symbian ?os|symbos|s60(?=;)|series60)[-\/ ]?([\w\.]*)/i],[E,[p,"Symbian"]],[/mozilla\/[\d\.]+ \((?:mobile|tablet|tv|mobile; [\w ]+); rv:.+ gecko\/([\w\.]+)/i],[E,[p,ke+" OS"]],[/web0s;.+rt(tv)/i,/\b(?:hp)?wos(?:browser)?\/([\w\.]+)/i],[E,[p,"webOS"]],[/crkey\/([\d\.]+)/i],[E,[p,ye+"cast"]],[/(cros) [\w]+ ([\w\.]+\w)/i],[[p,"Chromium OS"],E],[/(nintendo|playstation) ([wids345portablevuch]+)/i,/(xbox); +xbox ([^\);]+)/i,/\b(joli|palm)\b ?(?:os)?\/?([\w\.]*)/i,/(mint)[\/\(\) ]?(\w*)/i,/(mageia|vectorlinux)[; ]/i,/([kxln]?ubuntu|debian|suse|opensuse|gentoo|arch(?= linux)|slackware|fedora|mandriva|centos|pclinuxos|red ?hat|zenwalk|linpus|raspbian|plan 9|minix|risc os|contiki|deepin|manjaro|elementary os|sabayon|linspire)(?: gnu\/linux)?(?: enterprise)?(?:[- ]linux)?(?:-gnu)?[-\/ ]?(?!chrom|package)([-\w\.]*)/i,/(hurd|linux) ?([\w\.]*)/i,/(gnu) ?([\w\.]*)/i,/\b([-frentopcghs]{0,5}bsd|dragonfly)[\/ ]?(?!amd|[ix346]{1,2}86)([\w\.]*)/i,/(haiku) (\w+)/i],[p,E],[/(sunos) ?([\w\.\d]*)/i],[[p,"Solaris"],E],[/((?:open)?solaris)[-\/ ]?([\w\.]*)/i,/(aix) ((\d)(?=\.|\)| )[\w\.])*/i,/\b(beos|os\/2|amigaos|morphos|openvms|fuchsia|hp-ux)/i,/(unix) ?([\w\.]*)/i],[p,E]]},H=function(w,x){if(typeof w===l&&(x=w,w=t),!(this instanceof H))return new H(w,x).getResult();var L=w||(typeof e!==a&&e.navigator&&e.navigator.userAgent?e.navigator.userAgent:r),W=x?b(Ce,x):Ce;return this.getBrowser=function(){var O={};return O[p]=t,O[E]=t,j.call(O,L,W.browser),O.major=N(O.version),O},this.getCPU=function(){var O={};return O[A]=t,j.call(O,L,W.cpu),O},this.getDevice=function(){var O={};return O[v]=t,O[c]=t,O[u]=t,j.call(O,L,W.device),O},this.getEngine=function(){var O={};return O[p]=t,O[E]=t,j.call(O,L,W.engine),O},this.getOS=function(){var O={};return O[p]=t,O[E]=t,j.call(O,L,W.os),O},this.getResult=function(){return{ua:this.getUA(),browser:this.getBrowser(),engine:this.getEngine(),os:this.getOS(),device:this.getDevice(),cpu:this.getCPU()}},this.getUA=function(){return L},this.setUA=function(O){return L=typeof O===m&&O.length>fe?G(O,fe):O,this},this.setUA(L),this};H.VERSION=i,H.BROWSER=R([p,E,h]),H.CPU=R([A]),H.DEVICE=R([c,v,u,z,I,J,_,re,le]),H.ENGINE=H.OS=R([p,E]),typeof We!==a?(typeof ut!==a&&ut.exports&&(We=ut.exports=H),We.UAParser=H):typeof define===o&&define.amd?define(function(){return H}):typeof e!==a&&(e.UAParser=H);var $=typeof e!==a&&(e.jQuery||e.Zepto);if($&&!$.ua){var Ye=new H;$.ua=Ye.getResult(),$.ua.get=function(){return Ye.getUA()},$.ua.set=function(w){Ye.setUA(w);var x=Ye.getResult();for(var L in x)$.ua[L]=x[L]}}})(typeof window=="object"?window:We)});var Ke=ve((Zi,Xi)=>{(function(e){var t=Object.hasOwnProperty,i=Array.isArray?Array.isArray:function(d){return Object.prototype.toString.call(d)==="[object Array]"},r=10,s=typeof process=="object"&&typeof process.nextTick=="function",o=typeof Symbol=="function",a=typeof Reflect=="object",l=typeof setImmediate=="function",m=l?setImmediate:setTimeout,h=o?a&&typeof Reflect.ownKeys=="function"?Reflect.ownKeys:function(n){var d=Object.getOwnPropertyNames(n);return d.push.apply(d,Object.getOwnPropertySymbols(n)),d}:Object.keys;function c(){this._events={},this._conf&&p.call(this,this._conf)}function p(n){n&&(this._conf=n,n.delimiter&&(this.delimiter=n.delimiter),n.maxListeners!==e&&(this._maxListeners=n.maxListeners),n.wildcard&&(this.wildcard=n.wildcard),n.newListener&&(this._newListener=n.newListener),n.removeListener&&(this._removeListener=n.removeListener),n.verboseMemoryLeak&&(this.verboseMemoryLeak=n.verboseMemoryLeak),n.ignoreErrors&&(this.ignoreErrors=n.ignoreErrors),this.wildcard&&(this.listenerTree={}))}function u(n,d){var f="(node) warning: possible EventEmitter memory leak detected. "+n+" listeners added. Use emitter.setMaxListeners() to increase limit.";if(this.verboseMemoryLeak&&(f+=" Event name: "+d+"."),typeof process!="undefined"&&process.emitWarning){var g=new Error(f);g.name="MaxListenersExceededWarning",g.emitter=this,g.count=n,process.emitWarning(g)}else console.error(f),console.trace&&console.trace()}var v=function(n,d,f){var g=arguments.length;switch(g){case 0:return[];case 1:return[n];case 2:return[n,d];case 3:return[n,d,f];default:for(var T=new Array(g);g--;)T[g]=arguments[g];return T}};function E(n,d){for(var f={},g,T=n.length,S=d?value.length:0,y=0;y<T;y++)g=n[y],f[g]=y<S?d[y]:e;return f}function A(n,d,f){this._emitter=n,this._target=d,this._listeners={},this._listenersCount=0;var g,T;if((f.on||f.off)&&(g=f.on,T=f.off),d.addEventListener?(g=d.addEventListener,T=d.removeEventListener):d.addListener?(g=d.addListener,T=d.removeListener):d.on&&(g=d.on,T=d.off),!g&&!T)throw Error("target does not implement any known event API");if(typeof g!="function")throw TypeError("on method must be a function");if(typeof T!="function")throw TypeError("off method must be a function");this._on=g,this._off=T;var S=n._observers;S?S.push(this):n._observers=[this]}Object.assign(A.prototype,{subscribe:function(n,d,f){var g=this,T=this._target,S=this._emitter,y=this._listeners,P=function(){var C=v.apply(null,arguments),b={data:C,name:d,original:n};if(f){var R=f.call(T,b);R!==!1&&S.emit.apply(S,[b.name].concat(C));return}S.emit.apply(S,[d].concat(C))};if(y[n])throw Error("Event '"+n+"' is already listening");this._listenersCount++,S._newListener&&S._removeListener&&!g._onNewListener?(this._onNewListener=function(C){C===d&&y[n]===null&&(y[n]=P,g._on.call(T,n,P))},S.on("newListener",this._onNewListener),this._onRemoveListener=function(C){C===d&&!S.hasListeners(C)&&y[n]&&(y[n]=null,g._off.call(T,n,P))},y[n]=null,S.on("removeListener",this._onRemoveListener)):(y[n]=P,g._on.call(T,n,P))},unsubscribe:function(n){var d=this,f=this._listeners,g=this._emitter,T,S,y=this._off,P=this._target,C;if(n&&typeof n!="string")throw TypeError("event must be a string");function b(){d._onNewListener&&(g.off("newListener",d._onNewListener),g.off("removeListener",d._onRemoveListener),d._onNewListener=null,d._onRemoveListener=null);var R=fe.call(g,d);g._observers.splice(R,1)}if(n){if(T=f[n],!T)return;y.call(P,n,T),delete f[n],--this._listenersCount||b()}else{for(S=h(f),C=S.length;C-- >0;)n=S[C],y.call(P,n,f[n]);this._listeners={},this._listenersCount=0,b()}}});function z(n,d,f,g){var T=Object.assign({},d);if(!n)return T;if(typeof n!="object")throw TypeError("options must be an object");var S=Object.keys(n),y=S.length,P,C,b;function R(M){throw Error('Invalid "'+P+'" option value'+(M?". Reason: "+M:""))}for(var K=0;K<y;K++){if(P=S[K],!g&&!t.call(d,P))throw Error('Unknown "'+P+'" option');C=n[P],C!==e&&(b=f[P],T[P]=b?b(C,R):C)}return T}function I(n,d){return(typeof n!="function"||!n.hasOwnProperty("prototype"))&&d("value must be a constructor"),n}function _(n){var d="value must be type of "+n.join("|"),f=n.length,g=n[0],T=n[1];return f===1?function(S,y){if(typeof S===g)return S;y(d)}:f===2?function(S,y){var P=typeof S;if(P===g||P===T)return S;y(d)}:function(S,y){for(var P=typeof S,C=f;C-- >0;)if(P===n[C])return S;y(d)}}var J=_(["function"]),re=_(["object","function"]);function le(n,d,f){var g,T,S=0,y,P=new n(function(C,b,R){f=z(f,{timeout:0,overload:!1},{timeout:function(G,j){return G*=1,(typeof G!="number"||G<0||!Number.isFinite(G))&&j("timeout must be a positive number"),G}}),g=!f.overload&&typeof n.prototype.cancel=="function"&&typeof R=="function";function K(){T&&(T=null),S&&(clearTimeout(S),S=0)}var M=function(G){K(),C(G)},N=function(G){K(),b(G)};g?d(M,N,R):(T=[function(G){N(G||Error("canceled"))}],d(M,N,function(G){if(y)throw Error("Unable to subscribe on cancel event asynchronously");if(typeof G!="function")throw TypeError("onCancel callback must be a function");T.push(G)}),y=!0),f.timeout>0&&(S=setTimeout(function(){var G=Error("timeout");G.code="ETIMEDOUT",S=0,P.cancel(G),b(G)},f.timeout))});return g||(P.cancel=function(C){if(!!T){for(var b=T.length,R=1;R<b;R++)T[R](C);T[0](C),T=null}}),P}function fe(n){var d=this._observers;if(!d)return-1;for(var f=d.length,g=0;g<f;g++)if(d[g]._target===n)return g;return-1}function F(n,d,f,g,T){if(!f)return null;if(g===0){var S=typeof d;if(S==="string"){var y,P,C=0,b=0,R=this.delimiter,K=R.length;if((P=d.indexOf(R))!==-1){y=new Array(5);do y[C++]=d.slice(b,P),b=P+K;while((P=d.indexOf(R,b))!==-1);y[C++]=d.slice(b),d=y,T=C}else d=[d],T=1}else S==="object"?T=d.length:(d=[d],T=1)}var M=null,N,G,j,ge,Oe,ue=d[g],Ce=d[g+1],H,$;if(g===T)f._listeners&&(typeof f._listeners=="function"?(n&&n.push(f._listeners),M=[f]):(n&&n.push.apply(n,f._listeners),M=[f]));else if(ue==="*"){for(H=h(f),P=H.length;P-- >0;)N=H[P],N!=="_listeners"&&($=F(n,d,f[N],g+1,T),$&&(M?M.push.apply(M,$):M=$));return M}else if(ue==="**"){for(Oe=g+1===T||g+2===T&&Ce==="*",Oe&&f._listeners&&(M=F(n,d,f,T,T)),H=h(f),P=H.length;P-- >0;)N=H[P],N!=="_listeners"&&(N==="*"||N==="**"?(f[N]._listeners&&!Oe&&($=F(n,d,f[N],T,T),$&&(M?M.push.apply(M,$):M=$)),$=F(n,d,f[N],g,T)):N===Ce?$=F(n,d,f[N],g+2,T):$=F(n,d,f[N],g,T),$&&(M?M.push.apply(M,$):M=$));return M}else f[ue]&&(M=F(n,d,f[ue],g+1,T));if(G=f["*"],G&&F(n,d,G,g+1,T),j=f["**"],j)if(g<T)for(j._listeners&&F(n,d,j,T,T),H=h(j),P=H.length;P-- >0;)N=H[P],N!=="_listeners"&&(N===Ce?F(n,d,j[N],g+2,T):N===ue?F(n,d,j[N],g+1,T):(ge={},ge[N]=j[N],F(n,d,{"**":ge},g+1,T)));else j._listeners?F(n,d,j,T,T):j["*"]&&j["*"]._listeners&&F(n,d,j["*"],T,T);return M}function we(n,d,f){var g=0,T=0,S,y=this.delimiter,P=y.length,C;if(typeof n=="string")if((S=n.indexOf(y))!==-1){C=new Array(5);do C[g++]=n.slice(T,S),T=S+P;while((S=n.indexOf(y,T))!==-1);C[g++]=n.slice(T)}else C=[n],g=1;else C=n,g=n.length;if(g>1){for(S=0;S+1<g;S++)if(C[S]==="**"&&C[S+1]==="**")return}var b=this.listenerTree,R;for(S=0;S<g;S++)if(R=C[S],b=b[R]||(b[R]={}),S===g-1)return b._listeners?(typeof b._listeners=="function"&&(b._listeners=[b._listeners]),f?b._listeners.unshift(d):b._listeners.push(d),!b._listeners.warned&&this._maxListeners>0&&b._listeners.length>this._maxListeners&&(b._listeners.warned=!0,u.call(this,b._listeners.length,R))):b._listeners=d,!0;return!0}function Le(n,d,f,g){for(var T=h(n),S=T.length,y,P,C,b=n._listeners,R;S-- >0;)P=T[S],y=n[P],P==="_listeners"?C=f:C=f?f.concat(P):[P],R=g||typeof P=="symbol",b&&d.push(R?C:C.join(this.delimiter)),typeof y=="object"&&Le.call(this,y,d,C,R);return d}function Ee(n){for(var d=h(n),f=d.length,g,T,S;f-- >0;)T=d[f],g=n[T],g&&(S=!0,T!=="_listeners"&&!Ee(g)&&delete n[T]);return S}function ne(n,d,f){this.emitter=n,this.event=d,this.listener=f}ne.prototype.off=function(){return this.emitter.off(this.event,this.listener),this};function ye(n,d,f){if(f===!0)T=!0;else if(f===!1)g=!0;else{if(!f||typeof f!="object")throw TypeError("options should be an object or true");var g=f.async,T=f.promisify,S=f.nextTick,y=f.objectify}if(g||S||T){var P=d,C=d._origin||d;if(S&&!s)throw Error("process.nextTick is not supported");T===e&&(T=d.constructor.name==="AsyncFunction"),d=function(){var b=arguments,R=this,K=this.event;return T?S?Promise.resolve():new Promise(function(M){m(M)}).then(function(){return R.event=K,P.apply(R,b)}):(S?process.nextTick:m)(function(){R.event=K,P.apply(R,b)})},d._async=!0,d._origin=C}return[d,y?new ne(this,n,d):this]}function D(n){this._events={},this._newListener=!1,this._removeListener=!1,this.verboseMemoryLeak=!1,p.call(this,n)}D.EventEmitter2=D,D.prototype.listenTo=function(n,d,f){if(typeof n!="object")throw TypeError("target musts be an object");var g=this;f=z(f,{on:e,off:e,reducers:e},{on:J,off:J,reducers:re});function T(S){if(typeof S!="object")throw TypeError("events must be an object");var y=f.reducers,P=fe.call(g,n),C;P===-1?C=new A(g,n,f):C=g._observers[P];for(var b=h(S),R=b.length,K,M=typeof y=="function",N=0;N<R;N++)K=b[N],C.subscribe(K,S[K]||K,M?y:y&&y[K])}return i(d)?T(E(d)):T(typeof d=="string"?E(d.split(/\s+/)):d),this},D.prototype.stopListeningTo=function(n,d){var f=this._observers;if(!f)return!1;var g=f.length,T,S=!1;if(n&&typeof n!="object")throw TypeError("target should be an object");for(;g-- >0;)T=f[g],(!n||T._target===n)&&(T.unsubscribe(d),S=!0);return S},D.prototype.delimiter=".",D.prototype.setMaxListeners=function(n){n!==e&&(this._maxListeners=n,this._conf||(this._conf={}),this._conf.maxListeners=n)},D.prototype.getMaxListeners=function(){return this._maxListeners},D.prototype.event="",D.prototype.once=function(n,d,f){return this._once(n,d,!1,f)},D.prototype.prependOnceListener=function(n,d,f){return this._once(n,d,!0,f)},D.prototype._once=function(n,d,f,g){return this._many(n,1,d,f,g)},D.prototype.many=function(n,d,f,g){return this._many(n,d,f,!1,g)},D.prototype.prependMany=function(n,d,f,g){return this._many(n,d,f,!0,g)},D.prototype._many=function(n,d,f,g,T){var S=this;if(typeof f!="function")throw new Error("many only accepts instances of Function");function y(){return--d==0&&S.off(n,y),f.apply(this,arguments)}return y._origin=f,this._on(n,y,g,T)},D.prototype.emit=function(){if(!this._events&&!this._all)return!1;this._events||c.call(this);var n=arguments[0],d,f=this.wildcard,g,T,S,y,P;if(n==="newListener"&&!this._newListener&&!this._events.newListener)return!1;if(f&&(d=n,n!=="newListener"&&n!=="removeListener"&&typeof n=="object")){if(T=n.length,o){for(S=0;S<T;S++)if(typeof n[S]=="symbol"){P=!0;break}}P||(n=n.join(this.delimiter))}var C=arguments.length,b;if(this._all&&this._all.length)for(b=this._all.slice(),S=0,T=b.length;S<T;S++)switch(this.event=n,C){case 1:b[S].call(this,n);break;case 2:b[S].call(this,n,arguments[1]);break;case 3:b[S].call(this,n,arguments[1],arguments[2]);break;default:b[S].apply(this,arguments)}if(f)b=[],F.call(this,b,d,this.listenerTree,0,T);else if(b=this._events[n],typeof b=="function"){switch(this.event=n,C){case 1:b.call(this);break;case 2:b.call(this,arguments[1]);break;case 3:b.call(this,arguments[1],arguments[2]);break;default:for(g=new Array(C-1),y=1;y<C;y++)g[y-1]=arguments[y];b.apply(this,g)}return!0}else b&&(b=b.slice());if(b&&b.length){if(C>3)for(g=new Array(C-1),y=1;y<C;y++)g[y-1]=arguments[y];for(S=0,T=b.length;S<T;S++)switch(this.event=n,C){case 1:b[S].call(this);break;case 2:b[S].call(this,arguments[1]);break;case 3:b[S].call(this,arguments[1],arguments[2]);break;default:b[S].apply(this,g)}return!0}else if(!this.ignoreErrors&&!this._all&&n==="error")throw arguments[1]instanceof Error?arguments[1]:new Error("Uncaught, unspecified 'error' event.");return!!this._all},D.prototype.emitAsync=function(){if(!this._events&&!this._all)return!1;this._events||c.call(this);var n=arguments[0],d=this.wildcard,f,g,T,S,y,P;if(n==="newListener"&&!this._newListener&&!this._events.newListener)return Promise.resolve([!1]);if(d&&(f=n,n!=="newListener"&&n!=="removeListener"&&typeof n=="object")){if(S=n.length,o){for(y=0;y<S;y++)if(typeof n[y]=="symbol"){g=!0;break}}g||(n=n.join(this.delimiter))}var C=[],b=arguments.length,R;if(this._all)for(y=0,S=this._all.length;y<S;y++)switch(this.event=n,b){case 1:C.push(this._all[y].call(this,n));break;case 2:C.push(this._all[y].call(this,n,arguments[1]));break;case 3:C.push(this._all[y].call(this,n,arguments[1],arguments[2]));break;default:C.push(this._all[y].apply(this,arguments))}if(d?(R=[],F.call(this,R,f,this.listenerTree,0)):R=this._events[n],typeof R=="function")switch(this.event=n,b){case 1:C.push(R.call(this));break;case 2:C.push(R.call(this,arguments[1]));break;case 3:C.push(R.call(this,arguments[1],arguments[2]));break;default:for(T=new Array(b-1),P=1;P<b;P++)T[P-1]=arguments[P];C.push(R.apply(this,T))}else if(R&&R.length){if(R=R.slice(),b>3)for(T=new Array(b-1),P=1;P<b;P++)T[P-1]=arguments[P];for(y=0,S=R.length;y<S;y++)switch(this.event=n,b){case 1:C.push(R[y].call(this));break;case 2:C.push(R[y].call(this,arguments[1]));break;case 3:C.push(R[y].call(this,arguments[1],arguments[2]));break;default:C.push(R[y].apply(this,T))}}else if(!this.ignoreErrors&&!this._all&&n==="error")return arguments[1]instanceof Error?Promise.reject(arguments[1]):Promise.reject("Uncaught, unspecified 'error' event.");return Promise.all(C)},D.prototype.on=function(n,d,f){return this._on(n,d,!1,f)},D.prototype.prependListener=function(n,d,f){return this._on(n,d,!0,f)},D.prototype.onAny=function(n){return this._onAny(n,!1)},D.prototype.prependAny=function(n){return this._onAny(n,!0)},D.prototype.addListener=D.prototype.on,D.prototype._onAny=function(n,d){if(typeof n!="function")throw new Error("onAny only accepts instances of Function");return this._all||(this._all=[]),d?this._all.unshift(n):this._all.push(n),this},D.prototype._on=function(n,d,f,g){if(typeof n=="function")return this._onAny(n,d),this;if(typeof d!="function")throw new Error("on only accepts instances of Function");this._events||c.call(this);var T=this,S;return g!==e&&(S=ye.call(this,n,d,g),d=S[0],T=S[1]),this._newListener&&this.emit("newListener",n,d),this.wildcard?(we.call(this,n,d,f),T):(this._events[n]?(typeof this._events[n]=="function"&&(this._events[n]=[this._events[n]]),f?this._events[n].unshift(d):this._events[n].push(d),!this._events[n].warned&&this._maxListeners>0&&this._events[n].length>this._maxListeners&&(this._events[n].warned=!0,u.call(this,this._events[n].length,n))):this._events[n]=d,T)},D.prototype.off=function(n,d){if(typeof d!="function")throw new Error("removeListener only takes instances of Function");var f,g=[];if(this.wildcard){var T=typeof n=="string"?n.split(this.delimiter):n.slice();if(g=F.call(this,null,T,this.listenerTree,0),!g)return this}else{if(!this._events[n])return this;f=this._events[n],g.push({_listeners:f})}for(var S=0;S<g.length;S++){var y=g[S];if(f=y._listeners,i(f)){for(var P=-1,C=0,b=f.length;C<b;C++)if(f[C]===d||f[C].listener&&f[C].listener===d||f[C]._origin&&f[C]._origin===d){P=C;break}if(P<0)continue;return this.wildcard?y._listeners.splice(P,1):this._events[n].splice(P,1),f.length===0&&(this.wildcard?delete y._listeners:delete this._events[n]),this._removeListener&&this.emit("removeListener",n,d),this}else(f===d||f.listener&&f.listener===d||f._origin&&f._origin===d)&&(this.wildcard?delete y._listeners:delete this._events[n],this._removeListener&&this.emit("removeListener",n,d))}return this.listenerTree&&Ee(this.listenerTree),this},D.prototype.offAny=function(n){var d=0,f=0,g;if(n&&this._all&&this._all.length>0){for(g=this._all,d=0,f=g.length;d<f;d++)if(n===g[d])return g.splice(d,1),this._removeListener&&this.emit("removeListenerAny",n),this}else{if(g=this._all,this._removeListener)for(d=0,f=g.length;d<f;d++)this.emit("removeListenerAny",g[d]);this._all=[]}return this},D.prototype.removeListener=D.prototype.off,D.prototype.removeAllListeners=function(n){if(n===e)return!this._events||c.call(this),this;if(this.wildcard){var d=F.call(this,null,n,this.listenerTree,0),f,g;if(!d)return this;for(g=0;g<d.length;g++)f=d[g],f._listeners=null;this.listenerTree&&Ee(this.listenerTree)}else this._events&&(this._events[n]=null);return this},D.prototype.listeners=function(n){var d=this._events,f,g,T,S,y;if(n===e){if(this.wildcard)throw Error("event name required for wildcard emitter");if(!d)return[];for(f=h(d),S=f.length,T=[];S-- >0;)g=d[f[S]],typeof g=="function"?T.push(g):T.push.apply(T,g);return T}else{if(this.wildcard){if(y=this.listenerTree,!y)return[];var P=[],C=typeof n=="string"?n.split(this.delimiter):n.slice();return F.call(this,P,C,y,0),P}return d?(g=d[n],g?typeof g=="function"?[g]:g:[]):[]}},D.prototype.eventNames=function(n){var d=this._events;return this.wildcard?Le.call(this,this.listenerTree,[],null,n):d?h(d):[]},D.prototype.listenerCount=function(n){return this.listeners(n).length},D.prototype.hasListeners=function(n){if(this.wildcard){var d=[],f=typeof n=="string"?n.split(this.delimiter):n.slice();return F.call(this,d,f,this.listenerTree,0),d.length>0}var g=this._events,T=this._all;return!!(T&&T.length||g&&(n===e?h(g).length:g[n]))},D.prototype.listenersAny=function(){return this._all?this._all:[]},D.prototype.waitFor=function(n,d){var f=this,g=typeof d;return g==="number"?d={timeout:d}:g==="function"&&(d={filter:d}),d=z(d,{timeout:0,filter:e,handleError:!1,Promise,overload:!1},{filter:J,Promise:I}),le(d.Promise,function(T,S,y){function P(){var C=d.filter;if(!(C&&!C.apply(f,arguments)))if(f.off(n,P),d.handleError){var b=arguments[0];b?S(b):T(v.apply(null,arguments).slice(1))}else T(v.apply(null,arguments))}y(function(){f.off(n,P)}),f._on(n,P,!1)},{timeout:d.timeout,overload:d.overload})};function ke(n,d,f){f=z(f,{Promise,timeout:0,overload:!1},{Promise:I});var g=f.Promise;return le(g,function(T,S,y){var P;if(typeof n.addEventListener=="function"){P=function(){T(v.apply(null,arguments))},y(function(){n.removeEventListener(d,P)}),n.addEventListener(d,P,{once:!0});return}var C=function(){b&&n.removeListener("error",b),T(v.apply(null,arguments))},b;d!=="error"&&(b=function(R){n.removeListener(d,C),S(R)},n.once("error",b)),y(function(){b&&n.removeListener("error",b),n.removeListener(d,C)}),n.once(d,C)},{timeout:f.timeout,overload:f.overload})}var de=D.prototype;if(Object.defineProperties(D,{defaultMaxListeners:{get:function(){return de._maxListeners},set:function(n){if(typeof n!="number"||n<0||Number.isNaN(n))throw TypeError("n must be a non-negative number");de._maxListeners=n},enumerable:!0},once:{value:ke,writable:!0,configurable:!0}}),Object.defineProperties(de,{_maxListeners:{value:r,writable:!0,configurable:!0},_observers:{value:null,writable:!0,configurable:!0}}),typeof define=="function"&&define.amd)define(function(){return D});else if(typeof Zi=="object")Xi.exports=D;else{var Je=new Function("","return this")();Je.EventEmitter2=D}})()});Fe(exports,{HMSRoomProvider:()=>ei,calculateLayoutSizes:()=>et,chunkElements:()=>Ze,getModeAspectRatio:()=>Xe,useAVToggle:()=>Mr,useAudioLevel:()=>Gr,useDevices:()=>wr,useHMSActions:()=>te,useHMSNotifications:()=>ii,useHMSStatsStore:()=>ti,useHMSStore:()=>B,useHMSVanillaStore:()=>Ae,usePreview:()=>Rr,useVideo:()=>Nr,useVideoList:()=>Dr,useVideoTile:()=>Ar});var X=U(require("react")),Xt=U(require("@100mslive/hms-video-store")),Be=U(require("zustand"));var yt=U(require("react")),kt=U(require("zustand/shallow"));var Z;(function(a){a[a.VERBOSE=0]="VERBOSE",a[a.DEBUG=1]="DEBUG",a[a.INFO=2]="INFO",a[a.WARN=3]="WARN",a[a.ERROR=4]="ERROR",a[a.NONE=5]="NONE"})(Z||(Z={}));var be=class{static v(t,...i){this.log(0,t,...i)}static d(t,...i){this.log(1,t,...i)}static i(t,...i){this.log(2,t,...i)}static w(t,...i){this.log(3,t,...i)}static e(t,...i){this.log(4,t,...i)}static log(t,i,...r){if(!(this.level.valueOf()>t.valueOf()))switch(t){case 0:{console.log("HMSui-components: ",i,...r);break}case 1:{console.debug("HMSui-components: ",i,...r);break}case 2:{console.info("HMSui-components: ",i,...r);break}case 3:{console.warn("HMSui-components: ",i,...r);break}case 4:{console.error("HMSui-components: ",i,...r);break}}}};be.level=0;var Pe="It seems like you forgot to add your component within a top level HMSRoomProvider, please refer to 100ms react docs(https://docs.100ms.live/javascript/v2/features/integration#react-hooks) to check on the required steps for using this hook.";function Yt(e){return(i,r=kt.default)=>{i||be.w("fetching full store without passing any selector may have a heavy performance impact on your website.");let s=(0,yt.useContext)(e);if(!s)throw new Error(Pe);return s.store(i,r)}}function Qt(e){return(i,r=kt.default)=>{i||be.w("fetching full store without passing any selector may have a heavy performance impact on your website.");let s=(0,yt.useContext)(e);if(!s)throw new Error(Pe);let o=s.statsStore;return o==null?void 0:o(i,r)}}var Zt=typeof window!="undefined";var Re=(0,X.createContext)(null),he,ei=({children:e,actions:t,store:i,notifications:r,stats:s,isHMSStatsOn:o=!1})=>{if(!he){let a=()=>{throw new Error("modifying store is not allowed")};if(t&&i)he={actions:t,store:(0,Be.default)(Ge(Ue({},i),{setState:a,destroy:a}))},r&&(he.notifications=r),s&&(he.statsStore=(0,Be.default)({getState:s.getState,subscribe:s.subscribe,setState:a,destroy:a}));else{let l=new Xt.HMSReactiveStore;if(he={actions:l.getActions(),store:(0,Be.default)(Ge(Ue({},l.getStore()),{setState:a,destroy:a})),notifications:l.getNotifications()},o){let m=l.getStats();he.statsStore=(0,Be.default)({getState:m.getState,subscribe:m.subscribe,setState:a,destroy:a})}}}return(0,X.useEffect)(()=>{Zt&&(window.onunload=()=>{he.actions.leave()})},[]),X.default.createElement(Re.Provider,{value:he},e)},B=Yt(Re),ti=Qt(Re),Ae=()=>{let e=(0,X.useContext)(Re);if(!e)throw new Error(Pe);return e.store},te=()=>{let e=(0,X.useContext)(Re);if(!e)throw new Error(Pe);return e.actions},ii=()=>{let e=(0,X.useContext)(Re),[t,i]=(0,X.useState)(null);if(!e)throw new Error(Pe);return(0,X.useEffect)(()=>e.notifications?e.notifications.onNotification(s=>i(s)):void 0,[e.notifications]),t};var Kr=(e,t,i)=>e.reduce((r,s,o)=>{let a=Math.floor(o/t);return a>0&&i||(r[a]||(r[a]=[]),r[a].push(s)),r},[]),Ze=({elements:e,tilesInFirstPage:t,onlyOnePage:i,isLastPageDifferentFromFirstPage:r,defaultWidth:s,defaultHeight:o,lastPageWidth:a,lastPageHeight:l})=>{let m=Kr(e,t,i);return m.map((h,c)=>h.map(p=>{let u=c===m.length-1,v=r&&u?a:s,E=r&&u?l:o;return Ge(Ue({},p),{height:E,width:v})}))};function qr(e){if(e.length===0)return null;let t={},i=e[0],r=1;for(let s=0;s<e.length;s++){let o=e[s];t[o]===null?t[o]=1:t[o]++,t[o]>r&&(i=o,r=t[o])}return i}var Xe=e=>qr(e.filter(t=>{var i,r;return((i=t.track)==null?void 0:i.width)&&((r=t.track)==null?void 0:r.height)}).map(t=>{var s,o;let i=(s=t.track)==null?void 0:s.width,r=(o=t.track)==null?void 0:o.height;return(i||1)/(r||1)})),Ct=(e,t,i,r,s)=>{if(e<0||t<0)throw new Error("Container must have a non-negative area");if(i<1||!Number.isInteger(i))throw new Error("Number of shapes to place must be a positive integer");let o=r&&s&&r/s;if(o!==void 0&&isNaN(o))throw new Error("Aspect ratio must be a number");let a={area:0,cols:0,rows:0,width:0,height:0},l=i,m=-1;if(o!==void 0)for(let h=l;h>0;h+=m){let c=Math.ceil(i/h),p=e/(h*o),u=t/c,v,E;p<=u?(v=e/h,E=v/o):(E=t/c,v=E*o);let A=v*E;A>a.area&&(a={area:A,width:v,height:E,rows:c,cols:h})}return a},zr=({parentWidth:e,parentHeight:t,count:i,maxCount:r,aspectRatio:s})=>{let o=0,a=0,l=0,m=0,h=!1,c=0,p=0,u=Math.min(Math.ceil(Math.sqrt(i*(e/t)/(s.width/s.height))),r),v=e/u,E=v/(s.width/s.height),A=Math.floor(t/E);if(a=E,o=v,c=Math.min(i,A*u),p=i%(A*u),h=p>0&&i>A*u,h){let z=Math.min(Math.ceil(Math.sqrt(p*(e/t)/(s.width/s.height))),r),I=e/z;m=I/(s.width/s.height),l=I}return{tilesInFirstPage:c,defaultWidth:o,defaultHeight:a,lastPageWidth:l,lastPageHeight:m,isLastPageDifferentFromFirstPage:h}},Jr=({parentWidth:e,parentHeight:t,count:i,maxCount:r,aspectRatio:s})=>{let o=0,a=0,l=0,m=0,h=!1,c=0,p=0,{width:u,height:v}=Ct(e,t,Math.min(i,r),s.width,s.height);if(o=u,a=v,c=Math.min(i,r),p=i%r,h=p>0&&i>r,h){let{width:E,height:A}=Ct(e,t,p,s.width,s.height);l=E,m=A}return{tilesInFirstPage:c,defaultWidth:o,defaultHeight:a,lastPageWidth:l,lastPageHeight:m,isLastPageDifferentFromFirstPage:h}},Yr=({parentWidth:e,parentHeight:t,count:i,maxCount:r,aspectRatio:s})=>{let o=0,a=0,l=0,m=0,h=!1,c=0,p=0,u=Math.min(Math.ceil(Math.sqrt(i*(s.width/s.height)/(e/t))),r),v=t/u,E=v*(s.width/s.height),A=Math.floor(e/E);if(o=E,a=v,c=Math.min(i,u*A),p=i%(u*A),h=p>0&&i>u*A,h){let z=Math.min(Math.ceil(Math.sqrt(p*(s.width/s.height)/(e/t))),r),I=t/z,_=I*(s.width/s.height);m=I,l=_}return{tilesInFirstPage:c,defaultWidth:o,defaultHeight:a,lastPageWidth:l,lastPageHeight:m,isLastPageDifferentFromFirstPage:h}};function et({count:e,parentWidth:t,parentHeight:i,maxTileCount:r,maxRowCount:s,maxColCount:o,aspectRatio:a}){let l=0,m=0,h=0,c=0,p=!1,u=0;if(e===0)return{tilesInFirstPage:u,defaultWidth:l,defaultHeight:m,lastPageWidth:h,lastPageHeight:c,isLastPageDifferentFromFirstPage:p};if(r)({tilesInFirstPage:u,defaultWidth:l,defaultHeight:m,lastPageWidth:h,lastPageHeight:c,isLastPageDifferentFromFirstPage:p}=Jr({parentWidth:t,parentHeight:i,count:e,maxCount:r,aspectRatio:a}));else if(s)({tilesInFirstPage:u,defaultWidth:l,defaultHeight:m,lastPageWidth:h,lastPageHeight:c,isLastPageDifferentFromFirstPage:p}=Yr({parentWidth:t,parentHeight:i,count:e,maxCount:s,aspectRatio:a}));else if(o)({tilesInFirstPage:u,defaultWidth:l,defaultHeight:m,lastPageWidth:h,lastPageHeight:c,isLastPageDifferentFromFirstPage:p}=zr({parentWidth:t,parentHeight:i,count:e,maxCount:o,aspectRatio:a}));else{let{width:v,height:E}=Ct(t,i,e,a.width,a.height);l=v,m=E,u=e}return{tilesInFirstPage:u,defaultWidth:l,defaultHeight:m,lastPageWidth:h,lastPageHeight:c,isLastPageDifferentFromFirstPage:p}}var ri=(e,t,i,r=!0)=>{if(!e||!t||!i)return[];let s=[];for(let o of e)if(o.videoTrack===void 0&&o.audioTrack&&t[o.audioTrack])s.push({peer:o});else if(o.videoTrack&&t[o.videoTrack])s.push({track:t[o.videoTrack],peer:o});else if(i(o)&&o.auxiliaryTracks.length>0){let a=o.auxiliaryTracks.find(l=>{let m=t[l];return(m==null?void 0:m.type)==="video"&&(m==null?void 0:m.source)==="screen"});a&&s.push({track:t[a],peer:o})}else r||s.push({peer:o});return s};"use strict";var si=!0,ni=!0;function He(e,t,i){let r=e.match(t);return r&&r.length>=i&&parseInt(r[i],10)}function ae(e,t,i){if(!e.RTCPeerConnection)return;let r=e.RTCPeerConnection.prototype,s=r.addEventListener;r.addEventListener=function(a,l){if(a!==t)return s.apply(this,arguments);let m=h=>{let c=i(h);c&&(l.handleEvent?l.handleEvent(c):l(c))};return this._eventMap=this._eventMap||{},this._eventMap[t]||(this._eventMap[t]=new Map),this._eventMap[t].set(l,m),s.apply(this,[a,m])};let o=r.removeEventListener;r.removeEventListener=function(a,l){if(a!==t||!this._eventMap||!this._eventMap[t])return o.apply(this,arguments);if(!this._eventMap[t].has(l))return o.apply(this,arguments);let m=this._eventMap[t].get(l);return this._eventMap[t].delete(l),this._eventMap[t].size===0&&delete this._eventMap[t],Object.keys(this._eventMap).length===0&&delete this._eventMap,o.apply(this,[a,m])},Object.defineProperty(r,"on"+t,{get(){return this["_on"+t]},set(a){this["_on"+t]&&(this.removeEventListener(t,this["_on"+t]),delete this["_on"+t]),a&&this.addEventListener(t,this["_on"+t]=a)},enumerable:!0,configurable:!0})}function ai(e){return typeof e!="boolean"?new Error("Argument type: "+typeof e+". Please use a boolean."):(si=e,e?"adapter.js logging disabled":"adapter.js logging enabled")}function oi(e){return typeof e!="boolean"?new Error("Argument type: "+typeof e+". Please use a boolean."):(ni=!e,"adapter.js deprecation warnings "+(e?"disabled":"enabled"))}function tt(){if(typeof window=="object"){if(si)return;typeof console!="undefined"&&typeof console.log=="function"&&console.log.apply(console,arguments)}}function Ie(e,t){!ni||console.warn(e+" is deprecated, please use "+t+" instead.")}function ci(e){let t={browser:null,version:null};if(typeof e=="undefined"||!e.navigator)return t.browser="Not a browser.",t;let{navigator:i}=e;if(i.mozGetUserMedia)t.browser="firefox",t.version=He(i.userAgent,/Firefox\/(\d+)\./,1);else if(i.webkitGetUserMedia||e.isSecureContext===!1&&e.webkitRTCPeerConnection&&!e.RTCIceGatherer)t.browser="chrome",t.version=He(i.userAgent,/Chrom(e|ium)\/(\d+)\./,2);else if(e.RTCPeerConnection&&i.userAgent.match(/AppleWebKit\/(\d+)\./))t.browser="safari",t.version=He(i.userAgent,/AppleWebKit\/(\d+)\./,1),t.supportsUnifiedPlan=e.RTCRtpTransceiver&&"currentDirection"in e.RTCRtpTransceiver.prototype;else return t.browser="Not a supported browser.",t;return t}function li(e){return Object.prototype.toString.call(e)==="[object Object]"}function bt(e){return li(e)?Object.keys(e).reduce(function(t,i){let r=li(e[i]),s=r?bt(e[i]):e[i],o=r&&!Object.keys(s).length;return s===void 0||o?t:Object.assign(t,{[i]:s})},{}):e}function Pt(e,t,i){!t||i.has(t.id)||(i.set(t.id,t),Object.keys(t).forEach(r=>{r.endsWith("Id")?Pt(e,e.get(t[r]),i):r.endsWith("Ids")&&t[r].forEach(s=>{Pt(e,e.get(s),i)})}))}function Rt(e,t,i){let r=i?"outbound-rtp":"inbound-rtp",s=new Map;if(t===null)return s;let o=[];return e.forEach(a=>{a.type==="track"&&a.trackIdentifier===t.id&&o.push(a)}),o.forEach(a=>{e.forEach(l=>{l.type===r&&l.trackId===a.id&&Pt(e,l,s)})}),s}var it={};Fe(it,{fixNegotiationNeeded:()=>Si,shimAddTrackRemoveTrack:()=>Ti,shimAddTrackRemoveTrackWithNative:()=>vi,shimGetDisplayMedia:()=>ui,shimGetSendersWithDtmf:()=>mi,shimGetStats:()=>fi,shimGetUserMedia:()=>At,shimMediaStream:()=>hi,shimOnTrack:()=>pi,shimPeerConnection:()=>It,shimSenderReceiverGetStats:()=>gi});"use strict";var di=tt;function At(e,t){let i=e&&e.navigator;if(!i.mediaDevices)return;let r=function(l){if(typeof l!="object"||l.mandatory||l.optional)return l;let m={};return Object.keys(l).forEach(h=>{if(h==="require"||h==="advanced"||h==="mediaSource")return;let c=typeof l[h]=="object"?l[h]:{ideal:l[h]};c.exact!==void 0&&typeof c.exact=="number"&&(c.min=c.max=c.exact);let p=function(u,v){return u?u+v.charAt(0).toUpperCase()+v.slice(1):v==="deviceId"?"sourceId":v};if(c.ideal!==void 0){m.optional=m.optional||[];let u={};typeof c.ideal=="number"?(u[p("min",h)]=c.ideal,m.optional.push(u),u={},u[p("max",h)]=c.ideal,m.optional.push(u)):(u[p("",h)]=c.ideal,m.optional.push(u))}c.exact!==void 0&&typeof c.exact!="number"?(m.mandatory=m.mandatory||{},m.mandatory[p("",h)]=c.exact):["min","max"].forEach(u=>{c[u]!==void 0&&(m.mandatory=m.mandatory||{},m.mandatory[p(u,h)]=c[u])})}),l.advanced&&(m.optional=(m.optional||[]).concat(l.advanced)),m},s=function(l,m){if(t.version>=61)return m(l);if(l=JSON.parse(JSON.stringify(l)),l&&typeof l.audio=="object"){let h=function(c,p,u){p in c&&!(u in c)&&(c[u]=c[p],delete c[p])};l=JSON.parse(JSON.stringify(l)),h(l.audio,"autoGainControl","googAutoGainControl"),h(l.audio,"noiseSuppression","googNoiseSuppression"),l.audio=r(l.audio)}if(l&&typeof l.video=="object"){let h=l.video.facingMode;h=h&&(typeof h=="object"?h:{ideal:h});let c=t.version<66;if(h&&(h.exact==="user"||h.exact==="environment"||h.ideal==="user"||h.ideal==="environment")&&!(i.mediaDevices.getSupportedConstraints&&i.mediaDevices.getSupportedConstraints().facingMode&&!c)){delete l.video.facingMode;let p;if(h.exact==="environment"||h.ideal==="environment"?p=["back","rear"]:(h.exact==="user"||h.ideal==="user")&&(p=["front"]),p)return i.mediaDevices.enumerateDevices().then(u=>{u=u.filter(E=>E.kind==="videoinput");let v=u.find(E=>p.some(A=>E.label.toLowerCase().includes(A)));return!v&&u.length&&p.includes("back")&&(v=u[u.length-1]),v&&(l.video.deviceId=h.exact?{exact:v.deviceId}:{ideal:v.deviceId}),l.video=r(l.video),di("chrome: "+JSON.stringify(l)),m(l)})}l.video=r(l.video)}return di("chrome: "+JSON.stringify(l)),m(l)},o=function(l){return t.version>=64?l:{name:{PermissionDeniedError:"NotAllowedError",PermissionDismissedError:"NotAllowedError",InvalidStateError:"NotAllowedError",DevicesNotFoundError:"NotFoundError",ConstraintNotSatisfiedError:"OverconstrainedError",TrackStartError:"NotReadableError",MediaDeviceFailedDueToShutdown:"NotAllowedError",MediaDeviceKillSwitchOn:"NotAllowedError",TabCaptureError:"AbortError",ScreenCaptureError:"AbortError",DeviceCaptureError:"AbortError"}[l.name]||l.name,message:l.message,constraint:l.constraint||l.constraintName,toString(){return this.name+(this.message&&": ")+this.message}}},a=function(l,m,h){s(l,c=>{i.webkitGetUserMedia(c,m,p=>{h&&h(o(p))})})};if(i.getUserMedia=a.bind(i),i.mediaDevices.getUserMedia){let l=i.mediaDevices.getUserMedia.bind(i.mediaDevices);i.mediaDevices.getUserMedia=function(m){return s(m,h=>l(h).then(c=>{if(h.audio&&!c.getAudioTracks().length||h.video&&!c.getVideoTracks().length)throw c.getTracks().forEach(p=>{p.stop()}),new DOMException("","NotFoundError");return c},c=>Promise.reject(o(c))))}}}"use strict";function ui(e,t){if(!(e.navigator.mediaDevices&&"getDisplayMedia"in e.navigator.mediaDevices)&&!!e.navigator.mediaDevices){if(typeof t!="function"){console.error("shimGetDisplayMedia: getSourceId argument is not a function");return}e.navigator.mediaDevices.getDisplayMedia=function(r){return t(r).then(s=>{let o=r.video&&r.video.width,a=r.video&&r.video.height,l=r.video&&r.video.frameRate;return r.video={mandatory:{chromeMediaSource:"desktop",chromeMediaSourceId:s,maxFrameRate:l||3}},o&&(r.video.mandatory.maxWidth=o),a&&(r.video.mandatory.maxHeight=a),e.navigator.mediaDevices.getUserMedia(r)})}}}"use strict";function hi(e){e.MediaStream=e.MediaStream||e.webkitMediaStream}function pi(e){if(typeof e=="object"&&e.RTCPeerConnection&&!("ontrack"in e.RTCPeerConnection.prototype)){Object.defineProperty(e.RTCPeerConnection.prototype,"ontrack",{get(){return this._ontrack},set(i){this._ontrack&&this.removeEventListener("track",this._ontrack),this.addEventListener("track",this._ontrack=i)},enumerable:!0,configurable:!0});let t=e.RTCPeerConnection.prototype.setRemoteDescription;e.RTCPeerConnection.prototype.setRemoteDescription=function(){return this._ontrackpoly||(this._ontrackpoly=r=>{r.stream.addEventListener("addtrack",s=>{let o;e.RTCPeerConnection.prototype.getReceivers?o=this.getReceivers().find(l=>l.track&&l.track.id===s.track.id):o={track:s.track};let a=new Event("track");a.track=s.track,a.receiver=o,a.transceiver={receiver:o},a.streams=[r.stream],this.dispatchEvent(a)}),r.stream.getTracks().forEach(s=>{let o;e.RTCPeerConnection.prototype.getReceivers?o=this.getReceivers().find(l=>l.track&&l.track.id===s.id):o={track:s};let a=new Event("track");a.track=s,a.receiver=o,a.transceiver={receiver:o},a.streams=[r.stream],this.dispatchEvent(a)})},this.addEventListener("addstream",this._ontrackpoly)),t.apply(this,arguments)}}else ae(e,"track",t=>(t.transceiver||Object.defineProperty(t,"transceiver",{value:{receiver:t.receiver}}),t))}function mi(e){if(typeof e=="object"&&e.RTCPeerConnection&&!("getSenders"in e.RTCPeerConnection.prototype)&&"createDTMFSender"in e.RTCPeerConnection.prototype){let t=function(s,o){return{track:o,get dtmf(){return this._dtmf===void 0&&(o.kind==="audio"?this._dtmf=s.createDTMFSender(o):this._dtmf=null),this._dtmf},_pc:s}};if(!e.RTCPeerConnection.prototype.getSenders){e.RTCPeerConnection.prototype.getSenders=function(){return this._senders=this._senders||[],this._senders.slice()};let s=e.RTCPeerConnection.prototype.addTrack;e.RTCPeerConnection.prototype.addTrack=function(l,m){let h=s.apply(this,arguments);return h||(h=t(this,l),this._senders.push(h)),h};let o=e.RTCPeerConnection.prototype.removeTrack;e.RTCPeerConnection.prototype.removeTrack=function(l){o.apply(this,arguments);let m=this._senders.indexOf(l);m!==-1&&this._senders.splice(m,1)}}let i=e.RTCPeerConnection.prototype.addStream;e.RTCPeerConnection.prototype.addStream=function(o){this._senders=this._senders||[],i.apply(this,[o]),o.getTracks().forEach(a=>{this._senders.push(t(this,a))})};let r=e.RTCPeerConnection.prototype.removeStream;e.RTCPeerConnection.prototype.removeStream=function(o){this._senders=this._senders||[],r.apply(this,[o]),o.getTracks().forEach(a=>{let l=this._senders.find(m=>m.track===a);l&&this._senders.splice(this._senders.indexOf(l),1)})}}else if(typeof e=="object"&&e.RTCPeerConnection&&"getSenders"in e.RTCPeerConnection.prototype&&"createDTMFSender"in e.RTCPeerConnection.prototype&&e.RTCRtpSender&&!("dtmf"in e.RTCRtpSender.prototype)){let t=e.RTCPeerConnection.prototype.getSenders;e.RTCPeerConnection.prototype.getSenders=function(){let r=t.apply(this,[]);return r.forEach(s=>s._pc=this),r},Object.defineProperty(e.RTCRtpSender.prototype,"dtmf",{get(){return this._dtmf===void 0&&(this.track.kind==="audio"?this._dtmf=this._pc.createDTMFSender(this.track):this._dtmf=null),this._dtmf}})}}function fi(e){if(!e.RTCPeerConnection)return;let t=e.RTCPeerConnection.prototype.getStats;e.RTCPeerConnection.prototype.getStats=function(){let[r,s,o]=arguments;if(arguments.length>0&&typeof r=="function")return t.apply(this,arguments);if(t.length===0&&(arguments.length===0||typeof r!="function"))return t.apply(this,[]);let a=function(m){let h={};return m.result().forEach(p=>{let u={id:p.id,timestamp:p.timestamp,type:{localcandidate:"local-candidate",remotecandidate:"remote-candidate"}[p.type]||p.type};p.names().forEach(v=>{u[v]=p.stat(v)}),h[u.id]=u}),h},l=function(m){return new Map(Object.keys(m).map(h=>[h,m[h]]))};if(arguments.length>=2){let m=function(h){s(l(a(h)))};return t.apply(this,[m,r])}return new Promise((m,h)=>{t.apply(this,[function(c){m(l(a(c)))},h])}).then(s,o)}}function gi(e){if(!(typeof e=="object"&&e.RTCPeerConnection&&e.RTCRtpSender&&e.RTCRtpReceiver))return;if(!("getStats"in e.RTCRtpSender.prototype)){let i=e.RTCPeerConnection.prototype.getSenders;i&&(e.RTCPeerConnection.prototype.getSenders=function(){let o=i.apply(this,[]);return o.forEach(a=>a._pc=this),o});let r=e.RTCPeerConnection.prototype.addTrack;r&&(e.RTCPeerConnection.prototype.addTrack=function(){let o=r.apply(this,arguments);return o._pc=this,o}),e.RTCRtpSender.prototype.getStats=function(){let o=this;return this._pc.getStats().then(a=>Rt(a,o.track,!0))}}if(!("getStats"in e.RTCRtpReceiver.prototype)){let i=e.RTCPeerConnection.prototype.getReceivers;i&&(e.RTCPeerConnection.prototype.getReceivers=function(){let s=i.apply(this,[]);return s.forEach(o=>o._pc=this),s}),ae(e,"track",r=>(r.receiver._pc=r.srcElement,r)),e.RTCRtpReceiver.prototype.getStats=function(){let s=this;return this._pc.getStats().then(o=>Rt(o,s.track,!1))}}if(!("getStats"in e.RTCRtpSender.prototype&&"getStats"in e.RTCRtpReceiver.prototype))return;let t=e.RTCPeerConnection.prototype.getStats;e.RTCPeerConnection.prototype.getStats=function(){if(arguments.length>0&&arguments[0]instanceof e.MediaStreamTrack){let r=arguments[0],s,o,a;return this.getSenders().forEach(l=>{l.track===r&&(s?a=!0:s=l)}),this.getReceivers().forEach(l=>(l.track===r&&(o?a=!0:o=l),l.track===r)),a||s&&o?Promise.reject(new DOMException("There are more than one sender or receiver for the track.","InvalidAccessError")):s?s.getStats():o?o.getStats():Promise.reject(new DOMException("There is no sender or receiver for the track.","InvalidAccessError"))}return t.apply(this,arguments)}}function vi(e){e.RTCPeerConnection.prototype.getLocalStreams=function(){return this._shimmedLocalStreams=this._shimmedLocalStreams||{},Object.keys(this._shimmedLocalStreams).map(a=>this._shimmedLocalStreams[a][0])};let t=e.RTCPeerConnection.prototype.addTrack;e.RTCPeerConnection.prototype.addTrack=function(a,l){if(!l)return t.apply(this,arguments);this._shimmedLocalStreams=this._shimmedLocalStreams||{};let m=t.apply(this,arguments);return this._shimmedLocalStreams[l.id]?this._shimmedLocalStreams[l.id].indexOf(m)===-1&&this._shimmedLocalStreams[l.id].push(m):this._shimmedLocalStreams[l.id]=[l,m],m};let i=e.RTCPeerConnection.prototype.addStream;e.RTCPeerConnection.prototype.addStream=function(a){this._shimmedLocalStreams=this._shimmedLocalStreams||{},a.getTracks().forEach(h=>{if(this.getSenders().find(p=>p.track===h))throw new DOMException("Track already exists.","InvalidAccessError")});let l=this.getSenders();i.apply(this,arguments);let m=this.getSenders().filter(h=>l.indexOf(h)===-1);this._shimmedLocalStreams[a.id]=[a].concat(m)};let r=e.RTCPeerConnection.prototype.removeStream;e.RTCPeerConnection.prototype.removeStream=function(a){return this._shimmedLocalStreams=this._shimmedLocalStreams||{},delete this._shimmedLocalStreams[a.id],r.apply(this,arguments)};let s=e.RTCPeerConnection.prototype.removeTrack;e.RTCPeerConnection.prototype.removeTrack=function(a){return this._shimmedLocalStreams=this._shimmedLocalStreams||{},a&&Object.keys(this._shimmedLocalStreams).forEach(l=>{let m=this._shimmedLocalStreams[l].indexOf(a);m!==-1&&this._shimmedLocalStreams[l].splice(m,1),this._shimmedLocalStreams[l].length===1&&delete this._shimmedLocalStreams[l]}),s.apply(this,arguments)}}function Ti(e,t){if(!e.RTCPeerConnection)return;if(e.RTCPeerConnection.prototype.addTrack&&t.version>=65)return vi(e);let i=e.RTCPeerConnection.prototype.getLocalStreams;e.RTCPeerConnection.prototype.getLocalStreams=function(){let c=i.apply(this);return this._reverseStreams=this._reverseStreams||{},c.map(p=>this._reverseStreams[p.id])};let r=e.RTCPeerConnection.prototype.addStream;e.RTCPeerConnection.prototype.addStream=function(c){if(this._streams=this._streams||{},this._reverseStreams=this._reverseStreams||{},c.getTracks().forEach(p=>{if(this.getSenders().find(v=>v.track===p))throw new DOMException("Track already exists.","InvalidAccessError")}),!this._reverseStreams[c.id]){let p=new e.MediaStream(c.getTracks());this._streams[c.id]=p,this._reverseStreams[p.id]=c,c=p}r.apply(this,[c])};let s=e.RTCPeerConnection.prototype.removeStream;e.RTCPeerConnection.prototype.removeStream=function(c){this._streams=this._streams||{},this._reverseStreams=this._reverseStreams||{},s.apply(this,[this._streams[c.id]||c]),delete this._reverseStreams[this._streams[c.id]?this._streams[c.id].id:c.id],delete this._streams[c.id]},e.RTCPeerConnection.prototype.addTrack=function(c,p){if(this.signalingState==="closed")throw new DOMException("The RTCPeerConnection's signalingState is 'closed'.","InvalidStateError");let u=[].slice.call(arguments,1);if(u.length!==1||!u[0].getTracks().find(A=>A===c))throw new DOMException("The adapter.js addTrack polyfill only supports a single stream which is associated with the specified track.","NotSupportedError");if(this.getSenders().find(A=>A.track===c))throw new DOMException("Track already exists.","InvalidAccessError");this._streams=this._streams||{},this._reverseStreams=this._reverseStreams||{};let E=this._streams[p.id];if(E)E.addTrack(c),Promise.resolve().then(()=>{this.dispatchEvent(new Event("negotiationneeded"))});else{let A=new e.MediaStream([c]);this._streams[p.id]=A,this._reverseStreams[A.id]=p,this.addStream(A)}return this.getSenders().find(A=>A.track===c)};function o(h,c){let p=c.sdp;return Object.keys(h._reverseStreams||[]).forEach(u=>{let v=h._reverseStreams[u],E=h._streams[v.id];p=p.replace(new RegExp(E.id,"g"),v.id)}),new RTCSessionDescription({type:c.type,sdp:p})}function a(h,c){let p=c.sdp;return Object.keys(h._reverseStreams||[]).forEach(u=>{let v=h._reverseStreams[u],E=h._streams[v.id];p=p.replace(new RegExp(v.id,"g"),E.id)}),new RTCSessionDescription({type:c.type,sdp:p})}["createOffer","createAnswer"].forEach(function(h){let c=e.RTCPeerConnection.prototype[h],p={[h](){let u=arguments;return arguments.length&&typeof arguments[0]=="function"?c.apply(this,[E=>{let A=o(this,E);u[0].apply(null,[A])},E=>{u[1]&&u[1].apply(null,E)},arguments[2]]):c.apply(this,arguments).then(E=>o(this,E))}};e.RTCPeerConnection.prototype[h]=p[h]});let l=e.RTCPeerConnection.prototype.setLocalDescription;e.RTCPeerConnection.prototype.setLocalDescription=function(){return!arguments.length||!arguments[0].type?l.apply(this,arguments):(arguments[0]=a(this,arguments[0]),l.apply(this,arguments))};let m=Object.getOwnPropertyDescriptor(e.RTCPeerConnection.prototype,"localDescription");Object.defineProperty(e.RTCPeerConnection.prototype,"localDescription",{get(){let h=m.get.apply(this);return h.type===""?h:o(this,h)}}),e.RTCPeerConnection.prototype.removeTrack=function(c){if(this.signalingState==="closed")throw new DOMException("The RTCPeerConnection's signalingState is 'closed'.","InvalidStateError");if(!c._pc)throw new DOMException("Argument 1 of RTCPeerConnection.removeTrack does not implement interface RTCRtpSender.","TypeError");if(!(c._pc===this))throw new DOMException("Sender was not created by this connection.","InvalidAccessError");this._streams=this._streams||{};let u;Object.keys(this._streams).forEach(v=>{this._streams[v].getTracks().find(A=>c.track===A)&&(u=this._streams[v])}),u&&(u.getTracks().length===1?this.removeStream(this._reverseStreams[u.id]):u.removeTrack(c.track),this.dispatchEvent(new Event("negotiationneeded")))}}function It(e,t){!e.RTCPeerConnection&&e.webkitRTCPeerConnection&&(e.RTCPeerConnection=e.webkitRTCPeerConnection),!!e.RTCPeerConnection&&t.version<53&&["setLocalDescription","setRemoteDescription","addIceCandidate"].forEach(function(i){let r=e.RTCPeerConnection.prototype[i],s={[i](){return arguments[0]=new(i==="addIceCandidate"?e.RTCIceCandidate:e.RTCSessionDescription)(arguments[0]),r.apply(this,arguments)}};e.RTCPeerConnection.prototype[i]=s[i]})}function Si(e,t){ae(e,"negotiationneeded",i=>{let r=i.target;if(!((t.version<72||r.getConfiguration&&r.getConfiguration().sdpSemantics==="plan-b")&&r.signalingState!=="stable"))return i})}var rt={};Fe(rt,{shimAddTransceiver:()=>Ri,shimCreateAnswer:()=>_i,shimCreateOffer:()=>Ii,shimGetDisplayMedia:()=>Ei,shimGetParameters:()=>Ai,shimGetUserMedia:()=>_t,shimOnTrack:()=>yi,shimPeerConnection:()=>Dt,shimRTCDataChannel:()=>Pi,shimReceiverGetStats:()=>Ci,shimRemoveStream:()=>bi,shimSenderGetStats:()=>ki});"use strict";function _t(e,t){let i=e&&e.navigator,r=e&&e.MediaStreamTrack;if(i.getUserMedia=function(s,o,a){Ie("navigator.getUserMedia","navigator.mediaDevices.getUserMedia"),i.mediaDevices.getUserMedia(s).then(o,a)},!(t.version>55&&"autoGainControl"in i.mediaDevices.getSupportedConstraints())){let s=function(a,l,m){l in a&&!(m in a)&&(a[m]=a[l],delete a[l])},o=i.mediaDevices.getUserMedia.bind(i.mediaDevices);if(i.mediaDevices.getUserMedia=function(a){return typeof a=="object"&&typeof a.audio=="object"&&(a=JSON.parse(JSON.stringify(a)),s(a.audio,"autoGainControl","mozAutoGainControl"),s(a.audio,"noiseSuppression","mozNoiseSuppression")),o(a)},r&&r.prototype.getSettings){let a=r.prototype.getSettings;r.prototype.getSettings=function(){let l=a.apply(this,arguments);return s(l,"mozAutoGainControl","autoGainControl"),s(l,"mozNoiseSuppression","noiseSuppression"),l}}if(r&&r.prototype.applyConstraints){let a=r.prototype.applyConstraints;r.prototype.applyConstraints=function(l){return this.kind==="audio"&&typeof l=="object"&&(l=JSON.parse(JSON.stringify(l)),s(l,"autoGainControl","mozAutoGainControl"),s(l,"noiseSuppression","mozNoiseSuppression")),a.apply(this,[l])}}}}"use strict";function Ei(e,t){e.navigator.mediaDevices&&"getDisplayMedia"in e.navigator.mediaDevices||!e.navigator.mediaDevices||(e.navigator.mediaDevices.getDisplayMedia=function(r){if(!(r&&r.video)){let s=new DOMException("getDisplayMedia without video constraints is undefined");return s.name="NotFoundError",s.code=8,Promise.reject(s)}return r.video===!0?r.video={mediaSource:t}:r.video.mediaSource=t,e.navigator.mediaDevices.getUserMedia(r)})}"use strict";function yi(e){typeof e=="object"&&e.RTCTrackEvent&&"receiver"in e.RTCTrackEvent.prototype&&!("transceiver"in e.RTCTrackEvent.prototype)&&Object.defineProperty(e.RTCTrackEvent.prototype,"transceiver",{get(){return{receiver:this.receiver}}})}function Dt(e,t){if(typeof e!="object"||!(e.RTCPeerConnection||e.mozRTCPeerConnection))return;!e.RTCPeerConnection&&e.mozRTCPeerConnection&&(e.RTCPeerConnection=e.mozRTCPeerConnection),t.version<53&&["setLocalDescription","setRemoteDescription","addIceCandidate"].forEach(function(s){let o=e.RTCPeerConnection.prototype[s],a={[s](){return arguments[0]=new(s==="addIceCandidate"?e.RTCIceCandidate:e.RTCSessionDescription)(arguments[0]),o.apply(this,arguments)}};e.RTCPeerConnection.prototype[s]=a[s]});let i={inboundrtp:"inbound-rtp",outboundrtp:"outbound-rtp",candidatepair:"candidate-pair",localcandidate:"local-candidate",remotecandidate:"remote-candidate"},r=e.RTCPeerConnection.prototype.getStats;e.RTCPeerConnection.prototype.getStats=function(){let[o,a,l]=arguments;return r.apply(this,[o||null]).then(m=>{if(t.version<53&&!a)try{m.forEach(h=>{h.type=i[h.type]||h.type})}catch(h){if(h.name!=="TypeError")throw h;m.forEach((c,p)=>{m.set(p,Object.assign({},c,{type:i[c.type]||c.type}))})}return m}).then(a,l)}}function ki(e){if(!(typeof e=="object"&&e.RTCPeerConnection&&e.RTCRtpSender)||e.RTCRtpSender&&"getStats"in e.RTCRtpSender.prototype)return;let t=e.RTCPeerConnection.prototype.getSenders;t&&(e.RTCPeerConnection.prototype.getSenders=function(){let s=t.apply(this,[]);return s.forEach(o=>o._pc=this),s});let i=e.RTCPeerConnection.prototype.addTrack;i&&(e.RTCPeerConnection.prototype.addTrack=function(){let s=i.apply(this,arguments);return s._pc=this,s}),e.RTCRtpSender.prototype.getStats=function(){return this.track?this._pc.getStats(this.track):Promise.resolve(new Map)}}function Ci(e){if(!(typeof e=="object"&&e.RTCPeerConnection&&e.RTCRtpSender)||e.RTCRtpSender&&"getStats"in e.RTCRtpReceiver.prototype)return;let t=e.RTCPeerConnection.prototype.getReceivers;t&&(e.RTCPeerConnection.prototype.getReceivers=function(){let r=t.apply(this,[]);return r.forEach(s=>s._pc=this),r}),ae(e,"track",i=>(i.receiver._pc=i.srcElement,i)),e.RTCRtpReceiver.prototype.getStats=function(){return this._pc.getStats(this.track)}}function bi(e){!e.RTCPeerConnection||"removeStream"in e.RTCPeerConnection.prototype||(e.RTCPeerConnection.prototype.removeStream=function(i){Ie("removeStream","removeTrack"),this.getSenders().forEach(r=>{r.track&&i.getTracks().includes(r.track)&&this.removeTrack(r)})})}function Pi(e){e.DataChannel&&!e.RTCDataChannel&&(e.RTCDataChannel=e.DataChannel)}function Ri(e){if(!(typeof e=="object"&&e.RTCPeerConnection))return;let t=e.RTCPeerConnection.prototype.addTransceiver;t&&(e.RTCPeerConnection.prototype.addTransceiver=function(){this.setParametersPromises=[];let r=arguments[1],s=r&&"sendEncodings"in r;s&&r.sendEncodings.forEach(a=>{if("rid"in a&&!/^[a-z0-9]{0,16}$/i.test(a.rid))throw new TypeError("Invalid RID value provided.");if("scaleResolutionDownBy"in a&&!(parseFloat(a.scaleResolutionDownBy)>=1))throw new RangeError("scale_resolution_down_by must be >= 1.0");if("maxFramerate"in a&&!(parseFloat(a.maxFramerate)>=0))throw new RangeError("max_framerate must be >= 0.0")});let o=t.apply(this,arguments);if(s){let{sender:a}=o,l=a.getParameters();(!("encodings"in l)||l.encodings.length===1&&Object.keys(l.encodings[0]).length===0)&&(l.encodings=r.sendEncodings,a.sendEncodings=r.sendEncodings,this.setParametersPromises.push(a.setParameters(l).then(()=>{delete a.sendEncodings}).catch(()=>{delete a.sendEncodings})))}return o})}function Ai(e){if(!(typeof e=="object"&&e.RTCRtpSender))return;let t=e.RTCRtpSender.prototype.getParameters;t&&(e.RTCRtpSender.prototype.getParameters=function(){let r=t.apply(this,arguments);return"encodings"in r||(r.encodings=[].concat(this.sendEncodings||[{}])),r})}function Ii(e){if(!(typeof e=="object"&&e.RTCPeerConnection))return;let t=e.RTCPeerConnection.prototype.createOffer;e.RTCPeerConnection.prototype.createOffer=function(){return this.setParametersPromises&&this.setParametersPromises.length?Promise.all(this.setParametersPromises).then(()=>t.apply(this,arguments)).finally(()=>{this.setParametersPromises=[]}):t.apply(this,arguments)}}function _i(e){if(!(typeof e=="object"&&e.RTCPeerConnection))return;let t=e.RTCPeerConnection.prototype.createAnswer;e.RTCPeerConnection.prototype.createAnswer=function(){return this.setParametersPromises&&this.setParametersPromises.length?Promise.all(this.setParametersPromises).then(()=>t.apply(this,arguments)).finally(()=>{this.setParametersPromises=[]}):t.apply(this,arguments)}}var st={};Fe(st,{shimAudioContext:()=>Gi,shimCallbacksAPI:()=>wi,shimConstraints:()=>Oi,shimCreateOfferLegacy:()=>Ui,shimGetUserMedia:()=>Li,shimLocalStreamsAPI:()=>Di,shimRTCIceServerUrls:()=>Ni,shimRemoteStreamsAPI:()=>Mi,shimTrackEventTransceiver:()=>xi});"use strict";function Di(e){if(!(typeof e!="object"||!e.RTCPeerConnection)){if("getLocalStreams"in e.RTCPeerConnection.prototype||(e.RTCPeerConnection.prototype.getLocalStreams=function(){return this._localStreams||(this._localStreams=[]),this._localStreams}),!("addStream"in e.RTCPeerConnection.prototype)){let t=e.RTCPeerConnection.prototype.addTrack;e.RTCPeerConnection.prototype.addStream=function(r){this._localStreams||(this._localStreams=[]),this._localStreams.includes(r)||this._localStreams.push(r),r.getAudioTracks().forEach(s=>t.call(this,s,r)),r.getVideoTracks().forEach(s=>t.call(this,s,r))},e.RTCPeerConnection.prototype.addTrack=function(r,...s){return s&&s.forEach(o=>{this._localStreams?this._localStreams.includes(o)||this._localStreams.push(o):this._localStreams=[o]}),t.apply(this,arguments)}}"removeStream"in e.RTCPeerConnection.prototype||(e.RTCPeerConnection.prototype.removeStream=function(i){this._localStreams||(this._localStreams=[]);let r=this._localStreams.indexOf(i);if(r===-1)return;this._localStreams.splice(r,1);let s=i.getTracks();this.getSenders().forEach(o=>{s.includes(o.track)&&this.removeTrack(o)})})}}function Mi(e){if(!(typeof e!="object"||!e.RTCPeerConnection)&&("getRemoteStreams"in e.RTCPeerConnection.prototype||(e.RTCPeerConnection.prototype.getRemoteStreams=function(){return this._remoteStreams?this._remoteStreams:[]}),!("onaddstream"in e.RTCPeerConnection.prototype))){Object.defineProperty(e.RTCPeerConnection.prototype,"onaddstream",{get(){return this._onaddstream},set(i){this._onaddstream&&(this.removeEventListener("addstream",this._onaddstream),this.removeEventListener("track",this._onaddstreampoly)),this.addEventListener("addstream",this._onaddstream=i),this.addEventListener("track",this._onaddstreampoly=r=>{r.streams.forEach(s=>{if(this._remoteStreams||(this._remoteStreams=[]),this._remoteStreams.includes(s))return;this._remoteStreams.push(s);let o=new Event("addstream");o.stream=s,this.dispatchEvent(o)})})}});let t=e.RTCPeerConnection.prototype.setRemoteDescription;e.RTCPeerConnection.prototype.setRemoteDescription=function(){let r=this;return this._onaddstreampoly||this.addEventListener("track",this._onaddstreampoly=function(s){s.streams.forEach(o=>{if(r._remoteStreams||(r._remoteStreams=[]),r._remoteStreams.indexOf(o)>=0)return;r._remoteStreams.push(o);let a=new Event("addstream");a.stream=o,r.dispatchEvent(a)})}),t.apply(r,arguments)}}}function wi(e){if(typeof e!="object"||!e.RTCPeerConnection)return;let t=e.RTCPeerConnection.prototype,i=t.createOffer,r=t.createAnswer,s=t.setLocalDescription,o=t.setRemoteDescription,a=t.addIceCandidate;t.createOffer=function(h,c){let p=arguments.length>=2?arguments[2]:arguments[0],u=i.apply(this,[p]);return c?(u.then(h,c),Promise.resolve()):u},t.createAnswer=function(h,c){let p=arguments.length>=2?arguments[2]:arguments[0],u=r.apply(this,[p]);return c?(u.then(h,c),Promise.resolve()):u};let l=function(m,h,c){let p=s.apply(this,[m]);return c?(p.then(h,c),Promise.resolve()):p};t.setLocalDescription=l,l=function(m,h,c){let p=o.apply(this,[m]);return c?(p.then(h,c),Promise.resolve()):p},t.setRemoteDescription=l,l=function(m,h,c){let p=a.apply(this,[m]);return c?(p.then(h,c),Promise.resolve()):p},t.addIceCandidate=l}function Li(e){let t=e&&e.navigator;if(t.mediaDevices&&t.mediaDevices.getUserMedia){let i=t.mediaDevices,r=i.getUserMedia.bind(i);t.mediaDevices.getUserMedia=s=>r(Oi(s))}!t.getUserMedia&&t.mediaDevices&&t.mediaDevices.getUserMedia&&(t.getUserMedia=function(r,s,o){t.mediaDevices.getUserMedia(r).then(s,o)}.bind(t))}function Oi(e){return e&&e.video!==void 0?Object.assign({},e,{video:bt(e.video)}):e}function Ni(e){if(!e.RTCPeerConnection)return;let t=e.RTCPeerConnection;e.RTCPeerConnection=function(r,s){if(r&&r.iceServers){let o=[];for(let a=0;a<r.iceServers.length;a++){let l=r.iceServers[a];!l.hasOwnProperty("urls")&&l.hasOwnProperty("url")?(Ie("RTCIceServer.url","RTCIceServer.urls"),l=JSON.parse(JSON.stringify(l)),l.urls=l.url,delete l.url,o.push(l)):o.push(r.iceServers[a])}r.iceServers=o}return new t(r,s)},e.RTCPeerConnection.prototype=t.prototype,"generateCertificate"in t&&Object.defineProperty(e.RTCPeerConnection,"generateCertificate",{get(){return t.generateCertificate}})}function xi(e){typeof e=="object"&&e.RTCTrackEvent&&"receiver"in e.RTCTrackEvent.prototype&&!("transceiver"in e.RTCTrackEvent.prototype)&&Object.defineProperty(e.RTCTrackEvent.prototype,"transceiver",{get(){return{receiver:this.receiver}}})}function Ui(e){let t=e.RTCPeerConnection.prototype.createOffer;e.RTCPeerConnection.prototype.createOffer=function(r){if(r){typeof r.offerToReceiveAudio!="undefined"&&(r.offerToReceiveAudio=!!r.offerToReceiveAudio);let s=this.getTransceivers().find(a=>a.receiver.track.kind==="audio");r.offerToReceiveAudio===!1&&s?s.direction==="sendrecv"?s.setDirection?s.setDirection("sendonly"):s.direction="sendonly":s.direction==="recvonly"&&(s.setDirection?s.setDirection("inactive"):s.direction="inactive"):r.offerToReceiveAudio===!0&&!s&&this.addTransceiver("audio"),typeof r.offerToReceiveVideo!="undefined"&&(r.offerToReceiveVideo=!!r.offerToReceiveVideo);let o=this.getTransceivers().find(a=>a.receiver.track.kind==="video");r.offerToReceiveVideo===!1&&o?o.direction==="sendrecv"?o.setDirection?o.setDirection("sendonly"):o.direction="sendonly":o.direction==="recvonly"&&(o.setDirection?o.setDirection("inactive"):o.direction="inactive"):r.offerToReceiveVideo===!0&&!o&&this.addTransceiver("video")}return t.apply(this,arguments)}}function Gi(e){typeof e!="object"||e.AudioContext||(e.AudioContext=e.webkitAudioContext)}var Nt={};Fe(Nt,{removeExtmapAllowMixed:()=>Ot,shimAddIceCandidateNullOrEmpty:()=>ct,shimConnectionState:()=>Lt,shimMaxMessageSize:()=>at,shimParameterlessSetLocalDescription:()=>lt,shimRTCIceCandidate:()=>nt,shimSendThrowTypeError:()=>ot});var je=U(wt());"use strict";function nt(e){if(!e.RTCIceCandidate||e.RTCIceCandidate&&"foundation"in e.RTCIceCandidate.prototype)return;let t=e.RTCIceCandidate;e.RTCIceCandidate=function(r){if(typeof r=="object"&&r.candidate&&r.candidate.indexOf("a=")===0&&(r=JSON.parse(JSON.stringify(r)),r.candidate=r.candidate.substr(2)),r.candidate&&r.candidate.length){let s=new t(r),o=je.default.parseCandidate(r.candidate),a=Object.assign(s,o);return a.toJSON=function(){return{candidate:a.candidate,sdpMid:a.sdpMid,sdpMLineIndex:a.sdpMLineIndex,usernameFragment:a.usernameFragment}},a}return new t(r)},e.RTCIceCandidate.prototype=t.prototype,ae(e,"icecandidate",i=>(i.candidate&&Object.defineProperty(i,"candidate",{value:new e.RTCIceCandidate(i.candidate),writable:"false"}),i))}function at(e,t){if(!e.RTCPeerConnection)return;"sctp"in e.RTCPeerConnection.prototype||Object.defineProperty(e.RTCPeerConnection.prototype,"sctp",{get(){return typeof this._sctp=="undefined"?null:this._sctp}});let i=function(l){if(!l||!l.sdp)return!1;let m=je.default.splitSections(l.sdp);return m.shift(),m.some(h=>{let c=je.default.parseMLine(h);return c&&c.kind==="application"&&c.protocol.indexOf("SCTP")!==-1})},r=function(l){let m=l.sdp.match(/mozilla...THIS_IS_SDPARTA-(\d+)/);if(m===null||m.length<2)return-1;let h=parseInt(m[1],10);return h!==h?-1:h},s=function(l){let m=65536;return t.browser==="firefox"&&(t.version<57?l===-1?m=16384:m=2147483637:t.version<60?m=t.version===57?65535:65536:m=2147483637),m},o=function(l,m){let h=65536;t.browser==="firefox"&&t.version===57&&(h=65535);let c=je.default.matchPrefix(l.sdp,"a=max-message-size:");return c.length>0?h=parseInt(c[0].substr(19),10):t.browser==="firefox"&&m!==-1&&(h=2147483637),h},a=e.RTCPeerConnection.prototype.setRemoteDescription;e.RTCPeerConnection.prototype.setRemoteDescription=function(){if(this._sctp=null,t.browser==="chrome"&&t.version>=76){let{sdpSemantics:m}=this.getConfiguration();m==="plan-b"&&Object.defineProperty(this,"sctp",{get(){return typeof this._sctp=="undefined"?null:this._sctp},enumerable:!0,configurable:!0})}if(i(arguments[0])){let m=r(arguments[0]),h=s(m),c=o(arguments[0],m),p;h===0&&c===0?p=Number.POSITIVE_INFINITY:h===0||c===0?p=Math.max(h,c):p=Math.min(h,c);let u={};Object.defineProperty(u,"maxMessageSize",{get(){return p}}),this._sctp=u}return a.apply(this,arguments)}}function ot(e){if(!(e.RTCPeerConnection&&"createDataChannel"in e.RTCPeerConnection.prototype))return;function t(r,s){let o=r.send;r.send=function(){let l=arguments[0],m=l.length||l.size||l.byteLength;if(r.readyState==="open"&&s.sctp&&m>s.sctp.maxMessageSize)throw new TypeError("Message too large (can send a maximum of "+s.sctp.maxMessageSize+" bytes)");return o.apply(r,arguments)}}let i=e.RTCPeerConnection.prototype.createDataChannel;e.RTCPeerConnection.prototype.createDataChannel=function(){let s=i.apply(this,arguments);return t(s,this),s},ae(e,"datachannel",r=>(t(r.channel,r.target),r))}function Lt(e){if(!e.RTCPeerConnection||"connectionState"in e.RTCPeerConnection.prototype)return;let t=e.RTCPeerConnection.prototype;Object.defineProperty(t,"connectionState",{get(){return{completed:"connected",checking:"connecting"}[this.iceConnectionState]||this.iceConnectionState},enumerable:!0,configurable:!0}),Object.defineProperty(t,"onconnectionstatechange",{get(){return this._onconnectionstatechange||null},set(i){this._onconnectionstatechange&&(this.removeEventListener("connectionstatechange",this._onconnectionstatechange),delete this._onconnectionstatechange),i&&this.addEventListener("connectionstatechange",this._onconnectionstatechange=i)},enumerable:!0,configurable:!0}),["setLocalDescription","setRemoteDescription"].forEach(i=>{let r=t[i];t[i]=function(){return this._connectionstatechangepoly||(this._connectionstatechangepoly=s=>{let o=s.target;if(o._lastConnectionState!==o.connectionState){o._lastConnectionState=o.connectionState;let a=new Event("connectionstatechange",s);o.dispatchEvent(a)}return s},this.addEventListener("iceconnectionstatechange",this._connectionstatechangepoly)),r.apply(this,arguments)}})}function Ot(e,t){if(!e.RTCPeerConnection||t.browser==="chrome"&&t.version>=71||t.browser==="safari"&&t.version>=605)return;let i=e.RTCPeerConnection.prototype.setRemoteDescription;e.RTCPeerConnection.prototype.setRemoteDescription=function(s){if(s&&s.sdp&&s.sdp.indexOf(`
35
- a=extmap-allow-mixed`)!==-1){let o=s.sdp.split(`
36
- `).filter(a=>a.trim()!=="a=extmap-allow-mixed").join(`
37
- `);e.RTCSessionDescription&&s instanceof e.RTCSessionDescription?arguments[0]=new e.RTCSessionDescription({type:s.type,sdp:o}):s.sdp=o}return i.apply(this,arguments)}}function ct(e,t){if(!(e.RTCPeerConnection&&e.RTCPeerConnection.prototype))return;let i=e.RTCPeerConnection.prototype.addIceCandidate;!i||i.length===0||(e.RTCPeerConnection.prototype.addIceCandidate=function(){return arguments[0]?(t.browser==="chrome"&&t.version<78||t.browser==="firefox"&&t.version<68||t.browser==="safari")&&arguments[0]&&arguments[0].candidate===""?Promise.resolve():i.apply(this,arguments):(arguments[1]&&arguments[1].apply(null),Promise.resolve())})}function lt(e,t){if(!(e.RTCPeerConnection&&e.RTCPeerConnection.prototype))return;let i=e.RTCPeerConnection.prototype.setLocalDescription;!i||i.length===0||(e.RTCPeerConnection.prototype.setLocalDescription=function(){let s=arguments[0]||{};if(typeof s!="object"||s.type&&s.sdp)return i.apply(this,arguments);if(s={type:s.type,sdp:s.sdp},!s.type)switch(this.signalingState){case"stable":case"have-local-offer":case"have-remote-pranswer":s.type="offer";break;default:s.type="answer";break}return s.sdp||s.type!=="offer"&&s.type!=="answer"?i.apply(this,[s]):(s.type==="offer"?this.createOffer:this.createAnswer).apply(this).then(a=>i.apply(this,[a]))})}var Qr=U(wt());function Fi({window:e}={},t={shimChrome:!0,shimFirefox:!0,shimSafari:!0}){let i=tt,r=ci(e),s={browserDetails:r,commonShim:Nt,extractVersion:He,disableLog:ai,disableWarnings:oi,sdp:Qr};switch(r.browser){case"chrome":if(!it||!It||!t.shimChrome)return i("Chrome shim is not included in this adapter release."),s;if(r.version===null)return i("Chrome shim can not determine version, not shimming."),s;i("adapter.js shimming chrome."),s.browserShim=it,ct(e,r),lt(e,r),At(e,r),hi(e,r),It(e,r),pi(e,r),Ti(e,r),mi(e,r),fi(e,r),gi(e,r),Si(e,r),nt(e,r),Lt(e,r),at(e,r),ot(e,r),Ot(e,r);break;case"firefox":if(!rt||!Dt||!t.shimFirefox)return i("Firefox shim is not included in this adapter release."),s;i("adapter.js shimming firefox."),s.browserShim=rt,ct(e,r),lt(e,r),_t(e,r),Dt(e,r),yi(e,r),bi(e,r),ki(e,r),Ci(e,r),Pi(e,r),Ri(e,r),Ai(e,r),Ii(e,r),_i(e,r),nt(e,r),Lt(e,r),at(e,r),ot(e,r);break;case"safari":if(!st||!t.shimSafari)return i("Safari shim is not included in this adapter release."),s;i("adapter.js shimming safari."),s.browserShim=st,ct(e,r),lt(e,r),Ni(e,r),Ui(e,r),wi(e,r),Di(e,r),Mi(e,r),xi(e,r),Li(e,r),Gi(e,r),nt(e,r),at(e,r),ot(e,r),Ot(e,r);break;default:i("Unsupported browser!");break}return s}"use strict";var Zr=Fi({window:typeof window=="undefined"?void 0:window}),dt=Zr;var nr=U(qi()),fr=U(zi());var ht,os=new Uint8Array(16);function Gt(){if(!ht&&(ht=typeof crypto!="undefined"&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto)||typeof msCrypto!="undefined"&&typeof msCrypto.getRandomValues=="function"&&msCrypto.getRandomValues.bind(msCrypto),!ht))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return ht(os)}var Ji=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;function cs(e){return typeof e=="string"&&Ji.test(e)}var Yi=cs;var Y=[];for(pt=0;pt<256;++pt)Y.push((pt+256).toString(16).substr(1));var pt;function ls(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,i=(Y[e[t+0]]+Y[e[t+1]]+Y[e[t+2]]+Y[e[t+3]]+"-"+Y[e[t+4]]+Y[e[t+5]]+"-"+Y[e[t+6]]+Y[e[t+7]]+"-"+Y[e[t+8]]+Y[e[t+9]]+"-"+Y[e[t+10]]+Y[e[t+11]]+Y[e[t+12]]+Y[e[t+13]]+Y[e[t+14]]+Y[e[t+15]]).toLowerCase();if(!Yi(i))throw TypeError("Stringified UUID is invalid");return i}var Qi=ls;function ds(e,t,i){e=e||{};var r=e.random||(e.rng||Gt)();if(r[6]=r[6]&15|64,r[8]=r[8]&63|128,t){i=i||0;for(var s=0;s<16;++s)t[i+s]=r[s];return t}return Qi(r)}var Ft=ds;var Es=U(Ke());var As=U(Ke());var Is=U(Ke()),_s=U(Ke()),us=Object.defineProperty,hs=Object.defineProperties,ps=Object.getOwnPropertyDescriptors,er=Object.getOwnPropertySymbols,ms=Object.prototype.hasOwnProperty,fs=Object.prototype.propertyIsEnumerable,tr=(e,t,i)=>t in e?us(e,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[t]=i,mt=(e,t)=>{for(var i in t||(t={}))ms.call(t,i)&&tr(e,i,t[i]);if(er)for(var i of er(t))fs.call(t,i)&&tr(e,i,t[i]);return e},ir=(e,t)=>hs(e,ps(t));var rr;(function(e){e[e.VERBOSE=0]="VERBOSE",e[e.DEBUG=1]="DEBUG",e[e.INFO=2]="INFO",e[e.WARN=3]="WARN",e[e.TIME=4]="TIME",e[e.TIMEEND=5]="TIMEEND",e[e.ERROR=6]="ERROR",e[e.NONE=7]="NONE"})(rr||(rr={}));var gs=typeof window!="undefined"&&typeof window.expect!="undefined",qe=class{static v(e,...t){this.log(0,e,...t)}static d(e,...t){this.log(1,e,...t)}static i(e,...t){this.log(2,e,...t)}static w(e,...t){this.log(3,e,...t)}static e(e,...t){this.log(6,e,...t)}static time(e){this.log(4,"[HMSPerformanceTiming]",e)}static timeEnd(e){this.log(5,"[HMSPerformanceTiming]",e,e)}static cleanUp(){performance.clearMarks(),performance.clearMeasures()}static log(e,t,...i){if(!(this.level.valueOf()>e.valueOf()))switch(e){case 0:{console.log(t,...i);break}case 1:{console.debug(t,...i);break}case 2:{console.info(t,...i);break}case 3:{console.warn(t,...i);break}case 6:{console.error(t,...i);break}case 4:{performance.mark(i[0]);break}case 5:{let r=i[0];try{let s=performance.measure(r,r);this.log(1,t,r,s==null?void 0:s.duration),performance.clearMarks(r),performance.clearMeasures(r)}catch(s){this.log(1,t,r,s)}break}}}};qe.level=gs?7:0;var sr;(function(e){e[e.Publish=0]="Publish",e[e.Subscribe=1]="Subscribe"})(sr||(sr={}));var ar;(function(e){e.NONE="NONE",e.TRACK="TRACK",e.INIT="INIT",e.PUBLISH="PUBLISH",e.UNPUBLISH="UNPUBLISH",e.JOIN="JOIN",e.SUBSCRIBE="SUBSCRIBE",e.DATA_CHANNEL_SEND="DATA_CHANNEL_SEND",e.RESTART_ICE="RESTART_ICE",e.VIDEO_PLUGINS="VIDEO_PLUGINS",e.AUDIO_PLUGINS="AUDIO_PLUGINS",e.AUTOPLAY="AUTOPLAY",e.RECONNECT_SIGNAL="RECONNECT_SIGNAL",e.VALIDATION="VALIDATION",e.PLAYLIST="PLAYLIST",e.PREVIEW="PREVIEW"})(ar||(ar={}));var vs=100;var or;(function(e){e[e.PEER_ADDED=0]="PEER_ADDED",e[e.PEER_REMOVED=1]="PEER_REMOVED",e[e.PEER_KNOCKED=2]="PEER_KNOCKED",e[e.ROOM_TYPE_CHANGED=3]="ROOM_TYPE_CHANGED",e[e.METADATA_UPDATED=4]="METADATA_UPDATED",e[e.SCREENSHARE_STARTED=5]="SCREENSHARE_STARTED",e[e.SCREENSHARE_STOPPED=6]="SCREENSHARE_STOPPED",e[e.DEFAULT_UPDATE=7]="DEFAULT_UPDATE",e[e.RECORDING_STATE_UPDATED=8]="RECORDING_STATE_UPDATED",e[e.BROWSER_RECORDING_STATE_UPDATED=9]="BROWSER_RECORDING_STATE_UPDATED",e[e.SERVER_RECORDING_STATE_UPDATED=10]="SERVER_RECORDING_STATE_UPDATED",e[e.RTMP_STREAMING_STATE_UPDATED=11]="RTMP_STREAMING_STATE_UPDATED",e[e.HLS_STREAMING_STATE_UPDATED=12]="HLS_STREAMING_STATE_UPDATED"})(or||(or={}));var cr;(function(e){e[e.PEER_JOINED=0]="PEER_JOINED",e[e.PEER_LEFT=1]="PEER_LEFT",e[e.AUDIO_TOGGLED=2]="AUDIO_TOGGLED",e[e.VIDEO_TOGGLED=3]="VIDEO_TOGGLED",e[e.BECAME_DOMINANT_SPEAKER=4]="BECAME_DOMINANT_SPEAKER",e[e.RESIGNED_DOMINANT_SPEAKER=5]="RESIGNED_DOMINANT_SPEAKER",e[e.STARTED_SPEAKING=6]="STARTED_SPEAKING",e[e.STOPPED_SPEAKING=7]="STOPPED_SPEAKING",e[e.ROLE_UPDATED=8]="ROLE_UPDATED",e[e.PEER_LIST=9]="PEER_LIST",e[e.NAME_UPDATED=10]="NAME_UPDATED",e[e.METADATA_UPDATED=11]="METADATA_UPDATED"})(cr||(cr={}));var lr;(function(e){e[e.TRACK_ADDED=0]="TRACK_ADDED",e[e.TRACK_REMOVED=1]="TRACK_REMOVED",e[e.TRACK_MUTED=2]="TRACK_MUTED",e[e.TRACK_UNMUTED=3]="TRACK_UNMUTED",e[e.TRACK_DESCRIPTION_CHANGED=4]="TRACK_DESCRIPTION_CHANGED",e[e.TRACK_DEGRADED=5]="TRACK_DEGRADED",e[e.TRACK_RESTORED=6]="TRACK_RESTORED"})(lr||(lr={}));var dr;(function(e){e[e.DEFAULT=0]="DEFAULT"})(dr||(dr={}));var ze;(function(e){e.NONE="none",e.LOW="low",e.MEDIUM="medium",e.HIGH="high"})(ze||(ze={}));var On={f:ze.HIGH,h:ze.MEDIUM,q:ze.LOW},ur;(function(e){e.VP8="vp8",e.VP9="vp9",e.H264="h264"})(ur||(ur={}));var hr;(function(e){e.OPUS="opus"})(hr||(hr={}));var pr;(function(e){e.audio="audio",e.video="video"})(pr||(pr={}));var mr;(function(e){e.AUDIO="audio",e.VIDEO="video"})(mr||(mr={}));var Vt="0.1.42-alpha.3",ft=new fr.UAParser,gr,vr=typeof window=="undefined"&&!((gr=ft.getBrowser().name)==null?void 0:gr.toLowerCase().includes("electron")),gt=typeof window!="undefined",Ts=()=>!vr,Nn=Ts();function Ss(){if(vr)return`hmsclient/${Vt}`;let e=ft.getDevice(),t=ft.getBrowser(),i=ft.getOS();return e.type?`hmsclient/${Vt} ${i.name}/${i.version} (${e.vendor}_${e.type}_/_${t.name}_${t.version})`:`hmsclient/${Vt} ${i.name}/${i.version} (${t.name}_${t.version})`}var xn=Ss();var Tr;(function(e){e.JOIN="join",e.OFFER="offer",e.ANSWER="answer",e.TRICKLE="trickle",e.TRACK_UPDATE="track-update",e.BROADCAST="broadcast",e.ANALYTICS="analytics",e.SERVER_ERROR="on-error",e.SERVER_WARNING="on-warning",e.SDK_NOTIFICATION="sdk-notification",e.LEAVE="leave",e.END_ROOM="end-room",e.PING="ping",e.ROLE_CHANGE_REQUEST="role-change-request",e.ROLE_CHANGE="role-change",e.TRACK_UPDATE_REQUEST="track-update-request",e.PEER_LEAVE_REQUEST="peer-leave-request",e.CHANGE_TRACK_MUTE_STATE_REQUEST="change-track-mute-state-request",e.START_RTMP_OR_RECORDING_REQUEST="rtmp-start",e.STOP_RTMP_AND_RECORDING_REQUEST="rtmp-stop",e.UPDATE_PEER_METADATA="peer-update",e.START_HLS_STREAMING="hls-start",e.STOP_HLS_STREAMING="hls-stop"})(Tr||(Tr={}));var Sr;(function(e){e.PEER_JOIN="on-peer-join",e.PEER_LEAVE="on-peer-leave",e.PEER_LIST="peer-list",e.TRACK_METADATA_ADD="on-track-add",e.TRACK_UPDATE="on-track-update",e.CHANGE_TRACK_MUTE_STATE_UPDATE="on-change-track-mute-state-request",e.ACTIVE_SPEAKERS="active-speakers",e.BROADCAST="on-broadcast",e.ROLE_CHANGE="on-role-change",e.POLICY_CHANGE="on-policy-change",e.ROLE_CHANGE_REQUEST="on-role-change-request",e.TRACK_UPDATE_REQUEST="on-track-update-request",e.PEER_UPDATE="on-peer-update",e.PEER_LEAVE_REQUEST="on-peer-leave-request",e.UNSUPPORTED="unsupported",e.RTMP_START="on-rtmp-start",e.RTMP_STOP="on-rtmp-stop",e.RECORDING_START="on-record-start",e.RECORDING_STOP="on-record-stop",e.HLS_START="on-hls-start",e.HLS_STOP="on-hls-stop"})(Sr||(Sr={}));var ys=class{};ys.makePeerId=()=>Ft();var Er;(function(e){e.AUDIO="audio",e.VIDEO="video",e.AV="audio, video",e.SCREEN="screen"})(Er||(Er={}));var yr;(function(e){e.TRANSFORM="TRANSFORM",e.ANALYZE="ANALYZE"})(yr||(yr={}));var De;(function(e){e.CUSTOM="CUSTOM",e.LOCAL="LOCAL",e.HMS="HMS"})(De||(De={}));function ks(){if(gt&&window){let e=window.location.hostname;return e==="localhost"||e==="127.0.0.1"?De.LOCAL:e.includes("app.100ms.live")?De.HMS:De.CUSTOM}return De.CUSTOM}var Cs=ks(),ie=class{constructor({name:e,level:t,properties:i,includesPII:r,timestamp:s}){this.name=e,this.level=t,this.includesPII=r||!1,this.properties=i||{},this.timestamp=s||new Date().getTime()}toSignalParams(){return{name:this.name,info:ir(mt({},this.properties),{timestamp:this.timestamp,domain:Cs}),timestamp:new Date().getTime()}}},Bt;(function(e){e[e.VERBOSE=0]="VERBOSE",e[e.INFO=1]="INFO",e[e.ERROR=2]="ERROR",e[e.OFF=3]="OFF"})(Bt||(Bt={}));var q;(function(e){e[e.VERBOSE=0]="VERBOSE",e[e.INFO=1]="INFO",e[e.ERROR=2]="ERROR",e[e.OFF=3]="OFF"})(q||(q={}));var Ht="AnalyticsEventsService",bs=class{constructor(){this.bufferSize=vs,this.transports=[],this.pendingEvents=[],this.level=Bt.INFO}addTransport(e){this.transports.push(e)}removeTransport(e){this.transports.splice(this.transports.indexOf(e),1)}queue(e){if(e.level>=this.level&&(this.pendingEvents.push(e),this.pendingEvents.length>this.bufferSize)){let t=this.pendingEvents.shift();qe.d(Ht,"Max buffer size reached","Removed event to accommodate new events",t)}return this}flush(){if(this.transports.length===0){qe.w(Ht,"No valid signalling API found to flush analytics");return}try{for(;this.pendingEvents.length>0;){let e=this.pendingEvents.shift();e&&this.transports.forEach(t=>t.sendEvent(e))}}catch(e){qe.w(Ht,"Flush Failed",e)}}},Fn=new bs;var Ps=class{constructor(e){this.key=e,this.storage=null}getStorage(){return gt&&(this.storage=window.localStorage),this.storage}get(){var e;let t=(e=this.getStorage())==null?void 0:e.getItem(this.key);return t?JSON.parse(t):void 0}set(e){var t;let i=JSON.stringify(e);(t=this.getStorage())==null||t.setItem(this.key,i)}clear(){var e;(e=this.getStorage())==null||e.removeItem(this.key)}},Rs=class{constructor(){this.storage=new Ps("hms-device-selection"),this.remember=!1}setDevices(e){this.devices=e}rememberDevices(e){this.remember=e}updateSelection(e,{deviceId:t,groupId:i}){if(!this.devices||!this.remember)return;let r=this.devices[e].find(o=>this.isSame({deviceId:t,groupId:i},o));if(!r)return;let s=this.storage.get()||{};s[e]=r,this.storage.set(s)}getSelection(){if(this.remember)return this.storage.get()}cleanup(){this.remember=!1,this.devices=void 0}isSame(e,t){return e.deviceId===t.deviceId&&(e.groupId===t.groupId||!e.groupId)}},Vn=new Rs;var kr;(function(e){e.TRANSFORM="TRANSFORM",e.ANALYZE="ANALYZE"})(kr||(kr={}));var Cr=class{static connect(e,t=new Date,i=new Date,r){let s=this.eventNameFor("connect",e===void 0),o=e?q.ERROR:q.INFO,a=this.getPropertiesWithError({[this.KEY_REQUESTED_AT]:t==null?void 0:t.getTime(),[this.KEY_RESPONDED_AT]:i==null?void 0:i.getTime(),endpoint:r},e);return new ie({name:s,level:o,properties:a})}static disconnect(e){let t="disconnected",i=e?q.ERROR:q.INFO,r=this.getPropertiesWithError({},e);return new ie({name:t,level:i,properties:r})}static join(e,t,i){let r=this.eventNameFor("join",i===void 0),s=i?q.ERROR:q.INFO,o=this.getPropertiesWithError({[this.KEY_REQUESTED_AT]:e.getTime(),[this.KEY_RESPONDED_AT]:t.getTime()},i);return new ie({name:r,level:s,properties:o})}static publish({devices:e,settings:t,error:i}){let r=this.eventNameFor("publish",i===void 0),s=i?q.ERROR:q.INFO,o=this.getPropertiesWithError({devices:e,audio:t==null?void 0:t.audio,video:t==null?void 0:t.video},i);return new ie({name:r,level:s,properties:o})}static subscribeFail(e){let t=this.eventNameFor("subscribe",!1),i=q.ERROR,r=e.toAnalyticsProperties();return new ie({name:t,level:i,properties:r})}static leave(){return new ie({name:"leave",level:q.INFO})}static autoplayError(){return new ie({name:"autoplayError",level:q.ERROR})}static deviceChange({selection:e,type:t,devices:i,error:r}){let s=this.eventNameFor(r?"publish":`device.${t}`,r===void 0),o=r?q.ERROR:q.INFO,a=this.getPropertiesWithError({selection:e,devices:i},r);return new ie({name:s,level:o,properties:a})}static performance(e){let t="perf.stats",i=q.INFO,r=e.toAnalyticsProperties();return new ie({name:t,level:i,properties:r})}static rtcStats(e){let t="rtc.stats",i=q.INFO,r=e.toAnalyticsProperties();return new ie({name:t,level:i,properties:r})}static degradationStats(e,t){let i="video.degradation.stats",r=q.INFO,s={degradedAt:e.degradedAt,trackId:e.trackId};if(!t&&e.degradedAt instanceof Date){let o=new Date,a=o.valueOf()-e.degradedAt.valueOf();s=ir(mt({},s),{duration:a,restoredAt:o})}return new ie({name:i,level:r,properties:s})}static eventNameFor(e,t){return`${e}.${t?"success":"failed"}`}static getPropertiesWithError(e,t){return t&&(e=mt(mt({},t.toAnalyticsProperties()),e)),e}};Cr.KEY_REQUESTED_AT="requested_at",Cr.KEY_RESPONDED_AT="responded_at";var br;(function(e){e[e.Disconnected=0]="Disconnected",e[e.Connecting=1]="Connecting",e[e.Joined=2]="Joined",e[e.Failed=3]="Failed",e[e.Reconnecting=4]="Reconnecting",e[e.Leaving=5]="Leaving"})(br||(br={}));var Pr;(function(e){e[e.ConnectFailed=0]="ConnectFailed",e[e.SignalDisconnect=1]="SignalDisconnect",e[e.PublishIceConnectionFailed=2]="PublishIceConnectionFailed",e[e.SubscribeIceConnectionFailed=3]="SubscribeIceConnectionFailed"})(Pr||(Pr={}));var Bn={[0]:[],[1]:[],[2]:[1],[3]:[1]};qe.i("adapter",`${dt.browserDetails.browser} v${dt.browserDetails.version}`);var ee=U(require("@100mslive/hms-video-store")),vt=U(require("react"));var Rr=(e,t="preview")=>{let[i,r]=(0,vt.useState)(!1),s=te(),o=B(ee.selectLocalPeer),a=B(ee.selectRoomState),l=B(ee.selectIsLocalAudioEnabled),m=B(ee.selectIsLocalVideoDisplayEnabled),h=B(ee.selectIsAllowedToPublish),c=i||a!==ee.HMSRoomState.Preview;return(0,vt.useEffect)(()=>{a===ee.HMSRoomState.Disconnected&&s.preview({userName:t,authToken:e}),gt&&(window.onunload=()=>s.leave())},[a,s,e]),{localPeer:o,roomState:a,audioEnabled:l,videoEnabled:m,isAllowedToPublish:h,disableJoin:c,actions:s,setInProgress:r}};var pe=U(require("@100mslive/hms-video-store")),Tt=U(require("react"));var Ar=e=>{let t=te(),i=(0,Tt.useRef)(null),r=B((0,pe.selectVideoTrackByPeerID)(e.id)),s=B((0,pe.selectIsPeerAudioEnabled)(e.id)),o=B((0,pe.selectIsPeerVideoEnabled)(e.id)),{isLocal:a,name:l}=e,m=B((0,pe.selectPeerAudioByID)(e.id))>0;return(0,Tt.useEffect)(()=>{i.current&&r&&(r.enabled?t.attachVideo(r.id,i.current):t.detachVideo(r.id,i.current))},[r,t]),{videoRef:i,isAudioOn:s,isVideoOn:o,actions:t,isLocal:a,name:l,audioLevel:m}};var Ir=U(require("@100mslive/hms-video-store")),St=U(require("react"));var _r=U(require("react-resize-detector")),Et={maxTileCount:4,maxColCount:4,maxRowCount:2,aspectRatio:{width:1,height:1}},Dr=({maxTileCount:e=Et.maxTileCount,maxColCount:t=Et.maxColCount,maxRowCount:i=Et.maxRowCount,showScreenFn:r=()=>!1,peers:s,overflow:o="scroll-x",aspectRatio:a=Et.aspectRatio,filterNonPublishingPeers:l=!0})=>{let{width:m=0,height:h=0,ref:c}=(0,_r.useResizeDetector)(),u=Ae().getState(Ir.selectTracksMap),v=ri(s,u,r,l),E=(0,St.useMemo)(()=>a||{width:Xe(v)||1,height:1},[a,v]),A=v.length,{tilesInFirstPage:z,defaultWidth:I,defaultHeight:_,lastPageWidth:J,lastPageHeight:re,isLastPageDifferentFromFirstPage:le}=(0,St.useMemo)(()=>et({count:A,parentWidth:Math.floor(m),parentHeight:Math.floor(h),maxTileCount:e,maxRowCount:i,maxColCount:t,aspectRatio:E}),[A,m,h,e,i,t,E]);return{pagesWithTiles:(0,St.useMemo)(()=>Ze({elements:v,tilesInFirstPage:z,onlyOnePage:o==="hidden",isLastPageDifferentFromFirstPage:le,defaultWidth:I,defaultHeight:_,lastPageWidth:J,lastPageHeight:re}),[v,z,o,le,I,_,J,re]),ref:c}};var Me=U(require("@100mslive/hms-video-store")),jt=U(require("react"));var Mr=()=>{let e=B(Me.selectIsLocalAudioEnabled),t=B(Me.selectIsLocalVideoEnabled),i=B(Me.selectIsAllowedToPublish),r=te(),s=(0,jt.useCallback)(()=>Ve(void 0,null,function*(){try{yield r.setLocalAudioEnabled(!e)}catch(a){console.error("Cannot toggle audio",a)}}),[e]),o=(0,jt.useCallback)(()=>Ve(void 0,null,function*(){try{yield r.setLocalVideoEnabled(!t)}catch(a){console.error("Cannot toggle video",a)}}),[t]);return{isLocalAudioEnabled:e,isLocalVideoEnabled:t,toggleAudio:s,toggleVideo:o,isAllowedToPublish:i}};var me=U(require("@100mslive/hms-video-store"));var wr=()=>{let e=te(),t=B(me.selectDevices),i=B(me.selectLocalMediaSettings),{video:r,audio:s}=B(me.selectIsAllowedToPublish),o=B(me.selectIsAllowedToSubscribe),a=p=>{let u=p.currentTarget.value,{name:v}=p.currentTarget;if(u!==i[v])switch(v){case"audioInputDeviceId":e.setAudioSettings({deviceId:u});break;case"videoInputDeviceId":e.setVideoSettings({deviceId:u});break;case"audioOutputDeviceId":e.setAudioOutputDevice(u);break;default:break}},l=t.videoInput||[],m=t.audioInput||[],h=t.audioOutput||[];return[r,s,o].some(p=>!!p)?{showVideo:r,videoInput:l,showAudio:s,audioInput:m,audioOutput:h,isSubscribing:o,selectedDevices:i,handleInputChange:a}:null};var Lr=U(require("@100mslive/hms-video-store")),Se=U(require("react")),Or=U(require("react-intersection-observer"));var Nr=e=>{let t=te(),i=(0,Se.useRef)(null),{ref:r,inView:s}=(0,Or.useInView)({threshold:.5}),o=(0,Se.useCallback)(l=>{i.current=l,r(l)},[r]),a=B((0,Lr.selectTrackByID)(e));return(0,Se.useEffect)(()=>{(()=>Ve(void 0,null,function*(){i.current&&a&&(s?a.enabled?yield t.attachVideo(a.id,i.current):yield t.detachVideo(a.id,i.current):yield t.detachVideo(a.id,i.current))}))()},[s,i,a==null?void 0:a.id,a==null?void 0:a.enabled,a==null?void 0:a.deviceID,a==null?void 0:a.plugins]),(0,Se.useEffect)(()=>()=>{i.current&&a&&t.detachVideo(a.id,i.current)},[]),o};var xr=U(require("react")),Ur=U(require("@100mslive/hms-video-store"));function Gr({trackId:e,getStyle:t,ref:i}){let r=Ae();(0,xr.useEffect)(()=>r.subscribe(s=>{if(!i.current)return;let o=t(s);for(let a in o)i.current.style[a]=o[a]},(0,Ur.selectTrackAudioByID)(e)),[e])}Q(exports,U(require("@100mslive/hms-video-store")));
38
- /*!
39
- * EventEmitter2
40
- * https://github.com/hij1nx/EventEmitter2
41
- *
42
- * Copyright (c) 2013 hij1nx
43
- * Licensed under the MIT license.
44
- */
1
+ var De=Object.create;var z=Object.defineProperty,Ae=Object.defineProperties,Ve=Object.getOwnPropertyDescriptor,Ce=Object.getOwnPropertyDescriptors,Oe=Object.getOwnPropertyNames,Z=Object.getOwnPropertySymbols,Ne=Object.getPrototypeOf,_=Object.prototype.hasOwnProperty,We=Object.prototype.propertyIsEnumerable;var $=(r,e,t)=>e in r?z(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,L=(r,e)=>{for(var t in e||(e={}))_.call(e,t)&&$(r,t,e[t]);if(Z)for(var t of Z(e))We.call(e,t)&&$(r,t,e[t]);return r},B=(r,e)=>Ae(r,Ce(e)),ee=r=>z(r,"__esModule",{value:!0});var Fe=(r,e)=>{ee(r);for(var t in e)z(r,t,{get:e[t],enumerable:!0})},H=(r,e,t)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of Oe(e))!_.call(r,o)&&o!=="default"&&z(r,o,{get:()=>e[o],enumerable:!(t=Ve(e,o))||t.enumerable});return r},m=r=>H(ee(z(r!=null?De(Ne(r)):{},"default",r&&r.__esModule&&"default"in r?{get:()=>r.default,enumerable:!0}:{value:r,enumerable:!0})),r);var v=(r,e,t)=>new Promise((o,s)=>{var i=a=>{try{c(t.next(a))}catch(l){s(l)}},n=a=>{try{c(t.throw(a))}catch(l){s(l)}},c=a=>a.done?o(a.value):Promise.resolve(a.value).then(i,n);c((t=t.apply(r,e)).next())});Fe(exports,{HMSRoomProvider:()=>ie,throwErrorHandler:()=>ce,useAVToggle:()=>ue,useAudio:()=>ve,useAudioLevelStyles:()=>Re,useDevices:()=>me,useHMSActions:()=>M,useHMSNotifications:()=>ae,useHMSStatsStore:()=>ne,useHMSStore:()=>f,useHMSVanillaStore:()=>A,usePreview:()=>le,useScreenShare:()=>ge,useVideo:()=>fe,useVideoList:()=>Ee});var b=m(require("react")),se=m(require("@100mslive/hms-video-store")),q=m(require("zustand"));var U=m(require("react")),j=m(require("zustand/shallow"));var w;(function(n){n[n.VERBOSE=0]="VERBOSE",n[n.DEBUG=1]="DEBUG",n[n.INFO=2]="INFO",n[n.WARN=3]="WARN",n[n.ERROR=4]="ERROR",n[n.NONE=5]="NONE"})(w||(w={}));var P=class{static v(e,...t){this.log(0,e,...t)}static d(e,...t){this.log(1,e,...t)}static i(e,...t){this.log(2,e,...t)}static w(e,...t){this.log(3,e,...t)}static e(e,...t){this.log(4,e,...t)}static log(e,t,...o){if(!(this.level.valueOf()>e.valueOf()))switch(e){case 0:{console.log("HMSui-components: ",t,...o);break}case 1:{console.debug("HMSui-components: ",t,...o);break}case 2:{console.info("HMSui-components: ",t,...o);break}case 3:{console.warn("HMSui-components: ",t,...o);break}case 4:{console.error("HMSui-components: ",t,...o);break}}}};P.level=0;var R="It seems like you forgot to add your component within a top level HMSRoomProvider, please refer to 100ms react docs(https://docs.100ms.live/javascript/v2/features/integration#react-hooks) to check on the required steps for using this hook.";function te(r){return(t,o=j.default)=>{t||P.w("fetching full store without passing any selector may have a heavy performance impact on your website.");let s=(0,U.useContext)(r);if(!s)throw new Error(R);return s.store(t,o)}}function oe(r){return(t,o=j.default)=>{t||P.w("fetching full store without passing any selector may have a heavy performance impact on your website.");let s=(0,U.useContext)(r);if(!s)throw new Error(R);let i=s.statsStore;return i==null?void 0:i(t,o)}}var re=typeof window!="undefined";var D=(0,b.createContext)(null),T,ie=({children:r,actions:e,store:t,notifications:o,stats:s,isHMSStatsOn:i=!1})=>{if(!T){let n=()=>{throw new Error("modifying store is not allowed")};if(e&&t)T={actions:e,store:(0,q.default)(B(L({},t),{setState:n,destroy:n}))},o&&(T.notifications=o),s&&(T.statsStore=(0,q.default)({getState:s.getState,subscribe:s.subscribe,setState:n,destroy:n}));else{let c=new se.HMSReactiveStore;if(T={actions:c.getActions(),store:(0,q.default)(B(L({},c.getStore()),{setState:n,destroy:n})),notifications:c.getNotifications()},i){let a=c.getStats();T.statsStore=(0,q.default)({getState:a.getState,subscribe:a.subscribe,setState:n,destroy:n})}}}return(0,b.useEffect)(()=>{re&&(window.addEventListener("beforeunload",()=>T.actions.leave()),window.addEventListener("onunload",()=>T.actions.leave()))},[]),b.default.createElement(D.Provider,{value:T},r)},f=te(D),ne=oe(D),A=()=>{let r=(0,b.useContext)(D);if(!r)throw new Error(R);return r.store},M=()=>{let r=(0,b.useContext)(D);if(!r)throw new Error(R);return r.actions},ae=()=>{let r=(0,b.useContext)(D),[e,t]=(0,b.useState)(null);if(!r)throw new Error(R);return(0,b.useEffect)(()=>r.notifications?r.notifications.onNotification(s=>t(s)):void 0,[r.notifications]),e};var E=m(require("@100mslive/hms-video-store")),C=m(require("react"));var ze="react-sdk",V=(r,e)=>P.e(ze,e,r),ce=r=>{throw r};var le=({name:r="",token:e,metadata:t,handleError:o=V})=>{let s=M(),i=f(E.selectRoomState),n=f(E.selectIsConnectedToRoom)||!1,c=i===E.HMSRoomState.Preview,a=(0,C.useMemo)(()=>({userName:r,authToken:e,metaData:t,rememberDeviceSelection:!0}),[r,e,t]);(0,C.useEffect)(()=>{(()=>v(void 0,null,function*(){if(!!e){i!==E.HMSRoomState.Disconnected&&(yield s.leave());try{yield s.preview(a)}catch(u){o(u,"preview")}}}))()},[s,e]);let l=(0,C.useCallback)(()=>v(void 0,null,function*(){if(!!e)try{yield s.join(a)}catch(u){o(u,"join")}}),[s,e]);return{enableJoin:c,join:l,isConnected:n}};var O=m(require("@100mslive/hms-video-store")),J=m(require("react"));var ue=(r=V)=>{let e=f(O.selectIsLocalAudioEnabled),t=f(O.selectIsLocalVideoEnabled),o=f(O.selectIsAllowedToPublish),s=M(),i=(0,J.useCallback)(()=>v(void 0,null,function*(){try{yield s.setLocalAudioEnabled(!e)}catch(c){r(c,"toggleAudio")}}),[e,s]),n=(0,J.useCallback)(()=>v(void 0,null,function*(){try{yield s.setLocalVideoEnabled(!t)}catch(c){r(c,"toggleVideo")}}),[t,s]);return{isLocalAudioEnabled:e,isLocalVideoEnabled:t,toggleAudio:(o==null?void 0:o.audio)?i:void 0,toggleVideo:(o==null?void 0:o.video)?n:void 0}};var N=m(require("@100mslive/hms-video-store")),de=m(require("react"));var k;(function(o){o.videoInput="videoInput",o.audioInput="audioInput",o.audioOutput="audioOutput"})(k||(k={}));var me=(r=V)=>{let e=M(),t=f(N.selectDevices),o=f(N.selectLocalMediaSettings),s=f(N.selectIsAllowedToPublish),i={[k.audioInput]:o.audioInputDeviceId,[k.audioOutput]:o.audioOutputDeviceId,[k.videoInput]:o.videoInputDeviceId};s.video||(delete t[k.videoInput],delete i[k.videoInput]),s.audio||(delete t[k.audioInput],delete i[k.audioInput]);let n=(0,de.useCallback)(l=>v(void 0,[l],function*({deviceType:c,deviceId:a}){try{switch(c){case k.audioInput:yield e.setAudioSettings({deviceId:a});break;case k.videoInput:yield e.setVideoSettings({deviceId:a});break;case k.audioOutput:yield e.setAudioOutputDevice(a);break}}catch(u){r(u,"updateDevices")}}),[e]);return{allDevices:t,selectedDeviceIDs:i,updateDevice:n}};var he=m(require("@100mslive/hms-video-store")),I=m(require("react")),Se=m(require("react-intersection-observer"));var fe=r=>{let e=M(),t=(0,I.useRef)(null),o=f((0,he.selectTrackByID)(r)),{ref:s,inView:i}=(0,Se.useInView)({threshold:.5}),n=(0,I.useCallback)(c=>{t.current=c,s(c)},[s]);return(0,I.useEffect)(()=>{(()=>v(void 0,null,function*(){t.current&&o&&(i?o.enabled?yield e.attachVideo(o.id,t.current):yield e.detachVideo(o.id,t.current):yield e.detachVideo(o.id,t.current))}))()},[i,t,o==null?void 0:o.id,o==null?void 0:o.enabled,o==null?void 0:o.deviceID,o==null?void 0:o.plugins]),(0,I.useEffect)(()=>()=>{(()=>v(void 0,null,function*(){if(t.current&&o)try{yield e.detachVideo(o.id,t.current)}catch(c){P.w("detach video error for track",o.id,c)}}))()},[]),n};var W=m(require("@100mslive/hms-video-store"));var pe=m(require("react")),Le=r=>console.log("Error: ",r),ge=(r=Le)=>{var n,c;let e=M(),t=f(W.selectIsLocalScreenShared),o=f(W.selectPeerScreenSharing),s=f((0,W.selectScreenSharesByPeerId)(o==null?void 0:o.id)),i=(0,pe.useCallback)(()=>v(void 0,null,function*(){try{yield e.setScreenShareEnabled(!t)}catch(a){r(a)}}),[e]);return{amIScreenSharing:t,screenSharingPeerId:o==null?void 0:o.id,screenShareVideoTrackId:(n=s==null?void 0:s.video)==null?void 0:n.id,screenShareAudioTrackId:(c=s==null?void 0:s.audio)==null?void 0:c.id,toggleScreenShare:i}};var He=m(require("@100mslive/hms-video-store"));var Me=m(require("react")),ve=r=>{let e=M(),t=f((0,He.selectAudioTrackVolume)(r)),o=(0,Me.useCallback)(s=>{e.setVolume(s,r)},[e]);return{volume:t,setVolume:o}};var Te=m(require("@100mslive/hms-video-store")),G=m(require("react"));var Be=(r,e,t)=>r.reduce((o,s,i)=>{let n=Math.floor(i/e);return n>0&&t||(o[n]||(o[n]=[]),o[n].push(s)),o},[]),we=({elements:r,tilesInFirstPage:e,onlyOnePage:t,isLastPageDifferentFromFirstPage:o,defaultWidth:s,defaultHeight:i,lastPageWidth:n,lastPageHeight:c})=>{let a=Be(r,e,t);return a.map((l,u)=>l.map(S=>{let d=u===a.length-1,h=o&&d?n:s,p=o&&d?c:i;return B(L({},S),{height:p,width:h})}))};function qe(r){if(r.length===0)return null;let e={},t=r[0],o=1;for(let s=0;s<r.length;s++){let i=r[s];e[i]===null?e[i]=1:e[i]++,e[i]>o&&(t=i,o=e[i])}return t}var be=r=>qe(r.filter(e=>{var t,o;return((t=e.track)==null?void 0:t.width)&&((o=e.track)==null?void 0:o.height)}).map(e=>{var s,i;let t=(s=e.track)==null?void 0:s.width,o=(i=e.track)==null?void 0:i.height;return(t||1)/(o||1)})),K=(r,e,t,o,s)=>{if(r<0||e<0)throw new Error("Container must have a non-negative area");if(t<1||!Number.isInteger(t))throw new Error("Number of shapes to place must be a positive integer");let i=o&&s&&o/s;if(i!==void 0&&isNaN(i))throw new Error("Aspect ratio must be a number");let n={area:0,cols:0,rows:0,width:0,height:0},c=t,a=-1;if(i!==void 0)for(let l=c;l>0;l+=a){let u=Math.ceil(t/l),S=r/(l*i),d=e/u,h,p;S<=d?(h=r/l,p=h/i):(p=e/u,h=p*i);let g=h*p;g>n.area&&(n={area:g,width:h,height:p,rows:u,cols:l})}return n},Ge=({parentWidth:r,parentHeight:e,count:t,maxCount:o,aspectRatio:s})=>{let i=0,n=0,c=0,a=0,l=!1,u=0,S=0,d=Math.min(Math.ceil(Math.sqrt(t*(r/e)/(s.width/s.height))),o),h=r/d,p=h/(s.width/s.height),g=Math.floor(e/p);if(n=p,i=h,u=Math.min(t,g*d),S=t%(g*d),l=S>0&&t>g*d,l){let y=Math.min(Math.ceil(Math.sqrt(S*(r/e)/(s.width/s.height))),o),x=r/y;a=x/(s.width/s.height),c=x}return{tilesInFirstPage:u,defaultWidth:i,defaultHeight:n,lastPageWidth:c,lastPageHeight:a,isLastPageDifferentFromFirstPage:l}},Ue=({parentWidth:r,parentHeight:e,count:t,maxCount:o,aspectRatio:s})=>{let i=0,n=0,c=0,a=0,l=!1,u=0,S=0,{width:d,height:h}=K(r,e,Math.min(t,o),s.width,s.height);if(i=d,n=h,u=Math.min(t,o),S=t%o,l=S>0&&t>o,l){let{width:p,height:g}=K(r,e,S,s.width,s.height);c=p,a=g}return{tilesInFirstPage:u,defaultWidth:i,defaultHeight:n,lastPageWidth:c,lastPageHeight:a,isLastPageDifferentFromFirstPage:l}},je=({parentWidth:r,parentHeight:e,count:t,maxCount:o,aspectRatio:s})=>{let i=0,n=0,c=0,a=0,l=!1,u=0,S=0,d=Math.min(Math.ceil(Math.sqrt(t*(s.width/s.height)/(r/e))),o),h=e/d,p=h*(s.width/s.height),g=Math.floor(r/p);if(i=p,n=h,u=Math.min(t,d*g),S=t%(d*g),l=S>0&&t>d*g,l){let y=Math.min(Math.ceil(Math.sqrt(S*(s.width/s.height)/(r/e))),o),x=e/y,F=x*(s.width/s.height);a=x,c=F}return{tilesInFirstPage:u,defaultWidth:i,defaultHeight:n,lastPageWidth:c,lastPageHeight:a,isLastPageDifferentFromFirstPage:l}};function ke({count:r,parentWidth:e,parentHeight:t,maxTileCount:o,maxRowCount:s,maxColCount:i,aspectRatio:n}){let c=0,a=0,l=0,u=0,S=!1,d=0;if(r===0)return{tilesInFirstPage:d,defaultWidth:c,defaultHeight:a,lastPageWidth:l,lastPageHeight:u,isLastPageDifferentFromFirstPage:S};if(o)({tilesInFirstPage:d,defaultWidth:c,defaultHeight:a,lastPageWidth:l,lastPageHeight:u,isLastPageDifferentFromFirstPage:S}=Ue({parentWidth:e,parentHeight:t,count:r,maxCount:o,aspectRatio:n}));else if(s)({tilesInFirstPage:d,defaultWidth:c,defaultHeight:a,lastPageWidth:l,lastPageHeight:u,isLastPageDifferentFromFirstPage:S}=je({parentWidth:e,parentHeight:t,count:r,maxCount:s,aspectRatio:n}));else if(i)({tilesInFirstPage:d,defaultWidth:c,defaultHeight:a,lastPageWidth:l,lastPageHeight:u,isLastPageDifferentFromFirstPage:S}=Ge({parentWidth:e,parentHeight:t,count:r,maxCount:i,aspectRatio:n}));else{let{width:h,height:p}=K(e,t,r,n.width,n.height);c=h,a=p,d=r}return{tilesInFirstPage:d,defaultWidth:c,defaultHeight:a,lastPageWidth:l,lastPageHeight:u,isLastPageDifferentFromFirstPage:S}}var Pe=(r,e,t,o=!0)=>{if(!r||!e||!t)return[];let s=[];for(let i of r)if(i.videoTrack===void 0&&i.audioTrack&&e[i.audioTrack])s.push({peer:i});else if(i.videoTrack&&e[i.videoTrack])s.push({track:e[i.videoTrack],peer:i});else if(t(i)&&i.auxiliaryTracks.length>0){let n=i.auxiliaryTracks.find(c=>{let a=e[c];return(a==null?void 0:a.type)==="video"&&(a==null?void 0:a.source)==="screen"});n&&s.push({track:e[n],peer:i})}else o||s.push({peer:i});return s};var xe=m(require("react-resize-detector")),Je={aspectRatio:{width:1,height:1}},Ee=({maxTileCount:r,maxColCount:e,maxRowCount:t,showScreenFn:o=()=>!1,peers:s,overflow:i="scroll-x",aspectRatio:n=Je.aspectRatio,filterNonPublishingPeers:c=!0})=>{let{width:a=0,height:l=0,ref:u}=(0,xe.useResizeDetector)(),d=A().getState(Te.selectTracksMap),h=Pe(s,d,o,c),p=(0,G.useMemo)(()=>n||{width:be(h)||1,height:1},[n,h]),g=h.length,{tilesInFirstPage:y,defaultWidth:x,defaultHeight:F,lastPageWidth:Q,lastPageHeight:X,isLastPageDifferentFromFirstPage:Y}=(0,G.useMemo)(()=>ke({count:g,parentWidth:Math.floor(a),parentHeight:Math.floor(l),maxTileCount:r,maxRowCount:t,maxColCount:e,aspectRatio:p}),[g,a,l,r,t,e,p]);return{pagesWithTiles:(0,G.useMemo)(()=>we({elements:h,tilesInFirstPage:y,onlyOnePage:i==="hidden",isLastPageDifferentFromFirstPage:Y,defaultWidth:x,defaultHeight:F,lastPageWidth:Q,lastPageHeight:X}),[h,y,i,Y,x,F,Q,X]),ref:u}};var Ie=m(require("react")),ye=m(require("@100mslive/hms-video-store"));function Re({trackId:r,getStyle:e,ref:t}){let o=A();(0,Ie.useEffect)(()=>o.subscribe(s=>{if(!t.current)return;let i=e(s);for(let n in i)t.current.style[n]=i[n]},(0,ye.selectTrackAudioByID)(r)),[r])}H(exports,m(require("@100mslive/hms-video-store")));
package/dist/index.d.ts CHANGED
@@ -1,10 +1,16 @@
1
- export { HMSRoomProvider, useHMSStore, useHMSActions, useHMSNotifications, useHMSVanillaStore, useHMSStatsStore, } from './hooks/HmsRoomProvider';
2
- export { chunkElements, getModeAspectRatio, calculateLayoutSizes } from './utils/layout';
1
+ export { HMSRoomProvider, useHMSStore, useHMSActions, useHMSNotifications, useHMSVanillaStore, useHMSStatsStore, } from './primitives/HmsRoomProvider';
3
2
  export { usePreview } from './hooks/usePreview';
4
- export { useVideoTile } from './hooks/useVideoTile';
5
- export { useVideoList } from './hooks/useVideoList';
6
3
  export { useAVToggle } from './hooks/useAVToggle';
7
4
  export { useDevices } from './hooks/useDevices';
8
5
  export { useVideo } from './hooks/useVideo';
9
- export { useAudioLevel } from './hooks/useAudioLevel';
6
+ export { useScreenShare } from './hooks/useScreenShare';
7
+ export { useAudio } from './hooks/useAudio';
8
+ export { useVideoList } from './hooks/useVideoList';
9
+ export { useAudioLevelStyles } from './hooks/useAudioLevelStyles';
10
10
  export * from '@100mslive/hms-video-store';
11
+ export type { hooksErrHandler } from './hooks/types';
12
+ export type { usePreviewInput, usePreviewResult } from './hooks/usePreview';
13
+ export type { useAVToggleResult } from './hooks/useAVToggle';
14
+ export type { useDevicesResult } from './hooks/useDevices';
15
+ export type { useScreenShareResult } from './hooks/useScreenShare';
16
+ export { throwErrorHandler } from './utils/commons';
package/dist/index.js CHANGED
@@ -1,44 +1 @@
1
- var vr=Object.create;var Ie=Object.defineProperty,Tr=Object.defineProperties,Sr=Object.getOwnPropertyDescriptor,Er=Object.getOwnPropertyDescriptors,yr=Object.getOwnPropertyNames,Nt=Object.getOwnPropertySymbols,kr=Object.getPrototypeOf,xt=Object.prototype.hasOwnProperty,Cr=Object.prototype.propertyIsEnumerable;var Ut=(e,t,i)=>t in e?Ie(e,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[t]=i,_e=(e,t)=>{for(var i in t||(t={}))xt.call(t,i)&&Ut(e,i,t[i]);if(Nt)for(var i of Nt(t))Cr.call(t,i)&&Ut(e,i,t[i]);return e},De=(e,t)=>Tr(e,Er(t)),Gt=e=>Ie(e,"__esModule",{value:!0});var he=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),je=(e,t)=>{Gt(e);for(var i in t)Ie(e,i,{get:t[i],enumerable:!0})},br=(e,t,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of yr(t))!xt.call(e,r)&&r!=="default"&&Ie(e,r,{get:()=>t[r],enumerable:!(i=Sr(t,r))||i.enumerable});return e},ce=e=>br(Gt(Ie(e!=null?vr(kr(e)):{},"default",e&&e.__esModule&&"default"in e?{get:()=>e.default,enumerable:!0}:{value:e,enumerable:!0})),e);var Me=(e,t,i)=>new Promise((r,s)=>{var o=m=>{try{l(i.next(m))}catch(h){s(h)}},a=m=>{try{l(i.throw(m))}catch(h){s(h)}},l=m=>m.done?r(m.value):Promise.resolve(m.value).then(o,a);l((i=i.apply(e,t)).next())});var yt=he((Gn,Et)=>{"use strict";var k={};k.generateIdentifier=function(){return Math.random().toString(36).substr(2,10)};k.localCName=k.generateIdentifier();k.splitLines=function(e){return e.trim().split(`
2
- `).map(t=>t.trim())};k.splitSections=function(e){return e.split(`
3
- m=`).map((i,r)=>(r>0?"m="+i:i).trim()+`\r
4
- `)};k.getDescription=function(e){let t=k.splitSections(e);return t&&t[0]};k.getMediaSections=function(e){let t=k.splitSections(e);return t.shift(),t};k.matchPrefix=function(e,t){return k.splitLines(e).filter(i=>i.indexOf(t)===0)};k.parseCandidate=function(e){let t;e.indexOf("a=candidate:")===0?t=e.substring(12).split(" "):t=e.substring(10).split(" ");let i={foundation:t[0],component:{1:"rtp",2:"rtcp"}[t[1]]||t[1],protocol:t[2].toLowerCase(),priority:parseInt(t[3],10),ip:t[4],address:t[4],port:parseInt(t[5],10),type:t[7]};for(let r=8;r<t.length;r+=2)switch(t[r]){case"raddr":i.relatedAddress=t[r+1];break;case"rport":i.relatedPort=parseInt(t[r+1],10);break;case"tcptype":i.tcpType=t[r+1];break;case"ufrag":i.ufrag=t[r+1],i.usernameFragment=t[r+1];break;default:i[t[r]]===void 0&&(i[t[r]]=t[r+1]);break}return i};k.writeCandidate=function(e){let t=[];t.push(e.foundation);let i=e.component;i==="rtp"?t.push(1):i==="rtcp"?t.push(2):t.push(i),t.push(e.protocol.toUpperCase()),t.push(e.priority),t.push(e.address||e.ip),t.push(e.port);let r=e.type;return t.push("typ"),t.push(r),r!=="host"&&e.relatedAddress&&e.relatedPort&&(t.push("raddr"),t.push(e.relatedAddress),t.push("rport"),t.push(e.relatedPort)),e.tcpType&&e.protocol.toLowerCase()==="tcp"&&(t.push("tcptype"),t.push(e.tcpType)),(e.usernameFragment||e.ufrag)&&(t.push("ufrag"),t.push(e.usernameFragment||e.ufrag)),"candidate:"+t.join(" ")};k.parseIceOptions=function(e){return e.substr(14).split(" ")};k.parseRtpMap=function(e){let t=e.substr(9).split(" "),i={payloadType:parseInt(t.shift(),10)};return t=t[0].split("/"),i.name=t[0],i.clockRate=parseInt(t[1],10),i.channels=t.length===3?parseInt(t[2],10):1,i.numChannels=i.channels,i};k.writeRtpMap=function(e){let t=e.payloadType;e.preferredPayloadType!==void 0&&(t=e.preferredPayloadType);let i=e.channels||e.numChannels||1;return"a=rtpmap:"+t+" "+e.name+"/"+e.clockRate+(i!==1?"/"+i:"")+`\r
5
- `};k.parseExtmap=function(e){let t=e.substr(9).split(" ");return{id:parseInt(t[0],10),direction:t[0].indexOf("/")>0?t[0].split("/")[1]:"sendrecv",uri:t[1]}};k.writeExtmap=function(e){return"a=extmap:"+(e.id||e.preferredId)+(e.direction&&e.direction!=="sendrecv"?"/"+e.direction:"")+" "+e.uri+`\r
6
- `};k.parseFmtp=function(e){let t={},i,r=e.substr(e.indexOf(" ")+1).split(";");for(let s=0;s<r.length;s++)i=r[s].trim().split("="),t[i[0].trim()]=i[1];return t};k.writeFmtp=function(e){let t="",i=e.payloadType;if(e.preferredPayloadType!==void 0&&(i=e.preferredPayloadType),e.parameters&&Object.keys(e.parameters).length){let r=[];Object.keys(e.parameters).forEach(s=>{e.parameters[s]!==void 0?r.push(s+"="+e.parameters[s]):r.push(s)}),t+="a=fmtp:"+i+" "+r.join(";")+`\r
7
- `}return t};k.parseRtcpFb=function(e){let t=e.substr(e.indexOf(" ")+1).split(" ");return{type:t.shift(),parameter:t.join(" ")}};k.writeRtcpFb=function(e){let t="",i=e.payloadType;return e.preferredPayloadType!==void 0&&(i=e.preferredPayloadType),e.rtcpFeedback&&e.rtcpFeedback.length&&e.rtcpFeedback.forEach(r=>{t+="a=rtcp-fb:"+i+" "+r.type+(r.parameter&&r.parameter.length?" "+r.parameter:"")+`\r
8
- `}),t};k.parseSsrcMedia=function(e){let t=e.indexOf(" "),i={ssrc:parseInt(e.substr(7,t-7),10)},r=e.indexOf(":",t);return r>-1?(i.attribute=e.substr(t+1,r-t-1),i.value=e.substr(r+1)):i.attribute=e.substr(t+1),i};k.parseSsrcGroup=function(e){let t=e.substr(13).split(" ");return{semantics:t.shift(),ssrcs:t.map(i=>parseInt(i,10))}};k.getMid=function(e){let t=k.matchPrefix(e,"a=mid:")[0];if(t)return t.substr(6)};k.parseFingerprint=function(e){let t=e.substr(14).split(" ");return{algorithm:t[0].toLowerCase(),value:t[1].toUpperCase()}};k.getDtlsParameters=function(e,t){let i=k.matchPrefix(e+t,"a=fingerprint:");return{role:"auto",fingerprints:i.map(k.parseFingerprint)}};k.writeDtlsParameters=function(e,t){let i="a=setup:"+t+`\r
9
- `;return e.fingerprints.forEach(r=>{i+="a=fingerprint:"+r.algorithm+" "+r.value+`\r
10
- `}),i};k.parseCryptoLine=function(e){let t=e.substr(9).split(" ");return{tag:parseInt(t[0],10),cryptoSuite:t[1],keyParams:t[2],sessionParams:t.slice(3)}};k.writeCryptoLine=function(e){return"a=crypto:"+e.tag+" "+e.cryptoSuite+" "+(typeof e.keyParams=="object"?k.writeCryptoKeyParams(e.keyParams):e.keyParams)+(e.sessionParams?" "+e.sessionParams.join(" "):"")+`\r
11
- `};k.parseCryptoKeyParams=function(e){if(e.indexOf("inline:")!==0)return null;let t=e.substr(7).split("|");return{keyMethod:"inline",keySalt:t[0],lifeTime:t[1],mkiValue:t[2]?t[2].split(":")[0]:void 0,mkiLength:t[2]?t[2].split(":")[1]:void 0}};k.writeCryptoKeyParams=function(e){return e.keyMethod+":"+e.keySalt+(e.lifeTime?"|"+e.lifeTime:"")+(e.mkiValue&&e.mkiLength?"|"+e.mkiValue+":"+e.mkiLength:"")};k.getCryptoParameters=function(e,t){return k.matchPrefix(e+t,"a=crypto:").map(k.parseCryptoLine)};k.getIceParameters=function(e,t){let i=k.matchPrefix(e+t,"a=ice-ufrag:")[0],r=k.matchPrefix(e+t,"a=ice-pwd:")[0];return i&&r?{usernameFragment:i.substr(12),password:r.substr(10)}:null};k.writeIceParameters=function(e){let t="a=ice-ufrag:"+e.usernameFragment+`\r
12
- a=ice-pwd:`+e.password+`\r
13
- `;return e.iceLite&&(t+=`a=ice-lite\r
14
- `),t};k.parseRtpParameters=function(e){let t={codecs:[],headerExtensions:[],fecMechanisms:[],rtcp:[]},r=k.splitLines(e)[0].split(" ");for(let s=3;s<r.length;s++){let o=r[s],a=k.matchPrefix(e,"a=rtpmap:"+o+" ")[0];if(a){let l=k.parseRtpMap(a),m=k.matchPrefix(e,"a=fmtp:"+o+" ");switch(l.parameters=m.length?k.parseFmtp(m[0]):{},l.rtcpFeedback=k.matchPrefix(e,"a=rtcp-fb:"+o+" ").map(k.parseRtcpFb),t.codecs.push(l),l.name.toUpperCase()){case"RED":case"ULPFEC":t.fecMechanisms.push(l.name.toUpperCase());break;default:break}}}return k.matchPrefix(e,"a=extmap:").forEach(s=>{t.headerExtensions.push(k.parseExtmap(s))}),t};k.writeRtpDescription=function(e,t){let i="";i+="m="+e+" ",i+=t.codecs.length>0?"9":"0",i+=" UDP/TLS/RTP/SAVPF ",i+=t.codecs.map(s=>s.preferredPayloadType!==void 0?s.preferredPayloadType:s.payloadType).join(" ")+`\r
15
- `,i+=`c=IN IP4 0.0.0.0\r
16
- `,i+=`a=rtcp:9 IN IP4 0.0.0.0\r
17
- `,t.codecs.forEach(s=>{i+=k.writeRtpMap(s),i+=k.writeFmtp(s),i+=k.writeRtcpFb(s)});let r=0;return t.codecs.forEach(s=>{s.maxptime>r&&(r=s.maxptime)}),r>0&&(i+="a=maxptime:"+r+`\r
18
- `),t.headerExtensions&&t.headerExtensions.forEach(s=>{i+=k.writeExtmap(s)}),i};k.parseRtpEncodingParameters=function(e){let t=[],i=k.parseRtpParameters(e),r=i.fecMechanisms.indexOf("RED")!==-1,s=i.fecMechanisms.indexOf("ULPFEC")!==-1,o=k.matchPrefix(e,"a=ssrc:").map(c=>k.parseSsrcMedia(c)).filter(c=>c.attribute==="cname"),a=o.length>0&&o[0].ssrc,l,m=k.matchPrefix(e,"a=ssrc-group:FID").map(c=>c.substr(17).split(" ").map(u=>parseInt(u,10)));m.length>0&&m[0].length>1&&m[0][0]===a&&(l=m[0][1]),i.codecs.forEach(c=>{if(c.name.toUpperCase()==="RTX"&&c.parameters.apt){let p={ssrc:a,codecPayloadType:parseInt(c.parameters.apt,10)};a&&l&&(p.rtx={ssrc:l}),t.push(p),r&&(p=JSON.parse(JSON.stringify(p)),p.fec={ssrc:a,mechanism:s?"red+ulpfec":"red"},t.push(p))}}),t.length===0&&a&&t.push({ssrc:a});let h=k.matchPrefix(e,"b=");return h.length&&(h[0].indexOf("b=TIAS:")===0?h=parseInt(h[0].substr(7),10):h[0].indexOf("b=AS:")===0?h=parseInt(h[0].substr(5),10)*1e3*.95-50*40*8:h=void 0,t.forEach(c=>{c.maxBitrate=h})),t};k.parseRtcpParameters=function(e){let t={},i=k.matchPrefix(e,"a=ssrc:").map(o=>k.parseSsrcMedia(o)).filter(o=>o.attribute==="cname")[0];i&&(t.cname=i.value,t.ssrc=i.ssrc);let r=k.matchPrefix(e,"a=rtcp-rsize");t.reducedSize=r.length>0,t.compound=r.length===0;let s=k.matchPrefix(e,"a=rtcp-mux");return t.mux=s.length>0,t};k.writeRtcpParameters=function(e){let t="";return e.reducedSize&&(t+=`a=rtcp-rsize\r
19
- `),e.mux&&(t+=`a=rtcp-mux\r
20
- `),e.ssrc!==void 0&&e.cname&&(t+="a=ssrc:"+e.ssrc+" cname:"+e.cname+`\r
21
- `),t};k.parseMsid=function(e){let t,i=k.matchPrefix(e,"a=msid:");if(i.length===1)return t=i[0].substr(7).split(" "),{stream:t[0],track:t[1]};let r=k.matchPrefix(e,"a=ssrc:").map(s=>k.parseSsrcMedia(s)).filter(s=>s.attribute==="msid");if(r.length>0)return t=r[0].value.split(" "),{stream:t[0],track:t[1]}};k.parseSctpDescription=function(e){let t=k.parseMLine(e),i=k.matchPrefix(e,"a=max-message-size:"),r;i.length>0&&(r=parseInt(i[0].substr(19),10)),isNaN(r)&&(r=65536);let s=k.matchPrefix(e,"a=sctp-port:");if(s.length>0)return{port:parseInt(s[0].substr(12),10),protocol:t.fmt,maxMessageSize:r};let o=k.matchPrefix(e,"a=sctpmap:");if(o.length>0){let a=o[0].substr(10).split(" ");return{port:parseInt(a[0],10),protocol:a[1],maxMessageSize:r}}};k.writeSctpDescription=function(e,t){let i=[];return e.protocol!=="DTLS/SCTP"?i=["m="+e.kind+" 9 "+e.protocol+" "+t.protocol+`\r
22
- `,`c=IN IP4 0.0.0.0\r
23
- `,"a=sctp-port:"+t.port+`\r
24
- `]:i=["m="+e.kind+" 9 "+e.protocol+" "+t.port+`\r
25
- `,`c=IN IP4 0.0.0.0\r
26
- `,"a=sctpmap:"+t.port+" "+t.protocol+` 65535\r
27
- `],t.maxMessageSize!==void 0&&i.push("a=max-message-size:"+t.maxMessageSize+`\r
28
- `),i.join("")};k.generateSessionId=function(){return Math.random().toString().substr(2,21)};k.writeSessionBoilerplate=function(e,t,i){let r,s=t!==void 0?t:2;return e?r=e:r=k.generateSessionId(),`v=0\r
29
- o=`+(i||"thisisadapterortc")+" "+r+" "+s+` IN IP4 127.0.0.1\r
30
- s=-\r
31
- t=0 0\r
32
- `};k.getDirection=function(e,t){let i=k.splitLines(e);for(let r=0;r<i.length;r++)switch(i[r]){case"a=sendrecv":case"a=sendonly":case"a=recvonly":case"a=inactive":return i[r].substr(2);default:}return t?k.getDirection(t):"sendrecv"};k.getKind=function(e){return k.splitLines(e)[0].split(" ")[0].substr(2)};k.isRejected=function(e){return e.split(" ",2)[1]==="0"};k.parseMLine=function(e){let i=k.splitLines(e)[0].substr(2).split(" ");return{kind:i[0],port:parseInt(i[1],10),protocol:i[2],fmt:i.slice(3).join(" ")}};k.parseOLine=function(e){let i=k.matchPrefix(e,"o=")[0].substr(2).split(" ");return{username:i[0],sessionId:i[1],sessionVersion:parseInt(i[2],10),netType:i[3],addressType:i[4],address:i[5]}};k.isValidSDP=function(e){if(typeof e!="string"||e.length===0)return!1;let t=k.splitLines(e);for(let i=0;i<t.length;i++)if(t[i].length<2||t[i].charAt(1)!=="=")return!1;return!0};typeof Et=="object"&&(Et.exports=k)});var Pt=he(($n,_i)=>{var Ii=_i.exports={v:[{name:"version",reg:/^(\d*)$/}],o:[{name:"origin",reg:/^(\S*) (\d*) (\d*) (\S*) IP(\d) (\S*)/,names:["username","sessionId","sessionVersion","netType","ipVer","address"],format:"%s %s %d %s IP%d %s"}],s:[{name:"name"}],i:[{name:"description"}],u:[{name:"uri"}],e:[{name:"email"}],p:[{name:"phone"}],z:[{name:"timezones"}],r:[{name:"repeats"}],t:[{name:"timing",reg:/^(\d*) (\d*)/,names:["start","stop"],format:"%d %d"}],c:[{name:"connection",reg:/^IN IP(\d) (\S*)/,names:["version","ip"],format:"IN IP%d %s"}],b:[{push:"bandwidth",reg:/^(TIAS|AS|CT|RR|RS):(\d*)/,names:["type","limit"],format:"%s:%s"}],m:[{reg:/^(\w*) (\d*) ([\w/]*)(?: (.*))?/,names:["type","port","protocol","payloads"],format:"%s %d %s %s"}],a:[{push:"rtp",reg:/^rtpmap:(\d*) ([\w\-.]*)(?:\s*\/(\d*)(?:\s*\/(\S*))?)?/,names:["payload","codec","rate","encoding"],format:function(e){return e.encoding?"rtpmap:%d %s/%s/%s":e.rate?"rtpmap:%d %s/%s":"rtpmap:%d %s"}},{push:"fmtp",reg:/^fmtp:(\d*) ([\S| ]*)/,names:["payload","config"],format:"fmtp:%d %s"},{name:"control",reg:/^control:(.*)/,format:"control:%s"},{name:"rtcp",reg:/^rtcp:(\d*)(?: (\S*) IP(\d) (\S*))?/,names:["port","netType","ipVer","address"],format:function(e){return e.address!=null?"rtcp:%d %s IP%d %s":"rtcp:%d"}},{push:"rtcpFbTrrInt",reg:/^rtcp-fb:(\*|\d*) trr-int (\d*)/,names:["payload","value"],format:"rtcp-fb:%s trr-int %d"},{push:"rtcpFb",reg:/^rtcp-fb:(\*|\d*) ([\w-_]*)(?: ([\w-_]*))?/,names:["payload","type","subtype"],format:function(e){return e.subtype!=null?"rtcp-fb:%s %s %s":"rtcp-fb:%s %s"}},{push:"ext",reg:/^extmap:(\d+)(?:\/(\w+))?(?: (urn:ietf:params:rtp-hdrext:encrypt))? (\S*)(?: (\S*))?/,names:["value","direction","encrypt-uri","uri","config"],format:function(e){return"extmap:%d"+(e.direction?"/%s":"%v")+(e["encrypt-uri"]?" %s":"%v")+" %s"+(e.config?" %s":"")}},{name:"extmapAllowMixed",reg:/^(extmap-allow-mixed)/},{push:"crypto",reg:/^crypto:(\d*) ([\w_]*) (\S*)(?: (\S*))?/,names:["id","suite","config","sessionConfig"],format:function(e){return e.sessionConfig!=null?"crypto:%d %s %s %s":"crypto:%d %s %s"}},{name:"setup",reg:/^setup:(\w*)/,format:"setup:%s"},{name:"connectionType",reg:/^connection:(new|existing)/,format:"connection:%s"},{name:"mid",reg:/^mid:([^\s]*)/,format:"mid:%s"},{name:"msid",reg:/^msid:(.*)/,format:"msid:%s"},{name:"ptime",reg:/^ptime:(\d*(?:\.\d*)*)/,format:"ptime:%d"},{name:"maxptime",reg:/^maxptime:(\d*(?:\.\d*)*)/,format:"maxptime:%d"},{name:"direction",reg:/^(sendrecv|recvonly|sendonly|inactive)/},{name:"icelite",reg:/^(ice-lite)/},{name:"iceUfrag",reg:/^ice-ufrag:(\S*)/,format:"ice-ufrag:%s"},{name:"icePwd",reg:/^ice-pwd:(\S*)/,format:"ice-pwd:%s"},{name:"fingerprint",reg:/^fingerprint:(\S*) (\S*)/,names:["type","hash"],format:"fingerprint:%s %s"},{push:"candidates",reg:/^candidate:(\S*) (\d*) (\S*) (\d*) (\S*) (\d*) typ (\S*)(?: raddr (\S*) rport (\d*))?(?: tcptype (\S*))?(?: generation (\d*))?(?: network-id (\d*))?(?: network-cost (\d*))?/,names:["foundation","component","transport","priority","ip","port","type","raddr","rport","tcptype","generation","network-id","network-cost"],format:function(e){var t="candidate:%s %d %s %d %s %d typ %s";return t+=e.raddr!=null?" raddr %s rport %d":"%v%v",t+=e.tcptype!=null?" tcptype %s":"%v",e.generation!=null&&(t+=" generation %d"),t+=e["network-id"]!=null?" network-id %d":"%v",t+=e["network-cost"]!=null?" network-cost %d":"%v",t}},{name:"endOfCandidates",reg:/^(end-of-candidates)/},{name:"remoteCandidates",reg:/^remote-candidates:(.*)/,format:"remote-candidates:%s"},{name:"iceOptions",reg:/^ice-options:(\S*)/,format:"ice-options:%s"},{push:"ssrcs",reg:/^ssrc:(\d*) ([\w_-]*)(?::(.*))?/,names:["id","attribute","value"],format:function(e){var t="ssrc:%d";return e.attribute!=null&&(t+=" %s",e.value!=null&&(t+=":%s")),t}},{push:"ssrcGroups",reg:/^ssrc-group:([\x21\x23\x24\x25\x26\x27\x2A\x2B\x2D\x2E\w]*) (.*)/,names:["semantics","ssrcs"],format:"ssrc-group:%s %s"},{name:"msidSemantic",reg:/^msid-semantic:\s?(\w*) (\S*)/,names:["semantic","token"],format:"msid-semantic: %s %s"},{push:"groups",reg:/^group:(\w*) (.*)/,names:["type","mids"],format:"group:%s %s"},{name:"rtcpMux",reg:/^(rtcp-mux)/},{name:"rtcpRsize",reg:/^(rtcp-rsize)/},{name:"sctpmap",reg:/^sctpmap:([\w_/]*) (\S*)(?: (\S*))?/,names:["sctpmapNumber","app","maxMessageSize"],format:function(e){return e.maxMessageSize!=null?"sctpmap:%s %s %s":"sctpmap:%s %s"}},{name:"xGoogleFlag",reg:/^x-google-flag:([^\s]*)/,format:"x-google-flag:%s"},{push:"rids",reg:/^rid:([\d\w]+) (\w+)(?: ([\S| ]*))?/,names:["id","direction","params"],format:function(e){return e.params?"rid:%s %s %s":"rid:%s %s"}},{push:"imageattrs",reg:new RegExp("^imageattr:(\\d+|\\*)[\\s\\t]+(send|recv)[\\s\\t]+(\\*|\\[\\S+\\](?:[\\s\\t]+\\[\\S+\\])*)(?:[\\s\\t]+(recv|send)[\\s\\t]+(\\*|\\[\\S+\\](?:[\\s\\t]+\\[\\S+\\])*))?"),names:["pt","dir1","attrs1","dir2","attrs2"],format:function(e){return"imageattr:%s %s %s"+(e.dir2?" %s %s":"")}},{name:"simulcast",reg:new RegExp("^simulcast:(send|recv) ([a-zA-Z0-9\\-_~;,]+)(?:\\s?(send|recv) ([a-zA-Z0-9\\-_~;,]+))?$"),names:["dir1","list1","dir2","list2"],format:function(e){return"simulcast:%s %s"+(e.dir2?" %s %s":"")}},{name:"simulcast_03",reg:/^simulcast:[\s\t]+([\S+\s\t]+)$/,names:["value"],format:"simulcast: %s"},{name:"framerate",reg:/^framerate:(\d+(?:$|\.\d+))/,format:"framerate:%s"},{name:"sourceFilter",reg:/^source-filter: *(excl|incl) (\S*) (IP4|IP6|\*) (\S*) (.*)/,names:["filterMode","netType","addressTypes","destAddress","srcList"],format:"source-filter: %s %s %s %s %s"},{name:"bundleOnly",reg:/^(bundle-only)/},{name:"label",reg:/^label:(.+)/,format:"label:%s"},{name:"sctpPort",reg:/^sctp-port:(\d+)$/,format:"sctp-port:%s"},{name:"maxMessageSize",reg:/^max-message-size:(\d+)$/,format:"max-message-size:%s"},{push:"tsRefClocks",reg:/^ts-refclk:([^\s=]*)(?:=(\S*))?/,names:["clksrc","clksrcExt"],format:function(e){return"ts-refclk:%s"+(e.clksrcExt!=null?"=%s":"")}},{name:"mediaClk",reg:/^mediaclk:(?:id=(\S*))? *([^\s=]*)(?:=(\S*))?(?: *rate=(\d+)\/(\d+))?/,names:["id","mediaClockName","mediaClockValue","rateNumerator","rateDenominator"],format:function(e){var t="mediaclk:";return t+=e.id!=null?"id=%s %s":"%v%s",t+=e.mediaClockValue!=null?"=%s":"",t+=e.rateNumerator!=null?" rate=%s":"",t+=e.rateDenominator!=null?"/%s":"",t}},{name:"keywords",reg:/^keywds:(.+)$/,format:"keywds:%s"},{name:"content",reg:/^content:(.+)/,format:"content:%s"},{name:"bfcpFloorCtrl",reg:/^floorctrl:(c-only|s-only|c-s)/,format:"floorctrl:%s"},{name:"bfcpConfId",reg:/^confid:(\d+)/,format:"confid:%s"},{name:"bfcpUserId",reg:/^userid:(\d+)/,format:"userid:%s"},{name:"bfcpFloorId",reg:/^floorid:(.+) (?:m-stream|mstrm):(.+)/,names:["id","mStream"],format:"floorid:%s mstrm:%s"},{push:"invalid",names:["value"]}]};Object.keys(Ii).forEach(function(e){var t=Ii[e];t.forEach(function(i){i.reg||(i.reg=/(.*)/),i.format||(i.format="%s")})})});var wi=he(re=>{var ke=function(e){return String(Number(e))===e?Number(e):e},Fr=function(e,t,i,r){if(r&&!i)t[r]=ke(e[1]);else for(var s=0;s<i.length;s+=1)e[s+1]!=null&&(t[i[s]]=ke(e[s+1]))},Vr=function(e,t,i){var r=e.name&&e.names;e.push&&!t[e.push]?t[e.push]=[]:r&&!t[e.name]&&(t[e.name]={});var s=e.push?{}:r?t[e.name]:t;Fr(i.match(e.reg),s,e.names,e.name),e.push&&t[e.push].push(s)},Di=Pt(),Br=RegExp.prototype.test.bind(/^([a-z])=(.*)/);re.parse=function(e){var t={},i=[],r=t;return e.split(/(\r\n|\r|\n)/).filter(Br).forEach(function(s){var o=s[0],a=s.slice(2);o==="m"&&(i.push({rtp:[],fmtp:[]}),r=i[i.length-1]);for(var l=0;l<(Di[o]||[]).length;l+=1){var m=Di[o][l];if(m.reg.test(a))return Vr(m,r,a)}}),t.media=i,t};var Mi=function(e,t){var i=t.split(/=(.+)/,2);return i.length===2?e[i[0]]=ke(i[1]):i.length===1&&t.length>1&&(e[i[0]]=void 0),e};re.parseParams=function(e){return e.split(/;\s?/).reduce(Mi,{})};re.parseFmtpConfig=re.parseParams;re.parsePayloads=function(e){return e.toString().split(" ").map(Number)};re.parseRemoteCandidates=function(e){for(var t=[],i=e.split(" ").map(ke),r=0;r<i.length;r+=3)t.push({component:i[r],ip:i[r+1],port:i[r+2]});return t};re.parseImageAttributes=function(e){return e.split(" ").map(function(t){return t.substring(1,t.length-1).split(",").reduce(Mi,{})})};re.parseSimulcastStreamList=function(e){return e.split(";").map(function(t){return t.split(",").map(function(i){var r,s=!1;return i[0]!=="~"?r=ke(i):(r=ke(i.substring(1,i.length)),s=!0),{scid:r,paused:s}})})}});var Oi=he((Kn,Li)=>{var Rt=Pt(),Hr=/%[sdv%]/g,jr=function(e){var t=1,i=arguments,r=i.length;return e.replace(Hr,function(s){if(t>=r)return s;var o=i[t];switch(t+=1,s){case"%%":return"%";case"%s":return String(o);case"%d":return Number(o);case"%v":return""}})},Ne=function(e,t,i){var r=t.format instanceof Function?t.format(t.push?i:i[t.name]):t.format,s=[e+"="+r];if(t.names)for(var o=0;o<t.names.length;o+=1){var a=t.names[o];t.name?s.push(i[t.name][a]):s.push(i[t.names[o]])}else s.push(i[t.name]);return jr.apply(null,s)},$r=["v","o","s","i","u","e","p","c","b","t","r","z","a"],Wr=["i","c","b","a"];Li.exports=function(e,t){t=t||{},e.version==null&&(e.version=0),e.name==null&&(e.name=" "),e.media.forEach(function(o){o.payloads==null&&(o.payloads="")});var i=t.outerOrder||$r,r=t.innerOrder||Wr,s=[];return i.forEach(function(o){Rt[o].forEach(function(a){a.name in e&&e[a.name]!=null?s.push(Ne(o,a,e)):a.push in e&&e[a.push]!=null&&e[a.push].forEach(function(l){s.push(Ne(o,a,l))})})}),e.media.forEach(function(o){s.push(Ne("m",Rt.m[0],o)),r.forEach(function(a){Rt[a].forEach(function(l){l.name in o&&o[l.name]!=null?s.push(Ne(a,l,o)):l.push in o&&o[l.push]!=null&&o[l.push].forEach(function(m){s.push(Ne(a,l,m))})})})}),s.join(`\r
33
- `)+`\r
34
- `}});var Ni=he(se=>{var pe=wi(),Kr=Oi();se.write=Kr;se.parse=pe.parse;se.parseParams=pe.parseParams;se.parseFmtpConfig=pe.parseFmtpConfig;se.parsePayloads=pe.parsePayloads;se.parseRemoteCandidates=pe.parseRemoteCandidates;se.parseImageAttributes=pe.parseImageAttributes;se.parseSimulcastStreamList=pe.parseSimulcastStreamList});var xi=he((xe,tt)=>{(function(e,t){"use strict";var i="1.0.2",r="",s="?",o="function",a="undefined",l="object",m="string",h="major",c="model",p="name",u="type",v="vendor",E="version",A="architecture",q="console",I="mobile",_="tablet",z="smarttv",X="wearable",ne="embedded",de=255,G="Amazon",be="Apple",Pe="ASUS",me="BlackBerry",te="Browser",fe="Chrome",D="Edge",ge="Firefox",ae="Google",Ve="Huawei",n="LG",d="Microsoft",f="Motorola",g="Opera",T="Samsung",S="Sony",y="Xiaomi",P="Zebra",C="Facebook",b=function(w,x){var L={};for(var $ in w)x[$]&&x[$].length%2==0?L[$]=x[$].concat(w[$]):L[$]=w[$];return L},R=function(w){for(var x={},L=0;L<w.length;L++)x[w[L].toUpperCase()]=w[L];return x},W=function(w,x){return typeof w===m?M(x).indexOf(M(w))!==-1:!1},M=function(w){return w.toLowerCase()},N=function(w){return typeof w===m?w.replace(/[^\d\.]/g,r).split(".")[0]:t},U=function(w,x){if(typeof w===m)return w=w.replace(/^\s\s*/,r).replace(/\s\s*$/,r),typeof x===a?w:w.substring(0,de)},H=function(w,x){for(var L=0,$,O,He,F,Ae,ee;L<x.length&&!Ae;){var Lt=x[L],Ot=x[L+1];for($=O=0;$<Lt.length&&!Ae;)if(Ae=Lt[$++].exec(w),Ae)for(He=0;He<Ot.length;He++)ee=Ae[++O],F=Ot[He],typeof F===l&&F.length>0?F.length===2?typeof F[1]==o?this[F[0]]=F[1].call(this,ee):this[F[0]]=F[1]:F.length===3?typeof F[1]===o&&!(F[1].exec&&F[1].test)?this[F[0]]=ee?F[1].call(this,ee,F[2]):t:this[F[0]]=ee?ee.replace(F[1],F[2]):t:F.length===4&&(this[F[0]]=ee?F[3].call(this,ee.replace(F[1],F[2])):t):this[F]=ee||t;L+=2}},ue=function(w,x){for(var L in x)if(typeof x[L]===l&&x[L].length>0){for(var $=0;$<x[L].length;$++)if(W(x[L][$],w))return L===s?t:L}else if(W(x[L],w))return L===s?t:L;return w},Re={"1.0":"/8","1.2":"/1","1.3":"/3","2.0":"/412","2.0.2":"/416","2.0.3":"/417","2.0.4":"/419","?":"/"},oe={ME:"4.90","NT 3.11":"NT3.51","NT 4.0":"NT4.0","2000":"NT 5.0",XP:["NT 5.1","NT 5.2"],Vista:"NT 6.0","7":"NT 6.1","8":"NT 6.2","8.1":"NT 6.3","10":["NT 6.4","NT 10.0"],RT:"ARM"},ve={browser:[[/\b(?:crmo|crios)\/([\w\.]+)/i],[E,[p,"Chrome"]],[/edg(?:e|ios|a)?\/([\w\.]+)/i],[E,[p,"Edge"]],[/(opera mini)\/([-\w\.]+)/i,/(opera [mobiletab]{3,6})\b.+version\/([-\w\.]+)/i,/(opera)(?:.+version\/|[\/ ]+)([\w\.]+)/i],[p,E],[/opios[\/ ]+([\w\.]+)/i],[E,[p,g+" Mini"]],[/\bopr\/([\w\.]+)/i],[E,[p,g]],[/(kindle)\/([\w\.]+)/i,/(lunascape|maxthon|netfront|jasmine|blazer)[\/ ]?([\w\.]*)/i,/(avant |iemobile|slim)(?:browser)?[\/ ]?([\w\.]*)/i,/(ba?idubrowser)[\/ ]?([\w\.]+)/i,/(?:ms|\()(ie) ([\w\.]+)/i,/(flock|rockmelt|midori|epiphany|silk|skyfire|ovibrowser|bolt|iron|vivaldi|iridium|phantomjs|bowser|quark|qupzilla|falkon|rekonq|puffin|brave|whale|qqbrowserlite|qq)\/([-\w\.]+)/i,/(weibo)__([\d\.]+)/i],[p,E],[/(?:\buc? ?browser|(?:juc.+)ucweb)[\/ ]?([\w\.]+)/i],[E,[p,"UC"+te]],[/\bqbcore\/([\w\.]+)/i],[E,[p,"WeChat(Win) Desktop"]],[/micromessenger\/([\w\.]+)/i],[E,[p,"WeChat"]],[/konqueror\/([\w\.]+)/i],[E,[p,"Konqueror"]],[/trident.+rv[: ]([\w\.]{1,9})\b.+like gecko/i],[E,[p,"IE"]],[/yabrowser\/([\w\.]+)/i],[E,[p,"Yandex"]],[/(avast|avg)\/([\w\.]+)/i],[[p,/(.+)/,"$1 Secure "+te],E],[/\bfocus\/([\w\.]+)/i],[E,[p,ge+" Focus"]],[/\bopt\/([\w\.]+)/i],[E,[p,g+" Touch"]],[/coc_coc\w+\/([\w\.]+)/i],[E,[p,"Coc Coc"]],[/dolfin\/([\w\.]+)/i],[E,[p,"Dolphin"]],[/coast\/([\w\.]+)/i],[E,[p,g+" Coast"]],[/miuibrowser\/([\w\.]+)/i],[E,[p,"MIUI "+te]],[/fxios\/([-\w\.]+)/i],[E,[p,ge]],[/\bqihu|(qi?ho?o?|360)browser/i],[[p,"360 "+te]],[/(oculus|samsung|sailfish)browser\/([\w\.]+)/i],[[p,/(.+)/,"$1 "+te],E],[/(comodo_dragon)\/([\w\.]+)/i],[[p,/_/g," "],E],[/(electron)\/([\w\.]+) safari/i,/(tesla)(?: qtcarbrowser|\/(20\d\d\.[-\w\.]+))/i,/m?(qqbrowser|baiduboxapp|2345Explorer)[\/ ]?([\w\.]+)/i],[p,E],[/(metasr)[\/ ]?([\w\.]+)/i,/(lbbrowser)/i],[p],[/((?:fban\/fbios|fb_iab\/fb4a)(?!.+fbav)|;fbav\/([\w\.]+);)/i],[[p,C],E],[/safari (line)\/([\w\.]+)/i,/\b(line)\/([\w\.]+)\/iab/i,/(chromium|instagram)[\/ ]([-\w\.]+)/i],[p,E],[/\bgsa\/([\w\.]+) .*safari\//i],[E,[p,"GSA"]],[/headlesschrome(?:\/([\w\.]+)| )/i],[E,[p,fe+" Headless"]],[/ wv\).+(chrome)\/([\w\.]+)/i],[[p,fe+" WebView"],E],[/droid.+ version\/([\w\.]+)\b.+(?:mobile safari|safari)/i],[E,[p,"Android "+te]],[/(chrome|omniweb|arora|[tizenoka]{5} ?browser)\/v?([\w\.]+)/i],[p,E],[/version\/([\w\.]+) .*mobile\/\w+ (safari)/i],[E,[p,"Mobile Safari"]],[/version\/([\w\.]+) .*(mobile ?safari|safari)/i],[E,p],[/webkit.+?(mobile ?safari|safari)(\/[\w\.]+)/i],[p,[E,ue,Re]],[/(webkit|khtml)\/([\w\.]+)/i],[p,E],[/(navigator|netscape\d?)\/([-\w\.]+)/i],[[p,"Netscape"],E],[/mobile vr; rv:([\w\.]+)\).+firefox/i],[E,[p,ge+" Reality"]],[/ekiohf.+(flow)\/([\w\.]+)/i,/(swiftfox)/i,/(icedragon|iceweasel|camino|chimera|fennec|maemo browser|minimo|conkeror|klar)[\/ ]?([\w\.\+]+)/i,/(seamonkey|k-meleon|icecat|iceape|firebird|phoenix|palemoon|basilisk|waterfox)\/([-\w\.]+)$/i,/(firefox)\/([\w\.]+)/i,/(mozilla)\/([\w\.]+) .+rv\:.+gecko\/\d+/i,/(polaris|lynx|dillo|icab|doris|amaya|w3m|netsurf|sleipnir|obigo|mosaic|(?:go|ice|up)[\. ]?browser)[-\/ ]?v?([\w\.]+)/i,/(links) \(([\w\.]+)/i],[p,E]],cpu:[[/(?:(amd|x(?:(?:86|64)[-_])?|wow|win)64)[;\)]/i],[[A,"amd64"]],[/(ia32(?=;))/i],[[A,M]],[/((?:i[346]|x)86)[;\)]/i],[[A,"ia32"]],[/\b(aarch64|arm(v?8e?l?|_?64))\b/i],[[A,"arm64"]],[/\b(arm(?:v[67])?ht?n?[fl]p?)\b/i],[[A,"armhf"]],[/windows (ce|mobile); ppc;/i],[[A,"arm"]],[/((?:ppc|powerpc)(?:64)?)(?: mac|;|\))/i],[[A,/ower/,r,M]],[/(sun4\w)[;\)]/i],[[A,"sparc"]],[/((?:avr32|ia64(?=;))|68k(?=\))|\barm(?=v(?:[1-7]|[5-7]1)l?|;|eabi)|(?=atmel )avr|(?:irix|mips|sparc)(?:64)?\b|pa-risc)/i],[[A,M]]],device:[[/\b(sch-i[89]0\d|shw-m380s|sm-[pt]\w{2,4}|gt-[pn]\d{2,4}|sgh-t8[56]9|nexus 10)/i],[c,[v,T],[u,_]],[/\b((?:s[cgp]h|gt|sm)-\w+|galaxy nexus)/i,/samsung[- ]([-\w]+)/i,/sec-(sgh\w+)/i],[c,[v,T],[u,I]],[/\((ip(?:hone|od)[\w ]*);/i],[c,[v,be],[u,I]],[/\((ipad);[-\w\),; ]+apple/i,/applecoremedia\/[\w\.]+ \((ipad)/i,/\b(ipad)\d\d?,\d\d?[;\]].+ios/i],[c,[v,be],[u,_]],[/\b((?:ag[rs][23]?|bah2?|sht?|btv)-a?[lw]\d{2})\b(?!.+d\/s)/i],[c,[v,Ve],[u,_]],[/(?:huawei|honor)([-\w ]+)[;\)]/i,/\b(nexus 6p|\w{2,4}-[atu]?[ln][01259x][012359][an]?)\b(?!.+d\/s)/i],[c,[v,Ve],[u,I]],[/\b(poco[\w ]+)(?: bui|\))/i,/\b; (\w+) build\/hm\1/i,/\b(hm[-_ ]?note?[_ ]?(?:\d\w)?) bui/i,/\b(redmi[\-_ ]?(?:note|k)?[\w_ ]+)(?: bui|\))/i,/\b(mi[-_ ]?(?:a\d|one|one[_ ]plus|note lte|max)?[_ ]?(?:\d?\w?)[_ ]?(?:plus|se|lite)?)(?: bui|\))/i],[[c,/_/g," "],[v,y],[u,I]],[/\b(mi[-_ ]?(?:pad)(?:[\w_ ]+))(?: bui|\))/i],[[c,/_/g," "],[v,y],[u,_]],[/; (\w+) bui.+ oppo/i,/\b(cph[12]\d{3}|p(?:af|c[al]|d\w|e[ar])[mt]\d0|x9007|a101op)\b/i],[c,[v,"OPPO"],[u,I]],[/vivo (\w+)(?: bui|\))/i,/\b(v[12]\d{3}\w?[at])(?: bui|;)/i],[c,[v,"Vivo"],[u,I]],[/\b(rmx[12]\d{3})(?: bui|;|\))/i],[c,[v,"Realme"],[u,I]],[/\b(milestone|droid(?:[2-4x]| (?:bionic|x2|pro|razr))?:?( 4g)?)\b[\w ]+build\//i,/\bmot(?:orola)?[- ](\w*)/i,/((?:moto[\w\(\) ]+|xt\d{3,4}|nexus 6)(?= bui|\)))/i],[c,[v,f],[u,I]],[/\b(mz60\d|xoom[2 ]{0,2}) build\//i],[c,[v,f],[u,_]],[/((?=lg)?[vl]k\-?\d{3}) bui| 3\.[-\w; ]{10}lg?-([06cv9]{3,4})/i],[c,[v,n],[u,_]],[/(lm(?:-?f100[nv]?|-[\w\.]+)(?= bui|\))|nexus [45])/i,/\blg[-e;\/ ]+((?!browser|netcast|android tv)\w+)/i,/\blg-?([\d\w]+) bui/i],[c,[v,n],[u,I]],[/(ideatab[-\w ]+)/i,/lenovo ?(s[56]000[-\w]+|tab(?:[\w ]+)|yt[-\d\w]{6}|tb[-\d\w]{6})/i],[c,[v,"Lenovo"],[u,_]],[/(?:maemo|nokia).*(n900|lumia \d+)/i,/nokia[-_ ]?([-\w\.]*)/i],[[c,/_/g," "],[v,"Nokia"],[u,I]],[/(pixel c)\b/i],[c,[v,ae],[u,_]],[/droid.+; (pixel[\daxl ]{0,6})(?: bui|\))/i],[c,[v,ae],[u,I]],[/droid.+ ([c-g]\d{4}|so[-gl]\w+|xq-a\w[4-7][12])(?= bui|\).+chrome\/(?![1-6]{0,1}\d\.))/i],[c,[v,S],[u,I]],[/sony tablet [ps]/i,/\b(?:sony)?sgp\w+(?: bui|\))/i],[[c,"Xperia Tablet"],[v,S],[u,_]],[/ (kb2005|in20[12]5|be20[12][59])\b/i,/(?:one)?(?:plus)? (a\d0\d\d)(?: b|\))/i],[c,[v,"OnePlus"],[u,I]],[/(alexa)webm/i,/(kf[a-z]{2}wi)( bui|\))/i,/(kf[a-z]+)( bui|\)).+silk\//i],[c,[v,G],[u,_]],[/((?:sd|kf)[0349hijorstuw]+)( bui|\)).+silk\//i],[[c,/(.+)/g,"Fire Phone $1"],[v,G],[u,I]],[/(playbook);[-\w\),; ]+(rim)/i],[c,v,[u,_]],[/\b((?:bb[a-f]|st[hv])100-\d)/i,/\(bb10; (\w+)/i],[c,[v,me],[u,I]],[/(?:\b|asus_)(transfo[prime ]{4,10} \w+|eeepc|slider \w+|nexus 7|padfone|p00[cj])/i],[c,[v,Pe],[u,_]],[/ (z[bes]6[027][012][km][ls]|zenfone \d\w?)\b/i],[c,[v,Pe],[u,I]],[/(nexus 9)/i],[c,[v,"HTC"],[u,_]],[/(htc)[-;_ ]{1,2}([\w ]+(?=\)| bui)|\w+)/i,/(zte)[- ]([\w ]+?)(?: bui|\/|\))/i,/(alcatel|geeksphone|nexian|panasonic|sony)[-_ ]?([-\w]*)/i],[v,[c,/_/g," "],[u,I]],[/droid.+; ([ab][1-7]-?[0178a]\d\d?)/i],[c,[v,"Acer"],[u,_]],[/droid.+; (m[1-5] note) bui/i,/\bmz-([-\w]{2,})/i],[c,[v,"Meizu"],[u,I]],[/\b(sh-?[altvz]?\d\d[a-ekm]?)/i],[c,[v,"Sharp"],[u,I]],[/(blackberry|benq|palm(?=\-)|sonyericsson|acer|asus|dell|meizu|motorola|polytron)[-_ ]?([-\w]*)/i,/(hp) ([\w ]+\w)/i,/(asus)-?(\w+)/i,/(microsoft); (lumia[\w ]+)/i,/(lenovo)[-_ ]?([-\w]+)/i,/(jolla)/i,/(oppo) ?([\w ]+) bui/i],[v,c,[u,I]],[/(archos) (gamepad2?)/i,/(hp).+(touchpad(?!.+tablet)|tablet)/i,/(kindle)\/([\w\.]+)/i,/(nook)[\w ]+build\/(\w+)/i,/(dell) (strea[kpr\d ]*[\dko])/i,/(le[- ]+pan)[- ]+(\w{1,9}) bui/i,/(trinity)[- ]*(t\d{3}) bui/i,/(gigaset)[- ]+(q\w{1,9}) bui/i,/(vodafone) ([\w ]+)(?:\)| bui)/i],[v,c,[u,_]],[/(surface duo)/i],[c,[v,d],[u,_]],[/droid [\d\.]+; (fp\du?)(?: b|\))/i],[c,[v,"Fairphone"],[u,I]],[/(u304aa)/i],[c,[v,"AT&T"],[u,I]],[/\bsie-(\w*)/i],[c,[v,"Siemens"],[u,I]],[/\b(rct\w+) b/i],[c,[v,"RCA"],[u,_]],[/\b(venue[\d ]{2,7}) b/i],[c,[v,"Dell"],[u,_]],[/\b(q(?:mv|ta)\w+) b/i],[c,[v,"Verizon"],[u,_]],[/\b(?:barnes[& ]+noble |bn[rt])([\w\+ ]*) b/i],[c,[v,"Barnes & Noble"],[u,_]],[/\b(tm\d{3}\w+) b/i],[c,[v,"NuVision"],[u,_]],[/\b(k88) b/i],[c,[v,"ZTE"],[u,_]],[/\b(nx\d{3}j) b/i],[c,[v,"ZTE"],[u,I]],[/\b(gen\d{3}) b.+49h/i],[c,[v,"Swiss"],[u,I]],[/\b(zur\d{3}) b/i],[c,[v,"Swiss"],[u,_]],[/\b((zeki)?tb.*\b) b/i],[c,[v,"Zeki"],[u,_]],[/\b([yr]\d{2}) b/i,/\b(dragon[- ]+touch |dt)(\w{5}) b/i],[[v,"Dragon Touch"],c,[u,_]],[/\b(ns-?\w{0,9}) b/i],[c,[v,"Insignia"],[u,_]],[/\b((nxa|next)-?\w{0,9}) b/i],[c,[v,"NextBook"],[u,_]],[/\b(xtreme\_)?(v(1[045]|2[015]|[3469]0|7[05])) b/i],[[v,"Voice"],c,[u,I]],[/\b(lvtel\-)?(v1[12]) b/i],[[v,"LvTel"],c,[u,I]],[/\b(ph-1) /i],[c,[v,"Essential"],[u,I]],[/\b(v(100md|700na|7011|917g).*\b) b/i],[c,[v,"Envizen"],[u,_]],[/\b(trio[-\w\. ]+) b/i],[c,[v,"MachSpeed"],[u,_]],[/\btu_(1491) b/i],[c,[v,"Rotor"],[u,_]],[/(shield[\w ]+) b/i],[c,[v,"Nvidia"],[u,_]],[/(sprint) (\w+)/i],[v,c,[u,I]],[/(kin\.[onetw]{3})/i],[[c,/\./g," "],[v,d],[u,I]],[/droid.+; (cc6666?|et5[16]|mc[239][23]x?|vc8[03]x?)\)/i],[c,[v,P],[u,_]],[/droid.+; (ec30|ps20|tc[2-8]\d[kx])\)/i],[c,[v,P],[u,I]],[/(ouya)/i,/(nintendo) ([wids3utch]+)/i],[v,c,[u,q]],[/droid.+; (shield) bui/i],[c,[v,"Nvidia"],[u,q]],[/(playstation [345portablevi]+)/i],[c,[v,S],[u,q]],[/\b(xbox(?: one)?(?!; xbox))[\); ]/i],[c,[v,d],[u,q]],[/smart-tv.+(samsung)/i],[v,[u,z]],[/hbbtv.+maple;(\d+)/i],[[c,/^/,"SmartTV"],[v,T],[u,z]],[/(nux; netcast.+smarttv|lg (netcast\.tv-201\d|android tv))/i],[[v,n],[u,z]],[/(apple) ?tv/i],[v,[c,be+" TV"],[u,z]],[/crkey/i],[[c,fe+"cast"],[v,ae],[u,z]],[/droid.+aft(\w)( bui|\))/i],[c,[v,G],[u,z]],[/\(dtv[\);].+(aquos)/i],[c,[v,"Sharp"],[u,z]],[/\b(roku)[\dx]*[\)\/]((?:dvp-)?[\d\.]*)/i,/hbbtv\/\d+\.\d+\.\d+ +\([\w ]*; *(\w[^;]*);([^;]*)/i],[[v,U],[c,U],[u,z]],[/\b(android tv|smart[- ]?tv|opera tv|tv; rv:)\b/i],[[u,z]],[/((pebble))app/i],[v,c,[u,X]],[/droid.+; (glass) \d/i],[c,[v,ae],[u,X]],[/droid.+; (wt63?0{2,3})\)/i],[c,[v,P],[u,X]],[/(quest( 2)?)/i],[c,[v,C],[u,X]],[/(tesla)(?: qtcarbrowser|\/[-\w\.]+)/i],[v,[u,ne]],[/droid .+?; ([^;]+?)(?: bui|\) applew).+? mobile safari/i],[c,[u,I]],[/droid .+?; ([^;]+?)(?: bui|\) applew).+?(?! mobile) safari/i],[c,[u,_]],[/\b((tablet|tab)[;\/]|focus\/\d(?!.+mobile))/i],[[u,_]],[/(phone|mobile(?:[;\/]| safari)|pda(?=.+windows ce))/i],[[u,I]],[/(android[-\w\. ]{0,9});.+buil/i],[c,[v,"Generic"]]],engine:[[/windows.+ edge\/([\w\.]+)/i],[E,[p,D+"HTML"]],[/webkit\/537\.36.+chrome\/(?!27)([\w\.]+)/i],[E,[p,"Blink"]],[/(presto)\/([\w\.]+)/i,/(webkit|trident|netfront|netsurf|amaya|lynx|w3m|goanna)\/([\w\.]+)/i,/ekioh(flow)\/([\w\.]+)/i,/(khtml|tasman|links)[\/ ]\(?([\w\.]+)/i,/(icab)[\/ ]([23]\.[\d\.]+)/i],[p,E],[/rv\:([\w\.]{1,9})\b.+(gecko)/i],[E,p]],os:[[/microsoft (windows) (vista|xp)/i],[p,E],[/(windows) nt 6\.2; (arm)/i,/(windows (?:phone(?: os)?|mobile))[\/ ]?([\d\.\w ]*)/i,/(windows)[\/ ]?([ntce\d\. ]+\w)(?!.+xbox)/i],[p,[E,ue,oe]],[/(win(?=3|9|n)|win 9x )([nt\d\.]+)/i],[[p,"Windows"],[E,ue,oe]],[/ip[honead]{2,4}\b(?:.*os ([\w]+) like mac|; opera)/i,/cfnetwork\/.+darwin/i],[[E,/_/g,"."],[p,"iOS"]],[/(mac os x) ?([\w\. ]*)/i,/(macintosh|mac_powerpc\b)(?!.+haiku)/i],[[p,"Mac OS"],[E,/_/g,"."]],[/droid ([\w\.]+)\b.+(android[- ]x86)/i],[E,p],[/(android|webos|qnx|bada|rim tablet os|maemo|meego|sailfish)[-\/ ]?([\w\.]*)/i,/(blackberry)\w*\/([\w\.]*)/i,/(tizen|kaios)[\/ ]([\w\.]+)/i,/\((series40);/i],[p,E],[/\(bb(10);/i],[E,[p,me]],[/(?:symbian ?os|symbos|s60(?=;)|series60)[-\/ ]?([\w\.]*)/i],[E,[p,"Symbian"]],[/mozilla\/[\d\.]+ \((?:mobile|tablet|tv|mobile; [\w ]+); rv:.+ gecko\/([\w\.]+)/i],[E,[p,ge+" OS"]],[/web0s;.+rt(tv)/i,/\b(?:hp)?wos(?:browser)?\/([\w\.]+)/i],[E,[p,"webOS"]],[/crkey\/([\d\.]+)/i],[E,[p,fe+"cast"]],[/(cros) [\w]+ ([\w\.]+\w)/i],[[p,"Chromium OS"],E],[/(nintendo|playstation) ([wids345portablevuch]+)/i,/(xbox); +xbox ([^\);]+)/i,/\b(joli|palm)\b ?(?:os)?\/?([\w\.]*)/i,/(mint)[\/\(\) ]?(\w*)/i,/(mageia|vectorlinux)[; ]/i,/([kxln]?ubuntu|debian|suse|opensuse|gentoo|arch(?= linux)|slackware|fedora|mandriva|centos|pclinuxos|red ?hat|zenwalk|linpus|raspbian|plan 9|minix|risc os|contiki|deepin|manjaro|elementary os|sabayon|linspire)(?: gnu\/linux)?(?: enterprise)?(?:[- ]linux)?(?:-gnu)?[-\/ ]?(?!chrom|package)([-\w\.]*)/i,/(hurd|linux) ?([\w\.]*)/i,/(gnu) ?([\w\.]*)/i,/\b([-frentopcghs]{0,5}bsd|dragonfly)[\/ ]?(?!amd|[ix346]{1,2}86)([\w\.]*)/i,/(haiku) (\w+)/i],[p,E],[/(sunos) ?([\w\.\d]*)/i],[[p,"Solaris"],E],[/((?:open)?solaris)[-\/ ]?([\w\.]*)/i,/(aix) ((\d)(?=\.|\)| )[\w\.])*/i,/\b(beos|os\/2|amigaos|morphos|openvms|fuchsia|hp-ux)/i,/(unix) ?([\w\.]*)/i],[p,E]]},V=function(w,x){if(typeof w===l&&(x=w,w=t),!(this instanceof V))return new V(w,x).getResult();var L=w||(typeof e!==a&&e.navigator&&e.navigator.userAgent?e.navigator.userAgent:r),$=x?b(ve,x):ve;return this.getBrowser=function(){var O={};return O[p]=t,O[E]=t,H.call(O,L,$.browser),O.major=N(O.version),O},this.getCPU=function(){var O={};return O[A]=t,H.call(O,L,$.cpu),O},this.getDevice=function(){var O={};return O[v]=t,O[c]=t,O[u]=t,H.call(O,L,$.device),O},this.getEngine=function(){var O={};return O[p]=t,O[E]=t,H.call(O,L,$.engine),O},this.getOS=function(){var O={};return O[p]=t,O[E]=t,H.call(O,L,$.os),O},this.getResult=function(){return{ua:this.getUA(),browser:this.getBrowser(),engine:this.getEngine(),os:this.getOS(),device:this.getDevice(),cpu:this.getCPU()}},this.getUA=function(){return L},this.setUA=function(O){return L=typeof O===m&&O.length>de?U(O,de):O,this},this.setUA(L),this};V.VERSION=i,V.BROWSER=R([p,E,h]),V.CPU=R([A]),V.DEVICE=R([c,v,u,q,I,z,_,X,ne]),V.ENGINE=V.OS=R([p,E]),typeof xe!==a?(typeof tt!==a&&tt.exports&&(xe=tt.exports=V),xe.UAParser=V):typeof define===o&&define.amd?define(function(){return V}):typeof e!==a&&(e.UAParser=V);var j=typeof e!==a&&(e.jQuery||e.Zepto);if(j&&!j.ua){var Be=new V;j.ua=Be.getResult(),j.ua.get=function(){return Be.getUA()},j.ua.set=function(w){Be.setUA(w);var x=Be.getResult();for(var L in x)j.ua[L]=x[L]}}})(typeof window=="object"?window:xe)});var Ue=he((Vi,Bi)=>{(function(e){var t=Object.hasOwnProperty,i=Array.isArray?Array.isArray:function(d){return Object.prototype.toString.call(d)==="[object Array]"},r=10,s=typeof process=="object"&&typeof process.nextTick=="function",o=typeof Symbol=="function",a=typeof Reflect=="object",l=typeof setImmediate=="function",m=l?setImmediate:setTimeout,h=o?a&&typeof Reflect.ownKeys=="function"?Reflect.ownKeys:function(n){var d=Object.getOwnPropertyNames(n);return d.push.apply(d,Object.getOwnPropertySymbols(n)),d}:Object.keys;function c(){this._events={},this._conf&&p.call(this,this._conf)}function p(n){n&&(this._conf=n,n.delimiter&&(this.delimiter=n.delimiter),n.maxListeners!==e&&(this._maxListeners=n.maxListeners),n.wildcard&&(this.wildcard=n.wildcard),n.newListener&&(this._newListener=n.newListener),n.removeListener&&(this._removeListener=n.removeListener),n.verboseMemoryLeak&&(this.verboseMemoryLeak=n.verboseMemoryLeak),n.ignoreErrors&&(this.ignoreErrors=n.ignoreErrors),this.wildcard&&(this.listenerTree={}))}function u(n,d){var f="(node) warning: possible EventEmitter memory leak detected. "+n+" listeners added. Use emitter.setMaxListeners() to increase limit.";if(this.verboseMemoryLeak&&(f+=" Event name: "+d+"."),typeof process!="undefined"&&process.emitWarning){var g=new Error(f);g.name="MaxListenersExceededWarning",g.emitter=this,g.count=n,process.emitWarning(g)}else console.error(f),console.trace&&console.trace()}var v=function(n,d,f){var g=arguments.length;switch(g){case 0:return[];case 1:return[n];case 2:return[n,d];case 3:return[n,d,f];default:for(var T=new Array(g);g--;)T[g]=arguments[g];return T}};function E(n,d){for(var f={},g,T=n.length,S=d?value.length:0,y=0;y<T;y++)g=n[y],f[g]=y<S?d[y]:e;return f}function A(n,d,f){this._emitter=n,this._target=d,this._listeners={},this._listenersCount=0;var g,T;if((f.on||f.off)&&(g=f.on,T=f.off),d.addEventListener?(g=d.addEventListener,T=d.removeEventListener):d.addListener?(g=d.addListener,T=d.removeListener):d.on&&(g=d.on,T=d.off),!g&&!T)throw Error("target does not implement any known event API");if(typeof g!="function")throw TypeError("on method must be a function");if(typeof T!="function")throw TypeError("off method must be a function");this._on=g,this._off=T;var S=n._observers;S?S.push(this):n._observers=[this]}Object.assign(A.prototype,{subscribe:function(n,d,f){var g=this,T=this._target,S=this._emitter,y=this._listeners,P=function(){var C=v.apply(null,arguments),b={data:C,name:d,original:n};if(f){var R=f.call(T,b);R!==!1&&S.emit.apply(S,[b.name].concat(C));return}S.emit.apply(S,[d].concat(C))};if(y[n])throw Error("Event '"+n+"' is already listening");this._listenersCount++,S._newListener&&S._removeListener&&!g._onNewListener?(this._onNewListener=function(C){C===d&&y[n]===null&&(y[n]=P,g._on.call(T,n,P))},S.on("newListener",this._onNewListener),this._onRemoveListener=function(C){C===d&&!S.hasListeners(C)&&y[n]&&(y[n]=null,g._off.call(T,n,P))},y[n]=null,S.on("removeListener",this._onRemoveListener)):(y[n]=P,g._on.call(T,n,P))},unsubscribe:function(n){var d=this,f=this._listeners,g=this._emitter,T,S,y=this._off,P=this._target,C;if(n&&typeof n!="string")throw TypeError("event must be a string");function b(){d._onNewListener&&(g.off("newListener",d._onNewListener),g.off("removeListener",d._onRemoveListener),d._onNewListener=null,d._onRemoveListener=null);var R=de.call(g,d);g._observers.splice(R,1)}if(n){if(T=f[n],!T)return;y.call(P,n,T),delete f[n],--this._listenersCount||b()}else{for(S=h(f),C=S.length;C-- >0;)n=S[C],y.call(P,n,f[n]);this._listeners={},this._listenersCount=0,b()}}});function q(n,d,f,g){var T=Object.assign({},d);if(!n)return T;if(typeof n!="object")throw TypeError("options must be an object");var S=Object.keys(n),y=S.length,P,C,b;function R(M){throw Error('Invalid "'+P+'" option value'+(M?". Reason: "+M:""))}for(var W=0;W<y;W++){if(P=S[W],!g&&!t.call(d,P))throw Error('Unknown "'+P+'" option');C=n[P],C!==e&&(b=f[P],T[P]=b?b(C,R):C)}return T}function I(n,d){return(typeof n!="function"||!n.hasOwnProperty("prototype"))&&d("value must be a constructor"),n}function _(n){var d="value must be type of "+n.join("|"),f=n.length,g=n[0],T=n[1];return f===1?function(S,y){if(typeof S===g)return S;y(d)}:f===2?function(S,y){var P=typeof S;if(P===g||P===T)return S;y(d)}:function(S,y){for(var P=typeof S,C=f;C-- >0;)if(P===n[C])return S;y(d)}}var z=_(["function"]),X=_(["object","function"]);function ne(n,d,f){var g,T,S=0,y,P=new n(function(C,b,R){f=q(f,{timeout:0,overload:!1},{timeout:function(U,H){return U*=1,(typeof U!="number"||U<0||!Number.isFinite(U))&&H("timeout must be a positive number"),U}}),g=!f.overload&&typeof n.prototype.cancel=="function"&&typeof R=="function";function W(){T&&(T=null),S&&(clearTimeout(S),S=0)}var M=function(U){W(),C(U)},N=function(U){W(),b(U)};g?d(M,N,R):(T=[function(U){N(U||Error("canceled"))}],d(M,N,function(U){if(y)throw Error("Unable to subscribe on cancel event asynchronously");if(typeof U!="function")throw TypeError("onCancel callback must be a function");T.push(U)}),y=!0),f.timeout>0&&(S=setTimeout(function(){var U=Error("timeout");U.code="ETIMEDOUT",S=0,P.cancel(U),b(U)},f.timeout))});return g||(P.cancel=function(C){if(!!T){for(var b=T.length,R=1;R<b;R++)T[R](C);T[0](C),T=null}}),P}function de(n){var d=this._observers;if(!d)return-1;for(var f=d.length,g=0;g<f;g++)if(d[g]._target===n)return g;return-1}function G(n,d,f,g,T){if(!f)return null;if(g===0){var S=typeof d;if(S==="string"){var y,P,C=0,b=0,R=this.delimiter,W=R.length;if((P=d.indexOf(R))!==-1){y=new Array(5);do y[C++]=d.slice(b,P),b=P+W;while((P=d.indexOf(R,b))!==-1);y[C++]=d.slice(b),d=y,T=C}else d=[d],T=1}else S==="object"?T=d.length:(d=[d],T=1)}var M=null,N,U,H,ue,Re,oe=d[g],ve=d[g+1],V,j;if(g===T)f._listeners&&(typeof f._listeners=="function"?(n&&n.push(f._listeners),M=[f]):(n&&n.push.apply(n,f._listeners),M=[f]));else if(oe==="*"){for(V=h(f),P=V.length;P-- >0;)N=V[P],N!=="_listeners"&&(j=G(n,d,f[N],g+1,T),j&&(M?M.push.apply(M,j):M=j));return M}else if(oe==="**"){for(Re=g+1===T||g+2===T&&ve==="*",Re&&f._listeners&&(M=G(n,d,f,T,T)),V=h(f),P=V.length;P-- >0;)N=V[P],N!=="_listeners"&&(N==="*"||N==="**"?(f[N]._listeners&&!Re&&(j=G(n,d,f[N],T,T),j&&(M?M.push.apply(M,j):M=j)),j=G(n,d,f[N],g,T)):N===ve?j=G(n,d,f[N],g+2,T):j=G(n,d,f[N],g,T),j&&(M?M.push.apply(M,j):M=j));return M}else f[oe]&&(M=G(n,d,f[oe],g+1,T));if(U=f["*"],U&&G(n,d,U,g+1,T),H=f["**"],H)if(g<T)for(H._listeners&&G(n,d,H,T,T),V=h(H),P=V.length;P-- >0;)N=V[P],N!=="_listeners"&&(N===ve?G(n,d,H[N],g+2,T):N===oe?G(n,d,H[N],g+1,T):(ue={},ue[N]=H[N],G(n,d,{"**":ue},g+1,T)));else H._listeners?G(n,d,H,T,T):H["*"]&&H["*"]._listeners&&G(n,d,H["*"],T,T);return M}function be(n,d,f){var g=0,T=0,S,y=this.delimiter,P=y.length,C;if(typeof n=="string")if((S=n.indexOf(y))!==-1){C=new Array(5);do C[g++]=n.slice(T,S),T=S+P;while((S=n.indexOf(y,T))!==-1);C[g++]=n.slice(T)}else C=[n],g=1;else C=n,g=n.length;if(g>1){for(S=0;S+1<g;S++)if(C[S]==="**"&&C[S+1]==="**")return}var b=this.listenerTree,R;for(S=0;S<g;S++)if(R=C[S],b=b[R]||(b[R]={}),S===g-1)return b._listeners?(typeof b._listeners=="function"&&(b._listeners=[b._listeners]),f?b._listeners.unshift(d):b._listeners.push(d),!b._listeners.warned&&this._maxListeners>0&&b._listeners.length>this._maxListeners&&(b._listeners.warned=!0,u.call(this,b._listeners.length,R))):b._listeners=d,!0;return!0}function Pe(n,d,f,g){for(var T=h(n),S=T.length,y,P,C,b=n._listeners,R;S-- >0;)P=T[S],y=n[P],P==="_listeners"?C=f:C=f?f.concat(P):[P],R=g||typeof P=="symbol",b&&d.push(R?C:C.join(this.delimiter)),typeof y=="object"&&Pe.call(this,y,d,C,R);return d}function me(n){for(var d=h(n),f=d.length,g,T,S;f-- >0;)T=d[f],g=n[T],g&&(S=!0,T!=="_listeners"&&!me(g)&&delete n[T]);return S}function te(n,d,f){this.emitter=n,this.event=d,this.listener=f}te.prototype.off=function(){return this.emitter.off(this.event,this.listener),this};function fe(n,d,f){if(f===!0)T=!0;else if(f===!1)g=!0;else{if(!f||typeof f!="object")throw TypeError("options should be an object or true");var g=f.async,T=f.promisify,S=f.nextTick,y=f.objectify}if(g||S||T){var P=d,C=d._origin||d;if(S&&!s)throw Error("process.nextTick is not supported");T===e&&(T=d.constructor.name==="AsyncFunction"),d=function(){var b=arguments,R=this,W=this.event;return T?S?Promise.resolve():new Promise(function(M){m(M)}).then(function(){return R.event=W,P.apply(R,b)}):(S?process.nextTick:m)(function(){R.event=W,P.apply(R,b)})},d._async=!0,d._origin=C}return[d,y?new te(this,n,d):this]}function D(n){this._events={},this._newListener=!1,this._removeListener=!1,this.verboseMemoryLeak=!1,p.call(this,n)}D.EventEmitter2=D,D.prototype.listenTo=function(n,d,f){if(typeof n!="object")throw TypeError("target musts be an object");var g=this;f=q(f,{on:e,off:e,reducers:e},{on:z,off:z,reducers:X});function T(S){if(typeof S!="object")throw TypeError("events must be an object");var y=f.reducers,P=de.call(g,n),C;P===-1?C=new A(g,n,f):C=g._observers[P];for(var b=h(S),R=b.length,W,M=typeof y=="function",N=0;N<R;N++)W=b[N],C.subscribe(W,S[W]||W,M?y:y&&y[W])}return i(d)?T(E(d)):T(typeof d=="string"?E(d.split(/\s+/)):d),this},D.prototype.stopListeningTo=function(n,d){var f=this._observers;if(!f)return!1;var g=f.length,T,S=!1;if(n&&typeof n!="object")throw TypeError("target should be an object");for(;g-- >0;)T=f[g],(!n||T._target===n)&&(T.unsubscribe(d),S=!0);return S},D.prototype.delimiter=".",D.prototype.setMaxListeners=function(n){n!==e&&(this._maxListeners=n,this._conf||(this._conf={}),this._conf.maxListeners=n)},D.prototype.getMaxListeners=function(){return this._maxListeners},D.prototype.event="",D.prototype.once=function(n,d,f){return this._once(n,d,!1,f)},D.prototype.prependOnceListener=function(n,d,f){return this._once(n,d,!0,f)},D.prototype._once=function(n,d,f,g){return this._many(n,1,d,f,g)},D.prototype.many=function(n,d,f,g){return this._many(n,d,f,!1,g)},D.prototype.prependMany=function(n,d,f,g){return this._many(n,d,f,!0,g)},D.prototype._many=function(n,d,f,g,T){var S=this;if(typeof f!="function")throw new Error("many only accepts instances of Function");function y(){return--d==0&&S.off(n,y),f.apply(this,arguments)}return y._origin=f,this._on(n,y,g,T)},D.prototype.emit=function(){if(!this._events&&!this._all)return!1;this._events||c.call(this);var n=arguments[0],d,f=this.wildcard,g,T,S,y,P;if(n==="newListener"&&!this._newListener&&!this._events.newListener)return!1;if(f&&(d=n,n!=="newListener"&&n!=="removeListener"&&typeof n=="object")){if(T=n.length,o){for(S=0;S<T;S++)if(typeof n[S]=="symbol"){P=!0;break}}P||(n=n.join(this.delimiter))}var C=arguments.length,b;if(this._all&&this._all.length)for(b=this._all.slice(),S=0,T=b.length;S<T;S++)switch(this.event=n,C){case 1:b[S].call(this,n);break;case 2:b[S].call(this,n,arguments[1]);break;case 3:b[S].call(this,n,arguments[1],arguments[2]);break;default:b[S].apply(this,arguments)}if(f)b=[],G.call(this,b,d,this.listenerTree,0,T);else if(b=this._events[n],typeof b=="function"){switch(this.event=n,C){case 1:b.call(this);break;case 2:b.call(this,arguments[1]);break;case 3:b.call(this,arguments[1],arguments[2]);break;default:for(g=new Array(C-1),y=1;y<C;y++)g[y-1]=arguments[y];b.apply(this,g)}return!0}else b&&(b=b.slice());if(b&&b.length){if(C>3)for(g=new Array(C-1),y=1;y<C;y++)g[y-1]=arguments[y];for(S=0,T=b.length;S<T;S++)switch(this.event=n,C){case 1:b[S].call(this);break;case 2:b[S].call(this,arguments[1]);break;case 3:b[S].call(this,arguments[1],arguments[2]);break;default:b[S].apply(this,g)}return!0}else if(!this.ignoreErrors&&!this._all&&n==="error")throw arguments[1]instanceof Error?arguments[1]:new Error("Uncaught, unspecified 'error' event.");return!!this._all},D.prototype.emitAsync=function(){if(!this._events&&!this._all)return!1;this._events||c.call(this);var n=arguments[0],d=this.wildcard,f,g,T,S,y,P;if(n==="newListener"&&!this._newListener&&!this._events.newListener)return Promise.resolve([!1]);if(d&&(f=n,n!=="newListener"&&n!=="removeListener"&&typeof n=="object")){if(S=n.length,o){for(y=0;y<S;y++)if(typeof n[y]=="symbol"){g=!0;break}}g||(n=n.join(this.delimiter))}var C=[],b=arguments.length,R;if(this._all)for(y=0,S=this._all.length;y<S;y++)switch(this.event=n,b){case 1:C.push(this._all[y].call(this,n));break;case 2:C.push(this._all[y].call(this,n,arguments[1]));break;case 3:C.push(this._all[y].call(this,n,arguments[1],arguments[2]));break;default:C.push(this._all[y].apply(this,arguments))}if(d?(R=[],G.call(this,R,f,this.listenerTree,0)):R=this._events[n],typeof R=="function")switch(this.event=n,b){case 1:C.push(R.call(this));break;case 2:C.push(R.call(this,arguments[1]));break;case 3:C.push(R.call(this,arguments[1],arguments[2]));break;default:for(T=new Array(b-1),P=1;P<b;P++)T[P-1]=arguments[P];C.push(R.apply(this,T))}else if(R&&R.length){if(R=R.slice(),b>3)for(T=new Array(b-1),P=1;P<b;P++)T[P-1]=arguments[P];for(y=0,S=R.length;y<S;y++)switch(this.event=n,b){case 1:C.push(R[y].call(this));break;case 2:C.push(R[y].call(this,arguments[1]));break;case 3:C.push(R[y].call(this,arguments[1],arguments[2]));break;default:C.push(R[y].apply(this,T))}}else if(!this.ignoreErrors&&!this._all&&n==="error")return arguments[1]instanceof Error?Promise.reject(arguments[1]):Promise.reject("Uncaught, unspecified 'error' event.");return Promise.all(C)},D.prototype.on=function(n,d,f){return this._on(n,d,!1,f)},D.prototype.prependListener=function(n,d,f){return this._on(n,d,!0,f)},D.prototype.onAny=function(n){return this._onAny(n,!1)},D.prototype.prependAny=function(n){return this._onAny(n,!0)},D.prototype.addListener=D.prototype.on,D.prototype._onAny=function(n,d){if(typeof n!="function")throw new Error("onAny only accepts instances of Function");return this._all||(this._all=[]),d?this._all.unshift(n):this._all.push(n),this},D.prototype._on=function(n,d,f,g){if(typeof n=="function")return this._onAny(n,d),this;if(typeof d!="function")throw new Error("on only accepts instances of Function");this._events||c.call(this);var T=this,S;return g!==e&&(S=fe.call(this,n,d,g),d=S[0],T=S[1]),this._newListener&&this.emit("newListener",n,d),this.wildcard?(be.call(this,n,d,f),T):(this._events[n]?(typeof this._events[n]=="function"&&(this._events[n]=[this._events[n]]),f?this._events[n].unshift(d):this._events[n].push(d),!this._events[n].warned&&this._maxListeners>0&&this._events[n].length>this._maxListeners&&(this._events[n].warned=!0,u.call(this,this._events[n].length,n))):this._events[n]=d,T)},D.prototype.off=function(n,d){if(typeof d!="function")throw new Error("removeListener only takes instances of Function");var f,g=[];if(this.wildcard){var T=typeof n=="string"?n.split(this.delimiter):n.slice();if(g=G.call(this,null,T,this.listenerTree,0),!g)return this}else{if(!this._events[n])return this;f=this._events[n],g.push({_listeners:f})}for(var S=0;S<g.length;S++){var y=g[S];if(f=y._listeners,i(f)){for(var P=-1,C=0,b=f.length;C<b;C++)if(f[C]===d||f[C].listener&&f[C].listener===d||f[C]._origin&&f[C]._origin===d){P=C;break}if(P<0)continue;return this.wildcard?y._listeners.splice(P,1):this._events[n].splice(P,1),f.length===0&&(this.wildcard?delete y._listeners:delete this._events[n]),this._removeListener&&this.emit("removeListener",n,d),this}else(f===d||f.listener&&f.listener===d||f._origin&&f._origin===d)&&(this.wildcard?delete y._listeners:delete this._events[n],this._removeListener&&this.emit("removeListener",n,d))}return this.listenerTree&&me(this.listenerTree),this},D.prototype.offAny=function(n){var d=0,f=0,g;if(n&&this._all&&this._all.length>0){for(g=this._all,d=0,f=g.length;d<f;d++)if(n===g[d])return g.splice(d,1),this._removeListener&&this.emit("removeListenerAny",n),this}else{if(g=this._all,this._removeListener)for(d=0,f=g.length;d<f;d++)this.emit("removeListenerAny",g[d]);this._all=[]}return this},D.prototype.removeListener=D.prototype.off,D.prototype.removeAllListeners=function(n){if(n===e)return!this._events||c.call(this),this;if(this.wildcard){var d=G.call(this,null,n,this.listenerTree,0),f,g;if(!d)return this;for(g=0;g<d.length;g++)f=d[g],f._listeners=null;this.listenerTree&&me(this.listenerTree)}else this._events&&(this._events[n]=null);return this},D.prototype.listeners=function(n){var d=this._events,f,g,T,S,y;if(n===e){if(this.wildcard)throw Error("event name required for wildcard emitter");if(!d)return[];for(f=h(d),S=f.length,T=[];S-- >0;)g=d[f[S]],typeof g=="function"?T.push(g):T.push.apply(T,g);return T}else{if(this.wildcard){if(y=this.listenerTree,!y)return[];var P=[],C=typeof n=="string"?n.split(this.delimiter):n.slice();return G.call(this,P,C,y,0),P}return d?(g=d[n],g?typeof g=="function"?[g]:g:[]):[]}},D.prototype.eventNames=function(n){var d=this._events;return this.wildcard?Pe.call(this,this.listenerTree,[],null,n):d?h(d):[]},D.prototype.listenerCount=function(n){return this.listeners(n).length},D.prototype.hasListeners=function(n){if(this.wildcard){var d=[],f=typeof n=="string"?n.split(this.delimiter):n.slice();return G.call(this,d,f,this.listenerTree,0),d.length>0}var g=this._events,T=this._all;return!!(T&&T.length||g&&(n===e?h(g).length:g[n]))},D.prototype.listenersAny=function(){return this._all?this._all:[]},D.prototype.waitFor=function(n,d){var f=this,g=typeof d;return g==="number"?d={timeout:d}:g==="function"&&(d={filter:d}),d=q(d,{timeout:0,filter:e,handleError:!1,Promise,overload:!1},{filter:z,Promise:I}),ne(d.Promise,function(T,S,y){function P(){var C=d.filter;if(!(C&&!C.apply(f,arguments)))if(f.off(n,P),d.handleError){var b=arguments[0];b?S(b):T(v.apply(null,arguments).slice(1))}else T(v.apply(null,arguments))}y(function(){f.off(n,P)}),f._on(n,P,!1)},{timeout:d.timeout,overload:d.overload})};function ge(n,d,f){f=q(f,{Promise,timeout:0,overload:!1},{Promise:I});var g=f.Promise;return ne(g,function(T,S,y){var P;if(typeof n.addEventListener=="function"){P=function(){T(v.apply(null,arguments))},y(function(){n.removeEventListener(d,P)}),n.addEventListener(d,P,{once:!0});return}var C=function(){b&&n.removeListener("error",b),T(v.apply(null,arguments))},b;d!=="error"&&(b=function(R){n.removeListener(d,C),S(R)},n.once("error",b)),y(function(){b&&n.removeListener("error",b),n.removeListener(d,C)}),n.once(d,C)},{timeout:f.timeout,overload:f.overload})}var ae=D.prototype;if(Object.defineProperties(D,{defaultMaxListeners:{get:function(){return ae._maxListeners},set:function(n){if(typeof n!="number"||n<0||Number.isNaN(n))throw TypeError("n must be a non-negative number");ae._maxListeners=n},enumerable:!0},once:{value:ge,writable:!0,configurable:!0}}),Object.defineProperties(ae,{_maxListeners:{value:r,writable:!0,configurable:!0},_observers:{value:null,writable:!0,configurable:!0}}),typeof define=="function"&&define.amd)define(function(){return D});else if(typeof Vi=="object")Bi.exports=D;else{var Ve=new Function("","return this")();Ve.EventEmitter2=D}})()});import Pr,{createContext as Rr,useContext as ct,useEffect as $t,useState as Ar}from"react";import{HMSReactiveStore as Ir}from"@100mslive/hms-video-store";import $e from"zustand";import{useContext as Ft}from"react";import Vt from"zustand/shallow";var Y;(function(a){a[a.VERBOSE=0]="VERBOSE",a[a.DEBUG=1]="DEBUG",a[a.INFO=2]="INFO",a[a.WARN=3]="WARN",a[a.ERROR=4]="ERROR",a[a.NONE=5]="NONE"})(Y||(Y={}));var Te=class{static v(t,...i){this.log(0,t,...i)}static d(t,...i){this.log(1,t,...i)}static i(t,...i){this.log(2,t,...i)}static w(t,...i){this.log(3,t,...i)}static e(t,...i){this.log(4,t,...i)}static log(t,i,...r){if(!(this.level.valueOf()>t.valueOf()))switch(t){case 0:{console.log("HMSui-components: ",i,...r);break}case 1:{console.debug("HMSui-components: ",i,...r);break}case 2:{console.info("HMSui-components: ",i,...r);break}case 3:{console.warn("HMSui-components: ",i,...r);break}case 4:{console.error("HMSui-components: ",i,...r);break}}}};Te.level=0;var Se="It seems like you forgot to add your component within a top level HMSRoomProvider, please refer to 100ms react docs(https://docs.100ms.live/javascript/v2/features/integration#react-hooks) to check on the required steps for using this hook.";function Bt(e){return(i,r=Vt)=>{i||Te.w("fetching full store without passing any selector may have a heavy performance impact on your website.");let s=Ft(e);if(!s)throw new Error(Se);return s.store(i,r)}}function Ht(e){return(i,r=Vt)=>{i||Te.w("fetching full store without passing any selector may have a heavy performance impact on your website.");let s=Ft(e);if(!s)throw new Error(Se);let o=s.statsStore;return o==null?void 0:o(i,r)}}var jt=typeof window!="undefined";var Ee=Rr(null),le,_r=({children:e,actions:t,store:i,notifications:r,stats:s,isHMSStatsOn:o=!1})=>{if(!le){let a=()=>{throw new Error("modifying store is not allowed")};if(t&&i)le={actions:t,store:$e(De(_e({},i),{setState:a,destroy:a}))},r&&(le.notifications=r),s&&(le.statsStore=$e({getState:s.getState,subscribe:s.subscribe,setState:a,destroy:a}));else{let l=new Ir;if(le={actions:l.getActions(),store:$e(De(_e({},l.getStore()),{setState:a,destroy:a})),notifications:l.getNotifications()},o){let m=l.getStats();le.statsStore=$e({getState:m.getState,subscribe:m.subscribe,setState:a,destroy:a})}}}return $t(()=>{jt&&(window.onunload=()=>{le.actions.leave()})},[]),Pr.createElement(Ee.Provider,{value:le},e)},B=Bt(Ee),Dr=Ht(Ee),we=()=>{let e=ct(Ee);if(!e)throw new Error(Se);return e.store},Q=()=>{let e=ct(Ee);if(!e)throw new Error(Se);return e.actions},Mr=()=>{let e=ct(Ee),[t,i]=Ar(null);if(!e)throw new Error(Se);return $t(()=>e.notifications?e.notifications.onNotification(s=>i(s)):void 0,[e.notifications]),t};var wr=(e,t,i)=>e.reduce((r,s,o)=>{let a=Math.floor(o/t);return a>0&&i||(r[a]||(r[a]=[]),r[a].push(s)),r},[]),lt=({elements:e,tilesInFirstPage:t,onlyOnePage:i,isLastPageDifferentFromFirstPage:r,defaultWidth:s,defaultHeight:o,lastPageWidth:a,lastPageHeight:l})=>{let m=wr(e,t,i);return m.map((h,c)=>h.map(p=>{let u=c===m.length-1,v=r&&u?a:s,E=r&&u?l:o;return De(_e({},p),{height:E,width:v})}))};function Lr(e){if(e.length===0)return null;let t={},i=e[0],r=1;for(let s=0;s<e.length;s++){let o=e[s];t[o]===null?t[o]=1:t[o]++,t[o]>r&&(i=o,r=t[o])}return i}var dt=e=>Lr(e.filter(t=>{var i,r;return((i=t.track)==null?void 0:i.width)&&((r=t.track)==null?void 0:r.height)}).map(t=>{var s,o;let i=(s=t.track)==null?void 0:s.width,r=(o=t.track)==null?void 0:o.height;return(i||1)/(r||1)})),ut=(e,t,i,r,s)=>{if(e<0||t<0)throw new Error("Container must have a non-negative area");if(i<1||!Number.isInteger(i))throw new Error("Number of shapes to place must be a positive integer");let o=r&&s&&r/s;if(o!==void 0&&isNaN(o))throw new Error("Aspect ratio must be a number");let a={area:0,cols:0,rows:0,width:0,height:0},l=i,m=-1;if(o!==void 0)for(let h=l;h>0;h+=m){let c=Math.ceil(i/h),p=e/(h*o),u=t/c,v,E;p<=u?(v=e/h,E=v/o):(E=t/c,v=E*o);let A=v*E;A>a.area&&(a={area:A,width:v,height:E,rows:c,cols:h})}return a},Or=({parentWidth:e,parentHeight:t,count:i,maxCount:r,aspectRatio:s})=>{let o=0,a=0,l=0,m=0,h=!1,c=0,p=0,u=Math.min(Math.ceil(Math.sqrt(i*(e/t)/(s.width/s.height))),r),v=e/u,E=v/(s.width/s.height),A=Math.floor(t/E);if(a=E,o=v,c=Math.min(i,A*u),p=i%(A*u),h=p>0&&i>A*u,h){let q=Math.min(Math.ceil(Math.sqrt(p*(e/t)/(s.width/s.height))),r),I=e/q;m=I/(s.width/s.height),l=I}return{tilesInFirstPage:c,defaultWidth:o,defaultHeight:a,lastPageWidth:l,lastPageHeight:m,isLastPageDifferentFromFirstPage:h}},Nr=({parentWidth:e,parentHeight:t,count:i,maxCount:r,aspectRatio:s})=>{let o=0,a=0,l=0,m=0,h=!1,c=0,p=0,{width:u,height:v}=ut(e,t,Math.min(i,r),s.width,s.height);if(o=u,a=v,c=Math.min(i,r),p=i%r,h=p>0&&i>r,h){let{width:E,height:A}=ut(e,t,p,s.width,s.height);l=E,m=A}return{tilesInFirstPage:c,defaultWidth:o,defaultHeight:a,lastPageWidth:l,lastPageHeight:m,isLastPageDifferentFromFirstPage:h}},xr=({parentWidth:e,parentHeight:t,count:i,maxCount:r,aspectRatio:s})=>{let o=0,a=0,l=0,m=0,h=!1,c=0,p=0,u=Math.min(Math.ceil(Math.sqrt(i*(s.width/s.height)/(e/t))),r),v=t/u,E=v*(s.width/s.height),A=Math.floor(e/E);if(o=E,a=v,c=Math.min(i,u*A),p=i%(u*A),h=p>0&&i>u*A,h){let q=Math.min(Math.ceil(Math.sqrt(p*(s.width/s.height)/(e/t))),r),I=t/q,_=I*(s.width/s.height);m=I,l=_}return{tilesInFirstPage:c,defaultWidth:o,defaultHeight:a,lastPageWidth:l,lastPageHeight:m,isLastPageDifferentFromFirstPage:h}};function ht({count:e,parentWidth:t,parentHeight:i,maxTileCount:r,maxRowCount:s,maxColCount:o,aspectRatio:a}){let l=0,m=0,h=0,c=0,p=!1,u=0;if(e===0)return{tilesInFirstPage:u,defaultWidth:l,defaultHeight:m,lastPageWidth:h,lastPageHeight:c,isLastPageDifferentFromFirstPage:p};if(r)({tilesInFirstPage:u,defaultWidth:l,defaultHeight:m,lastPageWidth:h,lastPageHeight:c,isLastPageDifferentFromFirstPage:p}=Nr({parentWidth:t,parentHeight:i,count:e,maxCount:r,aspectRatio:a}));else if(s)({tilesInFirstPage:u,defaultWidth:l,defaultHeight:m,lastPageWidth:h,lastPageHeight:c,isLastPageDifferentFromFirstPage:p}=xr({parentWidth:t,parentHeight:i,count:e,maxCount:s,aspectRatio:a}));else if(o)({tilesInFirstPage:u,defaultWidth:l,defaultHeight:m,lastPageWidth:h,lastPageHeight:c,isLastPageDifferentFromFirstPage:p}=Or({parentWidth:t,parentHeight:i,count:e,maxCount:o,aspectRatio:a}));else{let{width:v,height:E}=ut(t,i,e,a.width,a.height);l=v,m=E,u=e}return{tilesInFirstPage:u,defaultWidth:l,defaultHeight:m,lastPageWidth:h,lastPageHeight:c,isLastPageDifferentFromFirstPage:p}}var Wt=(e,t,i,r=!0)=>{if(!e||!t||!i)return[];let s=[];for(let o of e)if(o.videoTrack===void 0&&o.audioTrack&&t[o.audioTrack])s.push({peer:o});else if(o.videoTrack&&t[o.videoTrack])s.push({track:t[o.videoTrack],peer:o});else if(i(o)&&o.auxiliaryTracks.length>0){let a=o.auxiliaryTracks.find(l=>{let m=t[l];return(m==null?void 0:m.type)==="video"&&(m==null?void 0:m.source)==="screen"});a&&s.push({track:t[a],peer:o})}else r||s.push({peer:o});return s};"use strict";var Kt=!0,qt=!0;function Le(e,t,i){let r=e.match(t);return r&&r.length>=i&&parseInt(r[i],10)}function ie(e,t,i){if(!e.RTCPeerConnection)return;let r=e.RTCPeerConnection.prototype,s=r.addEventListener;r.addEventListener=function(a,l){if(a!==t)return s.apply(this,arguments);let m=h=>{let c=i(h);c&&(l.handleEvent?l.handleEvent(c):l(c))};return this._eventMap=this._eventMap||{},this._eventMap[t]||(this._eventMap[t]=new Map),this._eventMap[t].set(l,m),s.apply(this,[a,m])};let o=r.removeEventListener;r.removeEventListener=function(a,l){if(a!==t||!this._eventMap||!this._eventMap[t])return o.apply(this,arguments);if(!this._eventMap[t].has(l))return o.apply(this,arguments);let m=this._eventMap[t].get(l);return this._eventMap[t].delete(l),this._eventMap[t].size===0&&delete this._eventMap[t],Object.keys(this._eventMap).length===0&&delete this._eventMap,o.apply(this,[a,m])},Object.defineProperty(r,"on"+t,{get(){return this["_on"+t]},set(a){this["_on"+t]&&(this.removeEventListener(t,this["_on"+t]),delete this["_on"+t]),a&&this.addEventListener(t,this["_on"+t]=a)},enumerable:!0,configurable:!0})}function zt(e){return typeof e!="boolean"?new Error("Argument type: "+typeof e+". Please use a boolean."):(Kt=e,e?"adapter.js logging disabled":"adapter.js logging enabled")}function Jt(e){return typeof e!="boolean"?new Error("Argument type: "+typeof e+". Please use a boolean."):(qt=!e,"adapter.js deprecation warnings "+(e?"disabled":"enabled"))}function We(){if(typeof window=="object"){if(Kt)return;typeof console!="undefined"&&typeof console.log=="function"&&console.log.apply(console,arguments)}}function ye(e,t){!qt||console.warn(e+" is deprecated, please use "+t+" instead.")}function Yt(e){let t={browser:null,version:null};if(typeof e=="undefined"||!e.navigator)return t.browser="Not a browser.",t;let{navigator:i}=e;if(i.mozGetUserMedia)t.browser="firefox",t.version=Le(i.userAgent,/Firefox\/(\d+)\./,1);else if(i.webkitGetUserMedia||e.isSecureContext===!1&&e.webkitRTCPeerConnection&&!e.RTCIceGatherer)t.browser="chrome",t.version=Le(i.userAgent,/Chrom(e|ium)\/(\d+)\./,2);else if(e.RTCPeerConnection&&i.userAgent.match(/AppleWebKit\/(\d+)\./))t.browser="safari",t.version=Le(i.userAgent,/AppleWebKit\/(\d+)\./,1),t.supportsUnifiedPlan=e.RTCRtpTransceiver&&"currentDirection"in e.RTCRtpTransceiver.prototype;else return t.browser="Not a supported browser.",t;return t}function Qt(e){return Object.prototype.toString.call(e)==="[object Object]"}function pt(e){return Qt(e)?Object.keys(e).reduce(function(t,i){let r=Qt(e[i]),s=r?pt(e[i]):e[i],o=r&&!Object.keys(s).length;return s===void 0||o?t:Object.assign(t,{[i]:s})},{}):e}function mt(e,t,i){!t||i.has(t.id)||(i.set(t.id,t),Object.keys(t).forEach(r=>{r.endsWith("Id")?mt(e,e.get(t[r]),i):r.endsWith("Ids")&&t[r].forEach(s=>{mt(e,e.get(s),i)})}))}function ft(e,t,i){let r=i?"outbound-rtp":"inbound-rtp",s=new Map;if(t===null)return s;let o=[];return e.forEach(a=>{a.type==="track"&&a.trackIdentifier===t.id&&o.push(a)}),o.forEach(a=>{e.forEach(l=>{l.type===r&&l.trackId===a.id&&mt(e,l,s)})}),s}var Ke={};je(Ke,{fixNegotiationNeeded:()=>oi,shimAddTrackRemoveTrack:()=>ai,shimAddTrackRemoveTrackWithNative:()=>ni,shimGetDisplayMedia:()=>Xt,shimGetSendersWithDtmf:()=>ii,shimGetStats:()=>ri,shimGetUserMedia:()=>gt,shimMediaStream:()=>ei,shimOnTrack:()=>ti,shimPeerConnection:()=>vt,shimSenderReceiverGetStats:()=>si});"use strict";var Zt=We;function gt(e,t){let i=e&&e.navigator;if(!i.mediaDevices)return;let r=function(l){if(typeof l!="object"||l.mandatory||l.optional)return l;let m={};return Object.keys(l).forEach(h=>{if(h==="require"||h==="advanced"||h==="mediaSource")return;let c=typeof l[h]=="object"?l[h]:{ideal:l[h]};c.exact!==void 0&&typeof c.exact=="number"&&(c.min=c.max=c.exact);let p=function(u,v){return u?u+v.charAt(0).toUpperCase()+v.slice(1):v==="deviceId"?"sourceId":v};if(c.ideal!==void 0){m.optional=m.optional||[];let u={};typeof c.ideal=="number"?(u[p("min",h)]=c.ideal,m.optional.push(u),u={},u[p("max",h)]=c.ideal,m.optional.push(u)):(u[p("",h)]=c.ideal,m.optional.push(u))}c.exact!==void 0&&typeof c.exact!="number"?(m.mandatory=m.mandatory||{},m.mandatory[p("",h)]=c.exact):["min","max"].forEach(u=>{c[u]!==void 0&&(m.mandatory=m.mandatory||{},m.mandatory[p(u,h)]=c[u])})}),l.advanced&&(m.optional=(m.optional||[]).concat(l.advanced)),m},s=function(l,m){if(t.version>=61)return m(l);if(l=JSON.parse(JSON.stringify(l)),l&&typeof l.audio=="object"){let h=function(c,p,u){p in c&&!(u in c)&&(c[u]=c[p],delete c[p])};l=JSON.parse(JSON.stringify(l)),h(l.audio,"autoGainControl","googAutoGainControl"),h(l.audio,"noiseSuppression","googNoiseSuppression"),l.audio=r(l.audio)}if(l&&typeof l.video=="object"){let h=l.video.facingMode;h=h&&(typeof h=="object"?h:{ideal:h});let c=t.version<66;if(h&&(h.exact==="user"||h.exact==="environment"||h.ideal==="user"||h.ideal==="environment")&&!(i.mediaDevices.getSupportedConstraints&&i.mediaDevices.getSupportedConstraints().facingMode&&!c)){delete l.video.facingMode;let p;if(h.exact==="environment"||h.ideal==="environment"?p=["back","rear"]:(h.exact==="user"||h.ideal==="user")&&(p=["front"]),p)return i.mediaDevices.enumerateDevices().then(u=>{u=u.filter(E=>E.kind==="videoinput");let v=u.find(E=>p.some(A=>E.label.toLowerCase().includes(A)));return!v&&u.length&&p.includes("back")&&(v=u[u.length-1]),v&&(l.video.deviceId=h.exact?{exact:v.deviceId}:{ideal:v.deviceId}),l.video=r(l.video),Zt("chrome: "+JSON.stringify(l)),m(l)})}l.video=r(l.video)}return Zt("chrome: "+JSON.stringify(l)),m(l)},o=function(l){return t.version>=64?l:{name:{PermissionDeniedError:"NotAllowedError",PermissionDismissedError:"NotAllowedError",InvalidStateError:"NotAllowedError",DevicesNotFoundError:"NotFoundError",ConstraintNotSatisfiedError:"OverconstrainedError",TrackStartError:"NotReadableError",MediaDeviceFailedDueToShutdown:"NotAllowedError",MediaDeviceKillSwitchOn:"NotAllowedError",TabCaptureError:"AbortError",ScreenCaptureError:"AbortError",DeviceCaptureError:"AbortError"}[l.name]||l.name,message:l.message,constraint:l.constraint||l.constraintName,toString(){return this.name+(this.message&&": ")+this.message}}},a=function(l,m,h){s(l,c=>{i.webkitGetUserMedia(c,m,p=>{h&&h(o(p))})})};if(i.getUserMedia=a.bind(i),i.mediaDevices.getUserMedia){let l=i.mediaDevices.getUserMedia.bind(i.mediaDevices);i.mediaDevices.getUserMedia=function(m){return s(m,h=>l(h).then(c=>{if(h.audio&&!c.getAudioTracks().length||h.video&&!c.getVideoTracks().length)throw c.getTracks().forEach(p=>{p.stop()}),new DOMException("","NotFoundError");return c},c=>Promise.reject(o(c))))}}}"use strict";function Xt(e,t){if(!(e.navigator.mediaDevices&&"getDisplayMedia"in e.navigator.mediaDevices)&&!!e.navigator.mediaDevices){if(typeof t!="function"){console.error("shimGetDisplayMedia: getSourceId argument is not a function");return}e.navigator.mediaDevices.getDisplayMedia=function(r){return t(r).then(s=>{let o=r.video&&r.video.width,a=r.video&&r.video.height,l=r.video&&r.video.frameRate;return r.video={mandatory:{chromeMediaSource:"desktop",chromeMediaSourceId:s,maxFrameRate:l||3}},o&&(r.video.mandatory.maxWidth=o),a&&(r.video.mandatory.maxHeight=a),e.navigator.mediaDevices.getUserMedia(r)})}}}"use strict";function ei(e){e.MediaStream=e.MediaStream||e.webkitMediaStream}function ti(e){if(typeof e=="object"&&e.RTCPeerConnection&&!("ontrack"in e.RTCPeerConnection.prototype)){Object.defineProperty(e.RTCPeerConnection.prototype,"ontrack",{get(){return this._ontrack},set(i){this._ontrack&&this.removeEventListener("track",this._ontrack),this.addEventListener("track",this._ontrack=i)},enumerable:!0,configurable:!0});let t=e.RTCPeerConnection.prototype.setRemoteDescription;e.RTCPeerConnection.prototype.setRemoteDescription=function(){return this._ontrackpoly||(this._ontrackpoly=r=>{r.stream.addEventListener("addtrack",s=>{let o;e.RTCPeerConnection.prototype.getReceivers?o=this.getReceivers().find(l=>l.track&&l.track.id===s.track.id):o={track:s.track};let a=new Event("track");a.track=s.track,a.receiver=o,a.transceiver={receiver:o},a.streams=[r.stream],this.dispatchEvent(a)}),r.stream.getTracks().forEach(s=>{let o;e.RTCPeerConnection.prototype.getReceivers?o=this.getReceivers().find(l=>l.track&&l.track.id===s.id):o={track:s};let a=new Event("track");a.track=s,a.receiver=o,a.transceiver={receiver:o},a.streams=[r.stream],this.dispatchEvent(a)})},this.addEventListener("addstream",this._ontrackpoly)),t.apply(this,arguments)}}else ie(e,"track",t=>(t.transceiver||Object.defineProperty(t,"transceiver",{value:{receiver:t.receiver}}),t))}function ii(e){if(typeof e=="object"&&e.RTCPeerConnection&&!("getSenders"in e.RTCPeerConnection.prototype)&&"createDTMFSender"in e.RTCPeerConnection.prototype){let t=function(s,o){return{track:o,get dtmf(){return this._dtmf===void 0&&(o.kind==="audio"?this._dtmf=s.createDTMFSender(o):this._dtmf=null),this._dtmf},_pc:s}};if(!e.RTCPeerConnection.prototype.getSenders){e.RTCPeerConnection.prototype.getSenders=function(){return this._senders=this._senders||[],this._senders.slice()};let s=e.RTCPeerConnection.prototype.addTrack;e.RTCPeerConnection.prototype.addTrack=function(l,m){let h=s.apply(this,arguments);return h||(h=t(this,l),this._senders.push(h)),h};let o=e.RTCPeerConnection.prototype.removeTrack;e.RTCPeerConnection.prototype.removeTrack=function(l){o.apply(this,arguments);let m=this._senders.indexOf(l);m!==-1&&this._senders.splice(m,1)}}let i=e.RTCPeerConnection.prototype.addStream;e.RTCPeerConnection.prototype.addStream=function(o){this._senders=this._senders||[],i.apply(this,[o]),o.getTracks().forEach(a=>{this._senders.push(t(this,a))})};let r=e.RTCPeerConnection.prototype.removeStream;e.RTCPeerConnection.prototype.removeStream=function(o){this._senders=this._senders||[],r.apply(this,[o]),o.getTracks().forEach(a=>{let l=this._senders.find(m=>m.track===a);l&&this._senders.splice(this._senders.indexOf(l),1)})}}else if(typeof e=="object"&&e.RTCPeerConnection&&"getSenders"in e.RTCPeerConnection.prototype&&"createDTMFSender"in e.RTCPeerConnection.prototype&&e.RTCRtpSender&&!("dtmf"in e.RTCRtpSender.prototype)){let t=e.RTCPeerConnection.prototype.getSenders;e.RTCPeerConnection.prototype.getSenders=function(){let r=t.apply(this,[]);return r.forEach(s=>s._pc=this),r},Object.defineProperty(e.RTCRtpSender.prototype,"dtmf",{get(){return this._dtmf===void 0&&(this.track.kind==="audio"?this._dtmf=this._pc.createDTMFSender(this.track):this._dtmf=null),this._dtmf}})}}function ri(e){if(!e.RTCPeerConnection)return;let t=e.RTCPeerConnection.prototype.getStats;e.RTCPeerConnection.prototype.getStats=function(){let[r,s,o]=arguments;if(arguments.length>0&&typeof r=="function")return t.apply(this,arguments);if(t.length===0&&(arguments.length===0||typeof r!="function"))return t.apply(this,[]);let a=function(m){let h={};return m.result().forEach(p=>{let u={id:p.id,timestamp:p.timestamp,type:{localcandidate:"local-candidate",remotecandidate:"remote-candidate"}[p.type]||p.type};p.names().forEach(v=>{u[v]=p.stat(v)}),h[u.id]=u}),h},l=function(m){return new Map(Object.keys(m).map(h=>[h,m[h]]))};if(arguments.length>=2){let m=function(h){s(l(a(h)))};return t.apply(this,[m,r])}return new Promise((m,h)=>{t.apply(this,[function(c){m(l(a(c)))},h])}).then(s,o)}}function si(e){if(!(typeof e=="object"&&e.RTCPeerConnection&&e.RTCRtpSender&&e.RTCRtpReceiver))return;if(!("getStats"in e.RTCRtpSender.prototype)){let i=e.RTCPeerConnection.prototype.getSenders;i&&(e.RTCPeerConnection.prototype.getSenders=function(){let o=i.apply(this,[]);return o.forEach(a=>a._pc=this),o});let r=e.RTCPeerConnection.prototype.addTrack;r&&(e.RTCPeerConnection.prototype.addTrack=function(){let o=r.apply(this,arguments);return o._pc=this,o}),e.RTCRtpSender.prototype.getStats=function(){let o=this;return this._pc.getStats().then(a=>ft(a,o.track,!0))}}if(!("getStats"in e.RTCRtpReceiver.prototype)){let i=e.RTCPeerConnection.prototype.getReceivers;i&&(e.RTCPeerConnection.prototype.getReceivers=function(){let s=i.apply(this,[]);return s.forEach(o=>o._pc=this),s}),ie(e,"track",r=>(r.receiver._pc=r.srcElement,r)),e.RTCRtpReceiver.prototype.getStats=function(){let s=this;return this._pc.getStats().then(o=>ft(o,s.track,!1))}}if(!("getStats"in e.RTCRtpSender.prototype&&"getStats"in e.RTCRtpReceiver.prototype))return;let t=e.RTCPeerConnection.prototype.getStats;e.RTCPeerConnection.prototype.getStats=function(){if(arguments.length>0&&arguments[0]instanceof e.MediaStreamTrack){let r=arguments[0],s,o,a;return this.getSenders().forEach(l=>{l.track===r&&(s?a=!0:s=l)}),this.getReceivers().forEach(l=>(l.track===r&&(o?a=!0:o=l),l.track===r)),a||s&&o?Promise.reject(new DOMException("There are more than one sender or receiver for the track.","InvalidAccessError")):s?s.getStats():o?o.getStats():Promise.reject(new DOMException("There is no sender or receiver for the track.","InvalidAccessError"))}return t.apply(this,arguments)}}function ni(e){e.RTCPeerConnection.prototype.getLocalStreams=function(){return this._shimmedLocalStreams=this._shimmedLocalStreams||{},Object.keys(this._shimmedLocalStreams).map(a=>this._shimmedLocalStreams[a][0])};let t=e.RTCPeerConnection.prototype.addTrack;e.RTCPeerConnection.prototype.addTrack=function(a,l){if(!l)return t.apply(this,arguments);this._shimmedLocalStreams=this._shimmedLocalStreams||{};let m=t.apply(this,arguments);return this._shimmedLocalStreams[l.id]?this._shimmedLocalStreams[l.id].indexOf(m)===-1&&this._shimmedLocalStreams[l.id].push(m):this._shimmedLocalStreams[l.id]=[l,m],m};let i=e.RTCPeerConnection.prototype.addStream;e.RTCPeerConnection.prototype.addStream=function(a){this._shimmedLocalStreams=this._shimmedLocalStreams||{},a.getTracks().forEach(h=>{if(this.getSenders().find(p=>p.track===h))throw new DOMException("Track already exists.","InvalidAccessError")});let l=this.getSenders();i.apply(this,arguments);let m=this.getSenders().filter(h=>l.indexOf(h)===-1);this._shimmedLocalStreams[a.id]=[a].concat(m)};let r=e.RTCPeerConnection.prototype.removeStream;e.RTCPeerConnection.prototype.removeStream=function(a){return this._shimmedLocalStreams=this._shimmedLocalStreams||{},delete this._shimmedLocalStreams[a.id],r.apply(this,arguments)};let s=e.RTCPeerConnection.prototype.removeTrack;e.RTCPeerConnection.prototype.removeTrack=function(a){return this._shimmedLocalStreams=this._shimmedLocalStreams||{},a&&Object.keys(this._shimmedLocalStreams).forEach(l=>{let m=this._shimmedLocalStreams[l].indexOf(a);m!==-1&&this._shimmedLocalStreams[l].splice(m,1),this._shimmedLocalStreams[l].length===1&&delete this._shimmedLocalStreams[l]}),s.apply(this,arguments)}}function ai(e,t){if(!e.RTCPeerConnection)return;if(e.RTCPeerConnection.prototype.addTrack&&t.version>=65)return ni(e);let i=e.RTCPeerConnection.prototype.getLocalStreams;e.RTCPeerConnection.prototype.getLocalStreams=function(){let c=i.apply(this);return this._reverseStreams=this._reverseStreams||{},c.map(p=>this._reverseStreams[p.id])};let r=e.RTCPeerConnection.prototype.addStream;e.RTCPeerConnection.prototype.addStream=function(c){if(this._streams=this._streams||{},this._reverseStreams=this._reverseStreams||{},c.getTracks().forEach(p=>{if(this.getSenders().find(v=>v.track===p))throw new DOMException("Track already exists.","InvalidAccessError")}),!this._reverseStreams[c.id]){let p=new e.MediaStream(c.getTracks());this._streams[c.id]=p,this._reverseStreams[p.id]=c,c=p}r.apply(this,[c])};let s=e.RTCPeerConnection.prototype.removeStream;e.RTCPeerConnection.prototype.removeStream=function(c){this._streams=this._streams||{},this._reverseStreams=this._reverseStreams||{},s.apply(this,[this._streams[c.id]||c]),delete this._reverseStreams[this._streams[c.id]?this._streams[c.id].id:c.id],delete this._streams[c.id]},e.RTCPeerConnection.prototype.addTrack=function(c,p){if(this.signalingState==="closed")throw new DOMException("The RTCPeerConnection's signalingState is 'closed'.","InvalidStateError");let u=[].slice.call(arguments,1);if(u.length!==1||!u[0].getTracks().find(A=>A===c))throw new DOMException("The adapter.js addTrack polyfill only supports a single stream which is associated with the specified track.","NotSupportedError");if(this.getSenders().find(A=>A.track===c))throw new DOMException("Track already exists.","InvalidAccessError");this._streams=this._streams||{},this._reverseStreams=this._reverseStreams||{};let E=this._streams[p.id];if(E)E.addTrack(c),Promise.resolve().then(()=>{this.dispatchEvent(new Event("negotiationneeded"))});else{let A=new e.MediaStream([c]);this._streams[p.id]=A,this._reverseStreams[A.id]=p,this.addStream(A)}return this.getSenders().find(A=>A.track===c)};function o(h,c){let p=c.sdp;return Object.keys(h._reverseStreams||[]).forEach(u=>{let v=h._reverseStreams[u],E=h._streams[v.id];p=p.replace(new RegExp(E.id,"g"),v.id)}),new RTCSessionDescription({type:c.type,sdp:p})}function a(h,c){let p=c.sdp;return Object.keys(h._reverseStreams||[]).forEach(u=>{let v=h._reverseStreams[u],E=h._streams[v.id];p=p.replace(new RegExp(v.id,"g"),E.id)}),new RTCSessionDescription({type:c.type,sdp:p})}["createOffer","createAnswer"].forEach(function(h){let c=e.RTCPeerConnection.prototype[h],p={[h](){let u=arguments;return arguments.length&&typeof arguments[0]=="function"?c.apply(this,[E=>{let A=o(this,E);u[0].apply(null,[A])},E=>{u[1]&&u[1].apply(null,E)},arguments[2]]):c.apply(this,arguments).then(E=>o(this,E))}};e.RTCPeerConnection.prototype[h]=p[h]});let l=e.RTCPeerConnection.prototype.setLocalDescription;e.RTCPeerConnection.prototype.setLocalDescription=function(){return!arguments.length||!arguments[0].type?l.apply(this,arguments):(arguments[0]=a(this,arguments[0]),l.apply(this,arguments))};let m=Object.getOwnPropertyDescriptor(e.RTCPeerConnection.prototype,"localDescription");Object.defineProperty(e.RTCPeerConnection.prototype,"localDescription",{get(){let h=m.get.apply(this);return h.type===""?h:o(this,h)}}),e.RTCPeerConnection.prototype.removeTrack=function(c){if(this.signalingState==="closed")throw new DOMException("The RTCPeerConnection's signalingState is 'closed'.","InvalidStateError");if(!c._pc)throw new DOMException("Argument 1 of RTCPeerConnection.removeTrack does not implement interface RTCRtpSender.","TypeError");if(!(c._pc===this))throw new DOMException("Sender was not created by this connection.","InvalidAccessError");this._streams=this._streams||{};let u;Object.keys(this._streams).forEach(v=>{this._streams[v].getTracks().find(A=>c.track===A)&&(u=this._streams[v])}),u&&(u.getTracks().length===1?this.removeStream(this._reverseStreams[u.id]):u.removeTrack(c.track),this.dispatchEvent(new Event("negotiationneeded")))}}function vt(e,t){!e.RTCPeerConnection&&e.webkitRTCPeerConnection&&(e.RTCPeerConnection=e.webkitRTCPeerConnection),!!e.RTCPeerConnection&&t.version<53&&["setLocalDescription","setRemoteDescription","addIceCandidate"].forEach(function(i){let r=e.RTCPeerConnection.prototype[i],s={[i](){return arguments[0]=new(i==="addIceCandidate"?e.RTCIceCandidate:e.RTCSessionDescription)(arguments[0]),r.apply(this,arguments)}};e.RTCPeerConnection.prototype[i]=s[i]})}function oi(e,t){ie(e,"negotiationneeded",i=>{let r=i.target;if(!((t.version<72||r.getConfiguration&&r.getConfiguration().sdpSemantics==="plan-b")&&r.signalingState!=="stable"))return i})}var qe={};je(qe,{shimAddTransceiver:()=>mi,shimCreateAnswer:()=>vi,shimCreateOffer:()=>gi,shimGetDisplayMedia:()=>ci,shimGetParameters:()=>fi,shimGetUserMedia:()=>Tt,shimOnTrack:()=>li,shimPeerConnection:()=>St,shimRTCDataChannel:()=>pi,shimReceiverGetStats:()=>ui,shimRemoveStream:()=>hi,shimSenderGetStats:()=>di});"use strict";function Tt(e,t){let i=e&&e.navigator,r=e&&e.MediaStreamTrack;if(i.getUserMedia=function(s,o,a){ye("navigator.getUserMedia","navigator.mediaDevices.getUserMedia"),i.mediaDevices.getUserMedia(s).then(o,a)},!(t.version>55&&"autoGainControl"in i.mediaDevices.getSupportedConstraints())){let s=function(a,l,m){l in a&&!(m in a)&&(a[m]=a[l],delete a[l])},o=i.mediaDevices.getUserMedia.bind(i.mediaDevices);if(i.mediaDevices.getUserMedia=function(a){return typeof a=="object"&&typeof a.audio=="object"&&(a=JSON.parse(JSON.stringify(a)),s(a.audio,"autoGainControl","mozAutoGainControl"),s(a.audio,"noiseSuppression","mozNoiseSuppression")),o(a)},r&&r.prototype.getSettings){let a=r.prototype.getSettings;r.prototype.getSettings=function(){let l=a.apply(this,arguments);return s(l,"mozAutoGainControl","autoGainControl"),s(l,"mozNoiseSuppression","noiseSuppression"),l}}if(r&&r.prototype.applyConstraints){let a=r.prototype.applyConstraints;r.prototype.applyConstraints=function(l){return this.kind==="audio"&&typeof l=="object"&&(l=JSON.parse(JSON.stringify(l)),s(l,"autoGainControl","mozAutoGainControl"),s(l,"noiseSuppression","mozNoiseSuppression")),a.apply(this,[l])}}}}"use strict";function ci(e,t){e.navigator.mediaDevices&&"getDisplayMedia"in e.navigator.mediaDevices||!e.navigator.mediaDevices||(e.navigator.mediaDevices.getDisplayMedia=function(r){if(!(r&&r.video)){let s=new DOMException("getDisplayMedia without video constraints is undefined");return s.name="NotFoundError",s.code=8,Promise.reject(s)}return r.video===!0?r.video={mediaSource:t}:r.video.mediaSource=t,e.navigator.mediaDevices.getUserMedia(r)})}"use strict";function li(e){typeof e=="object"&&e.RTCTrackEvent&&"receiver"in e.RTCTrackEvent.prototype&&!("transceiver"in e.RTCTrackEvent.prototype)&&Object.defineProperty(e.RTCTrackEvent.prototype,"transceiver",{get(){return{receiver:this.receiver}}})}function St(e,t){if(typeof e!="object"||!(e.RTCPeerConnection||e.mozRTCPeerConnection))return;!e.RTCPeerConnection&&e.mozRTCPeerConnection&&(e.RTCPeerConnection=e.mozRTCPeerConnection),t.version<53&&["setLocalDescription","setRemoteDescription","addIceCandidate"].forEach(function(s){let o=e.RTCPeerConnection.prototype[s],a={[s](){return arguments[0]=new(s==="addIceCandidate"?e.RTCIceCandidate:e.RTCSessionDescription)(arguments[0]),o.apply(this,arguments)}};e.RTCPeerConnection.prototype[s]=a[s]});let i={inboundrtp:"inbound-rtp",outboundrtp:"outbound-rtp",candidatepair:"candidate-pair",localcandidate:"local-candidate",remotecandidate:"remote-candidate"},r=e.RTCPeerConnection.prototype.getStats;e.RTCPeerConnection.prototype.getStats=function(){let[o,a,l]=arguments;return r.apply(this,[o||null]).then(m=>{if(t.version<53&&!a)try{m.forEach(h=>{h.type=i[h.type]||h.type})}catch(h){if(h.name!=="TypeError")throw h;m.forEach((c,p)=>{m.set(p,Object.assign({},c,{type:i[c.type]||c.type}))})}return m}).then(a,l)}}function di(e){if(!(typeof e=="object"&&e.RTCPeerConnection&&e.RTCRtpSender)||e.RTCRtpSender&&"getStats"in e.RTCRtpSender.prototype)return;let t=e.RTCPeerConnection.prototype.getSenders;t&&(e.RTCPeerConnection.prototype.getSenders=function(){let s=t.apply(this,[]);return s.forEach(o=>o._pc=this),s});let i=e.RTCPeerConnection.prototype.addTrack;i&&(e.RTCPeerConnection.prototype.addTrack=function(){let s=i.apply(this,arguments);return s._pc=this,s}),e.RTCRtpSender.prototype.getStats=function(){return this.track?this._pc.getStats(this.track):Promise.resolve(new Map)}}function ui(e){if(!(typeof e=="object"&&e.RTCPeerConnection&&e.RTCRtpSender)||e.RTCRtpSender&&"getStats"in e.RTCRtpReceiver.prototype)return;let t=e.RTCPeerConnection.prototype.getReceivers;t&&(e.RTCPeerConnection.prototype.getReceivers=function(){let r=t.apply(this,[]);return r.forEach(s=>s._pc=this),r}),ie(e,"track",i=>(i.receiver._pc=i.srcElement,i)),e.RTCRtpReceiver.prototype.getStats=function(){return this._pc.getStats(this.track)}}function hi(e){!e.RTCPeerConnection||"removeStream"in e.RTCPeerConnection.prototype||(e.RTCPeerConnection.prototype.removeStream=function(i){ye("removeStream","removeTrack"),this.getSenders().forEach(r=>{r.track&&i.getTracks().includes(r.track)&&this.removeTrack(r)})})}function pi(e){e.DataChannel&&!e.RTCDataChannel&&(e.RTCDataChannel=e.DataChannel)}function mi(e){if(!(typeof e=="object"&&e.RTCPeerConnection))return;let t=e.RTCPeerConnection.prototype.addTransceiver;t&&(e.RTCPeerConnection.prototype.addTransceiver=function(){this.setParametersPromises=[];let r=arguments[1],s=r&&"sendEncodings"in r;s&&r.sendEncodings.forEach(a=>{if("rid"in a&&!/^[a-z0-9]{0,16}$/i.test(a.rid))throw new TypeError("Invalid RID value provided.");if("scaleResolutionDownBy"in a&&!(parseFloat(a.scaleResolutionDownBy)>=1))throw new RangeError("scale_resolution_down_by must be >= 1.0");if("maxFramerate"in a&&!(parseFloat(a.maxFramerate)>=0))throw new RangeError("max_framerate must be >= 0.0")});let o=t.apply(this,arguments);if(s){let{sender:a}=o,l=a.getParameters();(!("encodings"in l)||l.encodings.length===1&&Object.keys(l.encodings[0]).length===0)&&(l.encodings=r.sendEncodings,a.sendEncodings=r.sendEncodings,this.setParametersPromises.push(a.setParameters(l).then(()=>{delete a.sendEncodings}).catch(()=>{delete a.sendEncodings})))}return o})}function fi(e){if(!(typeof e=="object"&&e.RTCRtpSender))return;let t=e.RTCRtpSender.prototype.getParameters;t&&(e.RTCRtpSender.prototype.getParameters=function(){let r=t.apply(this,arguments);return"encodings"in r||(r.encodings=[].concat(this.sendEncodings||[{}])),r})}function gi(e){if(!(typeof e=="object"&&e.RTCPeerConnection))return;let t=e.RTCPeerConnection.prototype.createOffer;e.RTCPeerConnection.prototype.createOffer=function(){return this.setParametersPromises&&this.setParametersPromises.length?Promise.all(this.setParametersPromises).then(()=>t.apply(this,arguments)).finally(()=>{this.setParametersPromises=[]}):t.apply(this,arguments)}}function vi(e){if(!(typeof e=="object"&&e.RTCPeerConnection))return;let t=e.RTCPeerConnection.prototype.createAnswer;e.RTCPeerConnection.prototype.createAnswer=function(){return this.setParametersPromises&&this.setParametersPromises.length?Promise.all(this.setParametersPromises).then(()=>t.apply(this,arguments)).finally(()=>{this.setParametersPromises=[]}):t.apply(this,arguments)}}var ze={};je(ze,{shimAudioContext:()=>Ri,shimCallbacksAPI:()=>Ei,shimConstraints:()=>ki,shimCreateOfferLegacy:()=>Pi,shimGetUserMedia:()=>yi,shimLocalStreamsAPI:()=>Ti,shimRTCIceServerUrls:()=>Ci,shimRemoteStreamsAPI:()=>Si,shimTrackEventTransceiver:()=>bi});"use strict";function Ti(e){if(!(typeof e!="object"||!e.RTCPeerConnection)){if("getLocalStreams"in e.RTCPeerConnection.prototype||(e.RTCPeerConnection.prototype.getLocalStreams=function(){return this._localStreams||(this._localStreams=[]),this._localStreams}),!("addStream"in e.RTCPeerConnection.prototype)){let t=e.RTCPeerConnection.prototype.addTrack;e.RTCPeerConnection.prototype.addStream=function(r){this._localStreams||(this._localStreams=[]),this._localStreams.includes(r)||this._localStreams.push(r),r.getAudioTracks().forEach(s=>t.call(this,s,r)),r.getVideoTracks().forEach(s=>t.call(this,s,r))},e.RTCPeerConnection.prototype.addTrack=function(r,...s){return s&&s.forEach(o=>{this._localStreams?this._localStreams.includes(o)||this._localStreams.push(o):this._localStreams=[o]}),t.apply(this,arguments)}}"removeStream"in e.RTCPeerConnection.prototype||(e.RTCPeerConnection.prototype.removeStream=function(i){this._localStreams||(this._localStreams=[]);let r=this._localStreams.indexOf(i);if(r===-1)return;this._localStreams.splice(r,1);let s=i.getTracks();this.getSenders().forEach(o=>{s.includes(o.track)&&this.removeTrack(o)})})}}function Si(e){if(!(typeof e!="object"||!e.RTCPeerConnection)&&("getRemoteStreams"in e.RTCPeerConnection.prototype||(e.RTCPeerConnection.prototype.getRemoteStreams=function(){return this._remoteStreams?this._remoteStreams:[]}),!("onaddstream"in e.RTCPeerConnection.prototype))){Object.defineProperty(e.RTCPeerConnection.prototype,"onaddstream",{get(){return this._onaddstream},set(i){this._onaddstream&&(this.removeEventListener("addstream",this._onaddstream),this.removeEventListener("track",this._onaddstreampoly)),this.addEventListener("addstream",this._onaddstream=i),this.addEventListener("track",this._onaddstreampoly=r=>{r.streams.forEach(s=>{if(this._remoteStreams||(this._remoteStreams=[]),this._remoteStreams.includes(s))return;this._remoteStreams.push(s);let o=new Event("addstream");o.stream=s,this.dispatchEvent(o)})})}});let t=e.RTCPeerConnection.prototype.setRemoteDescription;e.RTCPeerConnection.prototype.setRemoteDescription=function(){let r=this;return this._onaddstreampoly||this.addEventListener("track",this._onaddstreampoly=function(s){s.streams.forEach(o=>{if(r._remoteStreams||(r._remoteStreams=[]),r._remoteStreams.indexOf(o)>=0)return;r._remoteStreams.push(o);let a=new Event("addstream");a.stream=o,r.dispatchEvent(a)})}),t.apply(r,arguments)}}}function Ei(e){if(typeof e!="object"||!e.RTCPeerConnection)return;let t=e.RTCPeerConnection.prototype,i=t.createOffer,r=t.createAnswer,s=t.setLocalDescription,o=t.setRemoteDescription,a=t.addIceCandidate;t.createOffer=function(h,c){let p=arguments.length>=2?arguments[2]:arguments[0],u=i.apply(this,[p]);return c?(u.then(h,c),Promise.resolve()):u},t.createAnswer=function(h,c){let p=arguments.length>=2?arguments[2]:arguments[0],u=r.apply(this,[p]);return c?(u.then(h,c),Promise.resolve()):u};let l=function(m,h,c){let p=s.apply(this,[m]);return c?(p.then(h,c),Promise.resolve()):p};t.setLocalDescription=l,l=function(m,h,c){let p=o.apply(this,[m]);return c?(p.then(h,c),Promise.resolve()):p},t.setRemoteDescription=l,l=function(m,h,c){let p=a.apply(this,[m]);return c?(p.then(h,c),Promise.resolve()):p},t.addIceCandidate=l}function yi(e){let t=e&&e.navigator;if(t.mediaDevices&&t.mediaDevices.getUserMedia){let i=t.mediaDevices,r=i.getUserMedia.bind(i);t.mediaDevices.getUserMedia=s=>r(ki(s))}!t.getUserMedia&&t.mediaDevices&&t.mediaDevices.getUserMedia&&(t.getUserMedia=function(r,s,o){t.mediaDevices.getUserMedia(r).then(s,o)}.bind(t))}function ki(e){return e&&e.video!==void 0?Object.assign({},e,{video:pt(e.video)}):e}function Ci(e){if(!e.RTCPeerConnection)return;let t=e.RTCPeerConnection;e.RTCPeerConnection=function(r,s){if(r&&r.iceServers){let o=[];for(let a=0;a<r.iceServers.length;a++){let l=r.iceServers[a];!l.hasOwnProperty("urls")&&l.hasOwnProperty("url")?(ye("RTCIceServer.url","RTCIceServer.urls"),l=JSON.parse(JSON.stringify(l)),l.urls=l.url,delete l.url,o.push(l)):o.push(r.iceServers[a])}r.iceServers=o}return new t(r,s)},e.RTCPeerConnection.prototype=t.prototype,"generateCertificate"in t&&Object.defineProperty(e.RTCPeerConnection,"generateCertificate",{get(){return t.generateCertificate}})}function bi(e){typeof e=="object"&&e.RTCTrackEvent&&"receiver"in e.RTCTrackEvent.prototype&&!("transceiver"in e.RTCTrackEvent.prototype)&&Object.defineProperty(e.RTCTrackEvent.prototype,"transceiver",{get(){return{receiver:this.receiver}}})}function Pi(e){let t=e.RTCPeerConnection.prototype.createOffer;e.RTCPeerConnection.prototype.createOffer=function(r){if(r){typeof r.offerToReceiveAudio!="undefined"&&(r.offerToReceiveAudio=!!r.offerToReceiveAudio);let s=this.getTransceivers().find(a=>a.receiver.track.kind==="audio");r.offerToReceiveAudio===!1&&s?s.direction==="sendrecv"?s.setDirection?s.setDirection("sendonly"):s.direction="sendonly":s.direction==="recvonly"&&(s.setDirection?s.setDirection("inactive"):s.direction="inactive"):r.offerToReceiveAudio===!0&&!s&&this.addTransceiver("audio"),typeof r.offerToReceiveVideo!="undefined"&&(r.offerToReceiveVideo=!!r.offerToReceiveVideo);let o=this.getTransceivers().find(a=>a.receiver.track.kind==="video");r.offerToReceiveVideo===!1&&o?o.direction==="sendrecv"?o.setDirection?o.setDirection("sendonly"):o.direction="sendonly":o.direction==="recvonly"&&(o.setDirection?o.setDirection("inactive"):o.direction="inactive"):r.offerToReceiveVideo===!0&&!o&&this.addTransceiver("video")}return t.apply(this,arguments)}}function Ri(e){typeof e!="object"||e.AudioContext||(e.AudioContext=e.webkitAudioContext)}var bt={};je(bt,{removeExtmapAllowMixed:()=>Ct,shimAddIceCandidateNullOrEmpty:()=>Ze,shimConnectionState:()=>kt,shimMaxMessageSize:()=>Ye,shimParameterlessSetLocalDescription:()=>Xe,shimRTCIceCandidate:()=>Je,shimSendThrowTypeError:()=>Qe});var Oe=ce(yt());"use strict";function Je(e){if(!e.RTCIceCandidate||e.RTCIceCandidate&&"foundation"in e.RTCIceCandidate.prototype)return;let t=e.RTCIceCandidate;e.RTCIceCandidate=function(r){if(typeof r=="object"&&r.candidate&&r.candidate.indexOf("a=")===0&&(r=JSON.parse(JSON.stringify(r)),r.candidate=r.candidate.substr(2)),r.candidate&&r.candidate.length){let s=new t(r),o=Oe.default.parseCandidate(r.candidate),a=Object.assign(s,o);return a.toJSON=function(){return{candidate:a.candidate,sdpMid:a.sdpMid,sdpMLineIndex:a.sdpMLineIndex,usernameFragment:a.usernameFragment}},a}return new t(r)},e.RTCIceCandidate.prototype=t.prototype,ie(e,"icecandidate",i=>(i.candidate&&Object.defineProperty(i,"candidate",{value:new e.RTCIceCandidate(i.candidate),writable:"false"}),i))}function Ye(e,t){if(!e.RTCPeerConnection)return;"sctp"in e.RTCPeerConnection.prototype||Object.defineProperty(e.RTCPeerConnection.prototype,"sctp",{get(){return typeof this._sctp=="undefined"?null:this._sctp}});let i=function(l){if(!l||!l.sdp)return!1;let m=Oe.default.splitSections(l.sdp);return m.shift(),m.some(h=>{let c=Oe.default.parseMLine(h);return c&&c.kind==="application"&&c.protocol.indexOf("SCTP")!==-1})},r=function(l){let m=l.sdp.match(/mozilla...THIS_IS_SDPARTA-(\d+)/);if(m===null||m.length<2)return-1;let h=parseInt(m[1],10);return h!==h?-1:h},s=function(l){let m=65536;return t.browser==="firefox"&&(t.version<57?l===-1?m=16384:m=2147483637:t.version<60?m=t.version===57?65535:65536:m=2147483637),m},o=function(l,m){let h=65536;t.browser==="firefox"&&t.version===57&&(h=65535);let c=Oe.default.matchPrefix(l.sdp,"a=max-message-size:");return c.length>0?h=parseInt(c[0].substr(19),10):t.browser==="firefox"&&m!==-1&&(h=2147483637),h},a=e.RTCPeerConnection.prototype.setRemoteDescription;e.RTCPeerConnection.prototype.setRemoteDescription=function(){if(this._sctp=null,t.browser==="chrome"&&t.version>=76){let{sdpSemantics:m}=this.getConfiguration();m==="plan-b"&&Object.defineProperty(this,"sctp",{get(){return typeof this._sctp=="undefined"?null:this._sctp},enumerable:!0,configurable:!0})}if(i(arguments[0])){let m=r(arguments[0]),h=s(m),c=o(arguments[0],m),p;h===0&&c===0?p=Number.POSITIVE_INFINITY:h===0||c===0?p=Math.max(h,c):p=Math.min(h,c);let u={};Object.defineProperty(u,"maxMessageSize",{get(){return p}}),this._sctp=u}return a.apply(this,arguments)}}function Qe(e){if(!(e.RTCPeerConnection&&"createDataChannel"in e.RTCPeerConnection.prototype))return;function t(r,s){let o=r.send;r.send=function(){let l=arguments[0],m=l.length||l.size||l.byteLength;if(r.readyState==="open"&&s.sctp&&m>s.sctp.maxMessageSize)throw new TypeError("Message too large (can send a maximum of "+s.sctp.maxMessageSize+" bytes)");return o.apply(r,arguments)}}let i=e.RTCPeerConnection.prototype.createDataChannel;e.RTCPeerConnection.prototype.createDataChannel=function(){let s=i.apply(this,arguments);return t(s,this),s},ie(e,"datachannel",r=>(t(r.channel,r.target),r))}function kt(e){if(!e.RTCPeerConnection||"connectionState"in e.RTCPeerConnection.prototype)return;let t=e.RTCPeerConnection.prototype;Object.defineProperty(t,"connectionState",{get(){return{completed:"connected",checking:"connecting"}[this.iceConnectionState]||this.iceConnectionState},enumerable:!0,configurable:!0}),Object.defineProperty(t,"onconnectionstatechange",{get(){return this._onconnectionstatechange||null},set(i){this._onconnectionstatechange&&(this.removeEventListener("connectionstatechange",this._onconnectionstatechange),delete this._onconnectionstatechange),i&&this.addEventListener("connectionstatechange",this._onconnectionstatechange=i)},enumerable:!0,configurable:!0}),["setLocalDescription","setRemoteDescription"].forEach(i=>{let r=t[i];t[i]=function(){return this._connectionstatechangepoly||(this._connectionstatechangepoly=s=>{let o=s.target;if(o._lastConnectionState!==o.connectionState){o._lastConnectionState=o.connectionState;let a=new Event("connectionstatechange",s);o.dispatchEvent(a)}return s},this.addEventListener("iceconnectionstatechange",this._connectionstatechangepoly)),r.apply(this,arguments)}})}function Ct(e,t){if(!e.RTCPeerConnection||t.browser==="chrome"&&t.version>=71||t.browser==="safari"&&t.version>=605)return;let i=e.RTCPeerConnection.prototype.setRemoteDescription;e.RTCPeerConnection.prototype.setRemoteDescription=function(s){if(s&&s.sdp&&s.sdp.indexOf(`
35
- a=extmap-allow-mixed`)!==-1){let o=s.sdp.split(`
36
- `).filter(a=>a.trim()!=="a=extmap-allow-mixed").join(`
37
- `);e.RTCSessionDescription&&s instanceof e.RTCSessionDescription?arguments[0]=new e.RTCSessionDescription({type:s.type,sdp:o}):s.sdp=o}return i.apply(this,arguments)}}function Ze(e,t){if(!(e.RTCPeerConnection&&e.RTCPeerConnection.prototype))return;let i=e.RTCPeerConnection.prototype.addIceCandidate;!i||i.length===0||(e.RTCPeerConnection.prototype.addIceCandidate=function(){return arguments[0]?(t.browser==="chrome"&&t.version<78||t.browser==="firefox"&&t.version<68||t.browser==="safari")&&arguments[0]&&arguments[0].candidate===""?Promise.resolve():i.apply(this,arguments):(arguments[1]&&arguments[1].apply(null),Promise.resolve())})}function Xe(e,t){if(!(e.RTCPeerConnection&&e.RTCPeerConnection.prototype))return;let i=e.RTCPeerConnection.prototype.setLocalDescription;!i||i.length===0||(e.RTCPeerConnection.prototype.setLocalDescription=function(){let s=arguments[0]||{};if(typeof s!="object"||s.type&&s.sdp)return i.apply(this,arguments);if(s={type:s.type,sdp:s.sdp},!s.type)switch(this.signalingState){case"stable":case"have-local-offer":case"have-remote-pranswer":s.type="offer";break;default:s.type="answer";break}return s.sdp||s.type!=="offer"&&s.type!=="answer"?i.apply(this,[s]):(s.type==="offer"?this.createOffer:this.createAnswer).apply(this).then(a=>i.apply(this,[a]))})}var Ur=ce(yt());function Ai({window:e}={},t={shimChrome:!0,shimFirefox:!0,shimSafari:!0}){let i=We,r=Yt(e),s={browserDetails:r,commonShim:bt,extractVersion:Le,disableLog:zt,disableWarnings:Jt,sdp:Ur};switch(r.browser){case"chrome":if(!Ke||!vt||!t.shimChrome)return i("Chrome shim is not included in this adapter release."),s;if(r.version===null)return i("Chrome shim can not determine version, not shimming."),s;i("adapter.js shimming chrome."),s.browserShim=Ke,Ze(e,r),Xe(e,r),gt(e,r),ei(e,r),vt(e,r),ti(e,r),ai(e,r),ii(e,r),ri(e,r),si(e,r),oi(e,r),Je(e,r),kt(e,r),Ye(e,r),Qe(e,r),Ct(e,r);break;case"firefox":if(!qe||!St||!t.shimFirefox)return i("Firefox shim is not included in this adapter release."),s;i("adapter.js shimming firefox."),s.browserShim=qe,Ze(e,r),Xe(e,r),Tt(e,r),St(e,r),li(e,r),hi(e,r),di(e,r),ui(e,r),pi(e,r),mi(e,r),fi(e,r),gi(e,r),vi(e,r),Je(e,r),kt(e,r),Ye(e,r),Qe(e,r);break;case"safari":if(!ze||!t.shimSafari)return i("Safari shim is not included in this adapter release."),s;i("adapter.js shimming safari."),s.browserShim=ze,Ze(e,r),Xe(e,r),Ci(e,r),Pi(e,r),Ei(e,r),Ti(e,r),Si(e,r),bi(e,r),yi(e,r),Ri(e,r),Je(e,r),Ye(e,r),Qe(e,r),Ct(e,r);break;default:i("Unsupported browser!");break}return s}"use strict";var Gr=Ai({window:typeof window=="undefined"?void 0:window}),et=Gr;var qi=ce(Ni()),rr=ce(xi());var it,qr=new Uint8Array(16);function At(){if(!it&&(it=typeof crypto!="undefined"&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto)||typeof msCrypto!="undefined"&&typeof msCrypto.getRandomValues=="function"&&msCrypto.getRandomValues.bind(msCrypto),!it))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return it(qr)}var Ui=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;function zr(e){return typeof e=="string"&&Ui.test(e)}var Gi=zr;var J=[];for(rt=0;rt<256;++rt)J.push((rt+256).toString(16).substr(1));var rt;function Jr(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,i=(J[e[t+0]]+J[e[t+1]]+J[e[t+2]]+J[e[t+3]]+"-"+J[e[t+4]]+J[e[t+5]]+"-"+J[e[t+6]]+J[e[t+7]]+"-"+J[e[t+8]]+J[e[t+9]]+"-"+J[e[t+10]]+J[e[t+11]]+J[e[t+12]]+J[e[t+13]]+J[e[t+14]]+J[e[t+15]]).toLowerCase();if(!Gi(i))throw TypeError("Stringified UUID is invalid");return i}var Fi=Jr;function Yr(e,t,i){e=e||{};var r=e.random||(e.rng||At)();if(r[6]=r[6]&15|64,r[8]=r[8]&63|128,t){i=i||0;for(var s=0;s<16;++s)t[i+s]=r[s];return t}return Fi(r)}var It=Yr;var as=ce(Ue());var ps=ce(Ue());var ms=ce(Ue()),fs=ce(Ue()),Qr=Object.defineProperty,Zr=Object.defineProperties,Xr=Object.getOwnPropertyDescriptors,Hi=Object.getOwnPropertySymbols,es=Object.prototype.hasOwnProperty,ts=Object.prototype.propertyIsEnumerable,ji=(e,t,i)=>t in e?Qr(e,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[t]=i,st=(e,t)=>{for(var i in t||(t={}))es.call(t,i)&&ji(e,i,t[i]);if(Hi)for(var i of Hi(t))ts.call(t,i)&&ji(e,i,t[i]);return e},$i=(e,t)=>Zr(e,Xr(t));var Wi;(function(e){e[e.VERBOSE=0]="VERBOSE",e[e.DEBUG=1]="DEBUG",e[e.INFO=2]="INFO",e[e.WARN=3]="WARN",e[e.TIME=4]="TIME",e[e.TIMEEND=5]="TIMEEND",e[e.ERROR=6]="ERROR",e[e.NONE=7]="NONE"})(Wi||(Wi={}));var is=typeof window!="undefined"&&typeof window.expect!="undefined",Ge=class{static v(e,...t){this.log(0,e,...t)}static d(e,...t){this.log(1,e,...t)}static i(e,...t){this.log(2,e,...t)}static w(e,...t){this.log(3,e,...t)}static e(e,...t){this.log(6,e,...t)}static time(e){this.log(4,"[HMSPerformanceTiming]",e)}static timeEnd(e){this.log(5,"[HMSPerformanceTiming]",e,e)}static cleanUp(){performance.clearMarks(),performance.clearMeasures()}static log(e,t,...i){if(!(this.level.valueOf()>e.valueOf()))switch(e){case 0:{console.log(t,...i);break}case 1:{console.debug(t,...i);break}case 2:{console.info(t,...i);break}case 3:{console.warn(t,...i);break}case 6:{console.error(t,...i);break}case 4:{performance.mark(i[0]);break}case 5:{let r=i[0];try{let s=performance.measure(r,r);this.log(1,t,r,s==null?void 0:s.duration),performance.clearMarks(r),performance.clearMeasures(r)}catch(s){this.log(1,t,r,s)}break}}}};Ge.level=is?7:0;var Ki;(function(e){e[e.Publish=0]="Publish",e[e.Subscribe=1]="Subscribe"})(Ki||(Ki={}));var zi;(function(e){e.NONE="NONE",e.TRACK="TRACK",e.INIT="INIT",e.PUBLISH="PUBLISH",e.UNPUBLISH="UNPUBLISH",e.JOIN="JOIN",e.SUBSCRIBE="SUBSCRIBE",e.DATA_CHANNEL_SEND="DATA_CHANNEL_SEND",e.RESTART_ICE="RESTART_ICE",e.VIDEO_PLUGINS="VIDEO_PLUGINS",e.AUDIO_PLUGINS="AUDIO_PLUGINS",e.AUTOPLAY="AUTOPLAY",e.RECONNECT_SIGNAL="RECONNECT_SIGNAL",e.VALIDATION="VALIDATION",e.PLAYLIST="PLAYLIST",e.PREVIEW="PREVIEW"})(zi||(zi={}));var rs=100;var Ji;(function(e){e[e.PEER_ADDED=0]="PEER_ADDED",e[e.PEER_REMOVED=1]="PEER_REMOVED",e[e.PEER_KNOCKED=2]="PEER_KNOCKED",e[e.ROOM_TYPE_CHANGED=3]="ROOM_TYPE_CHANGED",e[e.METADATA_UPDATED=4]="METADATA_UPDATED",e[e.SCREENSHARE_STARTED=5]="SCREENSHARE_STARTED",e[e.SCREENSHARE_STOPPED=6]="SCREENSHARE_STOPPED",e[e.DEFAULT_UPDATE=7]="DEFAULT_UPDATE",e[e.RECORDING_STATE_UPDATED=8]="RECORDING_STATE_UPDATED",e[e.BROWSER_RECORDING_STATE_UPDATED=9]="BROWSER_RECORDING_STATE_UPDATED",e[e.SERVER_RECORDING_STATE_UPDATED=10]="SERVER_RECORDING_STATE_UPDATED",e[e.RTMP_STREAMING_STATE_UPDATED=11]="RTMP_STREAMING_STATE_UPDATED",e[e.HLS_STREAMING_STATE_UPDATED=12]="HLS_STREAMING_STATE_UPDATED"})(Ji||(Ji={}));var Yi;(function(e){e[e.PEER_JOINED=0]="PEER_JOINED",e[e.PEER_LEFT=1]="PEER_LEFT",e[e.AUDIO_TOGGLED=2]="AUDIO_TOGGLED",e[e.VIDEO_TOGGLED=3]="VIDEO_TOGGLED",e[e.BECAME_DOMINANT_SPEAKER=4]="BECAME_DOMINANT_SPEAKER",e[e.RESIGNED_DOMINANT_SPEAKER=5]="RESIGNED_DOMINANT_SPEAKER",e[e.STARTED_SPEAKING=6]="STARTED_SPEAKING",e[e.STOPPED_SPEAKING=7]="STOPPED_SPEAKING",e[e.ROLE_UPDATED=8]="ROLE_UPDATED",e[e.PEER_LIST=9]="PEER_LIST",e[e.NAME_UPDATED=10]="NAME_UPDATED",e[e.METADATA_UPDATED=11]="METADATA_UPDATED"})(Yi||(Yi={}));var Qi;(function(e){e[e.TRACK_ADDED=0]="TRACK_ADDED",e[e.TRACK_REMOVED=1]="TRACK_REMOVED",e[e.TRACK_MUTED=2]="TRACK_MUTED",e[e.TRACK_UNMUTED=3]="TRACK_UNMUTED",e[e.TRACK_DESCRIPTION_CHANGED=4]="TRACK_DESCRIPTION_CHANGED",e[e.TRACK_DEGRADED=5]="TRACK_DEGRADED",e[e.TRACK_RESTORED=6]="TRACK_RESTORED"})(Qi||(Qi={}));var Zi;(function(e){e[e.DEFAULT=0]="DEFAULT"})(Zi||(Zi={}));var Fe;(function(e){e.NONE="none",e.LOW="low",e.MEDIUM="medium",e.HIGH="high"})(Fe||(Fe={}));var aa={f:Fe.HIGH,h:Fe.MEDIUM,q:Fe.LOW},Xi;(function(e){e.VP8="vp8",e.VP9="vp9",e.H264="h264"})(Xi||(Xi={}));var er;(function(e){e.OPUS="opus"})(er||(er={}));var tr;(function(e){e.audio="audio",e.video="video"})(tr||(tr={}));var ir;(function(e){e.AUDIO="audio",e.VIDEO="video"})(ir||(ir={}));var _t="0.1.42-alpha.3",nt=new rr.UAParser,sr,nr=typeof window=="undefined"&&!((sr=nt.getBrowser().name)==null?void 0:sr.toLowerCase().includes("electron")),at=typeof window!="undefined",ss=()=>!nr,oa=ss();function ns(){if(nr)return`hmsclient/${_t}`;let e=nt.getDevice(),t=nt.getBrowser(),i=nt.getOS();return e.type?`hmsclient/${_t} ${i.name}/${i.version} (${e.vendor}_${e.type}_/_${t.name}_${t.version})`:`hmsclient/${_t} ${i.name}/${i.version} (${t.name}_${t.version})`}var ca=ns();var ar;(function(e){e.JOIN="join",e.OFFER="offer",e.ANSWER="answer",e.TRICKLE="trickle",e.TRACK_UPDATE="track-update",e.BROADCAST="broadcast",e.ANALYTICS="analytics",e.SERVER_ERROR="on-error",e.SERVER_WARNING="on-warning",e.SDK_NOTIFICATION="sdk-notification",e.LEAVE="leave",e.END_ROOM="end-room",e.PING="ping",e.ROLE_CHANGE_REQUEST="role-change-request",e.ROLE_CHANGE="role-change",e.TRACK_UPDATE_REQUEST="track-update-request",e.PEER_LEAVE_REQUEST="peer-leave-request",e.CHANGE_TRACK_MUTE_STATE_REQUEST="change-track-mute-state-request",e.START_RTMP_OR_RECORDING_REQUEST="rtmp-start",e.STOP_RTMP_AND_RECORDING_REQUEST="rtmp-stop",e.UPDATE_PEER_METADATA="peer-update",e.START_HLS_STREAMING="hls-start",e.STOP_HLS_STREAMING="hls-stop"})(ar||(ar={}));var or;(function(e){e.PEER_JOIN="on-peer-join",e.PEER_LEAVE="on-peer-leave",e.PEER_LIST="peer-list",e.TRACK_METADATA_ADD="on-track-add",e.TRACK_UPDATE="on-track-update",e.CHANGE_TRACK_MUTE_STATE_UPDATE="on-change-track-mute-state-request",e.ACTIVE_SPEAKERS="active-speakers",e.BROADCAST="on-broadcast",e.ROLE_CHANGE="on-role-change",e.POLICY_CHANGE="on-policy-change",e.ROLE_CHANGE_REQUEST="on-role-change-request",e.TRACK_UPDATE_REQUEST="on-track-update-request",e.PEER_UPDATE="on-peer-update",e.PEER_LEAVE_REQUEST="on-peer-leave-request",e.UNSUPPORTED="unsupported",e.RTMP_START="on-rtmp-start",e.RTMP_STOP="on-rtmp-stop",e.RECORDING_START="on-record-start",e.RECORDING_STOP="on-record-stop",e.HLS_START="on-hls-start",e.HLS_STOP="on-hls-stop"})(or||(or={}));var os=class{};os.makePeerId=()=>It();var cr;(function(e){e.AUDIO="audio",e.VIDEO="video",e.AV="audio, video",e.SCREEN="screen"})(cr||(cr={}));var lr;(function(e){e.TRANSFORM="TRANSFORM",e.ANALYZE="ANALYZE"})(lr||(lr={}));var Ce;(function(e){e.CUSTOM="CUSTOM",e.LOCAL="LOCAL",e.HMS="HMS"})(Ce||(Ce={}));function cs(){if(at&&window){let e=window.location.hostname;return e==="localhost"||e==="127.0.0.1"?Ce.LOCAL:e.includes("app.100ms.live")?Ce.HMS:Ce.CUSTOM}return Ce.CUSTOM}var ls=cs(),Z=class{constructor({name:e,level:t,properties:i,includesPII:r,timestamp:s}){this.name=e,this.level=t,this.includesPII=r||!1,this.properties=i||{},this.timestamp=s||new Date().getTime()}toSignalParams(){return{name:this.name,info:$i(st({},this.properties),{timestamp:this.timestamp,domain:ls}),timestamp:new Date().getTime()}}},Dt;(function(e){e[e.VERBOSE=0]="VERBOSE",e[e.INFO=1]="INFO",e[e.ERROR=2]="ERROR",e[e.OFF=3]="OFF"})(Dt||(Dt={}));var K;(function(e){e[e.VERBOSE=0]="VERBOSE",e[e.INFO=1]="INFO",e[e.ERROR=2]="ERROR",e[e.OFF=3]="OFF"})(K||(K={}));var Mt="AnalyticsEventsService",ds=class{constructor(){this.bufferSize=rs,this.transports=[],this.pendingEvents=[],this.level=Dt.INFO}addTransport(e){this.transports.push(e)}removeTransport(e){this.transports.splice(this.transports.indexOf(e),1)}queue(e){if(e.level>=this.level&&(this.pendingEvents.push(e),this.pendingEvents.length>this.bufferSize)){let t=this.pendingEvents.shift();Ge.d(Mt,"Max buffer size reached","Removed event to accommodate new events",t)}return this}flush(){if(this.transports.length===0){Ge.w(Mt,"No valid signalling API found to flush analytics");return}try{for(;this.pendingEvents.length>0;){let e=this.pendingEvents.shift();e&&this.transports.forEach(t=>t.sendEvent(e))}}catch(e){Ge.w(Mt,"Flush Failed",e)}}},ua=new ds;var us=class{constructor(e){this.key=e,this.storage=null}getStorage(){return at&&(this.storage=window.localStorage),this.storage}get(){var e;let t=(e=this.getStorage())==null?void 0:e.getItem(this.key);return t?JSON.parse(t):void 0}set(e){var t;let i=JSON.stringify(e);(t=this.getStorage())==null||t.setItem(this.key,i)}clear(){var e;(e=this.getStorage())==null||e.removeItem(this.key)}},hs=class{constructor(){this.storage=new us("hms-device-selection"),this.remember=!1}setDevices(e){this.devices=e}rememberDevices(e){this.remember=e}updateSelection(e,{deviceId:t,groupId:i}){if(!this.devices||!this.remember)return;let r=this.devices[e].find(o=>this.isSame({deviceId:t,groupId:i},o));if(!r)return;let s=this.storage.get()||{};s[e]=r,this.storage.set(s)}getSelection(){if(this.remember)return this.storage.get()}cleanup(){this.remember=!1,this.devices=void 0}isSame(e,t){return e.deviceId===t.deviceId&&(e.groupId===t.groupId||!e.groupId)}},ha=new hs;var dr;(function(e){e.TRANSFORM="TRANSFORM",e.ANALYZE="ANALYZE"})(dr||(dr={}));var ur=class{static connect(e,t=new Date,i=new Date,r){let s=this.eventNameFor("connect",e===void 0),o=e?K.ERROR:K.INFO,a=this.getPropertiesWithError({[this.KEY_REQUESTED_AT]:t==null?void 0:t.getTime(),[this.KEY_RESPONDED_AT]:i==null?void 0:i.getTime(),endpoint:r},e);return new Z({name:s,level:o,properties:a})}static disconnect(e){let t="disconnected",i=e?K.ERROR:K.INFO,r=this.getPropertiesWithError({},e);return new Z({name:t,level:i,properties:r})}static join(e,t,i){let r=this.eventNameFor("join",i===void 0),s=i?K.ERROR:K.INFO,o=this.getPropertiesWithError({[this.KEY_REQUESTED_AT]:e.getTime(),[this.KEY_RESPONDED_AT]:t.getTime()},i);return new Z({name:r,level:s,properties:o})}static publish({devices:e,settings:t,error:i}){let r=this.eventNameFor("publish",i===void 0),s=i?K.ERROR:K.INFO,o=this.getPropertiesWithError({devices:e,audio:t==null?void 0:t.audio,video:t==null?void 0:t.video},i);return new Z({name:r,level:s,properties:o})}static subscribeFail(e){let t=this.eventNameFor("subscribe",!1),i=K.ERROR,r=e.toAnalyticsProperties();return new Z({name:t,level:i,properties:r})}static leave(){return new Z({name:"leave",level:K.INFO})}static autoplayError(){return new Z({name:"autoplayError",level:K.ERROR})}static deviceChange({selection:e,type:t,devices:i,error:r}){let s=this.eventNameFor(r?"publish":`device.${t}`,r===void 0),o=r?K.ERROR:K.INFO,a=this.getPropertiesWithError({selection:e,devices:i},r);return new Z({name:s,level:o,properties:a})}static performance(e){let t="perf.stats",i=K.INFO,r=e.toAnalyticsProperties();return new Z({name:t,level:i,properties:r})}static rtcStats(e){let t="rtc.stats",i=K.INFO,r=e.toAnalyticsProperties();return new Z({name:t,level:i,properties:r})}static degradationStats(e,t){let i="video.degradation.stats",r=K.INFO,s={degradedAt:e.degradedAt,trackId:e.trackId};if(!t&&e.degradedAt instanceof Date){let o=new Date,a=o.valueOf()-e.degradedAt.valueOf();s=$i(st({},s),{duration:a,restoredAt:o})}return new Z({name:i,level:r,properties:s})}static eventNameFor(e,t){return`${e}.${t?"success":"failed"}`}static getPropertiesWithError(e,t){return t&&(e=st(st({},t.toAnalyticsProperties()),e)),e}};ur.KEY_REQUESTED_AT="requested_at",ur.KEY_RESPONDED_AT="responded_at";var hr;(function(e){e[e.Disconnected=0]="Disconnected",e[e.Connecting=1]="Connecting",e[e.Joined=2]="Joined",e[e.Failed=3]="Failed",e[e.Reconnecting=4]="Reconnecting",e[e.Leaving=5]="Leaving"})(hr||(hr={}));var pr;(function(e){e[e.ConnectFailed=0]="ConnectFailed",e[e.SignalDisconnect=1]="SignalDisconnect",e[e.PublishIceConnectionFailed=2]="PublishIceConnectionFailed",e[e.SubscribeIceConnectionFailed=3]="SubscribeIceConnectionFailed"})(pr||(pr={}));var pa={[0]:[],[1]:[],[2]:[1],[3]:[1]};Ge.i("adapter",`${et.browserDetails.browser} v${et.browserDetails.version}`);import{HMSRoomState as mr,selectIsLocalAudioEnabled as gs,selectIsLocalVideoDisplayEnabled as vs,selectLocalPeer as Ts,selectRoomState as Ss,selectIsAllowedToPublish as Es}from"@100mslive/hms-video-store";import{useState as ys,useEffect as ks}from"react";var Cs=(e,t="preview")=>{let[i,r]=ys(!1),s=Q(),o=B(Ts),a=B(Ss),l=B(gs),m=B(vs),h=B(Es),c=i||a!==mr.Preview;return ks(()=>{a===mr.Disconnected&&s.preview({userName:t,authToken:e}),at&&(window.onunload=()=>s.leave())},[a,s,e]),{localPeer:o,roomState:a,audioEnabled:l,videoEnabled:m,isAllowedToPublish:h,disableJoin:c,actions:s,setInProgress:r}};import{selectIsPeerAudioEnabled as bs,selectIsPeerVideoEnabled as Ps,selectPeerAudioByID as Rs,selectVideoTrackByPeerID as As}from"@100mslive/hms-video-store";import{useRef as Is,useEffect as _s}from"react";var Ds=e=>{let t=Q(),i=Is(null),r=B(As(e.id)),s=B(bs(e.id)),o=B(Ps(e.id)),{isLocal:a,name:l}=e,m=B(Rs(e.id))>0;return _s(()=>{i.current&&r&&(r.enabled?t.attachVideo(r.id,i.current):t.detachVideo(r.id,i.current))},[r,t]),{videoRef:i,isAudioOn:s,isVideoOn:o,actions:t,isLocal:a,name:l,audioLevel:m}};import{selectTracksMap as Ms}from"@100mslive/hms-video-store";import{useMemo as wt}from"react";import{useResizeDetector as ws}from"react-resize-detector";var ot={maxTileCount:4,maxColCount:4,maxRowCount:2,aspectRatio:{width:1,height:1}},Ls=({maxTileCount:e=ot.maxTileCount,maxColCount:t=ot.maxColCount,maxRowCount:i=ot.maxRowCount,showScreenFn:r=()=>!1,peers:s,overflow:o="scroll-x",aspectRatio:a=ot.aspectRatio,filterNonPublishingPeers:l=!0})=>{let{width:m=0,height:h=0,ref:c}=ws(),u=we().getState(Ms),v=Wt(s,u,r,l),E=wt(()=>a||{width:dt(v)||1,height:1},[a,v]),A=v.length,{tilesInFirstPage:q,defaultWidth:I,defaultHeight:_,lastPageWidth:z,lastPageHeight:X,isLastPageDifferentFromFirstPage:ne}=wt(()=>ht({count:A,parentWidth:Math.floor(m),parentHeight:Math.floor(h),maxTileCount:e,maxRowCount:i,maxColCount:t,aspectRatio:E}),[A,m,h,e,i,t,E]);return{pagesWithTiles:wt(()=>lt({elements:v,tilesInFirstPage:q,onlyOnePage:o==="hidden",isLastPageDifferentFromFirstPage:ne,defaultWidth:I,defaultHeight:_,lastPageWidth:z,lastPageHeight:X}),[v,q,o,ne,I,_,z,X]),ref:c}};import{selectIsAllowedToPublish as Os,selectIsLocalAudioEnabled as Ns,selectIsLocalVideoEnabled as xs}from"@100mslive/hms-video-store";import{useCallback as fr}from"react";var Us=()=>{let e=B(Ns),t=B(xs),i=B(Os),r=Q(),s=fr(()=>Me(void 0,null,function*(){try{yield r.setLocalAudioEnabled(!e)}catch(a){console.error("Cannot toggle audio",a)}}),[e]),o=fr(()=>Me(void 0,null,function*(){try{yield r.setLocalVideoEnabled(!t)}catch(a){console.error("Cannot toggle video",a)}}),[t]);return{isLocalAudioEnabled:e,isLocalVideoEnabled:t,toggleAudio:s,toggleVideo:o,isAllowedToPublish:i}};import{selectLocalMediaSettings as Gs,selectDevices as Fs,selectIsAllowedToPublish as Vs,selectIsAllowedToSubscribe as Bs}from"@100mslive/hms-video-store";var Hs=()=>{let e=Q(),t=B(Fs),i=B(Gs),{video:r,audio:s}=B(Vs),o=B(Bs),a=p=>{let u=p.currentTarget.value,{name:v}=p.currentTarget;if(u!==i[v])switch(v){case"audioInputDeviceId":e.setAudioSettings({deviceId:u});break;case"videoInputDeviceId":e.setVideoSettings({deviceId:u});break;case"audioOutputDeviceId":e.setAudioOutputDevice(u);break;default:break}},l=t.videoInput||[],m=t.audioInput||[],h=t.audioOutput||[];return[r,s,o].some(p=>!!p)?{showVideo:r,videoInput:l,showAudio:s,audioInput:m,audioOutput:h,isSubscribing:o,selectedDevices:i,handleInputChange:a}:null};import{selectTrackByID as js}from"@100mslive/hms-video-store";import{useCallback as $s,useEffect as gr,useRef as Ws}from"react";import{useInView as Ks}from"react-intersection-observer";var qs=e=>{let t=Q(),i=Ws(null),{ref:r,inView:s}=Ks({threshold:.5}),o=$s(l=>{i.current=l,r(l)},[r]),a=B(js(e));return gr(()=>{(()=>Me(void 0,null,function*(){i.current&&a&&(s?a.enabled?yield t.attachVideo(a.id,i.current):yield t.detachVideo(a.id,i.current):yield t.detachVideo(a.id,i.current))}))()},[s,i,a==null?void 0:a.id,a==null?void 0:a.enabled,a==null?void 0:a.deviceID,a==null?void 0:a.plugins]),gr(()=>()=>{i.current&&a&&t.detachVideo(a.id,i.current)},[]),o};import{useEffect as zs}from"react";import{selectTrackAudioByID as Js}from"@100mslive/hms-video-store";function Ys({trackId:e,getStyle:t,ref:i}){let r=we();zs(()=>r.subscribe(s=>{if(!i.current)return;let o=t(s);for(let a in o)i.current.style[a]=o[a]},Js(e)),[e])}export*from"@100mslive/hms-video-store";export{_r as HMSRoomProvider,ht as calculateLayoutSizes,lt as chunkElements,dt as getModeAspectRatio,Us as useAVToggle,Ys as useAudioLevel,Hs as useDevices,Q as useHMSActions,Mr as useHMSNotifications,Dr as useHMSStatsStore,B as useHMSStore,we as useHMSVanillaStore,Cs as usePreview,qs as useVideo,Ls as useVideoList,Ds as useVideoTile};
38
- /*!
39
- * EventEmitter2
40
- * https://github.com/hij1nx/EventEmitter2
41
- *
42
- * Copyright (c) 2013 hij1nx
43
- * Licensed under the MIT license.
44
- */
1
+ var ee=Object.defineProperty,te=Object.defineProperties;var oe=Object.getOwnPropertyDescriptors;var z=Object.getOwnPropertySymbols;var re=Object.prototype.hasOwnProperty,se=Object.prototype.propertyIsEnumerable;var L=(r,t,e)=>t in r?ee(r,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):r[t]=e,y=(r,t)=>{for(var e in t||(t={}))re.call(t,e)&&L(r,e,t[e]);if(z)for(var e of z(t))se.call(t,e)&&L(r,e,t[e]);return r},R=(r,t)=>te(r,oe(t));var g=(r,t,e)=>new Promise((o,s)=>{var i=a=>{try{c(e.next(a))}catch(l){s(l)}},n=a=>{try{c(e.throw(a))}catch(l){s(l)}},c=a=>a.done?o(a.value):Promise.resolve(a.value).then(i,n);c((e=e.apply(r,t)).next())});import ie,{createContext as ne,useContext as V,useEffect as J,useState as ae}from"react";import{HMSReactiveStore as ce}from"@100mslive/hms-video-store";import A from"zustand";import{useContext as B}from"react";import q from"zustand/shallow";var H;(function(n){n[n.VERBOSE=0]="VERBOSE",n[n.DEBUG=1]="DEBUG",n[n.INFO=2]="INFO",n[n.WARN=3]="WARN",n[n.ERROR=4]="ERROR",n[n.NONE=5]="NONE"})(H||(H={}));var w=class{static v(t,...e){this.log(0,t,...e)}static d(t,...e){this.log(1,t,...e)}static i(t,...e){this.log(2,t,...e)}static w(t,...e){this.log(3,t,...e)}static e(t,...e){this.log(4,t,...e)}static log(t,e,...o){if(!(this.level.valueOf()>t.valueOf()))switch(t){case 0:{console.log("HMSui-components: ",e,...o);break}case 1:{console.debug("HMSui-components: ",e,...o);break}case 2:{console.info("HMSui-components: ",e,...o);break}case 3:{console.warn("HMSui-components: ",e,...o);break}case 4:{console.error("HMSui-components: ",e,...o);break}}}};w.level=0;var T="It seems like you forgot to add your component within a top level HMSRoomProvider, please refer to 100ms react docs(https://docs.100ms.live/javascript/v2/features/integration#react-hooks) to check on the required steps for using this hook.";function G(r){return(e,o=q)=>{e||w.w("fetching full store without passing any selector may have a heavy performance impact on your website.");let s=B(r);if(!s)throw new Error(T);return s.store(e,o)}}function U(r){return(e,o=q)=>{e||w.w("fetching full store without passing any selector may have a heavy performance impact on your website.");let s=B(r);if(!s)throw new Error(T);let i=s.statsStore;return i==null?void 0:i(e,o)}}var j=typeof window!="undefined";var x=ne(null),b,le=({children:r,actions:t,store:e,notifications:o,stats:s,isHMSStatsOn:i=!1})=>{if(!b){let n=()=>{throw new Error("modifying store is not allowed")};if(t&&e)b={actions:t,store:A(R(y({},e),{setState:n,destroy:n}))},o&&(b.notifications=o),s&&(b.statsStore=A({getState:s.getState,subscribe:s.subscribe,setState:n,destroy:n}));else{let c=new ce;if(b={actions:c.getActions(),store:A(R(y({},c.getStore()),{setState:n,destroy:n})),notifications:c.getNotifications()},i){let a=c.getStats();b.statsStore=A({getState:a.getState,subscribe:a.subscribe,setState:n,destroy:n})}}}return J(()=>{j&&(window.addEventListener("beforeunload",()=>b.actions.leave()),window.addEventListener("onunload",()=>b.actions.leave()))},[]),ie.createElement(x.Provider,{value:b},r)},f=G(x),ue=U(x),D=()=>{let r=V(x);if(!r)throw new Error(T);return r.store},M=()=>{let r=V(x);if(!r)throw new Error(T);return r.actions},de=()=>{let r=V(x),[t,e]=ae(null);if(!r)throw new Error(T);return J(()=>r.notifications?r.notifications.onNotification(s=>e(s)):void 0,[r.notifications]),t};import{HMSRoomState as K,selectIsConnectedToRoom as Se,selectRoomState as fe}from"@100mslive/hms-video-store";import{useCallback as pe,useEffect as ge,useMemo as He}from"react";var me="react-sdk",E=(r,t)=>w.e(me,t,r),he=r=>{throw r};var Me=({name:r="",token:t,metadata:e,handleError:o=E})=>{let s=M(),i=f(fe),n=f(Se)||!1,c=i===K.Preview,a=He(()=>({userName:r,authToken:t,metaData:e,rememberDeviceSelection:!0}),[r,t,e]);ge(()=>{(()=>g(void 0,null,function*(){if(!!t){i!==K.Disconnected&&(yield s.leave());try{yield s.preview(a)}catch(u){o(u,"preview")}}}))()},[s,t]);let l=pe(()=>g(void 0,null,function*(){if(!!t)try{yield s.join(a)}catch(u){o(u,"join")}}),[s,t]);return{enableJoin:c,join:l,isConnected:n}};import{selectIsAllowedToPublish as ve,selectIsLocalAudioEnabled as we,selectIsLocalVideoEnabled as be}from"@100mslive/hms-video-store";import{useCallback as Q}from"react";var ke=(r=E)=>{let t=f(we),e=f(be),o=f(ve),s=M(),i=Q(()=>g(void 0,null,function*(){try{yield s.setLocalAudioEnabled(!t)}catch(c){r(c,"toggleAudio")}}),[t,s]),n=Q(()=>g(void 0,null,function*(){try{yield s.setLocalVideoEnabled(!e)}catch(c){r(c,"toggleVideo")}}),[e,s]);return{isLocalAudioEnabled:t,isLocalVideoEnabled:e,toggleAudio:(o==null?void 0:o.audio)?i:void 0,toggleVideo:(o==null?void 0:o.video)?n:void 0}};import{selectDevices as Pe,selectIsAllowedToPublish as Te,selectLocalMediaSettings as xe}from"@100mslive/hms-video-store";import{useCallback as Ee}from"react";var v;(function(o){o.videoInput="videoInput",o.audioInput="audioInput",o.audioOutput="audioOutput"})(v||(v={}));var Ie=(r=E)=>{let t=M(),e=f(Pe),o=f(xe),s=f(Te),i={[v.audioInput]:o.audioInputDeviceId,[v.audioOutput]:o.audioOutputDeviceId,[v.videoInput]:o.videoInputDeviceId};s.video||(delete e[v.videoInput],delete i[v.videoInput]),s.audio||(delete e[v.audioInput],delete i[v.audioInput]);let n=Ee(l=>g(void 0,[l],function*({deviceType:c,deviceId:a}){try{switch(c){case v.audioInput:yield t.setAudioSettings({deviceId:a});break;case v.videoInput:yield t.setVideoSettings({deviceId:a});break;case v.audioOutput:yield t.setAudioOutputDevice(a);break}}catch(u){r(u,"updateDevices")}}),[t]);return{allDevices:e,selectedDeviceIDs:i,updateDevice:n}};import{selectTrackByID as ye}from"@100mslive/hms-video-store";import{useCallback as Re,useEffect as X,useRef as De}from"react";import{useInView as Ae}from"react-intersection-observer";var Ve=r=>{let t=M(),e=De(null),o=f(ye(r)),{ref:s,inView:i}=Ae({threshold:.5}),n=Re(c=>{e.current=c,s(c)},[s]);return X(()=>{(()=>g(void 0,null,function*(){e.current&&o&&(i?o.enabled?yield t.attachVideo(o.id,e.current):yield t.detachVideo(o.id,e.current):yield t.detachVideo(o.id,e.current))}))()},[i,e,o==null?void 0:o.id,o==null?void 0:o.enabled,o==null?void 0:o.deviceID,o==null?void 0:o.plugins]),X(()=>()=>{(()=>g(void 0,null,function*(){if(e.current&&o)try{yield t.detachVideo(o.id,e.current)}catch(c){w.w("detach video error for track",o.id,c)}}))()},[]),n};import{selectIsLocalScreenShared as Ce,selectPeerScreenSharing as Oe,selectScreenSharesByPeerId as Ne}from"@100mslive/hms-video-store";import{useCallback as We}from"react";var Fe=r=>console.log("Error: ",r),ze=(r=Fe)=>{var n,c;let t=M(),e=f(Ce),o=f(Oe),s=f(Ne(o==null?void 0:o.id)),i=We(()=>g(void 0,null,function*(){try{yield t.setScreenShareEnabled(!e)}catch(a){r(a)}}),[t]);return{amIScreenSharing:e,screenSharingPeerId:o==null?void 0:o.id,screenShareVideoTrackId:(n=s==null?void 0:s.video)==null?void 0:n.id,screenShareAudioTrackId:(c=s==null?void 0:s.audio)==null?void 0:c.id,toggleScreenShare:i}};import{selectAudioTrackVolume as Le}from"@100mslive/hms-video-store";import{useCallback as Be}from"react";var qe=r=>{let t=M(),e=f(Le(r)),o=Be(s=>{t.setVolume(s,r)},[t]);return{volume:e,setVolume:o}};import{selectTracksMap as Qe}from"@100mslive/hms-video-store";import{useMemo as O}from"react";var Ge=(r,t,e)=>r.reduce((o,s,i)=>{let n=Math.floor(i/t);return n>0&&e||(o[n]||(o[n]=[]),o[n].push(s)),o},[]),Y=({elements:r,tilesInFirstPage:t,onlyOnePage:e,isLastPageDifferentFromFirstPage:o,defaultWidth:s,defaultHeight:i,lastPageWidth:n,lastPageHeight:c})=>{let a=Ge(r,t,e);return a.map((l,u)=>l.map(h=>{let d=u===a.length-1,m=o&&d?n:s,S=o&&d?c:i;return R(y({},h),{height:S,width:m})}))};function Ue(r){if(r.length===0)return null;let t={},e=r[0],o=1;for(let s=0;s<r.length;s++){let i=r[s];t[i]===null?t[i]=1:t[i]++,t[i]>o&&(e=i,o=t[i])}return e}var Z=r=>Ue(r.filter(t=>{var e,o;return((e=t.track)==null?void 0:e.width)&&((o=t.track)==null?void 0:o.height)}).map(t=>{var s,i;let e=(s=t.track)==null?void 0:s.width,o=(i=t.track)==null?void 0:i.height;return(e||1)/(o||1)})),C=(r,t,e,o,s)=>{if(r<0||t<0)throw new Error("Container must have a non-negative area");if(e<1||!Number.isInteger(e))throw new Error("Number of shapes to place must be a positive integer");let i=o&&s&&o/s;if(i!==void 0&&isNaN(i))throw new Error("Aspect ratio must be a number");let n={area:0,cols:0,rows:0,width:0,height:0},c=e,a=-1;if(i!==void 0)for(let l=c;l>0;l+=a){let u=Math.ceil(e/l),h=r/(l*i),d=t/u,m,S;h<=d?(m=r/l,S=m/i):(S=t/u,m=S*i);let p=m*S;p>n.area&&(n={area:p,width:m,height:S,rows:u,cols:l})}return n},je=({parentWidth:r,parentHeight:t,count:e,maxCount:o,aspectRatio:s})=>{let i=0,n=0,c=0,a=0,l=!1,u=0,h=0,d=Math.min(Math.ceil(Math.sqrt(e*(r/t)/(s.width/s.height))),o),m=r/d,S=m/(s.width/s.height),p=Math.floor(t/S);if(n=S,i=m,u=Math.min(e,p*d),h=e%(p*d),l=h>0&&e>p*d,l){let P=Math.min(Math.ceil(Math.sqrt(h*(r/t)/(s.width/s.height))),o),k=r/P;a=k/(s.width/s.height),c=k}return{tilesInFirstPage:u,defaultWidth:i,defaultHeight:n,lastPageWidth:c,lastPageHeight:a,isLastPageDifferentFromFirstPage:l}},Je=({parentWidth:r,parentHeight:t,count:e,maxCount:o,aspectRatio:s})=>{let i=0,n=0,c=0,a=0,l=!1,u=0,h=0,{width:d,height:m}=C(r,t,Math.min(e,o),s.width,s.height);if(i=d,n=m,u=Math.min(e,o),h=e%o,l=h>0&&e>o,l){let{width:S,height:p}=C(r,t,h,s.width,s.height);c=S,a=p}return{tilesInFirstPage:u,defaultWidth:i,defaultHeight:n,lastPageWidth:c,lastPageHeight:a,isLastPageDifferentFromFirstPage:l}},Ke=({parentWidth:r,parentHeight:t,count:e,maxCount:o,aspectRatio:s})=>{let i=0,n=0,c=0,a=0,l=!1,u=0,h=0,d=Math.min(Math.ceil(Math.sqrt(e*(s.width/s.height)/(r/t))),o),m=t/d,S=m*(s.width/s.height),p=Math.floor(r/S);if(i=S,n=m,u=Math.min(e,d*p),h=e%(d*p),l=h>0&&e>d*p,l){let P=Math.min(Math.ceil(Math.sqrt(h*(s.width/s.height)/(r/t))),o),k=t/P,I=k*(s.width/s.height);a=k,c=I}return{tilesInFirstPage:u,defaultWidth:i,defaultHeight:n,lastPageWidth:c,lastPageHeight:a,isLastPageDifferentFromFirstPage:l}};function _({count:r,parentWidth:t,parentHeight:e,maxTileCount:o,maxRowCount:s,maxColCount:i,aspectRatio:n}){let c=0,a=0,l=0,u=0,h=!1,d=0;if(r===0)return{tilesInFirstPage:d,defaultWidth:c,defaultHeight:a,lastPageWidth:l,lastPageHeight:u,isLastPageDifferentFromFirstPage:h};if(o)({tilesInFirstPage:d,defaultWidth:c,defaultHeight:a,lastPageWidth:l,lastPageHeight:u,isLastPageDifferentFromFirstPage:h}=Je({parentWidth:t,parentHeight:e,count:r,maxCount:o,aspectRatio:n}));else if(s)({tilesInFirstPage:d,defaultWidth:c,defaultHeight:a,lastPageWidth:l,lastPageHeight:u,isLastPageDifferentFromFirstPage:h}=Ke({parentWidth:t,parentHeight:e,count:r,maxCount:s,aspectRatio:n}));else if(i)({tilesInFirstPage:d,defaultWidth:c,defaultHeight:a,lastPageWidth:l,lastPageHeight:u,isLastPageDifferentFromFirstPage:h}=je({parentWidth:t,parentHeight:e,count:r,maxCount:i,aspectRatio:n}));else{let{width:m,height:S}=C(t,e,r,n.width,n.height);c=m,a=S,d=r}return{tilesInFirstPage:d,defaultWidth:c,defaultHeight:a,lastPageWidth:l,lastPageHeight:u,isLastPageDifferentFromFirstPage:h}}var $=(r,t,e,o=!0)=>{if(!r||!t||!e)return[];let s=[];for(let i of r)if(i.videoTrack===void 0&&i.audioTrack&&t[i.audioTrack])s.push({peer:i});else if(i.videoTrack&&t[i.videoTrack])s.push({track:t[i.videoTrack],peer:i});else if(e(i)&&i.auxiliaryTracks.length>0){let n=i.auxiliaryTracks.find(c=>{let a=t[c];return(a==null?void 0:a.type)==="video"&&(a==null?void 0:a.source)==="screen"});n&&s.push({track:t[n],peer:i})}else o||s.push({peer:i});return s};import{useResizeDetector as Xe}from"react-resize-detector";var Ye={aspectRatio:{width:1,height:1}},Ze=({maxTileCount:r,maxColCount:t,maxRowCount:e,showScreenFn:o=()=>!1,peers:s,overflow:i="scroll-x",aspectRatio:n=Ye.aspectRatio,filterNonPublishingPeers:c=!0})=>{let{width:a=0,height:l=0,ref:u}=Xe(),d=D().getState(Qe),m=$(s,d,o,c),S=O(()=>n||{width:Z(m)||1,height:1},[n,m]),p=m.length,{tilesInFirstPage:P,defaultWidth:k,defaultHeight:I,lastPageWidth:N,lastPageHeight:W,isLastPageDifferentFromFirstPage:F}=O(()=>_({count:p,parentWidth:Math.floor(a),parentHeight:Math.floor(l),maxTileCount:r,maxRowCount:e,maxColCount:t,aspectRatio:S}),[p,a,l,r,e,t,S]);return{pagesWithTiles:O(()=>Y({elements:m,tilesInFirstPage:P,onlyOnePage:i==="hidden",isLastPageDifferentFromFirstPage:F,defaultWidth:k,defaultHeight:I,lastPageWidth:N,lastPageHeight:W}),[m,P,i,F,k,I,N,W]),ref:u}};import{useEffect as _e}from"react";import{selectTrackAudioByID as $e}from"@100mslive/hms-video-store";function et({trackId:r,getStyle:t,ref:e}){let o=D();_e(()=>o.subscribe(s=>{if(!e.current)return;let i=t(s);for(let n in i)e.current.style[n]=i[n]},$e(r)),[r])}export*from"@100mslive/hms-video-store";export{le as HMSRoomProvider,he as throwErrorHandler,ke as useAVToggle,qe as useAudio,et as useAudioLevelStyles,Ie as useDevices,M as useHMSActions,de as useHMSNotifications,ue as useHMSStatsStore,f as useHMSStore,D as useHMSVanillaStore,Me as usePreview,ze as useScreenShare,Ve as useVideo,Ze as useVideoList};
@@ -9,8 +9,17 @@ export interface HMSRoomProviderProps {
9
9
  store?: HMSStoreWrapper;
10
10
  notifications?: HMSNotifications;
11
11
  stats?: HMSStats;
12
+ /**
13
+ * if true this will enable webrtc stats collection
14
+ */
12
15
  isHMSStatsOn?: boolean;
13
16
  }
17
+ /**
18
+ * top level wrapper for using react sdk hooks. This doesn't have any mandatory arguments, if you are already
19
+ * initialising the sdk on your side, you can pass in the primitives from there as well to use hooks for
20
+ * react part of your code.
21
+ * @constructor
22
+ */
14
23
  export declare const HMSRoomProvider: React.FC<HMSRoomProviderProps>;
15
24
  /**
16
25
  * `useHMSStore` is a read only hook which can be passed a selector to read data.
File without changes
@@ -0,0 +1,5 @@
1
+ import { EqualityChecker, StateSelector } from 'zustand';
2
+ import { HMSStore, IStoreReadOnly, HMSStatsStore } from '@100mslive/hms-video-store';
3
+ export interface IHMSReactStore<S extends HMSStore | HMSStatsStore> extends IStoreReadOnly<S> {
4
+ <U>(selector: StateSelector<S, U>, equalityFn?: EqualityChecker<U>): U;
5
+ }
@@ -0,0 +1,7 @@
1
+ import { hooksErrHandler } from '../hooks/types';
2
+ export declare const logErrorHandler: hooksErrHandler;
3
+ /**
4
+ * pass in this error handler to get the error thrown back to the UI for further handling, showing toast etc.
5
+ * @param err
6
+ */
7
+ export declare const throwErrorHandler: hooksErrHandler;
package/package.json CHANGED
@@ -4,7 +4,7 @@
4
4
  "main": "dist/index.cjs.js",
5
5
  "module": "dist/index.js",
6
6
  "typings": "dist/index.d.ts",
7
- "version": "0.0.5-alpha.6",
7
+ "version": "0.0.5",
8
8
  "author": "100ms",
9
9
  "license": "MIT",
10
10
  "files": [
@@ -21,7 +21,8 @@
21
21
  "types:build": "tsc -p tsconfig.build.json",
22
22
  "lint": "eslint src/**",
23
23
  "lint:fix": "eslint src/** --fix",
24
- "format": "prettier -w src/**"
24
+ "format": "prettier -w src/**",
25
+ "docs": "typedoc src/index.ts --plugin none"
25
26
  },
26
27
  "devDependencies": {
27
28
  "@types/react": "^17.0.38",
@@ -31,10 +32,10 @@
31
32
  "react": "^17.0.1"
32
33
  },
33
34
  "dependencies": {
34
- "@100mslive/hms-video-store": "0.2.88-alpha.4",
35
+ "@100mslive/hms-video-store": "0.2.88",
35
36
  "react-intersection-observer": "^8.33.1",
36
37
  "react-resize-detector": "^7.0.0",
37
38
  "zustand": "^3.6.2"
38
39
  },
39
- "gitHead": "2fe0150f3eb2a3d7eb0047bb32001c912106e059"
40
+ "gitHead": "886bb0d20bcc003b92297b489f3954fadc3b5539"
40
41
  }
@@ -1,6 +0,0 @@
1
- /// <reference types="react" />
2
- export declare function useAudioLevel({ trackId, getStyle, ref, }: {
3
- trackId?: string;
4
- getStyle: (level: number) => Record<string, string>;
5
- ref: React.RefObject<any>;
6
- }): void;
@@ -1,13 +0,0 @@
1
- /// <reference types="react" />
2
- import { HMSPeer, HMSActions } from '@100mslive/hms-video-store';
3
- interface UseVideoTileType {
4
- videoRef: React.RefObject<HTMLVideoElement>;
5
- isAudioOn: boolean;
6
- isVideoOn: boolean;
7
- actions: HMSActions;
8
- isLocal: boolean;
9
- name: string;
10
- audioLevel: boolean;
11
- }
12
- export declare const useVideoTile: (peer: HMSPeer) => UseVideoTileType;
13
- export {};