mediasfu-angular 1.0.1 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +871 -769
- package/dist/README.md +870 -769
- package/dist/fesm2022/mediasfu-angular.mjs +13241 -3372
- package/dist/fesm2022/mediasfu-angular.mjs.map +1 -1
- package/dist/lib/@types/types.d.ts +22 -1
- package/dist/lib/components/background-components/background-modal/background-modal.component.d.ts +36 -0
- package/dist/lib/components/breakout-components/breakout-rooms-modal.component.d.ts +51 -0
- package/dist/lib/components/breakout-components/edit-room-modal/edit-room-modal.component.d.ts +48 -0
- package/dist/lib/components/co-host-components/co-host-modal/co-host-modal.component.d.ts +62 -0
- package/dist/lib/components/display-components/alert-component/alert.component.component.d.ts +24 -18
- package/dist/lib/components/display-components/audio-card/audio-card.component.d.ts +59 -0
- package/dist/lib/components/display-components/audio-grid/audio-grid.component.d.ts +20 -0
- package/dist/lib/components/display-components/card-video-display/card-video-display.component.d.ts +35 -0
- package/dist/lib/components/display-components/control-buttons-alt-component/control-buttons-alt-component.component.d.ts +38 -0
- package/dist/lib/components/display-components/control-buttons-component-touch/control-buttons-component-touch.component.d.ts +24 -40
- package/dist/lib/components/display-components/control-widgets/menu-participants-widget.component.d.ts +21 -0
- package/dist/lib/components/display-components/control-widgets/menu-record-widget.component.d.ts +22 -0
- package/dist/lib/components/display-components/control-widgets/menu-widget.component.d.ts +23 -0
- package/dist/lib/components/display-components/control-widgets/message-widget.component.d.ts +23 -0
- package/dist/lib/components/display-components/control-widgets/record-timer-widget.component.d.ts +15 -0
- package/dist/lib/components/display-components/control-widgets/screenshare-widget.component.d.ts +27 -0
- package/dist/lib/components/display-components/flexible-grid/flexible-grid.component.d.ts +27 -18
- package/dist/lib/components/display-components/flexible-video/flexible-video.component.d.ts +30 -45
- package/dist/lib/components/display-components/loading-modal/loading-modal.component.d.ts +19 -17
- package/dist/lib/components/display-components/main-aspect-component/main-aspect-component.component.d.ts +32 -24
- package/dist/lib/components/display-components/main-container-component/main-container-component.component.d.ts +28 -16
- package/dist/lib/components/display-components/main-grid-component/main-grid-component.component.d.ts +28 -14
- package/dist/lib/components/display-components/main-screen-component/main-screen-component.component.d.ts +43 -22
- package/dist/lib/components/display-components/meeting-progress-timer/meeting-progress-timer.component.d.ts +25 -30
- package/dist/lib/components/display-components/mini-audio/mini-audio.component.d.ts +55 -62
- package/dist/lib/components/display-components/mini-card/mini-card.component.d.ts +19 -23
- package/dist/lib/components/display-components/mini-card-audio/mini-card-audio.component.d.ts +39 -39
- package/dist/lib/components/display-components/other-grid-component/other-grid-component.component.d.ts +28 -13
- package/dist/lib/components/display-components/pagination/pagination.component.d.ts +29 -23
- package/dist/lib/components/display-components/sub-aspect-component/sub-aspect-component.component.d.ts +18 -24
- package/dist/lib/components/display-components/video-card/video-card.component.d.ts +62 -0
- package/dist/lib/components/display-settings-components/display-settings-modal.component.d.ts +28 -17
- package/dist/lib/components/event-settings-components/event-settings-modal/event-settings-modal.component.d.ts +47 -38
- package/dist/lib/components/exit-components/confirm-exit-modal/confirm-exit-modal.component.d.ts +35 -22
- package/dist/lib/components/media-settings-components/media-settings-modal/media-settings-modal.component.d.ts +35 -24
- package/dist/lib/components/mediasfu-components/mediasfu-broadcast.component.d.ts +258 -117
- package/dist/lib/components/mediasfu-components/mediasfu-chat.component.d.ts +254 -117
- package/dist/lib/components/mediasfu-components/mediasfu-conference.component.d.ts +312 -162
- package/dist/lib/components/mediasfu-components/mediasfu-generic.component.d.ts +312 -162
- package/dist/lib/components/mediasfu-components/mediasfu-webinar.component.d.ts +310 -162
- package/dist/lib/components/menu-components/custom-buttons/custom-buttons.component.d.ts +49 -51
- package/dist/lib/components/menu-components/meeting-id-component/meeting-id-component.component.d.ts +6 -1
- package/dist/lib/components/menu-components/meeting-passcode-component/meeting-passcode-component.component.d.ts +5 -0
- package/dist/lib/components/menu-components/menu-modal/menu-modal.component.d.ts +27 -29
- package/dist/lib/components/menu-components/share-buttons-component/share-buttons-component.component.d.ts +20 -15
- package/dist/lib/components/message-components/message-panel/message-panel.component.d.ts +24 -0
- package/dist/lib/components/message-components/messages-modal/messages-modal.component.d.ts +34 -0
- package/dist/lib/components/misc-components/confirm-here-modal/confirm-here-modal.component.d.ts +20 -35
- package/dist/lib/components/misc-components/pre-join-page/pre-join-page.component.d.ts +79 -66
- package/dist/lib/components/misc-components/share-event-modal/share-event-modal.component.d.ts +19 -1
- package/dist/lib/components/misc-components/welcome-page/welcome-page.component.d.ts +15 -0
- package/dist/lib/components/participants-components/participant-list/participant-list.component.d.ts +19 -0
- package/dist/lib/components/participants-components/participant-list-item/participant-list-item.component.d.ts +19 -0
- package/dist/lib/components/participants-components/participant-list-others/participant-list-others.component.d.ts +17 -0
- package/dist/lib/components/participants-components/participant-list-others-item/participant-list-others-item.component.d.ts +17 -0
- package/dist/lib/components/participants-components/participants-modal/participants-modal.component.d.ts +24 -0
- package/dist/lib/components/polls-components/poll-modal/poll-modal.component.d.ts +27 -0
- package/dist/lib/components/recording-components/advanced-panel-component/advanced-panel-components.component.d.ts +15 -0
- package/dist/lib/components/recording-components/recording-modal/recording-modal.component.d.ts +12 -0
- package/dist/lib/components/recording-components/standard-panel-component/standard-panel-component.component.d.ts +5 -0
- package/dist/lib/components/requests-components/render-request-component/render-request-component.component.d.ts +22 -0
- package/dist/lib/components/requests-components/requests-modal/requests-modal.component.d.ts +17 -0
- package/dist/lib/components/screenboard-components/screenboard/screenboard.component.d.ts +10 -0
- package/dist/lib/components/screenboard-components/screenboard-modal/screenboard-modal.component.d.ts +11 -0
- package/dist/lib/components/waiting-components/waiting-room-modal.component.d.ts +59 -0
- package/dist/lib/components/whiteboard-components/configure-whiteboard-modal/configure-whiteboard-modal.component.d.ts +21 -0
- package/dist/lib/components/whiteboard-components/whiteboard/whiteboard.component.d.ts +49 -0
- package/dist/lib/consumers/add-videos-grid.service.d.ts +49 -0
- package/dist/lib/consumers/auto-adjust.service.d.ts +26 -0
- package/dist/lib/consumers/calculate-rows-and-columns.service.d.ts +18 -0
- package/dist/lib/consumers/change-vids.service.d.ts +131 -66
- package/dist/lib/consumers/check-grid.service.d.ts +32 -18
- package/dist/lib/consumers/check-permission.service.d.ts +25 -0
- package/dist/lib/consumers/check-screen-share.service.d.ts +35 -0
- package/dist/lib/consumers/close-and-resize.service.d.ts +102 -0
- package/dist/lib/consumers/compare-active-names.service.d.ts +31 -0
- package/dist/lib/consumers/compare-screen-states.service.d.ts +35 -0
- package/dist/lib/consumers/connect-ips.service.d.ts +42 -0
- package/dist/lib/consumers/connect-local-ips.service.d.ts +81 -0
- package/dist/lib/consumers/connect-recv-transport.service.d.ts +33 -0
- package/dist/lib/consumers/connect-send-transport-audio.service.d.ts +81 -11
- package/dist/lib/consumers/connect-send-transport-screen.service.d.ts +96 -15
- package/dist/lib/consumers/connect-send-transport-video.service.d.ts +101 -11
- package/dist/lib/consumers/connect-send-transport.service.d.ts +59 -1
- package/dist/lib/consumers/consumer-resume.service.d.ts +36 -0
- package/dist/lib/consumers/control-media.service.d.ts +45 -0
- package/dist/lib/consumers/create-send-transport.service.d.ts +149 -13
- package/dist/lib/consumers/disconnect-send-transport-audio.service.d.ts +100 -13
- package/dist/lib/consumers/disconnect-send-transport-screen.service.d.ts +75 -2
- package/dist/lib/consumers/disconnect-send-transport-video.service.d.ts +99 -17
- package/dist/lib/consumers/disp-streams.service.d.ts +92 -0
- package/dist/lib/consumers/generate-page-content.service.d.ts +47 -0
- package/dist/lib/consumers/get-estimate.service.d.ts +50 -0
- package/dist/lib/consumers/get-piped-producers-alt.service.d.ts +38 -1
- package/dist/lib/consumers/get-producers-piped.service.d.ts +33 -0
- package/dist/lib/consumers/get-videos.service.d.ts +33 -0
- package/dist/lib/consumers/mix-streams.service.d.ts +22 -0
- package/dist/lib/consumers/on-screen-changes.service.d.ts +40 -0
- package/dist/lib/consumers/prepopulate-user-media.service.d.ts +99 -0
- package/dist/lib/consumers/process-consumer-transports-audio.service.d.ts +29 -0
- package/dist/lib/consumers/process-consumer-transports.service.d.ts +37 -0
- package/dist/lib/consumers/re-port.service.d.ts +48 -0
- package/dist/lib/consumers/re-update-inter.service.d.ts +82 -0
- package/dist/lib/consumers/readjust.service.d.ts +50 -0
- package/dist/lib/consumers/receive-all-piped-transports.service.d.ts +36 -1
- package/dist/lib/consumers/receive-room-messages.service.d.ts +27 -0
- package/dist/lib/consumers/reorder-streams.service.d.ts +58 -0
- package/dist/lib/consumers/request-screen-share.service.d.ts +34 -0
- package/dist/lib/consumers/resume-pause-audio-streams.service.d.ts +51 -0
- package/dist/lib/consumers/resume-pause-streams.service.d.ts +33 -0
- package/dist/lib/consumers/resume-send-transport-audio.service.d.ts +76 -7
- package/dist/lib/consumers/signal-new-consumer-transport.service.d.ts +37 -37
- package/dist/lib/consumers/socket-receive-methods/join-consume-room.service.d.ts +33 -0
- package/dist/lib/consumers/socket-receive-methods/new-pipe-producer.service.d.ts +39 -0
- package/dist/lib/consumers/socket-receive-methods/producer-closed.service.d.ts +27 -0
- package/dist/lib/consumers/start-share-screen.service.d.ts +40 -0
- package/dist/lib/consumers/stop-share-screen.service.d.ts +55 -0
- package/dist/lib/consumers/stream-success-audio-switch.service.d.ts +148 -11
- package/dist/lib/consumers/stream-success-audio.service.d.ts +61 -0
- package/dist/lib/consumers/stream-success-screen.service.d.ts +50 -0
- package/dist/lib/consumers/stream-success-video.service.d.ts +58 -0
- package/dist/lib/consumers/switch-user-audio.service.d.ts +33 -0
- package/dist/lib/consumers/switch-user-video-alt.service.d.ts +32 -0
- package/dist/lib/consumers/switch-user-video.service.d.ts +47 -0
- package/dist/lib/consumers/trigger.service.d.ts +41 -0
- package/dist/lib/consumers/update-mini-cards-grid.service.d.ts +54 -0
- package/dist/lib/consumers/update-participant-audio-decibels.service.d.ts +45 -0
- package/dist/lib/methods/background-methods/launch-background.service.d.ts +25 -0
- package/dist/lib/methods/breakout-room-methods/breakout-room-updated.service.d.ts +71 -0
- package/dist/lib/methods/breakout-room-methods/launch-breakout-rooms.service.d.ts +24 -0
- package/dist/lib/methods/co-host-methods/launch-co-host.service.d.ts +24 -0
- package/dist/lib/methods/co-host-methods/modify-co-host-settings.service.d.ts +44 -0
- package/dist/lib/methods/display-settings-methods/launch-display-settings.service.d.ts +22 -0
- package/dist/lib/methods/display-settings-methods/modify-display-settings.service.d.ts +75 -0
- package/dist/lib/methods/exit-methods/confirm-exit.service.d.ts +29 -1
- package/dist/lib/methods/exit-methods/launch-confirm-exit.service.d.ts +20 -0
- package/dist/lib/methods/media-settings-methods/launch-media-settings.service.d.ts +35 -0
- package/dist/lib/methods/menu-methods/launch-menu-modal.service.d.ts +22 -0
- package/dist/lib/methods/message-methods/launch-messages.service.d.ts +22 -0
- package/dist/lib/methods/message-methods/send-message.service.d.ts +49 -0
- package/dist/lib/methods/participants-methods/launch-participants.service.d.ts +24 -0
- package/dist/lib/methods/participants-methods/message-participants.service.d.ts +46 -0
- package/dist/lib/methods/participants-methods/mute-participants.service.d.ts +39 -0
- package/dist/lib/methods/participants-methods/remove-participants.service.d.ts +45 -0
- package/dist/lib/methods/polls-methods/handle-create-poll.service.d.ts +38 -0
- package/dist/lib/methods/polls-methods/handle-end-poll.service.d.ts +32 -0
- package/dist/lib/methods/polls-methods/handle-vote-poll.service.d.ts +34 -0
- package/dist/lib/methods/polls-methods/launch-poll.service.d.ts +20 -0
- package/dist/lib/methods/polls-methods/poll-updated.service.d.ts +31 -0
- package/dist/lib/methods/recording-methods/check-pause-state.service.d.ts +24 -0
- package/dist/lib/methods/recording-methods/check-resume-state.service.d.ts +22 -0
- package/dist/lib/methods/recording-methods/confirm-recording.service.d.ts +63 -0
- package/dist/lib/methods/recording-methods/launch-recording.service.d.ts +43 -0
- package/dist/lib/methods/recording-methods/record-pause-timer.service.d.ts +27 -0
- package/dist/lib/methods/recording-methods/record-resume-timer.service.d.ts +44 -0
- package/dist/lib/methods/recording-methods/record-start-timer.service.d.ts +45 -0
- package/dist/lib/methods/recording-methods/record-update-timer.service.d.ts +32 -0
- package/dist/lib/methods/recording-methods/start-recording.service.d.ts +53 -0
- package/dist/lib/methods/recording-methods/stop-recording.service.d.ts +42 -1
- package/dist/lib/methods/recording-methods/update-recording.service.d.ts +51 -0
- package/dist/lib/methods/requests-methods/launch-requests.service.d.ts +25 -0
- package/dist/lib/methods/requests-methods/respond-to-requests.service.d.ts +39 -0
- package/dist/lib/methods/settings-methods/launch-settings.service.d.ts +25 -0
- package/dist/lib/methods/settings-methods/modify-settings.service.d.ts +42 -0
- package/dist/lib/methods/stream-methods/click-audio.service.d.ts +100 -0
- package/dist/lib/methods/stream-methods/click-chat.service.d.ts +31 -0
- package/dist/lib/methods/stream-methods/click-screen-share.service.d.ts +68 -0
- package/dist/lib/methods/stream-methods/click-video.service.d.ts +88 -0
- package/dist/lib/methods/stream-methods/switch-audio.service.d.ts +47 -0
- package/dist/lib/methods/stream-methods/switch-video-alt.service.d.ts +50 -0
- package/dist/lib/methods/stream-methods/switch-video.service.d.ts +56 -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/format-number.service.d.ts +26 -14
- package/dist/lib/methods/utils/generate-random-messages.service.d.ts +33 -0
- package/dist/lib/methods/utils/generate-random-participants.service.d.ts +27 -0
- package/dist/lib/methods/utils/generate-random-polls.service.d.ts +26 -0
- package/dist/lib/methods/utils/generate-random-request-list.service.d.ts +36 -0
- package/dist/lib/methods/utils/generate-random-waiting-room-list.service.d.ts +21 -0
- package/dist/lib/methods/utils/get-modal-position.util.d.ts +13 -3
- package/dist/lib/methods/utils/get-overlay-position.util.d.ts +13 -3
- 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/utils/meeting-timer/start-meeting-progress-timer.service.d.ts +37 -0
- package/dist/lib/methods/utils/mini-audio-player/mini-audio-player.component.d.ts +55 -0
- package/dist/lib/methods/utils/producer/a-params.service.d.ts +37 -0
- package/dist/lib/methods/utils/producer/h-params.service.d.ts +50 -0
- package/dist/lib/methods/utils/producer/screen-params.service.d.ts +37 -0
- package/dist/lib/methods/utils/producer/v-params.service.d.ts +50 -0
- package/dist/lib/methods/utils/producer/video-capture-constraints.service.d.ts +46 -0
- package/dist/lib/methods/utils/sleep.util.d.ts +9 -3
- package/dist/lib/methods/utils/sound-player.service.d.ts +21 -0
- package/dist/lib/methods/utils/validate-alphanumeric.service.d.ts +16 -0
- package/dist/lib/methods/waiting-methods/launch-waiting.service.d.ts +18 -0
- package/dist/lib/methods/waiting-methods/respond-to-waiting.service.d.ts +29 -0
- package/dist/lib/methods/whiteboard-methods/capture-canvas-stream.service.d.ts +46 -0
- package/dist/lib/methods/whiteboard-methods/launch-configure-whiteboard.service.d.ts +20 -0
- package/dist/lib/producer-client/producer-client-emits/create-device-client.service.d.ts +23 -0
- package/dist/lib/producer-client/producer-client-emits/join-room-client.service.d.ts +31 -0
- package/dist/lib/producer-client/producer-client-emits/update-room-parameters-client.service.d.ts +44 -0
- package/dist/lib/producers/producer-emits/join-con-room.service.d.ts +38 -0
- package/dist/lib/producers/producer-emits/join-local-room.service.d.ts +125 -0
- package/dist/lib/producers/producer-emits/join-room.service.d.ts +38 -0
- package/dist/lib/producers/socket-receive-methods/all-members-rest.service.d.ts +80 -2
- package/dist/lib/producers/socket-receive-methods/all-members.service.d.ts +78 -2
- package/dist/lib/producers/socket-receive-methods/all-waiting-room-members.service.d.ts +27 -0
- package/dist/lib/producers/socket-receive-methods/ban-participant.service.d.ts +36 -0
- package/dist/lib/producers/socket-receive-methods/control-media-host.service.d.ts +37 -0
- package/dist/lib/producers/socket-receive-methods/disconnect-user-self.service.d.ts +29 -1
- package/dist/lib/producers/socket-receive-methods/disconnect.service.d.ts +26 -0
- package/dist/lib/producers/socket-receive-methods/get-domains.service.d.ts +24 -9
- package/dist/lib/producers/socket-receive-methods/host-request-response.service.d.ts +31 -48
- package/dist/lib/producers/socket-receive-methods/meeting-ended.service.d.ts +29 -0
- package/dist/lib/producers/socket-receive-methods/meeting-still-there.service.d.ts +23 -0
- package/dist/lib/producers/socket-receive-methods/meeting-time-remaining.service.d.ts +27 -0
- package/dist/lib/producers/socket-receive-methods/participant-requested.service.d.ts +31 -0
- package/dist/lib/producers/socket-receive-methods/person-joined.service.d.ts +25 -0
- package/dist/lib/producers/socket-receive-methods/producer-media-closed.service.d.ts +61 -0
- package/dist/lib/producers/socket-receive-methods/producer-media-paused.service.d.ts +62 -0
- package/dist/lib/producers/socket-receive-methods/producer-media-resumed.service.d.ts +45 -0
- package/dist/lib/producers/socket-receive-methods/re-initiate-recording.service.d.ts +29 -0
- package/dist/lib/producers/socket-receive-methods/receive-message.service.d.ts +38 -0
- package/dist/lib/producers/socket-receive-methods/recording-notice.service.d.ts +38 -0
- package/dist/lib/producers/socket-receive-methods/room-record-params.service.d.ts +62 -0
- package/dist/lib/producers/socket-receive-methods/screen-producer-id.service.d.ts +41 -0
- package/dist/lib/producers/socket-receive-methods/start-records.service.d.ts +25 -0
- package/dist/lib/producers/socket-receive-methods/stopped-recording.service.d.ts +25 -0
- package/dist/lib/producers/socket-receive-methods/time-left-recording.service.d.ts +21 -0
- package/dist/lib/producers/socket-receive-methods/update-consuming-domains.service.d.ts +42 -0
- package/dist/lib/producers/socket-receive-methods/update-media-settings.service.d.ts +30 -0
- package/dist/lib/producers/socket-receive-methods/updated-co-host.service.d.ts +40 -0
- package/dist/lib/producers/socket-receive-methods/user-waiting.service.d.ts +14 -40
- package/dist/lib/sockets/socket-manager.service.d.ts +130 -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 -763
- package/dist/esm2022/lib/components/breakout-components/breakout-rooms-modal.component.mjs +0 -316
- package/dist/esm2022/lib/components/breakout-components/edit-room-modal/edit-room-modal.component.mjs +0 -95
- 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 -246
- package/dist/esm2022/lib/components/display-components/alert-component/alert.component.component.mjs +0 -73
- package/dist/esm2022/lib/components/display-components/audio-card/audio-card.component.mjs +0 -297
- package/dist/esm2022/lib/components/display-components/audio-grid/audio-grid.component.mjs +0 -60
- package/dist/esm2022/lib/components/display-components/card-video-display/card-video-display.component.mjs +0 -94
- package/dist/esm2022/lib/components/display-components/control-buttons-alt-component/control-buttons-alt-component.component.mjs +0 -100
- 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 -298
- package/dist/esm2022/lib/components/display-components/control-widgets/menu-participants-widget.component.mjs +0 -61
- package/dist/esm2022/lib/components/display-components/control-widgets/menu-record-widget.component.mjs +0 -43
- package/dist/esm2022/lib/components/display-components/control-widgets/menu-widget.component.mjs +0 -114
- package/dist/esm2022/lib/components/display-components/control-widgets/message-widget.component.mjs +0 -114
- package/dist/esm2022/lib/components/display-components/control-widgets/record-timer-widget.component.mjs +0 -36
- package/dist/esm2022/lib/components/display-components/control-widgets/screenshare-widget.component.mjs +0 -74
- package/dist/esm2022/lib/components/display-components/flexible-grid/flexible-grid.component.mjs +0 -142
- package/dist/esm2022/lib/components/display-components/flexible-video/flexible-video.component.mjs +0 -265
- package/dist/esm2022/lib/components/display-components/loading-modal/loading-modal.component.mjs +0 -100
- package/dist/esm2022/lib/components/display-components/main-aspect-component/main-aspect-component.component.mjs +0 -132
- package/dist/esm2022/lib/components/display-components/main-container-component/main-container-component.component.mjs +0 -119
- package/dist/esm2022/lib/components/display-components/main-grid-component/main-grid-component.component.mjs +0 -106
- package/dist/esm2022/lib/components/display-components/main-screen-component/main-screen-component.component.mjs +0 -180
- package/dist/esm2022/lib/components/display-components/meeting-progress-timer/meeting-progress-timer.component.mjs +0 -120
- package/dist/esm2022/lib/components/display-components/mini-audio/mini-audio.component.mjs +0 -326
- package/dist/esm2022/lib/components/display-components/mini-card/mini-card.component.mjs +0 -165
- 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 -111
- package/dist/esm2022/lib/components/display-components/pagination/pagination.component.mjs +0 -328
- package/dist/esm2022/lib/components/display-components/sub-aspect-component/sub-aspect-component.component.mjs +0 -118
- package/dist/esm2022/lib/components/display-components/video-card/video-card.component.mjs +0 -330
- package/dist/esm2022/lib/components/display-settings-components/display-settings-modal.component.mjs +0 -95
- package/dist/esm2022/lib/components/event-settings-components/event-settings-modal/event-settings-modal.component.mjs +0 -190
- package/dist/esm2022/lib/components/exit-components/confirm-exit-modal/confirm-exit-modal.component.mjs +0 -119
- package/dist/esm2022/lib/components/media-settings-components/media-settings-modal/media-settings-modal.component.mjs +0 -209
- package/dist/esm2022/lib/components/mediasfu-components/mediasfu-broadcast.component.mjs +0 -4189
- package/dist/esm2022/lib/components/mediasfu-components/mediasfu-chat.component.mjs +0 -3705
- package/dist/esm2022/lib/components/mediasfu-components/mediasfu-conference.component.mjs +0 -5024
- package/dist/esm2022/lib/components/mediasfu-components/mediasfu-generic.component.mjs +0 -5333
- package/dist/esm2022/lib/components/mediasfu-components/mediasfu-webinar.component.mjs +0 -5023
- package/dist/esm2022/lib/components/menu-components/custom-buttons/custom-buttons.component.mjs +0 -85
- package/dist/esm2022/lib/components/menu-components/meeting-id-component/meeting-id-component.component.mjs +0 -22
- package/dist/esm2022/lib/components/menu-components/meeting-passcode-component/meeting-passcode-component.component.mjs +0 -22
- package/dist/esm2022/lib/components/menu-components/menu-modal/menu-modal.component.mjs +0 -132
- package/dist/esm2022/lib/components/menu-components/share-buttons-component/share-buttons-component.component.mjs +0 -104
- package/dist/esm2022/lib/components/message-components/message-panel/message-panel.component.mjs +0 -204
- package/dist/esm2022/lib/components/message-components/messages-modal/messages-modal.component.mjs +0 -243
- package/dist/esm2022/lib/components/misc-components/confirm-here-modal/confirm-here-modal.component.mjs +0 -147
- package/dist/esm2022/lib/components/misc-components/pre-join-page/pre-join-page.component.mjs +0 -335
- package/dist/esm2022/lib/components/misc-components/share-event-modal/share-event-modal.component.mjs +0 -113
- package/dist/esm2022/lib/components/misc-components/welcome-page/welcome-page.component.mjs +0 -226
- package/dist/esm2022/lib/components/participants-components/participant-list/participant-list.component.mjs +0 -63
- package/dist/esm2022/lib/components/participants-components/participant-list-item/participant-list-item.component.mjs +0 -120
- package/dist/esm2022/lib/components/participants-components/participant-list-others/participant-list-others.component.mjs +0 -23
- package/dist/esm2022/lib/components/participants-components/participant-list-others-item/participant-list-others-item.component.mjs +0 -43
- package/dist/esm2022/lib/components/participants-components/participants-modal/participants-modal.component.mjs +0 -100
- package/dist/esm2022/lib/components/polls-components/poll-modal/poll-modal.component.mjs +0 -174
- package/dist/esm2022/lib/components/recording-components/advanced-panel-component/advanced-panel-components.component.mjs +0 -77
- package/dist/esm2022/lib/components/recording-components/recording-modal/recording-modal.component.mjs +0 -121
- package/dist/esm2022/lib/components/recording-components/standard-panel-component/standard-panel-component.component.mjs +0 -85
- package/dist/esm2022/lib/components/requests-components/render-request-component/render-request-component.component.mjs +0 -59
- package/dist/esm2022/lib/components/requests-components/requests-modal/requests-modal.component.mjs +0 -130
- package/dist/esm2022/lib/components/screenboard-components/screenboard/screenboard.component.mjs +0 -617
- package/dist/esm2022/lib/components/screenboard-components/screenboard-modal/screenboard-modal.component.mjs +0 -380
- package/dist/esm2022/lib/components/waiting-components/waiting-room-modal.component.mjs +0 -142
- package/dist/esm2022/lib/components/whiteboard-components/configure-whiteboard-modal/configure-whiteboard-modal.component.mjs +0 -265
- package/dist/esm2022/lib/components/whiteboard-components/whiteboard/whiteboard.component.mjs +0 -1784
- package/dist/esm2022/lib/consumers/add-videos-grid.service.mjs +0 -296
- package/dist/esm2022/lib/consumers/auto-adjust.service.mjs +0 -83
- package/dist/esm2022/lib/consumers/calculate-rows-and-columns.service.mjs +0 -42
- package/dist/esm2022/lib/consumers/change-vids.service.mjs +0 -486
- package/dist/esm2022/lib/consumers/check-grid.service.mjs +0 -79
- package/dist/esm2022/lib/consumers/check-permission.service.mjs +0 -80
- package/dist/esm2022/lib/consumers/check-screen-share.service.mjs +0 -71
- package/dist/esm2022/lib/consumers/close-and-resize.service.mjs +0 -229
- package/dist/esm2022/lib/consumers/compare-active-names.service.mjs +0 -75
- package/dist/esm2022/lib/consumers/compare-screen-states.service.mjs +0 -63
- package/dist/esm2022/lib/consumers/connect-ips.service.mjs +0 -112
- package/dist/esm2022/lib/consumers/connect-recv-transport.service.mjs +0 -113
- package/dist/esm2022/lib/consumers/connect-send-transport-audio.service.mjs +0 -46
- package/dist/esm2022/lib/consumers/connect-send-transport-screen.service.mjs +0 -62
- package/dist/esm2022/lib/consumers/connect-send-transport-video.service.mjs +0 -55
- package/dist/esm2022/lib/consumers/connect-send-transport.service.mjs +0 -86
- package/dist/esm2022/lib/consumers/consumer-resume.service.mjs +0 -332
- package/dist/esm2022/lib/consumers/control-media.service.mjs +0 -68
- package/dist/esm2022/lib/consumers/create-send-transport.service.mjs +0 -126
- package/dist/esm2022/lib/consumers/disconnect-send-transport-audio.service.mjs +0 -58
- package/dist/esm2022/lib/consumers/disconnect-send-transport-screen.service.mjs +0 -45
- package/dist/esm2022/lib/consumers/disconnect-send-transport-video.service.mjs +0 -56
- package/dist/esm2022/lib/consumers/disp-streams.service.mjs +0 -421
- package/dist/esm2022/lib/consumers/generate-page-content.service.mjs +0 -59
- package/dist/esm2022/lib/consumers/get-estimate.service.mjs +0 -70
- package/dist/esm2022/lib/consumers/get-piped-producers-alt.service.mjs +0 -49
- package/dist/esm2022/lib/consumers/get-producers-piped.service.mjs +0 -46
- package/dist/esm2022/lib/consumers/get-videos.service.mjs +0 -58
- package/dist/esm2022/lib/consumers/mix-streams.service.mjs +0 -73
- package/dist/esm2022/lib/consumers/on-screen-changes.service.mjs +0 -63
- package/dist/esm2022/lib/consumers/prepopulate-user-media.service.mjs +0 -442
- package/dist/esm2022/lib/consumers/process-consumer-transports-audio.service.mjs +0 -72
- package/dist/esm2022/lib/consumers/process-consumer-transports.service.mjs +0 -91
- package/dist/esm2022/lib/consumers/re-port.service.mjs +0 -66
- package/dist/esm2022/lib/consumers/re-update-inter.service.mjs +0 -157
- package/dist/esm2022/lib/consumers/readjust.service.mjs +0 -123
- package/dist/esm2022/lib/consumers/receive-all-piped-transports.service.mjs +0 -56
- package/dist/esm2022/lib/consumers/receive-room-messages.service.mjs +0 -42
- package/dist/esm2022/lib/consumers/reorder-streams.service.mjs +0 -181
- package/dist/esm2022/lib/consumers/request-screen-share.service.mjs +0 -67
- package/dist/esm2022/lib/consumers/resume-pause-audio-streams.service.mjs +0 -99
- package/dist/esm2022/lib/consumers/resume-pause-streams.service.mjs +0 -70
- package/dist/esm2022/lib/consumers/resume-send-transport-audio.service.mjs +0 -55
- 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 -63
- package/dist/esm2022/lib/consumers/socket-receive-methods/new-pipe-producer.service.mjs +0 -61
- package/dist/esm2022/lib/consumers/socket-receive-methods/producer-closed.service.mjs +0 -51
- package/dist/esm2022/lib/consumers/start-share-screen.service.mjs +0 -80
- package/dist/esm2022/lib/consumers/stop-share-screen.service.mjs +0 -120
- package/dist/esm2022/lib/consumers/stream-success-audio-switch.service.mjs +0 -132
- package/dist/esm2022/lib/consumers/stream-success-audio.service.mjs +0 -149
- package/dist/esm2022/lib/consumers/stream-success-screen.service.mjs +0 -143
- package/dist/esm2022/lib/consumers/stream-success-video.service.mjs +0 -202
- package/dist/esm2022/lib/consumers/switch-user-audio.service.mjs +0 -87
- package/dist/esm2022/lib/consumers/switch-user-video-alt.service.mjs +0 -228
- package/dist/esm2022/lib/consumers/switch-user-video.service.mjs +0 -125
- package/dist/esm2022/lib/consumers/trigger.service.mjs +0 -172
- package/dist/esm2022/lib/consumers/update-mini-cards-grid.service.mjs +0 -81
- package/dist/esm2022/lib/consumers/update-participant-audio-decibels.service.mjs +0 -39
- package/dist/esm2022/lib/methods/background-methods/launch-background.service.mjs +0 -23
- package/dist/esm2022/lib/methods/breakout-room-methods/breakout-room-updated.service.mjs +0 -112
- package/dist/esm2022/lib/methods/breakout-room-methods/launch-breakout-rooms.service.mjs +0 -22
- package/dist/esm2022/lib/methods/co-host-methods/launch-co-host.service.mjs +0 -22
- package/dist/esm2022/lib/methods/co-host-methods/modify-co-host-settings.service.mjs +0 -60
- package/dist/esm2022/lib/methods/display-settings-methods/launch-display-settings.service.mjs +0 -24
- package/dist/esm2022/lib/methods/display-settings-methods/modify-display-settings.service.mjs +0 -119
- package/dist/esm2022/lib/methods/exit-methods/confirm-exit.service.mjs +0 -28
- package/dist/esm2022/lib/methods/exit-methods/launch-confirm-exit.service.mjs +0 -22
- package/dist/esm2022/lib/methods/media-settings-methods/launch-media-settings.service.mjs +0 -50
- package/dist/esm2022/lib/methods/menu-methods/launch-menu-modal.service.mjs +0 -22
- package/dist/esm2022/lib/methods/message-methods/launch-messages.service.mjs +0 -23
- package/dist/esm2022/lib/methods/message-methods/send-message.service.mjs +0 -94
- package/dist/esm2022/lib/methods/participants-methods/launch-participants.service.mjs +0 -23
- package/dist/esm2022/lib/methods/participants-methods/message-participants.service.mjs +0 -52
- package/dist/esm2022/lib/methods/participants-methods/mute-participants.service.mjs +0 -57
- package/dist/esm2022/lib/methods/participants-methods/remove-participants.service.mjs +0 -62
- package/dist/esm2022/lib/methods/polls-methods/handle-create-poll.service.mjs +0 -37
- package/dist/esm2022/lib/methods/polls-methods/handle-end-poll.service.mjs +0 -40
- package/dist/esm2022/lib/methods/polls-methods/handle-vote-poll.service.mjs +0 -49
- package/dist/esm2022/lib/methods/polls-methods/launch-poll.service.mjs +0 -23
- package/dist/esm2022/lib/methods/polls-methods/poll-updated.service.mjs +0 -64
- package/dist/esm2022/lib/methods/recording-methods/check-pause-state.service.mjs +0 -45
- package/dist/esm2022/lib/methods/recording-methods/check-resume-state.service.mjs +0 -34
- package/dist/esm2022/lib/methods/recording-methods/confirm-recording.service.mjs +0 -215
- package/dist/esm2022/lib/methods/recording-methods/launch-recording.service.mjs +0 -82
- package/dist/esm2022/lib/methods/recording-methods/record-pause-timer.service.mjs +0 -40
- package/dist/esm2022/lib/methods/recording-methods/record-resume-timer.service.mjs +0 -86
- package/dist/esm2022/lib/methods/recording-methods/record-start-timer.service.mjs +0 -89
- package/dist/esm2022/lib/methods/recording-methods/record-update-timer.service.mjs +0 -48
- package/dist/esm2022/lib/methods/recording-methods/start-recording.service.mjs +0 -147
- package/dist/esm2022/lib/methods/recording-methods/stop-recording.service.mjs +0 -74
- package/dist/esm2022/lib/methods/recording-methods/update-recording.service.mjs +0 -224
- package/dist/esm2022/lib/methods/requests-methods/launch-requests.service.mjs +0 -26
- package/dist/esm2022/lib/methods/requests-methods/respond-to-requests.service.mjs +0 -45
- package/dist/esm2022/lib/methods/settings-methods/launch-settings.service.mjs +0 -26
- package/dist/esm2022/lib/methods/settings-methods/modify-settings.service.mjs +0 -67
- package/dist/esm2022/lib/methods/stream-methods/click-audio.service.mjs +0 -178
- package/dist/esm2022/lib/methods/stream-methods/click-chat.service.mjs +0 -44
- package/dist/esm2022/lib/methods/stream-methods/click-screen-share.service.mjs +0 -110
- package/dist/esm2022/lib/methods/stream-methods/click-video.service.mjs +0 -183
- package/dist/esm2022/lib/methods/stream-methods/switch-audio.service.mjs +0 -33
- package/dist/esm2022/lib/methods/stream-methods/switch-video-alt.service.mjs +0 -66
- package/dist/esm2022/lib/methods/stream-methods/switch-video.service.mjs +0 -76
- package/dist/esm2022/lib/methods/utils/format-number.service.mjs +0 -45
- package/dist/esm2022/lib/methods/utils/generate-random-messages.service.mjs +0 -87
- package/dist/esm2022/lib/methods/utils/generate-random-participants.service.mjs +0 -99
- package/dist/esm2022/lib/methods/utils/generate-random-polls.service.mjs +0 -52
- package/dist/esm2022/lib/methods/utils/generate-random-request-list.service.mjs +0 -54
- package/dist/esm2022/lib/methods/utils/generate-random-waiting-room-list.service.mjs +0 -38
- package/dist/esm2022/lib/methods/utils/get-modal-position.util.mjs +0 -22
- package/dist/esm2022/lib/methods/utils/get-overlay-position.util.mjs +0 -21
- 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 -59
- package/dist/esm2022/lib/methods/utils/mini-audio-player/mini-audio-player.component.mjs +0 -260
- package/dist/esm2022/lib/methods/utils/producer/a-params.service.mjs +0 -21
- package/dist/esm2022/lib/methods/utils/producer/h-params.service.mjs +0 -37
- package/dist/esm2022/lib/methods/utils/producer/screen-params.service.mjs +0 -24
- package/dist/esm2022/lib/methods/utils/producer/v-params.service.mjs +0 -37
- package/dist/esm2022/lib/methods/utils/producer/video-capture-constraints.service.mjs +0 -38
- package/dist/esm2022/lib/methods/utils/sleep.util.mjs +0 -11
- package/dist/esm2022/lib/methods/utils/sound-player.service.mjs +0 -42
- package/dist/esm2022/lib/methods/utils/validate-alphanumeric.service.mjs +0 -33
- package/dist/esm2022/lib/methods/waiting-methods/launch-waiting.service.mjs +0 -23
- package/dist/esm2022/lib/methods/waiting-methods/respond-to-waiting.service.mjs +0 -40
- package/dist/esm2022/lib/methods/whiteboard-methods/capture-canvas-stream.service.mjs +0 -69
- package/dist/esm2022/lib/methods/whiteboard-methods/launch-configure-whiteboard.service.mjs +0 -24
- package/dist/esm2022/lib/producer-client/producer-client-emits/create-device-client.service.mjs +0 -51
- package/dist/esm2022/lib/producer-client/producer-client-emits/join-room-client.service.mjs +0 -65
- package/dist/esm2022/lib/producer-client/producer-client-emits/update-room-parameters-client.service.mjs +0 -232
- package/dist/esm2022/lib/producers/producer-emits/join-con-room.service.mjs +0 -114
- package/dist/esm2022/lib/producers/producer-emits/join-room.service.mjs +0 -114
- package/dist/esm2022/lib/producers/socket-receive-methods/all-members-rest.service.mjs +0 -155
- package/dist/esm2022/lib/producers/socket-receive-methods/all-members.service.mjs +0 -147
- package/dist/esm2022/lib/producers/socket-receive-methods/all-waiting-room-members.service.mjs +0 -30
- package/dist/esm2022/lib/producers/socket-receive-methods/ban-participant.service.mjs +0 -40
- package/dist/esm2022/lib/producers/socket-receive-methods/control-media-host.service.mjs +0 -146
- package/dist/esm2022/lib/producers/socket-receive-methods/disconnect-user-self.service.mjs +0 -26
- package/dist/esm2022/lib/producers/socket-receive-methods/disconnect.service.mjs +0 -38
- package/dist/esm2022/lib/producers/socket-receive-methods/get-domains.service.mjs +0 -63
- package/dist/esm2022/lib/producers/socket-receive-methods/host-request-response.service.mjs +0 -167
- package/dist/esm2022/lib/producers/socket-receive-methods/meeting-ended.service.mjs +0 -44
- package/dist/esm2022/lib/producers/socket-receive-methods/meeting-still-there.service.mjs +0 -24
- package/dist/esm2022/lib/producers/socket-receive-methods/meeting-time-remaining.service.mjs +0 -36
- package/dist/esm2022/lib/producers/socket-receive-methods/participant-requested.service.mjs +0 -32
- package/dist/esm2022/lib/producers/socket-receive-methods/person-joined.service.mjs +0 -29
- package/dist/esm2022/lib/producers/socket-receive-methods/producer-media-closed.service.mjs +0 -68
- package/dist/esm2022/lib/producers/socket-receive-methods/producer-media-paused.service.mjs +0 -90
- package/dist/esm2022/lib/producers/socket-receive-methods/producer-media-resumed.service.mjs +0 -54
- package/dist/esm2022/lib/producers/socket-receive-methods/re-initiate-recording.service.mjs +0 -38
- package/dist/esm2022/lib/producers/socket-receive-methods/receive-message.service.mjs +0 -96
- package/dist/esm2022/lib/producers/socket-receive-methods/recording-notice.service.mjs +0 -195
- package/dist/esm2022/lib/producers/socket-receive-methods/room-record-params.service.mjs +0 -59
- package/dist/esm2022/lib/producers/socket-receive-methods/screen-producer-id.service.mjs +0 -45
- package/dist/esm2022/lib/producers/socket-receive-methods/start-records.service.mjs +0 -35
- package/dist/esm2022/lib/producers/socket-receive-methods/stopped-recording.service.mjs +0 -37
- package/dist/esm2022/lib/producers/socket-receive-methods/time-left-recording.service.mjs +0 -36
- package/dist/esm2022/lib/producers/socket-receive-methods/update-consuming-domains.service.mjs +0 -63
- package/dist/esm2022/lib/producers/socket-receive-methods/update-media-settings.service.mjs +0 -36
- package/dist/esm2022/lib/producers/socket-receive-methods/updated-co-host.service.mjs +0 -56
- package/dist/esm2022/lib/producers/socket-receive-methods/user-waiting.service.mjs +0 -78
- package/dist/esm2022/lib/sockets/socket-manager.service.mjs +0 -73
- package/dist/esm2022/mediasfu-angular.mjs +0 -5
- package/dist/esm2022/public-api.mjs +0 -187
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
export class ResumeSendTransportAudio {
|
|
4
|
-
/**
|
|
5
|
-
* Resumes the send transport for audio and updates the UI and audio producer state accordingly.
|
|
6
|
-
*
|
|
7
|
-
* @param {ResumeSendTransportAudioOptions} options - The options for resuming the send transport.
|
|
8
|
-
* @param {Object} options.parameters - The parameters required for resuming the send transport.
|
|
9
|
-
* @param {Producer} options.parameters.audioProducer - The audio producer to be resumed.
|
|
10
|
-
* @param {string} options.parameters.islevel - The level of the user.
|
|
11
|
-
* @param {string} options.parameters.hostLabel - The label of the host.
|
|
12
|
-
* @param {boolean} options.parameters.lock_screen - Indicates if the screen is locked.
|
|
13
|
-
* @param {boolean} options.parameters.shared - Indicates if the screen is shared.
|
|
14
|
-
* @param {Function} options.parameters.updateAudioProducer - Function to update the audio producer state.
|
|
15
|
-
* @param {boolean} options.parameters.videoAlreadyOn - Indicates if the video is already on.
|
|
16
|
-
* @param {Function} options.parameters.updateUpdateMainWindow - Function to update the main window state.
|
|
17
|
-
* @param {Function} options.parameters.prepopulateUserMedia - Function to prepopulate user media.
|
|
18
|
-
*
|
|
19
|
-
* @returns {Promise<void>} A promise that resolves when the send transport is resumed and the UI is updated.
|
|
20
|
-
*
|
|
21
|
-
* @throws {Error} Throws an error if there is an issue during the process of resuming the audio send transport.
|
|
22
|
-
*/
|
|
23
|
-
async resumeSendTransportAudio({ parameters }) {
|
|
24
|
-
try {
|
|
25
|
-
let { audioProducer, islevel, updateMainWindow, hostLabel, lock_screen, shared, updateAudioProducer, videoAlreadyOn, updateUpdateMainWindow, prepopulateUserMedia, } = parameters;
|
|
26
|
-
// Resume send transport for audio
|
|
27
|
-
audioProducer?.resume();
|
|
28
|
-
// Update the UI
|
|
29
|
-
if (!videoAlreadyOn && islevel === '2') {
|
|
30
|
-
if (!lock_screen && !shared) {
|
|
31
|
-
updateMainWindow = true;
|
|
32
|
-
updateUpdateMainWindow(updateMainWindow);
|
|
33
|
-
await prepopulateUserMedia({ name: hostLabel, parameters });
|
|
34
|
-
updateMainWindow = false;
|
|
35
|
-
updateUpdateMainWindow(updateMainWindow);
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
// Update audio producer state
|
|
39
|
-
updateAudioProducer(audioProducer);
|
|
40
|
-
}
|
|
41
|
-
catch (error) {
|
|
42
|
-
// Handle errors during the process of resuming the audio send transport
|
|
43
|
-
throw new Error(`Error during resuming audio send transport: ${error.message}`);
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ResumeSendTransportAudio, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
47
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ResumeSendTransportAudio, providedIn: 'root' });
|
|
48
|
-
}
|
|
49
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ResumeSendTransportAudio, decorators: [{
|
|
50
|
-
type: Injectable,
|
|
51
|
-
args: [{
|
|
52
|
-
providedIn: 'root',
|
|
53
|
-
}]
|
|
54
|
-
}] });
|
|
55
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzdW1lLXNlbmQtdHJhbnNwb3J0LWF1ZGlvLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tZWRpYXNmdS1hbmd1bGFyL3NyYy9saWIvY29uc3VtZXJzL3Jlc3VtZS1zZW5kLXRyYW5zcG9ydC1hdWRpby5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBNkIzQyxNQUFNLE9BQU8sd0JBQXdCO0lBQ25DOzs7Ozs7Ozs7Ozs7Ozs7Ozs7T0FrQkc7SUFFSCxLQUFLLENBQUMsd0JBQXdCLENBQUMsRUFBRSxVQUFVLEVBQW1DO1FBQzVFLElBQUksQ0FBQztZQUNILElBQUksRUFDRixhQUFhLEVBQ2IsT0FBTyxFQUNQLGdCQUFnQixFQUNoQixTQUFTLEVBQ1QsV0FBVyxFQUNYLE1BQU0sRUFDTixtQkFBbUIsRUFDbkIsY0FBYyxFQUNkLHNCQUFzQixFQUN0QixvQkFBb0IsR0FDckIsR0FBRyxVQUFVLENBQUM7WUFFZixrQ0FBa0M7WUFDbEMsYUFBYSxFQUFFLE1BQU0sRUFBRSxDQUFDO1lBRXhCLGdCQUFnQjtZQUNoQixJQUFJLENBQUMsY0FBYyxJQUFJLE9BQU8sS0FBSyxHQUFHLEVBQUUsQ0FBQztnQkFDdkMsSUFBSSxDQUFDLFdBQVcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO29CQUM1QixnQkFBZ0IsR0FBRyxJQUFJLENBQUM7b0JBQ3hCLHNCQUFzQixDQUFDLGdCQUFnQixDQUFDLENBQUM7b0JBQ3pDLE1BQU0sb0JBQW9CLENBQUMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUM7b0JBQzVELGdCQUFnQixHQUFHLEtBQUssQ0FBQztvQkFDekIsc0JBQXNCLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztnQkFDM0MsQ0FBQztZQUNILENBQUM7WUFFRCw4QkFBOEI7WUFDOUIsbUJBQW1CLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDckMsQ0FBQztRQUFDLE9BQU8sS0FBVSxFQUFFLENBQUM7WUFDcEIsd0VBQXdFO1lBQ3hFLE1BQU0sSUFBSSxLQUFLLENBQUMsK0NBQStDLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBQ2xGLENBQUM7SUFDSCxDQUFDO3VHQXhEVSx3QkFBd0I7MkdBQXhCLHdCQUF3QixjQUZ2QixNQUFNOzsyRkFFUCx3QkFBd0I7a0JBSHBDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUHJvZHVjZXIgfSBmcm9tICdtZWRpYXNvdXAtY2xpZW50L2xpYi90eXBlcyc7XG5pbXBvcnQgeyBQcmVwb3B1bGF0ZVVzZXJNZWRpYVBhcmFtZXRlcnMsIFByZXBvcHVsYXRlVXNlck1lZGlhVHlwZSB9IGZyb20gJy4uL0B0eXBlcy90eXBlcyc7XG5leHBvcnQgaW50ZXJmYWNlIFJlc3VtZVNlbmRUcmFuc3BvcnRBdWRpb1BhcmFtZXRlcnMgZXh0ZW5kcyBQcmVwb3B1bGF0ZVVzZXJNZWRpYVBhcmFtZXRlcnMge1xuICBhdWRpb1Byb2R1Y2VyOiBQcm9kdWNlciB8IG51bGw7XG4gIGlzbGV2ZWw6IHN0cmluZztcbiAgaG9zdExhYmVsOiBzdHJpbmc7XG4gIGxvY2tfc2NyZWVuOiBib29sZWFuO1xuICBzaGFyZWQ6IGJvb2xlYW47XG4gIHZpZGVvQWxyZWFkeU9uOiBib29sZWFuO1xuICB1cGRhdGVBdWRpb1Byb2R1Y2VyOiAoYXVkaW9Qcm9kdWNlcjogUHJvZHVjZXIgfCBudWxsKSA9PiB2b2lkO1xuICB1cGRhdGVVcGRhdGVNYWluV2luZG93OiAodXBkYXRlTWFpbldpbmRvdzogYm9vbGVhbikgPT4gdm9pZDtcblxuICAvLyBtZWRpYXNmdSBmdW5jdGlvbnNcbiAgcHJlcG9wdWxhdGVVc2VyTWVkaWE6IFByZXBvcHVsYXRlVXNlck1lZGlhVHlwZTtcbiAgW2tleTogc3RyaW5nXTogYW55O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJlc3VtZVNlbmRUcmFuc3BvcnRBdWRpb09wdGlvbnMge1xuICBwYXJhbWV0ZXJzOiBSZXN1bWVTZW5kVHJhbnNwb3J0QXVkaW9QYXJhbWV0ZXJzO1xufVxuXG4vLyBFeHBvcnQgdGhlIHR5cGUgZGVmaW5pdGlvbiBmb3IgdGhlIGZ1bmN0aW9uXG5leHBvcnQgdHlwZSBSZXN1bWVTZW5kVHJhbnNwb3J0QXVkaW9UeXBlID0gKFxuICBvcHRpb25zOiBSZXN1bWVTZW5kVHJhbnNwb3J0QXVkaW9PcHRpb25zLFxuKSA9PiBQcm9taXNlPHZvaWQ+O1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFJlc3VtZVNlbmRUcmFuc3BvcnRBdWRpbyB7XG4gIC8qKlxuICAgKiBSZXN1bWVzIHRoZSBzZW5kIHRyYW5zcG9ydCBmb3IgYXVkaW8gYW5kIHVwZGF0ZXMgdGhlIFVJIGFuZCBhdWRpbyBwcm9kdWNlciBzdGF0ZSBhY2NvcmRpbmdseS5cbiAgICpcbiAgICogQHBhcmFtIHtSZXN1bWVTZW5kVHJhbnNwb3J0QXVkaW9PcHRpb25zfSBvcHRpb25zIC0gVGhlIG9wdGlvbnMgZm9yIHJlc3VtaW5nIHRoZSBzZW5kIHRyYW5zcG9ydC5cbiAgICogQHBhcmFtIHtPYmplY3R9IG9wdGlvbnMucGFyYW1ldGVycyAtIFRoZSBwYXJhbWV0ZXJzIHJlcXVpcmVkIGZvciByZXN1bWluZyB0aGUgc2VuZCB0cmFuc3BvcnQuXG4gICAqIEBwYXJhbSB7UHJvZHVjZXJ9IG9wdGlvbnMucGFyYW1ldGVycy5hdWRpb1Byb2R1Y2VyIC0gVGhlIGF1ZGlvIHByb2R1Y2VyIHRvIGJlIHJlc3VtZWQuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBvcHRpb25zLnBhcmFtZXRlcnMuaXNsZXZlbCAtIFRoZSBsZXZlbCBvZiB0aGUgdXNlci5cbiAgICogQHBhcmFtIHtzdHJpbmd9IG9wdGlvbnMucGFyYW1ldGVycy5ob3N0TGFiZWwgLSBUaGUgbGFiZWwgb2YgdGhlIGhvc3QuXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gb3B0aW9ucy5wYXJhbWV0ZXJzLmxvY2tfc2NyZWVuIC0gSW5kaWNhdGVzIGlmIHRoZSBzY3JlZW4gaXMgbG9ja2VkLlxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IG9wdGlvbnMucGFyYW1ldGVycy5zaGFyZWQgLSBJbmRpY2F0ZXMgaWYgdGhlIHNjcmVlbiBpcyBzaGFyZWQuXG4gICAqIEBwYXJhbSB7RnVuY3Rpb259IG9wdGlvbnMucGFyYW1ldGVycy51cGRhdGVBdWRpb1Byb2R1Y2VyIC0gRnVuY3Rpb24gdG8gdXBkYXRlIHRoZSBhdWRpbyBwcm9kdWNlciBzdGF0ZS5cbiAgICogQHBhcmFtIHtib29sZWFufSBvcHRpb25zLnBhcmFtZXRlcnMudmlkZW9BbHJlYWR5T24gLSBJbmRpY2F0ZXMgaWYgdGhlIHZpZGVvIGlzIGFscmVhZHkgb24uXG4gICAqIEBwYXJhbSB7RnVuY3Rpb259IG9wdGlvbnMucGFyYW1ldGVycy51cGRhdGVVcGRhdGVNYWluV2luZG93IC0gRnVuY3Rpb24gdG8gdXBkYXRlIHRoZSBtYWluIHdpbmRvdyBzdGF0ZS5cbiAgICogQHBhcmFtIHtGdW5jdGlvbn0gb3B0aW9ucy5wYXJhbWV0ZXJzLnByZXBvcHVsYXRlVXNlck1lZGlhIC0gRnVuY3Rpb24gdG8gcHJlcG9wdWxhdGUgdXNlciBtZWRpYS5cbiAgICpcbiAgICogQHJldHVybnMge1Byb21pc2U8dm9pZD59IEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIHNlbmQgdHJhbnNwb3J0IGlzIHJlc3VtZWQgYW5kIHRoZSBVSSBpcyB1cGRhdGVkLlxuICAgKlxuICAgKiBAdGhyb3dzIHtFcnJvcn0gVGhyb3dzIGFuIGVycm9yIGlmIHRoZXJlIGlzIGFuIGlzc3VlIGR1cmluZyB0aGUgcHJvY2VzcyBvZiByZXN1bWluZyB0aGUgYXVkaW8gc2VuZCB0cmFuc3BvcnQuXG4gICAqL1xuXG4gIGFzeW5jIHJlc3VtZVNlbmRUcmFuc3BvcnRBdWRpbyh7IHBhcmFtZXRlcnMgfTogUmVzdW1lU2VuZFRyYW5zcG9ydEF1ZGlvT3B0aW9ucyk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRyeSB7XG4gICAgICBsZXQge1xuICAgICAgICBhdWRpb1Byb2R1Y2VyLFxuICAgICAgICBpc2xldmVsLFxuICAgICAgICB1cGRhdGVNYWluV2luZG93LFxuICAgICAgICBob3N0TGFiZWwsXG4gICAgICAgIGxvY2tfc2NyZWVuLFxuICAgICAgICBzaGFyZWQsXG4gICAgICAgIHVwZGF0ZUF1ZGlvUHJvZHVjZXIsXG4gICAgICAgIHZpZGVvQWxyZWFkeU9uLFxuICAgICAgICB1cGRhdGVVcGRhdGVNYWluV2luZG93LFxuICAgICAgICBwcmVwb3B1bGF0ZVVzZXJNZWRpYSxcbiAgICAgIH0gPSBwYXJhbWV0ZXJzO1xuXG4gICAgICAvLyBSZXN1bWUgc2VuZCB0cmFuc3BvcnQgZm9yIGF1ZGlvXG4gICAgICBhdWRpb1Byb2R1Y2VyPy5yZXN1bWUoKTtcblxuICAgICAgLy8gVXBkYXRlIHRoZSBVSVxuICAgICAgaWYgKCF2aWRlb0FscmVhZHlPbiAmJiBpc2xldmVsID09PSAnMicpIHtcbiAgICAgICAgaWYgKCFsb2NrX3NjcmVlbiAmJiAhc2hhcmVkKSB7XG4gICAgICAgICAgdXBkYXRlTWFpbldpbmRvdyA9IHRydWU7XG4gICAgICAgICAgdXBkYXRlVXBkYXRlTWFpbldpbmRvdyh1cGRhdGVNYWluV2luZG93KTtcbiAgICAgICAgICBhd2FpdCBwcmVwb3B1bGF0ZVVzZXJNZWRpYSh7IG5hbWU6IGhvc3RMYWJlbCwgcGFyYW1ldGVycyB9KTtcbiAgICAgICAgICB1cGRhdGVNYWluV2luZG93ID0gZmFsc2U7XG4gICAgICAgICAgdXBkYXRlVXBkYXRlTWFpbldpbmRvdyh1cGRhdGVNYWluV2luZG93KTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyBVcGRhdGUgYXVkaW8gcHJvZHVjZXIgc3RhdGVcbiAgICAgIHVwZGF0ZUF1ZGlvUHJvZHVjZXIoYXVkaW9Qcm9kdWNlcik7XG4gICAgfSBjYXRjaCAoZXJyb3I6IGFueSkge1xuICAgICAgLy8gSGFuZGxlIGVycm9ycyBkdXJpbmcgdGhlIHByb2Nlc3Mgb2YgcmVzdW1pbmcgdGhlIGF1ZGlvIHNlbmQgdHJhbnNwb3J0XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEVycm9yIGR1cmluZyByZXN1bWluZyBhdWRpbyBzZW5kIHRyYW5zcG9ydDogJHtlcnJvci5tZXNzYWdlfWApO1xuICAgIH1cbiAgfVxufVxuIl19
|
|
@@ -1,136 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
export class SignalNewConsumerTransport {
|
|
4
|
-
/**
|
|
5
|
-
* Signals the creation of a new consumer transport.
|
|
6
|
-
*
|
|
7
|
-
* @param {Object} options - The options for signaling a new consumer transport.
|
|
8
|
-
* @param {string} options.remoteProducerId - The ID of the remote producer.
|
|
9
|
-
* @param {boolean} options.islevel - Indicates the level of the consumer.
|
|
10
|
-
* @param {any} options.nsock - The socket instance for communication.
|
|
11
|
-
* @param {SignalNewConsumerTransportOptions} options.parameters - The parameters for the transport.
|
|
12
|
-
*
|
|
13
|
-
* @returns {Promise<string[] | void>} A promise that resolves to an array of consuming transports or void.
|
|
14
|
-
*
|
|
15
|
-
* @throws Will throw an error if the signaling process fails.
|
|
16
|
-
*
|
|
17
|
-
* @example
|
|
18
|
-
* const options = {
|
|
19
|
-
* remoteProducerId: 'producer-id',
|
|
20
|
-
* islevel: true,
|
|
21
|
-
* nsock: socketInstance,
|
|
22
|
-
* parameters: {
|
|
23
|
-
* device: mediaDevice,
|
|
24
|
-
* consumingTransports: [],
|
|
25
|
-
* lock_screen: false,
|
|
26
|
-
* updateConsumingTransports: updateFunction,
|
|
27
|
-
* connectRecvTransport: connectFunction,
|
|
28
|
-
* reorderStreams: reorderFunction,
|
|
29
|
-
* getUpdatedAllParams: getUpdatedParamsFunction,
|
|
30
|
-
* },
|
|
31
|
-
* };
|
|
32
|
-
*
|
|
33
|
-
* signalNewConsumerTransport(options)
|
|
34
|
-
* .then(consumingTransports => {
|
|
35
|
-
* console.log('Consuming Transports:', consumingTransports);
|
|
36
|
-
* })
|
|
37
|
-
* .catch(error => {
|
|
38
|
-
* console.error('Error signaling new consumer transport:', error);
|
|
39
|
-
* });
|
|
40
|
-
*/
|
|
41
|
-
signalNewConsumerTransport = async ({ remoteProducerId, islevel, nsock, parameters, }) => {
|
|
42
|
-
try {
|
|
43
|
-
let { device, consumingTransports, lock_screen, updateConsumingTransports, connectRecvTransport, reorderStreams, } = parameters;
|
|
44
|
-
// Get updated parameters
|
|
45
|
-
const updatedParams = parameters.getUpdatedAllParams();
|
|
46
|
-
device = updatedParams.device;
|
|
47
|
-
consumingTransports = updatedParams.consumingTransports;
|
|
48
|
-
// Check if already consuming
|
|
49
|
-
if (consumingTransports.includes(remoteProducerId)) {
|
|
50
|
-
return consumingTransports;
|
|
51
|
-
}
|
|
52
|
-
// Add remote producer ID to consumingTransports array
|
|
53
|
-
consumingTransports.push(remoteProducerId);
|
|
54
|
-
updateConsumingTransports(consumingTransports);
|
|
55
|
-
// Emit createWebRtcTransport event to signal a new consumer
|
|
56
|
-
nsock.emit('createWebRtcTransport', { consumer: true, islevel }, async ({ params }) => {
|
|
57
|
-
if (params.error) {
|
|
58
|
-
// Handle error
|
|
59
|
-
return;
|
|
60
|
-
}
|
|
61
|
-
try {
|
|
62
|
-
// Create a new receiving transport using the received parameters
|
|
63
|
-
if (!device) {
|
|
64
|
-
throw new Error('Device is not initialized');
|
|
65
|
-
}
|
|
66
|
-
const consumerTransport = device.createRecvTransport({ ...params });
|
|
67
|
-
// Handle 'connect' event for the consumer transport
|
|
68
|
-
consumerTransport.on('connect', async ({ dtlsParameters }, callback, errback) => {
|
|
69
|
-
try {
|
|
70
|
-
// Emit transport-recv-connect event to signal connection
|
|
71
|
-
nsock.emit('transport-recv-connect', {
|
|
72
|
-
dtlsParameters,
|
|
73
|
-
serverConsumerTransportId: params.id,
|
|
74
|
-
});
|
|
75
|
-
callback();
|
|
76
|
-
}
|
|
77
|
-
catch (error) {
|
|
78
|
-
errback(error);
|
|
79
|
-
}
|
|
80
|
-
});
|
|
81
|
-
// Listen for connection state change
|
|
82
|
-
consumerTransport.on('connectionstatechange', async (state) => {
|
|
83
|
-
switch (state) {
|
|
84
|
-
case 'connecting':
|
|
85
|
-
// Handle connecting state
|
|
86
|
-
break;
|
|
87
|
-
case 'connected':
|
|
88
|
-
// Handle connected state
|
|
89
|
-
break;
|
|
90
|
-
case 'failed':
|
|
91
|
-
// Handle failed state
|
|
92
|
-
consumerTransport.close();
|
|
93
|
-
// Reorder streams based on conditions
|
|
94
|
-
if (lock_screen) {
|
|
95
|
-
await reorderStreams({ add: true, parameters });
|
|
96
|
-
}
|
|
97
|
-
else {
|
|
98
|
-
await reorderStreams({ add: false, parameters });
|
|
99
|
-
}
|
|
100
|
-
break;
|
|
101
|
-
default:
|
|
102
|
-
break;
|
|
103
|
-
}
|
|
104
|
-
});
|
|
105
|
-
// Connect the receiving transport
|
|
106
|
-
await connectRecvTransport({
|
|
107
|
-
consumerTransport,
|
|
108
|
-
remoteProducerId,
|
|
109
|
-
serverConsumerTransportId: params.id,
|
|
110
|
-
nsock,
|
|
111
|
-
parameters,
|
|
112
|
-
});
|
|
113
|
-
}
|
|
114
|
-
catch (error) {
|
|
115
|
-
console.log(error, 'createRecvTransport error');
|
|
116
|
-
// Handle error
|
|
117
|
-
return;
|
|
118
|
-
}
|
|
119
|
-
});
|
|
120
|
-
}
|
|
121
|
-
catch (error) {
|
|
122
|
-
console.log(error, 'signalNewConsumerTransport error');
|
|
123
|
-
// Handle error
|
|
124
|
-
return;
|
|
125
|
-
}
|
|
126
|
-
};
|
|
127
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: SignalNewConsumerTransport, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
128
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: SignalNewConsumerTransport, providedIn: 'root' });
|
|
129
|
-
}
|
|
130
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: SignalNewConsumerTransport, decorators: [{
|
|
131
|
-
type: Injectable,
|
|
132
|
-
args: [{
|
|
133
|
-
providedIn: 'root',
|
|
134
|
-
}]
|
|
135
|
-
}] });
|
|
136
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbmFsLW5ldy1jb25zdW1lci10cmFuc3BvcnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21lZGlhc2Z1LWFuZ3VsYXIvc3JjL2xpYi9jb25zdW1lcnMvc2lnbmFsLW5ldy1jb25zdW1lci10cmFuc3BvcnQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQXNDM0MsTUFBTSxPQUFPLDBCQUEwQjtJQUNyQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O09Bb0NHO0lBQ0gsMEJBQTBCLEdBQUcsS0FBSyxFQUFFLEVBQ2xDLGdCQUFnQixFQUNoQixPQUFPLEVBQ1AsS0FBSyxFQUNMLFVBQVUsR0FDd0IsRUFBNEIsRUFBRTtRQUNoRSxJQUFJLENBQUM7WUFDSCxJQUFJLEVBQ0YsTUFBTSxFQUNOLG1CQUFtQixFQUNuQixXQUFXLEVBQ1gseUJBQXlCLEVBQ3pCLG9CQUFvQixFQUNwQixjQUFjLEdBQ2YsR0FBRyxVQUFVLENBQUM7WUFFZix5QkFBeUI7WUFDekIsTUFBTSxhQUFhLEdBQUcsVUFBVSxDQUFDLG1CQUFtQixFQUFFLENBQUM7WUFDdkQsTUFBTSxHQUFHLGFBQWEsQ0FBQyxNQUFNLENBQUM7WUFDOUIsbUJBQW1CLEdBQUcsYUFBYSxDQUFDLG1CQUFtQixDQUFDO1lBRXhELDZCQUE2QjtZQUM3QixJQUFJLG1CQUFtQixDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUM7Z0JBQ25ELE9BQU8sbUJBQW1CLENBQUM7WUFDN0IsQ0FBQztZQUVELHNEQUFzRDtZQUN0RCxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztZQUMzQyx5QkFBeUIsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1lBRS9DLDREQUE0RDtZQUM1RCxLQUFLLENBQUMsSUFBSSxDQUNSLHVCQUF1QixFQUN2QixFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLEVBQzNCLEtBQUssRUFBRSxFQUFFLE1BQU0sRUFBNkMsRUFBRSxFQUFFO2dCQUM5RCxJQUFJLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQztvQkFDakIsZUFBZTtvQkFDZixPQUFPO2dCQUNULENBQUM7Z0JBRUQsSUFBSSxDQUFDO29CQUNILGlFQUFpRTtvQkFDakUsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO3dCQUNaLE1BQU0sSUFBSSxLQUFLLENBQUMsMkJBQTJCLENBQUMsQ0FBQztvQkFDL0MsQ0FBQztvQkFDRCxNQUFNLGlCQUFpQixHQUFHLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxFQUFFLEdBQUcsTUFBTSxFQUFFLENBQUMsQ0FBQztvQkFFcEUsb0RBQW9EO29CQUNwRCxpQkFBaUIsQ0FBQyxFQUFFLENBQ2xCLFNBQVMsRUFDVCxLQUFLLEVBQ0gsRUFBRSxjQUFjLEVBQXNDLEVBQ3RELFFBQW9CLEVBQ3BCLE9BQTZCLEVBQzdCLEVBQUU7d0JBQ0YsSUFBSSxDQUFDOzRCQUNILHlEQUF5RDs0QkFDekQsS0FBSyxDQUFDLElBQUksQ0FBQyx3QkFBd0IsRUFBRTtnQ0FDbkMsY0FBYztnQ0FDZCx5QkFBeUIsRUFBRSxNQUFNLENBQUMsRUFBRTs2QkFDckMsQ0FBQyxDQUFDOzRCQUNILFFBQVEsRUFBRSxDQUFDO3dCQUNiLENBQUM7d0JBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQzs0QkFDZixPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7d0JBQ2pCLENBQUM7b0JBQ0gsQ0FBQyxDQUNGLENBQUM7b0JBRUYscUNBQXFDO29CQUNyQyxpQkFBaUIsQ0FBQyxFQUFFLENBQUMsdUJBQXVCLEVBQUUsS0FBSyxFQUFFLEtBQWEsRUFBRSxFQUFFO3dCQUNwRSxRQUFRLEtBQUssRUFBRSxDQUFDOzRCQUNkLEtBQUssWUFBWTtnQ0FDZiwwQkFBMEI7Z0NBQzFCLE1BQU07NEJBRVIsS0FBSyxXQUFXO2dDQUNkLHlCQUF5QjtnQ0FDekIsTUFBTTs0QkFFUixLQUFLLFFBQVE7Z0NBQ1gsc0JBQXNCO2dDQUN0QixpQkFBaUIsQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQ0FFMUIsc0NBQXNDO2dDQUN0QyxJQUFJLFdBQVcsRUFBRSxDQUFDO29DQUNoQixNQUFNLGNBQWMsQ0FBQyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQztnQ0FDbEQsQ0FBQztxQ0FBTSxDQUFDO29DQUNOLE1BQU0sY0FBYyxDQUFDLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFDO2dDQUNuRCxDQUFDO2dDQUNELE1BQU07NEJBRVI7Z0NBQ0UsTUFBTTt3QkFDVixDQUFDO29CQUNILENBQUMsQ0FBQyxDQUFDO29CQUVILGtDQUFrQztvQkFDbEMsTUFBTSxvQkFBb0IsQ0FBQzt3QkFDekIsaUJBQWlCO3dCQUNqQixnQkFBZ0I7d0JBQ2hCLHlCQUF5QixFQUFFLE1BQU0sQ0FBQyxFQUFFO3dCQUNwQyxLQUFLO3dCQUNMLFVBQVU7cUJBQ1gsQ0FBQyxDQUFDO2dCQUNMLENBQUM7Z0JBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztvQkFDZixPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSwyQkFBMkIsQ0FBQyxDQUFDO29CQUNoRCxlQUFlO29CQUNmLE9BQU87Z0JBQ1QsQ0FBQztZQUNILENBQUMsQ0FDRixDQUFDO1FBQ0osQ0FBQztRQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7WUFDZixPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxrQ0FBa0MsQ0FBQyxDQUFDO1lBQ3ZELGVBQWU7WUFDZixPQUFPO1FBQ1QsQ0FBQztJQUNILENBQUMsQ0FBQzt1R0ExSlMsMEJBQTBCOzJHQUExQiwwQkFBMEIsY0FGekIsTUFBTTs7MkZBRVAsMEJBQTBCO2tCQUh0QyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNvY2tldCB9IGZyb20gJ3NvY2tldC5pby1jbGllbnQnO1xuaW1wb3J0IHtcbiAgUmVvcmRlclN0cmVhbXNQYXJhbWV0ZXJzLFxuICBSZW9yZGVyU3RyZWFtc1R5cGUsXG4gIENvbm5lY3RSZWN2VHJhbnNwb3J0VHlwZSxcbiAgQ29ubmVjdFJlY3ZUcmFuc3BvcnRQYXJhbWV0ZXJzLFxuICBDcmVhdGVXZWJSVENUcmFuc3BvcnRSZXNwb25zZSxcbn0gZnJvbSAnLi4vQHR5cGVzL3R5cGVzJztcbmltcG9ydCB7IERldmljZSwgRHRsc1BhcmFtZXRlcnMgfSBmcm9tICdtZWRpYXNvdXAtY2xpZW50L2xpYi90eXBlcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2lnbmFsTmV3Q29uc3VtZXJUcmFuc3BvcnRQYXJhbWV0ZXJzXG4gIGV4dGVuZHMgUmVvcmRlclN0cmVhbXNQYXJhbWV0ZXJzLFxuICAgIENvbm5lY3RSZWN2VHJhbnNwb3J0UGFyYW1ldGVycyB7XG4gIGRldmljZTogRGV2aWNlIHwgbnVsbDtcbiAgY29uc3VtaW5nVHJhbnNwb3J0czogc3RyaW5nW107XG4gIGxvY2tfc2NyZWVuOiBib29sZWFuO1xuICB1cGRhdGVDb25zdW1pbmdUcmFuc3BvcnRzOiAodHJhbnNwb3J0czogc3RyaW5nW10pID0+IHZvaWQ7XG4gIGNvbm5lY3RSZWN2VHJhbnNwb3J0OiBDb25uZWN0UmVjdlRyYW5zcG9ydFR5cGU7XG4gIHJlb3JkZXJTdHJlYW1zOiBSZW9yZGVyU3RyZWFtc1R5cGU7XG4gIGdldFVwZGF0ZWRBbGxQYXJhbXM6ICgpID0+IFNpZ25hbE5ld0NvbnN1bWVyVHJhbnNwb3J0UGFyYW1ldGVycztcbiAgW2tleTogc3RyaW5nXTogYW55O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNpZ25hbE5ld0NvbnN1bWVyVHJhbnNwb3J0T3B0aW9ucyB7XG4gIHJlbW90ZVByb2R1Y2VySWQ6IHN0cmluZztcbiAgaXNsZXZlbDogc3RyaW5nO1xuICBuc29jazogU29ja2V0O1xuICBwYXJhbWV0ZXJzOiBTaWduYWxOZXdDb25zdW1lclRyYW5zcG9ydFBhcmFtZXRlcnM7XG59XG5cbi8vIEV4cG9ydCB0aGUgdHlwZSBkZWZpbml0aW9uIGZvciB0aGUgZnVuY3Rpb25cbmV4cG9ydCB0eXBlIFNpZ25hbE5ld0NvbnN1bWVyVHJhbnNwb3J0VHlwZSA9IChcbiAgb3B0aW9uczogU2lnbmFsTmV3Q29uc3VtZXJUcmFuc3BvcnRPcHRpb25zLFxuKSA9PiBQcm9taXNlPHN0cmluZ1tdIHwgdm9pZD47XG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgU2lnbmFsTmV3Q29uc3VtZXJUcmFuc3BvcnQge1xuICAvKipcbiAgICogU2lnbmFscyB0aGUgY3JlYXRpb24gb2YgYSBuZXcgY29uc3VtZXIgdHJhbnNwb3J0LlxuICAgKlxuICAgKiBAcGFyYW0ge09iamVjdH0gb3B0aW9ucyAtIFRoZSBvcHRpb25zIGZvciBzaWduYWxpbmcgYSBuZXcgY29uc3VtZXIgdHJhbnNwb3J0LlxuICAgKiBAcGFyYW0ge3N0cmluZ30gb3B0aW9ucy5yZW1vdGVQcm9kdWNlcklkIC0gVGhlIElEIG9mIHRoZSByZW1vdGUgcHJvZHVjZXIuXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gb3B0aW9ucy5pc2xldmVsIC0gSW5kaWNhdGVzIHRoZSBsZXZlbCBvZiB0aGUgY29uc3VtZXIuXG4gICAqIEBwYXJhbSB7YW55fSBvcHRpb25zLm5zb2NrIC0gVGhlIHNvY2tldCBpbnN0YW5jZSBmb3IgY29tbXVuaWNhdGlvbi5cbiAgICogQHBhcmFtIHtTaWduYWxOZXdDb25zdW1lclRyYW5zcG9ydE9wdGlvbnN9IG9wdGlvbnMucGFyYW1ldGVycyAtIFRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgdHJhbnNwb3J0LlxuICAgKlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxzdHJpbmdbXSB8IHZvaWQ+fSBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB0byBhbiBhcnJheSBvZiBjb25zdW1pbmcgdHJhbnNwb3J0cyBvciB2b2lkLlxuICAgKlxuICAgKiBAdGhyb3dzIFdpbGwgdGhyb3cgYW4gZXJyb3IgaWYgdGhlIHNpZ25hbGluZyBwcm9jZXNzIGZhaWxzLlxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiBjb25zdCBvcHRpb25zID0ge1xuICAgKiAgIHJlbW90ZVByb2R1Y2VySWQ6ICdwcm9kdWNlci1pZCcsXG4gICAqICAgaXNsZXZlbDogdHJ1ZSxcbiAgICogICBuc29jazogc29ja2V0SW5zdGFuY2UsXG4gICAqICAgcGFyYW1ldGVyczoge1xuICAgKiAgICAgZGV2aWNlOiBtZWRpYURldmljZSxcbiAgICogICAgIGNvbnN1bWluZ1RyYW5zcG9ydHM6IFtdLFxuICAgKiAgICAgbG9ja19zY3JlZW46IGZhbHNlLFxuICAgKiAgICAgdXBkYXRlQ29uc3VtaW5nVHJhbnNwb3J0czogdXBkYXRlRnVuY3Rpb24sXG4gICAqICAgICBjb25uZWN0UmVjdlRyYW5zcG9ydDogY29ubmVjdEZ1bmN0aW9uLFxuICAgKiAgICAgcmVvcmRlclN0cmVhbXM6IHJlb3JkZXJGdW5jdGlvbixcbiAgICogICAgIGdldFVwZGF0ZWRBbGxQYXJhbXM6IGdldFVwZGF0ZWRQYXJhbXNGdW5jdGlvbixcbiAgICogICB9LFxuICAgKiB9O1xuICAgKlxuICAgKiBzaWduYWxOZXdDb25zdW1lclRyYW5zcG9ydChvcHRpb25zKVxuICAgKiAgIC50aGVuKGNvbnN1bWluZ1RyYW5zcG9ydHMgPT4ge1xuICAgKiAgICAgY29uc29sZS5sb2coJ0NvbnN1bWluZyBUcmFuc3BvcnRzOicsIGNvbnN1bWluZ1RyYW5zcG9ydHMpO1xuICAgKiAgIH0pXG4gICAqICAgLmNhdGNoKGVycm9yID0+IHtcbiAgICogICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIHNpZ25hbGluZyBuZXcgY29uc3VtZXIgdHJhbnNwb3J0OicsIGVycm9yKTtcbiAgICogICB9KTtcbiAgICovXG4gIHNpZ25hbE5ld0NvbnN1bWVyVHJhbnNwb3J0ID0gYXN5bmMgKHtcbiAgICByZW1vdGVQcm9kdWNlcklkLFxuICAgIGlzbGV2ZWwsXG4gICAgbnNvY2ssXG4gICAgcGFyYW1ldGVycyxcbiAgfTogU2lnbmFsTmV3Q29uc3VtZXJUcmFuc3BvcnRPcHRpb25zKTogUHJvbWlzZTxzdHJpbmdbXSB8IHZvaWQ+ID0+IHtcbiAgICB0cnkge1xuICAgICAgbGV0IHtcbiAgICAgICAgZGV2aWNlLFxuICAgICAgICBjb25zdW1pbmdUcmFuc3BvcnRzLFxuICAgICAgICBsb2NrX3NjcmVlbixcbiAgICAgICAgdXBkYXRlQ29uc3VtaW5nVHJhbnNwb3J0cyxcbiAgICAgICAgY29ubmVjdFJlY3ZUcmFuc3BvcnQsXG4gICAgICAgIHJlb3JkZXJTdHJlYW1zLFxuICAgICAgfSA9IHBhcmFtZXRlcnM7XG5cbiAgICAgIC8vIEdldCB1cGRhdGVkIHBhcmFtZXRlcnNcbiAgICAgIGNvbnN0IHVwZGF0ZWRQYXJhbXMgPSBwYXJhbWV0ZXJzLmdldFVwZGF0ZWRBbGxQYXJhbXMoKTtcbiAgICAgIGRldmljZSA9IHVwZGF0ZWRQYXJhbXMuZGV2aWNlO1xuICAgICAgY29uc3VtaW5nVHJhbnNwb3J0cyA9IHVwZGF0ZWRQYXJhbXMuY29uc3VtaW5nVHJhbnNwb3J0cztcblxuICAgICAgLy8gQ2hlY2sgaWYgYWxyZWFkeSBjb25zdW1pbmdcbiAgICAgIGlmIChjb25zdW1pbmdUcmFuc3BvcnRzLmluY2x1ZGVzKHJlbW90ZVByb2R1Y2VySWQpKSB7XG4gICAgICAgIHJldHVybiBjb25zdW1pbmdUcmFuc3BvcnRzO1xuICAgICAgfVxuXG4gICAgICAvLyBBZGQgcmVtb3RlIHByb2R1Y2VyIElEIHRvIGNvbnN1bWluZ1RyYW5zcG9ydHMgYXJyYXlcbiAgICAgIGNvbnN1bWluZ1RyYW5zcG9ydHMucHVzaChyZW1vdGVQcm9kdWNlcklkKTtcbiAgICAgIHVwZGF0ZUNvbnN1bWluZ1RyYW5zcG9ydHMoY29uc3VtaW5nVHJhbnNwb3J0cyk7XG5cbiAgICAgIC8vIEVtaXQgY3JlYXRlV2ViUnRjVHJhbnNwb3J0IGV2ZW50IHRvIHNpZ25hbCBhIG5ldyBjb25zdW1lclxuICAgICAgbnNvY2suZW1pdChcbiAgICAgICAgJ2NyZWF0ZVdlYlJ0Y1RyYW5zcG9ydCcsXG4gICAgICAgIHsgY29uc3VtZXI6IHRydWUsIGlzbGV2ZWwgfSxcbiAgICAgICAgYXN5bmMgKHsgcGFyYW1zIH06IHsgcGFyYW1zOiBDcmVhdGVXZWJSVENUcmFuc3BvcnRSZXNwb25zZSB9KSA9PiB7XG4gICAgICAgICAgaWYgKHBhcmFtcy5lcnJvcikge1xuICAgICAgICAgICAgLy8gSGFuZGxlIGVycm9yXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIC8vIENyZWF0ZSBhIG5ldyByZWNlaXZpbmcgdHJhbnNwb3J0IHVzaW5nIHRoZSByZWNlaXZlZCBwYXJhbWV0ZXJzXG4gICAgICAgICAgICBpZiAoIWRldmljZSkge1xuICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0RldmljZSBpcyBub3QgaW5pdGlhbGl6ZWQnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IGNvbnN1bWVyVHJhbnNwb3J0ID0gZGV2aWNlLmNyZWF0ZVJlY3ZUcmFuc3BvcnQoeyAuLi5wYXJhbXMgfSk7XG5cbiAgICAgICAgICAgIC8vIEhhbmRsZSAnY29ubmVjdCcgZXZlbnQgZm9yIHRoZSBjb25zdW1lciB0cmFuc3BvcnRcbiAgICAgICAgICAgIGNvbnN1bWVyVHJhbnNwb3J0Lm9uKFxuICAgICAgICAgICAgICAnY29ubmVjdCcsXG4gICAgICAgICAgICAgIGFzeW5jIChcbiAgICAgICAgICAgICAgICB7IGR0bHNQYXJhbWV0ZXJzIH06IHsgZHRsc1BhcmFtZXRlcnM6IER0bHNQYXJhbWV0ZXJzIH0sXG4gICAgICAgICAgICAgICAgY2FsbGJhY2s6ICgpID0+IHZvaWQsXG4gICAgICAgICAgICAgICAgZXJyYmFjazogKGVycm9yOiBhbnkpID0+IHZvaWQsXG4gICAgICAgICAgICAgICkgPT4ge1xuICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAvLyBFbWl0IHRyYW5zcG9ydC1yZWN2LWNvbm5lY3QgZXZlbnQgdG8gc2lnbmFsIGNvbm5lY3Rpb25cbiAgICAgICAgICAgICAgICAgIG5zb2NrLmVtaXQoJ3RyYW5zcG9ydC1yZWN2LWNvbm5lY3QnLCB7XG4gICAgICAgICAgICAgICAgICAgIGR0bHNQYXJhbWV0ZXJzLFxuICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJDb25zdW1lclRyYW5zcG9ydElkOiBwYXJhbXMuaWQsXG4gICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgIGNhbGxiYWNrKCk7XG4gICAgICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgICAgIGVycmJhY2soZXJyb3IpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIC8vIExpc3RlbiBmb3IgY29ubmVjdGlvbiBzdGF0ZSBjaGFuZ2VcbiAgICAgICAgICAgIGNvbnN1bWVyVHJhbnNwb3J0Lm9uKCdjb25uZWN0aW9uc3RhdGVjaGFuZ2UnLCBhc3luYyAoc3RhdGU6IHN0cmluZykgPT4ge1xuICAgICAgICAgICAgICBzd2l0Y2ggKHN0YXRlKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAnY29ubmVjdGluZyc6XG4gICAgICAgICAgICAgICAgICAvLyBIYW5kbGUgY29ubmVjdGluZyBzdGF0ZVxuICAgICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgICAgICBjYXNlICdjb25uZWN0ZWQnOlxuICAgICAgICAgICAgICAgICAgLy8gSGFuZGxlIGNvbm5lY3RlZCBzdGF0ZVxuICAgICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgICAgICBjYXNlICdmYWlsZWQnOlxuICAgICAgICAgICAgICAgICAgLy8gSGFuZGxlIGZhaWxlZCBzdGF0ZVxuICAgICAgICAgICAgICAgICAgY29uc3VtZXJUcmFuc3BvcnQuY2xvc2UoKTtcblxuICAgICAgICAgICAgICAgICAgLy8gUmVvcmRlciBzdHJlYW1zIGJhc2VkIG9uIGNvbmRpdGlvbnNcbiAgICAgICAgICAgICAgICAgIGlmIChsb2NrX3NjcmVlbikge1xuICAgICAgICAgICAgICAgICAgICBhd2FpdCByZW9yZGVyU3RyZWFtcyh7IGFkZDogdHJ1ZSwgcGFyYW1ldGVycyB9KTtcbiAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IHJlb3JkZXJTdHJlYW1zKHsgYWRkOiBmYWxzZSwgcGFyYW1ldGVycyB9KTtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgLy8gQ29ubmVjdCB0aGUgcmVjZWl2aW5nIHRyYW5zcG9ydFxuICAgICAgICAgICAgYXdhaXQgY29ubmVjdFJlY3ZUcmFuc3BvcnQoe1xuICAgICAgICAgICAgICBjb25zdW1lclRyYW5zcG9ydCxcbiAgICAgICAgICAgICAgcmVtb3RlUHJvZHVjZXJJZCxcbiAgICAgICAgICAgICAgc2VydmVyQ29uc3VtZXJUcmFuc3BvcnRJZDogcGFyYW1zLmlkLFxuICAgICAgICAgICAgICBuc29jayxcbiAgICAgICAgICAgICAgcGFyYW1ldGVycyxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhlcnJvciwgJ2NyZWF0ZVJlY3ZUcmFuc3BvcnQgZXJyb3InKTtcbiAgICAgICAgICAgIC8vIEhhbmRsZSBlcnJvclxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUubG9nKGVycm9yLCAnc2lnbmFsTmV3Q29uc3VtZXJUcmFuc3BvcnQgZXJyb3InKTtcbiAgICAgIC8vIEhhbmRsZSBlcnJvclxuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgfTtcbn1cbiJdfQ==
|
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
import * as i1 from "../../producers/producer-emits/join-con-room.service";
|
|
4
|
-
export class JoinConsumeRoom {
|
|
5
|
-
JoinConRoomService;
|
|
6
|
-
constructor(JoinConRoomService) {
|
|
7
|
-
this.JoinConRoomService = JoinConRoomService;
|
|
8
|
-
}
|
|
9
|
-
/**
|
|
10
|
-
* Joins a consumption room by sending a request to the server and handles the necessary setup.
|
|
11
|
-
* @param {Object} options - The options object containing necessary variables.
|
|
12
|
-
* @param {any} options.remote_sock - The remote socket information.
|
|
13
|
-
* @param {string} options.apiToken - The API token for authentication.
|
|
14
|
-
* @param {string} options.apiUserName - The API username for authentication.
|
|
15
|
-
* @param {any} options.parameters - Additional parameters required for the function.
|
|
16
|
-
* @returns {Promise<any>} - A promise that resolves with data related to the success of joining the room.
|
|
17
|
-
*/
|
|
18
|
-
joinConsumeRoom = async ({ remote_sock, apiToken, apiUserName, parameters, }) => {
|
|
19
|
-
let { roomName, islevel, member, device, updateDevice,
|
|
20
|
-
//Mediasfu functions
|
|
21
|
-
receiveAllPipedTransports, createDeviceClient, } = parameters;
|
|
22
|
-
try {
|
|
23
|
-
// Join the consumption room
|
|
24
|
-
const data = await this.JoinConRoomService.joinConRoom({
|
|
25
|
-
socket: remote_sock,
|
|
26
|
-
roomName,
|
|
27
|
-
islevel,
|
|
28
|
-
member,
|
|
29
|
-
sec: apiToken,
|
|
30
|
-
apiUserName,
|
|
31
|
-
});
|
|
32
|
-
if (data && data.success) {
|
|
33
|
-
// Setup media device if not already set
|
|
34
|
-
if (!device) {
|
|
35
|
-
if (data.rtpCapabilities) {
|
|
36
|
-
const device_ = await createDeviceClient({
|
|
37
|
-
rtpCapabilities: data.rtpCapabilities,
|
|
38
|
-
});
|
|
39
|
-
if (device_) {
|
|
40
|
-
updateDevice(device_);
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
// Receive all piped transports
|
|
45
|
-
await receiveAllPipedTransports({ nsock: remote_sock, parameters });
|
|
46
|
-
}
|
|
47
|
-
return data;
|
|
48
|
-
}
|
|
49
|
-
catch (error) {
|
|
50
|
-
console.log('Error in joinConsumeRoom:', error);
|
|
51
|
-
throw new Error('Failed to join the consumption room or set up necessary components.');
|
|
52
|
-
}
|
|
53
|
-
};
|
|
54
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: JoinConsumeRoom, deps: [{ token: i1.JoinConRoom }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
55
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: JoinConsumeRoom, providedIn: 'root' });
|
|
56
|
-
}
|
|
57
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: JoinConsumeRoom, decorators: [{
|
|
58
|
-
type: Injectable,
|
|
59
|
-
args: [{
|
|
60
|
-
providedIn: 'root',
|
|
61
|
-
}]
|
|
62
|
-
}], ctorParameters: () => [{ type: i1.JoinConRoom }] });
|
|
63
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiam9pbi1jb25zdW1lLXJvb20uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21lZGlhc2Z1LWFuZ3VsYXIvc3JjL2xpYi9jb25zdW1lcnMvc29ja2V0LXJlY2VpdmUtbWV0aG9kcy9qb2luLWNvbnN1bWUtcm9vbS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQTBDM0MsTUFBTSxPQUFPLGVBQWU7SUFDTjtJQUFwQixZQUFvQixrQkFBK0I7UUFBL0IsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFhO0lBQUcsQ0FBQztJQUV2RDs7Ozs7Ozs7T0FRRztJQUNILGVBQWUsR0FBRyxLQUFLLEVBQUUsRUFDdkIsV0FBVyxFQUNYLFFBQVEsRUFDUixXQUFXLEVBQ1gsVUFBVSxHQUNhLEVBQW9DLEVBQUU7UUFDN0QsSUFBSSxFQUNGLFFBQVEsRUFDUixPQUFPLEVBQ1AsTUFBTSxFQUNOLE1BQU0sRUFDTixZQUFZO1FBRVosb0JBQW9CO1FBQ3BCLHlCQUF5QixFQUN6QixrQkFBa0IsR0FDbkIsR0FBRyxVQUFVLENBQUM7UUFFZixJQUFJLENBQUM7WUFDSCw0QkFBNEI7WUFDNUIsTUFBTSxJQUFJLEdBQVEsTUFBTSxJQUFJLENBQUMsa0JBQWtCLENBQUMsV0FBVyxDQUFDO2dCQUMxRCxNQUFNLEVBQUUsV0FBVztnQkFDbkIsUUFBUTtnQkFDUixPQUFPO2dCQUNQLE1BQU07Z0JBQ04sR0FBRyxFQUFFLFFBQVE7Z0JBQ2IsV0FBVzthQUNaLENBQUMsQ0FBQztZQUVILElBQUksSUFBSSxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDekIsd0NBQXdDO2dCQUN4QyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7b0JBQ1osSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7d0JBQ3pCLE1BQU0sT0FBTyxHQUFHLE1BQU0sa0JBQWtCLENBQUM7NEJBQ3ZDLGVBQWUsRUFBRSxJQUFJLENBQUMsZUFBZTt5QkFDdEMsQ0FBQyxDQUFDO3dCQUVILElBQUksT0FBTyxFQUFFLENBQUM7NEJBQ1osWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDO3dCQUN4QixDQUFDO29CQUNILENBQUM7Z0JBQ0gsQ0FBQztnQkFFRCwrQkFBK0I7Z0JBQy9CLE1BQU0seUJBQXlCLENBQUMsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUM7WUFDdEUsQ0FBQztZQUVELE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztRQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7WUFDZixPQUFPLENBQUMsR0FBRyxDQUFDLDJCQUEyQixFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ2hELE1BQU0sSUFBSSxLQUFLLENBQUMscUVBQXFFLENBQUMsQ0FBQztRQUN6RixDQUFDO0lBQ0gsQ0FBQyxDQUFDO3VHQWhFUyxlQUFlOzJHQUFmLGVBQWUsY0FGZCxNQUFNOzsyRkFFUCxlQUFlO2tCQUgzQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEpvaW5Db25Sb29tIH0gZnJvbSAnLi4vLi4vcHJvZHVjZXJzL3Byb2R1Y2VyLWVtaXRzL2pvaW4tY29uLXJvb20uc2VydmljZSc7XG5pbXBvcnQgeyBTb2NrZXQgfSBmcm9tICdzb2NrZXQuaW8tY2xpZW50JztcbmltcG9ydCB7XG4gIFJlY2VpdmVBbGxQaXBlZFRyYW5zcG9ydHNUeXBlLFxuICBSZWNlaXZlQWxsUGlwZWRUcmFuc3BvcnRzUGFyYW1ldGVycyxcbiAgQ3JlYXRlRGV2aWNlQ2xpZW50VHlwZSxcbn0gZnJvbSAnLi4vLi4vQHR5cGVzL3R5cGVzJztcbmltcG9ydCB7IERldmljZSwgUnRwQ2FwYWJpbGl0aWVzIH0gZnJvbSAnbWVkaWFzb3VwLWNsaWVudC9saWIvdHlwZXMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEpvaW5Db25zdW1lUm9vbVBhcmFtZXRlcnMgZXh0ZW5kcyBSZWNlaXZlQWxsUGlwZWRUcmFuc3BvcnRzUGFyYW1ldGVycyB7XG4gIHJvb21OYW1lOiBzdHJpbmc7XG4gIGlzbGV2ZWw6IHN0cmluZztcbiAgbWVtYmVyOiBzdHJpbmc7XG4gIGRldmljZTogRGV2aWNlIHwgbnVsbDtcbiAgdXBkYXRlRGV2aWNlOiAoZGV2aWNlOiBEZXZpY2UgfCBudWxsKSA9PiB2b2lkO1xuICByZWNlaXZlQWxsUGlwZWRUcmFuc3BvcnRzOiBSZWNlaXZlQWxsUGlwZWRUcmFuc3BvcnRzVHlwZTtcbiAgY3JlYXRlRGV2aWNlQ2xpZW50OiBDcmVhdGVEZXZpY2VDbGllbnRUeXBlO1xuXG4gIC8vIG1lZGlhc2Z1IGZ1bmN0aW9uc1xuICBba2V5OiBzdHJpbmddOiBhbnk7XG59XG5leHBvcnQgaW50ZXJmYWNlIEpvaW5Db25zdW1lUm9vbU9wdGlvbnMge1xuICByZW1vdGVfc29jazogU29ja2V0O1xuICBhcGlUb2tlbjogc3RyaW5nO1xuICBhcGlVc2VyTmFtZTogc3RyaW5nO1xuICBwYXJhbWV0ZXJzOiBKb2luQ29uc3VtZVJvb21QYXJhbWV0ZXJzO1xufVxuXG5pbnRlcmZhY2UgSm9pbkNvbnN1bWVSb29tUmVzcG9uc2Uge1xuICBzdWNjZXNzOiBib29sZWFuO1xuICBydHBDYXBhYmlsaXRpZXM/OiBSdHBDYXBhYmlsaXRpZXM7XG59XG5cbi8vIEV4cG9ydCB0aGUgdHlwZSBkZWZpbml0aW9uIGZvciB0aGUgZnVuY3Rpb25cbmV4cG9ydCB0eXBlIEpvaW5Db25zdW1lUm9vbVR5cGUgPSAoXG4gIG9wdGlvbnM6IEpvaW5Db25zdW1lUm9vbU9wdGlvbnMsXG4pID0+IFByb21pc2U8Sm9pbkNvbnN1bWVSb29tUmVzcG9uc2U+O1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgSm9pbkNvbnN1bWVSb29tIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBKb2luQ29uUm9vbVNlcnZpY2U6IEpvaW5Db25Sb29tKSB7fVxuXG4gIC8qKlxuICAgKiBKb2lucyBhIGNvbnN1bXB0aW9uIHJvb20gYnkgc2VuZGluZyBhIHJlcXVlc3QgdG8gdGhlIHNlcnZlciBhbmQgaGFuZGxlcyB0aGUgbmVjZXNzYXJ5IHNldHVwLlxuICAgKiBAcGFyYW0ge09iamVjdH0gb3B0aW9ucyAtIFRoZSBvcHRpb25zIG9iamVjdCBjb250YWluaW5nIG5lY2Vzc2FyeSB2YXJpYWJsZXMuXG4gICAqIEBwYXJhbSB7YW55fSBvcHRpb25zLnJlbW90ZV9zb2NrIC0gVGhlIHJlbW90ZSBzb2NrZXQgaW5mb3JtYXRpb24uXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBvcHRpb25zLmFwaVRva2VuIC0gVGhlIEFQSSB0b2tlbiBmb3IgYXV0aGVudGljYXRpb24uXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBvcHRpb25zLmFwaVVzZXJOYW1lIC0gVGhlIEFQSSB1c2VybmFtZSBmb3IgYXV0aGVudGljYXRpb24uXG4gICAqIEBwYXJhbSB7YW55fSBvcHRpb25zLnBhcmFtZXRlcnMgLSBBZGRpdGlvbmFsIHBhcmFtZXRlcnMgcmVxdWlyZWQgZm9yIHRoZSBmdW5jdGlvbi5cbiAgICogQHJldHVybnMge1Byb21pc2U8YW55Pn0gLSBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB3aXRoIGRhdGEgcmVsYXRlZCB0byB0aGUgc3VjY2VzcyBvZiBqb2luaW5nIHRoZSByb29tLlxuICAgKi9cbiAgam9pbkNvbnN1bWVSb29tID0gYXN5bmMgKHtcbiAgICByZW1vdGVfc29jayxcbiAgICBhcGlUb2tlbixcbiAgICBhcGlVc2VyTmFtZSxcbiAgICBwYXJhbWV0ZXJzLFxuICB9OiBKb2luQ29uc3VtZVJvb21PcHRpb25zKTogUHJvbWlzZTxKb2luQ29uc3VtZVJvb21SZXNwb25zZT4gPT4ge1xuICAgIGxldCB7XG4gICAgICByb29tTmFtZSxcbiAgICAgIGlzbGV2ZWwsXG4gICAgICBtZW1iZXIsXG4gICAgICBkZXZpY2UsXG4gICAgICB1cGRhdGVEZXZpY2UsXG5cbiAgICAgIC8vTWVkaWFzZnUgZnVuY3Rpb25zXG4gICAgICByZWNlaXZlQWxsUGlwZWRUcmFuc3BvcnRzLFxuICAgICAgY3JlYXRlRGV2aWNlQ2xpZW50LFxuICAgIH0gPSBwYXJhbWV0ZXJzO1xuXG4gICAgdHJ5IHtcbiAgICAgIC8vIEpvaW4gdGhlIGNvbnN1bXB0aW9uIHJvb21cbiAgICAgIGNvbnN0IGRhdGE6IGFueSA9IGF3YWl0IHRoaXMuSm9pbkNvblJvb21TZXJ2aWNlLmpvaW5Db25Sb29tKHtcbiAgICAgICAgc29ja2V0OiByZW1vdGVfc29jayxcbiAgICAgICAgcm9vbU5hbWUsXG4gICAgICAgIGlzbGV2ZWwsXG4gICAgICAgIG1lbWJlcixcbiAgICAgICAgc2VjOiBhcGlUb2tlbixcbiAgICAgICAgYXBpVXNlck5hbWUsXG4gICAgICB9KTtcblxuICAgICAgaWYgKGRhdGEgJiYgZGF0YS5zdWNjZXNzKSB7XG4gICAgICAgIC8vIFNldHVwIG1lZGlhIGRldmljZSBpZiBub3QgYWxyZWFkeSBzZXRcbiAgICAgICAgaWYgKCFkZXZpY2UpIHtcbiAgICAgICAgICBpZiAoZGF0YS5ydHBDYXBhYmlsaXRpZXMpIHtcbiAgICAgICAgICAgIGNvbnN0IGRldmljZV8gPSBhd2FpdCBjcmVhdGVEZXZpY2VDbGllbnQoe1xuICAgICAgICAgICAgICBydHBDYXBhYmlsaXRpZXM6IGRhdGEucnRwQ2FwYWJpbGl0aWVzLFxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIGlmIChkZXZpY2VfKSB7XG4gICAgICAgICAgICAgIHVwZGF0ZURldmljZShkZXZpY2VfKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBSZWNlaXZlIGFsbCBwaXBlZCB0cmFuc3BvcnRzXG4gICAgICAgIGF3YWl0IHJlY2VpdmVBbGxQaXBlZFRyYW5zcG9ydHMoeyBuc29jazogcmVtb3RlX3NvY2ssIHBhcmFtZXRlcnMgfSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBkYXRhO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmxvZygnRXJyb3IgaW4gam9pbkNvbnN1bWVSb29tOicsIGVycm9yKTtcbiAgICAgIHRocm93IG5ldyBFcnJvcignRmFpbGVkIHRvIGpvaW4gdGhlIGNvbnN1bXB0aW9uIHJvb20gb3Igc2V0IHVwIG5lY2Vzc2FyeSBjb21wb25lbnRzLicpO1xuICAgIH1cbiAgfTtcbn1cbiJdfQ==
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
import * as i1 from "../signal-new-consumer-transport.service";
|
|
4
|
-
export class NewPipeProducer {
|
|
5
|
-
signalNewConsumerTransportService;
|
|
6
|
-
constructor(signalNewConsumerTransportService) {
|
|
7
|
-
this.signalNewConsumerTransportService = signalNewConsumerTransportService;
|
|
8
|
-
}
|
|
9
|
-
/**
|
|
10
|
-
* Handles new pipe producer events and updates relevant states.
|
|
11
|
-
* @param {Object} options - The options object containing necessary variables.
|
|
12
|
-
* @param {string} options.producerId - The ID of the producer.
|
|
13
|
-
* @param {string} options.islevel - The level of the producer.
|
|
14
|
-
* @param {any} options.nsock - The socket object.
|
|
15
|
-
* @param {any} options.parameters - Additional parameters required for the function.
|
|
16
|
-
* @returns {Promise<void>}
|
|
17
|
-
*/
|
|
18
|
-
newPipeProducer = async ({ producerId, islevel, nsock, parameters, }) => {
|
|
19
|
-
let { first_round, shareScreenStarted, shared, landScaped, showAlert, isWideScreen, updateFirst_round, updateLandScaped, } = parameters;
|
|
20
|
-
try {
|
|
21
|
-
// Perform signaling for new consumer transport
|
|
22
|
-
await this.signalNewConsumerTransportService.signalNewConsumerTransport({
|
|
23
|
-
remoteProducerId: producerId,
|
|
24
|
-
islevel: islevel,
|
|
25
|
-
nsock: nsock,
|
|
26
|
-
parameters: parameters,
|
|
27
|
-
});
|
|
28
|
-
first_round = false;
|
|
29
|
-
if (shareScreenStarted || shared) {
|
|
30
|
-
if (!isWideScreen) {
|
|
31
|
-
if (!landScaped) {
|
|
32
|
-
if (showAlert) {
|
|
33
|
-
showAlert({
|
|
34
|
-
message: 'Please rotate your device to landscape mode for better experience',
|
|
35
|
-
type: 'success',
|
|
36
|
-
duration: 3000,
|
|
37
|
-
});
|
|
38
|
-
}
|
|
39
|
-
landScaped = true;
|
|
40
|
-
updateLandScaped(landScaped);
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
first_round = true;
|
|
44
|
-
updateFirst_round(first_round);
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
catch (error) {
|
|
48
|
-
console.error('Error in newPipeProducer:', error);
|
|
49
|
-
throw new Error('Failed to handle new pipe producer event.');
|
|
50
|
-
}
|
|
51
|
-
};
|
|
52
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: NewPipeProducer, deps: [{ token: i1.SignalNewConsumerTransport }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
53
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: NewPipeProducer, providedIn: 'root' });
|
|
54
|
-
}
|
|
55
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: NewPipeProducer, decorators: [{
|
|
56
|
-
type: Injectable,
|
|
57
|
-
args: [{
|
|
58
|
-
providedIn: 'root',
|
|
59
|
-
}]
|
|
60
|
-
}], ctorParameters: () => [{ type: i1.SignalNewConsumerTransport }] });
|
|
61
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV3LXBpcGUtcHJvZHVjZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21lZGlhc2Z1LWFuZ3VsYXIvc3JjL2xpYi9jb25zdW1lcnMvc29ja2V0LXJlY2VpdmUtbWV0aG9kcy9uZXctcGlwZS1wcm9kdWNlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQWlEM0MsTUFBTSxPQUFPLGVBQWU7SUFDTjtJQUFwQixZQUFvQixpQ0FBNkQ7UUFBN0Qsc0NBQWlDLEdBQWpDLGlDQUFpQyxDQUE0QjtJQUFHLENBQUM7SUFFckY7Ozs7Ozs7O09BUUc7SUFDSCxlQUFlLEdBQUcsS0FBSyxFQUFFLEVBQ3ZCLFVBQVUsRUFDVixPQUFPLEVBQ1AsS0FBSyxFQUNMLFVBQVUsR0FDYSxFQUFpQixFQUFFO1FBQzFDLElBQUksRUFDRixXQUFXLEVBQ1gsa0JBQWtCLEVBQ2xCLE1BQU0sRUFDTixVQUFVLEVBQ1YsU0FBUyxFQUNULFlBQVksRUFDWixpQkFBaUIsRUFDakIsZ0JBQWdCLEdBQ2pCLEdBQUcsVUFBVSxDQUFDO1FBRWYsSUFBSSxDQUFDO1lBQ0gsK0NBQStDO1lBQy9DLE1BQU0sSUFBSSxDQUFDLGlDQUFpQyxDQUFDLDBCQUEwQixDQUFDO2dCQUN0RSxnQkFBZ0IsRUFBRSxVQUFVO2dCQUM1QixPQUFPLEVBQUUsT0FBTztnQkFDaEIsS0FBSyxFQUFFLEtBQUs7Z0JBQ1osVUFBVSxFQUFFLFVBQVU7YUFDdkIsQ0FBQyxDQUFDO1lBRUgsV0FBVyxHQUFHLEtBQUssQ0FBQztZQUNwQixJQUFJLGtCQUFrQixJQUFJLE1BQU0sRUFBRSxDQUFDO2dCQUNqQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7b0JBQ2xCLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQzt3QkFDaEIsSUFBSSxTQUFTLEVBQUUsQ0FBQzs0QkFDZCxTQUFTLENBQUM7Z0NBQ1IsT0FBTyxFQUFFLG1FQUFtRTtnQ0FDNUUsSUFBSSxFQUFFLFNBQVM7Z0NBQ2YsUUFBUSxFQUFFLElBQUk7NkJBQ2YsQ0FBQyxDQUFDO3dCQUNMLENBQUM7d0JBQ0QsVUFBVSxHQUFHLElBQUksQ0FBQzt3QkFDbEIsZ0JBQWdCLENBQUMsVUFBVSxDQUFDLENBQUM7b0JBQy9CLENBQUM7Z0JBQ0gsQ0FBQztnQkFFRCxXQUFXLEdBQUcsSUFBSSxDQUFDO2dCQUNuQixpQkFBaUIsQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUNqQyxDQUFDO1FBQ0gsQ0FBQztRQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7WUFDZixPQUFPLENBQUMsS0FBSyxDQUFDLDJCQUEyQixFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ2xELE1BQU0sSUFBSSxLQUFLLENBQUMsMkNBQTJDLENBQUMsQ0FBQztRQUMvRCxDQUFDO0lBQ0gsQ0FBQyxDQUFDO3VHQTdEUyxlQUFlOzJHQUFmLGVBQWUsY0FGZCxNQUFNOzsyRkFFUCxlQUFlO2tCQUgzQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNpZ25hbE5ld0NvbnN1bWVyVHJhbnNwb3J0IH0gZnJvbSAnLi4vc2lnbmFsLW5ldy1jb25zdW1lci10cmFuc3BvcnQuc2VydmljZSc7XG5pbXBvcnQgeyBTb2NrZXQgfSBmcm9tICdzb2NrZXQuaW8tY2xpZW50JztcbmltcG9ydCB7XG4gIFJlb3JkZXJTdHJlYW1zUGFyYW1ldGVycyxcbiAgUmVvcmRlclN0cmVhbXNUeXBlLFxuICBTaWduYWxOZXdDb25zdW1lclRyYW5zcG9ydFBhcmFtZXRlcnMsXG4gIENvbm5lY3RSZWN2VHJhbnNwb3J0UGFyYW1ldGVycyxcbiAgQ29ubmVjdFJlY3ZUcmFuc3BvcnRUeXBlLFxuICBTaG93QWxlcnQsXG59IGZyb20gJy4uLy4uL0B0eXBlcy90eXBlcyc7XG5pbXBvcnQgeyBEZXZpY2UgfSBmcm9tICdtZWRpYXNvdXAtY2xpZW50L2xpYi90eXBlcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTmV3UGlwZVByb2R1Y2VyUGFyYW1ldGVyc1xuICBleHRlbmRzIFJlb3JkZXJTdHJlYW1zUGFyYW1ldGVycyxcbiAgICBTaWduYWxOZXdDb25zdW1lclRyYW5zcG9ydFBhcmFtZXRlcnMsXG4gICAgQ29ubmVjdFJlY3ZUcmFuc3BvcnRQYXJhbWV0ZXJzIHtcbiAgZmlyc3Rfcm91bmQ6IGJvb2xlYW47XG4gIHNoYXJlU2NyZWVuU3RhcnRlZDogYm9vbGVhbjtcbiAgc2hhcmVkOiBib29sZWFuO1xuICBsYW5kU2NhcGVkOiBib29sZWFuO1xuICBzaG93QWxlcnQ/OiBTaG93QWxlcnQ7XG4gIGlzV2lkZVNjcmVlbjogYm9vbGVhbjtcbiAgdXBkYXRlRmlyc3Rfcm91bmQ6IChmaXJzdFJvdW5kOiBib29sZWFuKSA9PiB2b2lkO1xuICB1cGRhdGVMYW5kU2NhcGVkOiAobGFuZFNjYXBlZDogYm9vbGVhbikgPT4gdm9pZDtcbiAgZGV2aWNlOiBEZXZpY2UgfCBudWxsO1xuICBjb25zdW1pbmdUcmFuc3BvcnRzOiBzdHJpbmdbXTtcbiAgbG9ja19zY3JlZW46IGJvb2xlYW47XG4gIHVwZGF0ZUNvbnN1bWluZ1RyYW5zcG9ydHM6ICh0cmFuc3BvcnRzOiBzdHJpbmdbXSkgPT4gdm9pZDtcblxuICAvLyBtZWRpYXNmdSBmdW5jdGlvbnNcbiAgY29ubmVjdFJlY3ZUcmFuc3BvcnQ6IENvbm5lY3RSZWN2VHJhbnNwb3J0VHlwZTtcbiAgcmVvcmRlclN0cmVhbXM6IFJlb3JkZXJTdHJlYW1zVHlwZTtcbiAgZ2V0VXBkYXRlZEFsbFBhcmFtczogKCkgPT4gTmV3UGlwZVByb2R1Y2VyUGFyYW1ldGVycztcbiAgW2tleTogc3RyaW5nXTogYW55O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE5ld1BpcGVQcm9kdWNlck9wdGlvbnMge1xuICBwcm9kdWNlcklkOiBzdHJpbmc7XG4gIGlzbGV2ZWw6IHN0cmluZztcbiAgbnNvY2s6IFNvY2tldDtcbiAgcGFyYW1ldGVyczogTmV3UGlwZVByb2R1Y2VyUGFyYW1ldGVycztcbn1cblxuLy8gRXhwb3J0IHRoZSB0eXBlIGRlZmluaXRpb24gZm9yIHRoZSBmdW5jdGlvblxuZXhwb3J0IHR5cGUgTmV3UGlwZVByb2R1Y2VyVHlwZSA9IChvcHRpb25zOiBOZXdQaXBlUHJvZHVjZXJPcHRpb25zKSA9PiBQcm9taXNlPHZvaWQ+O1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIE5ld1BpcGVQcm9kdWNlciB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgc2lnbmFsTmV3Q29uc3VtZXJUcmFuc3BvcnRTZXJ2aWNlOiBTaWduYWxOZXdDb25zdW1lclRyYW5zcG9ydCkge31cblxuICAvKipcbiAgICogSGFuZGxlcyBuZXcgcGlwZSBwcm9kdWNlciBldmVudHMgYW5kIHVwZGF0ZXMgcmVsZXZhbnQgc3RhdGVzLlxuICAgKiBAcGFyYW0ge09iamVjdH0gb3B0aW9ucyAtIFRoZSBvcHRpb25zIG9iamVjdCBjb250YWluaW5nIG5lY2Vzc2FyeSB2YXJpYWJsZXMuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBvcHRpb25zLnByb2R1Y2VySWQgLSBUaGUgSUQgb2YgdGhlIHByb2R1Y2VyLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gb3B0aW9ucy5pc2xldmVsIC0gVGhlIGxldmVsIG9mIHRoZSBwcm9kdWNlci5cbiAgICogQHBhcmFtIHthbnl9IG9wdGlvbnMubnNvY2sgLSBUaGUgc29ja2V0IG9iamVjdC5cbiAgICogQHBhcmFtIHthbnl9IG9wdGlvbnMucGFyYW1ldGVycyAtIEFkZGl0aW9uYWwgcGFyYW1ldGVycyByZXF1aXJlZCBmb3IgdGhlIGZ1bmN0aW9uLlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn1cbiAgICovXG4gIG5ld1BpcGVQcm9kdWNlciA9IGFzeW5jICh7XG4gICAgcHJvZHVjZXJJZCxcbiAgICBpc2xldmVsLFxuICAgIG5zb2NrLFxuICAgIHBhcmFtZXRlcnMsXG4gIH06IE5ld1BpcGVQcm9kdWNlck9wdGlvbnMpOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgICBsZXQge1xuICAgICAgZmlyc3Rfcm91bmQsXG4gICAgICBzaGFyZVNjcmVlblN0YXJ0ZWQsXG4gICAgICBzaGFyZWQsXG4gICAgICBsYW5kU2NhcGVkLFxuICAgICAgc2hvd0FsZXJ0LFxuICAgICAgaXNXaWRlU2NyZWVuLFxuICAgICAgdXBkYXRlRmlyc3Rfcm91bmQsXG4gICAgICB1cGRhdGVMYW5kU2NhcGVkLFxuICAgIH0gPSBwYXJhbWV0ZXJzO1xuXG4gICAgdHJ5IHtcbiAgICAgIC8vIFBlcmZvcm0gc2lnbmFsaW5nIGZvciBuZXcgY29uc3VtZXIgdHJhbnNwb3J0XG4gICAgICBhd2FpdCB0aGlzLnNpZ25hbE5ld0NvbnN1bWVyVHJhbnNwb3J0U2VydmljZS5zaWduYWxOZXdDb25zdW1lclRyYW5zcG9ydCh7XG4gICAgICAgIHJlbW90ZVByb2R1Y2VySWQ6IHByb2R1Y2VySWQsXG4gICAgICAgIGlzbGV2ZWw6IGlzbGV2ZWwsXG4gICAgICAgIG5zb2NrOiBuc29jayxcbiAgICAgICAgcGFyYW1ldGVyczogcGFyYW1ldGVycyxcbiAgICAgIH0pO1xuXG4gICAgICBmaXJzdF9yb3VuZCA9IGZhbHNlO1xuICAgICAgaWYgKHNoYXJlU2NyZWVuU3RhcnRlZCB8fCBzaGFyZWQpIHtcbiAgICAgICAgaWYgKCFpc1dpZGVTY3JlZW4pIHtcbiAgICAgICAgICBpZiAoIWxhbmRTY2FwZWQpIHtcbiAgICAgICAgICAgIGlmIChzaG93QWxlcnQpIHtcbiAgICAgICAgICAgICAgc2hvd0FsZXJ0KHtcbiAgICAgICAgICAgICAgICBtZXNzYWdlOiAnUGxlYXNlIHJvdGF0ZSB5b3VyIGRldmljZSB0byBsYW5kc2NhcGUgbW9kZSBmb3IgYmV0dGVyIGV4cGVyaWVuY2UnLFxuICAgICAgICAgICAgICAgIHR5cGU6ICdzdWNjZXNzJyxcbiAgICAgICAgICAgICAgICBkdXJhdGlvbjogMzAwMCxcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBsYW5kU2NhcGVkID0gdHJ1ZTtcbiAgICAgICAgICAgIHVwZGF0ZUxhbmRTY2FwZWQobGFuZFNjYXBlZCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgZmlyc3Rfcm91bmQgPSB0cnVlO1xuICAgICAgICB1cGRhdGVGaXJzdF9yb3VuZChmaXJzdF9yb3VuZCk7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGluIG5ld1BpcGVQcm9kdWNlcjonLCBlcnJvcik7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ZhaWxlZCB0byBoYW5kbGUgbmV3IHBpcGUgcHJvZHVjZXIgZXZlbnQuJyk7XG4gICAgfVxuICB9O1xufVxuIl19
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
export class ProducerClosed {
|
|
4
|
-
/**
|
|
5
|
-
* Handles the closing of a producer and resizes video elements.
|
|
6
|
-
* @param {Object} options - The options object containing necessary variables.
|
|
7
|
-
* @param {string} options.remoteProducerId - The ID of the remote producer.
|
|
8
|
-
* @param {any} options.parameters - Additional parameters required for the function.
|
|
9
|
-
* @returns {Promise<void>}
|
|
10
|
-
*/
|
|
11
|
-
producerClosed = async ({ remoteProducerId, parameters, }) => {
|
|
12
|
-
let { consumerTransports, screenId, updateConsumerTransports,
|
|
13
|
-
// mediasfu functions
|
|
14
|
-
closeAndResize, } = parameters;
|
|
15
|
-
// Handle producer closed
|
|
16
|
-
const producerToClose = consumerTransports.find((transportData) => transportData.producerId === remoteProducerId);
|
|
17
|
-
if (!producerToClose) {
|
|
18
|
-
return;
|
|
19
|
-
}
|
|
20
|
-
// Check if the ID of the producer to close is == screenId
|
|
21
|
-
let kind = producerToClose.consumer.kind;
|
|
22
|
-
if (producerToClose.producerId == screenId) {
|
|
23
|
-
kind = 'screenshare';
|
|
24
|
-
}
|
|
25
|
-
try {
|
|
26
|
-
await producerToClose['consumerTransport'].close();
|
|
27
|
-
}
|
|
28
|
-
catch (error) {
|
|
29
|
-
console.error('Error closing consumerTransport:', error);
|
|
30
|
-
}
|
|
31
|
-
try {
|
|
32
|
-
producerToClose.consumer.close();
|
|
33
|
-
}
|
|
34
|
-
catch (error) {
|
|
35
|
-
console.error('Error closing consumer:', error);
|
|
36
|
-
}
|
|
37
|
-
consumerTransports = consumerTransports.filter((transportData) => transportData.producerId !== remoteProducerId);
|
|
38
|
-
updateConsumerTransports(consumerTransports);
|
|
39
|
-
// Close and resize the videos
|
|
40
|
-
await closeAndResize({ producerId: remoteProducerId, kind: kind, parameters: parameters });
|
|
41
|
-
};
|
|
42
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ProducerClosed, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
43
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ProducerClosed, providedIn: 'root' });
|
|
44
|
-
}
|
|
45
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ProducerClosed, decorators: [{
|
|
46
|
-
type: Injectable,
|
|
47
|
-
args: [{
|
|
48
|
-
providedIn: 'root',
|
|
49
|
-
}]
|
|
50
|
-
}] });
|
|
51
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjZXItY2xvc2VkLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tZWRpYXNmdS1hbmd1bGFyL3NyYy9saWIvY29uc3VtZXJzL3NvY2tldC1yZWNlaXZlLW1ldGhvZHMvcHJvZHVjZXItY2xvc2VkLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUF5QjNDLE1BQU0sT0FBTyxjQUFjO0lBQ3pCOzs7Ozs7T0FNRztJQUNILGNBQWMsR0FBRyxLQUFLLEVBQUUsRUFDdEIsZ0JBQWdCLEVBQ2hCLFVBQVUsR0FDWSxFQUFpQixFQUFFO1FBQ3pDLElBQUksRUFDRixrQkFBa0IsRUFDbEIsUUFBUSxFQUNSLHdCQUF3QjtRQUV4QixxQkFBcUI7UUFDckIsY0FBYyxHQUNmLEdBQUcsVUFBVSxDQUFDO1FBRWYseUJBQXlCO1FBQ3pCLE1BQU0sZUFBZSxHQUFHLGtCQUFrQixDQUFDLElBQUksQ0FDN0MsQ0FBQyxhQUFrQixFQUFFLEVBQUUsQ0FBQyxhQUFhLENBQUMsVUFBVSxLQUFLLGdCQUFnQixDQUN0RSxDQUFDO1FBRUYsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQ3JCLE9BQU87UUFDVCxDQUFDO1FBRUQsMERBQTBEO1FBQzFELElBQUksSUFBSSxHQUFXLGVBQWUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDO1FBRWpELElBQUksZUFBZSxDQUFDLFVBQVUsSUFBSSxRQUFRLEVBQUUsQ0FBQztZQUMzQyxJQUFJLEdBQUcsYUFBYSxDQUFDO1FBQ3ZCLENBQUM7UUFDRCxJQUFJLENBQUM7WUFDSCxNQUFNLGVBQWUsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3JELENBQUM7UUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1lBQ2YsT0FBTyxDQUFDLEtBQUssQ0FBQyxrQ0FBa0MsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUMzRCxDQUFDO1FBRUQsSUFBSSxDQUFDO1lBQ0gsZUFBZSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNuQyxDQUFDO1FBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztZQUNmLE9BQU8sQ0FBQyxLQUFLLENBQUMseUJBQXlCLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDbEQsQ0FBQztRQUVELGtCQUFrQixHQUFHLGtCQUFrQixDQUFDLE1BQU0sQ0FDNUMsQ0FBQyxhQUFrQixFQUFFLEVBQUUsQ0FBQyxhQUFhLENBQUMsVUFBVSxLQUFLLGdCQUFnQixDQUN0RSxDQUFDO1FBQ0Ysd0JBQXdCLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUU3Qyw4QkFBOEI7UUFDOUIsTUFBTSxjQUFjLENBQUMsRUFBRSxVQUFVLEVBQUUsZ0JBQWdCLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQztJQUM3RixDQUFDLENBQUM7dUdBdkRTLGNBQWM7MkdBQWQsY0FBYyxjQUZiLE1BQU07OzJGQUVQLGNBQWM7a0JBSDFCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVHJhbnNwb3J0LCBDbG9zZUFuZFJlc2l6ZVBhcmFtZXRlcnMsIENsb3NlQW5kUmVzaXplVHlwZSB9IGZyb20gJy4uLy4uL0B0eXBlcy90eXBlcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHJvZHVjZXJDbG9zZWRQYXJhbWV0ZXJzIGV4dGVuZHMgQ2xvc2VBbmRSZXNpemVQYXJhbWV0ZXJzIHtcbiAgY29uc3VtZXJUcmFuc3BvcnRzOiBUcmFuc3BvcnRbXTtcbiAgc2NyZWVuSWQ/OiBzdHJpbmc7XG4gIHVwZGF0ZUNvbnN1bWVyVHJhbnNwb3J0czogKHRyYW5zcG9ydHM6IFRyYW5zcG9ydFtdKSA9PiB2b2lkO1xuXG4gIC8vIG1lZGlhc2Z1IGZ1bmN0aW9uc1xuICBjbG9zZUFuZFJlc2l6ZTogQ2xvc2VBbmRSZXNpemVUeXBlO1xuICBnZXRVcGRhdGVkQWxsUGFyYW1zOiAoKSA9PiBQcm9kdWNlckNsb3NlZFBhcmFtZXRlcnM7XG4gIFtrZXk6IHN0cmluZ106IGFueTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQcm9kdWNlckNsb3NlZE9wdGlvbnMge1xuICByZW1vdGVQcm9kdWNlcklkOiBzdHJpbmc7XG4gIHBhcmFtZXRlcnM6IFByb2R1Y2VyQ2xvc2VkUGFyYW1ldGVycztcbn1cblxuLy8gRXhwb3J0IHRoZSB0eXBlIGRlZmluaXRpb24gZm9yIHRoZSBmdW5jdGlvblxuZXhwb3J0IHR5cGUgUHJvZHVjZXJDbG9zZWRUeXBlID0gKG9wdGlvbnM6IFByb2R1Y2VyQ2xvc2VkT3B0aW9ucykgPT4gUHJvbWlzZTx2b2lkPjtcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFByb2R1Y2VyQ2xvc2VkIHtcbiAgLyoqXG4gICAqIEhhbmRsZXMgdGhlIGNsb3Npbmcgb2YgYSBwcm9kdWNlciBhbmQgcmVzaXplcyB2aWRlbyBlbGVtZW50cy5cbiAgICogQHBhcmFtIHtPYmplY3R9IG9wdGlvbnMgLSBUaGUgb3B0aW9ucyBvYmplY3QgY29udGFpbmluZyBuZWNlc3NhcnkgdmFyaWFibGVzLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gb3B0aW9ucy5yZW1vdGVQcm9kdWNlcklkIC0gVGhlIElEIG9mIHRoZSByZW1vdGUgcHJvZHVjZXIuXG4gICAqIEBwYXJhbSB7YW55fSBvcHRpb25zLnBhcmFtZXRlcnMgLSBBZGRpdGlvbmFsIHBhcmFtZXRlcnMgcmVxdWlyZWQgZm9yIHRoZSBmdW5jdGlvbi5cbiAgICogQHJldHVybnMge1Byb21pc2U8dm9pZD59XG4gICAqL1xuICBwcm9kdWNlckNsb3NlZCA9IGFzeW5jICh7XG4gICAgcmVtb3RlUHJvZHVjZXJJZCxcbiAgICBwYXJhbWV0ZXJzLFxuICB9OiBQcm9kdWNlckNsb3NlZE9wdGlvbnMpOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgICBsZXQge1xuICAgICAgY29uc3VtZXJUcmFuc3BvcnRzLFxuICAgICAgc2NyZWVuSWQsXG4gICAgICB1cGRhdGVDb25zdW1lclRyYW5zcG9ydHMsXG5cbiAgICAgIC8vIG1lZGlhc2Z1IGZ1bmN0aW9uc1xuICAgICAgY2xvc2VBbmRSZXNpemUsXG4gICAgfSA9IHBhcmFtZXRlcnM7XG5cbiAgICAvLyBIYW5kbGUgcHJvZHVjZXIgY2xvc2VkXG4gICAgY29uc3QgcHJvZHVjZXJUb0Nsb3NlID0gY29uc3VtZXJUcmFuc3BvcnRzLmZpbmQoXG4gICAgICAodHJhbnNwb3J0RGF0YTogYW55KSA9PiB0cmFuc3BvcnREYXRhLnByb2R1Y2VySWQgPT09IHJlbW90ZVByb2R1Y2VySWQsXG4gICAgKTtcblxuICAgIGlmICghcHJvZHVjZXJUb0Nsb3NlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gQ2hlY2sgaWYgdGhlIElEIG9mIHRoZSBwcm9kdWNlciB0byBjbG9zZSBpcyA9PSBzY3JlZW5JZFxuICAgIGxldCBraW5kOiBzdHJpbmcgPSBwcm9kdWNlclRvQ2xvc2UuY29uc3VtZXIua2luZDtcblxuICAgIGlmIChwcm9kdWNlclRvQ2xvc2UucHJvZHVjZXJJZCA9PSBzY3JlZW5JZCkge1xuICAgICAga2luZCA9ICdzY3JlZW5zaGFyZSc7XG4gICAgfVxuICAgIHRyeSB7XG4gICAgICBhd2FpdCBwcm9kdWNlclRvQ2xvc2VbJ2NvbnN1bWVyVHJhbnNwb3J0J10uY2xvc2UoKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgY2xvc2luZyBjb25zdW1lclRyYW5zcG9ydDonLCBlcnJvcik7XG4gICAgfVxuXG4gICAgdHJ5IHtcbiAgICAgIHByb2R1Y2VyVG9DbG9zZS5jb25zdW1lci5jbG9zZSgpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBjbG9zaW5nIGNvbnN1bWVyOicsIGVycm9yKTtcbiAgICB9XG5cbiAgICBjb25zdW1lclRyYW5zcG9ydHMgPSBjb25zdW1lclRyYW5zcG9ydHMuZmlsdGVyKFxuICAgICAgKHRyYW5zcG9ydERhdGE6IGFueSkgPT4gdHJhbnNwb3J0RGF0YS5wcm9kdWNlcklkICE9PSByZW1vdGVQcm9kdWNlcklkLFxuICAgICk7XG4gICAgdXBkYXRlQ29uc3VtZXJUcmFuc3BvcnRzKGNvbnN1bWVyVHJhbnNwb3J0cyk7XG5cbiAgICAvLyBDbG9zZSBhbmQgcmVzaXplIHRoZSB2aWRlb3NcbiAgICBhd2FpdCBjbG9zZUFuZFJlc2l6ZSh7IHByb2R1Y2VySWQ6IHJlbW90ZVByb2R1Y2VySWQsIGtpbmQ6IGtpbmQsIHBhcmFtZXRlcnM6IHBhcmFtZXRlcnMgfSk7XG4gIH07XG59XG4iXX0=
|
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
export class StartShareScreen {
|
|
4
|
-
/**
|
|
5
|
-
* Starts the screen sharing process.
|
|
6
|
-
*
|
|
7
|
-
* @param {StartShareScreenOptions} options - The options for starting screen sharing.
|
|
8
|
-
* @param {Object} options.parameters - The parameters for screen sharing.
|
|
9
|
-
* @param {boolean} options.parameters.shared - Indicates if the screen is currently being shared.
|
|
10
|
-
* @param {Function} options.parameters.showAlert - Function to show alert messages.
|
|
11
|
-
* @param {Function} options.parameters.updateShared - Function to update the shared state.
|
|
12
|
-
* @param {boolean} options.parameters.onWeb - Indicates if the application is running on a web platform.
|
|
13
|
-
* @param {number} [options.parameters.targetWidth] - The target width for screen sharing.
|
|
14
|
-
* @param {number} [options.parameters.targetHeight] - The target height for screen sharing.
|
|
15
|
-
* @param {Function} options.parameters.streamSuccessScreen - Function to handle successful screen sharing.
|
|
16
|
-
*
|
|
17
|
-
* @returns {Promise<void>} A promise that resolves when the screen sharing process is complete.
|
|
18
|
-
*
|
|
19
|
-
* @throws Will log an error message if there is an issue starting the screen share.
|
|
20
|
-
*/
|
|
21
|
-
startShareScreen = async ({ parameters }) => {
|
|
22
|
-
// start screen share function
|
|
23
|
-
// attempt to start screen share and return true if successful
|
|
24
|
-
let { shared, showAlert, updateShared, onWeb, targetWidth = 1280, targetHeight = 720, streamSuccessScreen, } = parameters;
|
|
25
|
-
try {
|
|
26
|
-
if (!onWeb) {
|
|
27
|
-
showAlert?.({
|
|
28
|
-
message: 'You cannot share screen while on mobile',
|
|
29
|
-
type: 'danger',
|
|
30
|
-
duration: 3000,
|
|
31
|
-
});
|
|
32
|
-
return;
|
|
33
|
-
}
|
|
34
|
-
if (navigator.mediaDevices && navigator.mediaDevices.getDisplayMedia) {
|
|
35
|
-
shared = true;
|
|
36
|
-
await navigator.mediaDevices
|
|
37
|
-
.getDisplayMedia({
|
|
38
|
-
video: {
|
|
39
|
-
width: targetWidth,
|
|
40
|
-
height: targetHeight,
|
|
41
|
-
frameRate: 30,
|
|
42
|
-
},
|
|
43
|
-
audio: false,
|
|
44
|
-
})
|
|
45
|
-
.then(async (stream) => {
|
|
46
|
-
await streamSuccessScreen({ stream, parameters });
|
|
47
|
-
})
|
|
48
|
-
.catch(async () => {
|
|
49
|
-
shared = false;
|
|
50
|
-
showAlert?.({
|
|
51
|
-
message: 'Could not share screen, check and retry',
|
|
52
|
-
type: 'danger',
|
|
53
|
-
duration: 3000,
|
|
54
|
-
});
|
|
55
|
-
});
|
|
56
|
-
}
|
|
57
|
-
else {
|
|
58
|
-
showAlert?.({
|
|
59
|
-
message: 'Could not share screen, check and retry',
|
|
60
|
-
type: 'danger',
|
|
61
|
-
duration: 3000,
|
|
62
|
-
});
|
|
63
|
-
}
|
|
64
|
-
// update the shared variable
|
|
65
|
-
updateShared(shared);
|
|
66
|
-
}
|
|
67
|
-
catch (error) {
|
|
68
|
-
console.log('Error starting screen share', error);
|
|
69
|
-
}
|
|
70
|
-
};
|
|
71
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: StartShareScreen, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
72
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: StartShareScreen, providedIn: 'root' });
|
|
73
|
-
}
|
|
74
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: StartShareScreen, decorators: [{
|
|
75
|
-
type: Injectable,
|
|
76
|
-
args: [{
|
|
77
|
-
providedIn: 'root',
|
|
78
|
-
}]
|
|
79
|
-
}] });
|
|
80
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhcnQtc2hhcmUtc2NyZWVuLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tZWRpYXNmdS1hbmd1bGFyL3NyYy9saWIvY29uc3VtZXJzL3N0YXJ0LXNoYXJlLXNjcmVlbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBeUIzQyxNQUFNLE9BQU8sZ0JBQWdCO0lBQzNCOzs7Ozs7Ozs7Ozs7Ozs7O09BZ0JHO0lBQ0gsZ0JBQWdCLEdBQUcsS0FBSyxFQUFFLEVBQUUsVUFBVSxFQUEyQixFQUFpQixFQUFFO1FBQ2xGLDhCQUE4QjtRQUM5Qiw4REFBOEQ7UUFFOUQsSUFBSSxFQUNGLE1BQU0sRUFDTixTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFDTCxXQUFXLEdBQUcsSUFBSSxFQUNsQixZQUFZLEdBQUcsR0FBRyxFQUNsQixtQkFBbUIsR0FDcEIsR0FBRyxVQUFVLENBQUM7UUFFZixJQUFJLENBQUM7WUFDSCxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQ1gsU0FBUyxFQUFFLENBQUM7b0JBQ1YsT0FBTyxFQUFFLHlDQUF5QztvQkFDbEQsSUFBSSxFQUFFLFFBQVE7b0JBQ2QsUUFBUSxFQUFFLElBQUk7aUJBQ2YsQ0FBQyxDQUFDO2dCQUNILE9BQU87WUFDVCxDQUFDO1lBRUQsSUFBSSxTQUFTLENBQUMsWUFBWSxJQUFJLFNBQVMsQ0FBQyxZQUFZLENBQUMsZUFBZSxFQUFFLENBQUM7Z0JBQ3JFLE1BQU0sR0FBRyxJQUFJLENBQUM7Z0JBQ2QsTUFBTSxTQUFTLENBQUMsWUFBWTtxQkFDekIsZUFBZSxDQUFDO29CQUNmLEtBQUssRUFBRTt3QkFDTCxLQUFLLEVBQUUsV0FBVzt3QkFDbEIsTUFBTSxFQUFFLFlBQVk7d0JBQ3BCLFNBQVMsRUFBRSxFQUFFO3FCQUNkO29CQUNELEtBQUssRUFBRSxLQUFLO2lCQUNiLENBQUM7cUJBQ0QsSUFBSSxDQUFDLEtBQUssRUFBRSxNQUFtQixFQUFFLEVBQUU7b0JBQ2xDLE1BQU0sbUJBQW1CLENBQUMsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQztnQkFDcEQsQ0FBQyxDQUFDO3FCQUNELEtBQUssQ0FBQyxLQUFLLElBQUksRUFBRTtvQkFDaEIsTUFBTSxHQUFHLEtBQUssQ0FBQztvQkFDZixTQUFTLEVBQUUsQ0FBQzt3QkFDVixPQUFPLEVBQUUseUNBQXlDO3dCQUNsRCxJQUFJLEVBQUUsUUFBUTt3QkFDZCxRQUFRLEVBQUUsSUFBSTtxQkFDZixDQUFDLENBQUM7Z0JBQ0wsQ0FBQyxDQUFDLENBQUM7WUFDUCxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sU0FBUyxFQUFFLENBQUM7b0JBQ1YsT0FBTyxFQUFFLHlDQUF5QztvQkFDbEQsSUFBSSxFQUFFLFFBQVE7b0JBQ2QsUUFBUSxFQUFFLElBQUk7aUJBQ2YsQ0FBQyxDQUFDO1lBQ0wsQ0FBQztZQUVELDZCQUE2QjtZQUM3QixZQUFZLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDdkIsQ0FBQztRQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7WUFDZixPQUFPLENBQUMsR0FBRyxDQUFDLDZCQUE2QixFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3BELENBQUM7SUFDSCxDQUFDLENBQUM7dUdBN0VTLGdCQUFnQjsyR0FBaEIsZ0JBQWdCLGNBRmYsTUFBTTs7MkZBRVAsZ0JBQWdCO2tCQUg1QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN0cmVhbVN1Y2Nlc3NTY3JlZW5UeXBlLCBTdHJlYW1TdWNjZXNzU2NyZWVuUGFyYW1ldGVycywgU2hvd0FsZXJ0IH0gZnJvbSAnLi4vQHR5cGVzL3R5cGVzJztcbmV4cG9ydCBpbnRlcmZhY2UgU3RhcnRTaGFyZVNjcmVlblBhcmFtZXRlcnMgZXh0ZW5kcyBTdHJlYW1TdWNjZXNzU2NyZWVuUGFyYW1ldGVycyB7XG4gIHNoYXJlZDogYm9vbGVhbjtcbiAgc2hvd0FsZXJ0PzogU2hvd0FsZXJ0O1xuICB1cGRhdGVTaGFyZWQ6IChzaGFyZWQ6IGJvb2xlYW4pID0+IHZvaWQ7XG4gIG9uV2ViOiBib29sZWFuO1xuICB0YXJnZXRXaWR0aD86IG51bWJlcjtcbiAgdGFyZ2V0SGVpZ2h0PzogbnVtYmVyO1xuXG4gIC8vIG1lZGlhc2Z1IGZ1bmN0aW9uc1xuICBzdHJlYW1TdWNjZXNzU2NyZWVuOiBTdHJlYW1TdWNjZXNzU2NyZWVuVHlwZTtcbiAgW2tleTogc3RyaW5nXTogYW55O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFN0YXJ0U2hhcmVTY3JlZW5PcHRpb25zIHtcbiAgcGFyYW1ldGVyczogU3RhcnRTaGFyZVNjcmVlblBhcmFtZXRlcnM7XG59XG5cbi8vIEV4cG9ydCB0aGUgdHlwZSBkZWZpbml0aW9uIGZvciB0aGUgZnVuY3Rpb25cbmV4cG9ydCB0eXBlIFN0YXJ0U2hhcmVTY3JlZW5UeXBlID0gKG9wdGlvbnM6IFN0YXJ0U2hhcmVTY3JlZW5PcHRpb25zKSA9PiBQcm9taXNlPHZvaWQ+O1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgU3RhcnRTaGFyZVNjcmVlbiB7XG4gIC8qKlxuICAgKiBTdGFydHMgdGhlIHNjcmVlbiBzaGFyaW5nIHByb2Nlc3MuXG4gICAqXG4gICAqIEBwYXJhbSB7U3RhcnRTaGFyZVNjcmVlbk9wdGlvbnN9IG9wdGlvbnMgLSBUaGUgb3B0aW9ucyBmb3Igc3RhcnRpbmcgc2NyZWVuIHNoYXJpbmcuXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRpb25zLnBhcmFtZXRlcnMgLSBUaGUgcGFyYW1ldGVycyBmb3Igc2NyZWVuIHNoYXJpbmcuXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gb3B0aW9ucy5wYXJhbWV0ZXJzLnNoYXJlZCAtIEluZGljYXRlcyBpZiB0aGUgc2NyZWVuIGlzIGN1cnJlbnRseSBiZWluZyBzaGFyZWQuXG4gICAqIEBwYXJhbSB7RnVuY3Rpb259IG9wdGlvbnMucGFyYW1ldGVycy5zaG93QWxlcnQgLSBGdW5jdGlvbiB0byBzaG93IGFsZXJ0IG1lc3NhZ2VzLlxuICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBvcHRpb25zLnBhcmFtZXRlcnMudXBkYXRlU2hhcmVkIC0gRnVuY3Rpb24gdG8gdXBkYXRlIHRoZSBzaGFyZWQgc3RhdGUuXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gb3B0aW9ucy5wYXJhbWV0ZXJzLm9uV2ViIC0gSW5kaWNhdGVzIGlmIHRoZSBhcHBsaWNhdGlvbiBpcyBydW5uaW5nIG9uIGEgd2ViIHBsYXRmb3JtLlxuICAgKiBAcGFyYW0ge251bWJlcn0gW29wdGlvbnMucGFyYW1ldGVycy50YXJnZXRXaWR0aF0gLSBUaGUgdGFyZ2V0IHdpZHRoIGZvciBzY3JlZW4gc2hhcmluZy5cbiAgICogQHBhcmFtIHtudW1iZXJ9IFtvcHRpb25zLnBhcmFtZXRlcnMudGFyZ2V0SGVpZ2h0XSAtIFRoZSB0YXJnZXQgaGVpZ2h0IGZvciBzY3JlZW4gc2hhcmluZy5cbiAgICogQHBhcmFtIHtGdW5jdGlvbn0gb3B0aW9ucy5wYXJhbWV0ZXJzLnN0cmVhbVN1Y2Nlc3NTY3JlZW4gLSBGdW5jdGlvbiB0byBoYW5kbGUgc3VjY2Vzc2Z1bCBzY3JlZW4gc2hhcmluZy5cbiAgICpcbiAgICogQHJldHVybnMge1Byb21pc2U8dm9pZD59IEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIHNjcmVlbiBzaGFyaW5nIHByb2Nlc3MgaXMgY29tcGxldGUuXG4gICAqXG4gICAqIEB0aHJvd3MgV2lsbCBsb2cgYW4gZXJyb3IgbWVzc2FnZSBpZiB0aGVyZSBpcyBhbiBpc3N1ZSBzdGFydGluZyB0aGUgc2NyZWVuIHNoYXJlLlxuICAgKi9cbiAgc3RhcnRTaGFyZVNjcmVlbiA9IGFzeW5jICh7IHBhcmFtZXRlcnMgfTogU3RhcnRTaGFyZVNjcmVlbk9wdGlvbnMpOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgICAvLyBzdGFydCBzY3JlZW4gc2hhcmUgZnVuY3Rpb25cbiAgICAvLyBhdHRlbXB0IHRvIHN0YXJ0IHNjcmVlbiBzaGFyZSBhbmQgcmV0dXJuIHRydWUgaWYgc3VjY2Vzc2Z1bFxuXG4gICAgbGV0IHtcbiAgICAgIHNoYXJlZCxcbiAgICAgIHNob3dBbGVydCxcbiAgICAgIHVwZGF0ZVNoYXJlZCxcbiAgICAgIG9uV2ViLFxuICAgICAgdGFyZ2V0V2lkdGggPSAxMjgwLFxuICAgICAgdGFyZ2V0SGVpZ2h0ID0gNzIwLFxuICAgICAgc3RyZWFtU3VjY2Vzc1NjcmVlbixcbiAgICB9ID0gcGFyYW1ldGVycztcblxuICAgIHRyeSB7XG4gICAgICBpZiAoIW9uV2ViKSB7XG4gICAgICAgIHNob3dBbGVydD8uKHtcbiAgICAgICAgICBtZXNzYWdlOiAnWW91IGNhbm5vdCBzaGFyZSBzY3JlZW4gd2hpbGUgb24gbW9iaWxlJyxcbiAgICAgICAgICB0eXBlOiAnZGFuZ2VyJyxcbiAgICAgICAgICBkdXJhdGlvbjogMzAwMCxcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKG5hdmlnYXRvci5tZWRpYURldmljZXMgJiYgbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXREaXNwbGF5TWVkaWEpIHtcbiAgICAgICAgc2hhcmVkID0gdHJ1ZTtcbiAgICAgICAgYXdhaXQgbmF2aWdhdG9yLm1lZGlhRGV2aWNlc1xuICAgICAgICAgIC5nZXREaXNwbGF5TWVkaWEoe1xuICAgICAgICAgICAgdmlkZW86IHtcbiAgICAgICAgICAgICAgd2lkdGg6IHRhcmdldFdpZHRoLFxuICAgICAgICAgICAgICBoZWlnaHQ6IHRhcmdldEhlaWdodCxcbiAgICAgICAgICAgICAgZnJhbWVSYXRlOiAzMCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBhdWRpbzogZmFsc2UsXG4gICAgICAgICAgfSlcbiAgICAgICAgICAudGhlbihhc3luYyAoc3RyZWFtOiBNZWRpYVN0cmVhbSkgPT4ge1xuICAgICAgICAgICAgYXdhaXQgc3RyZWFtU3VjY2Vzc1NjcmVlbih7IHN0cmVhbSwgcGFyYW1ldGVycyB9KTtcbiAgICAgICAgICB9KVxuICAgICAgICAgIC5jYXRjaChhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICBzaGFyZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIHNob3dBbGVydD8uKHtcbiAgICAgICAgICAgICAgbWVzc2FnZTogJ0NvdWxkIG5vdCBzaGFyZSBzY3JlZW4sIGNoZWNrIGFuZCByZXRyeScsXG4gICAgICAgICAgICAgIHR5cGU6ICdkYW5nZXInLFxuICAgICAgICAgICAgICBkdXJhdGlvbjogMzAwMCxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc2hvd0FsZXJ0Py4oe1xuICAgICAgICAgIG1lc3NhZ2U6ICdDb3VsZCBub3Qgc2hhcmUgc2NyZWVuLCBjaGVjayBhbmQgcmV0cnknLFxuICAgICAgICAgIHR5cGU6ICdkYW5nZXInLFxuICAgICAgICAgIGR1cmF0aW9uOiAzMDAwLFxuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgLy8gdXBkYXRlIHRoZSBzaGFyZWQgdmFyaWFibGVcbiAgICAgIHVwZGF0ZVNoYXJlZChzaGFyZWQpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmxvZygnRXJyb3Igc3RhcnRpbmcgc2NyZWVuIHNoYXJlJywgZXJyb3IpO1xuICAgIH1cbiAgfTtcbn1cbiJdfQ==
|