@100mslive/react-sdk 0.4.1-alpha.0 → 0.4.1-alpha.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/hooks/useCustomEvent.d.ts +13 -1
- package/dist/hooks/useCustomEvent.js +1 -1
- package/dist/hooks/useCustomEvent.js.map +1 -1
- package/dist/hooks/useRemoteAVToggle.js +1 -1
- package/dist/hooks/useRemoteAVToggle.js.map +1 -1
- package/dist/hooks/useVideo.js +1 -1
- package/dist/hooks/useVideo.js.map +1 -1
- package/dist/index.cjs.js +1 -1
- package/dist/index.cjs.js.map +1 -1
- package/dist/utils/layout.d.ts +2 -2
- package/dist/utils/layout.js.map +1 -1
- package/package.json +3 -3
- package/src/hooks/useCustomEvent.ts +19 -4
- package/src/hooks/useRemoteAVToggle.ts +4 -3
- package/src/hooks/useVideo.ts +2 -2
- package/src/utils/layout.ts +5 -5
|
@@ -13,6 +13,18 @@ export interface useCustomEventInput<T> {
|
|
|
13
13
|
* handling event in the UI.
|
|
14
14
|
*/
|
|
15
15
|
onEvent?: (data: T) => void;
|
|
16
|
+
/**
|
|
17
|
+
* flag to treat event payload as json.
|
|
18
|
+
* If true, the payload will be stringified before sending and
|
|
19
|
+
* parsed before calling the onEvent handler function.
|
|
20
|
+
*
|
|
21
|
+
* Set it to `false` if you want to send/receive only string messages
|
|
22
|
+
*
|
|
23
|
+
* Set it to `true` if you want to send/receive objects
|
|
24
|
+
*
|
|
25
|
+
* default value is true
|
|
26
|
+
*/
|
|
27
|
+
json?: boolean;
|
|
16
28
|
/**
|
|
17
29
|
* function to handle errors happening during sending the event
|
|
18
30
|
*/
|
|
@@ -43,4 +55,4 @@ export interface useCustomEventResult<T> {
|
|
|
43
55
|
* The data to be sent to remote is expected to be a serializable JSON. The serialization
|
|
44
56
|
* and deserialization is taken care of by the hook.
|
|
45
57
|
*/
|
|
46
|
-
export declare const useCustomEvent: <T>({ type, onEvent, handleError, }: useCustomEventInput<T>) => useCustomEventResult<T>;
|
|
58
|
+
export declare const useCustomEvent: <T>({ type, json, onEvent, handleError, }: useCustomEventInput<T>) => useCustomEventResult<T>;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{__awaiter as e}from"../node_modules/tslib/tslib.es6.js";import{useHMSActions as
|
|
1
|
+
import{__awaiter as e}from"../node_modules/tslib/tslib.es6.js";import{useHMSActions as s,useHMSVanillaNotifications as o}from"../primitives/HmsRoomProvider.js";import{useEffect as r,useCallback as t}from"react";import{HMSNotificationTypes as i}from"@100mslive/hms-video-store";import{logErrorHandler as n}from"../utils/commons.js";const m=({type:m,json:d=!0,onEvent:a,handleError:l=n})=>{const c=s(),p=o();r((()=>{c.ignoreMessageTypes([m])}),[c,m]),r((()=>{if(!p)return;return p.onNotification((e=>{const s=e.data;if(s&&s.type===m)try{const e=d?JSON.parse(s.message):s.message;null==a||a(e)}catch(e){l(e,"handleCustomEvent")}}),i.NEW_MESSAGE)}),[p,m,d,a,l]);return{sendEvent:t(((s,o)=>e(void 0,void 0,void 0,(function*(){try{const e=((e,s)=>s?JSON.stringify(e||""):e)(s,d);o&&Array.isArray(null==o?void 0:o.roleNames)?yield c.sendGroupMessage(e,o.roleNames,m):"string"==typeof(null==o?void 0:o.peerId)?yield c.sendDirectMessage(e,o.peerId,m):yield c.sendBroadcastMessage(e,m),null==a||a(s)}catch(e){l(e,"sendCustomEvent")}}))),[c,l,a,m,d])}};export{m as useCustomEvent};
|
|
2
2
|
//# sourceMappingURL=useCustomEvent.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useCustomEvent.js","sources":["../../src/hooks/useCustomEvent.ts"],"sourcesContent":[null],"names":["useCustomEvent","type","onEvent","handleError","logErrorHandler","actions","useHMSActions","notifications","useHMSVanillaNotifications","useEffect","ignoreMessageTypes","onNotification","notification","msg","data","JSON","parse","message","err","HMSNotificationTypes","NEW_MESSAGE","sendEvent","useCallback","receiver","__awaiter","dataStr","stringify","Array","isArray","roleNames","sendGroupMessage","peerId","sendDirectMessage","sendBroadcastMessage"],"mappings":"
|
|
1
|
+
{"version":3,"file":"useCustomEvent.js","sources":["../../src/hooks/useCustomEvent.ts"],"sourcesContent":[null],"names":["useCustomEvent","type","json","onEvent","handleError","logErrorHandler","actions","useHMSActions","notifications","useHMSVanillaNotifications","useEffect","ignoreMessageTypes","onNotification","notification","msg","data","JSON","parse","message","err","HMSNotificationTypes","NEW_MESSAGE","sendEvent","useCallback","receiver","__awaiter","dataStr","stringify","stringifyData","Array","isArray","roleNames","sendGroupMessage","peerId","sendDirectMessage","sendBroadcastMessage"],"mappings":"2UA2DA,MAOaA,EAAiB,EAC5BC,OACAC,QAAO,EACPC,UACAC,cAAcC,MAEd,MAAMC,EAAUC,IACVC,EAAgBC,IAEtBC,GAAU,KAERJ,EAAQK,mBAAmB,CAACV,GAAA,GAC3B,CAACK,EAASL,IAGbS,GAAU,KACR,IAAKF,EACH,OAaK,OAXaA,EAAcI,gBAA8BC,IAC9D,MAAMC,EAAMD,EAAaE,KACrB,GAAAD,GAAOA,EAAIb,OAASA,EAClB,IACF,MAAMc,EAAOb,EAAOc,KAAKC,MAAMH,EAAII,SAAWJ,EAAII,QAClDf,SAAAA,EAAUY,EAEgB,CAFhB,MACHI,GACPf,EAAYe,EAAc,oBAAA,CAAA,GAG7BC,EAAqBC,YACjB,GACN,CAACb,EAAeP,EAAMC,EAAMC,EAASC,IAsBxC,MAAO,CAAEkB,UAnBSC,GAChB,CAAOR,EAASS,IAA4BC,OAAA,OAAA,OAAA,GAAA,YACtC,IACI,MAAAC,EA5CQ,EAAIX,EAASb,IAAmBA,EAAOc,KAAKW,UAAUZ,GAAQ,IAAOA,EA4CnEa,CAAiBb,EAAMb,GACnCsB,GAAYK,MAAMC,QAAQN,aAAA,EAAAA,EAAUO,iBAChCzB,EAAQ0B,iBAAiBN,EAASF,EAASO,UAAW9B,GACvB,8BAAb,EAARuB,EAAUS,cACpB3B,EAAQ4B,kBAAkBR,EAASF,EAASS,OAAQhC,SAEpDK,EAAQ6B,qBAAqBT,EAASzB,GAE9CE,SAAAA,EAAUY,EAEgB,CAFhB,MACHI,GACPf,EAAYe,EAAc,kBAAA,CAAA,KAG9B,CAACb,EAASF,EAAaD,EAASF,EAAMC,IAG/B"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{__awaiter as o}from"../node_modules/tslib/tslib.es6.js";import{
|
|
1
|
+
import{__awaiter as o}from"../node_modules/tslib/tslib.es6.js";import{selectAudioTrackByID as i,selectVideoTrackByID as e,selectAudioTrackVolume as d,selectPermissions as l}from"@100mslive/hms-video-store";import{useHMSActions as n,useHMSStore as t}from"../primitives/HmsRoomProvider.js";import{useCallback as u}from"react";import{logErrorHandler as m}from"../utils/commons.js";const v=(i,e,d)=>o(void 0,void 0,void 0,(function*(){if(e)try{yield i.setRemoteTrackEnabled(e.id,!e.enabled)}catch(o){d(o,"remoteToggle")}})),r=(r,s,a=m)=>{const c=n(),b=t(i(r)),f=t(e(s)),g=t(d(null==b?void 0:b.id)),p=t(l),y=(null==f?void 0:f.enabled)?null==p?void 0:p.mute:null==p?void 0:p.unmute,V=(null==b?void 0:b.enabled)?null==p?void 0:p.mute:null==p?void 0:p.unmute,j=u((()=>o(void 0,void 0,void 0,(function*(){yield v(c,b,a)}))),[c,b,a]),E=u((()=>o(void 0,void 0,void 0,(function*(){yield v(c,f,a)}))),[c,a,f]),h=u((o=>{b&&c.setVolume(o,b.id)}),[c,b]);return{isAudioEnabled:!!(null==b?void 0:b.enabled),isVideoEnabled:!!(null==f?void 0:f.enabled),volume:g,toggleAudio:b&&V?j:void 0,toggleVideo:"regular"===(null==f?void 0:f.source)&&y?E:void 0,setVolume:b?h:void 0}};export{r as useRemoteAVToggle};
|
|
2
2
|
//# sourceMappingURL=useRemoteAVToggle.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useRemoteAVToggle.js","sources":["../../src/hooks/useRemoteAVToggle.ts"],"sourcesContent":[null],"names":["toggleTrackEnabled","actions","track","handleError","__awaiter","setRemoteTrackEnabled","id","enabled","err","useRemoteAVToggle","audioTrackId","videoTrackId","logErrorHandler","useHMSActions","audioTrack","useHMSStore","
|
|
1
|
+
{"version":3,"file":"useRemoteAVToggle.js","sources":["../../src/hooks/useRemoteAVToggle.ts"],"sourcesContent":[null],"names":["toggleTrackEnabled","actions","track","handleError","__awaiter","setRemoteTrackEnabled","id","enabled","err","useRemoteAVToggle","audioTrackId","videoTrackId","logErrorHandler","useHMSActions","audioTrack","useHMSStore","selectAudioTrackByID","videoTrack","selectVideoTrackByID","volume","selectAudioTrackVolume","permissions","selectPermissions","canToggleVideo","mute","unmute","canToggleAudio","toggleAudio","useCallback","toggleVideo","setVolume","volume2","isAudioEnabled","isVideoEnabled","source"],"mappings":"0XA0CA,MAAMA,EAAqB,CACzBC,EACAC,EACAC,IACEC,OAAA,OAAA,OAAA,GAAA,YACF,GAAIF,EACE,UACID,EAAQI,sBAAsBH,EAAMI,IAAKJ,EAAMK,QAE3B,CAF2B,MAC9CC,GACPL,EAAYK,EAAc,eAAA,CAAA,IAYnBC,EAAoB,CAC/BC,EACAC,EACAR,EAA+BS,KAE/B,MAAMX,EAAUY,IACVC,EAAaC,EAAYC,EAAqBN,IAC9CO,EAAaF,EAAYG,EAAqBP,IAC9CQ,EAASJ,EAAYK,EAAuBN,eAAAA,EAAYR,KACxDe,EAAcN,EAAYO,GAC1BC,gBAAiB,EAAAN,EAAYV,SAAUc,aAAW,EAAXA,EAAaG,KAAOH,aAAW,EAAXA,EAAaI,OACxEC,gBAAiB,EAAAZ,EAAYP,SAAUc,aAAW,EAAXA,EAAaG,KAAOH,aAAW,EAAXA,EAAaI,OAExEE,EAAcC,GAAY,IAAWxB,OAAA,OAAA,OAAA,GAAA,kBACnCJ,EAAmBC,EAASa,EAAYX,EAC7C,KAAA,CAACF,EAASa,EAAYX,IAEnB0B,EAAcD,GAAY,IAAWxB,OAAA,OAAA,OAAA,GAAA,kBACnCJ,EAAmBC,EAASgB,EAAYd,EAC7C,KAAA,CAACF,EAASE,EAAac,IAEpBa,EAAYF,GACfG,IACKjB,GACMb,EAAA6B,UAAUC,EAAQjB,EAAWR,GAAA,GAGzC,CAACL,EAASa,IAGL,MAAA,CACLkB,kBAAkBlB,aAAA,EAAAA,EAAYP,SAC9B0B,kBAAkBhB,aAAA,EAAAA,EAAYV,SAC9BY,SACAQ,YAAab,GAAcY,EAAiBC,OAAc,EAC1DE,YAAoC,aAAbZ,aAAV,EAAAA,EAAYiB,SAAwBX,EAAiBM,OAAc,EAChFC,UAAWhB,EAAagB,OAAY,EAAA"}
|
package/dist/hooks/useVideo.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{__awaiter as i}from"../node_modules/tslib/tslib.es6.js";import{
|
|
1
|
+
import{__awaiter as i}from"../node_modules/tslib/tslib.es6.js";import{selectVideoTrackByID as o}from"@100mslive/hms-video-store";import{useRef as r,useCallback as e,useEffect as t}from"react";import{useInView as d}from"react-intersection-observer";import{useHMSActions as l,useHMSStore as n}from"../primitives/HmsRoomProvider.js";import c from"../utils/logger.js";const s=({trackId:s,attach:v,threshold:m=.5})=>{const u=l(),a=r(null),f=n(o(s)),{ref:h,inView:p}=d({threshold:m}),b=e((i=>{i&&(a.current=i,h(i))}),[h]);return t((()=>{i(void 0,void 0,void 0,(function*(){a.current&&(null==f?void 0:f.id)&&(p&&f.enabled&&!1!==v?yield u.attachVideo(f.id,a.current):yield u.detachVideo(f.id,a.current))}))}),[u,p,a,null==f?void 0:f.id,null==f?void 0:f.enabled,null==f?void 0:f.deviceID,null==f?void 0:f.plugins,v]),t((()=>()=>{i(void 0,void 0,void 0,(function*(){if(a.current&&f)try{yield u.detachVideo(f.id,a.current)}catch(i){c.w("detach video error for track",f.id,i)}}))}),[]),{videoRef:b}};export{s as useVideo};
|
|
2
2
|
//# sourceMappingURL=useVideo.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useVideo.js","sources":["../../src/hooks/useVideo.ts"],"sourcesContent":[null],"names":["useVideo","trackId","attach","threshold","actions","useHMSActions","videoRef","useRef","track","useHMSStore","
|
|
1
|
+
{"version":3,"file":"useVideo.js","sources":["../../src/hooks/useVideo.ts"],"sourcesContent":[null],"names":["useVideo","trackId","attach","threshold","actions","useHMSActions","videoRef","useRef","track","useHMSStore","selectVideoTrackByID","ref","inViewRef","inView","useInView","setRefs","useCallback","node","current","useEffect","__awaiter","id","enabled","attachVideo","detachVideo","deviceID","plugins","err","HMSLogger","w"],"mappings":"4WA+BO,MAAMA,EAAW,EAAGC,UAASC,SAAQC,YAAY,OACtD,MAAMC,EAAUC,IACVC,EAAWC,EAAgC,MAC3CC,EAAQC,EAAYC,EAAqBT,KAEvCU,IAAKC,EAAWC,OAAAA,GAAWC,EAAU,CAAEX,cAEzCY,EAAUC,GACbC,IACKA,IACFX,EAASY,QAAUD,EACTL,EAAAK,GAAA,GAGd,CAACL,IAkCH,OA/BAO,GAAU,KACIC,OAAA,OAAA,OAAA,GAAA,YACNd,EAASY,UAAgBV,aAAA,EAALA,EAAOa,MACzBR,GAAUL,EAAMc,UAAsB,IAAXpB,QAEvBE,EAAQmB,YAAYf,EAAMa,GAAIf,EAASY,eAGvCd,EAAQoB,YAAYhB,EAAMa,GAAIf,EAASY,SAAA,GAAA,GAIlD,CAACd,EAASS,EAAQP,EAAUE,aAAK,EAALA,EAAOa,GAAIb,aAAA,EAAAA,EAAOc,QAASd,eAAAA,EAAOiB,SAAUjB,aAAK,EAALA,EAAOkB,QAASxB,IAG3FiB,GAAU,IACD,KACOC,OAAA,OAAA,OAAA,GAAA,YACN,GAAAd,EAASY,SAAWV,EAClB,UAEIJ,EAAQoB,YAAYhB,EAAMa,GAAIf,EAASY,QAES,CAFT,MACtCS,GACGC,EAAAC,EAAE,+BAAgCrB,EAAMa,GAAIM,EAAA,CAAA,GAAA,GAM7D,IAEI,CAAErB,SAAUS,EAAA"}
|
package/dist/index.cjs.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("@100mslive/hms-video-store"),i=require("zustand"),o=require("react-intersection-observer"),r=require("react-resize-detector");function n(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var a,s,l=n(e),c=n(i);function u(e,t){if(Object.is(e,t))return!0;if("object"!=typeof e||null===e||"object"!=typeof t||null===t)return!1;const i=Object.keys(e);if(i.length!==Object.keys(t).length)return!1;for(let o=0;o<i.length;o++)if(!Object.prototype.hasOwnProperty.call(t,i[o])||!Object.is(e[i[o]],t[i[o]]))return!1;return!0}(s=a||(a={}))[s.VERBOSE=0]="VERBOSE",s[s.DEBUG=1]="DEBUG",s[s.INFO=2]="INFO",s[s.WARN=3]="WARN",s[s.ERROR=4]="ERROR",s[s.NONE=5]="NONE";class d{static v(e,...t){this.log(a.VERBOSE,e,...t)}static d(e,...t){this.log(a.DEBUG,e,...t)}static i(e,...t){this.log(a.INFO,e,...t)}static w(e,...t){this.log(a.WARN,e,...t)}static e(e,...t){this.log(a.ERROR,e,...t)}static log(e,t,...i){if(!(this.level.valueOf()>e.valueOf()))switch(e){case a.VERBOSE:console.log("HMSui-components: ",t,...i);break;case a.DEBUG:console.debug("HMSui-components: ",t,...i);break;case a.INFO:console.info("HMSui-components: ",t,...i);break;case a.WARN:console.warn("HMSui-components: ",t,...i);break;case a.ERROR:console.error("HMSui-components: ",t,...i)}}}d.level=a.VERBOSE;const h="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.";const g="undefined"!=typeof window,v=e.createContext(null);let f;const p=(m=v,(t,i=u)=>{t||d.w("fetching full store without passing any selector may have a heavy performance impact on your website.");const o=e.useContext(m);if(!o)throw new Error(h);return(0,o.store)(t,i)});var m;const y=function(t){return(i,o=u)=>{i||d.w("fetching full store without passing any selector may have a heavy performance impact on your website.");const r=e.useContext(t);if(!r)throw new Error(h);const n=r.statsStore;return null==n?void 0:n(i,o)}}(v),w=()=>{const t=e.useContext(v);if(!t)throw new Error(h);return t.store},S=()=>{const t=e.useContext(v);if(!t)throw new Error(h);return t.notifications},P=()=>{const t=e.useContext(v);if(!t)throw new Error(h);return t.actions},b=t=>{const i=e.useContext(v),[o,r]=e.useState(null);if(!i)throw new Error(h);return e.useEffect((()=>{if(!i.notifications)return;return i.notifications.onNotification((e=>{r(e)}),t)}),[i.notifications,t]),o};function E(e,t,i,o){return new(i||(i=Promise))((function(r,n){function a(e){try{l(o.next(e))}catch(e){n(e)}}function s(e){try{l(o.throw(e))}catch(e){n(e)}}function l(e){var t;e.done?r(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(a,s)}l((o=o.apply(e,t||[])).next())}))}const R=(e,t)=>d.e("react-sdk",t,e),x=(e,t,i)=>E(void 0,void 0,void 0,(function*(){if(t)try{yield e.setRemoteTrackEnabled(t.id,!t.enabled)}catch(e){i(e,"remoteToggle")}})),I=({elements:e,tilesInFirstPage:t,onlyOnePage:i,isLastPageDifferentFromFirstPage:o,defaultWidth:r,defaultHeight:n,lastPageWidth:a,lastPageHeight:s})=>{const l=((e,t,i)=>e.reduce(((e,o,r)=>{const n=Math.floor(r/t);return n>0&&i||(e[n]||(e[n]=[]),e[n].push(o)),e}),[]))(e,t,i);return l.map(((e,t)=>e.map((e=>{const i=t===l.length-1,c=o&&i?a:r,u=o&&i?s:n;return Object.assign(Object.assign({},e),{height:u,width:c})}))))};const k=(e,t,i,o,r)=>{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");const n=o&&r&&o/r;if(void 0!==n&&isNaN(n))throw new Error("Aspect ratio must be a number");let a={area:0,cols:0,rows:0,width:0,height:0};if(void 0!==n)for(let o=i;o>0;o+=-1){const r=Math.ceil(i/o);let s,l;e/(o*n)<=t/r?(s=e/o,l=s/n):(l=t/r,s=l*n);const c=s*l;c>a.area&&(a={area:c,width:s,height:l,rows:r,cols:o})}return a};function M({count:e,parentWidth:t,parentHeight:i,maxTileCount:o,maxRowCount:r,maxColCount:n,aspectRatio:a}){let s=0,l=0,c=0,u=0,d=!1,h=0;if(0===e)return{tilesInFirstPage:h,defaultWidth:s,defaultHeight:l,lastPageWidth:c,lastPageHeight:u,isLastPageDifferentFromFirstPage:d};if(o)({tilesInFirstPage:h,defaultWidth:s,defaultHeight:l,lastPageWidth:c,lastPageHeight:u,isLastPageDifferentFromFirstPage:d}=(({parentWidth:e,parentHeight:t,count:i,maxCount:o,aspectRatio:r})=>{let n=0,a=0,s=0,l=0,c=!1,u=0,d=0;const{width:h,height:g}=k(e,t,Math.min(i,o),r.width,r.height);if(n=h,a=g,u=Math.min(i,o),d=i%o,c=d>0&&i>o,c){const{width:i,height:o}=k(e,t,d,r.width,r.height);s=i,l=o}return{tilesInFirstPage:u,defaultWidth:n,defaultHeight:a,lastPageWidth:s,lastPageHeight:l,isLastPageDifferentFromFirstPage:c}})({parentWidth:t,parentHeight:i,count:e,maxCount:o,aspectRatio:a}));else if(r)({tilesInFirstPage:h,defaultWidth:s,defaultHeight:l,lastPageWidth:c,lastPageHeight:u,isLastPageDifferentFromFirstPage:d}=(({parentWidth:e,parentHeight:t,count:i,maxCount:o,aspectRatio:r})=>{let n=0,a=0,s=0,l=0,c=!1,u=0,d=0;const h=Math.min(Math.ceil(Math.sqrt(i*(r.width/r.height)/(e/t))),o),g=t/h,v=g*(r.width/r.height),f=Math.floor(e/v);if(n=v,a=g,u=Math.min(i,h*f),d=i%(h*f),c=d>0&&i>h*f,c){const i=t/Math.min(Math.ceil(Math.sqrt(d*(r.width/r.height)/(e/t))),o);l=i,s=i*(r.width/r.height)}return{tilesInFirstPage:u,defaultWidth:n,defaultHeight:a,lastPageWidth:s,lastPageHeight:l,isLastPageDifferentFromFirstPage:c}})({parentWidth:t,parentHeight:i,count:e,maxCount:r,aspectRatio:a}));else if(n)({tilesInFirstPage:h,defaultWidth:s,defaultHeight:l,lastPageWidth:c,lastPageHeight:u,isLastPageDifferentFromFirstPage:d}=(({parentWidth:e,parentHeight:t,count:i,maxCount:o,aspectRatio:r})=>{let n=0,a=0,s=0,l=0,c=!1,u=0,d=0;const h=Math.min(Math.ceil(Math.sqrt(i*(e/t)/(r.width/r.height))),o);let g=e/h,v=g/(r.width/r.height);v>t&&(v=t,g=v/(r.height/r.width));const f=Math.floor(t/v);if(a=v,n=g,u=Math.min(i,f*h),d=i%(f*h),c=d>0&&i>f*h,c){let i=e/Math.min(Math.ceil(Math.sqrt(d*(e/t)/(r.width/r.height))),o),n=i/(r.width/r.height);n>t&&(n=t,i=n/(r.height/r.width)),l=n,s=i}return{tilesInFirstPage:u,defaultWidth:n,defaultHeight:a,lastPageWidth:s,lastPageHeight:l,isLastPageDifferentFromFirstPage:c}})({parentWidth:t,parentHeight:i,count:e,maxCount:n,aspectRatio:a}));else{const{width:o,height:r}=k(t,i,e,a.width,a.height);s=o,l=r,h=e}return{tilesInFirstPage:h,defaultWidth:s,defaultHeight:l,lastPageWidth:c,lastPageHeight:u,isLastPageDifferentFromFirstPage:d}}const H={width:1,height:1};var C;exports.DeviceType=void 0,(C=exports.DeviceType||(exports.DeviceType={})).videoInput="videoInput",C.audioInput="audioInput",C.audioOutput="audioOutput";exports.HMSRoomProvider=({children:i,actions:o,store:r,notifications:n,stats:a,isHMSStatsOn:s=!1,leaveOnUnload:u=!0})=>{if(!f){const e=()=>{throw new Error("modifying store is not allowed")};if(o&&r)f={actions:o,store:c.default(Object.assign(Object.assign({},r),{setState:e,destroy:e}))},n&&(f.notifications=n),a&&(f.statsStore=c.default({getState:a.getState,subscribe:a.subscribe,setState:e,destroy:e}));else{const i=new t.HMSReactiveStore;if(f={actions:i.getActions(),store:c.default(Object.assign(Object.assign({},i.getStore()),{setState:e,destroy:e})),notifications:i.getNotifications()},s){const t=i.getStats();f.statsStore=c.default({getState:t.getState,subscribe:t.subscribe,setState:e,destroy:e})}}}return e.useEffect((()=>{g&&u&&(window.addEventListener("beforeunload",(()=>f.actions.leave())),window.addEventListener("onunload",(()=>f.actions.leave())))}),[u]),l.default.createElement(v.Provider,{value:f},i)},exports.throwErrorHandler=e=>{throw e},exports.useAVToggle=(i=R)=>{const o=p(t.selectIsLocalAudioEnabled),r=p(t.selectIsLocalVideoEnabled),n=p(t.selectIsAllowedToPublish),a=P(),s=e.useCallback((()=>E(void 0,void 0,void 0,(function*(){try{yield a.setLocalAudioEnabled(!o)}catch(e){i(e,"toggleAudio")}}))),[a,o,i]),l=e.useCallback((()=>E(void 0,void 0,void 0,(function*(){try{yield a.setLocalVideoEnabled(!r)}catch(e){i(e,"toggleVideo")}}))),[a,r,i]);return{isLocalAudioEnabled:o,isLocalVideoEnabled:r,toggleAudio:(null==n?void 0:n.audio)?s:void 0,toggleVideo:(null==n?void 0:n.video)?l:void 0}},exports.useAudioLevelStyles=function({trackId:i,getStyle:o,ref:r}){const n=w();e.useEffect((()=>n.subscribe((e=>{if(!r.current)return;const t=o(e);for(const e in t)r.current.style[e]=t[e]}),t.selectTrackAudioByID(i))),[o,r,n,i])},exports.useAutoplayError=()=>{const i=b(t.HMSNotificationTypes.ERROR),[o,r]=e.useState(""),n=P(),a=e.useCallback((()=>E(void 0,void 0,void 0,(function*(){yield n.unblockAudio()}))),[n]);return e.useEffect((()=>{3008===(null==i?void 0:i.data.code)&&r(null==i?void 0:i.data.message)}),[i]),{error:o,unblockAudio:a,resetError:()=>r("")}},exports.useCustomEvent=({type:i,onEvent:o,handleError:r=R})=>{const n=P(),a=S();e.useEffect((()=>{n.ignoreMessageTypes([i])}),[n,i]),e.useEffect((()=>{if(!a)return;return a.onNotification((e=>{const t=e.data;if(t&&t.type===i)try{const e=JSON.parse(t.message);null==o||o(e)}catch(e){r(e,"handleCustomEvent")}}),t.HMSNotificationTypes.NEW_MESSAGE)}),[a,i,o,r]);return{sendEvent:e.useCallback(((e,t)=>E(void 0,void 0,void 0,(function*(){try{const r=JSON.stringify(e||"");t&&Array.isArray(null==t?void 0:t.roleNames)?yield n.sendGroupMessage(r,t.roleNames,i):"string"==typeof(null==t?void 0:t.peerId)?yield n.sendDirectMessage(r,t.peerId,i):yield n.sendBroadcastMessage(r,i),null==o||o(e)}catch(e){r(e,"sendCustomEvent")}}))),[n,r,o,i])}},exports.useDevices=(i=R)=>{const o=P(),r=p(t.selectDevices),n=p(t.selectLocalMediaSettings),a=p(t.selectIsAllowedToPublish),s={[exports.DeviceType.audioOutput]:n.audioOutputDeviceId},l={[exports.DeviceType.audioOutput]:r.audioOutput};a.video&&(l[exports.DeviceType.videoInput]=r.videoInput,s[exports.DeviceType.videoInput]=n.videoInputDeviceId),a.audio&&(l[exports.DeviceType.audioInput]=r.audioInput,s[exports.DeviceType.audioInput]=n.audioInputDeviceId);return{allDevices:l,selectedDeviceIDs:s,updateDevice:e.useCallback((({deviceType:e,deviceId:t})=>E(void 0,void 0,void 0,(function*(){try{switch(e){case exports.DeviceType.audioInput:yield o.setAudioSettings({deviceId:t});break;case exports.DeviceType.videoInput:yield o.setVideoSettings({deviceId:t});break;case exports.DeviceType.audioOutput:o.setAudioOutputDevice(t)}}catch(e){i(e,"updateDevices")}}))),[i,o])}},exports.useHMSActions=P,exports.useHMSNotifications=b,exports.useHMSStatsStore=y,exports.useHMSStore=p,exports.useHMSVanillaNotifications=S,exports.useHMSVanillaStore=w,exports.useParticipantList=()=>{const i=p(t.selectIsConnectedToRoom),o=p(i?t.selectPeers:t.selectRemotePeers),r=p(t.selectPeerCount),n=e.useMemo((()=>{return(e=o)&&Array.isArray(e)&&0!==e.length?e.reduce(((e,t)=>t.roleName?(e[t.roleName]||(e[t.roleName]=[]),e[t.roleName].push(t),e):e),{}):{};var e}),[o]);return{roles:Object.keys(n),participantsByRoles:n,peerCount:r,isConnected:i}},exports.useParticipants=e=>{var i;const o=p(t.selectIsConnectedToRoom),r=p(t.selectPeerCount),n=p(t.selectAvailableRoleNames);let a=p(o?t.selectPeers:t.selectRemotePeers);const s=Array.from(new Set(a.map((e=>e.roleName)))),l=w();if((null===(i=null==e?void 0:e.metadata)||void 0===i?void 0:i.isHandRaised)&&(a=a.filter((e=>l.getState(t.selectPeerMetadata(e.id)).isHandRaised))),(null==e?void 0:e.role)&&n.includes(e.role)&&(a=a.filter((t=>t.roleName===e.role))),null==e?void 0:e.search){const t=e.search.toLowerCase();a=a.filter((e=>{var i;return(null===(i=e.roleName)||void 0===i?void 0:i.toLowerCase().includes(t))||e.name.toLowerCase().includes(t)}))}return{participants:a,isConnected:o,peerCount:r,rolesWithParticipants:s}},exports.usePreviewJoin=({name:i="",token:o,metadata:r,handleError:n=R,initEndpoint:a,initialSettings:s,captureNetworkQualityInPreview:l})=>{const c=P(),u=p(t.selectRoomState),d=p(t.selectIsConnectedToRoom)||!1,h=u===t.HMSRoomState.Preview,g=e.useMemo((()=>({userName:i,authToken:o,metaData:r,rememberDeviceSelection:!0,settings:s,initEndpoint:a,captureNetworkQualityInPreview:l})),[i,o,r,a,s,l]),v=e.useCallback((()=>E(void 0,void 0,void 0,(function*(){if(o&&u===t.HMSRoomState.Disconnected){d&&(yield c.leave());try{yield c.preview(g)}catch(e){n(e,"preview")}}}))),[c,n,o,u,g,d]);return{enableJoin:h,join:e.useCallback((()=>E(void 0,void 0,void 0,(function*(){if(o)try{yield c.join(g)}catch(e){n(e,"join")}}))),[c,g,n,o]),isConnected:d,preview:v}},exports.useRecordingStreaming=()=>{const e=p(t.selectRecordingState),i=p(t.selectRTMPState),o=p(t.selectHLSState),r=e.server.running,n=e.browser.running,a=e.hls.running,s=r||n||a;return{isServerRecordingOn:r,isBrowserRecordingOn:n,isHLSRecordingOn:a,isStreamingOn:o.running||i.running,isHLSRunning:o.running,isRTMPRunning:i.running,isRecordingOn:s}},exports.useRemoteAVToggle=(i,o,r=R)=>{const n=P(),a=p(t.selectTrackByID(i)),s=p(t.selectTrackByID(o)),l=p(t.selectAudioTrackVolume(null==a?void 0:a.id)),c=p(t.selectPermissions),u=(null==s?void 0:s.enabled)?null==c?void 0:c.mute:null==c?void 0:c.unmute,d=(null==a?void 0:a.enabled)?null==c?void 0:c.mute:null==c?void 0:c.unmute,h=e.useCallback((()=>E(void 0,void 0,void 0,(function*(){yield x(n,a,r)}))),[n,a,r]),g=e.useCallback((()=>E(void 0,void 0,void 0,(function*(){yield x(n,s,r)}))),[n,r,s]),v=e.useCallback((e=>{a&&n.setVolume(e,a.id)}),[n,a]);return{isAudioEnabled:!!(null==a?void 0:a.enabled),isVideoEnabled:!!(null==s?void 0:s.enabled),volume:l,toggleAudio:a&&d?h:void 0,toggleVideo:"regular"===(null==s?void 0:s.source)&&u?g:void 0,setVolume:a?v:void 0}},exports.useScreenShare=(i=R)=>{var o,r;const n=P(),a=p(t.selectIsLocalScreenShared),s=p(t.selectPeerScreenSharing),l=p(t.selectScreenSharesByPeerId(null==s?void 0:s.id)),c=e.useCallback(((e=!1)=>E(void 0,void 0,void 0,(function*(){try{yield n.setScreenShareEnabled(!a,e)}catch(e){i(e,"toggleScreenShare")}}))),[n,a,i]);return{amIScreenSharing:a,screenSharingPeerId:null==s?void 0:s.id,screenSharingPeerName:null==s?void 0:s.name,screenShareVideoTrackId:null===(o=null==l?void 0:l.video)||void 0===o?void 0:o.id,screenShareAudioTrackId:null===(r=null==l?void 0:l.audio)||void 0===r?void 0:r.id,toggleScreenShare:c}},exports.useVideo=({trackId:i,attach:r,threshold:n=.5})=>{const a=P(),s=e.useRef(null),l=p(t.selectTrackByID(i)),{ref:c,inView:u}=o.useInView({threshold:n}),h=e.useCallback((e=>{e&&(s.current=e,c(e))}),[c]);return e.useEffect((()=>{E(void 0,void 0,void 0,(function*(){s.current&&(null==l?void 0:l.id)&&(u&&l.enabled&&!1!==r?yield a.attachVideo(l.id,s.current):yield a.detachVideo(l.id,s.current))}))}),[a,u,s,null==l?void 0:l.id,null==l?void 0:l.enabled,null==l?void 0:l.deviceID,null==l?void 0:l.plugins,r]),e.useEffect((()=>()=>{E(void 0,void 0,void 0,(function*(){if(s.current&&l)try{yield a.detachVideo(l.id,s.current)}catch(e){d.w("detach video error for track",l.id,e)}}))}),[]),{videoRef:h}},exports.useVideoList=({peers:i,maxTileCount:o,maxColCount:n,maxRowCount:a,includeScreenShareForPeer:s=(()=>!1),aspectRatio:l=H,filterNonPublishingPeers:c=!0,offsetY:u=0})=>{const{width:d=0,height:h=0,ref:g}=r.useResizeDetector(),v=((e,t,i,o=!0)=>{if(!e||!t||!i)return[];const r=[];for(const n of e)if(void 0===n.videoTrack&&n.audioTrack&&t[n.audioTrack]?r.push({peer:n}):n.videoTrack&&t[n.videoTrack]?r.push({track:t[n.videoTrack],peer:n}):o||r.push({peer:n}),n.auxiliaryTracks.length>0&&n.auxiliaryTracks.forEach((e=>{const i=t[e];"video"===(null==i?void 0:i.type)&&"regular"===(null==i?void 0:i.source)&&r.push({track:i,peer:n})})),i(n)&&n.auxiliaryTracks.length>0){const e=n.auxiliaryTracks.find((e=>{const i=t[e];return"video"===(null==i?void 0:i.type)&&"screen"===(null==i?void 0:i.source)}));e&&r.push({track:t[e],peer:n})}return r})(i,w().getState(t.selectTracksMap),s,c),f=e.useMemo((()=>{if(l)return l;return{width:function(e){if(0===e.length)return null;const t={};let i=e[0],o=1;for(let r=0;r<e.length;r++){const n=e[r];null===t[n]?t[n]=1:t[n]++,t[n]>o&&(i=n,o=t[n])}return i}(v.filter((e=>{var t,i;return(null===(t=e.track)||void 0===t?void 0:t.width)&&(null===(i=e.track)||void 0===i?void 0:i.height)})).map((e=>{var t,i;return((null===(t=e.track)||void 0===t?void 0:t.width)||1)/((null===(i=e.track)||void 0===i?void 0:i.height)||1)})))||1,height:1}}),[l,v]),p=v.length,{tilesInFirstPage:m,defaultWidth:y,defaultHeight:S,lastPageWidth:P,lastPageHeight:b,isLastPageDifferentFromFirstPage:E}=e.useMemo((()=>M({count:p,parentWidth:Math.floor(d),parentHeight:Math.floor(h)-Math.min(h,u),maxTileCount:o,maxRowCount:a,maxColCount:n,aspectRatio:f})),[p,d,h,o,a,n,f,u]);return{pagesWithTiles:e.useMemo((()=>I({elements:v,tilesInFirstPage:m,onlyOnePage:!1,isLastPageDifferentFromFirstPage:E,defaultWidth:y,defaultHeight:S,lastPageWidth:P,lastPageHeight:b})),[v,m,E,y,S,P,b]),ref:g}},Object.keys(t).forEach((function(e){"default"===e||exports.hasOwnProperty(e)||Object.defineProperty(exports,e,{enumerable:!0,get:function(){return t[e]}})}));
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("@100mslive/hms-video-store"),i=require("zustand"),o=require("react-intersection-observer"),r=require("react-resize-detector");function n(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var a,s,l=n(e),u=n(i);function c(e,t){if(Object.is(e,t))return!0;if("object"!=typeof e||null===e||"object"!=typeof t||null===t)return!1;const i=Object.keys(e);if(i.length!==Object.keys(t).length)return!1;for(let o=0;o<i.length;o++)if(!Object.prototype.hasOwnProperty.call(t,i[o])||!Object.is(e[i[o]],t[i[o]]))return!1;return!0}(s=a||(a={}))[s.VERBOSE=0]="VERBOSE",s[s.DEBUG=1]="DEBUG",s[s.INFO=2]="INFO",s[s.WARN=3]="WARN",s[s.ERROR=4]="ERROR",s[s.NONE=5]="NONE";class d{static v(e,...t){this.log(a.VERBOSE,e,...t)}static d(e,...t){this.log(a.DEBUG,e,...t)}static i(e,...t){this.log(a.INFO,e,...t)}static w(e,...t){this.log(a.WARN,e,...t)}static e(e,...t){this.log(a.ERROR,e,...t)}static log(e,t,...i){if(!(this.level.valueOf()>e.valueOf()))switch(e){case a.VERBOSE:console.log("HMSui-components: ",t,...i);break;case a.DEBUG:console.debug("HMSui-components: ",t,...i);break;case a.INFO:console.info("HMSui-components: ",t,...i);break;case a.WARN:console.warn("HMSui-components: ",t,...i);break;case a.ERROR:console.error("HMSui-components: ",t,...i)}}}d.level=a.VERBOSE;const h="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.";const g="undefined"!=typeof window,v=e.createContext(null);let f;const p=(m=v,(t,i=c)=>{t||d.w("fetching full store without passing any selector may have a heavy performance impact on your website.");const o=e.useContext(m);if(!o)throw new Error(h);return(0,o.store)(t,i)});var m;const y=function(t){return(i,o=c)=>{i||d.w("fetching full store without passing any selector may have a heavy performance impact on your website.");const r=e.useContext(t);if(!r)throw new Error(h);const n=r.statsStore;return null==n?void 0:n(i,o)}}(v),w=()=>{const t=e.useContext(v);if(!t)throw new Error(h);return t.store},S=()=>{const t=e.useContext(v);if(!t)throw new Error(h);return t.notifications},P=()=>{const t=e.useContext(v);if(!t)throw new Error(h);return t.actions},b=t=>{const i=e.useContext(v),[o,r]=e.useState(null);if(!i)throw new Error(h);return e.useEffect((()=>{if(!i.notifications)return;return i.notifications.onNotification((e=>{r(e)}),t)}),[i.notifications,t]),o};function E(e,t,i,o){return new(i||(i=Promise))((function(r,n){function a(e){try{l(o.next(e))}catch(e){n(e)}}function s(e){try{l(o.throw(e))}catch(e){n(e)}}function l(e){var t;e.done?r(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(a,s)}l((o=o.apply(e,t||[])).next())}))}const R=(e,t)=>d.e("react-sdk",t,e),x=(e,t,i)=>E(void 0,void 0,void 0,(function*(){if(t)try{yield e.setRemoteTrackEnabled(t.id,!t.enabled)}catch(e){i(e,"remoteToggle")}})),I=({elements:e,tilesInFirstPage:t,onlyOnePage:i,isLastPageDifferentFromFirstPage:o,defaultWidth:r,defaultHeight:n,lastPageWidth:a,lastPageHeight:s})=>{const l=((e,t,i)=>e.reduce(((e,o,r)=>{const n=Math.floor(r/t);return n>0&&i||(e[n]||(e[n]=[]),e[n].push(o)),e}),[]))(e,t,i);return l.map(((e,t)=>e.map((e=>{const i=t===l.length-1,u=o&&i?a:r,c=o&&i?s:n;return Object.assign(Object.assign({},e),{height:c,width:u})}))))};const k=(e,t,i,o,r)=>{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");const n=o&&r&&o/r;if(void 0!==n&&isNaN(n))throw new Error("Aspect ratio must be a number");let a={area:0,cols:0,rows:0,width:0,height:0};if(void 0!==n)for(let o=i;o>0;o+=-1){const r=Math.ceil(i/o);let s,l;e/(o*n)<=t/r?(s=e/o,l=s/n):(l=t/r,s=l*n);const u=s*l;u>a.area&&(a={area:u,width:s,height:l,rows:r,cols:o})}return a};function M({count:e,parentWidth:t,parentHeight:i,maxTileCount:o,maxRowCount:r,maxColCount:n,aspectRatio:a}){let s=0,l=0,u=0,c=0,d=!1,h=0;if(0===e)return{tilesInFirstPage:h,defaultWidth:s,defaultHeight:l,lastPageWidth:u,lastPageHeight:c,isLastPageDifferentFromFirstPage:d};if(o)({tilesInFirstPage:h,defaultWidth:s,defaultHeight:l,lastPageWidth:u,lastPageHeight:c,isLastPageDifferentFromFirstPage:d}=(({parentWidth:e,parentHeight:t,count:i,maxCount:o,aspectRatio:r})=>{let n=0,a=0,s=0,l=0,u=!1,c=0,d=0;const{width:h,height:g}=k(e,t,Math.min(i,o),r.width,r.height);if(n=h,a=g,c=Math.min(i,o),d=i%o,u=d>0&&i>o,u){const{width:i,height:o}=k(e,t,d,r.width,r.height);s=i,l=o}return{tilesInFirstPage:c,defaultWidth:n,defaultHeight:a,lastPageWidth:s,lastPageHeight:l,isLastPageDifferentFromFirstPage:u}})({parentWidth:t,parentHeight:i,count:e,maxCount:o,aspectRatio:a}));else if(r)({tilesInFirstPage:h,defaultWidth:s,defaultHeight:l,lastPageWidth:u,lastPageHeight:c,isLastPageDifferentFromFirstPage:d}=(({parentWidth:e,parentHeight:t,count:i,maxCount:o,aspectRatio:r})=>{let n=0,a=0,s=0,l=0,u=!1,c=0,d=0;const h=Math.min(Math.ceil(Math.sqrt(i*(r.width/r.height)/(e/t))),o),g=t/h,v=g*(r.width/r.height),f=Math.floor(e/v);if(n=v,a=g,c=Math.min(i,h*f),d=i%(h*f),u=d>0&&i>h*f,u){const i=t/Math.min(Math.ceil(Math.sqrt(d*(r.width/r.height)/(e/t))),o);l=i,s=i*(r.width/r.height)}return{tilesInFirstPage:c,defaultWidth:n,defaultHeight:a,lastPageWidth:s,lastPageHeight:l,isLastPageDifferentFromFirstPage:u}})({parentWidth:t,parentHeight:i,count:e,maxCount:r,aspectRatio:a}));else if(n)({tilesInFirstPage:h,defaultWidth:s,defaultHeight:l,lastPageWidth:u,lastPageHeight:c,isLastPageDifferentFromFirstPage:d}=(({parentWidth:e,parentHeight:t,count:i,maxCount:o,aspectRatio:r})=>{let n=0,a=0,s=0,l=0,u=!1,c=0,d=0;const h=Math.min(Math.ceil(Math.sqrt(i*(e/t)/(r.width/r.height))),o);let g=e/h,v=g/(r.width/r.height);v>t&&(v=t,g=v/(r.height/r.width));const f=Math.floor(t/v);if(a=v,n=g,c=Math.min(i,f*h),d=i%(f*h),u=d>0&&i>f*h,u){let i=e/Math.min(Math.ceil(Math.sqrt(d*(e/t)/(r.width/r.height))),o),n=i/(r.width/r.height);n>t&&(n=t,i=n/(r.height/r.width)),l=n,s=i}return{tilesInFirstPage:c,defaultWidth:n,defaultHeight:a,lastPageWidth:s,lastPageHeight:l,isLastPageDifferentFromFirstPage:u}})({parentWidth:t,parentHeight:i,count:e,maxCount:n,aspectRatio:a}));else{const{width:o,height:r}=k(t,i,e,a.width,a.height);s=o,l=r,h=e}return{tilesInFirstPage:h,defaultWidth:s,defaultHeight:l,lastPageWidth:u,lastPageHeight:c,isLastPageDifferentFromFirstPage:d}}const H={width:1,height:1};var C;exports.DeviceType=void 0,(C=exports.DeviceType||(exports.DeviceType={})).videoInput="videoInput",C.audioInput="audioInput",C.audioOutput="audioOutput";exports.HMSRoomProvider=({children:i,actions:o,store:r,notifications:n,stats:a,isHMSStatsOn:s=!1,leaveOnUnload:c=!0})=>{if(!f){const e=()=>{throw new Error("modifying store is not allowed")};if(o&&r)f={actions:o,store:u.default(Object.assign(Object.assign({},r),{setState:e,destroy:e}))},n&&(f.notifications=n),a&&(f.statsStore=u.default({getState:a.getState,subscribe:a.subscribe,setState:e,destroy:e}));else{const i=new t.HMSReactiveStore;if(f={actions:i.getActions(),store:u.default(Object.assign(Object.assign({},i.getStore()),{setState:e,destroy:e})),notifications:i.getNotifications()},s){const t=i.getStats();f.statsStore=u.default({getState:t.getState,subscribe:t.subscribe,setState:e,destroy:e})}}}return e.useEffect((()=>{g&&c&&(window.addEventListener("beforeunload",(()=>f.actions.leave())),window.addEventListener("onunload",(()=>f.actions.leave())))}),[c]),l.default.createElement(v.Provider,{value:f},i)},exports.throwErrorHandler=e=>{throw e},exports.useAVToggle=(i=R)=>{const o=p(t.selectIsLocalAudioEnabled),r=p(t.selectIsLocalVideoEnabled),n=p(t.selectIsAllowedToPublish),a=P(),s=e.useCallback((()=>E(void 0,void 0,void 0,(function*(){try{yield a.setLocalAudioEnabled(!o)}catch(e){i(e,"toggleAudio")}}))),[a,o,i]),l=e.useCallback((()=>E(void 0,void 0,void 0,(function*(){try{yield a.setLocalVideoEnabled(!r)}catch(e){i(e,"toggleVideo")}}))),[a,r,i]);return{isLocalAudioEnabled:o,isLocalVideoEnabled:r,toggleAudio:(null==n?void 0:n.audio)?s:void 0,toggleVideo:(null==n?void 0:n.video)?l:void 0}},exports.useAudioLevelStyles=function({trackId:i,getStyle:o,ref:r}){const n=w();e.useEffect((()=>n.subscribe((e=>{if(!r.current)return;const t=o(e);for(const e in t)r.current.style[e]=t[e]}),t.selectTrackAudioByID(i))),[o,r,n,i])},exports.useAutoplayError=()=>{const i=b(t.HMSNotificationTypes.ERROR),[o,r]=e.useState(""),n=P(),a=e.useCallback((()=>E(void 0,void 0,void 0,(function*(){yield n.unblockAudio()}))),[n]);return e.useEffect((()=>{3008===(null==i?void 0:i.data.code)&&r(null==i?void 0:i.data.message)}),[i]),{error:o,unblockAudio:a,resetError:()=>r("")}},exports.useCustomEvent=({type:i,json:o=!0,onEvent:r,handleError:n=R})=>{const a=P(),s=S();e.useEffect((()=>{a.ignoreMessageTypes([i])}),[a,i]),e.useEffect((()=>{if(!s)return;return s.onNotification((e=>{const t=e.data;if(t&&t.type===i)try{const e=o?JSON.parse(t.message):t.message;null==r||r(e)}catch(e){n(e,"handleCustomEvent")}}),t.HMSNotificationTypes.NEW_MESSAGE)}),[s,i,o,r,n]);return{sendEvent:e.useCallback(((e,t)=>E(void 0,void 0,void 0,(function*(){try{const n=((e,t)=>t?JSON.stringify(e||""):e)(e,o);t&&Array.isArray(null==t?void 0:t.roleNames)?yield a.sendGroupMessage(n,t.roleNames,i):"string"==typeof(null==t?void 0:t.peerId)?yield a.sendDirectMessage(n,t.peerId,i):yield a.sendBroadcastMessage(n,i),null==r||r(e)}catch(e){n(e,"sendCustomEvent")}}))),[a,n,r,i,o])}},exports.useDevices=(i=R)=>{const o=P(),r=p(t.selectDevices),n=p(t.selectLocalMediaSettings),a=p(t.selectIsAllowedToPublish),s={[exports.DeviceType.audioOutput]:n.audioOutputDeviceId},l={[exports.DeviceType.audioOutput]:r.audioOutput};a.video&&(l[exports.DeviceType.videoInput]=r.videoInput,s[exports.DeviceType.videoInput]=n.videoInputDeviceId),a.audio&&(l[exports.DeviceType.audioInput]=r.audioInput,s[exports.DeviceType.audioInput]=n.audioInputDeviceId);return{allDevices:l,selectedDeviceIDs:s,updateDevice:e.useCallback((({deviceType:e,deviceId:t})=>E(void 0,void 0,void 0,(function*(){try{switch(e){case exports.DeviceType.audioInput:yield o.setAudioSettings({deviceId:t});break;case exports.DeviceType.videoInput:yield o.setVideoSettings({deviceId:t});break;case exports.DeviceType.audioOutput:o.setAudioOutputDevice(t)}}catch(e){i(e,"updateDevices")}}))),[i,o])}},exports.useHMSActions=P,exports.useHMSNotifications=b,exports.useHMSStatsStore=y,exports.useHMSStore=p,exports.useHMSVanillaNotifications=S,exports.useHMSVanillaStore=w,exports.useParticipantList=()=>{const i=p(t.selectIsConnectedToRoom),o=p(i?t.selectPeers:t.selectRemotePeers),r=p(t.selectPeerCount),n=e.useMemo((()=>{return(e=o)&&Array.isArray(e)&&0!==e.length?e.reduce(((e,t)=>t.roleName?(e[t.roleName]||(e[t.roleName]=[]),e[t.roleName].push(t),e):e),{}):{};var e}),[o]);return{roles:Object.keys(n),participantsByRoles:n,peerCount:r,isConnected:i}},exports.useParticipants=e=>{var i;const o=p(t.selectIsConnectedToRoom),r=p(t.selectPeerCount),n=p(t.selectAvailableRoleNames);let a=p(o?t.selectPeers:t.selectRemotePeers);const s=Array.from(new Set(a.map((e=>e.roleName)))),l=w();if((null===(i=null==e?void 0:e.metadata)||void 0===i?void 0:i.isHandRaised)&&(a=a.filter((e=>l.getState(t.selectPeerMetadata(e.id)).isHandRaised))),(null==e?void 0:e.role)&&n.includes(e.role)&&(a=a.filter((t=>t.roleName===e.role))),null==e?void 0:e.search){const t=e.search.toLowerCase();a=a.filter((e=>{var i;return(null===(i=e.roleName)||void 0===i?void 0:i.toLowerCase().includes(t))||e.name.toLowerCase().includes(t)}))}return{participants:a,isConnected:o,peerCount:r,rolesWithParticipants:s}},exports.usePreviewJoin=({name:i="",token:o,metadata:r,handleError:n=R,initEndpoint:a,initialSettings:s,captureNetworkQualityInPreview:l})=>{const u=P(),c=p(t.selectRoomState),d=p(t.selectIsConnectedToRoom)||!1,h=c===t.HMSRoomState.Preview,g=e.useMemo((()=>({userName:i,authToken:o,metaData:r,rememberDeviceSelection:!0,settings:s,initEndpoint:a,captureNetworkQualityInPreview:l})),[i,o,r,a,s,l]),v=e.useCallback((()=>E(void 0,void 0,void 0,(function*(){if(o&&c===t.HMSRoomState.Disconnected){d&&(yield u.leave());try{yield u.preview(g)}catch(e){n(e,"preview")}}}))),[u,n,o,c,g,d]);return{enableJoin:h,join:e.useCallback((()=>E(void 0,void 0,void 0,(function*(){if(o)try{yield u.join(g)}catch(e){n(e,"join")}}))),[u,g,n,o]),isConnected:d,preview:v}},exports.useRecordingStreaming=()=>{const e=p(t.selectRecordingState),i=p(t.selectRTMPState),o=p(t.selectHLSState),r=e.server.running,n=e.browser.running,a=e.hls.running,s=r||n||a;return{isServerRecordingOn:r,isBrowserRecordingOn:n,isHLSRecordingOn:a,isStreamingOn:o.running||i.running,isHLSRunning:o.running,isRTMPRunning:i.running,isRecordingOn:s}},exports.useRemoteAVToggle=(i,o,r=R)=>{const n=P(),a=p(t.selectAudioTrackByID(i)),s=p(t.selectVideoTrackByID(o)),l=p(t.selectAudioTrackVolume(null==a?void 0:a.id)),u=p(t.selectPermissions),c=(null==s?void 0:s.enabled)?null==u?void 0:u.mute:null==u?void 0:u.unmute,d=(null==a?void 0:a.enabled)?null==u?void 0:u.mute:null==u?void 0:u.unmute,h=e.useCallback((()=>E(void 0,void 0,void 0,(function*(){yield x(n,a,r)}))),[n,a,r]),g=e.useCallback((()=>E(void 0,void 0,void 0,(function*(){yield x(n,s,r)}))),[n,r,s]),v=e.useCallback((e=>{a&&n.setVolume(e,a.id)}),[n,a]);return{isAudioEnabled:!!(null==a?void 0:a.enabled),isVideoEnabled:!!(null==s?void 0:s.enabled),volume:l,toggleAudio:a&&d?h:void 0,toggleVideo:"regular"===(null==s?void 0:s.source)&&c?g:void 0,setVolume:a?v:void 0}},exports.useScreenShare=(i=R)=>{var o,r;const n=P(),a=p(t.selectIsLocalScreenShared),s=p(t.selectPeerScreenSharing),l=p(t.selectScreenSharesByPeerId(null==s?void 0:s.id)),u=e.useCallback(((e=!1)=>E(void 0,void 0,void 0,(function*(){try{yield n.setScreenShareEnabled(!a,e)}catch(e){i(e,"toggleScreenShare")}}))),[n,a,i]);return{amIScreenSharing:a,screenSharingPeerId:null==s?void 0:s.id,screenSharingPeerName:null==s?void 0:s.name,screenShareVideoTrackId:null===(o=null==l?void 0:l.video)||void 0===o?void 0:o.id,screenShareAudioTrackId:null===(r=null==l?void 0:l.audio)||void 0===r?void 0:r.id,toggleScreenShare:u}},exports.useVideo=({trackId:i,attach:r,threshold:n=.5})=>{const a=P(),s=e.useRef(null),l=p(t.selectVideoTrackByID(i)),{ref:u,inView:c}=o.useInView({threshold:n}),h=e.useCallback((e=>{e&&(s.current=e,u(e))}),[u]);return e.useEffect((()=>{E(void 0,void 0,void 0,(function*(){s.current&&(null==l?void 0:l.id)&&(c&&l.enabled&&!1!==r?yield a.attachVideo(l.id,s.current):yield a.detachVideo(l.id,s.current))}))}),[a,c,s,null==l?void 0:l.id,null==l?void 0:l.enabled,null==l?void 0:l.deviceID,null==l?void 0:l.plugins,r]),e.useEffect((()=>()=>{E(void 0,void 0,void 0,(function*(){if(s.current&&l)try{yield a.detachVideo(l.id,s.current)}catch(e){d.w("detach video error for track",l.id,e)}}))}),[]),{videoRef:h}},exports.useVideoList=({peers:i,maxTileCount:o,maxColCount:n,maxRowCount:a,includeScreenShareForPeer:s=(()=>!1),aspectRatio:l=H,filterNonPublishingPeers:u=!0,offsetY:c=0})=>{const{width:d=0,height:h=0,ref:g}=r.useResizeDetector(),v=((e,t,i,o=!0)=>{if(!e||!t||!i)return[];const r=[];for(const n of e)if(void 0===n.videoTrack&&n.audioTrack&&t[n.audioTrack]?r.push({peer:n}):n.videoTrack&&t[n.videoTrack]?r.push({track:t[n.videoTrack],peer:n}):o||r.push({peer:n}),n.auxiliaryTracks.length>0&&n.auxiliaryTracks.forEach((e=>{const i=t[e];"video"===(null==i?void 0:i.type)&&"regular"===(null==i?void 0:i.source)&&r.push({track:i,peer:n})})),i(n)&&n.auxiliaryTracks.length>0){const e=n.auxiliaryTracks.find((e=>{const i=t[e];return"video"===(null==i?void 0:i.type)&&"screen"===(null==i?void 0:i.source)}));e&&r.push({track:t[e],peer:n})}return r})(i,w().getState(t.selectTracksMap),s,u),f=e.useMemo((()=>{if(l)return l;return{width:function(e){if(0===e.length)return null;const t={};let i=e[0],o=1;for(let r=0;r<e.length;r++){const n=e[r];null===t[n]?t[n]=1:t[n]++,t[n]>o&&(i=n,o=t[n])}return i}(v.filter((e=>{var t,i;return(null===(t=e.track)||void 0===t?void 0:t.width)&&(null===(i=e.track)||void 0===i?void 0:i.height)})).map((e=>{var t,i;return((null===(t=e.track)||void 0===t?void 0:t.width)||1)/((null===(i=e.track)||void 0===i?void 0:i.height)||1)})))||1,height:1}}),[l,v]),p=v.length,{tilesInFirstPage:m,defaultWidth:y,defaultHeight:S,lastPageWidth:P,lastPageHeight:b,isLastPageDifferentFromFirstPage:E}=e.useMemo((()=>M({count:p,parentWidth:Math.floor(d),parentHeight:Math.floor(h)-Math.min(h,c),maxTileCount:o,maxRowCount:a,maxColCount:n,aspectRatio:f})),[p,d,h,o,a,n,f,c]);return{pagesWithTiles:e.useMemo((()=>I({elements:v,tilesInFirstPage:m,onlyOnePage:!1,isLastPageDifferentFromFirstPage:E,defaultWidth:y,defaultHeight:S,lastPageWidth:P,lastPageHeight:b})),[v,m,E,y,S,P,b]),ref:g}},Object.keys(t).forEach((function(e){"default"===e||exports.hasOwnProperty(e)||Object.defineProperty(exports,e,{enumerable:!0,get:function(){return t[e]}})}));
|
|
2
2
|
//# sourceMappingURL=index.cjs.js.map
|
package/dist/index.cjs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs.js","sources":["../src/utils/logger.ts","../../../node_modules/zustand/esm/shallow.js","../src/primitives/store.ts","../src/utils/isBrowser.ts","../src/primitives/HmsRoomProvider.ts","../../../node_modules/tslib/tslib.es6.js","../src/utils/commons.ts","../src/hooks/useRemoteAVToggle.ts","../src/utils/layout.ts","../src/hooks/useVideoList.ts","../src/hooks/useDevices.ts","../src/hooks/useAVToggle.ts","../src/hooks/useAudioLevelStyles.ts","../src/hooks/useAutoplayError.ts","../src/hooks/useCustomEvent.ts","../src/hooks/useParticipantList.ts","../src/utils/groupBy.ts","../src/hooks/useParticipants.ts","../src/hooks/usePreviewJoin.ts","../src/hooks/useRecordingStreaming.ts","../src/hooks/useScreenShare.ts","../src/hooks/useVideo.ts"],"sourcesContent":[null,"function shallow(objA, objB) {\n if (Object.is(objA, objB)) {\n return true;\n }\n if (typeof objA !== \"object\" || objA === null || typeof objB !== \"object\" || objB === null) {\n return false;\n }\n const keysA = Object.keys(objA);\n if (keysA.length !== Object.keys(objB).length) {\n return false;\n }\n for (let i = 0; i < keysA.length; i++) {\n if (!Object.prototype.hasOwnProperty.call(objB, keysA[i]) || !Object.is(objA[keysA[i]], objB[keysA[i]])) {\n return false;\n }\n }\n return true;\n}\n\nexport { shallow as default };\n",null,null,null,"/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["HMSLogLevel","HMSLogLevel2","shallow","objA","objB","Object","is","keysA","keys","length","i","prototype","hasOwnProperty","call","HMSLogger","static","tag","data","this","log","VERBOSE","DEBUG","INFO","WARN","ERROR","level","valueOf","console","debug","info","warn","error","hooksErrorMessage","isBrowser","window","HMSContext","createContext","providerProps","useHMSStore","hmsContext","selector","equalityFn","w","HMSContextConsumer","useContext","Error","useStore","store","useHMSStatsStore","statsStore","makeHMSStatsStoreHook","useHMSVanillaStore","useHMSVanillaNotifications","notifications","useHMSActions","actions","useHMSNotifications","type","notification","setNotification","useState","useEffect","onNotification","notification2","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","value","step","next","e","rejected","result","done","then","apply","logErrorHandler","err","method","toggleTrackEnabled","track","handleError","setRemoteTrackEnabled","id","enabled","chunkElements","elements","tilesInFirstPage","onlyOnePage","isLastPageDifferentFromFirstPage","defaultWidth","defaultHeight","lastPageWidth","lastPageHeight","chunks","chunkSize","reduce","resultArray","tile","index","chunkIndex","Math","floor","push","chunk","map","ch","page","element","isLastPage","width","height","assign","largestRect","containerWidth","containerHeight","numRects","Number","isInteger","aspectRatio","isNaN","best","area","cols","rows","ceil","width2","height2","count","parentWidth","parentHeight","maxTileCount","maxRowCount","maxColCount","maxCount","tilesinLastPage","initialWidth","initialHeight","min","remWidth","remHeight","getTileSizesWithPageConstraint","sqrt","getTileSizesWithRowConstraint","getTileSizesWithColConstraint","DEFAULTS","DeviceType2","DeviceType","children","stats","isHMSStatsOn","leaveOnUnload","errFn","create","setState","destroy","getState","subscribe","hmsReactiveStore","HMSReactiveStore","getActions","getStore","getNotifications","stats2","getStats","addEventListener","leave","React","createElement","Provider","isLocalAudioEnabled","selectIsLocalAudioEnabled","isLocalVideoEnabled","selectIsLocalVideoEnabled","isAllowedToPublish","selectIsAllowedToPublish","toggleAudio","useCallback","setLocalAudioEnabled","toggleVideo","setLocalVideoEnabled","audio","video","trackId","getStyle","ref","current","styles","key","style","selectTrackAudioByID","HMSNotificationTypes","setError","unblockAudio","code","message","resetError","onEvent","ignoreMessageTypes","msg","JSON","parse","NEW_MESSAGE","sendEvent","receiver","dataStr","stringify","Array","isArray","roleNames","sendGroupMessage","peerId","sendDirectMessage","sendBroadcastMessage","sdkAllDevices","selectDevices","sdkSelectedDevices","selectLocalMediaSettings","selectedDeviceIDs","audioOutput","audioOutputDeviceId","allDevices","videoInput","videoInputDeviceId","audioInput","audioInputDeviceId","updateDevice","deviceType","deviceId","setAudioSettings","setVideoSettings","setAudioOutputDevice","isConnected","selectIsConnectedToRoom","participantList","selectPeers","selectRemotePeers","peerCount","selectPeerCount","participantsByRoles","useMemo","groupByRoles","peers","res","peer","roleName","roles","params","availableRoles","selectAvailableRoleNames","rolesWithParticipants","from","Set","vanillaStore","_a","metadata","isHandRaised","filter","selectPeerMetadata","role","includes","search","toLowerCase","_a2","name","participants","token","initEndpoint","initialSettings","captureNetworkQualityInPreview","roomState","selectRoomState","enableJoin","HMSRoomState","Preview","config","userName","authToken","metaData","rememberDeviceSelection","settings","preview","Disconnected","join","recording","selectRecordingState","rtmp","selectRTMPState","hls","selectHLSState","isServerRecordingOn","server","running","isBrowserRecordingOn","browser","isHLSRecordingOn","isRecordingOn","isStreamingOn","isHLSRunning","isRTMPRunning","audioTrackId","videoTrackId","audioTrack","selectTrackByID","videoTrack","volume","selectAudioTrackVolume","permissions","selectPermissions","canToggleVideo","mute","unmute","canToggleAudio","setVolume","volume2","isAudioEnabled","isVideoEnabled","source","amIScreenSharing","selectIsLocalScreenShared","screenSharePeer","selectPeerScreenSharing","screenShare","selectScreenSharesByPeerId","toggleScreenShare","audioOnly","setScreenShareEnabled","screenSharingPeerId","screenSharingPeerName","screenShareVideoTrackId","screenShareAudioTrackId","_b","attach","threshold","videoRef","useRef","inViewRef","inView","useInView","setRefs","node","attachVideo","detachVideo","deviceID","plugins","includeScreenShareForPeer","filterNonPublishingPeers","offsetY","useResizeDetector","tracksWithPeer","tracks","peerTiles","auxiliaryTracks","forEach","screenShareTrackID","find","trackID","getVideoTracksFromPeers","selectTracksMap","finalAspectRatio","array","modeMap","maxEl","el","mode","calculateLayoutSizes","pagesWithTiles"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.cjs.js","sources":["../src/utils/logger.ts","../../../node_modules/zustand/esm/shallow.js","../src/primitives/store.ts","../src/utils/isBrowser.ts","../src/primitives/HmsRoomProvider.ts","../../../node_modules/tslib/tslib.es6.js","../src/utils/commons.ts","../src/hooks/useRemoteAVToggle.ts","../src/utils/layout.ts","../src/hooks/useVideoList.ts","../src/hooks/useDevices.ts","../src/hooks/useAVToggle.ts","../src/hooks/useAudioLevelStyles.ts","../src/hooks/useAutoplayError.ts","../src/hooks/useCustomEvent.ts","../src/hooks/useParticipantList.ts","../src/utils/groupBy.ts","../src/hooks/useParticipants.ts","../src/hooks/usePreviewJoin.ts","../src/hooks/useRecordingStreaming.ts","../src/hooks/useScreenShare.ts","../src/hooks/useVideo.ts"],"sourcesContent":[null,"function shallow(objA, objB) {\n if (Object.is(objA, objB)) {\n return true;\n }\n if (typeof objA !== \"object\" || objA === null || typeof objB !== \"object\" || objB === null) {\n return false;\n }\n const keysA = Object.keys(objA);\n if (keysA.length !== Object.keys(objB).length) {\n return false;\n }\n for (let i = 0; i < keysA.length; i++) {\n if (!Object.prototype.hasOwnProperty.call(objB, keysA[i]) || !Object.is(objA[keysA[i]], objB[keysA[i]])) {\n return false;\n }\n }\n return true;\n}\n\nexport { shallow as default };\n",null,null,null,"/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["HMSLogLevel","HMSLogLevel2","shallow","objA","objB","Object","is","keysA","keys","length","i","prototype","hasOwnProperty","call","HMSLogger","static","tag","data","this","log","VERBOSE","DEBUG","INFO","WARN","ERROR","level","valueOf","console","debug","info","warn","error","hooksErrorMessage","isBrowser","window","HMSContext","createContext","providerProps","useHMSStore","hmsContext","selector","equalityFn","w","HMSContextConsumer","useContext","Error","useStore","store","useHMSStatsStore","statsStore","makeHMSStatsStoreHook","useHMSVanillaStore","useHMSVanillaNotifications","notifications","useHMSActions","actions","useHMSNotifications","type","notification","setNotification","useState","useEffect","onNotification","notification2","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","value","step","next","e","rejected","result","done","then","apply","logErrorHandler","err","method","toggleTrackEnabled","track","handleError","setRemoteTrackEnabled","id","enabled","chunkElements","elements","tilesInFirstPage","onlyOnePage","isLastPageDifferentFromFirstPage","defaultWidth","defaultHeight","lastPageWidth","lastPageHeight","chunks","chunkSize","reduce","resultArray","tile","index","chunkIndex","Math","floor","push","chunk","map","ch","page","element","isLastPage","width","height","assign","largestRect","containerWidth","containerHeight","numRects","Number","isInteger","aspectRatio","isNaN","best","area","cols","rows","ceil","width2","height2","count","parentWidth","parentHeight","maxTileCount","maxRowCount","maxColCount","maxCount","tilesinLastPage","initialWidth","initialHeight","min","remWidth","remHeight","getTileSizesWithPageConstraint","sqrt","getTileSizesWithRowConstraint","getTileSizesWithColConstraint","DEFAULTS","DeviceType2","DeviceType","children","stats","isHMSStatsOn","leaveOnUnload","errFn","create","setState","destroy","getState","subscribe","hmsReactiveStore","HMSReactiveStore","getActions","getStore","getNotifications","stats2","getStats","addEventListener","leave","React","createElement","Provider","isLocalAudioEnabled","selectIsLocalAudioEnabled","isLocalVideoEnabled","selectIsLocalVideoEnabled","isAllowedToPublish","selectIsAllowedToPublish","toggleAudio","useCallback","setLocalAudioEnabled","toggleVideo","setLocalVideoEnabled","audio","video","trackId","getStyle","ref","current","styles","key","style","selectTrackAudioByID","HMSNotificationTypes","setError","unblockAudio","code","message","resetError","json","onEvent","ignoreMessageTypes","msg","JSON","parse","NEW_MESSAGE","sendEvent","receiver","dataStr","stringify","stringifyData","Array","isArray","roleNames","sendGroupMessage","peerId","sendDirectMessage","sendBroadcastMessage","sdkAllDevices","selectDevices","sdkSelectedDevices","selectLocalMediaSettings","selectedDeviceIDs","audioOutput","audioOutputDeviceId","allDevices","videoInput","videoInputDeviceId","audioInput","audioInputDeviceId","updateDevice","deviceType","deviceId","setAudioSettings","setVideoSettings","setAudioOutputDevice","isConnected","selectIsConnectedToRoom","participantList","selectPeers","selectRemotePeers","peerCount","selectPeerCount","participantsByRoles","useMemo","groupByRoles","peers","res","peer","roleName","roles","params","availableRoles","selectAvailableRoleNames","rolesWithParticipants","from","Set","vanillaStore","_a","metadata","isHandRaised","filter","selectPeerMetadata","role","includes","search","toLowerCase","_a2","name","participants","token","initEndpoint","initialSettings","captureNetworkQualityInPreview","roomState","selectRoomState","enableJoin","HMSRoomState","Preview","config","userName","authToken","metaData","rememberDeviceSelection","settings","preview","Disconnected","join","recording","selectRecordingState","rtmp","selectRTMPState","hls","selectHLSState","isServerRecordingOn","server","running","isBrowserRecordingOn","browser","isHLSRecordingOn","isRecordingOn","isStreamingOn","isHLSRunning","isRTMPRunning","audioTrackId","videoTrackId","audioTrack","selectAudioTrackByID","videoTrack","selectVideoTrackByID","volume","selectAudioTrackVolume","permissions","selectPermissions","canToggleVideo","mute","unmute","canToggleAudio","setVolume","volume2","isAudioEnabled","isVideoEnabled","source","amIScreenSharing","selectIsLocalScreenShared","screenSharePeer","selectPeerScreenSharing","screenShare","selectScreenSharesByPeerId","toggleScreenShare","audioOnly","setScreenShareEnabled","screenSharingPeerId","screenSharingPeerName","screenShareVideoTrackId","screenShareAudioTrackId","_b","attach","threshold","videoRef","useRef","inViewRef","inView","useInView","setRefs","node","attachVideo","detachVideo","deviceID","plugins","includeScreenShareForPeer","filterNonPublishingPeers","offsetY","useResizeDetector","tracksWithPeer","tracks","peerTiles","auxiliaryTracks","forEach","screenShareTrackID","find","trackID","getVideoTracksFromPeers","selectTracksMap","finalAspectRatio","array","modeMap","maxEl","el","mode","calculateLayoutSizes","pagesWithTiles"],"mappings":"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"}
|
package/dist/utils/layout.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { HMSPeer, HMSTrack, HMSTrackID } from '@100mslive/hms-video-store';
|
|
1
|
+
import { HMSPeer, HMSTrack, HMSTrackID, HMSVideoTrack, HMSScreenVideoTrack } from '@100mslive/hms-video-store';
|
|
2
2
|
export declare const chunk: <T>(elements: T[], chunkSize: number, onlyOnePage: boolean) => T[][];
|
|
3
3
|
interface ChunkElements<T> {
|
|
4
4
|
elements: T[];
|
|
@@ -25,7 +25,7 @@ export declare const chunkElements: <T>({ elements, tilesInFirstPage, onlyOnePag
|
|
|
25
25
|
*/
|
|
26
26
|
export declare function mode(array: number[]): number | null;
|
|
27
27
|
export declare type TrackWithPeer = {
|
|
28
|
-
track?:
|
|
28
|
+
track?: HMSVideoTrack | HMSScreenVideoTrack;
|
|
29
29
|
peer: HMSPeer;
|
|
30
30
|
};
|
|
31
31
|
/**
|
package/dist/utils/layout.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"layout.js","sources":["../../src/utils/layout.ts"],"sourcesContent":[null],"names":["chunk","elements","chunkSize","onlyOnePage","reduce","resultArray","tile","index","chunkIndex","Math","floor","push","chunkElements","tilesInFirstPage","isLastPageDifferentFromFirstPage","defaultWidth","defaultHeight","lastPageWidth","lastPageHeight","chunks","map","ch","page","element","isLastPage","length","width","height","Object","assign","mode","array","modeMap","maxEl","maxCount","i","el","getModeAspectRatio","tracks","filter","track","_b","_a","largestRect","containerWidth","containerHeight","numRects","Error","Number","isInteger","aspectRatio","isNaN","best","area","cols","rows","ceil","width2","height2","getTileSizesWithColConstraint","parentWidth","parentHeight","count","tilesinLastPage","min","sqrt","getTileSizesWithPageConstraint","initialWidth","initialHeight","remWidth","remHeight","getTileSizesWithRowConstraint","maxTileCount","maxRowCount","maxColCount","getVideoTracksFromPeers","peers","includeScreenShareForPeer","filterNonPublishingPeers","peerTiles","peer","videoTrack","audioTrack","auxiliaryTracks","forEach","trackId","type","source","screenShareTrackID","find","trackID"],"mappings":"AAKa,MAAAA,EAAQ,CAAIC,EAAeC,EAAmBC,IACzDF,EAASG,QAAO,CAACC,EAAoBC,EAASC,KACtC,MAAAC,EAAaC,KAAKC,MAAMH,EAAQL,GAClC,OAAAM,EAAa,GAAKL,IAGjBE,EAAYG,KACfH,EAAYG,GAAc,IAG5BH,EAAYG,GAAYG,KAAKL,IANpBD,CAOF,GACN,IAkBQO,EAAgB,EAC3BX,WACAY,mBACAV,cACAW,mCACAC,eACAC,gBACAC,gBACAC,qBAEM,MAAAC,EAAgBnB,EAASC,EAAUY,EAAkBV,GAC3D,OAAOgB,EAAOC,KAAI,CAACC,EAAIC,IACrBD,EAAGD,KAAcG,IACT,MAAAC,
|
|
1
|
+
{"version":3,"file":"layout.js","sources":["../../src/utils/layout.ts"],"sourcesContent":[null],"names":["chunk","elements","chunkSize","onlyOnePage","reduce","resultArray","tile","index","chunkIndex","Math","floor","push","chunkElements","tilesInFirstPage","isLastPageDifferentFromFirstPage","defaultWidth","defaultHeight","lastPageWidth","lastPageHeight","chunks","map","ch","page","element","isLastPage","length","width","height","Object","assign","mode","array","modeMap","maxEl","maxCount","i","el","getModeAspectRatio","tracks","filter","track","_b","_a","largestRect","containerWidth","containerHeight","numRects","Error","Number","isInteger","aspectRatio","isNaN","best","area","cols","rows","ceil","width2","height2","getTileSizesWithColConstraint","parentWidth","parentHeight","count","tilesinLastPage","min","sqrt","getTileSizesWithPageConstraint","initialWidth","initialHeight","remWidth","remHeight","getTileSizesWithRowConstraint","maxTileCount","maxRowCount","maxColCount","getVideoTracksFromPeers","peers","includeScreenShareForPeer","filterNonPublishingPeers","peerTiles","peer","videoTrack","audioTrack","auxiliaryTracks","forEach","trackId","type","source","screenShareTrackID","find","trackID"],"mappings":"AAKa,MAAAA,EAAQ,CAAIC,EAAeC,EAAmBC,IACzDF,EAASG,QAAO,CAACC,EAAoBC,EAASC,KACtC,MAAAC,EAAaC,KAAKC,MAAMH,EAAQL,GAClC,OAAAM,EAAa,GAAKL,IAGjBE,EAAYG,KACfH,EAAYG,GAAc,IAG5BH,EAAYG,GAAYG,KAAKL,IANpBD,CAOF,GACN,IAkBQO,EAAgB,EAC3BX,WACAY,mBACAV,cACAW,mCACAC,eACAC,gBACAC,gBACAC,qBAEM,MAAAC,EAAgBnB,EAASC,EAAUY,EAAkBV,GAC3D,OAAOgB,EAAOC,KAAI,CAACC,EAAIC,IACrBD,EAAGD,KAAcG,IACT,MAAAC,EAAsBF,IAASH,EAAOM,OAAS,EAC/CC,EAAQZ,GAAoCU,EAAaP,EAAgBF,EACzEY,EAASb,GAAoCU,EAAaN,EAAiBF,EACjF,OAAAY,OAAAC,OAAAD,OAAAC,OAAA,CAAA,EAAYN,GAAO,CAAEI,SAAQD,SAAA,KAAA,EAS7B,SAAAI,EAAeC,GACf,GAAiB,IAAjBA,EAAMN,OACD,OAAA,KAET,MAAMO,EAAkC,CAAA,EACxC,IAAIC,EAAQF,EAAM,GACdG,EAAW,EACf,IAAA,IAASC,EAAI,EAAGA,EAAIJ,EAAMN,OAAQU,IAAK,CACrC,MAAMC,EAAKL,EAAMI,GACG,OAAhBH,EAAQI,GACVJ,EAAQI,GAAM,EAENJ,EAAAI,KAENJ,EAAQI,GAAMF,IACRD,EAAAG,EACRF,EAAWF,EAAQI,GAAA,CAGhB,OAAAH,CAAA,CASF,MAAMI,EAAsBC,GACjCR,EACEQ,EACGC,oBAAgB,iBAAAC,EAAMA,4BAAOd,iBAASe,EAAAD,EAAMA,4BAAOb,OAAA,IACnDP,KAAYoB,YAIH,QAHiB,UAAXA,EAAMA,aAAK,IAAAE,OAAA,EAAAA,EAAEhB,QAGV,KAFS,UAAXc,EAAMA,aAAK,IAAAC,OAAA,EAAAA,EAAEd,SAEK,EAAA,KAoC5BgB,EAAc,CACzBC,EACAC,EACAC,EACApB,EACAC,KAEI,GAAAiB,EAAiB,GAAKC,EAAkB,EAC1C,MAAM,IAAIE,MAAM,2CAElB,GAAID,EAAW,IAAME,OAAOC,UAAUH,GACpC,MAAM,IAAIC,MAAM,wDAEZ,MAAAG,EAAcxB,GAASC,GAAUD,EAAQC,EAC3C,QAAgB,IAAhBuB,GAA6BC,MAAMD,GACrC,MAAM,IAAIH,MAAM,iCAGd,IAAAK,EAAO,CAAEC,KAAM,EAAGC,KAAM,EAAGC,KAAM,EAAG7B,MAAO,EAAGC,OAAQ,GAQ1D,QAAoB,IAAhBuB,EACF,IAAA,IAASI,EANOR,EAMWQ,EAAO,EAAGA,IALtB,EAKwC,CAC/C,MAAAC,EAAO9C,KAAK+C,KAAKV,EAAWQ,GAG9B,IAAAG,EACAC,EAHWd,GAAyBU,EAAAJ,IACzBL,EAAkBU,GAK/BE,EAAQb,EAAiBU,EACzBI,EAASD,EAAQP,IAEjBQ,EAASb,EAAkBU,EAC3BE,EAAQC,EAASR,GAEnB,MAAMG,EAAOI,EAAQC,EACjBL,EAAOD,EAAKC,OACdD,EAAO,CAAEC,OAAM3B,MAAO+B,EAAA9B,OAAA+B,EAAQH,OAAMD,QAAA,CAInC,OAAAF,CAAA,EAGIO,EAAgC,EAC3CC,cACAC,eACAC,QACA5B,WACAgB,kBAEA,IAAInC,EAAe,EACfC,EAAgB,EAChBC,EAAgB,EAChBC,EAAiB,EACjBJ,GAAmC,EACnCD,EAAmB,EACnBkD,EAAkB,EACtB,MAAMT,EAAO7C,KAAKuD,IAChBvD,KAAK+C,KAAK/C,KAAKwD,KAAMH,GAAuBF,EAAAC,IAA8BX,EAAAxB,MAAQwB,EAAYvB,UAC9FO,GAEF,IAAIR,EAAQkC,EAAcN,EACtB3B,EAASD,GAAqBwB,EAAAxB,MAAQwB,EAAYvB,QAClDA,EAASkC,IACFlC,EAAAkC,EACDnC,EAAAC,GAAsBuB,EAAAvB,OAASuB,EAAYxB,QAE/C,MAAA6B,EAAO9C,KAAKC,MAAMmD,EAAelC,GAMvC,GALgBX,EAAAW,EACDZ,EAAAW,EACIb,EAAAJ,KAAKuD,IAAIF,EAAOP,EAAOD,GAC1CS,EAAkBD,GAAgBP,EAAAD,GACCxC,EAAAiD,EAAkB,GAAKD,EAAQP,EAAOD,EACrExC,EAAkC,CAKpC,IAAI2C,EAAQG,EAJCnD,KAAKuD,IAChBvD,KAAK+C,KAAK/C,KAAKwD,KAAMF,GAAiCH,EAAAC,IAA8BX,EAAAxB,MAAQwB,EAAYvB,UACxGO,GAGEwB,EAASD,GAAqBP,EAAAxB,MAAQwB,EAAYvB,QAClD+B,EAASG,IACFH,EAAAG,EACDJ,EAAAC,GAAsBR,EAAAvB,OAASuB,EAAYxB,QAEpCR,EAAAwC,EACDzC,EAAAwC,CAAA,CAEX,MAAA,CACL5C,mBACAE,eACAC,gBACAC,gBACAC,iBACAJ,mCAAA,EAISoD,EAAiC,EAC5CN,cACAC,eACAC,QACA5B,WACAgB,kBAEA,IAAInC,EAAe,EACfC,EAAgB,EAChBC,EAAgB,EAChBC,EAAiB,EACjBJ,GAAmC,EACnCD,EAAmB,EACnBkD,EAAkB,EACtB,MAAQrC,MAAOyC,EAAcxC,OAAQyC,GAAkBzB,EACrDiB,EACAC,EACApD,KAAKuD,IAAIF,EAAO5B,GAChBgB,EAAYxB,MACZwB,EAAYvB,QAOd,GALeZ,EAAAoD,EACCnD,EAAAoD,EACGvD,EAAAJ,KAAKuD,IAAIF,EAAO5B,GACnC6B,EAAkBD,EAAQ5B,EACSpB,EAAAiD,EAAkB,GAAKD,EAAQ5B,EAC9DpB,EAAkC,CAC9B,MAAEY,MAAO2C,EAAU1C,OAAQ2C,GAAc3B,EAC7CiB,EACAC,EACAE,EACAb,EAAYxB,MACZwB,EAAYvB,QAEEV,EAAAoD,EACCnD,EAAAoD,CAAA,CAEZ,MAAA,CACLzD,mBACAE,eACAC,gBACAC,gBACAC,iBACAJ,mCAAA,EAISyD,EAAgC,EAC3CX,cACAC,eACAC,QACA5B,WACAgB,kBAEA,IAAInC,EAAe,EACfC,EAAgB,EAChBC,EAAgB,EAChBC,EAAiB,EACjBJ,GAAmC,EACnCD,EAAmB,EACnBkD,EAAkB,EACtB,MAAMR,EAAO9C,KAAKuD,IAChBvD,KAAK+C,KAAK/C,KAAKwD,KAAMH,GAAqBZ,EAAAxB,MAAQwB,EAAYvB,WAA0BkC,KACxF3B,GAEIP,EAASkC,EAAeN,EACxB7B,EAAQC,GAAsBuB,EAAAxB,MAAQwB,EAAYvB,QAClD2B,EAAO7C,KAAKC,MAAMkD,EAAclC,GAMtC,GALeX,EAAAW,EACCV,EAAAW,EACGd,EAAAJ,KAAKuD,IAAIF,EAAOP,EAAOD,GAC1CS,EAAkBD,GAAgBP,EAAAD,GACCxC,EAAAiD,EAAkB,GAAKD,EAAQP,EAAOD,EACrExC,EAAkC,CACpC,MAIM4C,EAASG,EAJFpD,KAAKuD,IAChBvD,KAAK+C,KAAK/C,KAAKwD,KAAMF,GAA+Bb,EAAAxB,MAAQwB,EAAYvB,WAA0BkC,KAClG3B,GAIehB,EAAAwC,EACDzC,EAFFyC,GAAsBR,EAAAxB,MAAQwB,EAAYvB,OAExC,CAEX,MAAA,CACLd,mBACAE,eACAC,gBACAC,gBACAC,iBACAJ,mCAAA,cAIiCgD,MACnCA,EACAF,YAAAA,EAAAC,aACAA,eACAW,EACAC,YAAAA,EAAAC,YACAA,cACAxB,IAEA,IAAInC,EAAe,EACfC,EAAgB,EAChBC,EAAgB,EAChBC,EAAiB,EACjBJ,GAAmC,EACnCD,EAAmB,EAEvB,GAAc,IAAViD,EAEK,MAAA,CACLjD,mBACAE,eACAC,gBACAC,gBACAC,iBACAJ,oCAIJ,GAAI0D,IAEA3D,mBACAE,eACAC,gBACAC,gBACAC,iBACAJ,oCACEoD,EAA+B,CACjCN,cACAC,eACAC,QACA5B,SAAUsC,EACVtB,sBAAA,GAEOuB,IAEP5D,mBACAE,eACAC,gBACAC,gBACAC,iBACAJ,oCACEyD,EAA8B,CAChCX,cACAC,eACAC,QACA5B,SAAUuC,EACVvB,sBAAA,GAEOwB,IAEP7D,mBACAE,eACAC,gBACAC,gBACAC,iBACAJ,oCACE6C,EAA8B,CAChCC,cACAC,eACAC,QACA5B,SAAUwC,EACVxB,qBAEG,CACC,MAAAxB,MAAEA,SAAOC,GAAWgB,EAAYiB,EAAaC,EAAcC,EAAOZ,EAAYxB,MAAOwB,EAAYvB,QACxFZ,EAAAW,EACCV,EAAAW,EACGd,EAAAiD,CAAA,CAEd,MAAA,CACLjD,mBACAE,eACAC,gBACAC,gBACAC,iBACAJ,mCAAA,CAWG,MAAM6D,EAA0B,CACrCC,EACAtC,EACAuC,EACAC,GAA2B,KAE3B,IAAKF,IAAUtC,IAAWuC,EACjB,MAAA,GAET,MAAME,EAA6B,GACnC,IAAA,MAAWC,KAAQJ,EAAO,CAkBxB,QAjB2C,IAApBI,EAAKC,YAA4BD,EAAKE,YAAc5C,EAAO0C,EAAKE,YAErFH,EAAUpE,KAAK,CAAEqE,SACRA,EAAKC,YAAc3C,EAAO0C,EAAKC,YACxCF,EAAUpE,KAAK,CAAE6B,MAAOF,EAAO0C,EAAKC,YAA8BD,SACxDF,GACVC,EAAUpE,KAAK,CAAEqE,SAGfA,EAAKG,gBAAgB1D,OAAS,GAC3BuD,EAAAG,gBAAgBC,SAAkBC,IACrC,MAAM7C,EAAQF,EAAO+C,GACD,WAAhB7C,eAAAA,EAAO8C,OAAsC,aAAlB9C,aAAK,EAALA,EAAO+C,SAC1BR,EAAApE,KAAK,CAAE6B,QAAOwC,QAAA,IAI1BH,EAA0BG,IAASA,EAAKG,gBAAgB1D,OAAS,EAAG,CACtE,MAAM+D,EAAqBR,EAAKG,gBAAgBM,MAAeC,IAC7D,MAAMlD,EAAQF,EAAOoD,GACrB,MAAuB,WAAhBlD,eAAAA,EAAO8C,OAAsC,YAAlB9C,aAAK,EAALA,EAAO+C,OAAW,IAGlDC,GACFT,EAAUpE,KAAK,CAAE6B,MAAOF,EAAOkD,GAA4CR,QAAA,CAAA,CAI1E,OAAAD,CAAA"}
|
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.4.1-alpha.
|
|
7
|
+
"version": "0.4.1-alpha.2",
|
|
8
8
|
"author": "100ms",
|
|
9
9
|
"license": "MIT",
|
|
10
10
|
"files": [
|
|
@@ -35,10 +35,10 @@
|
|
|
35
35
|
"react": ">=17.0.2 <19.0.0"
|
|
36
36
|
},
|
|
37
37
|
"dependencies": {
|
|
38
|
-
"@100mslive/hms-video-store": "0.6.1-alpha.
|
|
38
|
+
"@100mslive/hms-video-store": "0.6.1-alpha.2",
|
|
39
39
|
"react-intersection-observer": "^8.33.1",
|
|
40
40
|
"react-resize-detector": "^7.0.0",
|
|
41
41
|
"zustand": "^3.6.2"
|
|
42
42
|
},
|
|
43
|
-
"gitHead": "
|
|
43
|
+
"gitHead": "7450dfa08f3ccf63a603a62c70eafbbeea26ab1e"
|
|
44
44
|
}
|
|
@@ -17,6 +17,18 @@ export interface useCustomEventInput<T> {
|
|
|
17
17
|
* handling event in the UI.
|
|
18
18
|
*/
|
|
19
19
|
onEvent?: (data: T) => void;
|
|
20
|
+
/**
|
|
21
|
+
* flag to treat event payload as json.
|
|
22
|
+
* If true, the payload will be stringified before sending and
|
|
23
|
+
* parsed before calling the onEvent handler function.
|
|
24
|
+
*
|
|
25
|
+
* Set it to `false` if you want to send/receive only string messages
|
|
26
|
+
*
|
|
27
|
+
* Set it to `true` if you want to send/receive objects
|
|
28
|
+
*
|
|
29
|
+
* default value is true
|
|
30
|
+
*/
|
|
31
|
+
json?: boolean;
|
|
20
32
|
/**
|
|
21
33
|
* function to handle errors happening during sending the event
|
|
22
34
|
*/
|
|
@@ -45,6 +57,8 @@ export interface useCustomEventResult<T> {
|
|
|
45
57
|
sendEvent: (data: T, receiver?: EventReceiver) => void;
|
|
46
58
|
}
|
|
47
59
|
|
|
60
|
+
const stringifyData = <T>(data: T, json: boolean) => (json ? JSON.stringify(data || '') : (data as unknown as string));
|
|
61
|
+
|
|
48
62
|
/**
|
|
49
63
|
* A generic function to implement [custom events](https://www.100ms.live/docs/javascript/v2/features/chat#custom-events) in your UI.
|
|
50
64
|
* The data to be sent to remote is expected to be a serializable JSON. The serialization
|
|
@@ -52,6 +66,7 @@ export interface useCustomEventResult<T> {
|
|
|
52
66
|
*/
|
|
53
67
|
export const useCustomEvent = <T>({
|
|
54
68
|
type,
|
|
69
|
+
json = true,
|
|
55
70
|
onEvent,
|
|
56
71
|
handleError = logErrorHandler,
|
|
57
72
|
}: useCustomEventInput<T>): useCustomEventResult<T> => {
|
|
@@ -72,7 +87,7 @@ export const useCustomEvent = <T>({
|
|
|
72
87
|
const msg = notification.data;
|
|
73
88
|
if (msg && msg.type === type) {
|
|
74
89
|
try {
|
|
75
|
-
const data = JSON.parse(msg.message);
|
|
90
|
+
const data = json ? JSON.parse(msg.message) : msg.message;
|
|
76
91
|
onEvent?.(data as T);
|
|
77
92
|
} catch (err) {
|
|
78
93
|
handleError(err as Error, 'handleCustomEvent');
|
|
@@ -80,13 +95,13 @@ export const useCustomEvent = <T>({
|
|
|
80
95
|
}
|
|
81
96
|
}, HMSNotificationTypes.NEW_MESSAGE);
|
|
82
97
|
return unsubscribe;
|
|
83
|
-
}, [notifications, type, onEvent, handleError]);
|
|
98
|
+
}, [notifications, type, json, onEvent, handleError]);
|
|
84
99
|
|
|
85
100
|
// this is to send message to remote peers, peers of specific role or single peer, and call onEvent
|
|
86
101
|
const sendEvent = useCallback(
|
|
87
102
|
async (data: T, receiver?: EventReceiver) => {
|
|
88
103
|
try {
|
|
89
|
-
const dataStr =
|
|
104
|
+
const dataStr = stringifyData<T>(data, json);
|
|
90
105
|
if (receiver && Array.isArray(receiver?.roleNames)) {
|
|
91
106
|
await actions.sendGroupMessage(dataStr, receiver.roleNames, type);
|
|
92
107
|
} else if (typeof receiver?.peerId === 'string') {
|
|
@@ -99,7 +114,7 @@ export const useCustomEvent = <T>({
|
|
|
99
114
|
handleError(err as Error, 'sendCustomEvent');
|
|
100
115
|
}
|
|
101
116
|
},
|
|
102
|
-
[actions, handleError, onEvent, type],
|
|
117
|
+
[actions, handleError, onEvent, type, json],
|
|
103
118
|
);
|
|
104
119
|
|
|
105
120
|
return { sendEvent };
|
|
@@ -5,7 +5,8 @@ import {
|
|
|
5
5
|
HMSTrackID,
|
|
6
6
|
selectAudioTrackVolume,
|
|
7
7
|
selectPermissions,
|
|
8
|
-
|
|
8
|
+
selectAudioTrackByID,
|
|
9
|
+
selectVideoTrackByID,
|
|
9
10
|
} from '@100mslive/hms-video-store';
|
|
10
11
|
import { useHMSActions, useHMSStore } from '../primitives/HmsRoomProvider';
|
|
11
12
|
import { useCallback } from 'react';
|
|
@@ -66,8 +67,8 @@ export const useRemoteAVToggle = (
|
|
|
66
67
|
handleError: hooksErrHandler = logErrorHandler,
|
|
67
68
|
): useRemoteAVToggleResult => {
|
|
68
69
|
const actions = useHMSActions();
|
|
69
|
-
const audioTrack = useHMSStore(
|
|
70
|
-
const videoTrack = useHMSStore(
|
|
70
|
+
const audioTrack = useHMSStore(selectAudioTrackByID(audioTrackId));
|
|
71
|
+
const videoTrack = useHMSStore(selectVideoTrackByID(videoTrackId));
|
|
71
72
|
const volume = useHMSStore(selectAudioTrackVolume(audioTrack?.id));
|
|
72
73
|
const permissions = useHMSStore(selectPermissions);
|
|
73
74
|
const canToggleVideo = videoTrack?.enabled ? permissions?.mute : permissions?.unmute;
|
package/src/hooks/useVideo.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { selectVideoTrackByID, HMSTrackID } from '@100mslive/hms-video-store';
|
|
2
2
|
import React, { useCallback, useEffect, useRef } from 'react';
|
|
3
3
|
import { useInView } from 'react-intersection-observer';
|
|
4
4
|
import { useHMSActions, useHMSStore } from '../primitives/HmsRoomProvider';
|
|
@@ -32,7 +32,7 @@ export interface useVideoOutput {
|
|
|
32
32
|
export const useVideo = ({ trackId, attach, threshold = 0.5 }: useVideoInput): useVideoOutput => {
|
|
33
33
|
const actions = useHMSActions();
|
|
34
34
|
const videoRef = useRef<HTMLVideoElement | null>(null);
|
|
35
|
-
const track = useHMSStore(
|
|
35
|
+
const track = useHMSStore(selectVideoTrackByID(trackId));
|
|
36
36
|
|
|
37
37
|
const { ref: inViewRef, inView } = useInView({ threshold });
|
|
38
38
|
|
package/src/utils/layout.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/* eslint-disable complexity */
|
|
2
2
|
/* eslint-disable no-plusplus */
|
|
3
3
|
/* eslint-disable @typescript-eslint/no-shadow */
|
|
4
|
-
import { HMSPeer, HMSTrack, HMSTrackID } from '@100mslive/hms-video-store';
|
|
4
|
+
import { HMSPeer, HMSTrack, HMSTrackID, HMSVideoTrack, HMSScreenVideoTrack } from '@100mslive/hms-video-store';
|
|
5
5
|
|
|
6
6
|
export const chunk = <T>(elements: T[], chunkSize: number, onlyOnePage: boolean) =>
|
|
7
7
|
elements.reduce((resultArray: T[][], tile: T, index: number) => {
|
|
@@ -46,7 +46,7 @@ export const chunkElements = <T>({
|
|
|
46
46
|
const chunks: T[][] = chunk<T>(elements, tilesInFirstPage, onlyOnePage);
|
|
47
47
|
return chunks.map((ch, page) =>
|
|
48
48
|
ch.map(element => {
|
|
49
|
-
const isLastPage = page === chunks.length - 1;
|
|
49
|
+
const isLastPage: boolean = page === chunks.length - 1;
|
|
50
50
|
const width = isLastPageDifferentFromFirstPage && isLastPage ? lastPageWidth : defaultWidth;
|
|
51
51
|
const height = isLastPageDifferentFromFirstPage && isLastPage ? lastPageHeight : defaultHeight;
|
|
52
52
|
return { ...element, height, width };
|
|
@@ -80,7 +80,7 @@ export function mode(array: number[]): number | null {
|
|
|
80
80
|
return maxEl;
|
|
81
81
|
}
|
|
82
82
|
|
|
83
|
-
export type TrackWithPeer = { track?:
|
|
83
|
+
export type TrackWithPeer = { track?: HMSVideoTrack | HMSScreenVideoTrack; peer: HMSPeer };
|
|
84
84
|
|
|
85
85
|
/**
|
|
86
86
|
* get the aspect ration occurring with the highest frequency
|
|
@@ -438,7 +438,7 @@ export const getVideoTracksFromPeers = (
|
|
|
438
438
|
if (onlyAudioTrack) {
|
|
439
439
|
peerTiles.push({ peer: peer });
|
|
440
440
|
} else if (peer.videoTrack && tracks[peer.videoTrack]) {
|
|
441
|
-
peerTiles.push({ track: tracks[peer.videoTrack], peer: peer });
|
|
441
|
+
peerTiles.push({ track: tracks[peer.videoTrack] as HMSVideoTrack, peer: peer });
|
|
442
442
|
} else if (!filterNonPublishingPeers) {
|
|
443
443
|
peerTiles.push({ peer: peer });
|
|
444
444
|
}
|
|
@@ -458,7 +458,7 @@ export const getVideoTracksFromPeers = (
|
|
|
458
458
|
});
|
|
459
459
|
// Don't show tile if screenshare only has audio
|
|
460
460
|
if (screenShareTrackID) {
|
|
461
|
-
peerTiles.push({ track: tracks[screenShareTrackID], peer: peer });
|
|
461
|
+
peerTiles.push({ track: tracks[screenShareTrackID] as HMSScreenVideoTrack, peer: peer });
|
|
462
462
|
}
|
|
463
463
|
}
|
|
464
464
|
}
|