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,127 +0,0 @@
1
- import { Component, Input } from '@angular/core';
2
- import { CommonModule } from '@angular/common';
3
- import { FontAwesomeModule } from '@fortawesome/angular-fontawesome';
4
- import { faTimes } from '@fortawesome/free-solid-svg-icons';
5
- import { MeetingIdComponent } from '../../menu-components/meeting-id-component/meeting-id-component.component';
6
- import { MeetingPasscodeComponent } from '../../menu-components/meeting-passcode-component/meeting-passcode-component.component';
7
- import { ShareButtonsComponent } from '../../menu-components/share-buttons-component/share-buttons-component.component';
8
- import * as i0 from "@angular/core";
9
- import * as i1 from "@angular/common";
10
- import * as i2 from "@fortawesome/angular-fontawesome";
11
- /**
12
- * Component for displaying a modal to share event details.
13
- *
14
- * @component
15
- * @selector app-share-event-modal
16
- * @templateUrl ./share-event-modal.component.html
17
- * @styleUrls ./share-event-modal.component.css
18
- *
19
- * @imports CommonModule, FontAwesomeModule, MeetingIdComponent, MeetingPasscodeComponent, ShareButtonsComponent
20
- *
21
- * @property {string} backgroundColor - Background color of the modal content.
22
- * @property {boolean} isShareEventModalVisible - Visibility state of the share event modal.
23
- * @property {Function} onShareEventClose - Callback function to handle modal close event.
24
- * @property {string} roomName - Name of the room to be shared.
25
- * @property {string} adminPasscode - Admin passcode for the room.
26
- * @property {string} islevel - Level of the event (e.g., admin, user).
27
- * @property {string} position - Position of the modal on the screen (e.g., topRight, bottomLeft).
28
- * @property {boolean} shareButtons - Flag to display share buttons in the modal.
29
- * @property {EventType} eventType - Type of event (e.g., chat, broadcast, webinar).
30
- *
31
- * @method handleClose - Closes the share event modal by invoking the onShareEventClose callback.
32
- *
33
- * @getter modalContainerStyle - Returns the style object for the modal container.
34
- * @getter modalContentStyle - Returns the style object for the modal content.
35
- * @example
36
- * ```html
37
- * <app-share-event-modal
38
- * [backgroundColor]="'rgba(255, 255, 255, 0.25)'"
39
- * [isShareEventModalVisible]="isModalVisible"
40
- * [onShareEventClose]="handleModalClose"
41
- * [roomName]="roomName"
42
- * [adminPasscode]="adminPasscode"
43
- * [islevel]="userLevel"
44
- * [position]="'topRight'"
45
- * [shareButtons]="true"
46
- * [eventType]="eventType"
47
- * ></app-share-event-modal>
48
- * ```
49
- */
50
- export class ShareEventModal {
51
- backgroundColor = 'rgba(255, 255, 255, 0.25)';
52
- isShareEventModalVisible = false;
53
- onShareEventClose;
54
- roomName;
55
- adminPasscode;
56
- islevel;
57
- position = 'topRight';
58
- shareButtons = true;
59
- eventType;
60
- faTimes = faTimes;
61
- handleClose() {
62
- this.onShareEventClose();
63
- }
64
- get modalContainerStyle() {
65
- return {
66
- position: 'fixed',
67
- top: 0,
68
- left: 0,
69
- width: '100%',
70
- height: '100%',
71
- backgroundColor: 'rgba(0, 0, 0, 0.5)',
72
- display: this.isShareEventModalVisible ? 'block' : 'none',
73
- zIndex: 999,
74
- };
75
- }
76
- get modalContentStyle() {
77
- const screenWidth = window.innerWidth;
78
- let modalWidth = 0.8 * screenWidth;
79
- if (modalWidth > 350) {
80
- modalWidth = 350;
81
- }
82
- return {
83
- position: 'fixed',
84
- backgroundColor: this.backgroundColor,
85
- borderRadius: '10px',
86
- padding: '10px',
87
- width: `${modalWidth}px`,
88
- maxHeight: '60%',
89
- overflowY: 'auto',
90
- top: this.position.includes('top') ? '10px' : 'auto',
91
- bottom: this.position.includes('bottom') ? '10px' : 'auto',
92
- left: this.position.includes('Left') ? '10px' : 'auto',
93
- right: this.position.includes('Right') ? '10px' : 'auto',
94
- };
95
- }
96
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ShareEventModal, deps: [], target: i0.ɵɵFactoryTarget.Component });
97
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: ShareEventModal, isStandalone: true, selector: "app-share-event-modal", inputs: { backgroundColor: "backgroundColor", isShareEventModalVisible: "isShareEventModalVisible", onShareEventClose: "onShareEventClose", roomName: "roomName", adminPasscode: "adminPasscode", islevel: "islevel", position: "position", shareButtons: "shareButtons", eventType: "eventType" }, ngImport: i0, template: "<div [ngStyle]=\"modalContainerStyle\">\r\n <div [ngStyle]=\"modalContentStyle\">\r\n <div style=\"display: flex; flex-direction: row-reverse; margin-bottom: 15px;\">\r\n <div (click)=\"handleClose()\" style=\"padding: 5px;\">\r\n <fa-icon [icon]=\"faTimes\" size=\"xl\" style=\"font-size: 20px; color: black;\"></fa-icon>\r\n </div>\r\n </div>\r\n <hr style=\"height: 1px; background-color: black; margin: 5px 0;\" />\r\n <div style=\"flex: 1;\">\r\n <div style=\"margin-bottom: 10px;\" *ngIf=\"islevel === '2'\">\r\n <app-meeting-passcode-component [meetingPasscode]=\"adminPasscode\"></app-meeting-passcode-component>\r\n </div>\r\n <div style=\"margin-bottom: 10px;\">\r\n <app-meeting-id-component [meetingID]=\"roomName\"></app-meeting-id-component>\r\n </div>\r\n <div *ngIf=\"shareButtons\">\r\n <app-share-buttons-component [meetingID]=\"roomName\" [eventType]=\"eventType\"></app-share-buttons-component>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: FontAwesomeModule }, { kind: "component", type: i2.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "animation", "mask", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "transform", "a11yRole"] }, { kind: "component", type: MeetingIdComponent, selector: "app-meeting-id-component", inputs: ["meetingID"] }, { kind: "component", type: MeetingPasscodeComponent, selector: "app-meeting-passcode-component", inputs: ["meetingPasscode"] }, { kind: "component", type: ShareButtonsComponent, selector: "app-share-buttons-component", inputs: ["meetingID", "shareButtons", "eventType"] }] });
98
- }
99
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ShareEventModal, decorators: [{
100
- type: Component,
101
- args: [{ selector: 'app-share-event-modal', standalone: true, imports: [
102
- CommonModule,
103
- FontAwesomeModule,
104
- MeetingIdComponent,
105
- MeetingPasscodeComponent,
106
- ShareButtonsComponent,
107
- ], template: "<div [ngStyle]=\"modalContainerStyle\">\r\n <div [ngStyle]=\"modalContentStyle\">\r\n <div style=\"display: flex; flex-direction: row-reverse; margin-bottom: 15px;\">\r\n <div (click)=\"handleClose()\" style=\"padding: 5px;\">\r\n <fa-icon [icon]=\"faTimes\" size=\"xl\" style=\"font-size: 20px; color: black;\"></fa-icon>\r\n </div>\r\n </div>\r\n <hr style=\"height: 1px; background-color: black; margin: 5px 0;\" />\r\n <div style=\"flex: 1;\">\r\n <div style=\"margin-bottom: 10px;\" *ngIf=\"islevel === '2'\">\r\n <app-meeting-passcode-component [meetingPasscode]=\"adminPasscode\"></app-meeting-passcode-component>\r\n </div>\r\n <div style=\"margin-bottom: 10px;\">\r\n <app-meeting-id-component [meetingID]=\"roomName\"></app-meeting-id-component>\r\n </div>\r\n <div *ngIf=\"shareButtons\">\r\n <app-share-buttons-component [meetingID]=\"roomName\" [eventType]=\"eventType\"></app-share-buttons-component>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n" }]
108
- }], propDecorators: { backgroundColor: [{
109
- type: Input
110
- }], isShareEventModalVisible: [{
111
- type: Input
112
- }], onShareEventClose: [{
113
- type: Input
114
- }], roomName: [{
115
- type: Input
116
- }], adminPasscode: [{
117
- type: Input
118
- }], islevel: [{
119
- type: Input
120
- }], position: [{
121
- type: Input
122
- }], shareButtons: [{
123
- type: Input
124
- }], eventType: [{
125
- type: Input
126
- }] } });
127
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhcmUtZXZlbnQtbW9kYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWVkaWFzZnUtYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvbWlzYy1jb21wb25lbnRzL3NoYXJlLWV2ZW50LW1vZGFsL3NoYXJlLWV2ZW50LW1vZGFsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21lZGlhc2Z1LWFuZ3VsYXIvc3JjL2xpYi9jb21wb25lbnRzL21pc2MtY29tcG9uZW50cy9zaGFyZS1ldmVudC1tb2RhbC9zaGFyZS1ldmVudC1tb2RhbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDckUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQzVELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDJFQUEyRSxDQUFDO0FBQy9HLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHVGQUF1RixDQUFDO0FBQ2pJLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGlGQUFpRixDQUFDOzs7O0FBaUJ4SDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FzQ0c7QUFjSCxNQUFNLE9BQU8sZUFBZTtJQUNqQixlQUFlLEdBQUcsMkJBQTJCLENBQUM7SUFDOUMsd0JBQXdCLEdBQUcsS0FBSyxDQUFDO0lBQ2pDLGlCQUFpQixDQUFjO0lBQy9CLFFBQVEsQ0FBVTtJQUNsQixhQUFhLENBQVU7SUFDdkIsT0FBTyxDQUFVO0lBQ2pCLFFBQVEsR0FBRyxVQUFVLENBQUM7SUFDdEIsWUFBWSxHQUFHLElBQUksQ0FBQztJQUNwQixTQUFTLENBQWE7SUFFL0IsT0FBTyxHQUFHLE9BQU8sQ0FBQztJQUVsQixXQUFXO1FBQ1QsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVELElBQUksbUJBQW1CO1FBQ3JCLE9BQU87WUFDTCxRQUFRLEVBQUUsT0FBTztZQUNqQixHQUFHLEVBQUUsQ0FBQztZQUNOLElBQUksRUFBRSxDQUFDO1lBQ1AsS0FBSyxFQUFFLE1BQU07WUFDYixNQUFNLEVBQUUsTUFBTTtZQUNkLGVBQWUsRUFBRSxvQkFBb0I7WUFDckMsT0FBTyxFQUFFLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxNQUFNO1lBQ3pELE1BQU0sRUFBRSxHQUFHO1NBQ1osQ0FBQztJQUNKLENBQUM7SUFFRCxJQUFJLGlCQUFpQjtRQUNuQixNQUFNLFdBQVcsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDO1FBQ3RDLElBQUksVUFBVSxHQUFHLEdBQUcsR0FBRyxXQUFXLENBQUM7UUFDbkMsSUFBSSxVQUFVLEdBQUcsR0FBRyxFQUFFLENBQUM7WUFDckIsVUFBVSxHQUFHLEdBQUcsQ0FBQztRQUNuQixDQUFDO1FBRUQsT0FBTztZQUNMLFFBQVEsRUFBRSxPQUFPO1lBQ2pCLGVBQWUsRUFBRSxJQUFJLENBQUMsZUFBZTtZQUNyQyxZQUFZLEVBQUUsTUFBTTtZQUNwQixPQUFPLEVBQUUsTUFBTTtZQUNmLEtBQUssRUFBRSxHQUFHLFVBQVUsSUFBSTtZQUN4QixTQUFTLEVBQUUsS0FBSztZQUNoQixTQUFTLEVBQUUsTUFBTTtZQUNqQixHQUFHLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTTtZQUNwRCxNQUFNLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTTtZQUMxRCxJQUFJLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTTtZQUN0RCxLQUFLLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTTtTQUN6RCxDQUFDO0lBQ0osQ0FBQzt1R0FsRFUsZUFBZTsyRkFBZixlQUFlLHFYQzNFNUIsd2hDQXFCQSx5REQrQ0ksWUFBWSx1TkFDWixpQkFBaUIsNlBBQ2pCLGtCQUFrQiw0RkFDbEIsd0JBQXdCLHdHQUN4QixxQkFBcUI7OzJGQUdaLGVBQWU7a0JBYjNCLFNBQVM7K0JBQ0UsdUJBQXVCLGNBR3JCLElBQUksV0FDUDt3QkFDUCxZQUFZO3dCQUNaLGlCQUFpQjt3QkFDakIsa0JBQWtCO3dCQUNsQix3QkFBd0I7d0JBQ3hCLHFCQUFxQjtxQkFDdEI7OEJBR1EsZUFBZTtzQkFBdkIsS0FBSztnQkFDRyx3QkFBd0I7c0JBQWhDLEtBQUs7Z0JBQ0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRm9udEF3ZXNvbWVNb2R1bGUgfSBmcm9tICdAZm9ydGF3ZXNvbWUvYW5ndWxhci1mb250YXdlc29tZSc7XG5pbXBvcnQgeyBmYVRpbWVzIH0gZnJvbSAnQGZvcnRhd2Vzb21lL2ZyZWUtc29saWQtc3ZnLWljb25zJztcbmltcG9ydCB7IE1lZXRpbmdJZENvbXBvbmVudCB9IGZyb20gJy4uLy4uL21lbnUtY29tcG9uZW50cy9tZWV0aW5nLWlkLWNvbXBvbmVudC9tZWV0aW5nLWlkLWNvbXBvbmVudC5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWVldGluZ1Bhc3Njb2RlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbWVudS1jb21wb25lbnRzL21lZXRpbmctcGFzc2NvZGUtY29tcG9uZW50L21lZXRpbmctcGFzc2NvZGUtY29tcG9uZW50LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTaGFyZUJ1dHRvbnNDb21wb25lbnQgfSBmcm9tICcuLi8uLi9tZW51LWNvbXBvbmVudHMvc2hhcmUtYnV0dG9ucy1jb21wb25lbnQvc2hhcmUtYnV0dG9ucy1jb21wb25lbnQuY29tcG9uZW50JztcbmltcG9ydCB7IEV2ZW50VHlwZSB9IGZyb20gJy4uLy4uLy4uL0B0eXBlcy90eXBlcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2hhcmVFdmVudE1vZGFsT3B0aW9ucyB7XG4gIGJhY2tncm91bmRDb2xvcj86IHN0cmluZztcbiAgaXNTaGFyZUV2ZW50TW9kYWxWaXNpYmxlOiBib29sZWFuO1xuICBvblNoYXJlRXZlbnRDbG9zZTogKCkgPT4gdm9pZDtcbiAgc2hhcmVCdXR0b25zPzogYm9vbGVhbjtcbiAgcG9zaXRpb24/OiBzdHJpbmc7XG4gIHJvb21OYW1lOiBzdHJpbmc7XG4gIGFkbWluUGFzc2NvZGU/OiBzdHJpbmc7XG4gIGlzbGV2ZWw/OiBzdHJpbmc7XG4gIGV2ZW50VHlwZTogRXZlbnRUeXBlO1xufVxuXG5leHBvcnQgdHlwZSBTaGFyZUV2ZW50TW9kYWxUeXBlID0gKG9wdGlvbnM6IFNoYXJlRXZlbnRNb2RhbE9wdGlvbnMpID0+IHZvaWQ7XG5cbi8qKlxuICogQ29tcG9uZW50IGZvciBkaXNwbGF5aW5nIGEgbW9kYWwgdG8gc2hhcmUgZXZlbnQgZGV0YWlscy5cbiAqXG4gKiBAY29tcG9uZW50XG4gKiBAc2VsZWN0b3IgYXBwLXNoYXJlLWV2ZW50LW1vZGFsXG4gKiBAdGVtcGxhdGVVcmwgLi9zaGFyZS1ldmVudC1tb2RhbC5jb21wb25lbnQuaHRtbFxuICogQHN0eWxlVXJscyAuL3NoYXJlLWV2ZW50LW1vZGFsLmNvbXBvbmVudC5jc3NcbiAqXG4gKiBAaW1wb3J0cyBDb21tb25Nb2R1bGUsIEZvbnRBd2Vzb21lTW9kdWxlLCBNZWV0aW5nSWRDb21wb25lbnQsIE1lZXRpbmdQYXNzY29kZUNvbXBvbmVudCwgU2hhcmVCdXR0b25zQ29tcG9uZW50XG4gKlxuICogQHByb3BlcnR5IHtzdHJpbmd9IGJhY2tncm91bmRDb2xvciAtIEJhY2tncm91bmQgY29sb3Igb2YgdGhlIG1vZGFsIGNvbnRlbnQuXG4gKiBAcHJvcGVydHkge2Jvb2xlYW59IGlzU2hhcmVFdmVudE1vZGFsVmlzaWJsZSAtIFZpc2liaWxpdHkgc3RhdGUgb2YgdGhlIHNoYXJlIGV2ZW50IG1vZGFsLlxuICogQHByb3BlcnR5IHtGdW5jdGlvbn0gb25TaGFyZUV2ZW50Q2xvc2UgLSBDYWxsYmFjayBmdW5jdGlvbiB0byBoYW5kbGUgbW9kYWwgY2xvc2UgZXZlbnQuXG4gKiBAcHJvcGVydHkge3N0cmluZ30gcm9vbU5hbWUgLSBOYW1lIG9mIHRoZSByb29tIHRvIGJlIHNoYXJlZC5cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBhZG1pblBhc3Njb2RlIC0gQWRtaW4gcGFzc2NvZGUgZm9yIHRoZSByb29tLlxuICogQHByb3BlcnR5IHtzdHJpbmd9IGlzbGV2ZWwgLSBMZXZlbCBvZiB0aGUgZXZlbnQgKGUuZy4sIGFkbWluLCB1c2VyKS5cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBwb3NpdGlvbiAtIFBvc2l0aW9uIG9mIHRoZSBtb2RhbCBvbiB0aGUgc2NyZWVuIChlLmcuLCB0b3BSaWdodCwgYm90dG9tTGVmdCkuXG4gKiBAcHJvcGVydHkge2Jvb2xlYW59IHNoYXJlQnV0dG9ucyAtIEZsYWcgdG8gZGlzcGxheSBzaGFyZSBidXR0b25zIGluIHRoZSBtb2RhbC5cbiAqIEBwcm9wZXJ0eSB7RXZlbnRUeXBlfSBldmVudFR5cGUgLSBUeXBlIG9mIGV2ZW50IChlLmcuLCBjaGF0LCBicm9hZGNhc3QsIHdlYmluYXIpLlxuICpcbiAqIEBtZXRob2QgaGFuZGxlQ2xvc2UgLSBDbG9zZXMgdGhlIHNoYXJlIGV2ZW50IG1vZGFsIGJ5IGludm9raW5nIHRoZSBvblNoYXJlRXZlbnRDbG9zZSBjYWxsYmFjay5cbiAqXG4gKiBAZ2V0dGVyIG1vZGFsQ29udGFpbmVyU3R5bGUgLSBSZXR1cm5zIHRoZSBzdHlsZSBvYmplY3QgZm9yIHRoZSBtb2RhbCBjb250YWluZXIuXG4gKiBAZ2V0dGVyIG1vZGFsQ29udGVudFN0eWxlIC0gUmV0dXJucyB0aGUgc3R5bGUgb2JqZWN0IGZvciB0aGUgbW9kYWwgY29udGVudC5cbiAqIEBleGFtcGxlXG4gKiBgYGBodG1sXG4gKiA8YXBwLXNoYXJlLWV2ZW50LW1vZGFsXG4gKiAgIFtiYWNrZ3JvdW5kQ29sb3JdPVwiJ3JnYmEoMjU1LCAyNTUsIDI1NSwgMC4yNSknXCJcbiAqICAgW2lzU2hhcmVFdmVudE1vZGFsVmlzaWJsZV09XCJpc01vZGFsVmlzaWJsZVwiXG4gKiAgIFtvblNoYXJlRXZlbnRDbG9zZV09XCJoYW5kbGVNb2RhbENsb3NlXCJcbiAqICAgW3Jvb21OYW1lXT1cInJvb21OYW1lXCJcbiAqICAgW2FkbWluUGFzc2NvZGVdPVwiYWRtaW5QYXNzY29kZVwiXG4gKiAgIFtpc2xldmVsXT1cInVzZXJMZXZlbFwiXG4gKiAgIFtwb3NpdGlvbl09XCIndG9wUmlnaHQnXCJcbiAqICAgW3NoYXJlQnV0dG9uc109XCJ0cnVlXCJcbiAqICAgW2V2ZW50VHlwZV09XCJldmVudFR5cGVcIlxuICogPjwvYXBwLXNoYXJlLWV2ZW50LW1vZGFsPlxuICogYGBgXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1zaGFyZS1ldmVudC1tb2RhbCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9zaGFyZS1ldmVudC1tb2RhbC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3NoYXJlLWV2ZW50LW1vZGFsLmNvbXBvbmVudC5jc3MnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBGb250QXdlc29tZU1vZHVsZSxcbiAgICBNZWV0aW5nSWRDb21wb25lbnQsXG4gICAgTWVldGluZ1Bhc3Njb2RlQ29tcG9uZW50LFxuICAgIFNoYXJlQnV0dG9uc0NvbXBvbmVudCxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgU2hhcmVFdmVudE1vZGFsIHtcbiAgQElucHV0KCkgYmFja2dyb3VuZENvbG9yID0gJ3JnYmEoMjU1LCAyNTUsIDI1NSwgMC4yNSknO1xuICBASW5wdXQoKSBpc1NoYXJlRXZlbnRNb2RhbFZpc2libGUgPSBmYWxzZTtcbiAgQElucHV0KCkgb25TaGFyZUV2ZW50Q2xvc2UhOiAoKSA9PiB2b2lkO1xuICBASW5wdXQoKSByb29tTmFtZSE6IHN0cmluZztcbiAgQElucHV0KCkgYWRtaW5QYXNzY29kZSE6IHN0cmluZztcbiAgQElucHV0KCkgaXNsZXZlbCE6IHN0cmluZztcbiAgQElucHV0KCkgcG9zaXRpb24gPSAndG9wUmlnaHQnO1xuICBASW5wdXQoKSBzaGFyZUJ1dHRvbnMgPSB0cnVlO1xuICBASW5wdXQoKSBldmVudFR5cGUhOiBFdmVudFR5cGU7XG5cbiAgZmFUaW1lcyA9IGZhVGltZXM7XG5cbiAgaGFuZGxlQ2xvc2UoKSB7XG4gICAgdGhpcy5vblNoYXJlRXZlbnRDbG9zZSgpO1xuICB9XG5cbiAgZ2V0IG1vZGFsQ29udGFpbmVyU3R5bGUoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHBvc2l0aW9uOiAnZml4ZWQnLFxuICAgICAgdG9wOiAwLFxuICAgICAgbGVmdDogMCxcbiAgICAgIHdpZHRoOiAnMTAwJScsXG4gICAgICBoZWlnaHQ6ICcxMDAlJyxcbiAgICAgIGJhY2tncm91bmRDb2xvcjogJ3JnYmEoMCwgMCwgMCwgMC41KScsXG4gICAgICBkaXNwbGF5OiB0aGlzLmlzU2hhcmVFdmVudE1vZGFsVmlzaWJsZSA/ICdibG9jaycgOiAnbm9uZScsXG4gICAgICB6SW5kZXg6IDk5OSxcbiAgICB9O1xuICB9XG5cbiAgZ2V0IG1vZGFsQ29udGVudFN0eWxlKCkge1xuICAgIGNvbnN0IHNjcmVlbldpZHRoID0gd2luZG93LmlubmVyV2lkdGg7XG4gICAgbGV0IG1vZGFsV2lkdGggPSAwLjggKiBzY3JlZW5XaWR0aDtcbiAgICBpZiAobW9kYWxXaWR0aCA+IDM1MCkge1xuICAgICAgbW9kYWxXaWR0aCA9IDM1MDtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgcG9zaXRpb246ICdmaXhlZCcsXG4gICAgICBiYWNrZ3JvdW5kQ29sb3I6IHRoaXMuYmFja2dyb3VuZENvbG9yLFxuICAgICAgYm9yZGVyUmFkaXVzOiAnMTBweCcsXG4gICAgICBwYWRkaW5nOiAnMTBweCcsXG4gICAgICB3aWR0aDogYCR7bW9kYWxXaWR0aH1weGAsXG4gICAgICBtYXhIZWlnaHQ6ICc2MCUnLFxuICAgICAgb3ZlcmZsb3dZOiAnYXV0bycsXG4gICAgICB0b3A6IHRoaXMucG9zaXRpb24uaW5jbHVkZXMoJ3RvcCcpID8gJzEwcHgnIDogJ2F1dG8nLFxuICAgICAgYm90dG9tOiB0aGlzLnBvc2l0aW9uLmluY2x1ZGVzKCdib3R0b20nKSA/ICcxMHB4JyA6ICdhdXRvJyxcbiAgICAgIGxlZnQ6IHRoaXMucG9zaXRpb24uaW5jbHVkZXMoJ0xlZnQnKSA/ICcxMHB4JyA6ICdhdXRvJyxcbiAgICAgIHJpZ2h0OiB0aGlzLnBvc2l0aW9uLmluY2x1ZGVzKCdSaWdodCcpID8gJzEwcHgnIDogJ2F1dG8nLFxuICAgIH07XG4gIH1cbn1cbiIsIjxkaXYgW25nU3R5bGVdPVwibW9kYWxDb250YWluZXJTdHlsZVwiPlxyXG4gIDxkaXYgW25nU3R5bGVdPVwibW9kYWxDb250ZW50U3R5bGVcIj5cclxuICAgIDxkaXYgc3R5bGU9XCJkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7IG1hcmdpbi1ib3R0b206IDE1cHg7XCI+XHJcbiAgICAgIDxkaXYgKGNsaWNrKT1cImhhbmRsZUNsb3NlKClcIiBzdHlsZT1cInBhZGRpbmc6IDVweDtcIj5cclxuICAgICAgICA8ZmEtaWNvbiBbaWNvbl09XCJmYVRpbWVzXCIgc2l6ZT1cInhsXCIgc3R5bGU9XCJmb250LXNpemU6IDIwcHg7IGNvbG9yOiBibGFjaztcIj48L2ZhLWljb24+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8aHIgc3R5bGU9XCJoZWlnaHQ6IDFweDsgYmFja2dyb3VuZC1jb2xvcjogYmxhY2s7IG1hcmdpbjogNXB4IDA7XCIgLz5cclxuICAgIDxkaXYgc3R5bGU9XCJmbGV4OiAxO1wiPlxyXG4gICAgICA8ZGl2IHN0eWxlPVwibWFyZ2luLWJvdHRvbTogMTBweDtcIiAqbmdJZj1cImlzbGV2ZWwgPT09ICcyJ1wiPlxyXG4gICAgICAgIDxhcHAtbWVldGluZy1wYXNzY29kZS1jb21wb25lbnQgW21lZXRpbmdQYXNzY29kZV09XCJhZG1pblBhc3Njb2RlXCI+PC9hcHAtbWVldGluZy1wYXNzY29kZS1jb21wb25lbnQ+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IHN0eWxlPVwibWFyZ2luLWJvdHRvbTogMTBweDtcIj5cclxuICAgICAgICA8YXBwLW1lZXRpbmctaWQtY29tcG9uZW50IFttZWV0aW5nSURdPVwicm9vbU5hbWVcIj48L2FwcC1tZWV0aW5nLWlkLWNvbXBvbmVudD5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgKm5nSWY9XCJzaGFyZUJ1dHRvbnNcIj5cclxuICAgICAgICA8YXBwLXNoYXJlLWJ1dHRvbnMtY29tcG9uZW50IFttZWV0aW5nSURdPVwicm9vbU5hbWVcIiBbZXZlbnRUeXBlXT1cImV2ZW50VHlwZVwiPjwvYXBwLXNoYXJlLWJ1dHRvbnMtY29tcG9uZW50PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
@@ -1,241 +0,0 @@
1
- import { Component, Inject, Optional } from '@angular/core';
2
- import { CommonModule } from '@angular/common';
3
- import { FontAwesomeModule } from '@fortawesome/angular-fontawesome';
4
- import { faQrcode } from '@fortawesome/free-solid-svg-icons';
5
- import { Validators, ReactiveFormsModule } from '@angular/forms';
6
- import { CookieService } from 'ngx-cookie-service';
7
- import { ZXingScannerModule } from '@zxing/ngx-scanner'; // Import the zxing-ngx-scanner module
8
- import { Socket } from 'socket.io-client';
9
- import * as i0 from "@angular/core";
10
- import * as i1 from "@angular/forms";
11
- import * as i2 from "ngx-cookie-service";
12
- import * as i3 from "@zxing/ngx-scanner";
13
- import * as i4 from "@angular/common";
14
- import * as i5 from "@fortawesome/angular-fontawesome";
15
- const MAX_ATTEMPTS = 10; // Maximum number of unsuccessful attempts before rate limiting
16
- const RATE_LIMIT_DURATION = 3 * 60 * 60 * 1000; // 3 hours in milliseconds
17
- /**
18
- * @component WelcomePage
19
- * @description Component for handling room creation and joining on MediaSFU with QR scanning and form submission.
20
- *
21
- * @selector app-welcome-page
22
- * @standalone true
23
- * @templateUrl ./welcome-page.component.html
24
- * @styleUrls ['./welcome-page.component.css']
25
- * @imports [ZXingScannerModule, CommonModule, FontAwesomeModule, ReactiveFormsModule]
26
- *
27
- * @example
28
- * ```html
29
- * <app-welcome-page [parameters]="welcomeParameters"></app-welcome-page>
30
- * ```
31
- */
32
- export class WelcomePage {
33
- fb;
34
- cookieService;
35
- welcomeForm;
36
- error = '';
37
- isScannerVisible = false;
38
- scannedData = null;
39
- parameters = {};
40
- faQrcode = faQrcode;
41
- allowedCameras = []; // List of allowed cameras
42
- currentDevice = null; // Active camera device
43
- imgSrc = '';
44
- constructor(fb, cookieService, injectedParameters) {
45
- this.fb = fb;
46
- this.cookieService = cookieService;
47
- this.welcomeForm = this.fb.group({
48
- name: [
49
- '',
50
- [Validators.required, Validators.pattern('^[a-zA-Z0-9]+$'), Validators.maxLength(12)],
51
- ],
52
- secret: [
53
- '',
54
- [Validators.required, Validators.pattern('^[a-zA-Z0-9]+$'), Validators.maxLength(64)],
55
- ],
56
- eventID: [
57
- '',
58
- [Validators.required, Validators.pattern('^[a-zA-Z0-9]+$'), Validators.maxLength(32)],
59
- ],
60
- link: ['', [Validators.required, Validators.pattern('^https?://.+mediasfu\\.com.+$')]],
61
- });
62
- this.parameters = injectedParameters || this.parameters;
63
- }
64
- ngOnInit() {
65
- this.askForCameraPermission();
66
- }
67
- async checkLimitsAndMakeRequest(apiUserName, apiToken, link, userName) {
68
- const TIMEOUT_DURATION = 10000; // 10 seconds
69
- let unsuccessfulAttempts = parseInt(this.cookieService.get('unsuccessfulAttempts')) || 0;
70
- let lastRequestTimestamp = parseInt(this.cookieService.get('lastRequestTimestamp')) || 0;
71
- if (unsuccessfulAttempts >= MAX_ATTEMPTS) {
72
- if (Date.now() - lastRequestTimestamp < RATE_LIMIT_DURATION) {
73
- this.parameters.showAlert?.({
74
- message: 'Too many unsuccessful attempts. Please try again later.',
75
- type: 'danger',
76
- duration: 3000,
77
- });
78
- this.cookieService.set('lastRequestTimestamp', Date.now().toString());
79
- return;
80
- }
81
- else {
82
- unsuccessfulAttempts = 0;
83
- this.cookieService.set('unsuccessfulAttempts', unsuccessfulAttempts.toString());
84
- this.cookieService.set('lastRequestTimestamp', Date.now().toString());
85
- }
86
- }
87
- try {
88
- this.parameters.updateIsLoadingModalVisible(true);
89
- const socketPromise = this.parameters.connectSocket({ apiUserName, apiToken, link });
90
- const timeoutPromise = new Promise((_, reject) => setTimeout(() => reject(new Error('Request timed out')), TIMEOUT_DURATION));
91
- const socket = await Promise.race([socketPromise, timeoutPromise]);
92
- if (socket && socket instanceof Socket && socket.id) {
93
- unsuccessfulAttempts = 0;
94
- this.cookieService.set('unsuccessfulAttempts', unsuccessfulAttempts.toString());
95
- this.cookieService.set('lastRequestTimestamp', Date.now().toString());
96
- this.parameters.updateSocket(socket);
97
- this.parameters.updateApiUserName(apiUserName);
98
- this.parameters.updateApiToken(apiToken);
99
- this.parameters.updateLink(link);
100
- this.parameters.updateRoomName(apiUserName);
101
- this.parameters.updateMember(userName);
102
- this.parameters.updateValidated(true);
103
- }
104
- else {
105
- unsuccessfulAttempts += 1;
106
- this.cookieService.set('unsuccessfulAttempts', unsuccessfulAttempts.toString());
107
- this.cookieService.set('lastRequestTimestamp', Date.now().toString());
108
- this.parameters.updateIsLoadingModalVisible(false);
109
- if (unsuccessfulAttempts >= MAX_ATTEMPTS) {
110
- this.parameters.showAlert?.({
111
- message: 'Too many unsuccessful attempts. Please try again later.',
112
- type: 'danger',
113
- duration: 3000,
114
- });
115
- }
116
- else {
117
- this.parameters.showAlert?.({
118
- message: 'Invalid credentials.',
119
- type: 'danger',
120
- duration: 3000,
121
- });
122
- }
123
- }
124
- }
125
- catch (error) {
126
- this.parameters.showAlert?.({
127
- message: 'Unable to connect. Check your credentials and try again.',
128
- type: 'danger',
129
- duration: 3000,
130
- });
131
- unsuccessfulAttempts += 1;
132
- this.cookieService.set('unsuccessfulAttempts', unsuccessfulAttempts.toString());
133
- this.cookieService.set('lastRequestTimestamp', Date.now().toString());
134
- this.parameters.updateIsLoadingModalVisible(false);
135
- }
136
- }
137
- handleScanSuccess(data) {
138
- try {
139
- const scannedText = data;
140
- const parts = scannedText.split(';');
141
- if (parts.length === 5) {
142
- const [userName, link, userSecret, passWord, meetingID] = parts;
143
- if (!userName.length ||
144
- !link.length ||
145
- !userSecret.length ||
146
- !passWord.length ||
147
- !meetingID.length ||
148
- !this.validateAlphanumeric(userName) ||
149
- !this.validateAlphanumeric(userSecret) ||
150
- !this.validateAlphanumeric(passWord) ||
151
- !this.validateAlphanumeric(meetingID) ||
152
- userSecret.length !== 64 ||
153
- userName.length > 12 ||
154
- userName.length < 2 ||
155
- meetingID.length > 32 ||
156
- meetingID.length < 8 ||
157
- !link.includes('mediasfu.com') ||
158
- meetingID.toLowerCase().startsWith('d')) {
159
- this.parameters.showAlert?.({
160
- message: 'Invalid scanned data.',
161
- type: 'danger',
162
- duration: 3000,
163
- });
164
- return;
165
- }
166
- this.welcomeForm.setValue({
167
- name: userName,
168
- secret: userSecret,
169
- eventID: meetingID,
170
- link: link,
171
- });
172
- this.isScannerVisible = false;
173
- this.scannedData = null;
174
- this.checkLimitsAndMakeRequest(meetingID, userSecret, link, userName);
175
- }
176
- else {
177
- this.parameters.showAlert?.({
178
- message: 'Invalid scanned data.',
179
- type: 'danger',
180
- duration: 3000,
181
- });
182
- }
183
- }
184
- catch (error) {
185
- this.parameters.showAlert?.({
186
- message: 'Invalid scanned data.',
187
- type: 'danger',
188
- duration: 3000,
189
- });
190
- }
191
- }
192
- validateAlphanumeric(str) {
193
- const alphanumericRegex = /^[a-zA-Z0-9]+$/;
194
- return alphanumericRegex.test(str);
195
- }
196
- // Method to list available cameras
197
- askForCameraPermission() {
198
- navigator.mediaDevices
199
- .enumerateDevices()
200
- .then((devices) => {
201
- this.allowedCameras = devices.filter((device) => device.kind === 'videoinput');
202
- if (this.allowedCameras.length > 0) {
203
- this.currentDevice = this.allowedCameras[0]; // Set the first available camera as the default
204
- }
205
- })
206
- .catch((err) => {
207
- console.error(err);
208
- this.parameters.showAlert?.({
209
- message: 'Camera access denied.',
210
- type: 'danger',
211
- duration: 3000,
212
- });
213
- });
214
- }
215
- toggleScanner() {
216
- this.isScannerVisible = !this.isScannerVisible;
217
- if (this.isScannerVisible) {
218
- this.askForCameraPermission();
219
- }
220
- }
221
- async handleConfirm() {
222
- if (this.welcomeForm.invalid) {
223
- this.error = 'Please fill all the fields correctly.';
224
- return;
225
- }
226
- const { name, secret, eventID, link } = this.welcomeForm.value;
227
- await this.checkLimitsAndMakeRequest(eventID, secret, link, name);
228
- }
229
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: WelcomePage, deps: [{ token: i1.FormBuilder }, { token: i2.CookieService }, { token: 'parameters', optional: true }], target: i0.ɵɵFactoryTarget.Component });
230
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: WelcomePage, isStandalone: true, selector: "app-welcome-page", providers: [CookieService], ngImport: i0, template: "<div class=\"container\">\r\n <div class=\"logo-container\">\r\n <img [src]=\"imgSrc || 'https://mediasfu.com/images/logo192.png'\" class=\"logo-image\" alt=\"Logo\" />\r\n </div>\r\n <form [formGroup]=\"welcomeForm\" (ngSubmit)=\"handleConfirm()\">\r\n <div class=\"input-container\">\r\n <input\r\n formControlName=\"name\"\r\n type=\"text\"\r\n placeholder=\"Event Display Name\"\r\n class=\"input-field\"\r\n />\r\n <input\r\n formControlName=\"secret\"\r\n type=\"text\"\r\n placeholder=\"Event Token (Secret)\"\r\n class=\"input-field\"\r\n />\r\n <input\r\n formControlName=\"eventID\"\r\n type=\"text\"\r\n placeholder=\"Event ID\"\r\n class=\"input-field\"\r\n />\r\n <input\r\n formControlName=\"link\"\r\n type=\"text\"\r\n placeholder=\"Event Link\"\r\n class=\"input-field\"\r\n />\r\n </div>\r\n <button type=\"submit\" class=\"confirm-button\">Confirm</button>\r\n </form>\r\n\r\n <div class=\"scanner-container\">\r\n <div class=\"or-container\">\r\n <hr class=\"horizontal-line\" />\r\n <span class=\"or-text\">OR</span>\r\n <hr class=\"horizontal-line\" />\r\n </div>\r\n <div *ngIf=\"isScannerVisible\" class=\"scanner-wrapper\">\r\n <zxing-scanner\r\n [device]=\"currentDevice!\"\r\n (scanSuccess)=\"handleScanSuccess($event)\"\r\n [tryHarder]=\"true\"\r\n ></zxing-scanner>\r\n </div>\r\n <div class=\"scan-button-container\" *ngIf=\"!isScannerVisible\">\r\n <button (click)=\"toggleScanner()\" class=\"scan-button\">\r\n <fa-icon [icon]=\"faQrcode\" style=\"margin-right: 5px\"></fa-icon>\r\n Scan QR Code\r\n </button>\r\n </div>\r\n </div>\r\n\r\n <div class=\"additional-options-container\">\r\n <p>\r\n Provide the event details either by typing manually or scanning the\r\n QR-code to autofill.\r\n </p>\r\n <p>Don't have a secret?</p>\r\n <a\r\n href=\"https://meeting.mediasfu.com/meeting/start/\"\r\n target=\"_blank\"\r\n class=\"link\"\r\n >Get one from mediasfu.com</a\r\n >\r\n </div>\r\n</div>\r\n", styles: [".container{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100vw;height:100vh;max-width:100vw;max-height:100vh;margin:0;padding:0;background-color:#53c6e0;overflow:auto}.logo-container{margin-top:30px;padding-top:10px;margin-bottom:10px}.logo-image{width:100px;height:100px;border-radius:50%}.input-container{margin-bottom:10px;display:flex;flex-direction:column;align-items:center;justify-content:center}.input-field{height:30px;border-color:gray;border-width:1px;margin-bottom:10px;padding:0 5px;border-radius:5px}.confirm-button{background-color:#000;color:#fff;padding:5px;border-radius:5px;margin-bottom:10px;width:100%}.scanner-container{margin-bottom:10px;width:100%;display:flex;flex-direction:column;align-items:center;justify-content:center}.additional-options-container{text-align:center}.link{color:#00f;text-decoration:none;font-weight:700;margin-left:5px}.scan-button{background-color:#000;color:#fff;padding:10px 20px;border-radius:5px;margin-bottom:20px}.scan-button-container{display:flex;justify-content:center;align-items:center}.or-container{display:flex;align-items:center;justify-content:center;width:100%;margin:10px 0}.horizontal-line{flex-grow:1;height:1px;background-color:gray;margin:0 10px}.or-text{color:#000;font-size:medium;font-weight:700}.scanner-wrapper{width:300px;height:300px;max-width:300px;max-height:300px;overflow:hidden;position:relative}zxing-scanner{width:100%;height:100%;object-fit:cover}\n"], dependencies: [{ kind: "ngmodule", type: ZXingScannerModule }, { kind: "component", type: i3.ZXingScannerComponent, selector: "zxing-scanner", inputs: ["autofocusEnabled", "timeBetweenScans", "delayBetweenScanSuccess", "autostart", "previewFitMode", "poster", "device", "formats", "videoConstraints", "torch", "enable", "tryHarder"], outputs: ["autostarted", "autostarting", "torchCompatible", "scanSuccess", "scanFailure", "scanError", "scanComplete", "camerasFound", "camerasNotFound", "permissionResponse", "hasDevices", "deviceChange"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FontAwesomeModule }, { kind: "component", type: i5.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "animation", "mask", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "transform", "a11yRole"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }] });
231
- }
232
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: WelcomePage, decorators: [{
233
- type: Component,
234
- args: [{ selector: 'app-welcome-page', standalone: true, imports: [ZXingScannerModule, CommonModule, FontAwesomeModule, ReactiveFormsModule], providers: [CookieService], template: "<div class=\"container\">\r\n <div class=\"logo-container\">\r\n <img [src]=\"imgSrc || 'https://mediasfu.com/images/logo192.png'\" class=\"logo-image\" alt=\"Logo\" />\r\n </div>\r\n <form [formGroup]=\"welcomeForm\" (ngSubmit)=\"handleConfirm()\">\r\n <div class=\"input-container\">\r\n <input\r\n formControlName=\"name\"\r\n type=\"text\"\r\n placeholder=\"Event Display Name\"\r\n class=\"input-field\"\r\n />\r\n <input\r\n formControlName=\"secret\"\r\n type=\"text\"\r\n placeholder=\"Event Token (Secret)\"\r\n class=\"input-field\"\r\n />\r\n <input\r\n formControlName=\"eventID\"\r\n type=\"text\"\r\n placeholder=\"Event ID\"\r\n class=\"input-field\"\r\n />\r\n <input\r\n formControlName=\"link\"\r\n type=\"text\"\r\n placeholder=\"Event Link\"\r\n class=\"input-field\"\r\n />\r\n </div>\r\n <button type=\"submit\" class=\"confirm-button\">Confirm</button>\r\n </form>\r\n\r\n <div class=\"scanner-container\">\r\n <div class=\"or-container\">\r\n <hr class=\"horizontal-line\" />\r\n <span class=\"or-text\">OR</span>\r\n <hr class=\"horizontal-line\" />\r\n </div>\r\n <div *ngIf=\"isScannerVisible\" class=\"scanner-wrapper\">\r\n <zxing-scanner\r\n [device]=\"currentDevice!\"\r\n (scanSuccess)=\"handleScanSuccess($event)\"\r\n [tryHarder]=\"true\"\r\n ></zxing-scanner>\r\n </div>\r\n <div class=\"scan-button-container\" *ngIf=\"!isScannerVisible\">\r\n <button (click)=\"toggleScanner()\" class=\"scan-button\">\r\n <fa-icon [icon]=\"faQrcode\" style=\"margin-right: 5px\"></fa-icon>\r\n Scan QR Code\r\n </button>\r\n </div>\r\n </div>\r\n\r\n <div class=\"additional-options-container\">\r\n <p>\r\n Provide the event details either by typing manually or scanning the\r\n QR-code to autofill.\r\n </p>\r\n <p>Don't have a secret?</p>\r\n <a\r\n href=\"https://meeting.mediasfu.com/meeting/start/\"\r\n target=\"_blank\"\r\n class=\"link\"\r\n >Get one from mediasfu.com</a\r\n >\r\n </div>\r\n</div>\r\n", styles: [".container{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100vw;height:100vh;max-width:100vw;max-height:100vh;margin:0;padding:0;background-color:#53c6e0;overflow:auto}.logo-container{margin-top:30px;padding-top:10px;margin-bottom:10px}.logo-image{width:100px;height:100px;border-radius:50%}.input-container{margin-bottom:10px;display:flex;flex-direction:column;align-items:center;justify-content:center}.input-field{height:30px;border-color:gray;border-width:1px;margin-bottom:10px;padding:0 5px;border-radius:5px}.confirm-button{background-color:#000;color:#fff;padding:5px;border-radius:5px;margin-bottom:10px;width:100%}.scanner-container{margin-bottom:10px;width:100%;display:flex;flex-direction:column;align-items:center;justify-content:center}.additional-options-container{text-align:center}.link{color:#00f;text-decoration:none;font-weight:700;margin-left:5px}.scan-button{background-color:#000;color:#fff;padding:10px 20px;border-radius:5px;margin-bottom:20px}.scan-button-container{display:flex;justify-content:center;align-items:center}.or-container{display:flex;align-items:center;justify-content:center;width:100%;margin:10px 0}.horizontal-line{flex-grow:1;height:1px;background-color:gray;margin:0 10px}.or-text{color:#000;font-size:medium;font-weight:700}.scanner-wrapper{width:300px;height:300px;max-width:300px;max-height:300px;overflow:hidden;position:relative}zxing-scanner{width:100%;height:100%;object-fit:cover}\n"] }]
235
- }], ctorParameters: () => [{ type: i1.FormBuilder }, { type: i2.CookieService }, { type: undefined, decorators: [{
236
- type: Optional
237
- }, {
238
- type: Inject,
239
- args: ['parameters']
240
- }] }] });
241
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2VsY29tZS1wYWdlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21lZGlhc2Z1LWFuZ3VsYXIvc3JjL2xpYi9jb21wb25lbnRzL21pc2MtY29tcG9uZW50cy93ZWxjb21lLXBhZ2Uvd2VsY29tZS1wYWdlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21lZGlhc2Z1LWFuZ3VsYXIvc3JjL2xpYi9jb21wb25lbnRzL21pc2MtY29tcG9uZW50cy93ZWxjb21lLXBhZ2Uvd2VsY29tZS1wYWdlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFVLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDckUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQzdELE9BQU8sRUFBMEIsVUFBVSxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDLENBQUMsc0NBQXNDO0FBQy9GLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7Ozs7OztBQUkxQyxNQUFNLFlBQVksR0FBRyxFQUFFLENBQUMsQ0FBQywrREFBK0Q7QUFDeEYsTUFBTSxtQkFBbUIsR0FBRyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQywwQkFBMEI7QUF3QjFFOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBV0gsTUFBTSxPQUFP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LENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELGFBQWE7UUFDWCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7UUFDL0MsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztZQUMxQixJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztRQUNoQyxDQUFDO0lBQ0gsQ0FBQztJQUVELEtBQUssQ0FBQyxhQUFhO1FBQ2pCLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUM3QixJQUFJLENBQUMsS0FBSyxHQUFHLHVDQUF1QyxDQUFDO1lBQ3JELE9BQU87UUFDVCxDQUFDO1FBRUQsTUFBTSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDO1FBRS9ELE1BQU0sSUFBSSxDQUFDLHlCQUF5QixDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ3BFLENBQUM7dUdBOU5VLFdBQVcsMEVBY0EsWUFBWTsyRkFkdkIsV0FBVywrREFGWCxDQUFDLGFBQWEsQ0FBQywwQkMzRDVCLCtyRUFxRUEsdy9DRFhZLGtCQUFrQiw4ZkFBRSxZQUFZLGtJQUFFLGlCQUFpQiw0UEFBRSxtQkFBbUI7OzJGQUd2RSxXQUFXO2tCQVJ2QixTQUFTOytCQUNFLGtCQUFrQixjQUdoQixJQUFJLFdBQ1AsQ0FBQyxrQkFBa0IsRUFBRSxZQUFZLEVBQUUsaUJBQWlCLEVBQUUsbUJBQW1CLENBQUMsYUFDeEUsQ0FBQyxhQUFhLENBQUM7OzBCQWdCdkIsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3QsIE9uSW5pdCwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBGb250QXdlc29tZU1vZHVsZSB9IGZyb20gJ0Bmb3J0YXdlc29tZS9hbmd1bGFyLWZvbnRhd2Vzb21lJztcbmltcG9ydCB7IGZhUXJjb2RlIH0gZnJvbSAnQGZvcnRhd2Vzb21lL2ZyZWUtc29saWQtc3ZnLWljb25zJztcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBDb29raWVTZXJ2aWNlIH0gZnJvbSAnbmd4LWNvb2tpZS1zZXJ2aWNlJztcbmltcG9ydCB7IFpYaW5nU2Nhbm5lck1vZHVsZSB9IGZyb20gJ0B6eGluZy9uZ3gtc2Nhbm5lcic7IC8vIEltcG9ydCB0aGUgenhpbmctbmd4LXNjYW5uZXIgbW9kdWxlXG5pbXBvcnQgeyBTb2NrZXQgfSBmcm9tICdzb2NrZXQuaW8tY2xpZW50JztcbmltcG9ydCB7IENvbm5lY3RTb2NrZXRUeXBlIH0gZnJvbSAnLi4vLi4vLi4vc29ja2V0cy9zb2NrZXQtbWFuYWdlci5zZXJ2aWNlJztcbmltcG9ydCB7IFNob3dBbGVydCB9IGZyb20gJy4uLy4uLy4uL0B0eXBlcy90eXBlcyc7XG5cbmNvbnN0IE1BWF9BVFRFTVBUUyA9IDEwOyAvLyBNYXhpbXVtIG51bWJlciBvZiB1bnN1Y2Nlc3NmdWwgYXR0ZW1wdHMgYmVmb3JlIHJhdGUgbGltaXRpbmdcbmNvbnN0IFJBVEVfTElNSVRfRFVSQVRJT04gPSAzICogNjAgKiA2MCAqIDEwMDA7IC8vIDMgaG91cnMgaW4gbWlsbGlzZWNvbmRzXG5cbmV4cG9ydCBpbnRlcmZhY2UgV2VsY29tZVBhZ2VQYXJhbWV0ZXJzIHtcbiAgaW1nU3JjPzogc3RyaW5nO1xuICBzaG93QWxlcnQ/OiBTaG93QWxlcnQ7XG4gIHVwZGF0ZUlzTG9hZGluZ01vZGFsVmlzaWJsZTogKHZpc2libGU6IGJvb2xlYW4pID0+IHZvaWQ7XG4gIGNvbm5lY3RTb2NrZXQ6IENvbm5lY3RTb2NrZXRUeXBlO1xuICB1cGRhdGVTb2NrZXQ6IChzb2NrZXQ6IFNvY2tldCkgPT4gdm9pZDtcbiAgdXBkYXRlVmFsaWRhdGVkOiAodmFsaWRhdGVkOiBib29sZWFuKSA9PiB2b2lkO1xuICB1cGRhdGVBcGlVc2VyTmFtZTogKGFwaVVzZXJOYW1lOiBzdHJpbmcpID0+IHZvaWQ7XG4gIHVwZGF0ZUFwaVRva2VuOiAoYXBpVG9rZW46IHN0cmluZykgPT4gdm9pZDtcbiAgdXBkYXRlTGluazogKGxpbms6IHN0cmluZykgPT4gdm9pZDtcbiAgdXBkYXRlUm9vbU5hbWU6IChyb29tTmFtZTogc3RyaW5nKSA9PiB2b2lkO1xuICB1cGRhdGVNZW1iZXI6ICh1c2VyTmFtZTogc3RyaW5nKSA9PiB2b2lkO1xufVxuXG4vLyBEZWZpbmUgdGhlIHByb3AgdHlwZSBmb3IgdGhlIGNvbXBvbmVudFxuZXhwb3J0IGludGVyZmFjZSBXZWxjb21lUGFnZU9wdGlvbnMge1xuICBwYXJhbWV0ZXJzOiBXZWxjb21lUGFnZVBhcmFtZXRlcnM7XG59XG5cbi8vIERlZmluZSB0aGUgdHlwZSBmb3IgdGhlIGNvbXBvbmVudCBmdW5jdGlvblxuZXhwb3J0IHR5cGUgV2VsY29tZVBhZ2VUeXBlID0gKG9wdGlvbnM6IFdlbGNvbWVQYWdlT3B0aW9ucykgPT4gSFRNTEVsZW1lbnQ7XG5cbi8qKlxuICogQGNvbXBvbmVudCBXZWxjb21lUGFnZVxuICogQGRlc2NyaXB0aW9uIENvbXBvbmVudCBmb3IgaGFuZGxpbmcgcm9vbSBjcmVhdGlvbiBhbmQgam9pbmluZyBvbiBNZWRpYVNGVSB3aXRoIFFSIHNjYW5uaW5nIGFuZCBmb3JtIHN1Ym1pc3Npb24uXG4gKlxuICogQHNlbGVjdG9yIGFwcC13ZWxjb21lLXBhZ2VcbiAqIEBzdGFuZGFsb25lIHRydWVcbiAqIEB0ZW1wbGF0ZVVybCAuL3dlbGNvbWUtcGFnZS5jb21wb25lbnQuaHRtbFxuICogQHN0eWxlVXJscyBbJy4vd2VsY29tZS1wYWdlLmNvbXBvbmVudC5jc3MnXVxuICogQGltcG9ydHMgW1pYaW5nU2Nhbm5lck1vZHVsZSwgQ29tbW9uTW9kdWxlLCBGb250QXdlc29tZU1vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZV1cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgaHRtbFxuICogPGFwcC13ZWxjb21lLXBhZ2UgW3BhcmFtZXRlcnNdPVwid2VsY29tZVBhcmFtZXRlcnNcIj48L2FwcC13ZWxjb21lLXBhZ2U+XG4gKiBgYGBcbiAqL1xuXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC13ZWxjb21lLXBhZ2UnLFxuICB0ZW1wbGF0ZVVybDogJy4vd2VsY29tZS1wYWdlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vd2VsY29tZS1wYWdlLmNvbXBvbmVudC5jc3MnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1pYaW5nU2Nhbm5lck1vZHVsZSwgQ29tbW9uTW9kdWxlLCBGb250QXdlc29tZU1vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZV0sXG4gIHByb3ZpZGVyczogW0Nvb2tpZVNlcnZpY2VdLFxufSlcbmV4cG9ydCBjbGFzcyBXZWxjb21lUGFnZSBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHdlbGNvbWVGb3JtOiBGb3JtR3JvdXA7XG4gIGVycm9yID0gJyc7XG4gIGlzU2Nhbm5lclZpc2libGUgPSBmYWxzZTtcbiAgc2Nhbm5lZERhdGE6IGFueSA9IG51bGw7XG4gIHBhcmFtZXRlcnM6IFdlbGNvbWVQYWdlUGFyYW1ldGVycyA9IHt9IGFzIFdlbGNvbWVQYWdlUGFyYW1ldGVycztcbiAgZmFRcmNvZGUgPSBmYVFyY29kZTtcbiAgYWxsb3dlZENhbWVyYXM6IE1lZGlhRGV2aWNlSW5mb1tdID0gW107IC8vIExpc3Qgb2YgYWxsb3dlZCBjYW1lcmFzXG4gIGN1cnJlbnREZXZpY2U6IE1lZGlhRGV2aWNlSW5mbyB8IG51bGwgPSBudWxsOyAvLyBBY3RpdmUgY2FtZXJhIGRldmljZVxuICBpbWdTcmMgPSAnJztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGZiOiBGb3JtQnVpbGRlcixcbiAgICBwcml2YXRlIGNvb2tpZVNlcnZpY2U6IENvb2tpZVNlcnZpY2UsXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdCgncGFyYW1ldGVycycpIGluamVjdGVkUGFyYW1ldGVyczogV2VsY29tZVBhZ2VQYXJhbWV0ZXJzLFxuICApIHtcbiAgICB0aGlzLndlbGNvbWVGb3JtID0gdGhpcy5mYi5ncm91cCh7XG4gICAgICBuYW1lOiBbXG4gICAgICAgICcnLFxuICAgICAgICBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5wYXR0ZXJuKCdeW2EtekEtWjAtOV0rJCcpLCBWYWxpZGF0b3JzLm1heExlbmd0aCgxMildLFxuICAgICAgXSxcbiAgICAgIHNlY3JldDogW1xuICAgICAgICAnJyxcbiAgICAgICAgW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMucGF0dGVybignXlthLXpBLVowLTldKyQnKSwgVmFsaWRhdG9ycy5tYXhMZW5ndGgoNjQpXSxcbiAgICAgIF0sXG4gICAgICBldmVudElEOiBbXG4gICAgICAgICcnLFxuICAgICAgICBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5wYXR0ZXJuKCdeW2EtekEtWjAtOV0rJCcpLCBWYWxpZGF0b3JzLm1heExlbmd0aCgzMildLFxuICAgICAgXSxcbiAgICAgIGxpbms6IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMucGF0dGVybignXmh0dHBzPzovLy4rbWVkaWFzZnVcXFxcLmNvbS4rJCcpXV0sXG4gICAgfSk7XG4gICAgdGhpcy5wYXJhbWV0ZXJzID0gaW5qZWN0ZWRQYXJhbWV0ZXJzIHx8IHRoaXMucGFyYW1ldGVycztcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuYXNrRm9yQ2FtZXJhUGVybWlzc2lvbigpO1xuICB9XG5cbiAgYXN5bmMgY2hlY2tMaW1pdHNBbmRNYWtlUmVxdWVzdChcbiAgICBhcGlVc2VyTmFtZTogc3RyaW5nLFxuICAgIGFwaVRva2VuOiBzdHJpbmcsXG4gICAgbGluazogc3RyaW5nLFxuICAgIHVzZXJOYW1lOiBzdHJpbmcsXG4gICkge1xuICAgIGNvbnN0IFRJTUVPVVRfRFVSQVRJT04gPSAxMDAwMDsgLy8gMTAgc2Vjb25kc1xuXG4gICAgbGV0IHVuc3VjY2Vzc2Z1bEF0dGVtcHRzID0gcGFyc2VJbnQodGhpcy5jb29raWVTZXJ2aWNlLmdldCgndW5zdWNjZXNzZnVsQXR0ZW1wdHMnKSkgfHwgMDtcbiAgICBsZXQgbGFzdFJlcXVlc3RUaW1lc3RhbXAgPSBwYXJzZUludCh0aGlzLmNvb2tpZVNlcnZpY2UuZ2V0KCdsYXN0UmVxdWVzdFRpbWVzdGFtcCcpKSB8fCAwO1xuXG4gICAgaWYgKHVuc3VjY2Vzc2Z1bEF0dGVtcHRzID49IE1BWF9BVFRFTVBUUykge1xuICAgICAgaWYgKERhdGUubm93KCkgLSBsYXN0UmVxdWVzdFRpbWVzdGFtcCA8IFJBVEVfTElNSVRfRFVSQVRJT04pIHtcbiAgICAgICAgdGhpcy5wYXJhbWV0ZXJzLnNob3dBbGVydD8uKHtcbiAgICAgICAgICBtZXNzYWdlOiAnVG9vIG1hbnkgdW5zdWNjZXNzZnVsIGF0dGVtcHRzLiBQbGVhc2UgdHJ5IGFnYWluIGxhdGVyLicsXG4gICAgICAgICAgdHlwZTogJ2RhbmdlcicsXG4gICAgICAgICAgZHVyYXRpb246IDMwMDAsXG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmNvb2tpZVNlcnZpY2Uuc2V0KCdsYXN0UmVxdWVzdFRpbWVzdGFtcCcsIERhdGUubm93KCkudG9TdHJpbmcoKSk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHVuc3VjY2Vzc2Z1bEF0dGVtcHRzID0gMDtcbiAgICAgICAgdGhpcy5jb29raWVTZXJ2aWNlLnNldCgndW5zdWNjZXNzZnVsQXR0ZW1wdHMnLCB1bnN1Y2Nlc3NmdWxBdHRlbXB0cy50b1N0cmluZygpKTtcbiAgICAgICAgdGhpcy5jb29raWVTZXJ2aWNlLnNldCgnbGFzdFJlcXVlc3RUaW1lc3RhbXAnLCBEYXRlLm5vdygpLnRvU3RyaW5nKCkpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICB0aGlzLnBhcmFtZXRlcnMudXBkYXRlSXNMb2FkaW5nTW9kYWxWaXNpYmxlKHRydWUpO1xuXG4gICAgICBjb25zdCBzb2NrZXRQcm9taXNlID0gdGhpcy5wYXJhbWV0ZXJzLmNvbm5lY3RTb2NrZXQoeyBhcGlVc2VyTmFtZSwgYXBpVG9rZW4sIGxpbmsgfSk7XG4gICAgICBjb25zdCB0aW1lb3V0UHJvbWlzZSA9IG5ldyBQcm9taXNlKChfLCByZWplY3QpID0+XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4gcmVqZWN0KG5ldyBFcnJvcignUmVxdWVzdCB0aW1lZCBvdXQnKSksIFRJTUVPVVRfRFVSQVRJT04pLFxuICAgICAgKTtcblxuICAgICAgY29uc3Qgc29ja2V0ID0gYXdhaXQgUHJvbWlzZS5yYWNlKFtzb2NrZXRQcm9taXNlLCB0aW1lb3V0UHJvbWlzZV0pO1xuXG4gICAgICBpZiAoc29ja2V0ICYmIHNvY2tldCBpbnN0YW5jZW9mIFNvY2tldCAmJiBzb2NrZXQuaWQpIHtcbiAgICAgICAgdW5zdWNjZXNzZnVsQXR0ZW1wdHMgPSAwO1xuICAgICAgICB0aGlzLmNvb2tpZVNlcnZpY2Uuc2V0KCd1bnN1Y2Nlc3NmdWxBdHRlbXB0cycsIHVuc3VjY2Vzc2Z1bEF0dGVtcHRzLnRvU3RyaW5nKCkpO1xuICAgICAgICB0aGlzLmNvb2tpZVNlcnZpY2Uuc2V0KCdsYXN0UmVxdWVzdFRpbWVzdGFtcCcsIERhdGUubm93KCkudG9TdHJpbmcoKSk7XG4gICAgICAgIHRoaXMucGFyYW1ldGVycy51cGRhdGVTb2NrZXQoc29ja2V0KTtcbiAgICAgICAgdGhpcy5wYXJhbWV0ZXJzLnVwZGF0ZUFwaVVzZXJOYW1lKGFwaVVzZXJOYW1lKTtcbiAgICAgICAgdGhpcy5wYXJhbWV0ZXJzLnVwZGF0ZUFwaVRva2VuKGFwaVRva2VuKTtcbiAgICAgICAgdGhpcy5wYXJhbWV0ZXJzLnVwZGF0ZUxpbmsobGluayk7XG4gICAgICAgIHRoaXMucGFyYW1ldGVycy51cGRhdGVSb29tTmFtZShhcGlVc2VyTmFtZSk7XG4gICAgICAgIHRoaXMucGFyYW1ldGVycy51cGRhdGVNZW1iZXIodXNlck5hbWUpO1xuICAgICAgICB0aGlzLnBhcmFtZXRlcnMudXBkYXRlVmFsaWRhdGVkKHRydWUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdW5zdWNjZXNzZnVsQXR0ZW1wdHMgKz0gMTtcbiAgICAgICAgdGhpcy5jb29raWVTZXJ2aWNlLnNldCgndW5zdWNjZXNzZnVsQXR0ZW1wdHMnLCB1bnN1Y2Nlc3NmdWxBdHRlbXB0cy50b1N0cmluZygpKTtcbiAgICAgICAgdGhpcy5jb29raWVTZXJ2aWNlLnNldCgnbGFzdFJlcXVlc3RUaW1lc3RhbXAnLCBEYXRlLm5vdygpLnRvU3RyaW5nKCkpO1xuICAgICAgICB0aGlzLnBhcmFtZXRlcnMudXBkYXRlSXNMb2FkaW5nTW9kYWxWaXNpYmxlKGZhbHNlKTtcblxuICAgICAgICBpZiAodW5zdWNjZXNzZnVsQXR0ZW1wdHMgPj0gTUFYX0FUVEVNUFRTKSB7XG4gICAgICAgICAgdGhpcy5wYXJhbWV0ZXJzLnNob3dBbGVydD8uKHtcbiAgICAgICAgICAgIG1lc3NhZ2U6ICdUb28gbWFueSB1bnN1Y2Nlc3NmdWwgYXR0ZW1wdHMuIFBsZWFzZSB0cnkgYWdhaW4gbGF0ZXIuJyxcbiAgICAgICAgICAgIHR5cGU6ICdkYW5nZXInLFxuICAgICAgICAgICAgZHVyYXRpb246IDMwMDAsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5wYXJhbWV0ZXJzLnNob3dBbGVydD8uKHtcbiAgICAgICAgICAgIG1lc3NhZ2U6ICdJbnZhbGlkIGNyZWRlbnRpYWxzLicsXG4gICAgICAgICAgICB0eXBlOiAnZGFuZ2VyJyxcbiAgICAgICAgICAgIGR1cmF0aW9uOiAzMDAwLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHRoaXMucGFyYW1ldGVycy5zaG93QWxlcnQ/Lih7XG4gICAgICAgIG1lc3NhZ2U6ICdVbmFibGUgdG8gY29ubmVjdC4gQ2hlY2sgeW91ciBjcmVkZW50aWFscyBhbmQgdHJ5IGFnYWluLicsXG4gICAgICAgIHR5cGU6ICdkYW5nZXInLFxuICAgICAgICBkdXJhdGlvbjogMzAwMCxcbiAgICAgIH0pO1xuXG4gICAgICB1bnN1Y2Nlc3NmdWxBdHRlbXB0cyArPSAxO1xuICAgICAgdGhpcy5jb29raWVTZXJ2aWNlLnNldCgndW5zdWNjZXNzZnVsQXR0ZW1wdHMnLCB1bnN1Y2Nlc3NmdWxBdHRlbXB0cy50b1N0cmluZygpKTtcbiAgICAgIHRoaXMuY29va2llU2VydmljZS5zZXQoJ2xhc3RSZXF1ZXN0VGltZXN0YW1wJywgRGF0ZS5ub3coKS50b1N0cmluZygpKTtcbiAgICAgIHRoaXMucGFyYW1ldGVycy51cGRhdGVJc0xvYWRpbmdNb2RhbFZpc2libGUoZmFsc2UpO1xuICAgIH1cbiAgfVxuXG4gIGhhbmRsZVNjYW5TdWNjZXNzKGRhdGE6IGFueSkge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBzY2FubmVkVGV4dCA9IGRhdGE7XG4gICAgICBjb25zdCBwYXJ0cyA9IHNjYW5uZWRUZXh0LnNwbGl0KCc7Jyk7XG5cbiAgICAgIGlmIChwYXJ0cy5sZW5ndGggPT09IDUpIHtcbiAgICAgICAgY29uc3QgW3VzZXJOYW1lLCBsaW5rLCB1c2VyU2VjcmV0LCBwYXNzV29yZCwgbWVldGluZ0lEXSA9IHBhcnRzO1xuXG4gICAgICAgIGlmIChcbiAgICAgICAgICAhdXNlck5hbWUubGVuZ3RoIHx8XG4gICAgICAgICAgIWxpbmsubGVuZ3RoIHx8XG4gICAgICAgICAgIXVzZXJTZWNyZXQubGVuZ3RoIHx8XG4gICAgICAgICAgIXBhc3NXb3JkLmxlbmd0aCB8fFxuICAgICAgICAgICFtZWV0aW5nSUQubGVuZ3RoIHx8XG4gICAgICAgICAgIXRoaXMudmFsaWRhdGVBbHBoYW51bWVyaWModXNlck5hbWUpIHx8XG4gICAgICAgICAgIXRoaXMudmFsaWRhdGVBbHBoYW51bWVyaWModXNlclNlY3JldCkgfHxcbiAgICAgICAgICAhdGhpcy52YWxpZGF0ZUFscGhhbnVtZXJpYyhwYXNzV29yZCkgfHxcbiAgICAgICAgICAhdGhpcy52YWxpZGF0ZUFscGhhbnVtZXJpYyhtZWV0aW5nSUQpIHx8XG4gICAgICAgICAgdXNlclNlY3JldC5sZW5ndGggIT09IDY0IHx8XG4gICAgICAgICAgdXNlck5hbWUubGVuZ3RoID4gMTIgfHxcbiAgICAgICAgICB1c2VyTmFtZS5sZW5ndGggPCAyIHx8XG4gICAgICAgICAgbWVldGluZ0lELmxlbmd0aCA+IDMyIHx8XG4gICAgICAgICAgbWVldGluZ0lELmxlbmd0aCA8IDggfHxcbiAgICAgICAgICAhbGluay5pbmNsdWRlcygnbWVkaWFzZnUuY29tJykgfHxcbiAgICAgICAgICBtZWV0aW5nSUQudG9Mb3dlckNhc2UoKS5zdGFydHNXaXRoKCdkJylcbiAgICAgICAgKSB7XG4gICAgICAgICAgdGhpcy5wYXJhbWV0ZXJzLnNob3dBbGVydD8uKHtcbiAgICAgICAgICAgIG1lc3NhZ2U6ICdJbnZhbGlkIHNjYW5uZWQgZGF0YS4nLFxuICAgICAgICAgICAgdHlwZTogJ2RhbmdlcicsXG4gICAgICAgICAgICBkdXJhdGlvbjogMzAwMCxcbiAgICAgICAgICB9KTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLndlbGNvbWVGb3JtLnNldFZhbHVlKHtcbiAgICAgICAgICBuYW1lOiB1c2VyTmFtZSxcbiAgICAgICAgICBzZWNyZXQ6IHVzZXJTZWNyZXQsXG4gICAgICAgICAgZXZlbnRJRDogbWVldGluZ0lELFxuICAgICAgICAgIGxpbms6IGxpbmssXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuaXNTY2FubmVyVmlzaWJsZSA9IGZhbHNlO1xuICAgICAgICB0aGlzLnNjYW5uZWREYXRhID0gbnVsbDtcblxuICAgICAgICB0aGlzLmNoZWNrTGltaXRzQW5kTWFrZVJlcXVlc3QobWVldGluZ0lELCB1c2VyU2VjcmV0LCBsaW5rLCB1c2VyTmFtZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnBhcmFtZXRlcnMuc2hvd0FsZXJ0Py4oe1xuICAgICAgICAgIG1lc3NhZ2U6ICdJbnZhbGlkIHNjYW5uZWQgZGF0YS4nLFxuICAgICAgICAgIHR5cGU6ICdkYW5nZXInLFxuICAgICAgICAgIGR1cmF0aW9uOiAzMDAwLFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgdGhpcy5wYXJhbWV0ZXJzLnNob3dBbGVydD8uKHtcbiAgICAgICAgbWVzc2FnZTogJ0ludmFsaWQgc2Nhbm5lZCBkYXRhLicsXG4gICAgICAgIHR5cGU6ICdkYW5nZXInLFxuICAgICAgICBkdXJhdGlvbjogMzAwMCxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHZhbGlkYXRlQWxwaGFudW1lcmljKHN0cjogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgY29uc3QgYWxwaGFudW1lcmljUmVnZXggPSAvXlthLXpBLVowLTldKyQvO1xuICAgIHJldHVybiBhbHBoYW51bWVyaWNSZWdleC50ZXN0KHN0cik7XG4gIH1cblxuICAvLyBNZXRob2QgdG8gbGlzdCBhdmFpbGFibGUgY2FtZXJhc1xuICBhc2tGb3JDYW1lcmFQZXJtaXNzaW9uKCkge1xuICAgIG5hdmlnYXRvci5tZWRpYURldmljZXNcbiAgICAgIC5lbnVtZXJhdGVEZXZpY2VzKClcbiAgICAgIC50aGVuKChkZXZpY2VzOiBNZWRpYURldmljZUluZm9bXSkgPT4ge1xuICAgICAgICB0aGlzLmFsbG93ZWRDYW1lcmFzID0gZGV2aWNlcy5maWx0ZXIoKGRldmljZSkgPT4gZGV2aWNlLmtpbmQgPT09ICd2aWRlb2lucHV0Jyk7XG4gICAgICAgIGlmICh0aGlzLmFsbG93ZWRDYW1lcmFzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICB0aGlzLmN1cnJlbnREZXZpY2UgPSB0aGlzLmFsbG93ZWRDYW1lcmFzWzBdOyAvLyBTZXQgdGhlIGZpcnN0IGF2YWlsYWJsZSBjYW1lcmEgYXMgdGhlIGRlZmF1bHRcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICAgIC5jYXRjaCgoZXJyKSA9PiB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyKTtcbiAgICAgICAgdGhpcy5wYXJhbWV0ZXJzLnNob3dBbGVydD8uKHtcbiAgICAgICAgICBtZXNzYWdlOiAnQ2FtZXJhIGFjY2VzcyBkZW5pZWQuJyxcbiAgICAgICAgICB0eXBlOiAnZGFuZ2VyJyxcbiAgICAgICAgICBkdXJhdGlvbjogMzAwMCxcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHRvZ2dsZVNjYW5uZXIoKSB7XG4gICAgdGhpcy5pc1NjYW5uZXJWaXNpYmxlID0gIXRoaXMuaXNTY2FubmVyVmlzaWJsZTtcbiAgICBpZiAodGhpcy5pc1NjYW5uZXJWaXNpYmxlKSB7XG4gICAgICB0aGlzLmFza0ZvckNhbWVyYVBlcm1pc3Npb24oKTtcbiAgICB9XG4gIH1cblxuICBhc3luYyBoYW5kbGVDb25maXJtKCkge1xuICAgIGlmICh0aGlzLndlbGNvbWVGb3JtLmludmFsaWQpIHtcbiAgICAgIHRoaXMuZXJyb3IgPSAnUGxlYXNlIGZpbGwgYWxsIHRoZSBmaWVsZHMgY29ycmVjdGx5Lic7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgeyBuYW1lLCBzZWNyZXQsIGV2ZW50SUQsIGxpbmsgfSA9IHRoaXMud2VsY29tZUZvcm0udmFsdWU7XG5cbiAgICBhd2FpdCB0aGlzLmNoZWNrTGltaXRzQW5kTWFrZVJlcXVlc3QoZXZlbnRJRCwgc2VjcmV0LCBsaW5rLCBuYW1lKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImNvbnRhaW5lclwiPlxyXG4gIDxkaXYgY2xhc3M9XCJsb2dvLWNvbnRhaW5lclwiPlxyXG4gICAgPGltZyBbc3JjXT1cImltZ1NyYyB8fCAnaHR0cHM6Ly9tZWRpYXNmdS5jb20vaW1hZ2VzL2xvZ28xOTIucG5nJ1wiIGNsYXNzPVwibG9nby1pbWFnZVwiIGFsdD1cIkxvZ29cIiAvPlxyXG4gIDwvZGl2PlxyXG4gIDxmb3JtIFtmb3JtR3JvdXBdPVwid2VsY29tZUZvcm1cIiAobmdTdWJtaXQpPVwiaGFuZGxlQ29uZmlybSgpXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtY29udGFpbmVyXCI+XHJcbiAgICAgIDxpbnB1dFxyXG4gICAgICAgIGZvcm1Db250cm9sTmFtZT1cIm5hbWVcIlxyXG4gICAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICBwbGFjZWhvbGRlcj1cIkV2ZW50IERpc3BsYXkgTmFtZVwiXHJcbiAgICAgICAgY2xhc3M9XCJpbnB1dC1maWVsZFwiXHJcbiAgICAgIC8+XHJcbiAgICAgIDxpbnB1dFxyXG4gICAgICAgIGZvcm1Db250cm9sTmFtZT1cInNlY3JldFwiXHJcbiAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgIHBsYWNlaG9sZGVyPVwiRXZlbnQgVG9rZW4gKFNlY3JldClcIlxyXG4gICAgICAgIGNsYXNzPVwiaW5wdXQtZmllbGRcIlxyXG4gICAgICAvPlxyXG4gICAgICA8aW5wdXRcclxuICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJldmVudElEXCJcclxuICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgcGxhY2Vob2xkZXI9XCJFdmVudCBJRFwiXHJcbiAgICAgICAgY2xhc3M9XCJpbnB1dC1maWVsZFwiXHJcbiAgICAgIC8+XHJcbiAgICAgIDxpbnB1dFxyXG4gICAgICAgIGZvcm1Db250cm9sTmFtZT1cImxpbmtcIlxyXG4gICAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICBwbGFjZWhvbGRlcj1cIkV2ZW50IExpbmtcIlxyXG4gICAgICAgIGNsYXNzPVwiaW5wdXQtZmllbGRcIlxyXG4gICAgICAvPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8YnV0dG9uIHR5cGU9XCJzdWJtaXRcIiBjbGFzcz1cImNvbmZpcm0tYnV0dG9uXCI+Q29uZmlybTwvYnV0dG9uPlxyXG4gIDwvZm9ybT5cclxuXHJcbiAgPGRpdiBjbGFzcz1cInNjYW5uZXItY29udGFpbmVyXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwib3ItY29udGFpbmVyXCI+XHJcbiAgICAgIDxociBjbGFzcz1cImhvcml6b250YWwtbGluZVwiIC8+XHJcbiAgICAgIDxzcGFuIGNsYXNzPVwib3ItdGV4dFwiPk9SPC9zcGFuPlxyXG4gICAgICA8aHIgY2xhc3M9XCJob3Jpem9udGFsLWxpbmVcIiAvPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2ICpuZ0lmPVwiaXNTY2FubmVyVmlzaWJsZVwiIGNsYXNzPVwic2Nhbm5lci13cmFwcGVyXCI+XHJcbiAgICAgIDx6eGluZy1zY2FubmVyXHJcbiAgICAgICAgW2RldmljZV09XCJjdXJyZW50RGV2aWNlIVwiXHJcbiAgICAgICAgKHNjYW5TdWNjZXNzKT1cImhhbmRsZVNjYW5TdWNjZXNzKCRldmVudClcIlxyXG4gICAgICAgIFt0cnlIYXJkZXJdPVwidHJ1ZVwiXHJcbiAgICAgID48L3p4aW5nLXNjYW5uZXI+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJzY2FuLWJ1dHRvbi1jb250YWluZXJcIiAqbmdJZj1cIiFpc1NjYW5uZXJWaXNpYmxlXCI+XHJcbiAgICAgIDxidXR0b24gKGNsaWNrKT1cInRvZ2dsZVNjYW5uZXIoKVwiIGNsYXNzPVwic2Nhbi1idXR0b25cIj5cclxuICAgICAgICA8ZmEtaWNvbiBbaWNvbl09XCJmYVFyY29kZVwiIHN0eWxlPVwibWFyZ2luLXJpZ2h0OiA1cHhcIj48L2ZhLWljb24+XHJcbiAgICAgICAgU2NhbiBRUiBDb2RlXHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxkaXYgY2xhc3M9XCJhZGRpdGlvbmFsLW9wdGlvbnMtY29udGFpbmVyXCI+XHJcbiAgICA8cD5cclxuICAgICAgUHJvdmlkZSB0aGUgZXZlbnQgZGV0YWlscyBlaXRoZXIgYnkgdHlwaW5nIG1hbnVhbGx5IG9yIHNjYW5uaW5nIHRoZVxyXG4gICAgICBRUi1jb2RlIHRvIGF1dG9maWxsLlxyXG4gICAgPC9wPlxyXG4gICAgPHA+RG9uJ3QgaGF2ZSBhIHNlY3JldD88L3A+XHJcbiAgICA8YVxyXG4gICAgICBocmVmPVwiaHR0cHM6Ly9tZWV0aW5nLm1lZGlhc2Z1LmNvbS9tZWV0aW5nL3N0YXJ0L1wiXHJcbiAgICAgIHRhcmdldD1cIl9ibGFua1wiXHJcbiAgICAgIGNsYXNzPVwibGlua1wiXHJcbiAgICAgID5HZXQgb25lIGZyb20gbWVkaWFzZnUuY29tPC9hXHJcbiAgICA+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
@@ -1,82 +0,0 @@
1
- /* eslint-disable @typescript-eslint/no-empty-function */
2
- import { Component, Input } from '@angular/core';
3
- import { CommonModule } from '@angular/common';
4
- import { ParticipantListItem } from '../participant-list-item/participant-list-item.component';
5
- import * as i0 from "@angular/core";
6
- import * as i1 from "@angular/common";
7
- /**
8
- * @component ParticipantList
9
- * @description Displays a list of participants and provides actions like muting, messaging, and removing participants.
10
- *
11
- * @selector app-participant-list
12
- * @standalone true
13
- * @templateUrl ./participant-list.component.html
14
- * @styleUrls ['./participant-list.component.css']
15
- * @imports [CommonModule, ParticipantListItem]
16
- *
17
- * @example
18
- * ```html
19
- * <app-participant-list [participants]="participants" [isBroadcast]="isBroadcast"
20
- * [onMuteParticipants]="muteParticipantsHandler"
21
- * [onMessageParticipants]="messageParticipantsHandler"
22
- * [onRemoveParticipants]="removeParticipantsHandler">
23
- * </app-participant-list>
24
- * ```
25
- */
26
- export class ParticipantList {
27
- participants = [];
28
- isBroadcast = false;
29
- onMuteParticipants;
30
- onMessageParticipants;
31
- onRemoveParticipants;
32
- socket = {};
33
- coHostResponsibility = [];
34
- member = '';
35
- islevel = '';
36
- showAlert;
37
- coHost = '';
38
- roomName = '';
39
- updateIsMessagesModalVisible = () => { };
40
- updateDirectMessageDetails = () => { };
41
- updateStartDirectMessage = () => { };
42
- updateParticipants = () => { };
43
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ParticipantList, deps: [], target: i0.ɵɵFactoryTarget.Component });
44
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: ParticipantList, isStandalone: true, selector: "app-participant-list", inputs: { participants: "participants", isBroadcast: "isBroadcast", onMuteParticipants: "onMuteParticipants", onMessageParticipants: "onMessageParticipants", onRemoveParticipants: "onRemoveParticipants", socket: "socket", coHostResponsibility: "coHostResponsibility", member: "member", islevel: "islevel", showAlert: "showAlert", coHost: "coHost", roomName: "roomName", updateIsMessagesModalVisible: "updateIsMessagesModalVisible", updateDirectMessageDetails: "updateDirectMessageDetails", updateStartDirectMessage: "updateStartDirectMessage", updateParticipants: "updateParticipants" }, ngImport: i0, template: "<div *ngFor=\"let participant of participants; let i = index\">\r\n <app-participant-list-item\r\n [participant]=\"participant\"\r\n [isBroadcast]=\"isBroadcast\"\r\n [onMuteParticipants]=\"onMuteParticipants\"\r\n [onMessageParticipants]=\"onMessageParticipants\"\r\n [onRemoveParticipants]=\"onRemoveParticipants\"\r\n [socket]=\"socket\"\r\n [coHostResponsibility]=\"coHostResponsibility\"\r\n [coHost]=\"coHost\"\r\n [member]=\"member\"\r\n [islevel]=\"islevel\"\r\n [roomName]=\"roomName\"\r\n [participants]=\"participants\"\r\n [updateIsMessagesModalVisible]=\"updateIsMessagesModalVisible\"\r\n [updateStartDirectMessage]=\"updateStartDirectMessage\"\r\n [updateDirectMessageDetails]=\"updateDirectMessageDetails\"\r\n [updateParticipants]=\"updateParticipants\"\r\n ></app-participant-list-item>\r\n <hr *ngIf=\"i < participants.length - 1\" class=\"separator\" />\r\n</div>\r\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ParticipantListItem, selector: "app-participant-list-item", inputs: ["participant", "isBroadcast", "onMuteParticipants", "onMessageParticipants", "onRemoveParticipants", "socket", "coHostResponsibility", "member", "islevel", "showAlert", "coHost", "roomName", "updateIsMessagesModalVisible", "updateDirectMessageDetails", "updateStartDirectMessage", "participants", "updateParticipants"] }] });
45
- }
46
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ParticipantList, decorators: [{
47
- type: Component,
48
- args: [{ selector: 'app-participant-list', standalone: true, imports: [CommonModule, ParticipantListItem], template: "<div *ngFor=\"let participant of participants; let i = index\">\r\n <app-participant-list-item\r\n [participant]=\"participant\"\r\n [isBroadcast]=\"isBroadcast\"\r\n [onMuteParticipants]=\"onMuteParticipants\"\r\n [onMessageParticipants]=\"onMessageParticipants\"\r\n [onRemoveParticipants]=\"onRemoveParticipants\"\r\n [socket]=\"socket\"\r\n [coHostResponsibility]=\"coHostResponsibility\"\r\n [coHost]=\"coHost\"\r\n [member]=\"member\"\r\n [islevel]=\"islevel\"\r\n [roomName]=\"roomName\"\r\n [participants]=\"participants\"\r\n [updateIsMessagesModalVisible]=\"updateIsMessagesModalVisible\"\r\n [updateStartDirectMessage]=\"updateStartDirectMessage\"\r\n [updateDirectMessageDetails]=\"updateDirectMessageDetails\"\r\n [updateParticipants]=\"updateParticipants\"\r\n ></app-participant-list-item>\r\n <hr *ngIf=\"i < participants.length - 1\" class=\"separator\" />\r\n</div>\r\n" }]
49
- }], propDecorators: { participants: [{
50
- type: Input
51
- }], isBroadcast: [{
52
- type: Input
53
- }], onMuteParticipants: [{
54
- type: Input
55
- }], onMessageParticipants: [{
56
- type: Input
57
- }], onRemoveParticipants: [{
58
- type: Input
59
- }], socket: [{
60
- type: Input
61
- }], coHostResponsibility: [{
62
- type: Input
63
- }], member: [{
64
- type: Input
65
- }], islevel: [{
66
- type: Input
67
- }], showAlert: [{
68
- type: Input
69
- }], coHost: [{
70
- type: Input
71
- }], roomName: [{
72
- type: Input
73
- }], updateIsMessagesModalVisible: [{
74
- type: Input
75
- }], updateDirectMessageDetails: [{
76
- type: Input
77
- }], updateStartDirectMessage: [{
78
- type: Input
79
- }], updateParticipants: [{
80
- type: Input
81
- }] } });
82
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFydGljaXBhbnQtbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tZWRpYXNmdS1hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9wYXJ0aWNpcGFudHMtY29tcG9uZW50cy9wYXJ0aWNpcGFudC1saXN0L3BhcnRpY2lwYW50LWxpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWVkaWFzZnUtYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvcGFydGljaXBhbnRzLWNvbXBvbmVudHMvcGFydGljaXBhbnQtbGlzdC9wYXJ0aWNpcGFudC1saXN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHlEQUF5RDtBQUN6RCxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMERBQTBELENBQUM7OztBQThCL0Y7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWtCRztBQVVILE1BQU0sT0FBTyxlQUFlO0lBQ2pCLFlBQVksR0FBa0IsRUFBRSxDQUFDO0lBQ2pDLFdBQVcsR0FBRyxLQUFLLENBQUM7SUFDcEIsa0JBQWtCLENBQXVEO0lBQ3pFLHFCQUFxQixDQUFpRDtJQUN0RSxvQkFBb0IsQ0FBeUQ7SUFDN0UsTUFBTSxHQUFXLEVBQVksQ0FBQztJQUM5QixvQkFBb0IsR0FBMkIsRUFBRSxDQUFDO0lBQ2xELE1BQU0sR0FBRyxFQUFFLENBQUM7SUFDWixPQUFPLEdBQUcsRUFBRSxDQUFDO0lBQ2IsU0FBUyxDQUFhO0lBQ3RCLE1BQU0sR0FBRyxFQUFFLENBQUM7SUFDWixRQUFRLEdBQUcsRUFBRSxDQUFDO0lBQ2QsNEJBQTRCLEdBQWlDLEdBQUcsRUFBRSxHQUFFLENBQUMsQ0FBQztJQUN0RSwwQkFBMEIsR0FBOEMsR0FBRyxFQUFFLEdBQUUsQ0FBQyxDQUFDO0lBQ2pGLHdCQUF3QixHQUE2QixHQUFHLEVBQUUsR0FBRSxDQUFDLENBQUM7SUFDOUQsa0JBQWtCLEdBQTBDLEdBQUcsRUFBRSxHQUFFLENBQUMsQ0FBQzt1R0FoQm5FLGVBQWU7MkZBQWYsZUFBZSw0cEJDN0Q1Qiw0NkJBcUJBLHlERG9DWSxZQUFZLGdRQUFFLG1CQUFtQjs7MkZBSWhDLGVBQWU7a0JBUDNCLFNBQVM7K0JBQ0Usc0JBQXNCLGNBQ3BCLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxtQkFBbUIsQ0FBQzs4QkFLbkMsWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFDRyxxQkFBcUI7c0JBQTdCLEtBQUs7Z0JBQ0csb0JBQW9CO3NCQUE1QixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxvQkFBb0I7c0JBQTVCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLDRCQUE0QjtzQkFBcEMsS0FBSztnQkFDRywwQkFBMEI7c0JBQWxDLEtBQUs7Z0JBQ0csd0JBQXdCO3NCQUFoQyxLQUFLO2dCQUNHLGtCQUFrQjtzQkFBMUIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1mdW5jdGlvbiAqL1xuaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFBhcnRpY2lwYW50TGlzdEl0ZW0gfSBmcm9tICcuLi9wYXJ0aWNpcGFudC1saXN0LWl0ZW0vcGFydGljaXBhbnQtbGlzdC1pdGVtLmNvbXBvbmVudCc7XG5pbXBvcnQge1xuICBDb0hvc3RSZXNwb25zaWJpbGl0eSxcbiAgUGFydGljaXBhbnQsXG4gIFNob3dBbGVydCxcbiAgTXV0ZVBhcnRpY2lwYW50c09wdGlvbnMsXG4gIE1lc3NhZ2VQYXJ0aWNpcGFudHNPcHRpb25zLFxuICBSZW1vdmVQYXJ0aWNpcGFudHNPcHRpb25zLFxufSBmcm9tICcuLi8uLi8uLi9AdHlwZXMvdHlwZXMnO1xuaW1wb3J0IHsgU29ja2V0IH0gZnJvbSAnc29ja2V0LmlvLWNsaWVudCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGFydGljaXBhbnRMaXN0T3B0aW9ucyB7XG4gIHBhcnRpY2lwYW50czogUGFydGljaXBhbnRbXTtcbiAgaXNCcm9hZGNhc3Q6IGJvb2xlYW47XG4gIG9uTXV0ZVBhcnRpY2lwYW50czogKG9wdGlvbnM6IE11dGVQYXJ0aWNpcGFudHNPcHRpb25zKSA9PiBQcm9taXNlPHZvaWQ+O1xuICBvbk1lc3NhZ2VQYXJ0aWNpcGFudHM6IChvcHRpb25zOiBNZXNzYWdlUGFydGljaXBhbnRzT3B0aW9ucykgPT4gdm9pZDtcbiAgb25SZW1vdmVQYXJ0aWNpcGFudHM6IChvcHRpb25zOiBSZW1vdmVQYXJ0aWNpcGFudHNPcHRpb25zKSA9PiB2b2lkO1xuICBzb2NrZXQ6IFNvY2tldDtcbiAgY29Ib3N0UmVzcG9uc2liaWxpdHk6IENvSG9zdFJlc3BvbnNpYmlsaXR5W107XG4gIG1lbWJlcjogc3RyaW5nO1xuICBpc2xldmVsOiBzdHJpbmc7XG4gIHNob3dBbGVydD86IFNob3dBbGVydDtcbiAgY29Ib3N0OiBzdHJpbmc7XG4gIHJvb21OYW1lOiBzdHJpbmc7XG4gIHVwZGF0ZUlzTWVzc2FnZXNNb2RhbFZpc2libGU6IChpc1Zpc2libGU6IGJvb2xlYW4pID0+IHZvaWQ7XG4gIHVwZGF0ZURpcmVjdE1lc3NhZ2VEZXRhaWxzOiAocGFydGljaXBhbnQ6IFBhcnRpY2lwYW50IHwgbnVsbCkgPT4gdm9pZDtcbiAgdXBkYXRlU3RhcnREaXJlY3RNZXNzYWdlOiAoc3RhcnQ6IGJvb2xlYW4pID0+IHZvaWQ7XG4gIHVwZGF0ZVBhcnRpY2lwYW50czogKHBhcnRpY2lwYW50czogUGFydGljaXBhbnRbXSkgPT4gdm9pZDtcbn1cblxuLyoqXG4gKiBAY29tcG9uZW50IFBhcnRpY2lwYW50TGlzdFxuICogQGRlc2NyaXB0aW9uIERpc3BsYXlzIGEgbGlzdCBvZiBwYXJ0aWNpcGFudHMgYW5kIHByb3ZpZGVzIGFjdGlvbnMgbGlrZSBtdXRpbmcsIG1lc3NhZ2luZywgYW5kIHJlbW92aW5nIHBhcnRpY2lwYW50cy5cbiAqXG4gKiBAc2VsZWN0b3IgYXBwLXBhcnRpY2lwYW50LWxpc3RcbiAqIEBzdGFuZGFsb25lIHRydWVcbiAqIEB0ZW1wbGF0ZVVybCAuL3BhcnRpY2lwYW50LWxpc3QuY29tcG9uZW50Lmh0bWxcbiAqIEBzdHlsZVVybHMgWycuL3BhcnRpY2lwYW50LWxpc3QuY29tcG9uZW50LmNzcyddXG4gKiBAaW1wb3J0cyBbQ29tbW9uTW9kdWxlLCBQYXJ0aWNpcGFudExpc3RJdGVtXVxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGBodG1sXG4gKiA8YXBwLXBhcnRpY2lwYW50LWxpc3QgW3BhcnRpY2lwYW50c109XCJwYXJ0aWNpcGFudHNcIiBbaXNCcm9hZGNhc3RdPVwiaXNCcm9hZGNhc3RcIlxuICogICAgICAgICAgICAgICAgICAgICAgIFtvbk11dGVQYXJ0aWNpcGFudHNdPVwibXV0ZVBhcnRpY2lwYW50c0hhbmRsZXJcIlxuICogICAgICAgICAgICAgICAgICAgICAgIFtvbk1lc3NhZ2VQYXJ0aWNpcGFudHNdPVwibWVzc2FnZVBhcnRpY2lwYW50c0hhbmRsZXJcIlxuICogICAgICAgICAgICAgICAgICAgICAgIFtvblJlbW92ZVBhcnRpY2lwYW50c109XCJyZW1vdmVQYXJ0aWNpcGFudHNIYW5kbGVyXCI+XG4gKiA8L2FwcC1wYXJ0aWNpcGFudC1saXN0PlxuICogYGBgXG4gKi9cblxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtcGFydGljaXBhbnQtbGlzdCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFBhcnRpY2lwYW50TGlzdEl0ZW1dLFxuICB0ZW1wbGF0ZVVybDogJy4vcGFydGljaXBhbnQtbGlzdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3BhcnRpY2lwYW50LWxpc3QuY29tcG9uZW50LmNzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBQYXJ0aWNpcGFudExpc3Qge1xuICBASW5wdXQoKSBwYXJ0aWNpcGFudHM6IFBhcnRpY2lwYW50W10gPSBbXTtcbiAgQElucHV0KCkgaXNCcm9hZGNhc3QgPSBmYWxzZTtcbiAgQElucHV0KCkgb25NdXRlUGFydGljaXBhbnRzITogKG9wdGlvbnM6IE11dGVQYXJ0aWNpcGFudHNPcHRpb25zKSA9PiBQcm9taXNlPHZvaWQ+O1xuICBASW5wdXQoKSBvbk1lc3NhZ2VQYXJ0aWNpcGFudHMhOiAob3B0aW9uczogTWVzc2FnZVBhcnRpY2lwYW50c09wdGlvbnMpID0+IHZvaWQ7XG4gIEBJbnB1dCgpIG9uUmVtb3ZlUGFydGljaXBhbnRzITogKG9wdGlvbnM6IFJlbW92ZVBhcnRpY2lwYW50c09wdGlvbnMpID0+IFByb21pc2U8dm9pZD47XG4gIEBJbnB1dCgpIHNvY2tldDogU29ja2V0ID0ge30gYXMgU29ja2V0O1xuICBASW5wdXQoKSBjb0hvc3RSZXNwb25zaWJpbGl0eTogQ29Ib3N0UmVzcG9uc2liaWxpdHlbXSA9IFtdO1xuICBASW5wdXQoKSBtZW1iZXIgPSAnJztcbiAgQElucHV0KCkgaXNsZXZlbCA9ICcnO1xuICBASW5wdXQoKSBzaG93QWxlcnQ/OiBTaG93QWxlcnQ7XG4gIEBJbnB1dCgpIGNvSG9zdCA9ICcnO1xuICBASW5wdXQoKSByb29tTmFtZSA9ICcnO1xuICBASW5wdXQoKSB1cGRhdGVJc01lc3NhZ2VzTW9kYWxWaXNpYmxlOiAoaXNWaXNpYmxlOiBib29sZWFuKSA9PiB2b2lkID0gKCkgPT4ge307XG4gIEBJbnB1dCgpIHVwZGF0ZURpcmVjdE1lc3NhZ2VEZXRhaWxzOiAocGFydGljaXBhbnQ6IFBhcnRpY2lwYW50IHwgbnVsbCkgPT4gdm9pZCA9ICgpID0+IHt9O1xuICBASW5wdXQoKSB1cGRhdGVTdGFydERpcmVjdE1lc3NhZ2U6IChzdGFydDogYm9vbGVhbikgPT4gdm9pZCA9ICgpID0+IHt9O1xuICBASW5wdXQoKSB1cGRhdGVQYXJ0aWNpcGFudHM6IChwYXJ0aWNpcGFudHM6IFBhcnRpY2lwYW50W10pID0+IHZvaWQgPSAoKSA9PiB7fTtcbn1cbiIsIjxkaXYgKm5nRm9yPVwibGV0IHBhcnRpY2lwYW50IG9mIHBhcnRpY2lwYW50czsgbGV0IGkgPSBpbmRleFwiPlxyXG4gIDxhcHAtcGFydGljaXBhbnQtbGlzdC1pdGVtXHJcbiAgICBbcGFydGljaXBhbnRdPVwicGFydGljaXBhbnRcIlxyXG4gICAgW2lzQnJvYWRjYXN0XT1cImlzQnJvYWRjYXN0XCJcclxuICAgIFtvbk11dGVQYXJ0aWNpcGFudHNdPVwib25NdXRlUGFydGljaXBhbnRzXCJcclxuICAgIFtvbk1lc3NhZ2VQYXJ0aWNpcGFudHNdPVwib25NZXNzYWdlUGFydGljaXBhbnRzXCJcclxuICAgIFtvblJlbW92ZVBhcnRpY2lwYW50c109XCJvblJlbW92ZVBhcnRpY2lwYW50c1wiXHJcbiAgICBbc29ja2V0XT1cInNvY2tldFwiXHJcbiAgICBbY29Ib3N0UmVzcG9uc2liaWxpdHldPVwiY29Ib3N0UmVzcG9uc2liaWxpdHlcIlxyXG4gICAgW2NvSG9zdF09XCJjb0hvc3RcIlxyXG4gICAgW21lbWJlcl09XCJtZW1iZXJcIlxyXG4gICAgW2lzbGV2ZWxdPVwiaXNsZXZlbFwiXHJcbiAgICBbcm9vbU5hbWVdPVwicm9vbU5hbWVcIlxyXG4gICAgW3BhcnRpY2lwYW50c109XCJwYXJ0aWNpcGFudHNcIlxyXG4gICAgW3VwZGF0ZUlzTWVzc2FnZXNNb2RhbFZpc2libGVdPVwidXBkYXRlSXNNZXNzYWdlc01vZGFsVmlzaWJsZVwiXHJcbiAgICBbdXBkYXRlU3RhcnREaXJlY3RNZXNzYWdlXT1cInVwZGF0ZVN0YXJ0RGlyZWN0TWVzc2FnZVwiXHJcbiAgICBbdXBkYXRlRGlyZWN0TWVzc2FnZURldGFpbHNdPVwidXBkYXRlRGlyZWN0TWVzc2FnZURldGFpbHNcIlxyXG4gICAgW3VwZGF0ZVBhcnRpY2lwYW50c109XCJ1cGRhdGVQYXJ0aWNpcGFudHNcIlxyXG4gID48L2FwcC1wYXJ0aWNpcGFudC1saXN0LWl0ZW0+XHJcbiAgPGhyICpuZ0lmPVwiaSA8IHBhcnRpY2lwYW50cy5sZW5ndGggLSAxXCIgY2xhc3M9XCJzZXBhcmF0b3JcIiAvPlxyXG48L2Rpdj5cclxuIl19