mediasfu-angular 1.0.2 → 2.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +686 -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,152 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
/**
|
|
4
|
-
* Service to handle the paused state of media for a producer.
|
|
5
|
-
*
|
|
6
|
-
* @class
|
|
7
|
-
* @name ProducerMediaPaused
|
|
8
|
-
* @description
|
|
9
|
-
* Handles the actions required when media is paused for a specified producer, including UI updates, participant state handling, and managing meeting display optimizations.
|
|
10
|
-
*
|
|
11
|
-
* @method
|
|
12
|
-
* producerMediaPaused
|
|
13
|
-
*
|
|
14
|
-
* @param {ProducerMediaPausedOptions} options - Options to specify the producer and event details:
|
|
15
|
-
* - `producerId` {string}: The ID of the paused producer.
|
|
16
|
-
* - `kind` {string}: The type of media paused (e.g., "audio", "video").
|
|
17
|
-
* - `name` {string}: Name of the producer whose media is paused.
|
|
18
|
-
* - `parameters` {ProducerMediaPausedParameters}: Configuration and state parameters for the meeting.
|
|
19
|
-
* - `activeSounds` {string[]}: Active audio streams currently displayed.
|
|
20
|
-
* - `meetingDisplayType` {string}: Current meeting layout type (e.g., "media", "video").
|
|
21
|
-
* - `meetingVideoOptimized` {boolean}: Indicates if video is optimized.
|
|
22
|
-
* - `participants` {Participant[]}: List of all meeting participants.
|
|
23
|
-
* - `oldSoundIds` {string[]}: List of previously active audio stream IDs.
|
|
24
|
-
* - `shared` {boolean}: Indicates if the screen is currently shared.
|
|
25
|
-
* - `shareScreenStarted` {boolean}: Indicates if screen sharing has started.
|
|
26
|
-
* - `updateMainWindow` {boolean}: Specifies if the main display window should update.
|
|
27
|
-
* - `hostLabel` {string}: The label representing the host participant.
|
|
28
|
-
* - `islevel` {string}: The access level of the participant.
|
|
29
|
-
* - `updateActiveSounds` {Function}: Updates the list of active audio streams.
|
|
30
|
-
* - `updateUpdateMainWindow` {Function}: Updates the status of the main display window.
|
|
31
|
-
* - `reorderStreams` {Function}: Reorders media streams for optimized display.
|
|
32
|
-
* - `prepopulateUserMedia` {Function}: Preloads user media based on display needs.
|
|
33
|
-
* - `reUpdateInter` {Function}: Refreshes participant interactions on the UI.
|
|
34
|
-
*
|
|
35
|
-
* @returns {Promise<void>} Resolves when media pause handling is complete.
|
|
36
|
-
*
|
|
37
|
-
* @example
|
|
38
|
-
* const options = {
|
|
39
|
-
* producerId: '12345',
|
|
40
|
-
* kind: 'audio',
|
|
41
|
-
* name: 'Participant A',
|
|
42
|
-
* parameters: {
|
|
43
|
-
* activeSounds: ['Participant B'],
|
|
44
|
-
* meetingDisplayType: 'video',
|
|
45
|
-
* meetingVideoOptimized: false,
|
|
46
|
-
* participants: [...],
|
|
47
|
-
* oldSoundIds: ['Participant A'],
|
|
48
|
-
* shared: false,
|
|
49
|
-
* shareScreenStarted: false,
|
|
50
|
-
* updateMainWindow: true,
|
|
51
|
-
* hostLabel: 'Host',
|
|
52
|
-
* islevel: '1',
|
|
53
|
-
* updateActiveSounds: (sounds) => { ... },
|
|
54
|
-
* updateUpdateMainWindow: (status) => { ... },
|
|
55
|
-
* reorderStreams: ({ add, screenChanged, parameters }) => { ... },
|
|
56
|
-
* prepopulateUserMedia: ({ name, parameters }) => { ... },
|
|
57
|
-
* reUpdateInter: ({ name, add, force, parameters }) => { ... }
|
|
58
|
-
* }
|
|
59
|
-
* };
|
|
60
|
-
*
|
|
61
|
-
* producerMediaPausedService.producerMediaPaused(options)
|
|
62
|
-
* .then(() => console.log('Media pause handled'))
|
|
63
|
-
* .catch(error => console.error('Error:', error));
|
|
64
|
-
*/
|
|
65
|
-
export class ProducerMediaPaused {
|
|
66
|
-
/**
|
|
67
|
-
* Handles the event when media is paused for a producer.
|
|
68
|
-
*
|
|
69
|
-
* @param {ProducerMediaPausedOptions} options - The options for the producer media paused event.
|
|
70
|
-
* @param {string} options.producerId - The ID of the producer.
|
|
71
|
-
* @param {string} options.kind - The kind of media (e.g., "audio", "video").
|
|
72
|
-
* @param {string} options.name - The name of the producer.
|
|
73
|
-
* @param {Parameters} options.parameters - The parameters for the event.
|
|
74
|
-
*
|
|
75
|
-
* @returns {Promise<void>} A promise that resolves when the media paused handling is complete.
|
|
76
|
-
*
|
|
77
|
-
* @description
|
|
78
|
-
* This function handles the event when media is paused for a producer. It performs the following tasks:
|
|
79
|
-
* - Updates the parameters.
|
|
80
|
-
* - Iterates through participants and updates the UI based on their muted status and other conditions.
|
|
81
|
-
* - Handles meeting display type and optimizes the UI accordingly.
|
|
82
|
-
* - Manages audio media by updating the relevant participant's state.
|
|
83
|
-
*/
|
|
84
|
-
producerMediaPaused = async ({ producerId, kind, name, parameters, }) => {
|
|
85
|
-
parameters = parameters.getUpdatedAllParams();
|
|
86
|
-
let { activeSounds, meetingDisplayType, meetingVideoOptimized, participants, oldSoundIds, shared, shareScreenStarted, updateMainWindow, hostLabel, islevel, updateActiveSounds, updateUpdateMainWindow, reorderStreams, prepopulateUserMedia, reUpdateInter, } = parameters;
|
|
87
|
-
await Promise.all(participants.map(async (participant) => {
|
|
88
|
-
if (participant.muted) {
|
|
89
|
-
try {
|
|
90
|
-
if (participant.islevel == '2' &&
|
|
91
|
-
!participant.videoID &&
|
|
92
|
-
!shared &&
|
|
93
|
-
!shareScreenStarted &&
|
|
94
|
-
islevel != '2') {
|
|
95
|
-
updateMainWindow = true;
|
|
96
|
-
updateUpdateMainWindow(updateMainWindow);
|
|
97
|
-
await prepopulateUserMedia({ name: hostLabel, parameters });
|
|
98
|
-
updateMainWindow = false;
|
|
99
|
-
updateUpdateMainWindow(updateMainWindow);
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
catch {
|
|
103
|
-
/* handle error */
|
|
104
|
-
}
|
|
105
|
-
if (shareScreenStarted || shared) {
|
|
106
|
-
if (activeSounds.includes(participant.name)) {
|
|
107
|
-
activeSounds = activeSounds.filter((audioStream) => audioStream != participant.name);
|
|
108
|
-
updateActiveSounds(activeSounds);
|
|
109
|
-
}
|
|
110
|
-
await reUpdateInter({ name: participant.name, add: false, force: true, parameters });
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
}));
|
|
114
|
-
let checker = false;
|
|
115
|
-
if (meetingDisplayType == 'media' ||
|
|
116
|
-
(meetingDisplayType == 'video' && !meetingVideoOptimized)) {
|
|
117
|
-
const participant = participants.find((obj) => obj.name == name);
|
|
118
|
-
checker = !!participant?.videoID;
|
|
119
|
-
if (!checker && !shareScreenStarted && !shared) {
|
|
120
|
-
await reorderStreams({ add: false, screenChanged: true, parameters });
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
if (kind == 'audio') {
|
|
124
|
-
try {
|
|
125
|
-
const participant = participants.find((obj) => obj.audioID == producerId) ||
|
|
126
|
-
participants.find((obj) => obj.name == name);
|
|
127
|
-
if (participant &&
|
|
128
|
-
((participant.name && oldSoundIds.includes(participant.name)) ||
|
|
129
|
-
(name && oldSoundIds.includes(name)))) {
|
|
130
|
-
reUpdateInter({
|
|
131
|
-
name: participant.name ?? '',
|
|
132
|
-
add: false,
|
|
133
|
-
force: true,
|
|
134
|
-
parameters,
|
|
135
|
-
});
|
|
136
|
-
}
|
|
137
|
-
}
|
|
138
|
-
catch {
|
|
139
|
-
/* handle error */
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
|
-
};
|
|
143
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ProducerMediaPaused, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
144
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ProducerMediaPaused, providedIn: 'root' });
|
|
145
|
-
}
|
|
146
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ProducerMediaPaused, decorators: [{
|
|
147
|
-
type: Injectable,
|
|
148
|
-
args: [{
|
|
149
|
-
providedIn: 'root',
|
|
150
|
-
}]
|
|
151
|
-
}] });
|
|
152
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjZXItbWVkaWEtcGF1c2VkLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tZWRpYXNmdS1hbmd1bGFyL3NyYy9saWIvcHJvZHVjZXJzL3NvY2tldC1yZWNlaXZlLW1ldGhvZHMvcHJvZHVjZXItbWVkaWEtcGF1c2VkLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUErQzNDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBNkRHO0FBTUgsTUFBTSxPQUFPLG1CQUFtQjtJQUM5Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7T0FpQkc7SUFDSCxtQkFBbUIsR0FBRyxLQUFLLEVBQUUsRUFDM0IsVUFBVSxFQUNWLElBQUksRUFDSixJQUFJLEVBQ0osVUFBVSxHQUNpQixFQUFpQixFQUFFO1FBQzlDLFVBQVUsR0FBRyxVQUFVLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztRQUU5QyxJQUFJLEVBQ0YsWUFBWSxFQUNaLGtCQUFrQixFQUNsQixxQkFBcUIsRUFDckIsWUFBWSxFQUNaLFdBQVcsRUFDWCxNQUFNLEVBQ04sa0JBQWtCLEVBQ2xCLGdCQUFnQixFQUNoQixTQUFTLEVBQ1QsT0FBTyxFQUNQLGtCQUFrQixFQUNsQixzQkFBc0IsRUFDdEIsY0FBYyxFQUNkLG9CQUFvQixFQUNwQixhQUFhLEdBQ2QsR0FBRyxVQUFVLENBQUM7UUFFZixNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQ2YsWUFBWSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsV0FBZ0IsRUFBRSxFQUFFO1lBQzFDLElBQUksV0FBVyxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUN0QixJQUFJLENBQUM7b0JBQ0gsSUFDRSxXQUFXLENBQUMsT0FBTyxJQUFJLEdBQUc7d0JBQzFCLENBQUMsV0FB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Qzt1R0FoSFMsbUJBQW1COzJHQUFuQixtQkFBbUIsY0FGbEIsTUFBTTs7MkZBRVAsbUJBQW1CO2tCQUgvQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIFBhcnRpY2lwYW50LFxuICBQcmVwb3B1bGF0ZVVzZXJNZWRpYVR5cGUsXG4gIFJlb3JkZXJTdHJlYW1zVHlwZSxcbiAgUmVVcGRhdGVJbnRlclBhcmFtZXRlcnMsXG4gIFJlVXBkYXRlSW50ZXJUeXBlLFxuICBSZW9yZGVyU3RyZWFtc1BhcmFtZXRlcnMsXG4gIFByZXBvcHVsYXRlVXNlck1lZGlhUGFyYW1ldGVycyxcbn0gZnJvbSAnLi4vLi4vQHR5cGVzL3R5cGVzJztcblxuZXhwb3J0IGludGVyZmFjZSBQcm9kdWNlck1lZGlhUGF1c2VkUGFyYW1ldGVyc1xuICBleHRlbmRzIFByZXBvcHVsYXRlVXNlck1lZGlhUGFyYW1ldGVycyxcbiAgICBSZW9yZGVyU3RyZWFtc1BhcmFtZXRlcnMsXG4gICAgUmVVcGRhdGVJbnRlclBhcmFtZXRlcnMge1xuICBhY3RpdmVTb3VuZHM6IHN0cmluZ1tdO1xuICBtZWV0aW5nRGlzcGxheVR5cGU6IHN0cmluZztcbiAgbWVldGluZ1ZpZGVvT3B0aW1pemVkOiBib29sZWFuO1xuICBwYXJ0aWNpcGFudHM6IFBhcnRpY2lwYW50W107XG4gIG9sZFNvdW5kSWRzOiBzdHJpbmdbXTtcbiAgc2hhcmVkOiBib29sZWFuO1xuICBzaGFyZVNjcmVlblN0YXJ0ZWQ6IGJvb2xlYW47XG4gIHVwZGF0ZU1haW5XaW5kb3c6IGJvb2xlYW47XG4gIGhvc3RMYWJlbDogc3RyaW5nO1xuICBpc2xldmVsOiBzdHJpbmc7XG4gIHVwZGF0ZUFjdGl2ZVNvdW5kczogKGFjdGl2ZVNvdW5kczogc3RyaW5nW10pID0+IHZvaWQ7XG4gIHVwZGF0ZVVwZGF0ZU1haW5XaW5kb3c6ICh1cGRhdGVNYWluV2luZG93OiBib29sZWFuKSA9PiB2b2lkO1xuXG4gIC8vIG1lZGlhc2Z1IGZ1bmN0aW9uc1xuICByZW9yZGVyU3RyZWFtczogUmVvcmRlclN0cmVhbXNUeXBlO1xuICBwcmVwb3B1bGF0ZVVzZXJNZWRpYTogUHJlcG9wdWxhdGVVc2VyTWVkaWFUeXBlO1xuICByZVVwZGF0ZUludGVyOiBSZVVwZGF0ZUludGVyVHlwZTtcblxuICBnZXRVcGRhdGVkQWxsUGFyYW1zOiAoKSA9PiBQcm9kdWNlck1lZGlhUGF1c2VkUGFyYW1ldGVycztcbiAgW2tleTogc3RyaW5nXTogYW55O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFByb2R1Y2VyTWVkaWFQYXVzZWRPcHRpb25zIHtcbiAgcHJvZHVjZXJJZDogc3RyaW5nO1xuICBraW5kOiAnYXVkaW8nIHwgJ3ZpZGVvJyB8ICdzY3JlZW5zaGFyZScgfCAnc2NyZWVuJztcbiAgbmFtZTogc3RyaW5nO1xuICBwYXJhbWV0ZXJzOiBQcm9kdWNlck1lZGlhUGF1c2VkUGFyYW1ldGVycztcbn1cblxuLy8gRXhwb3J0IHRoZSB0eXBlIGRlZmluaXRpb24gZm9yIHRoZSBmdW5jdGlvblxuZXhwb3J0IHR5cGUgUHJvZHVjZXJNZWRpYVBhdXNlZFR5cGUgPSAob3B0aW9uczogUHJvZHVjZXJNZWRpYVBhdXNlZE9wdGlvbnMpID0+IFByb21pc2U8dm9pZD47XG5cbi8qKlxuICogU2VydmljZSB0byBoYW5kbGUgdGhlIHBhdXNlZCBzdGF0ZSBvZiBtZWRpYSBmb3IgYSBwcm9kdWNlci5cbiAqXG4gKiBAY2xhc3NcbiAqIEBuYW1lIFByb2R1Y2VyTWVkaWFQYXVzZWRcbiAqIEBkZXNjcmlwdGlvblxuICogSGFuZGxlcyB0aGUgYWN0aW9ucyByZXF1aXJlZCB3aGVuIG1lZGlhIGlzIHBhdXNlZCBmb3IgYSBzcGVjaWZpZWQgcHJvZHVjZXIsIGluY2x1ZGluZyBVSSB1cGRhdGVzLCBwYXJ0aWNpcGFudCBzdGF0ZSBoYW5kbGluZywgYW5kIG1hbmFnaW5nIG1lZXRpbmcgZGlzcGxheSBvcHRpbWl6YXRpb25zLlxuICpcbiAqIEBtZXRob2RcbiAqIHByb2R1Y2VyTWVkaWFQYXVzZWRcbiAqXG4gKiBAcGFyYW0ge1Byb2R1Y2VyTWVkaWFQYXVzZWRPcHRpb25zfSBvcHRpb25zIC0gT3B0aW9ucyB0byBzcGVjaWZ5IHRoZSBwcm9kdWNlciBhbmQgZXZlbnQgZGV0YWlsczpcbiAqICAgLSBgcHJvZHVjZXJJZGAge3N0cmluZ306IFRoZSBJRCBvZiB0aGUgcGF1c2VkIHByb2R1Y2VyLlxuICogICAtIGBraW5kYCB7c3RyaW5nfTogVGhlIHR5cGUgb2YgbWVkaWEgcGF1c2VkIChlLmcuLCBcImF1ZGlvXCIsIFwidmlkZW9cIikuXG4gKiAgIC0gYG5hbWVgIHtzdHJpbmd9OiBOYW1lIG9mIHRoZSBwcm9kdWNlciB3aG9zZSBtZWRpYSBpcyBwYXVzZWQuXG4gKiAgIC0gYHBhcmFtZXRlcnNgIHtQcm9kdWNlck1lZGlhUGF1c2VkUGFyYW1ldGVyc306IENvbmZpZ3VyYXRpb24gYW5kIHN0YXRlIHBhcmFtZXRlcnMgZm9yIHRoZSBtZWV0aW5nLlxuICogICAgICAtIGBhY3RpdmVTb3VuZHNgIHtzdHJpbmdbXX06IEFjdGl2ZSBhdWRpbyBzdHJlYW1zIGN1cnJlbnRseSBkaXNwbGF5ZWQuXG4gKiAgICAgIC0gYG1lZXRpbmdEaXNwbGF5VHlwZWAge3N0cmluZ306IEN1cnJlbnQgbWVldGluZyBsYXlvdXQgdHlwZSAoZS5nLiwgXCJtZWRpYVwiLCBcInZpZGVvXCIpLlxuICogICAgICAtIGBtZWV0aW5nVmlkZW9PcHRpbWl6ZWRgIHtib29sZWFufTogSW5kaWNhdGVzIGlmIHZpZGVvIGlzIG9wdGltaXplZC5cbiAqICAgICAgLSBgcGFydGljaXBhbnRzYCB7UGFydGljaXBhbnRbXX06IExpc3Qgb2YgYWxsIG1lZXRpbmcgcGFydGljaXBhbnRzLlxuICogICAgICAtIGBvbGRTb3VuZElkc2Age3N0cmluZ1tdfTogTGlzdCBvZiBwcmV2aW91c2x5IGFjdGl2ZSBhdWRpbyBzdHJlYW0gSURzLlxuICogICAgICAtIGBzaGFyZWRgIHtib29sZWFufTogSW5kaWNhdGVzIGlmIHRoZSBzY3JlZW4gaXMgY3VycmVudGx5IHNoYXJlZC5cbiAqICAgICAgLSBgc2hhcmVTY3JlZW5TdGFydGVkYCB7Ym9vbGVhbn06IEluZGljYXRlcyBpZiBzY3JlZW4gc2hhcmluZyBoYXMgc3RhcnRlZC5cbiAqICAgICAgLSBgdXBkYXRlTWFpbldpbmRvd2Age2Jvb2xlYW59OiBTcGVjaWZpZXMgaWYgdGhlIG1haW4gZGlzcGxheSB3aW5kb3cgc2hvdWxkIHVwZGF0ZS5cbiAqICAgICAgLSBgaG9zdExhYmVsYCB7c3RyaW5nfTogVGhlIGxhYmVsIHJlcHJlc2VudGluZyB0aGUgaG9zdCBwYXJ0aWNpcGFudC5cbiAqICAgICAgLSBgaXNsZXZlbGAge3N0cmluZ306IFRoZSBhY2Nlc3MgbGV2ZWwgb2YgdGhlIHBhcnRpY2lwYW50LlxuICogICAgICAtIGB1cGRhdGVBY3RpdmVTb3VuZHNgIHtGdW5jdGlvbn06IFVwZGF0ZXMgdGhlIGxpc3Qgb2YgYWN0aXZlIGF1ZGlvIHN0cmVhbXMuXG4gKiAgICAgIC0gYHVwZGF0ZVVwZGF0ZU1haW5XaW5kb3dgIHtGdW5jdGlvbn06IFVwZGF0ZXMgdGhlIHN0YXR1cyBvZiB0aGUgbWFpbiBkaXNwbGF5IHdpbmRvdy5cbiAqICAgICAgLSBgcmVvcmRlclN0cmVhbXNgIHtGdW5jdGlvbn06IFJlb3JkZXJzIG1lZGlhIHN0cmVhbXMgZm9yIG9wdGltaXplZCBkaXNwbGF5LlxuICogICAgICAtIGBwcmVwb3B1bGF0ZVVzZXJNZWRpYWAge0Z1bmN0aW9ufTogUHJlbG9hZHMgdXNlciBtZWRpYSBiYXNlZCBvbiBkaXNwbGF5IG5lZWRzLlxuICogICAgICAtIGByZVVwZGF0ZUludGVyYCB7RnVuY3Rpb259OiBSZWZyZXNoZXMgcGFydGljaXBhbnQgaW50ZXJhY3Rpb25zIG9uIHRoZSBVSS5cbiAqXG4gKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn0gUmVzb2x2ZXMgd2hlbiBtZWRpYSBwYXVzZSBoYW5kbGluZyBpcyBjb21wbGV0ZS5cbiAqXG4gKiBAZXhhbXBsZVxuICogY29uc3Qgb3B0aW9ucyA9IHtcbiAqICAgcHJvZHVjZXJJZDogJzEyMzQ1JyxcbiAqICAga2luZDogJ2F1ZGlvJyxcbiAqICAgbmFtZTogJ1BhcnRpY2lwYW50IEEnLFxuICogICBwYXJhbWV0ZXJzOiB7XG4gKiAgICAgYWN0aXZlU291bmRzOiBbJ1BhcnRpY2lwYW50IEInXSxcbiAqICAgICBtZWV0aW5nRGlzcGxheVR5cGU6ICd2aWRlbycsXG4gKiAgICAgbWVldGluZ1ZpZGVvT3B0aW1pemVkOiBmYWxzZSxcbiAqICAgICBwYXJ0aWNpcGFudHM6IFsuLi5dLFxuICogICAgIG9sZFNvdW5kSWRzOiBbJ1BhcnRpY2lwYW50IEEnXSxcbiAqICAgICBzaGFyZWQ6IGZhbHNlLFxuICogICAgIHNoYXJlU2NyZWVuU3RhcnRlZDogZmFsc2UsXG4gKiAgICAgdXBkYXRlTWFpbldpbmRvdzogdHJ1ZSxcbiAqICAgICBob3N0TGFiZWw6ICdIb3N0JyxcbiAqICAgICBpc2xldmVsOiAnMScsXG4gKiAgICAgdXBkYXRlQWN0aXZlU291bmRzOiAoc291bmRzKSA9PiB7IC4uLiB9LFxuICogICAgIHVwZGF0ZVVwZGF0ZU1haW5XaW5kb3c6IChzdGF0dXMpID0+IHsgLi4uIH0sXG4gKiAgICAgcmVvcmRlclN0cmVhbXM6ICh7IGFkZCwgc2NyZWVuQ2hhbmdlZCwgcGFyYW1ldGVycyB9KSA9PiB7IC4uLiB9LFxuICogICAgIHByZXBvcHVsYXRlVXNlck1lZGlhOiAoeyBuYW1lLCBwYXJhbWV0ZXJzIH0pID0+IHsgLi4uIH0sXG4gKiAgICAgcmVVcGRhdGVJbnRlcjogKHsgbmFtZSwgYWRkLCBmb3JjZSwgcGFyYW1ldGVycyB9KSA9PiB7IC4uLiB9XG4gKiAgIH1cbiAqIH07XG4gKlxuICogcHJvZHVjZXJNZWRpYVBhdXNlZFNlcnZpY2UucHJvZHVjZXJNZWRpYVBhdXNlZChvcHRpb25zKVxuICogICAudGhlbigoKSA9PiBjb25zb2xlLmxvZygnTWVkaWEgcGF1c2UgaGFuZGxlZCcpKVxuICogICAuY2F0Y2goZXJyb3IgPT4gY29uc29sZS5lcnJvcignRXJyb3I6JywgZXJyb3IpKTtcbiAqL1xuXG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBQcm9kdWNlck1lZGlhUGF1c2VkIHtcbiAgLyoqXG4gICAqIEhhbmRsZXMgdGhlIGV2ZW50IHdoZW4gbWVkaWEgaXMgcGF1c2VkIGZvciBhIHByb2R1Y2VyLlxuICAgKlxuICAgKiBAcGFyYW0ge1Byb2R1Y2VyTWVkaWFQYXVzZWRPcHRpb25zfSBvcHRpb25zIC0gVGhlIG9wdGlvbnMgZm9yIHRoZSBwcm9kdWNlciBtZWRpYSBwYXVzZWQgZXZlbnQuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBvcHRpb25zLnByb2R1Y2VySWQgLSBUaGUgSUQgb2YgdGhlIHByb2R1Y2VyLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gb3B0aW9ucy5raW5kIC0gVGhlIGtpbmQgb2YgbWVkaWEgKGUuZy4sIFwiYXVkaW9cIiwgXCJ2aWRlb1wiKS5cbiAgICogQHBhcmFtIHtzdHJpbmd9IG9wdGlvbnMubmFtZSAtIFRoZSBuYW1lIG9mIHRoZSBwcm9kdWNlci5cbiAgICogQHBhcmFtIHtQYXJhbWV0ZXJzfSBvcHRpb25zLnBhcmFtZXRlcnMgLSBUaGUgcGFyYW1ldGVycyBmb3IgdGhlIGV2ZW50LlxuICAgKlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn0gQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgbWVkaWEgcGF1c2VkIGhhbmRsaW5nIGlzIGNvbXBsZXRlLlxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogVGhpcyBmdW5jdGlvbiBoYW5kbGVzIHRoZSBldmVudCB3aGVuIG1lZGlhIGlzIHBhdXNlZCBmb3IgYSBwcm9kdWNlci4gSXQgcGVyZm9ybXMgdGhlIGZvbGxvd2luZyB0YXNrczpcbiAgICogLSBVcGRhdGVzIHRoZSBwYXJhbWV0ZXJzLlxuICAgKiAtIEl0ZXJhdGVzIHRocm91Z2ggcGFydGljaXBhbnRzIGFuZCB1cGRhdGVzIHRoZSBVSSBiYXNlZCBvbiB0aGVpciBtdXRlZCBzdGF0dXMgYW5kIG90aGVyIGNvbmRpdGlvbnMuXG4gICAqIC0gSGFuZGxlcyBtZWV0aW5nIGRpc3BsYXkgdHlwZSBhbmQgb3B0aW1pemVzIHRoZSBVSSBhY2NvcmRpbmdseS5cbiAgICogLSBNYW5hZ2VzIGF1ZGlvIG1lZGlhIGJ5IHVwZGF0aW5nIHRoZSByZWxldmFudCBwYXJ0aWNpcGFudCdzIHN0YXRlLlxuICAgKi9cbiAgcHJvZHVjZXJNZWRpYVBhdXNlZCA9IGFzeW5jICh7XG4gICAgcHJvZHVjZXJJZCxcbiAgICBraW5kLFxuICAgIG5hbWUsXG4gICAgcGFyYW1ldGVycyxcbiAgfTogUHJvZHVjZXJNZWRpYVBhdXNlZE9wdGlvbnMpOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgICBwYXJhbWV0ZXJzID0gcGFyYW1ldGVycy5nZXRVcGRhdGVkQWxsUGFyYW1zKCk7XG5cbiAgICBsZXQge1xuICAgICAgYWN0aXZlU291bmRzLFxuICAgICAgbWVldGluZ0Rpc3BsYXlUeXBlLFxuICAgICAgbWVldGluZ1ZpZGVvT3B0aW1pemVkLFxuICAgICAgcGFydGljaXBhbnRzLFxuICAgICAgb2xkU291bmRJZHMsXG4gICAgICBzaGFyZWQsXG4gICAgICBzaGFyZVNjcmVlblN0YXJ0ZWQsXG4gICAgICB1cGRhdGVNYWluV2luZG93LFxuICAgICAgaG9zdExhYmVsLFxuICAgICAgaXNsZXZlbCxcbiAgICAgIHVwZGF0ZUFjdGl2ZVNvdW5kcyxcbiAgICAgIHVwZGF0ZVVwZGF0ZU1haW5XaW5kb3csXG4gICAgICByZW9yZGVyU3RyZWFtcyxcbiAgICAgIHByZXBvcHVsYXRlVXNlck1lZGlhLFxuICAgICAgcmVVcGRhdGVJbnRlcixcbiAgICB9ID0gcGFyYW1ldGVycztcblxuICAgIGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgcGFydGljaXBhbnRzLm1hcChhc3luYyAocGFydGljaXBhbnQ6IGFueSkgPT4ge1xuICAgICAgICBpZiAocGFydGljaXBhbnQubXV0ZWQpIHtcbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICBwYXJ0aWNpcGFudC5pc2xldmVsID09ICcyJyAmJlxuICAgICAgICAgICAgICAhcGFydGljaXBhbnQudmlkZW9JRCAmJlxuICAgICAgICAgICAgICAhc2hhcmVkICYmXG4gICAgICAgICAgICAgICFzaGFyZVNjcmVlblN0YXJ0ZWQgJiZcbiAgICAgICAgICAgICAgaXNsZXZlbCAhPSAnMidcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICB1cGRhdGVNYWluV2luZG93ID0gdHJ1ZTtcbiAgICAgICAgICAgICAgdXBkYXRlVXBkYXRlTWFpbldpbmRvdyh1cGRhdGVNYWluV2luZG93KTtcbiAgICAgICAgICAgICAgYXdhaXQgcHJlcG9wdWxhdGVVc2VyTWVkaWEoeyBuYW1lOiBob3N0TGFiZWwsIHBhcmFtZXRlcnMgfSk7XG4gICAgICAgICAgICAgIHVwZGF0ZU1haW5XaW5kb3cgPSBmYWxzZTtcbiAgICAgICAgICAgICAgdXBkYXRlVXBkYXRlTWFpbldpbmRvdyh1cGRhdGVNYWluV2luZG93KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGNhdGNoIHtcbiAgICAgICAgICAgIC8qIGhhbmRsZSBlcnJvciAqL1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChzaGFyZVNjcmVlblN0YXJ0ZWQgfHwgc2hhcmVkKSB7XG4gICAgICAgICAgICBpZiAoYWN0aXZlU291bmRzLmluY2x1ZGVzKHBhcnRpY2lwYW50Lm5hbWUpKSB7XG4gICAgICAgICAgICAgIGFjdGl2ZVNvdW5kcyA9IGFjdGl2ZVNvdW5kcy5maWx0ZXIoXG4gICAgICAgICAgICAgICAgKGF1ZGlvU3RyZWFtOiBhbnkpID0+IGF1ZGlvU3RyZWFtICE9IHBhcnRpY2lwYW50Lm5hbWUsXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIHVwZGF0ZUFjdGl2ZVNvdW5kcyhhY3RpdmVTb3VuZHMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYXdhaXQgcmVVcGRhdGVJbnRlcih7IG5hbWU6IHBhcnRpY2lwYW50Lm5hbWUsIGFkZDogZmFsc2UsIGZvcmNlOiB0cnVlLCBwYXJhbWV0ZXJzIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSksXG4gICAgKTtcblxuICAgIGxldCBjaGVja2VyID0gZmFsc2U7XG4gICAgaWYgKFxuICAgICAgbWVldGluZ0Rpc3BsYXlUeXBlID09ICdtZWRpYScgfHxcbiAgICAgIChtZWV0aW5nRGlzcGxheVR5cGUgPT0gJ3ZpZGVvJyAmJiAhbWVldGluZ1ZpZGVvT3B0aW1pemVkKVxuICAgICkge1xuICAgICAgY29uc3QgcGFydGljaXBhbnQgPSBwYXJ0aWNpcGFudHMuZmluZCgob2JqOiBhbnkpID0+IG9iai5uYW1lID09IG5hbWUpO1xuICAgICAgY2hlY2tlciA9ICEhcGFydGljaXBhbnQ/LnZpZGVvSUQ7XG4gICAgICBpZiAoIWNoZWNrZXIgJiYgIXNoYXJlU2NyZWVuU3RhcnRlZCAmJiAhc2hhcmVkKSB7XG4gICAgICAgIGF3YWl0IHJlb3JkZXJTdHJlYW1zKHsgYWRkOiBmYWxzZSwgc2NyZWVuQ2hhbmdlZDogdHJ1ZSwgcGFyYW1ldGVycyB9KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoa2luZCA9PSAnYXVkaW8nKSB7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCBwYXJ0aWNpcGFudCA9XG4gICAgICAgICAgcGFydGljaXBhbnRzLmZpbmQoKG9iajogYW55KSA9PiBvYmouYXVkaW9JRCA9PSBwcm9kdWNlcklkKSB8fFxuICAgICAgICAgIHBhcnRpY2lwYW50cy5maW5kKChvYmo6IGFueSkgPT4gb2JqLm5hbWUgPT0gbmFtZSk7XG4gICAgICAgIGlmIChcbiAgICAgICAgICBwYXJ0aWNpcGFudCAmJlxuICAgICAgICAgICgocGFydGljaXBhbnQubmFtZSAmJiBvbGRTb3VuZElkcy5pbmNsdWRlcyhwYXJ0aWNpcGFudC5uYW1lKSkgfHxcbiAgICAgICAgICAgIChuYW1lICYmIG9sZFNvdW5kSWRzLmluY2x1ZGVzKG5hbWUpKSlcbiAgICAgICAgKSB7XG4gICAgICAgICAgcmVVcGRhdGVJbnRlcih7XG4gICAgICAgICAgICBuYW1lOiBwYXJ0aWNpcGFudC5uYW1lID8/ICcnLFxuICAgICAgICAgICAgYWRkOiBmYWxzZSxcbiAgICAgICAgICAgIGZvcmNlOiB0cnVlLFxuICAgICAgICAgICAgcGFyYW1ldGVycyxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSBjYXRjaCB7XG4gICAgICAgIC8qIGhhbmRsZSBlcnJvciAqL1xuICAgICAgfVxuICAgIH1cbiAgfTtcbn1cbiJdfQ==
|
package/dist/esm2022/lib/producers/socket-receive-methods/producer-media-resumed.service.mjs
DELETED
|
@@ -1,99 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
/**
|
|
4
|
-
* Service to handle resuming media for a specific participant in a meeting.
|
|
5
|
-
*
|
|
6
|
-
* @class
|
|
7
|
-
* @name ProducerMediaResumed
|
|
8
|
-
* @description Resumes media (audio only) for a participant and updates the meeting display based on the meeting layout and participant status.
|
|
9
|
-
*
|
|
10
|
-
* @method
|
|
11
|
-
* producerMediaResumed
|
|
12
|
-
*
|
|
13
|
-
* @param {ProducerMediaResumedOptions} options - Options to control media resumption:
|
|
14
|
-
* - `name` {string}: Name of the participant whose media is to be resumed.
|
|
15
|
-
* - `parameters` {ProducerMediaResumedParameters}: Meeting and participant-specific configurations.
|
|
16
|
-
* - `meetingDisplayType` {string}: Type of meeting display (e.g., "media").
|
|
17
|
-
* - `participants` {Participant[]}: List of participants in the meeting.
|
|
18
|
-
* - `shared` {boolean}: Indicates if the screen is currently shared.
|
|
19
|
-
* - `shareScreenStarted` {boolean}: Indicates if screen sharing has started.
|
|
20
|
-
* - `mainScreenFilled` {boolean}: Indicates if the main screen is filled.
|
|
21
|
-
* - `hostLabel` {string}: Label or name of the host.
|
|
22
|
-
* - `updateUpdateMainWindow` {Function}: Function to update the main window display.
|
|
23
|
-
* - `reorderStreams` {Function}: Function to manage stream ordering when display changes.
|
|
24
|
-
* - `prepopulateUserMedia` {Function}: Function to preload user media for the main screen.
|
|
25
|
-
*
|
|
26
|
-
* @returns {Promise<void>} Resolves when media for the specified participant has resumed.
|
|
27
|
-
*
|
|
28
|
-
* @example
|
|
29
|
-
* const options = {
|
|
30
|
-
* name: 'Participant A',
|
|
31
|
-
* parameters: {
|
|
32
|
-
* meetingDisplayType: 'media',
|
|
33
|
-
* participants: [...],
|
|
34
|
-
* shared: false,
|
|
35
|
-
* shareScreenStarted: false,
|
|
36
|
-
* mainScreenFilled: false,
|
|
37
|
-
* hostLabel: 'Host',
|
|
38
|
-
* updateUpdateMainWindow: (updateMainWindow) => { ... },
|
|
39
|
-
* reorderStreams: ({ add, screenChanged, parameters }) => { ... },
|
|
40
|
-
* prepopulateUserMedia: ({ name, parameters }) => { ... }
|
|
41
|
-
* }
|
|
42
|
-
* };
|
|
43
|
-
*
|
|
44
|
-
* producerMediaResumedService.producerMediaResumed(options)
|
|
45
|
-
* .then(() => console.log('Media resumed'))
|
|
46
|
-
* .catch(error => console.error('Error:', error));
|
|
47
|
-
*/
|
|
48
|
-
export class ProducerMediaResumed {
|
|
49
|
-
/**
|
|
50
|
-
* Resumes media for a specific participant in a meeting.
|
|
51
|
-
*
|
|
52
|
-
* @param {ProducerMediaResumedOptions} options - The options for resuming media.
|
|
53
|
-
* @param {string} options.name - The name of the participant whose media is to be resumed.
|
|
54
|
-
* @param {Object} options.parameters - The parameters related to the meeting and participants.
|
|
55
|
-
* @param {string} options.parameters.meetingDisplayType - The type of meeting display.
|
|
56
|
-
* @param {Array} options.parameters.participants - The list of participants in the meeting.
|
|
57
|
-
* @param {boolean} options.parameters.shared - Indicates if the screen is being shared.
|
|
58
|
-
* @param {boolean} options.parameters.shareScreenStarted - Indicates if screen sharing has started.
|
|
59
|
-
* @param {boolean} options.parameters.mainScreenFilled - Indicates if the main screen is filled.
|
|
60
|
-
* @param {string} options.parameters.hostLabel - The label of the host.
|
|
61
|
-
* @param {Function} options.parameters.updateUpdateMainWindow - Function to update the main window.
|
|
62
|
-
* @param {Function} options.parameters.reorderStreams - Function to reorder the streams.
|
|
63
|
-
* @param {Function} options.parameters.prepopulateUserMedia - Function to prepopulate user media.
|
|
64
|
-
*
|
|
65
|
-
* @returns {Promise<void>} A promise that resolves when the media has been resumed.
|
|
66
|
-
*/
|
|
67
|
-
producerMediaResumed = async ({ name, parameters, }) => {
|
|
68
|
-
parameters = parameters.getUpdatedAllParams();
|
|
69
|
-
let { meetingDisplayType, participants, shared, shareScreenStarted, updateMainWindow, mainScreenFilled, hostLabel, updateUpdateMainWindow, reorderStreams, prepopulateUserMedia, } = parameters;
|
|
70
|
-
// Update to resume the audio only of a participant
|
|
71
|
-
// name is the name of the participant
|
|
72
|
-
// kind is the kind of media (always audio)
|
|
73
|
-
// Operations to update UI to optimize interest levels
|
|
74
|
-
const participant = participants.find((obj) => obj.name == name);
|
|
75
|
-
if (!mainScreenFilled && participant?.islevel == '2') {
|
|
76
|
-
updateMainWindow = true;
|
|
77
|
-
updateUpdateMainWindow(updateMainWindow);
|
|
78
|
-
await prepopulateUserMedia({ name: hostLabel, parameters });
|
|
79
|
-
updateMainWindow = false;
|
|
80
|
-
updateUpdateMainWindow(updateMainWindow);
|
|
81
|
-
}
|
|
82
|
-
let checker;
|
|
83
|
-
if (meetingDisplayType == 'media') {
|
|
84
|
-
checker = participant?.videoID != null && participant.videoID !== '';
|
|
85
|
-
if (!checker && !(shareScreenStarted || shared)) {
|
|
86
|
-
await reorderStreams({ add: false, screenChanged: true, parameters });
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
};
|
|
90
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ProducerMediaResumed, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
91
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ProducerMediaResumed, providedIn: 'root' });
|
|
92
|
-
}
|
|
93
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ProducerMediaResumed, decorators: [{
|
|
94
|
-
type: Injectable,
|
|
95
|
-
args: [{
|
|
96
|
-
providedIn: 'root',
|
|
97
|
-
}]
|
|
98
|
-
}] });
|
|
99
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjZXItbWVkaWEtcmVzdW1lZC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWVkaWFzZnUtYW5ndWxhci9zcmMvbGliL3Byb2R1Y2Vycy9zb2NrZXQtcmVjZWl2ZS1tZXRob2RzL3Byb2R1Y2VyLW1lZGlhLXJlc3VtZWQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQXFDM0M7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBNENHO0FBTUgsTUFBTSxPQUFPLG9CQUFvQjtJQUMvQjs7Ozs7Ozs7Ozs7Ozs7Ozs7T0FpQkc7SUFDSCxvQkFBb0IsR0FBRyxLQUFLLEVBQUUsRUFDNUIsSUFBSSxFQUNKLFVBQVUsR0FDa0IsRUFBaUIsRUFBRTtRQUMvQyxVQUFVLEdBQUcsVUFBVSxDQUFDLG1CQUFtQixFQUFFLENBQUM7UUFFOUMsSUFBSSxFQUNGLGtCQUFrQixFQUNsQixZQUFZLEVBQ1osTUFBTSxFQUNOLGtCQUFrQixFQUNsQixnQkFBZ0IsRUFDaEIsZ0JBQWdCLEVBQ2hCLFNBQVMsRUFDVCxzQkFBc0IsRUFDdEIsY0FBYyxFQUNkLG9CQUFvQixHQUNyQixHQUFHLFVBQVUsQ0FBQztRQUVmLG1EQUFtRDtRQUNuRCxzQ0FBc0M7UUFDdEMsMkNBQTJDO1FBRTNDLHNEQUFzRDtRQUN0RCxNQUFNLFdBQVcsR0FBRyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBUSxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxDQUFDO1FBRXRFLElBQUksQ0FBQyxnQkFBZ0IsSUFBSSxXQUFXLEVBQUUsT0FBTyxJQUFJLEdBQUcsRUFBRSxDQUFDO1lBQ3JELGdCQUFnQixHQUFHLElBQUksQ0FBQztZQUN4QixzQkFBc0IsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1lBQ3pDLE1BQU0sb0JBQW9CLENBQUMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUM7WUFDNUQsZ0JBQWdCLEdBQUcsS0FBSyxDQUFDO1lBQ3pCLHNCQUFzQixDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDM0MsQ0FBQztRQUVELElBQUksT0FBTyxDQUFDO1FBQ1osSUFBSSxrQkFBa0IsSUFBSSxPQUFPLEVBQUUsQ0FBQztZQUNsQyxPQUFPLEdBQUcsV0FBVyxFQUFFLE9BQU8sSUFBSSxJQUFJLElBQUksV0FBVyxDQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7WUFFckUsSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLENBQUMsa0JBQWtCLElBQUksTUFBTSxDQUFDLEVBQUUsQ0FBQztnQkFDaEQsTUFBTSxjQUFjLENBQUMsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLGFBQWEsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQztZQUN4RSxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUMsQ0FBQzt1R0E3RFMsb0JBQW9COzJHQUFwQixvQkFBb0IsY0FGbkIsTUFBTTs7MkZBRVAsb0JBQW9CO2tCQUhoQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIFBhcnRpY2lwYW50LFxuICBQcmVwb3B1bGF0ZVVzZXJNZWRpYVBhcmFtZXRlcnMsXG4gIFByZXBvcHVsYXRlVXNlck1lZGlhVHlwZSxcbiAgUmVvcmRlclN0cmVhbXNQYXJhbWV0ZXJzLFxuICBSZW9yZGVyU3RyZWFtc1R5cGUsXG59IGZyb20gJy4uLy4uL0B0eXBlcy90eXBlcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHJvZHVjZXJNZWRpYVJlc3VtZWRQYXJhbWV0ZXJzXG4gIGV4dGVuZHMgUHJlcG9wdWxhdGVVc2VyTWVkaWFQYXJhbWV0ZXJzLFxuICAgIFJlb3JkZXJTdHJlYW1zUGFyYW1ldGVycyB7XG4gIG1lZXRpbmdEaXNwbGF5VHlwZTogc3RyaW5nO1xuICBwYXJ0aWNpcGFudHM6IFBhcnRpY2lwYW50W107XG4gIHNoYXJlZDogYm9vbGVhbjtcbiAgc2hhcmVTY3JlZW5TdGFydGVkOiBib29sZWFuO1xuICBtYWluU2NyZWVuRmlsbGVkOiBib29sZWFuO1xuICBob3N0TGFiZWw6IHN0cmluZztcbiAgdXBkYXRlVXBkYXRlTWFpbldpbmRvdzogKHVwZGF0ZU1haW5XaW5kb3c6IGJvb2xlYW4pID0+IHZvaWQ7XG5cbiAgLy8gbWVkaWFzZnUgZnVuY3Rpb25zXG4gIHJlb3JkZXJTdHJlYW1zOiBSZW9yZGVyU3RyZWFtc1R5cGU7XG4gIHByZXBvcHVsYXRlVXNlck1lZGlhOiBQcmVwb3B1bGF0ZVVzZXJNZWRpYVR5cGU7XG5cbiAgZ2V0VXBkYXRlZEFsbFBhcmFtczogKCkgPT4gUHJvZHVjZXJNZWRpYVJlc3VtZWRQYXJhbWV0ZXJzO1xuICBba2V5OiBzdHJpbmddOiBhbnk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHJvZHVjZXJNZWRpYVJlc3VtZWRPcHRpb25zIHtcbiAgbmFtZTogc3RyaW5nO1xuICBraW5kOiAnYXVkaW8nO1xuICBwYXJhbWV0ZXJzOiBQcm9kdWNlck1lZGlhUmVzdW1lZFBhcmFtZXRlcnM7XG59XG5cbi8vIEV4cG9ydCB0aGUgdHlwZSBkZWZpbml0aW9uIGZvciB0aGUgZnVuY3Rpb25cbmV4cG9ydCB0eXBlIFByb2R1Y2VyTWVkaWFSZXN1bWVkVHlwZSA9IChvcHRpb25zOiBQcm9kdWNlck1lZGlhUmVzdW1lZE9wdGlvbnMpID0+IFByb21pc2U8dm9pZD47XG5cbi8qKlxuICogU2VydmljZSB0byBoYW5kbGUgcmVzdW1pbmcgbWVkaWEgZm9yIGEgc3BlY2lmaWMgcGFydGljaXBhbnQgaW4gYSBtZWV0aW5nLlxuICpcbiAqIEBjbGFzc1xuICogQG5hbWUgUHJvZHVjZXJNZWRpYVJlc3VtZWRcbiAqIEBkZXNjcmlwdGlvbiBSZXN1bWVzIG1lZGlhIChhdWRpbyBvbmx5KSBmb3IgYSBwYXJ0aWNpcGFudCBhbmQgdXBkYXRlcyB0aGUgbWVldGluZyBkaXNwbGF5IGJhc2VkIG9uIHRoZSBtZWV0aW5nIGxheW91dCBhbmQgcGFydGljaXBhbnQgc3RhdHVzLlxuICpcbiAqIEBtZXRob2RcbiAqIHByb2R1Y2VyTWVkaWFSZXN1bWVkXG4gKlxuICogQHBhcmFtIHtQcm9kdWNlck1lZGlhUmVzdW1lZE9wdGlvbnN9IG9wdGlvbnMgLSBPcHRpb25zIHRvIGNvbnRyb2wgbWVkaWEgcmVzdW1wdGlvbjpcbiAqICAgLSBgbmFtZWAge3N0cmluZ306IE5hbWUgb2YgdGhlIHBhcnRpY2lwYW50IHdob3NlIG1lZGlhIGlzIHRvIGJlIHJlc3VtZWQuXG4gKiAgIC0gYHBhcmFtZXRlcnNgIHtQcm9kdWNlck1lZGlhUmVzdW1lZFBhcmFtZXRlcnN9OiBNZWV0aW5nIGFuZCBwYXJ0aWNpcGFudC1zcGVjaWZpYyBjb25maWd1cmF0aW9ucy5cbiAqICAgICAgLSBgbWVldGluZ0Rpc3BsYXlUeXBlYCB7c3RyaW5nfTogVHlwZSBvZiBtZWV0aW5nIGRpc3BsYXkgKGUuZy4sIFwibWVkaWFcIikuXG4gKiAgICAgIC0gYHBhcnRpY2lwYW50c2Age1BhcnRpY2lwYW50W119OiBMaXN0IG9mIHBhcnRpY2lwYW50cyBpbiB0aGUgbWVldGluZy5cbiAqICAgICAgLSBgc2hhcmVkYCB7Ym9vbGVhbn06IEluZGljYXRlcyBpZiB0aGUgc2NyZWVuIGlzIGN1cnJlbnRseSBzaGFyZWQuXG4gKiAgICAgIC0gYHNoYXJlU2NyZWVuU3RhcnRlZGAge2Jvb2xlYW59OiBJbmRpY2F0ZXMgaWYgc2NyZWVuIHNoYXJpbmcgaGFzIHN0YXJ0ZWQuXG4gKiAgICAgIC0gYG1haW5TY3JlZW5GaWxsZWRgIHtib29sZWFufTogSW5kaWNhdGVzIGlmIHRoZSBtYWluIHNjcmVlbiBpcyBmaWxsZWQuXG4gKiAgICAgIC0gYGhvc3RMYWJlbGAge3N0cmluZ306IExhYmVsIG9yIG5hbWUgb2YgdGhlIGhvc3QuXG4gKiAgICAgIC0gYHVwZGF0ZVVwZGF0ZU1haW5XaW5kb3dgIHtGdW5jdGlvbn06IEZ1bmN0aW9uIHRvIHVwZGF0ZSB0aGUgbWFpbiB3aW5kb3cgZGlzcGxheS5cbiAqICAgICAgLSBgcmVvcmRlclN0cmVhbXNgIHtGdW5jdGlvbn06IEZ1bmN0aW9uIHRvIG1hbmFnZSBzdHJlYW0gb3JkZXJpbmcgd2hlbiBkaXNwbGF5IGNoYW5nZXMuXG4gKiAgICAgIC0gYHByZXBvcHVsYXRlVXNlck1lZGlhYCB7RnVuY3Rpb259OiBGdW5jdGlvbiB0byBwcmVsb2FkIHVzZXIgbWVkaWEgZm9yIHRoZSBtYWluIHNjcmVlbi5cbiAqXG4gKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn0gUmVzb2x2ZXMgd2hlbiBtZWRpYSBmb3IgdGhlIHNwZWNpZmllZCBwYXJ0aWNpcGFudCBoYXMgcmVzdW1lZC5cbiAqXG4gKiBAZXhhbXBsZVxuICogY29uc3Qgb3B0aW9ucyA9IHtcbiAqICAgbmFtZTogJ1BhcnRpY2lwYW50IEEnLFxuICogICBwYXJhbWV0ZXJzOiB7XG4gKiAgICAgbWVldGluZ0Rpc3BsYXlUeXBlOiAnbWVkaWEnLFxuICogICAgIHBhcnRpY2lwYW50czogWy4uLl0sXG4gKiAgICAgc2hhcmVkOiBmYWxzZSxcbiAqICAgICBzaGFyZVNjcmVlblN0YXJ0ZWQ6IGZhbHNlLFxuICogICAgIG1haW5TY3JlZW5GaWxsZWQ6IGZhbHNlLFxuICogICAgIGhvc3RMYWJlbDogJ0hvc3QnLFxuICogICAgIHVwZGF0ZVVwZGF0ZU1haW5XaW5kb3c6ICh1cGRhdGVNYWluV2luZG93KSA9PiB7IC4uLiB9LFxuICogICAgIHJlb3JkZXJTdHJlYW1zOiAoeyBhZGQsIHNjcmVlbkNoYW5nZWQsIHBhcmFtZXRlcnMgfSkgPT4geyAuLi4gfSxcbiAqICAgICBwcmVwb3B1bGF0ZVVzZXJNZWRpYTogKHsgbmFtZSwgcGFyYW1ldGVycyB9KSA9PiB7IC4uLiB9XG4gKiAgIH1cbiAqIH07XG4gKlxuICogcHJvZHVjZXJNZWRpYVJlc3VtZWRTZXJ2aWNlLnByb2R1Y2VyTWVkaWFSZXN1bWVkKG9wdGlvbnMpXG4gKiAgIC50aGVuKCgpID0+IGNvbnNvbGUubG9nKCdNZWRpYSByZXN1bWVkJykpXG4gKiAgIC5jYXRjaChlcnJvciA9PiBjb25zb2xlLmVycm9yKCdFcnJvcjonLCBlcnJvcikpO1xuICovXG5cblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFByb2R1Y2VyTWVkaWFSZXN1bWVkIHtcbiAgLyoqXG4gICAqIFJlc3VtZXMgbWVkaWEgZm9yIGEgc3BlY2lmaWMgcGFydGljaXBhbnQgaW4gYSBtZWV0aW5nLlxuICAgKlxuICAgKiBAcGFyYW0ge1Byb2R1Y2VyTWVkaWFSZXN1bWVkT3B0aW9uc30gb3B0aW9ucyAtIFRoZSBvcHRpb25zIGZvciByZXN1bWluZyBtZWRpYS5cbiAgICogQHBhcmFtIHtzdHJpbmd9IG9wdGlvbnMubmFtZSAtIFRoZSBuYW1lIG9mIHRoZSBwYXJ0aWNpcGFudCB3aG9zZSBtZWRpYSBpcyB0byBiZSByZXN1bWVkLlxuICAgKiBAcGFyYW0ge09iamVjdH0gb3B0aW9ucy5wYXJhbWV0ZXJzIC0gVGhlIHBhcmFtZXRlcnMgcmVsYXRlZCB0byB0aGUgbWVldGluZyBhbmQgcGFydGljaXBhbnRzLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gb3B0aW9ucy5wYXJhbWV0ZXJzLm1lZXRpbmdEaXNwbGF5VHlwZSAtIFRoZSB0eXBlIG9mIG1lZXRpbmcgZGlzcGxheS5cbiAgICogQHBhcmFtIHtBcnJheX0gb3B0aW9ucy5wYXJhbWV0ZXJzLnBhcnRpY2lwYW50cyAtIFRoZSBsaXN0IG9mIHBhcnRpY2lwYW50cyBpbiB0aGUgbWVldGluZy5cbiAgICogQHBhcmFtIHtib29sZWFufSBvcHRpb25zLnBhcmFtZXRlcnMuc2hhcmVkIC0gSW5kaWNhdGVzIGlmIHRoZSBzY3JlZW4gaXMgYmVpbmcgc2hhcmVkLlxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IG9wdGlvbnMucGFyYW1ldGVycy5zaGFyZVNjcmVlblN0YXJ0ZWQgLSBJbmRpY2F0ZXMgaWYgc2NyZWVuIHNoYXJpbmcgaGFzIHN0YXJ0ZWQuXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gb3B0aW9ucy5wYXJhbWV0ZXJzLm1haW5TY3JlZW5GaWxsZWQgLSBJbmRpY2F0ZXMgaWYgdGhlIG1haW4gc2NyZWVuIGlzIGZpbGxlZC5cbiAgICogQHBhcmFtIHtzdHJpbmd9IG9wdGlvbnMucGFyYW1ldGVycy5ob3N0TGFiZWwgLSBUaGUgbGFiZWwgb2YgdGhlIGhvc3QuXG4gICAqIEBwYXJhbSB7RnVuY3Rpb259IG9wdGlvbnMucGFyYW1ldGVycy51cGRhdGVVcGRhdGVNYWluV2luZG93IC0gRnVuY3Rpb24gdG8gdXBkYXRlIHRoZSBtYWluIHdpbmRvdy5cbiAgICogQHBhcmFtIHtGdW5jdGlvbn0gb3B0aW9ucy5wYXJhbWV0ZXJzLnJlb3JkZXJTdHJlYW1zIC0gRnVuY3Rpb24gdG8gcmVvcmRlciB0aGUgc3RyZWFtcy5cbiAgICogQHBhcmFtIHtGdW5jdGlvbn0gb3B0aW9ucy5wYXJhbWV0ZXJzLnByZXBvcHVsYXRlVXNlck1lZGlhIC0gRnVuY3Rpb24gdG8gcHJlcG9wdWxhdGUgdXNlciBtZWRpYS5cbiAgICpcbiAgICogQHJldHVybnMge1Byb21pc2U8dm9pZD59IEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIG1lZGlhIGhhcyBiZWVuIHJlc3VtZWQuXG4gICAqL1xuICBwcm9kdWNlck1lZGlhUmVzdW1lZCA9IGFzeW5jICh7XG4gICAgbmFtZSxcbiAgICBwYXJhbWV0ZXJzLFxuICB9OiBQcm9kdWNlck1lZGlhUmVzdW1lZE9wdGlvbnMpOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgICBwYXJhbWV0ZXJzID0gcGFyYW1ldGVycy5nZXRVcGRhdGVkQWxsUGFyYW1zKCk7XG5cbiAgICBsZXQge1xuICAgICAgbWVldGluZ0Rpc3BsYXlUeXBlLFxuICAgICAgcGFydGljaXBhbnRzLFxuICAgICAgc2hhcmVkLFxuICAgICAgc2hhcmVTY3JlZW5TdGFydGVkLFxuICAgICAgdXBkYXRlTWFpbldpbmRvdyxcbiAgICAgIG1haW5TY3JlZW5GaWxsZWQsXG4gICAgICBob3N0TGFiZWwsXG4gICAgICB1cGRhdGVVcGRhdGVNYWluV2luZG93LFxuICAgICAgcmVvcmRlclN0cmVhbXMsXG4gICAgICBwcmVwb3B1bGF0ZVVzZXJNZWRpYSxcbiAgICB9ID0gcGFyYW1ldGVycztcblxuICAgIC8vIFVwZGF0ZSB0byByZXN1bWUgdGhlIGF1ZGlvIG9ubHkgb2YgYSBwYXJ0aWNpcGFudFxuICAgIC8vIG5hbWUgaXMgdGhlIG5hbWUgb2YgdGhlIHBhcnRpY2lwYW50XG4gICAgLy8ga2luZCBpcyB0aGUga2luZCBvZiBtZWRpYSAoYWx3YXlzIGF1ZGlvKVxuXG4gICAgLy8gT3BlcmF0aW9ucyB0byB1cGRhdGUgVUkgdG8gb3B0aW1pemUgaW50ZXJlc3QgbGV2ZWxzXG4gICAgY29uc3QgcGFydGljaXBhbnQgPSBwYXJ0aWNpcGFudHMuZmluZCgob2JqOiBhbnkpID0+IG9iai5uYW1lID09IG5hbWUpO1xuXG4gICAgaWYgKCFtYWluU2NyZWVuRmlsbGVkICYmIHBhcnRpY2lwYW50Py5pc2xldmVsID09ICcyJykge1xuICAgICAgdXBkYXRlTWFpbldpbmRvdyA9IHRydWU7XG4gICAgICB1cGRhdGVVcGRhdGVNYWluV2luZG93KHVwZGF0ZU1haW5XaW5kb3cpO1xuICAgICAgYXdhaXQgcHJlcG9wdWxhdGVVc2VyTWVkaWEoeyBuYW1lOiBob3N0TGFiZWwsIHBhcmFtZXRlcnMgfSk7XG4gICAgICB1cGRhdGVNYWluV2luZG93ID0gZmFsc2U7XG4gICAgICB1cGRhdGVVcGRhdGVNYWluV2luZG93KHVwZGF0ZU1haW5XaW5kb3cpO1xuICAgIH1cblxuICAgIGxldCBjaGVja2VyO1xuICAgIGlmIChtZWV0aW5nRGlzcGxheVR5cGUgPT0gJ21lZGlhJykge1xuICAgICAgY2hlY2tlciA9IHBhcnRpY2lwYW50Py52aWRlb0lEICE9IG51bGwgJiYgcGFydGljaXBhbnQudmlkZW9JRCAhPT0gJyc7XG5cbiAgICAgIGlmICghY2hlY2tlciAmJiAhKHNoYXJlU2NyZWVuU3RhcnRlZCB8fCBzaGFyZWQpKSB7XG4gICAgICAgIGF3YWl0IHJlb3JkZXJTdHJlYW1zKHsgYWRkOiBmYWxzZSwgc2NyZWVuQ2hhbmdlZDogdHJ1ZSwgcGFyYW1ldGVycyB9KTtcbiAgICAgIH1cbiAgICB9XG4gIH07XG59XG4iXX0=
|
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
/**
|
|
4
|
-
* Service to re-initiate recording in a specific room, considering administrative restrictions.
|
|
5
|
-
*
|
|
6
|
-
* @class
|
|
7
|
-
* @name ReInitiateRecording
|
|
8
|
-
* @description Attempts to re-initiate recording if administrative restrictions permit.
|
|
9
|
-
*
|
|
10
|
-
* @method
|
|
11
|
-
* reInitiateRecording
|
|
12
|
-
*
|
|
13
|
-
* @param {ReInitiateRecordingOptions} options - Configuration options for re-initiating recording:
|
|
14
|
-
* - `roomName` {string}: The name of the room to start recording in.
|
|
15
|
-
* - `member` {string}: The name of the member initiating the recording.
|
|
16
|
-
* - `socket` {Socket}: The socket instance for server communication.
|
|
17
|
-
* - `adminRestrictSetting` {boolean}: Flag indicating if the admin restrict setting is active, preventing re-initiation.
|
|
18
|
-
*
|
|
19
|
-
* @returns {Promise<void>} Resolves if recording is successfully re-initiated; otherwise, it throws an error if re-initiation fails.
|
|
20
|
-
*
|
|
21
|
-
* @example
|
|
22
|
-
* const options = {
|
|
23
|
-
* roomName: 'Room101',
|
|
24
|
-
* member: 'Alice',
|
|
25
|
-
* socket: mySocketInstance,
|
|
26
|
-
* adminRestrictSetting: false
|
|
27
|
-
* };
|
|
28
|
-
* reInitiateRecordingService.reInitiateRecording(options)
|
|
29
|
-
* .then(() => console.log('Recording re-initiated'))
|
|
30
|
-
* .catch(error => console.error(error.message));
|
|
31
|
-
*/
|
|
32
|
-
export class ReInitiateRecording {
|
|
33
|
-
/**
|
|
34
|
-
* Re-initiates recording based on specific conditions.
|
|
35
|
-
* @async
|
|
36
|
-
* @function
|
|
37
|
-
* @param {ReInitiateRecordingOptions} options - The options for re-initiating recording.
|
|
38
|
-
* @param {string} options.roomName - The name of the room to re-initiate recording.
|
|
39
|
-
* @param {string} options.member - The member re-initiating the recording.
|
|
40
|
-
* @param {Socket} options.socket - The socket instance for communication.
|
|
41
|
-
* @param {boolean} options.adminRestrictSetting - Indicates whether the admin restrict setting is enabled.
|
|
42
|
-
* @returns {Promise<void>} A promise that resolves when the recording is re-initiated.
|
|
43
|
-
*/
|
|
44
|
-
reInitiateRecording = async ({ roomName, member, socket, adminRestrictSetting, }) => {
|
|
45
|
-
if (!adminRestrictSetting) {
|
|
46
|
-
await new Promise((resolve, reject) => {
|
|
47
|
-
socket.emit('startRecordIng', { roomName, member }, ({ success }) => {
|
|
48
|
-
if (success) {
|
|
49
|
-
resolve();
|
|
50
|
-
}
|
|
51
|
-
else {
|
|
52
|
-
reject(new Error('Failed to re-initiate recording.'));
|
|
53
|
-
}
|
|
54
|
-
});
|
|
55
|
-
});
|
|
56
|
-
}
|
|
57
|
-
};
|
|
58
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ReInitiateRecording, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
59
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ReInitiateRecording, providedIn: 'root' });
|
|
60
|
-
}
|
|
61
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ReInitiateRecording, decorators: [{
|
|
62
|
-
type: Injectable,
|
|
63
|
-
args: [{
|
|
64
|
-
providedIn: 'root',
|
|
65
|
-
}]
|
|
66
|
-
}] });
|
|
67
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmUtaW5pdGlhdGUtcmVjb3JkaW5nLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tZWRpYXNmdS1hbmd1bGFyL3NyYy9saWIvcHJvZHVjZXJzL3NvY2tldC1yZWNlaXZlLW1ldGhvZHMvcmUtaW5pdGlhdGUtcmVjb3JkaW5nLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFhM0M7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E0Qkc7QUFNSCxNQUFNLE9BQU8sbUJBQW1CO0lBQzlCOzs7Ozs7Ozs7O09BVUc7SUFFSCxtQkFBbUIsR0FBRyxLQUFLLEVBQUUsRUFDM0IsUUFBUSxFQUNSLE1BQU0sRUFDTixNQUFNLEVBQ04sb0JBQW9CLEdBQ08sRUFBaUIsRUFBRTtRQUM5QyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztZQUMxQixNQUFNLElBQUksT0FBTyxDQUFPLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO2dCQUMxQyxNQUFNLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQXdCLEVBQUUsRUFBRTtvQkFDeEYsSUFBSSxPQUFPLEVBQUUsQ0FBQzt3QkFDWixPQUFPLEVBQUUsQ0FBQztvQkFDWixDQUFDO3lCQUFNLENBQUM7d0JBQ04sTUFBTSxDQUFDLElBQUksS0FBSyxDQUFDLGtDQUFrQyxDQUFDLENBQUMsQ0FBQztvQkFDeEQsQ0FBQztnQkFDSCxDQUFDLENBQUMsQ0FBQztZQUNMLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztJQUNILENBQUMsQ0FBQzt1R0E5QlMsbUJBQW1COzJHQUFuQixtQkFBbUIsY0FGbEIsTUFBTTs7MkZBRVAsbUJBQW1CO2tCQUgvQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNvY2tldCB9IGZyb20gJ3NvY2tldC5pby1jbGllbnQnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFJlSW5pdGlhdGVSZWNvcmRpbmdPcHRpb25zIHtcbiAgcm9vbU5hbWU6IHN0cmluZztcbiAgbWVtYmVyOiBzdHJpbmc7XG4gIHNvY2tldDogU29ja2V0O1xuICBhZG1pblJlc3RyaWN0U2V0dGluZzogYm9vbGVhbjtcbn1cblxuLy8gRXhwb3J0IHRoZSB0eXBlIGRlZmluaXRpb24gZm9yIHRoZSBmdW5jdGlvblxuZXhwb3J0IHR5cGUgUmVJbml0aWF0ZVJlY29yZGluZ1R5cGUgPSAob3B0aW9uczogUmVJbml0aWF0ZVJlY29yZGluZ09wdGlvbnMpID0+IFByb21pc2U8dm9pZD47XG5cbi8qKlxuICogU2VydmljZSB0byByZS1pbml0aWF0ZSByZWNvcmRpbmcgaW4gYSBzcGVjaWZpYyByb29tLCBjb25zaWRlcmluZyBhZG1pbmlzdHJhdGl2ZSByZXN0cmljdGlvbnMuXG4gKlxuICogQGNsYXNzXG4gKiBAbmFtZSBSZUluaXRpYXRlUmVjb3JkaW5nXG4gKiBAZGVzY3JpcHRpb24gQXR0ZW1wdHMgdG8gcmUtaW5pdGlhdGUgcmVjb3JkaW5nIGlmIGFkbWluaXN0cmF0aXZlIHJlc3RyaWN0aW9ucyBwZXJtaXQuXG4gKlxuICogQG1ldGhvZFxuICogcmVJbml0aWF0ZVJlY29yZGluZ1xuICpcbiAqIEBwYXJhbSB7UmVJbml0aWF0ZVJlY29yZGluZ09wdGlvbnN9IG9wdGlvbnMgLSBDb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIHJlLWluaXRpYXRpbmcgcmVjb3JkaW5nOlxuICogICAtIGByb29tTmFtZWAge3N0cmluZ306IFRoZSBuYW1lIG9mIHRoZSByb29tIHRvIHN0YXJ0IHJlY29yZGluZyBpbi5cbiAqICAgLSBgbWVtYmVyYCB7c3RyaW5nfTogVGhlIG5hbWUgb2YgdGhlIG1lbWJlciBpbml0aWF0aW5nIHRoZSByZWNvcmRpbmcuXG4gKiAgIC0gYHNvY2tldGAge1NvY2tldH06IFRoZSBzb2NrZXQgaW5zdGFuY2UgZm9yIHNlcnZlciBjb21tdW5pY2F0aW9uLlxuICogICAtIGBhZG1pblJlc3RyaWN0U2V0dGluZ2Age2Jvb2xlYW59OiBGbGFnIGluZGljYXRpbmcgaWYgdGhlIGFkbWluIHJlc3RyaWN0IHNldHRpbmcgaXMgYWN0aXZlLCBwcmV2ZW50aW5nIHJlLWluaXRpYXRpb24uXG4gKlxuICogQHJldHVybnMge1Byb21pc2U8dm9pZD59IFJlc29sdmVzIGlmIHJlY29yZGluZyBpcyBzdWNjZXNzZnVsbHkgcmUtaW5pdGlhdGVkOyBvdGhlcndpc2UsIGl0IHRocm93cyBhbiBlcnJvciBpZiByZS1pbml0aWF0aW9uIGZhaWxzLlxuICpcbiAqIEBleGFtcGxlXG4gKiBjb25zdCBvcHRpb25zID0ge1xuICogICByb29tTmFtZTogJ1Jvb20xMDEnLFxuICogICBtZW1iZXI6ICdBbGljZScsXG4gKiAgIHNvY2tldDogbXlTb2NrZXRJbnN0YW5jZSxcbiAqICAgYWRtaW5SZXN0cmljdFNldHRpbmc6IGZhbHNlXG4gKiB9O1xuICogcmVJbml0aWF0ZVJlY29yZGluZ1NlcnZpY2UucmVJbml0aWF0ZVJlY29yZGluZyhvcHRpb25zKVxuICogICAudGhlbigoKSA9PiBjb25zb2xlLmxvZygnUmVjb3JkaW5nIHJlLWluaXRpYXRlZCcpKVxuICogICAuY2F0Y2goZXJyb3IgPT4gY29uc29sZS5lcnJvcihlcnJvci5tZXNzYWdlKSk7XG4gKi9cblxuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgUmVJbml0aWF0ZVJlY29yZGluZyB7XG4gIC8qKlxuICAgKiBSZS1pbml0aWF0ZXMgcmVjb3JkaW5nIGJhc2VkIG9uIHNwZWNpZmljIGNvbmRpdGlvbnMuXG4gICAqIEBhc3luY1xuICAgKiBAZnVuY3Rpb25cbiAgICogQHBhcmFtIHtSZUluaXRpYXRlUmVjb3JkaW5nT3B0aW9uc30gb3B0aW9ucyAtIFRoZSBvcHRpb25zIGZvciByZS1pbml0aWF0aW5nIHJlY29yZGluZy5cbiAgICogQHBhcmFtIHtzdHJpbmd9IG9wdGlvbnMucm9vbU5hbWUgLSBUaGUgbmFtZSBvZiB0aGUgcm9vbSB0byByZS1pbml0aWF0ZSByZWNvcmRpbmcuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBvcHRpb25zLm1lbWJlciAtIFRoZSBtZW1iZXIgcmUtaW5pdGlhdGluZyB0aGUgcmVjb3JkaW5nLlxuICAgKiBAcGFyYW0ge1NvY2tldH0gb3B0aW9ucy5zb2NrZXQgLSBUaGUgc29ja2V0IGluc3RhbmNlIGZvciBjb21tdW5pY2F0aW9uLlxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IG9wdGlvbnMuYWRtaW5SZXN0cmljdFNldHRpbmcgLSBJbmRpY2F0ZXMgd2hldGhlciB0aGUgYWRtaW4gcmVzdHJpY3Qgc2V0dGluZyBpcyBlbmFibGVkLlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn0gQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgcmVjb3JkaW5nIGlzIHJlLWluaXRpYXRlZC5cbiAgICovXG5cbiAgcmVJbml0aWF0ZVJlY29yZGluZyA9IGFzeW5jICh7XG4gICAgcm9vbU5hbWUsXG4gICAgbWVtYmVyLFxuICAgIHNvY2tldCxcbiAgICBhZG1pblJlc3RyaWN0U2V0dGluZyxcbiAgfTogUmVJbml0aWF0ZVJlY29yZGluZ09wdGlvbnMpOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgICBpZiAoIWFkbWluUmVzdHJpY3RTZXR0aW5nKSB7XG4gICAgICBhd2FpdCBuZXcgUHJvbWlzZTx2b2lkPigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgIHNvY2tldC5lbWl0KCdzdGFydFJlY29yZEluZycsIHsgcm9vbU5hbWUsIG1lbWJlciB9LCAoeyBzdWNjZXNzIH06IHsgc3VjY2VzczogYm9vbGVhbiB9KSA9PiB7XG4gICAgICAgICAgaWYgKHN1Y2Nlc3MpIHtcbiAgICAgICAgICAgIHJlc29sdmUoKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmVqZWN0KG5ldyBFcnJvcignRmFpbGVkIHRvIHJlLWluaXRpYXRlIHJlY29yZGluZy4nKSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfTtcbn1cbiJdfQ==
|
|
@@ -1,134 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
/**
|
|
4
|
-
* Service for receiving and processing messages, including handling group and direct messages, filtering banned senders, and updating message states.
|
|
5
|
-
*
|
|
6
|
-
* @class
|
|
7
|
-
* @name ReceiveMessage
|
|
8
|
-
* @description Manages incoming messages, appends them to the existing messages array, filters out banned senders, and updates message badge visibility as needed.
|
|
9
|
-
*
|
|
10
|
-
* @method
|
|
11
|
-
* receiveMessage
|
|
12
|
-
*
|
|
13
|
-
* @param {ReceiveMessageOptions} options - Options for handling a received message:
|
|
14
|
-
* - `message` {Message}: The new message object to process.
|
|
15
|
-
* - `messages` {Message[]}: The current list of messages.
|
|
16
|
-
* - `participantsAll` {Participant[]}: All participants in the chat.
|
|
17
|
-
* - `member` {string}: The current member's name.
|
|
18
|
-
* - `eventType` {EventType}: The type of event (e.g., "broadcast" or "chat").
|
|
19
|
-
* - `islevel` {string}: The level of the current user.
|
|
20
|
-
* - `coHost` {string}: The name of the co-host.
|
|
21
|
-
* - `updateMessages` {Function}: A function to update the messages list.
|
|
22
|
-
* - `updateShowMessagesBadge` {Function}: A function to toggle the visibility of the message badge.
|
|
23
|
-
*
|
|
24
|
-
* @returns {Promise<void>} Resolves when the message processing and updates are complete.
|
|
25
|
-
*
|
|
26
|
-
* @example
|
|
27
|
-
* const message = { sender: 'Alice', receivers: ['Bob'], message: 'Hello!', timestamp: Date.now(), group: false };
|
|
28
|
-
* const options = {
|
|
29
|
-
* message,
|
|
30
|
-
* messages: [],
|
|
31
|
-
* participantsAll: [{ name: 'Alice' }, { name: 'Bob' }],
|
|
32
|
-
* member: 'Bob',
|
|
33
|
-
* eventType: 'chat',
|
|
34
|
-
* islevel: '1',
|
|
35
|
-
* coHost: 'Charlie',
|
|
36
|
-
* updateMessages: (updatedMessages) => console.log('Messages updated:', updatedMessages),
|
|
37
|
-
* updateShowMessagesBadge: (show) => console.log('Show badge:', show)
|
|
38
|
-
* };
|
|
39
|
-
* receiveMessageService.receiveMessage(options);
|
|
40
|
-
*/
|
|
41
|
-
export class ReceiveMessage {
|
|
42
|
-
/**
|
|
43
|
-
* Receives and processes a message, updating the messages array and handling
|
|
44
|
-
* various message types and events.
|
|
45
|
-
*
|
|
46
|
-
* @param {ReceiveMessageOptions} options - The options for receiving the message.
|
|
47
|
-
* @param {Object} options.message - The message object containing sender, receivers, content, timestamp, and group.
|
|
48
|
-
* @param {Function} options.getUpdatedAllParams - Function to get updated parameters.
|
|
49
|
-
* @param {Array} options.messages - Array of current messages.
|
|
50
|
-
* @param {Array} options.participantsAll - Array of all participants.
|
|
51
|
-
* @param {string} options.member - The current member.
|
|
52
|
-
* @param {string} options.eventType - The type of event (e.g., "broadcast", "chat").
|
|
53
|
-
* @param {string} options.islevel - The level of the current member.
|
|
54
|
-
* @param {string} options.coHost - The co-host of the event.
|
|
55
|
-
* @param {Function} options.updateMessages - Function to update the messages array.
|
|
56
|
-
* @param {Function} options.updateShowMessagesBadge - Function to update the visibility of the messages badge.
|
|
57
|
-
*
|
|
58
|
-
* @returns {Promise<void>} A promise that resolves when the message has been processed.
|
|
59
|
-
*/
|
|
60
|
-
receiveMessage = async ({ message, messages, participantsAll, member, eventType, islevel, coHost, updateMessages, updateShowMessagesBadge, }) => {
|
|
61
|
-
// Add the received message to the messages array
|
|
62
|
-
const { sender, receivers, message: content, timestamp, group } = message;
|
|
63
|
-
let oldMessages = messages;
|
|
64
|
-
messages = [...messages, { sender, receivers, message: content, timestamp, group }];
|
|
65
|
-
// Filter out messages with banned senders in the participants array
|
|
66
|
-
if (eventType !== 'broadcast' && eventType !== 'chat') {
|
|
67
|
-
messages = messages.filter((message) => participantsAll.some((participant) => participant.name === message.sender && !participant.isBanned));
|
|
68
|
-
}
|
|
69
|
-
else {
|
|
70
|
-
messages = messages.filter((message) => {
|
|
71
|
-
const participant = participantsAll.find((participant) => participant.name === message.sender);
|
|
72
|
-
return !participant || !participant.isBanned;
|
|
73
|
-
});
|
|
74
|
-
}
|
|
75
|
-
updateMessages(messages);
|
|
76
|
-
// Separate group and direct messages
|
|
77
|
-
const oldGroupMessages = oldMessages.filter((message) => message.group);
|
|
78
|
-
const oldDirectMessages = oldMessages.filter((message) => !message.group);
|
|
79
|
-
// Render and update counts for group messages
|
|
80
|
-
const groupMessages = messages.filter((message) => message.group);
|
|
81
|
-
if (eventType !== 'broadcast' && eventType !== 'chat') {
|
|
82
|
-
// Check if oldGroupMessages length is different from groupMessages length
|
|
83
|
-
if (oldGroupMessages.length !== groupMessages.length) {
|
|
84
|
-
// Identify new messages
|
|
85
|
-
const newGroupMessages = groupMessages.filter((message) => !oldGroupMessages.some((oldMessage) => oldMessage.timestamp === message.timestamp));
|
|
86
|
-
// Check if newGroupMessages sender is the member or receivers include the member
|
|
87
|
-
const newGroupMessages2 = newGroupMessages.filter((message) => message.sender === member || message.receivers.includes(member));
|
|
88
|
-
// Check if member is the sender of any newGroupMessages
|
|
89
|
-
const newGroupMessages3 = newGroupMessages2.filter((message) => message.sender === member);
|
|
90
|
-
// Check if member is the receiver of any newGroupMessages
|
|
91
|
-
if (newGroupMessages.length > 0 && newGroupMessages.length !== newGroupMessages3.length) {
|
|
92
|
-
updateShowMessagesBadge(true);
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
// Render and update counts for direct messages
|
|
97
|
-
const directMessages = messages.filter((message) => !message.group);
|
|
98
|
-
if (eventType !== 'broadcast' && eventType !== 'chat') {
|
|
99
|
-
// Check if oldDirectMessages length is different from directMessages length
|
|
100
|
-
if (oldDirectMessages.length !== directMessages.length) {
|
|
101
|
-
// Identify new direct messages
|
|
102
|
-
const newDirectMessages = directMessages.filter((message) => !oldDirectMessages.some((oldMessage) => oldMessage.timestamp === message.timestamp));
|
|
103
|
-
// Check if newDirectMessages sender is the member or receivers include the member
|
|
104
|
-
const newDirectMessages2 = newDirectMessages.filter((message) => message.sender === member || message.receivers.includes(member));
|
|
105
|
-
// Check if member is the sender of any newDirectMessages
|
|
106
|
-
const newDirectMessages3 = newDirectMessages2.filter((message) => message.sender === member);
|
|
107
|
-
if ((newDirectMessages.length > 0 && newDirectMessages2.length > 0) ||
|
|
108
|
-
(newDirectMessages.length > 0 && islevel === '2') ||
|
|
109
|
-
coHost === member) {
|
|
110
|
-
if (islevel === '2' || coHost === member) {
|
|
111
|
-
if (newDirectMessages.length !== newDirectMessages3.length) {
|
|
112
|
-
updateShowMessagesBadge(true);
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
else {
|
|
116
|
-
if (newDirectMessages2.length > 0 &&
|
|
117
|
-
newDirectMessages.length !== newDirectMessages3.length) {
|
|
118
|
-
updateShowMessagesBadge(true);
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
};
|
|
125
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ReceiveMessage, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
126
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ReceiveMessage, providedIn: 'root' });
|
|
127
|
-
}
|
|
128
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ReceiveMessage, decorators: [{
|
|
129
|
-
type: Injectable,
|
|
130
|
-
args: [{
|
|
131
|
-
providedIn: 'root',
|
|
132
|
-
}]
|
|
133
|
-
}] });
|
|
134
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjZWl2ZS1tZXNzYWdlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tZWRpYXNmdS1hbmd1bGFyL3NyYy9saWIvcHJvZHVjZXJzL3NvY2tldC1yZWNlaXZlLW1ldGhvZHMvcmVjZWl2ZS1tZXNzYWdlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFrQjNDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBcUNHO0FBTUgsTUFBTSxPQUFPLGNBQWM7SUFDekI7Ozs7Ozs7Ozs7Ozs7Ozs7O09BaUJHO0lBRUgsY0FBYyxHQUFHLEtBQUssRUFBRSxFQUN0QixPQUFPLEVBQ1AsUUFBUSxFQUNSLGVBQWUsRUFDZixNQUFNLEVBQ04sU0FBUyxFQUNULE9BQU8sRUFDUCxNQUFNLEVBQ04sY0FBYyxFQUNkLHVCQUF1QixHQUNELEVBQWlCLEVBQUU7UUFDekMsaURBQWlEO1FBQ2pELE1BQU0sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxHQUFHLE9BQU8sQ0FBQztRQUMxRSxJQUFJLFdBQVcsR0FBRyxRQUFRLENBQUM7UUFDM0IsUUFBUSxHQUFHLENBQUMsR0FBRyxRQUFRLEVBQUUsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7UUFFcEYsb0VBQW9FO1FBQ3BFLElBQUksU0FBUyxLQUFLLFdBQVcsSUFBSSxTQUFTLEtBQUssTUFBTSxFQUFFLENBQUM7WUFDdEQsUUFBUSxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFnQixFQUFFLEVBQUUsQ0FDOUMsZUFBZSxDQUFDLElBQUksQ0FDbEIsQ0FBQyxXQUFnQixFQUFF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QUNILENBQUM7Z0JBQ0gsQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQyxDQUFDO3VHQXBJUyxjQUFjOzJHQUFkLGNBQWMsY0FGYixNQUFNOzsyRkFFUCxjQUFjO2tCQUgxQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEV2ZW50VHlwZSwgTWVzc2FnZSwgUGFydGljaXBhbnQgfSBmcm9tICcuLi8uLi9AdHlwZXMvdHlwZXMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFJlY2VpdmVNZXNzYWdlT3B0aW9ucyB7XG4gIG1lc3NhZ2U6IE1lc3NhZ2U7XG4gIG1lc3NhZ2VzOiBNZXNzYWdlW107XG4gIHBhcnRpY2lwYW50c0FsbDogUGFydGljaXBhbnRbXTtcbiAgbWVtYmVyOiBzdHJpbmc7XG4gIGV2ZW50VHlwZTogRXZlbnRUeXBlO1xuICBpc2xldmVsOiBzdHJpbmc7XG4gIGNvSG9zdDogc3RyaW5nO1xuICB1cGRhdGVNZXNzYWdlczogKG1lc3NhZ2VzOiBNZXNzYWdlW10pID0+IHZvaWQ7XG4gIHVwZGF0ZVNob3dNZXNzYWdlc0JhZGdlOiAoc2hvd0JhZGdlOiBib29sZWFuKSA9PiB2b2lkO1xufVxuXG4vLyBFeHBvcnQgdGhlIHR5cGUgZGVmaW5pdGlvbiBmb3IgdGhlIGZ1bmN0aW9uXG5leHBvcnQgdHlwZSBSZWNlaXZlTWVzc2FnZVR5cGUgPSAob3B0aW9uczogUmVjZWl2ZU1lc3NhZ2VPcHRpb25zKSA9PiBQcm9taXNlPHZvaWQ+O1xuXG4vKipcbiAqIFNlcnZpY2UgZm9yIHJlY2VpdmluZyBhbmQgcHJvY2Vzc2luZyBtZXNzYWdlcywgaW5jbHVkaW5nIGhhbmRsaW5nIGdyb3VwIGFuZCBkaXJlY3QgbWVzc2FnZXMsIGZpbHRlcmluZyBiYW5uZWQgc2VuZGVycywgYW5kIHVwZGF0aW5nIG1lc3NhZ2Ugc3RhdGVzLlxuICpcbiAqIEBjbGFzc1xuICogQG5hbWUgUmVjZWl2ZU1lc3NhZ2VcbiAqIEBkZXNjcmlwdGlvbiBNYW5hZ2VzIGluY29taW5nIG1lc3NhZ2VzLCBhcHBlbmRzIHRoZW0gdG8gdGhlIGV4aXN0aW5nIG1lc3NhZ2VzIGFycmF5LCBmaWx0ZXJzIG91dCBiYW5uZWQgc2VuZGVycywgYW5kIHVwZGF0ZXMgbWVzc2FnZSBiYWRnZSB2aXNpYmlsaXR5IGFzIG5lZWRlZC5cbiAqXG4gKiBAbWV0aG9kXG4gKiByZWNlaXZlTWVzc2FnZVxuICpcbiAqIEBwYXJhbSB7UmVjZWl2ZU1lc3NhZ2VPcHRpb25zfSBvcHRpb25zIC0gT3B0aW9ucyBmb3IgaGFuZGxpbmcgYSByZWNlaXZlZCBtZXNzYWdlOlxuICogICAtIGBtZXNzYWdlYCB7TWVzc2FnZX06IFRoZSBuZXcgbWVzc2FnZSBvYmplY3QgdG8gcHJvY2Vzcy5cbiAqICAgLSBgbWVzc2FnZXNgIHtNZXNzYWdlW119OiBUaGUgY3VycmVudCBsaXN0IG9mIG1lc3NhZ2VzLlxuICogICAtIGBwYXJ0aWNpcGFudHNBbGxgIHtQYXJ0aWNpcGFudFtdfTogQWxsIHBhcnRpY2lwYW50cyBpbiB0aGUgY2hhdC5cbiAqICAgLSBgbWVtYmVyYCB7c3RyaW5nfTogVGhlIGN1cnJlbnQgbWVtYmVyJ3MgbmFtZS5cbiAqICAgLSBgZXZlbnRUeXBlYCB7RXZlbnRUeXBlfTogVGhlIHR5cGUgb2YgZXZlbnQgKGUuZy4sIFwiYnJvYWRjYXN0XCIgb3IgXCJjaGF0XCIpLlxuICogICAtIGBpc2xldmVsYCB7c3RyaW5nfTogVGhlIGxldmVsIG9mIHRoZSBjdXJyZW50IHVzZXIuXG4gKiAgIC0gYGNvSG9zdGAge3N0cmluZ306IFRoZSBuYW1lIG9mIHRoZSBjby1ob3N0LlxuICogICAtIGB1cGRhdGVNZXNzYWdlc2Age0Z1bmN0aW9ufTogQSBmdW5jdGlvbiB0byB1cGRhdGUgdGhlIG1lc3NhZ2VzIGxpc3QuXG4gKiAgIC0gYHVwZGF0ZVNob3dNZXNzYWdlc0JhZGdlYCB7RnVuY3Rpb259OiBBIGZ1bmN0aW9uIHRvIHRvZ2dsZSB0aGUgdmlzaWJpbGl0eSBvZiB0aGUgbWVzc2FnZSBiYWRnZS5cbiAqXG4gKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn0gUmVzb2x2ZXMgd2hlbiB0aGUgbWVzc2FnZSBwcm9jZXNzaW5nIGFuZCB1cGRhdGVzIGFyZSBjb21wbGV0ZS5cbiAqXG4gKiBAZXhhbXBsZVxuICogY29uc3QgbWVzc2FnZSA9IHsgc2VuZGVyOiAnQWxpY2UnLCByZWNlaXZlcnM6IFsnQm9iJ10sIG1lc3NhZ2U6ICdIZWxsbyEnLCB0aW1lc3RhbXA6IERhdGUubm93KCksIGdyb3VwOiBmYWxzZSB9O1xuICogY29uc3Qgb3B0aW9ucyA9IHtcbiAqICAgbWVzc2FnZSxcbiAqICAgbWVzc2FnZXM6IFtdLFxuICogICBwYXJ0aWNpcGFudHNBbGw6IFt7IG5hbWU6ICdBbGljZScgfSwgeyBuYW1lOiAnQm9iJyB9XSxcbiAqICAgbWVtYmVyOiAnQm9iJyxcbiAqICAgZXZlbnRUeXBlOiAnY2hhdCcsXG4gKiAgIGlzbGV2ZWw6ICcxJyxcbiAqICAgY29Ib3N0OiAnQ2hhcmxpZScsXG4gKiAgIHVwZGF0ZU1lc3NhZ2VzOiAodXBkYXRlZE1lc3NhZ2VzKSA9PiBjb25zb2xlLmxvZygnTWVzc2FnZXMgdXBkYXRlZDonLCB1cGRhdGVkTWVzc2FnZXMpLFxuICogICB1cGRhdGVTaG93TWVzc2FnZXNCYWRnZTogKHNob3cpID0+IGNvbnNvbGUubG9nKCdTaG93IGJhZGdlOicsIHNob3cpXG4gKiB9O1xuICogcmVjZWl2ZU1lc3NhZ2VTZXJ2aWNlLnJlY2VpdmVNZXNzYWdlKG9wdGlvbnMpO1xuICovXG5cblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFJlY2VpdmVNZXNzYWdlIHtcbiAgLyoqXG4gICAqIFJlY2VpdmVzIGFuZCBwcm9jZXNzZXMgYSBtZXNzYWdlLCB1cGRhdGluZyB0aGUgbWVzc2FnZXMgYXJyYXkgYW5kIGhhbmRsaW5nXG4gICAqIHZhcmlvdXMgbWVzc2FnZSB0eXBlcyBhbmQgZXZlbnRzLlxuICAgKlxuICAgKiBAcGFyYW0ge1JlY2VpdmVNZXNzYWdlT3B0aW9uc30gb3B0aW9ucyAtIFRoZSBvcHRpb25zIGZvciByZWNlaXZpbmcgdGhlIG1lc3NhZ2UuXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRpb25zLm1lc3NhZ2UgLSBUaGUgbWVzc2FnZSBvYmplY3QgY29udGFpbmluZyBzZW5kZXIsIHJlY2VpdmVycywgY29udGVudCwgdGltZXN0YW1wLCBhbmQgZ3JvdXAuXG4gICAqIEBwYXJhbSB7RnVuY3Rpb259IG9wdGlvbnMuZ2V0VXBkYXRlZEFsbFBhcmFtcyAtIEZ1bmN0aW9uIHRvIGdldCB1cGRhdGVkIHBhcmFtZXRlcnMuXG4gICAqIEBwYXJhbSB7QXJyYXl9IG9wdGlvbnMubWVzc2FnZXMgLSBBcnJheSBvZiBjdXJyZW50IG1lc3NhZ2VzLlxuICAgKiBAcGFyYW0ge0FycmF5fSBvcHRpb25zLnBhcnRpY2lwYW50c0FsbCAtIEFycmF5IG9mIGFsbCBwYXJ0aWNpcGFudHMuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBvcHRpb25zLm1lbWJlciAtIFRoZSBjdXJyZW50IG1lbWJlci5cbiAgICogQHBhcmFtIHtzdHJpbmd9IG9wdGlvbnMuZXZlbnRUeXBlIC0gVGhlIHR5cGUgb2YgZXZlbnQgKGUuZy4sIFwiYnJvYWRjYXN0XCIsIFwiY2hhdFwiKS5cbiAgICogQHBhcmFtIHtzdHJpbmd9IG9wdGlvbnMuaXNsZXZlbCAtIFRoZSBsZXZlbCBvZiB0aGUgY3VycmVudCBtZW1iZXIuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBvcHRpb25zLmNvSG9zdCAtIFRoZSBjby1ob3N0IG9mIHRoZSBldmVudC5cbiAgICogQHBhcmFtIHtGdW5jdGlvbn0gb3B0aW9ucy51cGRhdGVNZXNzYWdlcyAtIEZ1bmN0aW9uIHRvIHVwZGF0ZSB0aGUgbWVzc2FnZXMgYXJyYXkuXG4gICAqIEBwYXJhbSB7RnVuY3Rpb259IG9wdGlvbnMudXBkYXRlU2hvd01lc3NhZ2VzQmFkZ2UgLSBGdW5jdGlvbiB0byB1cGRhdGUgdGhlIHZpc2liaWxpdHkgb2YgdGhlIG1lc3NhZ2VzIGJhZGdlLlxuICAgKlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn0gQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgbWVzc2FnZSBoYXMgYmVlbiBwcm9jZXNzZWQuXG4gICAqL1xuXG4gIHJlY2VpdmVNZXNzYWdlID0gYXN5bmMgKHtcbiAgICBtZXNzYWdlLFxuICAgIG1lc3NhZ2VzLFxuICAgIHBhcnRpY2lwYW50c0FsbCxcbiAgICBtZW1iZXIsXG4gICAgZXZlbnRUeXBlLFxuICAgIGlzbGV2ZWwsXG4gICAgY29Ib3N0LFxuICAgIHVwZGF0ZU1lc3NhZ2VzLFxuICAgIHVwZGF0ZVNob3dNZXNzYWdlc0JhZGdlLFxuICB9OiBSZWNlaXZlTWVzc2FnZU9wdGlvbnMpOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgICAvLyBBZGQgdGhlIHJlY2VpdmVkIG1lc3NhZ2UgdG8gdGhlIG1lc3NhZ2VzIGFycmF5XG4gICAgY29uc3QgeyBzZW5kZXIsIHJlY2VpdmVycywgbWVzc2FnZTogY29udGVudCwgdGltZXN0YW1wLCBncm91cCB9ID0gbWVzc2FnZTtcbiAgICBsZXQgb2xkTWVzc2FnZXMgPSBtZXNzYWdlcztcbiAgICBtZXNzYWdlcyA9IFsuLi5tZXNzYWdlcywgeyBzZW5kZXIsIHJlY2VpdmVycywgbWVzc2FnZTogY29udGVudCwgdGltZXN0YW1wLCBncm91cCB9XTtcblxuICAgIC8vIEZpbHRlciBvdXQgbWVzc2FnZXMgd2l0aCBiYW5uZWQgc2VuZGVycyBpbiB0aGUgcGFydGljaXBhbnRzIGFycmF5XG4gICAgaWYgKGV2ZW50VHlwZSAhPT0gJ2Jyb2FkY2FzdCcgJiYgZXZlbnRUeXBlICE9PSAnY2hhdCcpIHtcbiAgICAgIG1lc3NhZ2VzID0gbWVzc2FnZXMuZmlsdGVyKChtZXNzYWdlOiBNZXNzYWdlKSA9PlxuICAgICAgICBwYXJ0aWNpcGFudHNBbGwuc29tZShcbiAgICAgICAgICAocGFydGljaXBhbnQ6IGFueSkgPT4gcGFydGljaXBhbnQubmFtZSA9PT0gbWVzc2FnZS5zZW5kZXIgJiYgIXBhcnRpY2lwYW50LmlzQmFubmVkLFxuICAgICAgICApLFxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgbWVzc2FnZXMgPSBtZXNzYWdlcy5maWx0ZXIoKG1lc3NhZ2U6IE1lc3NhZ2UpID0+IHtcbiAgICAgICAgY29uc3QgcGFydGljaXBhbnQgPSBwYXJ0aWNpcGFudHNBbGwuZmluZChcbiAgICAgICAgICAocGFydGljaXBhbnQ6IGFueSkgPT4gcGFydGljaXBhbnQubmFtZSA9PT0gbWVzc2FnZS5zZW5kZXIsXG4gICAgICAgICk7XG4gICAgICAgIHJldHVybiAhcGFydGljaXBhbnQgfHwgIXBhcnRpY2lwYW50LmlzQmFubmVkO1xuICAgICAgfSk7XG4gICAgfVxuICAgIHVwZGF0ZU1lc3NhZ2VzKG1lc3NhZ2VzKTtcblxuICAgIC8vIFNlcGFyYXRlIGdyb3VwIGFuZCBkaXJlY3QgbWVzc2FnZXNcbiAgICBjb25zdCBvbGRHcm91cE1lc3NhZ2VzID0gb2xkTWVzc2FnZXMuZmlsdGVyKChtZXNzYWdlOiBNZXNzYWdlKSA9PiBtZXNzYWdlLmdyb3VwKTtcbiAgICBjb25zdCBvbGREaXJlY3RNZXNzYWdlcyA9IG9sZE1lc3NhZ2VzLmZpbHRlcigobWVzc2FnZTogTWVzc2FnZSkgPT4gIW1lc3NhZ2UuZ3JvdXApO1xuXG4gICAgLy8gUmVuZGVyIGFuZCB1cGRhdGUgY291bnRzIGZvciBncm91cCBtZXNzYWdlc1xuICAgIGNvbnN0IGdyb3VwTWVzc2FnZXMgPSBtZXNzYWdlcy5maWx0ZXIoKG1lc3NhZ2U6IE1lc3NhZ2UpID0+IG1lc3NhZ2UuZ3JvdXApO1xuXG4gICAgaWYgKGV2ZW50VHlwZSAhPT0gJ2Jyb2FkY2FzdCcgJiYgZXZlbnRUeXBlICE9PSAnY2hhdCcpIHtcbiAgICAgIC8vIENoZWNrIGlmIG9sZEdyb3VwTWVzc2FnZXMgbGVuZ3RoIGlzIGRpZmZlcmVudCBmcm9tIGdyb3VwTWVzc2FnZXMgbGVuZ3RoXG4gICAgICBpZiAob2xkR3JvdXBNZXNzYWdlcy5sZW5ndGggIT09IGdyb3VwTWVzc2FnZXMubGVuZ3RoKSB7XG4gICAgICAgIC8vIElkZW50aWZ5IG5ldyBtZXNzYWdlc1xuICAgICAgICBjb25zdCBuZXdHcm91cE1lc3NhZ2VzID0gZ3JvdXBNZXNzYWdlcy5maWx0ZXIoXG4gICAgICAgICAgKG1lc3NhZ2U6IE1lc3NhZ2UpID0+XG4gICAgICAgICAgICAhb2xkR3JvdXBNZXNzYWdlcy5zb21lKFxuICAgICAgICAgICAgICAob2xkTWVzc2FnZTogTWVzc2FnZSkgPT4gb2xkTWVzc2FnZS50aW1lc3RhbXAgPT09IG1lc3NhZ2UudGltZXN0YW1wLFxuICAgICAgICAgICAgKSxcbiAgICAgICAgKTtcblxuICAgICAgICAvLyBDaGVjayBpZiBuZXdHcm91cE1lc3NhZ2VzIHNlbmRlciBpcyB0aGUgbWVtYmVyIG9yIHJlY2VpdmVycyBpbmNsdWRlIHRoZSBtZW1iZXJcbiAgICAgICAgY29uc3QgbmV3R3JvdXBNZXNzYWdlczIgPSBuZXdHcm91cE1lc3NhZ2VzLmZpbHRlcihcbiAgICAgICAgICAobWVzc2FnZTogTWVzc2FnZSkgPT4gbWVzc2FnZS5zZW5kZXIgPT09IG1lbWJlciB8fCBtZXNzYWdlLnJlY2VpdmVycy5pbmNsdWRlcyhtZW1iZXIpLFxuICAgICAgICApO1xuXG4gICAgICAgIC8vIENoZWNrIGlmIG1lbWJlciBpcyB0aGUgc2VuZGVyIG9mIGFueSBuZXdHcm91cE1lc3NhZ2VzXG4gICAgICAgIGNvbnN0IG5ld0dyb3VwTWVzc2FnZXMzID0gbmV3R3JvdXBNZXNzYWdlczIuZmlsdGVyKFxuICAgICAgICAgIChtZXNzYWdlOiBNZXNzYWdlKSA9PiBtZXNzYWdlLnNlbmRlciA9PT0gbWVtYmVyLFxuICAgICAgICApO1xuXG4gICAgICAgIC8vIENoZWNrIGlmIG1lbWJlciBpcyB0aGUgcmVjZWl2ZXIgb2YgYW55IG5ld0dyb3VwTWVzc2FnZXNcbiAgICAgICAgaWYgKG5ld0dyb3VwTWVzc2FnZXMubGVuZ3RoID4gMCAmJiBuZXdHcm91cE1lc3NhZ2VzLmxlbmd0aCAhPT0gbmV3R3JvdXBNZXNzYWdlczMubGVuZ3RoKSB7XG4gICAgICAgICAgdXBkYXRlU2hvd01lc3NhZ2VzQmFkZ2UodHJ1ZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBSZW5kZXIgYW5kIHVwZGF0ZSBjb3VudHMgZm9yIGRpcmVjdCBtZXNzYWdlc1xuICAgIGNvbnN0IGRpcmVjdE1lc3NhZ2VzID0gbWVzc2FnZXMuZmlsdGVyKChtZXNzYWdlOiBNZXNzYWdlKSA9PiAhbWVzc2FnZS5ncm91cCk7XG5cbiAgICBpZiAoZXZlbnRUeXBlICE9PSAnYnJvYWRjYXN0JyAmJiBldmVudFR5cGUgIT09ICdjaGF0Jykge1xuICAgICAgLy8gQ2hlY2sgaWYgb2xkRGlyZWN0TWVzc2FnZXMgbGVuZ3RoIGlzIGRpZmZlcmVudCBmcm9tIGRpcmVjdE1lc3NhZ2VzIGxlbmd0aFxuICAgICAgaWYgKG9sZERpcmVjdE1lc3NhZ2VzLmxlbmd0aCAhPT0gZGlyZWN0TWVzc2FnZXMubGVuZ3RoKSB7XG4gICAgICAgIC8vIElkZW50aWZ5IG5ldyBkaXJlY3QgbWVzc2FnZXNcbiAgICAgICAgY29uc3QgbmV3RGlyZWN0TWVzc2FnZXMgPSBkaXJlY3RNZXNzYWdlcy5maWx0ZXIoXG4gICAgICAgICAgKG1lc3NhZ2U6IE1lc3NhZ2UpID0+XG4gICAgICAgICAgICAhb2xkRGlyZWN0TWVzc2FnZXMuc29tZShcbiAgICAgICAgICAgICAgKG9sZE1lc3NhZ2U6IE1lc3NhZ2UpID0+IG9sZE1lc3NhZ2UudGltZXN0YW1wID09PSBtZXNzYWdlLnRpbWVzdGFtcCxcbiAgICAgICAgICAgICksXG4gICAgICAgICk7XG5cbiAgICAgICAgLy8gQ2hlY2sgaWYgbmV3RGlyZWN0TWVzc2FnZXMgc2VuZGVyIGlzIHRoZSBtZW1iZXIgb3IgcmVjZWl2ZXJzIGluY2x1ZGUgdGhlIG1lbWJlclxuICAgICAgICBjb25zdCBuZXdEaXJlY3RNZXNzYWdlczIgPSBuZXdEaXJlY3RNZXNzYWdlcy5maWx0ZXIoXG4gICAgICAgICAgKG1lc3NhZ2U6IE1lc3NhZ2UpID0+IG1lc3NhZ2Uuc2VuZGVyID09PSBtZW1iZXIgfHwgbWVzc2FnZS5yZWNlaXZlcnMuaW5jbHVkZXMobWVtYmVyKSxcbiAgICAgICAgKTtcblxuICAgICAgICAvLyBDaGVjayBpZiBtZW1iZXIgaXMgdGhlIHNlbmRlciBvZiBhbnkgbmV3RGlyZWN0TWVzc2FnZXNcbiAgICAgICAgY29uc3QgbmV3RGlyZWN0TWVzc2FnZXMzID0gbmV3RGlyZWN0TWVzc2FnZXMyLmZpbHRlcihcbiAgICAgICAgICAobWVzc2FnZTogTWVzc2FnZSkgPT4gbWVzc2FnZS5zZW5kZXIgPT09IG1lbWJlcixcbiAgICAgICAgKTtcblxuICAgICAgICBpZiAoXG4gICAgICAgICAgKG5ld0RpcmVjdE1lc3NhZ2VzLmxlbmd0aCA+IDAgJiYgbmV3RGlyZWN0TWVzc2FnZXMyLmxlbmd0aCA+IDApIHx8XG4gICAgICAgICAgKG5ld0RpcmVjdE1lc3NhZ2VzLmxlbmd0aCA+IDAgJiYgaXNsZXZlbCA9PT0gJzInKSB8fFxuICAgICAgICAgIGNvSG9zdCA9PT0gbWVtYmVyXG4gICAgICAgICkge1xuICAgICAgICAgIGlmIChpc2xldmVsID09PSAnMicgfHwgY29Ib3N0ID09PSBtZW1iZXIpIHtcbiAgICAgICAgICAgIGlmIChuZXdEaXJlY3RNZXNzYWdlcy5sZW5ndGggIT09IG5ld0RpcmVjdE1lc3NhZ2VzMy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgdXBkYXRlU2hvd01lc3NhZ2VzQmFkZ2UodHJ1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgbmV3RGlyZWN0TWVzc2FnZXMyLmxlbmd0aCA+IDAgJiZcbiAgICAgICAgICAgICAgbmV3RGlyZWN0TWVzc2FnZXMubGVuZ3RoICE9PSBuZXdEaXJlY3RNZXNzYWdlczMubGVuZ3RoXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgdXBkYXRlU2hvd01lc3NhZ2VzQmFkZ2UodHJ1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9O1xufVxuIl19
|