@100mslive/react-native-hms 1.10.4 → 1.10.6-beta.0

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.
Files changed (93) hide show
  1. package/android/build.gradle +9 -2
  2. package/android/local.properties +1 -8
  3. package/android/src/main/java/com/reactnativehmssdk/HMSDecoder.kt +8 -0
  4. package/android/src/main/java/com/reactnativehmssdk/HMSManager.kt +52 -0
  5. package/android/src/main/java/com/reactnativehmssdk/HMSRNSDK.kt +6 -4
  6. package/android/src/main/java/com/reactnativehmssdk/Interactivity/HMSInteractivityDecoder.kt +50 -25
  7. package/android/src/main/java/com/reactnativehmssdk/Interactivity/HMSRNInteractivityCenter.kt +69 -1
  8. package/ios/HMSConstants.swift +1 -0
  9. package/ios/HMSDecoder.swift +9 -1
  10. package/ios/HMSHLSPlayerManager.swift +4 -1
  11. package/ios/HMSHelper.swift +28 -2
  12. package/ios/HMSInteractivityDecoder.swift +41 -0
  13. package/ios/HMSManager.m +34 -0
  14. package/ios/HMSManager.swift +66 -1
  15. package/ios/HMSRNInteractivityCenter.swift +41 -0
  16. package/ios/HMSRNSDK.swift +201 -3
  17. package/lib/commonjs/classes/HMSInteractivityCenter.js +58 -4
  18. package/lib/commonjs/classes/HMSInteractivityCenter.js.map +1 -1
  19. package/lib/commonjs/classes/HMSInteractivityEncoder.js +6 -0
  20. package/lib/commonjs/classes/HMSInteractivityEncoder.js.map +1 -1
  21. package/lib/commonjs/classes/HMSPermissions.js +2 -0
  22. package/lib/commonjs/classes/HMSPermissions.js.map +1 -1
  23. package/lib/commonjs/classes/HMSSessionStore.js +1 -1
  24. package/lib/commonjs/classes/HMSSessionStore.js.map +1 -1
  25. package/lib/commonjs/classes/HMSVideoTrackSettings.js +3 -2
  26. package/lib/commonjs/classes/HMSVideoTrackSettings.js.map +1 -1
  27. package/lib/commonjs/classes/whiteboard/HMSWhiteboard.js +6 -0
  28. package/lib/commonjs/classes/whiteboard/HMSWhiteboard.js.map +1 -0
  29. package/lib/commonjs/classes/whiteboard/HMSWhiteboardListenerActions.js +11 -0
  30. package/lib/commonjs/classes/whiteboard/HMSWhiteboardListenerActions.js.map +1 -0
  31. package/lib/commonjs/classes/whiteboard/HMSWhiteboardState.js +12 -0
  32. package/lib/commonjs/classes/whiteboard/HMSWhiteboardState.js.map +1 -0
  33. package/lib/commonjs/classes/whiteboard/HMSWhiteboardUpdateType.js +12 -0
  34. package/lib/commonjs/classes/whiteboard/HMSWhiteboardUpdateType.js.map +1 -0
  35. package/lib/commonjs/classes/whiteboard/index.js +39 -0
  36. package/lib/commonjs/classes/whiteboard/index.js.map +1 -0
  37. package/lib/commonjs/classes/whiteboard/registerCallbacks.js +26 -0
  38. package/lib/commonjs/classes/whiteboard/registerCallbacks.js.map +1 -0
  39. package/lib/commonjs/index.js +12 -0
  40. package/lib/commonjs/index.js.map +1 -1
  41. package/lib/module/classes/HMSInteractivityCenter.js +58 -4
  42. package/lib/module/classes/HMSInteractivityCenter.js.map +1 -1
  43. package/lib/module/classes/HMSInteractivityEncoder.js +6 -0
  44. package/lib/module/classes/HMSInteractivityEncoder.js.map +1 -1
  45. package/lib/module/classes/HMSPermissions.js +2 -0
  46. package/lib/module/classes/HMSPermissions.js.map +1 -1
  47. package/lib/module/classes/HMSSessionStore.js +1 -1
  48. package/lib/module/classes/HMSSessionStore.js.map +1 -1
  49. package/lib/module/classes/HMSVideoTrackSettings.js +3 -2
  50. package/lib/module/classes/HMSVideoTrackSettings.js.map +1 -1
  51. package/lib/module/classes/whiteboard/HMSWhiteboard.js +2 -0
  52. package/lib/module/classes/whiteboard/HMSWhiteboard.js.map +1 -0
  53. package/lib/module/classes/whiteboard/HMSWhiteboardListenerActions.js +5 -0
  54. package/lib/module/classes/whiteboard/HMSWhiteboardListenerActions.js.map +1 -0
  55. package/lib/module/classes/whiteboard/HMSWhiteboardState.js +6 -0
  56. package/lib/module/classes/whiteboard/HMSWhiteboardState.js.map +1 -0
  57. package/lib/module/classes/whiteboard/HMSWhiteboardUpdateType.js +6 -0
  58. package/lib/module/classes/whiteboard/HMSWhiteboardUpdateType.js.map +1 -0
  59. package/lib/module/classes/whiteboard/index.js +4 -0
  60. package/lib/module/classes/whiteboard/index.js.map +1 -0
  61. package/lib/module/classes/whiteboard/registerCallbacks.js +18 -0
  62. package/lib/module/classes/whiteboard/registerCallbacks.js.map +1 -0
  63. package/lib/module/index.js +1 -0
  64. package/lib/module/index.js.map +1 -1
  65. package/lib/typescript/classes/HMSInteractivityCenter.d.ts +19 -2
  66. package/lib/typescript/classes/HMSInteractivityEncoder.d.ts +2 -0
  67. package/lib/typescript/classes/HMSPermissions.d.ts +7 -0
  68. package/lib/typescript/classes/HMSVideoTrackSettings.d.ts +11 -0
  69. package/lib/typescript/classes/whiteboard/HMSWhiteboard.d.ts +10 -0
  70. package/lib/typescript/classes/whiteboard/HMSWhiteboardListenerActions.d.ts +3 -0
  71. package/lib/typescript/classes/whiteboard/HMSWhiteboardState.d.ts +4 -0
  72. package/lib/typescript/classes/whiteboard/HMSWhiteboardUpdateType.d.ts +4 -0
  73. package/lib/typescript/classes/whiteboard/index.d.ts +3 -0
  74. package/lib/typescript/classes/whiteboard/registerCallbacks.d.ts +8 -0
  75. package/lib/typescript/index.d.ts +1 -0
  76. package/package.json +1 -1
  77. package/sdk-versions.json +2 -2
  78. package/src/classes/HMSInteractivityCenter.ts +89 -10
  79. package/src/classes/HMSInteractivityEncoder.ts +8 -0
  80. package/src/classes/HMSPermissions.ts +9 -0
  81. package/src/classes/HMSSessionStore.ts +0 -3
  82. package/src/classes/HMSVideoTrackSettings.ts +15 -0
  83. package/src/classes/whiteboard/HMSWhiteboard.tsx +16 -0
  84. package/src/classes/whiteboard/HMSWhiteboardListenerActions.ts +3 -0
  85. package/src/classes/whiteboard/HMSWhiteboardState.tsx +4 -0
  86. package/src/classes/whiteboard/HMSWhiteboardUpdateType.tsx +4 -0
  87. package/src/classes/whiteboard/index.ts +3 -0
  88. package/src/classes/whiteboard/registerCallbacks.ts +34 -0
  89. package/src/index.ts +1 -0
  90. package/ios/Hmssdk.xcodeproj/project.xcworkspace/contents.xcworkspacedata +0 -7
  91. package/ios/Hmssdk.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +0 -8
  92. package/ios/Hmssdk.xcodeproj/project.xcworkspace/xcuserdata/jatinnagar.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
  93. package/ios/Hmssdk.xcodeproj/xcuserdata/jatinnagar.xcuserdatad/xcschemes/xcschememanagement.plist +0 -14
@@ -33,6 +33,8 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
33
33
  private var peerListIterators = [String: HMSPeerListIterator]()
34
34
  private var roomMutedLocally = false
35
35
  private var noiseCancellationPlugin: HMSNoiseCancellationPlugin?
36
+ private var videoFilterPlugin: HMSVideoFilterPlugin?
37
+ private var virtualBackgroundPlugin: HMSVideoPlugin?
36
38
 
37
39
  // MARK: - Setup
38
40
  init(data: NSDictionary?, delegate manager: HMSManager?, uid id: String) {
@@ -41,19 +43,42 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
41
43
  self.id = id
42
44
  DispatchQueue.main.async { [weak self] in
43
45
  var noiseCancellationPlugin: HMSNoiseCancellationPlugin?
46
+ var videoFilterPlugin: HMSVideoFilterPlugin?
47
+ var virtualBackgroundPlugin: HMSVideoPlugin?
44
48
 
45
49
  self?.hms = HMSSDK.build { sdk in
46
50
  sdk.appGroup = data?.value(forKey: "appGroup") as? String
47
51
  sdk.frameworkInfo = HMSHelper.getFrameworkInfo(data?.value(forKey: "frameworkInfo") as? NSDictionary)
48
- let trackSettings = data?.value(forKey: "trackSettings") as? NSDictionary
49
- let videoSettings = HMSHelper.getLocalVideoSettings(trackSettings?.value(forKey: "video") as? NSDictionary)
50
- let audioSettingsDict = trackSettings?.value(forKey: "audio") as? NSDictionary
52
+ let trackSettingsDict = data?.value(forKey: "trackSettings") as? NSDictionary
53
+
54
+ // Video track settings
55
+ let videoSettingsDict = trackSettingsDict?.value(forKey: "video") as? NSDictionary
56
+ let videoPluginDict = videoSettingsDict?.value(forKey: "videoPlugin") as? NSDictionary
57
+ let videoPlugin = HMSHelper.getHMSVideoPlugin(videoPluginDict)
58
+
59
+ if let asVideoFilterPlugin = videoPlugin as? HMSVideoFilterPlugin {
60
+ videoFilterPlugin = asVideoFilterPlugin
61
+ } else if #available(iOS 15.0, *) {
62
+ let asVirtualBGPlugin = videoPlugin as? HMSVirtualBackgroundPlugin
63
+ virtualBackgroundPlugin = asVirtualBGPlugin
64
+ }
65
+
66
+ let videoSettings = HMSHelper.getLocalVideoSettings(videoSettingsDict, videoPlugin)
67
+
68
+ // Audio track settings
69
+ let audioSettingsDict = trackSettingsDict?.value(forKey: "audio") as? NSDictionary
70
+
51
71
  let value = audioSettingsDict?.value(forKey: "noiseCancellationPlugin") as? NSDictionary
52
72
  noiseCancellationPlugin = HMSHelper.getHMSNoiseCancellationPlugin(value)
73
+
53
74
  let audioSettings = HMSHelper.getLocalAudioSettings(audioSettingsDict, noiseCancellationPlugin, sdk, self?.delegate, id)
75
+
76
+ // Track Settings
54
77
  sdk.trackSettings = HMSTrackSettings(videoSettings: videoSettings, audioSettings: audioSettings)
55
78
  }
56
79
  self?.noiseCancellationPlugin = noiseCancellationPlugin
80
+ self?.virtualBackgroundPlugin = virtualBackgroundPlugin
81
+ self?.videoFilterPlugin = videoFilterPlugin
57
82
  if let hms = self?.hms {
58
83
  self?.interactivity = HMSRNInteractivityCenter(
59
84
  hmssdk: hms,
@@ -2153,6 +2178,179 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
2153
2178
  resolve?(isAvailable)
2154
2179
  }
2155
2180
 
2181
+ // MARK: - Video Plugins Functions
2182
+
2183
+ func enableVideoPlugin(_ data: NSDictionary,
2184
+ _ resolve: RCTPromiseResolveBlock?,
2185
+ _ reject: RCTPromiseRejectBlock?) {
2186
+ guard let videoPluginType = data.value(forKey: "type") as? String else {
2187
+ let errorMessage = "\(#function) HMSVideoPlugin type not passed!"
2188
+ reject?("6004", errorMessage, nil)
2189
+ return
2190
+ }
2191
+ switch videoPluginType {
2192
+ case "HMSVirtualBackgroundPlugin":
2193
+ if #available(iOS 15.0, *) {
2194
+ guard let virtualBackgroundPlugin = self.virtualBackgroundPlugin as? HMSVirtualBackgroundPlugin else {
2195
+ let errorMessage = "\(#function) Unable to cast `var virtualBackgroundPlugin` to type `HMSVirtualBackgroundPlugin`, It is \(String(describing: virtualBackgroundPlugin))"
2196
+ reject?("6004", errorMessage, nil)
2197
+ return
2198
+ }
2199
+ virtualBackgroundPlugin.activate()
2200
+ resolve?(true)
2201
+ } else {
2202
+ let errorMessage = "\(#function) HMSVirtualBackgroundPlugin not available below iOS 15.0"
2203
+ reject?("6004", errorMessage, nil)
2204
+ return
2205
+ }
2206
+ case "HMSVideoFilterPlugin":
2207
+ guard let videoFilterPlugin = self.videoFilterPlugin else {
2208
+ let errorMessage = "\(#function) `videoFilterPlugin` is `nil`, Make sure you are passing `HMSVideoFilterPlugin` instance to `videoTrackSettings` in `HMSSDK.build`"
2209
+ reject?("6004", errorMessage, nil)
2210
+ return
2211
+ }
2212
+ videoFilterPlugin.activate()
2213
+ resolve?(true)
2214
+ default:
2215
+ let errorMessage = "\(#function) Unknown HMSVideoPlugin type passed!"
2216
+ reject?("6004", errorMessage, nil)
2217
+ return
2218
+ }
2219
+ }
2220
+
2221
+ func disableVideoPlugin(_ data: NSDictionary,
2222
+ _ resolve: RCTPromiseResolveBlock?,
2223
+ _ reject: RCTPromiseRejectBlock?) {
2224
+ guard let videoPluginType = data.value(forKey: "type") as? String else {
2225
+ let errorMessage = "\(#function) HMSVideoPlugin `type` not passed!"
2226
+ reject?("6004", errorMessage, nil)
2227
+ return
2228
+ }
2229
+ switch videoPluginType {
2230
+ case "HMSVirtualBackgroundPlugin":
2231
+ if #available(iOS 15.0, *) {
2232
+ guard let virtualBackgroundPlugin = self.virtualBackgroundPlugin as? HMSVirtualBackgroundPlugin else {
2233
+ let errorMessage = "\(#function) Unable to cast `var virtualBackgroundPlugin` to type `HMSVirtualBackgroundPlugin`, It is \(String(describing: virtualBackgroundPlugin))"
2234
+ reject?("6004", errorMessage, nil)
2235
+ return
2236
+ }
2237
+ virtualBackgroundPlugin.deactivate()
2238
+ resolve?(true)
2239
+ } else {
2240
+ let errorMessage = "\(#function) HMSVirtualBackgroundPlugin not available below iOS 15.0"
2241
+ reject?("6004", errorMessage, nil)
2242
+ return
2243
+ }
2244
+ case "HMSVideoFilterPlugin":
2245
+ guard let videoFilterPlugin = self.videoFilterPlugin else {
2246
+ let errorMessage = "\(#function) `videoFilterPlugin` is `nil`, Make sure you are passing `HMSVideoFilterPlugin` instance to `videoTrackSettings` in `HMSSDK.build`"
2247
+ reject?("6004", errorMessage, nil)
2248
+ return
2249
+ }
2250
+ videoFilterPlugin.deactivate()
2251
+ resolve?(true)
2252
+ default:
2253
+ let errorMessage = "\(#function) Unknown HMSVideoPlugin `type` passed!"
2254
+ reject?("6004", errorMessage, nil)
2255
+ return
2256
+ }
2257
+ }
2258
+
2259
+ func changeVirtualBackground(_ data: NSDictionary,
2260
+ _ resolve: RCTPromiseResolveBlock?,
2261
+ _ reject: RCTPromiseRejectBlock?) {
2262
+ if #available(iOS 15.0, *) {
2263
+ guard let backgroundDict = data.value(forKey: "background") as? NSDictionary
2264
+ else {
2265
+ let errorMessage = "\(#function) No background object passed!"
2266
+ reject?("6004", errorMessage, nil)
2267
+ return
2268
+ }
2269
+ guard let backgroundType = backgroundDict.value(forKey: "type") as? String
2270
+ else {
2271
+ let errorMessage = "\(#function) No background `type` passed!"
2272
+ reject?("6004", errorMessage, nil)
2273
+ return
2274
+ }
2275
+ guard let virtualBackgroundPlugin = self.virtualBackgroundPlugin as? HMSVirtualBackgroundPlugin else {
2276
+ let errorMessage = "\(#function) Unable to cast `var virtualBackgroundPlugin` to type `HMSVirtualBackgroundPlugin`, It is \(String(describing: virtualBackgroundPlugin))"
2277
+ reject?("6004", errorMessage, nil)
2278
+ return
2279
+ }
2280
+ switch backgroundType {
2281
+ case "blur":
2282
+ virtualBackgroundPlugin.backgroundImage = nil
2283
+ resolve?(true)
2284
+ case "image":
2285
+ guard let imageSource = backgroundDict.value(forKey: "source") as? NSDictionary else {
2286
+ let errorMessage = "\(#function) No background `source` passed for image!"
2287
+ reject?("6004", errorMessage, nil)
2288
+ return
2289
+ }
2290
+ DispatchQueue.main.async {
2291
+ guard let image = RCTConvert.uiImage(imageSource) else {
2292
+ let errorMessage = "\(#function) Unable to create `UIImage` from given background `source` object!"
2293
+ reject?("6004", errorMessage, nil)
2294
+ return
2295
+ }
2296
+ virtualBackgroundPlugin.backgroundImage = image
2297
+ resolve?(true)
2298
+ }
2299
+ default:
2300
+ let errorMessage = "\(#function) Unknown background `type` passed!"
2301
+ reject?("6004", errorMessage, nil)
2302
+ return
2303
+ }
2304
+ } else {
2305
+ let errorMessage = "\(#function) HMSVirtualBackgroundPlugin not available below iOS 15.0"
2306
+ reject?("6004", errorMessage, nil)
2307
+ return
2308
+ }
2309
+ }
2310
+
2311
+ func setVideoFilterParameter(_ data: NSDictionary,
2312
+ _ resolve: RCTPromiseResolveBlock?,
2313
+ _ reject: RCTPromiseRejectBlock?) {
2314
+ guard let videoFilterPlugin = self.videoFilterPlugin else {
2315
+ let errorMessage = "\(#function) `videoFilterPlugin` is `nil`, Make sure you are passing `HMSVideoFilterPlugin` instance to `videoTrackSettings` in `HMSSDK.build`"
2316
+ reject?("6004", errorMessage, nil)
2317
+ return
2318
+ }
2319
+ guard let filterType = data.value(forKey: "filter") as? String else {
2320
+ let errorMessage = "\(#function) `filter` property not passed!"
2321
+ reject?("6004", errorMessage, nil)
2322
+ return
2323
+ }
2324
+ guard let filterValue = data.value(forKey: "value") as? NSNumber else {
2325
+ let errorMessage = "\(#function) `value` property not passed!"
2326
+ reject?("6004", errorMessage, nil)
2327
+ return
2328
+ }
2329
+ switch filterType {
2330
+ case "brightness":
2331
+ videoFilterPlugin.brightness = CGFloat(truncating: filterValue)
2332
+ case "contrast":
2333
+ videoFilterPlugin.contrast = CGFloat(truncating: filterValue)
2334
+ case "exposure":
2335
+ videoFilterPlugin.exposure = CGFloat(truncating: filterValue)
2336
+ case "hue":
2337
+ videoFilterPlugin.hue = CGFloat(truncating: filterValue)
2338
+ case "redness":
2339
+ videoFilterPlugin.redness = CGFloat(truncating: filterValue)
2340
+ case "saturation":
2341
+ videoFilterPlugin.saturation = CGFloat(truncating: filterValue)
2342
+ case "sharpness":
2343
+ videoFilterPlugin.sharpness = CGFloat(truncating: filterValue)
2344
+ case "smoothness":
2345
+ videoFilterPlugin.smoothness = CGFloat(truncating: filterValue)
2346
+ default:
2347
+ let errorMessage = "\(#function) Unknown `filter` type passed!"
2348
+ reject?("6004", errorMessage, nil)
2349
+ return
2350
+ }
2351
+ resolve?(true)
2352
+ }
2353
+
2156
2354
  // MARK: - Helper Functions
2157
2355
 
2158
2356
  // Handle resetting states and data cleanup
@@ -12,6 +12,8 @@ var _HMSPollsListenerActions = require("./HMSPollsListenerActions");
12
12
  var _HMSNativeEventListener = _interopRequireDefault(require("./HMSNativeEventListener"));
13
13
  var _HMSInteractivityEncoder = require("./HMSInteractivityEncoder");
14
14
  var _HMSHelper = require("./HMSHelper");
15
+ var _HMSWhiteboardListenerActions = require("./whiteboard/HMSWhiteboardListenerActions");
16
+ var _registerCallbacks = require("./whiteboard/registerCallbacks");
15
17
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
16
18
  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
17
19
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
@@ -31,8 +33,18 @@ function unregisterPollUpdateListener() {
31
33
  pollUpdateSubscription = null;
32
34
  }
33
35
  class HMSInteractivityCenter {
36
+ onUpdateListenerRemoved(eventType) {
37
+ if (eventType === _HMSPollsListenerActions.HMSPollsListenerActions.ON_POLL_UPDATE) {
38
+ unregisterPollUpdateListener();
39
+ } else if (eventType === _HMSWhiteboardListenerActions.HMSWhiteboardListenerActions.ON_WHITEBOARD_UPDATE) {
40
+ (0, _registerCallbacks.unregisterWhiteboardUpdateListener)();
41
+ } else {
42
+ console.warn('Unknown update listener removed: ', eventType);
43
+ }
44
+ }
34
45
  constructor() {
35
46
  _defineProperty(this, "_eventEmitter", new _utils.EventEmitter());
47
+ //#region Poll Methods & Listeners
36
48
  _defineProperty(this, "_pollUpdateListener", (...args) => {
37
49
  const {
38
50
  updatedPoll,
@@ -44,12 +56,21 @@ class HMSInteractivityCenter {
44
56
  });
45
57
  this._eventEmitter.emit(_HMSPollsListenerActions.HMSPollsListenerActions.ON_POLL_UPDATE, _HMSInteractivityEncoder.HMSInteractivityEncoder.transformPoll(updatedPoll), update);
46
58
  });
47
- _defineProperty(this, "_onAllPollUpdateListenerRemoved", () => {
48
- unregisterPollUpdateListener();
59
+ //#endregion Poll Methods & Listeners
60
+ //#region Whiteboard Methods & Listeners
61
+ _defineProperty(this, "_whiteboardUpdateListener", (...args) => {
62
+ const {
63
+ hmsWhiteboard,
64
+ updateType
65
+ } = args[0];
66
+ _HMSLogger.logger === null || _HMSLogger.logger === void 0 || _HMSLogger.logger.verbose('#Listener ON_WHITEBOARD_UPDATE', {
67
+ updateType,
68
+ hmsWhiteboard
69
+ });
70
+ this._eventEmitter.emit(_HMSWhiteboardListenerActions.HMSWhiteboardListenerActions.ON_WHITEBOARD_UPDATE, _HMSInteractivityEncoder.HMSInteractivityEncoder.transformHMSWhiteboard(hmsWhiteboard), updateType);
49
71
  });
50
- this._eventEmitter.registerOnAllListenersRemoved(this._onAllPollUpdateListenerRemoved);
72
+ this._eventEmitter.registerOnAllListenersRemoved(this.onUpdateListenerRemoved);
51
73
  }
52
-
53
74
  /**
54
75
  * Adds a listener for poll updates
55
76
  * @param listener - Callback to be called when a poll is updated
@@ -115,6 +136,39 @@ class HMSInteractivityCenter {
115
136
  const response = await _HMSManagerModule.default.fetchLeaderboard(data);
116
137
  return _HMSInteractivityEncoder.HMSInteractivityEncoder.transformPollLeaderboardResponse(response);
117
138
  }
139
+ /**
140
+ * Adds a listener for Whiteboard updates
141
+ * @param listener - Callback to be called when whiteboard is updated
142
+ * @returns HMSEventSubscription
143
+ */
144
+ addWhiteboardUpdateListener(listener) {
145
+ (0, _registerCallbacks.registerWhiteboardUpdateListener)(this._whiteboardUpdateListener);
146
+ return this._eventEmitter.addListener(_HMSWhiteboardListenerActions.HMSWhiteboardListenerActions.ON_WHITEBOARD_UPDATE, listener, null);
147
+ }
148
+
149
+ /**
150
+ * Starts Whiteboard
151
+ */
152
+ async startWhiteboard(title) {
153
+ const data = {
154
+ id: _HMSConstants.HMSConstants.DEFAULT_SDK_ID,
155
+ title
156
+ };
157
+ _HMSLogger.logger === null || _HMSLogger.logger === void 0 || _HMSLogger.logger.verbose('#Function startWhiteboard', data);
158
+ return _HMSManagerModule.default.startWhiteboard(data);
159
+ }
160
+
161
+ /**
162
+ * Stops Whiteboard
163
+ */
164
+ async stopWhiteboard() {
165
+ const data = {
166
+ id: _HMSConstants.HMSConstants.DEFAULT_SDK_ID
167
+ };
168
+ _HMSLogger.logger === null || _HMSLogger.logger === void 0 || _HMSLogger.logger.verbose('#Function stopWhiteboard', data);
169
+ return _HMSManagerModule.default.stopWhiteboard(data);
170
+ }
171
+ //#endregion Whiteboard Methods & Listeners
118
172
  }
119
173
  exports.HMSInteractivityCenter = HMSInteractivityCenter;
120
174
  //# sourceMappingURL=HMSInteractivityCenter.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_utils","require","_HMSManagerModule","_interopRequireDefault","_HMSConstants","_HMSLogger","_HMSPollsListenerActions","_HMSNativeEventListener","_HMSInteractivityEncoder","_HMSHelper","obj","__esModule","default","_defineProperty","key","value","_toPropertyKey","Object","defineProperty","enumerable","configurable","writable","t","i","_toPrimitive","r","e","Symbol","toPrimitive","call","TypeError","String","Number","pollUpdateSubscription","registerPollUpdateListener","listener","HMSNativeEventListener","addListener","HMSConstants","DEFAULT_SDK_ID","HMSPollsListenerActions","ON_POLL_UPDATE","unregisterPollUpdateListener","remove","HMSInteractivityCenter","constructor","EventEmitter","args","updatedPoll","update","logger","verbose","_eventEmitter","emit","HMSInteractivityEncoder","transformPoll","registerOnAllListenersRemoved","_onAllPollUpdateListenerRemoved","addPollUpdateListener","_pollUpdateListener","startPoll","pollParams","transformedPollParams","rolesThatCanVote","HMSHelper","getRoleNames","undefined","rolesThatCanViewResponses","data","id","JSON","stringify","HMSManager","quickStartPoll","add","pollQuestionResponseParams","addResponseOnPollQuestion","stop","pollId","stopPoll","fetchLeaderboard","count","startIndex","includeCurrentPeer","response","transformPollLeaderboardResponse","exports"],"sources":["HMSInteractivityCenter.ts"],"sourcesContent":["import { EventEmitter } from '../utils';\nimport HMSManager from '../modules/HMSManagerModule';\nimport { HMSConstants } from './HMSConstants';\nimport { logger } from './HMSLogger';\nimport type { HMSPoll } from './polls/HMSPoll';\nimport type { HMSPollCreateParams } from './polls/HMSPollCreateParams';\nimport type { HMSPollUpdateType } from './polls/HMSPollUpdateType';\nimport { HMSPollsListenerActions } from './HMSPollsListenerActions';\nimport HMSNativeEventListener from './HMSNativeEventListener';\nimport type { HMSEventSubscription } from './HMSNativeEventEmitter';\nimport { HMSInteractivityEncoder } from './HMSInteractivityEncoder';\nimport { HMSHelper } from './HMSHelper';\nimport type { PollLeaderboardResponse } from './polls/PollLeaderboardResponse';\nimport type { DecodedPollLeaderboardResponse } from './polls/DecodedPollLeaderboardResponse';\n\ntype PollUpdateListener = (data: {\n updatedPoll: HMSPoll;\n update: HMSPollUpdateType;\n}) => void;\n\ntype PollQuestionResponseCreateParams = {\n pollId: string;\n pollQuestionIndex: number;\n responses:\n | {\n text: string;\n duration?: number;\n }\n | {\n options: number[];\n duration?: number;\n };\n};\n\nlet pollUpdateSubscription: null | HMSEventSubscription = null;\n\nfunction registerPollUpdateListener(listener: PollUpdateListener) {\n if (pollUpdateSubscription !== null) {\n return;\n }\n pollUpdateSubscription = HMSNativeEventListener.addListener(\n HMSConstants.DEFAULT_SDK_ID,\n HMSPollsListenerActions.ON_POLL_UPDATE,\n listener\n );\n}\n\nfunction unregisterPollUpdateListener() {\n if (pollUpdateSubscription === null) {\n return;\n }\n pollUpdateSubscription.remove();\n pollUpdateSubscription = null;\n}\n\nexport class HMSInteractivityCenter {\n private _eventEmitter = new EventEmitter();\n\n private _pollUpdateListener = (...args: Parameters<PollUpdateListener>) => {\n const { updatedPoll, update } = args[0];\n logger?.verbose('#Listener ON_POLL_UPDATE', {\n update,\n updatedPoll,\n });\n this._eventEmitter.emit(\n HMSPollsListenerActions.ON_POLL_UPDATE,\n HMSInteractivityEncoder.transformPoll(updatedPoll),\n update\n );\n };\n\n private _onAllPollUpdateListenerRemoved = () => {\n unregisterPollUpdateListener();\n };\n\n constructor() {\n this._eventEmitter.registerOnAllListenersRemoved(\n this._onAllPollUpdateListenerRemoved\n );\n }\n\n /**\n * Adds a listener for poll updates\n * @param listener - Callback to be called when a poll is updated\n * @returns HMSEventSubscription\n */\n addPollUpdateListener(\n listener: (updatedPoll: HMSPoll, update: HMSPollUpdateType) => void\n ) {\n registerPollUpdateListener(this._pollUpdateListener);\n return this._eventEmitter.addListener(\n HMSPollsListenerActions.ON_POLL_UPDATE,\n listener,\n null\n );\n }\n\n /**\n * Starts a poll\n *\n * @param pollParams\n */\n async startPoll(pollParams: HMSPollCreateParams) {\n const transformedPollParams = {\n ...pollParams,\n rolesThatCanVote: pollParams.rolesThatCanVote\n ? HMSHelper.getRoleNames(pollParams.rolesThatCanVote)\n : undefined,\n rolesThatCanViewResponses: pollParams.rolesThatCanViewResponses\n ? HMSHelper.getRoleNames(pollParams.rolesThatCanViewResponses)\n : undefined,\n };\n\n const data = {\n ...transformedPollParams,\n id: HMSConstants.DEFAULT_SDK_ID,\n };\n logger?.verbose('#Function startPoll', JSON.stringify(data));\n return HMSManager.quickStartPoll(data);\n }\n\n async add(pollQuestionResponseParams: PollQuestionResponseCreateParams) {\n const data = {\n ...pollQuestionResponseParams,\n id: HMSConstants.DEFAULT_SDK_ID,\n };\n logger?.verbose('#Function add', JSON.stringify(data));\n return HMSManager.addResponseOnPollQuestion(data);\n }\n\n async stop(pollId: string) {\n const data = {\n id: HMSConstants.DEFAULT_SDK_ID,\n pollId,\n };\n logger?.verbose('#Function stop', JSON.stringify(data));\n return HMSManager.stopPoll(data);\n }\n\n /**\n * Fetches the leaderboard for a poll\n * @param pollId - The id of the poll\n * @param count - The number of entries to fetch\n * @param startIndex - The index to start fetching from\n * @param includeCurrentPeer - Whether to include the current peer in the fetched leaderboard entries\n * @returns Promise<PollLeaderboardResponse>\n */\n async fetchLeaderboard(\n pollId: string,\n count: number,\n startIndex: number,\n includeCurrentPeer: boolean\n ): Promise<PollLeaderboardResponse> {\n const data = {\n id: HMSConstants.DEFAULT_SDK_ID,\n pollId,\n count,\n startIndex,\n includeCurrentPeer,\n };\n logger?.verbose('#Function fetchLeaderboard', data);\n\n const response: DecodedPollLeaderboardResponse =\n await HMSManager.fetchLeaderboard(data);\n return HMSInteractivityEncoder.transformPollLeaderboardResponse(response);\n }\n}\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,iBAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,aAAA,GAAAH,OAAA;AACA,IAAAI,UAAA,GAAAJ,OAAA;AAIA,IAAAK,wBAAA,GAAAL,OAAA;AACA,IAAAM,uBAAA,GAAAJ,sBAAA,CAAAF,OAAA;AAEA,IAAAO,wBAAA,GAAAP,OAAA;AACA,IAAAQ,UAAA,GAAAR,OAAA;AAAwC,SAAAE,uBAAAO,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAAA,SAAAG,gBAAAH,GAAA,EAAAI,GAAA,EAAAC,KAAA,IAAAD,GAAA,GAAAE,cAAA,CAAAF,GAAA,OAAAA,GAAA,IAAAJ,GAAA,IAAAO,MAAA,CAAAC,cAAA,CAAAR,GAAA,EAAAI,GAAA,IAAAC,KAAA,EAAAA,KAAA,EAAAI,UAAA,QAAAC,YAAA,QAAAC,QAAA,oBAAAX,GAAA,CAAAI,GAAA,IAAAC,KAAA,WAAAL,GAAA;AAAA,SAAAM,eAAAM,CAAA,QAAAC,CAAA,GAAAC,YAAA,CAAAF,CAAA,uCAAAC,CAAA,GAAAA,CAAA,GAAAA,CAAA;AAAA,SAAAC,aAAAF,CAAA,EAAAG,CAAA,2BAAAH,CAAA,KAAAA,CAAA,SAAAA,CAAA,MAAAI,CAAA,GAAAJ,CAAA,CAAAK,MAAA,CAAAC,WAAA,kBAAAF,CAAA,QAAAH,CAAA,GAAAG,CAAA,CAAAG,IAAA,CAAAP,CAAA,EAAAG,CAAA,uCAAAF,CAAA,SAAAA,CAAA,YAAAO,SAAA,yEAAAL,CAAA,GAAAM,MAAA,GAAAC,MAAA,EAAAV,CAAA;AAuBxC,IAAIW,sBAAmD,GAAG,IAAI;AAE9D,SAASC,0BAA0BA,CAACC,QAA4B,EAAE;EAChE,IAAIF,sBAAsB,KAAK,IAAI,EAAE;IACnC;EACF;EACAA,sBAAsB,GAAGG,+BAAsB,CAACC,WAAW,CACzDC,0BAAY,CAACC,cAAc,EAC3BC,gDAAuB,CAACC,cAAc,EACtCN,QACF,CAAC;AACH;AAEA,SAASO,4BAA4BA,CAAA,EAAG;EACtC,IAAIT,sBAAsB,KAAK,IAAI,EAAE;IACnC;EACF;EACAA,sBAAsB,CAACU,MAAM,CAAC,CAAC;EAC/BV,sBAAsB,GAAG,IAAI;AAC/B;AAEO,MAAMW,sBAAsB,CAAC;EAoBlCC,WAAWA,CAAA,EAAG;IAAAhC,eAAA,wBAnBU,IAAIiC,mBAAY,CAAC,CAAC;IAAAjC,eAAA,8BAEZ,CAAC,GAAGkC,IAAoC,KAAK;MACzE,MAAM;QAAEC,WAAW;QAAEC;MAAO,CAAC,GAAGF,IAAI,CAAC,CAAC,CAAC;MACvCG,iBAAM,aAANA,iBAAM,eAANA,iBAAM,CAAEC,OAAO,CAAC,0BAA0B,EAAE;QAC1CF,MAAM;QACND;MACF,CAAC,CAAC;MACF,IAAI,CAACI,aAAa,CAACC,IAAI,CACrBb,gDAAuB,CAACC,cAAc,EACtCa,gDAAuB,CAACC,aAAa,CAACP,WAAW,CAAC,EAClDC,MACF,CAAC;IACH,CAAC;IAAApC,eAAA,0CAEyC,MAAM;MAC9C6B,4BAA4B,CAAC,CAAC;IAChC,CAAC;IAGC,IAAI,CAACU,aAAa,CAACI,6BAA6B,CAC9C,IAAI,CAACC,+BACP,CAAC;EACH;;EAEA;AACF;AACA;AACA;AACA;EACEC,qBAAqBA,CACnBvB,QAAmE,EACnE;IACAD,0BAA0B,CAAC,IAAI,CAACyB,mBAAmB,CAAC;IACpD,OAAO,IAAI,CAACP,aAAa,CAACf,WAAW,CACnCG,gDAAuB,CAACC,cAAc,EACtCN,QAAQ,EACR,IACF,CAAC;EACH;;EAEA;AACF;AACA;AACA;AACA;EACE,MAAMyB,SAASA,CAACC,UAA+B,EAAE;IAC/C,MAAMC,qBAAqB,GAAG;MAC5B,GAAGD,UAAU;MACbE,gBAAgB,EAAEF,UAAU,CAACE,gBAAgB,GACzCC,oBAAS,CAACC,YAAY,CAACJ,UAAU,CAACE,gBAAgB,CAAC,GACnDG,SAAS;MACbC,yBAAyB,EAAEN,UAAU,CAACM,yBAAyB,GAC3DH,oBAAS,CAACC,YAAY,CAACJ,UAAU,CAACM,yBAAyB,CAAC,GAC5DD;IACN,CAAC;IAED,MAAME,IAAI,GAAG;MACX,GAAGN,qBAAqB;MACxBO,EAAE,EAAE/B,0BAAY,CAACC;IACnB,CAAC;IACDW,iBAAM,aAANA,iBAAM,eAANA,iBAAM,CAAEC,OAAO,CAAC,qBAAqB,EAAEmB,IAAI,CAACC,SAAS,CAACH,IAAI,CAAC,CAAC;IAC5D,OAAOI,yBAAU,CAACC,cAAc,CAACL,IAAI,CAAC;EACxC;EAEA,MAAMM,GAAGA,CAACC,0BAA4D,EAAE;IACtE,MAAMP,IAAI,GAAG;MACX,GAAGO,0BAA0B;MAC7BN,EAAE,EAAE/B,0BAAY,CAACC;IACnB,CAAC;IACDW,iBAAM,aAANA,iBAAM,eAANA,iBAAM,CAAEC,OAAO,CAAC,eAAe,EAAEmB,IAAI,CAACC,SAAS,CAACH,IAAI,CAAC,CAAC;IACtD,OAAOI,yBAAU,CAACI,yBAAyB,CAACR,IAAI,CAAC;EACnD;EAEA,MAAMS,IAAIA,CAACC,MAAc,EAAE;IACzB,MAAMV,IAAI,GAAG;MACXC,EAAE,EAAE/B,0BAAY,CAACC,cAAc;MAC/BuC;IACF,CAAC;IACD5B,iBAAM,aAANA,iBAAM,eAANA,iBAAM,CAAEC,OAAO,CAAC,gBAAgB,EAAEmB,IAAI,CAACC,SAAS,CAACH,IAAI,CAAC,CAAC;IACvD,OAAOI,yBAAU,CAACO,QAAQ,CAACX,IAAI,CAAC;EAClC;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;EACE,MAAMY,gBAAgBA,CACpBF,MAAc,EACdG,KAAa,EACbC,UAAkB,EAClBC,kBAA2B,EACO;IAClC,MAAMf,IAAI,GAAG;MACXC,EAAE,EAAE/B,0BAAY,CAACC,cAAc;MAC/BuC,MAAM;MACNG,KAAK;MACLC,UAAU;MACVC;IACF,CAAC;IACDjC,iBAAM,aAANA,iBAAM,eAANA,iBAAM,CAAEC,OAAO,CAAC,4BAA4B,EAAEiB,IAAI,CAAC;IAEnD,MAAMgB,QAAwC,GAC5C,MAAMZ,yBAAU,CAACQ,gBAAgB,CAACZ,IAAI,CAAC;IACzC,OAAOd,gDAAuB,CAAC+B,gCAAgC,CAACD,QAAQ,CAAC;EAC3E;AACF;AAACE,OAAA,CAAA1C,sBAAA,GAAAA,sBAAA","ignoreList":[]}
1
+ {"version":3,"names":["_utils","require","_HMSManagerModule","_interopRequireDefault","_HMSConstants","_HMSLogger","_HMSPollsListenerActions","_HMSNativeEventListener","_HMSInteractivityEncoder","_HMSHelper","_HMSWhiteboardListenerActions","_registerCallbacks","obj","__esModule","default","_defineProperty","key","value","_toPropertyKey","Object","defineProperty","enumerable","configurable","writable","t","i","_toPrimitive","r","e","Symbol","toPrimitive","call","TypeError","String","Number","pollUpdateSubscription","registerPollUpdateListener","listener","HMSNativeEventListener","addListener","HMSConstants","DEFAULT_SDK_ID","HMSPollsListenerActions","ON_POLL_UPDATE","unregisterPollUpdateListener","remove","HMSInteractivityCenter","onUpdateListenerRemoved","eventType","HMSWhiteboardListenerActions","ON_WHITEBOARD_UPDATE","unregisterWhiteboardUpdateListener","console","warn","constructor","EventEmitter","args","updatedPoll","update","logger","verbose","_eventEmitter","emit","HMSInteractivityEncoder","transformPoll","hmsWhiteboard","updateType","transformHMSWhiteboard","registerOnAllListenersRemoved","addPollUpdateListener","_pollUpdateListener","startPoll","pollParams","transformedPollParams","rolesThatCanVote","HMSHelper","getRoleNames","undefined","rolesThatCanViewResponses","data","id","JSON","stringify","HMSManager","quickStartPoll","add","pollQuestionResponseParams","addResponseOnPollQuestion","stop","pollId","stopPoll","fetchLeaderboard","count","startIndex","includeCurrentPeer","response","transformPollLeaderboardResponse","addWhiteboardUpdateListener","registerWhiteboardUpdateListener","_whiteboardUpdateListener","startWhiteboard","title","stopWhiteboard","exports"],"sources":["HMSInteractivityCenter.ts"],"sourcesContent":["import { EventEmitter } from '../utils';\nimport HMSManager from '../modules/HMSManagerModule';\nimport { HMSConstants } from './HMSConstants';\nimport { logger } from './HMSLogger';\nimport type { HMSPoll } from './polls/HMSPoll';\nimport type { HMSPollCreateParams } from './polls/HMSPollCreateParams';\nimport type { HMSPollUpdateType } from './polls/HMSPollUpdateType';\nimport { HMSPollsListenerActions } from './HMSPollsListenerActions';\nimport HMSNativeEventListener from './HMSNativeEventListener';\nimport type { HMSEventSubscription } from './HMSNativeEventEmitter';\nimport { HMSInteractivityEncoder } from './HMSInteractivityEncoder';\nimport { HMSHelper } from './HMSHelper';\nimport type { PollLeaderboardResponse } from './polls/PollLeaderboardResponse';\nimport type { DecodedPollLeaderboardResponse } from './polls/DecodedPollLeaderboardResponse';\nimport type { HMSWhiteboardUpdateType } from './whiteboard/HMSWhiteboardUpdateType';\nimport type { HMSWhiteboard } from './whiteboard/HMSWhiteboard';\nimport { HMSWhiteboardListenerActions } from './whiteboard/HMSWhiteboardListenerActions';\nimport {\n WhiteboardUpdateListener,\n registerWhiteboardUpdateListener,\n unregisterWhiteboardUpdateListener,\n} from './whiteboard/registerCallbacks';\n\ntype PollUpdateListener = (data: {\n updatedPoll: HMSPoll;\n update: HMSPollUpdateType;\n}) => void;\n\ntype PollQuestionResponseCreateParams = {\n pollId: string;\n pollQuestionIndex: number;\n responses:\n | {\n text: string;\n duration?: number;\n }\n | {\n options: number[];\n duration?: number;\n };\n};\n\nlet pollUpdateSubscription: null | HMSEventSubscription = null;\n\nfunction registerPollUpdateListener(listener: PollUpdateListener) {\n if (pollUpdateSubscription !== null) {\n return;\n }\n pollUpdateSubscription = HMSNativeEventListener.addListener(\n HMSConstants.DEFAULT_SDK_ID,\n HMSPollsListenerActions.ON_POLL_UPDATE,\n listener\n );\n}\n\nfunction unregisterPollUpdateListener() {\n if (pollUpdateSubscription === null) {\n return;\n }\n pollUpdateSubscription.remove();\n pollUpdateSubscription = null;\n}\n\nexport class HMSInteractivityCenter {\n private _eventEmitter = new EventEmitter();\n\n private onUpdateListenerRemoved(eventType: string) {\n if (eventType === HMSPollsListenerActions.ON_POLL_UPDATE) {\n unregisterPollUpdateListener();\n } else if (\n eventType === HMSWhiteboardListenerActions.ON_WHITEBOARD_UPDATE\n ) {\n unregisterWhiteboardUpdateListener();\n } else {\n console.warn('Unknown update listener removed: ', eventType);\n }\n }\n\n constructor() {\n this._eventEmitter.registerOnAllListenersRemoved(\n this.onUpdateListenerRemoved\n );\n }\n\n //#region Poll Methods & Listeners\n\n private _pollUpdateListener = (...args: Parameters<PollUpdateListener>) => {\n const { updatedPoll, update } = args[0];\n logger?.verbose('#Listener ON_POLL_UPDATE', {\n update,\n updatedPoll,\n });\n this._eventEmitter.emit(\n HMSPollsListenerActions.ON_POLL_UPDATE,\n HMSInteractivityEncoder.transformPoll(updatedPoll),\n update\n );\n };\n\n /**\n * Adds a listener for poll updates\n * @param listener - Callback to be called when a poll is updated\n * @returns HMSEventSubscription\n */\n addPollUpdateListener(\n listener: (updatedPoll: HMSPoll, update: HMSPollUpdateType) => void\n ) {\n registerPollUpdateListener(this._pollUpdateListener);\n return this._eventEmitter.addListener(\n HMSPollsListenerActions.ON_POLL_UPDATE,\n listener,\n null\n );\n }\n\n /**\n * Starts a poll\n *\n * @param pollParams\n */\n async startPoll(pollParams: HMSPollCreateParams) {\n const transformedPollParams = {\n ...pollParams,\n rolesThatCanVote: pollParams.rolesThatCanVote\n ? HMSHelper.getRoleNames(pollParams.rolesThatCanVote)\n : undefined,\n rolesThatCanViewResponses: pollParams.rolesThatCanViewResponses\n ? HMSHelper.getRoleNames(pollParams.rolesThatCanViewResponses)\n : undefined,\n };\n\n const data = {\n ...transformedPollParams,\n id: HMSConstants.DEFAULT_SDK_ID,\n };\n logger?.verbose('#Function startPoll', JSON.stringify(data));\n return HMSManager.quickStartPoll(data);\n }\n\n async add(pollQuestionResponseParams: PollQuestionResponseCreateParams) {\n const data = {\n ...pollQuestionResponseParams,\n id: HMSConstants.DEFAULT_SDK_ID,\n };\n logger?.verbose('#Function add', JSON.stringify(data));\n return HMSManager.addResponseOnPollQuestion(data);\n }\n\n async stop(pollId: string) {\n const data = {\n id: HMSConstants.DEFAULT_SDK_ID,\n pollId,\n };\n logger?.verbose('#Function stop', JSON.stringify(data));\n return HMSManager.stopPoll(data);\n }\n\n /**\n * Fetches the leaderboard for a poll\n * @param pollId - The id of the poll\n * @param count - The number of entries to fetch\n * @param startIndex - The index to start fetching from\n * @param includeCurrentPeer - Whether to include the current peer in the fetched leaderboard entries\n * @returns Promise<PollLeaderboardResponse>\n */\n async fetchLeaderboard(\n pollId: string,\n count: number,\n startIndex: number,\n includeCurrentPeer: boolean\n ): Promise<PollLeaderboardResponse> {\n const data = {\n id: HMSConstants.DEFAULT_SDK_ID,\n pollId,\n count,\n startIndex,\n includeCurrentPeer,\n };\n logger?.verbose('#Function fetchLeaderboard', data);\n\n const response: DecodedPollLeaderboardResponse =\n await HMSManager.fetchLeaderboard(data);\n return HMSInteractivityEncoder.transformPollLeaderboardResponse(response);\n }\n //#endregion Poll Methods & Listeners\n\n //#region Whiteboard Methods & Listeners\n\n private _whiteboardUpdateListener = (\n ...args: Parameters<WhiteboardUpdateListener>\n ) => {\n const { hmsWhiteboard, updateType } = args[0];\n logger?.verbose('#Listener ON_WHITEBOARD_UPDATE', {\n updateType,\n hmsWhiteboard,\n });\n this._eventEmitter.emit(\n HMSWhiteboardListenerActions.ON_WHITEBOARD_UPDATE,\n HMSInteractivityEncoder.transformHMSWhiteboard(hmsWhiteboard),\n updateType\n );\n };\n\n /**\n * Adds a listener for Whiteboard updates\n * @param listener - Callback to be called when whiteboard is updated\n * @returns HMSEventSubscription\n */\n addWhiteboardUpdateListener(\n listener: (\n hmsWhiteboard: HMSWhiteboard,\n updateType: HMSWhiteboardUpdateType\n ) => void\n ) {\n registerWhiteboardUpdateListener(this._whiteboardUpdateListener);\n return this._eventEmitter.addListener(\n HMSWhiteboardListenerActions.ON_WHITEBOARD_UPDATE,\n listener,\n null\n );\n }\n\n /**\n * Starts Whiteboard\n */\n async startWhiteboard(title: string) {\n const data = {\n id: HMSConstants.DEFAULT_SDK_ID,\n title,\n };\n logger?.verbose('#Function startWhiteboard', data);\n return HMSManager.startWhiteboard(data);\n }\n\n /**\n * Stops Whiteboard\n */\n async stopWhiteboard() {\n const data = {\n id: HMSConstants.DEFAULT_SDK_ID,\n };\n logger?.verbose('#Function stopWhiteboard', data);\n return HMSManager.stopWhiteboard(data);\n }\n //#endregion Whiteboard Methods & Listeners\n}\n"],"mappings":"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","ignoreList":[]}
@@ -72,6 +72,12 @@ class HMSInteractivityEncoder {
72
72
  }
73
73
  return decodedPollLeaderboardResponse;
74
74
  }
75
+ static transformHMSWhiteboard(hmsWhiteboard) {
76
+ if (hmsWhiteboard.owner) {
77
+ hmsWhiteboard.owner = _HMSEncoder.HMSEncoder.encodeHmsPeer(hmsWhiteboard.owner);
78
+ }
79
+ return hmsWhiteboard;
80
+ }
75
81
  }
76
82
  exports.HMSInteractivityEncoder = HMSInteractivityEncoder;
77
83
  //# sourceMappingURL=HMSInteractivityEncoder.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_HMSEncoder","require","HMSInteractivityEncoder","transformPoll","poll","startedAt","dateNum","parseInt","isNaN","undefined","Date","stoppedAt","createdBy","HMSEncoder","encodeHmsPeer","startedBy","stoppedBy","rolesThatCanVote","map","role","encodeHmsRole","rolesThatCanViewResponses","transformPollLeaderboardResponse","decodedPollLeaderboardResponse","summary","averageTime","entries","forEach","entry","duration","totalResponses","correctResponses","position","score","exports"],"sources":["HMSInteractivityEncoder.ts"],"sourcesContent":["import { HMSEncoder } from './HMSEncoder';\nimport type { DecodedPollLeaderboardResponse } from './polls/DecodedPollLeaderboardResponse';\nimport type { HMSPoll } from './polls/HMSPoll';\nimport type { PollLeaderboardResponse } from './polls/PollLeaderboardResponse';\n\nexport class HMSInteractivityEncoder {\n static transformPoll(poll: HMSPoll): HMSPoll {\n if (poll.startedAt) {\n const dateNum = parseInt(poll.startedAt as unknown as string);\n\n if (isNaN(dateNum)) {\n poll.startedAt = undefined;\n } else {\n poll.startedAt = new Date(dateNum);\n }\n }\n if (poll.stoppedAt) {\n const dateNum = parseInt(poll.stoppedAt as unknown as string);\n\n if (isNaN(dateNum)) {\n poll.stoppedAt = undefined;\n } else {\n poll.stoppedAt = new Date(dateNum);\n }\n }\n if (poll.createdBy) {\n poll.createdBy = HMSEncoder.encodeHmsPeer(poll.createdBy);\n }\n if (poll.startedBy) {\n poll.startedBy = HMSEncoder.encodeHmsPeer(poll.startedBy);\n }\n if (poll.stoppedBy) {\n poll.stoppedBy = HMSEncoder.encodeHmsPeer(poll.stoppedBy);\n }\n if (poll.rolesThatCanVote) {\n poll.rolesThatCanVote = poll.rolesThatCanVote.map((role) =>\n HMSEncoder.encodeHmsRole(role)\n );\n }\n if (poll.rolesThatCanViewResponses) {\n poll.rolesThatCanViewResponses = poll.rolesThatCanViewResponses.map(\n (role) => HMSEncoder.encodeHmsRole(role)\n );\n }\n\n // --- poll.questions: HMSPollQuestion[]\n // --- poll.result: HMSPollResult\n return poll;\n }\n\n static transformPollLeaderboardResponse(\n decodedPollLeaderboardResponse: DecodedPollLeaderboardResponse\n ): PollLeaderboardResponse {\n const summary = decodedPollLeaderboardResponse.summary;\n if (summary) {\n if (typeof summary.averageTime === 'string') {\n summary.averageTime = parseInt(summary.averageTime);\n }\n }\n\n const entries = decodedPollLeaderboardResponse.entries;\n if (entries) {\n entries.forEach((entry) => {\n if (typeof entry.duration === 'string') {\n entry.duration = parseInt(entry.duration);\n }\n if (typeof entry.totalResponses === 'string') {\n entry.totalResponses = parseInt(entry.totalResponses);\n }\n if (typeof entry.correctResponses === 'string') {\n entry.correctResponses = parseInt(entry.correctResponses);\n }\n if (typeof entry.position === 'string') {\n entry.position = parseInt(entry.position);\n }\n if (typeof entry.score === 'string') {\n entry.score = parseInt(entry.score);\n }\n });\n }\n\n return decodedPollLeaderboardResponse as PollLeaderboardResponse;\n }\n}\n"],"mappings":";;;;;;AAAA,IAAAA,WAAA,GAAAC,OAAA;AAKO,MAAMC,uBAAuB,CAAC;EACnC,OAAOC,aAAaA,CAACC,IAAa,EAAW;IAC3C,IAAIA,IAAI,CAACC,SAAS,EAAE;MAClB,MAAMC,OAAO,GAAGC,QAAQ,CAACH,IAAI,CAACC,SAA8B,CAAC;MAE7D,IAAIG,KAAK,CAACF,OAAO,CAAC,EAAE;QAClBF,IAAI,CAACC,SAAS,GAAGI,SAAS;MAC5B,CAAC,MAAM;QACLL,IAAI,CAACC,SAAS,GAAG,IAAIK,IAAI,CAACJ,OAAO,CAAC;MACpC;IACF;IACA,IAAIF,IAAI,CAACO,SAAS,EAAE;MAClB,MAAML,OAAO,GAAGC,QAAQ,CAACH,IAAI,CAACO,SAA8B,CAAC;MAE7D,IAAIH,KAAK,CAACF,OAAO,CAAC,EAAE;QAClBF,IAAI,CAACO,SAAS,GAAGF,SAAS;MAC5B,CAAC,MAAM;QACLL,IAAI,CAACO,SAAS,GAAG,IAAID,IAAI,CAACJ,OAAO,CAAC;MACpC;IACF;IACA,IAAIF,IAAI,CAACQ,SAAS,EAAE;MAClBR,IAAI,CAACQ,SAAS,GAAGC,sBAAU,CAACC,aAAa,CAACV,IAAI,CAACQ,SAAS,CAAC;IAC3D;IACA,IAAIR,IAAI,CAACW,SAAS,EAAE;MAClBX,IAAI,CAACW,SAAS,GAAGF,sBAAU,CAACC,aAAa,CAACV,IAAI,CAACW,SAAS,CAAC;IAC3D;IACA,IAAIX,IAAI,CAACY,SAAS,EAAE;MAClBZ,IAAI,CAACY,SAAS,GAAGH,sBAAU,CAACC,aAAa,CAACV,IAAI,CAACY,SAAS,CAAC;IAC3D;IACA,IAAIZ,IAAI,CAACa,gBAAgB,EAAE;MACzBb,IAAI,CAACa,gBAAgB,GAAGb,IAAI,CAACa,gBAAgB,CAACC,GAAG,CAAEC,IAAI,IACrDN,sBAAU,CAACO,aAAa,CAACD,IAAI,CAC/B,CAAC;IACH;IACA,IAAIf,IAAI,CAACiB,yBAAyB,EAAE;MAClCjB,IAAI,CAACiB,yBAAyB,GAAGjB,IAAI,CAACiB,yBAAyB,CAACH,GAAG,CAChEC,IAAI,IAAKN,sBAAU,CAACO,aAAa,CAACD,IAAI,CACzC,CAAC;IACH;;IAEA;IACA;IACA,OAAOf,IAAI;EACb;EAEA,OAAOkB,gCAAgCA,CACrCC,8BAA8D,EACrC;IACzB,MAAMC,OAAO,GAAGD,8BAA8B,CAACC,OAAO;IACtD,IAAIA,OAAO,EAAE;MACX,IAAI,OAAOA,OAAO,CAACC,WAAW,KAAK,QAAQ,EAAE;QAC3CD,OAAO,CAACC,WAAW,GAAGlB,QAAQ,CAACiB,OAAO,CAACC,WAAW,CAAC;MACrD;IACF;IAEA,MAAMC,OAAO,GAAGH,8BAA8B,CAACG,OAAO;IACtD,IAAIA,OAAO,EAAE;MACXA,OAAO,CAACC,OAAO,CAAEC,KAAK,IAAK;QACzB,IAAI,OAAOA,KAAK,CAACC,QAAQ,KAAK,QAAQ,EAAE;UACtCD,KAAK,CAACC,QAAQ,GAAGtB,QAAQ,CAACqB,KAAK,CAACC,QAAQ,CAAC;QAC3C;QACA,IAAI,OAAOD,KAAK,CAACE,cAAc,KAAK,QAAQ,EAAE;UAC5CF,KAAK,CAACE,cAAc,GAAGvB,QAAQ,CAACqB,KAAK,CAACE,cAAc,CAAC;QACvD;QACA,IAAI,OAAOF,KAAK,CAACG,gBAAgB,KAAK,QAAQ,EAAE;UAC9CH,KAAK,CAACG,gBAAgB,GAAGxB,QAAQ,CAACqB,KAAK,CAACG,gBAAgB,CAAC;QAC3D;QACA,IAAI,OAAOH,KAAK,CAACI,QAAQ,KAAK,QAAQ,EAAE;UACtCJ,KAAK,CAACI,QAAQ,GAAGzB,QAAQ,CAACqB,KAAK,CAACI,QAAQ,CAAC;QAC3C;QACA,IAAI,OAAOJ,KAAK,CAACK,KAAK,KAAK,QAAQ,EAAE;UACnCL,KAAK,CAACK,KAAK,GAAG1B,QAAQ,CAACqB,KAAK,CAACK,KAAK,CAAC;QACrC;MACF,CAAC,CAAC;IACJ;IAEA,OAAOV,8BAA8B;EACvC;AACF;AAACW,OAAA,CAAAhC,uBAAA,GAAAA,uBAAA","ignoreList":[]}
1
+ {"version":3,"names":["_HMSEncoder","require","HMSInteractivityEncoder","transformPoll","poll","startedAt","dateNum","parseInt","isNaN","undefined","Date","stoppedAt","createdBy","HMSEncoder","encodeHmsPeer","startedBy","stoppedBy","rolesThatCanVote","map","role","encodeHmsRole","rolesThatCanViewResponses","transformPollLeaderboardResponse","decodedPollLeaderboardResponse","summary","averageTime","entries","forEach","entry","duration","totalResponses","correctResponses","position","score","transformHMSWhiteboard","hmsWhiteboard","owner","exports"],"sources":["HMSInteractivityEncoder.ts"],"sourcesContent":["import { HMSEncoder } from './HMSEncoder';\nimport type { DecodedPollLeaderboardResponse } from './polls/DecodedPollLeaderboardResponse';\nimport type { HMSPoll } from './polls/HMSPoll';\nimport type { PollLeaderboardResponse } from './polls/PollLeaderboardResponse';\nimport type { HMSWhiteboard } from './whiteboard/HMSWhiteboard';\n\nexport class HMSInteractivityEncoder {\n static transformPoll(poll: HMSPoll): HMSPoll {\n if (poll.startedAt) {\n const dateNum = parseInt(poll.startedAt as unknown as string);\n\n if (isNaN(dateNum)) {\n poll.startedAt = undefined;\n } else {\n poll.startedAt = new Date(dateNum);\n }\n }\n if (poll.stoppedAt) {\n const dateNum = parseInt(poll.stoppedAt as unknown as string);\n\n if (isNaN(dateNum)) {\n poll.stoppedAt = undefined;\n } else {\n poll.stoppedAt = new Date(dateNum);\n }\n }\n if (poll.createdBy) {\n poll.createdBy = HMSEncoder.encodeHmsPeer(poll.createdBy);\n }\n if (poll.startedBy) {\n poll.startedBy = HMSEncoder.encodeHmsPeer(poll.startedBy);\n }\n if (poll.stoppedBy) {\n poll.stoppedBy = HMSEncoder.encodeHmsPeer(poll.stoppedBy);\n }\n if (poll.rolesThatCanVote) {\n poll.rolesThatCanVote = poll.rolesThatCanVote.map((role) =>\n HMSEncoder.encodeHmsRole(role)\n );\n }\n if (poll.rolesThatCanViewResponses) {\n poll.rolesThatCanViewResponses = poll.rolesThatCanViewResponses.map(\n (role) => HMSEncoder.encodeHmsRole(role)\n );\n }\n\n // --- poll.questions: HMSPollQuestion[]\n // --- poll.result: HMSPollResult\n return poll;\n }\n\n static transformPollLeaderboardResponse(\n decodedPollLeaderboardResponse: DecodedPollLeaderboardResponse\n ): PollLeaderboardResponse {\n const summary = decodedPollLeaderboardResponse.summary;\n if (summary) {\n if (typeof summary.averageTime === 'string') {\n summary.averageTime = parseInt(summary.averageTime);\n }\n }\n\n const entries = decodedPollLeaderboardResponse.entries;\n if (entries) {\n entries.forEach((entry) => {\n if (typeof entry.duration === 'string') {\n entry.duration = parseInt(entry.duration);\n }\n if (typeof entry.totalResponses === 'string') {\n entry.totalResponses = parseInt(entry.totalResponses);\n }\n if (typeof entry.correctResponses === 'string') {\n entry.correctResponses = parseInt(entry.correctResponses);\n }\n if (typeof entry.position === 'string') {\n entry.position = parseInt(entry.position);\n }\n if (typeof entry.score === 'string') {\n entry.score = parseInt(entry.score);\n }\n });\n }\n\n return decodedPollLeaderboardResponse as PollLeaderboardResponse;\n }\n\n static transformHMSWhiteboard(hmsWhiteboard: HMSWhiteboard): HMSWhiteboard {\n if (hmsWhiteboard.owner) {\n hmsWhiteboard.owner = HMSEncoder.encodeHmsPeer(hmsWhiteboard.owner);\n }\n return hmsWhiteboard;\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -19,6 +19,7 @@ class HMSPermissions {
19
19
  _defineProperty(this, "rtmpStreaming", void 0);
20
20
  _defineProperty(this, "pollRead", void 0);
21
21
  _defineProperty(this, "pollWrite", void 0);
22
+ _defineProperty(this, "whiteboard", void 0);
22
23
  if (params) {
23
24
  this.endRoom = params.endRoom;
24
25
  this.removeOthers = params.removeOthers;
@@ -30,6 +31,7 @@ class HMSPermissions {
30
31
  this.rtmpStreaming = params.rtmpStreaming;
31
32
  this.pollRead = params.pollRead;
32
33
  this.pollWrite = params.pollWrite;
34
+ this.whiteboard = params.whiteboard;
33
35
  }
34
36
  }
35
37
  }
@@ -1 +1 @@
1
- {"version":3,"names":["HMSPermissions","constructor","params","_defineProperty","endRoom","removeOthers","unmute","mute","changeRole","browserRecording","hlsStreaming","rtmpStreaming","pollRead","pollWrite","exports"],"sources":["HMSPermissions.ts"],"sourcesContent":["export class HMSPermissions {\n endRoom?: boolean;\n removeOthers?: boolean;\n unmute?: boolean;\n mute?: boolean;\n changeRole?: boolean;\n browserRecording?: boolean;\n hlsStreaming?: boolean;\n rtmpStreaming?: boolean;\n pollRead?: boolean;\n pollWrite?: boolean;\n\n constructor(params?: {\n endRoom?: boolean;\n removeOthers?: boolean;\n unmute?: boolean;\n mute?: boolean;\n changeRole?: boolean;\n browserRecording?: boolean;\n hlsStreaming?: boolean;\n rtmpStreaming?: boolean;\n pollRead?: boolean;\n pollWrite?: boolean;\n }) {\n if (params) {\n this.endRoom = params.endRoom;\n this.removeOthers = params.removeOthers;\n this.unmute = params.unmute;\n this.mute = params.mute;\n this.changeRole = params.changeRole;\n this.browserRecording = params.browserRecording;\n this.hlsStreaming = params.hlsStreaming;\n this.rtmpStreaming = params.rtmpStreaming;\n this.pollRead = params.pollRead;\n this.pollWrite = params.pollWrite;\n }\n }\n}\n"],"mappings":";;;;;;;;;AAAO,MAAMA,cAAc,CAAC;EAY1BC,WAAWA,CAACC,MAWX,EAAE;IAAAC,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA;IACD,IAAID,MAAM,EAAE;MACV,IAAI,CAACE,OAAO,GAAGF,MAAM,CAACE,OAAO;MAC7B,IAAI,CAACC,YAAY,GAAGH,MAAM,CAACG,YAAY;MACvC,IAAI,CAACC,MAAM,GAAGJ,MAAM,CAACI,MAAM;MAC3B,IAAI,CAACC,IAAI,GAAGL,MAAM,CAACK,IAAI;MACvB,IAAI,CAACC,UAAU,GAAGN,MAAM,CAACM,UAAU;MACnC,IAAI,CAACC,gBAAgB,GAAGP,MAAM,CAACO,gBAAgB;MAC/C,IAAI,CAACC,YAAY,GAAGR,MAAM,CAACQ,YAAY;MACvC,IAAI,CAACC,aAAa,GAAGT,MAAM,CAACS,aAAa;MACzC,IAAI,CAACC,QAAQ,GAAGV,MAAM,CAACU,QAAQ;MAC/B,IAAI,CAACC,SAAS,GAAGX,MAAM,CAACW,SAAS;IACnC;EACF;AACF;AAACC,OAAA,CAAAd,cAAA,GAAAA,cAAA","ignoreList":[]}
1
+ {"version":3,"names":["HMSPermissions","constructor","params","_defineProperty","endRoom","removeOthers","unmute","mute","changeRole","browserRecording","hlsStreaming","rtmpStreaming","pollRead","pollWrite","whiteboard","exports"],"sources":["HMSPermissions.ts"],"sourcesContent":["export interface HMSWhiteboardPermission {\n admin?: boolean;\n write?: boolean;\n read?: boolean;\n}\n\nexport class HMSPermissions {\n endRoom?: boolean;\n removeOthers?: boolean;\n unmute?: boolean;\n mute?: boolean;\n changeRole?: boolean;\n browserRecording?: boolean;\n hlsStreaming?: boolean;\n rtmpStreaming?: boolean;\n pollRead?: boolean;\n pollWrite?: boolean;\n whiteboard?: HMSWhiteboardPermission;\n\n constructor(params?: {\n endRoom?: boolean;\n removeOthers?: boolean;\n unmute?: boolean;\n mute?: boolean;\n changeRole?: boolean;\n browserRecording?: boolean;\n hlsStreaming?: boolean;\n rtmpStreaming?: boolean;\n pollRead?: boolean;\n pollWrite?: boolean;\n whiteboard?: HMSWhiteboardPermission;\n }) {\n if (params) {\n this.endRoom = params.endRoom;\n this.removeOthers = params.removeOthers;\n this.unmute = params.unmute;\n this.mute = params.mute;\n this.changeRole = params.changeRole;\n this.browserRecording = params.browserRecording;\n this.hlsStreaming = params.hlsStreaming;\n this.rtmpStreaming = params.rtmpStreaming;\n this.pollRead = params.pollRead;\n this.pollWrite = params.pollWrite;\n this.whiteboard = params.whiteboard;\n }\n }\n}\n"],"mappings":";;;;;;;;;AAMO,MAAMA,cAAc,CAAC;EAa1BC,WAAWA,CAACC,MAYX,EAAE;IAAAC,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA;IACD,IAAID,MAAM,EAAE;MACV,IAAI,CAACE,OAAO,GAAGF,MAAM,CAACE,OAAO;MAC7B,IAAI,CAACC,YAAY,GAAGH,MAAM,CAACG,YAAY;MACvC,IAAI,CAACC,MAAM,GAAGJ,MAAM,CAACI,MAAM;MAC3B,IAAI,CAACC,IAAI,GAAGL,MAAM,CAACK,IAAI;MACvB,IAAI,CAACC,UAAU,GAAGN,MAAM,CAACM,UAAU;MACnC,IAAI,CAACC,gBAAgB,GAAGP,MAAM,CAACO,gBAAgB;MAC/C,IAAI,CAACC,YAAY,GAAGR,MAAM,CAACQ,YAAY;MACvC,IAAI,CAACC,aAAa,GAAGT,MAAM,CAACS,aAAa;MACzC,IAAI,CAACC,QAAQ,GAAGV,MAAM,CAACU,QAAQ;MAC/B,IAAI,CAACC,SAAS,GAAGX,MAAM,CAACW,SAAS;MACjC,IAAI,CAACC,UAAU,GAAGZ,MAAM,CAACY,UAAU;IACrC;EACF;AACF;AAACC,OAAA,CAAAf,cAAA,GAAAA,cAAA","ignoreList":[]}
@@ -147,7 +147,7 @@ class HMSSessionStore {
147
147
  this._addedKeyChangeListenerCount -= 1;
148
148
  if (this._addedKeyChangeListenerCount <= 0) {
149
149
  this._addedKeyChangeListenerCount = 0;
150
- if (this._deviceEventEmitterSubscription && Object.getOwnPropertyNames(this._deviceEventEmitterSubscription).includes('remove') && typeof this._deviceEventEmitterSubscription.remove === 'function') {
150
+ if (this._deviceEventEmitterSubscription && typeof this._deviceEventEmitterSubscription.remove === 'function') {
151
151
  this._deviceEventEmitterSubscription.remove();
152
152
  } else {
153
153
  _reactNative.DeviceEventEmitter.removeListener(_HMSUpdateListenerActions.HMSUpdateListenerActions.ON_SESSION_STORE_CHANGED, this._deviceEventEmitterListener);
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNative","require","_HMSManagerModule","_interopRequireDefault","_HMSConstants","_HMSLogger","_HMSUpdateListenerActions","_utils","obj","__esModule","default","_defineProperty","key","value","_toPropertyKey","Object","defineProperty","enumerable","configurable","writable","t","i","_toPrimitive","r","e","Symbol","toPrimitive","call","TypeError","String","Number","HMSSessionStore","constructor","set","data","HMSManager","setSessionMetadataForKey","id","HMSConstants","DEFAULT_SDK_ID","get","getSessionMetadataForKey","addKeyChangeListener","forKeys","callback","_deviceEventEmitterSubscription","DeviceEventEmitter","addListener","HMSUpdateListenerActions","ON_SESSION_STORE_CHANGED","_deviceEventEmitterListener","bind","_eventEmitter","EventEmitter","uniqueId","join","Date","now","toString","eventEmitter","subscriptions","map","cleanupHandler","_cleanup","keys","catch","err","_addedKeyChangeListenerCount","remove","subscriptionsToRemove","length","context","forEach","subscription","removeKeyChangeListener","error","logger","getLogger","verbose","getOwnPropertyNames","includes","removeListener","undefined","_getLogger","_this$_eventEmitter","emit","exports"],"sources":["HMSSessionStore.ts"],"sourcesContent":["import { DeviceEventEmitter } from 'react-native';\nimport type { EmitterSubscription as RNEmitterSubscription } from 'react-native';\n\nimport HMSManager from '../modules/HMSManagerModule';\n\nimport { HMSConstants } from './HMSConstants';\nimport { getLogger } from './HMSLogger';\nimport { HMSUpdateListenerActions } from './HMSUpdateListenerActions';\nimport { EventEmitter } from '../utils';\nimport type { EmitterSubscription } from '../utils';\n\nexport type JsonPrimitive = string | number | boolean | null;\nexport type JsonMap = {\n [key: string]: JsonPrimitive | JsonMap | JsonArray;\n};\nexport type JsonArray = Array<JsonPrimitive | JsonMap | JsonArray>;\nexport type JsonValue = JsonPrimitive | JsonMap | JsonArray;\n\n/**\n * Session store is a shared realtime key-value store that is accessible by everyone in the room.\n * It can be utilized to implement features such as pinned text, spotlight (which brings a particular\n * peer to the center stage for everyone in the room) and more.\n *\n * To get an instance of `HMSSessionStore` class, You can add an event listener for `ON_SESSION_STORE_AVAILABLE`\n * event on the `HMSSDK` instance\n *\n * For example:\n * ```\n * hmsInstance.addEventListener(HMSUpdateListenerActions.ON_SESSION_STORE_AVAILABLE, <your callback function>);\n * ```\n *\n * Checkout Session Store docs fore more details ${@link https://www.100ms.live/docs/react-native/v2/how-to-guides/interact-with-room/room/session-store}\n */\nexport class HMSSessionStore {\n private _deviceEventEmitterSubscription?: RNEmitterSubscription;\n private _eventEmitter?: EventEmitter;\n private _addedKeyChangeListenerCount = 0;\n\n /**\n * This method sets a value for a specific key on session store.\n * Once a value is assigned, it will be available for other peers in the room\n * who are listening for changes in value for that specific key.\n *\n * @param {JsonValue} value\n * @param {string} key\n * @returns {Promise}\n */\n async set(value: JsonValue, key: string) {\n const data: { success: true } = await HMSManager.setSessionMetadataForKey({\n id: HMSConstants.DEFAULT_SDK_ID,\n key,\n value,\n });\n return data;\n }\n\n /**\n * This method returns the value of any specified key on session store.\n * Note that you will not get updates for any change in value of the specified key,\n * It returns the latest value at the time it was called.\n *\n * To listen to value change updates use `addKeyChangeListener` method instead.\n *\n * @param {string} key\n * @returns {Promise}\n */\n async get(key: string) {\n const data: JsonValue = await HMSManager.getSessionMetadataForKey({\n id: HMSConstants.DEFAULT_SDK_ID,\n key,\n });\n return data;\n }\n\n /**\n * This method registers a callback function for listening to value changes of a particular key.\n * Registered Callback function will be called initially with latest value and whenever the value updates\n *\n * @param {string[]} forKeys\n * @param {Function} callback\n * @returns {Object} subscription object\n */\n addKeyChangeListener<T extends string[]>(\n forKeys: T,\n callback: (\n error: string | null,\n data: { key: T[number]; value: JsonValue } | null\n ) => void\n ) {\n // Add Native Device Event Emitter if it is not already added\n if (!this._deviceEventEmitterSubscription) {\n this._deviceEventEmitterSubscription = DeviceEventEmitter.addListener(\n HMSUpdateListenerActions.ON_SESSION_STORE_CHANGED,\n this._deviceEventEmitterListener.bind(this)\n );\n }\n\n // Create JS side EventEmitter\n if (!this._eventEmitter) {\n this._eventEmitter = new EventEmitter();\n }\n\n // Unique Identifier for adding native event listener\n const uniqueId = forKeys.join('') + '_' + Date.now().toString();\n\n const eventEmitter = this._eventEmitter;\n\n // Add listeners on eventEmitter for each key\n const subscriptions = forKeys.map((key) =>\n eventEmitter.addListener(key, callback, { uniqueId })\n );\n\n //\n let cleanupHandler: (() => void) | null = () => {\n this._cleanup(subscriptions);\n };\n\n // Adding 'KeyChangeListener' on native side\n HMSManager.addKeyChangeListener({\n id: HMSConstants.DEFAULT_SDK_ID,\n keys: forKeys,\n uniqueId,\n })\n // Adding 'KeyChangeListener' fails on native side\n .catch((err: any) => {\n if (typeof cleanupHandler === 'function') {\n callback(err, null);\n cleanupHandler();\n cleanupHandler = null;\n }\n });\n\n this._addedKeyChangeListenerCount += 1;\n\n return {\n remove: () => {\n if (typeof cleanupHandler === 'function') {\n cleanupHandler();\n cleanupHandler = null;\n }\n },\n };\n }\n\n private _cleanup(subscriptionsToRemove: EmitterSubscription[]) {\n // Extracting `uniqueId` from first subscription (all subscriptions have same uniqueId)\n // this `uniqueId` will be used to remove 'KeyChangeListener' from native side\n const uniqueId =\n subscriptionsToRemove.length > 0\n ? (subscriptionsToRemove[0]!.context as { uniqueId: string }).uniqueId\n : null;\n\n // Removing required subscriptions from 'eventEmitter'\n subscriptionsToRemove.forEach((subscription) => subscription.remove());\n\n // Removing 'KeyChangeListener' from native side\n HMSManager.removeKeyChangeListener({\n id: HMSConstants.DEFAULT_SDK_ID,\n uniqueId,\n }).catch((error: any) => {\n const logger = getLogger();\n logger?.verbose(\n \"Error while removing key change listener, Listener didn't get registerred at first place or was already removed\",\n error\n );\n });\n\n this._addedKeyChangeListenerCount -= 1;\n\n if (this._addedKeyChangeListenerCount <= 0) {\n this._addedKeyChangeListenerCount = 0;\n if (\n this._deviceEventEmitterSubscription &&\n Object.getOwnPropertyNames(\n this._deviceEventEmitterSubscription\n ).includes('remove') &&\n typeof this._deviceEventEmitterSubscription.remove === 'function'\n ) {\n this._deviceEventEmitterSubscription.remove();\n } else {\n DeviceEventEmitter.removeListener(\n HMSUpdateListenerActions.ON_SESSION_STORE_CHANGED,\n this._deviceEventEmitterListener\n );\n }\n\n this._deviceEventEmitterSubscription = undefined;\n\n this._eventEmitter = undefined;\n }\n }\n\n private _deviceEventEmitterListener(data: {\n id: string;\n key: string;\n value: JsonValue;\n }) {\n // if id is different from default sdk_id, return early\n if (data.id !== HMSConstants.DEFAULT_SDK_ID) {\n return;\n }\n\n // emit event for the key\n getLogger()?.verbose('#Listener ON_SESSION_STORE_CHANGED event: ', data);\n\n this._eventEmitter?.emit(data.key, null, data);\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_reactNative","require","_HMSManagerModule","_interopRequireDefault","_HMSConstants","_HMSLogger","_HMSUpdateListenerActions","_utils","obj","__esModule","default","_defineProperty","key","value","_toPropertyKey","Object","defineProperty","enumerable","configurable","writable","t","i","_toPrimitive","r","e","Symbol","toPrimitive","call","TypeError","String","Number","HMSSessionStore","constructor","set","data","HMSManager","setSessionMetadataForKey","id","HMSConstants","DEFAULT_SDK_ID","get","getSessionMetadataForKey","addKeyChangeListener","forKeys","callback","_deviceEventEmitterSubscription","DeviceEventEmitter","addListener","HMSUpdateListenerActions","ON_SESSION_STORE_CHANGED","_deviceEventEmitterListener","bind","_eventEmitter","EventEmitter","uniqueId","join","Date","now","toString","eventEmitter","subscriptions","map","cleanupHandler","_cleanup","keys","catch","err","_addedKeyChangeListenerCount","remove","subscriptionsToRemove","length","context","forEach","subscription","removeKeyChangeListener","error","logger","getLogger","verbose","removeListener","undefined","_getLogger","_this$_eventEmitter","emit","exports"],"sources":["HMSSessionStore.ts"],"sourcesContent":["import { DeviceEventEmitter } from 'react-native';\nimport type { EmitterSubscription as RNEmitterSubscription } from 'react-native';\n\nimport HMSManager from '../modules/HMSManagerModule';\n\nimport { HMSConstants } from './HMSConstants';\nimport { getLogger } from './HMSLogger';\nimport { HMSUpdateListenerActions } from './HMSUpdateListenerActions';\nimport { EventEmitter } from '../utils';\nimport type { EmitterSubscription } from '../utils';\n\nexport type JsonPrimitive = string | number | boolean | null;\nexport type JsonMap = {\n [key: string]: JsonPrimitive | JsonMap | JsonArray;\n};\nexport type JsonArray = Array<JsonPrimitive | JsonMap | JsonArray>;\nexport type JsonValue = JsonPrimitive | JsonMap | JsonArray;\n\n/**\n * Session store is a shared realtime key-value store that is accessible by everyone in the room.\n * It can be utilized to implement features such as pinned text, spotlight (which brings a particular\n * peer to the center stage for everyone in the room) and more.\n *\n * To get an instance of `HMSSessionStore` class, You can add an event listener for `ON_SESSION_STORE_AVAILABLE`\n * event on the `HMSSDK` instance\n *\n * For example:\n * ```\n * hmsInstance.addEventListener(HMSUpdateListenerActions.ON_SESSION_STORE_AVAILABLE, <your callback function>);\n * ```\n *\n * Checkout Session Store docs fore more details ${@link https://www.100ms.live/docs/react-native/v2/how-to-guides/interact-with-room/room/session-store}\n */\nexport class HMSSessionStore {\n private _deviceEventEmitterSubscription?: RNEmitterSubscription;\n private _eventEmitter?: EventEmitter;\n private _addedKeyChangeListenerCount = 0;\n\n /**\n * This method sets a value for a specific key on session store.\n * Once a value is assigned, it will be available for other peers in the room\n * who are listening for changes in value for that specific key.\n *\n * @param {JsonValue} value\n * @param {string} key\n * @returns {Promise}\n */\n async set(value: JsonValue, key: string) {\n const data: { success: true } = await HMSManager.setSessionMetadataForKey({\n id: HMSConstants.DEFAULT_SDK_ID,\n key,\n value,\n });\n return data;\n }\n\n /**\n * This method returns the value of any specified key on session store.\n * Note that you will not get updates for any change in value of the specified key,\n * It returns the latest value at the time it was called.\n *\n * To listen to value change updates use `addKeyChangeListener` method instead.\n *\n * @param {string} key\n * @returns {Promise}\n */\n async get(key: string) {\n const data: JsonValue = await HMSManager.getSessionMetadataForKey({\n id: HMSConstants.DEFAULT_SDK_ID,\n key,\n });\n return data;\n }\n\n /**\n * This method registers a callback function for listening to value changes of a particular key.\n * Registered Callback function will be called initially with latest value and whenever the value updates\n *\n * @param {string[]} forKeys\n * @param {Function} callback\n * @returns {Object} subscription object\n */\n addKeyChangeListener<T extends string[]>(\n forKeys: T,\n callback: (\n error: string | null,\n data: { key: T[number]; value: JsonValue } | null\n ) => void\n ) {\n // Add Native Device Event Emitter if it is not already added\n if (!this._deviceEventEmitterSubscription) {\n this._deviceEventEmitterSubscription = DeviceEventEmitter.addListener(\n HMSUpdateListenerActions.ON_SESSION_STORE_CHANGED,\n this._deviceEventEmitterListener.bind(this)\n );\n }\n\n // Create JS side EventEmitter\n if (!this._eventEmitter) {\n this._eventEmitter = new EventEmitter();\n }\n\n // Unique Identifier for adding native event listener\n const uniqueId = forKeys.join('') + '_' + Date.now().toString();\n\n const eventEmitter = this._eventEmitter;\n\n // Add listeners on eventEmitter for each key\n const subscriptions = forKeys.map((key) =>\n eventEmitter.addListener(key, callback, { uniqueId })\n );\n\n //\n let cleanupHandler: (() => void) | null = () => {\n this._cleanup(subscriptions);\n };\n\n // Adding 'KeyChangeListener' on native side\n HMSManager.addKeyChangeListener({\n id: HMSConstants.DEFAULT_SDK_ID,\n keys: forKeys,\n uniqueId,\n })\n // Adding 'KeyChangeListener' fails on native side\n .catch((err: any) => {\n if (typeof cleanupHandler === 'function') {\n callback(err, null);\n cleanupHandler();\n cleanupHandler = null;\n }\n });\n\n this._addedKeyChangeListenerCount += 1;\n\n return {\n remove: () => {\n if (typeof cleanupHandler === 'function') {\n cleanupHandler();\n cleanupHandler = null;\n }\n },\n };\n }\n\n private _cleanup(subscriptionsToRemove: EmitterSubscription[]) {\n // Extracting `uniqueId` from first subscription (all subscriptions have same uniqueId)\n // this `uniqueId` will be used to remove 'KeyChangeListener' from native side\n const uniqueId =\n subscriptionsToRemove.length > 0\n ? (subscriptionsToRemove[0]!.context as { uniqueId: string }).uniqueId\n : null;\n\n // Removing required subscriptions from 'eventEmitter'\n subscriptionsToRemove.forEach((subscription) => subscription.remove());\n\n // Removing 'KeyChangeListener' from native side\n HMSManager.removeKeyChangeListener({\n id: HMSConstants.DEFAULT_SDK_ID,\n uniqueId,\n }).catch((error: any) => {\n const logger = getLogger();\n logger?.verbose(\n \"Error while removing key change listener, Listener didn't get registerred at first place or was already removed\",\n error\n );\n });\n\n this._addedKeyChangeListenerCount -= 1;\n\n if (this._addedKeyChangeListenerCount <= 0) {\n this._addedKeyChangeListenerCount = 0;\n if (\n this._deviceEventEmitterSubscription &&\n typeof this._deviceEventEmitterSubscription.remove === 'function'\n ) {\n this._deviceEventEmitterSubscription.remove();\n } else {\n DeviceEventEmitter.removeListener(\n HMSUpdateListenerActions.ON_SESSION_STORE_CHANGED,\n this._deviceEventEmitterListener\n );\n }\n\n this._deviceEventEmitterSubscription = undefined;\n\n this._eventEmitter = undefined;\n }\n }\n\n private _deviceEventEmitterListener(data: {\n id: string;\n key: string;\n value: JsonValue;\n }) {\n // if id is different from default sdk_id, return early\n if (data.id !== HMSConstants.DEFAULT_SDK_ID) {\n return;\n }\n\n // emit event for the key\n getLogger()?.verbose('#Listener ON_SESSION_STORE_CHANGED event: ', data);\n\n this._eventEmitter?.emit(data.key, null, data);\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -13,8 +13,6 @@ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e =
13
13
  * Checkout Track Settings docs for more details {@link https://www.100ms.live/docs/react-native/v2/how-to-guides/interact-with-room/track/track-settings}
14
14
  */
15
15
  class HMSVideoTrackSettings {
16
- // android only
17
-
18
16
  constructor(params) {
19
17
  _defineProperty(this, "simulcastSettings", void 0);
20
18
  _defineProperty(this, "initialState", void 0);
@@ -22,11 +20,14 @@ class HMSVideoTrackSettings {
22
20
  _defineProperty(this, "forceSoftwareDecoder", void 0);
23
21
  // android only
24
22
  _defineProperty(this, "disableAutoResize", void 0);
23
+ // android only
24
+ _defineProperty(this, "videoPlugin", void 0);
25
25
  this.simulcastSettings = params.simulcastSettings;
26
26
  this.initialState = params.initialState;
27
27
  this.cameraFacing = params.cameraFacing;
28
28
  this.forceSoftwareDecoder = params.forceSoftwareDecoder;
29
29
  this.disableAutoResize = params.disableAutoResize;
30
+ this.videoPlugin = params.videoPlugin;
30
31
  }
31
32
  }
32
33
  exports.HMSVideoTrackSettings = HMSVideoTrackSettings;
@@ -1 +1 @@
1
- {"version":3,"names":["HMSVideoTrackSettings","constructor","params","_defineProperty","simulcastSettings","initialState","cameraFacing","forceSoftwareDecoder","disableAutoResize","exports"],"sources":["HMSVideoTrackSettings.ts"],"sourcesContent":["import type { HMSSimulcastLayerSettings } from './HMSSimulcastLayerSettings';\nimport type { HMSCameraFacing } from './HMSCameraFacing';\nimport type { HMSTrackSettingsInitState } from './HMSTrackSettingsInitState';\n\n/**\n * Customize local peer's Video track settings before Joining the Room.\n *\n * Checkout Track Settings docs for more details {@link https://www.100ms.live/docs/react-native/v2/how-to-guides/interact-with-room/track/track-settings}\n */\nexport class HMSVideoTrackSettings {\n readonly simulcastSettings?: HMSSimulcastLayerSettings[];\n initialState?: HMSTrackSettingsInitState;\n cameraFacing?: HMSCameraFacing;\n forceSoftwareDecoder?: boolean; // android only\n disableAutoResize?: boolean; // android only\n\n constructor(params: {\n simulcastSettings?: HMSSimulcastLayerSettings[];\n initialState?: HMSTrackSettingsInitState;\n cameraFacing?: HMSCameraFacing;\n forceSoftwareDecoder?: boolean;\n disableAutoResize?: boolean;\n }) {\n this.simulcastSettings = params.simulcastSettings;\n this.initialState = params.initialState;\n this.cameraFacing = params.cameraFacing;\n this.forceSoftwareDecoder = params.forceSoftwareDecoder;\n this.disableAutoResize = params.disableAutoResize;\n }\n}\n"],"mappings":";;;;;;;;;AAIA;AACA;AACA;AACA;AACA;AACO,MAAMA,qBAAqB,CAAC;EAKJ;;EAE7BC,WAAWA,CAACC,MAMX,EAAE;IAAAC,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAT6B;IAAAA,eAAA;IAU9B,IAAI,CAACC,iBAAiB,GAAGF,MAAM,CAACE,iBAAiB;IACjD,IAAI,CAACC,YAAY,GAAGH,MAAM,CAACG,YAAY;IACvC,IAAI,CAACC,YAAY,GAAGJ,MAAM,CAACI,YAAY;IACvC,IAAI,CAACC,oBAAoB,GAAGL,MAAM,CAACK,oBAAoB;IACvD,IAAI,CAACC,iBAAiB,GAAGN,MAAM,CAACM,iBAAiB;EACnD;AACF;AAACC,OAAA,CAAAT,qBAAA,GAAAA,qBAAA","ignoreList":[]}
1
+ {"version":3,"names":["HMSVideoTrackSettings","constructor","params","_defineProperty","simulcastSettings","initialState","cameraFacing","forceSoftwareDecoder","disableAutoResize","videoPlugin","exports"],"sources":["HMSVideoTrackSettings.ts"],"sourcesContent":["import type { ImageURISource, ImageRequireSource } from 'react-native';\nimport type { HMSSimulcastLayerSettings } from './HMSSimulcastLayerSettings';\nimport type { HMSCameraFacing } from './HMSCameraFacing';\nimport type { HMSTrackSettingsInitState } from './HMSTrackSettingsInitState';\n\nexport declare class HMSVirtualBackgroundPlugin {\n static NAME: string;\n constructor();\n enable(): Promise<boolean>;\n disable(): Promise<boolean>;\n setBlur(blurRadius: number): Promise<boolean>;\n setBackground(\n backgroundImage: ImageURISource | ImageRequireSource\n ): Promise<boolean>;\n}\n\n/**\n * Customize local peer's Video track settings before Joining the Room.\n *\n * Checkout Track Settings docs for more details {@link https://www.100ms.live/docs/react-native/v2/how-to-guides/interact-with-room/track/track-settings}\n */\nexport class HMSVideoTrackSettings {\n readonly simulcastSettings?: HMSSimulcastLayerSettings[];\n initialState?: HMSTrackSettingsInitState;\n cameraFacing?: HMSCameraFacing;\n forceSoftwareDecoder?: boolean; // android only\n disableAutoResize?: boolean; // android only\n videoPlugin?: HMSVirtualBackgroundPlugin;\n\n constructor(params: {\n simulcastSettings?: HMSSimulcastLayerSettings[];\n initialState?: HMSTrackSettingsInitState;\n cameraFacing?: HMSCameraFacing;\n forceSoftwareDecoder?: boolean;\n disableAutoResize?: boolean;\n videoPlugin?: HMSVirtualBackgroundPlugin;\n }) {\n this.simulcastSettings = params.simulcastSettings;\n this.initialState = params.initialState;\n this.cameraFacing = params.cameraFacing;\n this.forceSoftwareDecoder = params.forceSoftwareDecoder;\n this.disableAutoResize = params.disableAutoResize;\n this.videoPlugin = params.videoPlugin;\n }\n}\n"],"mappings":";;;;;;;;;AAgBA;AACA;AACA;AACA;AACA;AACO,MAAMA,qBAAqB,CAAC;EAQjCC,WAAWA,CAACC,MAOX,EAAE;IAAAC,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAX6B;IAAAA,eAAA;IACH;IAAAA,eAAA;IAW3B,IAAI,CAACC,iBAAiB,GAAGF,MAAM,CAACE,iBAAiB;IACjD,IAAI,CAACC,YAAY,GAAGH,MAAM,CAACG,YAAY;IACvC,IAAI,CAACC,YAAY,GAAGJ,MAAM,CAACI,YAAY;IACvC,IAAI,CAACC,oBAAoB,GAAGL,MAAM,CAACK,oBAAoB;IACvD,IAAI,CAACC,iBAAiB,GAAGN,MAAM,CAACM,iBAAiB;IACjD,IAAI,CAACC,WAAW,GAAGP,MAAM,CAACO,WAAW;EACvC;AACF;AAACC,OAAA,CAAAV,qBAAA,GAAAA,qBAAA","ignoreList":[]}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ //# sourceMappingURL=HMSWhiteboard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sources":["HMSWhiteboard.tsx"],"sourcesContent":["import type { HMSPeer } from '../HMSPeer';\nimport type { HMSWhiteboardState } from './HMSWhiteboardState';\n\nexport interface HMSWhiteboard {\n id: string;\n\n title?: string;\n\n state: HMSWhiteboardState;\n\n isOwner: boolean;\n\n owner?: HMSPeer;\n\n url?: string;\n}\n"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.HMSWhiteboardListenerActions = void 0;
7
+ let HMSWhiteboardListenerActions = exports.HMSWhiteboardListenerActions = /*#__PURE__*/function (HMSWhiteboardListenerActions) {
8
+ HMSWhiteboardListenerActions["ON_WHITEBOARD_UPDATE"] = "ON_WHITEBOARD_UPDATE";
9
+ return HMSWhiteboardListenerActions;
10
+ }({});
11
+ //# sourceMappingURL=HMSWhiteboardListenerActions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["HMSWhiteboardListenerActions","exports"],"sources":["HMSWhiteboardListenerActions.ts"],"sourcesContent":["export enum HMSWhiteboardListenerActions {\n ON_WHITEBOARD_UPDATE = 'ON_WHITEBOARD_UPDATE',\n}\n"],"mappings":";;;;;;IAAYA,4BAA4B,GAAAC,OAAA,CAAAD,4BAAA,0BAA5BA,4BAA4B;EAA5BA,4BAA4B;EAAA,OAA5BA,4BAA4B;AAAA","ignoreList":[]}
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.HMSWhiteboardState = void 0;
7
+ let HMSWhiteboardState = exports.HMSWhiteboardState = /*#__PURE__*/function (HMSWhiteboardState) {
8
+ HMSWhiteboardState["STARTED"] = "STARTED";
9
+ HMSWhiteboardState["STOPPED"] = "STOPPED";
10
+ return HMSWhiteboardState;
11
+ }({});
12
+ //# sourceMappingURL=HMSWhiteboardState.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["HMSWhiteboardState","exports"],"sources":["HMSWhiteboardState.tsx"],"sourcesContent":["export enum HMSWhiteboardState {\n STARTED = 'STARTED',\n STOPPED = 'STOPPED',\n}\n"],"mappings":";;;;;;IAAYA,kBAAkB,GAAAC,OAAA,CAAAD,kBAAA,0BAAlBA,kBAAkB;EAAlBA,kBAAkB;EAAlBA,kBAAkB;EAAA,OAAlBA,kBAAkB;AAAA","ignoreList":[]}