mediasfu-angular 1.0.2 → 2.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (281) hide show
  1. package/README.md +686 -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,73 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- /**
4
- * Service to handle the end of a meeting, including showing an alert and redirecting the user.
5
- *
6
- * @class
7
- * @name MeetingEnded
8
- * @description
9
- * This service provides a method to display a notification when a meeting ends and redirects the user to a specified URL or handles other post-meeting actions.
10
- *
11
- * @method
12
- * meetingEnded
13
- *
14
- * @param {MeetingEndedOptions} options - Options for handling the meeting end:
15
- * - `showAlert` {Function}: Optional function to display an alert message.
16
- * - `redirectURL` {string}: URL to redirect to after the meeting ends.
17
- * - `onWeb` {boolean}: Specifies if the application is running on the web.
18
- * - `eventType` {string}: Specifies the type of event ending the meeting.
19
- *
20
- * @returns {Promise<void>} Completes meeting end handling by displaying an alert and performing a redirect.
21
- *
22
- * @example
23
- * const options = {
24
- * showAlert: (options) => console.log(options.message),
25
- * redirectURL: 'https://example.com/home',
26
- * onWeb: true,
27
- * eventType: 'webinar',
28
- * };
29
- * meetingEndedService.meetingEnded(options);
30
- * // Displays alert and redirects to specified URL
31
- */
32
- export class MeetingEnded {
33
- /**
34
- * Handles the end of a meeting by showing an alert and redirecting the user.
35
- *
36
- * @param {MeetingEndedOptions} options - The options for handling the meeting end.
37
- * @param {Function} options.showAlert - Function to show an alert message.
38
- * @param {string} options.redirectURL - URL to redirect to after the meeting ends.
39
- * @param {boolean} options.onWeb - Flag indicating if the application is running on the web.
40
- * @param {string} options.eventType - Type of the event that triggered the meeting end.
41
- *
42
- * @returns {Promise<void>} A promise that resolves when the meeting end handling is complete.
43
- */
44
- meetingEnded = async ({ showAlert, redirectURL, onWeb, eventType, }) => {
45
- // Show an alert that the meeting has ended and wait for 2 seconds before redirecting to the home page
46
- if (eventType !== 'chat') {
47
- showAlert?.({
48
- message: 'The event has ended. You will be redirected to the home page in 2 seconds.',
49
- type: 'danger',
50
- duration: 2000,
51
- });
52
- }
53
- if (onWeb && redirectURL) {
54
- setTimeout(() => {
55
- window.location.href = redirectURL;
56
- }, 2000);
57
- }
58
- else {
59
- // setTimeout(() => {
60
- // updateValidated(false);
61
- // }, 2000);
62
- }
63
- };
64
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: MeetingEnded, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
65
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: MeetingEnded, providedIn: 'root' });
66
- }
67
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: MeetingEnded, decorators: [{
68
- type: Injectable,
69
- args: [{
70
- providedIn: 'root',
71
- }]
72
- }] });
73
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVldGluZy1lbmRlZC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWVkaWFzZnUtYW5ndWxhci9zcmMvbGliL3Byb2R1Y2Vycy9zb2NrZXQtcmVjZWl2ZS1tZXRob2RzL21lZXRpbmctZW5kZWQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQWMzQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTRCRztBQU1ILE1BQU0sT0FBTyxZQUFZO0lBQ3ZCOzs7Ozs7Ozs7O09BVUc7SUFDSCxZQUFZLEdBQUcsS0FBSyxFQUFFLEVBQ3BCLFNBQVMsRUFDVCxXQUFXLEVBQ1gsS0FBSyxFQUNMLFNBQVMsR0FDVyxFQUFpQixFQUFFO1FBQ3ZDLHNHQUFzRztRQUN0RyxJQUFJLFNBQVMsS0FBSyxNQUFNLEVBQUUsQ0FBQztZQUN6QixTQUFTLEVBQUUsQ0FBQztnQkFDVixPQUFPLEVBQUUsNEVBQTRFO2dCQUNyRixJQUFJLEVBQUUsUUFBUTtnQkFDZCxRQUFRLEVBQUUsSUFBSTthQUNmLENBQUMsQ0FBQztRQUNMLENBQUM7UUFFRCxJQUFJLEtBQUssSUFBSSxXQUFXLEVBQUUsQ0FBQztZQUN6QixVQUFVLENBQUMsR0FBRyxFQUFFO2dCQUNkLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxHQUFHLFdBQVcsQ0FBQztZQUNyQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDWCxDQUFDO2FBQU0sQ0FBQztZQUNOLHFCQUFxQjtZQUNyQiw0QkFBNEI7WUFDNUIsWUFBWTtRQUNkLENBQUM7SUFDSCxDQUFDLENBQUM7dUdBcENTLFlBQVk7MkdBQVosWUFBWSxjQUZYLE1BQU07OzJGQUVQLFlBQVk7a0JBSHhCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRXZlbnRUeXBlLCBTaG93QWxlcnQgfSBmcm9tICcuLi8uLi9AdHlwZXMvdHlwZXMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIE1lZXRpbmdFbmRlZE9wdGlvbnMge1xuICBzaG93QWxlcnQ/OiBTaG93QWxlcnQ7XG4gIHJlZGlyZWN0VVJMPzogc3RyaW5nO1xuICBvbldlYjogYm9vbGVhbjtcbiAgZXZlbnRUeXBlOiBFdmVudFR5cGU7XG4gIHVwZGF0ZVZhbGlkYXRlZD86IChpc1ZhbGlkOiBib29sZWFuKSA9PiB2b2lkO1xufVxuXG4vLyBFeHBvcnQgdGhlIHR5cGUgZGVmaW5pdGlvbiBmb3IgdGhlIGZ1bmN0aW9uXG5leHBvcnQgdHlwZSBNZWV0aW5nRW5kZWRUeXBlID0gKG9wdGlvbnM6IE1lZXRpbmdFbmRlZE9wdGlvbnMpID0+IFByb21pc2U8dm9pZD47XG5cbi8qKlxuICogU2VydmljZSB0byBoYW5kbGUgdGhlIGVuZCBvZiBhIG1lZXRpbmcsIGluY2x1ZGluZyBzaG93aW5nIGFuIGFsZXJ0IGFuZCByZWRpcmVjdGluZyB0aGUgdXNlci5cbiAqXG4gKiBAY2xhc3NcbiAqIEBuYW1lIE1lZXRpbmdFbmRlZFxuICogQGRlc2NyaXB0aW9uXG4gKiBUaGlzIHNlcnZpY2UgcHJvdmlkZXMgYSBtZXRob2QgdG8gZGlzcGxheSBhIG5vdGlmaWNhdGlvbiB3aGVuIGEgbWVldGluZyBlbmRzIGFuZCByZWRpcmVjdHMgdGhlIHVzZXIgdG8gYSBzcGVjaWZpZWQgVVJMIG9yIGhhbmRsZXMgb3RoZXIgcG9zdC1tZWV0aW5nIGFjdGlvbnMuXG4gKlxuICogQG1ldGhvZFxuICogbWVldGluZ0VuZGVkXG4gKlxuICogQHBhcmFtIHtNZWV0aW5nRW5kZWRPcHRpb25zfSBvcHRpb25zIC0gT3B0aW9ucyBmb3IgaGFuZGxpbmcgdGhlIG1lZXRpbmcgZW5kOlxuICogICAtIGBzaG93QWxlcnRgIHtGdW5jdGlvbn06IE9wdGlvbmFsIGZ1bmN0aW9uIHRvIGRpc3BsYXkgYW4gYWxlcnQgbWVzc2FnZS5cbiAqICAgLSBgcmVkaXJlY3RVUkxgIHtzdHJpbmd9OiBVUkwgdG8gcmVkaXJlY3QgdG8gYWZ0ZXIgdGhlIG1lZXRpbmcgZW5kcy5cbiAqICAgLSBgb25XZWJgIHtib29sZWFufTogU3BlY2lmaWVzIGlmIHRoZSBhcHBsaWNhdGlvbiBpcyBydW5uaW5nIG9uIHRoZSB3ZWIuXG4gKiAgIC0gYGV2ZW50VHlwZWAge3N0cmluZ306IFNwZWNpZmllcyB0aGUgdHlwZSBvZiBldmVudCBlbmRpbmcgdGhlIG1lZXRpbmcuXG4gKlxuICogQHJldHVybnMge1Byb21pc2U8dm9pZD59IENvbXBsZXRlcyBtZWV0aW5nIGVuZCBoYW5kbGluZyBieSBkaXNwbGF5aW5nIGFuIGFsZXJ0IGFuZCBwZXJmb3JtaW5nIGEgcmVkaXJlY3QuXG4gKlxuICogQGV4YW1wbGVcbiAqIGNvbnN0IG9wdGlvbnMgPSB7XG4gKiAgIHNob3dBbGVydDogKG9wdGlvbnMpID0+IGNvbnNvbGUubG9nKG9wdGlvbnMubWVzc2FnZSksXG4gKiAgIHJlZGlyZWN0VVJMOiAnaHR0cHM6Ly9leGFtcGxlLmNvbS9ob21lJyxcbiAqICAgb25XZWI6IHRydWUsXG4gKiAgIGV2ZW50VHlwZTogJ3dlYmluYXInLFxuICogfTtcbiAqIG1lZXRpbmdFbmRlZFNlcnZpY2UubWVldGluZ0VuZGVkKG9wdGlvbnMpO1xuICogLy8gRGlzcGxheXMgYWxlcnQgYW5kIHJlZGlyZWN0cyB0byBzcGVjaWZpZWQgVVJMXG4gKi9cblxuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgTWVldGluZ0VuZGVkIHtcbiAgLyoqXG4gICAqIEhhbmRsZXMgdGhlIGVuZCBvZiBhIG1lZXRpbmcgYnkgc2hvd2luZyBhbiBhbGVydCBhbmQgcmVkaXJlY3RpbmcgdGhlIHVzZXIuXG4gICAqXG4gICAqIEBwYXJhbSB7TWVldGluZ0VuZGVkT3B0aW9uc30gb3B0aW9ucyAtIFRoZSBvcHRpb25zIGZvciBoYW5kbGluZyB0aGUgbWVldGluZyBlbmQuXG4gICAqIEBwYXJhbSB7RnVuY3Rpb259IG9wdGlvbnMuc2hvd0FsZXJ0IC0gRnVuY3Rpb24gdG8gc2hvdyBhbiBhbGVydCBtZXNzYWdlLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gb3B0aW9ucy5yZWRpcmVjdFVSTCAtIFVSTCB0byByZWRpcmVjdCB0byBhZnRlciB0aGUgbWVldGluZyBlbmRzLlxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IG9wdGlvbnMub25XZWIgLSBGbGFnIGluZGljYXRpbmcgaWYgdGhlIGFwcGxpY2F0aW9uIGlzIHJ1bm5pbmcgb24gdGhlIHdlYi5cbiAgICogQHBhcmFtIHtzdHJpbmd9IG9wdGlvbnMuZXZlbnRUeXBlIC0gVHlwZSBvZiB0aGUgZXZlbnQgdGhhdCB0cmlnZ2VyZWQgdGhlIG1lZXRpbmcgZW5kLlxuICAgKlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn0gQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgbWVldGluZyBlbmQgaGFuZGxpbmcgaXMgY29tcGxldGUuXG4gICAqL1xuICBtZWV0aW5nRW5kZWQgPSBhc3luYyAoe1xuICAgIHNob3dBbGVydCxcbiAgICByZWRpcmVjdFVSTCxcbiAgICBvbldlYixcbiAgICBldmVudFR5cGUsXG4gIH06IE1lZXRpbmdFbmRlZE9wdGlvbnMpOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgICAvLyBTaG93IGFuIGFsZXJ0IHRoYXQgdGhlIG1lZXRpbmcgaGFzIGVuZGVkIGFuZCB3YWl0IGZvciAyIHNlY29uZHMgYmVmb3JlIHJlZGlyZWN0aW5nIHRvIHRoZSBob21lIHBhZ2VcbiAgICBpZiAoZXZlbnRUeXBlICE9PSAnY2hhdCcpIHtcbiAgICAgIHNob3dBbGVydD8uKHtcbiAgICAgICAgbWVzc2FnZTogJ1RoZSBldmVudCBoYXMgZW5kZWQuIFlvdSB3aWxsIGJlIHJlZGlyZWN0ZWQgdG8gdGhlIGhvbWUgcGFnZSBpbiAyIHNlY29uZHMuJyxcbiAgICAgICAgdHlwZTogJ2RhbmdlcicsXG4gICAgICAgIGR1cmF0aW9uOiAyMDAwLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKG9uV2ViICYmIHJlZGlyZWN0VVJMKSB7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSByZWRpcmVjdFVSTDtcbiAgICAgIH0sIDIwMDApO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIC8vICAgdXBkYXRlVmFsaWRhdGVkKGZhbHNlKTtcbiAgICAgIC8vIH0sIDIwMDApO1xuICAgIH1cbiAgfTtcbn1cbiJdfQ==
@@ -1,47 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- /**
4
- * Service to handle the "still there?" check in a meeting by showing a confirmation modal.
5
- *
6
- * @class
7
- * @name MeetingStillThere
8
- * @description
9
- * This service provides a method to display a "still there?" confirmation modal to check if participants are still active in the meeting.
10
- *
11
- * @method
12
- * meetingStillThere
13
- *
14
- * @param {MeetingStillThereOptions} options - Options for managing the modal visibility:
15
- * - `updateIsConfirmHereModalVisible` {Function}: Function to set the visibility of the "still there?" confirmation modal.
16
- *
17
- * @returns {Promise<void>} Updates modal visibility when checking if the user is still present.
18
- *
19
- * @example
20
- * const options = {
21
- * updateIsConfirmHereModalVisible: (isVisible) => console.log(`Modal visibility: ${isVisible}`),
22
- * };
23
- * meetingStillThereService.meetingStillThere(options);
24
- * // Output: Sets and logs modal visibility to true
25
- */
26
- export class MeetingStillThere {
27
- /**
28
- * Handles the "still there?" meeting check by updating the visibility of the confirmation modal.
29
- *
30
- * @param {Object} options - The options for the meeting still there check.
31
- * @param {Function} options.updateIsConfirmHereModalVisible - Function to update the visibility of the "still there?" modal.
32
- * @returns {Promise<void>} A promise that resolves when the modal visibility is updated.
33
- */
34
- meetingStillThere = ({ updateIsConfirmHereModalVisible }) => {
35
- // Update the visibility of the "still there?" modal
36
- updateIsConfirmHereModalVisible(true);
37
- };
38
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: MeetingStillThere, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
39
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: MeetingStillThere, providedIn: 'root' });
40
- }
41
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: MeetingStillThere, decorators: [{
42
- type: Injectable,
43
- args: [{
44
- providedIn: 'root',
45
- }]
46
- }] });
47
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVldGluZy1zdGlsbC10aGVyZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWVkaWFzZnUtYW5ndWxhci9zcmMvbGliL3Byb2R1Y2Vycy9zb2NrZXQtcmVjZWl2ZS1tZXRob2RzL21lZXRpbmctc3RpbGwtdGhlcmUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQVEzQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXNCRztBQUtILE1BQU0sT0FBTyxpQkFBaUI7SUFDNUI7Ozs7OztPQU1HO0lBQ0gsaUJBQWlCLEdBQUcsQ0FBQyxFQUFFLCtCQUErQixFQUE0QixFQUFRLEVBQUU7UUFDMUYsb0RBQW9EO1FBQ3BELCtCQUErQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3hDLENBQUMsQ0FBQzt1R0FYUyxpQkFBaUI7MkdBQWpCLGlCQUFpQixjQUZoQixNQUFNOzsyRkFFUCxpQkFBaUI7a0JBSDdCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuZXhwb3J0IGludGVyZmFjZSBNZWV0aW5nU3RpbGxUaGVyZU9wdGlvbnMge1xuICB1cGRhdGVJc0NvbmZpcm1IZXJlTW9kYWxWaXNpYmxlOiAoaXNWaXNpYmxlOiBib29sZWFuKSA9PiB2b2lkO1xufVxuXG4vLyBFeHBvcnQgdGhlIHR5cGUgZGVmaW5pdGlvbiBmb3IgdGhlIGZ1bmN0aW9uXG5leHBvcnQgdHlwZSBNZWV0aW5nU3RpbGxUaGVyZVR5cGUgPSAob3B0aW9uczogTWVldGluZ1N0aWxsVGhlcmVPcHRpb25zKSA9PiBQcm9taXNlPHZvaWQ+O1xuXG4vKipcbiAqIFNlcnZpY2UgdG8gaGFuZGxlIHRoZSBcInN0aWxsIHRoZXJlP1wiIGNoZWNrIGluIGEgbWVldGluZyBieSBzaG93aW5nIGEgY29uZmlybWF0aW9uIG1vZGFsLlxuICpcbiAqIEBjbGFzc1xuICogQG5hbWUgTWVldGluZ1N0aWxsVGhlcmVcbiAqIEBkZXNjcmlwdGlvblxuICogVGhpcyBzZXJ2aWNlIHByb3ZpZGVzIGEgbWV0aG9kIHRvIGRpc3BsYXkgYSBcInN0aWxsIHRoZXJlP1wiIGNvbmZpcm1hdGlvbiBtb2RhbCB0byBjaGVjayBpZiBwYXJ0aWNpcGFudHMgYXJlIHN0aWxsIGFjdGl2ZSBpbiB0aGUgbWVldGluZy5cbiAqXG4gKiBAbWV0aG9kXG4gKiBtZWV0aW5nU3RpbGxUaGVyZVxuICpcbiAqIEBwYXJhbSB7TWVldGluZ1N0aWxsVGhlcmVPcHRpb25zfSBvcHRpb25zIC0gT3B0aW9ucyBmb3IgbWFuYWdpbmcgdGhlIG1vZGFsIHZpc2liaWxpdHk6XG4gKiAgIC0gYHVwZGF0ZUlzQ29uZmlybUhlcmVNb2RhbFZpc2libGVgIHtGdW5jdGlvbn06IEZ1bmN0aW9uIHRvIHNldCB0aGUgdmlzaWJpbGl0eSBvZiB0aGUgXCJzdGlsbCB0aGVyZT9cIiBjb25maXJtYXRpb24gbW9kYWwuXG4gKlxuICogQHJldHVybnMge1Byb21pc2U8dm9pZD59IFVwZGF0ZXMgbW9kYWwgdmlzaWJpbGl0eSB3aGVuIGNoZWNraW5nIGlmIHRoZSB1c2VyIGlzIHN0aWxsIHByZXNlbnQuXG4gKlxuICogQGV4YW1wbGVcbiAqIGNvbnN0IG9wdGlvbnMgPSB7XG4gKiAgIHVwZGF0ZUlzQ29uZmlybUhlcmVNb2RhbFZpc2libGU6IChpc1Zpc2libGUpID0+IGNvbnNvbGUubG9nKGBNb2RhbCB2aXNpYmlsaXR5OiAke2lzVmlzaWJsZX1gKSxcbiAqIH07XG4gKiBtZWV0aW5nU3RpbGxUaGVyZVNlcnZpY2UubWVldGluZ1N0aWxsVGhlcmUob3B0aW9ucyk7XG4gKiAvLyBPdXRwdXQ6IFNldHMgYW5kIGxvZ3MgbW9kYWwgdmlzaWJpbGl0eSB0byB0cnVlXG4gKi9cblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIE1lZXRpbmdTdGlsbFRoZXJlIHtcbiAgLyoqXG4gICAqIEhhbmRsZXMgdGhlIFwic3RpbGwgdGhlcmU/XCIgbWVldGluZyBjaGVjayBieSB1cGRhdGluZyB0aGUgdmlzaWJpbGl0eSBvZiB0aGUgY29uZmlybWF0aW9uIG1vZGFsLlxuICAgKlxuICAgKiBAcGFyYW0ge09iamVjdH0gb3B0aW9ucyAtIFRoZSBvcHRpb25zIGZvciB0aGUgbWVldGluZyBzdGlsbCB0aGVyZSBjaGVjay5cbiAgICogQHBhcmFtIHtGdW5jdGlvbn0gb3B0aW9ucy51cGRhdGVJc0NvbmZpcm1IZXJlTW9kYWxWaXNpYmxlIC0gRnVuY3Rpb24gdG8gdXBkYXRlIHRoZSB2aXNpYmlsaXR5IG9mIHRoZSBcInN0aWxsIHRoZXJlP1wiIG1vZGFsLlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn0gQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgbW9kYWwgdmlzaWJpbGl0eSBpcyB1cGRhdGVkLlxuICAgKi9cbiAgbWVldGluZ1N0aWxsVGhlcmUgPSAoeyB1cGRhdGVJc0NvbmZpcm1IZXJlTW9kYWxWaXNpYmxlIH06IE1lZXRpbmdTdGlsbFRoZXJlT3B0aW9ucyk6IHZvaWQgPT4ge1xuICAgIC8vIFVwZGF0ZSB0aGUgdmlzaWJpbGl0eSBvZiB0aGUgXCJzdGlsbCB0aGVyZT9cIiBtb2RhbFxuICAgIHVwZGF0ZUlzQ29uZmlybUhlcmVNb2RhbFZpc2libGUodHJ1ZSk7XG4gIH07XG59XG4iXX0=
@@ -1,63 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- /**
4
- * Service to handle the remaining time for a meeting and display an alert if necessary.
5
- *
6
- * @class
7
- * @name MeetingTimeRemaining
8
- * @description
9
- * Manages the display of a time remaining alert for meetings, except when the event type is 'chat'.
10
- *
11
- * @method
12
- * meetingTimeRemaining
13
- *
14
- * @param {MeetingTimeRemainingOptions} options - Options for managing meeting time:
15
- * - `timeRemaining` {number}: The remaining time in milliseconds.
16
- * - `showAlert` {Function}: Optional function to display an alert message.
17
- * - `eventType` {EventType}: The type of the event (e.g., "meeting", "broadcast", "chat").
18
- *
19
- * @returns {Promise<void>} Displays an alert with the remaining time for the meeting.
20
- *
21
- * @example
22
- * const options = {
23
- * timeRemaining: 180000, // 3 minutes in milliseconds
24
- * showAlert: (options) => console.log(options.message),
25
- * eventType: 'meeting'
26
- * };
27
- * await meetingTimeRemainingService.meetingTimeRemaining(options);
28
- * // Output: Displays "The event will end in 3:00 minutes."
29
- */
30
- export class MeetingTimeRemaining {
31
- /**
32
- * Handles the remaining time for a meeting and shows an alert if the event type is not 'chat'.
33
- *
34
- * @param {Object} options - The options for the meeting time remaining.
35
- * @param {number} options.timeRemaining - The remaining time in milliseconds.
36
- * @param {Function} options.showAlert - The function to show an alert message.
37
- * @param {string} options.eventType - The type of the event.
38
- * @returns {Promise<void>} A promise that resolves when the operation is complete.
39
- */
40
- meetingTimeRemaining = async ({ timeRemaining, showAlert, eventType, }) => {
41
- // Convert time from milliseconds to readable format of minutes and seconds
42
- const minutes = Math.floor(timeRemaining / 60000);
43
- const seconds = Math.floor((timeRemaining % 60000) / 1000);
44
- const timeRemainingString = `${minutes}:${seconds < 10 ? '0' : ''}${seconds}`;
45
- // Show alert with time remaining if eventType is not 'chat'
46
- if (eventType !== 'chat') {
47
- showAlert?.({
48
- message: `The event will end in ${timeRemainingString} minutes.`,
49
- type: 'success',
50
- duration: 3000,
51
- });
52
- }
53
- };
54
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: MeetingTimeRemaining, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
55
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: MeetingTimeRemaining, providedIn: 'root' });
56
- }
57
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: MeetingTimeRemaining, decorators: [{
58
- type: Injectable,
59
- args: [{
60
- providedIn: 'root',
61
- }]
62
- }] });
63
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVldGluZy10aW1lLXJlbWFpbmluZy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWVkaWFzZnUtYW5ndWxhci9zcmMvbGliL3Byb2R1Y2Vycy9zb2NrZXQtcmVjZWl2ZS1tZXRob2RzL21lZXRpbmctdGltZS1yZW1haW5pbmcuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQVkzQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0EwQkc7QUFNSCxNQUFNLE9BQU8sb0JBQW9CO0lBQy9COzs7Ozs7OztPQVFHO0lBQ0gsb0JBQW9CLEdBQUcsS0FBSyxFQUFFLEVBQzVCLGFBQWEsRUFDYixTQUFTLEVBQ1QsU0FBUyxHQUNtQixFQUFpQixFQUFFO1FBQy9DLDJFQUEyRTtRQUMzRSxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUMsQ0FBQztRQUNsRCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDO1FBQzNELE1BQU0sbUJBQW1CLEdBQUcsR0FBRyxPQUFPLElBQUksT0FBTyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsT0FBTyxFQUFFLENBQUM7UUFFOUUsNERBQTREO1FBQzVELElBQUksU0FBUyxLQUFLLE1BQU0sRUFBRSxDQUFDO1lBQ3pCLFNBQVMsRUFBRSxDQUFDO2dCQUNWLE9BQU8sRUFBRSx5QkFBeUIsbUJBQW1CLFdBQVc7Z0JBQ2hFLElBQUksRUFBRSxTQUFTO2dCQUNmLFFBQVEsRUFBRSxJQUFJO2FBQ2YsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztJQUNILENBQUMsQ0FBQzt1R0E1QlMsb0JBQW9COzJHQUFwQixvQkFBb0IsY0FGbkIsTUFBTTs7MkZBRVAsb0JBQW9CO2tCQUhoQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEV2ZW50VHlwZSwgU2hvd0FsZXJ0IH0gZnJvbSAnLi4vLi4vQHR5cGVzL3R5cGVzJztcblxuZXhwb3J0IGludGVyZmFjZSBNZWV0aW5nVGltZVJlbWFpbmluZ09wdGlvbnMge1xuICB0aW1lUmVtYWluaW5nOiBudW1iZXI7XG4gIHNob3dBbGVydD86IFNob3dBbGVydDtcbiAgZXZlbnRUeXBlOiBFdmVudFR5cGU7XG59XG5cbi8vIEV4cG9ydCB0aGUgdHlwZSBkZWZpbml0aW9uIGZvciB0aGUgZnVuY3Rpb25cbmV4cG9ydCB0eXBlIE1lZXRpbmdUaW1lUmVtYWluaW5nVHlwZSA9IChvcHRpb25zOiBNZWV0aW5nVGltZVJlbWFpbmluZ09wdGlvbnMpID0+IFByb21pc2U8dm9pZD47XG5cbi8qKlxuICogU2VydmljZSB0byBoYW5kbGUgdGhlIHJlbWFpbmluZyB0aW1lIGZvciBhIG1lZXRpbmcgYW5kIGRpc3BsYXkgYW4gYWxlcnQgaWYgbmVjZXNzYXJ5LlxuICpcbiAqIEBjbGFzc1xuICogQG5hbWUgTWVldGluZ1RpbWVSZW1haW5pbmdcbiAqIEBkZXNjcmlwdGlvblxuICogTWFuYWdlcyB0aGUgZGlzcGxheSBvZiBhIHRpbWUgcmVtYWluaW5nIGFsZXJ0IGZvciBtZWV0aW5ncywgZXhjZXB0IHdoZW4gdGhlIGV2ZW50IHR5cGUgaXMgJ2NoYXQnLlxuICpcbiAqIEBtZXRob2RcbiAqIG1lZXRpbmdUaW1lUmVtYWluaW5nXG4gKlxuICogQHBhcmFtIHtNZWV0aW5nVGltZVJlbWFpbmluZ09wdGlvbnN9IG9wdGlvbnMgLSBPcHRpb25zIGZvciBtYW5hZ2luZyBtZWV0aW5nIHRpbWU6XG4gKiAgIC0gYHRpbWVSZW1haW5pbmdgIHtudW1iZXJ9OiBUaGUgcmVtYWluaW5nIHRpbWUgaW4gbWlsbGlzZWNvbmRzLlxuICogICAtIGBzaG93QWxlcnRgIHtGdW5jdGlvbn06IE9wdGlvbmFsIGZ1bmN0aW9uIHRvIGRpc3BsYXkgYW4gYWxlcnQgbWVzc2FnZS5cbiAqICAgLSBgZXZlbnRUeXBlYCB7RXZlbnRUeXBlfTogVGhlIHR5cGUgb2YgdGhlIGV2ZW50IChlLmcuLCBcIm1lZXRpbmdcIiwgXCJicm9hZGNhc3RcIiwgXCJjaGF0XCIpLlxuICpcbiAqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fSBEaXNwbGF5cyBhbiBhbGVydCB3aXRoIHRoZSByZW1haW5pbmcgdGltZSBmb3IgdGhlIG1lZXRpbmcuXG4gKlxuICogQGV4YW1wbGVcbiAqIGNvbnN0IG9wdGlvbnMgPSB7XG4gKiAgIHRpbWVSZW1haW5pbmc6IDE4MDAwMCwgLy8gMyBtaW51dGVzIGluIG1pbGxpc2Vjb25kc1xuICogICBzaG93QWxlcnQ6IChvcHRpb25zKSA9PiBjb25zb2xlLmxvZyhvcHRpb25zLm1lc3NhZ2UpLFxuICogICBldmVudFR5cGU6ICdtZWV0aW5nJ1xuICogfTtcbiAqIGF3YWl0IG1lZXRpbmdUaW1lUmVtYWluaW5nU2VydmljZS5tZWV0aW5nVGltZVJlbWFpbmluZyhvcHRpb25zKTtcbiAqIC8vIE91dHB1dDogRGlzcGxheXMgXCJUaGUgZXZlbnQgd2lsbCBlbmQgaW4gMzowMCBtaW51dGVzLlwiXG4gKi9cblxuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgTWVldGluZ1RpbWVSZW1haW5pbmcge1xuICAvKipcbiAgICogSGFuZGxlcyB0aGUgcmVtYWluaW5nIHRpbWUgZm9yIGEgbWVldGluZyBhbmQgc2hvd3MgYW4gYWxlcnQgaWYgdGhlIGV2ZW50IHR5cGUgaXMgbm90ICdjaGF0Jy5cbiAgICpcbiAgICogQHBhcmFtIHtPYmplY3R9IG9wdGlvbnMgLSBUaGUgb3B0aW9ucyBmb3IgdGhlIG1lZXRpbmcgdGltZSByZW1haW5pbmcuXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBvcHRpb25zLnRpbWVSZW1haW5pbmcgLSBUaGUgcmVtYWluaW5nIHRpbWUgaW4gbWlsbGlzZWNvbmRzLlxuICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBvcHRpb25zLnNob3dBbGVydCAtIFRoZSBmdW5jdGlvbiB0byBzaG93IGFuIGFsZXJ0IG1lc3NhZ2UuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBvcHRpb25zLmV2ZW50VHlwZSAtIFRoZSB0eXBlIG9mIHRoZSBldmVudC5cbiAgICogQHJldHVybnMge1Byb21pc2U8dm9pZD59IEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIG9wZXJhdGlvbiBpcyBjb21wbGV0ZS5cbiAgICovXG4gIG1lZXRpbmdUaW1lUmVtYWluaW5nID0gYXN5bmMgKHtcbiAgICB0aW1lUmVtYWluaW5nLFxuICAgIHNob3dBbGVydCxcbiAgICBldmVudFR5cGUsXG4gIH06IE1lZXRpbmdUaW1lUmVtYWluaW5nT3B0aW9ucyk6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgIC8vIENvbnZlcnQgdGltZSBmcm9tIG1pbGxpc2Vjb25kcyB0byByZWFkYWJsZSBmb3JtYXQgb2YgbWludXRlcyBhbmQgc2Vjb25kc1xuICAgIGNvbnN0IG1pbnV0ZXMgPSBNYXRoLmZsb29yKHRpbWVSZW1haW5pbmcgLyA2MDAwMCk7XG4gICAgY29uc3Qgc2Vjb25kcyA9IE1hdGguZmxvb3IoKHRpbWVSZW1haW5pbmcgJSA2MDAwMCkgLyAxMDAwKTtcbiAgICBjb25zdCB0aW1lUmVtYWluaW5nU3RyaW5nID0gYCR7bWludXRlc306JHtzZWNvbmRzIDwgMTAgPyAnMCcgOiAnJ30ke3NlY29uZHN9YDtcblxuICAgIC8vIFNob3cgYWxlcnQgd2l0aCB0aW1lIHJlbWFpbmluZyBpZiBldmVudFR5cGUgaXMgbm90ICdjaGF0J1xuICAgIGlmIChldmVudFR5cGUgIT09ICdjaGF0Jykge1xuICAgICAgc2hvd0FsZXJ0Py4oe1xuICAgICAgICBtZXNzYWdlOiBgVGhlIGV2ZW50IHdpbGwgZW5kIGluICR7dGltZVJlbWFpbmluZ1N0cmluZ30gbWludXRlcy5gLFxuICAgICAgICB0eXBlOiAnc3VjY2VzcycsXG4gICAgICAgIGR1cmF0aW9uOiAzMDAwLFxuICAgICAgfSk7XG4gICAgfVxuICB9O1xufVxuIl19
@@ -1,63 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- /**
4
- * Service to handle participant requests in an event's waiting room.
5
- *
6
- * @class
7
- * @name ParticipantRequested
8
- * @description
9
- * Manages participant requests by adding new requests to the list and updating the total count of requests and waiting room participants.
10
- *
11
- * @method
12
- * participantRequested
13
- *
14
- * @param {ParticipantRequestedOptions} options - Contains request information and update functions:
15
- * - `userRequest` {Request}: The new request from a participant.
16
- * - `requestList` {Request[]}: The current list of requests.
17
- * - `waitingRoomList` {WaitingRoomParticipant[]}: The list of participants in the waiting room.
18
- * - `updateTotalReqWait` {Function}: Function to update the total count of requests and waiting room participants.
19
- * - `updateRequestList` {Function}: Function to update the request list.
20
- *
21
- * @returns {Promise<void>} Updates the request list and total request count.
22
- *
23
- * @example
24
- * const options = {
25
- * userRequest: { id: '123', name: 'John Doe', icon: 'fa-user', username: 'johndoe' },
26
- * requestList: existingRequests,
27
- * waitingRoomList: waitingParticipants,
28
- * updateTotalReqWait: (count) => console.log(`Total requests: ${count}`),
29
- * updateRequestList: (list) => console.log('Updated request list', list)
30
- * };
31
- * await participantRequestedService.participantRequested(options);
32
- * // Adds "John Doe" to request list and updates the total count.
33
- */
34
- export class ParticipantRequested {
35
- /**
36
- * Handles a participant's request by adding it to the request list and updating the total count of requests and waiting room participants.
37
- *
38
- * @param {ParticipantRequestedOptions} options - The options for handling the participant's request.
39
- * @param {UserRequest} options.userRequest - The user request to be added to the request list.
40
- * @param {UserRequest[]} options.requestList - The current list of user requests.
41
- * @param {UserRequest[]} options.waitingRoomList - The current list of participants in the waiting room.
42
- * @param {Function} options.updateTotalReqWait - Function to update the total count of requests and waiting room participants.
43
- * @param {Function} options.updateRequestList - Function to update the request list.
44
- * @returns {Promise<void>} A promise that resolves when the participant's request has been handled.
45
- */
46
- participantRequested = async ({ userRequest, requestList, waitingRoomList, updateTotalReqWait, updateRequestList, }) => {
47
- // Add the user request to the request list
48
- const updatedRequestList = [...requestList, userRequest];
49
- updateRequestList(updatedRequestList);
50
- // Update the total count of requests and waiting room participants
51
- const reqCount = updatedRequestList.length + waitingRoomList.length;
52
- updateTotalReqWait(reqCount);
53
- };
54
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ParticipantRequested, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
55
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ParticipantRequested, providedIn: 'root' });
56
- }
57
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ParticipantRequested, decorators: [{
58
- type: Injectable,
59
- args: [{
60
- providedIn: 'root',
61
- }]
62
- }] });
63
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFydGljaXBhbnQtcmVxdWVzdGVkLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tZWRpYXNmdS1hbmd1bGFyL3NyYy9saWIvcHJvZHVjZXJzL3NvY2tldC1yZWNlaXZlLW1ldGhvZHMvcGFydGljaXBhbnQtcmVxdWVzdGVkLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFjM0M7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQThCRztBQU1ILE1BQU0sT0FBTyxvQkFBb0I7SUFDL0I7Ozs7Ozs7Ozs7T0FVRztJQUNILG9CQUFvQixHQUFHLEtBQUssRUFBRSxFQUM1QixXQUFXLEVBQ1gsV0FBVyxFQUNYLGVBQWUsRUFDZixrQkFBa0IsRUFDbEIsaUJBQWlCLEdBQ1csRUFBaUIsRUFBRTtRQUMvQywyQ0FBMkM7UUFDM0MsTUFBTSxrQkFBa0IsR0FBRyxDQUFDLEdBQUcsV0FBVyxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBQ3pELGlCQUFpQixDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFFdEMsbUVBQW1FO1FBQ25FLE1BQU0sUUFBUSxHQUFHLGtCQUFrQixDQUFDLE1BQU0sR0FBRyxlQUFlLENBQUMsTUFBTSxDQUFDO1FBQ3BFLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQy9CLENBQUMsQ0FBQzt1R0ExQlMsb0JBQW9COzJHQUFwQixvQkFBb0IsY0FGbkIsTUFBTTs7MkZBRVAsb0JBQW9CO2tCQUhoQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJlcXVlc3QsIFdhaXRpbmdSb29tUGFydGljaXBhbnQgfSBmcm9tICcuLi8uLi9AdHlwZXMvdHlwZXMnO1xuZXhwb3J0IGludGVyZmFjZSBQYXJ0aWNpcGFudFJlcXVlc3RlZE9wdGlvbnMge1xuICB1c2VyUmVxdWVzdDogUmVxdWVzdDtcblxuICByZXF1ZXN0TGlzdDogUmVxdWVzdFtdO1xuICB3YWl0aW5nUm9vbUxpc3Q6IFdhaXRpbmdSb29tUGFydGljaXBhbnRbXTtcbiAgdXBkYXRlVG90YWxSZXFXYWl0OiAoY291bnQ6IG51bWJlcikgPT4gdm9pZDtcbiAgdXBkYXRlUmVxdWVzdExpc3Q6IChsaXN0OiBSZXF1ZXN0W10pID0+IHZvaWQ7XG59XG5cbi8vIEV4cG9ydCB0aGUgdHlwZSBkZWZpbml0aW9uIGZvciB0aGUgZnVuY3Rpb25cbmV4cG9ydCB0eXBlIFBhcnRpY2lwYW50UmVxdWVzdGVkVHlwZSA9IChvcHRpb25zOiBQYXJ0aWNpcGFudFJlcXVlc3RlZE9wdGlvbnMpID0+IFByb21pc2U8dm9pZD47XG5cbi8qKlxuICogU2VydmljZSB0byBoYW5kbGUgcGFydGljaXBhbnQgcmVxdWVzdHMgaW4gYW4gZXZlbnQncyB3YWl0aW5nIHJvb20uXG4gKlxuICogQGNsYXNzXG4gKiBAbmFtZSBQYXJ0aWNpcGFudFJlcXVlc3RlZFxuICogQGRlc2NyaXB0aW9uXG4gKiBNYW5hZ2VzIHBhcnRpY2lwYW50IHJlcXVlc3RzIGJ5IGFkZGluZyBuZXcgcmVxdWVzdHMgdG8gdGhlIGxpc3QgYW5kIHVwZGF0aW5nIHRoZSB0b3RhbCBjb3VudCBvZiByZXF1ZXN0cyBhbmQgd2FpdGluZyByb29tIHBhcnRpY2lwYW50cy5cbiAqXG4gKiBAbWV0aG9kXG4gKiBwYXJ0aWNpcGFudFJlcXVlc3RlZFxuICpcbiAqIEBwYXJhbSB7UGFydGljaXBhbnRSZXF1ZXN0ZWRPcHRpb25zfSBvcHRpb25zIC0gQ29udGFpbnMgcmVxdWVzdCBpbmZvcm1hdGlvbiBhbmQgdXBkYXRlIGZ1bmN0aW9uczpcbiAqICAgLSBgdXNlclJlcXVlc3RgIHtSZXF1ZXN0fTogVGhlIG5ldyByZXF1ZXN0IGZyb20gYSBwYXJ0aWNpcGFudC5cbiAqICAgLSBgcmVxdWVzdExpc3RgIHtSZXF1ZXN0W119OiBUaGUgY3VycmVudCBsaXN0IG9mIHJlcXVlc3RzLlxuICogICAtIGB3YWl0aW5nUm9vbUxpc3RgIHtXYWl0aW5nUm9vbVBhcnRpY2lwYW50W119OiBUaGUgbGlzdCBvZiBwYXJ0aWNpcGFudHMgaW4gdGhlIHdhaXRpbmcgcm9vbS5cbiAqICAgLSBgdXBkYXRlVG90YWxSZXFXYWl0YCB7RnVuY3Rpb259OiBGdW5jdGlvbiB0byB1cGRhdGUgdGhlIHRvdGFsIGNvdW50IG9mIHJlcXVlc3RzIGFuZCB3YWl0aW5nIHJvb20gcGFydGljaXBhbnRzLlxuICogICAtIGB1cGRhdGVSZXF1ZXN0TGlzdGAge0Z1bmN0aW9ufTogRnVuY3Rpb24gdG8gdXBkYXRlIHRoZSByZXF1ZXN0IGxpc3QuXG4gKlxuICogQHJldHVybnMge1Byb21pc2U8dm9pZD59IFVwZGF0ZXMgdGhlIHJlcXVlc3QgbGlzdCBhbmQgdG90YWwgcmVxdWVzdCBjb3VudC5cbiAqXG4gKiBAZXhhbXBsZVxuICogY29uc3Qgb3B0aW9ucyA9IHtcbiAqICAgdXNlclJlcXVlc3Q6IHsgaWQ6ICcxMjMnLCBuYW1lOiAnSm9obiBEb2UnLCBpY29uOiAnZmEtdXNlcicsIHVzZXJuYW1lOiAnam9obmRvZScgfSxcbiAqICAgcmVxdWVzdExpc3Q6IGV4aXN0aW5nUmVxdWVzdHMsXG4gKiAgIHdhaXRpbmdSb29tTGlzdDogd2FpdGluZ1BhcnRpY2lwYW50cyxcbiAqICAgdXBkYXRlVG90YWxSZXFXYWl0OiAoY291bnQpID0+IGNvbnNvbGUubG9nKGBUb3RhbCByZXF1ZXN0czogJHtjb3VudH1gKSxcbiAqICAgdXBkYXRlUmVxdWVzdExpc3Q6IChsaXN0KSA9PiBjb25zb2xlLmxvZygnVXBkYXRlZCByZXF1ZXN0IGxpc3QnLCBsaXN0KVxuICogfTtcbiAqIGF3YWl0IHBhcnRpY2lwYW50UmVxdWVzdGVkU2VydmljZS5wYXJ0aWNpcGFudFJlcXVlc3RlZChvcHRpb25zKTtcbiAqIC8vIEFkZHMgXCJKb2huIERvZVwiIHRvIHJlcXVlc3QgbGlzdCBhbmQgdXBkYXRlcyB0aGUgdG90YWwgY291bnQuXG4gKi9cblxuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgUGFydGljaXBhbnRSZXF1ZXN0ZWQge1xuICAvKipcbiAgICogSGFuZGxlcyBhIHBhcnRpY2lwYW50J3MgcmVxdWVzdCBieSBhZGRpbmcgaXQgdG8gdGhlIHJlcXVlc3QgbGlzdCBhbmQgdXBkYXRpbmcgdGhlIHRvdGFsIGNvdW50IG9mIHJlcXVlc3RzIGFuZCB3YWl0aW5nIHJvb20gcGFydGljaXBhbnRzLlxuICAgKlxuICAgKiBAcGFyYW0ge1BhcnRpY2lwYW50UmVxdWVzdGVkT3B0aW9uc30gb3B0aW9ucyAtIFRoZSBvcHRpb25zIGZvciBoYW5kbGluZyB0aGUgcGFydGljaXBhbnQncyByZXF1ZXN0LlxuICAgKiBAcGFyYW0ge1VzZXJSZXF1ZXN0fSBvcHRpb25zLnVzZXJSZXF1ZXN0IC0gVGhlIHVzZXIgcmVxdWVzdCB0byBiZSBhZGRlZCB0byB0aGUgcmVxdWVzdCBsaXN0LlxuICAgKiBAcGFyYW0ge1VzZXJSZXF1ZXN0W119IG9wdGlvbnMucmVxdWVzdExpc3QgLSBUaGUgY3VycmVudCBsaXN0IG9mIHVzZXIgcmVxdWVzdHMuXG4gICAqIEBwYXJhbSB7VXNlclJlcXVlc3RbXX0gb3B0aW9ucy53YWl0aW5nUm9vbUxpc3QgLSBUaGUgY3VycmVudCBsaXN0IG9mIHBhcnRpY2lwYW50cyBpbiB0aGUgd2FpdGluZyByb29tLlxuICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBvcHRpb25zLnVwZGF0ZVRvdGFsUmVxV2FpdCAtIEZ1bmN0aW9uIHRvIHVwZGF0ZSB0aGUgdG90YWwgY291bnQgb2YgcmVxdWVzdHMgYW5kIHdhaXRpbmcgcm9vbSBwYXJ0aWNpcGFudHMuXG4gICAqIEBwYXJhbSB7RnVuY3Rpb259IG9wdGlvbnMudXBkYXRlUmVxdWVzdExpc3QgLSBGdW5jdGlvbiB0byB1cGRhdGUgdGhlIHJlcXVlc3QgbGlzdC5cbiAgICogQHJldHVybnMge1Byb21pc2U8dm9pZD59IEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIHBhcnRpY2lwYW50J3MgcmVxdWVzdCBoYXMgYmVlbiBoYW5kbGVkLlxuICAgKi9cbiAgcGFydGljaXBhbnRSZXF1ZXN0ZWQgPSBhc3luYyAoe1xuICAgIHVzZXJSZXF1ZXN0LFxuICAgIHJlcXVlc3RMaXN0LFxuICAgIHdhaXRpbmdSb29tTGlzdCxcbiAgICB1cGRhdGVUb3RhbFJlcVdhaXQsXG4gICAgdXBkYXRlUmVxdWVzdExpc3QsXG4gIH06IFBhcnRpY2lwYW50UmVxdWVzdGVkT3B0aW9ucyk6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgIC8vIEFkZCB0aGUgdXNlciByZXF1ZXN0IHRvIHRoZSByZXF1ZXN0IGxpc3RcbiAgICBjb25zdCB1cGRhdGVkUmVxdWVzdExpc3QgPSBbLi4ucmVxdWVzdExpc3QsIHVzZXJSZXF1ZXN0XTtcbiAgICB1cGRhdGVSZXF1ZXN0TGlzdCh1cGRhdGVkUmVxdWVzdExpc3QpO1xuXG4gICAgLy8gVXBkYXRlIHRoZSB0b3RhbCBjb3VudCBvZiByZXF1ZXN0cyBhbmQgd2FpdGluZyByb29tIHBhcnRpY2lwYW50c1xuICAgIGNvbnN0IHJlcUNvdW50ID0gdXBkYXRlZFJlcXVlc3RMaXN0Lmxlbmd0aCArIHdhaXRpbmdSb29tTGlzdC5sZW5ndGg7XG4gICAgdXBkYXRlVG90YWxSZXFXYWl0KHJlcUNvdW50KTtcbiAgfTtcbn1cbiJdfQ==
@@ -1,54 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- /**
4
- * Service to handle actions when a person joins an event.
5
- *
6
- * @class
7
- * @name PersonJoined
8
- * @description
9
- * Displays a notification when a person joins the event, using the `showAlert` function if provided.
10
- *
11
- * @method
12
- * personJoined
13
- *
14
- * @param {PersonJoinedOptions} options - Contains information about the person and alert display function:
15
- * - `name` {string}: The name of the person who joined.
16
- * - `showAlert` {Function} (optional): Function to display a notification when the person joins.
17
- *
18
- * @returns {void} Executes alert display through `showAlert` if defined.
19
- *
20
- * @example
21
- * const options = {
22
- * name: 'Alice',
23
- * showAlert: ({ message, type, duration }) => console.log(message)
24
- * };
25
- * personJoinedService.personJoined(options);
26
- * // Logs: "Alice joined the event."
27
- */
28
- export class PersonJoined {
29
- /**
30
- * Handles the event when a person joins.
31
- *
32
- * @param {PersonJoinedOptions} options - The options for the person joined event.
33
- * @param {string} options.name - The name of the person who joined.
34
- * @param {Function} options.showAlert - A function to display an alert/notification.
35
- * @returns {Promise<void>} A promise that resolves when the alert has been shown.
36
- */
37
- personJoined = ({ name, showAlert }) => {
38
- // Display an alert/notification about the person joining the event
39
- showAlert?.({
40
- message: `${name} joined the event.`,
41
- type: 'success',
42
- duration: 3000,
43
- });
44
- };
45
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: PersonJoined, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
46
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: PersonJoined, providedIn: 'root' });
47
- }
48
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: PersonJoined, decorators: [{
49
- type: Injectable,
50
- args: [{
51
- providedIn: 'root',
52
- }]
53
- }] });
54
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVyc29uLWpvaW5lZC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWVkaWFzZnUtYW5ndWxhci9zcmMvbGliL3Byb2R1Y2Vycy9zb2NrZXQtcmVjZWl2ZS1tZXRob2RzL3BlcnNvbi1qb2luZWQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQVczQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBd0JHO0FBS0gsTUFBTSxPQUFPLFlBQVk7SUFDdkI7Ozs7Ozs7T0FPRztJQUNILFlBQVksR0FBRyxDQUFDLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBdUIsRUFBUSxFQUFFO1FBQ2hFLG1FQUFtRTtRQUNuRSxTQUFTLEVBQUUsQ0FBQztZQUNWLE9BQU8sRUFBRSxHQUFHLElBQUksb0JBQW9CO1lBQ3BDLElBQUksRUFBRSxTQUFTO1lBQ2YsUUFBUSxFQUFFLElBQUk7U0FDZixDQUFDLENBQUM7SUFDTCxDQUFDLENBQUM7dUdBaEJTLFlBQVk7MkdBQVosWUFBWSxjQUZYLE1BQU07OzJGQUVQLFlBQVk7a0JBSHhCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2hvd0FsZXJ0IH0gZnJvbSAnLi4vLi4vQHR5cGVzL3R5cGVzJztcblxuZXhwb3J0IGludGVyZmFjZSBQZXJzb25Kb2luZWRPcHRpb25zIHtcbiAgc2hvd0FsZXJ0PzogU2hvd0FsZXJ0O1xuICBuYW1lOiBzdHJpbmc7XG59XG5cbi8vIEV4cG9ydCB0aGUgdHlwZSBkZWZpbml0aW9uIGZvciB0aGUgZnVuY3Rpb25cbmV4cG9ydCB0eXBlIFBlcnNvbkpvaW5lZFR5cGUgPSAob3B0aW9uczogUGVyc29uSm9pbmVkT3B0aW9ucykgPT4gUHJvbWlzZTx2b2lkPjtcblxuLyoqXG4gKiBTZXJ2aWNlIHRvIGhhbmRsZSBhY3Rpb25zIHdoZW4gYSBwZXJzb24gam9pbnMgYW4gZXZlbnQuXG4gKlxuICogQGNsYXNzXG4gKiBAbmFtZSBQZXJzb25Kb2luZWRcbiAqIEBkZXNjcmlwdGlvblxuICogRGlzcGxheXMgYSBub3RpZmljYXRpb24gd2hlbiBhIHBlcnNvbiBqb2lucyB0aGUgZXZlbnQsIHVzaW5nIHRoZSBgc2hvd0FsZXJ0YCBmdW5jdGlvbiBpZiBwcm92aWRlZC5cbiAqXG4gKiBAbWV0aG9kXG4gKiBwZXJzb25Kb2luZWRcbiAqXG4gKiBAcGFyYW0ge1BlcnNvbkpvaW5lZE9wdGlvbnN9IG9wdGlvbnMgLSBDb250YWlucyBpbmZvcm1hdGlvbiBhYm91dCB0aGUgcGVyc29uIGFuZCBhbGVydCBkaXNwbGF5IGZ1bmN0aW9uOlxuICogICAtIGBuYW1lYCB7c3RyaW5nfTogVGhlIG5hbWUgb2YgdGhlIHBlcnNvbiB3aG8gam9pbmVkLlxuICogICAtIGBzaG93QWxlcnRgIHtGdW5jdGlvbn0gKG9wdGlvbmFsKTogRnVuY3Rpb24gdG8gZGlzcGxheSBhIG5vdGlmaWNhdGlvbiB3aGVuIHRoZSBwZXJzb24gam9pbnMuXG4gKlxuICogQHJldHVybnMge3ZvaWR9IEV4ZWN1dGVzIGFsZXJ0IGRpc3BsYXkgdGhyb3VnaCBgc2hvd0FsZXJ0YCBpZiBkZWZpbmVkLlxuICpcbiAqIEBleGFtcGxlXG4gKiBjb25zdCBvcHRpb25zID0ge1xuICogICBuYW1lOiAnQWxpY2UnLFxuICogICBzaG93QWxlcnQ6ICh7IG1lc3NhZ2UsIHR5cGUsIGR1cmF0aW9uIH0pID0+IGNvbnNvbGUubG9nKG1lc3NhZ2UpXG4gKiB9O1xuICogcGVyc29uSm9pbmVkU2VydmljZS5wZXJzb25Kb2luZWQob3B0aW9ucyk7XG4gKiAvLyBMb2dzOiBcIkFsaWNlIGpvaW5lZCB0aGUgZXZlbnQuXCJcbiAqL1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgUGVyc29uSm9pbmVkIHtcbiAgLyoqXG4gICAqIEhhbmRsZXMgdGhlIGV2ZW50IHdoZW4gYSBwZXJzb24gam9pbnMuXG4gICAqXG4gICAqIEBwYXJhbSB7UGVyc29uSm9pbmVkT3B0aW9uc30gb3B0aW9ucyAtIFRoZSBvcHRpb25zIGZvciB0aGUgcGVyc29uIGpvaW5lZCBldmVudC5cbiAgICogQHBhcmFtIHtzdHJpbmd9IG9wdGlvbnMubmFtZSAtIFRoZSBuYW1lIG9mIHRoZSBwZXJzb24gd2hvIGpvaW5lZC5cbiAgICogQHBhcmFtIHtGdW5jdGlvbn0gb3B0aW9ucy5zaG93QWxlcnQgLSBBIGZ1bmN0aW9uIHRvIGRpc3BsYXkgYW4gYWxlcnQvbm90aWZpY2F0aW9uLlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn0gQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgYWxlcnQgaGFzIGJlZW4gc2hvd24uXG4gICAqL1xuICBwZXJzb25Kb2luZWQgPSAoeyBuYW1lLCBzaG93QWxlcnQgfTogUGVyc29uSm9pbmVkT3B0aW9ucyk6IHZvaWQgPT4ge1xuICAgIC8vIERpc3BsYXkgYW4gYWxlcnQvbm90aWZpY2F0aW9uIGFib3V0IHRoZSBwZXJzb24gam9pbmluZyB0aGUgZXZlbnRcbiAgICBzaG93QWxlcnQ/Lih7XG4gICAgICBtZXNzYWdlOiBgJHtuYW1lfSBqb2luZWQgdGhlIGV2ZW50LmAsXG4gICAgICB0eXBlOiAnc3VjY2VzcycsXG4gICAgICBkdXJhdGlvbjogMzAwMCxcbiAgICB9KTtcbiAgfTtcbn1cbiJdfQ==
@@ -1,129 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- /**
4
- * Service to handle closing a media producer and associated UI and state updates.
5
- *
6
- * @class
7
- * @name ProducerMediaClosed
8
- * @description
9
- * Manages the closure of a media producer by identifying associated consumer transports, closing necessary resources,
10
- * and updating the user interface to reflect the change. For screen sharing, it resets the shared state and adjusts the main view.
11
- *
12
- * @method
13
- * producerMediaClosed
14
- *
15
- * @param {ProducerMediaClosedOptions} options - Contains details on the producer and parameters for state updates:
16
- * - `producerId` {string}: ID of the producer to close.
17
- * - `kind` {string}: The type of media to close (e.g., "screenshare" or "audio").
18
- * - `parameters` {ProducerMediaClosedParameters}: Settings and update functions to manage the closure process.
19
- * - `consumerTransports` {Transport[]}: List of active transports for consumers.
20
- * - `updateConsumerTransports` {Function}: Updates the list of active consumer transports.
21
- * - `hostLabel` {string}: Label of the host to revert to if screen sharing ends.
22
- * - `shared` {boolean}: Indicates whether a screen is currently shared.
23
- * - `updateShared` {Function}: Updates the shared screen state.
24
- * - `updateShareScreenStarted` {Function}: Marks the start or end of screen sharing.
25
- * - `updateScreenId` {Function}: Clears the screen ID when screen sharing ends.
26
- * - `updateShareEnded` {Function}: Marks the end of screen sharing.
27
- * - `closeAndResize` {Function}: Adjusts the screen display upon closing the media.
28
- * - `prepopulateUserMedia` {Function}: Loads default media after screen sharing ends.
29
- * - `reorderStreams` {Function}: Reorders streams to optimize layout when media is closed.
30
- *
31
- * @returns {Promise<void>} Resolves when all updates are complete and the producer closure is handled.
32
- *
33
- * @example
34
- * const options = {
35
- * producerId: '12345',
36
- * kind: 'screenshare',
37
- * parameters: {
38
- * consumerTransports: [...],
39
- * updateConsumerTransports: (transports) => { ... },
40
- * hostLabel: 'Host',
41
- * shared: true,
42
- * updateShared: (shared) => { ... },
43
- * updateShareScreenStarted: (started) => { ... },
44
- * updateScreenId: (id) => { ... },
45
- * updateShareEnded: (ended) => { ... },
46
- * closeAndResize: ({ producerId, kind, parameters }) => { ... },
47
- * prepopulateUserMedia: ({ name, parameters }) => { ... },
48
- * reorderStreams: ({ add, screenChanged, parameters }) => { ... },
49
- * }
50
- * };
51
- *
52
- * producerMediaClosedService.producerMediaClosed(options)
53
- * .then(() => console.log('Producer closed successfully'))
54
- * .catch(error => console.error('Error:', error));
55
- *
56
- * @remarks
57
- * This service performs the following steps:
58
- * 1. Retrieves updated parameters.
59
- * 2. Finds and closes the transport associated with the producer.
60
- * 3. Updates the list of consumer transports.
61
- * 4. Adjusts the display layout with `closeAndResize`.
62
- * 5. If the producer is a screen share, resets shared state and reloads default media.
63
- */
64
- export class ProducerMediaClosed {
65
- /**
66
- * Handles the closure of a media producer.
67
- *
68
- * @param {ProducerMediaClosedOptions} options - The options for closing the media producer.
69
- * @param {string} options.producerId - The ID of the producer to close.
70
- * @param {string} options.kind - The kind of media (e.g., "screenshare" or "screen").
71
- * @param {Parameters} options.parameters - The parameters object containing various methods and properties.
72
- *
73
- * @returns {Promise<void>} - A promise that resolves when the producer has been closed and necessary updates are made.
74
- *
75
- * @remarks
76
- * This function performs the following steps:
77
- * 1. Retrieves updated parameters.
78
- * 2. Finds the transport associated with the producer to close.
79
- * 3. Closes the consumer transport and consumer if found.
80
- * 4. Updates the consumer transports list.
81
- * 5. Calls `closeAndResize` with the necessary parameters.
82
- * 6. If the producer kind is "screenshare" or "screen", updates shared state and calls various update methods.
83
- */
84
- producerMediaClosed = async ({ producerId, kind, parameters, }) => {
85
- parameters = parameters.getUpdatedAllParams();
86
- const { consumerTransports, updateConsumerTransports, hostLabel, shared, updateShared, updateShareScreenStarted, updateScreenId, updateShareEnded, closeAndResize, prepopulateUserMedia, reorderStreams, } = parameters;
87
- const producerToClose = consumerTransports.find((transportData) => transportData.producerId === producerId);
88
- if (producerToClose) {
89
- try {
90
- await producerToClose['consumerTransport'].close();
91
- }
92
- catch (error) {
93
- console.error('Error closing consumer transport:', error);
94
- }
95
- try {
96
- producerToClose.consumer.close();
97
- }
98
- catch (error) {
99
- console.error('Error closing consumer:', error);
100
- }
101
- const updatedConsumerTransports = consumerTransports.filter((transportData) => transportData.producerId !== producerId);
102
- updateConsumerTransports(updatedConsumerTransports);
103
- await closeAndResize({ producerId, kind, parameters });
104
- }
105
- else {
106
- if (kind === 'screenshare' || kind === 'screen') {
107
- if (shared) {
108
- updateShared(false);
109
- }
110
- else {
111
- updateShareScreenStarted(false);
112
- updateScreenId('');
113
- }
114
- updateShareEnded(true);
115
- await prepopulateUserMedia({ name: hostLabel, parameters });
116
- await reorderStreams({ add: false, screenChanged: true, parameters });
117
- }
118
- }
119
- };
120
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ProducerMediaClosed, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
121
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ProducerMediaClosed, providedIn: 'root' });
122
- }
123
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ProducerMediaClosed, decorators: [{
124
- type: Injectable,
125
- args: [{
126
- providedIn: 'root',
127
- }]
128
- }] });
129
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjZXItbWVkaWEtY2xvc2VkLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tZWRpYXNmdS1hbmd1bGFyL3NyYy9saWIvcHJvZHVjZXJzL3NvY2tldC1yZWNlaXZlLW1ldGhvZHMvcHJvZHVjZXItbWVkaWEtY2xvc2VkLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUEwQzNDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E0REc7QUFLSCxNQUFNLE9BQU8sbUJBQW1CO0lBQzlCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7T0FrQkc7SUFDSCxtQkFBbUIsR0FBRyxLQUFLLEVBQUUsRUFDM0IsVUFBVSxFQUNWLElBQUksRUFDSixVQUFVLEdBQ2lCLEVBQWlCLEVBQUU7UUFDOUMsVUFBVSxHQUFHLFVBQVUsQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1FBRTlDLE1BQU0sRUFDSixrQkFBa0IsRUFDbEIsd0JBQXdCLEVBQ3hCLFNBQVMsRUFDVCxNQUFNLEVBQ04sWUFBWSxFQUNaLHdCQUF3QixFQUN4QixjQUFjLEVBQ2QsZ0JBQWdCLEVBQ2hCLGNBQWMsRUFDZCxvQkFBb0IsRUFDcEIsY0FBYyxHQUNmLEdBQUcsVUFBVSxDQUFDO1FBRWYsTUFBTSxlQUFlLEdBQUcsa0JBQWtCLENBQUMsSUFBSSxDQUM3QyxDQUFDLGFBQWtCLEVBQUUsRUFBRSxDQUFDLGFBQWEsQ0FBQyxVQUFVLEtBQUssVUFBVSxDQUNoRSxDQUFDO1FBRUYsSUFBSSxlQUFlLEVBQUUsQ0FBQztZQUNwQixJQUFJLENBQUM7Z0JBQ0gsTUFBTSxlQUFlLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNyRCxDQUFDO1lBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztnQkFDZixPQUFPLENBQUMsS0FBSyxDQUFDLG1DQUFtQyxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQzVELENBQUM7WUFFRCxJQUFJLENBQUM7Z0JBQ0gsZUFBZSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNuQyxDQUFDO1lBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztnQkFDZixPQUFPLENBQUMsS0FBSyxDQUFDLHlCQUF5QixFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ2xELENBQUM7WUFFRCxNQUFNLHlCQUF5QixHQUFHLGtCQUFrQixDQUFDLE1BQU0sQ0FDekQsQ0FBQyxhQUFrQixFQUFFLEVBQUUsQ0FBQyxhQUFhLENBQUMsVUFBVSxLQUFLLFVBQVUsQ0FDaEUsQ0FBQztZQUNGLHdCQUF3QixDQUFDLHlCQUF5QixDQUFDLENBQUM7WUFFcEQsTUFBTSxjQUFjLENBQUMsRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUM7UUFDekQsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLElBQUksS0FBSyxhQUFhLElBQUksSUFBSSxLQUFLLFFBQVEsRUFBRSxDQUFDO2dCQUNoRCxJQUFJLE1BQU0sRUFBRSxDQUFDO29CQUNYLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDdEIsQ0FBQztxQkFBTSxDQUFDO29CQUNOLHdCQUF3QixDQUFDLEtBQUssQ0FBQyxDQUFDO29CQUNoQyxjQUFjLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQ3JCLENBQUM7Z0JBQ0QsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ3ZCLE1BQU0sb0JBQW9CLENBQUMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUM7Z0JBQzVELE1BQU0sY0FBYyxDQUFDLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxhQUFhLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUM7WUFDeEUsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDLENBQUM7dUdBN0VTLG1CQUFtQjsyR0FBbkIsbUJBQW1CLGNBRmxCLE1BQU07OzJGQUVQLG1CQUFtQjtrQkFIL0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBDbG9zZUFuZFJlc2l6ZVBhcmFtZXRlcnMsXG4gIENsb3NlQW5kUmVzaXplVHlwZSxcbiAgUHJlcG9wdWxhdGVVc2VyTWVkaWFQYXJhbWV0ZXJzLFxuICBQcmVwb3B1bGF0ZVVzZXJNZWRpYVR5cGUsXG4gIFJlb3JkZXJTdHJlYW1zUGFyYW1ldGVycyxcbiAgUmVvcmRlclN0cmVhbXNUeXBlLFxuICBUcmFuc3BvcnQsXG59IGZyb20gJy4uLy4uL0B0eXBlcy90eXBlcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHJvZHVjZXJNZWRpYUNsb3NlZFBhcmFtZXRlcnNcbiAgZXh0ZW5kcyBDbG9zZUFuZFJlc2l6ZVBhcmFtZXRlcnMsXG4gICAgUHJlcG9wdWxhdGVVc2VyTWVkaWFQYXJhbWV0ZXJzLFxuICAgIFJlb3JkZXJTdHJlYW1zUGFyYW1ldGVycyB7XG4gIGNvbnN1bWVyVHJhbnNwb3J0czogVHJhbnNwb3J0W107XG4gIHVwZGF0ZUNvbnN1bWVyVHJhbnNwb3J0czogKHRyYW5zcG9ydHM6IFRyYW5zcG9ydFtdKSA9PiB2b2lkO1xuICBob3N0TGFiZWw6IHN0cmluZztcbiAgc2hhcmVkOiBib29sZWFuO1xuICB1cGRhdGVTaGFyZWQ6IChzaGFyZWQ6IGJvb2xlYW4pID0+IHZvaWQ7XG4gIHVwZGF0ZVNoYXJlU2NyZWVuU3RhcnRlZDogKHN0YXJ0ZWQ6IGJvb2xlYW4pID0+IHZvaWQ7XG4gIHVwZGF0ZVNjcmVlbklkOiAoc2NyZWVuSWQ6IHN0cmluZykgPT4gdm9pZDtcbiAgdXBkYXRlU2hhcmVFbmRlZDogKGVuZGVkOiBib29sZWFuKSA9PiB2b2lkO1xuXG4gIC8vIG1lZGlhc2Z1IGZ1bmN0aW9uc1xuICBjbG9zZUFuZFJlc2l6ZTogQ2xvc2VBbmRSZXNpemVUeXBlO1xuICBwcmVwb3B1bGF0ZVVzZXJNZWRpYTogUHJlcG9wdWxhdGVVc2VyTWVkaWFUeXBlO1xuICByZW9yZGVyU3RyZWFtczogUmVvcmRlclN0cmVhbXNUeXBlO1xuXG4gIGdldFVwZGF0ZWRBbGxQYXJhbXM6ICgpID0+IFByb2R1Y2VyTWVkaWFDbG9zZWRQYXJhbWV0ZXJzO1xuICBba2V5OiBzdHJpbmddOiBhbnk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHJvZHVjZXJNZWRpYUNsb3NlZE9wdGlvbnMge1xuICBwcm9kdWNlcklkOiBzdHJpbmc7XG4gIGtpbmQ6ICd2aWRlbycgfCAnc2NyZWVuJyB8ICdhdWRpbycgfCAnc2NyZWVuc2hhcmUnO1xuICBwYXJhbWV0ZXJzOiBQcm9kdWNlck1lZGlhQ2xvc2VkUGFyYW1ldGVycztcbn1cblxuLy8gRXhwb3J0IHRoZSB0eXBlIGRlZmluaXRpb24gZm9yIHRoZSBmdW5jdGlvblxuZXhwb3J0IHR5cGUgUHJvZHVjZXJNZWRpYUNsb3NlZFR5cGUgPSAob3B0aW9uczogUHJvZHVjZXJNZWRpYUNsb3NlZE9wdGlvbnMpID0+IFByb21pc2U8dm9pZD47XG5cbi8qKlxuICogU2VydmljZSB0byBoYW5kbGUgY2xvc2luZyBhIG1lZGlhIHByb2R1Y2VyIGFuZCBhc3NvY2lhdGVkIFVJIGFuZCBzdGF0ZSB1cGRhdGVzLlxuICpcbiAqIEBjbGFzc1xuICogQG5hbWUgUHJvZHVjZXJNZWRpYUNsb3NlZFxuICogQGRlc2NyaXB0aW9uXG4gKiBNYW5hZ2VzIHRoZSBjbG9zdXJlIG9mIGEgbWVkaWEgcHJvZHVjZXIgYnkgaWRlbnRpZnlpbmcgYXNzb2NpYXRlZCBjb25zdW1lciB0cmFuc3BvcnRzLCBjbG9zaW5nIG5lY2Vzc2FyeSByZXNvdXJjZXMsXG4gKiBhbmQgdXBkYXRpbmcgdGhlIHVzZXIgaW50ZXJmYWNlIHRvIHJlZmxlY3QgdGhlIGNoYW5nZS4gRm9yIHNjcmVlbiBzaGFyaW5nLCBpdCByZXNldHMgdGhlIHNoYXJlZCBzdGF0ZSBhbmQgYWRqdXN0cyB0aGUgbWFpbiB2aWV3LlxuICpcbiAqIEBtZXRob2RcbiAqIHByb2R1Y2VyTWVkaWFDbG9zZWRcbiAqXG4gKiBAcGFyYW0ge1Byb2R1Y2VyTWVkaWFDbG9zZWRPcHRpb25zfSBvcHRpb25zIC0gQ29udGFpbnMgZGV0YWlscyBvbiB0aGUgcHJvZHVjZXIgYW5kIHBhcmFtZXRlcnMgZm9yIHN0YXRlIHVwZGF0ZXM6XG4gKiAgIC0gYHByb2R1Y2VySWRgIHtzdHJpbmd9OiBJRCBvZiB0aGUgcHJvZHVjZXIgdG8gY2xvc2UuXG4gKiAgIC0gYGtpbmRgIHtzdHJpbmd9OiBUaGUgdHlwZSBvZiBtZWRpYSB0byBjbG9zZSAoZS5nLiwgXCJzY3JlZW5zaGFyZVwiIG9yIFwiYXVkaW9cIikuXG4gKiAgIC0gYHBhcmFtZXRlcnNgIHtQcm9kdWNlck1lZGlhQ2xvc2VkUGFyYW1ldGVyc306IFNldHRpbmdzIGFuZCB1cGRhdGUgZnVuY3Rpb25zIHRvIG1hbmFnZSB0aGUgY2xvc3VyZSBwcm9jZXNzLlxuICogICAgICAtIGBjb25zdW1lclRyYW5zcG9ydHNgIHtUcmFuc3BvcnRbXX06IExpc3Qgb2YgYWN0aXZlIHRyYW5zcG9ydHMgZm9yIGNvbnN1bWVycy5cbiAqICAgICAgLSBgdXBkYXRlQ29uc3VtZXJUcmFuc3BvcnRzYCB7RnVuY3Rpb259OiBVcGRhdGVzIHRoZSBsaXN0IG9mIGFjdGl2ZSBjb25zdW1lciB0cmFuc3BvcnRzLlxuICogICAgICAtIGBob3N0TGFiZWxgIHtzdHJpbmd9OiBMYWJlbCBvZiB0aGUgaG9zdCB0byByZXZlcnQgdG8gaWYgc2NyZWVuIHNoYXJpbmcgZW5kcy5cbiAqICAgICAgLSBgc2hhcmVkYCB7Ym9vbGVhbn06IEluZGljYXRlcyB3aGV0aGVyIGEgc2NyZWVuIGlzIGN1cnJlbnRseSBzaGFyZWQuXG4gKiAgICAgIC0gYHVwZGF0ZVNoYXJlZGAge0Z1bmN0aW9ufTogVXBkYXRlcyB0aGUgc2hhcmVkIHNjcmVlbiBzdGF0ZS5cbiAqICAgICAgLSBgdXBkYXRlU2hhcmVTY3JlZW5TdGFydGVkYCB7RnVuY3Rpb259OiBNYXJrcyB0aGUgc3RhcnQgb3IgZW5kIG9mIHNjcmVlbiBzaGFyaW5nLlxuICogICAgICAtIGB1cGRhdGVTY3JlZW5JZGAge0Z1bmN0aW9ufTogQ2xlYXJzIHRoZSBzY3JlZW4gSUQgd2hlbiBzY3JlZW4gc2hhcmluZyBlbmRzLlxuICogICAgICAtIGB1cGRhdGVTaGFyZUVuZGVkYCB7RnVuY3Rpb259OiBNYXJrcyB0aGUgZW5kIG9mIHNjcmVlbiBzaGFyaW5nLlxuICogICAgICAtIGBjbG9zZUFuZFJlc2l6ZWAge0Z1bmN0aW9ufTogQWRqdXN0cyB0aGUgc2NyZWVuIGRpc3BsYXkgdXBvbiBjbG9zaW5nIHRoZSBtZWRpYS5cbiAqICAgICAgLSBgcHJlcG9wdWxhdGVVc2VyTWVkaWFgIHtGdW5jdGlvbn06IExvYWRzIGRlZmF1bHQgbWVkaWEgYWZ0ZXIgc2NyZWVuIHNoYXJpbmcgZW5kcy5cbiAqICAgICAgLSBgcmVvcmRlclN0cmVhbXNgIHtGdW5jdGlvbn06IFJlb3JkZXJzIHN0cmVhbXMgdG8gb3B0aW1pemUgbGF5b3V0IHdoZW4gbWVkaWEgaXMgY2xvc2VkLlxuICpcbiAqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fSBSZXNvbHZlcyB3aGVuIGFsbCB1cGRhdGVzIGFyZSBjb21wbGV0ZSBhbmQgdGhlIHByb2R1Y2VyIGNsb3N1cmUgaXMgaGFuZGxlZC5cbiAqXG4gKiBAZXhhbXBsZVxuICogY29uc3Qgb3B0aW9ucyA9IHtcbiAqICAgcHJvZHVjZXJJZDogJzEyMzQ1JyxcbiAqICAga2luZDogJ3NjcmVlbnNoYXJlJyxcbiAqICAgcGFyYW1ldGVyczoge1xuICogICAgIGNvbnN1bWVyVHJhbnNwb3J0czogWy4uLl0sXG4gKiAgICAgdXBkYXRlQ29uc3VtZXJUcmFuc3BvcnRzOiAodHJhbnNwb3J0cykgPT4geyAuLi4gfSxcbiAqICAgICBob3N0TGFiZWw6ICdIb3N0JyxcbiAqICAgICBzaGFyZWQ6IHRydWUsXG4gKiAgICAgdXBkYXRlU2hhcmVkOiAoc2hhcmVkKSA9PiB7IC4uLiB9LFxuICogICAgIHVwZGF0ZVNoYXJlU2NyZWVuU3RhcnRlZDogKHN0YXJ0ZWQpID0+IHsgLi4uIH0sXG4gKiAgICAgdXBkYXRlU2NyZWVuSWQ6IChpZCkgPT4geyAuLi4gfSxcbiAqICAgICB1cGRhdGVTaGFyZUVuZGVkOiAoZW5kZWQpID0+IHsgLi4uIH0sXG4gKiAgICAgY2xvc2VBbmRSZXNpemU6ICh7IHByb2R1Y2VySWQsIGtpbmQsIHBhcmFtZXRlcnMgfSkgPT4geyAuLi4gfSxcbiAqICAgICBwcmVwb3B1bGF0ZVVzZXJNZWRpYTogKHsgbmFtZSwgcGFyYW1ldGVycyB9KSA9PiB7IC4uLiB9LFxuICogICAgIHJlb3JkZXJTdHJlYW1zOiAoeyBhZGQsIHNjcmVlbkNoYW5nZWQsIHBhcmFtZXRlcnMgfSkgPT4geyAuLi4gfSxcbiAqICAgfVxuICogfTtcbiAqXG4gKiBwcm9kdWNlck1lZGlhQ2xvc2VkU2VydmljZS5wcm9kdWNlck1lZGlhQ2xvc2VkKG9wdGlvbnMpXG4gKiAgIC50aGVuKCgpID0+IGNvbnNvbGUubG9nKCdQcm9kdWNlciBjbG9zZWQgc3VjY2Vzc2Z1bGx5JykpXG4gKiAgIC5jYXRjaChlcnJvciA9PiBjb25zb2xlLmVycm9yKCdFcnJvcjonLCBlcnJvcikpO1xuICpcbiAqIEByZW1hcmtzXG4gKiBUaGlzIHNlcnZpY2UgcGVyZm9ybXMgdGhlIGZvbGxvd2luZyBzdGVwczpcbiAqIDEuIFJldHJpZXZlcyB1cGRhdGVkIHBhcmFtZXRlcnMuXG4gKiAyLiBGaW5kcyBhbmQgY2xvc2VzIHRoZSB0cmFuc3BvcnQgYXNzb2NpYXRlZCB3aXRoIHRoZSBwcm9kdWNlci5cbiAqIDMuIFVwZGF0ZXMgdGhlIGxpc3Qgb2YgY29uc3VtZXIgdHJhbnNwb3J0cy5cbiAqIDQuIEFkanVzdHMgdGhlIGRpc3BsYXkgbGF5b3V0IHdpdGggYGNsb3NlQW5kUmVzaXplYC5cbiAqIDUuIElmIHRoZSBwcm9kdWNlciBpcyBhIHNjcmVlbiBzaGFyZSwgcmVzZXRzIHNoYXJlZCBzdGF0ZSBhbmQgcmVsb2FkcyBkZWZhdWx0IG1lZGlhLlxuICovXG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBQcm9kdWNlck1lZGlhQ2xvc2VkIHtcbiAgLyoqXG4gICAqIEhhbmRsZXMgdGhlIGNsb3N1cmUgb2YgYSBtZWRpYSBwcm9kdWNlci5cbiAgICpcbiAgICogQHBhcmFtIHtQcm9kdWNlck1lZGlhQ2xvc2VkT3B0aW9uc30gb3B0aW9ucyAtIFRoZSBvcHRpb25zIGZvciBjbG9zaW5nIHRoZSBtZWRpYSBwcm9kdWNlci5cbiAgICogQHBhcmFtIHtzdHJpbmd9IG9wdGlvbnMucHJvZHVjZXJJZCAtIFRoZSBJRCBvZiB0aGUgcHJvZHVjZXIgdG8gY2xvc2UuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBvcHRpb25zLmtpbmQgLSBUaGUga2luZCBvZiBtZWRpYSAoZS5nLiwgXCJzY3JlZW5zaGFyZVwiIG9yIFwic2NyZWVuXCIpLlxuICAgKiBAcGFyYW0ge1BhcmFtZXRlcnN9IG9wdGlvbnMucGFyYW1ldGVycyAtIFRoZSBwYXJhbWV0ZXJzIG9iamVjdCBjb250YWluaW5nIHZhcmlvdXMgbWV0aG9kcyBhbmQgcHJvcGVydGllcy5cbiAgICpcbiAgICogQHJldHVybnMge1Byb21pc2U8dm9pZD59IC0gQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgcHJvZHVjZXIgaGFzIGJlZW4gY2xvc2VkIGFuZCBuZWNlc3NhcnkgdXBkYXRlcyBhcmUgbWFkZS5cbiAgICpcbiAgICogQHJlbWFya3NcbiAgICogVGhpcyBmdW5jdGlvbiBwZXJmb3JtcyB0aGUgZm9sbG93aW5nIHN0ZXBzOlxuICAgKiAxLiBSZXRyaWV2ZXMgdXBkYXRlZCBwYXJhbWV0ZXJzLlxuICAgKiAyLiBGaW5kcyB0aGUgdHJhbnNwb3J0IGFzc29jaWF0ZWQgd2l0aCB0aGUgcHJvZHVjZXIgdG8gY2xvc2UuXG4gICAqIDMuIENsb3NlcyB0aGUgY29uc3VtZXIgdHJhbnNwb3J0IGFuZCBjb25zdW1lciBpZiBmb3VuZC5cbiAgICogNC4gVXBkYXRlcyB0aGUgY29uc3VtZXIgdHJhbnNwb3J0cyBsaXN0LlxuICAgKiA1LiBDYWxscyBgY2xvc2VBbmRSZXNpemVgIHdpdGggdGhlIG5lY2Vzc2FyeSBwYXJhbWV0ZXJzLlxuICAgKiA2LiBJZiB0aGUgcHJvZHVjZXIga2luZCBpcyBcInNjcmVlbnNoYXJlXCIgb3IgXCJzY3JlZW5cIiwgdXBkYXRlcyBzaGFyZWQgc3RhdGUgYW5kIGNhbGxzIHZhcmlvdXMgdXBkYXRlIG1ldGhvZHMuXG4gICAqL1xuICBwcm9kdWNlck1lZGlhQ2xvc2VkID0gYXN5bmMgKHtcbiAgICBwcm9kdWNlcklkLFxuICAgIGtpbmQsXG4gICAgcGFyYW1ldGVycyxcbiAgfTogUHJvZHVjZXJNZWRpYUNsb3NlZE9wdGlvbnMpOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgICBwYXJhbWV0ZXJzID0gcGFyYW1ldGVycy5nZXRVcGRhdGVkQWxsUGFyYW1zKCk7XG5cbiAgICBjb25zdCB7XG4gICAgICBjb25zdW1lclRyYW5zcG9ydHMsXG4gICAgICB1cGRhdGVDb25zdW1lclRyYW5zcG9ydHMsXG4gICAgICBob3N0TGFiZWwsXG4gICAgICBzaGFyZWQsXG4gICAgICB1cGRhdGVTaGFyZWQsXG4gICAgICB1cGRhdGVTaGFyZVNjcmVlblN0YXJ0ZWQsXG4gICAgICB1cGRhdGVTY3JlZW5JZCxcbiAgICAgIHVwZGF0ZVNoYXJlRW5kZWQsXG4gICAgICBjbG9zZUFuZFJlc2l6ZSxcbiAgICAgIHByZXBvcHVsYXRlVXNlck1lZGlhLFxuICAgICAgcmVvcmRlclN0cmVhbXMsXG4gICAgfSA9IHBhcmFtZXRlcnM7XG5cbiAgICBjb25zdCBwcm9kdWNlclRvQ2xvc2UgPSBjb25zdW1lclRyYW5zcG9ydHMuZmluZChcbiAgICAgICh0cmFuc3BvcnREYXRhOiBhbnkpID0+IHRyYW5zcG9ydERhdGEucHJvZHVjZXJJZCA9PT0gcHJvZHVjZXJJZCxcbiAgICApO1xuXG4gICAgaWYgKHByb2R1Y2VyVG9DbG9zZSkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgYXdhaXQgcHJvZHVjZXJUb0Nsb3NlWydjb25zdW1lclRyYW5zcG9ydCddLmNsb3NlKCk7XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBjbG9zaW5nIGNvbnN1bWVyIHRyYW5zcG9ydDonLCBlcnJvcik7XG4gICAgICB9XG5cbiAgICAgIHRyeSB7XG4gICAgICAgIHByb2R1Y2VyVG9DbG9zZS5jb25zdW1lci5jbG9zZSgpO1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgY2xvc2luZyBjb25zdW1lcjonLCBlcnJvcik7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHVwZGF0ZWRDb25zdW1lclRyYW5zcG9ydHMgPSBjb25zdW1lclRyYW5zcG9ydHMuZmlsdGVyKFxuICAgICAgICAodHJhbnNwb3J0RGF0YTogYW55KSA9PiB0cmFuc3BvcnREYXRhLnByb2R1Y2VySWQgIT09IHByb2R1Y2VySWQsXG4gICAgICApO1xuICAgICAgdXBkYXRlQ29uc3VtZXJUcmFuc3BvcnRzKHVwZGF0ZWRDb25zdW1lclRyYW5zcG9ydHMpO1xuXG4gICAgICBhd2FpdCBjbG9zZUFuZFJlc2l6ZSh7IHByb2R1Y2VySWQsIGtpbmQsIHBhcmFtZXRlcnMgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChraW5kID09PSAnc2NyZWVuc2hhcmUnIHx8IGtpbmQgPT09ICdzY3JlZW4nKSB7XG4gICAgICAgIGlmIChzaGFyZWQpIHtcbiAgICAgICAgICB1cGRhdGVTaGFyZWQoZmFsc2UpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHVwZGF0ZVNoYXJlU2NyZWVuU3RhcnRlZChmYWxzZSk7XG4gICAgICAgICAgdXBkYXRlU2NyZWVuSWQoJycpO1xuICAgICAgICB9XG4gICAgICAgIHVwZGF0ZVNoYXJlRW5kZWQodHJ1ZSk7XG4gICAgICAgIGF3YWl0IHByZXBvcHVsYXRlVXNlck1lZGlhKHsgbmFtZTogaG9zdExhYmVsLCBwYXJhbWV0ZXJzIH0pO1xuICAgICAgICBhd2FpdCByZW9yZGVyU3RyZWFtcyh7IGFkZDogZmFsc2UsIHNjcmVlbkNoYW5nZWQ6IHRydWUsIHBhcmFtZXRlcnMgfSk7XG4gICAgICB9XG4gICAgfVxuICB9O1xufVxuIl19