UNPKG

mediasfu-angular

Version:
1 lines 4.49 MB
{"version":3,"file":"mediasfu-angular.mjs","sources":["../../../projects/mediasfu-angular/src/lib/methods/utils/validate-alphanumeric.service.ts","../../../projects/mediasfu-angular/src/lib/producers/producer-emits/join-con-room.service.ts","../../../projects/mediasfu-angular/src/lib/consumers/socket-receive-methods/join-consume-room.service.ts","../../../projects/mediasfu-angular/src/lib/consumers/socket-receive-methods/producer-closed.service.ts","../../../projects/mediasfu-angular/src/lib/consumers/signal-new-consumer-transport.service.ts","../../../projects/mediasfu-angular/src/lib/consumers/socket-receive-methods/new-pipe-producer.service.ts","../../../projects/mediasfu-angular/src/lib/components/display-components/mini-card/mini-card.component.ts","../../../projects/mediasfu-angular/src/lib/components/display-components/card-video-display/card-video-display.component.ts","../../../projects/mediasfu-angular/src/lib/components/display-components/card-video-display/card-video-display.component.html","../../../projects/mediasfu-angular/src/lib/methods/utils/get-overlay-position.util.ts","../../../projects/mediasfu-angular/src/lib/consumers/control-media.service.ts","../../../projects/mediasfu-angular/src/lib/components/display-components/video-card/video-card.component.ts","../../../projects/mediasfu-angular/src/lib/components/display-components/video-card/video-card.component.html","../../../projects/mediasfu-angular/src/lib/components/display-components/audio-card/audio-card.component.ts","../../../projects/mediasfu-angular/src/lib/components/display-components/audio-card/audio-card.component.html","../../../projects/mediasfu-angular/src/lib/consumers/add-videos-grid.service.ts","../../../projects/mediasfu-angular/src/lib/consumers/auto-adjust.service.ts","../../../projects/mediasfu-angular/src/lib/consumers/calculate-rows-and-columns.service.ts","../../../projects/mediasfu-angular/src/lib/consumers/change-vids.service.ts","../../../projects/mediasfu-angular/src/lib/consumers/check-grid.service.ts","../../../projects/mediasfu-angular/src/lib/consumers/check-permission.service.ts","../../../projects/mediasfu-angular/src/lib/consumers/check-screen-share.service.ts","../../../projects/mediasfu-angular/src/lib/consumers/close-and-resize.service.ts","../../../projects/mediasfu-angular/src/lib/consumers/compare-active-names.service.ts","../../../projects/mediasfu-angular/src/lib/consumers/compare-screen-states.service.ts","../../../projects/mediasfu-angular/src/lib/sockets/socket-manager.service.ts","../../../projects/mediasfu-angular/src/lib/consumers/connect-ips.service.ts","../../../projects/mediasfu-angular/src/lib/consumers/connect-local-ips.service.ts","../../../projects/mediasfu-angular/src/lib/consumers/connect-recv-transport.service.ts","../../../projects/mediasfu-angular/src/lib/consumers/connect-send-transport.service.ts","../../../projects/mediasfu-angular/src/lib/consumers/connect-send-transport-audio.service.ts","../../../projects/mediasfu-angular/src/lib/consumers/connect-send-transport-screen.service.ts","../../../projects/mediasfu-angular/src/lib/consumers/connect-send-transport-video.service.ts","../../../projects/mediasfu-angular/src/lib/components/display-components/mini-audio/mini-audio.component.ts","../../../projects/mediasfu-angular/src/lib/methods/utils/mini-audio-player/mini-audio-player.component.ts","../../../projects/mediasfu-angular/src/lib/methods/utils/mini-audio-player/mini-audio-player.component.html","../../../projects/mediasfu-angular/src/lib/consumers/consumer-resume.service.ts","../../../projects/mediasfu-angular/src/lib/consumers/create-send-transport.service.ts","../../../projects/mediasfu-angular/src/lib/consumers/disconnect-send-transport-audio.service.ts","../../../projects/mediasfu-angular/src/lib/consumers/disconnect-send-transport-video.service.ts","../../../projects/mediasfu-angular/src/lib/consumers/disconnect-send-transport-screen.service.ts","../../../projects/mediasfu-angular/src/lib/consumers/disp-streams.service.ts","../../../projects/mediasfu-angular/src/lib/consumers/generate-page-content.service.ts","../../../projects/mediasfu-angular/src/lib/consumers/get-estimate.service.ts","../../../projects/mediasfu-angular/src/lib/consumers/get-piped-producers-alt.service.ts","../../../projects/mediasfu-angular/src/lib/consumers/get-producers-piped.service.ts","../../../projects/mediasfu-angular/src/lib/consumers/get-videos.service.ts","../../../projects/mediasfu-angular/src/lib/consumers/mix-streams.service.ts","../../../projects/mediasfu-angular/src/lib/consumers/on-screen-changes.service.ts","../../../projects/mediasfu-angular/src/lib/consumers/prepopulate-user-media.service.ts","../../../projects/mediasfu-angular/src/lib/consumers/process-consumer-transports.service.ts","../../../projects/mediasfu-angular/src/lib/consumers/process-consumer-transports-audio.service.ts","../../../projects/mediasfu-angular/src/lib/consumers/readjust.service.ts","../../../projects/mediasfu-angular/src/lib/consumers/receive-all-piped-transports.service.ts","../../../projects/mediasfu-angular/src/lib/consumers/reorder-streams.service.ts","../../../projects/mediasfu-angular/src/lib/consumers/re-port.service.ts","../../../projects/mediasfu-angular/src/lib/consumers/request-screen-share.service.ts","../../../projects/mediasfu-angular/src/lib/consumers/resume-pause-audio-streams.service.ts","../../../projects/mediasfu-angular/src/lib/consumers/resume-pause-streams.service.ts","../../../projects/mediasfu-angular/src/lib/consumers/resume-send-transport-audio.service.ts","../../../projects/mediasfu-angular/src/lib/consumers/re-update-inter.service.ts","../../../projects/mediasfu-angular/src/lib/consumers/start-share-screen.service.ts","../../../projects/mediasfu-angular/src/lib/consumers/stop-share-screen.service.ts","../../../projects/mediasfu-angular/src/lib/consumers/stream-success-audio.service.ts","../../../projects/mediasfu-angular/src/lib/consumers/stream-success-audio-switch.service.ts","../../../projects/mediasfu-angular/src/lib/consumers/stream-success-screen.service.ts","../../../projects/mediasfu-angular/src/lib/consumers/stream-success-video.service.ts","../../../projects/mediasfu-angular/src/lib/consumers/switch-user-audio.service.ts","../../../projects/mediasfu-angular/src/lib/methods/stream-methods/click-video.service.ts","../../../projects/mediasfu-angular/src/lib/consumers/switch-user-video.service.ts","../../../projects/mediasfu-angular/src/lib/consumers/switch-user-video-alt.service.ts","../../../projects/mediasfu-angular/src/lib/consumers/trigger.service.ts","../../../projects/mediasfu-angular/src/lib/consumers/update-mini-cards-grid.service.ts","../../../projects/mediasfu-angular/src/lib/consumers/update-participant-audio-decibels.service.ts","../../../projects/mediasfu-angular/src/lib/methods/utils/producer/a-params.service.ts","../../../projects/mediasfu-angular/src/lib/methods/utils/producer/h-params.service.ts","../../../projects/mediasfu-angular/src/lib/methods/utils/producer/screen-params.service.ts","../../../projects/mediasfu-angular/src/lib/methods/utils/producer/v-params.service.ts","../../../projects/mediasfu-angular/src/lib/methods/background-methods/launch-background.service.ts","../../../projects/mediasfu-angular/src/lib/methods/breakout-room-methods/launch-breakout-rooms.service.ts","../../../projects/mediasfu-angular/src/lib/methods/breakout-room-methods/breakout-room-updated.service.ts","../../../projects/mediasfu-angular/src/lib/methods/co-host-methods/launch-co-host.service.ts","../../../projects/mediasfu-angular/src/lib/methods/co-host-methods/modify-co-host-settings.service.ts","../../../projects/mediasfu-angular/src/lib/methods/display-settings-methods/launch-display-settings.service.ts","../../../projects/mediasfu-angular/src/lib/methods/display-settings-methods/modify-display-settings.service.ts","../../../projects/mediasfu-angular/src/lib/methods/exit-methods/launch-confirm-exit.service.ts","../../../projects/mediasfu-angular/src/lib/methods/exit-methods/confirm-exit.service.ts","../../../projects/mediasfu-angular/src/lib/methods/media-settings-methods/launch-media-settings.service.ts","../../../projects/mediasfu-angular/src/lib/methods/menu-methods/launch-menu-modal.service.ts","../../../projects/mediasfu-angular/src/lib/methods/message-methods/launch-messages.service.ts","../../../projects/mediasfu-angular/src/lib/methods/message-methods/send-message.service.ts","../../../projects/mediasfu-angular/src/lib/methods/participants-methods/launch-participants.service.ts","../../../projects/mediasfu-angular/src/lib/methods/participants-methods/message-participants.service.ts","../../../projects/mediasfu-angular/src/lib/methods/participants-methods/mute-participants.service.ts","../../../projects/mediasfu-angular/src/lib/methods/participants-methods/remove-participants.service.ts","../../../projects/mediasfu-angular/src/lib/methods/polls-methods/handle-create-poll.service.ts","../../../projects/mediasfu-angular/src/lib/methods/polls-methods/handle-end-poll.service.ts","../../../projects/mediasfu-angular/src/lib/methods/polls-methods/handle-vote-poll.service.ts","../../../projects/mediasfu-angular/src/lib/methods/polls-methods/launch-poll.service.ts","../../../projects/mediasfu-angular/src/lib/methods/polls-methods/poll-updated.service.ts","../../../projects/mediasfu-angular/src/lib/methods/recording-methods/check-pause-state.service.ts","../../../projects/mediasfu-angular/src/lib/methods/recording-methods/check-resume-state.service.ts","../../../projects/mediasfu-angular/src/lib/methods/recording-methods/confirm-recording.service.ts","../../../projects/mediasfu-angular/src/lib/methods/recording-methods/launch-recording.service.ts","../../../projects/mediasfu-angular/src/lib/methods/recording-methods/record-pause-timer.service.ts","../../../projects/mediasfu-angular/src/lib/methods/recording-methods/record-update-timer.service.ts","../../../projects/mediasfu-angular/src/lib/methods/recording-methods/record-resume-timer.service.ts","../../../projects/mediasfu-angular/src/lib/methods/recording-methods/record-start-timer.service.ts","../../../projects/mediasfu-angular/src/lib/methods/recording-methods/start-recording.service.ts","../../../projects/mediasfu-angular/src/lib/methods/recording-methods/stop-recording.service.ts","../../../projects/mediasfu-angular/src/lib/methods/recording-methods/update-recording.service.ts","../../../projects/mediasfu-angular/src/lib/methods/requests-methods/launch-requests.service.ts","../../../projects/mediasfu-angular/src/lib/methods/requests-methods/respond-to-requests.service.ts","../../../projects/mediasfu-angular/src/lib/methods/settings-methods/launch-settings.service.ts","../../../projects/mediasfu-angular/src/lib/methods/settings-methods/modify-settings.service.ts","../../../projects/mediasfu-angular/src/lib/methods/stream-methods/click-audio.service.ts","../../../projects/mediasfu-angular/src/lib/methods/stream-methods/click-chat.service.ts","../../../projects/mediasfu-angular/src/lib/methods/stream-methods/click-screen-share.service.ts","../../../projects/mediasfu-angular/src/lib/methods/stream-methods/switch-audio.service.ts","../../../projects/mediasfu-angular/src/lib/methods/stream-methods/switch-video.service.ts","../../../projects/mediasfu-angular/src/lib/methods/stream-methods/switch-video-alt.service.ts","../../../projects/mediasfu-angular/src/lib/methods/utils/join-room-on-media-sfu.service.ts","../../../projects/mediasfu-angular/src/lib/methods/utils/meeting-timer/start-meeting-progress-timer.service.ts","../../../projects/mediasfu-angular/src/lib/methods/utils/format-number.service.ts","../../../projects/mediasfu-angular/src/lib/methods/utils/generate-random-messages.service.ts","../../../projects/mediasfu-angular/src/lib/methods/utils/generate-random-participants.service.ts","../../../projects/mediasfu-angular/src/lib/methods/utils/generate-random-polls.service.ts","../../../projects/mediasfu-angular/src/lib/methods/utils/generate-random-request-list.service.ts","../../../projects/mediasfu-angular/src/lib/methods/utils/generate-random-waiting-room-list.service.ts","../../../projects/mediasfu-angular/src/lib/methods/utils/get-modal-position.util.ts","../../../projects/mediasfu-angular/src/lib/methods/utils/sleep.util.ts","../../../projects/mediasfu-angular/src/lib/methods/waiting-methods/launch-waiting.service.ts","../../../projects/mediasfu-angular/src/lib/methods/waiting-methods/respond-to-waiting.service.ts","../../../projects/mediasfu-angular/src/lib/methods/whiteboard-methods/launch-configure-whiteboard.service.ts","../../../projects/mediasfu-angular/src/lib/methods/whiteboard-methods/capture-canvas-stream.service.ts","../../../projects/mediasfu-angular/src/lib/producer-client/producer-client-emits/create-device-client.service.ts","../../../projects/mediasfu-angular/src/lib/producers/producer-emits/join-room.service.ts","../../../projects/mediasfu-angular/src/lib/producer-client/producer-client-emits/join-room-client.service.ts","../../../projects/mediasfu-angular/src/lib/methods/utils/producer/video-capture-constraints.service.ts","../../../projects/mediasfu-angular/src/lib/producer-client/producer-client-emits/update-room-parameters-client.service.ts","../../../projects/mediasfu-angular/src/lib/methods/utils/check-limits-and-make-request.service.ts","../../../projects/mediasfu-angular/src/lib/producers/producer-emits/join-local-room.service.ts","../../../projects/mediasfu-angular/src/lib/producers/socket-receive-methods/all-members.service.ts","../../../projects/mediasfu-angular/src/lib/producers/socket-receive-methods/all-members-rest.service.ts","../../../projects/mediasfu-angular/src/lib/producers/socket-receive-methods/all-waiting-room-members.service.ts","../../../projects/mediasfu-angular/src/lib/producers/socket-receive-methods/ban-participant.service.ts","../../../projects/mediasfu-angular/src/lib/producers/socket-receive-methods/control-media-host.service.ts","../../../projects/mediasfu-angular/src/lib/producers/socket-receive-methods/disconnect.service.ts","../../../projects/mediasfu-angular/src/lib/producers/socket-receive-methods/disconnect-user-self.service.ts","../../../projects/mediasfu-angular/src/lib/producers/socket-receive-methods/get-domains.service.ts","../../../projects/mediasfu-angular/src/lib/producers/socket-receive-methods/host-request-response.service.ts","../../../projects/mediasfu-angular/src/lib/producers/socket-receive-methods/meeting-ended.service.ts","../../../projects/mediasfu-angular/src/lib/producers/socket-receive-methods/meeting-still-there.service.ts","../../../projects/mediasfu-angular/src/lib/producers/socket-receive-methods/meeting-time-remaining.service.ts","../../../projects/mediasfu-angular/src/lib/producers/socket-receive-methods/participant-requested.service.ts","../../../projects/mediasfu-angular/src/lib/producers/socket-receive-methods/person-joined.service.ts","../../../projects/mediasfu-angular/src/lib/producers/socket-receive-methods/producer-media-closed.service.ts","../../../projects/mediasfu-angular/src/lib/producers/socket-receive-methods/producer-media-paused.service.ts","../../../projects/mediasfu-angular/src/lib/producers/socket-receive-methods/producer-media-resumed.service.ts","../../../projects/mediasfu-angular/src/lib/producers/socket-receive-methods/re-initiate-recording.service.ts","../../../projects/mediasfu-angular/src/lib/producers/socket-receive-methods/receive-message.service.ts","../../../projects/mediasfu-angular/src/lib/methods/utils/sound-player.service.ts","../../../projects/mediasfu-angular/src/lib/producers/socket-receive-methods/recording-notice.service.ts","../../../projects/mediasfu-angular/src/lib/producers/socket-receive-methods/room-record-params.service.ts","../../../projects/mediasfu-angular/src/lib/producers/socket-receive-methods/screen-producer-id.service.ts","../../../projects/mediasfu-angular/src/lib/producers/socket-receive-methods/start-records.service.ts","../../../projects/mediasfu-angular/src/lib/producers/socket-receive-methods/stopped-recording.service.ts","../../../projects/mediasfu-angular/src/lib/producers/socket-receive-methods/time-left-recording.service.ts","../../../projects/mediasfu-angular/src/lib/producers/socket-receive-methods/update-consuming-domains.service.ts","../../../projects/mediasfu-angular/src/lib/producers/socket-receive-methods/update-media-settings.service.ts","../../../projects/mediasfu-angular/src/lib/producers/socket-receive-methods/updated-co-host.service.ts","../../../projects/mediasfu-angular/src/lib/producers/socket-receive-methods/user-waiting.service.ts","../../../projects/mediasfu-angular/src/lib/components/background-components/background-modal/background-modal.component.ts","../../../projects/mediasfu-angular/src/lib/components/background-components/background-modal/background-modal.component.html","../../../projects/mediasfu-angular/src/lib/components/breakout-components/room-list/room-list.component.ts","../../../projects/mediasfu-angular/src/lib/components/breakout-components/room-list/room-list.component.html","../../../projects/mediasfu-angular/src/lib/components/breakout-components/edit-room-modal/edit-room-modal.component.ts","../../../projects/mediasfu-angular/src/lib/components/breakout-components/edit-room-modal/edit-room-modal.component.html","../../../projects/mediasfu-angular/src/lib/components/breakout-components/breakout-rooms-modal.component.ts","../../../projects/mediasfu-angular/src/lib/components/breakout-components/breakout-rooms-modal.component.html","../../../projects/mediasfu-angular/src/lib/components/co-host-components/co-host-modal/co-host-modal.component.ts","../../../projects/mediasfu-angular/src/lib/components/co-host-components/co-host-modal/co-host-modal.component.html","../../../projects/mediasfu-angular/src/lib/components/display-components/alert-component/alert.component.component.ts","../../../projects/mediasfu-angular/src/lib/components/display-components/alert-component/alert.component.component.html","../../../projects/mediasfu-angular/src/lib/components/display-components/audio-grid/audio-grid.component.ts","../../../projects/mediasfu-angular/src/lib/components/display-components/control-buttons-component/control-buttons-component.component.ts","../../../projects/mediasfu-angular/src/lib/components/display-components/control-buttons-alt-component/control-buttons-alt-component.component.ts","../../../projects/mediasfu-angular/src/lib/components/display-components/control-buttons-alt-component/control-buttons-alt-component.component.html","../../../projects/mediasfu-angular/src/lib/components/display-components/control-buttons-component-touch/control-buttons-component-touch.component.ts","../../../projects/mediasfu-angular/src/lib/components/display-components/flexible-grid/flexible-grid.component.ts","../../../projects/mediasfu-angular/src/lib/components/display-components/flexible-video/flexible-video.component.ts","../../../projects/mediasfu-angular/src/lib/components/display-components/loading-modal/loading-modal.component.ts","../../../projects/mediasfu-angular/src/lib/components/display-components/main-aspect-component/main-aspect-component.component.ts","../../../projects/mediasfu-angular/src/lib/components/display-components/main-container-component/main-container-component.component.ts","../../../projects/mediasfu-angular/src/lib/components/display-components/meeting-progress-timer/meeting-progress-timer.component.ts","../../../projects/mediasfu-angular/src/lib/components/display-components/main-grid-component/main-grid-component.component.ts","../../../projects/mediasfu-angular/src/lib/components/display-components/main-screen-component/main-screen-component.component.ts","../../../projects/mediasfu-angular/src/lib/components/display-components/mini-card-audio/mini-card-audio.component.ts","../../../projects/mediasfu-angular/src/lib/components/display-components/other-grid-component/other-grid-component.component.ts","../../../projects/mediasfu-angular/src/lib/components/display-components/pagination/pagination.component.ts","../../../projects/mediasfu-angular/src/lib/components/display-components/sub-aspect-component/sub-aspect-component.component.ts","../../../projects/mediasfu-angular/src/lib/components/display-settings-components/display-settings-modal.component.ts","../../../projects/mediasfu-angular/src/lib/components/display-settings-components/display-settings-modal.component.html","../../../projects/mediasfu-angular/src/lib/components/event-settings-components/event-settings-modal/event-settings-modal.component.ts","../../../projects/mediasfu-angular/src/lib/components/event-settings-components/event-settings-modal/event-settings-modal.component.html","../../../projects/mediasfu-angular/src/lib/components/exit-components/confirm-exit-modal/confirm-exit-modal.component.ts","../../../projects/mediasfu-angular/src/lib/components/exit-components/confirm-exit-modal/confirm-exit-modal.component.html","../../../projects/mediasfu-angular/src/lib/components/media-settings-components/media-settings-modal/media-settings-modal.component.ts","../../../projects/mediasfu-angular/src/lib/components/media-settings-components/media-settings-modal/media-settings-modal.component.html","../../../projects/mediasfu-angular/src/lib/components/menu-components/custom-buttons/custom-buttons.component.ts","../../../projects/mediasfu-angular/src/lib/components/menu-components/custom-buttons/custom-buttons.component.html","../../../projects/mediasfu-angular/src/lib/components/menu-components/meeting-id-component/meeting-id-component.component.ts","../../../projects/mediasfu-angular/src/lib/components/menu-components/meeting-id-component/meeting-id-component.component.html","../../../projects/mediasfu-angular/src/lib/components/menu-components/meeting-passcode-component/meeting-passcode-component.component.ts","../../../projects/mediasfu-angular/src/lib/components/menu-components/meeting-passcode-component/meeting-passcode-component.component.html","../../../projects/mediasfu-angular/src/lib/components/menu-components/share-buttons-component/share-buttons-component.component.ts","../../../projects/mediasfu-angular/src/lib/components/menu-components/share-buttons-component/share-buttons-component.component.html","../../../projects/mediasfu-angular/src/lib/components/menu-components/menu-modal/menu-modal.component.ts","../../../projects/mediasfu-angular/src/lib/components/menu-components/menu-modal/menu-modal.component.html","../../../projects/mediasfu-angular/src/lib/components/message-components/message-panel/message-panel.component.ts","../../../projects/mediasfu-angular/src/lib/components/message-components/message-panel/message-panel.component.html","../../../projects/mediasfu-angular/src/lib/components/message-components/messages-modal/messages-modal.component.ts","../../../projects/mediasfu-angular/src/lib/components/message-components/messages-modal/messages-modal.component.html","../../../projects/mediasfu-angular/src/lib/components/misc-components/confirm-here-modal/confirm-here-modal.component.ts","../../../projects/mediasfu-angular/src/lib/components/misc-components/confirm-here-modal/confirm-here-modal.component.html","../../../projects/mediasfu-angular/src/lib/methods/utils/create-room-on-media-sfu.service.ts","../../../projects/mediasfu-angular/src/lib/components/misc-components/pre-join-page/pre-join-page.component.ts","../../../projects/mediasfu-angular/src/lib/components/misc-components/pre-join-page/pre-join-page.component.html","../../../projects/mediasfu-angular/src/lib/components/misc-components/share-event-modal/share-event-modal.component.ts","../../../projects/mediasfu-angular/src/lib/components/misc-components/share-event-modal/share-event-modal.component.html","../../../projects/mediasfu-angular/src/lib/components/misc-components/welcome-page/welcome-page.component.ts","../../../projects/mediasfu-angular/src/lib/components/misc-components/welcome-page/welcome-page.component.html","../../../projects/mediasfu-angular/src/lib/components/participants-components/participant-list-item/participant-list-item.component.ts","../../../projects/mediasfu-angular/src/lib/components/participants-components/participant-list-item/participant-list-item.component.html","../../../projects/mediasfu-angular/src/lib/components/participants-components/participant-list/participant-list.component.ts","../../../projects/mediasfu-angular/src/lib/components/participants-components/participant-list/participant-list.component.html","../../../projects/mediasfu-angular/src/lib/components/participants-components/participant-list-others-item/participant-list-others-item.component.ts","../../../projects/mediasfu-angular/src/lib/components/participants-components/participant-list-others-item/participant-list-others-item.component.html","../../../projects/mediasfu-angular/src/lib/components/participants-components/participant-list-others/participant-list-others.component.ts","../../../projects/mediasfu-angular/src/lib/components/participants-components/participant-list-others/participant-list-others.component.html","../../../projects/mediasfu-angular/src/lib/components/participants-components/participants-modal/participants-modal.component.ts","../../../projects/mediasfu-angular/src/lib/components/participants-components/participants-modal/participants-modal.component.html","../../../projects/mediasfu-angular/src/lib/components/polls-components/poll-modal/poll-modal.component.ts","../../../projects/mediasfu-angular/src/lib/components/polls-components/poll-modal/poll-modal.component.html","../../../projects/mediasfu-angular/src/lib/components/recording-components/standard-panel-component/standard-panel-component.component.ts","../../../projects/mediasfu-angular/src/lib/components/recording-components/standard-panel-component/standard-panel-component.component.html","../../../projects/mediasfu-angular/src/lib/components/recording-components/advanced-panel-component/advanced-panel-components.component.ts","../../../projects/mediasfu-angular/src/lib/components/recording-components/advanced-panel-component/advanced-panel-component.component.html","../../../projects/mediasfu-angular/src/lib/components/recording-components/recording-modal/recording-modal.component.ts","../../../projects/mediasfu-angular/src/lib/components/recording-components/recording-modal/recording-modal.component.html","../../../projects/mediasfu-angular/src/lib/components/requests-components/render-request-component/render-request-component.component.ts","../../../projects/mediasfu-angular/src/lib/components/requests-components/render-request-component/render-request-component.component.html","../../../projects/mediasfu-angular/src/lib/components/requests-components/requests-modal/requests-modal.component.ts","../../../projects/mediasfu-angular/src/lib/components/requests-components/requests-modal/requests-modal.component.html","../../../projects/mediasfu-angular/src/lib/components/screenboard-components/screenboard/screenboard.component.ts","../../../projects/mediasfu-angular/src/lib/components/screenboard-components/screenboard/screenboard.component.html","../../../projects/mediasfu-angular/src/lib/components/screenboard-components/screenboard-modal/screenboard-modal.component.ts","../../../projects/mediasfu-angular/src/lib/components/screenboard-components/screenboard-modal/screenboard-modal.component.html","../../../projects/mediasfu-angular/src/lib/components/waiting-components/waiting-room-modal.component.ts","../../../projects/mediasfu-angular/src/lib/components/waiting-components/waiting-room-modal.component.html","../../../projects/mediasfu-angular/src/lib/components/whiteboard-components/configure-whiteboard-modal/configure-whiteboard-modal.component.ts","../../../projects/mediasfu-angular/src/lib/components/whiteboard-components/configure-whiteboard-modal/configure-whiteboard-modal.component.html","../../../projects/mediasfu-angular/src/lib/components/whiteboard-components/whiteboard/whiteboard.component.ts","../../../projects/mediasfu-angular/src/lib/components/whiteboard-components/whiteboard/whiteboard.component.html","../../../projects/mediasfu-angular/src/lib/@types/types.ts","../../../projects/mediasfu-angular/src/lib/methods/utils/initial-values.util.ts","../../../projects/mediasfu-angular/src/lib/consumers/receive-room-messages.service.ts","../../../projects/mediasfu-angular/src/lib/components/display-components/control-widgets/menu-widget.component.ts","../../../projects/mediasfu-angular/src/lib/components/display-components/control-widgets/message-widget.component.ts","../../../projects/mediasfu-angular/src/lib/components/display-components/control-widgets/menu-record-widget.component.ts","../../../projects/mediasfu-angular/src/lib/components/display-components/control-widgets/record-timer-widget.component.ts","../../../projects/mediasfu-angular/src/lib/components/display-components/control-widgets/menu-participants-widget.component.ts","../../../projects/mediasfu-angular/src/lib/components/display-components/control-widgets/screenshare-widget.component.ts","../../../projects/mediasfu-angular/src/lib/methods/utils/create-response-join-room.util.ts","../../../projects/mediasfu-angular/src/lib/components/mediasfu-components/mediasfu-generic.component.ts","../../../projects/mediasfu-angular/src/lib/components/mediasfu-components/mediasfu-broadcast.component.ts","../../../projects/mediasfu-angular/src/lib/components/mediasfu-components/mediasfu-webinar.component.ts","../../../projects/mediasfu-angular/src/lib/components/mediasfu-components/mediasfu-conference.component.ts","../../../projects/mediasfu-angular/src/lib/components/mediasfu-components/mediasfu-chat.component.ts","../../../projects/mediasfu-angular/src/mediasfu-angular.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\nexport interface ValidateAlphanumericOptions {\r\n str: string;\r\n}\r\n\r\n// Export the type definition for the function\r\nexport type ValidateAlphanumericType = (options: ValidateAlphanumericOptions) => Promise<boolean>;\r\n\r\n/**\r\n * Service to validate if a given string contains only alphanumeric characters.\r\n *\r\n * @class ValidateAlphanumeric\r\n *\r\n * @example\r\n * ```typescript\r\n * const validator = new ValidateAlphanumeric();\r\n * validator.validateAlphanumeric({ str: 'abc123' }).then(isValid => console.log(isValid)); // true\r\n * validator.validateAlphanumeric({ str: 'abc 123!' }).then(isValid => console.log(isValid)); // false\r\n * ```\r\n *\r\n * @param {ValidateAlphanumericOptions} options - Contains the string to validate.\r\n * @param {string} options.str - The input string that needs to be validated.\r\n * @returns {Promise<boolean>} - A promise resolving to `true` if the input string is alphanumeric, otherwise `false`.\r\n */\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class ValidateAlphanumeric {\r\n /**\r\n * Validates if the given string contains only alphanumeric characters.\r\n *\r\n * @param {ValidateAlphanumericOptions} options - The options containing the string to validate.\r\n * @param {string} options.str - The string to be validated.\r\n * @returns {Promise<boolean>} - A promise that resolves to `true` if the string is alphanumeric, otherwise `false`.\r\n */\r\n async validateAlphanumeric({ str }: ValidateAlphanumericOptions): Promise<boolean> {\r\n let code, i, len;\r\n\r\n for (i = 0, len = str.length; i < len; i++) {\r\n code = str.charCodeAt(i);\r\n if (\r\n !(code > 47 && code < 58) && // numeric (0-9)\r\n !(code > 64 && code < 91) && // upper alpha (A-Z)\r\n !(code > 96 && code < 123)\r\n ) {\r\n // lower alpha (a-z)\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Socket } from 'socket.io-client';\r\nimport { ValidateAlphanumeric } from '../../methods/utils/validate-alphanumeric.service';\r\nimport { RtpCapabilities } from 'mediasoup-client/lib/types';\r\n\r\nexport interface JoinConRoomOptions {\r\n socket: Socket;\r\n roomName: string;\r\n islevel: string;\r\n member: string;\r\n sec: string;\r\n apiUserName: string;\r\n}\r\n\r\nexport interface JoinConRoomResponse {\r\n success: boolean;\r\n rtpCapabilities: RtpCapabilities | null;\r\n reason?: string;\r\n banned?: boolean;\r\n suspended?: boolean;\r\n noAdmin?: boolean;\r\n [key: string]: any;\r\n}\r\n\r\n// Export the type definition for the function\r\nexport type JoinConRoomType = (options: JoinConRoomOptions) => Promise<JoinConRoomResponse>;\r\n\r\n/**\r\n * Joins a conference room with the provided options and performs validation checks.\r\n *\r\n * @param {JoinConRoomOptions} options - Contains:\r\n * - socket: Socket instance for communication.\r\n * - roomName: Name of the room to join.\r\n * - islevel: User level within the room.\r\n * - member: Member identifier.\r\n * - sec: Security token.\r\n * - apiUserName: API username for authentication.\r\n *\r\n * - **Validation**:\r\n * - Checks that `roomName`, `apiUserName`, and `member` are alphanumeric.\r\n * - Ensures `roomName` starts with 's' or 'p' and meets length requirements.\r\n * - Verifies `sec`, `islevel`, and `apiUserName` comply with length and format expectations.\r\n *\r\n * - **Response Handling**:\r\n * - Resolves to the server's response data upon a successful join.\r\n * - Rejects with specific reasons if the user is banned, suspended, or if the room host is not present.\r\n *\r\n * @returns {Promise<JoinConRoomResponse>} Resolves with the join response data, or rejects with error details.\r\n * @throws {Error} Throws validation errors or issues encountered while joining the room.\r\n *\r\n * @example\r\n * ```typescript\r\n * const joinOptions = {\r\n * socket: mySocket,\r\n * roomName: 'sMyRoom',\r\n * islevel: '1',\r\n * member: 'participant123',\r\n * sec: '64-character-long-secret-key-here...',\r\n * apiUserName: 'apiUser123',\r\n * };\r\n * joinConRoom(joinOptions)\r\n * .then(response => console.log('Joined room:', response))\r\n * .catch(error => console.error('Failed to join room:', error));\r\n * ```\r\n */\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class JoinConRoom {\r\n constructor(private validateAlphanumeric: ValidateAlphanumeric) {}\r\n\r\n /**\r\n * Joins a conference room using the provided options.\r\n *\r\n * @param {JoinConRoomOptions} options - The options for joining the conference room.\r\n * @param {Socket} options.socket - The socket instance to use for communication.\r\n * @param {string} options.roomName - The name of the room to join.\r\n * @param {string} options.islevel - The level of the user.\r\n * @param {string} options.member - The member identifier.\r\n * @param {string} options.sec - The security token.\r\n * @param {string} options.apiUserName - The API username.\r\n * @returns {Promise<JoinConRoomResponse>} A promise that resolves with the response of the join operation.\r\n *\r\n * @throws {Error} If any of the required parameters are missing or invalid.\r\n * @throws {Error} If the user is banned, suspended, or if the host has not joined the room yet.\r\n */\r\n async joinConRoom({\r\n socket,\r\n roomName,\r\n islevel,\r\n member,\r\n sec,\r\n apiUserName,\r\n }: JoinConRoomOptions): Promise<object> {\r\n return new Promise((resolve, reject) => {\r\n // Validate inputs\r\n if (!(sec && roomName && islevel && apiUserName && member)) {\r\n const validationError = {\r\n success: false,\r\n rtpCapabilities: null,\r\n reason: 'Missing required parameters',\r\n };\r\n reject(validationError);\r\n return;\r\n }\r\n\r\n // Validate alphanumeric for roomName, apiUserName, and member\r\n try {\r\n this.validateAlphanumeric.validateAlphanumeric({ str: roomName });\r\n this.validateAlphanumeric.validateAlphanumeric({ str: apiUserName });\r\n this.validateAlphanumeric.validateAlphanumeric({ str: member });\r\n } catch (error) {\r\n const validationError = {\r\n success: false,\r\n rtpCapabilities: null,\r\n reason: 'Invalid roomName or apiUserName or member',\r\n };\r\n reject(validationError);\r\n return;\r\n }\r\n\r\n // Validate roomName starts with 's' or 'p'\r\n if (!(roomName.startsWith('s') || roomName.startsWith('p'))) {\r\n const validationError = {\r\n success: false,\r\n rtpCapabilities: null,\r\n reason: 'Invalid roomName, must start with s or p',\r\n };\r\n reject(validationError);\r\n return;\r\n }\r\n\r\n // Validate other conditions for sec, roomName, islevel, apiUserName\r\n if (\r\n !(\r\n sec.length === 64 &&\r\n roomName.length >= 8 &&\r\n islevel.length === 1 &&\r\n apiUserName.length >= 6 &&\r\n (islevel === '0' || islevel === '1' || islevel === '2')\r\n )\r\n ) {\r\n const validationError = {\r\n success: false,\r\n rtpCapabilities: null,\r\n reason: 'Invalid roomName or islevel or apiUserName or secret',\r\n };\r\n reject(validationError);\r\n return;\r\n }\r\n\r\n socket.emit(\r\n 'joinConRoom',\r\n { roomName, islevel, member, sec, apiUserName },\r\n async (data: any) => {\r\n try {\r\n // Check if rtpCapabilities is null\r\n if (data.rtpCapabilities === null) {\r\n // Check if banned, suspended, or noAdmin\r\n if (data.banned) {\r\n throw new Error('User is banned.');\r\n }\r\n if (data.suspended) {\r\n throw new Error('User is suspended.');\r\n }\r\n if (data.noAdmin) {\r\n throw new Error('Host has not joined the room yet.');\r\n }\r\n\r\n // Resolve with the data received from the 'joinConRoom' event\r\n resolve(data);\r\n } else {\r\n // Resolve with the data received from the 'joinConRoom' event\r\n resolve(data);\r\n }\r\n } catch (error) {\r\n // Handle errors during the joinConRoom process\r\n console.log('Error joining room:', error);\r\n reject(error);\r\n }\r\n },\r\n );\r\n });\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { JoinConRoom } from '../../producers/producer-emits/join-con-room.service';\r\nimport { Socket } from 'socket.io-client';\r\nimport {\r\n ReceiveAllPipedTransportsType,\r\n ReceiveAllPipedTransportsParameters,\r\n CreateDeviceClientType,\r\n} from '../../@types/types';\r\nimport { Device, RtpCapabilities } from 'mediasoup-client/lib/types';\r\n\r\nexport interface JoinConsumeRoomParameters extends ReceiveAllPipedTransportsParameters {\r\n roomName: string;\r\n islevel: string;\r\n member: string;\r\n device: Device | null;\r\n updateDevice: (device: Device | null) => void;\r\n receiveAllPipedTransports: ReceiveAllPipedTransportsType;\r\n createDeviceClient: CreateDeviceClientType;\r\n\r\n // mediasfu functions\r\n [key: string]: any;\r\n}\r\nexport interface JoinConsumeRoomOptions {\r\n remote_sock: Socket;\r\n apiToken: string;\r\n apiUserName: string;\r\n parameters: JoinConsumeRoomParameters;\r\n}\r\n\r\ninterface JoinConsumeRoomResponse {\r\n success: boolean;\r\n rtpCapabilities?: RtpCapabilities;\r\n}\r\n\r\n// Export the type definition for the function\r\nexport type JoinConsumeRoomType = (\r\n options: JoinConsumeRoomOptions,\r\n) => Promise<JoinConsumeRoomResponse>;\r\n\r\n\r\n/**\r\n * @service JoinConsumeRoom\r\n * @description Service to join a media consumption room, setup device, and manage piped transports.\r\n *\r\n * @method joinConsumeRoom\r\n * Joins a consumption room by sending a request to the server and performing necessary device and transport setup.\r\n *\r\n * @param {JoinConsumeRoomOptions} options - Options for joining the consumption room.\r\n * @param {Socket} options.remote_sock - The remote socket used for joining the room.\r\n * @param {string} options.apiToken - API token for authentication.\r\n * @param {string} options.apiUserName - API username for authentication.\r\n * @param {JoinConsumeRoomParameters} options.parameters - Parameters required for the function.\r\n *\r\n * @returns {Promise<JoinConsumeRoomResponse>} A promise that resolves with the result of the join request.\r\n *\r\n * @example\r\n * ```typescript\r\n * const joinConsumeRoomResponse = await joinConsumeRoomService.joinConsumeRoom({\r\n * remote_sock: mySocket,\r\n * apiToken: 'apiToken123',\r\n * apiUserName: 'myUser',\r\n * parameters: {\r\n * roomName: 'room1',\r\n * islevel: '2',\r\n * member: 'JohnDoe',\r\n * device: null,\r\n * updateDevice: updateDeviceFunction,\r\n * receiveAllPipedTransports: receiveAllPipedTransportsFunction,\r\n * createDeviceClient: createDeviceClientFunction,\r\n * }\r\n * });\r\n * ```\r\n */\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class JoinConsumeRoom {\r\n constructor(private JoinConRoomService: JoinConRoom) {}\r\n\r\n /**\r\n * Joins a consumption room by sending a request to the server and handles the necessary setup.\r\n * @param {Object} options - The options object containing necessary variables.\r\n * @param {any} options.remote_sock - The remote socket information.\r\n * @param {string} options.apiToken - The API token for authentication.\r\n * @param {string} options.apiUserName - The API username for authentication.\r\n * @param {any} options.parameters - Additional parameters required for the function.\r\n * @returns {Promise<any>} - A promise that resolves with data related to the success of joining the room.\r\n */\r\n joinConsumeRoom = async ({\r\n remote_sock,\r\n apiToken,\r\n apiUserName,\r\n parameters,\r\n }: JoinConsumeRoomOptions): Promise<JoinConsumeRoomResponse> => {\r\n let {\r\n roomName,\r\n islevel,\r\n member,\r\n device,\r\n updateDevice,\r\n\r\n //Mediasfu functions\r\n receiveAllPipedTransports,\r\n createDeviceClient,\r\n } = parameters;\r\n\r\n try {\r\n // Join the consumption room\r\n const data: any = await this.JoinConRoomService.joinConRoom({\r\n socket: remote_sock,\r\n roomName,\r\n islevel,\r\n member,\r\n sec: apiToken,\r\n apiUserName,\r\n });\r\n\r\n if (data && data.success) {\r\n // Setup media device if not already set\r\n if (!device) {\r\n if (data.rtpCapabilities) {\r\n const device_ = await createDeviceClient({\r\n rtpCapabilities: data.rtpCapabilities,\r\n });\r\n\r\n if (device_) {\r\n updateDevice(device_);\r\n }\r\n }\r\n }\r\n\r\n // Receive all piped transports\r\n await receiveAllPipedTransports({ nsock: remote_sock, parameters });\r\n }\r\n\r\n return data;\r\n } catch (error) {\r\n console.log('Error in joinConsumeRoom:', error);\r\n throw new Error('Failed to join the consumption room or set up necessary components.');\r\n }\r\n };\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Transport, CloseAndResizeParameters, CloseAndResizeType } from '../../@types/types';\r\n\r\nexport interface ProducerClosedParameters extends CloseAndResizeParameters {\r\n consumerTransports: Transport[];\r\n screenId?: string;\r\n updateConsumerTransports: (transports: Transport[]) => void;\r\n\r\n // mediasfu functions\r\n closeAndResize: CloseAndResizeType;\r\n getUpdatedAllParams: () => ProducerClosedParameters;\r\n [key: string]: any;\r\n}\r\n\r\nexport interface ProducerClosedOptions {\r\n remoteProducerId: string;\r\n parameters: ProducerClosedParameters;\r\n}\r\n\r\n// Export the type definition for the function\r\nexport type ProducerClosedType = (options: ProducerClosedOptions) => Promise<void>;\r\n\r\n/**\r\n * @service ProducerClosed\r\n * @description Service to manage the closing of a producer, including resizing video elements and updating consumer transports.\r\n *\r\n * @method producerClosed\r\n * Closes a specific producer by its ID, adjusts any associated video elements, and updates the list of consumer transports.\r\n *\r\n * @param {ProducerClosedOptions} options - Options for closing the specified producer.\r\n * @param {string} options.remoteProducerId - Unique ID for the producer to close.\r\n * @param {ProducerClosedParameters} options.parameters - Parameters to configure the producer closure and related updates.\r\n *\r\n * @returns {Promise<void>} A promise that resolves when the producer has been closed and relevant updates have been made.\r\n *\r\n * @example\r\n * ```typescript\r\n * await producerClosedService.producerClosed({\r\n * remoteProducerId: 'producer123',\r\n * parameters: {\r\n * consumerTransports: currentTransports,\r\n * screenId: 'screen123',\r\n * updateConsumerTransports: updateTransportList,\r\n * closeAndResize: closeAndResizeFunction,\r\n * getUpdatedAllParams: getUpdatedParamsFunction,\r\n * }\r\n * });\r\n * ```\r\n */\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class ProducerClosed {\r\n /**\r\n * Handles the closing of a producer and resizes video elements.\r\n * @param {Object} options - The options object containing necessary variables.\r\n * @param {string} options.remoteProducerId - The ID of the remote producer.\r\n * @param {any} options.parameters - Additional parameters required for the function.\r\n * @returns {Promise<void>}\r\n */\r\n producerClosed = async ({\r\n remoteProducerId,\r\n parameters,\r\n }: ProducerClosedOptions): Promise<void> => {\r\n let {\r\n consumerTransports,\r\n screenId,\r\n updateConsumerTransports,\r\n\r\n // mediasfu functions\r\n closeAndResize,\r\n } = parameters;\r\n\r\n // Handle producer closed\r\n const producerToClose = consumerTransports.find(\r\n (transportData: any) => transportData.producerId === remoteProducerId,\r\n );\r\n\r\n if (!producerToClose) {\r\n return;\r\n }\r\n\r\n // Check if the ID of the producer to close is == screenId\r\n let kind: string = producerToClose.consumer.kind;\r\n\r\n if (producerToClose.producerId == screenId) {\r\n kind = 'screenshare';\r\n }\r\n try {\r\n await producerToClose['consumerTransport'].close();\r\n } catch (error) {\r\n console.error('Error closing consumerTransport:', error);\r\n }\r\n\r\n try {\r\n producerToClose.consumer.close();\r\n } catch (error) {\r\n console.error('Error closing consumer:', error);\r\n }\r\n\r\n consumerTransports = consumerTransports.filter(\r\n (transportData: any) => transportData.producerId !== remoteProducerId,\r\n );\r\n updateConsumerTransports(consumerTransports);\r\n\r\n // Close and resize the videos\r\n await closeAndResize({ producerId: remoteProducerId, kind: kind, parameters: parameters });\r\n };\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Socket } from 'socket.io-client';\r\nimport {\r\n ReorderStreamsParameters,\r\n ReorderStreamsType,\r\n ConnectRecvTransportType,\r\n ConnectRecvTransportParameters,\r\n CreateWebRTCTransportResponse,\r\n} from '../@types/types';\r\nimport { Device, DtlsParameters } from 'mediasoup-client/lib/types';\r\n\r\nexport interface SignalNewConsumerTransportParameters\r\n extends ReorderStreamsParameters,\r\n ConnectRecvTransportParameters {\r\n device: Device | null;\r\n consumingTransports: string[];\r\n lock_screen: boolean;\r\n updateConsumingTransports: (transports: string[]) => void;\r\n connectRecvTransport: ConnectRecvTransportType;\r\n reorderStreams: ReorderStreamsType;\r\n getUpdatedAllParams: () => SignalNewConsumerTransportParameters;\r\n [key: string]: any;\r\n}\r\n\r\nexport interface SignalNewConsumerTransportOptions {\r\n remoteProducerId: string;\r\n islevel: string;\r\n nsock: Socket;\r\n parameters: SignalNewConsumerTransportParameters;\r\n}\r\n\r\n// Export the type definition for the function\r\nexport type SignalNewConsumerTransportType = (\r\n options: SignalNewConsumerTransportOptions,\r\n) => Promise<string[] | void>;\r\n\r\n/**\r\n * Signals the creation of a new consumer transport.\r\n *\r\n * @param {Object} options - The options for signaling a new consumer transport.\r\n * @param {string} options.remoteProducerId - The ID of the remote producer.\r\n * @param {boolean} options.islevel - Indicates the level of the consumer.\r\n * @param {any} options.nsock - The socket instance for communication.\r\n * @param {SignalNewConsumerTransportOptions} options.parameters - The parameters for the transport.\r\n *\r\n * @returns {Promise<string[] | void>} A promise that resolves to an array of consuming transports or void.\r\n *\r\n * @throws Will throw an error if the signaling process fails.\r\n *\r\n * @example\r\n * const options = {\r\n * remoteProducerId: 'producer-id',\r\n * islevel: true,\r\n * nsock: socketInstance,\r\n * parameters: {\r\n * device: mediaDevice,\r\n * consumingTransports: [],\r\n * lock_screen: false,\r\n * updateConsumingTransports: updateFunction,\r\n * connectRecvTransport: connectFun