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,73 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
/**
|
|
4
|
-
* Service to handle the end of a meeting, including showing an alert and redirecting the user.
|
|
5
|
-
*
|
|
6
|
-
* @class
|
|
7
|
-
* @name MeetingEnded
|
|
8
|
-
* @description
|
|
9
|
-
* This service provides a method to display a notification when a meeting ends and redirects the user to a specified URL or handles other post-meeting actions.
|
|
10
|
-
*
|
|
11
|
-
* @method
|
|
12
|
-
* meetingEnded
|
|
13
|
-
*
|
|
14
|
-
* @param {MeetingEndedOptions} options - Options for handling the meeting end:
|
|
15
|
-
* - `showAlert` {Function}: Optional function to display an alert message.
|
|
16
|
-
* - `redirectURL` {string}: URL to redirect to after the meeting ends.
|
|
17
|
-
* - `onWeb` {boolean}: Specifies if the application is running on the web.
|
|
18
|
-
* - `eventType` {string}: Specifies the type of event ending the meeting.
|
|
19
|
-
*
|
|
20
|
-
* @returns {Promise<void>} Completes meeting end handling by displaying an alert and performing a redirect.
|
|
21
|
-
*
|
|
22
|
-
* @example
|
|
23
|
-
* const options = {
|
|
24
|
-
* showAlert: (options) => console.log(options.message),
|
|
25
|
-
* redirectURL: 'https://example.com/home',
|
|
26
|
-
* onWeb: true,
|
|
27
|
-
* eventType: 'webinar',
|
|
28
|
-
* };
|
|
29
|
-
* meetingEndedService.meetingEnded(options);
|
|
30
|
-
* // Displays alert and redirects to specified URL
|
|
31
|
-
*/
|
|
32
|
-
export class MeetingEnded {
|
|
33
|
-
/**
|
|
34
|
-
* Handles the end of a meeting by showing an alert and redirecting the user.
|
|
35
|
-
*
|
|
36
|
-
* @param {MeetingEndedOptions} options - The options for handling the meeting end.
|
|
37
|
-
* @param {Function} options.showAlert - Function to show an alert message.
|
|
38
|
-
* @param {string} options.redirectURL - URL to redirect to after the meeting ends.
|
|
39
|
-
* @param {boolean} options.onWeb - Flag indicating if the application is running on the web.
|
|
40
|
-
* @param {string} options.eventType - Type of the event that triggered the meeting end.
|
|
41
|
-
*
|
|
42
|
-
* @returns {Promise<void>} A promise that resolves when the meeting end handling is complete.
|
|
43
|
-
*/
|
|
44
|
-
meetingEnded = async ({ showAlert, redirectURL, onWeb, eventType, }) => {
|
|
45
|
-
// Show an alert that the meeting has ended and wait for 2 seconds before redirecting to the home page
|
|
46
|
-
if (eventType !== 'chat') {
|
|
47
|
-
showAlert?.({
|
|
48
|
-
message: 'The event has ended. You will be redirected to the home page in 2 seconds.',
|
|
49
|
-
type: 'danger',
|
|
50
|
-
duration: 2000,
|
|
51
|
-
});
|
|
52
|
-
}
|
|
53
|
-
if (onWeb && redirectURL) {
|
|
54
|
-
setTimeout(() => {
|
|
55
|
-
window.location.href = redirectURL;
|
|
56
|
-
}, 2000);
|
|
57
|
-
}
|
|
58
|
-
else {
|
|
59
|
-
// setTimeout(() => {
|
|
60
|
-
// updateValidated(false);
|
|
61
|
-
// }, 2000);
|
|
62
|
-
}
|
|
63
|
-
};
|
|
64
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: MeetingEnded, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
65
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: MeetingEnded, providedIn: 'root' });
|
|
66
|
-
}
|
|
67
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: MeetingEnded, decorators: [{
|
|
68
|
-
type: Injectable,
|
|
69
|
-
args: [{
|
|
70
|
-
providedIn: 'root',
|
|
71
|
-
}]
|
|
72
|
-
}] });
|
|
73
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVldGluZy1lbmRlZC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWVkaWFzZnUtYW5ndWxhci9zcmMvbGliL3Byb2R1Y2Vycy9zb2NrZXQtcmVjZWl2ZS1tZXRob2RzL21lZXRpbmctZW5kZWQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQWMzQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTRCRztBQU1ILE1BQU0sT0FBTyxZQUFZO0lBQ3ZCOzs7Ozs7Ozs7O09BVUc7SUFDSCxZQUFZLEdBQUcsS0FBSyxFQUFFLEVBQ3BCLFNBQVMsRUFDVCxXQUFXLEVBQ1gsS0FBSyxFQUNMLFNBQVMsR0FDVyxFQUFpQixFQUFFO1FBQ3ZDLHNHQUFzRztRQUN0RyxJQUFJLFNBQVMsS0FBSyxNQUFNLEVBQUUsQ0FBQztZQUN6QixTQUFTLEVBQUUsQ0FBQztnQkFDVixPQUFPLEVBQUUsNEVBQTRFO2dCQUNyRixJQUFJLEVBQUUsUUFBUTtnQkFDZCxRQUFRLEVBQUUsSUFBSTthQUNmLENBQUMsQ0FBQztRQUNMLENBQUM7UUFFRCxJQUFJLEtBQUssSUFBSSxXQUFXLEVBQUUsQ0FBQztZQUN6QixVQUFVLENBQUMsR0FBRyxFQUFFO2dCQUNkLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxHQUFHLFdBQVcsQ0FBQztZQUNyQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDWCxDQUFDO2FBQU0sQ0FBQztZQUNOLHFCQUFxQjtZQUNyQiw0QkFBNEI7WUFDNUIsWUFBWTtRQUNkLENBQUM7SUFDSCxDQUFDLENBQUM7dUdBcENTLFlBQVk7MkdBQVosWUFBWSxjQUZYLE1BQU07OzJGQUVQLFlBQVk7a0JBSHhCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRXZlbnRUeXBlLCBTaG93QWxlcnQgfSBmcm9tICcuLi8uLi9AdHlwZXMvdHlwZXMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIE1lZXRpbmdFbmRlZE9wdGlvbnMge1xuICBzaG93QWxlcnQ/OiBTaG93QWxlcnQ7XG4gIHJlZGlyZWN0VVJMPzogc3RyaW5nO1xuICBvbldlYjogYm9vbGVhbjtcbiAgZXZlbnRUeXBlOiBFdmVudFR5cGU7XG4gIHVwZGF0ZVZhbGlkYXRlZD86IChpc1ZhbGlkOiBib29sZWFuKSA9PiB2b2lkO1xufVxuXG4vLyBFeHBvcnQgdGhlIHR5cGUgZGVmaW5pdGlvbiBmb3IgdGhlIGZ1bmN0aW9uXG5leHBvcnQgdHlwZSBNZWV0aW5nRW5kZWRUeXBlID0gKG9wdGlvbnM6IE1lZXRpbmdFbmRlZE9wdGlvbnMpID0+IFByb21pc2U8dm9pZD47XG5cbi8qKlxuICogU2VydmljZSB0byBoYW5kbGUgdGhlIGVuZCBvZiBhIG1lZXRpbmcsIGluY2x1ZGluZyBzaG93aW5nIGFuIGFsZXJ0IGFuZCByZWRpcmVjdGluZyB0aGUgdXNlci5cbiAqXG4gKiBAY2xhc3NcbiAqIEBuYW1lIE1lZXRpbmdFbmRlZFxuICogQGRlc2NyaXB0aW9uXG4gKiBUaGlzIHNlcnZpY2UgcHJvdmlkZXMgYSBtZXRob2QgdG8gZGlzcGxheSBhIG5vdGlmaWNhdGlvbiB3aGVuIGEgbWVldGluZyBlbmRzIGFuZCByZWRpcmVjdHMgdGhlIHVzZXIgdG8gYSBzcGVjaWZpZWQgVVJMIG9yIGhhbmRsZXMgb3RoZXIgcG9zdC1tZWV0aW5nIGFjdGlvbnMuXG4gKlxuICogQG1ldGhvZFxuICogbWVldGluZ0VuZGVkXG4gKlxuICogQHBhcmFtIHtNZWV0aW5nRW5kZWRPcHRpb25zfSBvcHRpb25zIC0gT3B0aW9ucyBmb3IgaGFuZGxpbmcgdGhlIG1lZXRpbmcgZW5kOlxuICogICAtIGBzaG93QWxlcnRgIHtGdW5jdGlvbn06IE9wdGlvbmFsIGZ1bmN0aW9uIHRvIGRpc3BsYXkgYW4gYWxlcnQgbWVzc2FnZS5cbiAqICAgLSBgcmVkaXJlY3RVUkxgIHtzdHJpbmd9OiBVUkwgdG8gcmVkaXJlY3QgdG8gYWZ0ZXIgdGhlIG1lZXRpbmcgZW5kcy5cbiAqICAgLSBgb25XZWJgIHtib29sZWFufTogU3BlY2lmaWVzIGlmIHRoZSBhcHBsaWNhdGlvbiBpcyBydW5uaW5nIG9uIHRoZSB3ZWIuXG4gKiAgIC0gYGV2ZW50VHlwZWAge3N0cmluZ306IFNwZWNpZmllcyB0aGUgdHlwZSBvZiBldmVudCBlbmRpbmcgdGhlIG1lZXRpbmcuXG4gKlxuICogQHJldHVybnMge1Byb21pc2U8dm9pZD59IENvbXBsZXRlcyBtZWV0aW5nIGVuZCBoYW5kbGluZyBieSBkaXNwbGF5aW5nIGFuIGFsZXJ0IGFuZCBwZXJmb3JtaW5nIGEgcmVkaXJlY3QuXG4gKlxuICogQGV4YW1wbGVcbiAqIGNvbnN0IG9wdGlvbnMgPSB7XG4gKiAgIHNob3dBbGVydDogKG9wdGlvbnMpID0+IGNvbnNvbGUubG9nKG9wdGlvbnMubWVzc2FnZSksXG4gKiAgIHJlZGlyZWN0VVJMOiAnaHR0cHM6Ly9leGFtcGxlLmNvbS9ob21lJyxcbiAqICAgb25XZWI6IHRydWUsXG4gKiAgIGV2ZW50VHlwZTogJ3dlYmluYXInLFxuICogfTtcbiAqIG1lZXRpbmdFbmRlZFNlcnZpY2UubWVldGluZ0VuZGVkKG9wdGlvbnMpO1xuICogLy8gRGlzcGxheXMgYWxlcnQgYW5kIHJlZGlyZWN0cyB0byBzcGVjaWZpZWQgVVJMXG4gKi9cblxuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgTWVldGluZ0VuZGVkIHtcbiAgLyoqXG4gICAqIEhhbmRsZXMgdGhlIGVuZCBvZiBhIG1lZXRpbmcgYnkgc2hvd2luZyBhbiBhbGVydCBhbmQgcmVkaXJlY3RpbmcgdGhlIHVzZXIuXG4gICAqXG4gICAqIEBwYXJhbSB7TWVldGluZ0VuZGVkT3B0aW9uc30gb3B0aW9ucyAtIFRoZSBvcHRpb25zIGZvciBoYW5kbGluZyB0aGUgbWVldGluZyBlbmQuXG4gICAqIEBwYXJhbSB7RnVuY3Rpb259IG9wdGlvbnMuc2hvd0FsZXJ0IC0gRnVuY3Rpb24gdG8gc2hvdyBhbiBhbGVydCBtZXNzYWdlLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gb3B0aW9ucy5yZWRpcmVjdFVSTCAtIFVSTCB0byByZWRpcmVjdCB0byBhZnRlciB0aGUgbWVldGluZyBlbmRzLlxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IG9wdGlvbnMub25XZWIgLSBGbGFnIGluZGljYXRpbmcgaWYgdGhlIGFwcGxpY2F0aW9uIGlzIHJ1bm5pbmcgb24gdGhlIHdlYi5cbiAgICogQHBhcmFtIHtzdHJpbmd9IG9wdGlvbnMuZXZlbnRUeXBlIC0gVHlwZSBvZiB0aGUgZXZlbnQgdGhhdCB0cmlnZ2VyZWQgdGhlIG1lZXRpbmcgZW5kLlxuICAgKlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn0gQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgbWVldGluZyBlbmQgaGFuZGxpbmcgaXMgY29tcGxldGUuXG4gICAqL1xuICBtZWV0aW5nRW5kZWQgPSBhc3luYyAoe1xuICAgIHNob3dBbGVydCxcbiAgICByZWRpcmVjdFVSTCxcbiAgICBvbldlYixcbiAgICBldmVudFR5cGUsXG4gIH06IE1lZXRpbmdFbmRlZE9wdGlvbnMpOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgICAvLyBTaG93IGFuIGFsZXJ0IHRoYXQgdGhlIG1lZXRpbmcgaGFzIGVuZGVkIGFuZCB3YWl0IGZvciAyIHNlY29uZHMgYmVmb3JlIHJlZGlyZWN0aW5nIHRvIHRoZSBob21lIHBhZ2VcbiAgICBpZiAoZXZlbnRUeXBlICE9PSAnY2hhdCcpIHtcbiAgICAgIHNob3dBbGVydD8uKHtcbiAgICAgICAgbWVzc2FnZTogJ1RoZSBldmVudCBoYXMgZW5kZWQuIFlvdSB3aWxsIGJlIHJlZGlyZWN0ZWQgdG8gdGhlIGhvbWUgcGFnZSBpbiAyIHNlY29uZHMuJyxcbiAgICAgICAgdHlwZTogJ2RhbmdlcicsXG4gICAgICAgIGR1cmF0aW9uOiAyMDAwLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKG9uV2ViICYmIHJlZGlyZWN0VVJMKSB7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSByZWRpcmVjdFVSTDtcbiAgICAgIH0sIDIwMDApO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIC8vICAgdXBkYXRlVmFsaWRhdGVkKGZhbHNlKTtcbiAgICAgIC8vIH0sIDIwMDApO1xuICAgIH1cbiAgfTtcbn1cbiJdfQ==
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
/**
|
|
4
|
-
* Service to handle the "still there?" check in a meeting by showing a confirmation modal.
|
|
5
|
-
*
|
|
6
|
-
* @class
|
|
7
|
-
* @name MeetingStillThere
|
|
8
|
-
* @description
|
|
9
|
-
* This service provides a method to display a "still there?" confirmation modal to check if participants are still active in the meeting.
|
|
10
|
-
*
|
|
11
|
-
* @method
|
|
12
|
-
* meetingStillThere
|
|
13
|
-
*
|
|
14
|
-
* @param {MeetingStillThereOptions} options - Options for managing the modal visibility:
|
|
15
|
-
* - `updateIsConfirmHereModalVisible` {Function}: Function to set the visibility of the "still there?" confirmation modal.
|
|
16
|
-
*
|
|
17
|
-
* @returns {Promise<void>} Updates modal visibility when checking if the user is still present.
|
|
18
|
-
*
|
|
19
|
-
* @example
|
|
20
|
-
* const options = {
|
|
21
|
-
* updateIsConfirmHereModalVisible: (isVisible) => console.log(`Modal visibility: ${isVisible}`),
|
|
22
|
-
* };
|
|
23
|
-
* meetingStillThereService.meetingStillThere(options);
|
|
24
|
-
* // Output: Sets and logs modal visibility to true
|
|
25
|
-
*/
|
|
26
|
-
export class MeetingStillThere {
|
|
27
|
-
/**
|
|
28
|
-
* Handles the "still there?" meeting check by updating the visibility of the confirmation modal.
|
|
29
|
-
*
|
|
30
|
-
* @param {Object} options - The options for the meeting still there check.
|
|
31
|
-
* @param {Function} options.updateIsConfirmHereModalVisible - Function to update the visibility of the "still there?" modal.
|
|
32
|
-
* @returns {Promise<void>} A promise that resolves when the modal visibility is updated.
|
|
33
|
-
*/
|
|
34
|
-
meetingStillThere = ({ updateIsConfirmHereModalVisible }) => {
|
|
35
|
-
// Update the visibility of the "still there?" modal
|
|
36
|
-
updateIsConfirmHereModalVisible(true);
|
|
37
|
-
};
|
|
38
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: MeetingStillThere, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
39
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: MeetingStillThere, providedIn: 'root' });
|
|
40
|
-
}
|
|
41
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: MeetingStillThere, decorators: [{
|
|
42
|
-
type: Injectable,
|
|
43
|
-
args: [{
|
|
44
|
-
providedIn: 'root',
|
|
45
|
-
}]
|
|
46
|
-
}] });
|
|
47
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVldGluZy1zdGlsbC10aGVyZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWVkaWFzZnUtYW5ndWxhci9zcmMvbGliL3Byb2R1Y2Vycy9zb2NrZXQtcmVjZWl2ZS1tZXRob2RzL21lZXRpbmctc3RpbGwtdGhlcmUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQVEzQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXNCRztBQUtILE1BQU0sT0FBTyxpQkFBaUI7SUFDNUI7Ozs7OztPQU1HO0lBQ0gsaUJBQWlCLEdBQUcsQ0FBQyxFQUFFLCtCQUErQixFQUE0QixFQUFRLEVBQUU7UUFDMUYsb0RBQW9EO1FBQ3BELCtCQUErQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3hDLENBQUMsQ0FBQzt1R0FYUyxpQkFBaUI7MkdBQWpCLGlCQUFpQixjQUZoQixNQUFNOzsyRkFFUCxpQkFBaUI7a0JBSDdCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuZXhwb3J0IGludGVyZmFjZSBNZWV0aW5nU3RpbGxUaGVyZU9wdGlvbnMge1xuICB1cGRhdGVJc0NvbmZpcm1IZXJlTW9kYWxWaXNpYmxlOiAoaXNWaXNpYmxlOiBib29sZWFuKSA9PiB2b2lkO1xufVxuXG4vLyBFeHBvcnQgdGhlIHR5cGUgZGVmaW5pdGlvbiBmb3IgdGhlIGZ1bmN0aW9uXG5leHBvcnQgdHlwZSBNZWV0aW5nU3RpbGxUaGVyZVR5cGUgPSAob3B0aW9uczogTWVldGluZ1N0aWxsVGhlcmVPcHRpb25zKSA9PiBQcm9taXNlPHZvaWQ+O1xuXG4vKipcbiAqIFNlcnZpY2UgdG8gaGFuZGxlIHRoZSBcInN0aWxsIHRoZXJlP1wiIGNoZWNrIGluIGEgbWVldGluZyBieSBzaG93aW5nIGEgY29uZmlybWF0aW9uIG1vZGFsLlxuICpcbiAqIEBjbGFzc1xuICogQG5hbWUgTWVldGluZ1N0aWxsVGhlcmVcbiAqIEBkZXNjcmlwdGlvblxuICogVGhpcyBzZXJ2aWNlIHByb3ZpZGVzIGEgbWV0aG9kIHRvIGRpc3BsYXkgYSBcInN0aWxsIHRoZXJlP1wiIGNvbmZpcm1hdGlvbiBtb2RhbCB0byBjaGVjayBpZiBwYXJ0aWNpcGFudHMgYXJlIHN0aWxsIGFjdGl2ZSBpbiB0aGUgbWVldGluZy5cbiAqXG4gKiBAbWV0aG9kXG4gKiBtZWV0aW5nU3RpbGxUaGVyZVxuICpcbiAqIEBwYXJhbSB7TWVldGluZ1N0aWxsVGhlcmVPcHRpb25zfSBvcHRpb25zIC0gT3B0aW9ucyBmb3IgbWFuYWdpbmcgdGhlIG1vZGFsIHZpc2liaWxpdHk6XG4gKiAgIC0gYHVwZGF0ZUlzQ29uZmlybUhlcmVNb2RhbFZpc2libGVgIHtGdW5jdGlvbn06IEZ1bmN0aW9uIHRvIHNldCB0aGUgdmlzaWJpbGl0eSBvZiB0aGUgXCJzdGlsbCB0aGVyZT9cIiBjb25maXJtYXRpb24gbW9kYWwuXG4gKlxuICogQHJldHVybnMge1Byb21pc2U8dm9pZD59IFVwZGF0ZXMgbW9kYWwgdmlzaWJpbGl0eSB3aGVuIGNoZWNraW5nIGlmIHRoZSB1c2VyIGlzIHN0aWxsIHByZXNlbnQuXG4gKlxuICogQGV4YW1wbGVcbiAqIGNvbnN0IG9wdGlvbnMgPSB7XG4gKiAgIHVwZGF0ZUlzQ29uZmlybUhlcmVNb2RhbFZpc2libGU6IChpc1Zpc2libGUpID0+IGNvbnNvbGUubG9nKGBNb2RhbCB2aXNpYmlsaXR5OiAke2lzVmlzaWJsZX1gKSxcbiAqIH07XG4gKiBtZWV0aW5nU3RpbGxUaGVyZVNlcnZpY2UubWVldGluZ1N0aWxsVGhlcmUob3B0aW9ucyk7XG4gKiAvLyBPdXRwdXQ6IFNldHMgYW5kIGxvZ3MgbW9kYWwgdmlzaWJpbGl0eSB0byB0cnVlXG4gKi9cblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIE1lZXRpbmdTdGlsbFRoZXJlIHtcbiAgLyoqXG4gICAqIEhhbmRsZXMgdGhlIFwic3RpbGwgdGhlcmU/XCIgbWVldGluZyBjaGVjayBieSB1cGRhdGluZyB0aGUgdmlzaWJpbGl0eSBvZiB0aGUgY29uZmlybWF0aW9uIG1vZGFsLlxuICAgKlxuICAgKiBAcGFyYW0ge09iamVjdH0gb3B0aW9ucyAtIFRoZSBvcHRpb25zIGZvciB0aGUgbWVldGluZyBzdGlsbCB0aGVyZSBjaGVjay5cbiAgICogQHBhcmFtIHtGdW5jdGlvbn0gb3B0aW9ucy51cGRhdGVJc0NvbmZpcm1IZXJlTW9kYWxWaXNpYmxlIC0gRnVuY3Rpb24gdG8gdXBkYXRlIHRoZSB2aXNpYmlsaXR5IG9mIHRoZSBcInN0aWxsIHRoZXJlP1wiIG1vZGFsLlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn0gQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgbW9kYWwgdmlzaWJpbGl0eSBpcyB1cGRhdGVkLlxuICAgKi9cbiAgbWVldGluZ1N0aWxsVGhlcmUgPSAoeyB1cGRhdGVJc0NvbmZpcm1IZXJlTW9kYWxWaXNpYmxlIH06IE1lZXRpbmdTdGlsbFRoZXJlT3B0aW9ucyk6IHZvaWQgPT4ge1xuICAgIC8vIFVwZGF0ZSB0aGUgdmlzaWJpbGl0eSBvZiB0aGUgXCJzdGlsbCB0aGVyZT9cIiBtb2RhbFxuICAgIHVwZGF0ZUlzQ29uZmlybUhlcmVNb2RhbFZpc2libGUodHJ1ZSk7XG4gIH07XG59XG4iXX0=
|
package/dist/esm2022/lib/producers/socket-receive-methods/meeting-time-remaining.service.mjs
DELETED
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
/**
|
|
4
|
-
* Service to handle the remaining time for a meeting and display an alert if necessary.
|
|
5
|
-
*
|
|
6
|
-
* @class
|
|
7
|
-
* @name MeetingTimeRemaining
|
|
8
|
-
* @description
|
|
9
|
-
* Manages the display of a time remaining alert for meetings, except when the event type is 'chat'.
|
|
10
|
-
*
|
|
11
|
-
* @method
|
|
12
|
-
* meetingTimeRemaining
|
|
13
|
-
*
|
|
14
|
-
* @param {MeetingTimeRemainingOptions} options - Options for managing meeting time:
|
|
15
|
-
* - `timeRemaining` {number}: The remaining time in milliseconds.
|
|
16
|
-
* - `showAlert` {Function}: Optional function to display an alert message.
|
|
17
|
-
* - `eventType` {EventType}: The type of the event (e.g., "meeting", "broadcast", "chat").
|
|
18
|
-
*
|
|
19
|
-
* @returns {Promise<void>} Displays an alert with the remaining time for the meeting.
|
|
20
|
-
*
|
|
21
|
-
* @example
|
|
22
|
-
* const options = {
|
|
23
|
-
* timeRemaining: 180000, // 3 minutes in milliseconds
|
|
24
|
-
* showAlert: (options) => console.log(options.message),
|
|
25
|
-
* eventType: 'meeting'
|
|
26
|
-
* };
|
|
27
|
-
* await meetingTimeRemainingService.meetingTimeRemaining(options);
|
|
28
|
-
* // Output: Displays "The event will end in 3:00 minutes."
|
|
29
|
-
*/
|
|
30
|
-
export class MeetingTimeRemaining {
|
|
31
|
-
/**
|
|
32
|
-
* Handles the remaining time for a meeting and shows an alert if the event type is not 'chat'.
|
|
33
|
-
*
|
|
34
|
-
* @param {Object} options - The options for the meeting time remaining.
|
|
35
|
-
* @param {number} options.timeRemaining - The remaining time in milliseconds.
|
|
36
|
-
* @param {Function} options.showAlert - The function to show an alert message.
|
|
37
|
-
* @param {string} options.eventType - The type of the event.
|
|
38
|
-
* @returns {Promise<void>} A promise that resolves when the operation is complete.
|
|
39
|
-
*/
|
|
40
|
-
meetingTimeRemaining = async ({ timeRemaining, showAlert, eventType, }) => {
|
|
41
|
-
// Convert time from milliseconds to readable format of minutes and seconds
|
|
42
|
-
const minutes = Math.floor(timeRemaining / 60000);
|
|
43
|
-
const seconds = Math.floor((timeRemaining % 60000) / 1000);
|
|
44
|
-
const timeRemainingString = `${minutes}:${seconds < 10 ? '0' : ''}${seconds}`;
|
|
45
|
-
// Show alert with time remaining if eventType is not 'chat'
|
|
46
|
-
if (eventType !== 'chat') {
|
|
47
|
-
showAlert?.({
|
|
48
|
-
message: `The event will end in ${timeRemainingString} minutes.`,
|
|
49
|
-
type: 'success',
|
|
50
|
-
duration: 3000,
|
|
51
|
-
});
|
|
52
|
-
}
|
|
53
|
-
};
|
|
54
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: MeetingTimeRemaining, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
55
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: MeetingTimeRemaining, providedIn: 'root' });
|
|
56
|
-
}
|
|
57
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: MeetingTimeRemaining, decorators: [{
|
|
58
|
-
type: Injectable,
|
|
59
|
-
args: [{
|
|
60
|
-
providedIn: 'root',
|
|
61
|
-
}]
|
|
62
|
-
}] });
|
|
63
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVldGluZy10aW1lLXJlbWFpbmluZy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWVkaWFzZnUtYW5ndWxhci9zcmMvbGliL3Byb2R1Y2Vycy9zb2NrZXQtcmVjZWl2ZS1tZXRob2RzL21lZXRpbmctdGltZS1yZW1haW5pbmcuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQVkzQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0EwQkc7QUFNSCxNQUFNLE9BQU8sb0JBQW9CO0lBQy9COzs7Ozs7OztPQVFHO0lBQ0gsb0JBQW9CLEdBQUcsS0FBSyxFQUFFLEVBQzVCLGFBQWEsRUFDYixTQUFTLEVBQ1QsU0FBUyxHQUNtQixFQUFpQixFQUFFO1FBQy9DLDJFQUEyRTtRQUMzRSxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUMsQ0FBQztRQUNsRCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDO1FBQzNELE1BQU0sbUJBQW1CLEdBQUcsR0FBRyxPQUFPLElBQUksT0FBTyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsT0FBTyxFQUFFLENBQUM7UUFFOUUsNERBQTREO1FBQzVELElBQUksU0FBUyxLQUFLLE1BQU0sRUFBRSxDQUFDO1lBQ3pCLFNBQVMsRUFBRSxDQUFDO2dCQUNWLE9BQU8sRUFBRSx5QkFBeUIsbUJBQW1CLFdBQVc7Z0JBQ2hFLElBQUksRUFBRSxTQUFTO2dCQUNmLFFBQVEsRUFBRSxJQUFJO2FBQ2YsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztJQUNILENBQUMsQ0FBQzt1R0E1QlMsb0JBQW9COzJHQUFwQixvQkFBb0IsY0FGbkIsTUFBTTs7MkZBRVAsb0JBQW9CO2tCQUhoQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEV2ZW50VHlwZSwgU2hvd0FsZXJ0IH0gZnJvbSAnLi4vLi4vQHR5cGVzL3R5cGVzJztcblxuZXhwb3J0IGludGVyZmFjZSBNZWV0aW5nVGltZVJlbWFpbmluZ09wdGlvbnMge1xuICB0aW1lUmVtYWluaW5nOiBudW1iZXI7XG4gIHNob3dBbGVydD86IFNob3dBbGVydDtcbiAgZXZlbnRUeXBlOiBFdmVudFR5cGU7XG59XG5cbi8vIEV4cG9ydCB0aGUgdHlwZSBkZWZpbml0aW9uIGZvciB0aGUgZnVuY3Rpb25cbmV4cG9ydCB0eXBlIE1lZXRpbmdUaW1lUmVtYWluaW5nVHlwZSA9IChvcHRpb25zOiBNZWV0aW5nVGltZVJlbWFpbmluZ09wdGlvbnMpID0+IFByb21pc2U8dm9pZD47XG5cbi8qKlxuICogU2VydmljZSB0byBoYW5kbGUgdGhlIHJlbWFpbmluZyB0aW1lIGZvciBhIG1lZXRpbmcgYW5kIGRpc3BsYXkgYW4gYWxlcnQgaWYgbmVjZXNzYXJ5LlxuICpcbiAqIEBjbGFzc1xuICogQG5hbWUgTWVldGluZ1RpbWVSZW1haW5pbmdcbiAqIEBkZXNjcmlwdGlvblxuICogTWFuYWdlcyB0aGUgZGlzcGxheSBvZiBhIHRpbWUgcmVtYWluaW5nIGFsZXJ0IGZvciBtZWV0aW5ncywgZXhjZXB0IHdoZW4gdGhlIGV2ZW50IHR5cGUgaXMgJ2NoYXQnLlxuICpcbiAqIEBtZXRob2RcbiAqIG1lZXRpbmdUaW1lUmVtYWluaW5nXG4gKlxuICogQHBhcmFtIHtNZWV0aW5nVGltZVJlbWFpbmluZ09wdGlvbnN9IG9wdGlvbnMgLSBPcHRpb25zIGZvciBtYW5hZ2luZyBtZWV0aW5nIHRpbWU6XG4gKiAgIC0gYHRpbWVSZW1haW5pbmdgIHtudW1iZXJ9OiBUaGUgcmVtYWluaW5nIHRpbWUgaW4gbWlsbGlzZWNvbmRzLlxuICogICAtIGBzaG93QWxlcnRgIHtGdW5jdGlvbn06IE9wdGlvbmFsIGZ1bmN0aW9uIHRvIGRpc3BsYXkgYW4gYWxlcnQgbWVzc2FnZS5cbiAqICAgLSBgZXZlbnRUeXBlYCB7RXZlbnRUeXBlfTogVGhlIHR5cGUgb2YgdGhlIGV2ZW50IChlLmcuLCBcIm1lZXRpbmdcIiwgXCJicm9hZGNhc3RcIiwgXCJjaGF0XCIpLlxuICpcbiAqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fSBEaXNwbGF5cyBhbiBhbGVydCB3aXRoIHRoZSByZW1haW5pbmcgdGltZSBmb3IgdGhlIG1lZXRpbmcuXG4gKlxuICogQGV4YW1wbGVcbiAqIGNvbnN0IG9wdGlvbnMgPSB7XG4gKiAgIHRpbWVSZW1haW5pbmc6IDE4MDAwMCwgLy8gMyBtaW51dGVzIGluIG1pbGxpc2Vjb25kc1xuICogICBzaG93QWxlcnQ6IChvcHRpb25zKSA9PiBjb25zb2xlLmxvZyhvcHRpb25zLm1lc3NhZ2UpLFxuICogICBldmVudFR5cGU6ICdtZWV0aW5nJ1xuICogfTtcbiAqIGF3YWl0IG1lZXRpbmdUaW1lUmVtYWluaW5nU2VydmljZS5tZWV0aW5nVGltZVJlbWFpbmluZyhvcHRpb25zKTtcbiAqIC8vIE91dHB1dDogRGlzcGxheXMgXCJUaGUgZXZlbnQgd2lsbCBlbmQgaW4gMzowMCBtaW51dGVzLlwiXG4gKi9cblxuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgTWVldGluZ1RpbWVSZW1haW5pbmcge1xuICAvKipcbiAgICogSGFuZGxlcyB0aGUgcmVtYWluaW5nIHRpbWUgZm9yIGEgbWVldGluZyBhbmQgc2hvd3MgYW4gYWxlcnQgaWYgdGhlIGV2ZW50IHR5cGUgaXMgbm90ICdjaGF0Jy5cbiAgICpcbiAgICogQHBhcmFtIHtPYmplY3R9IG9wdGlvbnMgLSBUaGUgb3B0aW9ucyBmb3IgdGhlIG1lZXRpbmcgdGltZSByZW1haW5pbmcuXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBvcHRpb25zLnRpbWVSZW1haW5pbmcgLSBUaGUgcmVtYWluaW5nIHRpbWUgaW4gbWlsbGlzZWNvbmRzLlxuICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBvcHRpb25zLnNob3dBbGVydCAtIFRoZSBmdW5jdGlvbiB0byBzaG93IGFuIGFsZXJ0IG1lc3NhZ2UuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBvcHRpb25zLmV2ZW50VHlwZSAtIFRoZSB0eXBlIG9mIHRoZSBldmVudC5cbiAgICogQHJldHVybnMge1Byb21pc2U8dm9pZD59IEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIG9wZXJhdGlvbiBpcyBjb21wbGV0ZS5cbiAgICovXG4gIG1lZXRpbmdUaW1lUmVtYWluaW5nID0gYXN5bmMgKHtcbiAgICB0aW1lUmVtYWluaW5nLFxuICAgIHNob3dBbGVydCxcbiAgICBldmVudFR5cGUsXG4gIH06IE1lZXRpbmdUaW1lUmVtYWluaW5nT3B0aW9ucyk6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgIC8vIENvbnZlcnQgdGltZSBmcm9tIG1pbGxpc2Vjb25kcyB0byByZWFkYWJsZSBmb3JtYXQgb2YgbWludXRlcyBhbmQgc2Vjb25kc1xuICAgIGNvbnN0IG1pbnV0ZXMgPSBNYXRoLmZsb29yKHRpbWVSZW1haW5pbmcgLyA2MDAwMCk7XG4gICAgY29uc3Qgc2Vjb25kcyA9IE1hdGguZmxvb3IoKHRpbWVSZW1haW5pbmcgJSA2MDAwMCkgLyAxMDAwKTtcbiAgICBjb25zdCB0aW1lUmVtYWluaW5nU3RyaW5nID0gYCR7bWludXRlc306JHtzZWNvbmRzIDwgMTAgPyAnMCcgOiAnJ30ke3NlY29uZHN9YDtcblxuICAgIC8vIFNob3cgYWxlcnQgd2l0aCB0aW1lIHJlbWFpbmluZyBpZiBldmVudFR5cGUgaXMgbm90ICdjaGF0J1xuICAgIGlmIChldmVudFR5cGUgIT09ICdjaGF0Jykge1xuICAgICAgc2hvd0FsZXJ0Py4oe1xuICAgICAgICBtZXNzYWdlOiBgVGhlIGV2ZW50IHdpbGwgZW5kIGluICR7dGltZVJlbWFpbmluZ1N0cmluZ30gbWludXRlcy5gLFxuICAgICAgICB0eXBlOiAnc3VjY2VzcycsXG4gICAgICAgIGR1cmF0aW9uOiAzMDAwLFxuICAgICAgfSk7XG4gICAgfVxuICB9O1xufVxuIl19
|
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
/**
|
|
4
|
-
* Service to handle participant requests in an event's waiting room.
|
|
5
|
-
*
|
|
6
|
-
* @class
|
|
7
|
-
* @name ParticipantRequested
|
|
8
|
-
* @description
|
|
9
|
-
* Manages participant requests by adding new requests to the list and updating the total count of requests and waiting room participants.
|
|
10
|
-
*
|
|
11
|
-
* @method
|
|
12
|
-
* participantRequested
|
|
13
|
-
*
|
|
14
|
-
* @param {ParticipantRequestedOptions} options - Contains request information and update functions:
|
|
15
|
-
* - `userRequest` {Request}: The new request from a participant.
|
|
16
|
-
* - `requestList` {Request[]}: The current list of requests.
|
|
17
|
-
* - `waitingRoomList` {WaitingRoomParticipant[]}: The list of participants in the waiting room.
|
|
18
|
-
* - `updateTotalReqWait` {Function}: Function to update the total count of requests and waiting room participants.
|
|
19
|
-
* - `updateRequestList` {Function}: Function to update the request list.
|
|
20
|
-
*
|
|
21
|
-
* @returns {Promise<void>} Updates the request list and total request count.
|
|
22
|
-
*
|
|
23
|
-
* @example
|
|
24
|
-
* const options = {
|
|
25
|
-
* userRequest: { id: '123', name: 'John Doe', icon: 'fa-user', username: 'johndoe' },
|
|
26
|
-
* requestList: existingRequests,
|
|
27
|
-
* waitingRoomList: waitingParticipants,
|
|
28
|
-
* updateTotalReqWait: (count) => console.log(`Total requests: ${count}`),
|
|
29
|
-
* updateRequestList: (list) => console.log('Updated request list', list)
|
|
30
|
-
* };
|
|
31
|
-
* await participantRequestedService.participantRequested(options);
|
|
32
|
-
* // Adds "John Doe" to request list and updates the total count.
|
|
33
|
-
*/
|
|
34
|
-
export class ParticipantRequested {
|
|
35
|
-
/**
|
|
36
|
-
* Handles a participant's request by adding it to the request list and updating the total count of requests and waiting room participants.
|
|
37
|
-
*
|
|
38
|
-
* @param {ParticipantRequestedOptions} options - The options for handling the participant's request.
|
|
39
|
-
* @param {UserRequest} options.userRequest - The user request to be added to the request list.
|
|
40
|
-
* @param {UserRequest[]} options.requestList - The current list of user requests.
|
|
41
|
-
* @param {UserRequest[]} options.waitingRoomList - The current list of participants in the waiting room.
|
|
42
|
-
* @param {Function} options.updateTotalReqWait - Function to update the total count of requests and waiting room participants.
|
|
43
|
-
* @param {Function} options.updateRequestList - Function to update the request list.
|
|
44
|
-
* @returns {Promise<void>} A promise that resolves when the participant's request has been handled.
|
|
45
|
-
*/
|
|
46
|
-
participantRequested = async ({ userRequest, requestList, waitingRoomList, updateTotalReqWait, updateRequestList, }) => {
|
|
47
|
-
// Add the user request to the request list
|
|
48
|
-
const updatedRequestList = [...requestList, userRequest];
|
|
49
|
-
updateRequestList(updatedRequestList);
|
|
50
|
-
// Update the total count of requests and waiting room participants
|
|
51
|
-
const reqCount = updatedRequestList.length + waitingRoomList.length;
|
|
52
|
-
updateTotalReqWait(reqCount);
|
|
53
|
-
};
|
|
54
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ParticipantRequested, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
55
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ParticipantRequested, providedIn: 'root' });
|
|
56
|
-
}
|
|
57
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ParticipantRequested, decorators: [{
|
|
58
|
-
type: Injectable,
|
|
59
|
-
args: [{
|
|
60
|
-
providedIn: 'root',
|
|
61
|
-
}]
|
|
62
|
-
}] });
|
|
63
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFydGljaXBhbnQtcmVxdWVzdGVkLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tZWRpYXNmdS1hbmd1bGFyL3NyYy9saWIvcHJvZHVjZXJzL3NvY2tldC1yZWNlaXZlLW1ldGhvZHMvcGFydGljaXBhbnQtcmVxdWVzdGVkLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFjM0M7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQThCRztBQU1ILE1BQU0sT0FBTyxvQkFBb0I7SUFDL0I7Ozs7Ozs7Ozs7T0FVRztJQUNILG9CQUFvQixHQUFHLEtBQUssRUFBRSxFQUM1QixXQUFXLEVBQ1gsV0FBVyxFQUNYLGVBQWUsRUFDZixrQkFBa0IsRUFDbEIsaUJBQWlCLEdBQ1csRUFBaUIsRUFBRTtRQUMvQywyQ0FBMkM7UUFDM0MsTUFBTSxrQkFBa0IsR0FBRyxDQUFDLEdBQUcsV0FBVyxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBQ3pELGlCQUFpQixDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFFdEMsbUVBQW1FO1FBQ25FLE1BQU0sUUFBUSxHQUFHLGtCQUFrQixDQUFDLE1BQU0sR0FBRyxlQUFlLENBQUMsTUFBTSxDQUFDO1FBQ3BFLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQy9CLENBQUMsQ0FBQzt1R0ExQlMsb0JBQW9COzJHQUFwQixvQkFBb0IsY0FGbkIsTUFBTTs7MkZBRVAsb0JBQW9CO2tCQUhoQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJlcXVlc3QsIFdhaXRpbmdSb29tUGFydGljaXBhbnQgfSBmcm9tICcuLi8uLi9AdHlwZXMvdHlwZXMnO1xuZXhwb3J0IGludGVyZmFjZSBQYXJ0aWNpcGFudFJlcXVlc3RlZE9wdGlvbnMge1xuICB1c2VyUmVxdWVzdDogUmVxdWVzdDtcblxuICByZXF1ZXN0TGlzdDogUmVxdWVzdFtdO1xuICB3YWl0aW5nUm9vbUxpc3Q6IFdhaXRpbmdSb29tUGFydGljaXBhbnRbXTtcbiAgdXBkYXRlVG90YWxSZXFXYWl0OiAoY291bnQ6IG51bWJlcikgPT4gdm9pZDtcbiAgdXBkYXRlUmVxdWVzdExpc3Q6IChsaXN0OiBSZXF1ZXN0W10pID0+IHZvaWQ7XG59XG5cbi8vIEV4cG9ydCB0aGUgdHlwZSBkZWZpbml0aW9uIGZvciB0aGUgZnVuY3Rpb25cbmV4cG9ydCB0eXBlIFBhcnRpY2lwYW50UmVxdWVzdGVkVHlwZSA9IChvcHRpb25zOiBQYXJ0aWNpcGFudFJlcXVlc3RlZE9wdGlvbnMpID0+IFByb21pc2U8dm9pZD47XG5cbi8qKlxuICogU2VydmljZSB0byBoYW5kbGUgcGFydGljaXBhbnQgcmVxdWVzdHMgaW4gYW4gZXZlbnQncyB3YWl0aW5nIHJvb20uXG4gKlxuICogQGNsYXNzXG4gKiBAbmFtZSBQYXJ0aWNpcGFudFJlcXVlc3RlZFxuICogQGRlc2NyaXB0aW9uXG4gKiBNYW5hZ2VzIHBhcnRpY2lwYW50IHJlcXVlc3RzIGJ5IGFkZGluZyBuZXcgcmVxdWVzdHMgdG8gdGhlIGxpc3QgYW5kIHVwZGF0aW5nIHRoZSB0b3RhbCBjb3VudCBvZiByZXF1ZXN0cyBhbmQgd2FpdGluZyByb29tIHBhcnRpY2lwYW50cy5cbiAqXG4gKiBAbWV0aG9kXG4gKiBwYXJ0aWNpcGFudFJlcXVlc3RlZFxuICpcbiAqIEBwYXJhbSB7UGFydGljaXBhbnRSZXF1ZXN0ZWRPcHRpb25zfSBvcHRpb25zIC0gQ29udGFpbnMgcmVxdWVzdCBpbmZvcm1hdGlvbiBhbmQgdXBkYXRlIGZ1bmN0aW9uczpcbiAqICAgLSBgdXNlclJlcXVlc3RgIHtSZXF1ZXN0fTogVGhlIG5ldyByZXF1ZXN0IGZyb20gYSBwYXJ0aWNpcGFudC5cbiAqICAgLSBgcmVxdWVzdExpc3RgIHtSZXF1ZXN0W119OiBUaGUgY3VycmVudCBsaXN0IG9mIHJlcXVlc3RzLlxuICogICAtIGB3YWl0aW5nUm9vbUxpc3RgIHtXYWl0aW5nUm9vbVBhcnRpY2lwYW50W119OiBUaGUgbGlzdCBvZiBwYXJ0aWNpcGFudHMgaW4gdGhlIHdhaXRpbmcgcm9vbS5cbiAqICAgLSBgdXBkYXRlVG90YWxSZXFXYWl0YCB7RnVuY3Rpb259OiBGdW5jdGlvbiB0byB1cGRhdGUgdGhlIHRvdGFsIGNvdW50IG9mIHJlcXVlc3RzIGFuZCB3YWl0aW5nIHJvb20gcGFydGljaXBhbnRzLlxuICogICAtIGB1cGRhdGVSZXF1ZXN0TGlzdGAge0Z1bmN0aW9ufTogRnVuY3Rpb24gdG8gdXBkYXRlIHRoZSByZXF1ZXN0IGxpc3QuXG4gKlxuICogQHJldHVybnMge1Byb21pc2U8dm9pZD59IFVwZGF0ZXMgdGhlIHJlcXVlc3QgbGlzdCBhbmQgdG90YWwgcmVxdWVzdCBjb3VudC5cbiAqXG4gKiBAZXhhbXBsZVxuICogY29uc3Qgb3B0aW9ucyA9IHtcbiAqICAgdXNlclJlcXVlc3Q6IHsgaWQ6ICcxMjMnLCBuYW1lOiAnSm9obiBEb2UnLCBpY29uOiAnZmEtdXNlcicsIHVzZXJuYW1lOiAnam9obmRvZScgfSxcbiAqICAgcmVxdWVzdExpc3Q6IGV4aXN0aW5nUmVxdWVzdHMsXG4gKiAgIHdhaXRpbmdSb29tTGlzdDogd2FpdGluZ1BhcnRpY2lwYW50cyxcbiAqICAgdXBkYXRlVG90YWxSZXFXYWl0OiAoY291bnQpID0+IGNvbnNvbGUubG9nKGBUb3RhbCByZXF1ZXN0czogJHtjb3VudH1gKSxcbiAqICAgdXBkYXRlUmVxdWVzdExpc3Q6IChsaXN0KSA9PiBjb25zb2xlLmxvZygnVXBkYXRlZCByZXF1ZXN0IGxpc3QnLCBsaXN0KVxuICogfTtcbiAqIGF3YWl0IHBhcnRpY2lwYW50UmVxdWVzdGVkU2VydmljZS5wYXJ0aWNpcGFudFJlcXVlc3RlZChvcHRpb25zKTtcbiAqIC8vIEFkZHMgXCJKb2huIERvZVwiIHRvIHJlcXVlc3QgbGlzdCBhbmQgdXBkYXRlcyB0aGUgdG90YWwgY291bnQuXG4gKi9cblxuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgUGFydGljaXBhbnRSZXF1ZXN0ZWQge1xuICAvKipcbiAgICogSGFuZGxlcyBhIHBhcnRpY2lwYW50J3MgcmVxdWVzdCBieSBhZGRpbmcgaXQgdG8gdGhlIHJlcXVlc3QgbGlzdCBhbmQgdXBkYXRpbmcgdGhlIHRvdGFsIGNvdW50IG9mIHJlcXVlc3RzIGFuZCB3YWl0aW5nIHJvb20gcGFydGljaXBhbnRzLlxuICAgKlxuICAgKiBAcGFyYW0ge1BhcnRpY2lwYW50UmVxdWVzdGVkT3B0aW9uc30gb3B0aW9ucyAtIFRoZSBvcHRpb25zIGZvciBoYW5kbGluZyB0aGUgcGFydGljaXBhbnQncyByZXF1ZXN0LlxuICAgKiBAcGFyYW0ge1VzZXJSZXF1ZXN0fSBvcHRpb25zLnVzZXJSZXF1ZXN0IC0gVGhlIHVzZXIgcmVxdWVzdCB0byBiZSBhZGRlZCB0byB0aGUgcmVxdWVzdCBsaXN0LlxuICAgKiBAcGFyYW0ge1VzZXJSZXF1ZXN0W119IG9wdGlvbnMucmVxdWVzdExpc3QgLSBUaGUgY3VycmVudCBsaXN0IG9mIHVzZXIgcmVxdWVzdHMuXG4gICAqIEBwYXJhbSB7VXNlclJlcXVlc3RbXX0gb3B0aW9ucy53YWl0aW5nUm9vbUxpc3QgLSBUaGUgY3VycmVudCBsaXN0IG9mIHBhcnRpY2lwYW50cyBpbiB0aGUgd2FpdGluZyByb29tLlxuICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBvcHRpb25zLnVwZGF0ZVRvdGFsUmVxV2FpdCAtIEZ1bmN0aW9uIHRvIHVwZGF0ZSB0aGUgdG90YWwgY291bnQgb2YgcmVxdWVzdHMgYW5kIHdhaXRpbmcgcm9vbSBwYXJ0aWNpcGFudHMuXG4gICAqIEBwYXJhbSB7RnVuY3Rpb259IG9wdGlvbnMudXBkYXRlUmVxdWVzdExpc3QgLSBGdW5jdGlvbiB0byB1cGRhdGUgdGhlIHJlcXVlc3QgbGlzdC5cbiAgICogQHJldHVybnMge1Byb21pc2U8dm9pZD59IEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIHBhcnRpY2lwYW50J3MgcmVxdWVzdCBoYXMgYmVlbiBoYW5kbGVkLlxuICAgKi9cbiAgcGFydGljaXBhbnRSZXF1ZXN0ZWQgPSBhc3luYyAoe1xuICAgIHVzZXJSZXF1ZXN0LFxuICAgIHJlcXVlc3RMaXN0LFxuICAgIHdhaXRpbmdSb29tTGlzdCxcbiAgICB1cGRhdGVUb3RhbFJlcVdhaXQsXG4gICAgdXBkYXRlUmVxdWVzdExpc3QsXG4gIH06IFBhcnRpY2lwYW50UmVxdWVzdGVkT3B0aW9ucyk6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgIC8vIEFkZCB0aGUgdXNlciByZXF1ZXN0IHRvIHRoZSByZXF1ZXN0IGxpc3RcbiAgICBjb25zdCB1cGRhdGVkUmVxdWVzdExpc3QgPSBbLi4ucmVxdWVzdExpc3QsIHVzZXJSZXF1ZXN0XTtcbiAgICB1cGRhdGVSZXF1ZXN0TGlzdCh1cGRhdGVkUmVxdWVzdExpc3QpO1xuXG4gICAgLy8gVXBkYXRlIHRoZSB0b3RhbCBjb3VudCBvZiByZXF1ZXN0cyBhbmQgd2FpdGluZyByb29tIHBhcnRpY2lwYW50c1xuICAgIGNvbnN0IHJlcUNvdW50ID0gdXBkYXRlZFJlcXVlc3RMaXN0Lmxlbmd0aCArIHdhaXRpbmdSb29tTGlzdC5sZW5ndGg7XG4gICAgdXBkYXRlVG90YWxSZXFXYWl0KHJlcUNvdW50KTtcbiAgfTtcbn1cbiJdfQ==
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
/**
|
|
4
|
-
* Service to handle actions when a person joins an event.
|
|
5
|
-
*
|
|
6
|
-
* @class
|
|
7
|
-
* @name PersonJoined
|
|
8
|
-
* @description
|
|
9
|
-
* Displays a notification when a person joins the event, using the `showAlert` function if provided.
|
|
10
|
-
*
|
|
11
|
-
* @method
|
|
12
|
-
* personJoined
|
|
13
|
-
*
|
|
14
|
-
* @param {PersonJoinedOptions} options - Contains information about the person and alert display function:
|
|
15
|
-
* - `name` {string}: The name of the person who joined.
|
|
16
|
-
* - `showAlert` {Function} (optional): Function to display a notification when the person joins.
|
|
17
|
-
*
|
|
18
|
-
* @returns {void} Executes alert display through `showAlert` if defined.
|
|
19
|
-
*
|
|
20
|
-
* @example
|
|
21
|
-
* const options = {
|
|
22
|
-
* name: 'Alice',
|
|
23
|
-
* showAlert: ({ message, type, duration }) => console.log(message)
|
|
24
|
-
* };
|
|
25
|
-
* personJoinedService.personJoined(options);
|
|
26
|
-
* // Logs: "Alice joined the event."
|
|
27
|
-
*/
|
|
28
|
-
export class PersonJoined {
|
|
29
|
-
/**
|
|
30
|
-
* Handles the event when a person joins.
|
|
31
|
-
*
|
|
32
|
-
* @param {PersonJoinedOptions} options - The options for the person joined event.
|
|
33
|
-
* @param {string} options.name - The name of the person who joined.
|
|
34
|
-
* @param {Function} options.showAlert - A function to display an alert/notification.
|
|
35
|
-
* @returns {Promise<void>} A promise that resolves when the alert has been shown.
|
|
36
|
-
*/
|
|
37
|
-
personJoined = ({ name, showAlert }) => {
|
|
38
|
-
// Display an alert/notification about the person joining the event
|
|
39
|
-
showAlert?.({
|
|
40
|
-
message: `${name} joined the event.`,
|
|
41
|
-
type: 'success',
|
|
42
|
-
duration: 3000,
|
|
43
|
-
});
|
|
44
|
-
};
|
|
45
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: PersonJoined, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
46
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: PersonJoined, providedIn: 'root' });
|
|
47
|
-
}
|
|
48
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: PersonJoined, decorators: [{
|
|
49
|
-
type: Injectable,
|
|
50
|
-
args: [{
|
|
51
|
-
providedIn: 'root',
|
|
52
|
-
}]
|
|
53
|
-
}] });
|
|
54
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVyc29uLWpvaW5lZC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWVkaWFzZnUtYW5ndWxhci9zcmMvbGliL3Byb2R1Y2Vycy9zb2NrZXQtcmVjZWl2ZS1tZXRob2RzL3BlcnNvbi1qb2luZWQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQVczQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBd0JHO0FBS0gsTUFBTSxPQUFPLFlBQVk7SUFDdkI7Ozs7Ozs7T0FPRztJQUNILFlBQVksR0FBRyxDQUFDLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBdUIsRUFBUSxFQUFFO1FBQ2hFLG1FQUFtRTtRQUNuRSxTQUFTLEVBQUUsQ0FBQztZQUNWLE9BQU8sRUFBRSxHQUFHLElBQUksb0JBQW9CO1lBQ3BDLElBQUksRUFBRSxTQUFTO1lBQ2YsUUFBUSxFQUFFLElBQUk7U0FDZixDQUFDLENBQUM7SUFDTCxDQUFDLENBQUM7dUdBaEJTLFlBQVk7MkdBQVosWUFBWSxjQUZYLE1BQU07OzJGQUVQLFlBQVk7a0JBSHhCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2hvd0FsZXJ0IH0gZnJvbSAnLi4vLi4vQHR5cGVzL3R5cGVzJztcblxuZXhwb3J0IGludGVyZmFjZSBQZXJzb25Kb2luZWRPcHRpb25zIHtcbiAgc2hvd0FsZXJ0PzogU2hvd0FsZXJ0O1xuICBuYW1lOiBzdHJpbmc7XG59XG5cbi8vIEV4cG9ydCB0aGUgdHlwZSBkZWZpbml0aW9uIGZvciB0aGUgZnVuY3Rpb25cbmV4cG9ydCB0eXBlIFBlcnNvbkpvaW5lZFR5cGUgPSAob3B0aW9uczogUGVyc29uSm9pbmVkT3B0aW9ucykgPT4gUHJvbWlzZTx2b2lkPjtcblxuLyoqXG4gKiBTZXJ2aWNlIHRvIGhhbmRsZSBhY3Rpb25zIHdoZW4gYSBwZXJzb24gam9pbnMgYW4gZXZlbnQuXG4gKlxuICogQGNsYXNzXG4gKiBAbmFtZSBQZXJzb25Kb2luZWRcbiAqIEBkZXNjcmlwdGlvblxuICogRGlzcGxheXMgYSBub3RpZmljYXRpb24gd2hlbiBhIHBlcnNvbiBqb2lucyB0aGUgZXZlbnQsIHVzaW5nIHRoZSBgc2hvd0FsZXJ0YCBmdW5jdGlvbiBpZiBwcm92aWRlZC5cbiAqXG4gKiBAbWV0aG9kXG4gKiBwZXJzb25Kb2luZWRcbiAqXG4gKiBAcGFyYW0ge1BlcnNvbkpvaW5lZE9wdGlvbnN9IG9wdGlvbnMgLSBDb250YWlucyBpbmZvcm1hdGlvbiBhYm91dCB0aGUgcGVyc29uIGFuZCBhbGVydCBkaXNwbGF5IGZ1bmN0aW9uOlxuICogICAtIGBuYW1lYCB7c3RyaW5nfTogVGhlIG5hbWUgb2YgdGhlIHBlcnNvbiB3aG8gam9pbmVkLlxuICogICAtIGBzaG93QWxlcnRgIHtGdW5jdGlvbn0gKG9wdGlvbmFsKTogRnVuY3Rpb24gdG8gZGlzcGxheSBhIG5vdGlmaWNhdGlvbiB3aGVuIHRoZSBwZXJzb24gam9pbnMuXG4gKlxuICogQHJldHVybnMge3ZvaWR9IEV4ZWN1dGVzIGFsZXJ0IGRpc3BsYXkgdGhyb3VnaCBgc2hvd0FsZXJ0YCBpZiBkZWZpbmVkLlxuICpcbiAqIEBleGFtcGxlXG4gKiBjb25zdCBvcHRpb25zID0ge1xuICogICBuYW1lOiAnQWxpY2UnLFxuICogICBzaG93QWxlcnQ6ICh7IG1lc3NhZ2UsIHR5cGUsIGR1cmF0aW9uIH0pID0+IGNvbnNvbGUubG9nKG1lc3NhZ2UpXG4gKiB9O1xuICogcGVyc29uSm9pbmVkU2VydmljZS5wZXJzb25Kb2luZWQob3B0aW9ucyk7XG4gKiAvLyBMb2dzOiBcIkFsaWNlIGpvaW5lZCB0aGUgZXZlbnQuXCJcbiAqL1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgUGVyc29uSm9pbmVkIHtcbiAgLyoqXG4gICAqIEhhbmRsZXMgdGhlIGV2ZW50IHdoZW4gYSBwZXJzb24gam9pbnMuXG4gICAqXG4gICAqIEBwYXJhbSB7UGVyc29uSm9pbmVkT3B0aW9uc30gb3B0aW9ucyAtIFRoZSBvcHRpb25zIGZvciB0aGUgcGVyc29uIGpvaW5lZCBldmVudC5cbiAgICogQHBhcmFtIHtzdHJpbmd9IG9wdGlvbnMubmFtZSAtIFRoZSBuYW1lIG9mIHRoZSBwZXJzb24gd2hvIGpvaW5lZC5cbiAgICogQHBhcmFtIHtGdW5jdGlvbn0gb3B0aW9ucy5zaG93QWxlcnQgLSBBIGZ1bmN0aW9uIHRvIGRpc3BsYXkgYW4gYWxlcnQvbm90aWZpY2F0aW9uLlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn0gQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgYWxlcnQgaGFzIGJlZW4gc2hvd24uXG4gICAqL1xuICBwZXJzb25Kb2luZWQgPSAoeyBuYW1lLCBzaG93QWxlcnQgfTogUGVyc29uSm9pbmVkT3B0aW9ucyk6IHZvaWQgPT4ge1xuICAgIC8vIERpc3BsYXkgYW4gYWxlcnQvbm90aWZpY2F0aW9uIGFib3V0IHRoZSBwZXJzb24gam9pbmluZyB0aGUgZXZlbnRcbiAgICBzaG93QWxlcnQ/Lih7XG4gICAgICBtZXNzYWdlOiBgJHtuYW1lfSBqb2luZWQgdGhlIGV2ZW50LmAsXG4gICAgICB0eXBlOiAnc3VjY2VzcycsXG4gICAgICBkdXJhdGlvbjogMzAwMCxcbiAgICB9KTtcbiAgfTtcbn1cbiJdfQ==
|
|
@@ -1,129 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
/**
|
|
4
|
-
* Service to handle closing a media producer and associated UI and state updates.
|
|
5
|
-
*
|
|
6
|
-
* @class
|
|
7
|
-
* @name ProducerMediaClosed
|
|
8
|
-
* @description
|
|
9
|
-
* Manages the closure of a media producer by identifying associated consumer transports, closing necessary resources,
|
|
10
|
-
* and updating the user interface to reflect the change. For screen sharing, it resets the shared state and adjusts the main view.
|
|
11
|
-
*
|
|
12
|
-
* @method
|
|
13
|
-
* producerMediaClosed
|
|
14
|
-
*
|
|
15
|
-
* @param {ProducerMediaClosedOptions} options - Contains details on the producer and parameters for state updates:
|
|
16
|
-
* - `producerId` {string}: ID of the producer to close.
|
|
17
|
-
* - `kind` {string}: The type of media to close (e.g., "screenshare" or "audio").
|
|
18
|
-
* - `parameters` {ProducerMediaClosedParameters}: Settings and update functions to manage the closure process.
|
|
19
|
-
* - `consumerTransports` {Transport[]}: List of active transports for consumers.
|
|
20
|
-
* - `updateConsumerTransports` {Function}: Updates the list of active consumer transports.
|
|
21
|
-
* - `hostLabel` {string}: Label of the host to revert to if screen sharing ends.
|
|
22
|
-
* - `shared` {boolean}: Indicates whether a screen is currently shared.
|
|
23
|
-
* - `updateShared` {Function}: Updates the shared screen state.
|
|
24
|
-
* - `updateShareScreenStarted` {Function}: Marks the start or end of screen sharing.
|
|
25
|
-
* - `updateScreenId` {Function}: Clears the screen ID when screen sharing ends.
|
|
26
|
-
* - `updateShareEnded` {Function}: Marks the end of screen sharing.
|
|
27
|
-
* - `closeAndResize` {Function}: Adjusts the screen display upon closing the media.
|
|
28
|
-
* - `prepopulateUserMedia` {Function}: Loads default media after screen sharing ends.
|
|
29
|
-
* - `reorderStreams` {Function}: Reorders streams to optimize layout when media is closed.
|
|
30
|
-
*
|
|
31
|
-
* @returns {Promise<void>} Resolves when all updates are complete and the producer closure is handled.
|
|
32
|
-
*
|
|
33
|
-
* @example
|
|
34
|
-
* const options = {
|
|
35
|
-
* producerId: '12345',
|
|
36
|
-
* kind: 'screenshare',
|
|
37
|
-
* parameters: {
|
|
38
|
-
* consumerTransports: [...],
|
|
39
|
-
* updateConsumerTransports: (transports) => { ... },
|
|
40
|
-
* hostLabel: 'Host',
|
|
41
|
-
* shared: true,
|
|
42
|
-
* updateShared: (shared) => { ... },
|
|
43
|
-
* updateShareScreenStarted: (started) => { ... },
|
|
44
|
-
* updateScreenId: (id) => { ... },
|
|
45
|
-
* updateShareEnded: (ended) => { ... },
|
|
46
|
-
* closeAndResize: ({ producerId, kind, parameters }) => { ... },
|
|
47
|
-
* prepopulateUserMedia: ({ name, parameters }) => { ... },
|
|
48
|
-
* reorderStreams: ({ add, screenChanged, parameters }) => { ... },
|
|
49
|
-
* }
|
|
50
|
-
* };
|
|
51
|
-
*
|
|
52
|
-
* producerMediaClosedService.producerMediaClosed(options)
|
|
53
|
-
* .then(() => console.log('Producer closed successfully'))
|
|
54
|
-
* .catch(error => console.error('Error:', error));
|
|
55
|
-
*
|
|
56
|
-
* @remarks
|
|
57
|
-
* This service performs the following steps:
|
|
58
|
-
* 1. Retrieves updated parameters.
|
|
59
|
-
* 2. Finds and closes the transport associated with the producer.
|
|
60
|
-
* 3. Updates the list of consumer transports.
|
|
61
|
-
* 4. Adjusts the display layout with `closeAndResize`.
|
|
62
|
-
* 5. If the producer is a screen share, resets shared state and reloads default media.
|
|
63
|
-
*/
|
|
64
|
-
export class ProducerMediaClosed {
|
|
65
|
-
/**
|
|
66
|
-
* Handles the closure of a media producer.
|
|
67
|
-
*
|
|
68
|
-
* @param {ProducerMediaClosedOptions} options - The options for closing the media producer.
|
|
69
|
-
* @param {string} options.producerId - The ID of the producer to close.
|
|
70
|
-
* @param {string} options.kind - The kind of media (e.g., "screenshare" or "screen").
|
|
71
|
-
* @param {Parameters} options.parameters - The parameters object containing various methods and properties.
|
|
72
|
-
*
|
|
73
|
-
* @returns {Promise<void>} - A promise that resolves when the producer has been closed and necessary updates are made.
|
|
74
|
-
*
|
|
75
|
-
* @remarks
|
|
76
|
-
* This function performs the following steps:
|
|
77
|
-
* 1. Retrieves updated parameters.
|
|
78
|
-
* 2. Finds the transport associated with the producer to close.
|
|
79
|
-
* 3. Closes the consumer transport and consumer if found.
|
|
80
|
-
* 4. Updates the consumer transports list.
|
|
81
|
-
* 5. Calls `closeAndResize` with the necessary parameters.
|
|
82
|
-
* 6. If the producer kind is "screenshare" or "screen", updates shared state and calls various update methods.
|
|
83
|
-
*/
|
|
84
|
-
producerMediaClosed = async ({ producerId, kind, parameters, }) => {
|
|
85
|
-
parameters = parameters.getUpdatedAllParams();
|
|
86
|
-
const { consumerTransports, updateConsumerTransports, hostLabel, shared, updateShared, updateShareScreenStarted, updateScreenId, updateShareEnded, closeAndResize, prepopulateUserMedia, reorderStreams, } = parameters;
|
|
87
|
-
const producerToClose = consumerTransports.find((transportData) => transportData.producerId === producerId);
|
|
88
|
-
if (producerToClose) {
|
|
89
|
-
try {
|
|
90
|
-
await producerToClose['consumerTransport'].close();
|
|
91
|
-
}
|
|
92
|
-
catch (error) {
|
|
93
|
-
console.error('Error closing consumer transport:', error);
|
|
94
|
-
}
|
|
95
|
-
try {
|
|
96
|
-
producerToClose.consumer.close();
|
|
97
|
-
}
|
|
98
|
-
catch (error) {
|
|
99
|
-
console.error('Error closing consumer:', error);
|
|
100
|
-
}
|
|
101
|
-
const updatedConsumerTransports = consumerTransports.filter((transportData) => transportData.producerId !== producerId);
|
|
102
|
-
updateConsumerTransports(updatedConsumerTransports);
|
|
103
|
-
await closeAndResize({ producerId, kind, parameters });
|
|
104
|
-
}
|
|
105
|
-
else {
|
|
106
|
-
if (kind === 'screenshare' || kind === 'screen') {
|
|
107
|
-
if (shared) {
|
|
108
|
-
updateShared(false);
|
|
109
|
-
}
|
|
110
|
-
else {
|
|
111
|
-
updateShareScreenStarted(false);
|
|
112
|
-
updateScreenId('');
|
|
113
|
-
}
|
|
114
|
-
updateShareEnded(true);
|
|
115
|
-
await prepopulateUserMedia({ name: hostLabel, parameters });
|
|
116
|
-
await reorderStreams({ add: false, screenChanged: true, parameters });
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
};
|
|
120
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ProducerMediaClosed, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
121
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ProducerMediaClosed, providedIn: 'root' });
|
|
122
|
-
}
|
|
123
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ProducerMediaClosed, decorators: [{
|
|
124
|
-
type: Injectable,
|
|
125
|
-
args: [{
|
|
126
|
-
providedIn: 'root',
|
|
127
|
-
}]
|
|
128
|
-
}] });
|
|
129
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjZXItbWVkaWEtY2xvc2VkLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tZWRpYXNmdS1hbmd1bGFyL3NyYy9saWIvcHJvZHVjZXJzL3NvY2tldC1yZWNlaXZlLW1ldGhvZHMvcHJvZHVjZXItbWVkaWEtY2xvc2VkLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUEwQzNDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E0REc7QUFLSCxNQUFNLE9BQU8sbUJBQW1CO0lBQzlCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7T0FrQkc7SUFDSCxtQkFBbUIsR0FBRyxLQUFLLEVBQUUsRUFDM0IsVUFBVSxFQUNWLElBQUksRUFDSixVQUFVLEdBQ2lCLEVBQWlCLEVBQUU7UUFDOUMsVUFBVSxHQUFHLFVBQVUsQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1FBRTlDLE1BQU0sRUFDSixrQkFBa0IsRUFDbEIsd0JBQXdCLEVBQ3hCLFNBQVMsRUFDVCxNQUFNLEVBQ04sWUFBWSxFQUNaLHdCQUF3QixFQUN4QixjQUFjLEVBQ2QsZ0JBQWdCLEVBQ2hCLGNBQWMsRUFDZCxvQkFBb0IsRUFDcEIsY0FBYyxHQUNmLEdBQUcsVUFBVSxDQUFDO1FBRWYsTUFBTSxlQUFlLEdBQUcsa0JBQWtCLENBQUMsSUFBSSxDQUM3QyxDQUFDLGFBQWtCLEVBQUUsRUFBRSxDQUFDLGFBQWEsQ0FBQyxVQUFVLEtBQUssVUFBVSxDQUNoRSxDQUFDO1FBRUYsSUFBSSxlQUFlLEVBQUUsQ0FBQztZQUNwQixJQUFJLENBQUM7Z0JBQ0gsTUFBTSxlQUFlLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNyRCxDQUFDO1lBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztnQkFDZixPQUFPLENBQUMsS0FBSyxDQUFDLG1DQUFtQyxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQzVELENBQUM7WUFFRCxJQUFJLENBQUM7Z0JBQ0gsZUFBZSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNuQyxDQUFDO1lBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztnQkFDZixPQUFPLENBQUMsS0FBSyxDQUFDLHlCQUF5QixFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ2xELENBQUM7WUFFRCxNQUFNLHlCQUF5QixHQUFHLGtCQUFrQixDQUFDLE1BQU0sQ0FDekQsQ0FBQyxhQUFrQixFQUFFLEVBQUUsQ0FBQyxhQUFhLENBQUMsVUFBVSxLQUFLLFVBQVUsQ0FDaEUsQ0FBQztZQUNGLHdCQUF3QixDQUFDLHlCQUF5QixDQUFDLENBQUM7WUFFcEQsTUFBTSxjQUFjLENBQUMsRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUM7UUFDekQsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLElBQUksS0FBSyxhQUFhLElBQUksSUFBSSxLQUFLLFFBQVEsRUFBRSxDQUFDO2dCQUNoRCxJQUFJLE1BQU0sRUFBRSxDQUFDO29CQUNYLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDdEIsQ0FBQztxQkFBTSxDQUFDO29CQUNOLHdCQUF3QixDQUFDLEtBQUssQ0FBQyxDQUFDO29CQUNoQyxjQUFjLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQ3JCLENBQUM7Z0JBQ0QsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ3ZCLE1BQU0sb0JBQW9CLENBQUMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUM7Z0JBQzVELE1BQU0sY0FBYyxDQUFDLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxhQUFhLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUM7WUFDeEUsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDLENBQUM7dUdBN0VTLG1CQUFtQjsyR0FBbkIsbUJBQW1CLGNBRmxCLE1BQU07OzJGQUVQLG1CQUFtQjtrQkFIL0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBDbG9zZUFuZFJlc2l6ZVBhcmFtZXRlcnMsXG4gIENsb3NlQW5kUmVzaXplVHlwZSxcbiAgUHJlcG9wdWxhdGVVc2VyTWVkaWFQYXJhbWV0ZXJzLFxuICBQcmVwb3B1bGF0ZVVzZXJNZWRpYVR5cGUsXG4gIFJlb3JkZXJTdHJlYW1zUGFyYW1ldGVycyxcbiAgUmVvcmRlclN0cmVhbXNUeXBlLFxuICBUcmFuc3BvcnQsXG59IGZyb20gJy4uLy4uL0B0eXBlcy90eXBlcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHJvZHVjZXJNZWRpYUNsb3NlZFBhcmFtZXRlcnNcbiAgZXh0ZW5kcyBDbG9zZUFuZFJlc2l6ZVBhcmFtZXRlcnMsXG4gICAgUHJlcG9wdWxhdGVVc2VyTWVkaWFQYXJhbWV0ZXJzLFxuICAgIFJlb3JkZXJTdHJlYW1zUGFyYW1ldGVycyB7XG4gIGNvbnN1bWVyVHJhbnNwb3J0czogVHJhbnNwb3J0W107XG4gIHVwZGF0ZUNvbnN1bWVyVHJhbnNwb3J0czogKHRyYW5zcG9ydHM6IFRyYW5zcG9ydFtdKSA9PiB2b2lkO1xuICBob3N0TGFiZWw6IHN0cmluZztcbiAgc2hhcmVkOiBib29sZWFuO1xuICB1cGRhdGVTaGFyZWQ6IChzaGFyZWQ6IGJvb2xlYW4pID0+IHZvaWQ7XG4gIHVwZGF0ZVNoYXJlU2NyZWVuU3RhcnRlZDogKHN0YXJ0ZWQ6IGJvb2xlYW4pID0+IHZvaWQ7XG4gIHVwZGF0ZVNjcmVlbklkOiAoc2NyZWVuSWQ6IHN0cmluZykgPT4gdm9pZDtcbiAgdXBkYXRlU2hhcmVFbmRlZDogKGVuZGVkOiBib29sZWFuKSA9PiB2b2lkO1xuXG4gIC8vIG1lZGlhc2Z1IGZ1bmN0aW9uc1xuICBjbG9zZUFuZFJlc2l6ZTogQ2xvc2VBbmRSZXNpemVUeXBlO1xuICBwcmVwb3B1bGF0ZVVzZXJNZWRpYTogUHJlcG9wdWxhdGVVc2VyTWVkaWFUeXBlO1xuICByZW9yZGVyU3RyZWFtczogUmVvcmRlclN0cmVhbXNUeXBlO1xuXG4gIGdldFVwZGF0ZWRBbGxQYXJhbXM6ICgpID0+IFByb2R1Y2VyTWVkaWFDbG9zZWRQYXJhbWV0ZXJzO1xuICBba2V5OiBzdHJpbmddOiBhbnk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHJvZHVjZXJNZWRpYUNsb3NlZE9wdGlvbnMge1xuICBwcm9kdWNlcklkOiBzdHJpbmc7XG4gIGtpbmQ6ICd2aWRlbycgfCAnc2NyZWVuJyB8ICdhdWRpbycgfCAnc2NyZWVuc2hhcmUnO1xuICBwYXJhbWV0ZXJzOiBQcm9kdWNlck1lZGlhQ2xvc2VkUGFyYW1ldGVycztcbn1cblxuLy8gRXhwb3J0IHRoZSB0eXBlIGRlZmluaXRpb24gZm9yIHRoZSBmdW5jdGlvblxuZXhwb3J0IHR5cGUgUHJvZHVjZXJNZWRpYUNsb3NlZFR5cGUgPSAob3B0aW9uczogUHJvZHVjZXJNZWRpYUNsb3NlZE9wdGlvbnMpID0+IFByb21pc2U8dm9pZD47XG5cbi8qKlxuICogU2VydmljZSB0byBoYW5kbGUgY2xvc2luZyBhIG1lZGlhIHByb2R1Y2VyIGFuZCBhc3NvY2lhdGVkIFVJIGFuZCBzdGF0ZSB1cGRhdGVzLlxuICpcbiAqIEBjbGFzc1xuICogQG5hbWUgUHJvZHVjZXJNZWRpYUNsb3NlZFxuICogQGRlc2NyaXB0aW9uXG4gKiBNYW5hZ2VzIHRoZSBjbG9zdXJlIG9mIGEgbWVkaWEgcHJvZHVjZXIgYnkgaWRlbnRpZnlpbmcgYXNzb2NpYXRlZCBjb25zdW1lciB0cmFuc3BvcnRzLCBjbG9zaW5nIG5lY2Vzc2FyeSByZXNvdXJjZXMsXG4gKiBhbmQgdXBkYXRpbmcgdGhlIHVzZXIgaW50ZXJmYWNlIHRvIHJlZmxlY3QgdGhlIGNoYW5nZS4gRm9yIHNjcmVlbiBzaGFyaW5nLCBpdCByZXNldHMgdGhlIHNoYXJlZCBzdGF0ZSBhbmQgYWRqdXN0cyB0aGUgbWFpbiB2aWV3LlxuICpcbiAqIEBtZXRob2RcbiAqIHByb2R1Y2VyTWVkaWFDbG9zZWRcbiAqXG4gKiBAcGFyYW0ge1Byb2R1Y2VyTWVkaWFDbG9zZWRPcHRpb25zfSBvcHRpb25zIC0gQ29udGFpbnMgZGV0YWlscyBvbiB0aGUgcHJvZHVjZXIgYW5kIHBhcmFtZXRlcnMgZm9yIHN0YXRlIHVwZGF0ZXM6XG4gKiAgIC0gYHByb2R1Y2VySWRgIHtzdHJpbmd9OiBJRCBvZiB0aGUgcHJvZHVjZXIgdG8gY2xvc2UuXG4gKiAgIC0gYGtpbmRgIHtzdHJpbmd9OiBUaGUgdHlwZSBvZiBtZWRpYSB0byBjbG9zZSAoZS5nLiwgXCJzY3JlZW5zaGFyZVwiIG9yIFwiYXVkaW9cIikuXG4gKiAgIC0gYHBhcmFtZXRlcnNgIHtQcm9kdWNlck1lZGlhQ2xvc2VkUGFyYW1ldGVyc306IFNldHRpbmdzIGFuZCB1cGRhdGUgZnVuY3Rpb25zIHRvIG1hbmFnZSB0aGUgY2xvc3VyZSBwcm9jZXNzLlxuICogICAgICAtIGBjb25zdW1lclRyYW5zcG9ydHNgIHtUcmFuc3BvcnRbXX06IExpc3Qgb2YgYWN0aXZlIHRyYW5zcG9ydHMgZm9yIGNvbnN1bWVycy5cbiAqICAgICAgLSBgdXBkYXRlQ29uc3VtZXJUcmFuc3BvcnRzYCB7RnVuY3Rpb259OiBVcGRhdGVzIHRoZSBsaXN0IG9mIGFjdGl2ZSBjb25zdW1lciB0cmFuc3BvcnRzLlxuICogICAgICAtIGBob3N0TGFiZWxgIHtzdHJpbmd9OiBMYWJlbCBvZiB0aGUgaG9zdCB0byByZXZlcnQgdG8gaWYgc2NyZWVuIHNoYXJpbmcgZW5kcy5cbiAqICAgICAgLSBgc2hhcmVkYCB7Ym9vbGVhbn06IEluZGljYXRlcyB3aGV0aGVyIGEgc2NyZWVuIGlzIGN1cnJlbnRseSBzaGFyZWQuXG4gKiAgICAgIC0gYHVwZGF0ZVNoYXJlZGAge0Z1bmN0aW9ufTogVXBkYXRlcyB0aGUgc2hhcmVkIHNjcmVlbiBzdGF0ZS5cbiAqICAgICAgLSBgdXBkYXRlU2hhcmVTY3JlZW5TdGFydGVkYCB7RnVuY3Rpb259OiBNYXJrcyB0aGUgc3RhcnQgb3IgZW5kIG9mIHNjcmVlbiBzaGFyaW5nLlxuICogICAgICAtIGB1cGRhdGVTY3JlZW5JZGAge0Z1bmN0aW9ufTogQ2xlYXJzIHRoZSBzY3JlZW4gSUQgd2hlbiBzY3JlZW4gc2hhcmluZyBlbmRzLlxuICogICAgICAtIGB1cGRhdGVTaGFyZUVuZGVkYCB7RnVuY3Rpb259OiBNYXJrcyB0aGUgZW5kIG9mIHNjcmVlbiBzaGFyaW5nLlxuICogICAgICAtIGBjbG9zZUFuZFJlc2l6ZWAge0Z1bmN0aW9ufTogQWRqdXN0cyB0aGUgc2NyZWVuIGRpc3BsYXkgdXBvbiBjbG9zaW5nIHRoZSBtZWRpYS5cbiAqICAgICAgLSBgcHJlcG9wdWxhdGVVc2VyTWVkaWFgIHtGdW5jdGlvbn06IExvYWRzIGRlZmF1bHQgbWVkaWEgYWZ0ZXIgc2NyZWVuIHNoYXJpbmcgZW5kcy5cbiAqICAgICAgLSBgcmVvcmRlclN0cmVhbXNgIHtGdW5jdGlvbn06IFJlb3JkZXJzIHN0cmVhbXMgdG8gb3B0aW1pemUgbGF5b3V0IHdoZW4gbWVkaWEgaXMgY2xvc2VkLlxuICpcbiAqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fSBSZXNvbHZlcyB3aGVuIGFsbCB1cGRhdGVzIGFyZSBjb21wbGV0ZSBhbmQgdGhlIHByb2R1Y2VyIGNsb3N1cmUgaXMgaGFuZGxlZC5cbiAqXG4gKiBAZXhhbXBsZVxuICogY29uc3Qgb3B0aW9ucyA9IHtcbiAqICAgcHJvZHVjZXJJZDogJzEyMzQ1JyxcbiAqICAga2luZDogJ3NjcmVlbnNoYXJlJyxcbiAqICAgcGFyYW1ldGVyczoge1xuICogICAgIGNvbnN1bWVyVHJhbnNwb3J0czogWy4uLl0sXG4gKiAgICAgdXBkYXRlQ29uc3VtZXJUcmFuc3BvcnRzOiAodHJhbnNwb3J0cykgPT4geyAuLi4gfSxcbiAqICAgICBob3N0TGFiZWw6ICdIb3N0JyxcbiAqICAgICBzaGFyZWQ6IHRydWUsXG4gKiAgICAgdXBkYXRlU2hhcmVkOiAoc2hhcmVkKSA9PiB7IC4uLiB9LFxuICogICAgIHVwZGF0ZVNoYXJlU2NyZWVuU3RhcnRlZDogKHN0YXJ0ZWQpID0+IHsgLi4uIH0sXG4gKiAgICAgdXBkYXRlU2NyZWVuSWQ6IChpZCkgPT4geyAuLi4gfSxcbiAqICAgICB1cGRhdGVTaGFyZUVuZGVkOiAoZW5kZWQpID0+IHsgLi4uIH0sXG4gKiAgICAgY2xvc2VBbmRSZXNpemU6ICh7IHByb2R1Y2VySWQsIGtpbmQsIHBhcmFtZXRlcnMgfSkgPT4geyAuLi4gfSxcbiAqICAgICBwcmVwb3B1bGF0ZVVzZXJNZWRpYTogKHsgbmFtZSwgcGFyYW1ldGVycyB9KSA9PiB7IC4uLiB9LFxuICogICAgIHJlb3JkZXJTdHJlYW1zOiAoeyBhZGQsIHNjcmVlbkNoYW5nZWQsIHBhcmFtZXRlcnMgfSkgPT4geyAuLi4gfSxcbiAqICAgfVxuICogfTtcbiAqXG4gKiBwcm9kdWNlck1lZGlhQ2xvc2VkU2VydmljZS5wcm9kdWNlck1lZGlhQ2xvc2VkKG9wdGlvbnMpXG4gKiAgIC50aGVuKCgpID0+IGNvbnNvbGUubG9nKCdQcm9kdWNlciBjbG9zZWQgc3VjY2Vzc2Z1bGx5JykpXG4gKiAgIC5jYXRjaChlcnJvciA9PiBjb25zb2xlLmVycm9yKCdFcnJvcjonLCBlcnJvcikpO1xuICpcbiAqIEByZW1hcmtzXG4gKiBUaGlzIHNlcnZpY2UgcGVyZm9ybXMgdGhlIGZvbGxvd2luZyBzdGVwczpcbiAqIDEuIFJldHJpZXZlcyB1cGRhdGVkIHBhcmFtZXRlcnMuXG4gKiAyLiBGaW5kcyBhbmQgY2xvc2VzIHRoZSB0cmFuc3BvcnQgYXNzb2NpYXRlZCB3aXRoIHRoZSBwcm9kdWNlci5cbiAqIDMuIFVwZGF0ZXMgdGhlIGxpc3Qgb2YgY29uc3VtZXIgdHJhbnNwb3J0cy5cbiAqIDQuIEFkanVzdHMgdGhlIGRpc3BsYXkgbGF5b3V0IHdpdGggYGNsb3NlQW5kUmVzaXplYC5cbiAqIDUuIElmIHRoZSBwcm9kdWNlciBpcyBhIHNjcmVlbiBzaGFyZSwgcmVzZXRzIHNoYXJlZCBzdGF0ZSBhbmQgcmVsb2FkcyBkZWZhdWx0IG1lZGlhLlxuICovXG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBQcm9kdWNlck1lZGlhQ2xvc2VkIHtcbiAgLyoqXG4gICAqIEhhbmRsZXMgdGhlIGNsb3N1cmUgb2YgYSBtZWRpYSBwcm9kdWNlci5cbiAgICpcbiAgICogQHBhcmFtIHtQcm9kdWNlck1lZGlhQ2xvc2VkT3B0aW9uc30gb3B0aW9ucyAtIFRoZSBvcHRpb25zIGZvciBjbG9zaW5nIHRoZSBtZWRpYSBwcm9kdWNlci5cbiAgICogQHBhcmFtIHtzdHJpbmd9IG9wdGlvbnMucHJvZHVjZXJJZCAtIFRoZSBJRCBvZiB0aGUgcHJvZHVjZXIgdG8gY2xvc2UuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBvcHRpb25zLmtpbmQgLSBUaGUga2luZCBvZiBtZWRpYSAoZS5nLiwgXCJzY3JlZW5zaGFyZVwiIG9yIFwic2NyZWVuXCIpLlxuICAgKiBAcGFyYW0ge1BhcmFtZXRlcnN9IG9wdGlvbnMucGFyYW1ldGVycyAtIFRoZSBwYXJhbWV0ZXJzIG9iamVjdCBjb250YWluaW5nIHZhcmlvdXMgbWV0aG9kcyBhbmQgcHJvcGVydGllcy5cbiAgICpcbiAgICogQHJldHVybnMge1Byb21pc2U8dm9pZD59IC0gQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgcHJvZHVjZXIgaGFzIGJlZW4gY2xvc2VkIGFuZCBuZWNlc3NhcnkgdXBkYXRlcyBhcmUgbWFkZS5cbiAgICpcbiAgICogQHJlbWFya3NcbiAgICogVGhpcyBmdW5jdGlvbiBwZXJmb3JtcyB0aGUgZm9sbG93aW5nIHN0ZXBzOlxuICAgKiAxLiBSZXRyaWV2ZXMgdXBkYXRlZCBwYXJhbWV0ZXJzLlxuICAgKiAyLiBGaW5kcyB0aGUgdHJhbnNwb3J0IGFzc29jaWF0ZWQgd2l0aCB0aGUgcHJvZHVjZXIgdG8gY2xvc2UuXG4gICAqIDMuIENsb3NlcyB0aGUgY29uc3VtZXIgdHJhbnNwb3J0IGFuZCBjb25zdW1lciBpZiBmb3VuZC5cbiAgICogNC4gVXBkYXRlcyB0aGUgY29uc3VtZXIgdHJhbnNwb3J0cyBsaXN0LlxuICAgKiA1LiBDYWxscyBgY2xvc2VBbmRSZXNpemVgIHdpdGggdGhlIG5lY2Vzc2FyeSBwYXJhbWV0ZXJzLlxuICAgKiA2LiBJZiB0aGUgcHJvZHVjZXIga2luZCBpcyBcInNjcmVlbnNoYXJlXCIgb3IgXCJzY3JlZW5cIiwgdXBkYXRlcyBzaGFyZWQgc3RhdGUgYW5kIGNhbGxzIHZhcmlvdXMgdXBkYXRlIG1ldGhvZHMuXG4gICAqL1xuICBwcm9kdWNlck1lZGlhQ2xvc2VkID0gYXN5bmMgKHtcbiAgICBwcm9kdWNlcklkLFxuICAgIGtpbmQsXG4gICAgcGFyYW1ldGVycyxcbiAgfTogUHJvZHVjZXJNZWRpYUNsb3NlZE9wdGlvbnMpOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgICBwYXJhbWV0ZXJzID0gcGFyYW1ldGVycy5nZXRVcGRhdGVkQWxsUGFyYW1zKCk7XG5cbiAgICBjb25zdCB7XG4gICAgICBjb25zdW1lclRyYW5zcG9ydHMsXG4gICAgICB1cGRhdGVDb25zdW1lclRyYW5zcG9ydHMsXG4gICAgICBob3N0TGFiZWwsXG4gICAgICBzaGFyZWQsXG4gICAgICB1cGRhdGVTaGFyZWQsXG4gICAgICB1cGRhdGVTaGFyZVNjcmVlblN0YXJ0ZWQsXG4gICAgICB1cGRhdGVTY3JlZW5JZCxcbiAgICAgIHVwZGF0ZVNoYXJlRW5kZWQsXG4gICAgICBjbG9zZUFuZFJlc2l6ZSxcbiAgICAgIHByZXBvcHVsYXRlVXNlck1lZGlhLFxuICAgICAgcmVvcmRlclN0cmVhbXMsXG4gICAgfSA9IHBhcmFtZXRlcnM7XG5cbiAgICBjb25zdCBwcm9kdWNlclRvQ2xvc2UgPSBjb25zdW1lclRyYW5zcG9ydHMuZmluZChcbiAgICAgICh0cmFuc3BvcnREYXRhOiBhbnkpID0+IHRyYW5zcG9ydERhdGEucHJvZHVjZXJJZCA9PT0gcHJvZHVjZXJJZCxcbiAgICApO1xuXG4gICAgaWYgKHByb2R1Y2VyVG9DbG9zZSkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgYXdhaXQgcHJvZHVjZXJUb0Nsb3NlWydjb25zdW1lclRyYW5zcG9ydCddLmNsb3NlKCk7XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBjbG9zaW5nIGNvbnN1bWVyIHRyYW5zcG9ydDonLCBlcnJvcik7XG4gICAgICB9XG5cbiAgICAgIHRyeSB7XG4gICAgICAgIHByb2R1Y2VyVG9DbG9zZS5jb25zdW1lci5jbG9zZSgpO1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgY2xvc2luZyBjb25zdW1lcjonLCBlcnJvcik7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHVwZGF0ZWRDb25zdW1lclRyYW5zcG9ydHMgPSBjb25zdW1lclRyYW5zcG9ydHMuZmlsdGVyKFxuICAgICAgICAodHJhbnNwb3J0RGF0YTogYW55KSA9PiB0cmFuc3BvcnREYXRhLnByb2R1Y2VySWQgIT09IHByb2R1Y2VySWQsXG4gICAgICApO1xuICAgICAgdXBkYXRlQ29uc3VtZXJUcmFuc3BvcnRzKHVwZGF0ZWRDb25zdW1lclRyYW5zcG9ydHMpO1xuXG4gICAgICBhd2FpdCBjbG9zZUFuZFJlc2l6ZSh7IHByb2R1Y2VySWQsIGtpbmQsIHBhcmFtZXRlcnMgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChraW5kID09PSAnc2NyZWVuc2hhcmUnIHx8IGtpbmQgPT09ICdzY3JlZW4nKSB7XG4gICAgICAgIGlmIChzaGFyZWQpIHtcbiAgICAgICAgICB1cGRhdGVTaGFyZWQoZmFsc2UpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHVwZGF0ZVNoYXJlU2NyZWVuU3RhcnRlZChmYWxzZSk7XG4gICAgICAgICAgdXBkYXRlU2NyZWVuSWQoJycpO1xuICAgICAgICB9XG4gICAgICAgIHVwZGF0ZVNoYXJlRW5kZWQodHJ1ZSk7XG4gICAgICAgIGF3YWl0IHByZXBvcHVsYXRlVXNlck1lZGlhKHsgbmFtZTogaG9zdExhYmVsLCBwYXJhbWV0ZXJzIH0pO1xuICAgICAgICBhd2FpdCByZW9yZGVyU3RyZWFtcyh7IGFkZDogZmFsc2UsIHNjcmVlbkNoYW5nZWQ6IHRydWUsIHBhcmFtZXRlcnMgfSk7XG4gICAgICB9XG4gICAgfVxuICB9O1xufVxuIl19
|