mediasfu-angular 1.0.2 → 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 +678 -578
- package/dist/README.md +677 -578
- package/dist/fesm2022/mediasfu-angular.mjs +5551 -2944
- package/dist/fesm2022/mediasfu-angular.mjs.map +1 -1
- package/dist/lib/@types/types.d.ts +22 -1
- package/dist/lib/components/breakout-components/breakout-rooms-modal.component.d.ts +1 -0
- package/dist/lib/components/mediasfu-components/mediasfu-broadcast.component.d.ts +153 -61
- package/dist/lib/components/mediasfu-components/mediasfu-chat.component.d.ts +154 -66
- package/dist/lib/components/mediasfu-components/mediasfu-conference.component.d.ts +190 -76
- package/dist/lib/components/mediasfu-components/mediasfu-generic.component.d.ts +184 -70
- package/dist/lib/components/mediasfu-components/mediasfu-webinar.component.d.ts +192 -78
- package/dist/lib/components/menu-components/menu-modal/menu-modal.component.d.ts +6 -1
- package/dist/lib/components/menu-components/share-buttons-component/share-buttons-component.component.d.ts +5 -2
- package/dist/lib/components/misc-components/confirm-here-modal/confirm-here-modal.component.d.ts +4 -2
- package/dist/lib/components/misc-components/pre-join-page/pre-join-page.component.d.ts +71 -66
- package/dist/lib/components/misc-components/share-event-modal/share-event-modal.component.d.ts +5 -1
- package/dist/lib/consumers/connect-local-ips.service.d.ts +81 -0
- package/dist/lib/consumers/connect-send-transport-audio.service.d.ts +43 -11
- package/dist/lib/consumers/connect-send-transport-screen.service.d.ts +87 -46
- package/dist/lib/consumers/connect-send-transport-video.service.d.ts +89 -43
- package/dist/lib/consumers/connect-send-transport.service.d.ts +5 -1
- package/dist/lib/consumers/create-send-transport.service.d.ts +130 -40
- package/dist/lib/consumers/disconnect-send-transport-audio.service.d.ts +77 -40
- package/dist/lib/consumers/disconnect-send-transport-screen.service.d.ts +48 -14
- package/dist/lib/consumers/disconnect-send-transport-video.service.d.ts +81 -44
- package/dist/lib/consumers/get-piped-producers-alt.service.d.ts +5 -1
- package/dist/lib/consumers/receive-all-piped-transports.service.d.ts +5 -1
- package/dist/lib/consumers/resume-send-transport-audio.service.d.ts +54 -21
- package/dist/lib/consumers/stream-success-audio-switch.service.d.ts +124 -40
- package/dist/lib/consumers/trigger.service.d.ts +3 -0
- package/dist/lib/methods/exit-methods/confirm-exit.service.d.ts +5 -1
- package/dist/lib/methods/recording-methods/start-recording.service.d.ts +3 -0
- package/dist/lib/methods/recording-methods/stop-recording.service.d.ts +4 -1
- package/dist/lib/methods/recording-methods/update-recording.service.d.ts +3 -0
- package/dist/lib/methods/stream-methods/click-audio.service.d.ts +3 -0
- package/dist/lib/methods/utils/check-limits-and-make-request.service.d.ts +23 -0
- package/dist/lib/methods/utils/create-response-join-room.util.d.ts +33 -0
- package/dist/lib/methods/utils/create-room-on-media-sfu.service.d.ts +25 -0
- package/dist/lib/methods/utils/initial-values.util.d.ts +6 -0
- package/dist/lib/methods/utils/join-room-on-media-sfu.service.d.ts +52 -0
- package/dist/lib/methods/whiteboard-methods/capture-canvas-stream.service.d.ts +37 -20
- package/dist/lib/producers/producer-emits/join-local-room.service.d.ts +125 -0
- package/dist/lib/producers/socket-receive-methods/all-members-rest.service.d.ts +7 -2
- package/dist/lib/producers/socket-receive-methods/all-members.service.d.ts +7 -2
- package/dist/lib/producers/socket-receive-methods/disconnect-user-self.service.d.ts +5 -1
- package/dist/lib/sockets/socket-manager.service.d.ts +90 -0
- package/dist/public-api.d.ts +11 -1
- package/package.json +17 -20
- package/dist/esm2022/lib/@types/types.mjs +0 -2
- package/dist/esm2022/lib/components/background-components/background-modal/background-modal.component.mjs +0 -799
- package/dist/esm2022/lib/components/breakout-components/breakout-rooms-modal.component.mjs +0 -366
- package/dist/esm2022/lib/components/breakout-components/edit-room-modal/edit-room-modal.component.mjs +0 -143
- package/dist/esm2022/lib/components/breakout-components/room-list/room-list.component.mjs +0 -40
- package/dist/esm2022/lib/components/co-host-components/co-host-modal/co-host-modal.component.mjs +0 -245
- package/dist/esm2022/lib/components/display-components/alert-component/alert.component.component.mjs +0 -79
- package/dist/esm2022/lib/components/display-components/audio-card/audio-card.component.mjs +0 -356
- package/dist/esm2022/lib/components/display-components/audio-grid/audio-grid.component.mjs +0 -80
- package/dist/esm2022/lib/components/display-components/card-video-display/card-video-display.component.mjs +0 -129
- package/dist/esm2022/lib/components/display-components/control-buttons-alt-component/control-buttons-alt-component.component.mjs +0 -138
- package/dist/esm2022/lib/components/display-components/control-buttons-component/control-buttons-component.component.mjs +0 -231
- package/dist/esm2022/lib/components/display-components/control-buttons-component-touch/control-buttons-component-touch.component.mjs +0 -282
- package/dist/esm2022/lib/components/display-components/control-widgets/menu-participants-widget.component.mjs +0 -82
- package/dist/esm2022/lib/components/display-components/control-widgets/menu-record-widget.component.mjs +0 -65
- package/dist/esm2022/lib/components/display-components/control-widgets/menu-widget.component.mjs +0 -137
- package/dist/esm2022/lib/components/display-components/control-widgets/message-widget.component.mjs +0 -137
- package/dist/esm2022/lib/components/display-components/control-widgets/record-timer-widget.component.mjs +0 -51
- package/dist/esm2022/lib/components/display-components/control-widgets/screenshare-widget.component.mjs +0 -101
- package/dist/esm2022/lib/components/display-components/flexible-grid/flexible-grid.component.mjs +0 -151
- package/dist/esm2022/lib/components/display-components/flexible-video/flexible-video.component.mjs +0 -250
- package/dist/esm2022/lib/components/display-components/loading-modal/loading-modal.component.mjs +0 -102
- package/dist/esm2022/lib/components/display-components/main-aspect-component/main-aspect-component.component.mjs +0 -140
- package/dist/esm2022/lib/components/display-components/main-container-component/main-container-component.component.mjs +0 -131
- package/dist/esm2022/lib/components/display-components/main-grid-component/main-grid-component.component.mjs +0 -120
- package/dist/esm2022/lib/components/display-components/main-screen-component/main-screen-component.component.mjs +0 -201
- package/dist/esm2022/lib/components/display-components/meeting-progress-timer/meeting-progress-timer.component.mjs +0 -115
- package/dist/esm2022/lib/components/display-components/mini-audio/mini-audio.component.mjs +0 -319
- package/dist/esm2022/lib/components/display-components/mini-card/mini-card.component.mjs +0 -161
- package/dist/esm2022/lib/components/display-components/mini-card-audio/mini-card-audio.component.mjs +0 -230
- package/dist/esm2022/lib/components/display-components/other-grid-component/other-grid-component.component.mjs +0 -126
- package/dist/esm2022/lib/components/display-components/pagination/pagination.component.mjs +0 -334
- package/dist/esm2022/lib/components/display-components/sub-aspect-component/sub-aspect-component.component.mjs +0 -112
- package/dist/esm2022/lib/components/display-components/video-card/video-card.component.mjs +0 -392
- package/dist/esm2022/lib/components/display-settings-components/display-settings-modal.component.mjs +0 -106
- package/dist/esm2022/lib/components/event-settings-components/event-settings-modal/event-settings-modal.component.mjs +0 -199
- package/dist/esm2022/lib/components/exit-components/confirm-exit-modal/confirm-exit-modal.component.mjs +0 -132
- package/dist/esm2022/lib/components/media-settings-components/media-settings-modal/media-settings-modal.component.mjs +0 -220
- package/dist/esm2022/lib/components/mediasfu-components/mediasfu-broadcast.component.mjs +0 -4238
- package/dist/esm2022/lib/components/mediasfu-components/mediasfu-chat.component.mjs +0 -3754
- package/dist/esm2022/lib/components/mediasfu-components/mediasfu-conference.component.mjs +0 -5071
- package/dist/esm2022/lib/components/mediasfu-components/mediasfu-generic.component.mjs +0 -5380
- package/dist/esm2022/lib/components/mediasfu-components/mediasfu-webinar.component.mjs +0 -5068
- package/dist/esm2022/lib/components/menu-components/custom-buttons/custom-buttons.component.mjs +0 -83
- package/dist/esm2022/lib/components/menu-components/meeting-id-component/meeting-id-component.component.mjs +0 -27
- package/dist/esm2022/lib/components/menu-components/meeting-passcode-component/meeting-passcode-component.component.mjs +0 -27
- package/dist/esm2022/lib/components/menu-components/menu-modal/menu-modal.component.mjs +0 -125
- package/dist/esm2022/lib/components/menu-components/share-buttons-component/share-buttons-component.component.mjs +0 -106
- package/dist/esm2022/lib/components/message-components/message-panel/message-panel.component.mjs +0 -228
- package/dist/esm2022/lib/components/message-components/messages-modal/messages-modal.component.mjs +0 -277
- package/dist/esm2022/lib/components/misc-components/confirm-here-modal/confirm-here-modal.component.mjs +0 -130
- package/dist/esm2022/lib/components/misc-components/pre-join-page/pre-join-page.component.mjs +0 -343
- package/dist/esm2022/lib/components/misc-components/share-event-modal/share-event-modal.component.mjs +0 -127
- package/dist/esm2022/lib/components/misc-components/welcome-page/welcome-page.component.mjs +0 -241
- package/dist/esm2022/lib/components/participants-components/participant-list/participant-list.component.mjs +0 -82
- package/dist/esm2022/lib/components/participants-components/participant-list-item/participant-list-item.component.mjs +0 -139
- package/dist/esm2022/lib/components/participants-components/participant-list-others/participant-list-others.component.mjs +0 -40
- package/dist/esm2022/lib/components/participants-components/participant-list-others-item/participant-list-others-item.component.mjs +0 -60
- package/dist/esm2022/lib/components/participants-components/participants-modal/participants-modal.component.mjs +0 -124
- package/dist/esm2022/lib/components/polls-components/poll-modal/poll-modal.component.mjs +0 -201
- package/dist/esm2022/lib/components/recording-components/advanced-panel-component/advanced-panel-components.component.mjs +0 -92
- package/dist/esm2022/lib/components/recording-components/recording-modal/recording-modal.component.mjs +0 -133
- package/dist/esm2022/lib/components/recording-components/standard-panel-component/standard-panel-component.component.mjs +0 -90
- package/dist/esm2022/lib/components/requests-components/render-request-component/render-request-component.component.mjs +0 -81
- package/dist/esm2022/lib/components/requests-components/requests-modal/requests-modal.component.mjs +0 -147
- package/dist/esm2022/lib/components/screenboard-components/screenboard/screenboard.component.mjs +0 -627
- package/dist/esm2022/lib/components/screenboard-components/screenboard-modal/screenboard-modal.component.mjs +0 -391
- package/dist/esm2022/lib/components/waiting-components/waiting-room-modal.component.mjs +0 -201
- package/dist/esm2022/lib/components/whiteboard-components/configure-whiteboard-modal/configure-whiteboard-modal.component.mjs +0 -286
- package/dist/esm2022/lib/components/whiteboard-components/whiteboard/whiteboard.component.mjs +0 -1833
- package/dist/esm2022/lib/consumers/add-videos-grid.service.mjs +0 -345
- package/dist/esm2022/lib/consumers/auto-adjust.service.mjs +0 -109
- package/dist/esm2022/lib/consumers/calculate-rows-and-columns.service.mjs +0 -60
- package/dist/esm2022/lib/consumers/change-vids.service.mjs +0 -551
- package/dist/esm2022/lib/consumers/check-grid.service.mjs +0 -93
- package/dist/esm2022/lib/consumers/check-permission.service.mjs +0 -105
- package/dist/esm2022/lib/consumers/check-screen-share.service.mjs +0 -106
- package/dist/esm2022/lib/consumers/close-and-resize.service.mjs +0 -331
- package/dist/esm2022/lib/consumers/compare-active-names.service.mjs +0 -106
- package/dist/esm2022/lib/consumers/compare-screen-states.service.mjs +0 -98
- package/dist/esm2022/lib/consumers/connect-ips.service.mjs +0 -154
- package/dist/esm2022/lib/consumers/connect-recv-transport.service.mjs +0 -146
- package/dist/esm2022/lib/consumers/connect-send-transport-audio.service.mjs +0 -84
- package/dist/esm2022/lib/consumers/connect-send-transport-screen.service.mjs +0 -102
- package/dist/esm2022/lib/consumers/connect-send-transport-video.service.mjs +0 -99
- package/dist/esm2022/lib/consumers/connect-send-transport.service.mjs +0 -140
- package/dist/esm2022/lib/consumers/consumer-resume.service.mjs +0 -368
- package/dist/esm2022/lib/consumers/control-media.service.mjs +0 -113
- package/dist/esm2022/lib/consumers/create-send-transport.service.mjs +0 -172
- package/dist/esm2022/lib/consumers/disconnect-send-transport-audio.service.mjs +0 -108
- package/dist/esm2022/lib/consumers/disconnect-send-transport-screen.service.mjs +0 -84
- package/dist/esm2022/lib/consumers/disconnect-send-transport-video.service.mjs +0 -101
- package/dist/esm2022/lib/consumers/disp-streams.service.mjs +0 -513
- package/dist/esm2022/lib/consumers/generate-page-content.service.mjs +0 -106
- package/dist/esm2022/lib/consumers/get-estimate.service.mjs +0 -120
- package/dist/esm2022/lib/consumers/get-piped-producers-alt.service.mjs +0 -82
- package/dist/esm2022/lib/consumers/get-producers-piped.service.mjs +0 -79
- package/dist/esm2022/lib/consumers/get-videos.service.mjs +0 -91
- package/dist/esm2022/lib/consumers/mix-streams.service.mjs +0 -95
- package/dist/esm2022/lib/consumers/on-screen-changes.service.mjs +0 -103
- package/dist/esm2022/lib/consumers/prepopulate-user-media.service.mjs +0 -541
- package/dist/esm2022/lib/consumers/process-consumer-transports-audio.service.mjs +0 -101
- package/dist/esm2022/lib/consumers/process-consumer-transports.service.mjs +0 -128
- package/dist/esm2022/lib/consumers/re-port.service.mjs +0 -114
- package/dist/esm2022/lib/consumers/re-update-inter.service.mjs +0 -239
- package/dist/esm2022/lib/consumers/readjust.service.mjs +0 -173
- package/dist/esm2022/lib/consumers/receive-all-piped-transports.service.mjs +0 -87
- package/dist/esm2022/lib/consumers/receive-room-messages.service.mjs +0 -69
- package/dist/esm2022/lib/consumers/reorder-streams.service.mjs +0 -239
- package/dist/esm2022/lib/consumers/request-screen-share.service.mjs +0 -101
- package/dist/esm2022/lib/consumers/resume-pause-audio-streams.service.mjs +0 -150
- package/dist/esm2022/lib/consumers/resume-pause-streams.service.mjs +0 -103
- package/dist/esm2022/lib/consumers/resume-send-transport-audio.service.mjs +0 -91
- package/dist/esm2022/lib/consumers/signal-new-consumer-transport.service.mjs +0 -136
- package/dist/esm2022/lib/consumers/socket-receive-methods/join-consume-room.service.mjs +0 -96
- package/dist/esm2022/lib/consumers/socket-receive-methods/new-pipe-producer.service.mjs +0 -100
- package/dist/esm2022/lib/consumers/socket-receive-methods/producer-closed.service.mjs +0 -78
- package/dist/esm2022/lib/consumers/start-share-screen.service.mjs +0 -120
- package/dist/esm2022/lib/consumers/stop-share-screen.service.mjs +0 -175
- package/dist/esm2022/lib/consumers/stream-success-audio-switch.service.mjs +0 -185
- package/dist/esm2022/lib/consumers/stream-success-audio.service.mjs +0 -210
- package/dist/esm2022/lib/consumers/stream-success-screen.service.mjs +0 -193
- package/dist/esm2022/lib/consumers/stream-success-video.service.mjs +0 -260
- package/dist/esm2022/lib/consumers/switch-user-audio.service.mjs +0 -120
- package/dist/esm2022/lib/consumers/switch-user-video-alt.service.mjs +0 -260
- package/dist/esm2022/lib/consumers/switch-user-video.service.mjs +0 -172
- package/dist/esm2022/lib/consumers/trigger.service.mjs +0 -210
- package/dist/esm2022/lib/consumers/update-mini-cards-grid.service.mjs +0 -135
- package/dist/esm2022/lib/consumers/update-participant-audio-decibels.service.mjs +0 -84
- package/dist/esm2022/lib/methods/background-methods/launch-background.service.mjs +0 -48
- package/dist/esm2022/lib/methods/breakout-room-methods/breakout-room-updated.service.mjs +0 -183
- package/dist/esm2022/lib/methods/breakout-room-methods/launch-breakout-rooms.service.mjs +0 -46
- package/dist/esm2022/lib/methods/co-host-methods/launch-co-host.service.mjs +0 -46
- package/dist/esm2022/lib/methods/co-host-methods/modify-co-host-settings.service.mjs +0 -104
- package/dist/esm2022/lib/methods/display-settings-methods/launch-display-settings.service.mjs +0 -46
- package/dist/esm2022/lib/methods/display-settings-methods/modify-display-settings.service.mjs +0 -194
- package/dist/esm2022/lib/methods/exit-methods/confirm-exit.service.mjs +0 -52
- package/dist/esm2022/lib/methods/exit-methods/launch-confirm-exit.service.mjs +0 -42
- package/dist/esm2022/lib/methods/media-settings-methods/launch-media-settings.service.mjs +0 -85
- package/dist/esm2022/lib/methods/menu-methods/launch-menu-modal.service.mjs +0 -44
- package/dist/esm2022/lib/methods/message-methods/launch-messages.service.mjs +0 -45
- package/dist/esm2022/lib/methods/message-methods/send-message.service.mjs +0 -143
- package/dist/esm2022/lib/methods/participants-methods/launch-participants.service.mjs +0 -47
- package/dist/esm2022/lib/methods/participants-methods/message-participants.service.mjs +0 -98
- package/dist/esm2022/lib/methods/participants-methods/mute-participants.service.mjs +0 -96
- package/dist/esm2022/lib/methods/participants-methods/remove-participants.service.mjs +0 -107
- package/dist/esm2022/lib/methods/polls-methods/handle-create-poll.service.mjs +0 -75
- package/dist/esm2022/lib/methods/polls-methods/handle-end-poll.service.mjs +0 -72
- package/dist/esm2022/lib/methods/polls-methods/handle-vote-poll.service.mjs +0 -83
- package/dist/esm2022/lib/methods/polls-methods/launch-poll.service.mjs +0 -43
- package/dist/esm2022/lib/methods/polls-methods/poll-updated.service.mjs +0 -95
- package/dist/esm2022/lib/methods/recording-methods/check-pause-state.service.mjs +0 -69
- package/dist/esm2022/lib/methods/recording-methods/check-resume-state.service.mjs +0 -56
- package/dist/esm2022/lib/methods/recording-methods/confirm-recording.service.mjs +0 -278
- package/dist/esm2022/lib/methods/recording-methods/launch-recording.service.mjs +0 -125
- package/dist/esm2022/lib/methods/recording-methods/record-pause-timer.service.mjs +0 -67
- package/dist/esm2022/lib/methods/recording-methods/record-resume-timer.service.mjs +0 -130
- package/dist/esm2022/lib/methods/recording-methods/record-start-timer.service.mjs +0 -134
- package/dist/esm2022/lib/methods/recording-methods/record-update-timer.service.mjs +0 -80
- package/dist/esm2022/lib/methods/recording-methods/start-recording.service.mjs +0 -197
- package/dist/esm2022/lib/methods/recording-methods/stop-recording.service.mjs +0 -112
- package/dist/esm2022/lib/methods/recording-methods/update-recording.service.mjs +0 -272
- package/dist/esm2022/lib/methods/requests-methods/launch-requests.service.mjs +0 -51
- package/dist/esm2022/lib/methods/requests-methods/respond-to-requests.service.mjs +0 -84
- package/dist/esm2022/lib/methods/settings-methods/launch-settings.service.mjs +0 -51
- package/dist/esm2022/lib/methods/settings-methods/modify-settings.service.mjs +0 -109
- package/dist/esm2022/lib/methods/stream-methods/click-audio.service.mjs +0 -275
- package/dist/esm2022/lib/methods/stream-methods/click-chat.service.mjs +0 -75
- package/dist/esm2022/lib/methods/stream-methods/click-screen-share.service.mjs +0 -178
- package/dist/esm2022/lib/methods/stream-methods/click-video.service.mjs +0 -271
- package/dist/esm2022/lib/methods/stream-methods/switch-audio.service.mjs +0 -80
- package/dist/esm2022/lib/methods/stream-methods/switch-video-alt.service.mjs +0 -116
- package/dist/esm2022/lib/methods/stream-methods/switch-video.service.mjs +0 -132
- package/dist/esm2022/lib/methods/utils/format-number.service.mjs +0 -57
- package/dist/esm2022/lib/methods/utils/generate-random-messages.service.mjs +0 -120
- package/dist/esm2022/lib/methods/utils/generate-random-participants.service.mjs +0 -126
- package/dist/esm2022/lib/methods/utils/generate-random-polls.service.mjs +0 -78
- package/dist/esm2022/lib/methods/utils/generate-random-request-list.service.mjs +0 -90
- package/dist/esm2022/lib/methods/utils/generate-random-waiting-room-list.service.mjs +0 -59
- package/dist/esm2022/lib/methods/utils/get-modal-position.util.mjs +0 -32
- package/dist/esm2022/lib/methods/utils/get-overlay-position.util.mjs +0 -31
- package/dist/esm2022/lib/methods/utils/initial-values.util.mjs +0 -379
- package/dist/esm2022/lib/methods/utils/meeting-timer/start-meeting-progress-timer.service.mjs +0 -96
- package/dist/esm2022/lib/methods/utils/mini-audio-player/mini-audio-player.component.mjs +0 -315
- package/dist/esm2022/lib/methods/utils/producer/a-params.service.mjs +0 -58
- package/dist/esm2022/lib/methods/utils/producer/h-params.service.mjs +0 -87
- package/dist/esm2022/lib/methods/utils/producer/screen-params.service.mjs +0 -61
- package/dist/esm2022/lib/methods/utils/producer/v-params.service.mjs +0 -87
- package/dist/esm2022/lib/methods/utils/producer/video-capture-constraints.service.mjs +0 -84
- package/dist/esm2022/lib/methods/utils/sleep.util.mjs +0 -17
- package/dist/esm2022/lib/methods/utils/sound-player.service.mjs +0 -63
- package/dist/esm2022/lib/methods/utils/validate-alphanumeric.service.mjs +0 -49
- package/dist/esm2022/lib/methods/waiting-methods/launch-waiting.service.mjs +0 -41
- package/dist/esm2022/lib/methods/waiting-methods/respond-to-waiting.service.mjs +0 -69
- package/dist/esm2022/lib/methods/whiteboard-methods/capture-canvas-stream.service.mjs +0 -98
- package/dist/esm2022/lib/methods/whiteboard-methods/launch-configure-whiteboard.service.mjs +0 -44
- package/dist/esm2022/lib/producer-client/producer-client-emits/create-device-client.service.mjs +0 -74
- package/dist/esm2022/lib/producer-client/producer-client-emits/join-room-client.service.mjs +0 -96
- package/dist/esm2022/lib/producer-client/producer-client-emits/update-room-parameters-client.service.mjs +0 -276
- package/dist/esm2022/lib/producers/producer-emits/join-con-room.service.mjs +0 -152
- package/dist/esm2022/lib/producers/producer-emits/join-room.service.mjs +0 -152
- package/dist/esm2022/lib/producers/socket-receive-methods/all-members-rest.service.mjs +0 -228
- package/dist/esm2022/lib/producers/socket-receive-methods/all-members.service.mjs +0 -218
- package/dist/esm2022/lib/producers/socket-receive-methods/all-waiting-room-members.service.mjs +0 -57
- package/dist/esm2022/lib/producers/socket-receive-methods/ban-participant.service.mjs +0 -76
- package/dist/esm2022/lib/producers/socket-receive-methods/control-media-host.service.mjs +0 -183
- package/dist/esm2022/lib/producers/socket-receive-methods/disconnect-user-self.service.mjs +0 -50
- package/dist/esm2022/lib/producers/socket-receive-methods/disconnect.service.mjs +0 -64
- package/dist/esm2022/lib/producers/socket-receive-methods/get-domains.service.mjs +0 -78
- package/dist/esm2022/lib/producers/socket-receive-methods/host-request-response.service.mjs +0 -150
- package/dist/esm2022/lib/producers/socket-receive-methods/meeting-ended.service.mjs +0 -73
- package/dist/esm2022/lib/producers/socket-receive-methods/meeting-still-there.service.mjs +0 -47
- package/dist/esm2022/lib/producers/socket-receive-methods/meeting-time-remaining.service.mjs +0 -63
- package/dist/esm2022/lib/producers/socket-receive-methods/participant-requested.service.mjs +0 -63
- package/dist/esm2022/lib/producers/socket-receive-methods/person-joined.service.mjs +0 -54
- package/dist/esm2022/lib/producers/socket-receive-methods/producer-media-closed.service.mjs +0 -129
- package/dist/esm2022/lib/producers/socket-receive-methods/producer-media-paused.service.mjs +0 -152
- package/dist/esm2022/lib/producers/socket-receive-methods/producer-media-resumed.service.mjs +0 -99
- package/dist/esm2022/lib/producers/socket-receive-methods/re-initiate-recording.service.mjs +0 -67
- package/dist/esm2022/lib/producers/socket-receive-methods/receive-message.service.mjs +0 -134
- package/dist/esm2022/lib/producers/socket-receive-methods/recording-notice.service.mjs +0 -233
- package/dist/esm2022/lib/producers/socket-receive-methods/room-record-params.service.mjs +0 -121
- package/dist/esm2022/lib/producers/socket-receive-methods/screen-producer-id.service.mjs +0 -86
- package/dist/esm2022/lib/producers/socket-receive-methods/start-records.service.mjs +0 -60
- package/dist/esm2022/lib/producers/socket-receive-methods/stopped-recording.service.mjs +0 -62
- package/dist/esm2022/lib/producers/socket-receive-methods/time-left-recording.service.mjs +0 -57
- package/dist/esm2022/lib/producers/socket-receive-methods/update-consuming-domains.service.mjs +0 -105
- package/dist/esm2022/lib/producers/socket-receive-methods/update-media-settings.service.mjs +0 -66
- package/dist/esm2022/lib/producers/socket-receive-methods/updated-co-host.service.mjs +0 -96
- package/dist/esm2022/lib/producers/socket-receive-methods/user-waiting.service.mjs +0 -52
- package/dist/esm2022/lib/sockets/socket-manager.service.mjs +0 -113
- package/dist/esm2022/mediasfu-angular.mjs +0 -5
- package/dist/esm2022/public-api.mjs +0 -187
|
@@ -1,96 +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
|
-
/**
|
|
5
|
-
* @service JoinConsumeRoom
|
|
6
|
-
* @description Service to join a media consumption room, setup device, and manage piped transports.
|
|
7
|
-
*
|
|
8
|
-
* @method joinConsumeRoom
|
|
9
|
-
* Joins a consumption room by sending a request to the server and performing necessary device and transport setup.
|
|
10
|
-
*
|
|
11
|
-
* @param {JoinConsumeRoomOptions} options - Options for joining the consumption room.
|
|
12
|
-
* @param {Socket} options.remote_sock - The remote socket used for joining the room.
|
|
13
|
-
* @param {string} options.apiToken - API token for authentication.
|
|
14
|
-
* @param {string} options.apiUserName - API username for authentication.
|
|
15
|
-
* @param {JoinConsumeRoomParameters} options.parameters - Parameters required for the function.
|
|
16
|
-
*
|
|
17
|
-
* @returns {Promise<JoinConsumeRoomResponse>} A promise that resolves with the result of the join request.
|
|
18
|
-
*
|
|
19
|
-
* @example
|
|
20
|
-
* ```typescript
|
|
21
|
-
* const joinConsumeRoomResponse = await joinConsumeRoomService.joinConsumeRoom({
|
|
22
|
-
* remote_sock: mySocket,
|
|
23
|
-
* apiToken: 'apiToken123',
|
|
24
|
-
* apiUserName: 'myUser',
|
|
25
|
-
* parameters: {
|
|
26
|
-
* roomName: 'room1',
|
|
27
|
-
* islevel: '2',
|
|
28
|
-
* member: 'JohnDoe',
|
|
29
|
-
* device: null,
|
|
30
|
-
* updateDevice: updateDeviceFunction,
|
|
31
|
-
* receiveAllPipedTransports: receiveAllPipedTransportsFunction,
|
|
32
|
-
* createDeviceClient: createDeviceClientFunction,
|
|
33
|
-
* }
|
|
34
|
-
* });
|
|
35
|
-
* ```
|
|
36
|
-
*/
|
|
37
|
-
export class JoinConsumeRoom {
|
|
38
|
-
JoinConRoomService;
|
|
39
|
-
constructor(JoinConRoomService) {
|
|
40
|
-
this.JoinConRoomService = JoinConRoomService;
|
|
41
|
-
}
|
|
42
|
-
/**
|
|
43
|
-
* Joins a consumption room by sending a request to the server and handles the necessary setup.
|
|
44
|
-
* @param {Object} options - The options object containing necessary variables.
|
|
45
|
-
* @param {any} options.remote_sock - The remote socket information.
|
|
46
|
-
* @param {string} options.apiToken - The API token for authentication.
|
|
47
|
-
* @param {string} options.apiUserName - The API username for authentication.
|
|
48
|
-
* @param {any} options.parameters - Additional parameters required for the function.
|
|
49
|
-
* @returns {Promise<any>} - A promise that resolves with data related to the success of joining the room.
|
|
50
|
-
*/
|
|
51
|
-
joinConsumeRoom = async ({ remote_sock, apiToken, apiUserName, parameters, }) => {
|
|
52
|
-
let { roomName, islevel, member, device, updateDevice,
|
|
53
|
-
//Mediasfu functions
|
|
54
|
-
receiveAllPipedTransports, createDeviceClient, } = parameters;
|
|
55
|
-
try {
|
|
56
|
-
// Join the consumption room
|
|
57
|
-
const data = await this.JoinConRoomService.joinConRoom({
|
|
58
|
-
socket: remote_sock,
|
|
59
|
-
roomName,
|
|
60
|
-
islevel,
|
|
61
|
-
member,
|
|
62
|
-
sec: apiToken,
|
|
63
|
-
apiUserName,
|
|
64
|
-
});
|
|
65
|
-
if (data && data.success) {
|
|
66
|
-
// Setup media device if not already set
|
|
67
|
-
if (!device) {
|
|
68
|
-
if (data.rtpCapabilities) {
|
|
69
|
-
const device_ = await createDeviceClient({
|
|
70
|
-
rtpCapabilities: data.rtpCapabilities,
|
|
71
|
-
});
|
|
72
|
-
if (device_) {
|
|
73
|
-
updateDevice(device_);
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
// Receive all piped transports
|
|
78
|
-
await receiveAllPipedTransports({ nsock: remote_sock, parameters });
|
|
79
|
-
}
|
|
80
|
-
return data;
|
|
81
|
-
}
|
|
82
|
-
catch (error) {
|
|
83
|
-
console.log('Error in joinConsumeRoom:', error);
|
|
84
|
-
throw new Error('Failed to join the consumption room or set up necessary components.');
|
|
85
|
-
}
|
|
86
|
-
};
|
|
87
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: JoinConsumeRoom, deps: [{ token: i1.JoinConRoom }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
88
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: JoinConsumeRoom, providedIn: 'root' });
|
|
89
|
-
}
|
|
90
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: JoinConsumeRoom, decorators: [{
|
|
91
|
-
type: Injectable,
|
|
92
|
-
args: [{
|
|
93
|
-
providedIn: 'root',
|
|
94
|
-
}]
|
|
95
|
-
}], ctorParameters: () => [{ type: i1.JoinConRoom }] });
|
|
96
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiam9pbi1jb25zdW1lLXJvb20uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21lZGlhc2Z1LWFuZ3VsYXIvc3JjL2xpYi9jb25zdW1lcnMvc29ja2V0LXJlY2VpdmUtbWV0aG9kcy9qb2luLWNvbnN1bWUtcm9vbS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQXdDM0M7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBZ0NHO0FBS0gsTUFBTSxPQUFPLGVBQWU7SUFDTjtJQUFwQixZQUFvQixrQkFBK0I7UUFBL0IsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFhO0lBQUcsQ0FBQztJQUV2RDs7Ozs7Ozs7T0FRRztJQUNILGVBQWUsR0FBRyxLQUFLLEVBQUUsRUFDdkIsV0FBVyxFQUNYLFFBQVEsRUFDUixXQUFXLEVBQ1gsVUFBVSxHQUNhLEVBQW9DLEVBQUU7UUFDN0QsSUFBSSxFQUNGLFFBQVEsRUFDUixPQUFPLEVBQ1AsTUFBTSxFQUNOLE1BQU0sRUFDTixZQUFZO1FBRVosb0JBQW9CO1FBQ3BCLHlCQUF5QixFQUN6QixrQkFBa0IsR0FDbkIsR0FBRyxVQUFVLENBQUM7UUFFZixJQUFJLENBQUM7WUFDSCw0QkFBNEI7WUFDNUIsTUFBTSxJQUFJLEdBQVEsTUFBTSxJQUFJLENBQUMsa0JBQWtCLENBQUMsV0FBVyxDQUFDO2dCQUMxRCxNQUFNLEVBQUUsV0FBVztnQkFDbkIsUUFBUTtnQkFDUixPQUFPO2dCQUNQLE1BQU07Z0JBQ04sR0FBRyxFQUFFLFFBQVE7Z0JBQ2IsV0FBVzthQUNaLENBQUMsQ0FBQztZQUVILElBQUksSUFBSSxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDekIsd0NBQXdDO2dCQUN4QyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7b0JBQ1osSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7d0JBQ3pCLE1BQU0sT0FBTyxHQUFHLE1BQU0sa0JBQWtCLENBQUM7NEJBQ3ZDLGVBQWUsRUFBRSxJQUFJLENBQUMsZUFBZTt5QkFDdEMsQ0FBQyxDQUFDO3dCQUVILElBQUksT0FBTyxFQUFFLENBQUM7NEJBQ1osWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDO3dCQUN4QixDQUFDO29CQUNILENBQUM7Z0JBQ0gsQ0FBQztnQkFFRCwrQkFBK0I7Z0JBQy9CLE1BQU0seUJBQXlCLENBQUMsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUM7WUFDdEUsQ0FBQztZQUVELE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztRQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7WUFDZixPQUFPLENBQUMsR0FBRyxDQUFDLDJCQUEyQixFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ2hELE1BQU0sSUFBSSxLQUFLLENBQUMscUVBQXFFLENBQUMsQ0FBQztRQUN6RixDQUFDO0lBQ0gsQ0FBQyxDQUFDO3VHQWhFUyxlQUFlOzJHQUFmLGVBQWUsY0FGZCxNQUFNOzsyRkFFUCxlQUFlO2tCQUgzQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEpvaW5Db25Sb29tIH0gZnJvbSAnLi4vLi4vcHJvZHVjZXJzL3Byb2R1Y2VyLWVtaXRzL2pvaW4tY29uLXJvb20uc2VydmljZSc7XG5pbXBvcnQgeyBTb2NrZXQgfSBmcm9tICdzb2NrZXQuaW8tY2xpZW50JztcbmltcG9ydCB7XG4gIFJlY2VpdmVBbGxQaXBlZFRyYW5zcG9ydHNUeXBlLFxuICBSZWNlaXZlQWxsUGlwZWRUcmFuc3BvcnRzUGFyYW1ldGVycyxcbiAgQ3JlYXRlRGV2aWNlQ2xpZW50VHlwZSxcbn0gZnJvbSAnLi4vLi4vQHR5cGVzL3R5cGVzJztcbmltcG9ydCB7IERldmljZSwgUnRwQ2FwYWJpbGl0aWVzIH0gZnJvbSAnbWVkaWFzb3VwLWNsaWVudC9saWIvdHlwZXMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEpvaW5Db25zdW1lUm9vbVBhcmFtZXRlcnMgZXh0ZW5kcyBSZWNlaXZlQWxsUGlwZWRUcmFuc3BvcnRzUGFyYW1ldGVycyB7XG4gIHJvb21OYW1lOiBzdHJpbmc7XG4gIGlzbGV2ZWw6IHN0cmluZztcbiAgbWVtYmVyOiBzdHJpbmc7XG4gIGRldmljZTogRGV2aWNlIHwgbnVsbDtcbiAgdXBkYXRlRGV2aWNlOiAoZGV2aWNlOiBEZXZpY2UgfCBudWxsKSA9PiB2b2lkO1xuICByZWNlaXZlQWxsUGlwZWRUcmFuc3BvcnRzOiBSZWNlaXZlQWxsUGlwZWRUcmFuc3BvcnRzVHlwZTtcbiAgY3JlYXRlRGV2aWNlQ2xpZW50OiBDcmVhdGVEZXZpY2VDbGllbnRUeXBlO1xuXG4gIC8vIG1lZGlhc2Z1IGZ1bmN0aW9uc1xuICBba2V5OiBzdHJpbmddOiBhbnk7XG59XG5leHBvcnQgaW50ZXJmYWNlIEpvaW5Db25zdW1lUm9vbU9wdGlvbnMge1xuICByZW1vdGVfc29jazogU29ja2V0O1xuICBhcGlUb2tlbjogc3RyaW5nO1xuICBhcGlVc2VyTmFtZTogc3RyaW5nO1xuICBwYXJhbWV0ZXJzOiBKb2luQ29uc3VtZVJvb21QYXJhbWV0ZXJzO1xufVxuXG5pbnRlcmZhY2UgSm9pbkNvbnN1bWVSb29tUmVzcG9uc2Uge1xuICBzdWNjZXNzOiBib29sZWFuO1xuICBydHBDYXBhYmlsaXRpZXM/OiBSdHBDYXBhYmlsaXRpZXM7XG59XG5cbi8vIEV4cG9ydCB0aGUgdHlwZSBkZWZpbml0aW9uIGZvciB0aGUgZnVuY3Rpb25cbmV4cG9ydCB0eXBlIEpvaW5Db25zdW1lUm9vbVR5cGUgPSAoXG4gIG9wdGlvbnM6IEpvaW5Db25zdW1lUm9vbU9wdGlvbnMsXG4pID0+IFByb21pc2U8Sm9pbkNvbnN1bWVSb29tUmVzcG9uc2U+O1xuXG5cbi8qKlxuICogQHNlcnZpY2UgSm9pbkNvbnN1bWVSb29tXG4gKiBAZGVzY3JpcHRpb24gU2VydmljZSB0byBqb2luIGEgbWVkaWEgY29uc3VtcHRpb24gcm9vbSwgc2V0dXAgZGV2aWNlLCBhbmQgbWFuYWdlIHBpcGVkIHRyYW5zcG9ydHMuXG4gKlxuICogQG1ldGhvZCBqb2luQ29uc3VtZVJvb21cbiAqIEpvaW5zIGEgY29uc3VtcHRpb24gcm9vbSBieSBzZW5kaW5nIGEgcmVxdWVzdCB0byB0aGUgc2VydmVyIGFuZCBwZXJmb3JtaW5nIG5lY2Vzc2FyeSBkZXZpY2UgYW5kIHRyYW5zcG9ydCBzZXR1cC5cbiAqXG4gKiBAcGFyYW0ge0pvaW5Db25zdW1lUm9vbU9wdGlvbnN9IG9wdGlvbnMgLSBPcHRpb25zIGZvciBqb2luaW5nIHRoZSBjb25zdW1wdGlvbiByb29tLlxuICogQHBhcmFtIHtTb2NrZXR9IG9wdGlvbnMucmVtb3RlX3NvY2sgLSBUaGUgcmVtb3RlIHNvY2tldCB1c2VkIGZvciBqb2luaW5nIHRoZSByb29tLlxuICogQHBhcmFtIHtzdHJpbmd9IG9wdGlvbnMuYXBpVG9rZW4gLSBBUEkgdG9rZW4gZm9yIGF1dGhlbnRpY2F0aW9uLlxuICogQHBhcmFtIHtzdHJpbmd9IG9wdGlvbnMuYXBpVXNlck5hbWUgLSBBUEkgdXNlcm5hbWUgZm9yIGF1dGhlbnRpY2F0aW9uLlxuICogQHBhcmFtIHtKb2luQ29uc3VtZVJvb21QYXJhbWV0ZXJzfSBvcHRpb25zLnBhcmFtZXRlcnMgLSBQYXJhbWV0ZXJzIHJlcXVpcmVkIGZvciB0aGUgZnVuY3Rpb24uXG4gKlxuICogQHJldHVybnMge1Byb21pc2U8Sm9pbkNvbnN1bWVSb29tUmVzcG9uc2U+fSBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB3aXRoIHRoZSByZXN1bHQgb2YgdGhlIGpvaW4gcmVxdWVzdC5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3Qgam9pbkNvbnN1bWVSb29tUmVzcG9uc2UgPSBhd2FpdCBqb2luQ29uc3VtZVJvb21TZXJ2aWNlLmpvaW5Db25zdW1lUm9vbSh7XG4gKiAgIHJlbW90ZV9zb2NrOiBteVNvY2tldCxcbiAqICAgYXBpVG9rZW46ICdhcGlUb2tlbjEyMycsXG4gKiAgIGFwaVVzZXJOYW1lOiAnbXlVc2VyJyxcbiAqICAgcGFyYW1ldGVyczoge1xuICogICAgIHJvb21OYW1lOiAncm9vbTEnLFxuICogICAgIGlzbGV2ZWw6ICcyJyxcbiAqICAgICBtZW1iZXI6ICdKb2huRG9lJyxcbiAqICAgICBkZXZpY2U6IG51bGwsXG4gKiAgICAgdXBkYXRlRGV2aWNlOiB1cGRhdGVEZXZpY2VGdW5jdGlvbixcbiAqICAgICByZWNlaXZlQWxsUGlwZWRUcmFuc3BvcnRzOiByZWNlaXZlQWxsUGlwZWRUcmFuc3BvcnRzRnVuY3Rpb24sXG4gKiAgICAgY3JlYXRlRGV2aWNlQ2xpZW50OiBjcmVhdGVEZXZpY2VDbGllbnRGdW5jdGlvbixcbiAqICAgfVxuICogfSk7XG4gKiBgYGBcbiAqL1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgSm9pbkNvbnN1bWVSb29tIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBKb2luQ29uUm9vbVNlcnZpY2U6IEpvaW5Db25Sb29tKSB7fVxuXG4gIC8qKlxuICAgKiBKb2lucyBhIGNvbnN1bXB0aW9uIHJvb20gYnkgc2VuZGluZyBhIHJlcXVlc3QgdG8gdGhlIHNlcnZlciBhbmQgaGFuZGxlcyB0aGUgbmVjZXNzYXJ5IHNldHVwLlxuICAgKiBAcGFyYW0ge09iamVjdH0gb3B0aW9ucyAtIFRoZSBvcHRpb25zIG9iamVjdCBjb250YWluaW5nIG5lY2Vzc2FyeSB2YXJpYWJsZXMuXG4gICAqIEBwYXJhbSB7YW55fSBvcHRpb25zLnJlbW90ZV9zb2NrIC0gVGhlIHJlbW90ZSBzb2NrZXQgaW5mb3JtYXRpb24uXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBvcHRpb25zLmFwaVRva2VuIC0gVGhlIEFQSSB0b2tlbiBmb3IgYXV0aGVudGljYXRpb24uXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBvcHRpb25zLmFwaVVzZXJOYW1lIC0gVGhlIEFQSSB1c2VybmFtZSBmb3IgYXV0aGVudGljYXRpb24uXG4gICAqIEBwYXJhbSB7YW55fSBvcHRpb25zLnBhcmFtZXRlcnMgLSBBZGRpdGlvbmFsIHBhcmFtZXRlcnMgcmVxdWlyZWQgZm9yIHRoZSBmdW5jdGlvbi5cbiAgICogQHJldHVybnMge1Byb21pc2U8YW55Pn0gLSBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB3aXRoIGRhdGEgcmVsYXRlZCB0byB0aGUgc3VjY2VzcyBvZiBqb2luaW5nIHRoZSByb29tLlxuICAgKi9cbiAgam9pbkNvbnN1bWVSb29tID0gYXN5bmMgKHtcbiAgICByZW1vdGVfc29jayxcbiAgICBhcGlUb2tlbixcbiAgICBhcGlVc2VyTmFtZSxcbiAgICBwYXJhbWV0ZXJzLFxuICB9OiBKb2luQ29uc3VtZVJvb21PcHRpb25zKTogUHJvbWlzZTxKb2luQ29uc3VtZVJvb21SZXNwb25zZT4gPT4ge1xuICAgIGxldCB7XG4gICAgICByb29tTmFtZSxcbiAgICAgIGlzbGV2ZWwsXG4gICAgICBtZW1iZXIsXG4gICAgICBkZXZpY2UsXG4gICAgICB1cGRhdGVEZXZpY2UsXG5cbiAgICAgIC8vTWVkaWFzZnUgZnVuY3Rpb25zXG4gICAgICByZWNlaXZlQWxsUGlwZWRUcmFuc3BvcnRzLFxuICAgICAgY3JlYXRlRGV2aWNlQ2xpZW50LFxuICAgIH0gPSBwYXJhbWV0ZXJzO1xuXG4gICAgdHJ5IHtcbiAgICAgIC8vIEpvaW4gdGhlIGNvbnN1bXB0aW9uIHJvb21cbiAgICAgIGNvbnN0IGRhdGE6IGFueSA9IGF3YWl0IHRoaXMuSm9pbkNvblJvb21TZXJ2aWNlLmpvaW5Db25Sb29tKHtcbiAgICAgICAgc29ja2V0OiByZW1vdGVfc29jayxcbiAgICAgICAgcm9vbU5hbWUsXG4gICAgICAgIGlzbGV2ZWwsXG4gICAgICAgIG1lbWJlcixcbiAgICAgICAgc2VjOiBhcGlUb2tlbixcbiAgICAgICAgYXBpVXNlck5hbWUsXG4gICAgICB9KTtcblxuICAgICAgaWYgKGRhdGEgJiYgZGF0YS5zdWNjZXNzKSB7XG4gICAgICAgIC8vIFNldHVwIG1lZGlhIGRldmljZSBpZiBub3QgYWxyZWFkeSBzZXRcbiAgICAgICAgaWYgKCFkZXZpY2UpIHtcbiAgICAgICAgICBpZiAoZGF0YS5ydHBDYXBhYmlsaXRpZXMpIHtcbiAgICAgICAgICAgIGNvbnN0IGRldmljZV8gPSBhd2FpdCBjcmVhdGVEZXZpY2VDbGllbnQoe1xuICAgICAgICAgICAgICBydHBDYXBhYmlsaXRpZXM6IGRhdGEucnRwQ2FwYWJpbGl0aWVzLFxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIGlmIChkZXZpY2VfKSB7XG4gICAgICAgICAgICAgIHVwZGF0ZURldmljZShkZXZpY2VfKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBSZWNlaXZlIGFsbCBwaXBlZCB0cmFuc3BvcnRzXG4gICAgICAgIGF3YWl0IHJlY2VpdmVBbGxQaXBlZFRyYW5zcG9ydHMoeyBuc29jazogcmVtb3RlX3NvY2ssIHBhcmFtZXRlcnMgfSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBkYXRhO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmxvZygnRXJyb3IgaW4gam9pbkNvbnN1bWVSb29tOicsIGVycm9yKTtcbiAgICAgIHRocm93IG5ldyBFcnJvcignRmFpbGVkIHRvIGpvaW4gdGhlIGNvbnN1bXB0aW9uIHJvb20gb3Igc2V0IHVwIG5lY2Vzc2FyeSBjb21wb25lbnRzLicpO1xuICAgIH1cbiAgfTtcbn1cbiJdfQ==
|
|
@@ -1,100 +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
|
-
/**
|
|
5
|
-
* @service NewPipeProducer
|
|
6
|
-
* @description Service to manage new pipe producer events, update state, and handle screen orientation for optimal experience.
|
|
7
|
-
*
|
|
8
|
-
* @method newPipeProducer
|
|
9
|
-
* Handles the setup of a new pipe producer and manages user notifications or orientation changes as needed.
|
|
10
|
-
*
|
|
11
|
-
* @param {NewPipeProducerOptions} options - Options for setting up a new pipe producer.
|
|
12
|
-
* @param {string} options.producerId - Unique ID for the new producer.
|
|
13
|
-
* @param {string} options.islevel - Level designation for the producer.
|
|
14
|
-
* @param {Socket} options.nsock - The socket used for communication.
|
|
15
|
-
* @param {NewPipeProducerParameters} options.parameters - Parameters to configure the new pipe producer.
|
|
16
|
-
*
|
|
17
|
-
* @returns {Promise<void>} A promise that completes when the new pipe producer is set up.
|
|
18
|
-
*
|
|
19
|
-
* @example
|
|
20
|
-
* ```typescript
|
|
21
|
-
* await newPipeProducerService.newPipeProducer({
|
|
22
|
-
* producerId: 'producer123',
|
|
23
|
-
* islevel: '2',
|
|
24
|
-
* nsock: mySocket,
|
|
25
|
-
* parameters: {
|
|
26
|
-
* first_round: true,
|
|
27
|
-
* shareScreenStarted: false,
|
|
28
|
-
* shared: false,
|
|
29
|
-
* landScaped: false,
|
|
30
|
-
* showAlert: alertFunction,
|
|
31
|
-
* isWideScreen: true,
|
|
32
|
-
* updateFirst_round: updateFirstRoundFunction,
|
|
33
|
-
* updateLandScaped: updateLandScapedFunction,
|
|
34
|
-
* device: myDevice,
|
|
35
|
-
* consumingTransports: [],
|
|
36
|
-
* connectRecvTransport: connectRecvTransportFunction,
|
|
37
|
-
* reorderStreams: reorderStreamsFunction,
|
|
38
|
-
* getUpdatedAllParams: getUpdatedParamsFunction,
|
|
39
|
-
* }
|
|
40
|
-
* });
|
|
41
|
-
* ```
|
|
42
|
-
*/
|
|
43
|
-
export class NewPipeProducer {
|
|
44
|
-
signalNewConsumerTransportService;
|
|
45
|
-
constructor(signalNewConsumerTransportService) {
|
|
46
|
-
this.signalNewConsumerTransportService = signalNewConsumerTransportService;
|
|
47
|
-
}
|
|
48
|
-
/**
|
|
49
|
-
* Handles new pipe producer events and updates relevant states.
|
|
50
|
-
* @param {Object} options - The options object containing necessary variables.
|
|
51
|
-
* @param {string} options.producerId - The ID of the producer.
|
|
52
|
-
* @param {string} options.islevel - The level of the producer.
|
|
53
|
-
* @param {any} options.nsock - The socket object.
|
|
54
|
-
* @param {any} options.parameters - Additional parameters required for the function.
|
|
55
|
-
* @returns {Promise<void>}
|
|
56
|
-
*/
|
|
57
|
-
newPipeProducer = async ({ producerId, islevel, nsock, parameters, }) => {
|
|
58
|
-
let { first_round, shareScreenStarted, shared, landScaped, showAlert, isWideScreen, updateFirst_round, updateLandScaped, } = parameters;
|
|
59
|
-
try {
|
|
60
|
-
// Perform signaling for new consumer transport
|
|
61
|
-
await this.signalNewConsumerTransportService.signalNewConsumerTransport({
|
|
62
|
-
remoteProducerId: producerId,
|
|
63
|
-
islevel: islevel,
|
|
64
|
-
nsock: nsock,
|
|
65
|
-
parameters: parameters,
|
|
66
|
-
});
|
|
67
|
-
first_round = false;
|
|
68
|
-
if (shareScreenStarted || shared) {
|
|
69
|
-
if (!isWideScreen) {
|
|
70
|
-
if (!landScaped) {
|
|
71
|
-
if (showAlert) {
|
|
72
|
-
showAlert({
|
|
73
|
-
message: 'Please rotate your device to landscape mode for better experience',
|
|
74
|
-
type: 'success',
|
|
75
|
-
duration: 3000,
|
|
76
|
-
});
|
|
77
|
-
}
|
|
78
|
-
landScaped = true;
|
|
79
|
-
updateLandScaped(landScaped);
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
first_round = true;
|
|
83
|
-
updateFirst_round(first_round);
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
catch (error) {
|
|
87
|
-
console.error('Error in newPipeProducer:', error);
|
|
88
|
-
throw new Error('Failed to handle new pipe producer event.');
|
|
89
|
-
}
|
|
90
|
-
};
|
|
91
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: NewPipeProducer, deps: [{ token: i1.SignalNewConsumerTransport }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
92
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: NewPipeProducer, providedIn: 'root' });
|
|
93
|
-
}
|
|
94
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: NewPipeProducer, decorators: [{
|
|
95
|
-
type: Injectable,
|
|
96
|
-
args: [{
|
|
97
|
-
providedIn: 'root',
|
|
98
|
-
}]
|
|
99
|
-
}], ctorParameters: () => [{ type: i1.SignalNewConsumerTransport }] });
|
|
100
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV3LXBpcGUtcHJvZHVjZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21lZGlhc2Z1LWFuZ3VsYXIvc3JjL2xpYi9jb25zdW1lcnMvc29ja2V0LXJlY2VpdmUtbWV0aG9kcy9uZXctcGlwZS1wcm9kdWNlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQStDM0M7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBc0NHO0FBS0gsTUFBTSxPQUFPLGVBQWU7SUFDTjtJQUFwQixZQUFvQixpQ0FBNkQ7UUFBN0Qsc0NBQWlDLEdBQWpDLGlDQUFpQyxDQUE0QjtJQUFHLENBQUM7SUFFckY7Ozs7Ozs7O09BUUc7SUFDSCxlQUFlLEdBQUcsS0FBSyxFQUFFLEVBQ3ZCLFVBQVUsRUFDVixPQUFPLEVBQ1AsS0FBSyxFQUNMLFVBQVUsR0FDYSxFQUFpQixFQUFFO1FBQzFDLElBQUksRUFDRixXQUFXLEVBQ1gsa0JBQWtCLEVBQ2xCLE1BQU0sRUFDTixVQUFVLEVBQ1YsU0FBUyxFQUNULFlBQVksRUFDWixpQkFBaUIsRUFDakIsZ0JBQWdCLEdBQ2pCLEdBQUcsVUFBVSxDQUFDO1FBRWYsSUFBSSxDQUFDO1lBQ0gsK0NBQStDO1lBQy9DLE1BQU0sSUFBSSxDQUFDLGlDQUFpQyxDQUFDLDBCQUEwQixDQUFDO2dCQUN0RSxnQkFBZ0IsRUFBRSxVQUFVO2dCQUM1QixPQUFPLEVBQUUsT0FBTztnQkFDaEIsS0FBSyxFQUFFLEtBQUs7Z0JBQ1osVUFBVSxFQUFFLFVBQVU7YUFDdkIsQ0FBQyxDQUFDO1lBRUgsV0FBVyxHQUFHLEtBQUssQ0FBQztZQUNwQixJQUFJLGtCQUFrQixJQUFJLE1BQU0sRUFBRSxDQUFDO2dCQUNqQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7b0JBQ2xCLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQzt3QkFDaEIsSUFBSSxTQUFTLEVBQUUsQ0FBQzs0QkFDZCxTQUFTLENBQUM7Z0NBQ1IsT0FBTyxFQUFFLG1FQUFtRTtnQ0FDNUUsSUFBSSxFQUFFLFNBQVM7Z0NBQ2YsUUFBUSxFQUFFLElBQUk7NkJBQ2YsQ0FBQyxDQUFDO3dCQUNMLENBQUM7d0JBQ0QsVUFBVSxHQUFHLElBQUksQ0FBQzt3QkFDbEIsZ0JBQWdCLENBQUMsVUFBVSxDQUFDLENBQUM7b0JBQy9CLENBQUM7Z0JBQ0gsQ0FBQztnQkFFRCxXQUFXLEdBQUcsSUFBSSxDQUFDO2dCQUNuQixpQkFBaUIsQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUNqQyxDQUFDO1FBQ0gsQ0FBQztRQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7WUFDZixPQUFPLENBQUMsS0FBSyxDQUFDLDJCQUEyQixFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ2xELE1BQU0sSUFBSSxLQUFLLENBQUMsMkNBQTJDLENBQUMsQ0FBQztRQUMvRCxDQUFDO0lBQ0gsQ0FBQyxDQUFDO3VHQTdEUyxlQUFlOzJHQUFmLGVBQWUsY0FGZCxNQUFNOzsyRkFFUCxlQUFlO2tCQUgzQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNpZ25hbE5ld0NvbnN1bWVyVHJhbnNwb3J0IH0gZnJvbSAnLi4vc2lnbmFsLW5ldy1jb25zdW1lci10cmFuc3BvcnQuc2VydmljZSc7XG5pbXBvcnQgeyBTb2NrZXQgfSBmcm9tICdzb2NrZXQuaW8tY2xpZW50JztcbmltcG9ydCB7XG4gIFJlb3JkZXJTdHJlYW1zUGFyYW1ldGVycyxcbiAgUmVvcmRlclN0cmVhbXNUeXBlLFxuICBTaWduYWxOZXdDb25zdW1lclRyYW5zcG9ydFBhcmFtZXRlcnMsXG4gIENvbm5lY3RSZWN2VHJhbnNwb3J0UGFyYW1ldGVycyxcbiAgQ29ubmVjdFJlY3ZUcmFuc3BvcnRUeXBlLFxuICBTaG93QWxlcnQsXG59IGZyb20gJy4uLy4uL0B0eXBlcy90eXBlcyc7XG5pbXBvcnQgeyBEZXZpY2UgfSBmcm9tICdtZWRpYXNvdXAtY2xpZW50L2xpYi90eXBlcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTmV3UGlwZVByb2R1Y2VyUGFyYW1ldGVyc1xuICBleHRlbmRzIFJlb3JkZXJTdHJlYW1zUGFyYW1ldGVycyxcbiAgICBTaWduYWxOZXdDb25zdW1lclRyYW5zcG9ydFBhcmFtZXRlcnMsXG4gICAgQ29ubmVjdFJlY3ZUcmFuc3BvcnRQYXJhbWV0ZXJzIHtcbiAgZmlyc3Rfcm91bmQ6IGJvb2xlYW47XG4gIHNoYXJlU2NyZWVuU3RhcnRlZDogYm9vbGVhbjtcbiAgc2hhcmVkOiBib29sZWFuO1xuICBsYW5kU2NhcGVkOiBib29sZWFuO1xuICBzaG93QWxlcnQ/OiBTaG93QWxlcnQ7XG4gIGlzV2lkZVNjcmVlbjogYm9vbGVhbjtcbiAgdXBkYXRlRmlyc3Rfcm91bmQ6IChmaXJzdFJvdW5kOiBib29sZWFuKSA9PiB2b2lkO1xuICB1cGRhdGVMYW5kU2NhcGVkOiAobGFuZFNjYXBlZDogYm9vbGVhbikgPT4gdm9pZDtcbiAgZGV2aWNlOiBEZXZpY2UgfCBudWxsO1xuICBjb25zdW1pbmdUcmFuc3BvcnRzOiBzdHJpbmdbXTtcbiAgbG9ja19zY3JlZW46IGJvb2xlYW47XG4gIHVwZGF0ZUNvbnN1bWluZ1RyYW5zcG9ydHM6ICh0cmFuc3BvcnRzOiBzdHJpbmdbXSkgPT4gdm9pZDtcblxuICAvLyBtZWRpYXNmdSBmdW5jdGlvbnNcbiAgY29ubmVjdFJlY3ZUcmFuc3BvcnQ6IENvbm5lY3RSZWN2VHJhbnNwb3J0VHlwZTtcbiAgcmVvcmRlclN0cmVhbXM6IFJlb3JkZXJTdHJlYW1zVHlwZTtcbiAgZ2V0VXBkYXRlZEFsbFBhcmFtczogKCkgPT4gTmV3UGlwZVByb2R1Y2VyUGFyYW1ldGVycztcbiAgW2tleTogc3RyaW5nXTogYW55O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE5ld1BpcGVQcm9kdWNlck9wdGlvbnMge1xuICBwcm9kdWNlcklkOiBzdHJpbmc7XG4gIGlzbGV2ZWw6IHN0cmluZztcbiAgbnNvY2s6IFNvY2tldDtcbiAgcGFyYW1ldGVyczogTmV3UGlwZVByb2R1Y2VyUGFyYW1ldGVycztcbn1cblxuLy8gRXhwb3J0IHRoZSB0eXBlIGRlZmluaXRpb24gZm9yIHRoZSBmdW5jdGlvblxuZXhwb3J0IHR5cGUgTmV3UGlwZVByb2R1Y2VyVHlwZSA9IChvcHRpb25zOiBOZXdQaXBlUHJvZHVjZXJPcHRpb25zKSA9PiBQcm9taXNlPHZvaWQ+O1xuXG4vKipcbiAqIEBzZXJ2aWNlIE5ld1BpcGVQcm9kdWNlclxuICogQGRlc2NyaXB0aW9uIFNlcnZpY2UgdG8gbWFuYWdlIG5ldyBwaXBlIHByb2R1Y2VyIGV2ZW50cywgdXBkYXRlIHN0YXRlLCBhbmQgaGFuZGxlIHNjcmVlbiBvcmllbnRhdGlvbiBmb3Igb3B0aW1hbCBleHBlcmllbmNlLlxuICpcbiAqIEBtZXRob2QgbmV3UGlwZVByb2R1Y2VyXG4gKiBIYW5kbGVzIHRoZSBzZXR1cCBvZiBhIG5ldyBwaXBlIHByb2R1Y2VyIGFuZCBtYW5hZ2VzIHVzZXIgbm90aWZpY2F0aW9ucyBvciBvcmllbnRhdGlvbiBjaGFuZ2VzIGFzIG5lZWRlZC5cbiAqXG4gKiBAcGFyYW0ge05ld1BpcGVQcm9kdWNlck9wdGlvbnN9IG9wdGlvbnMgLSBPcHRpb25zIGZvciBzZXR0aW5nIHVwIGEgbmV3IHBpcGUgcHJvZHVjZXIuXG4gKiBAcGFyYW0ge3N0cmluZ30gb3B0aW9ucy5wcm9kdWNlcklkIC0gVW5pcXVlIElEIGZvciB0aGUgbmV3IHByb2R1Y2VyLlxuICogQHBhcmFtIHtzdHJpbmd9IG9wdGlvbnMuaXNsZXZlbCAtIExldmVsIGRlc2lnbmF0aW9uIGZvciB0aGUgcHJvZHVjZXIuXG4gKiBAcGFyYW0ge1NvY2tldH0gb3B0aW9ucy5uc29jayAtIFRoZSBzb2NrZXQgdXNlZCBmb3IgY29tbXVuaWNhdGlvbi5cbiAqIEBwYXJhbSB7TmV3UGlwZVByb2R1Y2VyUGFyYW1ldGVyc30gb3B0aW9ucy5wYXJhbWV0ZXJzIC0gUGFyYW1ldGVycyB0byBjb25maWd1cmUgdGhlIG5ldyBwaXBlIHByb2R1Y2VyLlxuICpcbiAqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fSBBIHByb21pc2UgdGhhdCBjb21wbGV0ZXMgd2hlbiB0aGUgbmV3IHBpcGUgcHJvZHVjZXIgaXMgc2V0IHVwLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBhd2FpdCBuZXdQaXBlUHJvZHVjZXJTZXJ2aWNlLm5ld1BpcGVQcm9kdWNlcih7XG4gKiAgIHByb2R1Y2VySWQ6ICdwcm9kdWNlcjEyMycsXG4gKiAgIGlzbGV2ZWw6ICcyJyxcbiAqICAgbnNvY2s6IG15U29ja2V0LFxuICogICBwYXJhbWV0ZXJzOiB7XG4gKiAgICAgZmlyc3Rfcm91bmQ6IHRydWUsXG4gKiAgICAgc2hhcmVTY3JlZW5TdGFydGVkOiBmYWxzZSxcbiAqICAgICBzaGFyZWQ6IGZhbHNlLFxuICogICAgIGxhbmRTY2FwZWQ6IGZhbHNlLFxuICogICAgIHNob3dBbGVydDogYWxlcnRGdW5jdGlvbixcbiAqICAgICBpc1dpZGVTY3JlZW46IHRydWUsXG4gKiAgICAgdXBkYXRlRmlyc3Rfcm91bmQ6IHVwZGF0ZUZpcnN0Um91bmRGdW5jdGlvbixcbiAqICAgICB1cGRhdGVMYW5kU2NhcGVkOiB1cGRhdGVMYW5kU2NhcGVkRnVuY3Rpb24sXG4gKiAgICAgZGV2aWNlOiBteURldmljZSxcbiAqICAgICBjb25zdW1pbmdUcmFuc3BvcnRzOiBbXSxcbiAqICAgICBjb25uZWN0UmVjdlRyYW5zcG9ydDogY29ubmVjdFJlY3ZUcmFuc3BvcnRGdW5jdGlvbixcbiAqICAgICByZW9yZGVyU3RyZWFtczogcmVvcmRlclN0cmVhbXNGdW5jdGlvbixcbiAqICAgICBnZXRVcGRhdGVkQWxsUGFyYW1zOiBnZXRVcGRhdGVkUGFyYW1zRnVuY3Rpb24sXG4gKiAgIH1cbiAqIH0pO1xuICogYGBgXG4gKi9cblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIE5ld1BpcGVQcm9kdWNlciB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgc2lnbmFsTmV3Q29uc3VtZXJUcmFuc3BvcnRTZXJ2aWNlOiBTaWduYWxOZXdDb25zdW1lclRyYW5zcG9ydCkge31cblxuICAvKipcbiAgICogSGFuZGxlcyBuZXcgcGlwZSBwcm9kdWNlciBldmVudHMgYW5kIHVwZGF0ZXMgcmVsZXZhbnQgc3RhdGVzLlxuICAgKiBAcGFyYW0ge09iamVjdH0gb3B0aW9ucyAtIFRoZSBvcHRpb25zIG9iamVjdCBjb250YWluaW5nIG5lY2Vzc2FyeSB2YXJpYWJsZXMuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBvcHRpb25zLnByb2R1Y2VySWQgLSBUaGUgSUQgb2YgdGhlIHByb2R1Y2VyLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gb3B0aW9ucy5pc2xldmVsIC0gVGhlIGxldmVsIG9mIHRoZSBwcm9kdWNlci5cbiAgICogQHBhcmFtIHthbnl9IG9wdGlvbnMubnNvY2sgLSBUaGUgc29ja2V0IG9iamVjdC5cbiAgICogQHBhcmFtIHthbnl9IG9wdGlvbnMucGFyYW1ldGVycyAtIEFkZGl0aW9uYWwgcGFyYW1ldGVycyByZXF1aXJlZCBmb3IgdGhlIGZ1bmN0aW9uLlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn1cbiAgICovXG4gIG5ld1BpcGVQcm9kdWNlciA9IGFzeW5jICh7XG4gICAgcHJvZHVjZXJJZCxcbiAgICBpc2xldmVsLFxuICAgIG5zb2NrLFxuICAgIHBhcmFtZXRlcnMsXG4gIH06IE5ld1BpcGVQcm9kdWNlck9wdGlvbnMpOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgICBsZXQge1xuICAgICAgZmlyc3Rfcm91bmQsXG4gICAgICBzaGFyZVNjcmVlblN0YXJ0ZWQsXG4gICAgICBzaGFyZWQsXG4gICAgICBsYW5kU2NhcGVkLFxuICAgICAgc2hvd0FsZXJ0LFxuICAgICAgaXNXaWRlU2NyZWVuLFxuICAgICAgdXBkYXRlRmlyc3Rfcm91bmQsXG4gICAgICB1cGRhdGVMYW5kU2NhcGVkLFxuICAgIH0gPSBwYXJhbWV0ZXJzO1xuXG4gICAgdHJ5IHtcbiAgICAgIC8vIFBlcmZvcm0gc2lnbmFsaW5nIGZvciBuZXcgY29uc3VtZXIgdHJhbnNwb3J0XG4gICAgICBhd2FpdCB0aGlzLnNpZ25hbE5ld0NvbnN1bWVyVHJhbnNwb3J0U2VydmljZS5zaWduYWxOZXdDb25zdW1lclRyYW5zcG9ydCh7XG4gICAgICAgIHJlbW90ZVByb2R1Y2VySWQ6IHByb2R1Y2VySWQsXG4gICAgICAgIGlzbGV2ZWw6IGlzbGV2ZWwsXG4gICAgICAgIG5zb2NrOiBuc29jayxcbiAgICAgICAgcGFyYW1ldGVyczogcGFyYW1ldGVycyxcbiAgICAgIH0pO1xuXG4gICAgICBmaXJzdF9yb3VuZCA9IGZhbHNlO1xuICAgICAgaWYgKHNoYXJlU2NyZWVuU3RhcnRlZCB8fCBzaGFyZWQpIHtcbiAgICAgICAgaWYgKCFpc1dpZGVTY3JlZW4pIHtcbiAgICAgICAgICBpZiAoIWxhbmRTY2FwZWQpIHtcbiAgICAgICAgICAgIGlmIChzaG93QWxlcnQpIHtcbiAgICAgICAgICAgICAgc2hvd0FsZXJ0KHtcbiAgICAgICAgICAgICAgICBtZXNzYWdlOiAnUGxlYXNlIHJvdGF0ZSB5b3VyIGRldmljZSB0byBsYW5kc2NhcGUgbW9kZSBmb3IgYmV0dGVyIGV4cGVyaWVuY2UnLFxuICAgICAgICAgICAgICAgIHR5cGU6ICdzdWNjZXNzJyxcbiAgICAgICAgICAgICAgICBkdXJhdGlvbjogMzAwMCxcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBsYW5kU2NhcGVkID0gdHJ1ZTtcbiAgICAgICAgICAgIHVwZGF0ZUxhbmRTY2FwZWQobGFuZFNjYXBlZCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgZmlyc3Rfcm91bmQgPSB0cnVlO1xuICAgICAgICB1cGRhdGVGaXJzdF9yb3VuZChmaXJzdF9yb3VuZCk7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGluIG5ld1BpcGVQcm9kdWNlcjonLCBlcnJvcik7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ZhaWxlZCB0byBoYW5kbGUgbmV3IHBpcGUgcHJvZHVjZXIgZXZlbnQuJyk7XG4gICAgfVxuICB9O1xufVxuIl19
|
|
@@ -1,78 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
/**
|
|
4
|
-
* @service ProducerClosed
|
|
5
|
-
* @description Service to manage the closing of a producer, including resizing video elements and updating consumer transports.
|
|
6
|
-
*
|
|
7
|
-
* @method producerClosed
|
|
8
|
-
* Closes a specific producer by its ID, adjusts any associated video elements, and updates the list of consumer transports.
|
|
9
|
-
*
|
|
10
|
-
* @param {ProducerClosedOptions} options - Options for closing the specified producer.
|
|
11
|
-
* @param {string} options.remoteProducerId - Unique ID for the producer to close.
|
|
12
|
-
* @param {ProducerClosedParameters} options.parameters - Parameters to configure the producer closure and related updates.
|
|
13
|
-
*
|
|
14
|
-
* @returns {Promise<void>} A promise that resolves when the producer has been closed and relevant updates have been made.
|
|
15
|
-
*
|
|
16
|
-
* @example
|
|
17
|
-
* ```typescript
|
|
18
|
-
* await producerClosedService.producerClosed({
|
|
19
|
-
* remoteProducerId: 'producer123',
|
|
20
|
-
* parameters: {
|
|
21
|
-
* consumerTransports: currentTransports,
|
|
22
|
-
* screenId: 'screen123',
|
|
23
|
-
* updateConsumerTransports: updateTransportList,
|
|
24
|
-
* closeAndResize: closeAndResizeFunction,
|
|
25
|
-
* getUpdatedAllParams: getUpdatedParamsFunction,
|
|
26
|
-
* }
|
|
27
|
-
* });
|
|
28
|
-
* ```
|
|
29
|
-
*/
|
|
30
|
-
export class ProducerClosed {
|
|
31
|
-
/**
|
|
32
|
-
* Handles the closing of a producer and resizes video elements.
|
|
33
|
-
* @param {Object} options - The options object containing necessary variables.
|
|
34
|
-
* @param {string} options.remoteProducerId - The ID of the remote producer.
|
|
35
|
-
* @param {any} options.parameters - Additional parameters required for the function.
|
|
36
|
-
* @returns {Promise<void>}
|
|
37
|
-
*/
|
|
38
|
-
producerClosed = async ({ remoteProducerId, parameters, }) => {
|
|
39
|
-
let { consumerTransports, screenId, updateConsumerTransports,
|
|
40
|
-
// mediasfu functions
|
|
41
|
-
closeAndResize, } = parameters;
|
|
42
|
-
// Handle producer closed
|
|
43
|
-
const producerToClose = consumerTransports.find((transportData) => transportData.producerId === remoteProducerId);
|
|
44
|
-
if (!producerToClose) {
|
|
45
|
-
return;
|
|
46
|
-
}
|
|
47
|
-
// Check if the ID of the producer to close is == screenId
|
|
48
|
-
let kind = producerToClose.consumer.kind;
|
|
49
|
-
if (producerToClose.producerId == screenId) {
|
|
50
|
-
kind = 'screenshare';
|
|
51
|
-
}
|
|
52
|
-
try {
|
|
53
|
-
await producerToClose['consumerTransport'].close();
|
|
54
|
-
}
|
|
55
|
-
catch (error) {
|
|
56
|
-
console.error('Error closing consumerTransport:', error);
|
|
57
|
-
}
|
|
58
|
-
try {
|
|
59
|
-
producerToClose.consumer.close();
|
|
60
|
-
}
|
|
61
|
-
catch (error) {
|
|
62
|
-
console.error('Error closing consumer:', error);
|
|
63
|
-
}
|
|
64
|
-
consumerTransports = consumerTransports.filter((transportData) => transportData.producerId !== remoteProducerId);
|
|
65
|
-
updateConsumerTransports(consumerTransports);
|
|
66
|
-
// Close and resize the videos
|
|
67
|
-
await closeAndResize({ producerId: remoteProducerId, kind: kind, parameters: parameters });
|
|
68
|
-
};
|
|
69
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ProducerClosed, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
70
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ProducerClosed, providedIn: 'root' });
|
|
71
|
-
}
|
|
72
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ProducerClosed, decorators: [{
|
|
73
|
-
type: Injectable,
|
|
74
|
-
args: [{
|
|
75
|
-
providedIn: 'root',
|
|
76
|
-
}]
|
|
77
|
-
}] });
|
|
78
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjZXItY2xvc2VkLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tZWRpYXNmdS1hbmd1bGFyL3NyYy9saWIvY29uc3VtZXJzL3NvY2tldC1yZWNlaXZlLW1ldGhvZHMvcHJvZHVjZXItY2xvc2VkLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFzQjNDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTBCRztBQU1ILE1BQU0sT0FBTyxjQUFjO0lBQ3pCOzs7Ozs7T0FNRztJQUNILGNBQWMsR0FBRyxLQUFLLEVBQUUsRUFDdEIsZ0JBQWdCLEVBQ2hCLFVBQVUsR0FDWSxFQUFpQixFQUFFO1FBQ3pDLElBQUksRUFDRixrQkFBa0IsRUFDbEIsUUFBUSxFQUNSLHdCQUF3QjtRQUV4QixxQkFBcUI7UUFDckIsY0FBYyxHQUNmLEdBQUcsVUFBVSxDQUFDO1FBRWYseUJBQXlCO1FBQ3pCLE1BQU0sZUFBZSxHQUFHLGtCQUFrQixDQUFDLElBQUksQ0FDN0MsQ0FBQyxhQUFrQixFQUFFLEVBQUUsQ0FBQyxhQUFhLENBQUMsVUFBVSxLQUFLLGdCQUFnQixDQUN0RSxDQUFDO1FBRUYsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQ3JCLE9BQU87UUFDVCxDQUFDO1FBRUQsMERBQTBEO1FBQzFELElBQUksSUFBSSxHQUFXLGVBQWUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDO1FBRWpELElBQUksZUFBZSxDQUFDLFVBQVUsSUFBSSxRQUFRLEVBQUUsQ0FBQztZQUMzQyxJQUFJLEdBQUcsYUFBYSxDQUFDO1FBQ3ZCLENBQUM7UUFDRCxJQUFJLENBQUM7WUFDSCxNQUFNLGVBQWUsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3JELENBQUM7UUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1lBQ2YsT0FBTyxDQUFDLEtBQUssQ0FBQyxrQ0FBa0MsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUMzRCxDQUFDO1FBRUQsSUFBSSxDQUFDO1lBQ0gsZUFBZSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNuQyxDQUFDO1FBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztZQUNmLE9BQU8sQ0FBQyxLQUFLLENBQUMseUJBQXlCLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDbEQsQ0FBQztRQUVELGtCQUFrQixHQUFHLGtCQUFrQixDQUFDLE1BQU0sQ0FDNUMsQ0FBQyxhQUFrQixFQUFFLEVBQUUsQ0FBQyxhQUFhLENBQUMsVUFBVSxLQUFLLGdCQUFnQixDQUN0RSxDQUFDO1FBQ0Ysd0JBQXdCLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUU3Qyw4QkFBOEI7UUFDOUIsTUFBTSxjQUFjLENBQUMsRUFBRSxVQUFVLEVBQUUsZ0JBQWdCLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQztJQUM3RixDQUFDLENBQUM7dUdBdkRTLGNBQWM7MkdBQWQsY0FBYyxjQUZiLE1BQU07OzJGQUVQLGNBQWM7a0JBSDFCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVHJhbnNwb3J0LCBDbG9zZUFuZFJlc2l6ZVBhcmFtZXRlcnMsIENsb3NlQW5kUmVzaXplVHlwZSB9IGZyb20gJy4uLy4uL0B0eXBlcy90eXBlcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHJvZHVjZXJDbG9zZWRQYXJhbWV0ZXJzIGV4dGVuZHMgQ2xvc2VBbmRSZXNpemVQYXJhbWV0ZXJzIHtcbiAgY29uc3VtZXJUcmFuc3BvcnRzOiBUcmFuc3BvcnRbXTtcbiAgc2NyZWVuSWQ/OiBzdHJpbmc7XG4gIHVwZGF0ZUNvbnN1bWVyVHJhbnNwb3J0czogKHRyYW5zcG9ydHM6IFRyYW5zcG9ydFtdKSA9PiB2b2lkO1xuXG4gIC8vIG1lZGlhc2Z1IGZ1bmN0aW9uc1xuICBjbG9zZUFuZFJlc2l6ZTogQ2xvc2VBbmRSZXNpemVUeXBlO1xuICBnZXRVcGRhdGVkQWxsUGFyYW1zOiAoKSA9PiBQcm9kdWNlckNsb3NlZFBhcmFtZXRlcnM7XG4gIFtrZXk6IHN0cmluZ106IGFueTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQcm9kdWNlckNsb3NlZE9wdGlvbnMge1xuICByZW1vdGVQcm9kdWNlcklkOiBzdHJpbmc7XG4gIHBhcmFtZXRlcnM6IFByb2R1Y2VyQ2xvc2VkUGFyYW1ldGVycztcbn1cblxuLy8gRXhwb3J0IHRoZSB0eXBlIGRlZmluaXRpb24gZm9yIHRoZSBmdW5jdGlvblxuZXhwb3J0IHR5cGUgUHJvZHVjZXJDbG9zZWRUeXBlID0gKG9wdGlvbnM6IFByb2R1Y2VyQ2xvc2VkT3B0aW9ucykgPT4gUHJvbWlzZTx2b2lkPjtcblxuLyoqXG4gKiBAc2VydmljZSBQcm9kdWNlckNsb3NlZFxuICogQGRlc2NyaXB0aW9uIFNlcnZpY2UgdG8gbWFuYWdlIHRoZSBjbG9zaW5nIG9mIGEgcHJvZHVjZXIsIGluY2x1ZGluZyByZXNpemluZyB2aWRlbyBlbGVtZW50cyBhbmQgdXBkYXRpbmcgY29uc3VtZXIgdHJhbnNwb3J0cy5cbiAqXG4gKiBAbWV0aG9kIHByb2R1Y2VyQ2xvc2VkXG4gKiBDbG9zZXMgYSBzcGVjaWZpYyBwcm9kdWNlciBieSBpdHMgSUQsIGFkanVzdHMgYW55IGFzc29jaWF0ZWQgdmlkZW8gZWxlbWVudHMsIGFuZCB1cGRhdGVzIHRoZSBsaXN0IG9mIGNvbnN1bWVyIHRyYW5zcG9ydHMuXG4gKlxuICogQHBhcmFtIHtQcm9kdWNlckNsb3NlZE9wdGlvbnN9IG9wdGlvbnMgLSBPcHRpb25zIGZvciBjbG9zaW5nIHRoZSBzcGVjaWZpZWQgcHJvZHVjZXIuXG4gKiBAcGFyYW0ge3N0cmluZ30gb3B0aW9ucy5yZW1vdGVQcm9kdWNlcklkIC0gVW5pcXVlIElEIGZvciB0aGUgcHJvZHVjZXIgdG8gY2xvc2UuXG4gKiBAcGFyYW0ge1Byb2R1Y2VyQ2xvc2VkUGFyYW1ldGVyc30gb3B0aW9ucy5wYXJhbWV0ZXJzIC0gUGFyYW1ldGVycyB0byBjb25maWd1cmUgdGhlIHByb2R1Y2VyIGNsb3N1cmUgYW5kIHJlbGF0ZWQgdXBkYXRlcy5cbiAqXG4gKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn0gQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgcHJvZHVjZXIgaGFzIGJlZW4gY2xvc2VkIGFuZCByZWxldmFudCB1cGRhdGVzIGhhdmUgYmVlbiBtYWRlLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBhd2FpdCBwcm9kdWNlckNsb3NlZFNlcnZpY2UucHJvZHVjZXJDbG9zZWQoe1xuICogICByZW1vdGVQcm9kdWNlcklkOiAncHJvZHVjZXIxMjMnLFxuICogICBwYXJhbWV0ZXJzOiB7XG4gKiAgICAgY29uc3VtZXJUcmFuc3BvcnRzOiBjdXJyZW50VHJhbnNwb3J0cyxcbiAqICAgICBzY3JlZW5JZDogJ3NjcmVlbjEyMycsXG4gKiAgICAgdXBkYXRlQ29uc3VtZXJUcmFuc3BvcnRzOiB1cGRhdGVUcmFuc3BvcnRMaXN0LFxuICogICAgIGNsb3NlQW5kUmVzaXplOiBjbG9zZUFuZFJlc2l6ZUZ1bmN0aW9uLFxuICogICAgIGdldFVwZGF0ZWRBbGxQYXJhbXM6IGdldFVwZGF0ZWRQYXJhbXNGdW5jdGlvbixcbiAqICAgfVxuICogfSk7XG4gKiBgYGBcbiAqL1xuXG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBQcm9kdWNlckNsb3NlZCB7XG4gIC8qKlxuICAgKiBIYW5kbGVzIHRoZSBjbG9zaW5nIG9mIGEgcHJvZHVjZXIgYW5kIHJlc2l6ZXMgdmlkZW8gZWxlbWVudHMuXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRpb25zIC0gVGhlIG9wdGlvbnMgb2JqZWN0IGNvbnRhaW5pbmcgbmVjZXNzYXJ5IHZhcmlhYmxlcy5cbiAgICogQHBhcmFtIHtzdHJpbmd9IG9wdGlvbnMucmVtb3RlUHJvZHVjZXJJZCAtIFRoZSBJRCBvZiB0aGUgcmVtb3RlIHByb2R1Y2VyLlxuICAgKiBAcGFyYW0ge2FueX0gb3B0aW9ucy5wYXJhbWV0ZXJzIC0gQWRkaXRpb25hbCBwYXJhbWV0ZXJzIHJlcXVpcmVkIGZvciB0aGUgZnVuY3Rpb24uXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fVxuICAgKi9cbiAgcHJvZHVjZXJDbG9zZWQgPSBhc3luYyAoe1xuICAgIHJlbW90ZVByb2R1Y2VySWQsXG4gICAgcGFyYW1ldGVycyxcbiAgfTogUHJvZHVjZXJDbG9zZWRPcHRpb25zKTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gICAgbGV0IHtcbiAgICAgIGNvbnN1bWVyVHJhbnNwb3J0cyxcbiAgICAgIHNjcmVlbklkLFxuICAgICAgdXBkYXRlQ29uc3VtZXJUcmFuc3BvcnRzLFxuXG4gICAgICAvLyBtZWRpYXNmdSBmdW5jdGlvbnNcbiAgICAgIGNsb3NlQW5kUmVzaXplLFxuICAgIH0gPSBwYXJhbWV0ZXJzO1xuXG4gICAgLy8gSGFuZGxlIHByb2R1Y2VyIGNsb3NlZFxuICAgIGNvbnN0IHByb2R1Y2VyVG9DbG9zZSA9IGNvbnN1bWVyVHJhbnNwb3J0cy5maW5kKFxuICAgICAgKHRyYW5zcG9ydERhdGE6IGFueSkgPT4gdHJhbnNwb3J0RGF0YS5wcm9kdWNlcklkID09PSByZW1vdGVQcm9kdWNlcklkLFxuICAgICk7XG5cbiAgICBpZiAoIXByb2R1Y2VyVG9DbG9zZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIENoZWNrIGlmIHRoZSBJRCBvZiB0aGUgcHJvZHVjZXIgdG8gY2xvc2UgaXMgPT0gc2NyZWVuSWRcbiAgICBsZXQga2luZDogc3RyaW5nID0gcHJvZHVjZXJUb0Nsb3NlLmNvbnN1bWVyLmtpbmQ7XG5cbiAgICBpZiAocHJvZHVjZXJUb0Nsb3NlLnByb2R1Y2VySWQgPT0gc2NyZWVuSWQpIHtcbiAgICAgIGtpbmQgPSAnc2NyZWVuc2hhcmUnO1xuICAgIH1cbiAgICB0cnkge1xuICAgICAgYXdhaXQgcHJvZHVjZXJUb0Nsb3NlWydjb25zdW1lclRyYW5zcG9ydCddLmNsb3NlKCk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGNsb3NpbmcgY29uc3VtZXJUcmFuc3BvcnQ6JywgZXJyb3IpO1xuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICBwcm9kdWNlclRvQ2xvc2UuY29uc3VtZXIuY2xvc2UoKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgY2xvc2luZyBjb25zdW1lcjonLCBlcnJvcik7XG4gICAgfVxuXG4gICAgY29uc3VtZXJUcmFuc3BvcnRzID0gY29uc3VtZXJUcmFuc3BvcnRzLmZpbHRlcihcbiAgICAgICh0cmFuc3BvcnREYXRhOiBhbnkpID0+IHRyYW5zcG9ydERhdGEucHJvZHVjZXJJZCAhPT0gcmVtb3RlUHJvZHVjZXJJZCxcbiAgICApO1xuICAgIHVwZGF0ZUNvbnN1bWVyVHJhbnNwb3J0cyhjb25zdW1lclRyYW5zcG9ydHMpO1xuXG4gICAgLy8gQ2xvc2UgYW5kIHJlc2l6ZSB0aGUgdmlkZW9zXG4gICAgYXdhaXQgY2xvc2VBbmRSZXNpemUoeyBwcm9kdWNlcklkOiByZW1vdGVQcm9kdWNlcklkLCBraW5kOiBraW5kLCBwYXJhbWV0ZXJzOiBwYXJhbWV0ZXJzIH0pO1xuICB9O1xufVxuIl19
|
|
@@ -1,120 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
/**
|
|
4
|
-
* StartShareScreen - Service to initiate screen sharing with configurable options for different environments.
|
|
5
|
-
*
|
|
6
|
-
* This service initiates the screen sharing process, handling both successful and failed attempts
|
|
7
|
-
* and updating the shared state accordingly.
|
|
8
|
-
*
|
|
9
|
-
* @class
|
|
10
|
-
* @name StartShareScreen
|
|
11
|
-
* @example
|
|
12
|
-
* ```typescript
|
|
13
|
-
* const startShareScreenService = new StartShareScreen();
|
|
14
|
-
* await startShareScreenService.startShareScreen({
|
|
15
|
-
* parameters: {
|
|
16
|
-
* shared: false,
|
|
17
|
-
* showAlert: (alert) => console.log(alert.message),
|
|
18
|
-
* updateShared: (shared) => console.log('Shared state:', shared),
|
|
19
|
-
* onWeb: true,
|
|
20
|
-
* targetWidth: 1920,
|
|
21
|
-
* targetHeight: 1080,
|
|
22
|
-
* streamSuccessScreen: async ({ stream }) => {
|
|
23
|
-
* // Handle the successful stream here
|
|
24
|
-
* console.log('Stream started:', stream);
|
|
25
|
-
* },
|
|
26
|
-
* },
|
|
27
|
-
* });
|
|
28
|
-
* ```
|
|
29
|
-
*
|
|
30
|
-
* @param {StartShareScreenOptions} options - The options for starting screen sharing.
|
|
31
|
-
* @param {Object} options.parameters - The parameters controlling screen sharing behavior.
|
|
32
|
-
* @param {boolean} options.parameters.shared - Indicates if the screen is currently shared.
|
|
33
|
-
* @param {Function} options.parameters.showAlert - Function to display alerts.
|
|
34
|
-
* @param {Function} options.parameters.updateShared - Function to update the shared state.
|
|
35
|
-
* @param {boolean} options.parameters.onWeb - Indicates if the app is running in a web environment.
|
|
36
|
-
* @param {number} [options.parameters.targetWidth=1280] - Optional width setting for shared screen resolution.
|
|
37
|
-
* @param {number} [options.parameters.targetHeight=720] - Optional height setting for shared screen resolution.
|
|
38
|
-
* @param {Function} options.parameters.streamSuccessScreen - Function to handle successful screen sharing.
|
|
39
|
-
*
|
|
40
|
-
* @method startShareScreen - Initiates the screen sharing process based on the provided parameters.
|
|
41
|
-
* @returns {Promise<void>} Resolves when the screen sharing process is complete or fails.
|
|
42
|
-
*/
|
|
43
|
-
export class StartShareScreen {
|
|
44
|
-
/**
|
|
45
|
-
* Starts the screen sharing process.
|
|
46
|
-
*
|
|
47
|
-
* @param {StartShareScreenOptions} options - The options for starting screen sharing.
|
|
48
|
-
* @param {Object} options.parameters - The parameters for screen sharing.
|
|
49
|
-
* @param {boolean} options.parameters.shared - Indicates if the screen is currently being shared.
|
|
50
|
-
* @param {Function} options.parameters.showAlert - Function to show alert messages.
|
|
51
|
-
* @param {Function} options.parameters.updateShared - Function to update the shared state.
|
|
52
|
-
* @param {boolean} options.parameters.onWeb - Indicates if the application is running on a web platform.
|
|
53
|
-
* @param {number} [options.parameters.targetWidth] - The target width for screen sharing.
|
|
54
|
-
* @param {number} [options.parameters.targetHeight] - The target height for screen sharing.
|
|
55
|
-
* @param {Function} options.parameters.streamSuccessScreen - Function to handle successful screen sharing.
|
|
56
|
-
*
|
|
57
|
-
* @returns {Promise<void>} A promise that resolves when the screen sharing process is complete.
|
|
58
|
-
*
|
|
59
|
-
* @throws Will log an error message if there is an issue starting the screen share.
|
|
60
|
-
*/
|
|
61
|
-
startShareScreen = async ({ parameters }) => {
|
|
62
|
-
// start screen share function
|
|
63
|
-
// attempt to start screen share and return true if successful
|
|
64
|
-
let { shared, showAlert, updateShared, onWeb, targetWidth = 1280, targetHeight = 720, streamSuccessScreen, } = parameters;
|
|
65
|
-
try {
|
|
66
|
-
if (!onWeb) {
|
|
67
|
-
showAlert?.({
|
|
68
|
-
message: 'You cannot share screen while on mobile',
|
|
69
|
-
type: 'danger',
|
|
70
|
-
duration: 3000,
|
|
71
|
-
});
|
|
72
|
-
return;
|
|
73
|
-
}
|
|
74
|
-
if (navigator.mediaDevices && navigator.mediaDevices.getDisplayMedia) {
|
|
75
|
-
shared = true;
|
|
76
|
-
await navigator.mediaDevices
|
|
77
|
-
.getDisplayMedia({
|
|
78
|
-
video: {
|
|
79
|
-
width: targetWidth,
|
|
80
|
-
height: targetHeight,
|
|
81
|
-
frameRate: 30,
|
|
82
|
-
},
|
|
83
|
-
audio: false,
|
|
84
|
-
})
|
|
85
|
-
.then(async (stream) => {
|
|
86
|
-
await streamSuccessScreen({ stream, parameters });
|
|
87
|
-
})
|
|
88
|
-
.catch(async () => {
|
|
89
|
-
shared = false;
|
|
90
|
-
showAlert?.({
|
|
91
|
-
message: 'Could not share screen, check and retry',
|
|
92
|
-
type: 'danger',
|
|
93
|
-
duration: 3000,
|
|
94
|
-
});
|
|
95
|
-
});
|
|
96
|
-
}
|
|
97
|
-
else {
|
|
98
|
-
showAlert?.({
|
|
99
|
-
message: 'Could not share screen, check and retry',
|
|
100
|
-
type: 'danger',
|
|
101
|
-
duration: 3000,
|
|
102
|
-
});
|
|
103
|
-
}
|
|
104
|
-
// update the shared variable
|
|
105
|
-
updateShared(shared);
|
|
106
|
-
}
|
|
107
|
-
catch (error) {
|
|
108
|
-
console.log('Error starting screen share', error);
|
|
109
|
-
}
|
|
110
|
-
};
|
|
111
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: StartShareScreen, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
112
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: StartShareScreen, providedIn: 'root' });
|
|
113
|
-
}
|
|
114
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: StartShareScreen, decorators: [{
|
|
115
|
-
type: Injectable,
|
|
116
|
-
args: [{
|
|
117
|
-
providedIn: 'root',
|
|
118
|
-
}]
|
|
119
|
-
}] });
|
|
120
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhcnQtc2hhcmUtc2NyZWVuLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tZWRpYXNmdS1hbmd1bGFyL3NyYy9saWIvY29uc3VtZXJzL3N0YXJ0LXNoYXJlLXNjcmVlbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBcUIzQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBdUNHO0FBTUgsTUFBTSxPQUFPLGdCQUFnQjtJQUMzQjs7Ozs7Ozs7Ozs7Ozs7OztPQWdCRztJQUNILGdCQUFnQixHQUFHLEtBQUssRUFBRSxFQUFFLFVBQVUsRUFBMkIsRUFBaUIsRUFBRTtRQUNsRiw4QkFBOEI7UUFDOUIsOERBQThEO1FBRTlELElBQUksRUFDRixNQUFNLEVBQ04sU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBQ0wsV0FBVyxHQUFHLElBQUksRUFDbEIsWUFBWSxHQUFHLEdBQUcsRUFDbEIsbUJBQW1CLEdBQ3BCLEdBQUcsVUFBVSxDQUFDO1FBRWYsSUFBSSxDQUFDO1lBQ0gsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUNYLFNBQVMsRUFBRSxDQUFDO29CQUNWLE9BQU8sRUFBRSx5Q0FBeUM7b0JBQ2xELElBQUksRUFBRSxRQUFRO29CQUNkLFFBQVEsRUFBRSxJQUFJO2lCQUNmLENBQUMsQ0FBQztnQkFDSCxPQUFPO1lBQ1QsQ0FBQztZQUVELElBQUksU0FBUyxDQUFDLFlBQVksSUFBSSxTQUFTLENBQUMsWUFBWSxDQUFDLGVBQWUsRUFBRSxDQUFDO2dCQUNyRSxNQUFNLEdBQUcsSUFBSSxDQUFDO2dCQUNkLE1BQU0sU0FBUyxDQUFDLFlBQVk7cUJBQ3pCLGVBQWUsQ0FBQztvQkFDZixLQUFLLEVBQUU7d0JBQ0wsS0FBSyxFQUFFLFdBQVc7d0JBQ2xCLE1BQU0sRUFBRSxZQUFZO3dCQUNwQixTQUFTLEVBQUUsRUFBRTtxQkFDZDtvQkFDRCxLQUFLLEVBQUUsS0FBSztpQkFDYixDQUFDO3FCQUNELElBQUksQ0FBQyxLQUFLLEVBQUUsTUFBbUIsRUFBRSxFQUFFO29CQUNsQyxNQUFNLG1CQUFtQixDQUFDLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUM7Z0JBQ3BELENBQUMsQ0FBQztxQkFDRCxLQUFLLENBQUMsS0FBSyxJQUFJLEVBQUU7b0JBQ2hCLE1BQU0sR0FBRyxLQUFLLENBQUM7b0JBQ2YsU0FBUyxFQUFFLENBQUM7d0JBQ1YsT0FBTyxFQUFFLHlDQUF5Qzt3QkFDbEQsSUFBSSxFQUFFLFFBQVE7d0JBQ2QsUUFBUSxFQUFFLElBQUk7cUJBQ2YsQ0FBQyxDQUFDO2dCQUNMLENBQUMsQ0FBQyxDQUFDO1lBQ1AsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLFNBQVMsRUFBRSxDQUFDO29CQUNWLE9BQU8sRUFBRSx5Q0FBeUM7b0JBQ2xELElBQUksRUFBRSxRQUFRO29CQUNkLFFBQVEsRUFBRSxJQUFJO2lCQUNmLENBQUMsQ0FBQztZQUNMLENBQUM7WUFFRCw2QkFBNkI7WUFDN0IsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3ZCLENBQUM7UUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1lBQ2YsT0FBTyxDQUFDLEdBQUcsQ0FBQyw2QkFBNkIsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNwRCxDQUFDO0lBQ0gsQ0FBQyxDQUFDO3VHQTdFUyxnQkFBZ0I7MkdBQWhCLGdCQUFnQixjQUZmLE1BQU07OzJGQUVQLGdCQUFnQjtrQkFINUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdHJlYW1TdWNjZXNzU2NyZWVuVHlwZSwgU3RyZWFtU3VjY2Vzc1NjcmVlblBhcmFtZXRlcnMsIFNob3dBbGVydCB9IGZyb20gJy4uL0B0eXBlcy90eXBlcyc7XG5leHBvcnQgaW50ZXJmYWNlIFN0YXJ0U2hhcmVTY3JlZW5QYXJhbWV0ZXJzIGV4dGVuZHMgU3RyZWFtU3VjY2Vzc1NjcmVlblBhcmFtZXRlcnMge1xuICBzaGFyZWQ6IGJvb2xlYW47XG4gIHNob3dBbGVydD86IFNob3dBbGVydDtcbiAgdXBkYXRlU2hhcmVkOiAoc2hhcmVkOiBib29sZWFuKSA9PiB2b2lkO1xuICBvbldlYjogYm9vbGVhbjtcbiAgdGFyZ2V0V2lkdGg/OiBudW1iZXI7XG4gIHRhcmdldEhlaWdodD86IG51bWJlcjtcblxuICAvLyBtZWRpYXNmdSBmdW5jdGlvbnNcbiAgc3RyZWFtU3VjY2Vzc1NjcmVlbjogU3RyZWFtU3VjY2Vzc1NjcmVlblR5cGU7XG4gIFtrZXk6IHN0cmluZ106IGFueTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTdGFydFNoYXJlU2NyZWVuT3B0aW9ucyB7XG4gIHBhcmFtZXRlcnM6IFN0YXJ0U2hhcmVTY3JlZW5QYXJhbWV0ZXJzO1xufVxuXG4vLyBFeHBvcnQgdGhlIHR5cGUgZGVmaW5pdGlvbiBmb3IgdGhlIGZ1bmN0aW9uXG5leHBvcnQgdHlwZSBTdGFydFNoYXJlU2NyZWVuVHlwZSA9IChvcHRpb25zOiBTdGFydFNoYXJlU2NyZWVuT3B0aW9ucykgPT4gUHJvbWlzZTx2b2lkPjtcbi8qKlxuICogU3RhcnRTaGFyZVNjcmVlbiAtIFNlcnZpY2UgdG8gaW5pdGlhdGUgc2NyZWVuIHNoYXJpbmcgd2l0aCBjb25maWd1cmFibGUgb3B0aW9ucyBmb3IgZGlmZmVyZW50IGVudmlyb25tZW50cy5cbiAqXG4gKiBUaGlzIHNlcnZpY2UgaW5pdGlhdGVzIHRoZSBzY3JlZW4gc2hhcmluZyBwcm9jZXNzLCBoYW5kbGluZyBib3RoIHN1Y2Nlc3NmdWwgYW5kIGZhaWxlZCBhdHRlbXB0c1xuICogYW5kIHVwZGF0aW5nIHRoZSBzaGFyZWQgc3RhdGUgYWNjb3JkaW5nbHkuXG4gKlxuICogQGNsYXNzXG4gKiBAbmFtZSBTdGFydFNoYXJlU2NyZWVuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3Qgc3RhcnRTaGFyZVNjcmVlblNlcnZpY2UgPSBuZXcgU3RhcnRTaGFyZVNjcmVlbigpO1xuICogYXdhaXQgc3RhcnRTaGFyZVNjcmVlblNlcnZpY2Uuc3RhcnRTaGFyZVNjcmVlbih7XG4gKiAgIHBhcmFtZXRlcnM6IHtcbiAqICAgICBzaGFyZWQ6IGZhbHNlLFxuICogICAgIHNob3dBbGVydDogKGFsZXJ0KSA9PiBjb25zb2xlLmxvZyhhbGVydC5tZXNzYWdlKSxcbiAqICAgICB1cGRhdGVTaGFyZWQ6IChzaGFyZWQpID0+IGNvbnNvbGUubG9nKCdTaGFyZWQgc3RhdGU6Jywgc2hhcmVkKSxcbiAqICAgICBvbldlYjogdHJ1ZSxcbiAqICAgICB0YXJnZXRXaWR0aDogMTkyMCxcbiAqICAgICB0YXJnZXRIZWlnaHQ6IDEwODAsXG4gKiAgICAgc3RyZWFtU3VjY2Vzc1NjcmVlbjogYXN5bmMgKHsgc3RyZWFtIH0pID0+IHtcbiAqICAgICAgIC8vIEhhbmRsZSB0aGUgc3VjY2Vzc2Z1bCBzdHJlYW0gaGVyZVxuICogICAgICAgY29uc29sZS5sb2coJ1N0cmVhbSBzdGFydGVkOicsIHN0cmVhbSk7XG4gKiAgICAgfSxcbiAqICAgfSxcbiAqIH0pO1xuICogYGBgXG4gKlxuICogQHBhcmFtIHtTdGFydFNoYXJlU2NyZWVuT3B0aW9uc30gb3B0aW9ucyAtIFRoZSBvcHRpb25zIGZvciBzdGFydGluZyBzY3JlZW4gc2hhcmluZy5cbiAqIEBwYXJhbSB7T2JqZWN0fSBvcHRpb25zLnBhcmFtZXRlcnMgLSBUaGUgcGFyYW1ldGVycyBjb250cm9sbGluZyBzY3JlZW4gc2hhcmluZyBiZWhhdmlvci5cbiAqIEBwYXJhbSB7Ym9vbGVhbn0gb3B0aW9ucy5wYXJhbWV0ZXJzLnNoYXJlZCAtIEluZGljYXRlcyBpZiB0aGUgc2NyZWVuIGlzIGN1cnJlbnRseSBzaGFyZWQuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBvcHRpb25zLnBhcmFtZXRlcnMuc2hvd0FsZXJ0IC0gRnVuY3Rpb24gdG8gZGlzcGxheSBhbGVydHMuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBvcHRpb25zLnBhcmFtZXRlcnMudXBkYXRlU2hhcmVkIC0gRnVuY3Rpb24gdG8gdXBkYXRlIHRoZSBzaGFyZWQgc3RhdGUuXG4gKiBAcGFyYW0ge2Jvb2xlYW59IG9wdGlvbnMucGFyYW1ldGVycy5vbldlYiAtIEluZGljYXRlcyBpZiB0aGUgYXBwIGlzIHJ1bm5pbmcgaW4gYSB3ZWIgZW52aXJvbm1lbnQuXG4gKiBAcGFyYW0ge251bWJlcn0gW29wdGlvbnMucGFyYW1ldGVycy50YXJnZXRXaWR0aD0xMjgwXSAtIE9wdGlvbmFsIHdpZHRoIHNldHRpbmcgZm9yIHNoYXJlZCBzY3JlZW4gcmVzb2x1dGlvbi5cbiAqIEBwYXJhbSB7bnVtYmVyfSBbb3B0aW9ucy5wYXJhbWV0ZXJzLnRhcmdldEhlaWdodD03MjBdIC0gT3B0aW9uYWwgaGVpZ2h0IHNldHRpbmcgZm9yIHNoYXJlZCBzY3JlZW4gcmVzb2x1dGlvbi5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IG9wdGlvbnMucGFyYW1ldGVycy5zdHJlYW1TdWNjZXNzU2NyZWVuIC0gRnVuY3Rpb24gdG8gaGFuZGxlIHN1Y2Nlc3NmdWwgc2NyZWVuIHNoYXJpbmcuXG4gKlxuICogQG1ldGhvZCBzdGFydFNoYXJlU2NyZWVuIC0gSW5pdGlhdGVzIHRoZSBzY3JlZW4gc2hhcmluZyBwcm9jZXNzIGJhc2VkIG9uIHRoZSBwcm92aWRlZCBwYXJhbWV0ZXJzLlxuICogQHJldHVybnMge1Byb21pc2U8dm9pZD59IFJlc29sdmVzIHdoZW4gdGhlIHNjcmVlbiBzaGFyaW5nIHByb2Nlc3MgaXMgY29tcGxldGUgb3IgZmFpbHMuXG4gKi9cblxuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgU3RhcnRTaGFyZVNjcmVlbiB7XG4gIC8qKlxuICAgKiBTdGFydHMgdGhlIHNjcmVlbiBzaGFyaW5nIHByb2Nlc3MuXG4gICAqXG4gICAqIEBwYXJhbSB7U3RhcnRTaGFyZVNjcmVlbk9wdGlvbnN9IG9wdGlvbnMgLSBUaGUgb3B0aW9ucyBmb3Igc3RhcnRpbmcgc2NyZWVuIHNoYXJpbmcuXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRpb25zLnBhcmFtZXRlcnMgLSBUaGUgcGFyYW1ldGVycyBmb3Igc2NyZWVuIHNoYXJpbmcuXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gb3B0aW9ucy5wYXJhbWV0ZXJzLnNoYXJlZCAtIEluZGljYXRlcyBpZiB0aGUgc2NyZWVuIGlzIGN1cnJlbnRseSBiZWluZyBzaGFyZWQuXG4gICAqIEBwYXJhbSB7RnVuY3Rpb259IG9wdGlvbnMucGFyYW1ldGVycy5zaG93QWxlcnQgLSBGdW5jdGlvbiB0byBzaG93IGFsZXJ0IG1lc3NhZ2VzLlxuICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBvcHRpb25zLnBhcmFtZXRlcnMudXBkYXRlU2hhcmVkIC0gRnVuY3Rpb24gdG8gdXBkYXRlIHRoZSBzaGFyZWQgc3RhdGUuXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gb3B0aW9ucy5wYXJhbWV0ZXJzLm9uV2ViIC0gSW5kaWNhdGVzIGlmIHRoZSBhcHBsaWNhdGlvbiBpcyBydW5uaW5nIG9uIGEgd2ViIHBsYXRmb3JtLlxuICAgKiBAcGFyYW0ge251bWJlcn0gW29wdGlvbnMucGFyYW1ldGVycy50YXJnZXRXaWR0aF0gLSBUaGUgdGFyZ2V0IHdpZHRoIGZvciBzY3JlZW4gc2hhcmluZy5cbiAgICogQHBhcmFtIHtudW1iZXJ9IFtvcHRpb25zLnBhcmFtZXRlcnMudGFyZ2V0SGVpZ2h0XSAtIFRoZSB0YXJnZXQgaGVpZ2h0IGZvciBzY3JlZW4gc2hhcmluZy5cbiAgICogQHBhcmFtIHtGdW5jdGlvbn0gb3B0aW9ucy5wYXJhbWV0ZXJzLnN0cmVhbVN1Y2Nlc3NTY3JlZW4gLSBGdW5jdGlvbiB0byBoYW5kbGUgc3VjY2Vzc2Z1bCBzY3JlZW4gc2hhcmluZy5cbiAgICpcbiAgICogQHJldHVybnMge1Byb21pc2U8dm9pZD59IEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIHNjcmVlbiBzaGFyaW5nIHByb2Nlc3MgaXMgY29tcGxldGUuXG4gICAqXG4gICAqIEB0aHJvd3MgV2lsbCBsb2cgYW4gZXJyb3IgbWVzc2FnZSBpZiB0aGVyZSBpcyBhbiBpc3N1ZSBzdGFydGluZyB0aGUgc2NyZWVuIHNoYXJlLlxuICAgKi9cbiAgc3RhcnRTaGFyZVNjcmVlbiA9IGFzeW5jICh7IHBhcmFtZXRlcnMgfTogU3RhcnRTaGFyZVNjcmVlbk9wdGlvbnMpOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgICAvLyBzdGFydCBzY3JlZW4gc2hhcmUgZnVuY3Rpb25cbiAgICAvLyBhdHRlbXB0IHRvIHN0YXJ0IHNjcmVlbiBzaGFyZSBhbmQgcmV0dXJuIHRydWUgaWYgc3VjY2Vzc2Z1bFxuXG4gICAgbGV0IHtcbiAgICAgIHNoYXJlZCxcbiAgICAgIHNob3dBbGVydCxcbiAgICAgIHVwZGF0ZVNoYXJlZCxcbiAgICAgIG9uV2ViLFxuICAgICAgdGFyZ2V0V2lkdGggPSAxMjgwLFxuICAgICAgdGFyZ2V0SGVpZ2h0ID0gNzIwLFxuICAgICAgc3RyZWFtU3VjY2Vzc1NjcmVlbixcbiAgICB9ID0gcGFyYW1ldGVycztcblxuICAgIHRyeSB7XG4gICAgICBpZiAoIW9uV2ViKSB7XG4gICAgICAgIHNob3dBbGVydD8uKHtcbiAgICAgICAgICBtZXNzYWdlOiAnWW91IGNhbm5vdCBzaGFyZSBzY3JlZW4gd2hpbGUgb24gbW9iaWxlJyxcbiAgICAgICAgICB0eXBlOiAnZGFuZ2VyJyxcbiAgICAgICAgICBkdXJhdGlvbjogMzAwMCxcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKG5hdmlnYXRvci5tZWRpYURldmljZXMgJiYgbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXREaXNwbGF5TWVkaWEpIHtcbiAgICAgICAgc2hhcmVkID0gdHJ1ZTtcbiAgICAgICAgYXdhaXQgbmF2aWdhdG9yLm1lZGlhRGV2aWNlc1xuICAgICAgICAgIC5nZXREaXNwbGF5TWVkaWEoe1xuICAgICAgICAgICAgdmlkZW86IHtcbiAgICAgICAgICAgICAgd2lkdGg6IHRhcmdldFdpZHRoLFxuICAgICAgICAgICAgICBoZWlnaHQ6IHRhcmdldEhlaWdodCxcbiAgICAgICAgICAgICAgZnJhbWVSYXRlOiAzMCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBhdWRpbzogZmFsc2UsXG4gICAgICAgICAgfSlcbiAgICAgICAgICAudGhlbihhc3luYyAoc3RyZWFtOiBNZWRpYVN0cmVhbSkgPT4ge1xuICAgICAgICAgICAgYXdhaXQgc3RyZWFtU3VjY2Vzc1NjcmVlbih7IHN0cmVhbSwgcGFyYW1ldGVycyB9KTtcbiAgICAgICAgICB9KVxuICAgICAgICAgIC5jYXRjaChhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICBzaGFyZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIHNob3dBbGVydD8uKHtcbiAgICAgICAgICAgICAgbWVzc2FnZTogJ0NvdWxkIG5vdCBzaGFyZSBzY3JlZW4sIGNoZWNrIGFuZCByZXRyeScsXG4gICAgICAgICAgICAgIHR5cGU6ICdkYW5nZXInLFxuICAgICAgICAgICAgICBkdXJhdGlvbjogMzAwMCxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc2hvd0FsZXJ0Py4oe1xuICAgICAgICAgIG1lc3NhZ2U6ICdDb3VsZCBub3Qgc2hhcmUgc2NyZWVuLCBjaGVjayBhbmQgcmV0cnknLFxuICAgICAgICAgIHR5cGU6ICdkYW5nZXInLFxuICAgICAgICAgIGR1cmF0aW9uOiAzMDAwLFxuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgLy8gdXBkYXRlIHRoZSBzaGFyZWQgdmFyaWFibGVcbiAgICAgIHVwZGF0ZVNoYXJlZChzaGFyZWQpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmxvZygnRXJyb3Igc3RhcnRpbmcgc2NyZWVuIHNoYXJlJywgZXJyb3IpO1xuICAgIH1cbiAgfTtcbn1cbiJdfQ==
|