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.
- package/README.md +678 -578
- package/dist/README.md +677 -578
- package/dist/fesm2022/mediasfu-angular.mjs +5551 -2944
- package/dist/fesm2022/mediasfu-angular.mjs.map +1 -1
- package/dist/lib/@types/types.d.ts +22 -1
- package/dist/lib/components/breakout-components/breakout-rooms-modal.component.d.ts +1 -0
- package/dist/lib/components/mediasfu-components/mediasfu-broadcast.component.d.ts +153 -61
- package/dist/lib/components/mediasfu-components/mediasfu-chat.component.d.ts +154 -66
- package/dist/lib/components/mediasfu-components/mediasfu-conference.component.d.ts +190 -76
- package/dist/lib/components/mediasfu-components/mediasfu-generic.component.d.ts +184 -70
- package/dist/lib/components/mediasfu-components/mediasfu-webinar.component.d.ts +192 -78
- package/dist/lib/components/menu-components/menu-modal/menu-modal.component.d.ts +6 -1
- package/dist/lib/components/menu-components/share-buttons-component/share-buttons-component.component.d.ts +5 -2
- package/dist/lib/components/misc-components/confirm-here-modal/confirm-here-modal.component.d.ts +4 -2
- package/dist/lib/components/misc-components/pre-join-page/pre-join-page.component.d.ts +71 -66
- package/dist/lib/components/misc-components/share-event-modal/share-event-modal.component.d.ts +5 -1
- package/dist/lib/consumers/connect-local-ips.service.d.ts +81 -0
- package/dist/lib/consumers/connect-send-transport-audio.service.d.ts +43 -11
- package/dist/lib/consumers/connect-send-transport-screen.service.d.ts +87 -46
- package/dist/lib/consumers/connect-send-transport-video.service.d.ts +89 -43
- package/dist/lib/consumers/connect-send-transport.service.d.ts +5 -1
- package/dist/lib/consumers/create-send-transport.service.d.ts +130 -40
- package/dist/lib/consumers/disconnect-send-transport-audio.service.d.ts +77 -40
- package/dist/lib/consumers/disconnect-send-transport-screen.service.d.ts +48 -14
- package/dist/lib/consumers/disconnect-send-transport-video.service.d.ts +81 -44
- package/dist/lib/consumers/get-piped-producers-alt.service.d.ts +5 -1
- package/dist/lib/consumers/receive-all-piped-transports.service.d.ts +5 -1
- package/dist/lib/consumers/resume-send-transport-audio.service.d.ts +54 -21
- package/dist/lib/consumers/stream-success-audio-switch.service.d.ts +124 -40
- package/dist/lib/consumers/trigger.service.d.ts +3 -0
- package/dist/lib/methods/exit-methods/confirm-exit.service.d.ts +5 -1
- package/dist/lib/methods/recording-methods/start-recording.service.d.ts +3 -0
- package/dist/lib/methods/recording-methods/stop-recording.service.d.ts +4 -1
- package/dist/lib/methods/recording-methods/update-recording.service.d.ts +3 -0
- package/dist/lib/methods/stream-methods/click-audio.service.d.ts +3 -0
- package/dist/lib/methods/utils/check-limits-and-make-request.service.d.ts +23 -0
- package/dist/lib/methods/utils/create-response-join-room.util.d.ts +33 -0
- package/dist/lib/methods/utils/create-room-on-media-sfu.service.d.ts +25 -0
- package/dist/lib/methods/utils/initial-values.util.d.ts +6 -0
- package/dist/lib/methods/utils/join-room-on-media-sfu.service.d.ts +52 -0
- package/dist/lib/methods/whiteboard-methods/capture-canvas-stream.service.d.ts +37 -20
- package/dist/lib/producers/producer-emits/join-local-room.service.d.ts +125 -0
- package/dist/lib/producers/socket-receive-methods/all-members-rest.service.d.ts +7 -2
- package/dist/lib/producers/socket-receive-methods/all-members.service.d.ts +7 -2
- package/dist/lib/producers/socket-receive-methods/disconnect-user-self.service.d.ts +5 -1
- package/dist/lib/sockets/socket-manager.service.d.ts +90 -0
- package/dist/public-api.d.ts +11 -1
- package/package.json +17 -20
- package/dist/esm2022/lib/@types/types.mjs +0 -2
- package/dist/esm2022/lib/components/background-components/background-modal/background-modal.component.mjs +0 -799
- package/dist/esm2022/lib/components/breakout-components/breakout-rooms-modal.component.mjs +0 -366
- package/dist/esm2022/lib/components/breakout-components/edit-room-modal/edit-room-modal.component.mjs +0 -143
- package/dist/esm2022/lib/components/breakout-components/room-list/room-list.component.mjs +0 -40
- package/dist/esm2022/lib/components/co-host-components/co-host-modal/co-host-modal.component.mjs +0 -245
- package/dist/esm2022/lib/components/display-components/alert-component/alert.component.component.mjs +0 -79
- package/dist/esm2022/lib/components/display-components/audio-card/audio-card.component.mjs +0 -356
- package/dist/esm2022/lib/components/display-components/audio-grid/audio-grid.component.mjs +0 -80
- package/dist/esm2022/lib/components/display-components/card-video-display/card-video-display.component.mjs +0 -129
- package/dist/esm2022/lib/components/display-components/control-buttons-alt-component/control-buttons-alt-component.component.mjs +0 -138
- package/dist/esm2022/lib/components/display-components/control-buttons-component/control-buttons-component.component.mjs +0 -231
- package/dist/esm2022/lib/components/display-components/control-buttons-component-touch/control-buttons-component-touch.component.mjs +0 -282
- package/dist/esm2022/lib/components/display-components/control-widgets/menu-participants-widget.component.mjs +0 -82
- package/dist/esm2022/lib/components/display-components/control-widgets/menu-record-widget.component.mjs +0 -65
- package/dist/esm2022/lib/components/display-components/control-widgets/menu-widget.component.mjs +0 -137
- package/dist/esm2022/lib/components/display-components/control-widgets/message-widget.component.mjs +0 -137
- package/dist/esm2022/lib/components/display-components/control-widgets/record-timer-widget.component.mjs +0 -51
- package/dist/esm2022/lib/components/display-components/control-widgets/screenshare-widget.component.mjs +0 -101
- package/dist/esm2022/lib/components/display-components/flexible-grid/flexible-grid.component.mjs +0 -151
- package/dist/esm2022/lib/components/display-components/flexible-video/flexible-video.component.mjs +0 -250
- package/dist/esm2022/lib/components/display-components/loading-modal/loading-modal.component.mjs +0 -102
- package/dist/esm2022/lib/components/display-components/main-aspect-component/main-aspect-component.component.mjs +0 -140
- package/dist/esm2022/lib/components/display-components/main-container-component/main-container-component.component.mjs +0 -131
- package/dist/esm2022/lib/components/display-components/main-grid-component/main-grid-component.component.mjs +0 -120
- package/dist/esm2022/lib/components/display-components/main-screen-component/main-screen-component.component.mjs +0 -201
- package/dist/esm2022/lib/components/display-components/meeting-progress-timer/meeting-progress-timer.component.mjs +0 -115
- package/dist/esm2022/lib/components/display-components/mini-audio/mini-audio.component.mjs +0 -319
- package/dist/esm2022/lib/components/display-components/mini-card/mini-card.component.mjs +0 -161
- package/dist/esm2022/lib/components/display-components/mini-card-audio/mini-card-audio.component.mjs +0 -230
- package/dist/esm2022/lib/components/display-components/other-grid-component/other-grid-component.component.mjs +0 -126
- package/dist/esm2022/lib/components/display-components/pagination/pagination.component.mjs +0 -334
- package/dist/esm2022/lib/components/display-components/sub-aspect-component/sub-aspect-component.component.mjs +0 -112
- package/dist/esm2022/lib/components/display-components/video-card/video-card.component.mjs +0 -392
- package/dist/esm2022/lib/components/display-settings-components/display-settings-modal.component.mjs +0 -106
- package/dist/esm2022/lib/components/event-settings-components/event-settings-modal/event-settings-modal.component.mjs +0 -199
- package/dist/esm2022/lib/components/exit-components/confirm-exit-modal/confirm-exit-modal.component.mjs +0 -132
- package/dist/esm2022/lib/components/media-settings-components/media-settings-modal/media-settings-modal.component.mjs +0 -220
- package/dist/esm2022/lib/components/mediasfu-components/mediasfu-broadcast.component.mjs +0 -4238
- package/dist/esm2022/lib/components/mediasfu-components/mediasfu-chat.component.mjs +0 -3754
- package/dist/esm2022/lib/components/mediasfu-components/mediasfu-conference.component.mjs +0 -5071
- package/dist/esm2022/lib/components/mediasfu-components/mediasfu-generic.component.mjs +0 -5380
- package/dist/esm2022/lib/components/mediasfu-components/mediasfu-webinar.component.mjs +0 -5068
- package/dist/esm2022/lib/components/menu-components/custom-buttons/custom-buttons.component.mjs +0 -83
- package/dist/esm2022/lib/components/menu-components/meeting-id-component/meeting-id-component.component.mjs +0 -27
- package/dist/esm2022/lib/components/menu-components/meeting-passcode-component/meeting-passcode-component.component.mjs +0 -27
- package/dist/esm2022/lib/components/menu-components/menu-modal/menu-modal.component.mjs +0 -125
- package/dist/esm2022/lib/components/menu-components/share-buttons-component/share-buttons-component.component.mjs +0 -106
- package/dist/esm2022/lib/components/message-components/message-panel/message-panel.component.mjs +0 -228
- package/dist/esm2022/lib/components/message-components/messages-modal/messages-modal.component.mjs +0 -277
- package/dist/esm2022/lib/components/misc-components/confirm-here-modal/confirm-here-modal.component.mjs +0 -130
- package/dist/esm2022/lib/components/misc-components/pre-join-page/pre-join-page.component.mjs +0 -343
- package/dist/esm2022/lib/components/misc-components/share-event-modal/share-event-modal.component.mjs +0 -127
- package/dist/esm2022/lib/components/misc-components/welcome-page/welcome-page.component.mjs +0 -241
- package/dist/esm2022/lib/components/participants-components/participant-list/participant-list.component.mjs +0 -82
- package/dist/esm2022/lib/components/participants-components/participant-list-item/participant-list-item.component.mjs +0 -139
- package/dist/esm2022/lib/components/participants-components/participant-list-others/participant-list-others.component.mjs +0 -40
- package/dist/esm2022/lib/components/participants-components/participant-list-others-item/participant-list-others-item.component.mjs +0 -60
- package/dist/esm2022/lib/components/participants-components/participants-modal/participants-modal.component.mjs +0 -124
- package/dist/esm2022/lib/components/polls-components/poll-modal/poll-modal.component.mjs +0 -201
- package/dist/esm2022/lib/components/recording-components/advanced-panel-component/advanced-panel-components.component.mjs +0 -92
- package/dist/esm2022/lib/components/recording-components/recording-modal/recording-modal.component.mjs +0 -133
- package/dist/esm2022/lib/components/recording-components/standard-panel-component/standard-panel-component.component.mjs +0 -90
- package/dist/esm2022/lib/components/requests-components/render-request-component/render-request-component.component.mjs +0 -81
- package/dist/esm2022/lib/components/requests-components/requests-modal/requests-modal.component.mjs +0 -147
- package/dist/esm2022/lib/components/screenboard-components/screenboard/screenboard.component.mjs +0 -627
- package/dist/esm2022/lib/components/screenboard-components/screenboard-modal/screenboard-modal.component.mjs +0 -391
- package/dist/esm2022/lib/components/waiting-components/waiting-room-modal.component.mjs +0 -201
- package/dist/esm2022/lib/components/whiteboard-components/configure-whiteboard-modal/configure-whiteboard-modal.component.mjs +0 -286
- package/dist/esm2022/lib/components/whiteboard-components/whiteboard/whiteboard.component.mjs +0 -1833
- package/dist/esm2022/lib/consumers/add-videos-grid.service.mjs +0 -345
- package/dist/esm2022/lib/consumers/auto-adjust.service.mjs +0 -109
- package/dist/esm2022/lib/consumers/calculate-rows-and-columns.service.mjs +0 -60
- package/dist/esm2022/lib/consumers/change-vids.service.mjs +0 -551
- package/dist/esm2022/lib/consumers/check-grid.service.mjs +0 -93
- package/dist/esm2022/lib/consumers/check-permission.service.mjs +0 -105
- package/dist/esm2022/lib/consumers/check-screen-share.service.mjs +0 -106
- package/dist/esm2022/lib/consumers/close-and-resize.service.mjs +0 -331
- package/dist/esm2022/lib/consumers/compare-active-names.service.mjs +0 -106
- package/dist/esm2022/lib/consumers/compare-screen-states.service.mjs +0 -98
- package/dist/esm2022/lib/consumers/connect-ips.service.mjs +0 -154
- package/dist/esm2022/lib/consumers/connect-recv-transport.service.mjs +0 -146
- package/dist/esm2022/lib/consumers/connect-send-transport-audio.service.mjs +0 -84
- package/dist/esm2022/lib/consumers/connect-send-transport-screen.service.mjs +0 -102
- package/dist/esm2022/lib/consumers/connect-send-transport-video.service.mjs +0 -99
- package/dist/esm2022/lib/consumers/connect-send-transport.service.mjs +0 -140
- package/dist/esm2022/lib/consumers/consumer-resume.service.mjs +0 -368
- package/dist/esm2022/lib/consumers/control-media.service.mjs +0 -113
- package/dist/esm2022/lib/consumers/create-send-transport.service.mjs +0 -172
- package/dist/esm2022/lib/consumers/disconnect-send-transport-audio.service.mjs +0 -108
- package/dist/esm2022/lib/consumers/disconnect-send-transport-screen.service.mjs +0 -84
- package/dist/esm2022/lib/consumers/disconnect-send-transport-video.service.mjs +0 -101
- package/dist/esm2022/lib/consumers/disp-streams.service.mjs +0 -513
- package/dist/esm2022/lib/consumers/generate-page-content.service.mjs +0 -106
- package/dist/esm2022/lib/consumers/get-estimate.service.mjs +0 -120
- package/dist/esm2022/lib/consumers/get-piped-producers-alt.service.mjs +0 -82
- package/dist/esm2022/lib/consumers/get-producers-piped.service.mjs +0 -79
- package/dist/esm2022/lib/consumers/get-videos.service.mjs +0 -91
- package/dist/esm2022/lib/consumers/mix-streams.service.mjs +0 -95
- package/dist/esm2022/lib/consumers/on-screen-changes.service.mjs +0 -103
- package/dist/esm2022/lib/consumers/prepopulate-user-media.service.mjs +0 -541
- package/dist/esm2022/lib/consumers/process-consumer-transports-audio.service.mjs +0 -101
- package/dist/esm2022/lib/consumers/process-consumer-transports.service.mjs +0 -128
- package/dist/esm2022/lib/consumers/re-port.service.mjs +0 -114
- package/dist/esm2022/lib/consumers/re-update-inter.service.mjs +0 -239
- package/dist/esm2022/lib/consumers/readjust.service.mjs +0 -173
- package/dist/esm2022/lib/consumers/receive-all-piped-transports.service.mjs +0 -87
- package/dist/esm2022/lib/consumers/receive-room-messages.service.mjs +0 -69
- package/dist/esm2022/lib/consumers/reorder-streams.service.mjs +0 -239
- package/dist/esm2022/lib/consumers/request-screen-share.service.mjs +0 -101
- package/dist/esm2022/lib/consumers/resume-pause-audio-streams.service.mjs +0 -150
- package/dist/esm2022/lib/consumers/resume-pause-streams.service.mjs +0 -103
- package/dist/esm2022/lib/consumers/resume-send-transport-audio.service.mjs +0 -91
- package/dist/esm2022/lib/consumers/signal-new-consumer-transport.service.mjs +0 -136
- package/dist/esm2022/lib/consumers/socket-receive-methods/join-consume-room.service.mjs +0 -96
- package/dist/esm2022/lib/consumers/socket-receive-methods/new-pipe-producer.service.mjs +0 -100
- package/dist/esm2022/lib/consumers/socket-receive-methods/producer-closed.service.mjs +0 -78
- package/dist/esm2022/lib/consumers/start-share-screen.service.mjs +0 -120
- package/dist/esm2022/lib/consumers/stop-share-screen.service.mjs +0 -175
- package/dist/esm2022/lib/consumers/stream-success-audio-switch.service.mjs +0 -185
- package/dist/esm2022/lib/consumers/stream-success-audio.service.mjs +0 -210
- package/dist/esm2022/lib/consumers/stream-success-screen.service.mjs +0 -193
- package/dist/esm2022/lib/consumers/stream-success-video.service.mjs +0 -260
- package/dist/esm2022/lib/consumers/switch-user-audio.service.mjs +0 -120
- package/dist/esm2022/lib/consumers/switch-user-video-alt.service.mjs +0 -260
- package/dist/esm2022/lib/consumers/switch-user-video.service.mjs +0 -172
- package/dist/esm2022/lib/consumers/trigger.service.mjs +0 -210
- package/dist/esm2022/lib/consumers/update-mini-cards-grid.service.mjs +0 -135
- package/dist/esm2022/lib/consumers/update-participant-audio-decibels.service.mjs +0 -84
- package/dist/esm2022/lib/methods/background-methods/launch-background.service.mjs +0 -48
- package/dist/esm2022/lib/methods/breakout-room-methods/breakout-room-updated.service.mjs +0 -183
- package/dist/esm2022/lib/methods/breakout-room-methods/launch-breakout-rooms.service.mjs +0 -46
- package/dist/esm2022/lib/methods/co-host-methods/launch-co-host.service.mjs +0 -46
- package/dist/esm2022/lib/methods/co-host-methods/modify-co-host-settings.service.mjs +0 -104
- package/dist/esm2022/lib/methods/display-settings-methods/launch-display-settings.service.mjs +0 -46
- package/dist/esm2022/lib/methods/display-settings-methods/modify-display-settings.service.mjs +0 -194
- package/dist/esm2022/lib/methods/exit-methods/confirm-exit.service.mjs +0 -52
- package/dist/esm2022/lib/methods/exit-methods/launch-confirm-exit.service.mjs +0 -42
- package/dist/esm2022/lib/methods/media-settings-methods/launch-media-settings.service.mjs +0 -85
- package/dist/esm2022/lib/methods/menu-methods/launch-menu-modal.service.mjs +0 -44
- package/dist/esm2022/lib/methods/message-methods/launch-messages.service.mjs +0 -45
- package/dist/esm2022/lib/methods/message-methods/send-message.service.mjs +0 -143
- package/dist/esm2022/lib/methods/participants-methods/launch-participants.service.mjs +0 -47
- package/dist/esm2022/lib/methods/participants-methods/message-participants.service.mjs +0 -98
- package/dist/esm2022/lib/methods/participants-methods/mute-participants.service.mjs +0 -96
- package/dist/esm2022/lib/methods/participants-methods/remove-participants.service.mjs +0 -107
- package/dist/esm2022/lib/methods/polls-methods/handle-create-poll.service.mjs +0 -75
- package/dist/esm2022/lib/methods/polls-methods/handle-end-poll.service.mjs +0 -72
- package/dist/esm2022/lib/methods/polls-methods/handle-vote-poll.service.mjs +0 -83
- package/dist/esm2022/lib/methods/polls-methods/launch-poll.service.mjs +0 -43
- package/dist/esm2022/lib/methods/polls-methods/poll-updated.service.mjs +0 -95
- package/dist/esm2022/lib/methods/recording-methods/check-pause-state.service.mjs +0 -69
- package/dist/esm2022/lib/methods/recording-methods/check-resume-state.service.mjs +0 -56
- package/dist/esm2022/lib/methods/recording-methods/confirm-recording.service.mjs +0 -278
- package/dist/esm2022/lib/methods/recording-methods/launch-recording.service.mjs +0 -125
- package/dist/esm2022/lib/methods/recording-methods/record-pause-timer.service.mjs +0 -67
- package/dist/esm2022/lib/methods/recording-methods/record-resume-timer.service.mjs +0 -130
- package/dist/esm2022/lib/methods/recording-methods/record-start-timer.service.mjs +0 -134
- package/dist/esm2022/lib/methods/recording-methods/record-update-timer.service.mjs +0 -80
- package/dist/esm2022/lib/methods/recording-methods/start-recording.service.mjs +0 -197
- package/dist/esm2022/lib/methods/recording-methods/stop-recording.service.mjs +0 -112
- package/dist/esm2022/lib/methods/recording-methods/update-recording.service.mjs +0 -272
- package/dist/esm2022/lib/methods/requests-methods/launch-requests.service.mjs +0 -51
- package/dist/esm2022/lib/methods/requests-methods/respond-to-requests.service.mjs +0 -84
- package/dist/esm2022/lib/methods/settings-methods/launch-settings.service.mjs +0 -51
- package/dist/esm2022/lib/methods/settings-methods/modify-settings.service.mjs +0 -109
- package/dist/esm2022/lib/methods/stream-methods/click-audio.service.mjs +0 -275
- package/dist/esm2022/lib/methods/stream-methods/click-chat.service.mjs +0 -75
- package/dist/esm2022/lib/methods/stream-methods/click-screen-share.service.mjs +0 -178
- package/dist/esm2022/lib/methods/stream-methods/click-video.service.mjs +0 -271
- package/dist/esm2022/lib/methods/stream-methods/switch-audio.service.mjs +0 -80
- package/dist/esm2022/lib/methods/stream-methods/switch-video-alt.service.mjs +0 -116
- package/dist/esm2022/lib/methods/stream-methods/switch-video.service.mjs +0 -132
- package/dist/esm2022/lib/methods/utils/format-number.service.mjs +0 -57
- package/dist/esm2022/lib/methods/utils/generate-random-messages.service.mjs +0 -120
- package/dist/esm2022/lib/methods/utils/generate-random-participants.service.mjs +0 -126
- package/dist/esm2022/lib/methods/utils/generate-random-polls.service.mjs +0 -78
- package/dist/esm2022/lib/methods/utils/generate-random-request-list.service.mjs +0 -90
- package/dist/esm2022/lib/methods/utils/generate-random-waiting-room-list.service.mjs +0 -59
- package/dist/esm2022/lib/methods/utils/get-modal-position.util.mjs +0 -32
- package/dist/esm2022/lib/methods/utils/get-overlay-position.util.mjs +0 -31
- package/dist/esm2022/lib/methods/utils/initial-values.util.mjs +0 -379
- package/dist/esm2022/lib/methods/utils/meeting-timer/start-meeting-progress-timer.service.mjs +0 -96
- package/dist/esm2022/lib/methods/utils/mini-audio-player/mini-audio-player.component.mjs +0 -315
- package/dist/esm2022/lib/methods/utils/producer/a-params.service.mjs +0 -58
- package/dist/esm2022/lib/methods/utils/producer/h-params.service.mjs +0 -87
- package/dist/esm2022/lib/methods/utils/producer/screen-params.service.mjs +0 -61
- package/dist/esm2022/lib/methods/utils/producer/v-params.service.mjs +0 -87
- package/dist/esm2022/lib/methods/utils/producer/video-capture-constraints.service.mjs +0 -84
- package/dist/esm2022/lib/methods/utils/sleep.util.mjs +0 -17
- package/dist/esm2022/lib/methods/utils/sound-player.service.mjs +0 -63
- package/dist/esm2022/lib/methods/utils/validate-alphanumeric.service.mjs +0 -49
- package/dist/esm2022/lib/methods/waiting-methods/launch-waiting.service.mjs +0 -41
- package/dist/esm2022/lib/methods/waiting-methods/respond-to-waiting.service.mjs +0 -69
- package/dist/esm2022/lib/methods/whiteboard-methods/capture-canvas-stream.service.mjs +0 -98
- package/dist/esm2022/lib/methods/whiteboard-methods/launch-configure-whiteboard.service.mjs +0 -44
- package/dist/esm2022/lib/producer-client/producer-client-emits/create-device-client.service.mjs +0 -74
- package/dist/esm2022/lib/producer-client/producer-client-emits/join-room-client.service.mjs +0 -96
- package/dist/esm2022/lib/producer-client/producer-client-emits/update-room-parameters-client.service.mjs +0 -276
- package/dist/esm2022/lib/producers/producer-emits/join-con-room.service.mjs +0 -152
- package/dist/esm2022/lib/producers/producer-emits/join-room.service.mjs +0 -152
- package/dist/esm2022/lib/producers/socket-receive-methods/all-members-rest.service.mjs +0 -228
- package/dist/esm2022/lib/producers/socket-receive-methods/all-members.service.mjs +0 -218
- package/dist/esm2022/lib/producers/socket-receive-methods/all-waiting-room-members.service.mjs +0 -57
- package/dist/esm2022/lib/producers/socket-receive-methods/ban-participant.service.mjs +0 -76
- package/dist/esm2022/lib/producers/socket-receive-methods/control-media-host.service.mjs +0 -183
- package/dist/esm2022/lib/producers/socket-receive-methods/disconnect-user-self.service.mjs +0 -50
- package/dist/esm2022/lib/producers/socket-receive-methods/disconnect.service.mjs +0 -64
- package/dist/esm2022/lib/producers/socket-receive-methods/get-domains.service.mjs +0 -78
- package/dist/esm2022/lib/producers/socket-receive-methods/host-request-response.service.mjs +0 -150
- package/dist/esm2022/lib/producers/socket-receive-methods/meeting-ended.service.mjs +0 -73
- package/dist/esm2022/lib/producers/socket-receive-methods/meeting-still-there.service.mjs +0 -47
- package/dist/esm2022/lib/producers/socket-receive-methods/meeting-time-remaining.service.mjs +0 -63
- package/dist/esm2022/lib/producers/socket-receive-methods/participant-requested.service.mjs +0 -63
- package/dist/esm2022/lib/producers/socket-receive-methods/person-joined.service.mjs +0 -54
- package/dist/esm2022/lib/producers/socket-receive-methods/producer-media-closed.service.mjs +0 -129
- package/dist/esm2022/lib/producers/socket-receive-methods/producer-media-paused.service.mjs +0 -152
- package/dist/esm2022/lib/producers/socket-receive-methods/producer-media-resumed.service.mjs +0 -99
- package/dist/esm2022/lib/producers/socket-receive-methods/re-initiate-recording.service.mjs +0 -67
- package/dist/esm2022/lib/producers/socket-receive-methods/receive-message.service.mjs +0 -134
- package/dist/esm2022/lib/producers/socket-receive-methods/recording-notice.service.mjs +0 -233
- package/dist/esm2022/lib/producers/socket-receive-methods/room-record-params.service.mjs +0 -121
- package/dist/esm2022/lib/producers/socket-receive-methods/screen-producer-id.service.mjs +0 -86
- package/dist/esm2022/lib/producers/socket-receive-methods/start-records.service.mjs +0 -60
- package/dist/esm2022/lib/producers/socket-receive-methods/stopped-recording.service.mjs +0 -62
- package/dist/esm2022/lib/producers/socket-receive-methods/time-left-recording.service.mjs +0 -57
- package/dist/esm2022/lib/producers/socket-receive-methods/update-consuming-domains.service.mjs +0 -105
- package/dist/esm2022/lib/producers/socket-receive-methods/update-media-settings.service.mjs +0 -66
- package/dist/esm2022/lib/producers/socket-receive-methods/updated-co-host.service.mjs +0 -96
- package/dist/esm2022/lib/producers/socket-receive-methods/user-waiting.service.mjs +0 -52
- package/dist/esm2022/lib/sockets/socket-manager.service.mjs +0 -113
- package/dist/esm2022/mediasfu-angular.mjs +0 -5
- 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVvcmRlci1zdHJlYW1zLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tZWRpYXNmdS1hbmd1bGFyL3NyYy9saWIvY29uc3VtZXJzL3Jlb3JkZXItc3RyZWFtcy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDZEQUE2RDtBQUM3RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQXVDM0M7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXlERztBQU1ILE1BQU0sT0FBTyxjQUFjO0lBQ3pCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7T0FpQ0c7SUFFSCxjQUFjLEdBQUcsS0FBSyxFQUFFLEVBQ3RCLEdBQUcsR0FBRyxLQUFLLEVBQ1gsYUFBYSxHQUFHLEtBQUssRUFDckIsVUFBVSxHQUNZLEVBQWlCLEVBQUU7UUFDekMsSUFBSSxFQUFFLG1CQUFtQixFQUFFLEdBQUcsVUFBVSxDQUFDO1FBQ3pDLFVBQVUsR0FBRyxtQkFBbUIsRUFBRSxDQUFDO1FBRW5DLElBQUksRUFDRixlQUFlLEVBQ2YsWUFBWSxFQUNaLGFBQWEsRUFDYixRQUFRLEVBQ1IsVUFBVSxFQUNWLGlCQUFpQixFQUNqQixvQkFBb0IsRUFDcEIsWUFBWSxFQUNaLG1CQUFtQixFQUNuQixxQkFBcUIsRUFDckIsYUFBYSxFQUNiLGVBQWUsRUFDZix1QkFBdUIsRUFDdkIsMEJBQTBCLEVBQzFCLGtCQUFrQixFQUNsQix5QkFBeUIsRUFDekIsMkJBQTJCLEVBQzNCLG1CQUFtQixFQUNuQixxQkFBcUIsRUFDckIsa0JBQWtCO1FBRWxCLG9CQUFvQjtRQUNwQixVQUFVLEdBQ1gsR0FBRyxVQUFVLENBQUM7UUFFZix3Q0FBd0M7UUFDeEMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ1QsaUJBQWlCLEdBQUcsRUFBRSxD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QVUsQ0FBQztxQkFDL0QsQ0FBQztnQkFDSixDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUM7UUFFRCx1QkFBdUIsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQzNDLDBCQUEwQixDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFDakQsa0JBQWtCLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDakMseUJBQXlCLENBQUMsbUJBQW9CLENBQUMsQ0FBQztRQUNoRCwyQkFBMkIsQ0FBQyxxQkFBc0IsQ0FBQyxDQUFDO1FBQ3BELG1CQUFtQixDQUFDLGFBQWMsQ0FBQyxDQUFDO1FBQ3BDLHFCQUFxQixDQUFDLGVBQWdCLENBQUMsQ0FBQztRQUN4QyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUUzQiwrQkFBK0I7UUFDL0IsTUFBTSxVQUFVLENBQUMsRUFBRSxhQUFhLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQztJQUNsRCxDQUFDLENBQUM7dUdBbE9TLGNBQWM7MkdBQWQsY0FBYyxjQUZiLE1BQU07OzJGQUVQLGNBQWM7a0JBSDFCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLW5vbi1udWxsLWFzc2VydGlvbiAqL1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUGFydGljaXBhbnQsIFN0cmVhbSwgQ2hhbmdlVmlkc1BhcmFtZXRlcnMsIENoYW5nZVZpZHNUeXBlIH0gZnJvbSAnLi4vQHR5cGVzL3R5cGVzJztcblxuZXhwb3J0IGludGVyZmFjZSBSZW9yZGVyU3RyZWFtc1BhcmFtZXRlcnMgZXh0ZW5kcyBDaGFuZ2VWaWRzUGFyYW1ldGVycyB7XG4gIGFsbFZpZGVvU3RyZWFtczogKFN0cmVhbSB8IFBhcnRpY2lwYW50KVtdO1xuICBwYXJ0aWNpcGFudHM6IFBhcnRpY2lwYW50W107XG4gIG9sZEFsbFN0cmVhbXM6IChTdHJlYW0gfCBQYXJ0aWNpcGFudClbXTtcbiAgc2NyZWVuSWQ/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
|