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,143 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
/**
|
|
4
|
-
* Sends a message to the specified room.
|
|
5
|
-
*
|
|
6
|
-
* This method validates the message and its recipients, checks user permissions,
|
|
7
|
-
* and then emits the message to the server via a socket connection. It also
|
|
8
|
-
* handles alerting the user for any errors encountered during the process,
|
|
9
|
-
* such as exceeding message limits or invalid input.
|
|
10
|
-
*
|
|
11
|
-
* @param {SendMessageOptions} options - The options for sending the message.
|
|
12
|
-
* @param {string} options.member - The member sending the message.
|
|
13
|
-
* @param {string} options.islevel - The level of the member.
|
|
14
|
-
* @param {Function} options.showAlert - Function to show alert messages.
|
|
15
|
-
* @param {Array} options.coHostResponsibility - List of co-host responsibilities.
|
|
16
|
-
* @param {string} options.coHost - The co-host of the room.
|
|
17
|
-
* @param {string} options.chatSetting - Chat setting for the room.
|
|
18
|
-
* @param {string} options.message - The message to be sent.
|
|
19
|
-
* @param {string} options.roomName - The name of the room.
|
|
20
|
-
* @param {number} options.messagesLength - The current number of messages in the room.
|
|
21
|
-
* @param {Array} options.receivers - List of receivers for the message.
|
|
22
|
-
* @param {boolean} options.group - Indicates if the message is for a group.
|
|
23
|
-
* @param {string} options.sender - The sender of the message.
|
|
24
|
-
* @param {Object} options.socket - The socket instance for emitting events.
|
|
25
|
-
*
|
|
26
|
-
* @returns {Promise<void>} A promise that resolves when the message is sent.
|
|
27
|
-
*
|
|
28
|
-
* @throws Will throw an error if the message count limit is exceeded.
|
|
29
|
-
* @throws Will throw an error if the message, sender, or receivers are not valid.
|
|
30
|
-
* @throws Will throw an error if the user is not allowed to send a message in the event room.
|
|
31
|
-
*
|
|
32
|
-
* @example
|
|
33
|
-
* ```typescript
|
|
34
|
-
* const sendMessageService = new SendMessage();
|
|
35
|
-
* await sendMessageService.sendMessage({
|
|
36
|
-
* member: 'JohnDoe',
|
|
37
|
-
* islevel: '1',
|
|
38
|
-
* showAlert: (alert) => console.log(alert.message),
|
|
39
|
-
* coHostResponsibility: [],
|
|
40
|
-
* coHost: 'JaneDoe',
|
|
41
|
-
* chatSetting: 'allowed',
|
|
42
|
-
* message: 'Hello everyone!',
|
|
43
|
-
* roomName: 'Room1',
|
|
44
|
-
* messagesLength: 50,
|
|
45
|
-
* receivers: ['user1', 'user2'],
|
|
46
|
-
* group: true,
|
|
47
|
-
* sender: 'JohnDoe',
|
|
48
|
-
* socket: socketInstance,
|
|
49
|
-
* });
|
|
50
|
-
* ```
|
|
51
|
-
*/
|
|
52
|
-
export class SendMessage {
|
|
53
|
-
/**
|
|
54
|
-
* Sends a message to the specified room.
|
|
55
|
-
*
|
|
56
|
-
* @param {Object} options - The options for sending the message.
|
|
57
|
-
* @param {string} options.member - The member sending the message.
|
|
58
|
-
* @param {string} options.islevel - The level of the member.
|
|
59
|
-
* @param {Function} options.showAlert - Function to show alert messages.
|
|
60
|
-
* @param {Array} options.coHostResponsibility - List of co-host responsibilities.
|
|
61
|
-
* @param {string} options.coHost - The co-host of the room.
|
|
62
|
-
* @param {boolean} options.chatSetting - Chat setting for the room.
|
|
63
|
-
* @param {string} options.message - The message to be sent.
|
|
64
|
-
* @param {string} options.roomName - The name of the room.
|
|
65
|
-
* @param {number} options.messagesLength - The current number of messages in the room.
|
|
66
|
-
* @param {Array} options.receivers - List of receivers for the message.
|
|
67
|
-
* @param {boolean} options.group - Indicates if the message is for a group.
|
|
68
|
-
* @param {string} options.sender - The sender of the message.
|
|
69
|
-
* @param {Object} options.socket - The socket instance for communication.
|
|
70
|
-
*
|
|
71
|
-
* @returns {Promise<void>} A promise that resolves when the message is sent.
|
|
72
|
-
*
|
|
73
|
-
* @throws Will throw an error if the message count limit is exceeded.
|
|
74
|
-
* @throws Will throw an error if the message, sender, or receivers are not valid.
|
|
75
|
-
* @throws Will throw an error if the user is not allowed to send a message in the event room.
|
|
76
|
-
*/
|
|
77
|
-
async sendMessage({ member, islevel, showAlert, coHostResponsibility, coHost, chatSetting, message, roomName, messagesLength, receivers, group, sender, socket, }) {
|
|
78
|
-
let chatValue = false;
|
|
79
|
-
// Check message count limit based on the room type
|
|
80
|
-
if ((messagesLength > 100 && roomName.startsWith('d')) ||
|
|
81
|
-
(messagesLength > 500 && roomName.startsWith('s')) ||
|
|
82
|
-
(messagesLength > 100000 && roomName.startsWith('p'))) {
|
|
83
|
-
showAlert?.({
|
|
84
|
-
message: 'You have reached the maximum number of messages allowed.',
|
|
85
|
-
type: 'danger',
|
|
86
|
-
duration: 3000,
|
|
87
|
-
});
|
|
88
|
-
return;
|
|
89
|
-
}
|
|
90
|
-
// Validate message, sender, and receivers
|
|
91
|
-
if (!message || !receivers || (!member && !sender)) {
|
|
92
|
-
showAlert?.({
|
|
93
|
-
message: 'Message is not valid.',
|
|
94
|
-
type: 'danger',
|
|
95
|
-
duration: 3000,
|
|
96
|
-
});
|
|
97
|
-
return;
|
|
98
|
-
}
|
|
99
|
-
// Create the message object
|
|
100
|
-
const messageObject = {
|
|
101
|
-
sender: sender ? sender : member,
|
|
102
|
-
receivers: receivers,
|
|
103
|
-
message: message,
|
|
104
|
-
timestamp: new Date().toLocaleTimeString(),
|
|
105
|
-
group: group !== undefined && group !== null ? group : false,
|
|
106
|
-
};
|
|
107
|
-
try {
|
|
108
|
-
// Check co-host responsibility for chat
|
|
109
|
-
chatValue = coHostResponsibility.find((item) => item.name === 'chat')?.value ?? false;
|
|
110
|
-
}
|
|
111
|
-
catch (error) {
|
|
112
|
-
console.error(error);
|
|
113
|
-
}
|
|
114
|
-
if (islevel === '2' || (coHost === member && chatValue === true)) {
|
|
115
|
-
// Allow sending message
|
|
116
|
-
}
|
|
117
|
-
else {
|
|
118
|
-
// Check if user is allowed to send a message in the event room
|
|
119
|
-
if (!chatSetting) {
|
|
120
|
-
showAlert?.({
|
|
121
|
-
message: 'You are not allowed to send a message in this event room',
|
|
122
|
-
type: 'danger',
|
|
123
|
-
duration: 3000,
|
|
124
|
-
});
|
|
125
|
-
return;
|
|
126
|
-
}
|
|
127
|
-
}
|
|
128
|
-
// Send the message to the server
|
|
129
|
-
socket.emit('sendMessage', {
|
|
130
|
-
messageObject: messageObject,
|
|
131
|
-
roomName: roomName,
|
|
132
|
-
});
|
|
133
|
-
}
|
|
134
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: SendMessage, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
135
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: SendMessage, providedIn: 'root' });
|
|
136
|
-
}
|
|
137
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: SendMessage, decorators: [{
|
|
138
|
-
type: Injectable,
|
|
139
|
-
args: [{
|
|
140
|
-
providedIn: 'root',
|
|
141
|
-
}]
|
|
142
|
-
}] });
|
|
143
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VuZC1tZXNzYWdlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tZWRpYXNmdS1hbmd1bGFyL3NyYy9saWIvbWV0aG9kcy9tZXNzYWdlLW1ldGhvZHMvc2VuZC1tZXNzYWdlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUF1QjNDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FnREc7QUFLSCxNQUFNLE9BQU8sV0FBVztJQUN0Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7T0F1Qkc7SUFFSCxLQUFLLENBQUMsV0FBVyxDQUFDLEVBQ2hCLE1BQU0sRUFDTixPQUFPLEVBQ1AsU0FBUyxFQUNULG9CQUFvQixFQUNwQixNQUFNLEVBQ04sV0FBVyxFQUNYLE9BQU8sRUFDUCxRQUFRLEVBQ1IsY0FBYyxFQUNkLFNBQVMsRUFDVCxLQUFLLEVBQ0wsTUFBTSxFQUNOLE1BQU0sR0FDYTtRQUNuQixJQUFJLFNBQVMsR0FBRyxLQUFLLENBQUM7UUFFdEIsbURBQW1EO1FBQ25ELElBQ0UsQ0FBQyxjQUFjLEdBQUcsR0FBRyxJQUFJLFFBQVEsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDbEQsQ0FBQyxjQUFjLEdBQUcsR0FBRyxJQUFJLFFBQVEsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDbEQsQ0FBQyxjQUFjLEdBQUcsTUFBTSxJQUFJLFFBQVEsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsRUFDckQsQ0FBQztZQUNELFNBQVMsRUFBRSxDQUFDO2dCQUNWLE9BQU8sRUFBRSwwREFBMEQ7Z0JBQ25FLElBQUksRUFBRSxRQUFRO2dCQUNkLFFBQVEsRUFBRSxJQUFJO2FBQ2YsQ0FBQyxDQUFDO1lBQ0gsT0FBTztRQUNULENBQUM7UUFFRCwwQ0FBMEM7UUFDMUMsSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLFNBQVMsSUFBSSxDQUFDLENBQUMsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztZQUNuRCxTQUFTLEVBQUUsQ0FBQztnQkFDVixPQUFPLEVBQUUsdUJBQXVCO2dCQUNoQyxJQUFJLEVBQUUsUUFBUTtnQkFDZCxRQUFRLEVBQUUsSUFBSTthQUNmLENBQUMsQ0FBQztZQUNILE9BQU87UUFDVCxDQUFDO1FBRUQsNEJBQTRCO1FBQzVCLE1BQU0sYUFBYSxHQUFZO1lBQzdCLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTTtZQUNoQyxTQUFTLEVBQUUsU0FBUztZQUNwQixPQUFPLEVBQUUsT0FBTztZQUNoQixTQUFTLEVBQUUsSUFBSSxJQUFJLEVBQUUsQ0FBQyxrQkFBa0IsRUFBRTtZQUMxQyxLQUFLLEVBQUUsS0FBSyxLQUFLLFNBQVMsSUFBSSxLQUFLLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUs7U0FDN0QsQ0FBQztRQUVGLElBQUksQ0FBQztZQUNILHdDQUF3QztZQUN4QyxTQUFTLEdBQUcsb0JBQW9CLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUFLLE1BQU0sQ0FBQyxFQUFFLEtBQUssSUFBSSxLQUFLLENBQUM7UUFDeEYsQ0FBQztRQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7WUFDZixPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3ZCLENBQUM7UUFFRCxJQUFJLE9BQU8sS0FBSyxHQUFHLElBQUksQ0FBQyxNQUFNLEtBQUssTUFBTSxJQUFJLFNBQVMsS0FBSyxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQ2pFLHdCQUF3QjtRQUMxQixDQUFDO2FBQU0sQ0FBQztZQUNOLCtEQUErRDtZQUMvRCxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7Z0JBQ2pCLFNBQVMsRUFBRSxDQUFDO29CQUNWLE9BQU8sRUFBRSwwREFBMEQ7b0JBQ25FLElBQUksRUFBRSxRQUFRO29CQUNkLFFBQVEsRUFBRSxJQUFJO2lCQUNmLENBQUMsQ0FBQztnQkFDSCxPQUFPO1lBQ1QsQ0FBQztRQUNILENBQUM7UUFFRCxpQ0FBaUM7UUFDakMsTUFBTSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUU7WUFDekIsYUFBYSxFQUFFLGFBQWE7WUFDNUIsUUFBUSxFQUFFLFFBQVE7U0FDbkIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzt1R0F0R1UsV0FBVzsyR0FBWCxXQUFXLGNBRlYsTUFBTTs7MkZBRVAsV0FBVztrQkFIdkIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTb2NrZXQgfSBmcm9tICdzb2NrZXQuaW8tY2xpZW50JztcbmltcG9ydCB7IENvSG9zdFJlc3BvbnNpYmlsaXR5LCBNZXNzYWdlLCBTaG93QWxlcnQgfSBmcm9tICcuLi8uLi9AdHlwZXMvdHlwZXMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNlbmRNZXNzYWdlT3B0aW9ucyB7XG4gIG1lbWJlcjogc3RyaW5nO1xuICBpc2xldmVsOiBzdHJpbmc7XG4gIHNob3dBbGVydD86IFNob3dBbGVydDtcbiAgY29Ib3N0UmVzcG9uc2liaWxpdHk6IENvSG9zdFJlc3BvbnNpYmlsaXR5W107XG4gIGNvSG9zdDogc3RyaW5nO1xuICBjaGF0U2V0dGluZzogc3RyaW5nO1xuICBtZXNzYWdlOiBzdHJpbmc7XG4gIHJvb21OYW1lOiBzdHJpbmc7XG4gIG1lc3NhZ2VzTGVuZ3RoOiBudW1iZXI7XG4gIHJlY2VpdmVyczogc3RyaW5nW107XG4gIGdyb3VwOiBib29sZWFuO1xuICBzZW5kZXI6IHN0cmluZztcbiAgc29ja2V0OiBTb2NrZXQ7XG59XG5cbi8vIEV4cG9ydCB0aGUgdHlwZSBkZWZpbml0aW9uIGZvciB0aGUgZnVuY3Rpb25cbmV4cG9ydCB0eXBlIFNlbmRNZXNzYWdlVHlwZSA9IChvcHRpb25zOiBTZW5kTWVzc2FnZU9wdGlvbnMpID0+IFByb21pc2U8dm9pZD47XG5cbi8qKlxuICogU2VuZHMgYSBtZXNzYWdlIHRvIHRoZSBzcGVjaWZpZWQgcm9vbS5cbiAqXG4gKiBUaGlzIG1ldGhvZCB2YWxpZGF0ZXMgdGhlIG1lc3NhZ2UgYW5kIGl0cyByZWNpcGllbnRzLCBjaGVja3MgdXNlciBwZXJtaXNzaW9ucyxcbiAqIGFuZCB0aGVuIGVtaXRzIHRoZSBtZXNzYWdlIHRvIHRoZSBzZXJ2ZXIgdmlhIGEgc29ja2V0IGNvbm5lY3Rpb24uIEl0IGFsc29cbiAqIGhhbmRsZXMgYWxlcnRpbmcgdGhlIHVzZXIgZm9yIGFueSBlcnJvcnMgZW5jb3VudGVyZWQgZHVyaW5nIHRoZSBwcm9jZXNzLFxuICogc3VjaCBhcyBleGNlZWRpbmcgbWVzc2FnZSBsaW1pdHMgb3IgaW52YWxpZCBpbnB1dC5cbiAqXG4gKiBAcGFyYW0ge1NlbmRNZXNzYWdlT3B0aW9uc30gb3B0aW9ucyAtIFRoZSBvcHRpb25zIGZvciBzZW5kaW5nIHRoZSBtZXNzYWdlLlxuICogQHBhcmFtIHtzdHJpbmd9IG9wdGlvbnMubWVtYmVyIC0gVGhlIG1lbWJlciBzZW5kaW5nIHRoZSBtZXNzYWdlLlxuICogQHBhcmFtIHtzdHJpbmd9IG9wdGlvbnMuaXNsZXZlbCAtIFRoZSBsZXZlbCBvZiB0aGUgbWVtYmVyLlxuICogQHBhcmFtIHtGdW5jdGlvbn0gb3B0aW9ucy5zaG93QWxlcnQgLSBGdW5jdGlvbiB0byBzaG93IGFsZXJ0IG1lc3NhZ2VzLlxuICogQHBhcmFtIHtBcnJheX0gb3B0aW9ucy5jb0hvc3RSZXNwb25zaWJpbGl0eSAtIExpc3Qgb2YgY28taG9zdCByZXNwb25zaWJpbGl0aWVzLlxuICogQHBhcmFtIHtzdHJpbmd9IG9wdGlvbnMuY29Ib3N0IC0gVGhlIGNvLWhvc3Qgb2YgdGhlIHJvb20uXG4gKiBAcGFyYW0ge3N0cmluZ30gb3B0aW9ucy5jaGF0U2V0dGluZyAtIENoYXQgc2V0dGluZyBmb3IgdGhlIHJvb20uXG4gKiBAcGFyYW0ge3N0cmluZ30gb3B0aW9ucy5tZXNzYWdlIC0gVGhlIG1lc3NhZ2UgdG8gYmUgc2VudC5cbiAqIEBwYXJhbSB7c3RyaW5nfSBvcHRpb25zLnJvb21OYW1lIC0gVGhlIG5hbWUgb2YgdGhlIHJvb20uXG4gKiBAcGFyYW0ge251bWJlcn0gb3B0aW9ucy5tZXNzYWdlc0xlbmd0aCAtIFRoZSBjdXJyZW50IG51bWJlciBvZiBtZXNzYWdlcyBpbiB0aGUgcm9vbS5cbiAqIEBwYXJhbSB7QXJyYXl9IG9wdGlvbnMucmVjZWl2ZXJzIC0gTGlzdCBvZiByZWNlaXZlcnMgZm9yIHRoZSBtZXNzYWdlLlxuICogQHBhcmFtIHtib29sZWFufSBvcHRpb25zLmdyb3VwIC0gSW5kaWNhdGVzIGlmIHRoZSBtZXNzYWdlIGlzIGZvciBhIGdyb3VwLlxuICogQHBhcmFtIHtzdHJpbmd9IG9wdGlvbnMuc2VuZGVyIC0gVGhlIHNlbmRlciBvZiB0aGUgbWVzc2FnZS5cbiAqIEBwYXJhbSB7T2JqZWN0fSBvcHRpb25zLnNvY2tldCAtIFRoZSBzb2NrZXQgaW5zdGFuY2UgZm9yIGVtaXR0aW5nIGV2ZW50cy5cbiAqXG4gKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn0gQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgbWVzc2FnZSBpcyBzZW50LlxuICpcbiAqIEB0aHJvd3MgV2lsbCB0aHJvdyBhbiBlcnJvciBpZiB0aGUgbWVzc2FnZSBjb3VudCBsaW1pdCBpcyBleGNlZWRlZC5cbiAqIEB0aHJvd3MgV2lsbCB0aHJvdyBhbiBlcnJvciBpZiB0aGUgbWVzc2FnZSwgc2VuZGVyLCBvciByZWNlaXZlcnMgYXJlIG5vdCB2YWxpZC5cbiAqIEB0aHJvd3MgV2lsbCB0aHJvdyBhbiBlcnJvciBpZiB0aGUgdXNlciBpcyBub3QgYWxsb3dlZCB0byBzZW5kIGEgbWVzc2FnZSBpbiB0aGUgZXZlbnQgcm9vbS5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3Qgc2VuZE1lc3NhZ2VTZXJ2aWNlID0gbmV3IFNlbmRNZXNzYWdlKCk7XG4gKiBhd2FpdCBzZW5kTWVzc2FnZVNlcnZpY2Uuc2VuZE1lc3NhZ2Uoe1xuICogICBtZW1iZXI6ICdKb2huRG9lJyxcbiAqICAgaXNsZXZlbDogJzEnLFxuICogICBzaG93QWxlcnQ6IChhbGVydCkgPT4gY29uc29sZS5sb2coYWxlcnQubWVzc2FnZSksXG4gKiAgIGNvSG9zdFJlc3BvbnNpYmlsaXR5OiBbXSxcbiAqICAgY29Ib3N0OiAnSmFuZURvZScsXG4gKiAgIGNoYXRTZXR0aW5nOiAnYWxsb3dlZCcsXG4gKiAgIG1lc3NhZ2U6ICdIZWxsbyBldmVyeW9uZSEnLFxuICogICByb29tTmFtZTogJ1Jvb20xJyxcbiAqICAgbWVzc2FnZXNMZW5ndGg6IDUwLFxuICogICByZWNlaXZlcnM6IFsndXNlcjEnLCAndXNlcjInXSxcbiAqICAgZ3JvdXA6IHRydWUsXG4gKiAgIHNlbmRlcjogJ0pvaG5Eb2UnLFxuICogICBzb2NrZXQ6IHNvY2tldEluc3RhbmNlLFxuICogfSk7XG4gKiBgYGBcbiAqL1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgU2VuZE1lc3NhZ2Uge1xuICAvKipcbiAgICogU2VuZHMgYSBtZXNzYWdlIHRvIHRoZSBzcGVjaWZpZWQgcm9vbS5cbiAgICpcbiAgICogQHBhcmFtIHtPYmplY3R9IG9wdGlvbnMgLSBUaGUgb3B0aW9ucyBmb3Igc2VuZGluZyB0aGUgbWVzc2FnZS5cbiAgICogQHBhcmFtIHtzdHJpbmd9IG9wdGlvbnMubWVtYmVyIC0gVGhlIG1lbWJlciBzZW5kaW5nIHRoZSBtZXNzYWdlLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gb3B0aW9ucy5pc2xldmVsIC0gVGhlIGxldmVsIG9mIHRoZSBtZW1iZXIuXG4gICAqIEBwYXJhbSB7RnVuY3Rpb259IG9wdGlvbnMuc2hvd0FsZXJ0IC0gRnVuY3Rpb24gdG8gc2hvdyBhbGVydCBtZXNzYWdlcy5cbiAgICogQHBhcmFtIHtBcnJheX0gb3B0aW9ucy5jb0hvc3RSZXNwb25zaWJpbGl0eSAtIExpc3Qgb2YgY28taG9zdCByZXNwb25zaWJpbGl0aWVzLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gb3B0aW9ucy5jb0hvc3QgLSBUaGUgY28taG9zdCBvZiB0aGUgcm9vbS5cbiAgICogQHBhcmFtIHtib29sZWFufSBvcHRpb25zLmNoYXRTZXR0aW5nIC0gQ2hhdCBzZXR0aW5nIGZvciB0aGUgcm9vbS5cbiAgICogQHBhcmFtIHtzdHJpbmd9IG9wdGlvbnMubWVzc2FnZSAtIFRoZSBtZXNzYWdlIHRvIGJlIHNlbnQuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBvcHRpb25zLnJvb21OYW1lIC0gVGhlIG5hbWUgb2YgdGhlIHJvb20uXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBvcHRpb25zLm1lc3NhZ2VzTGVuZ3RoIC0gVGhlIGN1cnJlbnQgbnVtYmVyIG9mIG1lc3NhZ2VzIGluIHRoZSByb29tLlxuICAgKiBAcGFyYW0ge0FycmF5fSBvcHRpb25zLnJlY2VpdmVycyAtIExpc3Qgb2YgcmVjZWl2ZXJzIGZvciB0aGUgbWVzc2FnZS5cbiAgICogQHBhcmFtIHtib29sZWFufSBvcHRpb25zLmdyb3VwIC0gSW5kaWNhdGVzIGlmIHRoZSBtZXNzYWdlIGlzIGZvciBhIGdyb3VwLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gb3B0aW9ucy5zZW5kZXIgLSBUaGUgc2VuZGVyIG9mIHRoZSBtZXNzYWdlLlxuICAgKiBAcGFyYW0ge09iamVjdH0gb3B0aW9ucy5zb2NrZXQgLSBUaGUgc29ja2V0IGluc3RhbmNlIGZvciBjb21tdW5pY2F0aW9uLlxuICAgKlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn0gQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgbWVzc2FnZSBpcyBzZW50LlxuICAgKlxuICAgKiBAdGhyb3dzIFdpbGwgdGhyb3cgYW4gZXJyb3IgaWYgdGhlIG1lc3NhZ2UgY291bnQgbGltaXQgaXMgZXhjZWVkZWQuXG4gICAqIEB0aHJvd3MgV2lsbCB0aHJvdyBhbiBlcnJvciBpZiB0aGUgbWVzc2FnZSwgc2VuZGVyLCBvciByZWNlaXZlcnMgYXJlIG5vdCB2YWxpZC5cbiAgICogQHRocm93cyBXaWxsIHRocm93IGFuIGVycm9yIGlmIHRoZSB1c2VyIGlzIG5vdCBhbGxvd2VkIHRvIHNlbmQgYSBtZXNzYWdlIGluIHRoZSBldmVudCByb29tLlxuICAgKi9cblxuICBhc3luYyBzZW5kTWVzc2FnZSh7XG4gICAgbWVtYmVyLFxuICAgIGlzbGV2ZWwsXG4gICAgc2hvd0FsZXJ0LFxuICAgIGNvSG9zdFJlc3BvbnNpYmlsaXR5LFxuICAgIGNvSG9zdCxcbiAgICBjaGF0U2V0dGluZyxcbiAgICBtZXNzYWdlLFxuICAgIHJvb21OYW1lLFxuICAgIG1lc3NhZ2VzTGVuZ3RoLFxuICAgIHJlY2VpdmVycyxcbiAgICBncm91cCxcbiAgICBzZW5kZXIsXG4gICAgc29ja2V0LFxuICB9OiBTZW5kTWVzc2FnZU9wdGlvbnMpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBsZXQgY2hhdFZhbHVlID0gZmFsc2U7XG5cbiAgICAvLyBDaGVjayBtZXNzYWdlIGNvdW50IGxpbWl0IGJhc2VkIG9uIHRoZSByb29tIHR5cGVcbiAgICBpZiAoXG4gICAgICAobWVzc2FnZXNMZW5ndGggPiAxMDAgJiYgcm9vbU5hbWUuc3RhcnRzV2l0aCgnZCcpKSB8fFxuICAgICAgKG1lc3NhZ2VzTGVuZ3RoID4gNTAwICYmIHJvb21OYW1lLnN0YXJ0c1dpdGgoJ3MnKSkgfHxcbiAgICAgIChtZXNzYWdlc0xlbmd0aCA+IDEwMDAwMCAmJiByb29tTmFtZS5zdGFydHNXaXRoKCdwJykpXG4gICAgKSB7XG4gICAgICBzaG93QWxlcnQ/Lih7XG4gICAgICAgIG1lc3NhZ2U6ICdZb3UgaGF2ZSByZWFjaGVkIHRoZSBtYXhpbXVtIG51bWJlciBvZiBtZXNzYWdlcyBhbGxvd2VkLicsXG4gICAgICAgIHR5cGU6ICdkYW5nZXInLFxuICAgICAgICBkdXJhdGlvbjogMzAwMCxcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIFZhbGlkYXRlIG1lc3NhZ2UsIHNlbmRlciwgYW5kIHJlY2VpdmVyc1xuICAgIGlmICghbWVzc2FnZSB8fCAhcmVjZWl2ZXJzIHx8ICghbWVtYmVyICYmICFzZW5kZXIpKSB7XG4gICAgICBzaG93QWxlcnQ/Lih7XG4gICAgICAgIG1lc3NhZ2U6ICdNZXNzYWdlIGlzIG5vdCB2YWxpZC4nLFxuICAgICAgICB0eXBlOiAnZGFuZ2VyJyxcbiAgICAgICAgZHVyYXRpb246IDMwMDAsXG4gICAgICB9KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBDcmVhdGUgdGhlIG1lc3NhZ2Ugb2JqZWN0XG4gICAgY29uc3QgbWVzc2FnZU9iamVjdDogTWVzc2FnZSA9IHtcbiAgICAgIHNlbmRlcjogc2VuZGVyID8gc2VuZGVyIDogbWVtYmVyLFxuICAgICAgcmVjZWl2ZXJzOiByZWNlaXZlcnMsXG4gICAgICBtZXNzYWdlOiBtZXNzYWdlLFxuICAgICAgdGltZXN0YW1wOiBuZXcgRGF0ZSgpLnRvTG9jYWxlVGltZVN0cmluZygpLFxuICAgICAgZ3JvdXA6IGdyb3VwICE9PSB1bmRlZmluZWQgJiYgZ3JvdXAgIT09IG51bGwgPyBncm91cCA6IGZhbHNlLFxuICAgIH07XG5cbiAgICB0cnkge1xuICAgICAgLy8gQ2hlY2sgY28taG9zdCByZXNwb25zaWJpbGl0eSBmb3IgY2hhdFxuICAgICAgY2hhdFZhbHVlID0gY29Ib3N0UmVzcG9uc2liaWxpdHkuZmluZCgoaXRlbSkgPT4gaXRlbS5uYW1lID09PSAnY2hhdCcpPy52YWx1ZSA/PyBmYWxzZTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5lcnJvcihlcnJvcik7XG4gICAgfVxuXG4gICAgaWYgKGlzbGV2ZWwgPT09ICcyJyB8fCAoY29Ib3N0ID09PSBtZW1iZXIgJiYgY2hhdFZhbHVlID09PSB0cnVlKSkge1xuICAgICAgLy8gQWxsb3cgc2VuZGluZyBtZXNzYWdlXG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIENoZWNrIGlmIHVzZXIgaXMgYWxsb3dlZCB0byBzZW5kIGEgbWVzc2FnZSBpbiB0aGUgZXZlbnQgcm9vbVxuICAgICAgaWYgKCFjaGF0U2V0dGluZykge1xuICAgICAgICBzaG93QWxlcnQ/Lih7XG4gICAgICAgICAgbWVzc2FnZTogJ1lvdSBhcmUgbm90IGFsbG93ZWQgdG8gc2VuZCBhIG1lc3NhZ2UgaW4gdGhpcyBldmVudCByb29tJyxcbiAgICAgICAgICB0eXBlOiAnZGFuZ2VyJyxcbiAgICAgICAgICBkdXJhdGlvbjogMzAwMCxcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBTZW5kIHRoZSBtZXNzYWdlIHRvIHRoZSBzZXJ2ZXJcbiAgICBzb2NrZXQuZW1pdCgnc2VuZE1lc3NhZ2UnLCB7XG4gICAgICBtZXNzYWdlT2JqZWN0OiBtZXNzYWdlT2JqZWN0LFxuICAgICAgcm9vbU5hbWU6IHJvb21OYW1lLFxuICAgIH0pO1xuICB9XG59XG4iXX0=
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
/**
|
|
4
|
-
* Toggles the visibility of the participants modal.
|
|
5
|
-
*
|
|
6
|
-
* This method checks the current visibility state of the participants modal
|
|
7
|
-
* and updates it accordingly. If the modal is currently visible, it will be hidden.
|
|
8
|
-
* If it is hidden, it will be displayed.
|
|
9
|
-
*
|
|
10
|
-
* @param {LaunchParticipantsOptions} options - The options for toggling the participants modal.
|
|
11
|
-
* @param {Function} options.updateIsParticipantsModalVisible - Function to update the visibility state of the participants modal.
|
|
12
|
-
* @param {boolean} options.isParticipantsModalVisible - Current visibility state of the participants modal.
|
|
13
|
-
*
|
|
14
|
-
* @returns {void}
|
|
15
|
-
*
|
|
16
|
-
* @example
|
|
17
|
-
* ```typescript
|
|
18
|
-
* const launchParticipantsService = new LaunchParticipants();
|
|
19
|
-
* launchParticipantsService.launchParticipants({
|
|
20
|
-
* updateIsParticipantsModalVisible: (isVisible) => {
|
|
21
|
-
* console.log(`Participants modal is now ${isVisible ? 'visible' : 'hidden'}`);
|
|
22
|
-
* },
|
|
23
|
-
* isParticipantsModalVisible: false,
|
|
24
|
-
* });
|
|
25
|
-
* ```
|
|
26
|
-
*/
|
|
27
|
-
export class LaunchParticipants {
|
|
28
|
-
/**
|
|
29
|
-
* Toggles the visibility of the participants modal.
|
|
30
|
-
* @function
|
|
31
|
-
* @param {Object} options - The options object containing necessary variables and functions.
|
|
32
|
-
* @param {Function} options.updateIsParticipantsModalVisible - Function to update the visibility state of the participants modal.
|
|
33
|
-
* @param {boolean} options.isParticipantsModalVisible - Current visibility state of the participants modal.
|
|
34
|
-
*/
|
|
35
|
-
launchParticipants({ updateIsParticipantsModalVisible, isParticipantsModalVisible, }) {
|
|
36
|
-
updateIsParticipantsModalVisible(!isParticipantsModalVisible);
|
|
37
|
-
}
|
|
38
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: LaunchParticipants, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
39
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: LaunchParticipants, providedIn: 'root' });
|
|
40
|
-
}
|
|
41
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: LaunchParticipants, decorators: [{
|
|
42
|
-
type: Injectable,
|
|
43
|
-
args: [{
|
|
44
|
-
providedIn: 'root',
|
|
45
|
-
}]
|
|
46
|
-
}] });
|
|
47
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF1bmNoLXBhcnRpY2lwYW50cy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWVkaWFzZnUtYW5ndWxhci9zcmMvbGliL21ldGhvZHMvcGFydGljaXBhbnRzLW1ldGhvZHMvbGF1bmNoLXBhcnRpY2lwYW50cy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBUzNDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXVCRztBQU1ILE1BQU0sT0FBTyxrQkFBa0I7SUFDN0I7Ozs7OztPQU1HO0lBRUgsa0JBQWtCLENBQUMsRUFDakIsZ0NBQWdDLEVBQ2hDLDBCQUEwQixHQUNBO1FBQzFCLGdDQUFnQyxDQUFDLENBQUMsMEJBQTBCLENBQUMsQ0FBQztJQUNoRSxDQUFDO3VHQWRVLGtCQUFrQjsyR0FBbEIsa0JBQWtCLGNBRmpCLE1BQU07OzJGQUVQLGtCQUFrQjtrQkFIOUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5leHBvcnQgaW50ZXJmYWNlIExhdW5jaFBhcnRpY2lwYW50c09wdGlvbnMge1xuICB1cGRhdGVJc1BhcnRpY2lwYW50c01vZGFsVmlzaWJsZTogKGlzVmlzaWJsZTogYm9vbGVhbikgPT4gdm9pZDtcbiAgaXNQYXJ0aWNpcGFudHNNb2RhbFZpc2libGU6IGJvb2xlYW47XG59XG5cbi8vIEV4cG9ydCB0aGUgdHlwZSBkZWZpbml0aW9uIGZvciB0aGUgZnVuY3Rpb25cbmV4cG9ydCB0eXBlIExhdW5jaFBhcnRpY2lwYW50c1R5cGUgPSAob3B0aW9uczogTGF1bmNoUGFydGljaXBhbnRzT3B0aW9ucykgPT4gdm9pZDtcblxuLyoqXG4gKiBUb2dnbGVzIHRoZSB2aXNpYmlsaXR5IG9mIHRoZSBwYXJ0aWNpcGFudHMgbW9kYWwuXG4gKlxuICogVGhpcyBtZXRob2QgY2hlY2tzIHRoZSBjdXJyZW50IHZpc2liaWxpdHkgc3RhdGUgb2YgdGhlIHBhcnRpY2lwYW50cyBtb2RhbFxuICogYW5kIHVwZGF0ZXMgaXQgYWNjb3JkaW5nbHkuIElmIHRoZSBtb2RhbCBpcyBjdXJyZW50bHkgdmlzaWJsZSwgaXQgd2lsbCBiZSBoaWRkZW4uXG4gKiBJZiBpdCBpcyBoaWRkZW4sIGl0IHdpbGwgYmUgZGlzcGxheWVkLlxuICpcbiAqIEBwYXJhbSB7TGF1bmNoUGFydGljaXBhbnRzT3B0aW9uc30gb3B0aW9ucyAtIFRoZSBvcHRpb25zIGZvciB0b2dnbGluZyB0aGUgcGFydGljaXBhbnRzIG1vZGFsLlxuICogQHBhcmFtIHtGdW5jdGlvbn0gb3B0aW9ucy51cGRhdGVJc1BhcnRpY2lwYW50c01vZGFsVmlzaWJsZSAtIEZ1bmN0aW9uIHRvIHVwZGF0ZSB0aGUgdmlzaWJpbGl0eSBzdGF0ZSBvZiB0aGUgcGFydGljaXBhbnRzIG1vZGFsLlxuICogQHBhcmFtIHtib29sZWFufSBvcHRpb25zLmlzUGFydGljaXBhbnRzTW9kYWxWaXNpYmxlIC0gQ3VycmVudCB2aXNpYmlsaXR5IHN0YXRlIG9mIHRoZSBwYXJ0aWNpcGFudHMgbW9kYWwuXG4gKlxuICogQHJldHVybnMge3ZvaWR9XG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IGxhdW5jaFBhcnRpY2lwYW50c1NlcnZpY2UgPSBuZXcgTGF1bmNoUGFydGljaXBhbnRzKCk7XG4gKiBsYXVuY2hQYXJ0aWNpcGFudHNTZXJ2aWNlLmxhdW5jaFBhcnRpY2lwYW50cyh7XG4gKiAgIHVwZGF0ZUlzUGFydGljaXBhbnRzTW9kYWxWaXNpYmxlOiAoaXNWaXNpYmxlKSA9PiB7XG4gKiAgICAgY29uc29sZS5sb2coYFBhcnRpY2lwYW50cyBtb2RhbCBpcyBub3cgJHtpc1Zpc2libGUgPyAndmlzaWJsZScgOiAnaGlkZGVuJ31gKTtcbiAqICAgfSxcbiAqICAgaXNQYXJ0aWNpcGFudHNNb2RhbFZpc2libGU6IGZhbHNlLFxuICogfSk7XG4gKiBgYGBcbiAqL1xuXG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBMYXVuY2hQYXJ0aWNpcGFudHMge1xuICAvKipcbiAgICogVG9nZ2xlcyB0aGUgdmlzaWJpbGl0eSBvZiB0aGUgcGFydGljaXBhbnRzIG1vZGFsLlxuICAgKiBAZnVuY3Rpb25cbiAgICogQHBhcmFtIHtPYmplY3R9IG9wdGlvbnMgLSBUaGUgb3B0aW9ucyBvYmplY3QgY29udGFpbmluZyBuZWNlc3NhcnkgdmFyaWFibGVzIGFuZCBmdW5jdGlvbnMuXG4gICAqIEBwYXJhbSB7RnVuY3Rpb259IG9wdGlvbnMudXBkYXRlSXNQYXJ0aWNpcGFudHNNb2RhbFZpc2libGUgLSBGdW5jdGlvbiB0byB1cGRhdGUgdGhlIHZpc2liaWxpdHkgc3RhdGUgb2YgdGhlIHBhcnRpY2lwYW50cyBtb2RhbC5cbiAgICogQHBhcmFtIHtib29sZWFufSBvcHRpb25zLmlzUGFydGljaXBhbnRzTW9kYWxWaXNpYmxlIC0gQ3VycmVudCB2aXNpYmlsaXR5IHN0YXRlIG9mIHRoZSBwYXJ0aWNpcGFudHMgbW9kYWwuXG4gICAqL1xuXG4gIGxhdW5jaFBhcnRpY2lwYW50cyh7XG4gICAgdXBkYXRlSXNQYXJ0aWNpcGFudHNNb2RhbFZpc2libGUsXG4gICAgaXNQYXJ0aWNpcGFudHNNb2RhbFZpc2libGUsXG4gIH06IExhdW5jaFBhcnRpY2lwYW50c09wdGlvbnMpOiB2b2lkIHtcbiAgICB1cGRhdGVJc1BhcnRpY2lwYW50c01vZGFsVmlzaWJsZSghaXNQYXJ0aWNpcGFudHNNb2RhbFZpc2libGUpO1xuICB9XG59XG4iXX0=
|
|
@@ -1,98 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
/**
|
|
4
|
-
* Sends a direct message to a participant if certain conditions are met.
|
|
5
|
-
*
|
|
6
|
-
* This method checks the current user's level and their co-host responsibilities
|
|
7
|
-
* to determine if they are allowed to send a direct message to a specified participant.
|
|
8
|
-
* If the user has the appropriate permissions, the method updates the direct message
|
|
9
|
-
* details and opens the messages modal. If the user is not allowed to send the message,
|
|
10
|
-
* an alert is displayed.
|
|
11
|
-
*
|
|
12
|
-
* @param {MessageParticipantsOptions} options - The options for sending a message to a participant.
|
|
13
|
-
* @param {CoHostResponsibility[]} options.coHostResponsibility - Array of responsibilities assigned to the co-host.
|
|
14
|
-
* @param {Participant} options.participant - The participant to whom the message is to be sent.
|
|
15
|
-
* @param {string} options.member - The current member attempting to send the message.
|
|
16
|
-
* @param {string} options.islevel - The level of the current member.
|
|
17
|
-
* @param {Function} [options.showAlert] - Function to show an alert message if the message cannot be sent.
|
|
18
|
-
* @param {string} options.coHost - The co-host member.
|
|
19
|
-
* @param {Function} options.updateIsMessagesModalVisible - Function to update the visibility of the messages modal.
|
|
20
|
-
* @param {Function} options.updateDirectMessageDetails - Function to update the details of the direct message.
|
|
21
|
-
* @param {Function} options.updateStartDirectMessage - Function to start the direct message.
|
|
22
|
-
*
|
|
23
|
-
* @returns {void}
|
|
24
|
-
*
|
|
25
|
-
* @example
|
|
26
|
-
* ```typescript
|
|
27
|
-
* const messageService = new MessageParticipants();
|
|
28
|
-
* messageService.messageParticipants({
|
|
29
|
-
* coHostResponsibility: [{ name: 'chat', value: true }],
|
|
30
|
-
* participant: { name: 'John', islevel: '1' },
|
|
31
|
-
* member: 'Alice',
|
|
32
|
-
* islevel: '1',
|
|
33
|
-
* showAlert: ({ message, type, duration }) => {
|
|
34
|
-
* console.log(`Alert: ${message} - Type: ${type} - Duration: ${duration}`);
|
|
35
|
-
* },
|
|
36
|
-
* coHost: 'Bob',
|
|
37
|
-
* updateIsMessagesModalVisible: (isVisible) => {
|
|
38
|
-
* console.log(`Messages modal is now ${isVisible ? 'visible' : 'hidden'}`);
|
|
39
|
-
* },
|
|
40
|
-
* updateDirectMessageDetails: (participant) => {
|
|
41
|
-
* console.log(`Direct messaging: ${participant.name}`);
|
|
42
|
-
* },
|
|
43
|
-
* updateStartDirectMessage: (start) => {
|
|
44
|
-
* console.log(`Direct messaging started: ${start}`);
|
|
45
|
-
* },
|
|
46
|
-
* });
|
|
47
|
-
* ```
|
|
48
|
-
*/
|
|
49
|
-
export class MessageParticipants {
|
|
50
|
-
/**
|
|
51
|
-
* Sends a direct message to a participant if certain conditions are met.
|
|
52
|
-
*s
|
|
53
|
-
* @param coHostResponsibility - Array of responsibilities assigned to the co-host.
|
|
54
|
-
* @param participant - The participant to whom the message is to be sent.
|
|
55
|
-
* @param member - The current member attempting to send the message.
|
|
56
|
-
* @param islevel - The level of the current member.
|
|
57
|
-
* @param showAlert - Function to show an alert message.
|
|
58
|
-
* @param coHost - The co-host member.
|
|
59
|
-
* @param updateIsMessagesModalVisible - Function to update the visibility of the messages modal.
|
|
60
|
-
* @param updateDirectMessageDetails - Function to update the details of the direct message.
|
|
61
|
-
* @param updateStartDirectMessage - Function to start the direct message.
|
|
62
|
-
*
|
|
63
|
-
* @returns void
|
|
64
|
-
*/
|
|
65
|
-
messageParticipants({ coHostResponsibility, participant, member, islevel, showAlert, coHost, updateIsMessagesModalVisible, updateDirectMessageDetails, updateStartDirectMessage, }) {
|
|
66
|
-
let chatValue = false;
|
|
67
|
-
try {
|
|
68
|
-
chatValue = coHostResponsibility.find((item) => item.name === 'chat')?.value ?? false;
|
|
69
|
-
}
|
|
70
|
-
catch (error) {
|
|
71
|
-
console.error(error);
|
|
72
|
-
}
|
|
73
|
-
if (islevel === '2' || (coHost === member && chatValue === true)) {
|
|
74
|
-
if (participant.islevel !== '2') {
|
|
75
|
-
updateDirectMessageDetails(participant);
|
|
76
|
-
updateStartDirectMessage(true);
|
|
77
|
-
updateIsMessagesModalVisible(true);
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
else {
|
|
81
|
-
showAlert?.({
|
|
82
|
-
message: 'You are not allowed to send this message',
|
|
83
|
-
type: 'danger',
|
|
84
|
-
duration: 3000,
|
|
85
|
-
});
|
|
86
|
-
return;
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: MessageParticipants, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
90
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: MessageParticipants, providedIn: 'root' });
|
|
91
|
-
}
|
|
92
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: MessageParticipants, decorators: [{
|
|
93
|
-
type: Injectable,
|
|
94
|
-
args: [{
|
|
95
|
-
providedIn: 'root',
|
|
96
|
-
}]
|
|
97
|
-
}] });
|
|
98
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZS1wYXJ0aWNpcGFudHMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21lZGlhc2Z1LWFuZ3VsYXIvc3JjL2xpYi9tZXRob2RzL3BhcnRpY2lwYW50cy1tZXRob2RzL21lc3NhZ2UtcGFydGljaXBhbnRzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFpQjNDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E2Q0c7QUFNSCxNQUFNLE9BQU8sbUJBQW1CO0lBQzlCOzs7Ozs7Ozs7Ozs7OztPQWNHO0lBQ0gsbUJBQW1CLENBQUMsRUFDbEIsb0JBQW9CLEVBQ3BCLFdBQVcsRUFDWCxNQUFNLEVBQ04sT0FBTyxFQUNQLFNBQVMsRUFDVCxNQUFNLEVBQ04sNEJBQTRCLEVBQzVCLDBCQUEwQixFQUMxQix3QkFBd0IsR0FDRztRQUMzQixJQUFJLFNBQVMsR0FBRyxLQUFLLENBQUM7UUFFdEIsSUFBSSxDQUFDO1lBQ0gsU0FBUyxHQUFHLG9CQUFvQixDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxNQUFNLENBQUMsRUFBRSxLQUFLLElBQUksS0FBSyxDQUFDO1FBQ3hGLENBQUM7UUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1lBQ2YsT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN2QixDQUFDO1FBRUQsSUFBSSxPQUFPLEtBQUssR0FBRyxJQUFJLENBQUMsTUFBTSxLQUFLLE1BQU0sSUFBSSxTQUFTLEtBQUssSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUNqRSxJQUFJLFdBQVcsQ0FBQyxPQUFPLEtBQUssR0FBRyxFQUFFLENBQUM7Z0JBQ2hDLDBCQUEwQixDQUFDLFdBQVcsQ0FBQyxDQUFDO2dCQUN4Qyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDL0IsNEJBQTRCLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDckMsQ0FBQztRQUNILENBQUM7YUFBTSxDQUFDO1lBQ04sU0FBUyxFQUFFLENBQUM7Z0JBQ1YsT0FBTyxFQUFFLDBDQUEwQztnQkFDbkQsSUFBSSxFQUFFLFFBQVE7Z0JBQ2QsUUFBUSxFQUFFLElBQUk7YUFDZixDQUFDLENBQUM7WUFFSCxPQUFPO1FBQ1QsQ0FBQztJQUNILENBQUM7dUdBbERVLG1CQUFtQjsyR0FBbkIsbUJBQW1CLGNBRmxCLE1BQU07OzJGQUVQLG1CQUFtQjtrQkFIL0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBQYXJ0aWNpcGFudCwgQ29Ib3N0UmVzcG9uc2liaWxpdHksIFNob3dBbGVydCB9IGZyb20gJy4uLy4uL0B0eXBlcy90eXBlcyc7XG5leHBvcnQgaW50ZXJmYWNlIE1lc3NhZ2VQYXJ0aWNpcGFudHNPcHRpb25zIHtcbiAgY29Ib3N0UmVzcG9uc2liaWxpdHk6IENvSG9zdFJlc3BvbnNpYmlsaXR5W107XG4gIHBhcnRpY2lwYW50OiBQYXJ0aWNpcGFudDtcbiAgbWVtYmVyOiBzdHJpbmc7XG4gIGlzbGV2ZWw6IHN0cmluZztcbiAgc2hvd0FsZXJ0PzogU2hvd0FsZXJ0O1xuICBjb0hvc3Q6IHN0cmluZztcbiAgdXBkYXRlSXNNZXNzYWdlc01vZGFsVmlzaWJsZTogKGlzVmlzaWJsZTogYm9vbGVhbikgPT4gdm9pZDtcbiAgdXBkYXRlRGlyZWN0TWVzc2FnZURldGFpbHM6IChwYXJ0aWNpcGFudDogUGFydGljaXBhbnQgfCBudWxsKSA9PiB2b2lkO1xuICB1cGRhdGVTdGFydERpcmVjdE1lc3NhZ2U6IChzdGFydDogYm9vbGVhbikgPT4gdm9pZDtcbn1cblxuLy8gRXhwb3J0IHRoZSB0eXBlIGRlZmluaXRpb24gZm9yIHRoZSBmdW5jdGlvblxuZXhwb3J0IHR5cGUgTWVzc2FnZVBhcnRpY2lwYW50c1R5cGUgPSAob3B0aW9uczogTWVzc2FnZVBhcnRpY2lwYW50c09wdGlvbnMpID0+IHZvaWQ7XG5cbi8qKlxuICogU2VuZHMgYSBkaXJlY3QgbWVzc2FnZSB0byBhIHBhcnRpY2lwYW50IGlmIGNlcnRhaW4gY29uZGl0aW9ucyBhcmUgbWV0LlxuICpcbiAqIFRoaXMgbWV0aG9kIGNoZWNrcyB0aGUgY3VycmVudCB1c2VyJ3MgbGV2ZWwgYW5kIHRoZWlyIGNvLWhvc3QgcmVzcG9uc2liaWxpdGllc1xuICogdG8gZGV0ZXJtaW5lIGlmIHRoZXkgYXJlIGFsbG93ZWQgdG8gc2VuZCBhIGRpcmVjdCBtZXNzYWdlIHRvIGEgc3BlY2lmaWVkIHBhcnRpY2lwYW50LlxuICogSWYgdGhlIHVzZXIgaGFzIHRoZSBhcHByb3ByaWF0ZSBwZXJtaXNzaW9ucywgdGhlIG1ldGhvZCB1cGRhdGVzIHRoZSBkaXJlY3QgbWVzc2FnZVxuICogZGV0YWlscyBhbmQgb3BlbnMgdGhlIG1lc3NhZ2VzIG1vZGFsLiBJZiB0aGUgdXNlciBpcyBub3QgYWxsb3dlZCB0byBzZW5kIHRoZSBtZXNzYWdlLFxuICogYW4gYWxlcnQgaXMgZGlzcGxheWVkLlxuICpcbiAqIEBwYXJhbSB7TWVzc2FnZVBhcnRpY2lwYW50c09wdGlvbnN9IG9wdGlvbnMgLSBUaGUgb3B0aW9ucyBmb3Igc2VuZGluZyBhIG1lc3NhZ2UgdG8gYSBwYXJ0aWNpcGFudC5cbiAqIEBwYXJhbSB7Q29Ib3N0UmVzcG9uc2liaWxpdHlbXX0gb3B0aW9ucy5jb0hvc3RSZXNwb25zaWJpbGl0eSAtIEFycmF5IG9mIHJlc3BvbnNpYmlsaXRpZXMgYXNzaWduZWQgdG8gdGhlIGNvLWhvc3QuXG4gKiBAcGFyYW0ge1BhcnRpY2lwYW50fSBvcHRpb25zLnBhcnRpY2lwYW50IC0gVGhlIHBhcnRpY2lwYW50IHRvIHdob20gdGhlIG1lc3NhZ2UgaXMgdG8gYmUgc2VudC5cbiAqIEBwYXJhbSB7c3RyaW5nfSBvcHRpb25zLm1lbWJlciAtIFRoZSBjdXJyZW50IG1lbWJlciBhdHRlbXB0aW5nIHRvIHNlbmQgdGhlIG1lc3NhZ2UuXG4gKiBAcGFyYW0ge3N0cmluZ30gb3B0aW9ucy5pc2xldmVsIC0gVGhlIGxldmVsIG9mIHRoZSBjdXJyZW50IG1lbWJlci5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IFtvcHRpb25zLnNob3dBbGVydF0gLSBGdW5jdGlvbiB0byBzaG93IGFuIGFsZXJ0IG1lc3NhZ2UgaWYgdGhlIG1lc3NhZ2UgY2Fubm90IGJlIHNlbnQuXG4gKiBAcGFyYW0ge3N0cmluZ30gb3B0aW9ucy5jb0hvc3QgLSBUaGUgY28taG9zdCBtZW1iZXIuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBvcHRpb25zLnVwZGF0ZUlzTWVzc2FnZXNNb2RhbFZpc2libGUgLSBGdW5jdGlvbiB0byB1cGRhdGUgdGhlIHZpc2liaWxpdHkgb2YgdGhlIG1lc3NhZ2VzIG1vZGFsLlxuICogQHBhcmFtIHtGdW5jdGlvbn0gb3B0aW9ucy51cGRhdGVEaXJlY3RNZXNzYWdlRGV0YWlscyAtIEZ1bmN0aW9uIHRvIHVwZGF0ZSB0aGUgZGV0YWlscyBvZiB0aGUgZGlyZWN0IG1lc3NhZ2UuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBvcHRpb25zLnVwZGF0ZVN0YXJ0RGlyZWN0TWVzc2FnZSAtIEZ1bmN0aW9uIHRvIHN0YXJ0IHRoZSBkaXJlY3QgbWVzc2FnZS5cbiAqXG4gKiBAcmV0dXJucyB7dm9pZH1cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgbWVzc2FnZVNlcnZpY2UgPSBuZXcgTWVzc2FnZVBhcnRpY2lwYW50cygpO1xuICogbWVzc2FnZVNlcnZpY2UubWVzc2FnZVBhcnRpY2lwYW50cyh7XG4gKiAgIGNvSG9zdFJlc3BvbnNpYmlsaXR5OiBbeyBuYW1lOiAnY2hhdCcsIHZhbHVlOiB0cnVlIH1dLFxuICogICBwYXJ0aWNpcGFudDogeyBuYW1lOiAnSm9obicsIGlzbGV2ZWw6ICcxJyB9LFxuICogICBtZW1iZXI6ICdBbGljZScsXG4gKiAgIGlzbGV2ZWw6ICcxJyxcbiAqICAgc2hvd0FsZXJ0OiAoeyBtZXNzYWdlLCB0eXBlLCBkdXJhdGlvbiB9KSA9PiB7XG4gKiAgICAgY29uc29sZS5sb2coYEFsZXJ0OiAke21lc3NhZ2V9IC0gVHlwZTogJHt0eXBlfSAtIER1cmF0aW9uOiAke2R1cmF0aW9ufWApO1xuICogICB9LFxuICogICBjb0hvc3Q6ICdCb2InLFxuICogICB1cGRhdGVJc01lc3NhZ2VzTW9kYWxWaXNpYmxlOiAoaXNWaXNpYmxlKSA9PiB7XG4gKiAgICAgY29uc29sZS5sb2coYE1lc3NhZ2VzIG1vZGFsIGlzIG5vdyAke2lzVmlzaWJsZSA/ICd2aXNpYmxlJyA6ICdoaWRkZW4nfWApO1xuICogICB9LFxuICogICB1cGRhdGVEaXJlY3RNZXNzYWdlRGV0YWlsczogKHBhcnRpY2lwYW50KSA9PiB7XG4gKiAgICAgY29uc29sZS5sb2coYERpcmVjdCBtZXNzYWdpbmc6ICR7cGFydGljaXBhbnQubmFtZX1gKTtcbiAqICAgfSxcbiAqICAgdXBkYXRlU3RhcnREaXJlY3RNZXNzYWdlOiAoc3RhcnQpID0+IHtcbiAqICAgICBjb25zb2xlLmxvZyhgRGlyZWN0IG1lc3NhZ2luZyBzdGFydGVkOiAke3N0YXJ0fWApO1xuICogICB9LFxuICogfSk7XG4gKiBgYGBcbiAqL1xuXG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBNZXNzYWdlUGFydGljaXBhbnRzIHtcbiAgLyoqXG4gICAqIFNlbmRzIGEgZGlyZWN0IG1lc3NhZ2UgdG8gYSBwYXJ0aWNpcGFudCBpZiBjZXJ0YWluIGNvbmRpdGlvbnMgYXJlIG1ldC5cbiAgICpzXG4gICAqIEBwYXJhbSBjb0hvc3RSZXNwb25zaWJpbGl0eSAtIEFycmF5IG9mIHJlc3BvbnNpYmlsaXRpZXMgYXNzaWduZWQgdG8gdGhlIGNvLWhvc3QuXG4gICAqIEBwYXJhbSBwYXJ0aWNpcGFudCAtIFRoZSBwYXJ0aWNpcGFudCB0byB3aG9tIHRoZSBtZXNzYWdlIGlzIHRvIGJlIHNlbnQuXG4gICAqIEBwYXJhbSBtZW1iZXIgLSBUaGUgY3VycmVudCBtZW1iZXIgYXR0ZW1wdGluZyB0byBzZW5kIHRoZSBtZXNzYWdlLlxuICAgKiBAcGFyYW0gaXNsZXZlbCAtIFRoZSBsZXZlbCBvZiB0aGUgY3VycmVudCBtZW1iZXIuXG4gICAqIEBwYXJhbSBzaG93QWxlcnQgLSBGdW5jdGlvbiB0byBzaG93IGFuIGFsZXJ0IG1lc3NhZ2UuXG4gICAqIEBwYXJhbSBjb0hvc3QgLSBUaGUgY28taG9zdCBtZW1iZXIuXG4gICAqIEBwYXJhbSB1cGRhdGVJc01lc3NhZ2VzTW9kYWxWaXNpYmxlIC0gRnVuY3Rpb24gdG8gdXBkYXRlIHRoZSB2aXNpYmlsaXR5IG9mIHRoZSBtZXNzYWdlcyBtb2RhbC5cbiAgICogQHBhcmFtIHVwZGF0ZURpcmVjdE1lc3NhZ2VEZXRhaWxzIC0gRnVuY3Rpb24gdG8gdXBkYXRlIHRoZSBkZXRhaWxzIG9mIHRoZSBkaXJlY3QgbWVzc2FnZS5cbiAgICogQHBhcmFtIHVwZGF0ZVN0YXJ0RGlyZWN0TWVzc2FnZSAtIEZ1bmN0aW9uIHRvIHN0YXJ0IHRoZSBkaXJlY3QgbWVzc2FnZS5cbiAgICpcbiAgICogQHJldHVybnMgdm9pZFxuICAgKi9cbiAgbWVzc2FnZVBhcnRpY2lwYW50cyh7XG4gICAgY29Ib3N0UmVzcG9uc2liaWxpdHksXG4gICAgcGFydGljaXBhbnQsXG4gICAgbWVtYmVyLFxuICAgIGlzbGV2ZWwsXG4gICAgc2hvd0FsZXJ0LFxuICAgIGNvSG9zdCxcbiAgICB1cGRhdGVJc01lc3NhZ2VzTW9kYWxWaXNpYmxlLFxuICAgIHVwZGF0ZURpcmVjdE1lc3NhZ2VEZXRhaWxzLFxuICAgIHVwZGF0ZVN0YXJ0RGlyZWN0TWVzc2FnZSxcbiAgfTogTWVzc2FnZVBhcnRpY2lwYW50c09wdGlvbnMpOiB2b2lkIHtcbiAgICBsZXQgY2hhdFZhbHVlID0gZmFsc2U7XG5cbiAgICB0cnkge1xuICAgICAgY2hhdFZhbHVlID0gY29Ib3N0UmVzcG9uc2liaWxpdHkuZmluZCgoaXRlbSkgPT4gaXRlbS5uYW1lID09PSAnY2hhdCcpPy52YWx1ZSA/PyBmYWxzZTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5lcnJvcihlcnJvcik7XG4gICAgfVxuXG4gICAgaWYgKGlzbGV2ZWwgPT09ICcyJyB8fCAoY29Ib3N0ID09PSBtZW1iZXIgJiYgY2hhdFZhbHVlID09PSB0cnVlKSkge1xuICAgICAgaWYgKHBhcnRpY2lwYW50LmlzbGV2ZWwgIT09ICcyJykge1xuICAgICAgICB1cGRhdGVEaXJlY3RNZXNzYWdlRGV0YWlscyhwYXJ0aWNpcGFudCk7XG4gICAgICAgIHVwZGF0ZVN0YXJ0RGlyZWN0TWVzc2FnZSh0cnVlKTtcbiAgICAgICAgdXBkYXRlSXNNZXNzYWdlc01vZGFsVmlzaWJsZSh0cnVlKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgc2hvd0FsZXJ0Py4oe1xuICAgICAgICBtZXNzYWdlOiAnWW91IGFyZSBub3QgYWxsb3dlZCB0byBzZW5kIHRoaXMgbWVzc2FnZScsXG4gICAgICAgIHR5cGU6ICdkYW5nZXInLFxuICAgICAgICBkdXJhdGlvbjogMzAwMCxcbiAgICAgIH0pO1xuXG4gICAgICByZXR1cm47XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
@@ -1,96 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
/**
|
|
4
|
-
* Mutes a participant in a media session if certain conditions are met.
|
|
5
|
-
*
|
|
6
|
-
* This method checks the current user's level and their co-host responsibilities
|
|
7
|
-
* to determine if they are allowed to mute a specified participant. If allowed,
|
|
8
|
-
* the method emits a socket event to mute the participant. If not allowed, an alert
|
|
9
|
-
* is displayed.
|
|
10
|
-
*
|
|
11
|
-
* @param {MuteParticipantsOptions} options - The options for muting participants.
|
|
12
|
-
* @param {Socket} options.socket - The socket instance for communication.
|
|
13
|
-
* @param {CoHostResponsibility[]} options.coHostResponsibility - List of co-host responsibilities.
|
|
14
|
-
* @param {Participant} options.participant - The participant to be muted.
|
|
15
|
-
* @param {string} options.member - The current member attempting to mute.
|
|
16
|
-
* @param {string} options.islevel - The level of the current member.
|
|
17
|
-
* @param {Function} [options.showAlert] - Optional function to show alerts.
|
|
18
|
-
* @param {string} options.coHost - The co-host information.
|
|
19
|
-
* @param {string} options.roomName - The name of the room.
|
|
20
|
-
*
|
|
21
|
-
* @returns {Promise<void>} A promise that resolves when the participant is muted.
|
|
22
|
-
*
|
|
23
|
-
* @throws Will log an error if there is an issue accessing co-host responsibilities.
|
|
24
|
-
*
|
|
25
|
-
* @example
|
|
26
|
-
* ```typescript
|
|
27
|
-
* const muteService = new MuteParticipants();
|
|
28
|
-
* muteService.muteParticipants({
|
|
29
|
-
* socket: socketInstance,
|
|
30
|
-
* coHostResponsibility: [{ name: 'media', value: true }],
|
|
31
|
-
* participant: { id: '123', name: 'John', islevel: '1', muted: false },
|
|
32
|
-
* member: 'Alice',
|
|
33
|
-
* islevel: '1',
|
|
34
|
-
* showAlert: ({ message, type }) => {
|
|
35
|
-
* console.log(`Alert: ${message} - Type: ${type}`);
|
|
36
|
-
* },
|
|
37
|
-
* coHost: 'Bob',
|
|
38
|
-
* roomName: 'room1',
|
|
39
|
-
* });
|
|
40
|
-
* ```
|
|
41
|
-
*/
|
|
42
|
-
export class MuteParticipants {
|
|
43
|
-
/**
|
|
44
|
-
* Mutes a participant in a media session if certain conditions are met.
|
|
45
|
-
*
|
|
46
|
-
* @param {Object} options - The options for muting participants.
|
|
47
|
-
* @param {Socket} options.socket - The socket instance for communication.
|
|
48
|
-
* @param {Array} options.coHostResponsibility - List of co-host responsibilities.
|
|
49
|
-
* @param {Object} options.participant - The participant to be muted.
|
|
50
|
-
* @param {Object} options.member - The current member attempting to mute.
|
|
51
|
-
* @param {string} options.islevel - The level of the current member.
|
|
52
|
-
* @param {Function} [options.showAlert] - Optional function to show alerts.
|
|
53
|
-
* @param {Object} options.coHost - The co-host information.
|
|
54
|
-
* @param {string} options.roomName - The name of the room.
|
|
55
|
-
*
|
|
56
|
-
* @returns {Promise<void>} A promise that resolves when the participant is muted.
|
|
57
|
-
*
|
|
58
|
-
* @throws Will log an error if there is an issue accessing co-host responsibilities.
|
|
59
|
-
*/
|
|
60
|
-
async muteParticipants({ socket, coHostResponsibility, participant, member, islevel, showAlert, coHost, roomName, }) {
|
|
61
|
-
let mediaValue = false;
|
|
62
|
-
try {
|
|
63
|
-
mediaValue = coHostResponsibility.find((item) => item.name === 'media')?.value ?? false;
|
|
64
|
-
}
|
|
65
|
-
catch (error) {
|
|
66
|
-
console.error(error);
|
|
67
|
-
}
|
|
68
|
-
if (islevel === '2' || (coHost === member && mediaValue === true)) {
|
|
69
|
-
if (!participant.muted && participant.islevel !== '2') {
|
|
70
|
-
const participantId = participant.id;
|
|
71
|
-
socket.emit('controlMedia', {
|
|
72
|
-
participantId,
|
|
73
|
-
participantName: participant.name,
|
|
74
|
-
type: 'all',
|
|
75
|
-
roomName,
|
|
76
|
-
});
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
else {
|
|
80
|
-
showAlert?.({
|
|
81
|
-
message: 'You are not allowed to mute other participants',
|
|
82
|
-
type: 'danger',
|
|
83
|
-
duration: 3000,
|
|
84
|
-
});
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: MuteParticipants, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
88
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: MuteParticipants, providedIn: 'root' });
|
|
89
|
-
}
|
|
90
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: MuteParticipants, decorators: [{
|
|
91
|
-
type: Injectable,
|
|
92
|
-
args: [{
|
|
93
|
-
providedIn: 'root',
|
|
94
|
-
}]
|
|
95
|
-
}] });
|
|
96
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXV0ZS1wYXJ0aWNpcGFudHMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21lZGlhc2Z1LWFuZ3VsYXIvc3JjL2xpYi9tZXRob2RzL3BhcnRpY2lwYW50cy1tZXRob2RzL211dGUtcGFydGljaXBhbnRzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFpQjNDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXNDRztBQU1ILE1BQU0sT0FBTyxnQkFBZ0I7SUFDM0I7Ozs7Ozs7Ozs7Ozs7Ozs7T0FnQkc7SUFFSCxLQUFLLENBQUMsZ0JBQWdCLENBQUMsRUFDckIsTUFBTSxFQUNOLG9CQUFvQixFQUNwQixXQUFXLEVBQ1gsTUFBTSxFQUNOLE9BQU8sRUFDUCxTQUFTLEVBQ1QsTUFBTSxFQUNOLFFBQVEsR0FDZ0I7UUFDeEIsSUFBSSxVQUFVLEdBQUcsS0FBSyxDQUFDO1FBRXZCLElBQUksQ0FBQztZQUNILFVBQVUsR0FBRyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssT0FBTyxDQUFDLEVBQUUsS0FBSyxJQUFJLEtBQUssQ0FBQztRQUMxRixDQUFDO1FBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztZQUNmLE9BQU8sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdkIsQ0FBQztRQUVELElBQUksT0FBTyxLQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sS0FBSyxNQUFNLElBQUksVUFBVSxLQUFLLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDbEUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLElBQUksV0FBVyxDQUFDLE9BQU8sS0FBSyxHQUFHLEVBQUUsQ0FBQztnQkFDdEQsTUFBTSxhQUFhLEdBQUcsV0FBVyxDQUFDLEVBQUUsQ0FBQztnQkFDckMsTUFBTSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUU7b0JBQzFCLGFBQWE7b0JBQ2IsZUFBZSxFQUFFLFdBQVcsQ0FBQyxJQUFJO29CQUNqQyxJQUFJLEVBQUUsS0FBSztvQkFDWCxRQUFRO2lCQUNULENBQUMsQ0FBQztZQUNMLENBQUM7UUFDSCxDQUFDO2FBQU0sQ0FBQztZQUNOLFNBQVMsRUFBRSxDQUFDO2dCQUNWLE9BQU8sRUFBRSxnREFBZ0Q7Z0JBQ3pELElBQUksRUFBRSxRQUFRO2dCQUNkLFFBQVEsRUFBRSxJQUFJO2FBQ2YsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztJQUNILENBQUM7dUdBdERVLGdCQUFnQjsyR0FBaEIsZ0JBQWdCLGNBRmYsTUFBTTs7MkZBRVAsZ0JBQWdCO2tCQUg1QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNvY2tldCB9IGZyb20gJ3NvY2tldC5pby1jbGllbnQnO1xuaW1wb3J0IHsgUGFydGljaXBhbnQsIENvSG9zdFJlc3BvbnNpYmlsaXR5LCBTaG93QWxlcnQgfSBmcm9tICcuLi8uLi9AdHlwZXMvdHlwZXMnO1xuZXhwb3J0IGludGVyZmFjZSBNdXRlUGFydGljaXBhbnRzT3B0aW9ucyB7XG4gIHNvY2tldDogU29ja2V0O1xuICBjb0hvc3RSZXNwb25zaWJpbGl0eTogQ29Ib3N0UmVzcG9uc2liaWxpdHlbXTtcbiAgcGFydGljaXBhbnQ6IFBhcnRpY2lwYW50O1xuICBtZW1iZXI6IHN0cmluZztcbiAgaXNsZXZlbDogc3RyaW5nO1xuICBzaG93QWxlcnQ/OiBTaG93QWxlcnQ7XG4gIGNvSG9zdDogc3RyaW5nO1xuICByb29tTmFtZTogc3RyaW5nO1xufVxuXG4vLyBFeHBvcnQgdGhlIHR5cGUgZGVmaW5pdGlvbiBmb3IgdGhlIGZ1bmN0aW9uXG5leHBvcnQgdHlwZSBNdXRlUGFydGljaXBhbnRzVHlwZSA9IChvcHRpb25zOiBNdXRlUGFydGljaXBhbnRzT3B0aW9ucykgPT4gUHJvbWlzZTx2b2lkPjtcblxuLyoqXG4gKiBNdXRlcyBhIHBhcnRpY2lwYW50IGluIGEgbWVkaWEgc2Vzc2lvbiBpZiBjZXJ0YWluIGNvbmRpdGlvbnMgYXJlIG1ldC5cbiAqXG4gKiBUaGlzIG1ldGhvZCBjaGVja3MgdGhlIGN1cnJlbnQgdXNlcidzIGxldmVsIGFuZCB0aGVpciBjby1ob3N0IHJlc3BvbnNpYmlsaXRpZXNcbiAqIHRvIGRldGVybWluZSBpZiB0aGV5IGFyZSBhbGxvd2VkIHRvIG11dGUgYSBzcGVjaWZpZWQgcGFydGljaXBhbnQuIElmIGFsbG93ZWQsXG4gKiB0aGUgbWV0aG9kIGVtaXRzIGEgc29ja2V0IGV2ZW50IHRvIG11dGUgdGhlIHBhcnRpY2lwYW50LiBJZiBub3QgYWxsb3dlZCwgYW4gYWxlcnRcbiAqIGlzIGRpc3BsYXllZC5cbiAqXG4gKiBAcGFyYW0ge011dGVQYXJ0aWNpcGFudHNPcHRpb25zfSBvcHRpb25zIC0gVGhlIG9wdGlvbnMgZm9yIG11dGluZyBwYXJ0aWNpcGFudHMuXG4gKiBAcGFyYW0ge1NvY2tldH0gb3B0aW9ucy5zb2NrZXQgLSBUaGUgc29ja2V0IGluc3RhbmNlIGZvciBjb21tdW5pY2F0aW9uLlxuICogQHBhcmFtIHtDb0hvc3RSZXNwb25zaWJpbGl0eVtdfSBvcHRpb25zLmNvSG9zdFJlc3BvbnNpYmlsaXR5IC0gTGlzdCBvZiBjby1ob3N0IHJlc3BvbnNpYmlsaXRpZXMuXG4gKiBAcGFyYW0ge1BhcnRpY2lwYW50fSBvcHRpb25zLnBhcnRpY2lwYW50IC0gVGhlIHBhcnRpY2lwYW50IHRvIGJlIG11dGVkLlxuICogQHBhcmFtIHtzdHJpbmd9IG9wdGlvbnMubWVtYmVyIC0gVGhlIGN1cnJlbnQgbWVtYmVyIGF0dGVtcHRpbmcgdG8gbXV0ZS5cbiAqIEBwYXJhbSB7c3RyaW5nfSBvcHRpb25zLmlzbGV2ZWwgLSBUaGUgbGV2ZWwgb2YgdGhlIGN1cnJlbnQgbWVtYmVyLlxuICogQHBhcmFtIHtGdW5jdGlvbn0gW29wdGlvbnMuc2hvd0FsZXJ0XSAtIE9wdGlvbmFsIGZ1bmN0aW9uIHRvIHNob3cgYWxlcnRzLlxuICogQHBhcmFtIHtzdHJpbmd9IG9wdGlvbnMuY29Ib3N0IC0gVGhlIGNvLWhvc3QgaW5mb3JtYXRpb24uXG4gKiBAcGFyYW0ge3N0cmluZ30gb3B0aW9ucy5yb29tTmFtZSAtIFRoZSBuYW1lIG9mIHRoZSByb29tLlxuICpcbiAqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fSBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBwYXJ0aWNpcGFudCBpcyBtdXRlZC5cbiAqXG4gKiBAdGhyb3dzIFdpbGwgbG9nIGFuIGVycm9yIGlmIHRoZXJlIGlzIGFuIGlzc3VlIGFjY2Vzc2luZyBjby1ob3N0IHJlc3BvbnNpYmlsaXRpZXMuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IG11dGVTZXJ2aWNlID0gbmV3IE11dGVQYXJ0aWNpcGFudHMoKTtcbiAqIG11dGVTZXJ2aWNlLm11dGVQYXJ0aWNpcGFudHMoe1xuICogICBzb2NrZXQ6IHNvY2tldEluc3RhbmNlLFxuICogICBjb0hvc3RSZXNwb25zaWJpbGl0eTogW3sgbmFtZTogJ21lZGlhJywgdmFsdWU6IHRydWUgfV0sXG4gKiAgIHBhcnRpY2lwYW50OiB7IGlkOiAnMTIzJywgbmFtZTogJ0pvaG4nLCBpc2xldmVsOiAnMScsIG11dGVkOiBmYWxzZSB9LFxuICogICBtZW1iZXI6ICdBbGljZScsXG4gKiAgIGlzbGV2ZWw6ICcxJyxcbiAqICAgc2hvd0FsZXJ0OiAoeyBtZXNzYWdlLCB0eXBlIH0pID0+IHtcbiAqICAgICBjb25zb2xlLmxvZyhgQWxlcnQ6ICR7bWVzc2FnZX0gLSBUeXBlOiAke3R5cGV9YCk7XG4gKiAgIH0sXG4gKiAgIGNvSG9zdDogJ0JvYicsXG4gKiAgIHJvb21OYW1lOiAncm9vbTEnLFxuICogfSk7XG4gKiBgYGBcbiAqL1xuXG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBNdXRlUGFydGljaXBhbnRzIHtcbiAgLyoqXG4gICAqIE11dGVzIGEgcGFydGljaXBhbnQgaW4gYSBtZWRpYSBzZXNzaW9uIGlmIGNlcnRhaW4gY29uZGl0aW9ucyBhcmUgbWV0LlxuICAgKlxuICAgKiBAcGFyYW0ge09iamVjdH0gb3B0aW9ucyAtIFRoZSBvcHRpb25zIGZvciBtdXRpbmcgcGFydGljaXBhbnRzLlxuICAgKiBAcGFyYW0ge1NvY2tldH0gb3B0aW9ucy5zb2NrZXQgLSBUaGUgc29ja2V0IGluc3RhbmNlIGZvciBjb21tdW5pY2F0aW9uLlxuICAgKiBAcGFyYW0ge0FycmF5fSBvcHRpb25zLmNvSG9zdFJlc3BvbnNpYmlsaXR5IC0gTGlzdCBvZiBjby1ob3N0IHJlc3BvbnNpYmlsaXRpZXMuXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRpb25zLnBhcnRpY2lwYW50IC0gVGhlIHBhcnRpY2lwYW50IHRvIGJlIG11dGVkLlxuICAgKiBAcGFyYW0ge09iamVjdH0gb3B0aW9ucy5tZW1iZXIgLSBUaGUgY3VycmVudCBtZW1iZXIgYXR0ZW1wdGluZyB0byBtdXRlLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gb3B0aW9ucy5pc2xldmVsIC0gVGhlIGxldmVsIG9mIHRoZSBjdXJyZW50IG1lbWJlci5cbiAgICogQHBhcmFtIHtGdW5jdGlvbn0gW29wdGlvbnMuc2hvd0FsZXJ0XSAtIE9wdGlvbmFsIGZ1bmN0aW9uIHRvIHNob3cgYWxlcnRzLlxuICAgKiBAcGFyYW0ge09iamVjdH0gb3B0aW9ucy5jb0hvc3QgLSBUaGUgY28taG9zdCBpbmZvcm1hdGlvbi5cbiAgICogQHBhcmFtIHtzdHJpbmd9IG9wdGlvbnMucm9vbU5hbWUgLSBUaGUgbmFtZSBvZiB0aGUgcm9vbS5cbiAgICpcbiAgICogQHJldHVybnMge1Byb21pc2U8dm9pZD59IEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIHBhcnRpY2lwYW50IGlzIG11dGVkLlxuICAgKlxuICAgKiBAdGhyb3dzIFdpbGwgbG9nIGFuIGVycm9yIGlmIHRoZXJlIGlzIGFuIGlzc3VlIGFjY2Vzc2luZyBjby1ob3N0IHJlc3BvbnNpYmlsaXRpZXMuXG4gICAqL1xuXG4gIGFzeW5jIG11dGVQYXJ0aWNpcGFudHMoe1xuICAgIHNvY2tldCxcbiAgICBjb0hvc3RSZXNwb25zaWJpbGl0eSxcbiAgICBwYXJ0aWNpcGFudCxcbiAgICBtZW1iZXIsXG4gICAgaXNsZXZlbCxcbiAgICBzaG93QWxlcnQsXG4gICAgY29Ib3N0LFxuICAgIHJvb21OYW1lLFxuICB9OiBNdXRlUGFydGljaXBhbnRzT3B0aW9ucyk6IFByb21pc2U8dm9pZD4ge1xuICAgIGxldCBtZWRpYVZhbHVlID0gZmFsc2U7XG5cbiAgICB0cnkge1xuICAgICAgbWVkaWFWYWx1ZSA9IGNvSG9zdFJlc3BvbnNpYmlsaXR5LmZpbmQoKGl0ZW0pID0+IGl0ZW0ubmFtZSA9PT0gJ21lZGlhJyk/LnZhbHVlID8/IGZhbHNlO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGVycm9yKTtcbiAgICB9XG5cbiAgICBpZiAoaXNsZXZlbCA9PT0gJzInIHx8IChjb0hvc3QgPT09IG1lbWJlciAmJiBtZWRpYVZhbHVlID09PSB0cnVlKSkge1xuICAgICAgaWYgKCFwYXJ0aWNpcGFudC5tdXRlZCAmJiBwYXJ0aWNpcGFudC5pc2xldmVsICE9PSAnMicpIHtcbiAgICAgICAgY29uc3QgcGFydGljaXBhbnRJZCA9IHBhcnRpY2lwYW50LmlkO1xuICAgICAgICBzb2NrZXQuZW1pdCgnY29udHJvbE1lZGlhJywge1xuICAgICAgICAgIHBhcnRpY2lwYW50SWQsXG4gICAgICAgICAgcGFydGljaXBhbnROYW1lOiBwYXJ0aWNpcGFudC5uYW1lLFxuICAgICAgICAgIHR5cGU6ICdhbGwnLFxuICAgICAgICAgIHJvb21OYW1lLFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgc2hvd0FsZXJ0Py4oe1xuICAgICAgICBtZXNzYWdlOiAnWW91IGFyZSBub3QgYWxsb3dlZCB0byBtdXRlIG90aGVyIHBhcnRpY2lwYW50cycsXG4gICAgICAgIHR5cGU6ICdkYW5nZXInLFxuICAgICAgICBkdXJhdGlvbjogMzAwMCxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxufVxuIl19
|
|
@@ -1,107 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
/**
|
|
4
|
-
* Removes a participant from the room if the user has the appropriate permissions.
|
|
5
|
-
*
|
|
6
|
-
* This method checks the current user's level and their co-host responsibilities
|
|
7
|
-
* to determine if they are allowed to remove a specified participant. If allowed,
|
|
8
|
-
* the method emits a socket event to disconnect the participant and updates
|
|
9
|
-
* the local list of participants. If not allowed, an alert is displayed.
|
|
10
|
-
*
|
|
11
|
-
* @param {RemoveParticipantsOptions} options - The options for removing a participant.
|
|
12
|
-
* @param {CoHostResponsibility[]} options.coHostResponsibility - The responsibilities of the co-host.
|
|
13
|
-
* @param {Participant} options.participant - The participant to be removed.
|
|
14
|
-
* @param {string} options.member - The current member attempting to remove the participant.
|
|
15
|
-
* @param {string} options.islevel - The level of the current member.
|
|
16
|
-
* @param {Function} [options.showAlert] - Optional function to show alert messages.
|
|
17
|
-
* @param {string} options.coHost - The co-host information.
|
|
18
|
-
* @param {Participant[]} options.participants - The list of current participants.
|
|
19
|
-
* @param {Socket} options.socket - The socket instance for emitting events.
|
|
20
|
-
* @param {string} options.roomName - The name of the room.
|
|
21
|
-
* @param {Function} options.updateParticipants - Function to update the participants list.
|
|
22
|
-
*
|
|
23
|
-
* @returns {Promise<void>} A promise that resolves when the participant is removed.
|
|
24
|
-
*
|
|
25
|
-
* @throws Will log an error if there is an issue accessing co-host responsibilities.
|
|
26
|
-
*
|
|
27
|
-
* @example
|
|
28
|
-
* ```typescript
|
|
29
|
-
* const removeParticipantsService = new RemoveParticipants();
|
|
30
|
-
* await removeParticipantsService.removeParticipants({
|
|
31
|
-
* coHostResponsibility: [{ name: 'participants', value: true }],
|
|
32
|
-
* participant: { id: '123', name: 'John', islevel: '1' },
|
|
33
|
-
* member: 'Alice',
|
|
34
|
-
* islevel: '1',
|
|
35
|
-
* showAlert: ({ message, type }) => {
|
|
36
|
-
* console.log(`Alert: ${message} - Type: ${type}`);
|
|
37
|
-
* },
|
|
38
|
-
* coHost: 'Bob',
|
|
39
|
-
* participants: [{ id: '123', name: 'John', islevel: '1' }],
|
|
40
|
-
* socket: socketInstance,
|
|
41
|
-
* roomName: 'room1',
|
|
42
|
-
* updateParticipants: (updatedList) => {
|
|
43
|
-
* console.log('Updated participants:', updatedList);
|
|
44
|
-
* },
|
|
45
|
-
* });
|
|
46
|
-
* ```
|
|
47
|
-
*/
|
|
48
|
-
export class RemoveParticipants {
|
|
49
|
-
/**
|
|
50
|
-
* Removes a participant from the room if the user has the appropriate permissions.
|
|
51
|
-
*
|
|
52
|
-
* @param {RemoveParticipantsOptions} options - The options for removing a participant.
|
|
53
|
-
* @param {Array} options.coHostResponsibility - The responsibilities of the co-host.
|
|
54
|
-
* @param {Object} options.participant - The participant to be removed.
|
|
55
|
-
* @param {Object} options.member - The current member attempting to remove the participant.
|
|
56
|
-
* @param {string} options.islevel - The level of the current member.
|
|
57
|
-
* @param {Function} [options.showAlert] - Function to show an alert message.
|
|
58
|
-
* @param {Object} options.coHost - The co-host information.
|
|
59
|
-
* @param {Array} options.participants - The list of current participants.
|
|
60
|
-
* @param {Object} options.socket - The socket instance for emitting events.
|
|
61
|
-
* @param {string} options.roomName - The name of the room.
|
|
62
|
-
* @param {Function} options.updateParticipants - Function to update the participants list.
|
|
63
|
-
*
|
|
64
|
-
* @returns {Promise<void>} - A promise that resolves when the participant is removed.
|
|
65
|
-
*/
|
|
66
|
-
async removeParticipants({ coHostResponsibility, participant, member, islevel, showAlert, coHost, participants, socket, roomName, updateParticipants, }) {
|
|
67
|
-
let participantsValue = false;
|
|
68
|
-
try {
|
|
69
|
-
participantsValue =
|
|
70
|
-
coHostResponsibility.find((item) => item.name === 'participants')?.value ?? false;
|
|
71
|
-
}
|
|
72
|
-
catch (error) {
|
|
73
|
-
participantsValue = false;
|
|
74
|
-
}
|
|
75
|
-
if (islevel === '2' || (coHost === member && participantsValue === true)) {
|
|
76
|
-
if (participant.islevel !== '2') {
|
|
77
|
-
const participantId = participant.id;
|
|
78
|
-
// Emit a socket event to disconnect the user
|
|
79
|
-
socket.emit('disconnectUserInitiate', {
|
|
80
|
-
member: participant.name,
|
|
81
|
-
roomName,
|
|
82
|
-
id: participantId,
|
|
83
|
-
});
|
|
84
|
-
// Remove the participant from the local array
|
|
85
|
-
participants.splice(participants.findIndex((obj) => obj.name === participant.name), 1);
|
|
86
|
-
// Update the participants array
|
|
87
|
-
updateParticipants(participants);
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
else {
|
|
91
|
-
showAlert?.({
|
|
92
|
-
message: 'You are not allowed to remove other participants',
|
|
93
|
-
type: 'danger',
|
|
94
|
-
duration: 3000,
|
|
95
|
-
});
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: RemoveParticipants, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
99
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: RemoveParticipants, providedIn: 'root' });
|
|
100
|
-
}
|
|
101
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: RemoveParticipants, decorators: [{
|
|
102
|
-
type: Injectable,
|
|
103
|
-
args: [{
|
|
104
|
-
providedIn: 'root',
|
|
105
|
-
}]
|
|
106
|
-
}] });
|
|
107
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVtb3ZlLXBhcnRpY2lwYW50cy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWVkaWFzZnUtYW5ndWxhci9zcmMvbGliL21ldGhvZHMvcGFydGljaXBhbnRzLW1ldGhvZHMvcmVtb3ZlLXBhcnRpY2lwYW50cy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBb0IzQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E0Q0c7QUFNSCxNQUFNLE9BQU8sa0JBQWtCO0lBQzdCOzs7Ozs7Ozs7Ozs7Ozs7O09BZ0JHO0lBRUgsS0FBSyxDQUFDLGtCQUFrQixDQUFDLEVBQ3ZCLG9CQUFvQixFQUNwQixXQUFXLEVBQ1gsTUFBTSxFQUNOLE9BQU8sRUFDUCxTQUFTLEVBQ1QsTUFBTSxFQUNOLFlBQVksRUFDWixNQUFNLEVBQ04sUUFBUSxFQUNSLGtCQUFrQixHQUNRO1FBQzFCLElBQUksaUJBQWlCLEdBQUcsS0FBSyxDQUFDO1FBRTlCLElBQUksQ0FBQztZQUNILGlCQUFpQjtnQkFDZixvQkFBb0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssY0FBYyxDQUFDLEVBQUUsS0FBSyxJQUFJLEtBQUssQ0FBQztRQUN0RixDQUFDO1FBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztZQUNmLGlCQUFpQixHQUFHLEtBQUssQ0FBQztRQUM1QixDQUFDO1FBRUQsSUFBSSxPQUFPLEtBQUssR0FBRyxJQUFJLENBQUMsTUFBTSxLQUFLLE1BQU0sSUFBSSxpQkFBaUIsS0FBSyxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQ3pFLElBQUksV0FBVyxDQUFDLE9BQU8sS0FBSyxHQUFHLEVBQUUsQ0FBQztnQkFDaEMsTUFBTSxhQUFhLEdBQUcsV0FBVyxDQUFDLEVBQUUsQ0FBQztnQkFFckMsNkNBQTZDO2dCQUM3QyxNQUFNLENBQUMsSUFBSSxDQUFDLHdCQUF3QixFQUFFO29CQUNwQyxNQUFNLEVBQUUsV0FBVyxDQUFDLElBQUk7b0JBQ3hCLFFBQVE7b0JBQ1IsRUFBRSxFQUFFLGFBQWE7aUJBQ2xCLENBQUMsQ0FBQztnQkFFSCw4Q0FBOEM7Z0JBQzlDLFlBQVksQ0FBQyxNQUFNLENBQ2pCLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFRLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEtBQUssV0FBVyxDQUFDLElBQUksQ0FBQyxFQUNuRSxDQUFDLENBQ0YsQ0FBQztnQkFFRixnQ0FBZ0M7Z0JBQ2hDLGtCQUFrQixDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQ25DLENBQUM7UUFDSCxDQUFDO2FBQU0sQ0FBQztZQUNOLFNBQVMsRUFBRSxDQUFDO2dCQUNWLE9BQU8sRUFBRSxrREFBa0Q7Z0JBQzNELElBQUksRUFBRSxRQUFRO2dCQUNkLFFBQVEsRUFBRSxJQUFJO2FBQ2YsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztJQUNILENBQUM7dUdBbkVVLGtCQUFrQjsyR0FBbEIsa0JBQWtCLGNBRmpCLE1BQU07OzJGQUVQLGtCQUFrQjtrQkFIOUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTb2NrZXQgfSBmcm9tICdzb2NrZXQuaW8tY2xpZW50JztcbmltcG9ydCB7IENvSG9zdFJlc3BvbnNpYmlsaXR5LCBQYXJ0aWNpcGFudCwgU2hvd0FsZXJ0IH0gZnJvbSAnLi4vLi4vQHR5cGVzL3R5cGVzJztcblxuZXhwb3J0IGludGVyZmFjZSBSZW1vdmVQYXJ0aWNpcGFudHNPcHRpb25zIHtcbiAgY29Ib3N0UmVzcG9uc2liaWxpdHk6IENvSG9zdFJlc3BvbnNpYmlsaXR5W107XG4gIHBhcnRpY2lwYW50OiBQYXJ0aWNpcGFudDtcbiAgbWVtYmVyOiBzdHJpbmc7XG4gIGlzbGV2ZWw6IHN0cmluZztcbiAgc2hvd0FsZXJ0PzogU2hvd0FsZXJ0O1xuICBjb0hvc3Q6IHN0cmluZztcbiAgcGFydGljaXBhbnRzOiBQYXJ0aWNpcGFudFtdO1xuICBzb2NrZXQ6IFNvY2tldDtcbiAgcm9vbU5hbWU6IHN0cmluZztcbiAgdXBkYXRlUGFydGljaXBhbnRzOiAocGFydGljaXBhbnRzOiBQYXJ0aWNpcGFudFtdKSA9PiB2b2lkO1xufVxuXG4vLyBFeHBvcnQgdGhlIHR5cGUgZGVmaW5pdGlvbiBmb3IgdGhlIGZ1bmN0aW9uXG5leHBvcnQgdHlwZSBSZW1vdmVQYXJ0aWNpcGFudHNUeXBlID0gKG9wdGlvbnM6IFJlbW92ZVBhcnRpY2lwYW50c09wdGlvbnMpID0+IFByb21pc2U8dm9pZD47XG5cbi8qKlxuICogUmVtb3ZlcyBhIHBhcnRpY2lwYW50IGZyb20gdGhlIHJvb20gaWYgdGhlIHVzZXIgaGFzIHRoZSBhcHByb3ByaWF0ZSBwZXJtaXNzaW9ucy5cbiAqXG4gKiBUaGlzIG1ldGhvZCBjaGVja3MgdGhlIGN1cnJlbnQgdXNlcidzIGxldmVsIGFuZCB0aGVpciBjby1ob3N0IHJlc3BvbnNpYmlsaXRpZXNcbiAqIHRvIGRldGVybWluZSBpZiB0aGV5IGFyZSBhbGxvd2VkIHRvIHJlbW92ZSBhIHNwZWNpZmllZCBwYXJ0aWNpcGFudC4gSWYgYWxsb3dlZCxcbiAqIHRoZSBtZXRob2QgZW1pdHMgYSBzb2NrZXQgZXZlbnQgdG8gZGlzY29ubmVjdCB0aGUgcGFydGljaXBhbnQgYW5kIHVwZGF0ZXNcbiAqIHRoZSBsb2NhbCBsaXN0IG9mIHBhcnRpY2lwYW50cy4gSWYgbm90IGFsbG93ZWQsIGFuIGFsZXJ0IGlzIGRpc3BsYXllZC5cbiAqXG4gKiBAcGFyYW0ge1JlbW92ZVBhcnRpY2lwYW50c09wdGlvbnN9IG9wdGlvbnMgLSBUaGUgb3B0aW9ucyBmb3IgcmVtb3ZpbmcgYSBwYXJ0aWNpcGFudC5cbiAqIEBwYXJhbSB7Q29Ib3N0UmVzcG9uc2liaWxpdHlbXX0gb3B0aW9ucy5jb0hvc3RSZXNwb25zaWJpbGl0eSAtIFRoZSByZXNwb25zaWJpbGl0aWVzIG9mIHRoZSBjby1ob3N0LlxuICogQHBhcmFtIHtQYXJ0aWNpcGFudH0gb3B0aW9ucy5wYXJ0aWNpcGFudCAtIFRoZSBwYXJ0aWNpcGFudCB0byBiZSByZW1vdmVkLlxuICogQHBhcmFtIHtzdHJpbmd9IG9wdGlvbnMubWVtYmVyIC0gVGhlIGN1cnJlbnQgbWVtYmVyIGF0dGVtcHRpbmcgdG8gcmVtb3ZlIHRoZSBwYXJ0aWNpcGFudC5cbiAqIEBwYXJhbSB7c3RyaW5nfSBvcHRpb25zLmlzbGV2ZWwgLSBUaGUgbGV2ZWwgb2YgdGhlIGN1cnJlbnQgbWVtYmVyLlxuICogQHBhcmFtIHtGdW5jdGlvbn0gW29wdGlvbnMuc2hvd0FsZXJ0XSAtIE9wdGlvbmFsIGZ1bmN0aW9uIHRvIHNob3cgYWxlcnQgbWVzc2FnZXMuXG4gKiBAcGFyYW0ge3N0cmluZ30gb3B0aW9ucy5jb0hvc3QgLSBUaGUgY28taG9zdCBpbmZvcm1hdGlvbi5cbiAqIEBwYXJhbSB7UGFydGljaXBhbnRbXX0gb3B0aW9ucy5wYXJ0aWNpcGFudHMgLSBUaGUgbGlzdCBvZiBjdXJyZW50IHBhcnRpY2lwYW50cy5cbiAqIEBwYXJhbSB7U29ja2V0fSBvcHRpb25zLnNvY2tldCAtIFRoZSBzb2NrZXQgaW5zdGFuY2UgZm9yIGVtaXR0aW5nIGV2ZW50cy5cbiAqIEBwYXJhbSB7c3RyaW5nfSBvcHRpb25zLnJvb21OYW1lIC0gVGhlIG5hbWUgb2YgdGhlIHJvb20uXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBvcHRpb25zLnVwZGF0ZVBhcnRpY2lwYW50cyAtIEZ1bmN0aW9uIHRvIHVwZGF0ZSB0aGUgcGFydGljaXBhbnRzIGxpc3QuXG4gKlxuICogQHJldHVybnMge1Byb21pc2U8dm9pZD59IEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIHBhcnRpY2lwYW50IGlzIHJlbW92ZWQuXG4gKlxuICogQHRocm93cyBXaWxsIGxvZyBhbiBlcnJvciBpZiB0aGVyZSBpcyBhbiBpc3N1ZSBhY2Nlc3NpbmcgY28taG9zdCByZXNwb25zaWJpbGl0aWVzLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCByZW1vdmVQYXJ0aWNpcGFudHNTZXJ2aWNlID0gbmV3IFJlbW92ZVBhcnRpY2lwYW50cygpO1xuICogYXdhaXQgcmVtb3ZlUGFydGljaXBhbnRzU2VydmljZS5yZW1vdmVQYXJ0aWNpcGFudHMoe1xuICogICBjb0hvc3RSZXNwb25zaWJpbGl0eTogW3sgbmFtZTogJ3BhcnRpY2lwYW50cycsIHZhbHVlOiB0cnVlIH1dLFxuICogICBwYXJ0aWNpcGFudDogeyBpZDogJzEyMycsIG5hbWU6ICdKb2huJywgaXNsZXZlbDogJzEnIH0sXG4gKiAgIG1lbWJlcjogJ0FsaWNlJyxcbiAqICAgaXNsZXZlbDogJzEnLFxuICogICBzaG93QWxlcnQ6ICh7IG1lc3NhZ2UsIHR5cGUgfSkgPT4ge1xuICogICAgIGNvbnNvbGUubG9nKGBBbGVydDogJHttZXNzYWdlfSAtIFR5cGU6ICR7dHlwZX1gKTtcbiAqICAgfSxcbiAqICAgY29Ib3N0OiAnQm9iJyxcbiAqICAgcGFydGljaXBhbnRzOiBbeyBpZDogJzEyMycsIG5hbWU6ICdKb2huJywgaXNsZXZlbDogJzEnIH1dLFxuICogICBzb2NrZXQ6IHNvY2tldEluc3RhbmNlLFxuICogICByb29tTmFtZTogJ3Jvb20xJyxcbiAqICAgdXBkYXRlUGFydGljaXBhbnRzOiAodXBkYXRlZExpc3QpID0+IHtcbiAqICAgICBjb25zb2xlLmxvZygnVXBkYXRlZCBwYXJ0aWNpcGFudHM6JywgdXBkYXRlZExpc3QpO1xuICogICB9LFxuICogfSk7XG4gKiBgYGBcbiAqL1xuXG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBSZW1vdmVQYXJ0aWNpcGFudHMge1xuICAvKipcbiAgICogUmVtb3ZlcyBhIHBhcnRpY2lwYW50IGZyb20gdGhlIHJvb20gaWYgdGhlIHVzZXIgaGFzIHRoZSBhcHByb3ByaWF0ZSBwZXJtaXNzaW9ucy5cbiAgICpcbiAgICogQHBhcmFtIHtSZW1vdmVQYXJ0aWNpcGFudHNPcHRpb25zfSBvcHRpb25zIC0gVGhlIG9wdGlvbnMgZm9yIHJlbW92aW5nIGEgcGFydGljaXBhbnQuXG4gICAqIEBwYXJhbSB7QXJyYXl9IG9wdGlvbnMuY29Ib3N0UmVzcG9uc2liaWxpdHkgLSBUaGUgcmVzcG9uc2liaWxpdGllcyBvZiB0aGUgY28taG9zdC5cbiAgICogQHBhcmFtIHtPYmplY3R9IG9wdGlvbnMucGFydGljaXBhbnQgLSBUaGUgcGFydGljaXBhbnQgdG8gYmUgcmVtb3ZlZC5cbiAgICogQHBhcmFtIHtPYmplY3R9IG9wdGlvbnMubWVtYmVyIC0gVGhlIGN1cnJlbnQgbWVtYmVyIGF0dGVtcHRpbmcgdG8gcmVtb3ZlIHRoZSBwYXJ0aWNpcGFudC5cbiAgICogQHBhcmFtIHtzdHJpbmd9IG9wdGlvbnMuaXNsZXZlbCAtIFRoZSBsZXZlbCBvZiB0aGUgY3VycmVudCBtZW1iZXIuXG4gICAqIEBwYXJhbSB7RnVuY3Rpb259IFtvcHRpb25zLnNob3dBbGVydF0gLSBGdW5jdGlvbiB0byBzaG93IGFuIGFsZXJ0IG1lc3NhZ2UuXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRpb25zLmNvSG9zdCAtIFRoZSBjby1ob3N0IGluZm9ybWF0aW9uLlxuICAgKiBAcGFyYW0ge0FycmF5fSBvcHRpb25zLnBhcnRpY2lwYW50cyAtIFRoZSBsaXN0IG9mIGN1cnJlbnQgcGFydGljaXBhbnRzLlxuICAgKiBAcGFyYW0ge09iamVjdH0gb3B0aW9ucy5zb2NrZXQgLSBUaGUgc29ja2V0IGluc3RhbmNlIGZvciBlbWl0dGluZyBldmVudHMuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBvcHRpb25zLnJvb21OYW1lIC0gVGhlIG5hbWUgb2YgdGhlIHJvb20uXG4gICAqIEBwYXJhbSB7RnVuY3Rpb259IG9wdGlvbnMudXBkYXRlUGFydGljaXBhbnRzIC0gRnVuY3Rpb24gdG8gdXBkYXRlIHRoZSBwYXJ0aWNpcGFudHMgbGlzdC5cbiAgICpcbiAgICogQHJldHVybnMge1Byb21pc2U8dm9pZD59IC0gQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgcGFydGljaXBhbnQgaXMgcmVtb3ZlZC5cbiAgICovXG5cbiAgYXN5bmMgcmVtb3ZlUGFydGljaXBhbnRzKHtcbiAgICBjb0hvc3RSZXNwb25zaWJpbGl0eSxcbiAgICBwYXJ0aWNpcGFudCxcbiAgICBtZW1iZXIsXG4gICAgaXNsZXZlbCxcbiAgICBzaG93QWxlcnQsXG4gICAgY29Ib3N0LFxuICAgIHBhcnRpY2lwYW50cyxcbiAgICBzb2NrZXQsXG4gICAgcm9vbU5hbWUsXG4gICAgdXBkYXRlUGFydGljaXBhbnRzLFxuICB9OiBSZW1vdmVQYXJ0aWNpcGFudHNPcHRpb25zKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgbGV0IHBhcnRpY2lwYW50c1ZhbHVlID0gZmFsc2U7XG5cbiAgICB0cnkge1xuICAgICAgcGFydGljaXBhbnRzVmFsdWUgPVxuICAgICAgICBjb0hvc3RSZXNwb25zaWJpbGl0eS5maW5kKChpdGVtKSA9PiBpdGVtLm5hbWUgPT09ICdwYXJ0aWNpcGFudHMnKT8udmFsdWUgPz8gZmFsc2U7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHBhcnRpY2lwYW50c1ZhbHVlID0gZmFsc2U7XG4gICAgfVxuXG4gICAgaWYgKGlzbGV2ZWwgPT09ICcyJyB8fCAoY29Ib3N0ID09PSBtZW1iZXIgJiYgcGFydGljaXBhbnRzVmFsdWUgPT09IHRydWUpKSB7XG4gICAgICBpZiAocGFydGljaXBhbnQuaXNsZXZlbCAhPT0gJzInKSB7XG4gICAgICAgIGNvbnN0IHBhcnRpY2lwYW50SWQgPSBwYXJ0aWNpcGFudC5pZDtcblxuICAgICAgICAvLyBFbWl0IGEgc29ja2V0IGV2ZW50IHRvIGRpc2Nvbm5lY3QgdGhlIHVzZXJcbiAgICAgICAgc29ja2V0LmVtaXQoJ2Rpc2Nvbm5lY3RVc2VySW5pdGlhdGUnLCB7XG4gICAgICAgICAgbWVtYmVyOiBwYXJ0aWNpcGFudC5uYW1lLFxuICAgICAgICAgIHJvb21OYW1lLFxuICAgICAgICAgIGlkOiBwYXJ0aWNpcGFudElkLFxuICAgICAgICB9KTtcblxuICAgICAgICAvLyBSZW1vdmUgdGhlIHBhcnRpY2lwYW50IGZyb20gdGhlIGxvY2FsIGFycmF5XG4gICAgICAgIHBhcnRpY2lwYW50cy5zcGxpY2UoXG4gICAgICAgICAgcGFydGljaXBhbnRzLmZpbmRJbmRleCgob2JqOiBhbnkpID0+IG9iai5uYW1lID09PSBwYXJ0aWNpcGFudC5uYW1lKSxcbiAgICAgICAgICAxLFxuICAgICAgICApO1xuXG4gICAgICAgIC8vIFVwZGF0ZSB0aGUgcGFydGljaXBhbnRzIGFycmF5XG4gICAgICAgIHVwZGF0ZVBhcnRpY2lwYW50cyhwYXJ0aWNpcGFudHMpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBzaG93QWxlcnQ/Lih7XG4gICAgICAgIG1lc3NhZ2U6ICdZb3UgYXJlIG5vdCBhbGxvd2VkIHRvIHJlbW92ZSBvdGhlciBwYXJ0aWNpcGFudHMnLFxuICAgICAgICB0eXBlOiAnZGFuZ2VyJyxcbiAgICAgICAgZHVyYXRpb246IDMwMDAsXG4gICAgICB9KTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|