mediasfu-angular 1.0.2 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (281) hide show
  1. package/README.md +678 -578
  2. package/dist/README.md +677 -578
  3. package/dist/fesm2022/mediasfu-angular.mjs +5551 -2944
  4. package/dist/fesm2022/mediasfu-angular.mjs.map +1 -1
  5. package/dist/lib/@types/types.d.ts +22 -1
  6. package/dist/lib/components/breakout-components/breakout-rooms-modal.component.d.ts +1 -0
  7. package/dist/lib/components/mediasfu-components/mediasfu-broadcast.component.d.ts +153 -61
  8. package/dist/lib/components/mediasfu-components/mediasfu-chat.component.d.ts +154 -66
  9. package/dist/lib/components/mediasfu-components/mediasfu-conference.component.d.ts +190 -76
  10. package/dist/lib/components/mediasfu-components/mediasfu-generic.component.d.ts +184 -70
  11. package/dist/lib/components/mediasfu-components/mediasfu-webinar.component.d.ts +192 -78
  12. package/dist/lib/components/menu-components/menu-modal/menu-modal.component.d.ts +6 -1
  13. package/dist/lib/components/menu-components/share-buttons-component/share-buttons-component.component.d.ts +5 -2
  14. package/dist/lib/components/misc-components/confirm-here-modal/confirm-here-modal.component.d.ts +4 -2
  15. package/dist/lib/components/misc-components/pre-join-page/pre-join-page.component.d.ts +71 -66
  16. package/dist/lib/components/misc-components/share-event-modal/share-event-modal.component.d.ts +5 -1
  17. package/dist/lib/consumers/connect-local-ips.service.d.ts +81 -0
  18. package/dist/lib/consumers/connect-send-transport-audio.service.d.ts +43 -11
  19. package/dist/lib/consumers/connect-send-transport-screen.service.d.ts +87 -46
  20. package/dist/lib/consumers/connect-send-transport-video.service.d.ts +89 -43
  21. package/dist/lib/consumers/connect-send-transport.service.d.ts +5 -1
  22. package/dist/lib/consumers/create-send-transport.service.d.ts +130 -40
  23. package/dist/lib/consumers/disconnect-send-transport-audio.service.d.ts +77 -40
  24. package/dist/lib/consumers/disconnect-send-transport-screen.service.d.ts +48 -14
  25. package/dist/lib/consumers/disconnect-send-transport-video.service.d.ts +81 -44
  26. package/dist/lib/consumers/get-piped-producers-alt.service.d.ts +5 -1
  27. package/dist/lib/consumers/receive-all-piped-transports.service.d.ts +5 -1
  28. package/dist/lib/consumers/resume-send-transport-audio.service.d.ts +54 -21
  29. package/dist/lib/consumers/stream-success-audio-switch.service.d.ts +124 -40
  30. package/dist/lib/consumers/trigger.service.d.ts +3 -0
  31. package/dist/lib/methods/exit-methods/confirm-exit.service.d.ts +5 -1
  32. package/dist/lib/methods/recording-methods/start-recording.service.d.ts +3 -0
  33. package/dist/lib/methods/recording-methods/stop-recording.service.d.ts +4 -1
  34. package/dist/lib/methods/recording-methods/update-recording.service.d.ts +3 -0
  35. package/dist/lib/methods/stream-methods/click-audio.service.d.ts +3 -0
  36. package/dist/lib/methods/utils/check-limits-and-make-request.service.d.ts +23 -0
  37. package/dist/lib/methods/utils/create-response-join-room.util.d.ts +33 -0
  38. package/dist/lib/methods/utils/create-room-on-media-sfu.service.d.ts +25 -0
  39. package/dist/lib/methods/utils/initial-values.util.d.ts +6 -0
  40. package/dist/lib/methods/utils/join-room-on-media-sfu.service.d.ts +52 -0
  41. package/dist/lib/methods/whiteboard-methods/capture-canvas-stream.service.d.ts +37 -20
  42. package/dist/lib/producers/producer-emits/join-local-room.service.d.ts +125 -0
  43. package/dist/lib/producers/socket-receive-methods/all-members-rest.service.d.ts +7 -2
  44. package/dist/lib/producers/socket-receive-methods/all-members.service.d.ts +7 -2
  45. package/dist/lib/producers/socket-receive-methods/disconnect-user-self.service.d.ts +5 -1
  46. package/dist/lib/sockets/socket-manager.service.d.ts +90 -0
  47. package/dist/public-api.d.ts +11 -1
  48. package/package.json +17 -20
  49. package/dist/esm2022/lib/@types/types.mjs +0 -2
  50. package/dist/esm2022/lib/components/background-components/background-modal/background-modal.component.mjs +0 -799
  51. package/dist/esm2022/lib/components/breakout-components/breakout-rooms-modal.component.mjs +0 -366
  52. package/dist/esm2022/lib/components/breakout-components/edit-room-modal/edit-room-modal.component.mjs +0 -143
  53. package/dist/esm2022/lib/components/breakout-components/room-list/room-list.component.mjs +0 -40
  54. package/dist/esm2022/lib/components/co-host-components/co-host-modal/co-host-modal.component.mjs +0 -245
  55. package/dist/esm2022/lib/components/display-components/alert-component/alert.component.component.mjs +0 -79
  56. package/dist/esm2022/lib/components/display-components/audio-card/audio-card.component.mjs +0 -356
  57. package/dist/esm2022/lib/components/display-components/audio-grid/audio-grid.component.mjs +0 -80
  58. package/dist/esm2022/lib/components/display-components/card-video-display/card-video-display.component.mjs +0 -129
  59. package/dist/esm2022/lib/components/display-components/control-buttons-alt-component/control-buttons-alt-component.component.mjs +0 -138
  60. package/dist/esm2022/lib/components/display-components/control-buttons-component/control-buttons-component.component.mjs +0 -231
  61. package/dist/esm2022/lib/components/display-components/control-buttons-component-touch/control-buttons-component-touch.component.mjs +0 -282
  62. package/dist/esm2022/lib/components/display-components/control-widgets/menu-participants-widget.component.mjs +0 -82
  63. package/dist/esm2022/lib/components/display-components/control-widgets/menu-record-widget.component.mjs +0 -65
  64. package/dist/esm2022/lib/components/display-components/control-widgets/menu-widget.component.mjs +0 -137
  65. package/dist/esm2022/lib/components/display-components/control-widgets/message-widget.component.mjs +0 -137
  66. package/dist/esm2022/lib/components/display-components/control-widgets/record-timer-widget.component.mjs +0 -51
  67. package/dist/esm2022/lib/components/display-components/control-widgets/screenshare-widget.component.mjs +0 -101
  68. package/dist/esm2022/lib/components/display-components/flexible-grid/flexible-grid.component.mjs +0 -151
  69. package/dist/esm2022/lib/components/display-components/flexible-video/flexible-video.component.mjs +0 -250
  70. package/dist/esm2022/lib/components/display-components/loading-modal/loading-modal.component.mjs +0 -102
  71. package/dist/esm2022/lib/components/display-components/main-aspect-component/main-aspect-component.component.mjs +0 -140
  72. package/dist/esm2022/lib/components/display-components/main-container-component/main-container-component.component.mjs +0 -131
  73. package/dist/esm2022/lib/components/display-components/main-grid-component/main-grid-component.component.mjs +0 -120
  74. package/dist/esm2022/lib/components/display-components/main-screen-component/main-screen-component.component.mjs +0 -201
  75. package/dist/esm2022/lib/components/display-components/meeting-progress-timer/meeting-progress-timer.component.mjs +0 -115
  76. package/dist/esm2022/lib/components/display-components/mini-audio/mini-audio.component.mjs +0 -319
  77. package/dist/esm2022/lib/components/display-components/mini-card/mini-card.component.mjs +0 -161
  78. package/dist/esm2022/lib/components/display-components/mini-card-audio/mini-card-audio.component.mjs +0 -230
  79. package/dist/esm2022/lib/components/display-components/other-grid-component/other-grid-component.component.mjs +0 -126
  80. package/dist/esm2022/lib/components/display-components/pagination/pagination.component.mjs +0 -334
  81. package/dist/esm2022/lib/components/display-components/sub-aspect-component/sub-aspect-component.component.mjs +0 -112
  82. package/dist/esm2022/lib/components/display-components/video-card/video-card.component.mjs +0 -392
  83. package/dist/esm2022/lib/components/display-settings-components/display-settings-modal.component.mjs +0 -106
  84. package/dist/esm2022/lib/components/event-settings-components/event-settings-modal/event-settings-modal.component.mjs +0 -199
  85. package/dist/esm2022/lib/components/exit-components/confirm-exit-modal/confirm-exit-modal.component.mjs +0 -132
  86. package/dist/esm2022/lib/components/media-settings-components/media-settings-modal/media-settings-modal.component.mjs +0 -220
  87. package/dist/esm2022/lib/components/mediasfu-components/mediasfu-broadcast.component.mjs +0 -4238
  88. package/dist/esm2022/lib/components/mediasfu-components/mediasfu-chat.component.mjs +0 -3754
  89. package/dist/esm2022/lib/components/mediasfu-components/mediasfu-conference.component.mjs +0 -5071
  90. package/dist/esm2022/lib/components/mediasfu-components/mediasfu-generic.component.mjs +0 -5380
  91. package/dist/esm2022/lib/components/mediasfu-components/mediasfu-webinar.component.mjs +0 -5068
  92. package/dist/esm2022/lib/components/menu-components/custom-buttons/custom-buttons.component.mjs +0 -83
  93. package/dist/esm2022/lib/components/menu-components/meeting-id-component/meeting-id-component.component.mjs +0 -27
  94. package/dist/esm2022/lib/components/menu-components/meeting-passcode-component/meeting-passcode-component.component.mjs +0 -27
  95. package/dist/esm2022/lib/components/menu-components/menu-modal/menu-modal.component.mjs +0 -125
  96. package/dist/esm2022/lib/components/menu-components/share-buttons-component/share-buttons-component.component.mjs +0 -106
  97. package/dist/esm2022/lib/components/message-components/message-panel/message-panel.component.mjs +0 -228
  98. package/dist/esm2022/lib/components/message-components/messages-modal/messages-modal.component.mjs +0 -277
  99. package/dist/esm2022/lib/components/misc-components/confirm-here-modal/confirm-here-modal.component.mjs +0 -130
  100. package/dist/esm2022/lib/components/misc-components/pre-join-page/pre-join-page.component.mjs +0 -343
  101. package/dist/esm2022/lib/components/misc-components/share-event-modal/share-event-modal.component.mjs +0 -127
  102. package/dist/esm2022/lib/components/misc-components/welcome-page/welcome-page.component.mjs +0 -241
  103. package/dist/esm2022/lib/components/participants-components/participant-list/participant-list.component.mjs +0 -82
  104. package/dist/esm2022/lib/components/participants-components/participant-list-item/participant-list-item.component.mjs +0 -139
  105. package/dist/esm2022/lib/components/participants-components/participant-list-others/participant-list-others.component.mjs +0 -40
  106. package/dist/esm2022/lib/components/participants-components/participant-list-others-item/participant-list-others-item.component.mjs +0 -60
  107. package/dist/esm2022/lib/components/participants-components/participants-modal/participants-modal.component.mjs +0 -124
  108. package/dist/esm2022/lib/components/polls-components/poll-modal/poll-modal.component.mjs +0 -201
  109. package/dist/esm2022/lib/components/recording-components/advanced-panel-component/advanced-panel-components.component.mjs +0 -92
  110. package/dist/esm2022/lib/components/recording-components/recording-modal/recording-modal.component.mjs +0 -133
  111. package/dist/esm2022/lib/components/recording-components/standard-panel-component/standard-panel-component.component.mjs +0 -90
  112. package/dist/esm2022/lib/components/requests-components/render-request-component/render-request-component.component.mjs +0 -81
  113. package/dist/esm2022/lib/components/requests-components/requests-modal/requests-modal.component.mjs +0 -147
  114. package/dist/esm2022/lib/components/screenboard-components/screenboard/screenboard.component.mjs +0 -627
  115. package/dist/esm2022/lib/components/screenboard-components/screenboard-modal/screenboard-modal.component.mjs +0 -391
  116. package/dist/esm2022/lib/components/waiting-components/waiting-room-modal.component.mjs +0 -201
  117. package/dist/esm2022/lib/components/whiteboard-components/configure-whiteboard-modal/configure-whiteboard-modal.component.mjs +0 -286
  118. package/dist/esm2022/lib/components/whiteboard-components/whiteboard/whiteboard.component.mjs +0 -1833
  119. package/dist/esm2022/lib/consumers/add-videos-grid.service.mjs +0 -345
  120. package/dist/esm2022/lib/consumers/auto-adjust.service.mjs +0 -109
  121. package/dist/esm2022/lib/consumers/calculate-rows-and-columns.service.mjs +0 -60
  122. package/dist/esm2022/lib/consumers/change-vids.service.mjs +0 -551
  123. package/dist/esm2022/lib/consumers/check-grid.service.mjs +0 -93
  124. package/dist/esm2022/lib/consumers/check-permission.service.mjs +0 -105
  125. package/dist/esm2022/lib/consumers/check-screen-share.service.mjs +0 -106
  126. package/dist/esm2022/lib/consumers/close-and-resize.service.mjs +0 -331
  127. package/dist/esm2022/lib/consumers/compare-active-names.service.mjs +0 -106
  128. package/dist/esm2022/lib/consumers/compare-screen-states.service.mjs +0 -98
  129. package/dist/esm2022/lib/consumers/connect-ips.service.mjs +0 -154
  130. package/dist/esm2022/lib/consumers/connect-recv-transport.service.mjs +0 -146
  131. package/dist/esm2022/lib/consumers/connect-send-transport-audio.service.mjs +0 -84
  132. package/dist/esm2022/lib/consumers/connect-send-transport-screen.service.mjs +0 -102
  133. package/dist/esm2022/lib/consumers/connect-send-transport-video.service.mjs +0 -99
  134. package/dist/esm2022/lib/consumers/connect-send-transport.service.mjs +0 -140
  135. package/dist/esm2022/lib/consumers/consumer-resume.service.mjs +0 -368
  136. package/dist/esm2022/lib/consumers/control-media.service.mjs +0 -113
  137. package/dist/esm2022/lib/consumers/create-send-transport.service.mjs +0 -172
  138. package/dist/esm2022/lib/consumers/disconnect-send-transport-audio.service.mjs +0 -108
  139. package/dist/esm2022/lib/consumers/disconnect-send-transport-screen.service.mjs +0 -84
  140. package/dist/esm2022/lib/consumers/disconnect-send-transport-video.service.mjs +0 -101
  141. package/dist/esm2022/lib/consumers/disp-streams.service.mjs +0 -513
  142. package/dist/esm2022/lib/consumers/generate-page-content.service.mjs +0 -106
  143. package/dist/esm2022/lib/consumers/get-estimate.service.mjs +0 -120
  144. package/dist/esm2022/lib/consumers/get-piped-producers-alt.service.mjs +0 -82
  145. package/dist/esm2022/lib/consumers/get-producers-piped.service.mjs +0 -79
  146. package/dist/esm2022/lib/consumers/get-videos.service.mjs +0 -91
  147. package/dist/esm2022/lib/consumers/mix-streams.service.mjs +0 -95
  148. package/dist/esm2022/lib/consumers/on-screen-changes.service.mjs +0 -103
  149. package/dist/esm2022/lib/consumers/prepopulate-user-media.service.mjs +0 -541
  150. package/dist/esm2022/lib/consumers/process-consumer-transports-audio.service.mjs +0 -101
  151. package/dist/esm2022/lib/consumers/process-consumer-transports.service.mjs +0 -128
  152. package/dist/esm2022/lib/consumers/re-port.service.mjs +0 -114
  153. package/dist/esm2022/lib/consumers/re-update-inter.service.mjs +0 -239
  154. package/dist/esm2022/lib/consumers/readjust.service.mjs +0 -173
  155. package/dist/esm2022/lib/consumers/receive-all-piped-transports.service.mjs +0 -87
  156. package/dist/esm2022/lib/consumers/receive-room-messages.service.mjs +0 -69
  157. package/dist/esm2022/lib/consumers/reorder-streams.service.mjs +0 -239
  158. package/dist/esm2022/lib/consumers/request-screen-share.service.mjs +0 -101
  159. package/dist/esm2022/lib/consumers/resume-pause-audio-streams.service.mjs +0 -150
  160. package/dist/esm2022/lib/consumers/resume-pause-streams.service.mjs +0 -103
  161. package/dist/esm2022/lib/consumers/resume-send-transport-audio.service.mjs +0 -91
  162. package/dist/esm2022/lib/consumers/signal-new-consumer-transport.service.mjs +0 -136
  163. package/dist/esm2022/lib/consumers/socket-receive-methods/join-consume-room.service.mjs +0 -96
  164. package/dist/esm2022/lib/consumers/socket-receive-methods/new-pipe-producer.service.mjs +0 -100
  165. package/dist/esm2022/lib/consumers/socket-receive-methods/producer-closed.service.mjs +0 -78
  166. package/dist/esm2022/lib/consumers/start-share-screen.service.mjs +0 -120
  167. package/dist/esm2022/lib/consumers/stop-share-screen.service.mjs +0 -175
  168. package/dist/esm2022/lib/consumers/stream-success-audio-switch.service.mjs +0 -185
  169. package/dist/esm2022/lib/consumers/stream-success-audio.service.mjs +0 -210
  170. package/dist/esm2022/lib/consumers/stream-success-screen.service.mjs +0 -193
  171. package/dist/esm2022/lib/consumers/stream-success-video.service.mjs +0 -260
  172. package/dist/esm2022/lib/consumers/switch-user-audio.service.mjs +0 -120
  173. package/dist/esm2022/lib/consumers/switch-user-video-alt.service.mjs +0 -260
  174. package/dist/esm2022/lib/consumers/switch-user-video.service.mjs +0 -172
  175. package/dist/esm2022/lib/consumers/trigger.service.mjs +0 -210
  176. package/dist/esm2022/lib/consumers/update-mini-cards-grid.service.mjs +0 -135
  177. package/dist/esm2022/lib/consumers/update-participant-audio-decibels.service.mjs +0 -84
  178. package/dist/esm2022/lib/methods/background-methods/launch-background.service.mjs +0 -48
  179. package/dist/esm2022/lib/methods/breakout-room-methods/breakout-room-updated.service.mjs +0 -183
  180. package/dist/esm2022/lib/methods/breakout-room-methods/launch-breakout-rooms.service.mjs +0 -46
  181. package/dist/esm2022/lib/methods/co-host-methods/launch-co-host.service.mjs +0 -46
  182. package/dist/esm2022/lib/methods/co-host-methods/modify-co-host-settings.service.mjs +0 -104
  183. package/dist/esm2022/lib/methods/display-settings-methods/launch-display-settings.service.mjs +0 -46
  184. package/dist/esm2022/lib/methods/display-settings-methods/modify-display-settings.service.mjs +0 -194
  185. package/dist/esm2022/lib/methods/exit-methods/confirm-exit.service.mjs +0 -52
  186. package/dist/esm2022/lib/methods/exit-methods/launch-confirm-exit.service.mjs +0 -42
  187. package/dist/esm2022/lib/methods/media-settings-methods/launch-media-settings.service.mjs +0 -85
  188. package/dist/esm2022/lib/methods/menu-methods/launch-menu-modal.service.mjs +0 -44
  189. package/dist/esm2022/lib/methods/message-methods/launch-messages.service.mjs +0 -45
  190. package/dist/esm2022/lib/methods/message-methods/send-message.service.mjs +0 -143
  191. package/dist/esm2022/lib/methods/participants-methods/launch-participants.service.mjs +0 -47
  192. package/dist/esm2022/lib/methods/participants-methods/message-participants.service.mjs +0 -98
  193. package/dist/esm2022/lib/methods/participants-methods/mute-participants.service.mjs +0 -96
  194. package/dist/esm2022/lib/methods/participants-methods/remove-participants.service.mjs +0 -107
  195. package/dist/esm2022/lib/methods/polls-methods/handle-create-poll.service.mjs +0 -75
  196. package/dist/esm2022/lib/methods/polls-methods/handle-end-poll.service.mjs +0 -72
  197. package/dist/esm2022/lib/methods/polls-methods/handle-vote-poll.service.mjs +0 -83
  198. package/dist/esm2022/lib/methods/polls-methods/launch-poll.service.mjs +0 -43
  199. package/dist/esm2022/lib/methods/polls-methods/poll-updated.service.mjs +0 -95
  200. package/dist/esm2022/lib/methods/recording-methods/check-pause-state.service.mjs +0 -69
  201. package/dist/esm2022/lib/methods/recording-methods/check-resume-state.service.mjs +0 -56
  202. package/dist/esm2022/lib/methods/recording-methods/confirm-recording.service.mjs +0 -278
  203. package/dist/esm2022/lib/methods/recording-methods/launch-recording.service.mjs +0 -125
  204. package/dist/esm2022/lib/methods/recording-methods/record-pause-timer.service.mjs +0 -67
  205. package/dist/esm2022/lib/methods/recording-methods/record-resume-timer.service.mjs +0 -130
  206. package/dist/esm2022/lib/methods/recording-methods/record-start-timer.service.mjs +0 -134
  207. package/dist/esm2022/lib/methods/recording-methods/record-update-timer.service.mjs +0 -80
  208. package/dist/esm2022/lib/methods/recording-methods/start-recording.service.mjs +0 -197
  209. package/dist/esm2022/lib/methods/recording-methods/stop-recording.service.mjs +0 -112
  210. package/dist/esm2022/lib/methods/recording-methods/update-recording.service.mjs +0 -272
  211. package/dist/esm2022/lib/methods/requests-methods/launch-requests.service.mjs +0 -51
  212. package/dist/esm2022/lib/methods/requests-methods/respond-to-requests.service.mjs +0 -84
  213. package/dist/esm2022/lib/methods/settings-methods/launch-settings.service.mjs +0 -51
  214. package/dist/esm2022/lib/methods/settings-methods/modify-settings.service.mjs +0 -109
  215. package/dist/esm2022/lib/methods/stream-methods/click-audio.service.mjs +0 -275
  216. package/dist/esm2022/lib/methods/stream-methods/click-chat.service.mjs +0 -75
  217. package/dist/esm2022/lib/methods/stream-methods/click-screen-share.service.mjs +0 -178
  218. package/dist/esm2022/lib/methods/stream-methods/click-video.service.mjs +0 -271
  219. package/dist/esm2022/lib/methods/stream-methods/switch-audio.service.mjs +0 -80
  220. package/dist/esm2022/lib/methods/stream-methods/switch-video-alt.service.mjs +0 -116
  221. package/dist/esm2022/lib/methods/stream-methods/switch-video.service.mjs +0 -132
  222. package/dist/esm2022/lib/methods/utils/format-number.service.mjs +0 -57
  223. package/dist/esm2022/lib/methods/utils/generate-random-messages.service.mjs +0 -120
  224. package/dist/esm2022/lib/methods/utils/generate-random-participants.service.mjs +0 -126
  225. package/dist/esm2022/lib/methods/utils/generate-random-polls.service.mjs +0 -78
  226. package/dist/esm2022/lib/methods/utils/generate-random-request-list.service.mjs +0 -90
  227. package/dist/esm2022/lib/methods/utils/generate-random-waiting-room-list.service.mjs +0 -59
  228. package/dist/esm2022/lib/methods/utils/get-modal-position.util.mjs +0 -32
  229. package/dist/esm2022/lib/methods/utils/get-overlay-position.util.mjs +0 -31
  230. package/dist/esm2022/lib/methods/utils/initial-values.util.mjs +0 -379
  231. package/dist/esm2022/lib/methods/utils/meeting-timer/start-meeting-progress-timer.service.mjs +0 -96
  232. package/dist/esm2022/lib/methods/utils/mini-audio-player/mini-audio-player.component.mjs +0 -315
  233. package/dist/esm2022/lib/methods/utils/producer/a-params.service.mjs +0 -58
  234. package/dist/esm2022/lib/methods/utils/producer/h-params.service.mjs +0 -87
  235. package/dist/esm2022/lib/methods/utils/producer/screen-params.service.mjs +0 -61
  236. package/dist/esm2022/lib/methods/utils/producer/v-params.service.mjs +0 -87
  237. package/dist/esm2022/lib/methods/utils/producer/video-capture-constraints.service.mjs +0 -84
  238. package/dist/esm2022/lib/methods/utils/sleep.util.mjs +0 -17
  239. package/dist/esm2022/lib/methods/utils/sound-player.service.mjs +0 -63
  240. package/dist/esm2022/lib/methods/utils/validate-alphanumeric.service.mjs +0 -49
  241. package/dist/esm2022/lib/methods/waiting-methods/launch-waiting.service.mjs +0 -41
  242. package/dist/esm2022/lib/methods/waiting-methods/respond-to-waiting.service.mjs +0 -69
  243. package/dist/esm2022/lib/methods/whiteboard-methods/capture-canvas-stream.service.mjs +0 -98
  244. package/dist/esm2022/lib/methods/whiteboard-methods/launch-configure-whiteboard.service.mjs +0 -44
  245. package/dist/esm2022/lib/producer-client/producer-client-emits/create-device-client.service.mjs +0 -74
  246. package/dist/esm2022/lib/producer-client/producer-client-emits/join-room-client.service.mjs +0 -96
  247. package/dist/esm2022/lib/producer-client/producer-client-emits/update-room-parameters-client.service.mjs +0 -276
  248. package/dist/esm2022/lib/producers/producer-emits/join-con-room.service.mjs +0 -152
  249. package/dist/esm2022/lib/producers/producer-emits/join-room.service.mjs +0 -152
  250. package/dist/esm2022/lib/producers/socket-receive-methods/all-members-rest.service.mjs +0 -228
  251. package/dist/esm2022/lib/producers/socket-receive-methods/all-members.service.mjs +0 -218
  252. package/dist/esm2022/lib/producers/socket-receive-methods/all-waiting-room-members.service.mjs +0 -57
  253. package/dist/esm2022/lib/producers/socket-receive-methods/ban-participant.service.mjs +0 -76
  254. package/dist/esm2022/lib/producers/socket-receive-methods/control-media-host.service.mjs +0 -183
  255. package/dist/esm2022/lib/producers/socket-receive-methods/disconnect-user-self.service.mjs +0 -50
  256. package/dist/esm2022/lib/producers/socket-receive-methods/disconnect.service.mjs +0 -64
  257. package/dist/esm2022/lib/producers/socket-receive-methods/get-domains.service.mjs +0 -78
  258. package/dist/esm2022/lib/producers/socket-receive-methods/host-request-response.service.mjs +0 -150
  259. package/dist/esm2022/lib/producers/socket-receive-methods/meeting-ended.service.mjs +0 -73
  260. package/dist/esm2022/lib/producers/socket-receive-methods/meeting-still-there.service.mjs +0 -47
  261. package/dist/esm2022/lib/producers/socket-receive-methods/meeting-time-remaining.service.mjs +0 -63
  262. package/dist/esm2022/lib/producers/socket-receive-methods/participant-requested.service.mjs +0 -63
  263. package/dist/esm2022/lib/producers/socket-receive-methods/person-joined.service.mjs +0 -54
  264. package/dist/esm2022/lib/producers/socket-receive-methods/producer-media-closed.service.mjs +0 -129
  265. package/dist/esm2022/lib/producers/socket-receive-methods/producer-media-paused.service.mjs +0 -152
  266. package/dist/esm2022/lib/producers/socket-receive-methods/producer-media-resumed.service.mjs +0 -99
  267. package/dist/esm2022/lib/producers/socket-receive-methods/re-initiate-recording.service.mjs +0 -67
  268. package/dist/esm2022/lib/producers/socket-receive-methods/receive-message.service.mjs +0 -134
  269. package/dist/esm2022/lib/producers/socket-receive-methods/recording-notice.service.mjs +0 -233
  270. package/dist/esm2022/lib/producers/socket-receive-methods/room-record-params.service.mjs +0 -121
  271. package/dist/esm2022/lib/producers/socket-receive-methods/screen-producer-id.service.mjs +0 -86
  272. package/dist/esm2022/lib/producers/socket-receive-methods/start-records.service.mjs +0 -60
  273. package/dist/esm2022/lib/producers/socket-receive-methods/stopped-recording.service.mjs +0 -62
  274. package/dist/esm2022/lib/producers/socket-receive-methods/time-left-recording.service.mjs +0 -57
  275. package/dist/esm2022/lib/producers/socket-receive-methods/update-consuming-domains.service.mjs +0 -105
  276. package/dist/esm2022/lib/producers/socket-receive-methods/update-media-settings.service.mjs +0 -66
  277. package/dist/esm2022/lib/producers/socket-receive-methods/updated-co-host.service.mjs +0 -96
  278. package/dist/esm2022/lib/producers/socket-receive-methods/user-waiting.service.mjs +0 -52
  279. package/dist/esm2022/lib/sockets/socket-manager.service.mjs +0 -113
  280. package/dist/esm2022/mediasfu-angular.mjs +0 -5
  281. package/dist/esm2022/public-api.mjs +0 -187
@@ -1,69 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- /**
4
- * Asynchronously retrieves and updates messages for a specified room from the server.
5
- *
6
- * This method communicates with the server to request messages for a specific room and updates the messages array accordingly.
7
- *
8
- * @param {ReceiveRoomMessagesOptions} options - The function parameters.
9
- * @param {Socket} options.socket - The socket instance used for communication.
10
- * @param {string} options.roomName - The name of the room to retrieve messages for.
11
- * @param {function} options.updateMessages - Function to update the messages array with the retrieved messages.
12
- *
13
- * @returns {Promise<void>} A promise that resolves when the messages have been successfully retrieved and updated.
14
- *
15
- * @throws Will log an error message if an error occurs during the process of retrieving messages.
16
- *
17
- * @example
18
- * ```typescript
19
- * const options = {
20
- * socket: socketInstance,
21
- * roomName: 'Room1',
22
- * updateMessages: (messages) => {
23
- * // Logic to update messages
24
- * },
25
- * };
26
- *
27
- * await receiveRoomMessages(options);
28
- * ```
29
- */
30
- export class ReceiveRoomMessages {
31
- /**
32
- * Asynchronously retrieves and updates messages for a specified room from the server.
33
- *
34
- * @param {object} options - The function parameters.
35
- * @param {object} options.parameters - Additional parameters needed for the function.
36
- * @param {string} options.parameters.roomName - The name of the room to retrieve messages for.
37
- * @param {function} options.parameters.updateMessages - Function to update the messages array.
38
- */
39
- async receiveRoomMessages({ socket, roomName, updateMessages, }) {
40
- try {
41
- // Retrieve messages from the server
42
- await new Promise((resolve, reject) => {
43
- socket.emit('getMessage', { roomName }, async ({ messages_ }) => {
44
- try {
45
- const updatedMessages = messages_;
46
- updateMessages(updatedMessages);
47
- resolve();
48
- }
49
- catch (err) {
50
- reject(err);
51
- }
52
- });
53
- });
54
- }
55
- catch (error) {
56
- // Handle errors if any
57
- console.log('Error tuning messages:', error.message);
58
- }
59
- }
60
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ReceiveRoomMessages, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
61
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ReceiveRoomMessages, providedIn: 'root' });
62
- }
63
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ReceiveRoomMessages, decorators: [{
64
- type: Injectable,
65
- args: [{
66
- providedIn: 'root',
67
- }]
68
- }] });
69
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjZWl2ZS1yb29tLW1lc3NhZ2VzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tZWRpYXNmdS1hbmd1bGFyL3NyYy9saWIvY29uc3VtZXJzL3JlY2VpdmUtcm9vbS1tZXNzYWdlcy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBWTNDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTBCRztBQUtILE1BQU0sT0FBTyxtQkFBbUI7SUFDOUI7Ozs7Ozs7T0FPRztJQUNILEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxFQUN4QixNQUFNLEVBQ04sUUFBUSxFQUNSLGNBQWMsR0FDYTtRQUMzQixJQUFJLENBQUM7WUFDSCxvQ0FBb0M7WUFDcEMsTUFBTSxJQUFJLE9BQU8sQ0FBTyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtnQkFDMUMsTUFBTSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsRUFBRSxRQUFRLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxTQUFTLEVBQTRCLEVBQUUsRUFBRTtvQkFDeEYsSUFBSSxDQUFDO3dCQUNILE1BQU0sZUFBZSxHQUFHLFNBQVMsQ0FBQzt3QkFDbEMsY0FBYyxDQUFDLGVBQWUsQ0FBQyxDQUFDO3dCQUNoQyxPQUFPLEVBQUUsQ0FBQztvQkFDWixDQUFDO29CQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7d0JBQ2IsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO29CQUNkLENBQUM7Z0JBQ0gsQ0FBQyxDQUFDLENBQUM7WUFDTCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7UUFBQyxPQUFPLEtBQVUsRUFBRSxDQUFDO1lBQ3BCLHVCQUF1QjtZQUN2QixPQUFPLENBQUMsR0FBRyxDQUFDLHdCQUF3QixFQUFFLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN2RCxDQUFDO0lBQ0gsQ0FBQzt1R0EvQlUsbUJBQW1COzJHQUFuQixtQkFBbUIsY0FGbEIsTUFBTTs7MkZBRVAsbUJBQW1CO2tCQUgvQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNvY2tldCB9IGZyb20gJ3NvY2tldC5pby1jbGllbnQnO1xuaW1wb3J0IHsgTWVzc2FnZSB9IGZyb20gJy4uL0B0eXBlcy90eXBlcyc7XG5leHBvcnQgaW50ZXJmYWNlIFJlY2VpdmVSb29tTWVzc2FnZXNPcHRpb25zIHtcbiAgc29ja2V0OiBTb2NrZXQ7XG4gIHJvb21OYW1lOiBzdHJpbmc7XG4gIHVwZGF0ZU1lc3NhZ2VzOiAobWVzc2FnZXM6IE1lc3NhZ2VbXSkgPT4gdm9pZDtcbn1cblxuLy8gRXhwb3J0IHRoZSB0eXBlIGRlZmluaXRpb24gZm9yIHRoZSBmdW5jdGlvblxuZXhwb3J0IHR5cGUgUmVjZWl2ZVJvb21NZXNzYWdlc1R5cGUgPSAob3B0aW9uczogUmVjZWl2ZVJvb21NZXNzYWdlc09wdGlvbnMpID0+IFByb21pc2U8dm9pZD47XG5cbi8qKlxuICogQXN5bmNocm9ub3VzbHkgcmV0cmlldmVzIGFuZCB1cGRhdGVzIG1lc3NhZ2VzIGZvciBhIHNwZWNpZmllZCByb29tIGZyb20gdGhlIHNlcnZlci5cbiAqXG4gKiBUaGlzIG1ldGhvZCBjb21tdW5pY2F0ZXMgd2l0aCB0aGUgc2VydmVyIHRvIHJlcXVlc3QgbWVzc2FnZXMgZm9yIGEgc3BlY2lmaWMgcm9vbSBhbmQgdXBkYXRlcyB0aGUgbWVzc2FnZXMgYXJyYXkgYWNjb3JkaW5nbHkuXG4gKlxuICogQHBhcmFtIHtSZWNlaXZlUm9vbU1lc3NhZ2VzT3B0aW9uc30gb3B0aW9ucyAtIFRoZSBmdW5jdGlvbiBwYXJhbWV0ZXJzLlxuICogQHBhcmFtIHtTb2NrZXR9IG9wdGlvbnMuc29ja2V0IC0gVGhlIHNvY2tldCBpbnN0YW5jZSB1c2VkIGZvciBjb21tdW5pY2F0aW9uLlxuICogQHBhcmFtIHtzdHJpbmd9IG9wdGlvbnMucm9vbU5hbWUgLSBUaGUgbmFtZSBvZiB0aGUgcm9vbSB0byByZXRyaWV2ZSBtZXNzYWdlcyBmb3IuXG4gKiBAcGFyYW0ge2Z1bmN0aW9ufSBvcHRpb25zLnVwZGF0ZU1lc3NhZ2VzIC0gRnVuY3Rpb24gdG8gdXBkYXRlIHRoZSBtZXNzYWdlcyBhcnJheSB3aXRoIHRoZSByZXRyaWV2ZWQgbWVzc2FnZXMuXG4gKlxuICogQHJldHVybnMge1Byb21pc2U8dm9pZD59IEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIG1lc3NhZ2VzIGhhdmUgYmVlbiBzdWNjZXNzZnVsbHkgcmV0cmlldmVkIGFuZCB1cGRhdGVkLlxuICpcbiAqIEB0aHJvd3MgV2lsbCBsb2cgYW4gZXJyb3IgbWVzc2FnZSBpZiBhbiBlcnJvciBvY2N1cnMgZHVyaW5nIHRoZSBwcm9jZXNzIG9mIHJldHJpZXZpbmcgbWVzc2FnZXMuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IG9wdGlvbnMgPSB7XG4gKiAgIHNvY2tldDogc29ja2V0SW5zdGFuY2UsXG4gKiAgIHJvb21OYW1lOiAnUm9vbTEnLFxuICogICB1cGRhdGVNZXNzYWdlczogKG1lc3NhZ2VzKSA9PiB7XG4gKiAgICAgLy8gTG9naWMgdG8gdXBkYXRlIG1lc3NhZ2VzXG4gKiAgIH0sXG4gKiB9O1xuICpcbiAqIGF3YWl0IHJlY2VpdmVSb29tTWVzc2FnZXMob3B0aW9ucyk7XG4gKiBgYGBcbiAqL1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgUmVjZWl2ZVJvb21NZXNzYWdlcyB7XG4gIC8qKlxuICAgKiBBc3luY2hyb25vdXNseSByZXRyaWV2ZXMgYW5kIHVwZGF0ZXMgbWVzc2FnZXMgZm9yIGEgc3BlY2lmaWVkIHJvb20gZnJvbSB0aGUgc2VydmVyLlxuICAgKlxuICAgKiBAcGFyYW0ge29iamVjdH0gb3B0aW9ucyAtIFRoZSBmdW5jdGlvbiBwYXJhbWV0ZXJzLlxuICAgKiBAcGFyYW0ge29iamVjdH0gb3B0aW9ucy5wYXJhbWV0ZXJzIC0gQWRkaXRpb25hbCBwYXJhbWV0ZXJzIG5lZWRlZCBmb3IgdGhlIGZ1bmN0aW9uLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gb3B0aW9ucy5wYXJhbWV0ZXJzLnJvb21OYW1lIC0gVGhlIG5hbWUgb2YgdGhlIHJvb20gdG8gcmV0cmlldmUgbWVzc2FnZXMgZm9yLlxuICAgKiBAcGFyYW0ge2Z1bmN0aW9ufSBvcHRpb25zLnBhcmFtZXRlcnMudXBkYXRlTWVzc2FnZXMgLSBGdW5jdGlvbiB0byB1cGRhdGUgdGhlIG1lc3NhZ2VzIGFycmF5LlxuICAgKi9cbiAgYXN5bmMgcmVjZWl2ZVJvb21NZXNzYWdlcyh7XG4gICAgc29ja2V0LFxuICAgIHJvb21OYW1lLFxuICAgIHVwZGF0ZU1lc3NhZ2VzLFxuICB9OiBSZWNlaXZlUm9vbU1lc3NhZ2VzT3B0aW9ucyk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRyeSB7XG4gICAgICAvLyBSZXRyaWV2ZSBtZXNzYWdlcyBmcm9tIHRoZSBzZXJ2ZXJcbiAgICAgIGF3YWl0IG5ldyBQcm9taXNlPHZvaWQ+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgc29ja2V0LmVtaXQoJ2dldE1lc3NhZ2UnLCB7IHJvb21OYW1lIH0sIGFzeW5jICh7IG1lc3NhZ2VzXyB9OiB7IG1lc3NhZ2VzXzogTWVzc2FnZVtdIH0pID0+IHtcbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgdXBkYXRlZE1lc3NhZ2VzID0gbWVzc2FnZXNfO1xuICAgICAgICAgICAgdXBkYXRlTWVzc2FnZXModXBkYXRlZE1lc3NhZ2VzKTtcbiAgICAgICAgICAgIHJlc29sdmUoKTtcbiAgICAgICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgIHJlamVjdChlcnIpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9IGNhdGNoIChlcnJvcjogYW55KSB7XG4gICAgICAvLyBIYW5kbGUgZXJyb3JzIGlmIGFueVxuICAgICAgY29uc29sZS5sb2coJ0Vycm9yIHR1bmluZyBtZXNzYWdlczonLCBlcnJvci5tZXNzYWdlKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -1,239 +0,0 @@
1
- /* eslint-disable @typescript-eslint/no-non-null-assertion */
2
- import { Injectable } from '@angular/core';
3
- import * as i0 from "@angular/core";
4
- /**
5
- * Reorders the video streams based on the provided options and updates the UI accordingly.
6
- *
7
- * This method handles the logic for reordering streams in a video conferencing application,
8
- * managing the addition and arrangement of streams based on various conditions such as
9
- * participant roles, screen sharing status, and current streams.
10
- *
11
- * @param {ReorderStreamsOptions} options - The options for reordering streams.
12
- * @param {boolean} [options.add=false] - Whether to add new streams or not.
13
- * @param {boolean} [options.screenChanged=false] - Whether the screen has changed or not.
14
- * @param {ReorderStreamsParameters} options.parameters - The parameters required for reordering streams.
15
- * @param {Array<Stream | Participant>} options.parameters.allVideoStreams - Array of all video streams.
16
- * @param {Array<Participant>} options.parameters.participants - Array of participants.
17
- * @param {Array<Stream | Participant>} options.parameters.oldAllStreams - Array of old streams.
18
- * @param {string} [options.parameters.screenId] - ID of the screen.
19
- * @param {string} [options.parameters.adminVidID] - ID of the admin video.
20
- * @param {Array<Stream | Participant>} options.parameters.newLimitedStreams - Array of new limited streams.
21
- * @param {Array<string>} options.parameters.newLimitedStreamsIDs - Array of new limited stream IDs.
22
- * @param {Array<string>} options.parameters.activeSounds - Array of active sounds.
23
- * @param {string} [options.parameters.screenShareIDStream] - ID of the screen share stream.
24
- * @param {string} [options.parameters.screenShareNameStream] - Name of the screen share stream.
25
- * @param {string} [options.parameters.adminIDStream] - ID of the admin stream.
26
- * @param {string} [options.parameters.adminNameStream] - Name of the admin stream.
27
- * @param {Function} options.parameters.updateNewLimitedStreams - Function to update new limited streams.
28
- * @param {Function} options.parameters.updateNewLimitedStreamsIDs - Function to update new limited stream IDs.
29
- * @param {Function} options.parameters.updateActiveSounds - Function to update active sounds.
30
- * @param {Function} options.parameters.updateScreenShareIDStream - Function to update screen share ID stream.
31
- * @param {Function} options.parameters.updateScreenShareNameStream - Function to update screen share name stream.
32
- * @param {Function} options.parameters.updateAdminIDStream - Function to update admin ID stream.
33
- * @param {Function} options.parameters.updateAdminNameStream - Function to update admin name stream.
34
- * @param {Function} options.parameters.updateYouYouStream - Function to update YouYou stream.
35
- * @param {Function} options.parameters.changeVids - Function to reflect changes on the UI.
36
- *
37
- * @returns {Promise<void>} A promise that resolves when the reordering is complete.
38
- *
39
- * @throws Will throw an error if there is an issue during the reordering process.
40
- *
41
- * @example
42
- * ```typescript
43
- * await reorderStreams({
44
- * add: true,
45
- * screenChanged: false,
46
- * parameters: {
47
- * allVideoStreams: [...],
48
- * participants: [...],
49
- * oldAllStreams: [...],
50
- * newLimitedStreams: [],
51
- * newLimitedStreamsIDs: [],
52
- * activeSounds: [],
53
- * updateNewLimitedStreams: (streams) => { console.log(updated) },
54
- * updateNewLimitedStreamsIDs: (ids) => { console.log(updated) },
55
- * updateActiveSounds: (sounds) => { console.log(updated) },
56
- * changeVids: async (options) => { },
57
- * // ...other parameters
58
- * },
59
- * });
60
- * ```
61
- */
62
- export class ReorderStreams {
63
- /**
64
- * Reorders the video streams based on the provided options and updates the UI accordingly.
65
- *
66
- * @param {Object} options - The options for reordering streams.
67
- * @param {boolean} [options.add=false] - Whether to add new streams or not.
68
- * @param {boolean} [options.screenChanged=false] - Whether the screen has changed or not.
69
- * @param {ReorderStreamsOptions} options.parameters - The parameters required for reordering streams.
70
- *
71
- * @returns {Promise<void>} A promise that resolves when the reordering is complete.
72
- *
73
- * @typedef {Object} ReorderStreamsOptions
74
- * @property {Function} getUpdatedAllParams - Function to get updated parameters.
75
- * @property {Array} allVideoStreams - Array of all video streams.
76
- * @property {Array} participants - Array of participants.
77
- * @property {Array} oldAllStreams - Array of old streams.
78
- * @property {string} screenId - ID of the screen.
79
- * @property {string} adminVidID - ID of the admin video.
80
- * @property {Array} newLimitedStreams - Array of new limited streams.
81
- * @property {Array} newLimitedStreamsIDs - Array of new limited stream IDs.
82
- * @property {Array} activeSounds - Array of active sounds.
83
- * @property {string} screenShareIDStream - ID of the screen share stream.
84
- * @property {string} screenShareNameStream - Name of the screen share stream.
85
- * @property {string} adminIDStream - ID of the admin stream.
86
- * @property {string} adminNameStream - Name of the admin stream.
87
- * @property {Function} updateNewLimitedStreams - Function to update new limited streams.
88
- * @property {Function} updateNewLimitedStreamsIDs - Function to update new limited stream IDs.
89
- * @property {Function} updateActiveSounds - Function to update active sounds.
90
- * @property {Function} updateScreenShareIDStream - Function to update screen share ID stream.
91
- * @property {Function} updateScreenShareNameStream - Function to update screen share name stream.
92
- * @property {Function} updateAdminIDStream - Function to update admin ID stream.
93
- * @property {Function} updateAdminNameStream - Function to update admin name stream.
94
- * @property {Function} updateYouYouStream - Function to update YouYou stream.
95
- * @property {Function} changeVids - Function to reflect changes on the UI.
96
- */
97
- reorderStreams = async ({ add = false, screenChanged = false, parameters, }) => {
98
- let { getUpdatedAllParams } = parameters;
99
- parameters = getUpdatedAllParams();
100
- let { allVideoStreams, participants, oldAllStreams, screenId, adminVidID, newLimitedStreams, newLimitedStreamsIDs, activeSounds, screenShareIDStream, screenShareNameStream, adminIDStream, adminNameStream, updateNewLimitedStreams, updateNewLimitedStreamsIDs, updateActiveSounds, updateScreenShareIDStream, updateScreenShareNameStream, updateAdminIDStream, updateAdminNameStream, updateYouYouStream,
101
- //mediasfu functions
102
- changeVids, } = parameters;
103
- // function to reorder streams on the ui
104
- if (!add) {
105
- newLimitedStreams = [];
106
- newLimitedStreamsIDs = [];
107
- activeSounds = [];
108
- }
109
- const youyou = allVideoStreams.filter((stream) => stream.producerId === 'youyou');
110
- const admin = participants.filter((participant) => participant.islevel === '2');
111
- if (admin.length > 0) {
112
- adminVidID = admin[0].videoID;
113
- }
114
- else {
115
- adminVidID = '';
116
- }
117
- if (adminVidID) {
118
- const adminStream = allVideoStreams.find((stream) => stream.producerId === adminVidID);
119
- if (!add) {
120
- newLimitedStreams = [...newLimitedStreams, ...youyou];
121
- newLimitedStreamsIDs = [
122
- ...newLimitedStreamsIDs,
123
- ...youyou.map((stream) => stream.producerId),
124
- ];
125
- }
126
- else {
127
- const youyouStream = newLimitedStreams.find((stream) => stream.producerId === 'youyou');
128
- if (!youyouStream) {
129
- newLimitedStreams = [...newLimitedStreams, ...youyou];
130
- newLimitedStreamsIDs = [
131
- ...newLimitedStreamsIDs,
132
- ...youyou.map((stream) => stream.producerId),
133
- ];
134
- }
135
- }
136
- if (adminStream) {
137
- adminIDStream = adminVidID;
138
- if (!add) {
139
- newLimitedStreams = [...newLimitedStreams, adminStream];
140
- newLimitedStreamsIDs = [...newLimitedStreamsIDs, adminStream.producerId];
141
- }
142
- else {
143
- const adminStreamer = newLimitedStreams.find((stream) => stream.producerId === adminVidID);
144
- if (!adminStreamer) {
145
- newLimitedStreams = [...newLimitedStreams, adminStream];
146
- newLimitedStreamsIDs = [...newLimitedStreamsIDs, adminStream.producerId];
147
- }
148
- }
149
- }
150
- else {
151
- const oldAdminStream = oldAllStreams.find((stream) => stream.producerId === adminVidID);
152
- if (oldAdminStream) {
153
- //add it to the allVideoStream
154
- adminIDStream = adminVidID;
155
- adminNameStream = admin[0].name;
156
- if (!add) {
157
- newLimitedStreams = [...newLimitedStreams, oldAdminStream];
158
- newLimitedStreamsIDs = [...newLimitedStreamsIDs, oldAdminStream.producerId];
159
- }
160
- else {
161
- const adminStreamer = newLimitedStreams.find((stream) => stream.producerId === adminVidID);
162
- if (!adminStreamer) {
163
- newLimitedStreams = [...newLimitedStreams, oldAdminStream];
164
- newLimitedStreamsIDs = [...newLimitedStreamsIDs, oldAdminStream.producerId];
165
- }
166
- }
167
- }
168
- }
169
- const screenParticipant = participants.filter((participant) => participant.ScreenID === screenId);
170
- if (screenParticipant.length > 0) {
171
- const screenParticipantVidID = screenParticipant[0].videoID;
172
- const screenParticipantVidID_ = newLimitedStreams.filter((stream) => stream.producerId === screenParticipantVidID);
173
- if (screenParticipantVidID_?.length < 1 && screenParticipantVidID) {
174
- screenShareIDStream = screenParticipantVidID;
175
- screenShareNameStream = screenParticipant[0].name;
176
- const screenParticipantVidID__ = allVideoStreams.filter((stream) => stream.producerId === screenParticipantVidID);
177
- newLimitedStreams = [...newLimitedStreams, ...screenParticipantVidID__];
178
- newLimitedStreamsIDs = [
179
- ...newLimitedStreamsIDs,
180
- ...screenParticipantVidID__.map((stream) => stream.producerId),
181
- ];
182
- }
183
- }
184
- }
185
- else {
186
- if (!add) {
187
- newLimitedStreams = [...newLimitedStreams, ...youyou];
188
- newLimitedStreamsIDs = [
189
- ...newLimitedStreamsIDs,
190
- ...youyou.map((stream) => stream.producerId),
191
- ];
192
- }
193
- else {
194
- const youyouStream = newLimitedStreams.find((stream) => stream.producerId === 'youyou');
195
- if (!youyouStream) {
196
- newLimitedStreams = [...newLimitedStreams, ...youyou];
197
- newLimitedStreamsIDs = [
198
- ...newLimitedStreamsIDs,
199
- ...youyou.map((stream) => stream.producerId),
200
- ];
201
- }
202
- }
203
- const screenParticipant = participants.filter((participant) => participant.ScreenID === screenId);
204
- if (screenParticipant.length > 0) {
205
- const screenParticipantVidID = screenParticipant[0].videoID;
206
- const screenParticipantVidID_ = newLimitedStreams.filter((stream) => stream.producerId === screenParticipantVidID);
207
- if (screenParticipantVidID_?.length < 1 && screenParticipantVidID) {
208
- screenShareIDStream = screenParticipantVidID;
209
- screenShareNameStream = screenParticipant[0].name;
210
- const screenParticipantVidID__ = allVideoStreams.filter((stream) => stream.producerId === screenParticipantVidID);
211
- newLimitedStreams = [...newLimitedStreams, ...screenParticipantVidID__];
212
- newLimitedStreamsIDs = [
213
- ...newLimitedStreamsIDs,
214
- ...screenParticipantVidID__.map((stream) => stream.producerId),
215
- ];
216
- }
217
- }
218
- }
219
- updateNewLimitedStreams(newLimitedStreams);
220
- updateNewLimitedStreamsIDs(newLimitedStreamsIDs);
221
- updateActiveSounds(activeSounds);
222
- updateScreenShareIDStream(screenShareIDStream);
223
- updateScreenShareNameStream(screenShareNameStream);
224
- updateAdminIDStream(adminIDStream);
225
- updateAdminNameStream(adminNameStream);
226
- updateYouYouStream(youyou);
227
- //reflect the changes on the ui
228
- await changeVids({ screenChanged, parameters });
229
- };
230
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ReorderStreams, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
231
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ReorderStreams, providedIn: 'root' });
232
- }
233
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ReorderStreams, decorators: [{
234
- type: Injectable,
235
- args: [{
236
- providedIn: 'root',
237
- }]
238
- }] });
239
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVvcmRlci1zdHJlYW1zLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tZWRpYXNmdS1hbmd1bGFyL3NyYy9saWIvY29uc3VtZXJzL3Jlb3JkZXItc3RyZWFtcy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDZEQUE2RDtBQUM3RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQXVDM0M7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXlERztBQU1ILE1BQU0sT0FBTyxjQUFjO0lBQ3pCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7T0FpQ0c7SUFFSCxjQUFjLEdBQUcsS0FBSyxFQUFFLEVBQ3RCLEdBQUcsR0FBRyxLQUFLLEVBQ1gsYUFBYSxHQUFHLEtBQUssRUFDckIsVUFBVSxHQUNZLEVBQWlCLEVBQUU7UUFDekMsSUFBSSxFQUFFLG1CQUFtQixFQUFFLEdBQUcsVUFBVSxDQUFDO1FBQ3pDLFVBQVUsR0FBRyxtQkFBbUIsRUFBRSxDQUFDO1FBRW5DLElBQUksRUFDRixlQUFlLEVBQ2YsWUFBWSxFQUNaLGFBQWEsRUFDYixRQUFRLEVBQ1IsVUFBVSxFQUNWLGlCQUFpQixFQUNqQixvQkFBb0IsRUFDcEIsWUFBWSxFQUNaLG1CQUFtQixFQUNuQixxQkFBcUIsRUFDckIsYUFBYSxFQUNiLGVBQWUsRUFDZix1QkFBdUIsRUFDdkIsMEJBQTBCLEVBQzFCLGtCQUFrQixFQUNsQix5QkFBeUIsRUFDekIsMkJBQTJCLEVBQzNCLG1CQUFtQixFQUNuQixxQkFBcUIsRUFDckIsa0JBQWtCO1FBRWxCLG9CQUFvQjtRQUNwQixVQUFVLEdBQ1gsR0FBRyxVQUFVLENBQUM7UUFFZix3Q0FBd0M7UUFDeEMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ1QsaUJBQWlCLEdBQUcsRUFBRSxDQUFDO1lBQ3ZCLG9CQUFvQixHQUFHLEVBQUUsQ0FBQztZQUMxQixZQUFZLEdBQUcsRUFBRSxDQUFDO1FBQ3BCLENBQUM7UUFFRCxNQUFNLE1BQU0sR0FBRyxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsVUFBVSxLQUFLLFFBQVEsQ0FBQyxDQUFDO1FBQ2xGLE1BQU0sS0FBSyxHQUFHLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDLFdBQVcsQ0FBQyxPQUFPLEtBQUssR0FBRyxDQUFDLENBQUM7UUFFaEYsSUFBSSxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3JCLFVBQVUsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDO1FBQ2hDLENBQUM7YUFBTSxDQUFDO1lBQ04sVUFBVSxHQUFHLEVBQUUsQ0FBQztRQUNsQixDQUFDO1FBRUQsSUFBSSxVQUFVLEVBQUUsQ0FBQztZQUNmLE1BQU0sV0FBVyxHQUFHLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEtBQUssVUFBVSxDQUFDLENBQUM7WUFFdkYsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO2dCQUNULGlCQUFpQixHQUFHLENBQUMsR0FBRyxpQkFBaUIsRUFBRSxHQUFHLE1BQU0sQ0FBQyxDQUFDO2dCQUN0RCxvQkFBb0IsR0FBRztvQkFDckIsR0FBRyxvQkFBb0I7b0JBQ3ZCLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQztpQkFDN0MsQ0FBQztZQUNKLENBQUM7aUJBQU0sQ0FBQztnQkFDTixNQUFNLFlBQVksR0FBRyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEtBQUssUUFBUSxDQUFDLENBQUM7Z0JBRXhGLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztvQkFDbEIsaUJBQWlCLEdBQUcsQ0FBQyxHQUFHLGlCQUFpQixFQUFFLEdBQUcsTUFBTSxDQUFDLENBQUM7b0JBQ3RELG9CQUFvQixHQUFHO3dCQUNyQixHQUFHLG9CQUFvQjt3QkFDdkIsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDO3FCQUM3QyxDQUFDO2dCQUNKLENBQUM7WUFDSCxDQUFDO1lBRUQsSUFBSSxXQUFXLEVBQUUsQ0FBQztnQkFDaEIsYUFBYSxHQUFHLFVBQVUsQ0FBQztnQkFFM0IsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO29CQUNULGlCQUFpQixHQUFHLENBQUMsR0FBRyxpQkFBaUIsRUFBRSxXQUFXLENBQUMsQ0FBQztvQkFDeEQsb0JBQW9CLEdBQUcsQ0FBQyxHQUFHLG9CQUFvQixFQUFFLFdBQVcsQ0FBQyxVQUFVLENBQUMsQ0FBQztnQkFDM0UsQ0FBQztxQkFBTSxDQUFDO29CQUNOLE1BQU0sYUFBYSxHQUFHLGlCQUFpQixDQUFDLElBQUksQ0FDMUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEtBQUssVUFBVSxDQUM3QyxDQUFDO29CQUVGLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQzt3QkFDbkIsaUJBQWlCLEdBQUcsQ0FBQyxHQUFHLGlCQUFpQixFQUFFLFdBQVcsQ0FBQyxDQUFDO3dCQUN4RCxvQkFBb0IsR0FBRyxDQUFDLEdBQUcsb0JBQW9CLEVBQUUsV0FBVyxDQUFDLFVBQVUsQ0FBQyxDQUFDO29CQUMzRSxDQUFDO2dCQUNILENBQUM7WUFDSCxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sTUFBTSxjQUFjLEdBQUcsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLFVBQVUsS0FBSyxVQUFVLENBQUMsQ0FBQztnQkFFeEYsSUFBSSxjQUFjLEVBQUUsQ0FBQztvQkFDbkIsOEJBQThCO29CQUU5QixhQUFhLEdBQUcsVUFBVSxDQUFDO29CQUMzQixlQUFlLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztvQkFFaEMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO3dCQUNULGlCQUFpQixHQUFHLENBQUMsR0FBRyxpQkFBaUIsRUFBRSxjQUFjLENBQUMsQ0FBQzt3QkFDM0Qsb0JBQW9CLEdBQUcsQ0FBQyxHQUFHLG9CQUFvQixFQUFFLGNBQWMsQ0FBQyxVQUFVLENBQUMsQ0FBQztvQkFDOUUsQ0FBQzt5QkFBTSxDQUFDO3dCQUNOLE1BQU0sYUFBYSxHQUFHLGlCQUFpQixDQUFDLElBQUksQ0FDMUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEtBQUssVUFBVSxDQUM3QyxDQUFDO3dCQUVGLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQzs0QkFDbkIsaUJBQWlCLEdBQUcsQ0FBQyxHQUFHLGlCQUFpQixFQUFFLGNBQWMsQ0FBQyxDQUFDOzRCQUMzRCxvQkFBb0IsR0FBRyxDQUFDLEdBQUcsb0JBQW9CLEVBQUUsY0FBYyxDQUFDLFVBQVUsQ0FBQyxDQUFDO3dCQUM5RSxDQUFDO29CQUNILENBQUM7Z0JBQ0gsQ0FBQztZQUNILENBQUM7WUFFRCxNQUFNLGlCQUFpQixHQUFHLFlBQVksQ0FBQyxNQUFNLENBQzNDLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQyxXQUFXLENBQUMsUUFBUSxLQUFLLFFBQVEsQ0FDbkQsQ0FBQztZQUVGLElBQUksaUJBQWlCLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUNqQyxNQUFNLHNCQUFzQixHQUFHLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQztnQkFDNUQsTUFBTSx1QkFBdUIsR0FBRyxpQkFBaUIsQ0FBQyxNQUFNLENBQ3RELENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsVUFBVSxLQUFLLHNCQUFzQixDQUN6RCxDQUFDO2dCQUVGLElBQUksdUJBQXVCLEVBQUUsTUFBTSxHQUFHLENBQUMsSUFBSSxzQkFBc0IsRUFBRSxDQUFDO29CQUNsRSxtQkFBbUIsR0FBRyxzQkFBc0IsQ0FBQztvQkFDN0MscUJBQXFCLEdBQUcsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO29CQUNsRCxNQUFNLHdCQUF3QixHQUFHLGVBQWUsQ0FBQyxNQUFNLENBQ3JELENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsVUFBVSxLQUFLLHNCQUFzQixDQUN6RCxDQUFDO29CQUNGLGlCQUFpQixHQUFHLENBQUMsR0FBRyxpQkFBaUIsRUFBRSxHQUFHLHdCQUF3QixDQUFDLENBQUM7b0JBQ3hFLG9CQUFvQixHQUFHO3dCQUNyQixHQUFHLG9CQUFvQjt3QkFDdkIsR0FBRyx3QkFBd0IsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUM7cUJBQy9ELENBQUM7Z0JBQ0osQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztnQkFDVCxpQkFBaUIsR0FBRyxDQUFDLEdBQUcsaUJBQWlCLEVBQUUsR0FBRyxNQUFNLENBQUMsQ0FBQztnQkFDdEQsb0JBQW9CLEdBQUc7b0JBQ3JCLEdBQUcsb0JBQW9CO29CQUN2QixHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUM7aUJBQzdDLENBQUM7WUFDSixDQUFDO2lCQUFNLENBQUM7Z0JBQ04sTUFBTSxZQUFZLEdBQUcsaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsVUFBVSxLQUFLLFFBQVEsQ0FBQyxDQUFDO2dCQUV4RixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7b0JBQ2xCLGlCQUFpQixHQUFHLENBQUMsR0FBRyxpQkFBaUIsRUFBRSxHQUFHLE1BQU0sQ0FBQyxDQUFDO29CQUN0RCxvQkFBb0IsR0FBRzt3QkFDckIsR0FBRyxvQkFBb0I7d0JBQ3ZCLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQztxQkFDN0MsQ0FBQztnQkFDSixDQUFDO1lBQ0gsQ0FBQztZQUVELE1BQU0saUJBQWlCLEdBQUcsWUFBWSxDQUFDLE1BQU0sQ0FDM0MsQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDLFdBQVcsQ0FBQyxRQUFRLEtBQUssUUFBUSxDQUNuRCxDQUFDO1lBRUYsSUFBSSxpQkFBaUIsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQ2pDLE1BQU0sc0JBQXNCLEdBQUcsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDO2dCQUM1RCxNQUFNLHVCQUF1QixHQUFHLGlCQUFpQixDQUFDLE1BQU0sQ0FDdEQsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEtBQUssc0JBQXNCLENBQ3pELENBQUM7Z0JBRUYsSUFBSSx1QkFBdUIsRUFBRSxNQUFNLEdBQUcsQ0FBQyxJQUFJLHNCQUFzQixFQUFFLENBQUM7b0JBQ2xFLG1CQUFtQixHQUFHLHNCQUFzQixDQUFDO29CQUM3QyxxQkFBcUIsR0FBRyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7b0JBQ2xELE1BQU0sd0JBQXdCLEdBQUcsZUFBZSxDQUFDLE1BQU0sQ0FDckQsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEtBQUssc0JBQXNCLENBQ3pELENBQUM7b0JBQ0YsaUJBQWlCLEdBQUcsQ0FBQyxHQUFHLGlCQUFpQixFQUFFLEdBQUcsd0JBQXdCLENBQUMsQ0FBQztvQkFDeEUsb0JBQW9CLEdBQUc7d0JBQ3JCLEdBQUcsb0JBQW9CO3dCQUN2QixHQUFHLHdCQUF3QixDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQztxQkFDL0QsQ0FBQztnQkFDSixDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUM7UUFFRCx1QkFBdUIsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQzNDLDBCQUEwQixDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFDakQsa0JBQWtCLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDakMseUJBQXlCLENBQUMsbUJBQW9CLENBQUMsQ0FBQztRQUNoRCwyQkFBMkIsQ0FBQyxxQkFBc0IsQ0FBQyxDQUFDO1FBQ3BELG1CQUFtQixDQUFDLGFBQWMsQ0FBQyxDQUFDO1FBQ3BDLHFCQUFxQixDQUFDLGVBQWdCLENBQUMsQ0FBQztRQUN4QyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUUzQiwrQkFBK0I7UUFDL0IsTUFBTSxVQUFVLENBQUMsRUFBRSxhQUFhLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQztJQUNsRCxDQUFDLENBQUM7dUdBbE9TLGNBQWM7MkdBQWQsY0FBYyxjQUZiLE1BQU07OzJGQUVQLGNBQWM7a0JBSDFCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLW5vbi1udWxsLWFzc2VydGlvbiAqL1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUGFydGljaXBhbnQsIFN0cmVhbSwgQ2hhbmdlVmlkc1BhcmFtZXRlcnMsIENoYW5nZVZpZHNUeXBlIH0gZnJvbSAnLi4vQHR5cGVzL3R5cGVzJztcblxuZXhwb3J0IGludGVyZmFjZSBSZW9yZGVyU3RyZWFtc1BhcmFtZXRlcnMgZXh0ZW5kcyBDaGFuZ2VWaWRzUGFyYW1ldGVycyB7XG4gIGFsbFZpZGVvU3RyZWFtczogKFN0cmVhbSB8IFBhcnRpY2lwYW50KVtdO1xuICBwYXJ0aWNpcGFudHM6IFBhcnRpY2lwYW50W107XG4gIG9sZEFsbFN0cmVhbXM6IChTdHJlYW0gfCBQYXJ0aWNpcGFudClbXTtcbiAgc2NyZWVuSWQ/OiBzdHJpbmc7XG4gIGFkbWluVmlkSUQ/OiBzdHJpbmc7XG4gIG5ld0xpbWl0ZWRTdHJlYW1zOiAoU3RyZWFtIHwgUGFydGljaXBhbnQpW107XG4gIG5ld0xpbWl0ZWRTdHJlYW1zSURzOiBzdHJpbmdbXTtcbiAgYWN0aXZlU291bmRzOiBzdHJpbmdbXTtcbiAgc2NyZWVuU2hhcmVJRFN0cmVhbT86IHN0cmluZztcbiAgc2NyZWVuU2hhcmVOYW1lU3RyZWFtPzogc3RyaW5nO1xuICBhZG1pbklEU3RyZWFtPzogc3RyaW5nO1xuICBhZG1pbk5hbWVTdHJlYW0/OiBzdHJpbmc7XG4gIHVwZGF0ZU5ld0xpbWl0ZWRTdHJlYW1zOiAoc3RyZWFtczogKFN0cmVhbSB8IFBhcnRpY2lwYW50KVtdKSA9PiB2b2lkO1xuICB1cGRhdGVOZXdMaW1pdGVkU3RyZWFtc0lEczogKGlkczogc3RyaW5nW10pID0+IHZvaWQ7XG4gIHVwZGF0ZUFjdGl2ZVNvdW5kczogKHNvdW5kczogc3RyaW5nW10pID0+IHZvaWQ7XG4gIHVwZGF0ZVNjcmVlblNoYXJlSURTdHJlYW06IChpZDogc3RyaW5nKSA9PiB2b2lkO1xuICB1cGRhdGVTY3JlZW5TaGFyZU5hbWVTdHJlYW06IChuYW1lOiBzdHJpbmcpID0+IHZvaWQ7XG4gIHVwZGF0ZUFkbWluSURTdHJlYW06IChpZDogc3RyaW5nKSA9PiB2b2lkO1xuICB1cGRhdGVBZG1pbk5hbWVTdHJlYW06IChuYW1lOiBzdHJpbmcpID0+IHZvaWQ7XG4gIHVwZGF0ZVlvdVlvdVN0cmVhbTogKHN0cmVhbXM6IChTdHJlYW0gfCBQYXJ0aWNpcGFudClbXSkgPT4gdm9pZDtcblxuICAvLyBtZWRpYXNmdSBmdW5jdGlvbnNcbiAgY2hhbmdlVmlkczogQ2hhbmdlVmlkc1R5cGU7XG4gIGdldFVwZGF0ZWRBbGxQYXJhbXM6ICgpID0+IFJlb3JkZXJTdHJlYW1zUGFyYW1ldGVycztcbiAgW2tleTogc3RyaW5nXTogYW55O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJlb3JkZXJTdHJlYW1zT3B0aW9ucyB7XG4gIGFkZD86IGJvb2xlYW47XG4gIHNjcmVlbkNoYW5nZWQ/OiBib29sZWFuO1xuICBwYXJhbWV0ZXJzOiBSZW9yZGVyU3RyZWFtc1BhcmFtZXRlcnM7XG59XG5cbmV4cG9ydCB0eXBlIFJlb3JkZXJTdHJlYW1zVHlwZSA9IChvcHRpb25zOiBSZW9yZGVyU3RyZWFtc09wdGlvbnMpID0+IFByb21pc2U8dm9pZD47XG5cbi8qKlxuICogUmVvcmRlcnMgdGhlIHZpZGVvIHN0cmVhbXMgYmFzZWQgb24gdGhlIHByb3ZpZGVkIG9wdGlvbnMgYW5kIHVwZGF0ZXMgdGhlIFVJIGFjY29yZGluZ2x5LlxuICpcbiAqIFRoaXMgbWV0aG9kIGhhbmRsZXMgdGhlIGxvZ2ljIGZvciByZW9yZGVyaW5nIHN0cmVhbXMgaW4gYSB2aWRlbyBjb25mZXJlbmNpbmcgYXBwbGljYXRpb24sXG4gKiBtYW5hZ2luZyB0aGUgYWRkaXRpb24gYW5kIGFycmFuZ2VtZW50IG9mIHN0cmVhbXMgYmFzZWQgb24gdmFyaW91cyBjb25kaXRpb25zIHN1Y2ggYXNcbiAqIHBhcnRpY2lwYW50IHJvbGVzLCBzY3JlZW4gc2hhcmluZyBzdGF0dXMsIGFuZCBjdXJyZW50IHN0cmVhbXMuXG4gKlxuICogQHBhcmFtIHtSZW9yZGVyU3RyZWFtc09wdGlvbnN9IG9wdGlvbnMgLSBUaGUgb3B0aW9ucyBmb3IgcmVvcmRlcmluZyBzdHJlYW1zLlxuICogQHBhcmFtIHtib29sZWFufSBbb3B0aW9ucy5hZGQ9ZmFsc2VdIC0gV2hldGhlciB0byBhZGQgbmV3IHN0cmVhbXMgb3Igbm90LlxuICogQHBhcmFtIHtib29sZWFufSBbb3B0aW9ucy5zY3JlZW5DaGFuZ2VkPWZhbHNlXSAtIFdoZXRoZXIgdGhlIHNjcmVlbiBoYXMgY2hhbmdlZCBvciBub3QuXG4gKiBAcGFyYW0ge1Jlb3JkZXJTdHJlYW1zUGFyYW1ldGVyc30gb3B0aW9ucy5wYXJhbWV0ZXJzIC0gVGhlIHBhcmFtZXRlcnMgcmVxdWlyZWQgZm9yIHJlb3JkZXJpbmcgc3RyZWFtcy5cbiAqIEBwYXJhbSB7QXJyYXk8U3RyZWFtIHwgUGFydGljaXBhbnQ+fSBvcHRpb25zLnBhcmFtZXRlcnMuYWxsVmlkZW9TdHJlYW1zIC0gQXJyYXkgb2YgYWxsIHZpZGVvIHN0cmVhbXMuXG4gKiBAcGFyYW0ge0FycmF5PFBhcnRpY2lwYW50Pn0gb3B0aW9ucy5wYXJhbWV0ZXJzLnBhcnRpY2lwYW50cyAtIEFycmF5IG9mIHBhcnRpY2lwYW50cy5cbiAqIEBwYXJhbSB7QXJyYXk8U3RyZWFtIHwgUGFydGljaXBhbnQ+fSBvcHRpb25zLnBhcmFtZXRlcnMub2xkQWxsU3RyZWFtcyAtIEFycmF5IG9mIG9sZCBzdHJlYW1zLlxuICogQHBhcmFtIHtzdHJpbmd9IFtvcHRpb25zLnBhcmFtZXRlcnMuc2NyZWVuSWRdIC0gSUQgb2YgdGhlIHNjcmVlbi5cbiAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0aW9ucy5wYXJhbWV0ZXJzLmFkbWluVmlkSURdIC0gSUQgb2YgdGhlIGFkbWluIHZpZGVvLlxuICogQHBhcmFtIHtBcnJheTxTdHJlYW0gfCBQYXJ0aWNpcGFudD59IG9wdGlvbnMucGFyYW1ldGVycy5uZXdMaW1pdGVkU3RyZWFtcyAtIEFycmF5IG9mIG5ldyBsaW1pdGVkIHN0cmVhbXMuXG4gKiBAcGFyYW0ge0FycmF5PHN0cmluZz59IG9wdGlvbnMucGFyYW1ldGVycy5uZXdMaW1pdGVkU3RyZWFtc0lEcyAtIEFycmF5IG9mIG5ldyBsaW1pdGVkIHN0cmVhbSBJRHMuXG4gKiBAcGFyYW0ge0FycmF5PHN0cmluZz59IG9wdGlvbnMucGFyYW1ldGVycy5hY3RpdmVTb3VuZHMgLSBBcnJheSBvZiBhY3RpdmUgc291bmRzLlxuICogQHBhcmFtIHtzdHJpbmd9IFtvcHRpb25zLnBhcmFtZXRlcnMuc2NyZWVuU2hhcmVJRFN0cmVhbV0gLSBJRCBvZiB0aGUgc2NyZWVuIHNoYXJlIHN0cmVhbS5cbiAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0aW9ucy5wYXJhbWV0ZXJzLnNjcmVlblNoYXJlTmFtZVN0cmVhbV0gLSBOYW1lIG9mIHRoZSBzY3JlZW4gc2hhcmUgc3RyZWFtLlxuICogQHBhcmFtIHtzdHJpbmd9IFtvcHRpb25zLnBhcmFtZXRlcnMuYWRtaW5JRFN0cmVhbV0gLSBJRCBvZiB0aGUgYWRtaW4gc3RyZWFtLlxuICogQHBhcmFtIHtzdHJpbmd9IFtvcHRpb25zLnBhcmFtZXRlcnMuYWRtaW5OYW1lU3RyZWFtXSAtIE5hbWUgb2YgdGhlIGFkbWluIHN0cmVhbS5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IG9wdGlvbnMucGFyYW1ldGVycy51cGRhdGVOZXdMaW1pdGVkU3RyZWFtcyAtIEZ1bmN0aW9uIHRvIHVwZGF0ZSBuZXcgbGltaXRlZCBzdHJlYW1zLlxuICogQHBhcmFtIHtGdW5jdGlvbn0gb3B0aW9ucy5wYXJhbWV0ZXJzLnVwZGF0ZU5ld0xpbWl0ZWRTdHJlYW1zSURzIC0gRnVuY3Rpb24gdG8gdXBkYXRlIG5ldyBsaW1pdGVkIHN0cmVhbSBJRHMuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBvcHRpb25zLnBhcmFtZXRlcnMudXBkYXRlQWN0aXZlU291bmRzIC0gRnVuY3Rpb24gdG8gdXBkYXRlIGFjdGl2ZSBzb3VuZHMuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBvcHRpb25zLnBhcmFtZXRlcnMudXBkYXRlU2NyZWVuU2hhcmVJRFN0cmVhbSAtIEZ1bmN0aW9uIHRvIHVwZGF0ZSBzY3JlZW4gc2hhcmUgSUQgc3RyZWFtLlxuICogQHBhcmFtIHtGdW5jdGlvbn0gb3B0aW9ucy5wYXJhbWV0ZXJzLnVwZGF0ZVNjcmVlblNoYXJlTmFtZVN0cmVhbSAtIEZ1bmN0aW9uIHRvIHVwZGF0ZSBzY3JlZW4gc2hhcmUgbmFtZSBzdHJlYW0uXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBvcHRpb25zLnBhcmFtZXRlcnMudXBkYXRlQWRtaW5JRFN0cmVhbSAtIEZ1bmN0aW9uIHRvIHVwZGF0ZSBhZG1pbiBJRCBzdHJlYW0uXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBvcHRpb25zLnBhcmFtZXRlcnMudXBkYXRlQWRtaW5OYW1lU3RyZWFtIC0gRnVuY3Rpb24gdG8gdXBkYXRlIGFkbWluIG5hbWUgc3RyZWFtLlxuICogQHBhcmFtIHtGdW5jdGlvbn0gb3B0aW9ucy5wYXJhbWV0ZXJzLnVwZGF0ZVlvdVlvdVN0cmVhbSAtIEZ1bmN0aW9uIHRvIHVwZGF0ZSBZb3VZb3Ugc3RyZWFtLlxuICogQHBhcmFtIHtGdW5jdGlvbn0gb3B0aW9ucy5wYXJhbWV0ZXJzLmNoYW5nZVZpZHMgLSBGdW5jdGlvbiB0byByZWZsZWN0IGNoYW5nZXMgb24gdGhlIFVJLlxuICpcbiAqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fSBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB3aGVuIHRoZSByZW9yZGVyaW5nIGlzIGNvbXBsZXRlLlxuICpcbiAqIEB0aHJvd3MgV2lsbCB0aHJvdyBhbiBlcnJvciBpZiB0aGVyZSBpcyBhbiBpc3N1ZSBkdXJpbmcgdGhlIHJlb3JkZXJpbmcgcHJvY2Vzcy5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogYXdhaXQgcmVvcmRlclN0cmVhbXMoe1xuICogICBhZGQ6IHRydWUsXG4gKiAgIHNjcmVlbkNoYW5nZWQ6IGZhbHNlLFxuICogICBwYXJhbWV0ZXJzOiB7XG4gKiAgICAgYWxsVmlkZW9TdHJlYW1zOiBbLi4uXSxcbiAqICAgICBwYXJ0aWNpcGFudHM6IFsuLi5dLFxuICogICAgIG9sZEFsbFN0cmVhbXM6IFsuLi5dLFxuICogICAgIG5ld0xpbWl0ZWRTdHJlYW1zOiBbXSxcbiAqICAgICBuZXdMaW1pdGVkU3RyZWFtc0lEczogW10sXG4gKiAgICAgYWN0aXZlU291bmRzOiBbXSxcbiAqICAgICB1cGRhdGVOZXdMaW1pdGVkU3RyZWFtczogKHN0cmVhbXMpID0+IHsgY29uc29sZS5sb2codXBkYXRlZCkgfSxcbiAqICAgICB1cGRhdGVOZXdMaW1pdGVkU3RyZWFtc0lEczogKGlkcykgPT4geyBjb25zb2xlLmxvZyh1cGRhdGVkKSB9LFxuICogICAgIHVwZGF0ZUFjdGl2ZVNvdW5kczogKHNvdW5kcykgPT4geyBjb25zb2xlLmxvZyh1cGRhdGVkKSB9LFxuICogICAgIGNoYW5nZVZpZHM6IGFzeW5jIChvcHRpb25zKSA9PiB7IH0sXG4gKiAgICAgLy8gLi4ub3RoZXIgcGFyYW1ldGVyc1xuICogICB9LFxuICogfSk7XG4gKiBgYGBcbiAqL1xuXG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBSZW9yZGVyU3RyZWFtcyB7XG4gIC8qKlxuICAgKiBSZW9yZGVycyB0aGUgdmlkZW8gc3RyZWFtcyBiYXNlZCBvbiB0aGUgcHJvdmlkZWQgb3B0aW9ucyBhbmQgdXBkYXRlcyB0aGUgVUkgYWNjb3JkaW5nbHkuXG4gICAqXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRpb25zIC0gVGhlIG9wdGlvbnMgZm9yIHJlb3JkZXJpbmcgc3RyZWFtcy5cbiAgICogQHBhcmFtIHtib29sZWFufSBbb3B0aW9ucy5hZGQ9ZmFsc2VdIC0gV2hldGhlciB0byBhZGQgbmV3IHN0cmVhbXMgb3Igbm90LlxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRpb25zLnNjcmVlbkNoYW5nZWQ9ZmFsc2VdIC0gV2hldGhlciB0aGUgc2NyZWVuIGhhcyBjaGFuZ2VkIG9yIG5vdC5cbiAgICogQHBhcmFtIHtSZW9yZGVyU3RyZWFtc09wdGlvbnN9IG9wdGlvbnMucGFyYW1ldGVycyAtIFRoZSBwYXJhbWV0ZXJzIHJlcXVpcmVkIGZvciByZW9yZGVyaW5nIHN0cmVhbXMuXG4gICAqXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fSBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB3aGVuIHRoZSByZW9yZGVyaW5nIGlzIGNvbXBsZXRlLlxuICAgKlxuICAgKiBAdHlwZWRlZiB7T2JqZWN0fSBSZW9yZGVyU3RyZWFtc09wdGlvbnNcbiAgICogQHByb3BlcnR5IHtGdW5jdGlvbn0gZ2V0VXBkYXRlZEFsbFBhcmFtcyAtIEZ1bmN0aW9uIHRvIGdldCB1cGRhdGVkIHBhcmFtZXRlcnMuXG4gICAqIEBwcm9wZXJ0eSB7QXJyYXl9IGFsbFZpZGVvU3RyZWFtcyAtIEFycmF5IG9mIGFsbCB2aWRlbyBzdHJlYW1zLlxuICAgKiBAcHJvcGVydHkge0FycmF5fSBwYXJ0aWNpcGFudHMgLSBBcnJheSBvZiBwYXJ0aWNpcGFudHMuXG4gICAqIEBwcm9wZXJ0eSB7QXJyYXl9IG9sZEFsbFN0cmVhbXMgLSBBcnJheSBvZiBvbGQgc3RyZWFtcy5cbiAgICogQHByb3BlcnR5IHtzdHJpbmd9IHNjcmVlbklkIC0gSUQgb2YgdGhlIHNjcmVlbi5cbiAgICogQHByb3BlcnR5IHtzdHJpbmd9IGFkbWluVmlkSUQgLSBJRCBvZiB0aGUgYWRtaW4gdmlkZW8uXG4gICAqIEBwcm9wZXJ0eSB7QXJyYXl9IG5ld0xpbWl0ZWRTdHJlYW1zIC0gQXJyYXkgb2YgbmV3IGxpbWl0ZWQgc3RyZWFtcy5cbiAgICogQHByb3BlcnR5IHtBcnJheX0gbmV3TGltaXRlZFN0cmVhbXNJRHMgLSBBcnJheSBvZiBuZXcgbGltaXRlZCBzdHJlYW0gSURzLlxuICAgKiBAcHJvcGVydHkge0FycmF5fSBhY3RpdmVTb3VuZHMgLSBBcnJheSBvZiBhY3RpdmUgc291bmRzLlxuICAgKiBAcHJvcGVydHkge3N0cmluZ30gc2NyZWVuU2hhcmVJRFN0cmVhbSAtIElEIG9mIHRoZSBzY3JlZW4gc2hhcmUgc3RyZWFtLlxuICAgKiBAcHJvcGVydHkge3N0cmluZ30gc2NyZWVuU2hhcmVOYW1lU3RyZWFtIC0gTmFtZSBvZiB0aGUgc2NyZWVuIHNoYXJlIHN0cmVhbS5cbiAgICogQHByb3BlcnR5IHtzdHJpbmd9IGFkbWluSURTdHJlYW0gLSBJRCBvZiB0aGUgYWRtaW4gc3RyZWFtLlxuICAgKiBAcHJvcGVydHkge3N0cmluZ30gYWRtaW5OYW1lU3RyZWFtIC0gTmFtZSBvZiB0aGUgYWRtaW4gc3RyZWFtLlxuICAgKiBAcHJvcGVydHkge0Z1bmN0aW9ufSB1cGRhdGVOZXdMaW1pdGVkU3RyZWFtcyAtIEZ1bmN0aW9uIHRvIHVwZGF0ZSBuZXcgbGltaXRlZCBzdHJlYW1zLlxuICAgKiBAcHJvcGVydHkge0Z1bmN0aW9ufSB1cGRhdGVOZXdMaW1pdGVkU3RyZWFtc0lEcyAtIEZ1bmN0aW9uIHRvIHVwZGF0ZSBuZXcgbGltaXRlZCBzdHJlYW0gSURzLlxuICAgKiBAcHJvcGVydHkge0Z1bmN0aW9ufSB1cGRhdGVBY3RpdmVTb3VuZHMgLSBGdW5jdGlvbiB0byB1cGRhdGUgYWN0aXZlIHNvdW5kcy5cbiAgICogQHByb3BlcnR5IHtGdW5jdGlvbn0gdXBkYXRlU2NyZWVuU2hhcmVJRFN0cmVhbSAtIEZ1bmN0aW9uIHRvIHVwZGF0ZSBzY3JlZW4gc2hhcmUgSUQgc3RyZWFtLlxuICAgKiBAcHJvcGVydHkge0Z1bmN0aW9ufSB1cGRhdGVTY3JlZW5TaGFyZU5hbWVTdHJlYW0gLSBGdW5jdGlvbiB0byB1cGRhdGUgc2NyZWVuIHNoYXJlIG5hbWUgc3RyZWFtLlxuICAgKiBAcHJvcGVydHkge0Z1bmN0aW9ufSB1cGRhdGVBZG1pbklEU3RyZWFtIC0gRnVuY3Rpb24gdG8gdXBkYXRlIGFkbWluIElEIHN0cmVhbS5cbiAgICogQHByb3BlcnR5IHtGdW5jdGlvbn0gdXBkYXRlQWRtaW5OYW1lU3RyZWFtIC0gRnVuY3Rpb24gdG8gdXBkYXRlIGFkbWluIG5hbWUgc3RyZWFtLlxuICAgKiBAcHJvcGVydHkge0Z1bmN0aW9ufSB1cGRhdGVZb3VZb3VTdHJlYW0gLSBGdW5jdGlvbiB0byB1cGRhdGUgWW91WW91IHN0cmVhbS5cbiAgICogQHByb3BlcnR5IHtGdW5jdGlvbn0gY2hhbmdlVmlkcyAtIEZ1bmN0aW9uIHRvIHJlZmxlY3QgY2hhbmdlcyBvbiB0aGUgVUkuXG4gICAqL1xuXG4gIHJlb3JkZXJTdHJlYW1zID0gYXN5bmMgKHtcbiAgICBhZGQgPSBmYWxzZSxcbiAgICBzY3JlZW5DaGFuZ2VkID0gZmFsc2UsXG4gICAgcGFyYW1ldGVycyxcbiAgfTogUmVvcmRlclN0cmVhbXNPcHRpb25zKTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gICAgbGV0IHsgZ2V0VXBkYXRlZEFsbFBhcmFtcyB9ID0gcGFyYW1ldGVycztcbiAgICBwYXJhbWV0ZXJzID0gZ2V0VXBkYXRlZEFsbFBhcmFtcygpO1xuXG4gICAgbGV0IHtcbiAgICAgIGFsbFZpZGVvU3RyZWFtcyxcbiAgICAgIHBhcnRpY2lwYW50cyxcbiAgICAgIG9sZEFsbFN0cmVhbXMsXG4gICAgICBzY3JlZW5JZCxcbiAgICAgIGFkbWluVmlkSUQsXG4gICAgICBuZXdMaW1pdGVkU3RyZWFtcyxcbiAgICAgIG5ld0xpbWl0ZWRTdHJlYW1zSURzLFxuICAgICAgYWN0aXZlU291bmRzLFxuICAgICAgc2NyZWVuU2hhcmVJRFN0cmVhbSxcbiAgICAgIHNjcmVlblNoYXJlTmFtZVN0cmVhbSxcbiAgICAgIGFkbWluSURTdHJlYW0sXG4gICAgICBhZG1pbk5hbWVTdHJlYW0sXG4gICAgICB1cGRhdGVOZXdMaW1pdGVkU3RyZWFtcyxcbiAgICAgIHVwZGF0ZU5ld0xpbWl0ZWRTdHJlYW1zSURzLFxuICAgICAgdXBkYXRlQWN0aXZlU291bmRzLFxuICAgICAgdXBkYXRlU2NyZWVuU2hhcmVJRFN0cmVhbSxcbiAgICAgIHVwZGF0ZVNjcmVlblNoYXJlTmFtZVN0cmVhbSxcbiAgICAgIHVwZGF0ZUFkbWluSURTdHJlYW0sXG4gICAgICB1cGRhdGVBZG1pbk5hbWVTdHJlYW0sXG4gICAgICB1cGRhdGVZb3VZb3VTdHJlYW0sXG5cbiAgICAgIC8vbWVkaWFzZnUgZnVuY3Rpb25zXG4gICAgICBjaGFuZ2VWaWRzLFxuICAgIH0gPSBwYXJhbWV0ZXJzO1xuXG4gICAgLy8gZnVuY3Rpb24gdG8gcmVvcmRlciBzdHJlYW1zIG9uIHRoZSB1aVxuICAgIGlmICghYWRkKSB7XG4gICAgICBuZXdMaW1pdGVkU3RyZWFtcyA9IFtdO1xuICAgICAgbmV3TGltaXRlZFN0cmVhbXNJRHMgPSBbXTtcbiAgICAgIGFjdGl2ZVNvdW5kcyA9IFtdO1xuICAgIH1cblxuICAgIGNvbnN0IHlvdXlvdSA9IGFsbFZpZGVvU3RyZWFtcy5maWx0ZXIoKHN0cmVhbSkgPT4gc3RyZWFtLnByb2R1Y2VySWQgPT09ICd5b3V5b3UnKTtcbiAgICBjb25zdCBhZG1pbiA9IHBhcnRpY2lwYW50cy5maWx0ZXIoKHBhcnRpY2lwYW50KSA9PiBwYXJ0aWNpcGFudC5pc2xldmVsID09PSAnMicpO1xuXG4gICAgaWYgKGFkbWluLmxlbmd0aCA+IDApIHtcbiAgICAgIGFkbWluVmlkSUQgPSBhZG1pblswXS52aWRlb0lEO1xuICAgIH0gZWxzZSB7XG4gICAgICBhZG1pblZpZElEID0gJyc7XG4gICAgfVxuXG4gICAgaWYgKGFkbWluVmlkSUQpIHtcbiAgICAgIGNvbnN0IGFkbWluU3RyZWFtID0gYWxsVmlkZW9TdHJlYW1zLmZpbmQoKHN0cmVhbSkgPT4gc3RyZWFtLnByb2R1Y2VySWQgPT09IGFkbWluVmlkSUQpO1xuXG4gICAgICBpZiAoIWFkZCkge1xuICAgICAgICBuZXdMaW1pdGVkU3RyZWFtcyA9IFsuLi5uZXdMaW1pdGVkU3RyZWFtcywgLi4ueW91eW91XTtcbiAgICAgICAgbmV3TGltaXRlZFN0cmVhbXNJRHMgPSBbXG4gICAgICAgICAgLi4ubmV3TGltaXRlZFN0cmVhbXNJRHMsXG4gICAgICAgICAgLi4ueW91eW91Lm1hcCgoc3RyZWFtKSA9PiBzdHJlYW0ucHJvZHVjZXJJZCksXG4gICAgICAgIF07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCB5b3V5b3VTdHJlYW0gPSBuZXdMaW1pdGVkU3RyZWFtcy5maW5kKChzdHJlYW0pID0+IHN0cmVhbS5wcm9kdWNlcklkID09PSAneW91eW91Jyk7XG5cbiAgICAgICAgaWYgKCF5b3V5b3VTdHJlYW0pIHtcbiAgICAgICAgICBuZXdMaW1pdGVkU3RyZWFtcyA9IFsuLi5uZXdMaW1pdGVkU3RyZWFtcywgLi4ueW91eW91XTtcbiAgICAgICAgICBuZXdMaW1pdGVkU3RyZWFtc0lEcyA9IFtcbiAgICAgICAgICAgIC4uLm5ld0xpbWl0ZWRTdHJlYW1zSURzLFxuICAgICAgICAgICAgLi4ueW91eW91Lm1hcCgoc3RyZWFtKSA9PiBzdHJlYW0ucHJvZHVjZXJJZCksXG4gICAgICAgICAgXTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoYWRtaW5TdHJlYW0pIHtcbiAgICAgICAgYWRtaW5JRFN0cmVhbSA9IGFkbWluVmlkSUQ7XG5cbiAgICAgICAgaWYgKCFhZGQpIHtcbiAgICAgICAgICBuZXdMaW1pdGVkU3RyZWFtcyA9IFsuLi5uZXdMaW1pdGVkU3RyZWFtcywgYWRtaW5TdHJlYW1dO1xuICAgICAgICAgIG5ld0xpbWl0ZWRTdHJlYW1zSURzID0gWy4uLm5ld0xpbWl0ZWRTdHJlYW1zSURzLCBhZG1pblN0cmVhbS5wcm9kdWNlcklkXTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb25zdCBhZG1pblN0cmVhbWVyID0gbmV3TGltaXRlZFN0cmVhbXMuZmluZChcbiAgICAgICAgICAgIChzdHJlYW0pID0+IHN0cmVhbS5wcm9kdWNlcklkID09PSBhZG1pblZpZElELFxuICAgICAgICAgICk7XG5cbiAgICAgICAgICBpZiAoIWFkbWluU3RyZWFtZXIpIHtcbiAgICAgICAgICAgIG5ld0xpbWl0ZWRTdHJlYW1zID0gWy4uLm5ld0xpbWl0ZWRTdHJlYW1zLCBhZG1pblN0cmVhbV07XG4gICAgICAgICAgICBuZXdMaW1pdGVkU3RyZWFtc0lEcyA9IFsuLi5uZXdMaW1pdGVkU3RyZWFtc0lEcywgYWRtaW5TdHJlYW0ucHJvZHVjZXJJZF07XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBvbGRBZG1pblN0cmVhbSA9IG9sZEFsbFN0cmVhbXMuZmluZCgoc3RyZWFtKSA9PiBzdHJlYW0ucHJvZHVjZXJJZCA9PT0gYWRtaW5WaWRJRCk7XG5cbiAgICAgICAgaWYgKG9sZEFkbWluU3RyZWFtKSB7XG4gICAgICAgICAgLy9hZGQgaXQgdG8gdGhlIGFsbFZpZGVvU3RyZWFtXG5cbiAgICAgICAgICBhZG1pbklEU3RyZWFtID0gYWRtaW5WaWRJRDtcbiAgICAgICAgICBhZG1pbk5hbWVTdHJlYW0gPSBhZG1pblswXS5uYW1lO1xuXG4gICAgICAgICAgaWYgKCFhZGQpIHtcbiAgICAgICAgICAgIG5ld0xpbWl0ZWRTdHJlYW1zID0gWy4uLm5ld0xpbWl0ZWRTdHJlYW1zLCBvbGRBZG1pblN0cmVhbV07XG4gICAgICAgICAgICBuZXdMaW1pdGVkU3RyZWFtc0lEcyA9IFsuLi5uZXdMaW1pdGVkU3RyZWFtc0lEcywgb2xkQWRtaW5TdHJlYW0ucHJvZHVjZXJJZF07XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IGFkbWluU3RyZWFtZXIgPSBuZXdMaW1pdGVkU3RyZWFtcy5maW5kKFxuICAgICAgICAgICAgICAoc3RyZWFtKSA9PiBzdHJlYW0ucHJvZHVjZXJJZCA9PT0gYWRtaW5WaWRJRCxcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIGlmICghYWRtaW5TdHJlYW1lcikge1xuICAgICAgICAgICAgICBuZXdMaW1pdGVkU3RyZWFtcyA9IFsuLi5uZXdMaW1pdGVkU3RyZWFtcywgb2xkQWRtaW5TdHJlYW1dO1xuICAgICAgICAgICAgICBuZXdMaW1pdGVkU3RyZWFtc0lEcyA9IFsuLi5uZXdMaW1pdGVkU3RyZWFtc0lEcywgb2xkQWRtaW5TdHJlYW0ucHJvZHVjZXJJZF07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHNjcmVlblBhcnRpY2lwYW50ID0gcGFydGljaXBhbnRzLmZpbHRlcihcbiAgICAgICAgKHBhcnRpY2lwYW50KSA9PiBwYXJ0aWNpcGFudC5TY3JlZW5JRCA9PT0gc2NyZWVuSWQsXG4gICAgICApO1xuXG4gICAgICBpZiAoc2NyZWVuUGFydGljaXBhbnQubGVuZ3RoID4gMCkge1xuICAgICAgICBjb25zdCBzY3JlZW5QYXJ0aWNpcGFudFZpZElEID0gc2NyZWVuUGFydGljaXBhbnRbMF0udmlkZW9JRDtcbiAgICAgICAgY29uc3Qgc2NyZWVuUGFydGljaXBhbnRWaWRJRF8gPSBuZXdMaW1pdGVkU3RyZWFtcy5maWx0ZXIoXG4gICAgICAgICAgKHN0cmVhbSkgPT4gc3RyZWFtLnByb2R1Y2VySWQgPT09IHNjcmVlblBhcnRpY2lwYW50VmlkSUQsXG4gICAgICAgICk7XG5cbiAgICAgICAgaWYgKHNjcmVlblBhcnRpY2lwYW50VmlkSURfPy5sZW5ndGggPCAxICYmIHNjcmVlblBhcnRpY2lwYW50VmlkSUQpIHtcbiAgICAgICAgICBzY3JlZW5TaGFyZUlEU3RyZWFtID0gc2NyZWVuUGFydGljaXBhbnRWaWRJRDtcbiAgICAgICAgICBzY3JlZW5TaGFyZU5hbWVTdHJlYW0gPSBzY3JlZW5QYXJ0aWNpcGFudFswXS5uYW1lO1xuICAgICAgICAgIGNvbnN0IHNjcmVlblBhcnRpY2lwYW50VmlkSURfXyA9IGFsbFZpZGVvU3RyZWFtcy5maWx0ZXIoXG4gICAgICAgICAgICAoc3RyZWFtKSA9PiBzdHJlYW0ucHJvZHVjZXJJZCA9PT0gc2NyZWVuUGFydGljaXBhbnRWaWRJRCxcbiAgICAgICAgICApO1xuICAgICAgICAgIG5ld0xpbWl0ZWRTdHJlYW1zID0gWy4uLm5ld0xpbWl0ZWRTdHJlYW1zLCAuLi5zY3JlZW5QYXJ0aWNpcGFudFZpZElEX19dO1xuICAgICAgICAgIG5ld0xpbWl0ZWRTdHJlYW1zSURzID0gW1xuICAgICAgICAgICAgLi4ubmV3TGltaXRlZFN0cmVhbXNJRHMsXG4gICAgICAgICAgICAuLi5zY3JlZW5QYXJ0aWNpcGFudFZpZElEX18ubWFwKChzdHJlYW0pID0+IHN0cmVhbS5wcm9kdWNlcklkKSxcbiAgICAgICAgICBdO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICghYWRkKSB7XG4gICAgICAgIG5ld0xpbWl0ZWRTdHJlYW1zID0gWy4uLm5ld0xpbWl0ZWRTdHJlYW1zLCAuLi55b3V5b3VdO1xuICAgICAgICBuZXdMaW1pdGVkU3RyZWFtc0lEcyA9IFtcbiAgICAgICAgICAuLi5uZXdMaW1pdGVkU3RyZWFtc0lEcyxcbiAgICAgICAgICAuLi55b3V5b3UubWFwKChzdHJlYW0pID0+IHN0cmVhbS5wcm9kdWNlcklkKSxcbiAgICAgICAgXTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IHlvdXlvdVN0cmVhbSA9IG5ld0xpbWl0ZWRTdHJlYW1zLmZpbmQoKHN0cmVhbSkgPT4gc3RyZWFtLnByb2R1Y2VySWQgPT09ICd5b3V5b3UnKTtcblxuICAgICAgICBpZiAoIXlvdXlvdVN0cmVhbSkge1xuICAgICAgICAgIG5ld0xpbWl0ZWRTdHJlYW1zID0gWy4uLm5ld0xpbWl0ZWRTdHJlYW1zLCAuLi55b3V5b3VdO1xuICAgICAgICAgIG5ld0xpbWl0ZWRTdHJlYW1zSURzID0gW1xuICAgICAgICAgICAgLi4ubmV3TGltaXRlZFN0cmVhbXNJRHMsXG4gICAgICAgICAgICAuLi55b3V5b3UubWFwKChzdHJlYW0pID0+IHN0cmVhbS5wcm9kdWNlcklkKSxcbiAgICAgICAgICBdO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHNjcmVlblBhcnRpY2lwYW50ID0gcGFydGljaXBhbnRzLmZpbHRlcihcbiAgICAgICAgKHBhcnRpY2lwYW50KSA9PiBwYXJ0aWNpcGFudC5TY3JlZW5JRCA9PT0gc2NyZWVuSWQsXG4gICAgICApO1xuXG4gICAgICBpZiAoc2NyZWVuUGFydGljaXBhbnQubGVuZ3RoID4gMCkge1xuICAgICAgICBjb25zdCBzY3JlZW5QYXJ0aWNpcGFudFZpZElEID0gc2NyZWVuUGFydGljaXBhbnRbMF0udmlkZW9JRDtcbiAgICAgICAgY29uc3Qgc2NyZWVuUGFydGljaXBhbnRWaWRJRF8gPSBuZXdMaW1pdGVkU3RyZWFtcy5maWx0ZXIoXG4gICAgICAgICAgKHN0cmVhbSkgPT4gc3RyZWFtLnByb2R1Y2VySWQgPT09IHNjcmVlblBhcnRpY2lwYW50VmlkSUQsXG4gICAgICAgICk7XG5cbiAgICAgICAgaWYgKHNjcmVlblBhcnRpY2lwYW50VmlkSURfPy5sZW5ndGggPCAxICYmIHNjcmVlblBhcnRpY2lwYW50VmlkSUQpIHtcbiAgICAgICAgICBzY3JlZW5TaGFyZUlEU3RyZWFtID0gc2NyZWVuUGFydGljaXBhbnRWaWRJRDtcbiAgICAgICAgICBzY3JlZW5TaGFyZU5hbWVTdHJlYW0gPSBzY3JlZW5QYXJ0aWNpcGFudFswXS5uYW1lO1xuICAgICAgICAgIGNvbnN0IHNjcmVlblBhcnRpY2lwYW50VmlkSURfXyA9IGFsbFZpZGVvU3RyZWFtcy5maWx0ZXIoXG4gICAgICAgICAgICAoc3RyZWFtKSA9PiBzdHJlYW0ucHJvZHVjZXJJZCA9PT0gc2NyZWVuUGFydGljaXBhbnRWaWRJRCxcbiAgICAgICAgICApO1xuICAgICAgICAgIG5ld0xpbWl0ZWRTdHJlYW1zID0gWy4uLm5ld0xpbWl0ZWRTdHJlYW1zLCAuLi5zY3JlZW5QYXJ0aWNpcGFudFZpZElEX19dO1xuICAgICAgICAgIG5ld0xpbWl0ZWRTdHJlYW1zSURzID0gW1xuICAgICAgICAgICAgLi4ubmV3TGltaXRlZFN0cmVhbXNJRHMsXG4gICAgICAgICAgICAuLi5zY3JlZW5QYXJ0aWNpcGFudFZpZElEX18ubWFwKChzdHJlYW0pID0+IHN0cmVhbS5wcm9kdWNlcklkKSxcbiAgICAgICAgICBdO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgdXBkYXRlTmV3TGltaXRlZFN0cmVhbXMobmV3TGltaXRlZFN0cmVhbXMpO1xuICAgIHVwZGF0ZU5ld0xpbWl0ZWRTdHJlYW1zSURzKG5ld0xpbWl0ZWRTdHJlYW1zSURzKTtcbiAgICB1cGRhdGVBY3RpdmVTb3VuZHMoYWN0aXZlU291bmRzKTtcbiAgICB1cGRhdGVTY3JlZW5TaGFyZUlEU3RyZWFtKHNjcmVlblNoYXJlSURTdHJlYW0hKTtcbiAgICB1cGRhdGVTY3JlZW5TaGFyZU5hbWVTdHJlYW0oc2NyZWVuU2hhcmVOYW1lU3RyZWFtISk7XG4gICAgdXBkYXRlQWRtaW5JRFN0cmVhbShhZG1pbklEU3RyZWFtISk7XG4gICAgdXBkYXRlQWRtaW5OYW1lU3RyZWFtKGFkbWluTmFtZVN0cmVhbSEpO1xuICAgIHVwZGF0ZVlvdVlvdVN0cmVhbSh5b3V5b3UpO1xuXG4gICAgLy9yZWZsZWN0IHRoZSBjaGFuZ2VzIG9uIHRoZSB1aVxuICAgIGF3YWl0IGNoYW5nZVZpZHMoeyBzY3JlZW5DaGFuZ2VkLCBwYXJhbWV0ZXJzIH0pO1xuICB9O1xufVxuIl19
@@ -1,101 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- /**
4
- * Requests to start screen sharing.
5
- *
6
- * This method initiates a screen sharing request and handles the response
7
- * from the server to determine if screen sharing is allowed. It also configures
8
- * the target resolution for the screen share based on the user's input and
9
- * parameters.
10
- *
11
- * @param {RequestScreenShareOptions} options - The options for requesting screen share.
12
- * @param {Object} options.parameters - The parameters for the screen share request.
13
- * @param {Socket} options.parameters.socket - The socket instance to communicate with the server.
14
- * @param {Function} [options.parameters.showAlert] - Optional function to show alerts to the user.
15
- * @param {boolean} options.parameters.localUIMode - Indicates if the user is in local UI mode.
16
- * @param {string} [options.parameters.targetResolution] - The target resolution for screen sharing.
17
- * @param {string} [options.parameters.targetResolutionHost] - The target resolution for the host screen.
18
- * @param {Function} options.parameters.startShareScreen - Function to start screen sharing.
19
- *
20
- * @returns {Promise<void>} A promise that resolves when the screen share request is processed.
21
- *
22
- * @throws {Error} Throws an error if there is an issue during the screen share request process.
23
- *
24
- * @example
25
- * ```typescript
26
- * await requestScreenShare({
27
- * parameters: {
28
- * socket: mySocket,
29
- * localUIMode: false,
30
- * targetResolution: 'fhd',
31
- * startShareScreen: myStartShareScreenFunction,
32
- * showAlert: myShowAlertFunction,
33
- * },
34
- * });
35
- * ```
36
- */
37
- export class RequestScreenShare {
38
- /**
39
- * Requests to start screen sharing.
40
- *
41
- * @param {RequestScreenShareOptions} options - The options for requesting screen share.
42
- * @param {Object} options.parameters - The parameters for the screen share request.
43
- * @param {Socket} options.parameters.socket - The socket instance to communicate with the server.
44
- * @param {Function} [options.parameters.showAlert] - Optional function to show alerts to the user.
45
- * @param {boolean} options.parameters.localUIMode - Indicates if the user is in local UI mode.
46
- * @param {string} [options.parameters.targetResolution] - The target resolution for screen sharing.
47
- * @param {string} [options.parameters.targetResolutionHost] - The target resolution for the host screen.
48
- * @param {Function} options.parameters.startShareScreen - Function to start screen sharing.
49
- *
50
- * @returns {Promise<void>} A promise that resolves when the screen share request is processed.
51
- *
52
- * @throws {Error} Throws an error if there is an issue during the screen share request process.
53
- */
54
- requestScreenShare = async ({ parameters }) => {
55
- try {
56
- // Destructure parameters
57
- const { showAlert, localUIMode, startShareScreen, socket, targetResolution = 'hd', targetResolutionHost = 'hd', } = parameters;
58
- // Check if the user is in local UI mode
59
- if (localUIMode === true) {
60
- await startShareScreen({ parameters });
61
- return;
62
- }
63
- let targetWidth = 1280;
64
- let targetHeight = 720;
65
- if (targetResolution == 'qhd' || targetResolutionHost == 'qhd') {
66
- targetWidth = 2560;
67
- targetHeight = 1440;
68
- }
69
- else if (targetResolution == 'fhd' || targetResolutionHost == 'fhd') {
70
- targetWidth = 1920;
71
- targetHeight = 1080;
72
- }
73
- socket.emit('requestScreenShare', async ({ allowScreenShare }) => {
74
- if (!allowScreenShare) {
75
- // Send an alert to the user
76
- showAlert?.({
77
- message: 'You are not allowed to share screen',
78
- type: 'danger',
79
- duration: 3000,
80
- });
81
- }
82
- else {
83
- await startShareScreen({ parameters: { ...parameters, targetWidth, targetHeight } });
84
- }
85
- });
86
- }
87
- catch (error) {
88
- // Handle errors during the process of requesting screen share
89
- console.error('Error during requesting screen share: ', error);
90
- }
91
- };
92
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: RequestScreenShare, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
93
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: RequestScreenShare, providedIn: 'root' });
94
- }
95
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: RequestScreenShare, decorators: [{
96
- type: Injectable,
97
- args: [{
98
- providedIn: 'root',
99
- }]
100
- }] });
101
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWVzdC1zY3JlZW4tc2hhcmUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21lZGlhc2Z1LWFuZ3VsYXIvc3JjL2xpYi9jb25zdW1lcnMvcmVxdWVzdC1zY3JlZW4tc2hhcmUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQXdCM0M7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWlDRztBQU1ILE1BQU0sT0FBTyxrQkFBa0I7SUFDN0I7Ozs7Ozs7Ozs7Ozs7OztPQWVHO0lBQ0gsa0JBQWtCLEdBQUcsS0FBSyxFQUFFLEVBQUUsVUFBVSxFQUE2QixFQUFpQixFQUFFO1FBQ3RGLElBQUksQ0FBQztZQUNILHlCQUF5QjtZQUN6QixNQUFNLEVBQ0osU0FBUyxFQUNULFdBQVcsRUFDWCxnQkFBZ0IsRUFDaEIsTUFBTSxFQUNOLGdCQUFnQixHQUFHLElBQUksRUFDdkIsb0JBQW9CLEdBQUcsSUFBSSxHQUM1QixHQUFHLFVBQVUsQ0FBQztZQUVmLHdDQUF3QztZQUN4QyxJQUFJLFdBQVcsS0FBSyxJQUFJLEVBQUUsQ0FBQztnQkFDekIsTUFBTSxnQkFBZ0IsQ0FBQyxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUM7Z0JBQ3ZDLE9BQU87WUFDVCxDQUFDO1lBRUQsSUFBSSxXQUFXLEdBQUcsSUFBSSxDQUFDO1lBQ3ZCLElBQUksWUFBWSxHQUFHLEdBQUcsQ0FBQztZQUV2QixJQUFJLGdCQUFnQixJQUFJLEtBQUssSUFBSSxvQkFBb0IsSUFBSSxLQUFLLEVBQUUsQ0FBQztnQkFDL0QsV0FBVyxHQUFHLElBQUksQ0FBQztnQkFDbkIsWUFBWSxHQUFHLElBQUksQ0FBQztZQUN0QixDQUFDO2lCQUFNLElBQUksZ0JBQWdCLElBQUksS0FBSyxJQUFJLG9CQUFvQixJQUFJLEtBQUssRUFBRSxDQUFDO2dCQUN0RSxXQUFXLEdBQUcsSUFBSSxDQUFDO2dCQUNuQixZQUFZLEdBQUcsSUFBSSxDQUFDO1lBQ3RCLENBQUM7WUFFRCxNQUFNLENBQUMsSUFBSSxDQUNULG9CQUFvQixFQUNwQixLQUFLLEVBQUUsRUFBRSxnQkFBZ0IsRUFBaUMsRUFBRSxFQUFFO2dCQUM1RCxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztvQkFDdEIsNEJBQTRCO29CQUM1QixTQUFTLEVBQUUsQ0FBQzt3QkFDVixPQUFPLEVBQUUscUNBQXFDO3dCQUM5QyxJQUFJLEVBQUUsUUFBUTt3QkFDZCxRQUFRLEVBQUUsSUFBSTtxQkFDZixDQUFDLENBQUM7Z0JBQ0wsQ0FBQztxQkFBTSxDQUFDO29CQUNOLE1BQU0sZ0JBQWdCLENBQUMsRUFBRSxVQUFVLEVBQUUsRUFBRSxHQUFHLFVBQVUsRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLEVBQUUsQ0FBQyxDQUFDO2dCQUN2RixDQUFDO1lBQ0gsQ0FBQyxDQUNGLENBQUM7UUFDSixDQUFDO1FBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztZQUNmLDhEQUE4RDtZQUM5RCxPQUFPLENBQUMsS0FBSyxDQUFDLHdDQUF3QyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ2pFLENBQUM7SUFDSCxDQUFDLENBQUM7dUdBakVTLGtCQUFrQjsyR0FBbEIsa0JBQWtCLGNBRmpCLE1BQU07OzJGQUVQLGtCQUFrQjtrQkFIOUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTb2NrZXQgfSBmcm9tICdzb2NrZXQuaW8tY2xpZW50JztcbmltcG9ydCB7IFNob3dBbGVydCwgU3RhcnRTaGFyZVNjcmVlblR5cGUsIFN0YXJ0U2hhcmVTY3JlZW5QYXJhbWV0ZXJzIH0gZnJvbSAnLi4vQHR5cGVzL3R5cGVzJztcblxuZXhwb3J0IGludGVyZmFjZSBSZXF1ZXN0U2NyZWVuU2hhcmVQYXJhbWV0ZXJzIGV4dGVuZHMgU3RhcnRTaGFyZVNjcmVlblBhcmFtZXRlcnMge1xuICBzb2NrZXQ6IFNvY2tldDtcbiAgc2hvd0FsZXJ0PzogU2hvd0FsZXJ0O1xuICBsb2NhbFVJTW9kZTogYm9vbGVhbjtcbiAgdGFyZ2V0UmVzb2x1dGlvbj86IHN0cmluZztcbiAgdGFyZ2V0UmVzb2x1dGlvbkhvc3Q/OiBzdHJpbmc7XG5cbiAgLy8gbWVkaWFzZnUgZnVuY3Rpb25zXG4gIHN0YXJ0U2hhcmVTY3JlZW46IFN0YXJ0U2hhcmVTY3JlZW5UeXBlO1xuICBnZXRVcGRhdGVkQWxsUGFyYW1zOiAoKSA9PiBSZXF1ZXN0U2NyZWVuU2hhcmVQYXJhbWV0ZXJzO1xuICBba2V5OiBzdHJpbmddOiBhbnk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVxdWVzdFNjcmVlblNoYXJlT3B0aW9ucyB7XG4gIHBhcmFtZXRlcnM6IFJlcXVlc3RTY3JlZW5TaGFyZVBhcmFtZXRlcnM7XG59XG5cbi8vIEV4cG9ydCB0aGUgdHlwZSBkZWZpbml0aW9uIGZvciB0aGUgZnVuY3Rpb25cbmV4cG9ydCB0eXBlIFJlcXVlc3RTY3JlZW5TaGFyZVR5cGUgPSAob3B0aW9uczogUmVxdWVzdFNjcmVlblNoYXJlT3B0aW9ucykgPT4gUHJvbWlzZTx2b2lkPjtcblxuLyoqXG4gKiBSZXF1ZXN0cyB0byBzdGFydCBzY3JlZW4gc2hhcmluZy5cbiAqXG4gKiBUaGlzIG1ldGhvZCBpbml0aWF0ZXMgYSBzY3JlZW4gc2hhcmluZyByZXF1ZXN0IGFuZCBoYW5kbGVzIHRoZSByZXNwb25zZVxuICogZnJvbSB0aGUgc2VydmVyIHRvIGRldGVybWluZSBpZiBzY3JlZW4gc2hhcmluZyBpcyBhbGxvd2VkLiBJdCBhbHNvIGNvbmZpZ3VyZXNcbiAqIHRoZSB0YXJnZXQgcmVzb2x1dGlvbiBmb3IgdGhlIHNjcmVlbiBzaGFyZSBiYXNlZCBvbiB0aGUgdXNlcidzIGlucHV0IGFuZFxuICogcGFyYW1ldGVycy5cbiAqXG4gKiBAcGFyYW0ge1JlcXVlc3RTY3JlZW5TaGFyZU9wdGlvbnN9IG9wdGlvbnMgLSBUaGUgb3B0aW9ucyBmb3IgcmVxdWVzdGluZyBzY3JlZW4gc2hhcmUuXG4gKiBAcGFyYW0ge09iamVjdH0gb3B0aW9ucy5wYXJhbWV0ZXJzIC0gVGhlIHBhcmFtZXRlcnMgZm9yIHRoZSBzY3JlZW4gc2hhcmUgcmVxdWVzdC5cbiAqIEBwYXJhbSB7U29ja2V0fSBvcHRpb25zLnBhcmFtZXRlcnMuc29ja2V0IC0gVGhlIHNvY2tldCBpbnN0YW5jZSB0byBjb21tdW5pY2F0ZSB3aXRoIHRoZSBzZXJ2ZXIuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBbb3B0aW9ucy5wYXJhbWV0ZXJzLnNob3dBbGVydF0gLSBPcHRpb25hbCBmdW5jdGlvbiB0byBzaG93IGFsZXJ0cyB0byB0aGUgdXNlci5cbiAqIEBwYXJhbSB7Ym9vbGVhbn0gb3B0aW9ucy5wYXJhbWV0ZXJzLmxvY2FsVUlNb2RlIC0gSW5kaWNhdGVzIGlmIHRoZSB1c2VyIGlzIGluIGxvY2FsIFVJIG1vZGUuXG4gKiBAcGFyYW0ge3N0cmluZ30gW29wdGlvbnMucGFyYW1ldGVycy50YXJnZXRSZXNvbHV0aW9uXSAtIFRoZSB0YXJnZXQgcmVzb2x1dGlvbiBmb3Igc2NyZWVuIHNoYXJpbmcuXG4gKiBAcGFyYW0ge3N0cmluZ30gW29wdGlvbnMucGFyYW1ldGVycy50YXJnZXRSZXNvbHV0aW9uSG9zdF0gLSBUaGUgdGFyZ2V0IHJlc29sdXRpb24gZm9yIHRoZSBob3N0IHNjcmVlbi5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IG9wdGlvbnMucGFyYW1ldGVycy5zdGFydFNoYXJlU2NyZWVuIC0gRnVuY3Rpb24gdG8gc3RhcnQgc2NyZWVuIHNoYXJpbmcuXG4gKlxuICogQHJldHVybnMge1Byb21pc2U8dm9pZD59IEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIHNjcmVlbiBzaGFyZSByZXF1ZXN0IGlzIHByb2Nlc3NlZC5cbiAqXG4gKiBAdGhyb3dzIHtFcnJvcn0gVGhyb3dzIGFuIGVycm9yIGlmIHRoZXJlIGlzIGFuIGlzc3VlIGR1cmluZyB0aGUgc2NyZWVuIHNoYXJlIHJlcXVlc3QgcHJvY2Vzcy5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogYXdhaXQgcmVxdWVzdFNjcmVlblNoYXJlKHtcbiAqICAgcGFyYW1ldGVyczoge1xuICogICAgIHNvY2tldDogbXlTb2NrZXQsXG4gKiAgICAgbG9jYWxVSU1vZGU6IGZhbHNlLFxuICogICAgIHRhcmdldFJlc29sdXRpb246ICdmaGQnLFxuICogICAgIHN0YXJ0U2hhcmVTY3JlZW46IG15U3RhcnRTaGFyZVNjcmVlbkZ1bmN0aW9uLFxuICogICAgIHNob3dBbGVydDogbXlTaG93QWxlcnRGdW5jdGlvbixcbiAqICAgfSxcbiAqIH0pO1xuICogYGBgXG4gKi9cblxuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgUmVxdWVzdFNjcmVlblNoYXJlIHtcbiAgLyoqXG4gICAqIFJlcXVlc3RzIHRvIHN0YXJ0IHNjcmVlbiBzaGFyaW5nLlxuICAgKlxuICAgKiBAcGFyYW0ge1JlcXVlc3RTY3JlZW5TaGFyZU9wdGlvbnN9IG9wdGlvbnMgLSBUaGUgb3B0aW9ucyBmb3IgcmVxdWVzdGluZyBzY3JlZW4gc2hhcmUuXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRpb25zLnBhcmFtZXRlcnMgLSBUaGUgcGFyYW1ldGVycyBmb3IgdGhlIHNjcmVlbiBzaGFyZSByZXF1ZXN0LlxuICAgKiBAcGFyYW0ge1NvY2tldH0gb3B0aW9ucy5wYXJhbWV0ZXJzLnNvY2tldCAtIFRoZSBzb2NrZXQgaW5zdGFuY2UgdG8gY29tbXVuaWNhdGUgd2l0aCB0aGUgc2VydmVyLlxuICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbb3B0aW9ucy5wYXJhbWV0ZXJzLnNob3dBbGVydF0gLSBPcHRpb25hbCBmdW5jdGlvbiB0byBzaG93IGFsZXJ0cyB0byB0aGUgdXNlci5cbiAgICogQHBhcmFtIHtib29sZWFufSBvcHRpb25zLnBhcmFtZXRlcnMubG9jYWxVSU1vZGUgLSBJbmRpY2F0ZXMgaWYgdGhlIHVzZXIgaXMgaW4gbG9jYWwgVUkgbW9kZS5cbiAgICogQHBhcmFtIHtzdHJpbmd9IFtvcHRpb25zLnBhcmFtZXRlcnMudGFyZ2V0UmVzb2x1dGlvbl0gLSBUaGUgdGFyZ2V0IHJlc29sdXRpb24gZm9yIHNjcmVlbiBzaGFyaW5nLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdGlvbnMucGFyYW1ldGVycy50YXJnZXRSZXNvbHV0aW9uSG9zdF0gLSBUaGUgdGFyZ2V0IHJlc29sdXRpb24gZm9yIHRoZSBob3N0IHNjcmVlbi5cbiAgICogQHBhcmFtIHtGdW5jdGlvbn0gb3B0aW9ucy5wYXJhbWV0ZXJzLnN0YXJ0U2hhcmVTY3JlZW4gLSBGdW5jdGlvbiB0byBzdGFydCBzY3JlZW4gc2hhcmluZy5cbiAgICpcbiAgICogQHJldHVybnMge1Byb21pc2U8dm9pZD59IEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIHNjcmVlbiBzaGFyZSByZXF1ZXN0IGlzIHByb2Nlc3NlZC5cbiAgICpcbiAgICogQHRocm93cyB7RXJyb3J9IFRocm93cyBhbiBlcnJvciBpZiB0aGVyZSBpcyBhbiBpc3N1ZSBkdXJpbmcgdGhlIHNjcmVlbiBzaGFyZSByZXF1ZXN0IHByb2Nlc3MuXG4gICAqL1xuICByZXF1ZXN0U2NyZWVuU2hhcmUgPSBhc3luYyAoeyBwYXJhbWV0ZXJzIH06IFJlcXVlc3RTY3JlZW5TaGFyZU9wdGlvbnMpOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgICB0cnkge1xuICAgICAgLy8gRGVzdHJ1Y3R1cmUgcGFyYW1ldGVyc1xuICAgICAgY29uc3Qge1xuICAgICAgICBzaG93QWxlcnQsXG4gICAgICAgIGxvY2FsVUlNb2RlLFxuICAgICAgICBzdGFydFNoYXJlU2NyZWVuLFxuICAgICAgICBzb2NrZXQsXG4gICAgICAgIHRhcmdldFJlc29sdXRpb24gPSAnaGQnLFxuICAgICAgICB0YXJnZXRSZXNvbHV0aW9uSG9zdCA9ICdoZCcsXG4gICAgICB9ID0gcGFyYW1ldGVycztcblxuICAgICAgLy8gQ2hlY2sgaWYgdGhlIHVzZXIgaXMgaW4gbG9jYWwgVUkgbW9kZVxuICAgICAgaWYgKGxvY2FsVUlNb2RlID09PSB0cnVlKSB7XG4gICAgICAgIGF3YWl0IHN0YXJ0U2hhcmVTY3JlZW4oeyBwYXJhbWV0ZXJzIH0pO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGxldCB0YXJnZXRXaWR0aCA9IDEyODA7XG4gICAgICBsZXQgdGFyZ2V0SGVpZ2h0ID0gNzIwO1xuXG4gICAgICBpZiAodGFyZ2V0UmVzb2x1dGlvbiA9PSAncWhkJyB8fCB0YXJnZXRSZXNvbHV0aW9uSG9zdCA9PSAncWhkJykge1xuICAgICAgICB0YXJnZXRXaWR0aCA9IDI1NjA7XG4gICAgICAgIHRhcmdldEhlaWdodCA9IDE0NDA7XG4gICAgICB9IGVsc2UgaWYgKHRhcmdldFJlc29sdXRpb24gPT0gJ2ZoZCcgfHwgdGFyZ2V0UmVzb2x1dGlvbkhvc3QgPT0gJ2ZoZCcpIHtcbiAgICAgICAgdGFyZ2V0V2lkdGggPSAxOTIwO1xuICAgICAgICB0YXJnZXRIZWlnaHQgPSAxMDgwO1xuICAgICAgfVxuXG4gICAgICBzb2NrZXQuZW1pdChcbiAgICAgICAgJ3JlcXVlc3RTY3JlZW5TaGFyZScsXG4gICAgICAgIGFzeW5jICh7IGFsbG93U2NyZWVuU2hhcmUgfTogeyBhbGxvd1NjcmVlblNoYXJlOiBib29sZWFuIH0pID0+IHtcbiAgICAgICAgICBpZiAoIWFsbG93U2NyZWVuU2hhcmUpIHtcbiAgICAgICAgICAgIC8vIFNlbmQgYW4gYWxlcnQgdG8gdGhlIHVzZXJcbiAgICAgICAgICAgIHNob3dBbGVydD8uKHtcbiAgICAgICAgICAgICAgbWVzc2FnZTogJ1lvdSBhcmUgbm90IGFsbG93ZWQgdG8gc2hhcmUgc2NyZWVuJyxcbiAgICAgICAgICAgICAgdHlwZTogJ2RhbmdlcicsXG4gICAgICAgICAgICAgIGR1cmF0aW9uOiAzMDAwLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGF3YWl0IHN0YXJ0U2hhcmVTY3JlZW4oeyBwYXJhbWV0ZXJzOiB7IC4uLnBhcmFtZXRlcnMsIHRhcmdldFdpZHRoLCB0YXJnZXRIZWlnaHQgfSB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICApO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAvLyBIYW5kbGUgZXJyb3JzIGR1cmluZyB0aGUgcHJvY2VzcyBvZiByZXF1ZXN0aW5nIHNjcmVlbiBzaGFyZVxuICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgZHVyaW5nIHJlcXVlc3Rpbmcgc2NyZWVuIHNoYXJlOiAnLCBlcnJvcik7XG4gICAgfVxuICB9O1xufVxuIl19