@100mslive/react-sdk 0.6.5-alpha.0 → 0.6.5-alpha.1
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/usePreviewJoin.d.ts +2 -1
- package/dist/hooks/usePreviewJoin.js +1 -1
- package/dist/hooks/usePreviewJoin.js.map +1 -1
- package/dist/hooks/useVideo.d.ts +1 -5
- 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/primitives/HmsRoomProvider.js +1 -1
- package/dist/utils/layout.d.ts +1 -6
- package/dist/utils/layout.js +1 -1
- package/dist/utils/layout.js.map +1 -1
- package/package.json +4 -6
- package/src/hooks/usePreviewJoin.ts +4 -1
- package/src/hooks/useVideo.ts +8 -56
- package/src/utils/layout.ts +1 -30
- package/src/utils/layout.test.ts +0 -46
|
@@ -30,6 +30,7 @@ export interface usePreviewInput {
|
|
|
30
30
|
*/
|
|
31
31
|
captureNetworkQualityInPreview?: boolean;
|
|
32
32
|
asRole?: string;
|
|
33
|
+
autoManageVideo?: boolean;
|
|
33
34
|
}
|
|
34
35
|
export interface usePreviewResult {
|
|
35
36
|
/**
|
|
@@ -56,4 +57,4 @@ export interface usePreviewResult {
|
|
|
56
57
|
* muting/unmuting and useAudioLevelStyles for showing mic audio level to the user.
|
|
57
58
|
* Any device change or mute/unmute will be carried across to join.
|
|
58
59
|
*/
|
|
59
|
-
export declare const usePreviewJoin: ({ name, token, metadata, handleError, initEndpoint, initialSettings, captureNetworkQualityInPreview, asRole, }: usePreviewInput) => usePreviewResult;
|
|
60
|
+
export declare const usePreviewJoin: ({ name, token, metadata, handleError, initEndpoint, initialSettings, captureNetworkQualityInPreview, asRole, autoManageVideo, }: usePreviewInput) => usePreviewResult;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{__awaiter as e}from"../node_modules/tslib/tslib.es6.js";import{useMemo as i,useCallback as o}from"react";import{selectRoomState as t,selectIsConnectedToRoom as
|
|
1
|
+
import{__awaiter as e}from"../node_modules/tslib/tslib.es6.js";import{useMemo as i,useCallback as o}from"react";import{selectRoomState as t,selectIsConnectedToRoom as n,HMSRoomState as r}from"@100mslive/hms-video-store";import{useHMSActions as a,useHMSStore as m}from"../primitives/HmsRoomProvider.js";import{logErrorHandler as s}from"../utils/commons.js";const d=({name:d="",token:v,metadata:c,handleError:l=s,initEndpoint:p,initialSettings:u,captureNetworkQualityInPreview:f,asRole:w,autoManageVideo:y})=>{const j=a(),h=m(t),b=m(n)||!1,g=h===r.Preview,k=i((()=>({userName:d,authToken:v,metaData:c,rememberDeviceSelection:!0,settings:u,initEndpoint:p,asRole:w,captureNetworkQualityInPreview:f,autoManageVideo:y})),[d,v,c,p,u,f,w,y]),P=o((()=>e(void 0,void 0,void 0,(function*(){if(v&&h===r.Disconnected){b&&(yield j.leave());try{yield j.preview(k)}catch(e){l(e,"preview")}}}))),[j,l,v,h,k,b]);return{enableJoin:g,join:o((()=>e(void 0,void 0,void 0,(function*(){if(v)try{yield j.join(k)}catch(e){l(e,"join")}}))),[j,k,l,v]),isConnected:b,preview:P}};export{d as usePreviewJoin};
|
|
2
2
|
//# sourceMappingURL=usePreviewJoin.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usePreviewJoin.js","sources":["../../src/hooks/usePreviewJoin.ts"],"sourcesContent":[null],"names":["usePreviewJoin","name","token","metadata","handleError","logErrorHandler","initEndpoint","initialSettings","captureNetworkQualityInPreview","asRole","actions","useHMSActions","roomState","useHMSStore","selectRoomState","isConnected","selectIsConnectedToRoom","enableJoin","HMSRoomState","Preview","config","useMemo","userName","authToken","metaData","rememberDeviceSelection","settings","preview","useCallback","__awaiter","Disconnected","leave","err","join"],"mappings":"
|
|
1
|
+
{"version":3,"file":"usePreviewJoin.js","sources":["../../src/hooks/usePreviewJoin.ts"],"sourcesContent":[null],"names":["usePreviewJoin","name","token","metadata","handleError","logErrorHandler","initEndpoint","initialSettings","captureNetworkQualityInPreview","asRole","autoManageVideo","actions","useHMSActions","roomState","useHMSStore","selectRoomState","isConnected","selectIsConnectedToRoom","enableJoin","HMSRoomState","Preview","config","useMemo","userName","authToken","metaData","rememberDeviceSelection","settings","preview","useCallback","__awaiter","Disconnected","leave","err","join"],"mappings":"oWAuEO,MAAMA,EAAiB,EAC5BC,OAAO,GACPC,QACAC,WACAC,cAAcC,EACdC,eACAC,kBACAC,iCACAC,SACAC,sBAEA,MAAMC,EAAUC,IACVC,EAAYC,EAAYC,GACxBC,EAAcF,EAAYG,KAA4B,EACtDC,EAAaL,IAAcM,EAAaC,QAExCC,EAA2BC,GAAQ,KAChC,CACLC,SAAUtB,EACVuB,UAAWtB,EACXuB,SAAUtB,EACVuB,yBAAyB,EACzBC,SAAUpB,EACVD,eACAG,SACAD,iCACAE,qBAED,CAACT,EAAMC,EAAOC,EAAUG,EAAcC,EAAiBC,EAAgCC,EAAQC,IAE5FkB,EAAUC,GAAY,IAAWC,OAAA,OAAA,OAAA,GAAA,YACrC,GAAK5B,GAGDW,IAAcM,EAAaY,aAA3B,CAGAf,UACIL,EAAQqB,SAEZ,UACIrB,EAAQiB,QAAQP,EAEI,CAFJ,MACfY,GACP7B,EAAY6B,EAAc,UAAA,CAR1B,CAQ0B,KAE3B,CAACtB,EAASP,EAAaF,EAAOW,EAAWQ,EAAQL,IAa7C,MAAA,CACLE,aACAgB,KAbWL,GAAY,IAAWC,OAAA,OAAA,OAAA,GAAA,YAClC,GAAK5B,EAGD,UACIS,EAAQuB,KAAKb,EAEO,CAFP,MACZY,GACP7B,EAAY6B,EAAc,OAAA,CAAA,KAE3B,CAACtB,EAASU,EAAQjB,EAAaF,IAKhCc,cACAY,UAAA"}
|
package/dist/hooks/useVideo.d.ts
CHANGED
|
@@ -10,10 +10,6 @@ export interface useVideoInput {
|
|
|
10
10
|
* when attach is false, even if tile is inView or enabled, it won't be rendered
|
|
11
11
|
*/
|
|
12
12
|
attach?: boolean;
|
|
13
|
-
/**
|
|
14
|
-
* Number between 0 and 1 indication when the element is considered inView
|
|
15
|
-
*/
|
|
16
|
-
threshold?: number;
|
|
17
13
|
}
|
|
18
14
|
export interface useVideoOutput {
|
|
19
15
|
videoRef: React.RefCallback<HTMLVideoElement>;
|
|
@@ -24,4 +20,4 @@ export interface useVideoOutput {
|
|
|
24
20
|
* The hook will take care of attaching and detaching video, and will automatically detach when the video
|
|
25
21
|
* goes out of view to save on bandwidth.
|
|
26
22
|
*/
|
|
27
|
-
export declare const useVideo: ({ trackId, attach
|
|
23
|
+
export declare const useVideo: ({ trackId, attach }: useVideoInput) => useVideoOutput;
|
package/dist/hooks/useVideo.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{__awaiter as i}from"../node_modules/tslib/tslib.es6.js";import{useRef as
|
|
1
|
+
import{__awaiter as i}from"../node_modules/tslib/tslib.es6.js";import{useRef as o,useCallback as r,useEffect as t}from"react";import{selectVideoTrackByID as e}from"@100mslive/hms-video-store";import{useHMSActions as d,useHMSStore as c}from"../primitives/HmsRoomProvider.js";import n from"../utils/logger.js";const m=({trackId:m,attach:l})=>{const s=d(),u=o(null),v=c(e(m)),a=r((i=>{i&&(u.current=i)}),[]);return t((()=>{i(void 0,void 0,void 0,(function*(){(null==v?void 0:v.id)&&u.current&&(!1!==l?yield s.attachVideo(v.id,u.current):yield s.detachVideo(v.id,u.current))}))}),[null==v?void 0:v.id,l,s]),t((()=>()=>{i(void 0,void 0,void 0,(function*(){if(u.current&&v)try{yield s.detachVideo(v.id,u.current)}catch(i){n.w("detach video error for track",v.id,i)}}))}),[]),{videoRef:a}};export{m 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","
|
|
1
|
+
{"version":3,"file":"useVideo.js","sources":["../../src/hooks/useVideo.ts"],"sourcesContent":[null],"names":["useVideo","trackId","attach","actions","useHMSActions","videoRef","useRef","track","useHMSStore","selectVideoTrackByID","setRefs","useCallback","node","current","useEffect","__awaiter","id","attachVideo","detachVideo","err","HMSLogger","w"],"mappings":"oTAyBO,MAAMA,EAAW,EAAGC,UAASC,aAClC,MAAMC,EAAUC,IACVC,EAAWC,EAAgC,MAC3CC,EAAQC,EAAYC,EAAqBR,IAEzCS,EAAUC,GAAaC,IACvBA,IACFP,EAASQ,QAAUD,EAAA,GAEpB,IA+BH,OA7BAE,GAAU,KACIC,OAAA,OAAA,OAAA,GAAA,aACNR,aAAA,EAAAA,EAAOS,KAAMX,EAASQ,WACT,IAAXX,QACIC,EAAQc,YAAYV,EAAMS,GAAIX,EAASQ,eAEvCV,EAAQe,YAAYX,EAAMS,GAAIX,EAASQ,SAAA,GAAA,GAIlD,CAACN,aAAA,EAAAA,EAAOS,GAAId,EAAQC,IAGvBW,GAAU,IACD,KACOC,OAAA,OAAA,OAAA,GAAA,YACN,GAAAV,EAASQ,SAAWN,EAClB,UAEIJ,EAAQe,YAAYX,EAAMS,GAAIX,EAASQ,QAES,CAFT,MACtCM,GACGC,EAAAC,EAAE,+BAAgCd,EAAMS,GAAIG,EAAA,CAAA,GAAA,GAM7D,IAEI,CAAEd,SAAUK,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("zustand"),i=require("@100mslive/hms-video-store"),o=require("react-intersection-observer"),n=require("react-resize-detector");function r(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var a,s,l=r(e),d=r(t);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 c{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)}}}c.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),f=(p=v,(t,i=u)=>{t||c.w("fetching full store without passing any selector may have a heavy performance impact on your website.");const o=e.useContext(p);if(!o)throw new Error(h);return(0,o.store)(t,i)});var p;const m=function(t){return(i,o=u)=>{i||c.w("fetching full store without passing any selector may have a heavy performance impact on your website.");const n=e.useContext(t);if(!n)throw new Error(h);const r=n.statsStore;return null==r?void 0:r(i,o)}}(v),y=()=>{const t=e.useContext(v);if(!t)throw new Error(h);return t.store},w=()=>{const t=e.useContext(v);if(!t)throw new Error(h);return t.notifications},b=()=>{const t=e.useContext(v);if(!t)throw new Error(h);return t.actions},P=t=>{const i=e.useContext(v),[o,n]=e.useState(null);if(!i)throw new Error(h);return e.useEffect((()=>{if(!i.notifications)return;return i.notifications.onNotification((e=>{n(e)}),t)}),[i.notifications,t]),o};function S(e,t,i,o){return new(i||(i=Promise))((function(n,r){function a(e){try{l(o.next(e))}catch(e){r(e)}}function s(e){try{l(o.throw(e))}catch(e){r(e)}}function l(e){var t;e.done?n(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 E=(e,t)=>c.e("react-sdk",t,e),R=({elements:e,tilesInFirstPage:t,onlyOnePage:i,isLastPageDifferentFromFirstPage:o,defaultWidth:n,defaultHeight:r,lastPageWidth:a,lastPageHeight:s})=>{const l=((e,t,i)=>e.reduce(((e,o,n)=>{const r=Math.floor(n/t);return r>0&&i||(e[r]||(e[r]=[]),e[r].push(o)),e}),[]))(e,t,i);return l.map(((e,t)=>e.map((e=>{const i=t===l.length-1,d=o&&i?a:n,u=o&&i?s:r;return Object.assign(Object.assign({},e),{height:u,width:d})}))))};const k=(e,t,i,o,n)=>{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 r=o&&n&&o/n;if(void 0!==r&&isNaN(r))throw new Error("Aspect ratio must be a number");let a={area:0,cols:0,rows:0,width:0,height:0};if(void 0!==r)for(let o=i;o>0;o+=-1){const n=Math.ceil(i/o);let s,l;e/(o*r)<=t/n?(s=e/o,l=s/r):(l=t/n,s=l*r);const d=s*l;d>a.area&&(a={area:d,width:s,height:l,rows:n,cols:o})}return a};function M({count:e,parentWidth:t,parentHeight:i,maxTileCount:o,maxRowCount:n,maxColCount:r,aspectRatio:a}){let s=0,l=0,d=0,u=0,c=!1,h=0;if(0===e)return{tilesInFirstPage:h,defaultWidth:s,defaultHeight:l,lastPageWidth:d,lastPageHeight:u,isLastPageDifferentFromFirstPage:c};if(o)({tilesInFirstPage:h,defaultWidth:s,defaultHeight:l,lastPageWidth:d,lastPageHeight:u,isLastPageDifferentFromFirstPage:c}=(({parentWidth:e,parentHeight:t,count:i,maxCount:o,aspectRatio:n})=>{let r=0,a=0,s=0,l=0,d=!1,u=0,c=0;const{width:h,height:g}=k(e,t,Math.min(i,o),n.width,n.height);if(r=h,a=g,u=Math.min(i,o),c=i%o,d=c>0&&i>o,d){const{width:i,height:o}=k(e,t,c,n.width,n.height);s=i,l=o}return{tilesInFirstPage:u,defaultWidth:r,defaultHeight:a,lastPageWidth:s,lastPageHeight:l,isLastPageDifferentFromFirstPage:d}})({parentWidth:t,parentHeight:i,count:e,maxCount:o,aspectRatio:a}));else if(n)({tilesInFirstPage:h,defaultWidth:s,defaultHeight:l,lastPageWidth:d,lastPageHeight:u,isLastPageDifferentFromFirstPage:c}=(({parentWidth:e,parentHeight:t,count:i,maxCount:o,aspectRatio:n})=>{let r=0,a=0,s=0,l=0,d=!1,u=0,c=0;const h=Math.min(Math.ceil(Math.sqrt(i*(n.width/n.height)/(e/t))),o),g=t/h,v=g*(n.width/n.height),f=Math.floor(e/v);if(r=v,a=g,u=Math.min(i,h*f),c=i%(h*f),d=c>0&&i>h*f,d){const i=t/Math.min(Math.ceil(Math.sqrt(c*(n.width/n.height)/(e/t))),o);l=i,s=i*(n.width/n.height)}return{tilesInFirstPage:u,defaultWidth:r,defaultHeight:a,lastPageWidth:s,lastPageHeight:l,isLastPageDifferentFromFirstPage:d}})({parentWidth:t,parentHeight:i,count:e,maxCount:n,aspectRatio:a}));else if(r)({tilesInFirstPage:h,defaultWidth:s,defaultHeight:l,lastPageWidth:d,lastPageHeight:u,isLastPageDifferentFromFirstPage:c}=(({parentWidth:e,parentHeight:t,count:i,maxCount:o,aspectRatio:n})=>{let r=0,a=0,s=0,l=0,d=!1,u=0,c=0;const h=Math.min(Math.ceil(Math.sqrt(i*(e/t)/(n.width/n.height))),o);let g=e/h,v=g/(n.width/n.height);v>t&&(v=t,g=v/(n.height/n.width));const f=Math.floor(t/v);if(a=v,r=g,u=Math.min(i,f*h),c=i%(f*h),d=c>0&&i>f*h,d){let i=e/Math.min(Math.ceil(Math.sqrt(c*(e/t)/(n.width/n.height))),o),r=i/(n.width/n.height);r>t&&(r=t,i=r/(n.height/n.width)),l=r,s=i}return{tilesInFirstPage:u,defaultWidth:r,defaultHeight:a,lastPageWidth:s,lastPageHeight:l,isLastPageDifferentFromFirstPage:d}})({parentWidth:t,parentHeight:i,count:e,maxCount:r,aspectRatio:a}));else{const{width:o,height:n}=k(t,i,e,a.width,a.height);s=o,l=n,h=e}return{tilesInFirstPage:h,defaultWidth:s,defaultHeight:l,lastPageWidth:d,lastPageHeight:u,isLastPageDifferentFromFirstPage:c}}const I=(e,t,i)=>S(void 0,void 0,void 0,(function*(){if(t)try{yield e.setRemoteTrackEnabled(t.id,!t.enabled)}catch(e){i(e,"remoteToggle")}})),C={width:1,height:1};exports.HMSRoomProvider=({children:t,actions:o,store:n,notifications:r,stats:a,isHMSStatsOn:s=!1,leaveOnUnload:u=!0})=>{const c=e.useMemo((()=>{let e;const t=()=>{throw new Error("modifying store is not allowed")};if(o&&n)e={actions:o,store:d.default(Object.assign(Object.assign({},n),{setState:t,destroy:t}))},r&&(e.notifications=r),a&&(e.statsStore=d.default({getState:a.getState,subscribe:a.subscribe,setState:t,destroy:t}));else{const o=new i.HMSReactiveStore;if(e={actions:o.getActions(),store:d.default(Object.assign(Object.assign({},o.getStore()),{setState:t,destroy:t})),notifications:o.getNotifications()},s){const i=o.getStats();e.statsStore=d.default({getState:i.getState,subscribe:i.subscribe,setState:t,destroy:t})}}return e.actions.setFrameworkInfo({type:"react-web",version:l.default.version,sdkVersion:"0.6.5-alpha.0"}),e}),[o,n,r,a,s]);return e.useEffect((()=>{if(g&&u){const e=()=>c.actions.leave();return window.addEventListener("beforeunload",e),()=>{window.removeEventListener("beforeunload",e)}}return()=>{}}),[u,c]),l.default.createElement(v.Provider,{value:c},t)},exports.throwErrorHandler=e=>{throw e},exports.useAVToggle=(t=E)=>{const o=f(i.selectIsLocalAudioEnabled),n=f(i.selectIsLocalVideoEnabled),r=f(i.selectIsInPreview)?i.selectIsAllowedToPreviewMedia:i.selectIsAllowedToPublish,a=f(r),s=b(),l=e.useCallback((()=>S(void 0,void 0,void 0,(function*(){try{yield s.setLocalAudioEnabled(!o)}catch(e){t(e,"toggleAudio")}}))),[s,o,t]),d=e.useCallback((()=>S(void 0,void 0,void 0,(function*(){try{yield s.setLocalVideoEnabled(!n)}catch(e){t(e,"toggleVideo")}}))),[s,n,t]);return{isLocalAudioEnabled:o,isLocalVideoEnabled:n,toggleAudio:(null==a?void 0:a.audio)?l:void 0,toggleVideo:(null==a?void 0:a.video)?d:void 0}},exports.useAudioLevelStyles=function({trackId:t,getStyle:o,ref:n}){const r=y();e.useEffect((()=>r.subscribe((e=>{if(!n.current)return;const t=o(e);for(const e in t)n.current.style[e]=t[e]}),i.selectTrackAudioByID(t))),[o,n,r,t])},exports.useAutoplayError=()=>{const t=P(i.HMSNotificationTypes.ERROR),[o,n]=e.useState(""),r=b(),a=e.useCallback((()=>S(void 0,void 0,void 0,(function*(){yield r.unblockAudio()}))),[r]);return e.useEffect((()=>{3008===(null==t?void 0:t.data.code)&&n(null==t?void 0:t.data.message)}),[t]),{error:o,unblockAudio:a,resetError:()=>n("")}},exports.useCustomEvent=({type:t,json:o=!0,onEvent:n,handleError:r=E})=>{const a=b(),s=w();e.useEffect((()=>{a.ignoreMessageTypes([t])}),[a,t]),e.useEffect((()=>{if(!s)return;return s.onNotification((e=>{const i=e.data;if(i&&i.type===t)try{const e=o?JSON.parse(i.message):i.message;null==n||n(e)}catch(e){r(e,"handleCustomEvent")}}),i.HMSNotificationTypes.NEW_MESSAGE)}),[s,t,o,n,r]);return{sendEvent:e.useCallback(((e,i)=>S(void 0,void 0,void 0,(function*(){try{const r=((e,t)=>t?JSON.stringify(e||""):e)(e,o);i&&Array.isArray(null==i?void 0:i.roleNames)?yield a.sendGroupMessage(r,i.roleNames,t):"string"==typeof(null==i?void 0:i.peerId)?yield a.sendDirectMessage(r,i.peerId,t):yield a.sendBroadcastMessage(r,t),null==n||n(e)}catch(e){r(e,"sendCustomEvent")}}))),[a,r,n,t,o])}},exports.useDevices=(t=E)=>{const o=b(),n=f(i.selectDevices),r=f(i.selectLocalMediaSettings),a=f(i.selectIsAllowedToPublish),s={[i.DeviceType.audioOutput]:r.audioOutputDeviceId},l={[i.DeviceType.audioOutput]:n.audioOutput};a.video&&(l[i.DeviceType.videoInput]=n.videoInput,s[i.DeviceType.videoInput]=r.videoInputDeviceId),a.audio&&(l[i.DeviceType.audioInput]=n.audioInput,s[i.DeviceType.audioInput]=r.audioInputDeviceId);return{allDevices:l,selectedDeviceIDs:s,updateDevice:e.useCallback((({deviceType:e,deviceId:n})=>S(void 0,void 0,void 0,(function*(){try{switch(e){case i.DeviceType.audioInput:yield o.setAudioSettings({deviceId:n});break;case i.DeviceType.videoInput:yield o.setVideoSettings({deviceId:n});break;case i.DeviceType.audioOutput:yield o.setAudioOutputDevice(n)}}catch(e){t(e,"updateDevices")}}))),[t,o])}},exports.useHMSActions=b,exports.useHMSNotifications=P,exports.useHMSStatsStore=m,exports.useHMSStore=f,exports.useHMSVanillaNotifications=w,exports.useHMSVanillaStore=y,exports.useParticipantList=()=>{const t=f(i.selectIsConnectedToRoom),o=f(t?i.selectPeers:i.selectRemotePeers),n=f(i.selectPeerCount),r=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(r),participantsByRoles:r,peerCount:n,isConnected:t}},exports.useParticipants=e=>{var t;const o=f(i.selectIsConnectedToRoom),n=f(i.selectPeerCount),r=f(i.selectAvailableRoleNames);let a=f(o?i.selectPeers:i.selectRemotePeers);const s=Array.from(new Set(a.map((e=>e.roleName)))),l=y();if((null===(t=null==e?void 0:e.metadata)||void 0===t?void 0:t.isHandRaised)&&(a=a.filter((e=>l.getState(i.selectPeerMetadata(e.id)).isHandRaised))),(null==e?void 0:e.role)&&r.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:n,rolesWithParticipants:s}},exports.usePreviewJoin=({name:t="",token:o,metadata:n,handleError:r=E,initEndpoint:a,initialSettings:s,captureNetworkQualityInPreview:l,asRole:d})=>{const u=b(),c=f(i.selectRoomState),h=f(i.selectIsConnectedToRoom)||!1,g=c===i.HMSRoomState.Preview,v=e.useMemo((()=>({userName:t,authToken:o,metaData:n,rememberDeviceSelection:!0,settings:s,initEndpoint:a,asRole:d,captureNetworkQualityInPreview:l})),[t,o,n,a,s,l,d]),p=e.useCallback((()=>S(void 0,void 0,void 0,(function*(){if(o&&c===i.HMSRoomState.Disconnected){h&&(yield u.leave());try{yield u.preview(v)}catch(e){r(e,"preview")}}}))),[u,r,o,c,v,h]);return{enableJoin:g,join:e.useCallback((()=>S(void 0,void 0,void 0,(function*(){if(o)try{yield u.join(v)}catch(e){r(e,"join")}}))),[u,v,r,o]),isConnected:h,preview:p}},exports.useRecordingStreaming=()=>{const e=f(i.selectRecordingState),t=f(i.selectRTMPState),o=f(i.selectHLSState),n=e.server.running,r=e.browser.running,a=e.hls.running,s=n||r||a;return{isServerRecordingOn:n,isBrowserRecordingOn:r,isHLSRecordingOn:a,isStreamingOn:o.running||t.running,isHLSRunning:o.running,isRTMPRunning:t.running,isRecordingOn:s}},exports.useRemoteAVToggle=(t,o,n=E)=>{const r=b(),a=f(i.selectAudioTrackByID(t)),s=f(i.selectVideoTrackByID(o)),l=f(i.selectAudioTrackVolume(null==a?void 0:a.id)),d=f(i.selectPermissions),u=(null==s?void 0:s.enabled)?null==d?void 0:d.mute:null==d?void 0:d.unmute,c=(null==a?void 0:a.enabled)?null==d?void 0:d.mute:null==d?void 0:d.unmute,h=e.useCallback((()=>S(void 0,void 0,void 0,(function*(){yield I(r,a,n)}))),[r,a,n]),g=e.useCallback((()=>S(void 0,void 0,void 0,(function*(){yield I(r,s,n)}))),[r,n,s]),v=e.useCallback((e=>{a&&r.setVolume(e,a.id)}),[r,a]);return{isAudioEnabled:!!(null==a?void 0:a.enabled),isVideoEnabled:!!(null==s?void 0:s.enabled),volume:l,toggleAudio:a&&c?h:void 0,toggleVideo:"regular"===(null==s?void 0:s.source)&&u?g:void 0,setVolume:a?v:void 0}},exports.useScreenShare=(t=E)=>{var o,n;const r=b(),a=f(i.selectIsLocalScreenShared),s=f(i.selectPeerScreenSharing),l=f(i.selectScreenSharesByPeerId(null==s?void 0:s.id)),d=e.useCallback((e=>S(void 0,void 0,void 0,(function*(){try{yield r.setScreenShareEnabled(!a,e)}catch(e){t(e,"toggleScreenShare")}}))),[r,a,t]);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===(n=null==l?void 0:l.audio)||void 0===n?void 0:n.id,toggleScreenShare:d}},exports.useVideo=({trackId:t,attach:r,threshold:a=.5})=>{var s;const l=b(),d=e.useRef(null),u=f(i.selectVideoTrackByID(t)),{ref:h,inView:v}=o.useInView({threshold:a}),{width:p=0,height:m=0,ref:y}=n.useResizeDetector({refreshMode:"debounce",refreshRate:300}),w=e.useCallback((()=>S(void 0,void 0,void 0,(function*(){var e;if(p>0&&m>0&&v&&(null===(e=null==u?void 0:u.layerDefinitions)||void 0===e?void 0:e.length)&&y.current&&(null==u?void 0:u.enabled)&&!(null==u?void 0:u.degraded)){const e=(({layerDefinitions:e,width:t,height:i})=>{let o,n=Number.MAX_VALUE;for(const{resolution:r,layer:a}of e){const e=Math.abs(t-(r.width||0))+Math.abs(i-(r.height||0));e<n&&(n=e,o=a)}return o})({layerDefinitions:u.layerDefinitions,width:p,height:m});yield l.setPreferredLayer(null==u?void 0:u.id,e)}}))),[p,m,null==u?void 0:u.id,l,null==u?void 0:u.enabled,null==u?void 0:u.degraded,y,v]),P=e.useCallback((e=>{var t;e&&(d.current=e,h(e),(null===(t=null==u?void 0:u.layerDefinitions)||void 0===t?void 0:t.length)&&(y.current=e))}),[h,null===(s=null==u?void 0:u.layerDefinitions)||void 0===s?void 0:s.length,y]);return e.useEffect((()=>{w()}),[w]),e.useEffect((()=>{S(void 0,void 0,void 0,(function*(){if(d.current&&(null==u?void 0:u.id)){let e=!0;g&&(e="visible"===window.getComputedStyle(d.current).visibility),v&&u.enabled&&e&&!1!==r?yield l.attachVideo(u.id,d.current):yield l.detachVideo(u.id,d.current)}}))}),[l,v,d,null==u?void 0:u.id,null==u?void 0:u.enabled,null==u?void 0:u.deviceID,null==u?void 0:u.plugins,r]),e.useEffect((()=>()=>{S(void 0,void 0,void 0,(function*(){if(d.current&&u)try{yield l.detachVideo(u.id,d.current)}catch(e){c.w("detach video error for track",u.id,e)}}))}),[]),{videoRef:P}},exports.useVideoList=({peers:t,maxTileCount:o,maxColCount:r,maxRowCount:a,includeScreenShareForPeer:s=(()=>!1),aspectRatio:l=C,filterNonPublishingPeers:d=!0,offsetY:u=0})=>{const{width:c=0,height:h=0,ref:g}=n.useResizeDetector(),v=((e,t,i,o=!0)=>{if(!e||!t||!i)return[];const n=[];for(const r of e)if(void 0===r.videoTrack&&r.audioTrack&&t[r.audioTrack]?n.push({peer:r}):r.videoTrack&&t[r.videoTrack]?n.push({track:t[r.videoTrack],peer:r}):o||n.push({peer:r}),r.auxiliaryTracks.length>0&&r.auxiliaryTracks.forEach((e=>{const i=t[e];"video"===(null==i?void 0:i.type)&&"regular"===(null==i?void 0:i.source)&&n.push({track:i,peer:r})})),i(r)&&r.auxiliaryTracks.length>0){const e=r.auxiliaryTracks.find((e=>{const i=t[e];return"video"===(null==i?void 0:i.type)&&"screen"===(null==i?void 0:i.source)}));e&&n.push({track:t[e],peer:r})}return n})(t,y().getState(i.selectTracksMap),s,d),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 n=0;n<e.length;n++){const r=e[n];null===t[r]?t[r]=1:t[r]++,t[r]>o&&(i=r,o=t[r])}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:w,defaultHeight:b,lastPageWidth:P,lastPageHeight:S,isLastPageDifferentFromFirstPage:E}=e.useMemo((()=>M({count:p,parentWidth:Math.floor(c),parentHeight:Math.floor(h)-Math.min(h,u),maxTileCount:o,maxRowCount:a,maxColCount:r,aspectRatio:f})),[p,c,h,o,a,r,f,u]);return{pagesWithTiles:e.useMemo((()=>R({elements:v,tilesInFirstPage:m,onlyOnePage:!1,isLastPageDifferentFromFirstPage:E,defaultWidth:w,defaultHeight:b,lastPageWidth:P,lastPageHeight:S})),[v,m,E,w,b,P,S]),ref:g}},Object.keys(i).forEach((function(e){"default"===e||exports.hasOwnProperty(e)||Object.defineProperty(exports,e,{enumerable:!0,get:function(){return i[e]}})}));
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("zustand"),i=require("@100mslive/hms-video-store"),o=require("react-resize-detector");function n(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var r,a,s=n(e),l=n(t);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}(a=r||(r={}))[a.VERBOSE=0]="VERBOSE",a[a.DEBUG=1]="DEBUG",a[a.INFO=2]="INFO",a[a.WARN=3]="WARN",a[a.ERROR=4]="ERROR",a[a.NONE=5]="NONE";class u{static v(e,...t){this.log(r.VERBOSE,e,...t)}static d(e,...t){this.log(r.DEBUG,e,...t)}static i(e,...t){this.log(r.INFO,e,...t)}static w(e,...t){this.log(r.WARN,e,...t)}static e(e,...t){this.log(r.ERROR,e,...t)}static log(e,t,...i){if(!(this.level.valueOf()>e.valueOf()))switch(e){case r.VERBOSE:console.log("HMSui-components: ",t,...i);break;case r.DEBUG:console.debug("HMSui-components: ",t,...i);break;case r.INFO:console.info("HMSui-components: ",t,...i);break;case r.WARN:console.warn("HMSui-components: ",t,...i);break;case r.ERROR:console.error("HMSui-components: ",t,...i)}}}u.level=r.VERBOSE;const d="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 h="undefined"!=typeof window,g=e.createContext(null),f=(v=g,(t,i=c)=>{t||u.w("fetching full store without passing any selector may have a heavy performance impact on your website.");const o=e.useContext(v);if(!o)throw new Error(d);return(0,o.store)(t,i)});var v;const p=function(t){return(i,o=c)=>{i||u.w("fetching full store without passing any selector may have a heavy performance impact on your website.");const n=e.useContext(t);if(!n)throw new Error(d);const r=n.statsStore;return null==r?void 0:r(i,o)}}(g),m=()=>{const t=e.useContext(g);if(!t)throw new Error(d);return t.store},y=()=>{const t=e.useContext(g);if(!t)throw new Error(d);return t.notifications},w=()=>{const t=e.useContext(g);if(!t)throw new Error(d);return t.actions},P=t=>{const i=e.useContext(g),[o,n]=e.useState(null);if(!i)throw new Error(d);return e.useEffect((()=>{if(!i.notifications)return;return i.notifications.onNotification((e=>{n(e)}),t)}),[i.notifications,t]),o};function S(e,t,i,o){return new(i||(i=Promise))((function(n,r){function a(e){try{l(o.next(e))}catch(e){r(e)}}function s(e){try{l(o.throw(e))}catch(e){r(e)}}function l(e){var t;e.done?n(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 b=(e,t)=>u.e("react-sdk",t,e),E=(e,t,i)=>S(void 0,void 0,void 0,(function*(){if(t)try{yield e.setRemoteTrackEnabled(t.id,!t.enabled)}catch(e){i(e,"remoteToggle")}})),R=({elements:e,tilesInFirstPage:t,onlyOnePage:i,isLastPageDifferentFromFirstPage:o,defaultWidth:n,defaultHeight:r,lastPageWidth:a,lastPageHeight:s})=>{const l=((e,t,i)=>e.reduce(((e,o,n)=>{const r=Math.floor(n/t);return r>0&&i||(e[r]||(e[r]=[]),e[r].push(o)),e}),[]))(e,t,i);return l.map(((e,t)=>e.map((e=>{const i=t===l.length-1,c=o&&i?a:n,u=o&&i?s:r;return Object.assign(Object.assign({},e),{height:u,width:c})}))))};const k=(e,t,i,o,n)=>{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 r=o&&n&&o/n;if(void 0!==r&&isNaN(r))throw new Error("Aspect ratio must be a number");let a={area:0,cols:0,rows:0,width:0,height:0};if(void 0!==r)for(let o=i;o>0;o+=-1){const n=Math.ceil(i/o);let s,l;e/(o*r)<=t/n?(s=e/o,l=s/r):(l=t/n,s=l*r);const c=s*l;c>a.area&&(a={area:c,width:s,height:l,rows:n,cols:o})}return a};function M({count:e,parentWidth:t,parentHeight:i,maxTileCount:o,maxRowCount:n,maxColCount:r,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:n})=>{let r=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),n.width,n.height);if(r=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,n.width,n.height);s=i,l=o}return{tilesInFirstPage:u,defaultWidth:r,defaultHeight:a,lastPageWidth:s,lastPageHeight:l,isLastPageDifferentFromFirstPage:c}})({parentWidth:t,parentHeight:i,count:e,maxCount:o,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:n})=>{let r=0,a=0,s=0,l=0,c=!1,u=0,d=0;const h=Math.min(Math.ceil(Math.sqrt(i*(n.width/n.height)/(e/t))),o),g=t/h,f=g*(n.width/n.height),v=Math.floor(e/f);if(r=f,a=g,u=Math.min(i,h*v),d=i%(h*v),c=d>0&&i>h*v,c){const i=t/Math.min(Math.ceil(Math.sqrt(d*(n.width/n.height)/(e/t))),o);l=i,s=i*(n.width/n.height)}return{tilesInFirstPage:u,defaultWidth:r,defaultHeight:a,lastPageWidth:s,lastPageHeight:l,isLastPageDifferentFromFirstPage:c}})({parentWidth:t,parentHeight:i,count:e,maxCount:n,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:n})=>{let r=0,a=0,s=0,l=0,c=!1,u=0,d=0;const h=Math.min(Math.ceil(Math.sqrt(i*(e/t)/(n.width/n.height))),o);let g=e/h,f=g/(n.width/n.height);f>t&&(f=t,g=f/(n.height/n.width));const v=Math.floor(t/f);if(a=f,r=g,u=Math.min(i,v*h),d=i%(v*h),c=d>0&&i>v*h,c){let i=e/Math.min(Math.ceil(Math.sqrt(d*(e/t)/(n.width/n.height))),o),r=i/(n.width/n.height);r>t&&(r=t,i=r/(n.height/n.width)),l=r,s=i}return{tilesInFirstPage:u,defaultWidth:r,defaultHeight:a,lastPageWidth:s,lastPageHeight:l,isLastPageDifferentFromFirstPage:c}})({parentWidth:t,parentHeight:i,count:e,maxCount:r,aspectRatio:a}));else{const{width:o,height:n}=k(t,i,e,a.width,a.height);s=o,l=n,h=e}return{tilesInFirstPage:h,defaultWidth:s,defaultHeight:l,lastPageWidth:c,lastPageHeight:u,isLastPageDifferentFromFirstPage:d}}const I={width:1,height:1};exports.HMSRoomProvider=({children:t,actions:o,store:n,notifications:r,stats:a,isHMSStatsOn:c=!1,leaveOnUnload:u=!0})=>{const d=e.useMemo((()=>{let e;const t=()=>{throw new Error("modifying store is not allowed")};if(o&&n)e={actions:o,store:l.default(Object.assign(Object.assign({},n),{setState:t,destroy:t}))},r&&(e.notifications=r),a&&(e.statsStore=l.default({getState:a.getState,subscribe:a.subscribe,setState:t,destroy:t}));else{const o=new i.HMSReactiveStore;if(e={actions:o.getActions(),store:l.default(Object.assign(Object.assign({},o.getStore()),{setState:t,destroy:t})),notifications:o.getNotifications()},c){const i=o.getStats();e.statsStore=l.default({getState:i.getState,subscribe:i.subscribe,setState:t,destroy:t})}}return e.actions.setFrameworkInfo({type:"react-web",version:s.default.version,sdkVersion:"0.6.5-alpha.1"}),e}),[o,n,r,a,c]);return e.useEffect((()=>{if(h&&u){const e=()=>d.actions.leave();return window.addEventListener("beforeunload",e),()=>{window.removeEventListener("beforeunload",e)}}return()=>{}}),[u,d]),s.default.createElement(g.Provider,{value:d},t)},exports.throwErrorHandler=e=>{throw e},exports.useAVToggle=(t=b)=>{const o=f(i.selectIsLocalAudioEnabled),n=f(i.selectIsLocalVideoEnabled),r=f(i.selectIsInPreview)?i.selectIsAllowedToPreviewMedia:i.selectIsAllowedToPublish,a=f(r),s=w(),l=e.useCallback((()=>S(void 0,void 0,void 0,(function*(){try{yield s.setLocalAudioEnabled(!o)}catch(e){t(e,"toggleAudio")}}))),[s,o,t]),c=e.useCallback((()=>S(void 0,void 0,void 0,(function*(){try{yield s.setLocalVideoEnabled(!n)}catch(e){t(e,"toggleVideo")}}))),[s,n,t]);return{isLocalAudioEnabled:o,isLocalVideoEnabled:n,toggleAudio:(null==a?void 0:a.audio)?l:void 0,toggleVideo:(null==a?void 0:a.video)?c:void 0}},exports.useAudioLevelStyles=function({trackId:t,getStyle:o,ref:n}){const r=m();e.useEffect((()=>r.subscribe((e=>{if(!n.current)return;const t=o(e);for(const e in t)n.current.style[e]=t[e]}),i.selectTrackAudioByID(t))),[o,n,r,t])},exports.useAutoplayError=()=>{const t=P(i.HMSNotificationTypes.ERROR),[o,n]=e.useState(""),r=w(),a=e.useCallback((()=>S(void 0,void 0,void 0,(function*(){yield r.unblockAudio()}))),[r]);return e.useEffect((()=>{3008===(null==t?void 0:t.data.code)&&n(null==t?void 0:t.data.message)}),[t]),{error:o,unblockAudio:a,resetError:()=>n("")}},exports.useCustomEvent=({type:t,json:o=!0,onEvent:n,handleError:r=b})=>{const a=w(),s=y();e.useEffect((()=>{a.ignoreMessageTypes([t])}),[a,t]),e.useEffect((()=>{if(!s)return;return s.onNotification((e=>{const i=e.data;if(i&&i.type===t)try{const e=o?JSON.parse(i.message):i.message;null==n||n(e)}catch(e){r(e,"handleCustomEvent")}}),i.HMSNotificationTypes.NEW_MESSAGE)}),[s,t,o,n,r]);return{sendEvent:e.useCallback(((e,i)=>S(void 0,void 0,void 0,(function*(){try{const r=((e,t)=>t?JSON.stringify(e||""):e)(e,o);i&&Array.isArray(null==i?void 0:i.roleNames)?yield a.sendGroupMessage(r,i.roleNames,t):"string"==typeof(null==i?void 0:i.peerId)?yield a.sendDirectMessage(r,i.peerId,t):yield a.sendBroadcastMessage(r,t),null==n||n(e)}catch(e){r(e,"sendCustomEvent")}}))),[a,r,n,t,o])}},exports.useDevices=(t=b)=>{const o=w(),n=f(i.selectDevices),r=f(i.selectLocalMediaSettings),a=f(i.selectIsAllowedToPublish),s={[i.DeviceType.audioOutput]:r.audioOutputDeviceId},l={[i.DeviceType.audioOutput]:n.audioOutput};a.video&&(l[i.DeviceType.videoInput]=n.videoInput,s[i.DeviceType.videoInput]=r.videoInputDeviceId),a.audio&&(l[i.DeviceType.audioInput]=n.audioInput,s[i.DeviceType.audioInput]=r.audioInputDeviceId);return{allDevices:l,selectedDeviceIDs:s,updateDevice:e.useCallback((({deviceType:e,deviceId:n})=>S(void 0,void 0,void 0,(function*(){try{switch(e){case i.DeviceType.audioInput:yield o.setAudioSettings({deviceId:n});break;case i.DeviceType.videoInput:yield o.setVideoSettings({deviceId:n});break;case i.DeviceType.audioOutput:yield o.setAudioOutputDevice(n)}}catch(e){t(e,"updateDevices")}}))),[t,o])}},exports.useHMSActions=w,exports.useHMSNotifications=P,exports.useHMSStatsStore=p,exports.useHMSStore=f,exports.useHMSVanillaNotifications=y,exports.useHMSVanillaStore=m,exports.useParticipantList=()=>{const t=f(i.selectIsConnectedToRoom),o=f(t?i.selectPeers:i.selectRemotePeers),n=f(i.selectPeerCount),r=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(r),participantsByRoles:r,peerCount:n,isConnected:t}},exports.useParticipants=e=>{var t;const o=f(i.selectIsConnectedToRoom),n=f(i.selectPeerCount),r=f(i.selectAvailableRoleNames);let a=f(o?i.selectPeers:i.selectRemotePeers);const s=Array.from(new Set(a.map((e=>e.roleName)))),l=m();if((null===(t=null==e?void 0:e.metadata)||void 0===t?void 0:t.isHandRaised)&&(a=a.filter((e=>l.getState(i.selectPeerMetadata(e.id)).isHandRaised))),(null==e?void 0:e.role)&&r.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:n,rolesWithParticipants:s}},exports.usePreviewJoin=({name:t="",token:o,metadata:n,handleError:r=b,initEndpoint:a,initialSettings:s,captureNetworkQualityInPreview:l,asRole:c,autoManageVideo:u})=>{const d=w(),h=f(i.selectRoomState),g=f(i.selectIsConnectedToRoom)||!1,v=h===i.HMSRoomState.Preview,p=e.useMemo((()=>({userName:t,authToken:o,metaData:n,rememberDeviceSelection:!0,settings:s,initEndpoint:a,asRole:c,captureNetworkQualityInPreview:l,autoManageVideo:u})),[t,o,n,a,s,l,c,u]),m=e.useCallback((()=>S(void 0,void 0,void 0,(function*(){if(o&&h===i.HMSRoomState.Disconnected){g&&(yield d.leave());try{yield d.preview(p)}catch(e){r(e,"preview")}}}))),[d,r,o,h,p,g]);return{enableJoin:v,join:e.useCallback((()=>S(void 0,void 0,void 0,(function*(){if(o)try{yield d.join(p)}catch(e){r(e,"join")}}))),[d,p,r,o]),isConnected:g,preview:m}},exports.useRecordingStreaming=()=>{const e=f(i.selectRecordingState),t=f(i.selectRTMPState),o=f(i.selectHLSState),n=e.server.running,r=e.browser.running,a=e.hls.running,s=n||r||a;return{isServerRecordingOn:n,isBrowserRecordingOn:r,isHLSRecordingOn:a,isStreamingOn:o.running||t.running,isHLSRunning:o.running,isRTMPRunning:t.running,isRecordingOn:s}},exports.useRemoteAVToggle=(t,o,n=b)=>{const r=w(),a=f(i.selectAudioTrackByID(t)),s=f(i.selectVideoTrackByID(o)),l=f(i.selectAudioTrackVolume(null==a?void 0:a.id)),c=f(i.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((()=>S(void 0,void 0,void 0,(function*(){yield E(r,a,n)}))),[r,a,n]),g=e.useCallback((()=>S(void 0,void 0,void 0,(function*(){yield E(r,s,n)}))),[r,n,s]),v=e.useCallback((e=>{a&&r.setVolume(e,a.id)}),[r,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=(t=b)=>{var o,n;const r=w(),a=f(i.selectIsLocalScreenShared),s=f(i.selectPeerScreenSharing),l=f(i.selectScreenSharesByPeerId(null==s?void 0:s.id)),c=e.useCallback((e=>S(void 0,void 0,void 0,(function*(){try{yield r.setScreenShareEnabled(!a,e)}catch(e){t(e,"toggleScreenShare")}}))),[r,a,t]);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===(n=null==l?void 0:l.audio)||void 0===n?void 0:n.id,toggleScreenShare:c}},exports.useVideo=({trackId:t,attach:o})=>{const n=w(),r=e.useRef(null),a=f(i.selectVideoTrackByID(t)),s=e.useCallback((e=>{e&&(r.current=e)}),[]);return e.useEffect((()=>{S(void 0,void 0,void 0,(function*(){(null==a?void 0:a.id)&&r.current&&(!1!==o?yield n.attachVideo(a.id,r.current):yield n.detachVideo(a.id,r.current))}))}),[null==a?void 0:a.id,o,n]),e.useEffect((()=>()=>{S(void 0,void 0,void 0,(function*(){if(r.current&&a)try{yield n.detachVideo(a.id,r.current)}catch(e){u.w("detach video error for track",a.id,e)}}))}),[]),{videoRef:s}},exports.useVideoList=({peers:t,maxTileCount:n,maxColCount:r,maxRowCount:a,includeScreenShareForPeer:s=(()=>!1),aspectRatio:l=I,filterNonPublishingPeers:c=!0,offsetY:u=0})=>{const{width:d=0,height:h=0,ref:g}=o.useResizeDetector(),f=((e,t,i,o=!0)=>{if(!e||!t||!i)return[];const n=[];for(const r of e)if(void 0===r.videoTrack&&r.audioTrack&&t[r.audioTrack]?n.push({peer:r}):r.videoTrack&&t[r.videoTrack]?n.push({track:t[r.videoTrack],peer:r}):o||n.push({peer:r}),r.auxiliaryTracks.length>0&&r.auxiliaryTracks.forEach((e=>{const i=t[e];"video"===(null==i?void 0:i.type)&&"regular"===(null==i?void 0:i.source)&&n.push({track:i,peer:r})})),i(r)&&r.auxiliaryTracks.length>0){const e=r.auxiliaryTracks.find((e=>{const i=t[e];return"video"===(null==i?void 0:i.type)&&"screen"===(null==i?void 0:i.source)}));e&&n.push({track:t[e],peer:r})}return n})(t,m().getState(i.selectTracksMap),s,c),v=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 n=0;n<e.length;n++){const r=e[n];null===t[r]?t[r]=1:t[r]++,t[r]>o&&(i=r,o=t[r])}return i}(f.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,f]),p=f.length,{tilesInFirstPage:y,defaultWidth:w,defaultHeight:P,lastPageWidth:S,lastPageHeight:b,isLastPageDifferentFromFirstPage:E}=e.useMemo((()=>M({count:p,parentWidth:Math.floor(d),parentHeight:Math.floor(h)-Math.min(h,u),maxTileCount:n,maxRowCount:a,maxColCount:r,aspectRatio:v})),[p,d,h,n,a,r,v,u]);return{pagesWithTiles:e.useMemo((()=>R({elements:f,tilesInFirstPage:y,onlyOnePage:!1,isLastPageDifferentFromFirstPage:E,defaultWidth:w,defaultHeight:P,lastPageWidth:S,lastPageHeight:b})),[f,y,E,w,P,S,b]),ref:g}},Object.keys(i).forEach((function(e){"default"===e||exports.hasOwnProperty(e)||Object.defineProperty(exports,e,{enumerable:!0,get:function(){return i[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/utils/layout.ts","../src/hooks/useRemoteAVToggle.ts","../src/hooks/useVideoList.ts","../src/hooks/useAVToggle.ts","../src/hooks/useAudioLevelStyles.ts","../src/hooks/useAutoplayError.ts","../src/hooks/useCustomEvent.ts","../src/hooks/useDevices.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","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","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","toggleTrackEnabled","track","handleError","setRemoteTrackEnabled","id","enabled","DEFAULTS","children","stats","isHMSStatsOn","leaveOnUnload","providerProps","useMemo","providerProps2","errFn","create","setState","destroy","getState","subscribe","hmsReactiveStore","HMSReactiveStore","getActions","getStore","getNotifications","stats2","getStats","setFrameworkInfo","version","React","sdkVersion","beforeUnloadCallback","leave","addEventListener","removeEventListener","createElement","Provider","isLocalAudioEnabled","selectIsLocalAudioEnabled","isLocalVideoEnabled","selectIsLocalVideoEnabled","selectAllowed","selectIsInPreview","selectIsAllowedToPreviewMedia","selectIsAllowedToPublish","isAllowedToPublish","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","DeviceType","audioOutput","audioOutputDeviceId","allDevices","videoInput","videoInputDeviceId","audioInput","audioInputDeviceId","updateDevice","deviceType","deviceId","setAudioSettings","setVideoSettings","setAudioOutputDevice","isConnected","selectIsConnectedToRoom","participantList","selectPeers","selectRemotePeers","peerCount","selectPeerCount","participantsByRoles","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","asRole","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","setScreenShareEnabled","screenSharingPeerId","screenSharingPeerName","screenShareVideoTrackId","screenShareAudioTrackId","_b","attach","threshold","videoRef","useRef","inViewRef","inView","useInView","resizeRef","useResizeDetector","refreshMode","refreshRate","setLayerByResolution","layerDefinitions","degraded","closestLayer","diff","MAX_VALUE","resolution","layer","currDiff","abs","getClosestLayer","setPreferredLayer","setRefs","node","visible","getComputedStyle","visibility","attachVideo","detachVideo","deviceID","plugins","includeScreenShareForPeer","filterNonPublishingPeers","offsetY","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/useAVToggle.ts","../src/hooks/useAudioLevelStyles.ts","../src/hooks/useAutoplayError.ts","../src/hooks/useCustomEvent.ts","../src/hooks/useDevices.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","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","children","stats","isHMSStatsOn","leaveOnUnload","providerProps","useMemo","providerProps2","errFn","create","setState","destroy","getState","subscribe","hmsReactiveStore","HMSReactiveStore","getActions","getStore","getNotifications","stats2","getStats","setFrameworkInfo","version","React","sdkVersion","beforeUnloadCallback","leave","addEventListener","removeEventListener","createElement","Provider","isLocalAudioEnabled","selectIsLocalAudioEnabled","isLocalVideoEnabled","selectIsLocalVideoEnabled","selectAllowed","selectIsInPreview","selectIsAllowedToPreviewMedia","selectIsAllowedToPublish","isAllowedToPublish","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","DeviceType","audioOutput","audioOutputDeviceId","allDevices","videoInput","videoInputDeviceId","audioInput","audioInputDeviceId","updateDevice","deviceType","deviceId","setAudioSettings","setVideoSettings","setAudioOutputDevice","isConnected","selectIsConnectedToRoom","participantList","selectPeers","selectRemotePeers","peerCount","selectPeerCount","participantsByRoles","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","asRole","autoManageVideo","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","setScreenShareEnabled","screenSharingPeerId","screenSharingPeerName","screenShareVideoTrackId","screenShareAudioTrackId","_b","attach","videoRef","useRef","setRefs","node","attachVideo","detachVideo","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,2 +1,2 @@
|
|
|
1
|
-
import t,{createContext as e,useMemo as o,useEffect as r,useContext as s,useState as n}from"react";import i from"zustand";import{HMSReactiveStore as a}from"@100mslive/hms-video-store";import{makeHMSStoreHook as c,makeHMSStatsStoreHook as f,hooksErrorMessage as u}from"./store.js";import{isBrowser as l}from"../utils/isBrowser.js";const w=e(null),d=({children:e,actions:s,store:n,notifications:c,stats:f,isHMSStatsOn:u=!1,leaveOnUnload:d=!0})=>{const m=o((()=>{let e;const o=()=>{throw new Error("modifying store is not allowed")};if(s&&n)e={actions:s,store:i(Object.assign(Object.assign({},n),{setState:o,destroy:o}))},c&&(e.notifications=c),f&&(e.statsStore=i({getState:f.getState,subscribe:f.subscribe,setState:o,destroy:o}));else{const t=new a;if(e={actions:t.getActions(),store:i(Object.assign(Object.assign({},t.getStore()),{setState:o,destroy:o})),notifications:t.getNotifications()},u){const r=t.getStats();e.statsStore=i({getState:r.getState,subscribe:r.subscribe,setState:o,destroy:o})}}return e.actions.setFrameworkInfo({type:"react-web",version:t.version,sdkVersion:"0.6.5-alpha.
|
|
1
|
+
import t,{createContext as e,useMemo as o,useEffect as r,useContext as s,useState as n}from"react";import i from"zustand";import{HMSReactiveStore as a}from"@100mslive/hms-video-store";import{makeHMSStoreHook as c,makeHMSStatsStoreHook as f,hooksErrorMessage as u}from"./store.js";import{isBrowser as l}from"../utils/isBrowser.js";const w=e(null),d=({children:e,actions:s,store:n,notifications:c,stats:f,isHMSStatsOn:u=!1,leaveOnUnload:d=!0})=>{const m=o((()=>{let e;const o=()=>{throw new Error("modifying store is not allowed")};if(s&&n)e={actions:s,store:i(Object.assign(Object.assign({},n),{setState:o,destroy:o}))},c&&(e.notifications=c),f&&(e.statsStore=i({getState:f.getState,subscribe:f.subscribe,setState:o,destroy:o}));else{const t=new a;if(e={actions:t.getActions(),store:i(Object.assign(Object.assign({},t.getStore()),{setState:o,destroy:o})),notifications:t.getNotifications()},u){const r=t.getStats();e.statsStore=i({getState:r.getState,subscribe:r.subscribe,setState:o,destroy:o})}}return e.actions.setFrameworkInfo({type:"react-web",version:t.version,sdkVersion:"0.6.5-alpha.1"}),e}),[s,n,c,f,u]);return r((()=>{if(l&&d){const t=()=>m.actions.leave();return window.addEventListener("beforeunload",t),()=>{window.removeEventListener("beforeunload",t)}}return()=>{}}),[d,m]),t.createElement(w.Provider,{value:m},e)},m=c(w),b=f(w),S=()=>{const t=s(w);if(!t)throw new Error(u);return t.store},g=()=>{const t=s(w);if(!t)throw new Error(u);return t.notifications},v=()=>{const t=s(w);if(!t)throw new Error(u);return t.actions},h=t=>{const e=s(w),[o,i]=n(null);if(!e)throw new Error(u);return r((()=>{if(!e.notifications)return;return e.notifications.onNotification((t=>{i(t)}),t)}),[e.notifications,t]),o};export{d as HMSRoomProvider,v as useHMSActions,h as useHMSNotifications,b as useHMSStatsStore,m as useHMSStore,g as useHMSVanillaNotifications,S as useHMSVanillaStore};
|
|
2
2
|
//# sourceMappingURL=HmsRoomProvider.js.map
|
package/dist/utils/layout.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { HMSPeer,
|
|
1
|
+
import { HMSPeer, HMSScreenVideoTrack, HMSTrack, HMSTrackID, HMSVideoTrack } 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[];
|
|
@@ -113,9 +113,4 @@ export declare function calculateLayoutSizes({ count, parentWidth, parentHeight,
|
|
|
113
113
|
* @param filterNonPublishingPeers - by default a peer with no tracks won't be counted towards final tiles
|
|
114
114
|
*/
|
|
115
115
|
export declare const getVideoTracksFromPeers: (peers: HMSPeer[], tracks: Record<HMSTrackID, HMSTrack>, includeScreenShareForPeer: (peer: HMSPeer) => boolean, filterNonPublishingPeers?: boolean) => TrackWithPeer[];
|
|
116
|
-
export declare const getClosestLayer: ({ layerDefinitions, width, height, }: {
|
|
117
|
-
layerDefinitions: HMSSimulcastLayerDefinition[];
|
|
118
|
-
width: number;
|
|
119
|
-
height: number;
|
|
120
|
-
}) => HMSPreferredSimulcastLayer;
|
|
121
116
|
export {};
|
package/dist/utils/layout.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const t=(t,e,i)=>t.reduce(((t,a,r)=>{const h=Math.floor(r/e);return h>0&&i||(t[h]||(t[h]=[]),t[h].push(a)),t}),[]),e=({elements:e,tilesInFirstPage:i,onlyOnePage:a,isLastPageDifferentFromFirstPage:r,defaultWidth:h,defaultHeight:n,lastPageWidth:s,lastPageHeight:o})=>{const l=t(e,i,a);return l.map(((t,e)=>t.map((t=>{const i=e===l.length-1,a=r&&i?s:h,g=r&&i?o:n;return Object.assign(Object.assign({},t),{height:g,width:a})}))))};function i(t){if(0===t.length)return null;const e={};let i=t[0],a=1;for(let r=0;r<t.length;r++){const h=t[r];null===e[h]?e[h]=1:e[h]++,e[h]>a&&(i=h,a=e[h])}return i}const a=t=>i(t.filter((t=>{var e,i;return(null===(e=t.track)||void 0===e?void 0:e.width)&&(null===(i=t.track)||void 0===i?void 0:i.height)})).map((t=>{var e,i;return((null===(e=t.track)||void 0===e?void 0:e.width)||1)/((null===(i=t.track)||void 0===i?void 0:i.height)||1)}))),r=(t,e,i,a,r)=>{if(t<0||e<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 h=a&&r&&a/r;if(void 0!==h&&isNaN(h))throw new Error("Aspect ratio must be a number");let n={area:0,cols:0,rows:0,width:0,height:0};if(void 0!==h)for(let a=i;a>0;a+=-1){const r=Math.ceil(i/a);let s,o;t/(a*h)<=e/r?(s=t/a,o=s/h):(o=e/r,s=o*h);const l=s*o;l>n.area&&(n={area:l,width:s,height:o,rows:r,cols:a})}return n},h=({parentWidth:t,parentHeight:e,count:i,maxCount:a,aspectRatio:r})=>{let h=0,n=0,s=0,o=0,l=!1,g=0,d=0;const u=Math.min(Math.ceil(Math.sqrt(i*(t/e)/(r.width/r.height))),a);let c=t/u,f=c/(r.width/r.height);f>e&&(f=e,c=f/(r.height/r.width));const P=Math.floor(e/f);if(n=f,h=c,g=Math.min(i,P*u),d=i%(P*u),l=d>0&&i>P*u,l){let i=t/Math.min(Math.ceil(Math.sqrt(d*(t/e)/(r.width/r.height))),a),h=i/(r.width/r.height);h>e&&(h=e,i=h/(r.height/r.width)),o=h,s=i}return{tilesInFirstPage:g,defaultWidth:h,defaultHeight:n,lastPageWidth:s,lastPageHeight:o,isLastPageDifferentFromFirstPage:l}},n=({parentWidth:t,parentHeight:e,count:i,maxCount:a,aspectRatio:h})=>{let n=0,s=0,o=0,l=0,g=!1,d=0,u=0;const{width:c,height:f}=r(t,e,Math.min(i,a),h.width,h.height);if(n=c,s=f,d=Math.min(i,a),u=i%a,g=u>0&&i>a,g){const{width:i,height:a}=r(t,e,u,h.width,h.height);o=i,l=a}return{tilesInFirstPage:d,defaultWidth:n,defaultHeight:s,lastPageWidth:o,lastPageHeight:l,isLastPageDifferentFromFirstPage:g}},s=({parentWidth:t,parentHeight:e,count:i,maxCount:a,aspectRatio:r})=>{let h=0,n=0,s=0,o=0,l=!1,g=0,d=0;const u=Math.min(Math.ceil(Math.sqrt(i*(r.width/r.height)/(t/e))),a),c=e/u,f=c*(r.width/r.height),P=Math.floor(t/f);if(h=f,n=c,g=Math.min(i,u*P),d=i%(u*P),l=d>0&&i>u*P,l){const i=e/Math.min(Math.ceil(Math.sqrt(d*(r.width/r.height)/(t/e))),a);o=i,s=i*(r.width/r.height)}return{tilesInFirstPage:g,defaultWidth:h,defaultHeight:n,lastPageWidth:s,lastPageHeight:o,isLastPageDifferentFromFirstPage:l}};function o({count:t,parentWidth:e,parentHeight:i,maxTileCount:a,maxRowCount:o,maxColCount:l,aspectRatio:g}){let d=0,u=0,c=0,f=0,P=!1,p=0;if(0===t)return{tilesInFirstPage:p,defaultWidth:d,defaultHeight:u,lastPageWidth:c,lastPageHeight:f,isLastPageDifferentFromFirstPage:P};if(a)({tilesInFirstPage:p,defaultWidth:d,defaultHeight:u,lastPageWidth:c,lastPageHeight:f,isLastPageDifferentFromFirstPage:P}=n({parentWidth:e,parentHeight:i,count:t,maxCount:a,aspectRatio:g}));else if(o)({tilesInFirstPage:p,defaultWidth:d,defaultHeight:u,lastPageWidth:c,lastPageHeight:f,isLastPageDifferentFromFirstPage:P}=s({parentWidth:e,parentHeight:i,count:t,maxCount:o,aspectRatio:g}));else if(l)({tilesInFirstPage:p,defaultWidth:d,defaultHeight:u,lastPageWidth:c,lastPageHeight:f,isLastPageDifferentFromFirstPage:P}=h({parentWidth:e,parentHeight:i,count:t,maxCount:l,aspectRatio:g}));else{const{width:a,height:h}=r(e,i,t,g.width,g.height);d=a,u=h,p=t}return{tilesInFirstPage:p,defaultWidth:d,defaultHeight:u,lastPageWidth:c,lastPageHeight:f,isLastPageDifferentFromFirstPage:P}}const l=(t,e,i,a=!0)=>{if(!t||!e||!i)return[];const r=[];for(const h of t){if(void 0===h.videoTrack&&h.audioTrack&&e[h.audioTrack]?r.push({peer:h}):h.videoTrack&&e[h.videoTrack]?r.push({track:e[h.videoTrack],peer:h}):a||r.push({peer:h}),h.auxiliaryTracks.length>0&&h.auxiliaryTracks.forEach((t=>{const i=e[t];"video"===(null==i?void 0:i.type)&&"regular"===(null==i?void 0:i.source)&&r.push({track:i,peer:h})})),i(h)&&h.auxiliaryTracks.length>0){const t=h.auxiliaryTracks.find((t=>{const i=e[t];return"video"===(null==i?void 0:i.type)&&"screen"===(null==i?void 0:i.source)}));t&&r.push({track:e[t],peer:h})}}return r}
|
|
1
|
+
const t=(t,e,i)=>t.reduce(((t,a,r)=>{const h=Math.floor(r/e);return h>0&&i||(t[h]||(t[h]=[]),t[h].push(a)),t}),[]),e=({elements:e,tilesInFirstPage:i,onlyOnePage:a,isLastPageDifferentFromFirstPage:r,defaultWidth:h,defaultHeight:n,lastPageWidth:s,lastPageHeight:o})=>{const l=t(e,i,a);return l.map(((t,e)=>t.map((t=>{const i=e===l.length-1,a=r&&i?s:h,g=r&&i?o:n;return Object.assign(Object.assign({},t),{height:g,width:a})}))))};function i(t){if(0===t.length)return null;const e={};let i=t[0],a=1;for(let r=0;r<t.length;r++){const h=t[r];null===e[h]?e[h]=1:e[h]++,e[h]>a&&(i=h,a=e[h])}return i}const a=t=>i(t.filter((t=>{var e,i;return(null===(e=t.track)||void 0===e?void 0:e.width)&&(null===(i=t.track)||void 0===i?void 0:i.height)})).map((t=>{var e,i;return((null===(e=t.track)||void 0===e?void 0:e.width)||1)/((null===(i=t.track)||void 0===i?void 0:i.height)||1)}))),r=(t,e,i,a,r)=>{if(t<0||e<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 h=a&&r&&a/r;if(void 0!==h&&isNaN(h))throw new Error("Aspect ratio must be a number");let n={area:0,cols:0,rows:0,width:0,height:0};if(void 0!==h)for(let a=i;a>0;a+=-1){const r=Math.ceil(i/a);let s,o;t/(a*h)<=e/r?(s=t/a,o=s/h):(o=e/r,s=o*h);const l=s*o;l>n.area&&(n={area:l,width:s,height:o,rows:r,cols:a})}return n},h=({parentWidth:t,parentHeight:e,count:i,maxCount:a,aspectRatio:r})=>{let h=0,n=0,s=0,o=0,l=!1,g=0,d=0;const u=Math.min(Math.ceil(Math.sqrt(i*(t/e)/(r.width/r.height))),a);let c=t/u,f=c/(r.width/r.height);f>e&&(f=e,c=f/(r.height/r.width));const P=Math.floor(e/f);if(n=f,h=c,g=Math.min(i,P*u),d=i%(P*u),l=d>0&&i>P*u,l){let i=t/Math.min(Math.ceil(Math.sqrt(d*(t/e)/(r.width/r.height))),a),h=i/(r.width/r.height);h>e&&(h=e,i=h/(r.height/r.width)),o=h,s=i}return{tilesInFirstPage:g,defaultWidth:h,defaultHeight:n,lastPageWidth:s,lastPageHeight:o,isLastPageDifferentFromFirstPage:l}},n=({parentWidth:t,parentHeight:e,count:i,maxCount:a,aspectRatio:h})=>{let n=0,s=0,o=0,l=0,g=!1,d=0,u=0;const{width:c,height:f}=r(t,e,Math.min(i,a),h.width,h.height);if(n=c,s=f,d=Math.min(i,a),u=i%a,g=u>0&&i>a,g){const{width:i,height:a}=r(t,e,u,h.width,h.height);o=i,l=a}return{tilesInFirstPage:d,defaultWidth:n,defaultHeight:s,lastPageWidth:o,lastPageHeight:l,isLastPageDifferentFromFirstPage:g}},s=({parentWidth:t,parentHeight:e,count:i,maxCount:a,aspectRatio:r})=>{let h=0,n=0,s=0,o=0,l=!1,g=0,d=0;const u=Math.min(Math.ceil(Math.sqrt(i*(r.width/r.height)/(t/e))),a),c=e/u,f=c*(r.width/r.height),P=Math.floor(t/f);if(h=f,n=c,g=Math.min(i,u*P),d=i%(u*P),l=d>0&&i>u*P,l){const i=e/Math.min(Math.ceil(Math.sqrt(d*(r.width/r.height)/(t/e))),a);o=i,s=i*(r.width/r.height)}return{tilesInFirstPage:g,defaultWidth:h,defaultHeight:n,lastPageWidth:s,lastPageHeight:o,isLastPageDifferentFromFirstPage:l}};function o({count:t,parentWidth:e,parentHeight:i,maxTileCount:a,maxRowCount:o,maxColCount:l,aspectRatio:g}){let d=0,u=0,c=0,f=0,P=!1,p=0;if(0===t)return{tilesInFirstPage:p,defaultWidth:d,defaultHeight:u,lastPageWidth:c,lastPageHeight:f,isLastPageDifferentFromFirstPage:P};if(a)({tilesInFirstPage:p,defaultWidth:d,defaultHeight:u,lastPageWidth:c,lastPageHeight:f,isLastPageDifferentFromFirstPage:P}=n({parentWidth:e,parentHeight:i,count:t,maxCount:a,aspectRatio:g}));else if(o)({tilesInFirstPage:p,defaultWidth:d,defaultHeight:u,lastPageWidth:c,lastPageHeight:f,isLastPageDifferentFromFirstPage:P}=s({parentWidth:e,parentHeight:i,count:t,maxCount:o,aspectRatio:g}));else if(l)({tilesInFirstPage:p,defaultWidth:d,defaultHeight:u,lastPageWidth:c,lastPageHeight:f,isLastPageDifferentFromFirstPage:P}=h({parentWidth:e,parentHeight:i,count:t,maxCount:l,aspectRatio:g}));else{const{width:a,height:h}=r(e,i,t,g.width,g.height);d=a,u=h,p=t}return{tilesInFirstPage:p,defaultWidth:d,defaultHeight:u,lastPageWidth:c,lastPageHeight:f,isLastPageDifferentFromFirstPage:P}}const l=(t,e,i,a=!0)=>{if(!t||!e||!i)return[];const r=[];for(const h of t){if(void 0===h.videoTrack&&h.audioTrack&&e[h.audioTrack]?r.push({peer:h}):h.videoTrack&&e[h.videoTrack]?r.push({track:e[h.videoTrack],peer:h}):a||r.push({peer:h}),h.auxiliaryTracks.length>0&&h.auxiliaryTracks.forEach((t=>{const i=e[t];"video"===(null==i?void 0:i.type)&&"regular"===(null==i?void 0:i.source)&&r.push({track:i,peer:h})})),i(h)&&h.auxiliaryTracks.length>0){const t=h.auxiliaryTracks.find((t=>{const i=e[t];return"video"===(null==i?void 0:i.type)&&"screen"===(null==i?void 0:i.source)}));t&&r.push({track:e[t],peer:h})}}return r};export{o as calculateLayoutSizes,t as chunk,e as chunkElements,a as getModeAspectRatio,h as getTileSizesWithColConstraint,n as getTileSizesWithPageConstraint,s as getTileSizesWithRowConstraint,l as getVideoTracksFromPeers,r as largestRect,i as mode};
|
|
2
2
|
//# sourceMappingURL=layout.js.map
|
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"
|
|
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":"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"}
|
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.6.5-alpha.
|
|
7
|
+
"version": "0.6.5-alpha.1",
|
|
8
8
|
"author": "100ms",
|
|
9
9
|
"license": "MIT",
|
|
10
10
|
"files": [
|
|
@@ -19,8 +19,7 @@
|
|
|
19
19
|
"lint": "eslint src/**",
|
|
20
20
|
"lint:fix": "eslint src/** --fix",
|
|
21
21
|
"format": "prettier -w src/**",
|
|
22
|
-
"docs": "typedoc && rm -f ./docs/README.md && mkdir ./docs/home && mv ./docs/modules.md ./docs/home/content.md && node ../../scripts/docs-store"
|
|
23
|
-
"test": "jest --maxWorkers=1"
|
|
22
|
+
"docs": "typedoc && rm -f ./docs/README.md && mkdir ./docs/home && mv ./docs/modules.md ./docs/home/content.md && node ../../scripts/docs-store"
|
|
24
23
|
},
|
|
25
24
|
"devDependencies": {
|
|
26
25
|
"@rollup/plugin-commonjs": "^21.0.3",
|
|
@@ -37,10 +36,9 @@
|
|
|
37
36
|
"react": ">=16.8 <19.0.0"
|
|
38
37
|
},
|
|
39
38
|
"dependencies": {
|
|
40
|
-
"@100mslive/hms-video-store": "0.8.5-alpha.
|
|
41
|
-
"react-intersection-observer": "^8.33.1",
|
|
39
|
+
"@100mslive/hms-video-store": "0.8.5-alpha.1",
|
|
42
40
|
"react-resize-detector": "^7.0.0",
|
|
43
41
|
"zustand": "^3.6.2"
|
|
44
42
|
},
|
|
45
|
-
"gitHead": "
|
|
43
|
+
"gitHead": "f42e714832bbd16ffc4944712a185cba27697fb4"
|
|
46
44
|
}
|
|
@@ -40,6 +40,7 @@ export interface usePreviewInput {
|
|
|
40
40
|
*/
|
|
41
41
|
captureNetworkQualityInPreview?: boolean;
|
|
42
42
|
asRole?: string;
|
|
43
|
+
autoManageVideo?: boolean;
|
|
43
44
|
}
|
|
44
45
|
|
|
45
46
|
export interface usePreviewResult {
|
|
@@ -77,6 +78,7 @@ export const usePreviewJoin = ({
|
|
|
77
78
|
initialSettings,
|
|
78
79
|
captureNetworkQualityInPreview,
|
|
79
80
|
asRole,
|
|
81
|
+
autoManageVideo,
|
|
80
82
|
}: usePreviewInput): usePreviewResult => {
|
|
81
83
|
const actions = useHMSActions();
|
|
82
84
|
const roomState = useHMSStore(selectRoomState);
|
|
@@ -93,8 +95,9 @@ export const usePreviewJoin = ({
|
|
|
93
95
|
initEndpoint: initEndpoint,
|
|
94
96
|
asRole,
|
|
95
97
|
captureNetworkQualityInPreview,
|
|
98
|
+
autoManageVideo,
|
|
96
99
|
};
|
|
97
|
-
}, [name, token, metadata, initEndpoint, initialSettings, captureNetworkQualityInPreview, asRole]);
|
|
100
|
+
}, [name, token, metadata, initEndpoint, initialSettings, captureNetworkQualityInPreview, asRole, autoManageVideo]);
|
|
98
101
|
|
|
99
102
|
const preview = useCallback(async () => {
|
|
100
103
|
if (!token) {
|
package/src/hooks/useVideo.ts
CHANGED
|
@@ -1,10 +1,6 @@
|
|
|
1
1
|
import React, { useCallback, useEffect, useRef } from 'react';
|
|
2
|
-
import { useInView } from 'react-intersection-observer';
|
|
3
|
-
import { useResizeDetector } from 'react-resize-detector';
|
|
4
2
|
import { HMSTrackID, selectVideoTrackByID } from '@100mslive/hms-video-store';
|
|
5
3
|
import { useHMSActions, useHMSStore } from '../primitives/HmsRoomProvider';
|
|
6
|
-
import { isBrowser } from '../utils/isBrowser';
|
|
7
|
-
import { getClosestLayer } from '../utils/layout';
|
|
8
4
|
import HMSLogger from '../utils/logger';
|
|
9
5
|
|
|
10
6
|
export interface useVideoInput {
|
|
@@ -17,12 +13,7 @@ export interface useVideoInput {
|
|
|
17
13
|
* when attach is false, even if tile is inView or enabled, it won't be rendered
|
|
18
14
|
*/
|
|
19
15
|
attach?: boolean;
|
|
20
|
-
/**
|
|
21
|
-
* Number between 0 and 1 indication when the element is considered inView
|
|
22
|
-
*/
|
|
23
|
-
threshold?: number;
|
|
24
16
|
}
|
|
25
|
-
|
|
26
17
|
export interface useVideoOutput {
|
|
27
18
|
videoRef: React.RefCallback<HTMLVideoElement>;
|
|
28
19
|
}
|
|
@@ -32,67 +23,28 @@ export interface useVideoOutput {
|
|
|
32
23
|
* The hook will take care of attaching and detaching video, and will automatically detach when the video
|
|
33
24
|
* goes out of view to save on bandwidth.
|
|
34
25
|
*/
|
|
35
|
-
export const useVideo = ({ trackId, attach
|
|
26
|
+
export const useVideo = ({ trackId, attach }: useVideoInput): useVideoOutput => {
|
|
36
27
|
const actions = useHMSActions();
|
|
37
28
|
const videoRef = useRef<HTMLVideoElement | null>(null);
|
|
38
29
|
const track = useHMSStore(selectVideoTrackByID(trackId));
|
|
39
30
|
|
|
40
|
-
const
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
// eslint-disable-next-line complexity
|
|
44
|
-
const setLayerByResolution = useCallback(async () => {
|
|
45
|
-
if (
|
|
46
|
-
width > 0 &&
|
|
47
|
-
height > 0 &&
|
|
48
|
-
inView &&
|
|
49
|
-
track?.layerDefinitions?.length &&
|
|
50
|
-
resizeRef.current &&
|
|
51
|
-
track?.enabled &&
|
|
52
|
-
!track?.degraded
|
|
53
|
-
) {
|
|
54
|
-
const closestLayer = getClosestLayer({ layerDefinitions: track.layerDefinitions!, width, height });
|
|
55
|
-
await actions.setPreferredLayer(track?.id, closestLayer!);
|
|
31
|
+
const setRefs = useCallback((node: HTMLVideoElement) => {
|
|
32
|
+
if (node) {
|
|
33
|
+
videoRef.current = node;
|
|
56
34
|
}
|
|
57
|
-
|
|
58
|
-
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
59
|
-
}, [width, height, track?.id, actions, track?.enabled, track?.degraded, resizeRef, inView]);
|
|
60
|
-
|
|
61
|
-
const setRefs = useCallback(
|
|
62
|
-
(node: HTMLVideoElement) => {
|
|
63
|
-
if (node) {
|
|
64
|
-
videoRef.current = node;
|
|
65
|
-
inViewRef(node);
|
|
66
|
-
if (track?.layerDefinitions?.length) {
|
|
67
|
-
resizeRef.current = node;
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
},
|
|
71
|
-
[inViewRef, track?.layerDefinitions?.length, resizeRef],
|
|
72
|
-
);
|
|
73
|
-
|
|
74
|
-
useEffect(() => {
|
|
75
|
-
setLayerByResolution();
|
|
76
|
-
}, [setLayerByResolution]);
|
|
35
|
+
}, []);
|
|
77
36
|
|
|
78
37
|
useEffect(() => {
|
|
79
|
-
// eslint-disable-next-line complexity
|
|
80
38
|
(async () => {
|
|
81
|
-
if (videoRef.current
|
|
82
|
-
|
|
83
|
-
if (isBrowser) {
|
|
84
|
-
visible = window.getComputedStyle(videoRef.current).visibility === 'visible';
|
|
85
|
-
}
|
|
86
|
-
if (inView && track.enabled && visible && attach !== false) {
|
|
87
|
-
// attach when in view and enabled
|
|
39
|
+
if (track?.id && videoRef.current) {
|
|
40
|
+
if (attach !== false) {
|
|
88
41
|
await actions.attachVideo(track.id, videoRef.current);
|
|
89
42
|
} else {
|
|
90
|
-
// detach when not in view
|
|
91
43
|
await actions.detachVideo(track.id, videoRef.current);
|
|
92
44
|
}
|
|
93
45
|
}
|
|
94
46
|
})();
|
|
95
|
-
}, [
|
|
47
|
+
}, [track?.id, attach, actions]);
|
|
96
48
|
|
|
97
49
|
// detach on unmount
|
|
98
50
|
useEffect(() => {
|
package/src/utils/layout.ts
CHANGED
|
@@ -1,15 +1,7 @@
|
|
|
1
1
|
/* eslint-disable complexity */
|
|
2
2
|
/* eslint-disable no-plusplus */
|
|
3
3
|
/* eslint-disable @typescript-eslint/no-shadow */
|
|
4
|
-
import {
|
|
5
|
-
HMSPeer,
|
|
6
|
-
HMSPreferredSimulcastLayer,
|
|
7
|
-
HMSScreenVideoTrack,
|
|
8
|
-
HMSSimulcastLayerDefinition,
|
|
9
|
-
HMSTrack,
|
|
10
|
-
HMSTrackID,
|
|
11
|
-
HMSVideoTrack,
|
|
12
|
-
} from '@100mslive/hms-video-store';
|
|
4
|
+
import { HMSPeer, HMSScreenVideoTrack, HMSTrack, HMSTrackID, HMSVideoTrack } from '@100mslive/hms-video-store';
|
|
13
5
|
|
|
14
6
|
export const chunk = <T>(elements: T[], chunkSize: number, onlyOnePage: boolean) =>
|
|
15
7
|
elements.reduce((resultArray: T[][], tile: T, index: number) => {
|
|
@@ -472,24 +464,3 @@ export const getVideoTracksFromPeers = (
|
|
|
472
464
|
}
|
|
473
465
|
return peerTiles;
|
|
474
466
|
};
|
|
475
|
-
|
|
476
|
-
export const getClosestLayer = ({
|
|
477
|
-
layerDefinitions,
|
|
478
|
-
width,
|
|
479
|
-
height,
|
|
480
|
-
}: {
|
|
481
|
-
layerDefinitions: HMSSimulcastLayerDefinition[];
|
|
482
|
-
width: number;
|
|
483
|
-
height: number;
|
|
484
|
-
}): HMSPreferredSimulcastLayer => {
|
|
485
|
-
let diff = Number.MAX_VALUE;
|
|
486
|
-
let closestLayer: HMSPreferredSimulcastLayer | undefined = undefined;
|
|
487
|
-
for (const { resolution, layer } of layerDefinitions) {
|
|
488
|
-
const currDiff = Math.abs(width - (resolution.width || 0)) + Math.abs(height - (resolution.height || 0));
|
|
489
|
-
if (currDiff < diff) {
|
|
490
|
-
diff = currDiff;
|
|
491
|
-
closestLayer = layer;
|
|
492
|
-
}
|
|
493
|
-
}
|
|
494
|
-
return closestLayer!;
|
|
495
|
-
};
|
package/src/utils/layout.test.ts
DELETED
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
import { HMSSimulcastLayer, HMSSimulcastLayerDefinition } from '@100mslive/hms-video-store';
|
|
2
|
-
import { getClosestLayer } from './layout';
|
|
3
|
-
|
|
4
|
-
describe('test closest layer', () => {
|
|
5
|
-
const layerDefinitions: HMSSimulcastLayerDefinition[] = [
|
|
6
|
-
{
|
|
7
|
-
layer: HMSSimulcastLayer.HIGH,
|
|
8
|
-
resolution: {
|
|
9
|
-
width: 960,
|
|
10
|
-
height: 720,
|
|
11
|
-
},
|
|
12
|
-
},
|
|
13
|
-
{
|
|
14
|
-
layer: HMSSimulcastLayer.MEDIUM,
|
|
15
|
-
resolution: {
|
|
16
|
-
width: 480,
|
|
17
|
-
height: 360,
|
|
18
|
-
},
|
|
19
|
-
},
|
|
20
|
-
{
|
|
21
|
-
layer: HMSSimulcastLayer.LOW,
|
|
22
|
-
resolution: {
|
|
23
|
-
width: 240,
|
|
24
|
-
height: 180,
|
|
25
|
-
},
|
|
26
|
-
},
|
|
27
|
-
];
|
|
28
|
-
|
|
29
|
-
test('closest layer should be high', () => {
|
|
30
|
-
const width = 730;
|
|
31
|
-
const height = 540;
|
|
32
|
-
expect(getClosestLayer({ layerDefinitions, width, height })).toBe(HMSSimulcastLayer.HIGH);
|
|
33
|
-
});
|
|
34
|
-
|
|
35
|
-
test('closest layer should be medium', () => {
|
|
36
|
-
const width = 520;
|
|
37
|
-
const height = 390;
|
|
38
|
-
expect(getClosestLayer({ layerDefinitions, width, height })).toBe(HMSSimulcastLayer.MEDIUM);
|
|
39
|
-
});
|
|
40
|
-
|
|
41
|
-
test('closest layer should be low', () => {
|
|
42
|
-
const width = 284;
|
|
43
|
-
const height = 207;
|
|
44
|
-
expect(getClosestLayer({ layerDefinitions, width, height })).toBe(HMSSimulcastLayer.LOW);
|
|
45
|
-
});
|
|
46
|
-
});
|