mediasfu-angular 1.0.2 → 2.0.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 (281) hide show
  1. package/README.md +678 -578
  2. package/dist/README.md +677 -578
  3. package/dist/fesm2022/mediasfu-angular.mjs +5551 -2944
  4. package/dist/fesm2022/mediasfu-angular.mjs.map +1 -1
  5. package/dist/lib/@types/types.d.ts +22 -1
  6. package/dist/lib/components/breakout-components/breakout-rooms-modal.component.d.ts +1 -0
  7. package/dist/lib/components/mediasfu-components/mediasfu-broadcast.component.d.ts +153 -61
  8. package/dist/lib/components/mediasfu-components/mediasfu-chat.component.d.ts +154 -66
  9. package/dist/lib/components/mediasfu-components/mediasfu-conference.component.d.ts +190 -76
  10. package/dist/lib/components/mediasfu-components/mediasfu-generic.component.d.ts +184 -70
  11. package/dist/lib/components/mediasfu-components/mediasfu-webinar.component.d.ts +192 -78
  12. package/dist/lib/components/menu-components/menu-modal/menu-modal.component.d.ts +6 -1
  13. package/dist/lib/components/menu-components/share-buttons-component/share-buttons-component.component.d.ts +5 -2
  14. package/dist/lib/components/misc-components/confirm-here-modal/confirm-here-modal.component.d.ts +4 -2
  15. package/dist/lib/components/misc-components/pre-join-page/pre-join-page.component.d.ts +71 -66
  16. package/dist/lib/components/misc-components/share-event-modal/share-event-modal.component.d.ts +5 -1
  17. package/dist/lib/consumers/connect-local-ips.service.d.ts +81 -0
  18. package/dist/lib/consumers/connect-send-transport-audio.service.d.ts +43 -11
  19. package/dist/lib/consumers/connect-send-transport-screen.service.d.ts +87 -46
  20. package/dist/lib/consumers/connect-send-transport-video.service.d.ts +89 -43
  21. package/dist/lib/consumers/connect-send-transport.service.d.ts +5 -1
  22. package/dist/lib/consumers/create-send-transport.service.d.ts +130 -40
  23. package/dist/lib/consumers/disconnect-send-transport-audio.service.d.ts +77 -40
  24. package/dist/lib/consumers/disconnect-send-transport-screen.service.d.ts +48 -14
  25. package/dist/lib/consumers/disconnect-send-transport-video.service.d.ts +81 -44
  26. package/dist/lib/consumers/get-piped-producers-alt.service.d.ts +5 -1
  27. package/dist/lib/consumers/receive-all-piped-transports.service.d.ts +5 -1
  28. package/dist/lib/consumers/resume-send-transport-audio.service.d.ts +54 -21
  29. package/dist/lib/consumers/stream-success-audio-switch.service.d.ts +124 -40
  30. package/dist/lib/consumers/trigger.service.d.ts +3 -0
  31. package/dist/lib/methods/exit-methods/confirm-exit.service.d.ts +5 -1
  32. package/dist/lib/methods/recording-methods/start-recording.service.d.ts +3 -0
  33. package/dist/lib/methods/recording-methods/stop-recording.service.d.ts +4 -1
  34. package/dist/lib/methods/recording-methods/update-recording.service.d.ts +3 -0
  35. package/dist/lib/methods/stream-methods/click-audio.service.d.ts +3 -0
  36. package/dist/lib/methods/utils/check-limits-and-make-request.service.d.ts +23 -0
  37. package/dist/lib/methods/utils/create-response-join-room.util.d.ts +33 -0
  38. package/dist/lib/methods/utils/create-room-on-media-sfu.service.d.ts +25 -0
  39. package/dist/lib/methods/utils/initial-values.util.d.ts +6 -0
  40. package/dist/lib/methods/utils/join-room-on-media-sfu.service.d.ts +52 -0
  41. package/dist/lib/methods/whiteboard-methods/capture-canvas-stream.service.d.ts +37 -20
  42. package/dist/lib/producers/producer-emits/join-local-room.service.d.ts +125 -0
  43. package/dist/lib/producers/socket-receive-methods/all-members-rest.service.d.ts +7 -2
  44. package/dist/lib/producers/socket-receive-methods/all-members.service.d.ts +7 -2
  45. package/dist/lib/producers/socket-receive-methods/disconnect-user-self.service.d.ts +5 -1
  46. package/dist/lib/sockets/socket-manager.service.d.ts +90 -0
  47. package/dist/public-api.d.ts +11 -1
  48. package/package.json +17 -20
  49. package/dist/esm2022/lib/@types/types.mjs +0 -2
  50. package/dist/esm2022/lib/components/background-components/background-modal/background-modal.component.mjs +0 -799
  51. package/dist/esm2022/lib/components/breakout-components/breakout-rooms-modal.component.mjs +0 -366
  52. package/dist/esm2022/lib/components/breakout-components/edit-room-modal/edit-room-modal.component.mjs +0 -143
  53. package/dist/esm2022/lib/components/breakout-components/room-list/room-list.component.mjs +0 -40
  54. package/dist/esm2022/lib/components/co-host-components/co-host-modal/co-host-modal.component.mjs +0 -245
  55. package/dist/esm2022/lib/components/display-components/alert-component/alert.component.component.mjs +0 -79
  56. package/dist/esm2022/lib/components/display-components/audio-card/audio-card.component.mjs +0 -356
  57. package/dist/esm2022/lib/components/display-components/audio-grid/audio-grid.component.mjs +0 -80
  58. package/dist/esm2022/lib/components/display-components/card-video-display/card-video-display.component.mjs +0 -129
  59. package/dist/esm2022/lib/components/display-components/control-buttons-alt-component/control-buttons-alt-component.component.mjs +0 -138
  60. package/dist/esm2022/lib/components/display-components/control-buttons-component/control-buttons-component.component.mjs +0 -231
  61. package/dist/esm2022/lib/components/display-components/control-buttons-component-touch/control-buttons-component-touch.component.mjs +0 -282
  62. package/dist/esm2022/lib/components/display-components/control-widgets/menu-participants-widget.component.mjs +0 -82
  63. package/dist/esm2022/lib/components/display-components/control-widgets/menu-record-widget.component.mjs +0 -65
  64. package/dist/esm2022/lib/components/display-components/control-widgets/menu-widget.component.mjs +0 -137
  65. package/dist/esm2022/lib/components/display-components/control-widgets/message-widget.component.mjs +0 -137
  66. package/dist/esm2022/lib/components/display-components/control-widgets/record-timer-widget.component.mjs +0 -51
  67. package/dist/esm2022/lib/components/display-components/control-widgets/screenshare-widget.component.mjs +0 -101
  68. package/dist/esm2022/lib/components/display-components/flexible-grid/flexible-grid.component.mjs +0 -151
  69. package/dist/esm2022/lib/components/display-components/flexible-video/flexible-video.component.mjs +0 -250
  70. package/dist/esm2022/lib/components/display-components/loading-modal/loading-modal.component.mjs +0 -102
  71. package/dist/esm2022/lib/components/display-components/main-aspect-component/main-aspect-component.component.mjs +0 -140
  72. package/dist/esm2022/lib/components/display-components/main-container-component/main-container-component.component.mjs +0 -131
  73. package/dist/esm2022/lib/components/display-components/main-grid-component/main-grid-component.component.mjs +0 -120
  74. package/dist/esm2022/lib/components/display-components/main-screen-component/main-screen-component.component.mjs +0 -201
  75. package/dist/esm2022/lib/components/display-components/meeting-progress-timer/meeting-progress-timer.component.mjs +0 -115
  76. package/dist/esm2022/lib/components/display-components/mini-audio/mini-audio.component.mjs +0 -319
  77. package/dist/esm2022/lib/components/display-components/mini-card/mini-card.component.mjs +0 -161
  78. package/dist/esm2022/lib/components/display-components/mini-card-audio/mini-card-audio.component.mjs +0 -230
  79. package/dist/esm2022/lib/components/display-components/other-grid-component/other-grid-component.component.mjs +0 -126
  80. package/dist/esm2022/lib/components/display-components/pagination/pagination.component.mjs +0 -334
  81. package/dist/esm2022/lib/components/display-components/sub-aspect-component/sub-aspect-component.component.mjs +0 -112
  82. package/dist/esm2022/lib/components/display-components/video-card/video-card.component.mjs +0 -392
  83. package/dist/esm2022/lib/components/display-settings-components/display-settings-modal.component.mjs +0 -106
  84. package/dist/esm2022/lib/components/event-settings-components/event-settings-modal/event-settings-modal.component.mjs +0 -199
  85. package/dist/esm2022/lib/components/exit-components/confirm-exit-modal/confirm-exit-modal.component.mjs +0 -132
  86. package/dist/esm2022/lib/components/media-settings-components/media-settings-modal/media-settings-modal.component.mjs +0 -220
  87. package/dist/esm2022/lib/components/mediasfu-components/mediasfu-broadcast.component.mjs +0 -4238
  88. package/dist/esm2022/lib/components/mediasfu-components/mediasfu-chat.component.mjs +0 -3754
  89. package/dist/esm2022/lib/components/mediasfu-components/mediasfu-conference.component.mjs +0 -5071
  90. package/dist/esm2022/lib/components/mediasfu-components/mediasfu-generic.component.mjs +0 -5380
  91. package/dist/esm2022/lib/components/mediasfu-components/mediasfu-webinar.component.mjs +0 -5068
  92. package/dist/esm2022/lib/components/menu-components/custom-buttons/custom-buttons.component.mjs +0 -83
  93. package/dist/esm2022/lib/components/menu-components/meeting-id-component/meeting-id-component.component.mjs +0 -27
  94. package/dist/esm2022/lib/components/menu-components/meeting-passcode-component/meeting-passcode-component.component.mjs +0 -27
  95. package/dist/esm2022/lib/components/menu-components/menu-modal/menu-modal.component.mjs +0 -125
  96. package/dist/esm2022/lib/components/menu-components/share-buttons-component/share-buttons-component.component.mjs +0 -106
  97. package/dist/esm2022/lib/components/message-components/message-panel/message-panel.component.mjs +0 -228
  98. package/dist/esm2022/lib/components/message-components/messages-modal/messages-modal.component.mjs +0 -277
  99. package/dist/esm2022/lib/components/misc-components/confirm-here-modal/confirm-here-modal.component.mjs +0 -130
  100. package/dist/esm2022/lib/components/misc-components/pre-join-page/pre-join-page.component.mjs +0 -343
  101. package/dist/esm2022/lib/components/misc-components/share-event-modal/share-event-modal.component.mjs +0 -127
  102. package/dist/esm2022/lib/components/misc-components/welcome-page/welcome-page.component.mjs +0 -241
  103. package/dist/esm2022/lib/components/participants-components/participant-list/participant-list.component.mjs +0 -82
  104. package/dist/esm2022/lib/components/participants-components/participant-list-item/participant-list-item.component.mjs +0 -139
  105. package/dist/esm2022/lib/components/participants-components/participant-list-others/participant-list-others.component.mjs +0 -40
  106. package/dist/esm2022/lib/components/participants-components/participant-list-others-item/participant-list-others-item.component.mjs +0 -60
  107. package/dist/esm2022/lib/components/participants-components/participants-modal/participants-modal.component.mjs +0 -124
  108. package/dist/esm2022/lib/components/polls-components/poll-modal/poll-modal.component.mjs +0 -201
  109. package/dist/esm2022/lib/components/recording-components/advanced-panel-component/advanced-panel-components.component.mjs +0 -92
  110. package/dist/esm2022/lib/components/recording-components/recording-modal/recording-modal.component.mjs +0 -133
  111. package/dist/esm2022/lib/components/recording-components/standard-panel-component/standard-panel-component.component.mjs +0 -90
  112. package/dist/esm2022/lib/components/requests-components/render-request-component/render-request-component.component.mjs +0 -81
  113. package/dist/esm2022/lib/components/requests-components/requests-modal/requests-modal.component.mjs +0 -147
  114. package/dist/esm2022/lib/components/screenboard-components/screenboard/screenboard.component.mjs +0 -627
  115. package/dist/esm2022/lib/components/screenboard-components/screenboard-modal/screenboard-modal.component.mjs +0 -391
  116. package/dist/esm2022/lib/components/waiting-components/waiting-room-modal.component.mjs +0 -201
  117. package/dist/esm2022/lib/components/whiteboard-components/configure-whiteboard-modal/configure-whiteboard-modal.component.mjs +0 -286
  118. package/dist/esm2022/lib/components/whiteboard-components/whiteboard/whiteboard.component.mjs +0 -1833
  119. package/dist/esm2022/lib/consumers/add-videos-grid.service.mjs +0 -345
  120. package/dist/esm2022/lib/consumers/auto-adjust.service.mjs +0 -109
  121. package/dist/esm2022/lib/consumers/calculate-rows-and-columns.service.mjs +0 -60
  122. package/dist/esm2022/lib/consumers/change-vids.service.mjs +0 -551
  123. package/dist/esm2022/lib/consumers/check-grid.service.mjs +0 -93
  124. package/dist/esm2022/lib/consumers/check-permission.service.mjs +0 -105
  125. package/dist/esm2022/lib/consumers/check-screen-share.service.mjs +0 -106
  126. package/dist/esm2022/lib/consumers/close-and-resize.service.mjs +0 -331
  127. package/dist/esm2022/lib/consumers/compare-active-names.service.mjs +0 -106
  128. package/dist/esm2022/lib/consumers/compare-screen-states.service.mjs +0 -98
  129. package/dist/esm2022/lib/consumers/connect-ips.service.mjs +0 -154
  130. package/dist/esm2022/lib/consumers/connect-recv-transport.service.mjs +0 -146
  131. package/dist/esm2022/lib/consumers/connect-send-transport-audio.service.mjs +0 -84
  132. package/dist/esm2022/lib/consumers/connect-send-transport-screen.service.mjs +0 -102
  133. package/dist/esm2022/lib/consumers/connect-send-transport-video.service.mjs +0 -99
  134. package/dist/esm2022/lib/consumers/connect-send-transport.service.mjs +0 -140
  135. package/dist/esm2022/lib/consumers/consumer-resume.service.mjs +0 -368
  136. package/dist/esm2022/lib/consumers/control-media.service.mjs +0 -113
  137. package/dist/esm2022/lib/consumers/create-send-transport.service.mjs +0 -172
  138. package/dist/esm2022/lib/consumers/disconnect-send-transport-audio.service.mjs +0 -108
  139. package/dist/esm2022/lib/consumers/disconnect-send-transport-screen.service.mjs +0 -84
  140. package/dist/esm2022/lib/consumers/disconnect-send-transport-video.service.mjs +0 -101
  141. package/dist/esm2022/lib/consumers/disp-streams.service.mjs +0 -513
  142. package/dist/esm2022/lib/consumers/generate-page-content.service.mjs +0 -106
  143. package/dist/esm2022/lib/consumers/get-estimate.service.mjs +0 -120
  144. package/dist/esm2022/lib/consumers/get-piped-producers-alt.service.mjs +0 -82
  145. package/dist/esm2022/lib/consumers/get-producers-piped.service.mjs +0 -79
  146. package/dist/esm2022/lib/consumers/get-videos.service.mjs +0 -91
  147. package/dist/esm2022/lib/consumers/mix-streams.service.mjs +0 -95
  148. package/dist/esm2022/lib/consumers/on-screen-changes.service.mjs +0 -103
  149. package/dist/esm2022/lib/consumers/prepopulate-user-media.service.mjs +0 -541
  150. package/dist/esm2022/lib/consumers/process-consumer-transports-audio.service.mjs +0 -101
  151. package/dist/esm2022/lib/consumers/process-consumer-transports.service.mjs +0 -128
  152. package/dist/esm2022/lib/consumers/re-port.service.mjs +0 -114
  153. package/dist/esm2022/lib/consumers/re-update-inter.service.mjs +0 -239
  154. package/dist/esm2022/lib/consumers/readjust.service.mjs +0 -173
  155. package/dist/esm2022/lib/consumers/receive-all-piped-transports.service.mjs +0 -87
  156. package/dist/esm2022/lib/consumers/receive-room-messages.service.mjs +0 -69
  157. package/dist/esm2022/lib/consumers/reorder-streams.service.mjs +0 -239
  158. package/dist/esm2022/lib/consumers/request-screen-share.service.mjs +0 -101
  159. package/dist/esm2022/lib/consumers/resume-pause-audio-streams.service.mjs +0 -150
  160. package/dist/esm2022/lib/consumers/resume-pause-streams.service.mjs +0 -103
  161. package/dist/esm2022/lib/consumers/resume-send-transport-audio.service.mjs +0 -91
  162. package/dist/esm2022/lib/consumers/signal-new-consumer-transport.service.mjs +0 -136
  163. package/dist/esm2022/lib/consumers/socket-receive-methods/join-consume-room.service.mjs +0 -96
  164. package/dist/esm2022/lib/consumers/socket-receive-methods/new-pipe-producer.service.mjs +0 -100
  165. package/dist/esm2022/lib/consumers/socket-receive-methods/producer-closed.service.mjs +0 -78
  166. package/dist/esm2022/lib/consumers/start-share-screen.service.mjs +0 -120
  167. package/dist/esm2022/lib/consumers/stop-share-screen.service.mjs +0 -175
  168. package/dist/esm2022/lib/consumers/stream-success-audio-switch.service.mjs +0 -185
  169. package/dist/esm2022/lib/consumers/stream-success-audio.service.mjs +0 -210
  170. package/dist/esm2022/lib/consumers/stream-success-screen.service.mjs +0 -193
  171. package/dist/esm2022/lib/consumers/stream-success-video.service.mjs +0 -260
  172. package/dist/esm2022/lib/consumers/switch-user-audio.service.mjs +0 -120
  173. package/dist/esm2022/lib/consumers/switch-user-video-alt.service.mjs +0 -260
  174. package/dist/esm2022/lib/consumers/switch-user-video.service.mjs +0 -172
  175. package/dist/esm2022/lib/consumers/trigger.service.mjs +0 -210
  176. package/dist/esm2022/lib/consumers/update-mini-cards-grid.service.mjs +0 -135
  177. package/dist/esm2022/lib/consumers/update-participant-audio-decibels.service.mjs +0 -84
  178. package/dist/esm2022/lib/methods/background-methods/launch-background.service.mjs +0 -48
  179. package/dist/esm2022/lib/methods/breakout-room-methods/breakout-room-updated.service.mjs +0 -183
  180. package/dist/esm2022/lib/methods/breakout-room-methods/launch-breakout-rooms.service.mjs +0 -46
  181. package/dist/esm2022/lib/methods/co-host-methods/launch-co-host.service.mjs +0 -46
  182. package/dist/esm2022/lib/methods/co-host-methods/modify-co-host-settings.service.mjs +0 -104
  183. package/dist/esm2022/lib/methods/display-settings-methods/launch-display-settings.service.mjs +0 -46
  184. package/dist/esm2022/lib/methods/display-settings-methods/modify-display-settings.service.mjs +0 -194
  185. package/dist/esm2022/lib/methods/exit-methods/confirm-exit.service.mjs +0 -52
  186. package/dist/esm2022/lib/methods/exit-methods/launch-confirm-exit.service.mjs +0 -42
  187. package/dist/esm2022/lib/methods/media-settings-methods/launch-media-settings.service.mjs +0 -85
  188. package/dist/esm2022/lib/methods/menu-methods/launch-menu-modal.service.mjs +0 -44
  189. package/dist/esm2022/lib/methods/message-methods/launch-messages.service.mjs +0 -45
  190. package/dist/esm2022/lib/methods/message-methods/send-message.service.mjs +0 -143
  191. package/dist/esm2022/lib/methods/participants-methods/launch-participants.service.mjs +0 -47
  192. package/dist/esm2022/lib/methods/participants-methods/message-participants.service.mjs +0 -98
  193. package/dist/esm2022/lib/methods/participants-methods/mute-participants.service.mjs +0 -96
  194. package/dist/esm2022/lib/methods/participants-methods/remove-participants.service.mjs +0 -107
  195. package/dist/esm2022/lib/methods/polls-methods/handle-create-poll.service.mjs +0 -75
  196. package/dist/esm2022/lib/methods/polls-methods/handle-end-poll.service.mjs +0 -72
  197. package/dist/esm2022/lib/methods/polls-methods/handle-vote-poll.service.mjs +0 -83
  198. package/dist/esm2022/lib/methods/polls-methods/launch-poll.service.mjs +0 -43
  199. package/dist/esm2022/lib/methods/polls-methods/poll-updated.service.mjs +0 -95
  200. package/dist/esm2022/lib/methods/recording-methods/check-pause-state.service.mjs +0 -69
  201. package/dist/esm2022/lib/methods/recording-methods/check-resume-state.service.mjs +0 -56
  202. package/dist/esm2022/lib/methods/recording-methods/confirm-recording.service.mjs +0 -278
  203. package/dist/esm2022/lib/methods/recording-methods/launch-recording.service.mjs +0 -125
  204. package/dist/esm2022/lib/methods/recording-methods/record-pause-timer.service.mjs +0 -67
  205. package/dist/esm2022/lib/methods/recording-methods/record-resume-timer.service.mjs +0 -130
  206. package/dist/esm2022/lib/methods/recording-methods/record-start-timer.service.mjs +0 -134
  207. package/dist/esm2022/lib/methods/recording-methods/record-update-timer.service.mjs +0 -80
  208. package/dist/esm2022/lib/methods/recording-methods/start-recording.service.mjs +0 -197
  209. package/dist/esm2022/lib/methods/recording-methods/stop-recording.service.mjs +0 -112
  210. package/dist/esm2022/lib/methods/recording-methods/update-recording.service.mjs +0 -272
  211. package/dist/esm2022/lib/methods/requests-methods/launch-requests.service.mjs +0 -51
  212. package/dist/esm2022/lib/methods/requests-methods/respond-to-requests.service.mjs +0 -84
  213. package/dist/esm2022/lib/methods/settings-methods/launch-settings.service.mjs +0 -51
  214. package/dist/esm2022/lib/methods/settings-methods/modify-settings.service.mjs +0 -109
  215. package/dist/esm2022/lib/methods/stream-methods/click-audio.service.mjs +0 -275
  216. package/dist/esm2022/lib/methods/stream-methods/click-chat.service.mjs +0 -75
  217. package/dist/esm2022/lib/methods/stream-methods/click-screen-share.service.mjs +0 -178
  218. package/dist/esm2022/lib/methods/stream-methods/click-video.service.mjs +0 -271
  219. package/dist/esm2022/lib/methods/stream-methods/switch-audio.service.mjs +0 -80
  220. package/dist/esm2022/lib/methods/stream-methods/switch-video-alt.service.mjs +0 -116
  221. package/dist/esm2022/lib/methods/stream-methods/switch-video.service.mjs +0 -132
  222. package/dist/esm2022/lib/methods/utils/format-number.service.mjs +0 -57
  223. package/dist/esm2022/lib/methods/utils/generate-random-messages.service.mjs +0 -120
  224. package/dist/esm2022/lib/methods/utils/generate-random-participants.service.mjs +0 -126
  225. package/dist/esm2022/lib/methods/utils/generate-random-polls.service.mjs +0 -78
  226. package/dist/esm2022/lib/methods/utils/generate-random-request-list.service.mjs +0 -90
  227. package/dist/esm2022/lib/methods/utils/generate-random-waiting-room-list.service.mjs +0 -59
  228. package/dist/esm2022/lib/methods/utils/get-modal-position.util.mjs +0 -32
  229. package/dist/esm2022/lib/methods/utils/get-overlay-position.util.mjs +0 -31
  230. package/dist/esm2022/lib/methods/utils/initial-values.util.mjs +0 -379
  231. package/dist/esm2022/lib/methods/utils/meeting-timer/start-meeting-progress-timer.service.mjs +0 -96
  232. package/dist/esm2022/lib/methods/utils/mini-audio-player/mini-audio-player.component.mjs +0 -315
  233. package/dist/esm2022/lib/methods/utils/producer/a-params.service.mjs +0 -58
  234. package/dist/esm2022/lib/methods/utils/producer/h-params.service.mjs +0 -87
  235. package/dist/esm2022/lib/methods/utils/producer/screen-params.service.mjs +0 -61
  236. package/dist/esm2022/lib/methods/utils/producer/v-params.service.mjs +0 -87
  237. package/dist/esm2022/lib/methods/utils/producer/video-capture-constraints.service.mjs +0 -84
  238. package/dist/esm2022/lib/methods/utils/sleep.util.mjs +0 -17
  239. package/dist/esm2022/lib/methods/utils/sound-player.service.mjs +0 -63
  240. package/dist/esm2022/lib/methods/utils/validate-alphanumeric.service.mjs +0 -49
  241. package/dist/esm2022/lib/methods/waiting-methods/launch-waiting.service.mjs +0 -41
  242. package/dist/esm2022/lib/methods/waiting-methods/respond-to-waiting.service.mjs +0 -69
  243. package/dist/esm2022/lib/methods/whiteboard-methods/capture-canvas-stream.service.mjs +0 -98
  244. package/dist/esm2022/lib/methods/whiteboard-methods/launch-configure-whiteboard.service.mjs +0 -44
  245. package/dist/esm2022/lib/producer-client/producer-client-emits/create-device-client.service.mjs +0 -74
  246. package/dist/esm2022/lib/producer-client/producer-client-emits/join-room-client.service.mjs +0 -96
  247. package/dist/esm2022/lib/producer-client/producer-client-emits/update-room-parameters-client.service.mjs +0 -276
  248. package/dist/esm2022/lib/producers/producer-emits/join-con-room.service.mjs +0 -152
  249. package/dist/esm2022/lib/producers/producer-emits/join-room.service.mjs +0 -152
  250. package/dist/esm2022/lib/producers/socket-receive-methods/all-members-rest.service.mjs +0 -228
  251. package/dist/esm2022/lib/producers/socket-receive-methods/all-members.service.mjs +0 -218
  252. package/dist/esm2022/lib/producers/socket-receive-methods/all-waiting-room-members.service.mjs +0 -57
  253. package/dist/esm2022/lib/producers/socket-receive-methods/ban-participant.service.mjs +0 -76
  254. package/dist/esm2022/lib/producers/socket-receive-methods/control-media-host.service.mjs +0 -183
  255. package/dist/esm2022/lib/producers/socket-receive-methods/disconnect-user-self.service.mjs +0 -50
  256. package/dist/esm2022/lib/producers/socket-receive-methods/disconnect.service.mjs +0 -64
  257. package/dist/esm2022/lib/producers/socket-receive-methods/get-domains.service.mjs +0 -78
  258. package/dist/esm2022/lib/producers/socket-receive-methods/host-request-response.service.mjs +0 -150
  259. package/dist/esm2022/lib/producers/socket-receive-methods/meeting-ended.service.mjs +0 -73
  260. package/dist/esm2022/lib/producers/socket-receive-methods/meeting-still-there.service.mjs +0 -47
  261. package/dist/esm2022/lib/producers/socket-receive-methods/meeting-time-remaining.service.mjs +0 -63
  262. package/dist/esm2022/lib/producers/socket-receive-methods/participant-requested.service.mjs +0 -63
  263. package/dist/esm2022/lib/producers/socket-receive-methods/person-joined.service.mjs +0 -54
  264. package/dist/esm2022/lib/producers/socket-receive-methods/producer-media-closed.service.mjs +0 -129
  265. package/dist/esm2022/lib/producers/socket-receive-methods/producer-media-paused.service.mjs +0 -152
  266. package/dist/esm2022/lib/producers/socket-receive-methods/producer-media-resumed.service.mjs +0 -99
  267. package/dist/esm2022/lib/producers/socket-receive-methods/re-initiate-recording.service.mjs +0 -67
  268. package/dist/esm2022/lib/producers/socket-receive-methods/receive-message.service.mjs +0 -134
  269. package/dist/esm2022/lib/producers/socket-receive-methods/recording-notice.service.mjs +0 -233
  270. package/dist/esm2022/lib/producers/socket-receive-methods/room-record-params.service.mjs +0 -121
  271. package/dist/esm2022/lib/producers/socket-receive-methods/screen-producer-id.service.mjs +0 -86
  272. package/dist/esm2022/lib/producers/socket-receive-methods/start-records.service.mjs +0 -60
  273. package/dist/esm2022/lib/producers/socket-receive-methods/stopped-recording.service.mjs +0 -62
  274. package/dist/esm2022/lib/producers/socket-receive-methods/time-left-recording.service.mjs +0 -57
  275. package/dist/esm2022/lib/producers/socket-receive-methods/update-consuming-domains.service.mjs +0 -105
  276. package/dist/esm2022/lib/producers/socket-receive-methods/update-media-settings.service.mjs +0 -66
  277. package/dist/esm2022/lib/producers/socket-receive-methods/updated-co-host.service.mjs +0 -96
  278. package/dist/esm2022/lib/producers/socket-receive-methods/user-waiting.service.mjs +0 -52
  279. package/dist/esm2022/lib/sockets/socket-manager.service.mjs +0 -113
  280. package/dist/esm2022/mediasfu-angular.mjs +0 -5
  281. package/dist/esm2022/public-api.mjs +0 -187
@@ -1,178 +0,0 @@
1
- // screen-share.service.ts
2
- import { Injectable } from '@angular/core';
3
- import * as i0 from "@angular/core";
4
- /**
5
- * Handles the action for the screen button, including starting and stopping screen sharing.
6
- *
7
- * @param {ClickScreenShareOptions} options - Options for handling the screen button action.
8
- * @param {Object} options.parameters - The parameters required for the screen share action.
9
- * @param {Function} options.parameters.showAlert - Function to show alert messages.
10
- * @param {string} options.parameters.roomName - The name of the room where the screen share is taking place.
11
- * @param {string} options.parameters.member - The member initiating the screen share.
12
- * @param {Socket} options.parameters.socket - The socket connection used for communication.
13
- * @param {string} options.parameters.islevel - The participant's level.
14
- * @param {boolean} options.parameters.youAreCoHost - Indicates if the user is a co-host.
15
- * @param {boolean} options.parameters.adminRestrictSetting - Indicates if there are restrictions set by the admin.
16
- * @param {string} options.parameters.audioSetting - Current audio setting.
17
- * @param {string} options.parameters.videoSetting - Current video setting.
18
- * @param {string} options.parameters.screenshareSetting - Current screen share setting.
19
- * @param {string} options.parameters.chatSetting - Current chat setting.
20
- * @param {boolean} options.parameters.screenAction - Indicates if a screen action is currently taking place.
21
- * @param {boolean} options.parameters.screenAlreadyOn - Indicates if screen sharing is currently active.
22
- * @param {string | null} options.parameters.screenRequestState - State of the screen share request.
23
- * @param {number} options.parameters.screenRequestTime - Timestamp of when the screen share request was made.
24
- * @param {boolean} options.parameters.audioOnlyRoom - Indicates if the room is audio-only.
25
- * @param {number} options.parameters.updateRequestIntervalSeconds - Interval time for updating request state.
26
- * @param {Function} options.parameters.updateScreenRequestState - Function to update the screen request state.
27
- * @param {Function} options.parameters.updateScreenAlreadyOn - Function to update the screen sharing status.
28
- * @param {Function} options.parameters.checkPermission - Function to check permissions for screen sharing.
29
- * @param {Function} options.parameters.checkScreenShare - Function to check and initiate screen sharing.
30
- * @param {Function} options.parameters.stopShareScreen - Function to stop screen sharing.
31
- *
32
- * @returns {Promise<void>} A promise that resolves when the screen share action has been handled.
33
- *
34
- * @remarks
35
- * This function checks the current status of screen sharing and handles the logic for starting or stopping screen sharing.
36
- * It validates permissions and room settings before allowing screen sharing to be activated or deactivated.
37
- *
38
- * @example
39
- * ```typescript
40
- * const options: ClickScreenShareOptions = {
41
- * parameters: {
42
- * showAlert: (alert) => console.log(alert.message),
43
- * roomName: 'myRoom',
44
- * member: 'John Doe',
45
- * socket: socketInstance,
46
- * islevel: '1',
47
- * youAreCoHost: false,
48
- * adminRestrictSetting: false,
49
- * audioSetting: 'on',
50
- * videoSetting: 'on',
51
- * screenshareSetting: 'off',
52
- * chatSetting: 'allow',
53
- * screenAction: false,
54
- * screenAlreadyOn: false,
55
- * screenRequestState: null,
56
- * screenRequestTime: 0,
57
- * audioOnlyRoom: false,
58
- * updateRequestIntervalSeconds: 30,
59
- * updateScreenRequestState: (state) => console.log(`Screen request state: ${state}`),
60
- * updateScreenAlreadyOn: (status) => console.log(`Screen already on: ${status}`),
61
- * checkPermission: checkPermissionFunction,
62
- * checkScreenShare: checkScreenShareFunction,
63
- * stopShareScreen: stopShareScreenFunction,
64
- * getUpdatedAllParams: () => parameters,
65
- * },
66
- * };
67
- *
68
- * const clickScreenShareService = new ClickScreenShare();
69
- * await clickScreenShareService.clickScreenShare(options);
70
- * ```
71
- */
72
- export class ClickScreenShare {
73
- /**
74
- * Handles the action for the screen button, including starting and stopping screen sharing.
75
- *
76
- * @param {ClickScreenShareParams} options - Options for handling the screen button action.
77
- * @returns {Promise<void>}
78
- */
79
- clickScreenShare = async ({ parameters }) => {
80
- parameters = { ...parameters, ...parameters.getUpdatedAllParams() };
81
- let { showAlert, roomName, member, socket, islevel, youAreCoHost, adminRestrictSetting, audioSetting, videoSetting, screenshareSetting, chatSetting, screenAction, screenAlreadyOn, screenRequestState, screenRequestTime, audioOnlyRoom, updateRequestIntervalSeconds, updateScreenRequestState, updateScreenAlreadyOn, checkPermission, checkScreenShare, stopShareScreen, } = parameters;
82
- if (audioOnlyRoom) {
83
- showAlert?.({
84
- message: 'You cannot turn on your camera in an audio-only event.',
85
- type: 'danger',
86
- duration: 3000,
87
- });
88
- return;
89
- }
90
- if (roomName.startsWith('d')) {
91
- showAlert?.({
92
- message: 'You cannot start screen share in a demo room.',
93
- type: 'danger',
94
- duration: 3000,
95
- });
96
- return;
97
- }
98
- if (screenAlreadyOn) {
99
- screenAlreadyOn = false;
100
- updateScreenAlreadyOn(screenAlreadyOn);
101
- await stopShareScreen({ parameters });
102
- }
103
- else {
104
- if (adminRestrictSetting) {
105
- showAlert?.({
106
- message: 'You cannot start screen share. Access denied by host.',
107
- type: 'danger',
108
- duration: 3000,
109
- });
110
- return;
111
- }
112
- let response = 2;
113
- if (!screenAction && islevel != '2' && !youAreCoHost) {
114
- response = await checkPermission({
115
- permissionType: 'screenshareSetting',
116
- audioSetting,
117
- videoSetting,
118
- screenshareSetting,
119
- chatSetting,
120
- });
121
- }
122
- else {
123
- response = 0;
124
- }
125
- switch (response) {
126
- case 0:
127
- checkScreenShare({ parameters });
128
- break;
129
- case 1: {
130
- if (screenRequestState === 'pending') {
131
- showAlert?.({
132
- message: 'A request is already pending. Please wait for the host to respond.',
133
- type: 'danger',
134
- duration: 3000,
135
- });
136
- return;
137
- }
138
- if (screenRequestState === 'rejected' &&
139
- Date.now() - screenRequestTime < updateRequestIntervalSeconds) {
140
- showAlert?.({
141
- message: 'You cannot send another request at this time.',
142
- type: 'danger',
143
- duration: 3000,
144
- });
145
- return;
146
- }
147
- showAlert?.({
148
- message: 'Your request has been sent to the host.',
149
- type: 'success',
150
- duration: 3000,
151
- });
152
- screenRequestState = 'pending';
153
- updateScreenRequestState(screenRequestState);
154
- let userRequest = { id: socket.id, name: member, icon: 'fa-desktop' };
155
- socket.emit('participantRequest', { userRequest, roomName });
156
- break;
157
- }
158
- case 2:
159
- showAlert?.({
160
- message: 'You are not allowed to start screen share.',
161
- type: 'danger',
162
- duration: 3000,
163
- });
164
- break;
165
- default:
166
- }
167
- }
168
- };
169
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ClickScreenShare, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
170
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ClickScreenShare, providedIn: 'root' });
171
- }
172
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ClickScreenShare, decorators: [{
173
- type: Injectable,
174
- args: [{
175
- providedIn: 'root',
176
- }]
177
- }] });
178
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpY2stc2NyZWVuLXNoYXJlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tZWRpYXNmdS1hbmd1bGFyL3NyYy9saWIvbWV0aG9kcy9zdHJlYW0tbWV0aG9kcy9jbGljay1zY3JlZW4tc2hhcmUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwwQkFBMEI7QUFDMUIsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFrRDNDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBbUVHO0FBS0gsTUFBTSxPQUFPLGdCQUFnQjtJQUMzQjs7Ozs7T0FLRztJQUNILGdCQUFnQixHQUFHLEtBQUssRUFBRSxFQUFFLFVBQVUsRUFBMkIsRUFBaUIsRUFBRTtRQUNsRixVQUFVLEdBQUcsRUFBRSxHQUFHLFVBQVUsRUFBRSxHQUFHLFVBQVUsQ0FBQyxtQkFBbUIsRUFBRSxFQUFFLENBQUM7UUFDcEUsSUFBSSxFQUNGLFNBQVMsRUFDVCxRQUFRLEVBQ1IsTUFBTSxFQUNOLE1BQU0sRUFDTixPQUFPLEVBQ1AsWUFBWSxFQUNaLG9CQUFvQixFQUNwQixZQUFZLEVBQ1osWUFBWSxFQUNaLGtCQUFrQixFQUNsQixXQUFXLEVBQ1gsWUFBWSxFQUNaLGVBQWUsRUFDZixrQkFBa0IsRUFDbEIsaUJBQWlCLEVBQ2pCLGFBQWEsRUFDYiw0QkFBNEIsRUFDNUIsd0JBQXdCLEVBQ3hCLHFCQUFxQixFQUNyQixlQUFlLEVBQ2YsZ0JBQWdCLEVBQ2hCLGVBQWUsR0FDaEIsR0FBRyxVQUFVLENBQUM7UUFFZixJQUFJLGFBQWEsRUFBRSxDQUFDO1lBQ2xCLFNBQVMsRUFBRSxDQUFDO2dCQUNWLE9BQU8sRUFBRSx3REFBd0Q7Z0JBQ2pFLElBQUksRUFBRSxRQUFRO2dCQUNkLFFBQVEsRUFBRSxJQUFJO2FBQ2Ys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QztRQUNILENBQUM7SUFDSCxDQUFDLENBQUM7dUdBbElTLGdCQUFnQjsyR0FBaEIsZ0JBQWdCLGNBRmYsTUFBTTs7MkZBRVAsZ0JBQWdCO2tCQUg1QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbIi8vIHNjcmVlbi1zaGFyZS5zZXJ2aWNlLnRzXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTb2NrZXQgfSBmcm9tICdzb2NrZXQuaW8tY2xpZW50JztcbmltcG9ydCB7XG4gIENoZWNrUGVybWlzc2lvblR5cGUsXG4gIENoZWNrU2NyZWVuU2hhcmVQYXJhbWV0ZXJzLFxuICBDaGVja1NjcmVlblNoYXJlVHlwZSxcbiAgU2hvd0FsZXJ0LFxuICBTdG9wU2hhcmVTY3JlZW5QYXJhbWV0ZXJzLFxuICBTdG9wU2hhcmVTY3JlZW5UeXBlLFxufSBmcm9tICcuLi8uLi9AdHlwZXMvdHlwZXMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIENsaWNrU2NyZWVuU2hhcmVQYXJhbWV0ZXJzXG4gIGV4dGVuZHMgQ2hlY2tTY3JlZW5TaGFyZVBhcmFtZXRlcnMsXG4gICAgU3RvcFNoYXJlU2NyZWVuUGFyYW1ldGVycyB7XG4gIHNob3dBbGVydD86IFNob3dBbGVydDtcbiAgcm9vbU5hbWU6IHN0cmluZztcbiAgbWVtYmVyOiBzdHJpbmc7XG4gIHNvY2tldDogU29ja2V0O1xuICBpc2xldmVsOiBzdHJpbmc7XG4gIHlvdUFyZUNvSG9zdDogYm9vbGVhbjtcbiAgYWRtaW5SZXN0cmljdFNldHRpbmc6IGJvb2xlYW47XG4gIGF1ZGlvU2V0dGluZzogc3RyaW5nO1xuICB2aWRlb1NldHRpbmc6IHN0cmluZztcbiAgc2NyZWVuc2hhcmVTZXR0aW5nOiBzdHJpbmc7XG4gIGNoYXRTZXR0aW5nOiBzdHJpbmc7XG4gIHNjcmVlbkFjdGlvbjogYm9vbGVhbjtcbiAgc2NyZWVuQWxyZWFkeU9uOiBib29sZWFuO1xuICBzY3JlZW5SZXF1ZXN0U3RhdGU6IHN0cmluZyB8IG51bGw7XG4gIHNjcmVlblJlcXVlc3RUaW1lOiBudW1iZXI7XG4gIGF1ZGlvT25seVJvb206IGJvb2xlYW47XG4gIHVwZGF0ZVJlcXVlc3RJbnRlcnZhbFNlY29uZHM6IG51bWJlcjtcbiAgdXBkYXRlU2NyZWVuUmVxdWVzdFN0YXRlOiAoc3RhdGU6IHN0cmluZyB8IG51bGwpID0+IHZvaWQ7XG4gIHVwZGF0ZVNjcmVlbkFscmVhZHlPbjogKHN0YXR1czogYm9vbGVhbikgPT4gdm9pZDtcblxuICAvLyBtZWRpYXNmdSBmdW5jdGlvbnNcbiAgY2hlY2tQZXJtaXNzaW9uOiBDaGVja1Blcm1pc3Npb25UeXBlO1xuICBjaGVja1NjcmVlblNoYXJlOiBDaGVja1NjcmVlblNoYXJlVHlwZTtcbiAgc3RvcFNoYXJlU2NyZWVuOiBTdG9wU2hhcmVTY3JlZW5UeXBlO1xuXG4gIGdldFVwZGF0ZWRBbGxQYXJhbXM6ICgpID0+IENsaWNrU2NyZWVuU2hhcmVQYXJhbWV0ZXJzO1xuICBba2V5OiBzdHJpbmddOiBhbnk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2xpY2tTY3JlZW5TaGFyZU9wdGlvbnMge1xuICBwYXJhbWV0ZXJzOiBDbGlja1NjcmVlblNoYXJlUGFyYW1ldGVycztcbn1cblxuLy8gRXhwb3J0IHRoZSB0eXBlIGRlZmluaXRpb24gZm9yIHRoZSBmdW5jdGlvblxuZXhwb3J0IHR5cGUgQ2xpY2tTY3JlZW5TaGFyZVR5cGUgPSAob3B0aW9uczogQ2xpY2tTY3JlZW5TaGFyZU9wdGlvbnMpID0+IFByb21pc2U8dm9pZD47XG5cbi8qKlxuICogSGFuZGxlcyB0aGUgYWN0aW9uIGZvciB0aGUgc2NyZWVuIGJ1dHRvbiwgaW5jbHVkaW5nIHN0YXJ0aW5nIGFuZCBzdG9wcGluZyBzY3JlZW4gc2hhcmluZy5cbiAqXG4gKiBAcGFyYW0ge0NsaWNrU2NyZWVuU2hhcmVPcHRpb25zfSBvcHRpb25zIC0gT3B0aW9ucyBmb3IgaGFuZGxpbmcgdGhlIHNjcmVlbiBidXR0b24gYWN0aW9uLlxuICogQHBhcmFtIHtPYmplY3R9IG9wdGlvbnMucGFyYW1ldGVycyAtIFRoZSBwYXJhbWV0ZXJzIHJlcXVpcmVkIGZvciB0aGUgc2NyZWVuIHNoYXJlIGFjdGlvbi5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IG9wdGlvbnMucGFyYW1ldGVycy5zaG93QWxlcnQgLSBGdW5jdGlvbiB0byBzaG93IGFsZXJ0IG1lc3NhZ2VzLlxuICogQHBhcmFtIHtzdHJpbmd9IG9wdGlvbnMucGFyYW1ldGVycy5yb29tTmFtZSAtIFRoZSBuYW1lIG9mIHRoZSByb29tIHdoZXJlIHRoZSBzY3JlZW4gc2hhcmUgaXMgdGFraW5nIHBsYWNlLlxuICogQHBhcmFtIHtzdHJpbmd9IG9wdGlvbnMucGFyYW1ldGVycy5tZW1iZXIgLSBUaGUgbWVtYmVyIGluaXRpYXRpbmcgdGhlIHNjcmVlbiBzaGFyZS5cbiAqIEBwYXJhbSB7U29ja2V0fSBvcHRpb25zLnBhcmFtZXRlcnMuc29ja2V0IC0gVGhlIHNvY2tldCBjb25uZWN0aW9uIHVzZWQgZm9yIGNvbW11bmljYXRpb24uXG4gKiBAcGFyYW0ge3N0cmluZ30gb3B0aW9ucy5wYXJhbWV0ZXJzLmlzbGV2ZWwgLSBUaGUgcGFydGljaXBhbnQncyBsZXZlbC5cbiAqIEBwYXJhbSB7Ym9vbGVhbn0gb3B0aW9ucy5wYXJhbWV0ZXJzLnlvdUFyZUNvSG9zdCAtIEluZGljYXRlcyBpZiB0aGUgdXNlciBpcyBhIGNvLWhvc3QuXG4gKiBAcGFyYW0ge2Jvb2xlYW59IG9wdGlvbnMucGFyYW1ldGVycy5hZG1pblJlc3RyaWN0U2V0dGluZyAtIEluZGljYXRlcyBpZiB0aGVyZSBhcmUgcmVzdHJpY3Rpb25zIHNldCBieSB0aGUgYWRtaW4uXG4gKiBAcGFyYW0ge3N0cmluZ30gb3B0aW9ucy5wYXJhbWV0ZXJzLmF1ZGlvU2V0dGluZyAtIEN1cnJlbnQgYXVkaW8gc2V0dGluZy5cbiAqIEBwYXJhbSB7c3RyaW5nfSBvcHRpb25zLnBhcmFtZXRlcnMudmlkZW9TZXR0aW5nIC0gQ3VycmVudCB2aWRlbyBzZXR0aW5nLlxuICogQHBhcmFtIHtzdHJpbmd9IG9wdGlvbnMucGFyYW1ldGVycy5zY3JlZW5zaGFyZVNldHRpbmcgLSBDdXJyZW50IHNjcmVlbiBzaGFyZSBzZXR0aW5nLlxuICogQHBhcmFtIHtzdHJpbmd9IG9wdGlvbnMucGFyYW1ldGVycy5jaGF0U2V0dGluZyAtIEN1cnJlbnQgY2hhdCBzZXR0aW5nLlxuICogQHBhcmFtIHtib29sZWFufSBvcHRpb25zLnBhcmFtZXRlcnMuc2NyZWVuQWN0aW9uIC0gSW5kaWNhdGVzIGlmIGEgc2NyZWVuIGFjdGlvbiBpcyBjdXJyZW50bHkgdGFraW5nIHBsYWNlLlxuICogQHBhcmFtIHtib29sZWFufSBvcHRpb25zLnBhcmFtZXRlcnMuc2NyZWVuQWxyZWFkeU9uIC0gSW5kaWNhdGVzIGlmIHNjcmVlbiBzaGFyaW5nIGlzIGN1cnJlbnRseSBhY3RpdmUuXG4gKiBAcGFyYW0ge3N0cmluZyB8IG51bGx9IG9wdGlvbnMucGFyYW1ldGVycy5zY3JlZW5SZXF1ZXN0U3RhdGUgLSBTdGF0ZSBvZiB0aGUgc2NyZWVuIHNoYXJlIHJlcXVlc3QuXG4gKiBAcGFyYW0ge251bWJlcn0gb3B0aW9ucy5wYXJhbWV0ZXJzLnNjcmVlblJlcXVlc3RUaW1lIC0gVGltZXN0YW1wIG9mIHdoZW4gdGhlIHNjcmVlbiBzaGFyZSByZXF1ZXN0IHdhcyBtYWRlLlxuICogQHBhcmFtIHtib29sZWFufSBvcHRpb25zLnBhcmFtZXRlcnMuYXVkaW9Pbmx5Um9vbSAtIEluZGljYXRlcyBpZiB0aGUgcm9vbSBpcyBhdWRpby1vbmx5LlxuICogQHBhcmFtIHtudW1iZXJ9IG9wdGlvbnMucGFyYW1ldGVycy51cGRhdGVSZXF1ZXN0SW50ZXJ2YWxTZWNvbmRzIC0gSW50ZXJ2YWwgdGltZSBmb3IgdXBkYXRpbmcgcmVxdWVzdCBzdGF0ZS5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IG9wdGlvbnMucGFyYW1ldGVycy51cGRhdGVTY3JlZW5SZXF1ZXN0U3RhdGUgLSBGdW5jdGlvbiB0byB1cGRhdGUgdGhlIHNjcmVlbiByZXF1ZXN0IHN0YXRlLlxuICogQHBhcmFtIHtGdW5jdGlvbn0gb3B0aW9ucy5wYXJhbWV0ZXJzLnVwZGF0ZVNjcmVlbkFscmVhZHlPbiAtIEZ1bmN0aW9uIHRvIHVwZGF0ZSB0aGUgc2NyZWVuIHNoYXJpbmcgc3RhdHVzLlxuICogQHBhcmFtIHtGdW5jdGlvbn0gb3B0aW9ucy5wYXJhbWV0ZXJzLmNoZWNrUGVybWlzc2lvbiAtIEZ1bmN0aW9uIHRvIGNoZWNrIHBlcm1pc3Npb25zIGZvciBzY3JlZW4gc2hhcmluZy5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IG9wdGlvbnMucGFyYW1ldGVycy5jaGVja1NjcmVlblNoYXJlIC0gRnVuY3Rpb24gdG8gY2hlY2sgYW5kIGluaXRpYXRlIHNjcmVlbiBzaGFyaW5nLlxuICogQHBhcmFtIHtGdW5jdGlvbn0gb3B0aW9ucy5wYXJhbWV0ZXJzLnN0b3BTaGFyZVNjcmVlbiAtIEZ1bmN0aW9uIHRvIHN0b3Agc2NyZWVuIHNoYXJpbmcuXG4gKlxuICogQHJldHVybnMge1Byb21pc2U8dm9pZD59IEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIHNjcmVlbiBzaGFyZSBhY3Rpb24gaGFzIGJlZW4gaGFuZGxlZC5cbiAqXG4gKiBAcmVtYXJrc1xuICogVGhpcyBmdW5jdGlvbiBjaGVja3MgdGhlIGN1cnJlbnQgc3RhdHVzIG9mIHNjcmVlbiBzaGFyaW5nIGFuZCBoYW5kbGVzIHRoZSBsb2dpYyBmb3Igc3RhcnRpbmcgb3Igc3RvcHBpbmcgc2NyZWVuIHNoYXJpbmcuXG4gKiBJdCB2YWxpZGF0ZXMgcGVybWlzc2lvbnMgYW5kIHJvb20gc2V0dGluZ3MgYmVmb3JlIGFsbG93aW5nIHNjcmVlbiBzaGFyaW5nIHRvIGJlIGFjdGl2YXRlZCBvciBkZWFjdGl2YXRlZC5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3Qgb3B0aW9uczogQ2xpY2tTY3JlZW5TaGFyZU9wdGlvbnMgPSB7XG4gKiAgIHBhcmFtZXRlcnM6IHtcbiAqICAgICBzaG93QWxlcnQ6IChhbGVydCkgPT4gY29uc29sZS5sb2coYWxlcnQubWVzc2FnZSksXG4gKiAgICAgcm9vbU5hbWU6ICdteVJvb20nLFxuICogICAgIG1lbWJlcjogJ0pvaG4gRG9lJyxcbiAqICAgICBzb2NrZXQ6IHNvY2tldEluc3RhbmNlLFxuICogICAgIGlzbGV2ZWw6ICcxJyxcbiAqICAgICB5b3VBcmVDb0hvc3Q6IGZhbHNlLFxuICogICAgIGFkbWluUmVzdHJpY3RTZXR0aW5nOiBmYWxzZSxcbiAqICAgICBhdWRpb1NldHRpbmc6ICdvbicsXG4gKiAgICAgdmlkZW9TZXR0aW5nOiAnb24nLFxuICogICAgIHNjcmVlbnNoYXJlU2V0dGluZzogJ29mZicsXG4gKiAgICAgY2hhdFNldHRpbmc6ICdhbGxvdycsXG4gKiAgICAgc2NyZWVuQWN0aW9uOiBmYWxzZSxcbiAqICAgICBzY3JlZW5BbHJlYWR5T246IGZhbHNlLFxuICogICAgIHNjcmVlblJlcXVlc3RTdGF0ZTogbnVsbCxcbiAqICAgICBzY3JlZW5SZXF1ZXN0VGltZTogMCxcbiAqICAgICBhdWRpb09ubHlSb29tOiBmYWxzZSxcbiAqICAgICB1cGRhdGVSZXF1ZXN0SW50ZXJ2YWxTZWNvbmRzOiAzMCxcbiAqICAgICB1cGRhdGVTY3JlZW5SZXF1ZXN0U3RhdGU6IChzdGF0ZSkgPT4gY29uc29sZS5sb2coYFNjcmVlbiByZXF1ZXN0IHN0YXRlOiAke3N0YXRlfWApLFxuICogICAgIHVwZGF0ZVNjcmVlbkFscmVhZHlPbjogKHN0YXR1cykgPT4gY29uc29sZS5sb2coYFNjcmVlbiBhbHJlYWR5IG9uOiAke3N0YXR1c31gKSxcbiAqICAgICBjaGVja1Blcm1pc3Npb246IGNoZWNrUGVybWlzc2lvbkZ1bmN0aW9uLFxuICogICAgIGNoZWNrU2NyZWVuU2hhcmU6IGNoZWNrU2NyZWVuU2hhcmVGdW5jdGlvbixcbiAqICAgICBzdG9wU2hhcmVTY3JlZW46IHN0b3BTaGFyZVNjcmVlbkZ1bmN0aW9uLFxuICogICAgIGdldFVwZGF0ZWRBbGxQYXJhbXM6ICgpID0+IHBhcmFtZXRlcnMsXG4gKiAgIH0sXG4gKiB9O1xuICpcbiAqIGNvbnN0IGNsaWNrU2NyZWVuU2hhcmVTZXJ2aWNlID0gbmV3IENsaWNrU2NyZWVuU2hhcmUoKTtcbiAqIGF3YWl0IGNsaWNrU2NyZWVuU2hhcmVTZXJ2aWNlLmNsaWNrU2NyZWVuU2hhcmUob3B0aW9ucyk7XG4gKiBgYGBcbiAqL1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgQ2xpY2tTY3JlZW5TaGFyZSB7XG4gIC8qKlxuICAgKiBIYW5kbGVzIHRoZSBhY3Rpb24gZm9yIHRoZSBzY3JlZW4gYnV0dG9uLCBpbmNsdWRpbmcgc3RhcnRpbmcgYW5kIHN0b3BwaW5nIHNjcmVlbiBzaGFyaW5nLlxuICAgKlxuICAgKiBAcGFyYW0ge0NsaWNrU2NyZWVuU2hhcmVQYXJhbXN9IG9wdGlvbnMgLSBPcHRpb25zIGZvciBoYW5kbGluZyB0aGUgc2NyZWVuIGJ1dHRvbiBhY3Rpb24uXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fVxuICAgKi9cbiAgY2xpY2tTY3JlZW5TaGFyZSA9IGFzeW5jICh7IHBhcmFtZXRlcnMgfTogQ2xpY2tTY3JlZW5TaGFyZU9wdGlvbnMpOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgICBwYXJhbWV0ZXJzID0geyAuLi5wYXJhbWV0ZXJzLCAuLi5wYXJhbWV0ZXJzLmdldFVwZGF0ZWRBbGxQYXJhbXMoKSB9O1xuICAgIGxldCB7XG4gICAgICBzaG93QWxlcnQsXG4gICAgICByb29tTmFtZSxcbiAgICAgIG1lbWJlcixcbiAgICAgIHNvY2tldCxcbiAgICAgIGlzbGV2ZWwsXG4gICAgICB5b3VBcmVDb0hvc3QsXG4gICAgICBhZG1pblJlc3RyaWN0U2V0dGluZyxcbiAgICAgIGF1ZGlvU2V0dGluZyxcbiAgICAgIHZpZGVvU2V0dGluZyxcbiAgICAgIHNjcmVlbnNoYXJlU2V0dGluZyxcbiAgICAgIGNoYXRTZXR0aW5nLFxuICAgICAgc2NyZWVuQWN0aW9uLFxuICAgICAgc2NyZWVuQWxyZWFkeU9uLFxuICAgICAgc2NyZWVuUmVxdWVzdFN0YXRlLFxuICAgICAgc2NyZWVuUmVxdWVzdFRpbWUsXG4gICAgICBhdWRpb09ubHlSb29tLFxuICAgICAgdXBkYXRlUmVxdWVzdEludGVydmFsU2Vjb25kcyxcbiAgICAgIHVwZGF0ZVNjcmVlblJlcXVlc3RTdGF0ZSxcbiAgICAgIHVwZGF0ZVNjcmVlbkFscmVhZHlPbixcbiAgICAgIGNoZWNrUGVybWlzc2lvbixcbiAgICAgIGNoZWNrU2NyZWVuU2hhcmUsXG4gICAgICBzdG9wU2hhcmVTY3JlZW4sXG4gICAgfSA9IHBhcmFtZXRlcnM7XG5cbiAgICBpZiAoYXVkaW9Pbmx5Um9vbSkge1xuICAgICAgc2hvd0FsZXJ0Py4oe1xuICAgICAgICBtZXNzYWdlOiAnWW91IGNhbm5vdCB0dXJuIG9uIHlvdXIgY2FtZXJhIGluIGFuIGF1ZGlvLW9ubHkgZXZlbnQuJyxcbiAgICAgICAgdHlwZTogJ2RhbmdlcicsXG4gICAgICAgIGR1cmF0aW9uOiAzMDAwLFxuICAgICAgfSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHJvb21OYW1lLnN0YXJ0c1dpdGgoJ2QnKSkge1xuICAgICAgc2hvd0FsZXJ0Py4oe1xuICAgICAgICBtZXNzYWdlOiAnWW91IGNhbm5vdCBzdGFydCBzY3JlZW4gc2hhcmUgaW4gYSBkZW1vIHJvb20uJyxcbiAgICAgICAgdHlwZTogJ2RhbmdlcicsXG4gICAgICAgIGR1cmF0aW9uOiAzMDAwLFxuICAgICAgfSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHNjcmVlbkFscmVhZHlPbikge1xuICAgICAgc2NyZWVuQWxyZWFkeU9uID0gZmFsc2U7XG4gICAgICB1cGRhdGVTY3JlZW5BbHJlYWR5T24oc2NyZWVuQWxyZWFkeU9uKTtcbiAgICAgIGF3YWl0IHN0b3BTaGFyZVNjcmVlbih7IHBhcmFtZXRlcnMgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChhZG1pblJlc3RyaWN0U2V0dGluZykge1xuICAgICAgICBzaG93QWxlcnQ/Lih7XG4gICAgICAgICAgbWVzc2FnZTogJ1lvdSBjYW5ub3Qgc3RhcnQgc2NyZWVuIHNoYXJlLiBBY2Nlc3MgZGVuaWVkIGJ5IGhvc3QuJyxcbiAgICAgICAgICB0eXBlOiAnZGFuZ2VyJyxcbiAgICAgICAgICBkdXJhdGlvbjogMzAwMCxcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgbGV0IHJlc3BvbnNlID0gMjtcbiAgICAgIGlmICghc2NyZWVuQWN0aW9uICYmIGlzbGV2ZWwgIT0gJzInICYmICF5b3VBcmVDb0hvc3QpIHtcbiAgICAgICAgcmVzcG9uc2UgPSBhd2FpdCBjaGVja1Blcm1pc3Npb24oe1xuICAgICAgICAgIHBlcm1pc3Npb25UeXBlOiAnc2NyZWVuc2hhcmVTZXR0aW5nJyxcbiAgICAgICAgICBhdWRpb1NldHRpbmcsXG4gICAgICAgICAgdmlkZW9TZXR0aW5nLFxuICAgICAgICAgIHNjcmVlbnNoYXJlU2V0dGluZyxcbiAgICAgICAgICBjaGF0U2V0dGluZyxcbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXNwb25zZSA9IDA7XG4gICAgICB9XG5cbiAgICAgIHN3aXRjaCAocmVzcG9uc2UpIHtcbiAgICAgICAgY2FzZSAwOlxuICAgICAgICAgIGNoZWNrU2NyZWVuU2hhcmUoeyBwYXJhbWV0ZXJzIH0pO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDE6IHtcbiAgICAgICAgICBpZiAoc2NyZWVuUmVxdWVzdFN0YXRlID09PSAncGVuZGluZycpIHtcbiAgICAgICAgICAgIHNob3dBbGVydD8uKHtcbiAgICAgICAgICAgICAgbWVzc2FnZTogJ0EgcmVxdWVzdCBpcyBhbHJlYWR5IHBlbmRpbmcuIFBsZWFzZSB3YWl0IGZvciB0aGUgaG9zdCB0byByZXNwb25kLicsXG4gICAgICAgICAgICAgIHR5cGU6ICdkYW5nZXInLFxuICAgICAgICAgICAgICBkdXJhdGlvbjogMzAwMCxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIHNjcmVlblJlcXVlc3RTdGF0ZSA9PT0gJ3JlamVjdGVkJyAmJlxuICAgICAgICAgICAgRGF0ZS5ub3coKSAtIHNjcmVlblJlcXVlc3RUaW1lIDwgdXBkYXRlUmVxdWVzdEludGVydmFsU2Vjb25kc1xuICAgICAgICAgICkge1xuICAgICAgICAgICAgc2hvd0FsZXJ0Py4oe1xuICAgICAgICAgICAgICBtZXNzYWdlOiAnWW91IGNhbm5vdCBzZW5kIGFub3RoZXIgcmVxdWVzdCBhdCB0aGlzIHRpbWUuJyxcbiAgICAgICAgICAgICAgdHlwZTogJ2RhbmdlcicsXG4gICAgICAgICAgICAgIGR1cmF0aW9uOiAzMDAwLFxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBzaG93QWxlcnQ/Lih7XG4gICAgICAgICAgICBtZXNzYWdlOiAnWW91ciByZXF1ZXN0IGhhcyBiZWVuIHNlbnQgdG8gdGhlIGhvc3QuJyxcbiAgICAgICAgICAgIHR5cGU6ICdzdWNjZXNzJyxcbiAgICAgICAgICAgIGR1cmF0aW9uOiAzMDAwLFxuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgc2NyZWVuUmVxdWVzdFN0YXRlID0gJ3BlbmRpbmcnO1xuICAgICAgICAgIHVwZGF0ZVNjcmVlblJlcXVlc3RTdGF0ZShzY3JlZW5SZXF1ZXN0U3RhdGUpO1xuXG4gICAgICAgICAgbGV0IHVzZXJSZXF1ZXN0ID0geyBpZDogc29ja2V0LmlkLCBuYW1lOiBtZW1iZXIsIGljb246ICdmYS1kZXNrdG9wJyB9O1xuICAgICAgICAgIHNvY2tldC5lbWl0KCdwYXJ0aWNpcGFudFJlcXVlc3QnLCB7IHVzZXJSZXF1ZXN0LCByb29tTmFtZSB9KTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgc2hvd0FsZXJ0Py4oe1xuICAgICAgICAgICAgbWVzc2FnZTogJ1lvdSBhcmUgbm90IGFsbG93ZWQgdG8gc3RhcnQgc2NyZWVuIHNoYXJlLicsXG4gICAgICAgICAgICB0eXBlOiAnZGFuZ2VyJyxcbiAgICAgICAgICAgIGR1cmF0aW9uOiAzMDAwLFxuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICB9XG4gICAgfVxuICB9O1xufVxuIl19
@@ -1,271 +0,0 @@
1
- // click-video.service.ts
2
- import { Injectable } from '@angular/core';
3
- import * as i0 from "@angular/core";
4
- /**
5
- * Handles the click event to toggle the participant's video on/off and manages video permission requests.
6
- *
7
- * @param {ClickVideoOptions} options - The options for handling the video click event.
8
- * @param {ClickVideoParameters} options.parameters - The parameters required for the video action.
9
- * @param {boolean} options.parameters.checkMediaPermission - Indicates if media permission needs to be checked.
10
- * @param {boolean} options.parameters.hasCameraPermission - Indicates if camera permission has been granted.
11
- * @param {boolean} options.parameters.videoAlreadyOn - Indicates if the video is currently active.
12
- * @param {boolean} options.parameters.audioOnlyRoom - Indicates if the current room is audio-only.
13
- * @param {boolean} options.parameters.recordStarted - Indicates if recording has started.
14
- * @param {boolean} options.parameters.recordResumed - Indicates if recording has resumed.
15
- * @param {boolean} options.parameters.recordPaused - Indicates if recording is paused.
16
- * @param {boolean} options.parameters.recordStopped - Indicates if recording is stopped.
17
- * @param {string} options.parameters.recordingMediaOptions - The media options for recording (e.g., "video", "audio").
18
- * @param {string} options.parameters.islevel - The participant's level.
19
- * @param {boolean} options.parameters.youAreCoHost - Indicates if the user is a co-host.
20
- * @param {boolean} options.parameters.adminRestrictSetting - Indicates if there are admin restrictions on video.
21
- * @param {string | null} options.parameters.videoRequestState - State of the video request.
22
- * @param {number} options.parameters.videoRequestTime - Timestamp of the video request.
23
- * @param {string} options.parameters.member - The participant's name.
24
- * @param {Socket} options.parameters.socket - The socket connection used for communication.
25
- * @param {string} options.parameters.roomName - The name of the room where the video is being toggled.
26
- * @param {string} options.parameters.userDefaultVideoInputDevice - The default video input device.
27
- * @param {string} options.parameters.currentFacingMode - The current facing mode of the camera.
28
- * @param {VidCons} options.parameters.vidCons - Video constraints for the stream.
29
- * @param {number} options.parameters.frameRate - Desired frame rate for the video.
30
- * @param {boolean} options.parameters.videoAction - Indicates if a video action is currently taking place.
31
- * @param {MediaStream | null} options.parameters.localStream - The local media stream.
32
- * @param {string} options.parameters.audioSetting - The current audio setting.
33
- * @param {string} options.parameters.videoSetting - The current video setting.
34
- * @param {string} options.parameters.screenshareSetting - The current screenshare setting.
35
- * @param {string} options.parameters.chatSetting - The current chat setting.
36
- * @param {number} options.parameters.updateRequestIntervalSeconds - Interval time for updating request state.
37
- *
38
- * @returns {Promise<void>} A promise that resolves when the video action has been handled.
39
- *
40
- * @remarks
41
- * This function checks the current status of the video and handles the logic for starting or stopping the video stream.
42
- * It validates permissions and room settings before allowing the video to be activated or deactivated.
43
- *
44
- * @example
45
- * ```typescript
46
- * const options: ClickVideoOptions = {
47
- * parameters: {
48
- * checkMediaPermission: true,
49
- * hasCameraPermission: false,
50
- * videoAlreadyOn: false,
51
- * audioOnlyRoom: false,
52
- * recordStarted: false,
53
- * recordResumed: false,
54
- * recordPaused: false,
55
- * recordStopped: false,
56
- * recordingMediaOptions: 'video',
57
- * islevel: '1',
58
- * youAreCoHost: false,
59
- * adminRestrictSetting: false,
60
- * videoRequestState: null,
61
- * videoRequestTime: 0,
62
- * member: 'John Doe',
63
- * socket: socketInstance,
64
- * roomName: 'myRoom',
65
- * userDefaultVideoInputDevice: '',
66
- * currentFacingMode: 'user',
67
- * vidCons: { width: 1280, height: 720 },
68
- * frameRate: 30,
69
- * videoAction: false,
70
- * localStream: null,
71
- * audioSetting: 'on',
72
- * videoSetting: 'on',
73
- * screenshareSetting: 'off',
74
- * chatSetting: 'allow',
75
- * updateRequestIntervalSeconds: 30,
76
- * showAlert: (alert) => console.log(alert.message),
77
- * updateVideoAlreadyOn: (status) => console.log(`Video already on: ${status}`),
78
- * updateVideoRequestState: (state) => console.log(`Video request state: ${state}`),
79
- * updateLocalStream: (stream) => console.log('Local stream updated'),
80
- * streamSuccessVideo: streamSuccessFunction,
81
- * disconnectSendTransportVideo: disconnectFunction,
82
- * requestPermissionCamera: requestPermissionFunction,
83
- * checkPermission: checkPermissionFunction,
84
- * getUpdatedAllParams: () => parameters,
85
- * },
86
- * };
87
- *
88
- * const clickVideoService = new ClickVideo();
89
- * await clickVideoService.clickVideo(options);
90
- * ```
91
- */
92
- export class ClickVideo {
93
- /**
94
- * Handles the click event to toggle the participant's video on/off and manages video permission requests.
95
- *
96
- * @param {ClickVideoParams} options - The function parameters.
97
- * @returns {Promise<void>}
98
- */
99
- clickVideo = async ({ parameters }) => {
100
- let { checkMediaPermission, hasCameraPermission, videoAlreadyOn, audioOnlyRoom, recordStarted, recordResumed, recordPaused, recordStopped, recordingMediaOptions, islevel, youAreCoHost, adminRestrictSetting, videoRequestState, videoRequestTime, member, socket, roomName, userDefaultVideoInputDevice, currentFacingMode, vidCons, frameRate, videoAction, localStream, audioSetting, videoSetting, screenshareSetting, chatSetting, updateRequestIntervalSeconds, streamSuccessVideo, showAlert, updateVideoAlreadyOn, updateVideoRequestState, updateLocalStream, disconnectSendTransportVideo, requestPermissionCamera, checkPermission, } = parameters;
101
- if (audioOnlyRoom) {
102
- showAlert?.({
103
- message: 'You cannot turn on your camera in an audio only event.',
104
- type: 'danger',
105
- duration: 3000,
106
- });
107
- return;
108
- }
109
- if (videoAlreadyOn) {
110
- if (islevel === '2' && (recordStarted || recordResumed)) {
111
- if (!(recordPaused || recordStopped) && recordingMediaOptions === 'video') {
112
- showAlert?.({
113
- message: 'You cannot turn off your camera while recording video, please pause or stop recording first.',
114
- type: 'danger',
115
- duration: 3000,
116
- });
117
- return;
118
- }
119
- }
120
- videoAlreadyOn = false;
121
- updateVideoAlreadyOn(videoAlreadyOn);
122
- if (localStream) {
123
- localStream.getVideoTracks()[0].enabled = false;
124
- }
125
- updateLocalStream(localStream);
126
- await disconnectSendTransportVideo({ parameters });
127
- }
128
- else {
129
- if (adminRestrictSetting) {
130
- showAlert?.({
131
- message: 'You cannot turn on your camera. Access denied by host.',
132
- type: 'danger',
133
- duration: 3000,
134
- });
135
- return;
136
- }
137
- let response = 2;
138
- if (!videoAction && islevel !== '2' && !youAreCoHost) {
139
- response = await checkPermission({
140
- permissionType: 'videoSetting',
141
- audioSetting,
142
- videoSetting,
143
- screenshareSetting,
144
- chatSetting,
145
- });
146
- }
147
- else {
148
- response = 0;
149
- }
150
- if (response === 1) {
151
- if (videoRequestState === 'pending') {
152
- showAlert?.({
153
- message: 'A request is pending. Please wait for the host to respond.',
154
- type: 'danger',
155
- duration: 3000,
156
- });
157
- return;
158
- }
159
- if (videoRequestState === 'rejected' &&
160
- Date.now() - videoRequestTime < updateRequestIntervalSeconds) {
161
- showAlert?.({
162
- message: `A request was rejected. Please wait for ${updateRequestIntervalSeconds} seconds before sending another request.`,
163
- type: 'danger',
164
- duration: 3000,
165
- });
166
- return;
167
- }
168
- showAlert?.({
169
- message: 'Request sent to host.',
170
- type: 'success',
171
- duration: 3000,
172
- });
173
- videoRequestState = 'pending';
174
- updateVideoRequestState(videoRequestState);
175
- let userRequest = { id: socket.id, name: member, icon: 'fa-video' };
176
- socket.emit('participantRequest', { userRequest, roomName });
177
- }
178
- else if (response === 2) {
179
- showAlert?.({
180
- message: 'You cannot turn on your camera. Access denied by host.',
181
- type: 'danger',
182
- duration: 3000,
183
- });
184
- }
185
- else {
186
- if (!hasCameraPermission) {
187
- if (checkMediaPermission) {
188
- let statusCamera = await requestPermissionCamera();
189
- if (statusCamera !== 'granted') {
190
- showAlert?.({
191
- message: 'Allow access to your camera or check if your camera is not being used by another application.',
192
- type: 'danger',
193
- duration: 3000,
194
- });
195
- return;
196
- }
197
- }
198
- }
199
- let mediaConstraints = {};
200
- let altMediaConstraints = {};
201
- if (userDefaultVideoInputDevice) {
202
- if (vidCons && vidCons.width && vidCons.height) {
203
- mediaConstraints = {
204
- video: {
205
- deviceId: userDefaultVideoInputDevice,
206
- facingMode: currentFacingMode,
207
- ...vidCons,
208
- frameRate: { ideal: frameRate },
209
- },
210
- audio: false,
211
- };
212
- altMediaConstraints = {
213
- video: { ...vidCons, frameRate: { ideal: frameRate } },
214
- audio: false,
215
- };
216
- }
217
- else {
218
- mediaConstraints = {
219
- video: { ...vidCons, frameRate: { ideal: frameRate } },
220
- audio: false,
221
- };
222
- altMediaConstraints = { video: { frameRate: { ideal: frameRate } }, audio: false };
223
- }
224
- }
225
- else {
226
- if (vidCons && vidCons.width && vidCons.height) {
227
- mediaConstraints = {
228
- video: { ...vidCons, frameRate: { ideal: frameRate } },
229
- audio: false,
230
- };
231
- altMediaConstraints = {
232
- video: { ...vidCons, frameRate: { ideal: frameRate } },
233
- audio: false,
234
- };
235
- }
236
- else {
237
- mediaConstraints = { video: { frameRate: { ideal: frameRate } }, audio: false };
238
- }
239
- }
240
- await navigator.mediaDevices
241
- .getUserMedia(mediaConstraints)
242
- .then(async (stream) => {
243
- await streamSuccessVideo({ stream, parameters });
244
- })
245
- .catch(async () => {
246
- await navigator.mediaDevices
247
- .getUserMedia(altMediaConstraints)
248
- .then(async (stream) => {
249
- await streamSuccessVideo({ stream, parameters });
250
- })
251
- .catch(() => {
252
- showAlert?.({
253
- message: 'Allow access to your camera or check if your camera is not being used by another application.',
254
- type: 'danger',
255
- duration: 3000,
256
- });
257
- });
258
- });
259
- }
260
- }
261
- };
262
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ClickVideo, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
263
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ClickVideo, providedIn: 'root' });
264
- }
265
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ClickVideo, decorators: [{
266
- type: Injectable,
267
- args: [{
268
- providedIn: 'root',
269
- }]
270
- }] });
271
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpY2stdmlkZW8uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21lZGlhc2Z1LWFuZ3VsYXIvc3JjL2xpYi9tZXRob2RzL3N0cmVhbS1tZXRob2RzL2NsaWNrLXZpZGVvLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEseUJBQXlCO0FBQ3pCLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBa0UzQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBdUZHO0FBS0gsTUFBTSxPQUFPLFVBQVU7SUFDckI7Ozs7O09BS0c7SUFFSCxVQUFVLEdBQUcsS0FBSyxFQUFFLEVBQUUsVUFBVSxFQUFxQixFQUFpQixFQUFFO1FBQ3RFLElBQUksRUFDRixvQkFBb0IsRUFDcEIsbUJBQW1CLEVBQ25CLGNBQWMsRUFDZCxhQUFhLEVBQ2IsYUFBYSxFQUNiLGFBQWEsRUFDYixZQUFZLEVBQ1osYUFBYSxFQUNiLHFCQUFxQixFQUNyQixPQUFPLEVBQ1AsWUFBWSxFQUNaLG9CQUFvQixFQUNwQixpQkFBaUIsRUFDakIsZ0JBQWdCLEVBQ2hCLE1BQU0sRUFDTixNQUFNLEVBQ04sUUFBUSxFQUNSLDJCQUEyQixFQUMzQixpQkFBaUIsRUFDakIsT0FBTyxFQUNQLFNBQVMsRUFDVCxXQUFXLEVBQ1gsV0FBVyxFQUNYLFlBQVksRUFDWixZQUFZLEVBQ1osa0JBQWtCLEVBQ2xCLFdBQVcsRUFDWCw0QkFBNEIsRUFDNUIsa0JBQWtCLEVBQ2xCLFNBQVMsRUFDVCxvQkFBb0IsRUFDcEIsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQiw0QkFBNEIsRUFDNUIsdUJBQXVCLEVBQ3ZCLGVBQWUsR0FDaEIsR0FBRyxVQUFVLENBQUM7UUFFZixJQUFJLGFBQWEsRUFBRSxDQUFD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Q0FBQyxZQUFZO3FCQUN6QixZQUFZLENBQUMsZ0JBQWdCLENBQUM7cUJBQzlCLElBQUksQ0FBQyxLQUFLLEVBQUUsTUFBbUIsRUFBRSxFQUFFO29CQUNsQyxNQUFNLGtCQUFrQixDQUFDLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUM7Z0JBQ25ELENBQUMsQ0FBQztxQkFDRCxLQUFLLENBQUMsS0FBSyxJQUFJLEVBQUU7b0JBQ2hCLE1BQU0sU0FBUyxDQUFDLFlBQVk7eUJBQ3pCLFlBQVksQ0FBQyxtQkFBbUIsQ0FBQzt5QkFDakMsSUFBSSxDQUFDLEtBQUssRUFBRSxNQUFtQixFQUFFLEVBQUU7d0JBQ2xDLE1BQU0sa0JBQWtCLENBQUMsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQztvQkFDbkQsQ0FBQyxDQUFDO3lCQUNELEtBQUssQ0FBQyxHQUFHLEVBQUU7d0JBQ1YsU0FBUyxFQUFFLENBQUM7NEJBQ1YsT0FBTyxFQUNMLCtGQUErRjs0QkFDakcsSUFBSSxFQUFFLFFBQVE7NEJBQ2QsUUFBUSxFQUFFLElBQUk7eUJBQ2YsQ0FBQyxDQUFDO29CQUNMLENBQUMsQ0FBQyxDQUFDO2dCQUNQLENBQUMsQ0FBQyxDQUFDO1lBQ1AsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDLENBQUM7dUdBL05TLFVBQVU7MkdBQVYsVUFBVSxjQUZULE1BQU07OzJGQUVQLFVBQVU7a0JBSHRCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiLy8gY2xpY2stdmlkZW8uc2VydmljZS50c1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQ2hlY2tQZXJtaXNzaW9uVHlwZSxcbiAgRGlzY29ubmVjdFNlbmRUcmFuc3BvcnRWaWRlb1BhcmFtZXRlcnMsXG4gIERpc2Nvbm5lY3RTZW5kVHJhbnNwb3J0VmlkZW9UeXBlLFxuICBSZXF1ZXN0UGVybWlzc2lvbkNhbWVyYVR5cGUsXG4gIFNob3dBbGVydCxcbiAgU3RyZWFtU3VjY2Vzc1ZpZGVvUGFyYW1ldGVycyxcbiAgU3RyZWFtU3VjY2Vzc1ZpZGVvVHlwZSxcbiAgVmlkQ29ucyxcbn0gZnJvbSAnLi4vLi4vQHR5cGVzL3R5cGVzJztcbmltcG9ydCB7IFNvY2tldCB9IGZyb20gJ3NvY2tldC5pby1jbGllbnQnO1xuXG5leHBvcnQgaW50ZXJmYWNlIENsaWNrVmlkZW9QYXJhbWV0ZXJzXG4gIGV4dGVuZHMgRGlzY29ubmVjdFNlbmRUcmFuc3BvcnRWaWRlb1BhcmFtZXRlcnMsXG4gICAgU3RyZWFtU3VjY2Vzc1ZpZGVvUGFyYW1ldGVycyB7XG4gIGNoZWNrTWVkaWFQZXJtaXNzaW9uOiBib29sZWFuO1xuICBoYXNDYW1lcmFQZXJtaXNzaW9uOiBib29sZWFuO1xuICB2aWRlb0FscmVhZHlPbjogYm9vbGVhbjtcbiAgYXVkaW9Pbmx5Um9vbTogYm9vbGVhbjtcbiAgcmVjb3JkU3RhcnRlZDogYm9vbGVhbjtcbiAgcmVjb3JkUmVzdW1lZDogYm9vbGVhbjtcbiAgcmVjb3JkUGF1c2VkOiBib29sZWFuO1xuICByZWNvcmRTdG9wcGVkOiBib29sZWFuO1xuICByZWNvcmRpbmdNZWRpYU9wdGlvbnM6IHN0cmluZztcbiAgaXNsZXZlbDogc3RyaW5nO1xuICB5b3VBcmVDb0hvc3Q6IGJvb2xlYW47XG4gIGFkbWluUmVzdHJpY3RTZXR0aW5nOiBib29sZWFuO1xuICB2aWRlb1JlcXVlc3RTdGF0ZTogc3RyaW5nIHwgbnVsbDtcbiAgdmlkZW9SZXF1ZXN0VGltZTogbnVtYmVyO1xuICBtZW1iZXI6IHN0cmluZztcbiAgc29ja2V0OiBTb2NrZXQ7XG4gIHJvb21OYW1lOiBzdHJpbmc7XG4gIHVzZXJEZWZhdWx0VmlkZW9JbnB1dERldmljZTogc3RyaW5nO1xuICBjdXJyZW50RmFjaW5nTW9kZTogc3RyaW5nO1xuICB2aWRDb25zOiBWaWRDb25zO1xuICBmcmFtZVJhdGU6IG51bWJlcjtcbiAgdmlkZW9BY3Rpb246IGJvb2xlYW47XG4gIGxvY2FsU3RyZWFtOiBNZWRpYVN0cmVhbSB8IG51bGw7XG4gIGF1ZGlvU2V0dGluZzogc3RyaW5nO1xuICB2aWRlb1NldHRpbmc6IHN0cmluZztcbiAgc2NyZWVuc2hhcmVTZXR0aW5nOiBzdHJpbmc7XG4gIGNoYXRTZXR0aW5nOiBzdHJpbmc7XG4gIHVwZGF0ZVJlcXVlc3RJbnRlcnZhbFNlY29uZHM6IG51bWJlcjtcblxuICBzaG93QWxlcnQ/OiBTaG93QWxlcnQ7XG4gIHVwZGF0ZVZpZGVvQWxyZWFkeU9uOiAodmFsdWU6IGJvb2xlYW4pID0+IHZvaWQ7XG4gIHVwZGF0ZVZpZGVvUmVxdWVzdFN0YXRlOiAoc3RhdGU6IHN0cmluZykgPT4gdm9pZDtcbiAgdXBkYXRlTG9jYWxTdHJlYW06IChzdHJlYW06IE1lZGlhU3RyZWFtIHwgbnVsbCkgPT4gdm9pZDtcblxuICBzdHJlYW1TdWNjZXNzVmlkZW86IFN0cmVhbVN1Y2Nlc3NWaWRlb1R5cGU7XG4gIGRpc2Nvbm5lY3RTZW5kVHJhbnNwb3J0VmlkZW86IERpc2Nvbm5lY3RTZW5kVHJhbnNwb3J0VmlkZW9UeXBlO1xuICByZXF1ZXN0UGVybWlzc2lvbkNhbWVyYTogUmVxdWVzdFBlcm1pc3Npb25DYW1lcmFUeXBlO1xuICBjaGVja1Blcm1pc3Npb246IENoZWNrUGVybWlzc2lvblR5cGU7XG5cbiAgZ2V0VXBkYXRlZEFsbFBhcmFtczogKCkgPT4gQ2xpY2tWaWRlb1BhcmFtZXRlcnM7XG4gIFtrZXk6IHN0cmluZ106IGFueTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDbGlja1ZpZGVvT3B0aW9ucyB7XG4gIHBhcmFtZXRlcnM6IENsaWNrVmlkZW9QYXJhbWV0ZXJzO1xufVxuXG4vLyBFeHBvcnQgdGhlIHR5cGUgZGVmaW5pdGlvbiBmb3IgdGhlIGZ1bmN0aW9uXG5leHBvcnQgdHlwZSBDbGlja1ZpZGVvVHlwZSA9IChvcHRpb25zOiBDbGlja1ZpZGVvT3B0aW9ucykgPT4gUHJvbWlzZTx2b2lkPjtcblxuLyoqXG4gKiBIYW5kbGVzIHRoZSBjbGljayBldmVudCB0byB0b2dnbGUgdGhlIHBhcnRpY2lwYW50J3MgdmlkZW8gb24vb2ZmIGFuZCBtYW5hZ2VzIHZpZGVvIHBlcm1pc3Npb24gcmVxdWVzdHMuXG4gKlxuICogQHBhcmFtIHtDbGlja1ZpZGVvT3B0aW9uc30gb3B0aW9ucyAtIFRoZSBvcHRpb25zIGZvciBoYW5kbGluZyB0aGUgdmlkZW8gY2xpY2sgZXZlbnQuXG4gKiBAcGFyYW0ge0NsaWNrVmlkZW9QYXJhbWV0ZXJzfSBvcHRpb25zLnBhcmFtZXRlcnMgLSBUaGUgcGFyYW1ldGVycyByZXF1aXJlZCBmb3IgdGhlIHZpZGVvIGFjdGlvbi5cbiAqIEBwYXJhbSB7Ym9vbGVhbn0gb3B0aW9ucy5wYXJhbWV0ZXJzLmNoZWNrTWVkaWFQZXJtaXNzaW9uIC0gSW5kaWNhdGVzIGlmIG1lZGlhIHBlcm1pc3Npb24gbmVlZHMgdG8gYmUgY2hlY2tlZC5cbiAqIEBwYXJhbSB7Ym9vbGVhbn0gb3B0aW9ucy5wYXJhbWV0ZXJzLmhhc0NhbWVyYVBlcm1pc3Npb24gLSBJbmRpY2F0ZXMgaWYgY2FtZXJhIHBlcm1pc3Npb24gaGFzIGJlZW4gZ3JhbnRlZC5cbiAqIEBwYXJhbSB7Ym9vbGVhbn0gb3B0aW9ucy5wYXJhbWV0ZXJzLnZpZGVvQWxyZWFkeU9uIC0gSW5kaWNhdGVzIGlmIHRoZSB2aWRlbyBpcyBjdXJyZW50bHkgYWN0aXZlLlxuICogQHBhcmFtIHtib29sZWFufSBvcHRpb25zLnBhcmFtZXRlcnMuYXVkaW9Pbmx5Um9vbSAtIEluZGljYXRlcyBpZiB0aGUgY3VycmVudCByb29tIGlzIGF1ZGlvLW9ubHkuXG4gKiBAcGFyYW0ge2Jvb2xlYW59IG9wdGlvbnMucGFyYW1ldGVycy5yZWNvcmRTdGFydGVkIC0gSW5kaWNhdGVzIGlmIHJlY29yZGluZyBoYXMgc3RhcnRlZC5cbiAqIEBwYXJhbSB7Ym9vbGVhbn0gb3B0aW9ucy5wYXJhbWV0ZXJzLnJlY29yZFJlc3VtZWQgLSBJbmRpY2F0ZXMgaWYgcmVjb3JkaW5nIGhhcyByZXN1bWVkLlxuICogQHBhcmFtIHtib29sZWFufSBvcHRpb25zLnBhcmFtZXRlcnMucmVjb3JkUGF1c2VkIC0gSW5kaWNhdGVzIGlmIHJlY29yZGluZyBpcyBwYXVzZWQuXG4gKiBAcGFyYW0ge2Jvb2xlYW59IG9wdGlvbnMucGFyYW1ldGVycy5yZWNvcmRTdG9wcGVkIC0gSW5kaWNhdGVzIGlmIHJlY29yZGluZyBpcyBzdG9wcGVkLlxuICogQHBhcmFtIHtzdHJpbmd9IG9wdGlvbnMucGFyYW1ldGVycy5yZWNvcmRpbmdNZWRpYU9wdGlvbnMgLSBUaGUgbWVkaWEgb3B0aW9ucyBmb3IgcmVjb3JkaW5nIChlLmcuLCBcInZpZGVvXCIsIFwiYXVkaW9cIikuXG4gKiBAcGFyYW0ge3N0cmluZ30gb3B0aW9ucy5wYXJhbWV0ZXJzLmlzbGV2ZWwgLSBUaGUgcGFydGljaXBhbnQncyBsZXZlbC5cbiAqIEBwYXJhbSB7Ym9vbGVhbn0gb3B0aW9ucy5wYXJhbWV0ZXJzLnlvdUFyZUNvSG9zdCAtIEluZGljYXRlcyBpZiB0aGUgdXNlciBpcyBhIGNvLWhvc3QuXG4gKiBAcGFyYW0ge2Jvb2xlYW59IG9wdGlvbnMucGFyYW1ldGVycy5hZG1pblJlc3RyaWN0U2V0dGluZyAtIEluZGljYXRlcyBpZiB0aGVyZSBhcmUgYWRtaW4gcmVzdHJpY3Rpb25zIG9uIHZpZGVvLlxuICogQHBhcmFtIHtzdHJpbmcgfCBudWxsfSBvcHRpb25zLnBhcmFtZXRlcnMudmlkZW9SZXF1ZXN0U3RhdGUgLSBTdGF0ZSBvZiB0aGUgdmlkZW8gcmVxdWVzdC5cbiAqIEBwYXJhbSB7bnVtYmVyfSBvcHRpb25zLnBhcmFtZXRlcnMudmlkZW9SZXF1ZXN0VGltZSAtIFRpbWVzdGFtcCBvZiB0aGUgdmlkZW8gcmVxdWVzdC5cbiAqIEBwYXJhbSB7c3RyaW5nfSBvcHRpb25zLnBhcmFtZXRlcnMubWVtYmVyIC0gVGhlIHBhcnRpY2lwYW50J3MgbmFtZS5cbiAqIEBwYXJhbSB7U29ja2V0fSBvcHRpb25zLnBhcmFtZXRlcnMuc29ja2V0IC0gVGhlIHNvY2tldCBjb25uZWN0aW9uIHVzZWQgZm9yIGNvbW11bmljYXRpb24uXG4gKiBAcGFyYW0ge3N0cmluZ30gb3B0aW9ucy5wYXJhbWV0ZXJzLnJvb21OYW1lIC0gVGhlIG5hbWUgb2YgdGhlIHJvb20gd2hlcmUgdGhlIHZpZGVvIGlzIGJlaW5nIHRvZ2dsZWQuXG4gKiBAcGFyYW0ge3N0cmluZ30gb3B0aW9ucy5wYXJhbWV0ZXJzLnVzZXJEZWZhdWx0VmlkZW9JbnB1dERldmljZSAtIFRoZSBkZWZhdWx0IHZpZGVvIGlucHV0IGRldmljZS5cbiAqIEBwYXJhbSB7c3RyaW5nfSBvcHRpb25zLnBhcmFtZXRlcnMuY3VycmVudEZhY2luZ01vZGUgLSBUaGUgY3VycmVudCBmYWNpbmcgbW9kZSBvZiB0aGUgY2FtZXJhLlxuICogQHBhcmFtIHtWaWRDb25zfSBvcHRpb25zLnBhcmFtZXRlcnMudmlkQ29ucyAtIFZpZGVvIGNvbnN0cmFpbnRzIGZvciB0aGUgc3RyZWFtLlxuICogQHBhcmFtIHtudW1iZXJ9IG9wdGlvbnMucGFyYW1ldGVycy5mcmFtZVJhdGUgLSBEZXNpcmVkIGZyYW1lIHJhdGUgZm9yIHRoZSB2aWRlby5cbiAqIEBwYXJhbSB7Ym9vbGVhbn0gb3B0aW9ucy5wYXJhbWV0ZXJzLnZpZGVvQWN0aW9uIC0gSW5kaWNhdGVzIGlmIGEgdmlkZW8gYWN0aW9uIGlzIGN1cnJlbnRseSB0YWtpbmcgcGxhY2UuXG4gKiBAcGFyYW0ge01lZGlhU3RyZWFtIHwgbnVsbH0gb3B0aW9ucy5wYXJhbWV0ZXJzLmxvY2FsU3RyZWFtIC0gVGhlIGxvY2FsIG1lZGlhIHN0cmVhbS5cbiAqIEBwYXJhbSB7c3RyaW5nfSBvcHRpb25zLnBhcmFtZXRlcnMuYXVkaW9TZXR0aW5nIC0gVGhlIGN1cnJlbnQgYXVkaW8gc2V0dGluZy5cbiAqIEBwYXJhbSB7c3RyaW5nfSBvcHRpb25zLnBhcmFtZXRlcnMudmlkZW9TZXR0aW5nIC0gVGhlIGN1cnJlbnQgdmlkZW8gc2V0dGluZy5cbiAqIEBwYXJhbSB7c3RyaW5nfSBvcHRpb25zLnBhcmFtZXRlcnMuc2NyZWVuc2hhcmVTZXR0aW5nIC0gVGhlIGN1cnJlbnQgc2NyZWVuc2hhcmUgc2V0dGluZy5cbiAqIEBwYXJhbSB7c3RyaW5nfSBvcHRpb25zLnBhcmFtZXRlcnMuY2hhdFNldHRpbmcgLSBUaGUgY3VycmVudCBjaGF0IHNldHRpbmcuXG4gKiBAcGFyYW0ge251bWJlcn0gb3B0aW9ucy5wYXJhbWV0ZXJzLnVwZGF0ZVJlcXVlc3RJbnRlcnZhbFNlY29uZHMgLSBJbnRlcnZhbCB0aW1lIGZvciB1cGRhdGluZyByZXF1ZXN0IHN0YXRlLlxuICpcbiAqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fSBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB3aGVuIHRoZSB2aWRlbyBhY3Rpb24gaGFzIGJlZW4gaGFuZGxlZC5cbiAqXG4gKiBAcmVtYXJrc1xuICogVGhpcyBmdW5jdGlvbiBjaGVja3MgdGhlIGN1cnJlbnQgc3RhdHVzIG9mIHRoZSB2aWRlbyBhbmQgaGFuZGxlcyB0aGUgbG9naWMgZm9yIHN0YXJ0aW5nIG9yIHN0b3BwaW5nIHRoZSB2aWRlbyBzdHJlYW0uXG4gKiBJdCB2YWxpZGF0ZXMgcGVybWlzc2lvbnMgYW5kIHJvb20gc2V0dGluZ3MgYmVmb3JlIGFsbG93aW5nIHRoZSB2aWRlbyB0byBiZSBhY3RpdmF0ZWQgb3IgZGVhY3RpdmF0ZWQuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IG9wdGlvbnM6IENsaWNrVmlkZW9PcHRpb25zID0ge1xuICogICBwYXJhbWV0ZXJzOiB7XG4gKiAgICAgY2hlY2tNZWRpYVBlcm1pc3Npb246IHRydWUsXG4gKiAgICAgaGFzQ2FtZXJhUGVybWlzc2lvbjogZmFsc2UsXG4gKiAgICAgdmlkZW9BbHJlYWR5T246IGZhbHNlLFxuICogICAgIGF1ZGlvT25seVJvb206IGZhbHNlLFxuICogICAgIHJlY29yZFN0YXJ0ZWQ6IGZhbHNlLFxuICogICAgIHJlY29yZFJlc3VtZWQ6IGZhbHNlLFxuICogICAgIHJlY29yZFBhdXNlZDogZmFsc2UsXG4gKiAgICAgcmVjb3JkU3RvcHBlZDogZmFsc2UsXG4gKiAgICAgcmVjb3JkaW5nTWVkaWFPcHRpb25zOiAndmlkZW8nLFxuICogICAgIGlzbGV2ZWw6ICcxJyxcbiAqICAgICB5b3VBcmVDb0hvc3Q6IGZhbHNlLFxuICogICAgIGFkbWluUmVzdHJpY3RTZXR0aW5nOiBmYWxzZSxcbiAqICAgICB2aWRlb1JlcXVlc3RTdGF0ZTogbnVsbCxcbiAqICAgICB2aWRlb1JlcXVlc3RUaW1lOiAwLFxuICogICAgIG1lbWJlcjogJ0pvaG4gRG9lJyxcbiAqICAgICBzb2NrZXQ6IHNvY2tldEluc3RhbmNlLFxuICogICAgIHJvb21OYW1lOiAnbXlSb29tJyxcbiAqICAgICB1c2VyRGVmYXVsdFZpZGVvSW5wdXREZXZpY2U6ICcnLFxuICogICAgIGN1cnJlbnRGYWNpbmdNb2RlOiAndXNlcicsXG4gKiAgICAgdmlkQ29uczogeyB3aWR0aDogMTI4MCwgaGVpZ2h0OiA3MjAgfSxcbiAqICAgICBmcmFtZVJhdGU6IDMwLFxuICogICAgIHZpZGVvQWN0aW9uOiBmYWxzZSxcbiAqICAgICBsb2NhbFN0cmVhbTogbnVsbCxcbiAqICAgICBhdWRpb1NldHRpbmc6ICdvbicsXG4gKiAgICAgdmlkZW9TZXR0aW5nOiAnb24nLFxuICogICAgIHNjcmVlbnNoYXJlU2V0dGluZzogJ29mZicsXG4gKiAgICAgY2hhdFNldHRpbmc6ICdhbGxvdycsXG4gKiAgICAgdXBkYXRlUmVxdWVzdEludGVydmFsU2Vjb25kczogMzAsXG4gKiAgICAgc2hvd0FsZXJ0OiAoYWxlcnQpID0+IGNvbnNvbGUubG9nKGFsZXJ0Lm1lc3NhZ2UpLFxuICogICAgIHVwZGF0ZVZpZGVvQWxyZWFkeU9uOiAoc3RhdHVzKSA9PiBjb25zb2xlLmxvZyhgVmlkZW8gYWxyZWFkeSBvbjogJHtzdGF0dXN9YCksXG4gKiAgICAgdXBkYXRlVmlkZW9SZXF1ZXN0U3RhdGU6IChzdGF0ZSkgPT4gY29uc29sZS5sb2coYFZpZGVvIHJlcXVlc3Qgc3RhdGU6ICR7c3RhdGV9YCksXG4gKiAgICAgdXBkYXRlTG9jYWxTdHJlYW06IChzdHJlYW0pID0+IGNvbnNvbGUubG9nKCdMb2NhbCBzdHJlYW0gdXBkYXRlZCcpLFxuICogICAgIHN0cmVhbVN1Y2Nlc3NWaWRlbzogc3RyZWFtU3VjY2Vzc0Z1bmN0aW9uLFxuICogICAgIGRpc2Nvbm5lY3RTZW5kVHJhbnNwb3J0VmlkZW86IGRpc2Nvbm5lY3RGdW5jdGlvbixcbiAqICAgICByZXF1ZXN0UGVybWlzc2lvbkNhbWVyYTogcmVxdWVzdFBlcm1pc3Npb25GdW5jdGlvbixcbiAqICAgICBjaGVja1Blcm1pc3Npb246IGNoZWNrUGVybWlzc2lvbkZ1bmN0aW9uLFxuICogICAgIGdldFVwZGF0ZWRBbGxQYXJhbXM6ICgpID0+IHBhcmFtZXRlcnMsXG4gKiAgIH0sXG4gKiB9O1xuICpcbiAqIGNvbnN0IGNsaWNrVmlkZW9TZXJ2aWNlID0gbmV3IENsaWNrVmlkZW8oKTtcbiAqIGF3YWl0IGNsaWNrVmlkZW9TZXJ2aWNlLmNsaWNrVmlkZW8ob3B0aW9ucyk7XG4gKiBgYGBcbiAqL1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgQ2xpY2tWaWRlbyB7XG4gIC8qKlxuICAgKiBIYW5kbGVzIHRoZSBjbGljayBldmVudCB0byB0b2dnbGUgdGhlIHBhcnRpY2lwYW50J3MgdmlkZW8gb24vb2ZmIGFuZCBtYW5hZ2VzIHZpZGVvIHBlcm1pc3Npb24gcmVxdWVzdHMuXG4gICAqXG4gICAqIEBwYXJhbSB7Q2xpY2tWaWRlb1BhcmFtc30gb3B0aW9ucyAtIFRoZSBmdW5jdGlvbiBwYXJhbWV0ZXJzLlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn1cbiAgICovXG5cbiAgY2xpY2tWaWRlbyA9IGFzeW5jICh7IHBhcmFtZXRlcnMgfTogQ2xpY2tWaWRlb09wdGlvbnMpOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgICBsZXQge1xuICAgICAgY2hlY2tNZWRpYVBlcm1pc3Npb24sXG4gICAgICBoYXNDYW1lcmFQZXJtaXNzaW9uLFxuICAgICAgdmlkZW9BbHJlYWR5T24sXG4gICAgICBhdWRpb09ubHlSb29tLFxuICAgICAgcmVjb3JkU3RhcnRlZCxcbiAgICAgIHJlY29yZFJlc3VtZWQsXG4gICAgICByZWNvcmRQYXVzZWQsXG4gICAgICByZWNvcmRTdG9wcGVkLFxuICAgICAgcmVjb3JkaW5nTWVkaWFPcHRpb25zLFxuICAgICAgaXNsZXZlbCxcbiAgICAgIHlvdUFyZUNvSG9zdCxcbiAgICAgIGFkbWluUmVzdHJpY3RTZXR0aW5nLFxuICAgICAgdmlkZW9SZXF1ZXN0U3RhdGUsXG4gICAgICB2aWRlb1JlcXVlc3RUaW1lLFxuICAgICAgbWVtYmVyLFxuICAgICAgc29ja2V0LFxuICAgICAgcm9vbU5hbWUsXG4gICAgICB1c2VyRGVmYXVsdFZpZGVvSW5wdXREZXZpY2UsXG4gICAgICBjdXJyZW50RmFjaW5nTW9kZSxcbiAgICAgIHZpZENvbnMsXG4gICAgICBmcmFtZVJhdGUsXG4gICAgICB2aWRlb0FjdGlvbixcbiAgICAgIGxvY2FsU3RyZWFtLFxuICAgICAgYXVkaW9TZXR0aW5nLFxuICAgICAgdmlkZW9TZXR0aW5nLFxuICAgICAgc2NyZWVuc2hhcmVTZXR0aW5nLFxuICAgICAgY2hhdFNldHRpbmcsXG4gICAgICB1cGRhdGVSZXF1ZXN0SW50ZXJ2YWxTZWNvbmRzLFxuICAgICAgc3RyZWFtU3VjY2Vzc1ZpZGVvLFxuICAgICAgc2hvd0FsZXJ0LFxuICAgICAgdXBkYXRlVmlkZW9BbHJlYWR5T24sXG4gICAgICB1cGRhdGVWaWRlb1JlcXVlc3RTdGF0ZSxcbiAgICAgIHVwZGF0ZUxvY2FsU3RyZWFtLFxuICAgICAgZGlzY29ubmVjdFNlbmRUcmFuc3BvcnRWaWRlbyxcbiAgICAgIHJlcXVlc3RQZXJtaXNzaW9uQ2FtZXJhLFxuICAgICAgY2hlY2tQZXJtaXNzaW9uLFxuICAgIH0gPSBwYXJhbWV0ZXJzO1xuXG4gICAgaWYgKGF1ZGlvT25seVJvb20pIHtcbiAgICAgIHNob3dBbGVydD8uKHtcbiAgICAgICAgbWVzc2FnZTogJ1lvdSBjYW5ub3QgdHVybiBvbiB5b3VyIGNhbWVyYSBpbiBhbiBhdWRpbyBvbmx5IGV2ZW50LicsXG4gICAgICAgIHR5cGU6ICdkYW5nZXInLFxuICAgICAgICBkdXJhdGlvbjogMzAwMCxcbiAgICAgIH0pO1xuXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHZpZGVvQWxyZWFkeU9uKSB7XG4gICAgICBpZiAoaXNsZXZlbCA9PT0gJzInICYmIChyZWNvcmRTdGFydGVkIHx8IHJlY29yZFJlc3VtZWQpKSB7XG4gICAgICAgIGlmICghKHJlY29yZFBhdXNlZCB8fCByZWNvcmRTdG9wcGVkKSAmJiByZWNvcmRpbmdNZWRpYU9wdGlvbnMgPT09ICd2aWRlbycpIHtcbiAgICAgICAgICBzaG93QWxlcnQ/Lih7XG4gICAgICAgICAgICBtZXNzYWdlOlxuICAgICAgICAgICAgICAnWW91IGNhbm5vdCB0dXJuIG9mZiB5b3VyIGNhbWVyYSB3aGlsZSByZWNvcmRpbmcgdmlkZW8sIHBsZWFzZSBwYXVzZSBvciBzdG9wIHJlY29yZGluZyBmaXJzdC4nLFxuICAgICAgICAgICAgdHlwZTogJ2RhbmdlcicsXG4gICAgICAgICAgICBkdXJhdGlvbjogMzAwMCxcbiAgICAgICAgICB9KTtcblxuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICB2aWRlb0FscmVhZHlPbiA9IGZhbHNlO1xuICAgICAgdXBkYXRlVmlkZW9BbHJlYWR5T24odmlkZW9BbHJlYWR5T24pO1xuICAgICAgaWYgKGxvY2FsU3RyZWFtKSB7XG4gICAgICAgIGxvY2FsU3RyZWFtLmdldFZpZGVvVHJhY2tzKClbMF0uZW5hYmxlZCA9IGZhbHNlO1xuICAgICAgfVxuICAgICAgdXBkYXRlTG9jYWxTdHJlYW0obG9jYWxTdHJlYW0pO1xuICAgICAgYXdhaXQgZGlzY29ubmVjdFNlbmRUcmFuc3BvcnRWaWRlbyh7IHBhcmFtZXRlcnMgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChhZG1pblJlc3RyaWN0U2V0dGluZykge1xuICAgICAgICBzaG93QWxlcnQ/Lih7XG4gICAgICAgICAgbWVzc2FnZTogJ1lvdSBjYW5ub3QgdHVybiBvbiB5b3VyIGNhbWVyYS4gQWNjZXNzIGRlbmllZCBieSBob3N0LicsXG4gICAgICAgICAgdHlwZTogJ2RhbmdlcicsXG4gICAgICAgICAgZHVyYXRpb246IDMwMDAsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgbGV0IHJlc3BvbnNlID0gMjtcblxuICAgICAgaWYgKCF2aWRlb0FjdGlvbiAmJiBpc2xldmVsICE9PSAnMicgJiYgIXlvdUFyZUNvSG9zdCkge1xuICAgICAgICByZXNwb25zZSA9IGF3YWl0IGNoZWNrUGVybWlzc2lvbih7XG4gICAgICAgICAgcGVybWlzc2lvblR5cGU6ICd2aWRlb1NldHRpbmcnLFxuICAgICAgICAgIGF1ZGlvU2V0dGluZyxcbiAgICAgICAgICB2aWRlb1NldHRpbmcsXG4gICAgICAgICAgc2NyZWVuc2hhcmVTZXR0aW5nLFxuICAgICAgICAgIGNoYXRTZXR0aW5nLFxuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJlc3BvbnNlID0gMDtcbiAgICAgIH1cblxuICAgICAgaWYgKHJlc3BvbnNlID09PSAxKSB7XG4gICAgICAgIGlmICh2aWRlb1JlcXVlc3RTdGF0ZSA9PT0gJ3BlbmRpbmcnKSB7XG4gICAgICAgICAgc2hvd0FsZXJ0Py4oe1xuICAgICAgICAgICAgbWVzc2FnZTogJ0EgcmVxdWVzdCBpcyBwZW5kaW5nLiBQbGVhc2Ugd2FpdCBmb3IgdGhlIGhvc3QgdG8gcmVzcG9uZC4nLFxuICAgICAgICAgICAgdHlwZTogJ2RhbmdlcicsXG4gICAgICAgICAgICBkdXJhdGlvbjogMzAwMCxcbiAgICAgICAgICB9KTtcblxuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChcbiAgICAgICAgICB2aWRlb1JlcXVlc3RTdGF0ZSA9PT0gJ3JlamVjdGVkJyAmJlxuICAgICAgICAgIERhdGUubm93KCkgLSB2aWRlb1JlcXVlc3RUaW1lIDwgdXBkYXRlUmVxdWVzdEludGVydmFsU2Vjb25kc1xuICAgICAgICApIHtcbiAgICAgICAgICBzaG93QWxlcnQ/Lih7XG4gICAgICAgICAgICBtZXNzYWdlOiBgQSByZXF1ZXN0IHdhcyByZWplY3RlZC4gUGxlYXNlIHdhaXQgZm9yICR7dXBkYXRlUmVxdWVzdEludGVydmFsU2Vjb25kc30gc2Vjb25kcyBiZWZvcmUgc2VuZGluZyBhbm90aGVyIHJlcXVlc3QuYCxcbiAgICAgICAgICAgIHR5cGU6ICdkYW5nZXInLFxuICAgICAgICAgICAgZHVyYXRpb246IDMwMDAsXG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBzaG93QWxlcnQ/Lih7XG4gICAgICAgICAgbWVzc2FnZTogJ1JlcXVlc3Qgc2VudCB0byBob3N0LicsXG4gICAgICAgICAgdHlwZTogJ3N1Y2Nlc3MnLFxuICAgICAgICAgIGR1cmF0aW9uOiAzMDAwLFxuICAgICAgICB9KTtcblxuICAgICAgICB2aWRlb1JlcXVlc3RTdGF0ZSA9ICdwZW5kaW5nJztcbiAgICAgICAgdXBkYXRlVmlkZW9SZXF1ZXN0U3RhdGUodmlkZW9SZXF1ZXN0U3RhdGUpO1xuXG4gICAgICAgIGxldCB1c2VyUmVxdWVzdCA9IHsgaWQ6IHNvY2tldC5pZCwgbmFtZTogbWVtYmVyLCBpY29uOiAnZmEtdmlkZW8nIH07XG4gICAgICAgIHNvY2tldC5lbWl0KCdwYXJ0aWNpcGFudFJlcXVlc3QnLCB7IHVzZXJSZXF1ZXN0LCByb29tTmFtZSB9KTtcbiAgICAgIH0gZWxzZSBpZiAocmVzcG9uc2UgPT09IDIpIHtcbiAgICAgICAgc2hvd0FsZXJ0Py4oe1xuICAgICAgICAgIG1lc3NhZ2U6ICdZb3UgY2Fubm90IHR1cm4gb24geW91ciBjYW1lcmEuIEFjY2VzcyBkZW5pZWQgYnkgaG9zdC4nLFxuICAgICAgICAgIHR5cGU6ICdkYW5nZXInLFxuICAgICAgICAgIGR1cmF0aW9uOiAzMDAwLFxuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmICghaGFzQ2FtZXJhUGVybWlzc2lvbikge1xuICAgICAgICAgIGlmIChjaGVja01lZGlhUGVybWlzc2lvbikge1xuICAgICAgICAgICAgbGV0IHN0YXR1c0NhbWVyYSA9IGF3YWl0IHJlcXVlc3RQZXJtaXNzaW9uQ2FtZXJhKCk7XG4gICAgICAgICAgICBpZiAoc3RhdHVzQ2FtZXJhICE9PSAnZ3JhbnRlZCcpIHtcbiAgICAgICAgICAgICAgc2hvd0FsZXJ0Py4oe1xuICAgICAgICAgICAgICAgIG1lc3NhZ2U6XG4gICAgICAgICAgICAgICAgICAnQWxsb3cgYWNjZXNzIHRvIHlvdXIgY2FtZXJhIG9yIGNoZWNrIGlmIHlvdXIgY2FtZXJhIGlzIG5vdCBiZWluZyB1c2VkIGJ5IGFub3RoZXIgYXBwbGljYXRpb24uJyxcbiAgICAgICAgICAgICAgICB0eXBlOiAnZGFuZ2VyJyxcbiAgICAgICAgICAgICAgICBkdXJhdGlvbjogMzAwMCxcbiAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBtZWRpYUNvbnN0cmFpbnRzID0ge307XG4gICAgICAgIGxldCBhbHRNZWRpYUNvbnN0cmFpbnRzID0ge307XG4gICAgICAgIGlmICh1c2VyRGVmYXVsdFZpZGVvSW5wdXREZXZpY2UpIHtcbiAgICAgICAgICBpZiAodmlkQ29ucyAmJiB2aWRDb25zLndpZHRoICYmIHZpZENvbnMuaGVpZ2h0KSB7XG4gICAgICAgICAgICBtZWRpYUNvbnN0cmFpbnRzID0ge1xuICAgICAgICAgICAgICB2aWRlbzoge1xuICAgICAgICAgICAgICAgIGRldmljZUlkOiB1c2VyRGVmYXVsdFZpZGVvSW5wdXREZXZpY2UsXG4gICAgICAgICAgICAgICAgZmFjaW5nTW9kZTogY3VycmVudEZhY2luZ01vZGUsXG4gICAgICAgICAgICAgICAgLi4udmlkQ29ucyxcbiAgICAgICAgICAgICAgICBmcmFtZVJhdGU6IHsgaWRlYWw6IGZyYW1lUmF0ZSB9LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBhdWRpbzogZmFsc2UsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgYWx0TWVkaWFDb25zdHJhaW50cyA9IHtcbiAgICAgICAgICAgICAgdmlkZW86IHsgLi4udmlkQ29ucywgZnJhbWVSYXRlOiB7IGlkZWFsOiBmcmFtZVJhdGUgfSB9LFxuICAgICAgICAgICAgICBhdWRpbzogZmFsc2UsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBtZWRpYUNvbnN0cmFpbnRzID0ge1xuICAgICAgICAgICAgICB2aWRlbzogeyAuLi52aWRDb25zLCBmcmFtZVJhdGU6IHsgaWRlYWw6IGZyYW1lUmF0ZSB9IH0sXG4gICAgICAgICAgICAgIGF1ZGlvOiBmYWxzZSxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBhbHRNZWRpYUNvbnN0cmFpbnRzID0geyB2aWRlbzogeyBmcmFtZVJhdGU6IHsgaWRlYWw6IGZyYW1lUmF0ZSB9IH0sIGF1ZGlvOiBmYWxzZSB9O1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpZiAodmlkQ29ucyAmJiB2aWRDb25zLndpZHRoICYmIHZpZENvbnMuaGVpZ2h0KSB7XG4gICAgICAgICAgICBtZWRpYUNvbnN0cmFpbnRzID0ge1xuICAgICAgICAgICAgICB2aWRlbzogeyAuLi52aWRDb25zLCBmcmFtZVJhdGU6IHsgaWRlYWw6IGZyYW1lUmF0ZSB9IH0sXG4gICAgICAgICAgICAgIGF1ZGlvOiBmYWxzZSxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBhbHRNZWRpYUNvbnN0cmFpbnRzID0ge1xuICAgICAgICAgICAgICB2aWRlbzogeyAuLi52aWRDb25zLCBmcmFtZVJhdGU6IHsgaWRlYWw6IGZyYW1lUmF0ZSB9IH0sXG4gICAgICAgICAgICAgIGF1ZGlvOiBmYWxzZSxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG1lZGlhQ29uc3RyYWludHMgPSB7IHZpZGVvOiB7IGZyYW1lUmF0ZTogeyBpZGVhbDogZnJhbWVSYXRlIH0gfSwgYXVkaW86IGZhbHNlIH07XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgYXdhaXQgbmF2aWdhdG9yLm1lZGlhRGV2aWNlc1xuICAgICAgICAgIC5nZXRVc2VyTWVkaWEobWVkaWFDb25zdHJhaW50cylcbiAgICAgICAgICAudGhlbihhc3luYyAoc3RyZWFtOiBNZWRpYVN0cmVhbSkgPT4ge1xuICAgICAgICAgICAgYXdhaXQgc3RyZWFtU3VjY2Vzc1ZpZGVvKHsgc3RyZWFtLCBwYXJhbWV0ZXJzIH0pO1xuICAgICAgICAgIH0pXG4gICAgICAgICAgLmNhdGNoKGFzeW5jICgpID0+IHtcbiAgICAgICAgICAgIGF3YWl0IG5hdmlnYXRvci5tZWRpYURldmljZXNcbiAgICAgICAgICAgICAgLmdldFVzZXJNZWRpYShhbHRNZWRpYUNvbnN0cmFpbnRzKVxuICAgICAgICAgICAgICAudGhlbihhc3luYyAoc3RyZWFtOiBNZWRpYVN0cmVhbSkgPT4ge1xuICAgICAgICAgICAgICAgIGF3YWl0IHN0cmVhbVN1Y2Nlc3NWaWRlbyh7IHN0cmVhbSwgcGFyYW1ldGVycyB9KTtcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgLmNhdGNoKCgpID0+IHtcbiAgICAgICAgICAgICAgICBzaG93QWxlcnQ/Lih7XG4gICAgICAgICAgICAgICAgICBtZXNzYWdlOlxuICAgICAgICAgICAgICAgICAgICAnQWxsb3cgYWNjZXNzIHRvIHlvdXIgY2FtZXJhIG9yIGNoZWNrIGlmIHlvdXIgY2FtZXJhIGlzIG5vdCBiZWluZyB1c2VkIGJ5IGFub3RoZXIgYXBwbGljYXRpb24uJyxcbiAgICAgICAgICAgICAgICAgIHR5cGU6ICdkYW5nZXInLFxuICAgICAgICAgICAgICAgICAgZHVyYXRpb246IDMwMDAsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgfTtcbn1cbiJdfQ==
@@ -1,80 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- /**
4
- * Switches the audio input device based on user preference.
5
- *
6
- * @param {SwitchAudioOptions} options - The options for switching the audio input.
7
- * @param {string} options.audioPreference - The ID of the preferred audio input device.
8
- * @param {SwitchAudioParameters} options.parameters - The parameters required for switching the audio.
9
- * @param {string} options.parameters.defAudioID - The default audio input device ID.
10
- * @param {string} options.parameters.userDefaultAudioInputDevice - The current default audio input device ID.
11
- * @param {string} options.parameters.prevAudioInputDevice - The previously used audio input device ID.
12
- * @param {Function} options.parameters.updateUserDefaultAudioInputDevice - Function to update the user's default audio input device.
13
- * @param {Function} options.parameters.updatePrevAudioInputDevice - Function to update the previous audio input device.
14
- * @param {Function} options.parameters.switchUserAudio - Function to switch the user's audio.
15
- *
16
- * @returns {Promise<void>} A promise that resolves when the audio input has been switched.
17
- *
18
- * @remarks
19
- * This function checks if the user's preferred audio device differs from the current default.
20
- * If so, it updates the previous audio device and the current default audio device.
21
- * It then calls the function to switch the user's audio.
22
- *
23
- * @example
24
- * ```typescript
25
- * const options: SwitchAudioOptions = {
26
- * audioPreference: 'newAudioDeviceID',
27
- * parameters: {
28
- * defAudioID: 'defaultAudioDeviceID',
29
- * userDefaultAudioInputDevice: 'currentAudioDeviceID',
30
- * prevAudioInputDevice: '',
31
- * updateUserDefaultAudioInputDevice: (deviceId) => console.log(`Updated to: ${deviceId}`),
32
- * updatePrevAudioInputDevice: (deviceId) => console.log(`Previous device was: ${deviceId}`),
33
- * switchUserAudio: async ({ audioPreference, parameters }) => {
34
- * console.log(`Switching audio to: ${audioPreference}`);
35
- * },
36
- * getUpdatedAllParams: () => {
37
- * return {
38
- * defAudioID: 'defaultAudioDeviceID',
39
- * userDefaultAudioInputDevice: 'currentAudioDeviceID',
40
- * prevAudioInputDevice: '',
41
- * };
42
- * },
43
- * },
44
- * };
45
- *
46
- * const switchAudioService = new SwitchAudio();
47
- * await switchAudioService.switchAudio(options);
48
- * ```
49
- */
50
- export class SwitchAudio {
51
- /**
52
- * Switches the audio input device based on user preference.
53
- *
54
- * @param {SwitchAudioParams} options - The function parameters.
55
- * @returns {Promise<void>}
56
- */
57
- async switchAudio({ audioPreference, parameters }) {
58
- let { defAudioID, userDefaultAudioInputDevice, prevAudioInputDevice, updateUserDefaultAudioInputDevice, updatePrevAudioInputDevice,
59
- //mediasfu functions
60
- switchUserAudio, } = parameters;
61
- if (audioPreference !== defAudioID) {
62
- prevAudioInputDevice = userDefaultAudioInputDevice;
63
- updatePrevAudioInputDevice(prevAudioInputDevice);
64
- userDefaultAudioInputDevice = audioPreference;
65
- updateUserDefaultAudioInputDevice(userDefaultAudioInputDevice);
66
- if (defAudioID) {
67
- await switchUserAudio({ audioPreference, parameters });
68
- }
69
- }
70
- }
71
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: SwitchAudio, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
72
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: SwitchAudio, providedIn: 'root' });
73
- }
74
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: SwitchAudio, decorators: [{
75
- type: Injectable,
76
- args: [{
77
- providedIn: 'root',
78
- }]
79
- }] });
80
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3dpdGNoLWF1ZGlvLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tZWRpYXNmdS1hbmd1bGFyL3NyYy9saWIvbWV0aG9kcy9zdHJlYW0tbWV0aG9kcy9zd2l0Y2gtYXVkaW8uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQXlCM0M7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E4Q0c7QUFLSCxNQUFNLE9BQU8sV0FBVztJQUN0Qjs7Ozs7T0FLRztJQUVILEtBQUssQ0FBQyxXQUFXLENBQUMsRUFBRSxlQUFlLEVBQUUsVUFBVSxFQUFzQjtRQUNuRSxJQUFJLEVBQ0YsVUFBVSxFQUNWLDJCQUEyQixFQUMzQixvQkFBb0IsRUFDcEIsaUNBQWlDLEVBQ2pDLDBCQUEwQjtRQUUxQixvQkFBb0I7UUFDcEIsZUFBZSxHQUNoQixHQUFHLFVBQVUsQ0FBQztRQUVmLElBQUksZUFBZSxLQUFLLFVBQVUsRUFBRSxDQUFDO1lBQ25DLG9CQUFvQixHQUFHLDJCQUEyQixDQUFDO1lBQ25ELDBCQUEwQixDQUFDLG9CQUFvQixDQUFDLENBQUM7WUFDakQsMkJBQTJCLEdBQUcsZUFBZSxDQUFDO1lBQzlDLGlDQUFpQyxDQUFDLDJCQUEyQixDQUFDLENBQUM7WUFFL0QsSUFBSSxVQUFVLEVBQUUsQ0FBQztnQkFDZixNQUFNLGVBQWUsQ0FBQyxFQUFFLGVBQWUsRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFDO1lBQ3pELENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQzt1R0E5QlUsV0FBVzsyR0FBWCxXQUFXLGNBRlYsTUFBTTs7MkZBRVAsV0FBVztrQkFIdkIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTd2l0Y2hVc2VyQXVkaW9UeXBlLCBTd2l0Y2hVc2VyQXVkaW9QYXJhbWV0ZXJzIH0gZnJvbSAnLi4vLi4vQHR5cGVzL3R5cGVzJztcblxuZXhwb3J0IGludGVyZmFjZSBTd2l0Y2hBdWRpb1BhcmFtZXRlcnMgZXh0ZW5kcyBTd2l0Y2hVc2VyQXVkaW9QYXJhbWV0ZXJzIHtcbiAgZGVmQXVkaW9JRDogc3RyaW5nO1xuICB1c2VyRGVmYXVsdEF1ZGlvSW5wdXREZXZpY2U6IHN0cmluZztcbiAgcHJldkF1ZGlvSW5wdXREZXZpY2U6IHN0cmluZztcbiAgdXBkYXRlVXNlckRlZmF1bHRBdWRpb0lucHV0RGV2aWNlOiAoZGV2aWNlSWQ6IHN0cmluZykgPT4gdm9pZDtcbiAgdXBkYXRlUHJldkF1ZGlvSW5wdXREZXZpY2U6IChkZXZpY2VJZDogc3RyaW5nKSA9PiB2b2lkO1xuXG4gIC8vIG1lZGlhc2Z1IGZ1bmN0aW9uc1xuICBzd2l0Y2hVc2VyQXVkaW86IFN3aXRjaFVzZXJBdWRpb1R5cGU7XG5cbiAgZ2V0VXBkYXRlZEFsbFBhcmFtczogKCkgPT4gU3dpdGNoQXVkaW9QYXJhbWV0ZXJzO1xuICBba2V5OiBzdHJpbmddOiBhbnk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3dpdGNoQXVkaW9PcHRpb25zIHtcbiAgYXVkaW9QcmVmZXJlbmNlOiBzdHJpbmc7XG4gIHBhcmFtZXRlcnM6IFN3aXRjaEF1ZGlvUGFyYW1ldGVycztcbn1cblxuLy8gRXhwb3J0IHRoZSB0eXBlIGRlZmluaXRpb24gZm9yIHRoZSBmdW5jdGlvblxuZXhwb3J0IHR5cGUgU3dpdGNoQXVkaW9UeXBlID0gKG9wdGlvbnM6IFN3aXRjaEF1ZGlvT3B0aW9ucykgPT4gUHJvbWlzZTx2b2lkPjtcblxuLyoqXG4gKiBTd2l0Y2hlcyB0aGUgYXVkaW8gaW5wdXQgZGV2aWNlIGJhc2VkIG9uIHVzZXIgcHJlZmVyZW5jZS5cbiAqXG4gKiBAcGFyYW0ge1N3aXRjaEF1ZGlvT3B0aW9uc30gb3B0aW9ucyAtIFRoZSBvcHRpb25zIGZvciBzd2l0Y2hpbmcgdGhlIGF1ZGlvIGlucHV0LlxuICogQHBhcmFtIHtzdHJpbmd9IG9wdGlvbnMuYXVkaW9QcmVmZXJlbmNlIC0gVGhlIElEIG9mIHRoZSBwcmVmZXJyZWQgYXVkaW8gaW5wdXQgZGV2aWNlLlxuICogQHBhcmFtIHtTd2l0Y2hBdWRpb1BhcmFtZXRlcnN9IG9wdGlvbnMucGFyYW1ldGVycyAtIFRoZSBwYXJhbWV0ZXJzIHJlcXVpcmVkIGZvciBzd2l0Y2hpbmcgdGhlIGF1ZGlvLlxuICogQHBhcmFtIHtzdHJpbmd9IG9wdGlvbnMucGFyYW1ldGVycy5kZWZBdWRpb0lEIC0gVGhlIGRlZmF1bHQgYXVkaW8gaW5wdXQgZGV2aWNlIElELlxuICogQHBhcmFtIHtzdHJpbmd9IG9wdGlvbnMucGFyYW1ldGVycy51c2VyRGVmYXVsdEF1ZGlvSW5wdXREZXZpY2UgLSBUaGUgY3VycmVudCBkZWZhdWx0IGF1ZGlvIGlucHV0IGRldmljZSBJRC5cbiAqIEBwYXJhbSB7c3RyaW5nfSBvcHRpb25zLnBhcmFtZXRlcnMucHJldkF1ZGlvSW5wdXREZXZpY2UgLSBUaGUgcHJldmlvdXNseSB1c2VkIGF1ZGlvIGlucHV0IGRldmljZSBJRC5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IG9wdGlvbnMucGFyYW1ldGVycy51cGRhdGVVc2VyRGVmYXVsdEF1ZGlvSW5wdXREZXZpY2UgLSBGdW5jdGlvbiB0byB1cGRhdGUgdGhlIHVzZXIncyBkZWZhdWx0IGF1ZGlvIGlucHV0IGRldmljZS5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IG9wdGlvbnMucGFyYW1ldGVycy51cGRhdGVQcmV2QXVkaW9JbnB1dERldmljZSAtIEZ1bmN0aW9uIHRvIHVwZGF0ZSB0aGUgcHJldmlvdXMgYXVkaW8gaW5wdXQgZGV2aWNlLlxuICogQHBhcmFtIHtGdW5jdGlvbn0gb3B0aW9ucy5wYXJhbWV0ZXJzLnN3aXRjaFVzZXJBdWRpbyAtIEZ1bmN0aW9uIHRvIHN3aXRjaCB0aGUgdXNlcidzIGF1ZGlvLlxuICpcbiAqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fSBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBhdWRpbyBpbnB1dCBoYXMgYmVlbiBzd2l0Y2hlZC5cbiAqXG4gKiBAcmVtYXJrc1xuICogVGhpcyBmdW5jdGlvbiBjaGVja3MgaWYgdGhlIHVzZXIncyBwcmVmZXJyZWQgYXVkaW8gZGV2aWNlIGRpZmZlcnMgZnJvbSB0aGUgY3VycmVudCBkZWZhdWx0LlxuICogSWYgc28sIGl0IHVwZGF0ZXMgdGhlIHByZXZpb3VzIGF1ZGlvIGRldmljZSBhbmQgdGhlIGN1cnJlbnQgZGVmYXVsdCBhdWRpbyBkZXZpY2UuXG4gKiBJdCB0aGVuIGNhbGxzIHRoZSBmdW5jdGlvbiB0byBzd2l0Y2ggdGhlIHVzZXIncyBhdWRpby5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3Qgb3B0aW9uczogU3dpdGNoQXVkaW9PcHRpb25zID0ge1xuICogICBhdWRpb1ByZWZlcmVuY2U6ICduZXdBdWRpb0RldmljZUlEJyxcbiAqICAgcGFyYW1ldGVyczoge1xuICogICAgIGRlZkF1ZGlvSUQ6ICdkZWZhdWx0QXVkaW9EZXZpY2VJRCcsXG4gKiAgICAgdXNlckRlZmF1bHRBdWRpb0lucHV0RGV2aWNlOiAnY3VycmVudEF1ZGlvRGV2aWNlSUQnLFxuICogICAgIHByZXZBdWRpb0lucHV0RGV2aWNlOiAnJyxcbiAqICAgICB1cGRhdGVVc2VyRGVmYXVsdEF1ZGlvSW5wdXREZXZpY2U6IChkZXZpY2VJZCkgPT4gY29uc29sZS5sb2coYFVwZGF0ZWQgdG86ICR7ZGV2aWNlSWR9YCksXG4gKiAgICAgdXBkYXRlUHJldkF1ZGlvSW5wdXREZXZpY2U6IChkZXZpY2VJZCkgPT4gY29uc29sZS5sb2coYFByZXZpb3VzIGRldmljZSB3YXM6ICR7ZGV2aWNlSWR9YCksXG4gKiAgICAgc3dpdGNoVXNlckF1ZGlvOiBhc3luYyAoeyBhdWRpb1ByZWZlcmVuY2UsIHBhcmFtZXRlcnMgfSkgPT4ge1xuICogICAgICAgY29uc29sZS5sb2coYFN3aXRjaGluZyBhdWRpbyB0bzogJHthdWRpb1ByZWZlcmVuY2V9YCk7XG4gKiAgICAgfSxcbiAqICAgICBnZXRVcGRhdGVkQWxsUGFyYW1zOiAoKSA9PiB7XG4gKiAgICAgICByZXR1cm4ge1xuICogICAgICAgICBkZWZBdWRpb0lEOiAnZGVmYXVsdEF1ZGlvRGV2aWNlSUQnLFxuICogICAgICAgICB1c2VyRGVmYXVsdEF1ZGlvSW5wdXREZXZpY2U6ICdjdXJyZW50QXVkaW9EZXZpY2VJRCcsXG4gKiAgICAgICAgIHByZXZBdWRpb0lucHV0RGV2aWNlOiAnJyxcbiAqICAgICAgIH07XG4gKiAgICAgfSxcbiAqICAgfSxcbiAqIH07XG4gKlxuICogY29uc3Qgc3dpdGNoQXVkaW9TZXJ2aWNlID0gbmV3IFN3aXRjaEF1ZGlvKCk7XG4gKiBhd2FpdCBzd2l0Y2hBdWRpb1NlcnZpY2Uuc3dpdGNoQXVkaW8ob3B0aW9ucyk7XG4gKiBgYGBcbiAqL1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgU3dpdGNoQXVkaW8ge1xuICAvKipcbiAgICogU3dpdGNoZXMgdGhlIGF1ZGlvIGlucHV0IGRldmljZSBiYXNlZCBvbiB1c2VyIHByZWZlcmVuY2UuXG4gICAqXG4gICAqIEBwYXJhbSB7U3dpdGNoQXVkaW9QYXJhbXN9IG9wdGlvbnMgLSBUaGUgZnVuY3Rpb24gcGFyYW1ldGVycy5cbiAgICogQHJldHVybnMge1Byb21pc2U8dm9pZD59XG4gICAqL1xuXG4gIGFzeW5jIHN3aXRjaEF1ZGlvKHsgYXVkaW9QcmVmZXJlbmNlLCBwYXJhbWV0ZXJzIH06IFN3aXRjaEF1ZGlvT3B0aW9ucyk6IFByb21pc2U8dm9pZD4ge1xuICAgIGxldCB7XG4gICAgICBkZWZBdWRpb0lELFxuICAgICAgdXNlckRlZmF1bHRBdWRpb0lucHV0RGV2aWNlLFxuICAgICAgcHJldkF1ZGlvSW5wdXREZXZpY2UsXG4gICAgICB1cGRhdGVVc2VyRGVmYXVsdEF1ZGlvSW5wdXREZXZpY2UsXG4gICAgICB1cGRhdGVQcmV2QXVkaW9JbnB1dERldmljZSxcblxuICAgICAgLy9tZWRpYXNmdSBmdW5jdGlvbnNcbiAgICAgIHN3aXRjaFVzZXJBdWRpbyxcbiAgICB9ID0gcGFyYW1ldGVycztcblxuICAgIGlmIChhdWRpb1ByZWZlcmVuY2UgIT09IGRlZkF1ZGlvSUQpIHtcbiAgICAgIHByZXZBdWRpb0lucHV0RGV2aWNlID0gdXNlckRlZmF1bHRBdWRpb0lucHV0RGV2aWNlO1xuICAgICAgdXBkYXRlUHJldkF1ZGlvSW5wdXREZXZpY2UocHJldkF1ZGlvSW5wdXREZXZpY2UpO1xuICAgICAgdXNlckRlZmF1bHRBdWRpb0lucHV0RGV2aWNlID0gYXVkaW9QcmVmZXJlbmNlO1xuICAgICAgdXBkYXRlVXNlckRlZmF1bHRBdWRpb0lucHV0RGV2aWNlKHVzZXJEZWZhdWx0QXVkaW9JbnB1dERldmljZSk7XG5cbiAgICAgIGlmIChkZWZBdWRpb0lEKSB7XG4gICAgICAgIGF3YWl0IHN3aXRjaFVzZXJBdWRpbyh7IGF1ZGlvUHJlZmVyZW5jZSwgcGFyYW1ldGVycyB9KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiJdfQ==