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,87 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- /**
4
- * The `VParams` service provides encoding parameters for video in a media session using the Mediasoup library.
5
- * It includes a default configuration for RTP encoding parameters optimized for video streaming.
6
- *
7
- * @service
8
- * @example
9
- * ```typescript
10
- * import { VParams } from './path/to/v-params.service';
11
- *
12
- * constructor(private vParamsService: VParams) {
13
- * console.log(this.vParamsService.vParams);
14
- * }
15
- * ```
16
- *
17
- * @typedef VParamsType
18
- * @property {RtpEncodingParameters[]} encodings - Array of RTP encoding parameters for video.
19
- * @property {ProducerCodecOptions} [codecOptions] - Optional codec options for the video producer.
20
- *
21
- * @example
22
- * const vParams: VParamsType = {
23
- * encodings: [
24
- * {
25
- * rid: 'r3',
26
- * maxBitrate: 200000, // Max bitrate for this encoding (in bps)
27
- * scalabilityMode: 'L1T3', // Scalability mode for encoding
28
- * scaleResolutionDownBy: 4.0, // Scale down resolution by this factor
29
- * },
30
- * {
31
- * rid: 'r4',
32
- * maxBitrate: 400000,
33
- * scalabilityMode: 'L1T3',
34
- * scaleResolutionDownBy: 2.0,
35
- * },
36
- * {
37
- * rid: 'r5',
38
- * maxBitrate: 800000,
39
- * scalabilityMode: 'L1T3',
40
- * },
41
- * ],
42
- * codecOptions: {
43
- * videoGoogleStartBitrate: 320, // Initial bitrate for the Google codec
44
- * },
45
- * };
46
- *
47
- * @remarks
48
- * The default `vParams` includes multiple encoding configurations with different maximum bitrates,
49
- * allowing for adaptive streaming based on network conditions and participant capabilities.
50
- *
51
- * @returns {VParamsType} The video parameters for use in video producer configuration.
52
- */
53
- export class VParams {
54
- vParams = {
55
- encodings: [
56
- {
57
- rid: 'r3',
58
- maxBitrate: 200000,
59
- scalabilityMode: 'L1T3',
60
- scaleResolutionDownBy: 4.0,
61
- },
62
- {
63
- rid: 'r4',
64
- maxBitrate: 400000,
65
- scalabilityMode: 'L1T3',
66
- scaleResolutionDownBy: 2.0,
67
- },
68
- {
69
- rid: 'r5',
70
- maxBitrate: 800000,
71
- scalabilityMode: 'L1T3',
72
- },
73
- ],
74
- codecOptions: {
75
- videoGoogleStartBitrate: 320,
76
- },
77
- };
78
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: VParams, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
79
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: VParams, providedIn: 'root' });
80
- }
81
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: VParams, decorators: [{
82
- type: Injectable,
83
- args: [{
84
- providedIn: 'root',
85
- }]
86
- }] });
87
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidi1wYXJhbXMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21lZGlhc2Z1LWFuZ3VsYXIvc3JjL2xpYi9tZXRob2RzL3V0aWxzL3Byb2R1Y2VyL3YtcGFyYW1zLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFPM0M7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FpREc7QUFNSCxNQUFNLE9BQU8sT0FBTztJQUNsQixPQUFPLEdBQWdCO1FBQ3JCLFNBQVMsRUFBRTtZQUNUO2dCQUNFLEdBQUcsRUFBRSxJQUFJO2dCQUNULFVBQVUsRUFBRSxNQUFNO2dCQUNsQixlQUFlLEVBQUUsTUFBTTtnQkFDdkIscUJBQXFCLEVBQUUsR0FBRzthQUMzQjtZQUNEO2dCQUNFLEdBQUcsRUFBRSxJQUFJO2dCQUNULFVBQVUsRUFBRSxNQUFNO2dCQUNsQixlQUFlLEVBQUUsTUFBTTtnQkFDdkIscUJBQXFCLEVBQUUsR0FBRzthQUMzQjtZQUNEO2dCQUNFLEdBQUcsRUFBRSxJQUFJO2dCQUNULFVBQVUsRUFBRSxNQUFNO2dCQUNsQixlQUFlLEVBQUUsTUFBTTthQUN4QjtTQUNGO1FBQ0QsWUFBWSxFQUFFO1lBQ1osdUJBQXVCLEVBQUUsR0FBRztTQUM3QjtLQUNGLENBQUM7dUdBeEJTLE9BQU87MkdBQVAsT0FBTyxjQUZOLE1BQU07OzJGQUVQLE9BQU87a0JBSG5CLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUHJvZHVjZXJDb2RlY09wdGlvbnMsIFJ0cEVuY29kaW5nUGFyYW1ldGVycyB9IGZyb20gJ21lZGlhc291cC1jbGllbnQvbGliL3R5cGVzJztcbmV4cG9ydCB0eXBlIFZQYXJhbXNUeXBlID0ge1xuICBlbmNvZGluZ3M6IFJ0cEVuY29kaW5nUGFyYW1ldGVyc1tdO1xuICBjb2RlY09wdGlvbnM/OiBQcm9kdWNlckNvZGVjT3B0aW9ucztcbn07XG5cbi8qKlxuICogVGhlIGBWUGFyYW1zYCBzZXJ2aWNlIHByb3ZpZGVzIGVuY29kaW5nIHBhcmFtZXRlcnMgZm9yIHZpZGVvIGluIGEgbWVkaWEgc2Vzc2lvbiB1c2luZyB0aGUgTWVkaWFzb3VwIGxpYnJhcnkuXG4gKiBJdCBpbmNsdWRlcyBhIGRlZmF1bHQgY29uZmlndXJhdGlvbiBmb3IgUlRQIGVuY29kaW5nIHBhcmFtZXRlcnMgb3B0aW1pemVkIGZvciB2aWRlbyBzdHJlYW1pbmcuXG4gKlxuICogQHNlcnZpY2VcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBpbXBvcnQgeyBWUGFyYW1zIH0gZnJvbSAnLi9wYXRoL3RvL3YtcGFyYW1zLnNlcnZpY2UnO1xuICpcbiAqIGNvbnN0cnVjdG9yKHByaXZhdGUgdlBhcmFtc1NlcnZpY2U6IFZQYXJhbXMpIHtcbiAqICAgY29uc29sZS5sb2codGhpcy52UGFyYW1zU2VydmljZS52UGFyYW1zKTtcbiAqIH1cbiAqIGBgYFxuICpcbiAqIEB0eXBlZGVmIFZQYXJhbXNUeXBlXG4gKiBAcHJvcGVydHkge1J0cEVuY29kaW5nUGFyYW1ldGVyc1tdfSBlbmNvZGluZ3MgLSBBcnJheSBvZiBSVFAgZW5jb2RpbmcgcGFyYW1ldGVycyBmb3IgdmlkZW8uXG4gKiBAcHJvcGVydHkge1Byb2R1Y2VyQ29kZWNPcHRpb25zfSBbY29kZWNPcHRpb25zXSAtIE9wdGlvbmFsIGNvZGVjIG9wdGlvbnMgZm9yIHRoZSB2aWRlbyBwcm9kdWNlci5cbiAqXG4gKiBAZXhhbXBsZVxuICogY29uc3QgdlBhcmFtczogVlBhcmFtc1R5cGUgPSB7XG4gKiAgIGVuY29kaW5nczogW1xuICogICAgIHtcbiAqICAgICAgIHJpZDogJ3IzJyxcbiAqICAgICAgIG1heEJpdHJhdGU6IDIwMDAwMCwgLy8gTWF4IGJpdHJhdGUgZm9yIHRoaXMgZW5jb2RpbmcgKGluIGJwcylcbiAqICAgICAgIHNjYWxhYmlsaXR5TW9kZTogJ0wxVDMnLCAvLyBTY2FsYWJpbGl0eSBtb2RlIGZvciBlbmNvZGluZ1xuICogICAgICAgc2NhbGVSZXNvbHV0aW9uRG93bkJ5OiA0LjAsIC8vIFNjYWxlIGRvd24gcmVzb2x1dGlvbiBieSB0aGlzIGZhY3RvclxuICogICAgIH0sXG4gKiAgICAge1xuICogICAgICAgcmlkOiAncjQnLFxuICogICAgICAgbWF4Qml0cmF0ZTogNDAwMDAwLFxuICogICAgICAgc2NhbGFiaWxpdHlNb2RlOiAnTDFUMycsXG4gKiAgICAgICBzY2FsZVJlc29sdXRpb25Eb3duQnk6IDIuMCxcbiAqICAgICB9LFxuICogICAgIHtcbiAqICAgICAgIHJpZDogJ3I1JyxcbiAqICAgICAgIG1heEJpdHJhdGU6IDgwMDAwMCxcbiAqICAgICAgIHNjYWxhYmlsaXR5TW9kZTogJ0wxVDMnLFxuICogICAgIH0sXG4gKiAgIF0sXG4gKiAgIGNvZGVjT3B0aW9uczoge1xuICogICAgIHZpZGVvR29vZ2xlU3RhcnRCaXRyYXRlOiAzMjAsIC8vIEluaXRpYWwgYml0cmF0ZSBmb3IgdGhlIEdvb2dsZSBjb2RlY1xuICogICB9LFxuICogfTtcbiAqXG4gKiBAcmVtYXJrc1xuICogVGhlIGRlZmF1bHQgYHZQYXJhbXNgIGluY2x1ZGVzIG11bHRpcGxlIGVuY29kaW5nIGNvbmZpZ3VyYXRpb25zIHdpdGggZGlmZmVyZW50IG1heGltdW0gYml0cmF0ZXMsXG4gKiBhbGxvd2luZyBmb3IgYWRhcHRpdmUgc3RyZWFtaW5nIGJhc2VkIG9uIG5ldHdvcmsgY29uZGl0aW9ucyBhbmQgcGFydGljaXBhbnQgY2FwYWJpbGl0aWVzLlxuICpcbiAqIEByZXR1cm5zIHtWUGFyYW1zVHlwZX0gVGhlIHZpZGVvIHBhcmFtZXRlcnMgZm9yIHVzZSBpbiB2aWRlbyBwcm9kdWNlciBjb25maWd1cmF0aW9uLlxuICovXG5cblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFZQYXJhbXMge1xuICB2UGFyYW1zOiBWUGFyYW1zVHlwZSA9IHtcbiAgICBlbmNvZGluZ3M6IFtcbiAgICAgIHtcbiAgICAgICAgcmlkOiAncjMnLFxuICAgICAgICBtYXhCaXRyYXRlOiAyMDAwMDAsXG4gICAgICAgIHNjYWxhYmlsaXR5TW9kZTogJ0wxVDMnLFxuICAgICAgICBzY2FsZVJlc29sdXRpb25Eb3duQnk6IDQuMCxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHJpZDogJ3I0JyxcbiAgICAgICAgbWF4Qml0cmF0ZTogNDAwMDAwLFxuICAgICAgICBzY2FsYWJpbGl0eU1vZGU6ICdMMVQzJyxcbiAgICAgICAgc2NhbGVSZXNvbHV0aW9uRG93bkJ5OiAyLjAsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICByaWQ6ICdyNScsXG4gICAgICAgIG1heEJpdHJhdGU6IDgwMDAwMCxcbiAgICAgICAgc2NhbGFiaWxpdHlNb2RlOiAnTDFUMycsXG4gICAgICB9LFxuICAgIF0sXG4gICAgY29kZWNPcHRpb25zOiB7XG4gICAgICB2aWRlb0dvb2dsZVN0YXJ0Qml0cmF0ZTogMzIwLFxuICAgIH0sXG4gIH07XG59XG4iXX0=
@@ -1,84 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- /**
4
- * The `VideoCaptureConstraints` service provides various video capture constraints
5
- * including resolution and frame rate settings for different display sizes (landscape, portrait, and neutral).
6
- *
7
- * @service
8
- * @example
9
- * ```typescript
10
- * import { VideoCaptureConstraints } from './path/to/video-capture-constraints.service';
11
- *
12
- * constructor(private videoConstraints: VideoCaptureConstraints) {
13
- * console.log(this.videoConstraints.hdCons); // Access HD constraints
14
- * }
15
- * ```
16
- *
17
- * @remarks
18
- * This service contains predefined constraints that can be used for video capture
19
- * settings based on the desired quality and aspect ratio. These constraints can
20
- * be applied when requesting media streams from the user's camera.
21
- *
22
- * @property {Object} QnHDCons - Video capture constraints for QnHD resolution (320x180).
23
- * @property {Object} sdCons - Video capture constraints for SD resolution (640x360).
24
- * @property {Object} hdCons - Video capture constraints for HD resolution (1280x720).
25
- * @property {Object} fhdCons - Video capture constraints for FHD resolution (1920x1080).
26
- * @property {Object} qhdCons - Video capture constraints for QHD resolution (2560x1440).
27
- *
28
- * @property {Object} QnHDConsPort - Video capture constraints for QnHD resolution in portrait mode.
29
- * @property {Object} sdConsPort - Video capture constraints for SD resolution in portrait mode.
30
- * @property {Object} hdConsPort - Video capture constraints for HD resolution in portrait mode.
31
- * @property {Object} fhdConsPort - Video capture constraints for FHD resolution in portrait mode.
32
- * @property {Object} qhdConsPort - Video capture constraints for QHD resolution in portrait mode.
33
- *
34
- * @property {Object} QnHDConsNeu - Video capture constraints for QnHD resolution in neutral mode.
35
- * @property {Object} sdConsNeu - Video capture constraints for SD resolution in neutral mode.
36
- * @property {Object} hdConsNeu - Video capture constraints for HD resolution in neutral mode.
37
- * @property {Object} fhdConsNeu - Video capture constraints for FHD resolution in neutral mode.
38
- * @property {Object} qhdConsNeu - Video capture constraints for QnHD resolution in neutral mode.
39
- *
40
- * @property {number} QnHDFrameRate - Frame rate for QnHD video capture (5 FPS).
41
- * @property {number} sdFrameRate - Frame rate for SD video capture (10 FPS).
42
- * @property {number} hdFrameRate - Frame rate for HD video capture (15 FPS).
43
- * @property {number} fhdFrameRate - Frame rate for FHD video capture (20 FPS).
44
- * @property {number} qhdFrameRate - Frame rate for QHD video capture (30 FPS).
45
- * @property {number} screenFrameRate - Frame rate for screen capture (30 FPS).
46
- *
47
- * @returns {VideoCaptureConstraints} The video capture constraints for use in media requests.
48
- */
49
- export class VideoCaptureConstraints {
50
- // Landscape display sizes
51
- QnHDCons = { width: { ideal: 320 }, height: { ideal: 180 } };
52
- sdCons = { width: { ideal: 640 }, height: { ideal: 360 } };
53
- hdCons = { width: { ideal: 1280 }, height: { ideal: 720 } };
54
- fhdCons = { width: { ideal: 1920 }, height: { ideal: 1080 } };
55
- qhdCons = { width: { ideal: 2560 }, height: { ideal: 1440 } };
56
- // Portrait display sizes
57
- QnHDConsPort = { width: { ideal: 180 }, height: { ideal: 320 } };
58
- sdConsPort = { width: { ideal: 360 }, height: { ideal: 640 } };
59
- hdConsPort = { width: { ideal: 720 }, height: { ideal: 1280 } };
60
- fhdConsPort = { width: { ideal: 1080 }, height: { ideal: 1920 } };
61
- qhdConsPort = { width: { ideal: 1440 }, height: { ideal: 2560 } };
62
- // Neutral (Square) display sizes
63
- QnHDConsNeu = { width: { ideal: 240 }, height: { ideal: 240 } };
64
- sdConsNeu = { width: { ideal: 480 }, height: { ideal: 480 } };
65
- hdConsNeu = { width: { ideal: 960 }, height: { ideal: 960 } };
66
- fhdConsNeu = { width: { ideal: 1440 }, height: { ideal: 1440 } };
67
- qhdConsNeu = { width: { ideal: 1920 }, height: { ideal: 1920 } };
68
- // Frame rates for video capture
69
- QnHDFrameRate = 5;
70
- sdFrameRate = 10;
71
- hdFrameRate = 15;
72
- fhdFrameRate = 20;
73
- qhdFrameRate = 30;
74
- screenFrameRate = 30;
75
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: VideoCaptureConstraints, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
76
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: VideoCaptureConstraints, providedIn: 'root' });
77
- }
78
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: VideoCaptureConstraints, decorators: [{
79
- type: Injectable,
80
- args: [{
81
- providedIn: 'root',
82
- }]
83
- }] });
84
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlkZW8tY2FwdHVyZS1jb25zdHJhaW50cy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWVkaWFzZnUtYW5ndWxhci9zcmMvbGliL21ldGhvZHMvdXRpbHMvcHJvZHVjZXIvdmlkZW8tY2FwdHVyZS1jb25zdHJhaW50cy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBRTNDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E2Q0c7QUFLSCxNQUFNLE9BQU8sdUJBQXVCO0lBQ2xDLDBCQUEwQjtJQUMxQixRQUFRLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUM7SUFDN0QsTUFBTSxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDO0lBQzNELE1BQU0sR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQztJQUM1RCxPQUFPLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxFQUFFLENBQUM7SUFDOUQsT0FBTyxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDO0lBRTlELHlCQUF5QjtJQUN6QixZQUFZLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUM7SUFDakUsVUFBVSxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDO0lBQy9ELFVBQVUsR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQztJQUNoRSxXQUFXLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxFQUFFLENBQUM7SUFDbEUsV0FBVyxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDO0lBRWxFLGlDQUFpQztJQUNqQyxXQUFXLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUM7SUFDaEUsU0FBUyxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDO0lBQzlELFNBQVMsR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQztJQUM5RCxVQUFVLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxFQUFFLENBQUM7SUFDakUsVUFBVSxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDO0lBRWpFLGdDQUFnQztJQUNoQyxhQUFhLEdBQUcsQ0FBQyxDQUFDO0lBQ2xCLFdBQVcsR0FBRyxFQUFFLENBQUM7SUFDakIsV0FBVyxHQUFHLEVBQUUsQ0FBQztJQUNqQixZQUFZLEdBQUcsRUFBRSxDQUFDO0lBQ2xCLFlBQVksR0FBRyxFQUFFLENBQUM7SUFDbEIsZUFBZSxHQUFHLEVBQUUsQ0FBQzt1R0E1QlYsdUJBQXVCOzJHQUF2Qix1QkFBdUIsY0FGdEIsTUFBTTs7MkZBRVAsdUJBQXVCO2tCQUhuQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuLyoqXG4gKiBUaGUgYFZpZGVvQ2FwdHVyZUNvbnN0cmFpbnRzYCBzZXJ2aWNlIHByb3ZpZGVzIHZhcmlvdXMgdmlkZW8gY2FwdHVyZSBjb25zdHJhaW50c1xuICogaW5jbHVkaW5nIHJlc29sdXRpb24gYW5kIGZyYW1lIHJhdGUgc2V0dGluZ3MgZm9yIGRpZmZlcmVudCBkaXNwbGF5IHNpemVzIChsYW5kc2NhcGUsIHBvcnRyYWl0LCBhbmQgbmV1dHJhbCkuXG4gKlxuICogQHNlcnZpY2VcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBpbXBvcnQgeyBWaWRlb0NhcHR1cmVDb25zdHJhaW50cyB9IGZyb20gJy4vcGF0aC90by92aWRlby1jYXB0dXJlLWNvbnN0cmFpbnRzLnNlcnZpY2UnO1xuICpcbiAqIGNvbnN0cnVjdG9yKHByaXZhdGUgdmlkZW9Db25zdHJhaW50czogVmlkZW9DYXB0dXJlQ29uc3RyYWludHMpIHtcbiAqICAgY29uc29sZS5sb2codGhpcy52aWRlb0NvbnN0cmFpbnRzLmhkQ29ucyk7IC8vIEFjY2VzcyBIRCBjb25zdHJhaW50c1xuICogfVxuICogYGBgXG4gKlxuICogQHJlbWFya3NcbiAqIFRoaXMgc2VydmljZSBjb250YWlucyBwcmVkZWZpbmVkIGNvbnN0cmFpbnRzIHRoYXQgY2FuIGJlIHVzZWQgZm9yIHZpZGVvIGNhcHR1cmVcbiAqIHNldHRpbmdzIGJhc2VkIG9uIHRoZSBkZXNpcmVkIHF1YWxpdHkgYW5kIGFzcGVjdCByYXRpby4gVGhlc2UgY29uc3RyYWludHMgY2FuXG4gKiBiZSBhcHBsaWVkIHdoZW4gcmVxdWVzdGluZyBtZWRpYSBzdHJlYW1zIGZyb20gdGhlIHVzZXIncyBjYW1lcmEuXG4gKlxuICogQHByb3BlcnR5IHtPYmplY3R9IFFuSERDb25zIC0gVmlkZW8gY2FwdHVyZSBjb25zdHJhaW50cyBmb3IgUW5IRCByZXNvbHV0aW9uICgzMjB4MTgwKS5cbiAqIEBwcm9wZXJ0eSB7T2JqZWN0fSBzZENvbnMgLSBWaWRlbyBjYXB0dXJlIGNvbnN0cmFpbnRzIGZvciBTRCByZXNvbHV0aW9uICg2NDB4MzYwKS5cbiAqIEBwcm9wZXJ0eSB7T2JqZWN0fSBoZENvbnMgLSBWaWRlbyBjYXB0dXJlIGNvbnN0cmFpbnRzIGZvciBIRCByZXNvbHV0aW9uICgxMjgweDcyMCkuXG4gKiBAcHJvcGVydHkge09iamVjdH0gZmhkQ29ucyAtIFZpZGVvIGNhcHR1cmUgY29uc3RyYWludHMgZm9yIEZIRCByZXNvbHV0aW9uICgxOTIweDEwODApLlxuICogQHByb3BlcnR5IHtPYmplY3R9IHFoZENvbnMgLSBWaWRlbyBjYXB0dXJlIGNvbnN0cmFpbnRzIGZvciBRSEQgcmVzb2x1dGlvbiAoMjU2MHgxNDQwKS5cbiAqXG4gKiBAcHJvcGVydHkge09iamVjdH0gUW5IRENvbnNQb3J0IC0gVmlkZW8gY2FwdHVyZSBjb25zdHJhaW50cyBmb3IgUW5IRCByZXNvbHV0aW9uIGluIHBvcnRyYWl0IG1vZGUuXG4gKiBAcHJvcGVydHkge09iamVjdH0gc2RDb25zUG9ydCAtIFZpZGVvIGNhcHR1cmUgY29uc3RyYWludHMgZm9yIFNEIHJlc29sdXRpb24gaW4gcG9ydHJhaXQgbW9kZS5cbiAqIEBwcm9wZXJ0eSB7T2JqZWN0fSBoZENvbnNQb3J0IC0gVmlkZW8gY2FwdHVyZSBjb25zdHJhaW50cyBmb3IgSEQgcmVzb2x1dGlvbiBpbiBwb3J0cmFpdCBtb2RlLlxuICogQHByb3BlcnR5IHtPYmplY3R9IGZoZENvbnNQb3J0IC0gVmlkZW8gY2FwdHVyZSBjb25zdHJhaW50cyBmb3IgRkhEIHJlc29sdXRpb24gaW4gcG9ydHJhaXQgbW9kZS5cbiAqIEBwcm9wZXJ0eSB7T2JqZWN0fSBxaGRDb25zUG9ydCAtIFZpZGVvIGNhcHR1cmUgY29uc3RyYWludHMgZm9yIFFIRCByZXNvbHV0aW9uIGluIHBvcnRyYWl0IG1vZGUuXG4gKlxuICogQHByb3BlcnR5IHtPYmplY3R9IFFuSERDb25zTmV1IC0gVmlkZW8gY2FwdHVyZSBjb25zdHJhaW50cyBmb3IgUW5IRCByZXNvbHV0aW9uIGluIG5ldXRyYWwgbW9kZS5cbiAqIEBwcm9wZXJ0eSB7T2JqZWN0fSBzZENvbnNOZXUgLSBWaWRlbyBjYXB0dXJlIGNvbnN0cmFpbnRzIGZvciBTRCByZXNvbHV0aW9uIGluIG5ldXRyYWwgbW9kZS5cbiAqIEBwcm9wZXJ0eSB7T2JqZWN0fSBoZENvbnNOZXUgLSBWaWRlbyBjYXB0dXJlIGNvbnN0cmFpbnRzIGZvciBIRCByZXNvbHV0aW9uIGluIG5ldXRyYWwgbW9kZS5cbiAqIEBwcm9wZXJ0eSB7T2JqZWN0fSBmaGRDb25zTmV1IC0gVmlkZW8gY2FwdHVyZSBjb25zdHJhaW50cyBmb3IgRkhEIHJlc29sdXRpb24gaW4gbmV1dHJhbCBtb2RlLlxuICogQHByb3BlcnR5IHtPYmplY3R9IHFoZENvbnNOZXUgLSBWaWRlbyBjYXB0dXJlIGNvbnN0cmFpbnRzIGZvciBRbkhEIHJlc29sdXRpb24gaW4gbmV1dHJhbCBtb2RlLlxuICpcbiAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBRbkhERnJhbWVSYXRlIC0gRnJhbWUgcmF0ZSBmb3IgUW5IRCB2aWRlbyBjYXB0dXJlICg1IEZQUykuXG4gKiBAcHJvcGVydHkge251bWJlcn0gc2RGcmFtZVJhdGUgLSBGcmFtZSByYXRlIGZvciBTRCB2aWRlbyBjYXB0dXJlICgxMCBGUFMpLlxuICogQHByb3BlcnR5IHtudW1iZXJ9IGhkRnJhbWVSYXRlIC0gRnJhbWUgcmF0ZSBmb3IgSEQgdmlkZW8gY2FwdHVyZSAoMTUgRlBTKS5cbiAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBmaGRGcmFtZVJhdGUgLSBGcmFtZSByYXRlIGZvciBGSEQgdmlkZW8gY2FwdHVyZSAoMjAgRlBTKS5cbiAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBxaGRGcmFtZVJhdGUgLSBGcmFtZSByYXRlIGZvciBRSEQgdmlkZW8gY2FwdHVyZSAoMzAgRlBTKS5cbiAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBzY3JlZW5GcmFtZVJhdGUgLSBGcmFtZSByYXRlIGZvciBzY3JlZW4gY2FwdHVyZSAoMzAgRlBTKS5cbiAqXG4gKiBAcmV0dXJucyB7VmlkZW9DYXB0dXJlQ29uc3RyYWludHN9IFRoZSB2aWRlbyBjYXB0dXJlIGNvbnN0cmFpbnRzIGZvciB1c2UgaW4gbWVkaWEgcmVxdWVzdHMuXG4gKi9cblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFZpZGVvQ2FwdHVyZUNvbnN0cmFpbnRzIHtcbiAgLy8gTGFuZHNjYXBlIGRpc3BsYXkgc2l6ZXNcbiAgUW5IRENvbnMgPSB7IHdpZHRoOiB7IGlkZWFsOiAzMjAgfSwgaGVpZ2h0OiB7IGlkZWFsOiAxODAgfSB9O1xuICBzZENvbnMgPSB7IHdpZHRoOiB7IGlkZWFsOiA2NDAgfSwgaGVpZ2h0OiB7IGlkZWFsOiAzNjAgfSB9O1xuICBoZENvbnMgPSB7IHdpZHRoOiB7IGlkZWFsOiAxMjgwIH0sIGhlaWdodDogeyBpZGVhbDogNzIwIH0gfTtcbiAgZmhkQ29ucyA9IHsgd2lkdGg6IHsgaWRlYWw6IDE5MjAgfSwgaGVpZ2h0OiB7IGlkZWFsOiAxMDgwIH0gfTtcbiAgcWhkQ29ucyA9IHsgd2lkdGg6IHsgaWRlYWw6IDI1NjAgfSwgaGVpZ2h0OiB7IGlkZWFsOiAxNDQwIH0gfTtcblxuICAvLyBQb3J0cmFpdCBkaXNwbGF5IHNpemVzXG4gIFFuSERDb25zUG9ydCA9IHsgd2lkdGg6IHsgaWRlYWw6IDE4MCB9LCBoZWlnaHQ6IHsgaWRlYWw6IDMyMCB9IH07XG4gIHNkQ29uc1BvcnQgPSB7IHdpZHRoOiB7IGlkZWFsOiAzNjAgfSwgaGVpZ2h0OiB7IGlkZWFsOiA2NDAgfSB9O1xuICBoZENvbnNQb3J0ID0geyB3aWR0aDogeyBpZGVhbDogNzIwIH0sIGhlaWdodDogeyBpZGVhbDogMTI4MCB9IH07XG4gIGZoZENvbnNQb3J0ID0geyB3aWR0aDogeyBpZGVhbDogMTA4MCB9LCBoZWlnaHQ6IHsgaWRlYWw6IDE5MjAgfSB9O1xuICBxaGRDb25zUG9ydCA9IHsgd2lkdGg6IHsgaWRlYWw6IDE0NDAgfSwgaGVpZ2h0OiB7IGlkZWFsOiAyNTYwIH0gfTtcblxuICAvLyBOZXV0cmFsIChTcXVhcmUpIGRpc3BsYXkgc2l6ZXNcbiAgUW5IRENvbnNOZXUgPSB7IHdpZHRoOiB7IGlkZWFsOiAyNDAgfSwgaGVpZ2h0OiB7IGlkZWFsOiAyNDAgfSB9O1xuICBzZENvbnNOZXUgPSB7IHdpZHRoOiB7IGlkZWFsOiA0ODAgfSwgaGVpZ2h0OiB7IGlkZWFsOiA0ODAgfSB9O1xuICBoZENvbnNOZXUgPSB7IHdpZHRoOiB7IGlkZWFsOiA5NjAgfSwgaGVpZ2h0OiB7IGlkZWFsOiA5NjAgfSB9O1xuICBmaGRDb25zTmV1ID0geyB3aWR0aDogeyBpZGVhbDogMTQ0MCB9LCBoZWlnaHQ6IHsgaWRlYWw6IDE0NDAgfSB9O1xuICBxaGRDb25zTmV1ID0geyB3aWR0aDogeyBpZGVhbDogMTkyMCB9LCBoZWlnaHQ6IHsgaWRlYWw6IDE5MjAgfSB9O1xuXG4gIC8vIEZyYW1lIHJhdGVzIGZvciB2aWRlbyBjYXB0dXJlXG4gIFFuSERGcmFtZVJhdGUgPSA1O1xuICBzZEZyYW1lUmF0ZSA9IDEwO1xuICBoZEZyYW1lUmF0ZSA9IDE1O1xuICBmaGRGcmFtZVJhdGUgPSAyMDtcbiAgcWhkRnJhbWVSYXRlID0gMzA7XG4gIHNjcmVlbkZyYW1lUmF0ZSA9IDMwO1xufVxuIl19
@@ -1,17 +0,0 @@
1
- /**
2
- * Pauses the execution for a specified number of milliseconds.
3
- *
4
- * @param {SleepOptions} options - Contains the duration to pause.
5
- * @param {number} options.ms - Number of milliseconds to delay.
6
- * @returns {Promise<void>} Resolves after the specified duration.
7
- *
8
- * @example
9
- * ```typescript
10
- * await sleep({ ms: 2000 });
11
- * // Pauses execution for 2 seconds
12
- * ```
13
- */
14
- export function sleep({ ms }) {
15
- return new Promise((resolve) => setTimeout(resolve, ms));
16
- }
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xlZXAudXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21lZGlhc2Z1LWFuZ3VsYXIvc3JjL2xpYi9tZXRob2RzL3V0aWxzL3NsZWVwLnV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBT0E7Ozs7Ozs7Ozs7OztHQVlHO0FBR0gsTUFBTSxVQUFVLEtBQUssQ0FBQyxFQUFFLEVBQUUsRUFBZ0I7SUFDeEMsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQzNELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIFNsZWVwT3B0aW9ucyB7XG4gIG1zOiBudW1iZXI7XG59XG5cbi8vIEV4cG9ydCB0aGUgdHlwZSBkZWZpbml0aW9uIGZvciB0aGUgZnVuY3Rpb25cbmV4cG9ydCB0eXBlIFNsZWVwVHlwZSA9IChvcHRpb25zOiBTbGVlcE9wdGlvbnMpID0+IFByb21pc2U8dm9pZD47XG5cbi8qKlxuICogUGF1c2VzIHRoZSBleGVjdXRpb24gZm9yIGEgc3BlY2lmaWVkIG51bWJlciBvZiBtaWxsaXNlY29uZHMuXG4gKlxuICogQHBhcmFtIHtTbGVlcE9wdGlvbnN9IG9wdGlvbnMgLSBDb250YWlucyB0aGUgZHVyYXRpb24gdG8gcGF1c2UuXG4gKiBAcGFyYW0ge251bWJlcn0gb3B0aW9ucy5tcyAtIE51bWJlciBvZiBtaWxsaXNlY29uZHMgdG8gZGVsYXkuXG4gKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn0gUmVzb2x2ZXMgYWZ0ZXIgdGhlIHNwZWNpZmllZCBkdXJhdGlvbi5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogYXdhaXQgc2xlZXAoeyBtczogMjAwMCB9KTtcbiAqIC8vIFBhdXNlcyBleGVjdXRpb24gZm9yIDIgc2Vjb25kc1xuICogYGBgXG4gKi9cblxuXG5leHBvcnQgZnVuY3Rpb24gc2xlZXAoeyBtcyB9OiBTbGVlcE9wdGlvbnMpOiBQcm9taXNlPHZvaWQ+IHtcbiAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiBzZXRUaW1lb3V0KHJlc29sdmUsIG1zKSk7XG59XG4iXX0=
@@ -1,63 +0,0 @@
1
- import { Injectable, Input } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- /**
4
- * SoundPlayer service for playing a sound from a provided URL.
5
- *
6
- * @class SoundPlayer
7
- * @implements {OnInit}
8
- *
9
- * @example
10
- * ```typescript
11
- * const soundUrl = 'https://example.com/sound.mp3';
12
- * const soundPlayer = new SoundPlayer();
13
- * soundPlayer.playSound({ soundUrl });
14
- * ```
15
- *
16
- * ### Details
17
- * - **soundUrl**: URL to the sound file that will be played.
18
- * - **playSound**: Initiates the audio playback.
19
- * - **ngOnInit**: Automatically triggers sound playback if `soundUrl` is set.
20
- *
21
- * @param {SoundPlayerOptions} options - Contains the URL of the sound to play.
22
- * @returns {void} - No return; sound is played asynchronously.
23
- */
24
- /**
25
- * Plays a sound from a given URL.
26
- * @class
27
- * @implements {OnInit}
28
- * @param {string} soundUrl - The URL of the sound to play.
29
- * @returns {void}
30
- * @example
31
- * const soundUrl = 'https://example.com/sound.mp3';
32
- * const soundPlayer = new SoundPlayer();
33
- * soundPlayer.playSound({ soundUrl });
34
- */
35
- export class SoundPlayer {
36
- soundUrl;
37
- ngOnInit() {
38
- const shouldPlaySound = true;
39
- if (shouldPlaySound) {
40
- if (this.soundUrl) {
41
- this.playSound({ soundUrl: this.soundUrl });
42
- }
43
- else {
44
- console.log('Sound URL is not defined');
45
- }
46
- }
47
- }
48
- playSound({ soundUrl }) {
49
- const audio = new Audio(soundUrl);
50
- audio.play().catch((error) => console.error('Error playing sound:', error));
51
- }
52
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: SoundPlayer, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
53
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: SoundPlayer, providedIn: 'root' });
54
- }
55
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: SoundPlayer, decorators: [{
56
- type: Injectable,
57
- args: [{
58
- providedIn: 'root',
59
- }]
60
- }], propDecorators: { soundUrl: [{
61
- type: Input
62
- }] } });
63
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic291bmQtcGxheWVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tZWRpYXNmdS1hbmd1bGFyL3NyYy9saWIvbWV0aG9kcy91dGlscy9zb3VuZC1wbGF5ZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQzs7QUFRMUQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBb0JHO0FBT0g7Ozs7Ozs7Ozs7R0FVRztBQUNILE1BQU0sT0FBTyxXQUFXO0lBQ2IsUUFBUSxDQUFxQjtJQUV0QyxRQUFRO1FBQ04sTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDO1FBRTdCLElBQUksZUFBZSxFQUFFLENBQUM7WUFDcEIsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBQ2xCLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7WUFDOUMsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLE9BQU8sQ0FBQyxHQUFHLENBQUMsMEJBQTBCLENBQUMsQ0FBQztZQUMxQyxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRCxTQUFTLENBQUMsRUFBRSxRQUFRLEVBQXNCO1FBQ3hDLE1BQU0sS0FBSyxHQUFHLElBQUksS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ2xDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsc0JBQXNCLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUM5RSxDQUFDO3VHQWxCVSxXQUFXOzJHQUFYLFdBQVcsY0FkVixNQUFNOzsyRkFjUCxXQUFXO2tCQWZ2QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs4QkFjVSxRQUFRO3NCQUFoQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuZXhwb3J0IGludGVyZmFjZSBTb3VuZFBsYXllck9wdGlvbnMge1xuICBzb3VuZFVybDogc3RyaW5nO1xufVxuXG4vLyBFeHBvcnQgdGhlIHR5cGUgZGVmaW5pdGlvbiBmb3IgdGhlIGZ1bmN0aW9uXG5leHBvcnQgdHlwZSBTb3VuZFBsYXllclR5cGUgPSAob3B0aW9uczogU291bmRQbGF5ZXJPcHRpb25zKSA9PiB2b2lkO1xuXG4vKipcbiAqIFNvdW5kUGxheWVyIHNlcnZpY2UgZm9yIHBsYXlpbmcgYSBzb3VuZCBmcm9tIGEgcHJvdmlkZWQgVVJMLlxuICpcbiAqIEBjbGFzcyBTb3VuZFBsYXllclxuICogQGltcGxlbWVudHMge09uSW5pdH1cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3Qgc291bmRVcmwgPSAnaHR0cHM6Ly9leGFtcGxlLmNvbS9zb3VuZC5tcDMnO1xuICogY29uc3Qgc291bmRQbGF5ZXIgPSBuZXcgU291bmRQbGF5ZXIoKTtcbiAqIHNvdW5kUGxheWVyLnBsYXlTb3VuZCh7IHNvdW5kVXJsIH0pO1xuICogYGBgXG4gKlxuICogIyMjIERldGFpbHNcbiAqIC0gKipzb3VuZFVybCoqOiBVUkwgdG8gdGhlIHNvdW5kIGZpbGUgdGhhdCB3aWxsIGJlIHBsYXllZC5cbiAqIC0gKipwbGF5U291bmQqKjogSW5pdGlhdGVzIHRoZSBhdWRpbyBwbGF5YmFjay5cbiAqIC0gKipuZ09uSW5pdCoqOiBBdXRvbWF0aWNhbGx5IHRyaWdnZXJzIHNvdW5kIHBsYXliYWNrIGlmIGBzb3VuZFVybGAgaXMgc2V0LlxuICpcbiAqIEBwYXJhbSB7U291bmRQbGF5ZXJPcHRpb25zfSBvcHRpb25zIC0gQ29udGFpbnMgdGhlIFVSTCBvZiB0aGUgc291bmQgdG8gcGxheS5cbiAqIEByZXR1cm5zIHt2b2lkfSAtIE5vIHJldHVybjsgc291bmQgaXMgcGxheWVkIGFzeW5jaHJvbm91c2x5LlxuICovXG5cblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuXG4vKipcbiAqIFBsYXlzIGEgc291bmQgZnJvbSBhIGdpdmVuIFVSTC5cbiAqIEBjbGFzc1xuICogQGltcGxlbWVudHMge09uSW5pdH1cbiAqIEBwYXJhbSB7c3RyaW5nfSBzb3VuZFVybCAtIFRoZSBVUkwgb2YgdGhlIHNvdW5kIHRvIHBsYXkuXG4gKiBAcmV0dXJucyB7dm9pZH1cbiAqIEBleGFtcGxlXG4gKiBjb25zdCBzb3VuZFVybCA9ICdodHRwczovL2V4YW1wbGUuY29tL3NvdW5kLm1wMyc7XG4gKiBjb25zdCBzb3VuZFBsYXllciA9IG5ldyBTb3VuZFBsYXllcigpO1xuICogc291bmRQbGF5ZXIucGxheVNvdW5kKHsgc291bmRVcmwgfSk7XG4gKi9cbmV4cG9ydCBjbGFzcyBTb3VuZFBsYXllciBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIHNvdW5kVXJsOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgY29uc3Qgc2hvdWxkUGxheVNvdW5kID0gdHJ1ZTtcblxuICAgIGlmIChzaG91bGRQbGF5U291bmQpIHtcbiAgICAgIGlmICh0aGlzLnNvdW5kVXJsKSB7XG4gICAgICAgIHRoaXMucGxheVNvdW5kKHsgc291bmRVcmw6IHRoaXMuc291bmRVcmwgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zb2xlLmxvZygnU291bmQgVVJMIGlzIG5vdCBkZWZpbmVkJyk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcGxheVNvdW5kKHsgc291bmRVcmwgfTogU291bmRQbGF5ZXJPcHRpb25zKTogdm9pZCB7XG4gICAgY29uc3QgYXVkaW8gPSBuZXcgQXVkaW8oc291bmRVcmwpO1xuICAgIGF1ZGlvLnBsYXkoKS5jYXRjaCgoZXJyb3IpID0+IGNvbnNvbGUuZXJyb3IoJ0Vycm9yIHBsYXlpbmcgc291bmQ6JywgZXJyb3IpKTtcbiAgfVxufVxuIl19
@@ -1,49 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- /**
4
- * Service to validate if a given string contains only alphanumeric characters.
5
- *
6
- * @class ValidateAlphanumeric
7
- *
8
- * @example
9
- * ```typescript
10
- * const validator = new ValidateAlphanumeric();
11
- * validator.validateAlphanumeric({ str: 'abc123' }).then(isValid => console.log(isValid)); // true
12
- * validator.validateAlphanumeric({ str: 'abc 123!' }).then(isValid => console.log(isValid)); // false
13
- * ```
14
- *
15
- * @param {ValidateAlphanumericOptions} options - Contains the string to validate.
16
- * @param {string} options.str - The input string that needs to be validated.
17
- * @returns {Promise<boolean>} - A promise resolving to `true` if the input string is alphanumeric, otherwise `false`.
18
- */
19
- export class ValidateAlphanumeric {
20
- /**
21
- * Validates if the given string contains only alphanumeric characters.
22
- *
23
- * @param {ValidateAlphanumericOptions} options - The options containing the string to validate.
24
- * @param {string} options.str - The string to be validated.
25
- * @returns {Promise<boolean>} - A promise that resolves to `true` if the string is alphanumeric, otherwise `false`.
26
- */
27
- async validateAlphanumeric({ str }) {
28
- let code, i, len;
29
- for (i = 0, len = str.length; i < len; i++) {
30
- code = str.charCodeAt(i);
31
- if (!(code > 47 && code < 58) && // numeric (0-9)
32
- !(code > 64 && code < 91) && // upper alpha (A-Z)
33
- !(code > 96 && code < 123)) {
34
- // lower alpha (a-z)
35
- return false;
36
- }
37
- }
38
- return true;
39
- }
40
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ValidateAlphanumeric, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
41
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ValidateAlphanumeric, providedIn: 'root' });
42
- }
43
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ValidateAlphanumeric, decorators: [{
44
- type: Injectable,
45
- args: [{
46
- providedIn: 'root',
47
- }]
48
- }] });
49
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGUtYWxwaGFudW1lcmljLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tZWRpYXNmdS1hbmd1bGFyL3NyYy9saWIvbWV0aG9kcy91dGlscy92YWxpZGF0ZS1hbHBoYW51bWVyaWMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQVEzQzs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFLSCxNQUFNLE9BQU8sb0JBQW9CO0lBQy9COzs7Ozs7T0FNRztJQUNILEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxFQUFFLEdBQUcsRUFBK0I7UUFDN0QsSUFBSSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUcsQ0FBQztRQUVqQixLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBRyxHQUFHLEdBQUcsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQzNDLElBQUksR0FBRyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3pCLElBQ0UsQ0FBQyxDQUFDLElBQUksR0FBRyxFQUFFLElBQUksSUFBSSxHQUFHLEVBQUUsQ0FBQyxJQUFJLGdCQUFnQjtnQkFDN0MsQ0FBQyxDQUFDLElBQUksR0FBRyxFQUFFLElBQUksSUFBSSxHQUFHLEVBQUUsQ0FBQyxJQUFJLG9CQUFvQjtnQkFDakQsQ0FBQyxDQUFDLElBQUksR0FBRyxFQUFFLElBQUksSUFBSSxHQUFHLEdBQUcsQ0FBQyxFQUMxQixDQUFDO2dCQUNELG9CQUFvQjtnQkFDcEIsT0FBTyxLQUFLLENBQUM7WUFDZixDQUFDO1FBQ0gsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQzt1R0F2QlUsb0JBQW9COzJHQUFwQixvQkFBb0IsY0FGbkIsTUFBTTs7MkZBRVAsb0JBQW9CO2tCQUhoQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmV4cG9ydCBpbnRlcmZhY2UgVmFsaWRhdGVBbHBoYW51bWVyaWNPcHRpb25zIHtcbiAgc3RyOiBzdHJpbmc7XG59XG5cbi8vIEV4cG9ydCB0aGUgdHlwZSBkZWZpbml0aW9uIGZvciB0aGUgZnVuY3Rpb25cbmV4cG9ydCB0eXBlIFZhbGlkYXRlQWxwaGFudW1lcmljVHlwZSA9IChvcHRpb25zOiBWYWxpZGF0ZUFscGhhbnVtZXJpY09wdGlvbnMpID0+IFByb21pc2U8Ym9vbGVhbj47XG5cbi8qKlxuICogU2VydmljZSB0byB2YWxpZGF0ZSBpZiBhIGdpdmVuIHN0cmluZyBjb250YWlucyBvbmx5IGFscGhhbnVtZXJpYyBjaGFyYWN0ZXJzLlxuICpcbiAqIEBjbGFzcyBWYWxpZGF0ZUFscGhhbnVtZXJpY1xuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCB2YWxpZGF0b3IgPSBuZXcgVmFsaWRhdGVBbHBoYW51bWVyaWMoKTtcbiAqIHZhbGlkYXRvci52YWxpZGF0ZUFscGhhbnVtZXJpYyh7IHN0cjogJ2FiYzEyMycgfSkudGhlbihpc1ZhbGlkID0+IGNvbnNvbGUubG9nKGlzVmFsaWQpKTsgLy8gdHJ1ZVxuICogdmFsaWRhdG9yLnZhbGlkYXRlQWxwaGFudW1lcmljKHsgc3RyOiAnYWJjIDEyMyEnIH0pLnRoZW4oaXNWYWxpZCA9PiBjb25zb2xlLmxvZyhpc1ZhbGlkKSk7IC8vIGZhbHNlXG4gKiBgYGBcbiAqXG4gKiBAcGFyYW0ge1ZhbGlkYXRlQWxwaGFudW1lcmljT3B0aW9uc30gb3B0aW9ucyAtIENvbnRhaW5zIHRoZSBzdHJpbmcgdG8gdmFsaWRhdGUuXG4gKiBAcGFyYW0ge3N0cmluZ30gb3B0aW9ucy5zdHIgLSBUaGUgaW5wdXQgc3RyaW5nIHRoYXQgbmVlZHMgdG8gYmUgdmFsaWRhdGVkLlxuICogQHJldHVybnMge1Byb21pc2U8Ym9vbGVhbj59IC0gQSBwcm9taXNlIHJlc29sdmluZyB0byBgdHJ1ZWAgaWYgdGhlIGlucHV0IHN0cmluZyBpcyBhbHBoYW51bWVyaWMsIG90aGVyd2lzZSBgZmFsc2VgLlxuICovXG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBWYWxpZGF0ZUFscGhhbnVtZXJpYyB7XG4gIC8qKlxuICAgKiBWYWxpZGF0ZXMgaWYgdGhlIGdpdmVuIHN0cmluZyBjb250YWlucyBvbmx5IGFscGhhbnVtZXJpYyBjaGFyYWN0ZXJzLlxuICAgKlxuICAgKiBAcGFyYW0ge1ZhbGlkYXRlQWxwaGFudW1lcmljT3B0aW9uc30gb3B0aW9ucyAtIFRoZSBvcHRpb25zIGNvbnRhaW5pbmcgdGhlIHN0cmluZyB0byB2YWxpZGF0ZS5cbiAgICogQHBhcmFtIHtzdHJpbmd9IG9wdGlvbnMuc3RyIC0gVGhlIHN0cmluZyB0byBiZSB2YWxpZGF0ZWQuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPGJvb2xlYW4+fSAtIEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHRvIGB0cnVlYCBpZiB0aGUgc3RyaW5nIGlzIGFscGhhbnVtZXJpYywgb3RoZXJ3aXNlIGBmYWxzZWAuXG4gICAqL1xuICBhc3luYyB2YWxpZGF0ZUFscGhhbnVtZXJpYyh7IHN0ciB9OiBWYWxpZGF0ZUFscGhhbnVtZXJpY09wdGlvbnMpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICBsZXQgY29kZSwgaSwgbGVuO1xuXG4gICAgZm9yIChpID0gMCwgbGVuID0gc3RyLmxlbmd0aDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgICBjb2RlID0gc3RyLmNoYXJDb2RlQXQoaSk7XG4gICAgICBpZiAoXG4gICAgICAgICEoY29kZSA+IDQ3ICYmIGNvZGUgPCA1OCkgJiYgLy8gbnVtZXJpYyAoMC05KVxuICAgICAgICAhKGNvZGUgPiA2NCAmJiBjb2RlIDwgOTEpICYmIC8vIHVwcGVyIGFscGhhIChBLVopXG4gICAgICAgICEoY29kZSA+IDk2ICYmIGNvZGUgPCAxMjMpXG4gICAgICApIHtcbiAgICAgICAgLy8gbG93ZXIgYWxwaGEgKGEteilcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxufVxuIl19
@@ -1,41 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- /**
4
- * Service to toggle the visibility of a waiting modal.
5
- *
6
- * @param {LaunchWaitingOptions} options - The options to control the waiting modal visibility.
7
- * @param {Function} options.updateIsWaitingModalVisible - Function to update the visibility of the waiting modal.
8
- * @param {boolean} options.isWaitingModalVisible - Current visibility state of the waiting modal.
9
- *
10
- * @example
11
- * ```typescript
12
- * const launchWaitingService = new LaunchWaiting();
13
- * launchWaitingService.launchWaiting({
14
- * updateIsWaitingModalVisible: (isVisible) => console.log(`Modal is now ${isVisible ? 'visible' : 'hidden'}`),
15
- * isWaitingModalVisible: false,
16
- * });
17
- * ```
18
- *
19
- * This example toggles the modal's visibility state, making it visible if it was hidden and vice versa.
20
- */
21
- export class LaunchWaiting {
22
- /**
23
- * Toggles the visibility of the waiting modal.
24
- *
25
- * @param updateIsWaitingModalVisible - Function to update the visibility state of the waiting modal.
26
- * @param isWaitingModalVisible - Current visibility state of the waiting modal.
27
- */
28
- launchWaiting({ updateIsWaitingModalVisible, isWaitingModalVisible, }) {
29
- // Open or close the menu modal
30
- updateIsWaitingModalVisible(!isWaitingModalVisible);
31
- }
32
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: LaunchWaiting, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
33
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: LaunchWaiting, providedIn: 'root' });
34
- }
35
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: LaunchWaiting, decorators: [{
36
- type: Injectable,
37
- args: [{
38
- providedIn: 'root',
39
- }]
40
- }] });
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF1bmNoLXdhaXRpbmcuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21lZGlhc2Z1LWFuZ3VsYXIvc3JjL2xpYi9tZXRob2RzL3dhaXRpbmctbWV0aG9kcy9sYXVuY2gtd2FpdGluZy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBUzNDOzs7Ozs7Ozs7Ozs7Ozs7OztHQWlCRztBQU1ILE1BQU0sT0FBTyxhQUFhO0lBQ3hCOzs7OztPQUtHO0lBRUgsYUFBYSxDQUFDLEVBQ1osMkJBQTJCLEVBQzNCLHFCQUFxQixHQUNBO1FBQ3JCLCtCQUErQjtRQUMvQiwyQkFBMkIsQ0FBQyxDQUFDLHFCQUFxQixDQUFDLENBQUM7SUFDdEQsQ0FBQzt1R0FkVSxhQUFhOzJHQUFiLGFBQWEsY0FGWixNQUFNOzsyRkFFUCxhQUFhO2tCQUh6QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmV4cG9ydCBpbnRlcmZhY2UgTGF1bmNoV2FpdGluZ09wdGlvbnMge1xuICB1cGRhdGVJc1dhaXRpbmdNb2RhbFZpc2libGU6ICh2aXNpYmxlOiBib29sZWFuKSA9PiB2b2lkO1xuICBpc1dhaXRpbmdNb2RhbFZpc2libGU6IGJvb2xlYW47XG59XG5cbi8vIEV4cG9ydCB0aGUgdHlwZSBkZWZpbml0aW9uIGZvciB0aGUgZnVuY3Rpb25cbmV4cG9ydCB0eXBlIExhdW5jaFdhaXRpbmdUeXBlID0gKG9wdGlvbnM6IExhdW5jaFdhaXRpbmdPcHRpb25zKSA9PiB2b2lkO1xuXG4vKipcbiAqIFNlcnZpY2UgdG8gdG9nZ2xlIHRoZSB2aXNpYmlsaXR5IG9mIGEgd2FpdGluZyBtb2RhbC5cbiAqXG4gKiBAcGFyYW0ge0xhdW5jaFdhaXRpbmdPcHRpb25zfSBvcHRpb25zIC0gVGhlIG9wdGlvbnMgdG8gY29udHJvbCB0aGUgd2FpdGluZyBtb2RhbCB2aXNpYmlsaXR5LlxuICogQHBhcmFtIHtGdW5jdGlvbn0gb3B0aW9ucy51cGRhdGVJc1dhaXRpbmdNb2RhbFZpc2libGUgLSBGdW5jdGlvbiB0byB1cGRhdGUgdGhlIHZpc2liaWxpdHkgb2YgdGhlIHdhaXRpbmcgbW9kYWwuXG4gKiBAcGFyYW0ge2Jvb2xlYW59IG9wdGlvbnMuaXNXYWl0aW5nTW9kYWxWaXNpYmxlIC0gQ3VycmVudCB2aXNpYmlsaXR5IHN0YXRlIG9mIHRoZSB3YWl0aW5nIG1vZGFsLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBsYXVuY2hXYWl0aW5nU2VydmljZSA9IG5ldyBMYXVuY2hXYWl0aW5nKCk7XG4gKiBsYXVuY2hXYWl0aW5nU2VydmljZS5sYXVuY2hXYWl0aW5nKHtcbiAqICAgdXBkYXRlSXNXYWl0aW5nTW9kYWxWaXNpYmxlOiAoaXNWaXNpYmxlKSA9PiBjb25zb2xlLmxvZyhgTW9kYWwgaXMgbm93ICR7aXNWaXNpYmxlID8gJ3Zpc2libGUnIDogJ2hpZGRlbid9YCksXG4gKiAgIGlzV2FpdGluZ01vZGFsVmlzaWJsZTogZmFsc2UsXG4gKiB9KTtcbiAqIGBgYFxuICpcbiAqIFRoaXMgZXhhbXBsZSB0b2dnbGVzIHRoZSBtb2RhbCdzIHZpc2liaWxpdHkgc3RhdGUsIG1ha2luZyBpdCB2aXNpYmxlIGlmIGl0IHdhcyBoaWRkZW4gYW5kIHZpY2UgdmVyc2EuXG4gKi9cblxuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgTGF1bmNoV2FpdGluZyB7XG4gIC8qKlxuICAgKiBUb2dnbGVzIHRoZSB2aXNpYmlsaXR5IG9mIHRoZSB3YWl0aW5nIG1vZGFsLlxuICAgKlxuICAgKiBAcGFyYW0gdXBkYXRlSXNXYWl0aW5nTW9kYWxWaXNpYmxlIC0gRnVuY3Rpb24gdG8gdXBkYXRlIHRoZSB2aXNpYmlsaXR5IHN0YXRlIG9mIHRoZSB3YWl0aW5nIG1vZGFsLlxuICAgKiBAcGFyYW0gaXNXYWl0aW5nTW9kYWxWaXNpYmxlIC0gQ3VycmVudCB2aXNpYmlsaXR5IHN0YXRlIG9mIHRoZSB3YWl0aW5nIG1vZGFsLlxuICAgKi9cblxuICBsYXVuY2hXYWl0aW5nKHtcbiAgICB1cGRhdGVJc1dhaXRpbmdNb2RhbFZpc2libGUsXG4gICAgaXNXYWl0aW5nTW9kYWxWaXNpYmxlLFxuICB9OiBMYXVuY2hXYWl0aW5nT3B0aW9ucyk6IHZvaWQge1xuICAgIC8vIE9wZW4gb3IgY2xvc2UgdGhlIG1lbnUgbW9kYWxcbiAgICB1cGRhdGVJc1dhaXRpbmdNb2RhbFZpc2libGUoIWlzV2FpdGluZ01vZGFsVmlzaWJsZSk7XG4gIH1cbn1cbiJdfQ==
@@ -1,69 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- /**
4
- * Handles the response to a participant in the waiting room, either allowing or denying their entry.
5
- *
6
- * @param {RespondToWaitingOptions} options - Options for handling the participant's entry request.
7
- * @param {string} options.participantId - Unique identifier for the participant.
8
- * @param {string} options.participantName - Name of the participant.
9
- * @param {Function} options.updateWaitingList - Function to update the waiting list by removing the responded participant.
10
- * @param {WaitingRoomParticipant[]} options.waitingList - Current list of participants in the waiting room.
11
- * @param {boolean | string} options.type - Indicates whether to allow ("true") or deny ("false") the participant's entry.
12
- * @param {string} options.roomName - The name of the room the participant is requesting to join.
13
- * @param {Socket} options.socket - The socket instance used to emit the response event.
14
- * @returns {Promise<void>} Resolves when the response has been processed.
15
- *
16
- * @example
17
- * ```typescript
18
- * const respondService = new RespondToWaiting();
19
- * respondService.respondToWaiting({
20
- * participantId: '12345',
21
- * participantName: 'John Doe',
22
- * updateWaitingList: (newList) => console.log('Updated Waiting List:', newList),
23
- * waitingList: currentWaitingList,
24
- * type: 'true',
25
- * roomName: 'Room1',
26
- * socket: io('http://localhost:3000'),
27
- * });
28
- * ```
29
- *
30
- * In this example, the participant 'John Doe' is allowed to join 'Room1', and the updated waiting list is logged.
31
- */
32
- export class RespondToWaiting {
33
- /**
34
- * Responds to a participant waiting to join a room by either allowing or denying their entry.
35
- *
36
- * @param {Object} options - The options for responding to the waiting participant.
37
- * @param {string} options.participantId - The ID of the participant.
38
- * @param {string} options.participantName - The name of the participant.
39
- * @param {Function} options.updateWaitingList - The function to update the waiting list.
40
- * @param {Array} options.waitingList - The current waiting list of participants.
41
- * @param {boolean | string} options.type - The type of response, either "true" or "false".
42
- * @param {string} options.roomName - The name of the room.
43
- * @param {Object} options.socket - The socket instance to emit events.
44
- * @returns {Promise<void>} - A promise that resolves when the response has been processed.
45
- */
46
- async respondToWaiting({ participantId, participantName, updateWaitingList, waitingList, type, roomName, socket, }) {
47
- // Filter out the participant from the waiting list
48
- const newWaitingList = waitingList.filter((item) => item.name !== participantName);
49
- // Update the waiting list
50
- updateWaitingList(newWaitingList);
51
- const responseType = type === 'true' || type === true ? 'true' : 'false';
52
- // Emit an event to allow or deny the participant based on the response type
53
- await socket.emit('allowUserIn', {
54
- participantId,
55
- participantName,
56
- type: responseType,
57
- roomName,
58
- });
59
- }
60
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: RespondToWaiting, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
61
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: RespondToWaiting, providedIn: 'root' });
62
- }
63
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: RespondToWaiting, decorators: [{
64
- type: Injectable,
65
- args: [{
66
- providedIn: 'root',
67
- }]
68
- }] });
69
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzcG9uZC10by13YWl0aW5nLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tZWRpYXNmdS1hbmd1bGFyL3NyYy9saWIvbWV0aG9kcy93YWl0aW5nLW1ldGhvZHMvcmVzcG9uZC10by13YWl0aW5nLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFpQjNDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBNEJHO0FBTUgsTUFBTSxPQUFPLGdCQUFnQjtJQUMzQjs7Ozs7Ozs7Ozs7O09BWUc7SUFDSCxLQUFLLENBQUMsZ0JBQWdCLENBQUMsRUFDckIsYUFBYSxFQUNiLGVBQWUsRUFDZixpQkFBaUIsRUFDakIsV0FBVyxFQUNYLElBQUksRUFDSixRQUFRLEVBQ1IsTUFBTSxHQUNrQjtRQUN4QixtREFBbUQ7UUFDbkQsTUFBTSxjQUFjLEdBQUcsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxlQUFlLENBQUMsQ0FBQztRQUVuRiwwQkFBMEI7UUFDMUIsaUJBQWlCLENBQUMsY0FBYyxDQUFDLENBQUM7UUFFbEMsTUFBTSxZQUFZLEdBQUcsSUFBSSxLQUFLLE1BQU0sSUFBSSxJQUFJLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQztRQUV6RSw0RUFBNEU7UUFDNUUsTUFBTSxNQUFNLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUMvQixhQUFhO1lBQ2IsZUFBZTtZQUNmLElBQUksRUFBRSxZQUFZO1lBQ2xCLFFBQVE7U0FDVCxDQUFDLENBQUM7SUFDTCxDQUFDO3VHQXRDVSxnQkFBZ0I7MkdBQWhCLGdCQUFnQixjQUZmLE1BQU07OzJGQUVQLGdCQUFnQjtrQkFINUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTb2NrZXQgfSBmcm9tICdzb2NrZXQuaW8tY2xpZW50JztcbmltcG9ydCB7IFdhaXRpbmdSb29tUGFydGljaXBhbnQgfSBmcm9tICcuLi8uLi9AdHlwZXMvdHlwZXMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFJlc3BvbmRUb1dhaXRpbmdPcHRpb25zIHtcbiAgcGFydGljaXBhbnRJZDogc3RyaW5nO1xuICBwYXJ0aWNpcGFudE5hbWU6IHN0cmluZztcbiAgdXBkYXRlV2FpdGluZ0xpc3Q6ICh3YWl0aW5nTGlzdDogV2FpdGluZ1Jvb21QYXJ0aWNpcGFudFtdKSA9PiB2b2lkO1xuICB3YWl0aW5nTGlzdDogV2FpdGluZ1Jvb21QYXJ0aWNpcGFudFtdO1xuICB0eXBlOiBzdHJpbmcgfCBib29sZWFuO1xuICByb29tTmFtZTogc3RyaW5nO1xuICBzb2NrZXQ6IFNvY2tldDtcbn1cblxuLy8gRXhwb3J0IHRoZSB0eXBlIGRlZmluaXRpb24gZm9yIHRoZSBmdW5jdGlvblxuZXhwb3J0IHR5cGUgUmVzcG9uZFRvV2FpdGluZ1R5cGUgPSAob3B0aW9uczogUmVzcG9uZFRvV2FpdGluZ09wdGlvbnMpID0+IFByb21pc2U8dm9pZD47XG5cbi8qKlxuICogSGFuZGxlcyB0aGUgcmVzcG9uc2UgdG8gYSBwYXJ0aWNpcGFudCBpbiB0aGUgd2FpdGluZyByb29tLCBlaXRoZXIgYWxsb3dpbmcgb3IgZGVueWluZyB0aGVpciBlbnRyeS5cbiAqXG4gKiBAcGFyYW0ge1Jlc3BvbmRUb1dhaXRpbmdPcHRpb25zfSBvcHRpb25zIC0gT3B0aW9ucyBmb3IgaGFuZGxpbmcgdGhlIHBhcnRpY2lwYW50J3MgZW50cnkgcmVxdWVzdC5cbiAqIEBwYXJhbSB7c3RyaW5nfSBvcHRpb25zLnBhcnRpY2lwYW50SWQgLSBVbmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHBhcnRpY2lwYW50LlxuICogQHBhcmFtIHtzdHJpbmd9IG9wdGlvbnMucGFydGljaXBhbnROYW1lIC0gTmFtZSBvZiB0aGUgcGFydGljaXBhbnQuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBvcHRpb25zLnVwZGF0ZVdhaXRpbmdMaXN0IC0gRnVuY3Rpb24gdG8gdXBkYXRlIHRoZSB3YWl0aW5nIGxpc3QgYnkgcmVtb3ZpbmcgdGhlIHJlc3BvbmRlZCBwYXJ0aWNpcGFudC5cbiAqIEBwYXJhbSB7V2FpdGluZ1Jvb21QYXJ0aWNpcGFudFtdfSBvcHRpb25zLndhaXRpbmdMaXN0IC0gQ3VycmVudCBsaXN0IG9mIHBhcnRpY2lwYW50cyBpbiB0aGUgd2FpdGluZyByb29tLlxuICogQHBhcmFtIHtib29sZWFuIHwgc3RyaW5nfSBvcHRpb25zLnR5cGUgLSBJbmRpY2F0ZXMgd2hldGhlciB0byBhbGxvdyAoXCJ0cnVlXCIpIG9yIGRlbnkgKFwiZmFsc2VcIikgdGhlIHBhcnRpY2lwYW50J3MgZW50cnkuXG4gKiBAcGFyYW0ge3N0cmluZ30gb3B0aW9ucy5yb29tTmFtZSAtIFRoZSBuYW1lIG9mIHRoZSByb29tIHRoZSBwYXJ0aWNpcGFudCBpcyByZXF1ZXN0aW5nIHRvIGpvaW4uXG4gKiBAcGFyYW0ge1NvY2tldH0gb3B0aW9ucy5zb2NrZXQgLSBUaGUgc29ja2V0IGluc3RhbmNlIHVzZWQgdG8gZW1pdCB0aGUgcmVzcG9uc2UgZXZlbnQuXG4gKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn0gUmVzb2x2ZXMgd2hlbiB0aGUgcmVzcG9uc2UgaGFzIGJlZW4gcHJvY2Vzc2VkLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCByZXNwb25kU2VydmljZSA9IG5ldyBSZXNwb25kVG9XYWl0aW5nKCk7XG4gKiByZXNwb25kU2VydmljZS5yZXNwb25kVG9XYWl0aW5nKHtcbiAqICAgcGFydGljaXBhbnRJZDogJzEyMzQ1JyxcbiAqICAgcGFydGljaXBhbnROYW1lOiAnSm9obiBEb2UnLFxuICogICB1cGRhdGVXYWl0aW5nTGlzdDogKG5ld0xpc3QpID0+IGNvbnNvbGUubG9nKCdVcGRhdGVkIFdhaXRpbmcgTGlzdDonLCBuZXdMaXN0KSxcbiAqICAgd2FpdGluZ0xpc3Q6IGN1cnJlbnRXYWl0aW5nTGlzdCxcbiAqICAgdHlwZTogJ3RydWUnLFxuICogICByb29tTmFtZTogJ1Jvb20xJyxcbiAqICAgc29ja2V0OiBpbygnaHR0cDovL2xvY2FsaG9zdDozMDAwJyksXG4gKiB9KTtcbiAqIGBgYFxuICpcbiAqIEluIHRoaXMgZXhhbXBsZSwgdGhlIHBhcnRpY2lwYW50ICdKb2huIERvZScgaXMgYWxsb3dlZCB0byBqb2luICdSb29tMScsIGFuZCB0aGUgdXBkYXRlZCB3YWl0aW5nIGxpc3QgaXMgbG9nZ2VkLlxuICovXG5cblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFJlc3BvbmRUb1dhaXRpbmcge1xuICAvKipcbiAgICogUmVzcG9uZHMgdG8gYSBwYXJ0aWNpcGFudCB3YWl0aW5nIHRvIGpvaW4gYSByb29tIGJ5IGVpdGhlciBhbGxvd2luZyBvciBkZW55aW5nIHRoZWlyIGVudHJ5LlxuICAgKlxuICAgKiBAcGFyYW0ge09iamVjdH0gb3B0aW9ucyAtIFRoZSBvcHRpb25zIGZvciByZXNwb25kaW5nIHRvIHRoZSB3YWl0aW5nIHBhcnRpY2lwYW50LlxuICAgKiBAcGFyYW0ge3N0cmluZ30gb3B0aW9ucy5wYXJ0aWNpcGFudElkIC0gVGhlIElEIG9mIHRoZSBwYXJ0aWNpcGFudC5cbiAgICogQHBhcmFtIHtzdHJpbmd9IG9wdGlvbnMucGFydGljaXBhbnROYW1lIC0gVGhlIG5hbWUgb2YgdGhlIHBhcnRpY2lwYW50LlxuICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBvcHRpb25zLnVwZGF0ZVdhaXRpbmdMaXN0IC0gVGhlIGZ1bmN0aW9uIHRvIHVwZGF0ZSB0aGUgd2FpdGluZyBsaXN0LlxuICAgKiBAcGFyYW0ge0FycmF5fSBvcHRpb25zLndhaXRpbmdMaXN0IC0gVGhlIGN1cnJlbnQgd2FpdGluZyBsaXN0IG9mIHBhcnRpY2lwYW50cy5cbiAgICogQHBhcmFtIHtib29sZWFuIHwgc3RyaW5nfSBvcHRpb25zLnR5cGUgLSBUaGUgdHlwZSBvZiByZXNwb25zZSwgZWl0aGVyIFwidHJ1ZVwiIG9yIFwiZmFsc2VcIi5cbiAgICogQHBhcmFtIHtzdHJpbmd9IG9wdGlvbnMucm9vbU5hbWUgLSBUaGUgbmFtZSBvZiB0aGUgcm9vbS5cbiAgICogQHBhcmFtIHtPYmplY3R9IG9wdGlvbnMuc29ja2V0IC0gVGhlIHNvY2tldCBpbnN0YW5jZSB0byBlbWl0IGV2ZW50cy5cbiAgICogQHJldHVybnMge1Byb21pc2U8dm9pZD59IC0gQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgcmVzcG9uc2UgaGFzIGJlZW4gcHJvY2Vzc2VkLlxuICAgKi9cbiAgYXN5bmMgcmVzcG9uZFRvV2FpdGluZyh7XG4gICAgcGFydGljaXBhbnRJZCxcbiAgICBwYXJ0aWNpcGFudE5hbWUsXG4gICAgdXBkYXRlV2FpdGluZ0xpc3QsXG4gICAgd2FpdGluZ0xpc3QsXG4gICAgdHlwZSxcbiAgICByb29tTmFtZSxcbiAgICBzb2NrZXQsXG4gIH06IFJlc3BvbmRUb1dhaXRpbmdPcHRpb25zKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgLy8gRmlsdGVyIG91dCB0aGUgcGFydGljaXBhbnQgZnJvbSB0aGUgd2FpdGluZyBsaXN0XG4gICAgY29uc3QgbmV3V2FpdGluZ0xpc3QgPSB3YWl0aW5nTGlzdC5maWx0ZXIoKGl0ZW0pID0+IGl0ZW0ubmFtZSAhPT0gcGFydGljaXBhbnROYW1lKTtcblxuICAgIC8vIFVwZGF0ZSB0aGUgd2FpdGluZyBsaXN0XG4gICAgdXBkYXRlV2FpdGluZ0xpc3QobmV3V2FpdGluZ0xpc3QpO1xuXG4gICAgY29uc3QgcmVzcG9uc2VUeXBlID0gdHlwZSA9PT0gJ3RydWUnIHx8IHR5cGUgPT09IHRydWUgPyAndHJ1ZScgOiAnZmFsc2UnO1xuXG4gICAgLy8gRW1pdCBhbiBldmVudCB0byBhbGxvdyBvciBkZW55IHRoZSBwYXJ0aWNpcGFudCBiYXNlZCBvbiB0aGUgcmVzcG9uc2UgdHlwZVxuICAgIGF3YWl0IHNvY2tldC5lbWl0KCdhbGxvd1VzZXJJbicsIHtcbiAgICAgIHBhcnRpY2lwYW50SWQsXG4gICAgICBwYXJ0aWNpcGFudE5hbWUsXG4gICAgICB0eXBlOiByZXNwb25zZVR5cGUsXG4gICAgICByb29tTmFtZSxcbiAgICB9KTtcbiAgfVxufVxuIl19
@@ -1,98 +0,0 @@
1
- /* eslint-disable @typescript-eslint/no-non-null-assertion */
2
- // canvas.service.ts
3
- import { Injectable } from '@angular/core';
4
- import * as i0 from "@angular/core";
5
- /**
6
- * Manages capturing and streaming from a canvas element.
7
- *
8
- * @param {CaptureCanvasStreamOptions} options - Options to control canvas streaming.
9
- * @param {CaptureCanvasStreamParameters} options.parameters - Object containing media settings and state management functions.
10
- * @param {boolean} [options.start=true] - If `true`, initiates canvas capture; if `false`, stops the capture.
11
- * @returns {Promise<void>} A promise that resolves once the canvas stream has started or stopped.
12
- *
13
- * The function first checks the availability of `canvasWhiteboard` to capture the canvas stream. If unavailable, it attempts multiple times until a timeout. If successful:
14
- * - It starts the canvas capture, creating or reconnecting the transport for streaming.
15
- * - If stopping, it disconnects the transport and halts the stream.
16
- *
17
- * @example
18
- * ```typescript
19
- * const captureService = new CaptureCanvasStream();
20
- * captureService.captureCanvasStream({
21
- * parameters: {
22
- * canvasWhiteboard: document.getElementById('myCanvas') as HTMLCanvasElement,
23
- * updateCanvasStream: (stream) => console.log('Canvas Stream:', stream),
24
- * screenProducer: null,
25
- * transportCreated: false,
26
- * // other required parameters...
27
- * },
28
- * start: true
29
- * });
30
- * ```
31
- *
32
- * This example initiates a capture of `myCanvas`, updating the canvas stream upon successful connection.
33
- */
34
- export class CaptureCanvasStream {
35
- /**
36
- * Capture the canvas stream.
37
- * @param {Object} parameters - The parameters object.
38
- * @param {boolean} [start=true] - Indicates whether to start capturing the stream.
39
- * @returns {Promise<void>} - A promise that resolves when the canvas stream is captured.
40
- */
41
- captureCanvasStream = async ({ parameters, start = true, }) => {
42
- try {
43
- parameters = parameters.getUpdatedAllParams();
44
- let { canvasWhiteboard, canvasStream, updateCanvasStream, screenProducer, transportCreated, updateScreenProducer, sleep, createSendTransport, connectSendTransportScreen, disconnectSendTransportScreen, } = parameters;
45
- if (start && !canvasStream) {
46
- // Wait for canvasWhiteboard to be available
47
- let attempts = 0;
48
- const maxAttempts = 20; // 2 seconds / 100ms intervals
49
- while (!canvasWhiteboard && attempts < maxAttempts) {
50
- await new Promise((resolve) => setTimeout(resolve, 100));
51
- parameters = parameters.getUpdatedAllParams();
52
- canvasWhiteboard = parameters.canvasWhiteboard;
53
- attempts++;
54
- }
55
- if (!canvasWhiteboard) {
56
- throw new Error('Canvas whiteboard not available.');
57
- }
58
- const stream = canvasWhiteboard.captureStream(30);
59
- canvasStream = stream;
60
- updateCanvasStream(stream);
61
- if (!transportCreated) {
62
- await createSendTransport({ option: 'screen', parameters });
63
- }
64
- else {
65
- try {
66
- screenProducer.close();
67
- updateScreenProducer(null);
68
- await sleep({ ms: 500 });
69
- }
70
- catch {
71
- /* handle error */
72
- }
73
- await connectSendTransportScreen({ stream, parameters });
74
- }
75
- }
76
- else {
77
- if (!start && canvasStream) {
78
- canvasStream.getTracks().forEach((track) => track.stop());
79
- canvasStream = null;
80
- updateCanvasStream(null);
81
- disconnectSendTransportScreen({ parameters });
82
- }
83
- }
84
- }
85
- catch (error) {
86
- console.log('Error in captureCanvasStream:', error);
87
- }
88
- };
89
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: CaptureCanvasStream, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
90
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: CaptureCanvasStream, providedIn: 'root' });
91
- }
92
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: CaptureCanvasStream, decorators: [{
93
- type: Injectable,
94
- args: [{
95
- providedIn: 'root',
96
- }]
97
- }] });
98
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FwdHVyZS1jYW52YXMtc3RyZWFtLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tZWRpYXNmdS1hbmd1bGFyL3NyYy9saWIvbWV0aG9kcy93aGl0ZWJvYXJkLW1ldGhvZHMvY2FwdHVyZS1jYW52YXMtc3RyZWFtLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsNkRBQTZEO0FBQzdELG9CQUFvQjtBQUNwQixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQXdDM0M7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E0Qkc7QUFNSCxNQUFNLE9BQU8sbUJBQW1CO0lBQzlCOzs7OztPQUtHO0lBQ0gsbUJBQW1CLEdBQUcsS0FBSyxFQUFFLEVBQzNCLFVBQVUsRUFDVixLQUFLLEdBQUcsSUFBSSxHQUNlLEVBQWlCLEVBQUU7UUFDOUMsSUFBSSxDQUFDO1lBQ0gsVUFBVSxHQUFHLFVBQVUsQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1lBRTlDLElBQUksRUFDRixnQkFBZ0IsRUFDaEIsWUFBWSxFQUNaLGtCQUFrQixFQUNsQixjQUFjLEVBQ2QsZ0JBQWdCLEVBQ2hCLG9CQUFvQixFQUNwQixLQUFLLEVBQ0wsbUJBQW1CLEVBQ25CLDBCQUEwQixFQUMxQiw2QkFBNkIsR0FDOUIsR0FBRyxVQUFVLENBQUM7WUFFZixJQUFJLEtBQUssSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO2dCQUMzQiw0Q0FBNEM7Z0JBQzVDLElBQUksUUFBUSxHQUFHLENBQUMsQ0FBQztnQkFDakIsTUFBTSxXQUFXLEdBQUcsRUFBRSxDQUFDLENBQUMsOEJBQThCO2dCQUN0RCxPQUFPLENBQUMsZ0JBQWdCLElBQUksUUFBUSxHQUFHLFdBQVcsRUFBRSxDQUFDO29CQUNuRCxNQUFNLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUM7b0JBQ3pELFVBQVUsR0FBRyxVQUFVLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztvQkFDOUMsZ0JBQWdCLEdBQUcsVUFBVSxDQUFDLGdCQUFnQixDQUFDO29CQUMvQyxRQUFRLEVBQUUsQ0FBQztnQkFDYixDQUFDO2dCQUVELElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO29CQUN0QixNQUFNLElBQUksS0FBSyxDQUFDLGtDQUFrQyxDQUFDLENBQUM7Z0JBQ3RELENBQUM7Z0JBQ0QsTUFBTSxNQUFNLEdBQUcsZ0JBQWlCLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUNuRCxZQUFZLEdBQUcsTUFBTSxDQUFDO2dCQUN0QixrQkFBa0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFFM0IsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7b0JBQ3RCLE1BQU0sbUJBQW1CLENBQUMsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUM7Z0JBQzlELENBQUM7cUJBQU0sQ0FBQztvQkFDTixJQUFJLENBQUM7d0JBQ0gsY0FBZSxDQUFDLEtBQUssRUFBRSxDQUFDO3dCQUN4QixvQkFBb0IsQ0FBQyxJQUFJLENBQUMsQ0FBQzt3QkFDM0IsTUFBTSxLQUFLLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQztvQkFDM0IsQ0FBQztvQkFBQyxNQUFNLENBQUM7d0JBQ1Asa0JBQWtCO29CQUNwQixDQUFDO29CQUVELE1BQU0sMEJBQTBCLENBQUMsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQztnQkFDM0QsQ0FBQztZQUNILENBQUM7aUJBQU0sQ0FBQztnQkFDTixJQUFJLENBQUMsS0FBSyxJQUFJLFlBQVksRUFBRSxDQUFDO29CQUMzQixZQUFZLENBQUMsU0FBUyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBdUIsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7b0JBQzVFLFlBQVksR0FBRyxJQUFJLENBQUM7b0JBQ3BCLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDO29CQUN6Qiw2QkFBNkIsQ0FBQyxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUM7Z0JBQ2hELENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQztRQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7WUFDZixPQUFPLENBQUMsR0FBRyxDQUFDLCtCQUErQixFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3RELENBQUM7SUFDSCxDQUFDLENBQUM7dUdBckVTLG1CQUFtQjsyR0FBbkIsbUJBQW1CLGNBRmxCLE1BQU07OzJGQUVQLG1CQUFtQjtrQkFIL0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tbm9uLW51bGwtYXNzZXJ0aW9uICovXG4vLyBjYW52YXMuc2VydmljZS50c1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUHJvZHVjZXIgfSBmcm9tICdtZWRpYXNvdXAtY2xpZW50L2xpYi90eXBlcyc7XG5pbXBvcnQge1xuICBDb25uZWN0U2VuZFRyYW5zcG9ydFNjcmVlblR5cGUsXG4gIENyZWF0ZVNlbmRUcmFuc3BvcnRUeXBlLFxuICBEaXNjb25uZWN0U2VuZFRyYW5zcG9ydFNjcmVlblR5cGUsXG4gIFNsZWVwVHlwZSxcbiAgQ3JlYXRlU2VuZFRyYW5zcG9ydFBhcmFtZXRlcnMsXG4gIERpc2Nvbm5lY3RTZW5kVHJhbnNwb3J0U2NyZWVuUGFyYW1ldGVycyxcbiAgQ29ubmVjdFNlbmRUcmFuc3BvcnRTY3JlZW5QYXJhbWV0ZXJzLFxufSBmcm9tICcuLi8uLi9AdHlwZXMvdHlwZXMnO1xuZXhwb3J0IGludGVyZmFjZSBDYXB0dXJlQ2FudmFzU3RyZWFtUGFyYW1ldGVyc1xuICBleHRlbmRzIENyZWF0ZVNlbmRUcmFuc3BvcnRQYXJhbWV0ZXJzLFxuICAgIERpc2Nvbm5lY3RTZW5kVHJhbnNwb3J0U2NyZWVuUGFyYW1ldGVycyxcbiAgICBDb25uZWN0U2VuZFRyYW5zcG9ydFNjcmVlblBhcmFtZXRlcnMge1xuICBjYW52YXNXaGl0ZWJvYXJkOiBIVE1MQ2FudmFzRWxlbWVudCB8IG51bGw7XG4gIGNhbnZhc1N0cmVhbTogTWVkaWFTdHJlYW0gfCBudWxsO1xuICB1cGRhdGVDYW52YXNTdHJlYW06IChzdHJlYW06IE1lZGlhU3RyZWFtIHwgbnVsbCkgPT4gdm9pZDtcbiAgc2NyZWVuUHJvZHVjZXI6IFByb2R1Y2VyIHwgbnVsbDtcbiAgdHJhbnNwb3J0Q3JlYXRlZDogYm9vbGVhbjtcbiAgdXBkYXRlU2NyZWVuUHJvZHVjZXI6IChwcm9kdWNlcjogUHJvZHVjZXIgfCBudWxsKSA9PiB2b2lkO1xuXG4gIC8vIG1lZGlhc2Z1IGZ1bmN0aW9uc1xuICBzbGVlcDogU2xlZXBUeXBlO1xuICBjcmVhdGVTZW5kVHJhbnNwb3J0OiBDcmVhdGVTZW5kVHJhbnNwb3J0VHlwZTtcbiAgY29ubmVjdFNlbmRUcmFuc3BvcnRTY3JlZW46IENvbm5lY3RTZW5kVHJhbnNwb3J0U2NyZWVuVHlwZTtcbiAgZGlzY29ubmVjdFNlbmRUcmFuc3BvcnRTY3JlZW46IERpc2Nvbm5lY3RTZW5kVHJhbnNwb3J0U2NyZWVuVHlwZTtcblxuICBnZXRVcGRhdGVkQWxsUGFyYW1zOiAoKSA9PiBDYXB0dXJlQ2FudmFzU3RyZWFtUGFyYW1ldGVycztcbiAgW2tleTogc3RyaW5nXTogYW55O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENhcHR1cmVDYW52YXNTdHJlYW1PcHRpb25zIHtcbiAgcGFyYW1ldGVyczogQ2FwdHVyZUNhbnZhc1N0cmVhbVBhcmFtZXRlcnM7XG4gIHN0YXJ0PzogYm9vbGVhbjtcbn1cblxuLy8gRXhwb3J0IHRoZSB0eXBlIGRlZmluaXRpb24gZm9yIHRoZSBmdW5jdGlvblxuZXhwb3J0IHR5cGUgQ2FwdHVyZUNhbnZhc1N0cmVhbVR5cGUgPSAob3B0aW9uczogQ2FwdHVyZUNhbnZhc1N0cmVhbU9wdGlvbnMpID0+IFByb21pc2U8dm9pZD47XG5cbi8qKlxuICogTWFuYWdlcyBjYXB0dXJpbmcgYW5kIHN0cmVhbWluZyBmcm9tIGEgY2FudmFzIGVsZW1lbnQuXG4gKlxuICogQHBhcmFtIHtDYXB0dXJlQ2FudmFzU3RyZWFtT3B0aW9uc30gb3B0aW9ucyAtIE9wdGlvbnMgdG8gY29udHJvbCBjYW52YXMgc3RyZWFtaW5nLlxuICogQHBhcmFtIHtDYXB0dXJlQ2FudmFzU3RyZWFtUGFyYW1ldGVyc30gb3B0aW9ucy5wYXJhbWV0ZXJzIC0gT2JqZWN0IGNvbnRhaW5pbmcgbWVkaWEgc2V0dGluZ3MgYW5kIHN0YXRlIG1hbmFnZW1lbnQgZnVuY3Rpb25zLlxuICogQHBhcmFtIHtib29sZWFufSBbb3B0aW9ucy5zdGFydD10cnVlXSAtIElmIGB0cnVlYCwgaW5pdGlhdGVzIGNhbnZhcyBjYXB0dXJlOyBpZiBgZmFsc2VgLCBzdG9wcyB0aGUgY2FwdHVyZS5cbiAqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fSBBIHByb21pc2UgdGhhdCByZXNvbHZlcyBvbmNlIHRoZSBjYW52YXMgc3RyZWFtIGhhcyBzdGFydGVkIG9yIHN0b3BwZWQuXG4gKlxuICogVGhlIGZ1bmN0aW9uIGZpcnN0IGNoZWNrcyB0aGUgYXZhaWxhYmlsaXR5IG9mIGBjYW52YXNXaGl0ZWJvYXJkYCB0byBjYXB0dXJlIHRoZSBjYW52YXMgc3RyZWFtLiBJZiB1bmF2YWlsYWJsZSwgaXQgYXR0ZW1wdHMgbXVsdGlwbGUgdGltZXMgdW50aWwgYSB0aW1lb3V0LiBJZiBzdWNjZXNzZnVsOlxuICogLSBJdCBzdGFydHMgdGhlIGNhbnZhcyBjYXB0dXJlLCBjcmVhdGluZyBvciByZWNvbm5lY3RpbmcgdGhlIHRyYW5zcG9ydCBmb3Igc3RyZWFtaW5nLlxuICogLSBJZiBzdG9wcGluZywgaXQgZGlzY29ubmVjdHMgdGhlIHRyYW5zcG9ydCBhbmQgaGFsdHMgdGhlIHN0cmVhbS5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgY2FwdHVyZVNlcnZpY2UgPSBuZXcgQ2FwdHVyZUNhbnZhc1N0cmVhbSgpO1xuICogY2FwdHVyZVNlcnZpY2UuY2FwdHVyZUNhbnZhc1N0cmVhbSh7XG4gKiAgIHBhcmFtZXRlcnM6IHtcbiAqICAgICBjYW52YXNXaGl0ZWJvYXJkOiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbXlDYW52YXMnKSBhcyBIVE1MQ2FudmFzRWxlbWVudCxcbiAqICAgICB1cGRhdGVDYW52YXNTdHJlYW06IChzdHJlYW0pID0+IGNvbnNvbGUubG9nKCdDYW52YXMgU3RyZWFtOicsIHN0cmVhbSksXG4gKiAgICAgc2NyZWVuUHJvZHVjZXI6IG51bGwsXG4gKiAgICAgdHJhbnNwb3J0Q3JlYXRlZDogZmFsc2UsXG4gKiAgICAgLy8gb3RoZXIgcmVxdWlyZWQgcGFyYW1ldGVycy4uLlxuICogICB9LFxuICogICBzdGFydDogdHJ1ZVxuICogfSk7XG4gKiBgYGBcbiAqXG4gKiBUaGlzIGV4YW1wbGUgaW5pdGlhdGVzIGEgY2FwdHVyZSBvZiBgbXlDYW52YXNgLCB1cGRhdGluZyB0aGUgY2FudmFzIHN0cmVhbSB1cG9uIHN1Y2Nlc3NmdWwgY29ubmVjdGlvbi5cbiAqL1xuXG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBDYXB0dXJlQ2FudmFzU3RyZWFtIHtcbiAgLyoqXG4gICAqIENhcHR1cmUgdGhlIGNhbnZhcyBzdHJlYW0uXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBwYXJhbWV0ZXJzIC0gVGhlIHBhcmFtZXRlcnMgb2JqZWN0LlxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtzdGFydD10cnVlXSAtIEluZGljYXRlcyB3aGV0aGVyIHRvIHN0YXJ0IGNhcHR1cmluZyB0aGUgc3RyZWFtLlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn0gLSBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBjYW52YXMgc3RyZWFtIGlzIGNhcHR1cmVkLlxuICAgKi9cbiAgY2FwdHVyZUNhbnZhc1N0cmVhbSA9IGFzeW5jICh7XG4gICAgcGFyYW1ldGVycyxcbiAgICBzdGFydCA9IHRydWUsXG4gIH06IENhcHR1cmVDYW52YXNTdHJlYW1PcHRpb25zKTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gICAgdHJ5IHtcbiAgICAgIHBhcmFtZXRlcnMgPSBwYXJhbWV0ZXJzLmdldFVwZGF0ZWRBbGxQYXJhbXMoKTtcblxuICAgICAgbGV0IHtcbiAgICAgICAgY2FudmFzV2hpdGVib2FyZCxcbiAgICAgICAgY2FudmFzU3RyZWFtLFxuICAgICAgICB1cGRhdGVDYW52YXNTdHJlYW0sXG4gICAgICAgIHNjcmVlblByb2R1Y2VyLFxuICAgICAgICB0cmFuc3BvcnRDcmVhdGVkLFxuICAgICAgICB1cGRhdGVTY3JlZW5Qcm9kdWNlcixcbiAgICAgICAgc2xlZXAsXG4gICAgICAgIGNyZWF0ZVNlbmRUcmFuc3BvcnQsXG4gICAgICAgIGNvbm5lY3RTZW5kVHJhbnNwb3J0U2NyZWVuLFxuICAgICAgICBkaXNjb25uZWN0U2VuZFRyYW5zcG9ydFNjcmVlbixcbiAgICAgIH0gPSBwYXJhbWV0ZXJzO1xuXG4gICAgICBpZiAoc3RhcnQgJiYgIWNhbnZhc1N0cmVhbSkge1xuICAgICAgICAvLyBXYWl0IGZvciBjYW52YXNXaGl0ZWJvYXJkIHRvIGJlIGF2YWlsYWJsZVxuICAgICAgICBsZXQgYXR0ZW1wdHMgPSAwO1xuICAgICAgICBjb25zdCBtYXhBdHRlbXB0cyA9IDIwOyAvLyAyIHNlY29uZHMgLyAxMDBtcyBpbnRlcnZhbHNcbiAgICAgICAgd2hpbGUgKCFjYW52YXNXaGl0ZWJvYXJkICYmIGF0dGVtcHRzIDwgbWF4QXR0ZW1wdHMpIHtcbiAgICAgICAgICBhd2FpdCBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4gc2V0VGltZW91dChyZXNvbHZlLCAxMDApKTtcbiAgICAgICAgICBwYXJhbWV0ZXJzID0gcGFyYW1ldGVycy5nZXRVcGRhdGVkQWxsUGFyYW1zKCk7XG4gICAgICAgICAgY2FudmFzV2hpdGVib2FyZCA9IHBhcmFtZXRlcnMuY2FudmFzV2hpdGVib2FyZDtcbiAgICAgICAgICBhdHRlbXB0cysrO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFjYW52YXNXaGl0ZWJvYXJkKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdDYW52YXMgd2hpdGVib2FyZCBub3QgYXZhaWxhYmxlLicpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHN0cmVhbSA9IGNhbnZhc1doaXRlYm9hcmQhLmNhcHR1cmVTdHJlYW0oMzApO1xuICAgICAgICBjYW52YXNTdHJlYW0gPSBzdHJlYW07XG4gICAgICAgIHVwZGF0ZUNhbnZhc1N0cmVhbShzdHJlYW0pO1xuXG4gICAgICAgIGlmICghdHJhbnNwb3J0Q3JlYXRlZCkge1xuICAgICAgICAgIGF3YWl0IGNyZWF0ZVNlbmRUcmFuc3BvcnQoeyBvcHRpb246ICdzY3JlZW4nLCBwYXJhbWV0ZXJzIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBzY3JlZW5Qcm9kdWNlciEuY2xvc2UoKTtcbiAgICAgICAgICAgIHVwZGF0ZVNjcmVlblByb2R1Y2VyKG51bGwpO1xuICAgICAgICAgICAgYXdhaXQgc2xlZXAoeyBtczogNTAwIH0pO1xuICAgICAgICAgIH0gY2F0Y2gge1xuICAgICAgICAgICAgLyogaGFuZGxlIGVycm9yICovXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgYXdhaXQgY29ubmVjdFNlbmRUcmFuc3BvcnRTY3JlZW4oeyBzdHJlYW0sIHBhcmFtZXRlcnMgfSk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmICghc3RhcnQgJiYgY2FudmFzU3RyZWFtKSB7XG4gICAgICAgICAgY2FudmFzU3RyZWFtLmdldFRyYWNrcygpLmZvckVhY2goKHRyYWNrOiBNZWRpYVN0cmVhbVRyYWNrKSA9PiB0cmFjay5zdG9wKCkpO1xuICAgICAgICAgIGNhbnZhc1N0cmVhbSA9IG51bGw7XG4gICAgICAgICAgdXBkYXRlQ2FudmFzU3RyZWFtKG51bGwpO1xuICAgICAgICAgIGRpc2Nvbm5lY3RTZW5kVHJhbnNwb3J0U2NyZWVuKHsgcGFyYW1ldGVycyB9KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmxvZygnRXJyb3IgaW4gY2FwdHVyZUNhbnZhc1N0cmVhbTonLCBlcnJvcik7XG4gICAgfVxuICB9O1xufVxuIl19