mediasfu-angular 1.0.2 → 2.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +686 -578
- package/dist/README.md +677 -578
- package/dist/fesm2022/mediasfu-angular.mjs +5551 -2944
- package/dist/fesm2022/mediasfu-angular.mjs.map +1 -1
- package/dist/lib/@types/types.d.ts +22 -1
- package/dist/lib/components/breakout-components/breakout-rooms-modal.component.d.ts +1 -0
- package/dist/lib/components/mediasfu-components/mediasfu-broadcast.component.d.ts +153 -61
- package/dist/lib/components/mediasfu-components/mediasfu-chat.component.d.ts +154 -66
- package/dist/lib/components/mediasfu-components/mediasfu-conference.component.d.ts +190 -76
- package/dist/lib/components/mediasfu-components/mediasfu-generic.component.d.ts +184 -70
- package/dist/lib/components/mediasfu-components/mediasfu-webinar.component.d.ts +192 -78
- package/dist/lib/components/menu-components/menu-modal/menu-modal.component.d.ts +6 -1
- package/dist/lib/components/menu-components/share-buttons-component/share-buttons-component.component.d.ts +5 -2
- package/dist/lib/components/misc-components/confirm-here-modal/confirm-here-modal.component.d.ts +4 -2
- package/dist/lib/components/misc-components/pre-join-page/pre-join-page.component.d.ts +71 -66
- package/dist/lib/components/misc-components/share-event-modal/share-event-modal.component.d.ts +5 -1
- package/dist/lib/consumers/connect-local-ips.service.d.ts +81 -0
- package/dist/lib/consumers/connect-send-transport-audio.service.d.ts +43 -11
- package/dist/lib/consumers/connect-send-transport-screen.service.d.ts +87 -46
- package/dist/lib/consumers/connect-send-transport-video.service.d.ts +89 -43
- package/dist/lib/consumers/connect-send-transport.service.d.ts +5 -1
- package/dist/lib/consumers/create-send-transport.service.d.ts +130 -40
- package/dist/lib/consumers/disconnect-send-transport-audio.service.d.ts +77 -40
- package/dist/lib/consumers/disconnect-send-transport-screen.service.d.ts +48 -14
- package/dist/lib/consumers/disconnect-send-transport-video.service.d.ts +81 -44
- package/dist/lib/consumers/get-piped-producers-alt.service.d.ts +5 -1
- package/dist/lib/consumers/receive-all-piped-transports.service.d.ts +5 -1
- package/dist/lib/consumers/resume-send-transport-audio.service.d.ts +54 -21
- package/dist/lib/consumers/stream-success-audio-switch.service.d.ts +124 -40
- package/dist/lib/consumers/trigger.service.d.ts +3 -0
- package/dist/lib/methods/exit-methods/confirm-exit.service.d.ts +5 -1
- package/dist/lib/methods/recording-methods/start-recording.service.d.ts +3 -0
- package/dist/lib/methods/recording-methods/stop-recording.service.d.ts +4 -1
- package/dist/lib/methods/recording-methods/update-recording.service.d.ts +3 -0
- package/dist/lib/methods/stream-methods/click-audio.service.d.ts +3 -0
- package/dist/lib/methods/utils/check-limits-and-make-request.service.d.ts +23 -0
- package/dist/lib/methods/utils/create-response-join-room.util.d.ts +33 -0
- package/dist/lib/methods/utils/create-room-on-media-sfu.service.d.ts +25 -0
- package/dist/lib/methods/utils/initial-values.util.d.ts +6 -0
- package/dist/lib/methods/utils/join-room-on-media-sfu.service.d.ts +52 -0
- package/dist/lib/methods/whiteboard-methods/capture-canvas-stream.service.d.ts +37 -20
- package/dist/lib/producers/producer-emits/join-local-room.service.d.ts +125 -0
- package/dist/lib/producers/socket-receive-methods/all-members-rest.service.d.ts +7 -2
- package/dist/lib/producers/socket-receive-methods/all-members.service.d.ts +7 -2
- package/dist/lib/producers/socket-receive-methods/disconnect-user-self.service.d.ts +5 -1
- package/dist/lib/sockets/socket-manager.service.d.ts +90 -0
- package/dist/public-api.d.ts +11 -1
- package/package.json +17 -20
- package/dist/esm2022/lib/@types/types.mjs +0 -2
- package/dist/esm2022/lib/components/background-components/background-modal/background-modal.component.mjs +0 -799
- package/dist/esm2022/lib/components/breakout-components/breakout-rooms-modal.component.mjs +0 -366
- package/dist/esm2022/lib/components/breakout-components/edit-room-modal/edit-room-modal.component.mjs +0 -143
- package/dist/esm2022/lib/components/breakout-components/room-list/room-list.component.mjs +0 -40
- package/dist/esm2022/lib/components/co-host-components/co-host-modal/co-host-modal.component.mjs +0 -245
- package/dist/esm2022/lib/components/display-components/alert-component/alert.component.component.mjs +0 -79
- package/dist/esm2022/lib/components/display-components/audio-card/audio-card.component.mjs +0 -356
- package/dist/esm2022/lib/components/display-components/audio-grid/audio-grid.component.mjs +0 -80
- package/dist/esm2022/lib/components/display-components/card-video-display/card-video-display.component.mjs +0 -129
- package/dist/esm2022/lib/components/display-components/control-buttons-alt-component/control-buttons-alt-component.component.mjs +0 -138
- package/dist/esm2022/lib/components/display-components/control-buttons-component/control-buttons-component.component.mjs +0 -231
- package/dist/esm2022/lib/components/display-components/control-buttons-component-touch/control-buttons-component-touch.component.mjs +0 -282
- package/dist/esm2022/lib/components/display-components/control-widgets/menu-participants-widget.component.mjs +0 -82
- package/dist/esm2022/lib/components/display-components/control-widgets/menu-record-widget.component.mjs +0 -65
- package/dist/esm2022/lib/components/display-components/control-widgets/menu-widget.component.mjs +0 -137
- package/dist/esm2022/lib/components/display-components/control-widgets/message-widget.component.mjs +0 -137
- package/dist/esm2022/lib/components/display-components/control-widgets/record-timer-widget.component.mjs +0 -51
- package/dist/esm2022/lib/components/display-components/control-widgets/screenshare-widget.component.mjs +0 -101
- package/dist/esm2022/lib/components/display-components/flexible-grid/flexible-grid.component.mjs +0 -151
- package/dist/esm2022/lib/components/display-components/flexible-video/flexible-video.component.mjs +0 -250
- package/dist/esm2022/lib/components/display-components/loading-modal/loading-modal.component.mjs +0 -102
- package/dist/esm2022/lib/components/display-components/main-aspect-component/main-aspect-component.component.mjs +0 -140
- package/dist/esm2022/lib/components/display-components/main-container-component/main-container-component.component.mjs +0 -131
- package/dist/esm2022/lib/components/display-components/main-grid-component/main-grid-component.component.mjs +0 -120
- package/dist/esm2022/lib/components/display-components/main-screen-component/main-screen-component.component.mjs +0 -201
- package/dist/esm2022/lib/components/display-components/meeting-progress-timer/meeting-progress-timer.component.mjs +0 -115
- package/dist/esm2022/lib/components/display-components/mini-audio/mini-audio.component.mjs +0 -319
- package/dist/esm2022/lib/components/display-components/mini-card/mini-card.component.mjs +0 -161
- package/dist/esm2022/lib/components/display-components/mini-card-audio/mini-card-audio.component.mjs +0 -230
- package/dist/esm2022/lib/components/display-components/other-grid-component/other-grid-component.component.mjs +0 -126
- package/dist/esm2022/lib/components/display-components/pagination/pagination.component.mjs +0 -334
- package/dist/esm2022/lib/components/display-components/sub-aspect-component/sub-aspect-component.component.mjs +0 -112
- package/dist/esm2022/lib/components/display-components/video-card/video-card.component.mjs +0 -392
- package/dist/esm2022/lib/components/display-settings-components/display-settings-modal.component.mjs +0 -106
- package/dist/esm2022/lib/components/event-settings-components/event-settings-modal/event-settings-modal.component.mjs +0 -199
- package/dist/esm2022/lib/components/exit-components/confirm-exit-modal/confirm-exit-modal.component.mjs +0 -132
- package/dist/esm2022/lib/components/media-settings-components/media-settings-modal/media-settings-modal.component.mjs +0 -220
- package/dist/esm2022/lib/components/mediasfu-components/mediasfu-broadcast.component.mjs +0 -4238
- package/dist/esm2022/lib/components/mediasfu-components/mediasfu-chat.component.mjs +0 -3754
- package/dist/esm2022/lib/components/mediasfu-components/mediasfu-conference.component.mjs +0 -5071
- package/dist/esm2022/lib/components/mediasfu-components/mediasfu-generic.component.mjs +0 -5380
- package/dist/esm2022/lib/components/mediasfu-components/mediasfu-webinar.component.mjs +0 -5068
- package/dist/esm2022/lib/components/menu-components/custom-buttons/custom-buttons.component.mjs +0 -83
- package/dist/esm2022/lib/components/menu-components/meeting-id-component/meeting-id-component.component.mjs +0 -27
- package/dist/esm2022/lib/components/menu-components/meeting-passcode-component/meeting-passcode-component.component.mjs +0 -27
- package/dist/esm2022/lib/components/menu-components/menu-modal/menu-modal.component.mjs +0 -125
- package/dist/esm2022/lib/components/menu-components/share-buttons-component/share-buttons-component.component.mjs +0 -106
- package/dist/esm2022/lib/components/message-components/message-panel/message-panel.component.mjs +0 -228
- package/dist/esm2022/lib/components/message-components/messages-modal/messages-modal.component.mjs +0 -277
- package/dist/esm2022/lib/components/misc-components/confirm-here-modal/confirm-here-modal.component.mjs +0 -130
- package/dist/esm2022/lib/components/misc-components/pre-join-page/pre-join-page.component.mjs +0 -343
- package/dist/esm2022/lib/components/misc-components/share-event-modal/share-event-modal.component.mjs +0 -127
- package/dist/esm2022/lib/components/misc-components/welcome-page/welcome-page.component.mjs +0 -241
- package/dist/esm2022/lib/components/participants-components/participant-list/participant-list.component.mjs +0 -82
- package/dist/esm2022/lib/components/participants-components/participant-list-item/participant-list-item.component.mjs +0 -139
- package/dist/esm2022/lib/components/participants-components/participant-list-others/participant-list-others.component.mjs +0 -40
- package/dist/esm2022/lib/components/participants-components/participant-list-others-item/participant-list-others-item.component.mjs +0 -60
- package/dist/esm2022/lib/components/participants-components/participants-modal/participants-modal.component.mjs +0 -124
- package/dist/esm2022/lib/components/polls-components/poll-modal/poll-modal.component.mjs +0 -201
- package/dist/esm2022/lib/components/recording-components/advanced-panel-component/advanced-panel-components.component.mjs +0 -92
- package/dist/esm2022/lib/components/recording-components/recording-modal/recording-modal.component.mjs +0 -133
- package/dist/esm2022/lib/components/recording-components/standard-panel-component/standard-panel-component.component.mjs +0 -90
- package/dist/esm2022/lib/components/requests-components/render-request-component/render-request-component.component.mjs +0 -81
- package/dist/esm2022/lib/components/requests-components/requests-modal/requests-modal.component.mjs +0 -147
- package/dist/esm2022/lib/components/screenboard-components/screenboard/screenboard.component.mjs +0 -627
- package/dist/esm2022/lib/components/screenboard-components/screenboard-modal/screenboard-modal.component.mjs +0 -391
- package/dist/esm2022/lib/components/waiting-components/waiting-room-modal.component.mjs +0 -201
- package/dist/esm2022/lib/components/whiteboard-components/configure-whiteboard-modal/configure-whiteboard-modal.component.mjs +0 -286
- package/dist/esm2022/lib/components/whiteboard-components/whiteboard/whiteboard.component.mjs +0 -1833
- package/dist/esm2022/lib/consumers/add-videos-grid.service.mjs +0 -345
- package/dist/esm2022/lib/consumers/auto-adjust.service.mjs +0 -109
- package/dist/esm2022/lib/consumers/calculate-rows-and-columns.service.mjs +0 -60
- package/dist/esm2022/lib/consumers/change-vids.service.mjs +0 -551
- package/dist/esm2022/lib/consumers/check-grid.service.mjs +0 -93
- package/dist/esm2022/lib/consumers/check-permission.service.mjs +0 -105
- package/dist/esm2022/lib/consumers/check-screen-share.service.mjs +0 -106
- package/dist/esm2022/lib/consumers/close-and-resize.service.mjs +0 -331
- package/dist/esm2022/lib/consumers/compare-active-names.service.mjs +0 -106
- package/dist/esm2022/lib/consumers/compare-screen-states.service.mjs +0 -98
- package/dist/esm2022/lib/consumers/connect-ips.service.mjs +0 -154
- package/dist/esm2022/lib/consumers/connect-recv-transport.service.mjs +0 -146
- package/dist/esm2022/lib/consumers/connect-send-transport-audio.service.mjs +0 -84
- package/dist/esm2022/lib/consumers/connect-send-transport-screen.service.mjs +0 -102
- package/dist/esm2022/lib/consumers/connect-send-transport-video.service.mjs +0 -99
- package/dist/esm2022/lib/consumers/connect-send-transport.service.mjs +0 -140
- package/dist/esm2022/lib/consumers/consumer-resume.service.mjs +0 -368
- package/dist/esm2022/lib/consumers/control-media.service.mjs +0 -113
- package/dist/esm2022/lib/consumers/create-send-transport.service.mjs +0 -172
- package/dist/esm2022/lib/consumers/disconnect-send-transport-audio.service.mjs +0 -108
- package/dist/esm2022/lib/consumers/disconnect-send-transport-screen.service.mjs +0 -84
- package/dist/esm2022/lib/consumers/disconnect-send-transport-video.service.mjs +0 -101
- package/dist/esm2022/lib/consumers/disp-streams.service.mjs +0 -513
- package/dist/esm2022/lib/consumers/generate-page-content.service.mjs +0 -106
- package/dist/esm2022/lib/consumers/get-estimate.service.mjs +0 -120
- package/dist/esm2022/lib/consumers/get-piped-producers-alt.service.mjs +0 -82
- package/dist/esm2022/lib/consumers/get-producers-piped.service.mjs +0 -79
- package/dist/esm2022/lib/consumers/get-videos.service.mjs +0 -91
- package/dist/esm2022/lib/consumers/mix-streams.service.mjs +0 -95
- package/dist/esm2022/lib/consumers/on-screen-changes.service.mjs +0 -103
- package/dist/esm2022/lib/consumers/prepopulate-user-media.service.mjs +0 -541
- package/dist/esm2022/lib/consumers/process-consumer-transports-audio.service.mjs +0 -101
- package/dist/esm2022/lib/consumers/process-consumer-transports.service.mjs +0 -128
- package/dist/esm2022/lib/consumers/re-port.service.mjs +0 -114
- package/dist/esm2022/lib/consumers/re-update-inter.service.mjs +0 -239
- package/dist/esm2022/lib/consumers/readjust.service.mjs +0 -173
- package/dist/esm2022/lib/consumers/receive-all-piped-transports.service.mjs +0 -87
- package/dist/esm2022/lib/consumers/receive-room-messages.service.mjs +0 -69
- package/dist/esm2022/lib/consumers/reorder-streams.service.mjs +0 -239
- package/dist/esm2022/lib/consumers/request-screen-share.service.mjs +0 -101
- package/dist/esm2022/lib/consumers/resume-pause-audio-streams.service.mjs +0 -150
- package/dist/esm2022/lib/consumers/resume-pause-streams.service.mjs +0 -103
- package/dist/esm2022/lib/consumers/resume-send-transport-audio.service.mjs +0 -91
- package/dist/esm2022/lib/consumers/signal-new-consumer-transport.service.mjs +0 -136
- package/dist/esm2022/lib/consumers/socket-receive-methods/join-consume-room.service.mjs +0 -96
- package/dist/esm2022/lib/consumers/socket-receive-methods/new-pipe-producer.service.mjs +0 -100
- package/dist/esm2022/lib/consumers/socket-receive-methods/producer-closed.service.mjs +0 -78
- package/dist/esm2022/lib/consumers/start-share-screen.service.mjs +0 -120
- package/dist/esm2022/lib/consumers/stop-share-screen.service.mjs +0 -175
- package/dist/esm2022/lib/consumers/stream-success-audio-switch.service.mjs +0 -185
- package/dist/esm2022/lib/consumers/stream-success-audio.service.mjs +0 -210
- package/dist/esm2022/lib/consumers/stream-success-screen.service.mjs +0 -193
- package/dist/esm2022/lib/consumers/stream-success-video.service.mjs +0 -260
- package/dist/esm2022/lib/consumers/switch-user-audio.service.mjs +0 -120
- package/dist/esm2022/lib/consumers/switch-user-video-alt.service.mjs +0 -260
- package/dist/esm2022/lib/consumers/switch-user-video.service.mjs +0 -172
- package/dist/esm2022/lib/consumers/trigger.service.mjs +0 -210
- package/dist/esm2022/lib/consumers/update-mini-cards-grid.service.mjs +0 -135
- package/dist/esm2022/lib/consumers/update-participant-audio-decibels.service.mjs +0 -84
- package/dist/esm2022/lib/methods/background-methods/launch-background.service.mjs +0 -48
- package/dist/esm2022/lib/methods/breakout-room-methods/breakout-room-updated.service.mjs +0 -183
- package/dist/esm2022/lib/methods/breakout-room-methods/launch-breakout-rooms.service.mjs +0 -46
- package/dist/esm2022/lib/methods/co-host-methods/launch-co-host.service.mjs +0 -46
- package/dist/esm2022/lib/methods/co-host-methods/modify-co-host-settings.service.mjs +0 -104
- package/dist/esm2022/lib/methods/display-settings-methods/launch-display-settings.service.mjs +0 -46
- package/dist/esm2022/lib/methods/display-settings-methods/modify-display-settings.service.mjs +0 -194
- package/dist/esm2022/lib/methods/exit-methods/confirm-exit.service.mjs +0 -52
- package/dist/esm2022/lib/methods/exit-methods/launch-confirm-exit.service.mjs +0 -42
- package/dist/esm2022/lib/methods/media-settings-methods/launch-media-settings.service.mjs +0 -85
- package/dist/esm2022/lib/methods/menu-methods/launch-menu-modal.service.mjs +0 -44
- package/dist/esm2022/lib/methods/message-methods/launch-messages.service.mjs +0 -45
- package/dist/esm2022/lib/methods/message-methods/send-message.service.mjs +0 -143
- package/dist/esm2022/lib/methods/participants-methods/launch-participants.service.mjs +0 -47
- package/dist/esm2022/lib/methods/participants-methods/message-participants.service.mjs +0 -98
- package/dist/esm2022/lib/methods/participants-methods/mute-participants.service.mjs +0 -96
- package/dist/esm2022/lib/methods/participants-methods/remove-participants.service.mjs +0 -107
- package/dist/esm2022/lib/methods/polls-methods/handle-create-poll.service.mjs +0 -75
- package/dist/esm2022/lib/methods/polls-methods/handle-end-poll.service.mjs +0 -72
- package/dist/esm2022/lib/methods/polls-methods/handle-vote-poll.service.mjs +0 -83
- package/dist/esm2022/lib/methods/polls-methods/launch-poll.service.mjs +0 -43
- package/dist/esm2022/lib/methods/polls-methods/poll-updated.service.mjs +0 -95
- package/dist/esm2022/lib/methods/recording-methods/check-pause-state.service.mjs +0 -69
- package/dist/esm2022/lib/methods/recording-methods/check-resume-state.service.mjs +0 -56
- package/dist/esm2022/lib/methods/recording-methods/confirm-recording.service.mjs +0 -278
- package/dist/esm2022/lib/methods/recording-methods/launch-recording.service.mjs +0 -125
- package/dist/esm2022/lib/methods/recording-methods/record-pause-timer.service.mjs +0 -67
- package/dist/esm2022/lib/methods/recording-methods/record-resume-timer.service.mjs +0 -130
- package/dist/esm2022/lib/methods/recording-methods/record-start-timer.service.mjs +0 -134
- package/dist/esm2022/lib/methods/recording-methods/record-update-timer.service.mjs +0 -80
- package/dist/esm2022/lib/methods/recording-methods/start-recording.service.mjs +0 -197
- package/dist/esm2022/lib/methods/recording-methods/stop-recording.service.mjs +0 -112
- package/dist/esm2022/lib/methods/recording-methods/update-recording.service.mjs +0 -272
- package/dist/esm2022/lib/methods/requests-methods/launch-requests.service.mjs +0 -51
- package/dist/esm2022/lib/methods/requests-methods/respond-to-requests.service.mjs +0 -84
- package/dist/esm2022/lib/methods/settings-methods/launch-settings.service.mjs +0 -51
- package/dist/esm2022/lib/methods/settings-methods/modify-settings.service.mjs +0 -109
- package/dist/esm2022/lib/methods/stream-methods/click-audio.service.mjs +0 -275
- package/dist/esm2022/lib/methods/stream-methods/click-chat.service.mjs +0 -75
- package/dist/esm2022/lib/methods/stream-methods/click-screen-share.service.mjs +0 -178
- package/dist/esm2022/lib/methods/stream-methods/click-video.service.mjs +0 -271
- package/dist/esm2022/lib/methods/stream-methods/switch-audio.service.mjs +0 -80
- package/dist/esm2022/lib/methods/stream-methods/switch-video-alt.service.mjs +0 -116
- package/dist/esm2022/lib/methods/stream-methods/switch-video.service.mjs +0 -132
- package/dist/esm2022/lib/methods/utils/format-number.service.mjs +0 -57
- package/dist/esm2022/lib/methods/utils/generate-random-messages.service.mjs +0 -120
- package/dist/esm2022/lib/methods/utils/generate-random-participants.service.mjs +0 -126
- package/dist/esm2022/lib/methods/utils/generate-random-polls.service.mjs +0 -78
- package/dist/esm2022/lib/methods/utils/generate-random-request-list.service.mjs +0 -90
- package/dist/esm2022/lib/methods/utils/generate-random-waiting-room-list.service.mjs +0 -59
- package/dist/esm2022/lib/methods/utils/get-modal-position.util.mjs +0 -32
- package/dist/esm2022/lib/methods/utils/get-overlay-position.util.mjs +0 -31
- package/dist/esm2022/lib/methods/utils/initial-values.util.mjs +0 -379
- package/dist/esm2022/lib/methods/utils/meeting-timer/start-meeting-progress-timer.service.mjs +0 -96
- package/dist/esm2022/lib/methods/utils/mini-audio-player/mini-audio-player.component.mjs +0 -315
- package/dist/esm2022/lib/methods/utils/producer/a-params.service.mjs +0 -58
- package/dist/esm2022/lib/methods/utils/producer/h-params.service.mjs +0 -87
- package/dist/esm2022/lib/methods/utils/producer/screen-params.service.mjs +0 -61
- package/dist/esm2022/lib/methods/utils/producer/v-params.service.mjs +0 -87
- package/dist/esm2022/lib/methods/utils/producer/video-capture-constraints.service.mjs +0 -84
- package/dist/esm2022/lib/methods/utils/sleep.util.mjs +0 -17
- package/dist/esm2022/lib/methods/utils/sound-player.service.mjs +0 -63
- package/dist/esm2022/lib/methods/utils/validate-alphanumeric.service.mjs +0 -49
- package/dist/esm2022/lib/methods/waiting-methods/launch-waiting.service.mjs +0 -41
- package/dist/esm2022/lib/methods/waiting-methods/respond-to-waiting.service.mjs +0 -69
- package/dist/esm2022/lib/methods/whiteboard-methods/capture-canvas-stream.service.mjs +0 -98
- package/dist/esm2022/lib/methods/whiteboard-methods/launch-configure-whiteboard.service.mjs +0 -44
- package/dist/esm2022/lib/producer-client/producer-client-emits/create-device-client.service.mjs +0 -74
- package/dist/esm2022/lib/producer-client/producer-client-emits/join-room-client.service.mjs +0 -96
- package/dist/esm2022/lib/producer-client/producer-client-emits/update-room-parameters-client.service.mjs +0 -276
- package/dist/esm2022/lib/producers/producer-emits/join-con-room.service.mjs +0 -152
- package/dist/esm2022/lib/producers/producer-emits/join-room.service.mjs +0 -152
- package/dist/esm2022/lib/producers/socket-receive-methods/all-members-rest.service.mjs +0 -228
- package/dist/esm2022/lib/producers/socket-receive-methods/all-members.service.mjs +0 -218
- package/dist/esm2022/lib/producers/socket-receive-methods/all-waiting-room-members.service.mjs +0 -57
- package/dist/esm2022/lib/producers/socket-receive-methods/ban-participant.service.mjs +0 -76
- package/dist/esm2022/lib/producers/socket-receive-methods/control-media-host.service.mjs +0 -183
- package/dist/esm2022/lib/producers/socket-receive-methods/disconnect-user-self.service.mjs +0 -50
- package/dist/esm2022/lib/producers/socket-receive-methods/disconnect.service.mjs +0 -64
- package/dist/esm2022/lib/producers/socket-receive-methods/get-domains.service.mjs +0 -78
- package/dist/esm2022/lib/producers/socket-receive-methods/host-request-response.service.mjs +0 -150
- package/dist/esm2022/lib/producers/socket-receive-methods/meeting-ended.service.mjs +0 -73
- package/dist/esm2022/lib/producers/socket-receive-methods/meeting-still-there.service.mjs +0 -47
- package/dist/esm2022/lib/producers/socket-receive-methods/meeting-time-remaining.service.mjs +0 -63
- package/dist/esm2022/lib/producers/socket-receive-methods/participant-requested.service.mjs +0 -63
- package/dist/esm2022/lib/producers/socket-receive-methods/person-joined.service.mjs +0 -54
- package/dist/esm2022/lib/producers/socket-receive-methods/producer-media-closed.service.mjs +0 -129
- package/dist/esm2022/lib/producers/socket-receive-methods/producer-media-paused.service.mjs +0 -152
- package/dist/esm2022/lib/producers/socket-receive-methods/producer-media-resumed.service.mjs +0 -99
- package/dist/esm2022/lib/producers/socket-receive-methods/re-initiate-recording.service.mjs +0 -67
- package/dist/esm2022/lib/producers/socket-receive-methods/receive-message.service.mjs +0 -134
- package/dist/esm2022/lib/producers/socket-receive-methods/recording-notice.service.mjs +0 -233
- package/dist/esm2022/lib/producers/socket-receive-methods/room-record-params.service.mjs +0 -121
- package/dist/esm2022/lib/producers/socket-receive-methods/screen-producer-id.service.mjs +0 -86
- package/dist/esm2022/lib/producers/socket-receive-methods/start-records.service.mjs +0 -60
- package/dist/esm2022/lib/producers/socket-receive-methods/stopped-recording.service.mjs +0 -62
- package/dist/esm2022/lib/producers/socket-receive-methods/time-left-recording.service.mjs +0 -57
- package/dist/esm2022/lib/producers/socket-receive-methods/update-consuming-domains.service.mjs +0 -105
- package/dist/esm2022/lib/producers/socket-receive-methods/update-media-settings.service.mjs +0 -66
- package/dist/esm2022/lib/producers/socket-receive-methods/updated-co-host.service.mjs +0 -96
- package/dist/esm2022/lib/producers/socket-receive-methods/user-waiting.service.mjs +0 -52
- package/dist/esm2022/lib/sockets/socket-manager.service.mjs +0 -113
- package/dist/esm2022/mediasfu-angular.mjs +0 -5
- package/dist/esm2022/public-api.mjs +0 -187
|
@@ -1,106 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
/**
|
|
4
|
-
* Generates the content for a specific page.
|
|
5
|
-
*
|
|
6
|
-
* @param {GeneratePageContentOptions} options - The options for generating page content.
|
|
7
|
-
* @param {number | string} options.page - The page number to generate content for.
|
|
8
|
-
* @param {GeneratePageContentParameters} options.parameters - The parameters required for generating content.
|
|
9
|
-
* @param {Array<(Participant | Stream)[]>} options.parameters.paginatedStreams - The streams to be paginated.
|
|
10
|
-
* @param {number} options.parameters.currentUserPage - The current page of the user.
|
|
11
|
-
* @param {Function} options.parameters.updateMainWindow - Function to update the main window flag.
|
|
12
|
-
* @param {Function} options.parameters.updateCurrentUserPage - Function to update the current user page.
|
|
13
|
-
* @param {Function} options.parameters.updateUpdateMainWindow - Function to update the main window update flag.
|
|
14
|
-
* @param {Function} options.parameters.dispStreams - Function to display streams for the specified page.
|
|
15
|
-
* @param {number} [options.breakRoom=-1] - The break room identifier.
|
|
16
|
-
* @param {boolean} [options.inBreakRoom=false] - Flag indicating if the user is in a break room.
|
|
17
|
-
*
|
|
18
|
-
* @returns {Promise<void>} A promise that resolves when the content generation is complete.
|
|
19
|
-
*
|
|
20
|
-
* @throws {Error} Throws an error if content generation fails.
|
|
21
|
-
*
|
|
22
|
-
* @example
|
|
23
|
-
* ```typescript
|
|
24
|
-
* const options = {
|
|
25
|
-
* page: 1,
|
|
26
|
-
* parameters: {
|
|
27
|
-
* paginatedStreams: [
|
|
28
|
-
* // Page 0 streams
|
|
29
|
-
* [stream1, stream2],
|
|
30
|
-
* // Page 1 streams
|
|
31
|
-
* [stream3, stream4],
|
|
32
|
-
* ],
|
|
33
|
-
* currentUserPage: 0,
|
|
34
|
-
* updateMainWindow: false,
|
|
35
|
-
* updateCurrentUserPage: (page) => { console.log(`Current page updated to: ${page}`); },
|
|
36
|
-
* updateUpdateMainWindow: (flag) => { console.log(`Main window update flag: ${flag}`); },
|
|
37
|
-
* dispStreams: async ({ lStreams, ind }) => {
|
|
38
|
-
* console.log(`Displaying streams for page ${ind}:`, lStreams);
|
|
39
|
-
* },
|
|
40
|
-
* getUpdatedAllParams: () => options.parameters,
|
|
41
|
-
* },
|
|
42
|
-
* breakRoom: -1,
|
|
43
|
-
* inBreakRoom: false,
|
|
44
|
-
* };
|
|
45
|
-
*
|
|
46
|
-
* const generatePageContentService = new GeneratePageContent();
|
|
47
|
-
* await generatePageContentService.generatePageContent(options);
|
|
48
|
-
* ```
|
|
49
|
-
*/
|
|
50
|
-
export class GeneratePageContent {
|
|
51
|
-
/**
|
|
52
|
-
* Generates the content for a specific page.
|
|
53
|
-
*
|
|
54
|
-
* @param {Object} options - The options for generating page content.
|
|
55
|
-
* @param {number | string} options.page - The page number to generate content for.
|
|
56
|
-
* @param {Object} options.parameters - The parameters required for generating content.
|
|
57
|
-
* @param {Array} options.parameters.paginatedStreams - The streams to be paginated.
|
|
58
|
-
* @param {number} options.parameters.currentUserPage - The current page of the user.
|
|
59
|
-
* @param {Function} options.parameters.updateMainWindow - Function to update the main window flag.
|
|
60
|
-
* @param {Function} options.parameters.updateCurrentUserPage - Function to update the current user page.
|
|
61
|
-
* @param {Function} options.parameters.updateUpdateMainWindow - Function to update the main window update flag.
|
|
62
|
-
* @param {Function} options.parameters.dispStreams - Function to display streams for the specified page.
|
|
63
|
-
* @param {number} [options.breakRoom=-1] - The break room identifier.
|
|
64
|
-
* @param {boolean} [options.inBreakRoom=false] - Flag indicating if the user is in a break room.
|
|
65
|
-
* @returns {Promise<void>} A promise that resolves when the content generation is complete.
|
|
66
|
-
* @throws {Error} Throws an error if content generation fails.
|
|
67
|
-
*/
|
|
68
|
-
async generatePageContent({ page, parameters, breakRoom = -1, inBreakRoom = false, }) {
|
|
69
|
-
try {
|
|
70
|
-
// Destructure parameters
|
|
71
|
-
parameters = parameters.getUpdatedAllParams();
|
|
72
|
-
let { paginatedStreams, currentUserPage, updateMainWindow, updateCurrentUserPage, updateUpdateMainWindow,
|
|
73
|
-
// mediasfu functions
|
|
74
|
-
dispStreams, } = parameters;
|
|
75
|
-
// Convert page to an integer
|
|
76
|
-
page = parseInt(page.toString(), 10);
|
|
77
|
-
// Update current user page
|
|
78
|
-
currentUserPage = page;
|
|
79
|
-
updateCurrentUserPage(currentUserPage);
|
|
80
|
-
// Update main window flag
|
|
81
|
-
updateMainWindow = true;
|
|
82
|
-
updateUpdateMainWindow(updateMainWindow);
|
|
83
|
-
// Display streams for the specified page
|
|
84
|
-
await dispStreams({
|
|
85
|
-
lStreams: paginatedStreams[page],
|
|
86
|
-
ind: page,
|
|
87
|
-
parameters,
|
|
88
|
-
breakRoom,
|
|
89
|
-
inBreakRoom,
|
|
90
|
-
});
|
|
91
|
-
}
|
|
92
|
-
catch (error) {
|
|
93
|
-
// Handle errors during content generation
|
|
94
|
-
console.log('Error generating page content:', error.message);
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: GeneratePageContent, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
98
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: GeneratePageContent, providedIn: 'root' });
|
|
99
|
-
}
|
|
100
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: GeneratePageContent, decorators: [{
|
|
101
|
-
type: Injectable,
|
|
102
|
-
args: [{
|
|
103
|
-
providedIn: 'root',
|
|
104
|
-
}]
|
|
105
|
-
}] });
|
|
106
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdGUtcGFnZS1jb250ZW50LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tZWRpYXNmdS1hbmd1bGFyL3NyYy9saWIvY29uc3VtZXJzL2dlbmVyYXRlLXBhZ2UtY29udGVudC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBeUJ6Qzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQThDRztBQU1MLE1BQU0sT0FBTyxtQkFBbUI7SUFDOUI7Ozs7Ozs7Ozs7Ozs7Ozs7T0FnQkc7SUFDSCxLQUFLLENBQUMsbUJBQW1CLENBQUMsRUFDeEIsSUFBSSxFQUNKLFVBQVUsRUFDVixTQUFTLEdBQUcsQ0FBQyxDQUFDLEVBQ2QsV0FBVyxHQUFHLEtBQUssR0FDUTtRQUMzQixJQUFJLENBQUM7WUFDSCx5QkFBeUI7WUFDekIsVUFBVSxHQUFHLFVBQVUsQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1lBRTlDLElBQUksRUFDRixnQkFBZ0IsRUFDaEIsZUFBZSxFQUNmLGdCQUFnQixFQUNoQixxQkFBcUIsRUFDckIsc0JBQXNCO1lBQ3RCLHFCQUFxQjtZQUNyQixXQUFXLEdBQ1osR0FBRyxVQUFVLENBQUM7WUFFZiw2QkFBNkI7WUFDN0IsSUFBSSxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFFckMsMkJBQTJCO1lBQzNCLGVBQWUsR0FBRyxJQUFJLENBQUM7WUFDdkIscUJBQXFCLENBQUMsZUFBZSxDQUFDLENBQUM7WUFFdkMsMEJBQTBCO1lBQzFCLGdCQUFnQixHQUFHLElBQUksQ0FBQztZQUN4QixzQkFBc0IsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1lBRXpDLHlDQUF5QztZQUN6QyxNQUFNLFdBQVcsQ0FBQztnQkFDaEIsUUFBUSxFQUFFLGdCQUFnQixDQUFDLElBQUksQ0FBQztnQkFDaEMsR0FBRyxFQUFFLElBQUk7Z0JBQ1QsVUFBVTtnQkFDVixTQUFTO2dCQUNULFdBQVc7YUFDWixDQUFDLENBQUM7UUFDTCxDQUFDO1FBQUMsT0FBTyxLQUFVLEVBQUUsQ0FBQztZQUNwQiwwQ0FBMEM7WUFDMUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxnQ0FBZ0MsRUFBRSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDL0QsQ0FBQztJQUNILENBQUM7dUdBN0RVLG1CQUFtQjsyR0FBbkIsbUJBQW1CLGNBRmxCLE1BQU07OzJGQUVQLG1CQUFtQjtrQkFIL0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBQYXJ0aWNpcGFudCwgU3RyZWFtLCBEaXNwU3RyZWFtc1R5cGUsIERpc3BTdHJlYW1zUGFyYW1ldGVycyB9IGZyb20gJy4uL0B0eXBlcy90eXBlcyc7XG5leHBvcnQgaW50ZXJmYWNlIEdlbmVyYXRlUGFnZUNvbnRlbnRQYXJhbWV0ZXJzIGV4dGVuZHMgRGlzcFN0cmVhbXNQYXJhbWV0ZXJzIHtcbiAgcGFnaW5hdGVkU3RyZWFtczogKFBhcnRpY2lwYW50IHwgU3RyZWFtKVtdW107XG4gIGN1cnJlbnRVc2VyUGFnZTogbnVtYmVyO1xuICB1cGRhdGVNYWluV2luZG93OiBib29sZWFuO1xuICB1cGRhdGVDdXJyZW50VXNlclBhZ2U6IChwYWdlOiBudW1iZXIpID0+IHZvaWQ7XG4gIHVwZGF0ZVVwZGF0ZU1haW5XaW5kb3c6IChmbGFnOiBib29sZWFuKSA9PiB2b2lkO1xuXG4gIC8vIG1lZGlhc2Z1IGZ1bmN0aW9uc1xuICBkaXNwU3RyZWFtczogRGlzcFN0cmVhbXNUeXBlO1xuICBnZXRVcGRhdGVkQWxsUGFyYW1zOiAoKSA9PiBHZW5lcmF0ZVBhZ2VDb250ZW50UGFyYW1ldGVycztcbiAgW2tleTogc3RyaW5nXTogYW55O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdlbmVyYXRlUGFnZUNvbnRlbnRPcHRpb25zIHtcbiAgcGFnZTogbnVtYmVyIHwgc3RyaW5nO1xuICBwYXJhbWV0ZXJzOiBHZW5lcmF0ZVBhZ2VDb250ZW50UGFyYW1ldGVycztcbiAgYnJlYWtSb29tPzogbnVtYmVyO1xuICBpbkJyZWFrUm9vbT86IGJvb2xlYW47XG59XG5cbi8vIEV4cG9ydCB0aGUgdHlwZSBkZWZpbml0aW9uIGZvciB0aGUgZnVuY3Rpb25cbmV4cG9ydCB0eXBlIEdlbmVyYXRlUGFnZUNvbnRlbnRUeXBlID0gKG9wdGlvbnM6IEdlbmVyYXRlUGFnZUNvbnRlbnRPcHRpb25zKSA9PiBQcm9taXNlPHZvaWQ+O1xuXG4gIC8qKlxuICAgKiBHZW5lcmF0ZXMgdGhlIGNvbnRlbnQgZm9yIGEgc3BlY2lmaWMgcGFnZS5cbiAgICpcbiAgICogQHBhcmFtIHtHZW5lcmF0ZVBhZ2VDb250ZW50T3B0aW9uc30gb3B0aW9ucyAtIFRoZSBvcHRpb25zIGZvciBnZW5lcmF0aW5nIHBhZ2UgY29udGVudC5cbiAgICogQHBhcmFtIHtudW1iZXIgfCBzdHJpbmd9IG9wdGlvbnMucGFnZSAtIFRoZSBwYWdlIG51bWJlciB0byBnZW5lcmF0ZSBjb250ZW50IGZvci5cbiAgICogQHBhcmFtIHtHZW5lcmF0ZVBhZ2VDb250ZW50UGFyYW1ldGVyc30gb3B0aW9ucy5wYXJhbWV0ZXJzIC0gVGhlIHBhcmFtZXRlcnMgcmVxdWlyZWQgZm9yIGdlbmVyYXRpbmcgY29udGVudC5cbiAgICogQHBhcmFtIHtBcnJheTwoUGFydGljaXBhbnQgfCBTdHJlYW0pW10+fSBvcHRpb25zLnBhcmFtZXRlcnMucGFnaW5hdGVkU3RyZWFtcyAtIFRoZSBzdHJlYW1zIHRvIGJlIHBhZ2luYXRlZC5cbiAgICogQHBhcmFtIHtudW1iZXJ9IG9wdGlvbnMucGFyYW1ldGVycy5jdXJyZW50VXNlclBhZ2UgLSBUaGUgY3VycmVudCBwYWdlIG9mIHRoZSB1c2VyLlxuICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBvcHRpb25zLnBhcmFtZXRlcnMudXBkYXRlTWFpbldpbmRvdyAtIEZ1bmN0aW9uIHRvIHVwZGF0ZSB0aGUgbWFpbiB3aW5kb3cgZmxhZy5cbiAgICogQHBhcmFtIHtGdW5jdGlvbn0gb3B0aW9ucy5wYXJhbWV0ZXJzLnVwZGF0ZUN1cnJlbnRVc2VyUGFnZSAtIEZ1bmN0aW9uIHRvIHVwZGF0ZSB0aGUgY3VycmVudCB1c2VyIHBhZ2UuXG4gICAqIEBwYXJhbSB7RnVuY3Rpb259IG9wdGlvbnMucGFyYW1ldGVycy51cGRhdGVVcGRhdGVNYWluV2luZG93IC0gRnVuY3Rpb24gdG8gdXBkYXRlIHRoZSBtYWluIHdpbmRvdyB1cGRhdGUgZmxhZy5cbiAgICogQHBhcmFtIHtGdW5jdGlvbn0gb3B0aW9ucy5wYXJhbWV0ZXJzLmRpc3BTdHJlYW1zIC0gRnVuY3Rpb24gdG8gZGlzcGxheSBzdHJlYW1zIGZvciB0aGUgc3BlY2lmaWVkIHBhZ2UuXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBbb3B0aW9ucy5icmVha1Jvb209LTFdIC0gVGhlIGJyZWFrIHJvb20gaWRlbnRpZmllci5cbiAgICogQHBhcmFtIHtib29sZWFufSBbb3B0aW9ucy5pbkJyZWFrUm9vbT1mYWxzZV0gLSBGbGFnIGluZGljYXRpbmcgaWYgdGhlIHVzZXIgaXMgaW4gYSBicmVhayByb29tLlxuICAgKlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn0gQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgY29udGVudCBnZW5lcmF0aW9uIGlzIGNvbXBsZXRlLlxuICAgKlxuICAgKiBAdGhyb3dzIHtFcnJvcn0gVGhyb3dzIGFuIGVycm9yIGlmIGNvbnRlbnQgZ2VuZXJhdGlvbiBmYWlscy5cbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogYGBgdHlwZXNjcmlwdFxuICAgKiBjb25zdCBvcHRpb25zID0ge1xuICAgKiAgIHBhZ2U6IDEsXG4gICAqICAgcGFyYW1ldGVyczoge1xuICAgKiAgICAgcGFnaW5hdGVkU3RyZWFtczogW1xuICAgKiAgICAgICAvLyBQYWdlIDAgc3RyZWFtc1xuICAgKiAgICAgICBbc3RyZWFtMSwgc3RyZWFtMl0sXG4gICAqICAgICAgIC8vIFBhZ2UgMSBzdHJlYW1zXG4gICAqICAgICAgIFtzdHJlYW0zLCBzdHJlYW00XSxcbiAgICogICAgIF0sXG4gICAqICAgICBjdXJyZW50VXNlclBhZ2U6IDAsXG4gICAqICAgICB1cGRhdGVNYWluV2luZG93OiBmYWxzZSxcbiAgICogICAgIHVwZGF0ZUN1cnJlbnRVc2VyUGFnZTogKHBhZ2UpID0+IHsgY29uc29sZS5sb2coYEN1cnJlbnQgcGFnZSB1cGRhdGVkIHRvOiAke3BhZ2V9YCk7IH0sXG4gICAqICAgICB1cGRhdGVVcGRhdGVNYWluV2luZG93OiAoZmxhZykgPT4geyBjb25zb2xlLmxvZyhgTWFpbiB3aW5kb3cgdXBkYXRlIGZsYWc6ICR7ZmxhZ31gKTsgfSxcbiAgICogICAgIGRpc3BTdHJlYW1zOiBhc3luYyAoeyBsU3RyZWFtcywgaW5kIH0pID0+IHtcbiAgICogICAgICAgY29uc29sZS5sb2coYERpc3BsYXlpbmcgc3RyZWFtcyBmb3IgcGFnZSAke2luZH06YCwgbFN0cmVhbXMpO1xuICAgKiAgICAgfSxcbiAgICogICAgIGdldFVwZGF0ZWRBbGxQYXJhbXM6ICgpID0+IG9wdGlvbnMucGFyYW1ldGVycyxcbiAgICogICB9LFxuICAgKiAgIGJyZWFrUm9vbTogLTEsXG4gICAqICAgaW5CcmVha1Jvb206IGZhbHNlLFxuICAgKiB9O1xuICAgKlxuICAgKiBjb25zdCBnZW5lcmF0ZVBhZ2VDb250ZW50U2VydmljZSA9IG5ldyBHZW5lcmF0ZVBhZ2VDb250ZW50KCk7XG4gICAqIGF3YWl0IGdlbmVyYXRlUGFnZUNvbnRlbnRTZXJ2aWNlLmdlbmVyYXRlUGFnZUNvbnRlbnQob3B0aW9ucyk7XG4gICAqIGBgYFxuICAgKi9cblxuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgR2VuZXJhdGVQYWdlQ29udGVudCB7XG4gIC8qKlxuICAgKiBHZW5lcmF0ZXMgdGhlIGNvbnRlbnQgZm9yIGEgc3BlY2lmaWMgcGFnZS5cbiAgICpcbiAgICogQHBhcmFtIHtPYmplY3R9IG9wdGlvbnMgLSBUaGUgb3B0aW9ucyBmb3IgZ2VuZXJhdGluZyBwYWdlIGNvbnRlbnQuXG4gICAqIEBwYXJhbSB7bnVtYmVyIHwgc3RyaW5nfSBvcHRpb25zLnBhZ2UgLSBUaGUgcGFnZSBudW1iZXIgdG8gZ2VuZXJhdGUgY29udGVudCBmb3IuXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRpb25zLnBhcmFtZXRlcnMgLSBUaGUgcGFyYW1ldGVycyByZXF1aXJlZCBmb3IgZ2VuZXJhdGluZyBjb250ZW50LlxuICAgKiBAcGFyYW0ge0FycmF5fSBvcHRpb25zLnBhcmFtZXRlcnMucGFnaW5hdGVkU3RyZWFtcyAtIFRoZSBzdHJlYW1zIHRvIGJlIHBhZ2luYXRlZC5cbiAgICogQHBhcmFtIHtudW1iZXJ9IG9wdGlvbnMucGFyYW1ldGVycy5jdXJyZW50VXNlclBhZ2UgLSBUaGUgY3VycmVudCBwYWdlIG9mIHRoZSB1c2VyLlxuICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBvcHRpb25zLnBhcmFtZXRlcnMudXBkYXRlTWFpbldpbmRvdyAtIEZ1bmN0aW9uIHRvIHVwZGF0ZSB0aGUgbWFpbiB3aW5kb3cgZmxhZy5cbiAgICogQHBhcmFtIHtGdW5jdGlvbn0gb3B0aW9ucy5wYXJhbWV0ZXJzLnVwZGF0ZUN1cnJlbnRVc2VyUGFnZSAtIEZ1bmN0aW9uIHRvIHVwZGF0ZSB0aGUgY3VycmVudCB1c2VyIHBhZ2UuXG4gICAqIEBwYXJhbSB7RnVuY3Rpb259IG9wdGlvbnMucGFyYW1ldGVycy51cGRhdGVVcGRhdGVNYWluV2luZG93IC0gRnVuY3Rpb24gdG8gdXBkYXRlIHRoZSBtYWluIHdpbmRvdyB1cGRhdGUgZmxhZy5cbiAgICogQHBhcmFtIHtGdW5jdGlvbn0gb3B0aW9ucy5wYXJhbWV0ZXJzLmRpc3BTdHJlYW1zIC0gRnVuY3Rpb24gdG8gZGlzcGxheSBzdHJlYW1zIGZvciB0aGUgc3BlY2lmaWVkIHBhZ2UuXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBbb3B0aW9ucy5icmVha1Jvb209LTFdIC0gVGhlIGJyZWFrIHJvb20gaWRlbnRpZmllci5cbiAgICogQHBhcmFtIHtib29sZWFufSBbb3B0aW9ucy5pbkJyZWFrUm9vbT1mYWxzZV0gLSBGbGFnIGluZGljYXRpbmcgaWYgdGhlIHVzZXIgaXMgaW4gYSBicmVhayByb29tLlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn0gQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgY29udGVudCBnZW5lcmF0aW9uIGlzIGNvbXBsZXRlLlxuICAgKiBAdGhyb3dzIHtFcnJvcn0gVGhyb3dzIGFuIGVycm9yIGlmIGNvbnRlbnQgZ2VuZXJhdGlvbiBmYWlscy5cbiAgICovXG4gIGFzeW5jIGdlbmVyYXRlUGFnZUNvbnRlbnQoe1xuICAgIHBhZ2UsXG4gICAgcGFyYW1ldGVycyxcbiAgICBicmVha1Jvb20gPSAtMSxcbiAgICBpbkJyZWFrUm9vbSA9IGZhbHNlLFxuICB9OiBHZW5lcmF0ZVBhZ2VDb250ZW50T3B0aW9ucyk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRyeSB7XG4gICAgICAvLyBEZXN0cnVjdHVyZSBwYXJhbWV0ZXJzXG4gICAgICBwYXJhbWV0ZXJzID0gcGFyYW1ldGVycy5nZXRVcGRhdGVkQWxsUGFyYW1zKCk7XG5cbiAgICAgIGxldCB7XG4gICAgICAgIHBhZ2luYXRlZFN0cmVhbXMsXG4gICAgICAgIGN1cnJlbnRVc2VyUGFnZSxcbiAgICAgICAgdXBkYXRlTWFpbldpbmRvdyxcbiAgICAgICAgdXBkYXRlQ3VycmVudFVzZXJQYWdlLFxuICAgICAgICB1cGRhdGVVcGRhdGVNYWluV2luZG93LFxuICAgICAgICAvLyBtZWRpYXNmdSBmdW5jdGlvbnNcbiAgICAgICAgZGlzcFN0cmVhbXMsXG4gICAgICB9ID0gcGFyYW1ldGVycztcblxuICAgICAgLy8gQ29udmVydCBwYWdlIHRvIGFuIGludGVnZXJcbiAgICAgIHBhZ2UgPSBwYXJzZUludChwYWdlLnRvU3RyaW5nKCksIDEwKTtcblxuICAgICAgLy8gVXBkYXRlIGN1cnJlbnQgdXNlciBwYWdlXG4gICAgICBjdXJyZW50VXNlclBhZ2UgPSBwYWdlO1xuICAgICAgdXBkYXRlQ3VycmVudFVzZXJQYWdlKGN1cnJlbnRVc2VyUGFnZSk7XG5cbiAgICAgIC8vIFVwZGF0ZSBtYWluIHdpbmRvdyBmbGFnXG4gICAgICB1cGRhdGVNYWluV2luZG93ID0gdHJ1ZTtcbiAgICAgIHVwZGF0ZVVwZGF0ZU1haW5XaW5kb3codXBkYXRlTWFpbldpbmRvdyk7XG5cbiAgICAgIC8vIERpc3BsYXkgc3RyZWFtcyBmb3IgdGhlIHNwZWNpZmllZCBwYWdlXG4gICAgICBhd2FpdCBkaXNwU3RyZWFtcyh7XG4gICAgICAgIGxTdHJlYW1zOiBwYWdpbmF0ZWRTdHJlYW1zW3BhZ2VdLFxuICAgICAgICBpbmQ6IHBhZ2UsXG4gICAgICAgIHBhcmFtZXRlcnMsXG4gICAgICAgIGJyZWFrUm9vbSxcbiAgICAgICAgaW5CcmVha1Jvb20sXG4gICAgICB9KTtcbiAgICB9IGNhdGNoIChlcnJvcjogYW55KSB7XG4gICAgICAvLyBIYW5kbGUgZXJyb3JzIGR1cmluZyBjb250ZW50IGdlbmVyYXRpb25cbiAgICAgIGNvbnNvbGUubG9nKCdFcnJvciBnZW5lcmF0aW5nIHBhZ2UgY29udGVudDonLCBlcnJvci5tZXNzYWdlKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,120 +0,0 @@
|
|
|
1
|
-
// estimate.service.ts
|
|
2
|
-
import { Injectable } from '@angular/core';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
/**
|
|
5
|
-
* Estimates the number of rows and columns for a given set of parameters.
|
|
6
|
-
*
|
|
7
|
-
* @param {GetEstimateOptions} options - The options for the estimation.
|
|
8
|
-
* @param {number} options.n - The number of items to estimate for.
|
|
9
|
-
* @param {GetEstimateParameters} options.parameters - The parameters for the estimation.
|
|
10
|
-
* @param {number} options.parameters.fixedPageLimit - The fixed page limit.
|
|
11
|
-
* @param {number} options.parameters.screenPageLimit - The screen page limit.
|
|
12
|
-
* @param {boolean} options.parameters.shareScreenStarted - Indicates if screen sharing has started.
|
|
13
|
-
* @param {boolean} [options.parameters.shared=false] - Indicates if sharing is active.
|
|
14
|
-
* @param {EventType} options.parameters.eventType - The type of event (e.g., "chat", "conference").
|
|
15
|
-
* @param {boolean} options.parameters.removeAltGrid - Indicates if the alternate grid should be removed.
|
|
16
|
-
* @param {boolean} options.parameters.isWideScreen - Indicates if the screen is wide.
|
|
17
|
-
* @param {boolean} options.parameters.isMediumScreen - Indicates if the screen is medium-sized.
|
|
18
|
-
* @param {Function} options.parameters.updateRemoveAltGrid - Function to update the removeAltGrid parameter.
|
|
19
|
-
* @param {CalculateRowsAndColumnsType} options.parameters.calculateRowsAndColumns - Function to calculate rows and columns.
|
|
20
|
-
*
|
|
21
|
-
* @returns {[number, number, number]} An array containing:
|
|
22
|
-
* - Estimated number of items,
|
|
23
|
-
* - Estimated number of rows,
|
|
24
|
-
* - Estimated number of columns.
|
|
25
|
-
*
|
|
26
|
-
* @throws Will log an error message if an error occurs during estimation.
|
|
27
|
-
*
|
|
28
|
-
* @example
|
|
29
|
-
* ```typescript
|
|
30
|
-
* const estimateOptions = {
|
|
31
|
-
* n: 20,
|
|
32
|
-
* parameters: {
|
|
33
|
-
* fixedPageLimit: 10,
|
|
34
|
-
* screenPageLimit: 15,
|
|
35
|
-
* shareScreenStarted: false,
|
|
36
|
-
* shared: false,
|
|
37
|
-
* eventType: 'conference',
|
|
38
|
-
* removeAltGrid: false,
|
|
39
|
-
* isWideScreen: true,
|
|
40
|
-
* isMediumScreen: false,
|
|
41
|
-
* updateRemoveAltGrid: (value) => console.log(`Remove Alt Grid: ${value}`),
|
|
42
|
-
* calculateRowsAndColumns: ({ n }) => {
|
|
43
|
-
* const sqrt = Math.sqrt(n);
|
|
44
|
-
* return [Math.ceil(sqrt), Math.floor(sqrt)];
|
|
45
|
-
* },
|
|
46
|
-
* },
|
|
47
|
-
* };
|
|
48
|
-
*
|
|
49
|
-
* const estimateService = new GetEstimate();
|
|
50
|
-
* const [estimatedItems, estimatedRows, estimatedCols] = estimateService.getEstimate(estimateOptions);
|
|
51
|
-
* console.log(`Estimated Items: ${estimatedItems}, Rows: ${estimatedRows}, Columns: ${estimatedCols}`);
|
|
52
|
-
* ```
|
|
53
|
-
*/
|
|
54
|
-
export class GetEstimate {
|
|
55
|
-
/**
|
|
56
|
-
* Estimates the number of rows and columns for a given set of parameters.
|
|
57
|
-
*
|
|
58
|
-
* @param {GetEstimateOptions} options - The options for the estimation.
|
|
59
|
-
* @param {number} options.n - The number of items to estimate for.
|
|
60
|
-
* @param {Object} options.parameters - The parameters for the estimation.
|
|
61
|
-
* @param {number} options.parameters.fixedPageLimit - The fixed page limit.
|
|
62
|
-
* @param {number} options.parameters.screenPageLimit - The screen page limit.
|
|
63
|
-
* @param {boolean} options.parameters.shareScreenStarted - Indicates if screen sharing has started.
|
|
64
|
-
* @param {boolean} options.parameters.shared - Indicates if sharing is active.
|
|
65
|
-
* @param {string} options.parameters.eventType - The type of event (e.g., "chat", "conference").
|
|
66
|
-
* @param {boolean} options.parameters.removeAltGrid - Indicates if the alternate grid should be removed.
|
|
67
|
-
* @param {boolean} options.parameters.isWideScreen - Indicates if the screen is wide.
|
|
68
|
-
* @param {boolean} options.parameters.isMediumScreen - Indicates if the screen is medium-sized.
|
|
69
|
-
* @param {Function} options.parameters.updateRemoveAltGrid - Function to update the removeAltGrid parameter.
|
|
70
|
-
* @param {Function} options.parameters.calculateRowsAndColumns - Function to calculate rows and columns.
|
|
71
|
-
*
|
|
72
|
-
* @returns {number[]} An array containing the estimated number of items, rows, and columns.
|
|
73
|
-
*
|
|
74
|
-
* @throws Will log an error message if an error occurs during estimation.
|
|
75
|
-
*/
|
|
76
|
-
getEstimate({ n, parameters }) {
|
|
77
|
-
try {
|
|
78
|
-
// Destructure parameters
|
|
79
|
-
let { fixedPageLimit, screenPageLimit, shareScreenStarted, shared, eventType, removeAltGrid, isWideScreen, isMediumScreen, updateRemoveAltGrid,
|
|
80
|
-
// mediaSfu functions
|
|
81
|
-
calculateRowsAndColumns, } = parameters;
|
|
82
|
-
// Calculate rows and columns
|
|
83
|
-
const [rows, cols] = calculateRowsAndColumns({ n });
|
|
84
|
-
// Check conditions for removing alt grid
|
|
85
|
-
if (n < fixedPageLimit || ((shareScreenStarted || shared) && n < screenPageLimit + 1)) {
|
|
86
|
-
removeAltGrid = true;
|
|
87
|
-
updateRemoveAltGrid(removeAltGrid);
|
|
88
|
-
// Return estimated values based on screen width
|
|
89
|
-
if (!(isMediumScreen || isWideScreen)) {
|
|
90
|
-
return eventType === 'chat' ||
|
|
91
|
-
(eventType === 'conference' && !(shareScreenStarted || shared))
|
|
92
|
-
? [n, n, 1]
|
|
93
|
-
: [n, 1, n];
|
|
94
|
-
}
|
|
95
|
-
else {
|
|
96
|
-
return eventType === 'chat' ||
|
|
97
|
-
(eventType === 'conference' && !(shareScreenStarted || shared))
|
|
98
|
-
? [n, 1, n]
|
|
99
|
-
: [n, n, 1];
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
return [rows * cols, rows, cols];
|
|
103
|
-
}
|
|
104
|
-
catch (error) {
|
|
105
|
-
// Handle errors during estimation
|
|
106
|
-
console.log('Error estimating rows and columns:', error.message);
|
|
107
|
-
// throw error;
|
|
108
|
-
return [0, 0, 0];
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: GetEstimate, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
112
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: GetEstimate, providedIn: 'root' });
|
|
113
|
-
}
|
|
114
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: GetEstimate, decorators: [{
|
|
115
|
-
type: Injectable,
|
|
116
|
-
args: [{
|
|
117
|
-
providedIn: 'root',
|
|
118
|
-
}]
|
|
119
|
-
}] });
|
|
120
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LWVzdGltYXRlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tZWRpYXNmdS1hbmd1bGFyL3NyYy9saWIvY29uc3VtZXJzL2dldC1lc3RpbWF0ZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHNCQUFzQjtBQUN0QixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQTZCekM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FpREc7QUFNTCxNQUFNLE9BQU8sV0FBVztJQUN0Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7T0FvQkc7SUFDSCxXQUFXLENBQUMsRUFBRSxDQUFDLEVBQUUsVUFBVSxFQUFzQjtRQUMvQyxJQUFJLENBQUM7WUFDSCx5QkFBeUI7WUFDekIsSUFBSSxFQUNGLGNBQWMsRUFDZCxlQUFlLEVBQ2Ysa0JBQWtCLEVBQ2xCLE1BQU0sRUFDTixTQUFTLEVBQ1QsYUFBYSxFQUNiLFlBQVksRUFDWixjQUFjLEVBQ2QsbUJBQW1CO1lBQ25CLHFCQUFxQjtZQUNyQix1QkFBdUIsR0FDeEIsR0FBRyxVQUFVLENBQUM7WUFFZiw2QkFBNkI7WUFDN0IsTUFBTSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsR0FBRyx1QkFBdUIsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7WUFFcEQseUNBQXlDO1lBQ3pDLElBQUksQ0FBQyxHQUFHLGNBQWMsSUFBSSxDQUFDLENBQUMsa0JBQWtCLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLGVBQWUsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUN0RixhQUFhLEdBQUcsSUFBSSxDQUFDO2dCQUNyQixtQkFBbUIsQ0FBQyxhQUFhLENBQUMsQ0FBQztnQkFFbkMsZ0RBQWdEO2dCQUNoRCxJQUFJLENBQUMsQ0FBQyxjQUFjLElBQUksWUFBWSxDQUFDLEVBQUUsQ0FBQztvQkFDdEMsT0FBTyxTQUFTLEtBQUssTUFBTTt3QkFDekIsQ0FBQyxTQUFTLEtBQUssWUFBWSxJQUFJLENBQUMsQ0FBQyxrQkFBa0IsSUFBSSxNQUFNLENBQUMsQ0FBQzt3QkFDL0QsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7d0JBQ1gsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztnQkFDaEIsQ0FBQztxQkFBTSxDQUFDO29CQUNOLE9BQU8sU0FBUyxLQUFLLE1BQU07d0JBQ3pCLENBQUMsU0FBUyxLQUFLLFlBQVksSUFBSSxDQUFDLENBQUMsa0JBQWtCLElBQUksTUFBTSxDQUFDLENBQUM7d0JBQy9ELENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO3dCQUNYLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7Z0JBQ2hCLENBQUM7WUFDSCxDQUFDO1lBRUQsT0FBTyxDQUFDLElBQUksR0FBRyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ25DLENBQUM7UUFBQyxPQUFPLEtBQVUsRUFBRSxDQUFDO1lBQ3BCLGtDQUFrQztZQUNsQyxPQUFPLENBQUMsR0FBRyxDQUFDLG9DQUFvQyxFQUFFLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNqRSxlQUFlO1lBQ2YsT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDbkIsQ0FBQztJQUNILENBQUM7dUdBcEVVLFdBQVc7MkdBQVgsV0FBVyxjQUZWLE1BQU07OzJGQUVQLFdBQVc7a0JBSHZCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiLy8gZXN0aW1hdGUuc2VydmljZS50c1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBDYWxjdWxhdGVSb3dzQW5kQ29sdW1uc1R5cGUsIEV2ZW50VHlwZSB9IGZyb20gJy4uL0B0eXBlcy90eXBlcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2V0RXN0aW1hdGVQYXJhbWV0ZXJzIHtcbiAgZml4ZWRQYWdlTGltaXQ6IG51bWJlcjtcbiAgc2NyZWVuUGFnZUxpbWl0OiBudW1iZXI7XG4gIHNoYXJlU2NyZWVuU3RhcnRlZDogYm9vbGVhbjtcbiAgc2hhcmVkPzogYm9vbGVhbjtcbiAgZXZlbnRUeXBlOiBFdmVudFR5cGU7XG4gIHJlbW92ZUFsdEdyaWQ6IGJvb2xlYW47XG4gIGlzV2lkZVNjcmVlbjogYm9vbGVhbjtcbiAgaXNNZWRpdW1TY3JlZW46IGJvb2xlYW47XG4gIHVwZGF0ZVJlbW92ZUFsdEdyaWQ6ICh2YWx1ZTogYm9vbGVhbikgPT4gdm9pZDtcblxuICAvLyBtZWRpYVNmdSBmdW5jdGlvbnNcbiAgY2FsY3VsYXRlUm93c0FuZENvbHVtbnM6IENhbGN1bGF0ZVJvd3NBbmRDb2x1bW5zVHlwZTtcblxuICBba2V5OiBzdHJpbmddOiBhbnk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2V0RXN0aW1hdGVPcHRpb25zIHtcbiAgbjogbnVtYmVyO1xuICBwYXJhbWV0ZXJzOiBHZXRFc3RpbWF0ZVBhcmFtZXRlcnM7XG59XG5cbi8vIEV4cG9ydCB0aGUgdHlwZSBkZWZpbml0aW9uIGZvciB0aGUgZnVuY3Rpb25cbmV4cG9ydCB0eXBlIEdldEVzdGltYXRlVHlwZSA9IChvcHRpb25zOiBHZXRFc3RpbWF0ZU9wdGlvbnMpID0+IFtudW1iZXIsIG51bWJlciwgbnVtYmVyXTtcblxuICAvKipcbiAgICogRXN0aW1hdGVzIHRoZSBudW1iZXIgb2Ygcm93cyBhbmQgY29sdW1ucyBmb3IgYSBnaXZlbiBzZXQgb2YgcGFyYW1ldGVycy5cbiAgICpcbiAgICogQHBhcmFtIHtHZXRFc3RpbWF0ZU9wdGlvbnN9IG9wdGlvbnMgLSBUaGUgb3B0aW9ucyBmb3IgdGhlIGVzdGltYXRpb24uXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBvcHRpb25zLm4gLSBUaGUgbnVtYmVyIG9mIGl0ZW1zIHRvIGVzdGltYXRlIGZvci5cbiAgICogQHBhcmFtIHtHZXRFc3RpbWF0ZVBhcmFtZXRlcnN9IG9wdGlvbnMucGFyYW1ldGVycyAtIFRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgZXN0aW1hdGlvbi5cbiAgICogQHBhcmFtIHtudW1iZXJ9IG9wdGlvbnMucGFyYW1ldGVycy5maXhlZFBhZ2VMaW1pdCAtIFRoZSBmaXhlZCBwYWdlIGxpbWl0LlxuICAgKiBAcGFyYW0ge251bWJlcn0gb3B0aW9ucy5wYXJhbWV0ZXJzLnNjcmVlblBhZ2VMaW1pdCAtIFRoZSBzY3JlZW4gcGFnZSBsaW1pdC5cbiAgICogQHBhcmFtIHtib29sZWFufSBvcHRpb25zLnBhcmFtZXRlcnMuc2hhcmVTY3JlZW5TdGFydGVkIC0gSW5kaWNhdGVzIGlmIHNjcmVlbiBzaGFyaW5nIGhhcyBzdGFydGVkLlxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRpb25zLnBhcmFtZXRlcnMuc2hhcmVkPWZhbHNlXSAtIEluZGljYXRlcyBpZiBzaGFyaW5nIGlzIGFjdGl2ZS5cbiAgICogQHBhcmFtIHtFdmVudFR5cGV9IG9wdGlvbnMucGFyYW1ldGVycy5ldmVudFR5cGUgLSBUaGUgdHlwZSBvZiBldmVudCAoZS5nLiwgXCJjaGF0XCIsIFwiY29uZmVyZW5jZVwiKS5cbiAgICogQHBhcmFtIHtib29sZWFufSBvcHRpb25zLnBhcmFtZXRlcnMucmVtb3ZlQWx0R3JpZCAtIEluZGljYXRlcyBpZiB0aGUgYWx0ZXJuYXRlIGdyaWQgc2hvdWxkIGJlIHJlbW92ZWQuXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gb3B0aW9ucy5wYXJhbWV0ZXJzLmlzV2lkZVNjcmVlbiAtIEluZGljYXRlcyBpZiB0aGUgc2NyZWVuIGlzIHdpZGUuXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gb3B0aW9ucy5wYXJhbWV0ZXJzLmlzTWVkaXVtU2NyZWVuIC0gSW5kaWNhdGVzIGlmIHRoZSBzY3JlZW4gaXMgbWVkaXVtLXNpemVkLlxuICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBvcHRpb25zLnBhcmFtZXRlcnMudXBkYXRlUmVtb3ZlQWx0R3JpZCAtIEZ1bmN0aW9uIHRvIHVwZGF0ZSB0aGUgcmVtb3ZlQWx0R3JpZCBwYXJhbWV0ZXIuXG4gICAqIEBwYXJhbSB7Q2FsY3VsYXRlUm93c0FuZENvbHVtbnNUeXBlfSBvcHRpb25zLnBhcmFtZXRlcnMuY2FsY3VsYXRlUm93c0FuZENvbHVtbnMgLSBGdW5jdGlvbiB0byBjYWxjdWxhdGUgcm93cyBhbmQgY29sdW1ucy5cbiAgICpcbiAgICogQHJldHVybnMge1tudW1iZXIsIG51bWJlciwgbnVtYmVyXX0gQW4gYXJyYXkgY29udGFpbmluZzpcbiAgICogLSBFc3RpbWF0ZWQgbnVtYmVyIG9mIGl0ZW1zLFxuICAgKiAtIEVzdGltYXRlZCBudW1iZXIgb2Ygcm93cyxcbiAgICogLSBFc3RpbWF0ZWQgbnVtYmVyIG9mIGNvbHVtbnMuXG4gICAqXG4gICAqIEB0aHJvd3MgV2lsbCBsb2cgYW4gZXJyb3IgbWVzc2FnZSBpZiBhbiBlcnJvciBvY2N1cnMgZHVyaW5nIGVzdGltYXRpb24uXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGBgYHR5cGVzY3JpcHRcbiAgICogY29uc3QgZXN0aW1hdGVPcHRpb25zID0ge1xuICAgKiAgIG46IDIwLFxuICAgKiAgIHBhcmFtZXRlcnM6IHtcbiAgICogICAgIGZpeGVkUGFnZUxpbWl0OiAxMCxcbiAgICogICAgIHNjcmVlblBhZ2VMaW1pdDogMTUsXG4gICAqICAgICBzaGFyZVNjcmVlblN0YXJ0ZWQ6IGZhbHNlLFxuICAgKiAgICAgc2hhcmVkOiBmYWxzZSxcbiAgICogICAgIGV2ZW50VHlwZTogJ2NvbmZlcmVuY2UnLFxuICAgKiAgICAgcmVtb3ZlQWx0R3JpZDogZmFsc2UsXG4gICAqICAgICBpc1dpZGVTY3JlZW46IHRydWUsXG4gICAqICAgICBpc01lZGl1bVNjcmVlbjogZmFsc2UsXG4gICAqICAgICB1cGRhdGVSZW1vdmVBbHRHcmlkOiAodmFsdWUpID0+IGNvbnNvbGUubG9nKGBSZW1vdmUgQWx0IEdyaWQ6ICR7dmFsdWV9YCksXG4gICAqICAgICBjYWxjdWxhdGVSb3dzQW5kQ29sdW1uczogKHsgbiB9KSA9PiB7XG4gICAqICAgICAgIGNvbnN0IHNxcnQgPSBNYXRoLnNxcnQobik7XG4gICAqICAgICAgIHJldHVybiBbTWF0aC5jZWlsKHNxcnQpLCBNYXRoLmZsb29yKHNxcnQpXTtcbiAgICogICAgIH0sXG4gICAqICAgfSxcbiAgICogfTtcbiAgICpcbiAgICogY29uc3QgZXN0aW1hdGVTZXJ2aWNlID0gbmV3IEdldEVzdGltYXRlKCk7XG4gICAqIGNvbnN0IFtlc3RpbWF0ZWRJdGVtcywgZXN0aW1hdGVkUm93cywgZXN0aW1hdGVkQ29sc10gPSBlc3RpbWF0ZVNlcnZpY2UuZ2V0RXN0aW1hdGUoZXN0aW1hdGVPcHRpb25zKTtcbiAgICogY29uc29sZS5sb2coYEVzdGltYXRlZCBJdGVtczogJHtlc3RpbWF0ZWRJdGVtc30sIFJvd3M6ICR7ZXN0aW1hdGVkUm93c30sIENvbHVtbnM6ICR7ZXN0aW1hdGVkQ29sc31gKTtcbiAgICogYGBgXG4gICAqL1xuXG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBHZXRFc3RpbWF0ZSB7XG4gIC8qKlxuICAgKiBFc3RpbWF0ZXMgdGhlIG51bWJlciBvZiByb3dzIGFuZCBjb2x1bW5zIGZvciBhIGdpdmVuIHNldCBvZiBwYXJhbWV0ZXJzLlxuICAgKlxuICAgKiBAcGFyYW0ge0dldEVzdGltYXRlT3B0aW9uc30gb3B0aW9ucyAtIFRoZSBvcHRpb25zIGZvciB0aGUgZXN0aW1hdGlvbi5cbiAgICogQHBhcmFtIHtudW1iZXJ9IG9wdGlvbnMubiAtIFRoZSBudW1iZXIgb2YgaXRlbXMgdG8gZXN0aW1hdGUgZm9yLlxuICAgKiBAcGFyYW0ge09iamVjdH0gb3B0aW9ucy5wYXJhbWV0ZXJzIC0gVGhlIHBhcmFtZXRlcnMgZm9yIHRoZSBlc3RpbWF0aW9uLlxuICAgKiBAcGFyYW0ge251bWJlcn0gb3B0aW9ucy5wYXJhbWV0ZXJzLmZpeGVkUGFnZUxpbWl0IC0gVGhlIGZpeGVkIHBhZ2UgbGltaXQuXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBvcHRpb25zLnBhcmFtZXRlcnMuc2NyZWVuUGFnZUxpbWl0IC0gVGhlIHNjcmVlbiBwYWdlIGxpbWl0LlxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IG9wdGlvbnMucGFyYW1ldGVycy5zaGFyZVNjcmVlblN0YXJ0ZWQgLSBJbmRpY2F0ZXMgaWYgc2NyZWVuIHNoYXJpbmcgaGFzIHN0YXJ0ZWQuXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gb3B0aW9ucy5wYXJhbWV0ZXJzLnNoYXJlZCAtIEluZGljYXRlcyBpZiBzaGFyaW5nIGlzIGFjdGl2ZS5cbiAgICogQHBhcmFtIHtzdHJpbmd9IG9wdGlvbnMucGFyYW1ldGVycy5ldmVudFR5cGUgLSBUaGUgdHlwZSBvZiBldmVudCAoZS5nLiwgXCJjaGF0XCIsIFwiY29uZmVyZW5jZVwiKS5cbiAgICogQHBhcmFtIHtib29sZWFufSBvcHRpb25zLnBhcmFtZXRlcnMucmVtb3ZlQWx0R3JpZCAtIEluZGljYXRlcyBpZiB0aGUgYWx0ZXJuYXRlIGdyaWQgc2hvdWxkIGJlIHJlbW92ZWQuXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gb3B0aW9ucy5wYXJhbWV0ZXJzLmlzV2lkZVNjcmVlbiAtIEluZGljYXRlcyBpZiB0aGUgc2NyZWVuIGlzIHdpZGUuXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gb3B0aW9ucy5wYXJhbWV0ZXJzLmlzTWVkaXVtU2NyZWVuIC0gSW5kaWNhdGVzIGlmIHRoZSBzY3JlZW4gaXMgbWVkaXVtLXNpemVkLlxuICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBvcHRpb25zLnBhcmFtZXRlcnMudXBkYXRlUmVtb3ZlQWx0R3JpZCAtIEZ1bmN0aW9uIHRvIHVwZGF0ZSB0aGUgcmVtb3ZlQWx0R3JpZCBwYXJhbWV0ZXIuXG4gICAqIEBwYXJhbSB7RnVuY3Rpb259IG9wdGlvbnMucGFyYW1ldGVycy5jYWxjdWxhdGVSb3dzQW5kQ29sdW1ucyAtIEZ1bmN0aW9uIHRvIGNhbGN1bGF0ZSByb3dzIGFuZCBjb2x1bW5zLlxuICAgKlxuICAgKiBAcmV0dXJucyB7bnVtYmVyW119IEFuIGFycmF5IGNvbnRhaW5pbmcgdGhlIGVzdGltYXRlZCBudW1iZXIgb2YgaXRlbXMsIHJvd3MsIGFuZCBjb2x1bW5zLlxuICAgKlxuICAgKiBAdGhyb3dzIFdpbGwgbG9nIGFuIGVycm9yIG1lc3NhZ2UgaWYgYW4gZXJyb3Igb2NjdXJzIGR1cmluZyBlc3RpbWF0aW9uLlxuICAgKi9cbiAgZ2V0RXN0aW1hdGUoeyBuLCBwYXJhbWV0ZXJzIH06IEdldEVzdGltYXRlT3B0aW9ucyk6IFtudW1iZXIsIG51bWJlciwgbnVtYmVyXSB7XG4gICAgdHJ5IHtcbiAgICAgIC8vIERlc3RydWN0dXJlIHBhcmFtZXRlcnNcbiAgICAgIGxldCB7XG4gICAgICAgIGZpeGVkUGFnZUxpbWl0LFxuICAgICAgICBzY3JlZW5QYWdlTGltaXQsXG4gICAgICAgIHNoYXJlU2NyZWVuU3RhcnRlZCxcbiAgICAgICAgc2hhcmVkLFxuICAgICAgICBldmVudFR5cGUsXG4gICAgICAgIHJlbW92ZUFsdEdyaWQsXG4gICAgICAgIGlzV2lkZVNjcmVlbixcbiAgICAgICAgaXNNZWRpdW1TY3JlZW4sXG4gICAgICAgIHVwZGF0ZVJlbW92ZUFsdEdyaWQsXG4gICAgICAgIC8vIG1lZGlhU2Z1IGZ1bmN0aW9uc1xuICAgICAgICBjYWxjdWxhdGVSb3dzQW5kQ29sdW1ucyxcbiAgICAgIH0gPSBwYXJhbWV0ZXJzO1xuXG4gICAgICAvLyBDYWxjdWxhdGUgcm93cyBhbmQgY29sdW1uc1xuICAgICAgY29uc3QgW3Jvd3MsIGNvbHNdID0gY2FsY3VsYXRlUm93c0FuZENvbHVtbnMoeyBuIH0pO1xuXG4gICAgICAvLyBDaGVjayBjb25kaXRpb25zIGZvciByZW1vdmluZyBhbHQgZ3JpZFxuICAgICAgaWYgKG4gPCBmaXhlZFBhZ2VMaW1pdCB8fCAoKHNoYXJlU2NyZWVuU3RhcnRlZCB8fCBzaGFyZWQpICYmIG4gPCBzY3JlZW5QYWdlTGltaXQgKyAxKSkge1xuICAgICAgICByZW1vdmVBbHRHcmlkID0gdHJ1ZTtcbiAgICAgICAgdXBkYXRlUmVtb3ZlQWx0R3JpZChyZW1vdmVBbHRHcmlkKTtcblxuICAgICAgICAvLyBSZXR1cm4gZXN0aW1hdGVkIHZhbHVlcyBiYXNlZCBvbiBzY3JlZW4gd2lkdGhcbiAgICAgICAgaWYgKCEoaXNNZWRpdW1TY3JlZW4gfHwgaXNXaWRlU2NyZWVuKSkge1xuICAgICAgICAgIHJldHVybiBldmVudFR5cGUgPT09ICdjaGF0JyB8fFxuICAgICAgICAgICAgKGV2ZW50VHlwZSA9PT0gJ2NvbmZlcmVuY2UnICYmICEoc2hhcmVTY3JlZW5TdGFydGVkIHx8IHNoYXJlZCkpXG4gICAgICAgICAgICA/IFtuLCBuLCAxXVxuICAgICAgICAgICAgOiBbbiwgMSwgbl07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIGV2ZW50VHlwZSA9PT0gJ2NoYXQnIHx8XG4gICAgICAgICAgICAoZXZlbnRUeXBlID09PSAnY29uZmVyZW5jZScgJiYgIShzaGFyZVNjcmVlblN0YXJ0ZWQgfHwgc2hhcmVkKSlcbiAgICAgICAgICAgID8gW24sIDEsIG5dXG4gICAgICAgICAgICA6IFtuLCBuLCAxXTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gW3Jvd3MgKiBjb2xzLCByb3dzLCBjb2xzXTtcbiAgICB9IGNhdGNoIChlcnJvcjogYW55KSB7XG4gICAgICAvLyBIYW5kbGUgZXJyb3JzIGR1cmluZyBlc3RpbWF0aW9uXG4gICAgICBjb25zb2xlLmxvZygnRXJyb3IgZXN0aW1hdGluZyByb3dzIGFuZCBjb2x1bW5zOicsIGVycm9yLm1lc3NhZ2UpO1xuICAgICAgLy8gdGhyb3cgZXJyb3I7XG4gICAgICByZXR1cm4gWzAsIDAsIDBdO1xuICAgIH1cbiAgfVxufVxuIl19
|
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
// piped-producers.service.ts
|
|
2
|
-
import { Injectable } from '@angular/core';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
/**
|
|
5
|
-
* Retrieves piped producers and signals new consumer transport for each retrieved producer.
|
|
6
|
-
*
|
|
7
|
-
* @param {GetPipedProducersAltOptions} options - The options for retrieving piped producers.
|
|
8
|
-
* @param {Socket} options.nsock - The WebSocket instance used for communication.
|
|
9
|
-
* @param {string} options.islevel - A flag indicating the level of the request.
|
|
10
|
-
* @param {GetPipedProducersAltParameters} options.parameters - Additional parameters for the request.
|
|
11
|
-
* @param {string} options.parameters.member - The member identifier.
|
|
12
|
-
* @param {SignalNewConsumerTransportType} options.parameters.signalNewConsumerTransport - A function to signal new consumer transport.
|
|
13
|
-
*
|
|
14
|
-
* @returns {Promise<void>} A promise that resolves when the operation is complete.
|
|
15
|
-
*
|
|
16
|
-
* @throws {Error} If an error occurs during the process of retrieving producers.
|
|
17
|
-
*
|
|
18
|
-
* @example
|
|
19
|
-
* ```typescript
|
|
20
|
-
* const options = {
|
|
21
|
-
* nsock: socketInstance,
|
|
22
|
-
* islevel: '2',
|
|
23
|
-
* parameters: {
|
|
24
|
-
* member: 'user123',
|
|
25
|
-
* signalNewConsumerTransport: async ({ nsock, remoteProducerId, islevel, parameters }) => {
|
|
26
|
-
* // Implementation to signal new consumer transport
|
|
27
|
-
* console.log(`Signaling new consumer transport for producer: ${remoteProducerId}`);
|
|
28
|
-
* },
|
|
29
|
-
* },
|
|
30
|
-
* };
|
|
31
|
-
*
|
|
32
|
-
* const getPipedProducersService = new GetPipedProducersAlt();
|
|
33
|
-
* await getPipedProducersService.getPipedProducersAlt(options);
|
|
34
|
-
* console.log('Piped producers retrieved successfully.');
|
|
35
|
-
* ```
|
|
36
|
-
*/
|
|
37
|
-
export class GetPipedProducersAlt {
|
|
38
|
-
/**
|
|
39
|
-
* Retrieves piped producers and signals new consumer transport for each retrieved producer.
|
|
40
|
-
*
|
|
41
|
-
* @param {Object} options - The options for retrieving piped producers.
|
|
42
|
-
* @param {WebSocket} options.nsock - The WebSocket instance used for communication.
|
|
43
|
-
* @param {boolean} options.islevel - A flag indicating the level of the request.
|
|
44
|
-
* @param {Object} options.parameters - Additional parameters for the request.
|
|
45
|
-
* @param {string} options.parameters.member - The member identifier.
|
|
46
|
-
* @param {Function} options.parameters.signalNewConsumerTransport - A function to signal new consumer transport.
|
|
47
|
-
*
|
|
48
|
-
* @returns {Promise<void>} A promise that resolves when the operation is complete.
|
|
49
|
-
*
|
|
50
|
-
* @throws {Error} If an error occurs during the process of retrieving producers.
|
|
51
|
-
*/
|
|
52
|
-
async getPipedProducersAlt({ nsock, islevel, parameters, }) {
|
|
53
|
-
try {
|
|
54
|
-
// Destructure parameters
|
|
55
|
-
const { member, signalNewConsumerTransport } = parameters;
|
|
56
|
-
// Emit request to get piped producers using WebSocket
|
|
57
|
-
nsock.emit('getProducersPipedAlt', { islevel, member }, async (producerIds) => {
|
|
58
|
-
// Check if producers are retrieved
|
|
59
|
-
if (producerIds.length > 0) {
|
|
60
|
-
// Signal new consumer transport for each retrieved producer
|
|
61
|
-
for (const id of producerIds) {
|
|
62
|
-
await signalNewConsumerTransport({ nsock, remoteProducerId: id, islevel, parameters });
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
});
|
|
66
|
-
}
|
|
67
|
-
catch (error) {
|
|
68
|
-
// Handle errors during the process of retrieving producers
|
|
69
|
-
console.log('Error getting piped producers:', error.message);
|
|
70
|
-
// throw error;
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: GetPipedProducersAlt, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
74
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: GetPipedProducersAlt, providedIn: 'root' });
|
|
75
|
-
}
|
|
76
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: GetPipedProducersAlt, decorators: [{
|
|
77
|
-
type: Injectable,
|
|
78
|
-
args: [{
|
|
79
|
-
providedIn: 'root',
|
|
80
|
-
}]
|
|
81
|
-
}] });
|
|
82
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LXBpcGVkLXByb2R1Y2Vycy1hbHQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21lZGlhc2Z1LWFuZ3VsYXIvc3JjL2xpYi9jb25zdW1lcnMvZ2V0LXBpcGVkLXByb2R1Y2Vycy1hbHQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSw2QkFBNkI7QUFDN0IsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUF5QjNDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWdDRztBQU1ILE1BQU0sT0FBTyxvQkFBb0I7SUFDL0I7Ozs7Ozs7Ozs7Ozs7T0FhRztJQUNILEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxFQUN6QixLQUFLLEVBQ0wsT0FBTyxFQUNQLFVBQVUsR0FDa0I7UUFDNUIsSUFBSSxDQUFDO1lBQ0gseUJBQXlCO1lBQ3pCLE1BQU0sRUFBRSxNQUFNLEVBQUUsMEJBQTBCLEVBQUUsR0FBRyxVQUFVLENBQUM7WUFFMUQsc0RBQXNEO1lBQ3RELEtBQUssQ0FBQyxJQUFJLENBQUMsc0JBQXNCLEVBQUUsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUUsS0FBSyxFQUFFLFdBQXFCLEVBQUUsRUFBRTtnQkFDdEYsbUNBQW1DO2dCQUNuQyxJQUFJLFdBQVcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7b0JBQzNCLDREQUE0RDtvQkFDNUQsS0FBSyxNQUFNLEVBQUUsSUFBSSxXQUFXLEVBQUUsQ0FBQzt3QkFDN0IsTUFBTSwwQkFBMEIsQ0FBQyxFQUFFLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUM7b0JBQ3pGLENBQUM7Z0JBQ0gsQ0FBQztZQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUFDLE9BQU8sS0FBVSxFQUFFLENBQUM7WUFDcEIsMkRBQTJEO1lBQzNELE9BQU8sQ0FBQyxHQUFHLENBQUMsZ0NBQWdDLEVBQUUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQzdELGVBQWU7UUFDakIsQ0FBQztJQUNILENBQUM7dUdBdkNVLG9CQUFvQjsyR0FBcEIsb0JBQW9CLGNBRm5CLE1BQU07OzJGQUVQLG9CQUFvQjtrQkFIaEMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBwaXBlZC1wcm9kdWNlcnMuc2VydmljZS50c1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU29ja2V0IH0gZnJvbSAnc29ja2V0LmlvLWNsaWVudCc7XG5cbmltcG9ydCB7XG4gIFNpZ25hbE5ld0NvbnN1bWVyVHJhbnNwb3J0UGFyYW1ldGVycyxcbiAgU2lnbmFsTmV3Q29uc3VtZXJUcmFuc3BvcnRUeXBlLFxufSBmcm9tICcuLi9AdHlwZXMvdHlwZXMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEdldFBpcGVkUHJvZHVjZXJzQWx0UGFyYW1ldGVycyBleHRlbmRzIFNpZ25hbE5ld0NvbnN1bWVyVHJhbnNwb3J0UGFyYW1ldGVycyB7XG4gIG1lbWJlcjogc3RyaW5nO1xuXG4gIC8vIG1lZGlhc2Z1IGZ1bmN0aW9uc1xuICBzaWduYWxOZXdDb25zdW1lclRyYW5zcG9ydDogU2lnbmFsTmV3Q29uc3VtZXJUcmFuc3BvcnRUeXBlO1xuICBba2V5OiBzdHJpbmddOiBhbnk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2V0UGlwZWRQcm9kdWNlcnNBbHRPcHRpb25zIHtcbiAgbnNvY2s6IFNvY2tldDtcbiAgaXNsZXZlbDogc3RyaW5nO1xuICBwYXJhbWV0ZXJzOiBHZXRQaXBlZFByb2R1Y2Vyc0FsdFBhcmFtZXRlcnM7XG59XG5cbi8vIEV4cG9ydCB0aGUgdHlwZSBkZWZpbml0aW9uIGZvciB0aGUgZnVuY3Rpb25cbmV4cG9ydCB0eXBlIEdldFBpcGVkUHJvZHVjZXJzQWx0VHlwZSA9IChvcHRpb25zOiBHZXRQaXBlZFByb2R1Y2Vyc0FsdE9wdGlvbnMpID0+IFByb21pc2U8dm9pZD47XG5cbi8qKlxuICogUmV0cmlldmVzIHBpcGVkIHByb2R1Y2VycyBhbmQgc2lnbmFscyBuZXcgY29uc3VtZXIgdHJhbnNwb3J0IGZvciBlYWNoIHJldHJpZXZlZCBwcm9kdWNlci5cbiAqXG4gKiBAcGFyYW0ge0dldFBpcGVkUHJvZHVjZXJzQWx0T3B0aW9uc30gb3B0aW9ucyAtIFRoZSBvcHRpb25zIGZvciByZXRyaWV2aW5nIHBpcGVkIHByb2R1Y2Vycy5cbiAqIEBwYXJhbSB7U29ja2V0fSBvcHRpb25zLm5zb2NrIC0gVGhlIFdlYlNvY2tldCBpbnN0YW5jZSB1c2VkIGZvciBjb21tdW5pY2F0aW9uLlxuICogQHBhcmFtIHtzdHJpbmd9IG9wdGlvbnMuaXNsZXZlbCAtIEEgZmxhZyBpbmRpY2F0aW5nIHRoZSBsZXZlbCBvZiB0aGUgcmVxdWVzdC5cbiAqIEBwYXJhbSB7R2V0UGlwZWRQcm9kdWNlcnNBbHRQYXJhbWV0ZXJzfSBvcHRpb25zLnBhcmFtZXRlcnMgLSBBZGRpdGlvbmFsIHBhcmFtZXRlcnMgZm9yIHRoZSByZXF1ZXN0LlxuICogQHBhcmFtIHtzdHJpbmd9IG9wdGlvbnMucGFyYW1ldGVycy5tZW1iZXIgLSBUaGUgbWVtYmVyIGlkZW50aWZpZXIuXG4gKiBAcGFyYW0ge1NpZ25hbE5ld0NvbnN1bWVyVHJhbnNwb3J0VHlwZX0gb3B0aW9ucy5wYXJhbWV0ZXJzLnNpZ25hbE5ld0NvbnN1bWVyVHJhbnNwb3J0IC0gQSBmdW5jdGlvbiB0byBzaWduYWwgbmV3IGNvbnN1bWVyIHRyYW5zcG9ydC5cbiAqXG4gKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn0gQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgb3BlcmF0aW9uIGlzIGNvbXBsZXRlLlxuICpcbiAqIEB0aHJvd3Mge0Vycm9yfSBJZiBhbiBlcnJvciBvY2N1cnMgZHVyaW5nIHRoZSBwcm9jZXNzIG9mIHJldHJpZXZpbmcgcHJvZHVjZXJzLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBvcHRpb25zID0ge1xuICogICBuc29jazogc29ja2V0SW5zdGFuY2UsXG4gKiAgIGlzbGV2ZWw6ICcyJyxcbiAqICAgcGFyYW1ldGVyczoge1xuICogICAgIG1lbWJlcjogJ3VzZXIxMjMnLFxuICogICAgIHNpZ25hbE5ld0NvbnN1bWVyVHJhbnNwb3J0OiBhc3luYyAoeyBuc29jaywgcmVtb3RlUHJvZHVjZXJJZCwgaXNsZXZlbCwgcGFyYW1ldGVycyB9KSA9PiB7XG4gKiAgICAgICAvLyBJbXBsZW1lbnRhdGlvbiB0byBzaWduYWwgbmV3IGNvbnN1bWVyIHRyYW5zcG9ydFxuICogICAgICAgY29uc29sZS5sb2coYFNpZ25hbGluZyBuZXcgY29uc3VtZXIgdHJhbnNwb3J0IGZvciBwcm9kdWNlcjogJHtyZW1vdGVQcm9kdWNlcklkfWApO1xuICogICAgIH0sXG4gKiAgIH0sXG4gKiB9O1xuICpcbiAqIGNvbnN0IGdldFBpcGVkUHJvZHVjZXJzU2VydmljZSA9IG5ldyBHZXRQaXBlZFByb2R1Y2Vyc0FsdCgpO1xuICogYXdhaXQgZ2V0UGlwZWRQcm9kdWNlcnNTZXJ2aWNlLmdldFBpcGVkUHJvZHVjZXJzQWx0KG9wdGlvbnMpO1xuICogY29uc29sZS5sb2coJ1BpcGVkIHByb2R1Y2VycyByZXRyaWV2ZWQgc3VjY2Vzc2Z1bGx5LicpO1xuICogYGBgXG4gKi9cblxuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgR2V0UGlwZWRQcm9kdWNlcnNBbHQge1xuICAvKipcbiAgICogUmV0cmlldmVzIHBpcGVkIHByb2R1Y2VycyBhbmQgc2lnbmFscyBuZXcgY29uc3VtZXIgdHJhbnNwb3J0IGZvciBlYWNoIHJldHJpZXZlZCBwcm9kdWNlci5cbiAgICpcbiAgICogQHBhcmFtIHtPYmplY3R9IG9wdGlvbnMgLSBUaGUgb3B0aW9ucyBmb3IgcmV0cmlldmluZyBwaXBlZCBwcm9kdWNlcnMuXG4gICAqIEBwYXJhbSB7V2ViU29ja2V0fSBvcHRpb25zLm5zb2NrIC0gVGhlIFdlYlNvY2tldCBpbnN0YW5jZSB1c2VkIGZvciBjb21tdW5pY2F0aW9uLlxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IG9wdGlvbnMuaXNsZXZlbCAtIEEgZmxhZyBpbmRpY2F0aW5nIHRoZSBsZXZlbCBvZiB0aGUgcmVxdWVzdC5cbiAgICogQHBhcmFtIHtPYmplY3R9IG9wdGlvbnMucGFyYW1ldGVycyAtIEFkZGl0aW9uYWwgcGFyYW1ldGVycyBmb3IgdGhlIHJlcXVlc3QuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBvcHRpb25zLnBhcmFtZXRlcnMubWVtYmVyIC0gVGhlIG1lbWJlciBpZGVudGlmaWVyLlxuICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBvcHRpb25zLnBhcmFtZXRlcnMuc2lnbmFsTmV3Q29uc3VtZXJUcmFuc3BvcnQgLSBBIGZ1bmN0aW9uIHRvIHNpZ25hbCBuZXcgY29uc3VtZXIgdHJhbnNwb3J0LlxuICAgKlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn0gQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgb3BlcmF0aW9uIGlzIGNvbXBsZXRlLlxuICAgKlxuICAgKiBAdGhyb3dzIHtFcnJvcn0gSWYgYW4gZXJyb3Igb2NjdXJzIGR1cmluZyB0aGUgcHJvY2VzcyBvZiByZXRyaWV2aW5nIHByb2R1Y2Vycy5cbiAgICovXG4gIGFzeW5jIGdldFBpcGVkUHJvZHVjZXJzQWx0KHtcbiAgICBuc29jayxcbiAgICBpc2xldmVsLFxuICAgIHBhcmFtZXRlcnMsXG4gIH06IEdldFBpcGVkUHJvZHVjZXJzQWx0T3B0aW9ucyk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRyeSB7XG4gICAgICAvLyBEZXN0cnVjdHVyZSBwYXJhbWV0ZXJzXG4gICAgICBjb25zdCB7IG1lbWJlciwgc2lnbmFsTmV3Q29uc3VtZXJUcmFuc3BvcnQgfSA9IHBhcmFtZXRlcnM7XG5cbiAgICAgIC8vIEVtaXQgcmVxdWVzdCB0byBnZXQgcGlwZWQgcHJvZHVjZXJzIHVzaW5nIFdlYlNvY2tldFxuICAgICAgbnNvY2suZW1pdCgnZ2V0UHJvZHVjZXJzUGlwZWRBbHQnLCB7IGlzbGV2ZWwsIG1lbWJlciB9LCBhc3luYyAocHJvZHVjZXJJZHM6IHN0cmluZ1tdKSA9PiB7XG4gICAgICAgIC8vIENoZWNrIGlmIHByb2R1Y2VycyBhcmUgcmV0cmlldmVkXG4gICAgICAgIGlmIChwcm9kdWNlcklkcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgLy8gU2lnbmFsIG5ldyBjb25zdW1lciB0cmFuc3BvcnQgZm9yIGVhY2ggcmV0cmlldmVkIHByb2R1Y2VyXG4gICAgICAgICAgZm9yIChjb25zdCBpZCBvZiBwcm9kdWNlcklkcykge1xuICAgICAgICAgICAgYXdhaXQgc2lnbmFsTmV3Q29uc3VtZXJUcmFuc3BvcnQoeyBuc29jaywgcmVtb3RlUHJvZHVjZXJJZDogaWQsIGlzbGV2ZWwsIHBhcmFtZXRlcnMgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9IGNhdGNoIChlcnJvcjogYW55KSB7XG4gICAgICAvLyBIYW5kbGUgZXJyb3JzIGR1cmluZyB0aGUgcHJvY2VzcyBvZiByZXRyaWV2aW5nIHByb2R1Y2Vyc1xuICAgICAgY29uc29sZS5sb2coJ0Vycm9yIGdldHRpbmcgcGlwZWQgcHJvZHVjZXJzOicsIGVycm9yLm1lc3NhZ2UpO1xuICAgICAgLy8gdGhyb3cgZXJyb3I7XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
/**
|
|
4
|
-
* Retrieves piped producers and signals new consumer transport for each retrieved producer.
|
|
5
|
-
*
|
|
6
|
-
* @param {GetProducersPipedOptions} options - The options for getting piped producers.
|
|
7
|
-
* @param {Socket} options.nsock - The WebSocket instance used for communication.
|
|
8
|
-
* @param {string} options.islevel - A flag indicating the level of the operation.
|
|
9
|
-
* @param {GetProducersPipedParameters} options.parameters - Additional parameters for the operation.
|
|
10
|
-
* @param {string} options.parameters.member - The member identifier.
|
|
11
|
-
* @param {SignalNewConsumerTransportType} options.parameters.signalNewConsumerTransport - The function to signal new consumer transport.
|
|
12
|
-
*
|
|
13
|
-
* @returns {Promise<void>} A promise that resolves when the operation is complete.
|
|
14
|
-
*
|
|
15
|
-
* @throws {Error} If an error occurs during the process of retrieving producers.
|
|
16
|
-
*
|
|
17
|
-
* @example
|
|
18
|
-
* ```typescript
|
|
19
|
-
* const options = {
|
|
20
|
-
* nsock: socketInstance,
|
|
21
|
-
* islevel: '2',
|
|
22
|
-
* parameters: {
|
|
23
|
-
* member: 'user123',
|
|
24
|
-
* signalNewConsumerTransport: async ({ remoteProducerId, islevel, nsock, parameters }) => {
|
|
25
|
-
* // Implementation to signal new consumer transport
|
|
26
|
-
* console.log(`Signaling new consumer transport for producer: ${remoteProducerId}`);
|
|
27
|
-
* },
|
|
28
|
-
* },
|
|
29
|
-
* };
|
|
30
|
-
*
|
|
31
|
-
* const getProducersPipedService = new GetProducersPiped();
|
|
32
|
-
* await getProducersPipedService.getProducersPiped(options);
|
|
33
|
-
* console.log('Piped producers retrieved successfully.');
|
|
34
|
-
* ```
|
|
35
|
-
*/
|
|
36
|
-
export class GetProducersPiped {
|
|
37
|
-
/**
|
|
38
|
-
* Retrieves piped producers and signals new consumer transport for each retrieved producer.
|
|
39
|
-
*
|
|
40
|
-
* @param {Object} options - The options for getting piped producers.
|
|
41
|
-
* @param {WebSocket} options.nsock - The WebSocket instance used for communication.
|
|
42
|
-
* @param {boolean} options.islevel - A flag indicating the level of the operation.
|
|
43
|
-
* @param {Object} options.parameters - Additional parameters for the operation.
|
|
44
|
-
* @param {string} options.parameters.member - The member identifier.
|
|
45
|
-
* @param {Function} options.parameters.signalNewConsumerTransport - The function to signal new consumer transport.
|
|
46
|
-
*
|
|
47
|
-
* @returns {Promise<void>} A promise that resolves when the operation is complete.
|
|
48
|
-
*
|
|
49
|
-
* @throws {Error} If an error occurs during the process of retrieving producers.
|
|
50
|
-
*/
|
|
51
|
-
async getProducersPiped({ nsock, islevel, parameters }) {
|
|
52
|
-
try {
|
|
53
|
-
// Destructure parameters
|
|
54
|
-
const { member, signalNewConsumerTransport } = parameters;
|
|
55
|
-
// Emit request to get piped producers using WebSocket
|
|
56
|
-
nsock.emit('getProducersPipedAlt', { islevel, member }, async (producerIds) => {
|
|
57
|
-
// Check if producers are retrieved
|
|
58
|
-
if (producerIds.length > 0) {
|
|
59
|
-
// Signal new consumer transport for each retrieved producer
|
|
60
|
-
await Promise.all(producerIds.map((id) => signalNewConsumerTransport({ remoteProducerId: id, islevel, nsock, parameters })));
|
|
61
|
-
}
|
|
62
|
-
});
|
|
63
|
-
}
|
|
64
|
-
catch (error) {
|
|
65
|
-
// Handle errors during the process of retrieving producers
|
|
66
|
-
console.log('Error getting piped producers:', error.message);
|
|
67
|
-
// throw error;
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: GetProducersPiped, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
71
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: GetProducersPiped, providedIn: 'root' });
|
|
72
|
-
}
|
|
73
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: GetProducersPiped, decorators: [{
|
|
74
|
-
type: Injectable,
|
|
75
|
-
args: [{
|
|
76
|
-
providedIn: 'root',
|
|
77
|
-
}]
|
|
78
|
-
}] });
|
|
79
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LXByb2R1Y2Vycy1waXBlZC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWVkaWFzZnUtYW5ndWxhci9zcmMvbGliL2NvbnN1bWVycy9nZXQtcHJvZHVjZXJzLXBpcGVkLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUF1QjNDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWdDRztBQUtILE1BQU0sT0FBTyxpQkFBaUI7SUFDNUI7Ozs7Ozs7Ozs7Ozs7T0FhRztJQUVILEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUE0QjtRQUM5RSxJQUFJLENBQUM7WUFDSCx5QkFBeUI7WUFDekIsTUFBTSxFQUFFLE1BQU0sRUFBRSwwQkFBMEIsRUFBRSxHQUFHLFVBQVUsQ0FBQztZQUUxRCxzREFBc0Q7WUFDdEQsS0FBSyxDQUFDLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRSxLQUFLLEVBQUUsV0FBcUIsRUFBRSxFQUFFO2dCQUN0RixtQ0FBbUM7Z0JBQ25DLElBQUksV0FBVyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztvQkFDM0IsNERBQTREO29CQUM1RCxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQ2YsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQ3JCLDBCQUEwQixDQUFDLEVBQUUsZ0JBQWdCLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FDakYsQ0FDRixDQUFDO2dCQUNKLENBQUM7WUFDSCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7UUFBQyxPQUFPLEtBQVUsRUFBRSxDQUFDO1lBQ3BCLDJEQUEyRDtZQUMzRCxPQUFPLENBQUMsR0FBRyxDQUFDLGdDQUFnQyxFQUFFLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUM3RCxlQUFlO1FBQ2pCLENBQUM7SUFDSCxDQUFDO3VHQXRDVSxpQkFBaUI7MkdBQWpCLGlCQUFpQixjQUZoQixNQUFNOzsyRkFFUCxpQkFBaUI7a0JBSDdCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU29ja2V0IH0gZnJvbSAnc29ja2V0LmlvLWNsaWVudCc7XG5pbXBvcnQge1xuICBTaWduYWxOZXdDb25zdW1lclRyYW5zcG9ydFBhcmFtZXRlcnMsXG4gIFNpZ25hbE5ld0NvbnN1bWVyVHJhbnNwb3J0VHlwZSxcbn0gZnJvbSAnLi4vQHR5cGVzL3R5cGVzJztcbmV4cG9ydCBpbnRlcmZhY2UgR2V0UHJvZHVjZXJzUGlwZWRQYXJhbWV0ZXJzIGV4dGVuZHMgU2lnbmFsTmV3Q29uc3VtZXJUcmFuc3BvcnRQYXJhbWV0ZXJzIHtcbiAgbWVtYmVyOiBzdHJpbmc7XG5cbiAgLy8gbWVkaWFzZnUgZnVuY3Rpb25zXG4gIHNpZ25hbE5ld0NvbnN1bWVyVHJhbnNwb3J0OiBTaWduYWxOZXdDb25zdW1lclRyYW5zcG9ydFR5cGU7XG4gIFtrZXk6IHN0cmluZ106IGFueTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHZXRQcm9kdWNlcnNQaXBlZE9wdGlvbnMge1xuICBuc29jazogU29ja2V0O1xuICBpc2xldmVsOiBzdHJpbmc7XG4gIHBhcmFtZXRlcnM6IEdldFByb2R1Y2Vyc1BpcGVkUGFyYW1ldGVycztcbn1cblxuLy8gRXhwb3J0IHRoZSB0eXBlIGRlZmluaXRpb24gZm9yIHRoZSBmdW5jdGlvblxuZXhwb3J0IHR5cGUgR2V0UHJvZHVjZXJzUGlwZWRUeXBlID0gKG9wdGlvbnM6IEdldFByb2R1Y2Vyc1BpcGVkT3B0aW9ucykgPT4gUHJvbWlzZTx2b2lkPjtcblxuLyoqXG4gKiBSZXRyaWV2ZXMgcGlwZWQgcHJvZHVjZXJzIGFuZCBzaWduYWxzIG5ldyBjb25zdW1lciB0cmFuc3BvcnQgZm9yIGVhY2ggcmV0cmlldmVkIHByb2R1Y2VyLlxuICpcbiAqIEBwYXJhbSB7R2V0UHJvZHVjZXJzUGlwZWRPcHRpb25zfSBvcHRpb25zIC0gVGhlIG9wdGlvbnMgZm9yIGdldHRpbmcgcGlwZWQgcHJvZHVjZXJzLlxuICogQHBhcmFtIHtTb2NrZXR9IG9wdGlvbnMubnNvY2sgLSBUaGUgV2ViU29ja2V0IGluc3RhbmNlIHVzZWQgZm9yIGNvbW11bmljYXRpb24uXG4gKiBAcGFyYW0ge3N0cmluZ30gb3B0aW9ucy5pc2xldmVsIC0gQSBmbGFnIGluZGljYXRpbmcgdGhlIGxldmVsIG9mIHRoZSBvcGVyYXRpb24uXG4gKiBAcGFyYW0ge0dldFByb2R1Y2Vyc1BpcGVkUGFyYW1ldGVyc30gb3B0aW9ucy5wYXJhbWV0ZXJzIC0gQWRkaXRpb25hbCBwYXJhbWV0ZXJzIGZvciB0aGUgb3BlcmF0aW9uLlxuICogQHBhcmFtIHtzdHJpbmd9IG9wdGlvbnMucGFyYW1ldGVycy5tZW1iZXIgLSBUaGUgbWVtYmVyIGlkZW50aWZpZXIuXG4gKiBAcGFyYW0ge1NpZ25hbE5ld0NvbnN1bWVyVHJhbnNwb3J0VHlwZX0gb3B0aW9ucy5wYXJhbWV0ZXJzLnNpZ25hbE5ld0NvbnN1bWVyVHJhbnNwb3J0IC0gVGhlIGZ1bmN0aW9uIHRvIHNpZ25hbCBuZXcgY29uc3VtZXIgdHJhbnNwb3J0LlxuICpcbiAqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fSBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBvcGVyYXRpb24gaXMgY29tcGxldGUuXG4gKlxuICogQHRocm93cyB7RXJyb3J9IElmIGFuIGVycm9yIG9jY3VycyBkdXJpbmcgdGhlIHByb2Nlc3Mgb2YgcmV0cmlldmluZyBwcm9kdWNlcnMuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IG9wdGlvbnMgPSB7XG4gKiAgIG5zb2NrOiBzb2NrZXRJbnN0YW5jZSxcbiAqICAgaXNsZXZlbDogJzInLFxuICogICBwYXJhbWV0ZXJzOiB7XG4gKiAgICAgbWVtYmVyOiAndXNlcjEyMycsXG4gKiAgICAgc2lnbmFsTmV3Q29uc3VtZXJUcmFuc3BvcnQ6IGFzeW5jICh7IHJlbW90ZVByb2R1Y2VySWQsIGlzbGV2ZWwsIG5zb2NrLCBwYXJhbWV0ZXJzIH0pID0+IHtcbiAqICAgICAgIC8vIEltcGxlbWVudGF0aW9uIHRvIHNpZ25hbCBuZXcgY29uc3VtZXIgdHJhbnNwb3J0XG4gKiAgICAgICBjb25zb2xlLmxvZyhgU2lnbmFsaW5nIG5ldyBjb25zdW1lciB0cmFuc3BvcnQgZm9yIHByb2R1Y2VyOiAke3JlbW90ZVByb2R1Y2VySWR9YCk7XG4gKiAgICAgfSxcbiAqICAgfSxcbiAqIH07XG4gKlxuICogY29uc3QgZ2V0UHJvZHVjZXJzUGlwZWRTZXJ2aWNlID0gbmV3IEdldFByb2R1Y2Vyc1BpcGVkKCk7XG4gKiBhd2FpdCBnZXRQcm9kdWNlcnNQaXBlZFNlcnZpY2UuZ2V0UHJvZHVjZXJzUGlwZWQob3B0aW9ucyk7XG4gKiBjb25zb2xlLmxvZygnUGlwZWQgcHJvZHVjZXJzIHJldHJpZXZlZCBzdWNjZXNzZnVsbHkuJyk7XG4gKiBgYGBcbiAqL1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgR2V0UHJvZHVjZXJzUGlwZWQge1xuICAvKipcbiAgICogUmV0cmlldmVzIHBpcGVkIHByb2R1Y2VycyBhbmQgc2lnbmFscyBuZXcgY29uc3VtZXIgdHJhbnNwb3J0IGZvciBlYWNoIHJldHJpZXZlZCBwcm9kdWNlci5cbiAgICpcbiAgICogQHBhcmFtIHtPYmplY3R9IG9wdGlvbnMgLSBUaGUgb3B0aW9ucyBmb3IgZ2V0dGluZyBwaXBlZCBwcm9kdWNlcnMuXG4gICAqIEBwYXJhbSB7V2ViU29ja2V0fSBvcHRpb25zLm5zb2NrIC0gVGhlIFdlYlNvY2tldCBpbnN0YW5jZSB1c2VkIGZvciBjb21tdW5pY2F0aW9uLlxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IG9wdGlvbnMuaXNsZXZlbCAtIEEgZmxhZyBpbmRpY2F0aW5nIHRoZSBsZXZlbCBvZiB0aGUgb3BlcmF0aW9uLlxuICAgKiBAcGFyYW0ge09iamVjdH0gb3B0aW9ucy5wYXJhbWV0ZXJzIC0gQWRkaXRpb25hbCBwYXJhbWV0ZXJzIGZvciB0aGUgb3BlcmF0aW9uLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gb3B0aW9ucy5wYXJhbWV0ZXJzLm1lbWJlciAtIFRoZSBtZW1iZXIgaWRlbnRpZmllci5cbiAgICogQHBhcmFtIHtGdW5jdGlvbn0gb3B0aW9ucy5wYXJhbWV0ZXJzLnNpZ25hbE5ld0NvbnN1bWVyVHJhbnNwb3J0IC0gVGhlIGZ1bmN0aW9uIHRvIHNpZ25hbCBuZXcgY29uc3VtZXIgdHJhbnNwb3J0LlxuICAgKlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn0gQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgb3BlcmF0aW9uIGlzIGNvbXBsZXRlLlxuICAgKlxuICAgKiBAdGhyb3dzIHtFcnJvcn0gSWYgYW4gZXJyb3Igb2NjdXJzIGR1cmluZyB0aGUgcHJvY2VzcyBvZiByZXRyaWV2aW5nIHByb2R1Y2Vycy5cbiAgICovXG5cbiAgYXN5bmMgZ2V0UHJvZHVjZXJzUGlwZWQoeyBuc29jaywgaXNsZXZlbCwgcGFyYW1ldGVycyB9OiBHZXRQcm9kdWNlcnNQaXBlZE9wdGlvbnMpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0cnkge1xuICAgICAgLy8gRGVzdHJ1Y3R1cmUgcGFyYW1ldGVyc1xuICAgICAgY29uc3QgeyBtZW1iZXIsIHNpZ25hbE5ld0NvbnN1bWVyVHJhbnNwb3J0IH0gPSBwYXJhbWV0ZXJzO1xuXG4gICAgICAvLyBFbWl0IHJlcXVlc3QgdG8gZ2V0IHBpcGVkIHByb2R1Y2VycyB1c2luZyBXZWJTb2NrZXRcbiAgICAgIG5zb2NrLmVtaXQoJ2dldFByb2R1Y2Vyc1BpcGVkQWx0JywgeyBpc2xldmVsLCBtZW1iZXIgfSwgYXN5bmMgKHByb2R1Y2VySWRzOiBzdHJpbmdbXSkgPT4ge1xuICAgICAgICAvLyBDaGVjayBpZiBwcm9kdWNlcnMgYXJlIHJldHJpZXZlZFxuICAgICAgICBpZiAocHJvZHVjZXJJZHMubGVuZ3RoID4gMCkge1xuICAgICAgICAgIC8vIFNpZ25hbCBuZXcgY29uc3VtZXIgdHJhbnNwb3J0IGZvciBlYWNoIHJldHJpZXZlZCBwcm9kdWNlclxuICAgICAgICAgIGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgICAgICAgcHJvZHVjZXJJZHMubWFwKChpZCkgPT5cbiAgICAgICAgICAgICAgc2lnbmFsTmV3Q29uc3VtZXJUcmFuc3BvcnQoeyByZW1vdGVQcm9kdWNlcklkOiBpZCwgaXNsZXZlbCwgbnNvY2ssIHBhcmFtZXRlcnMgfSksXG4gICAgICAgICAgICApLFxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0gY2F0Y2ggKGVycm9yOiBhbnkpIHtcbiAgICAgIC8vIEhhbmRsZSBlcnJvcnMgZHVyaW5nIHRoZSBwcm9jZXNzIG9mIHJldHJpZXZpbmcgcHJvZHVjZXJzXG4gICAgICBjb25zb2xlLmxvZygnRXJyb3IgZ2V0dGluZyBwaXBlZCBwcm9kdWNlcnM6JywgZXJyb3IubWVzc2FnZSk7XG4gICAgICAvLyB0aHJvdyBlcnJvcjtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,91 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
/**
|
|
4
|
-
* Asynchronously processes and updates video streams by filtering out the admin's video stream.
|
|
5
|
-
*
|
|
6
|
-
* @param {GetVideosOptions} options - The options for getting videos.
|
|
7
|
-
* @param {Participant[]} options.participants - The list of participants.
|
|
8
|
-
* @param {Stream[]} options.allVideoStreams - The list of all video streams.
|
|
9
|
-
* @param {(Stream | Participant)[]} options.oldAllStreams - The list of old video streams.
|
|
10
|
-
* @param {string} [options.adminVidID] - The ID of the admin's video stream.
|
|
11
|
-
* @param {Function} options.updateAllVideoStreams - Function to update the state variable for all video streams.
|
|
12
|
-
* @param {Function} options.updateOldAllStreams - Function to update the state variable for old video streams.
|
|
13
|
-
* @returns {Promise<void>} A promise that resolves when the video streams have been processed and updated.
|
|
14
|
-
*
|
|
15
|
-
* @throws {Error} If an error occurs during the process of updating video streams.
|
|
16
|
-
*
|
|
17
|
-
* @example
|
|
18
|
-
* ```typescript
|
|
19
|
-
* const options = {
|
|
20
|
-
* participants: participantList,
|
|
21
|
-
* allVideoStreams: currentVideoStreams,
|
|
22
|
-
* oldAllStreams: previousVideoStreams,
|
|
23
|
-
* updateAllVideoStreams: (streams) => {
|
|
24
|
-
* console.log('Updated all video streams:', streams);
|
|
25
|
-
* },
|
|
26
|
-
* updateOldAllStreams: (streams) => {
|
|
27
|
-
* console.log('Updated old video streams:', streams);
|
|
28
|
-
* },
|
|
29
|
-
* };
|
|
30
|
-
*
|
|
31
|
-
* const getVideosService = new GetVideos();
|
|
32
|
-
* await getVideosService.getVideos(options);
|
|
33
|
-
* console.log('Video streams processed successfully.');
|
|
34
|
-
* ```
|
|
35
|
-
*/
|
|
36
|
-
export class GetVideos {
|
|
37
|
-
/**
|
|
38
|
-
* Asynchronously processes and updates video streams by filtering out the admin's video stream.
|
|
39
|
-
*
|
|
40
|
-
* @param {GetVideosOptions} options - The options for getting videos.
|
|
41
|
-
* @param {Participant[]} options.participants - The list of participants.
|
|
42
|
-
* @param {Stream[]} options.allVideoStreams - The list of all video streams.
|
|
43
|
-
* @param {(Stream | Participant)[]} options.oldAllStreams - The list of old video streams.
|
|
44
|
-
* @param {string} options.adminVidID - The ID of the admin's video stream.
|
|
45
|
-
* @param {Function} options.updateAllVideoStreams - Function to update the state variable for all video streams.
|
|
46
|
-
* @param {Function} options.updateOldAllStreams - Function to update the state variable for old video streams.
|
|
47
|
-
* @returns {Promise<void>} A promise that resolves when the video streams have been processed and updated.
|
|
48
|
-
*/
|
|
49
|
-
async getVideos({ participants, allVideoStreams, oldAllStreams, adminVidID, updateAllVideoStreams, updateOldAllStreams, }) {
|
|
50
|
-
try {
|
|
51
|
-
// Filter out the admin's video stream and update state variables
|
|
52
|
-
let admin = participants.filter((participant) => participant.islevel === '2');
|
|
53
|
-
if (admin.length > 0) {
|
|
54
|
-
adminVidID = admin[0].videoID;
|
|
55
|
-
if (adminVidID != null && adminVidID !== '') {
|
|
56
|
-
let oldAllStreams_ = [];
|
|
57
|
-
// Check if the length of oldAllStreams is greater than 0
|
|
58
|
-
if (oldAllStreams.length > 0) {
|
|
59
|
-
oldAllStreams_ = oldAllStreams;
|
|
60
|
-
}
|
|
61
|
-
// Filter out admin's video stream from oldAllStreams
|
|
62
|
-
oldAllStreams = allVideoStreams.filter((streame) => streame.producerId === adminVidID);
|
|
63
|
-
// If no admin's video stream found, revert to the previous state
|
|
64
|
-
if (oldAllStreams.length < 1) {
|
|
65
|
-
oldAllStreams = oldAllStreams_;
|
|
66
|
-
}
|
|
67
|
-
// Update the state variable for old video streams
|
|
68
|
-
updateOldAllStreams(oldAllStreams);
|
|
69
|
-
// Filter out admin's video stream from allVideoStreams
|
|
70
|
-
allVideoStreams = allVideoStreams.filter((streame) => streame.producerId !== adminVidID);
|
|
71
|
-
// Update the state variable for all video streams
|
|
72
|
-
updateAllVideoStreams(allVideoStreams);
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
catch (error) {
|
|
77
|
-
// Handle errors during the process of updating video streams
|
|
78
|
-
console.log('Error updating video streams:', error.message);
|
|
79
|
-
// throw error;
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: GetVideos, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
83
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: GetVideos, providedIn: 'root' });
|
|
84
|
-
}
|
|
85
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: GetVideos, decorators: [{
|
|
86
|
-
type: Injectable,
|
|
87
|
-
args: [{
|
|
88
|
-
providedIn: 'root',
|
|
89
|
-
}]
|
|
90
|
-
}] });
|
|
91
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LXZpZGVvcy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWVkaWFzZnUtYW5ndWxhci9zcmMvbGliL2NvbnN1bWVycy9nZXQtdmlkZW9zLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFjM0M7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBZ0NHO0FBTUgsTUFBTSxPQUFPLFNBQVM7SUFDcEI7Ozs7Ozs7Ozs7O09BV0c7SUFFSCxLQUFLLENBQUMsU0FBUyxDQUFDLEVBQ2QsWUFBWSxFQUNaLGVBQWUsRUFDZixhQUFhLEVBQ2IsVUFBVSxFQUNWLHFCQUFxQixFQUNyQixtQkFBbUIsR0FDRjtRQUNqQixJQUFJLENBQUM7WUFDSCxpRUFBaUU7WUFDakUsSUFBSSxLQUFLLEdBQUcsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFdBQWdCLEVBQUUsRUFBRSxDQUFDLFdBQVcsQ0FBQyxPQUFPLEtBQUssR0FBRyxDQUFDLENBQUM7WUFFbkYsSUFBSSxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUNyQixVQUFVLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQztnQkFFOUIsSUFBSSxVQUFVLElBQUksSUFBSSxJQUFJLFVBQVUsS0FBSyxFQUFFLEVBQUUsQ0FBQztvQkFDNUMsSUFBSSxjQUFjLEdBQVUsRUFBRSxDQUFDO29CQUUvQix5REFBeUQ7b0JBQ3pELElBQUksYUFBYSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQzt3QkFDN0IsY0FBYyxHQUFHLGFBQWEsQ0FBQztvQkFDakMsQ0FBQztvQkFFRCxxREFBcUQ7b0JBQ3JELGFBQWEsR0FBRyxlQUFlLENBQUMsTUFBTSxDQUNwQyxDQUFDLE9BQVksRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLFVBQVUsS0FBSyxVQUFVLENBQ3BELENBQUM7b0JBRUYsaUVBQWlFO29CQUNqRSxJQUFJLGFBQWEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7d0JBQzdCLGFBQWEsR0FBRyxjQUFjLENBQUM7b0JBQ2pDLENBQUM7b0JBRUQsa0RBQWtEO29CQUNsRCxtQkFBbUIsQ0FBQyxhQUFhLENBQUMsQ0FBQztvQkFFbkMsdURBQXVEO29CQUN2RCxlQUFlLEdBQUcsZUFBZSxDQUFDLE1BQU0sQ0FDdEMsQ0FBQyxPQUFZLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEtBQUssVUFBVSxDQUNwRCxDQUFDO29CQUVGLGtEQUFrRDtvQkFDbEQscUJBQXFCLENBQUMsZUFBZSxDQUFDLENBQUM7Z0JBQ3pDLENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQztRQUFDLE9BQU8sS0FBVSxFQUFFLENBQUM7WUFDcEIsNkRBQTZEO1lBQzdELE9BQU8sQ0FBQyxHQUFHLENBQUMsK0JBQStCLEVBQUUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQzVELGVBQWU7UUFDakIsQ0FBQztJQUNILENBQUM7dUdBaEVVLFNBQVM7MkdBQVQsU0FBUyxjQUZSLE1BQU07OzJGQUVQLFNBQVM7a0JBSHJCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3RyZWFtLCBQYXJ0aWNpcGFudCB9IGZyb20gJy4uL0B0eXBlcy90eXBlcyc7XG5leHBvcnQgaW50ZXJmYWNlIEdldFZpZGVvc09wdGlvbnMge1xuICBwYXJ0aWNpcGFudHM6IFBhcnRpY2lwYW50W107XG4gIGFsbFZpZGVvU3RyZWFtczogKFN0cmVhbSB8IFBhcnRpY2lwYW50KVtdO1xuICBvbGRBbGxTdHJlYW1zOiAoU3RyZWFtIHwgUGFydGljaXBhbnQpW107XG4gIGFkbWluVmlkSUQ/OiBzdHJpbmc7XG4gIHVwZGF0ZUFsbFZpZGVvU3RyZWFtczogKHN0cmVhbXM6IChTdHJlYW0gfCBQYXJ0aWNpcGFudClbXSkgPT4gdm9pZDtcbiAgdXBkYXRlT2xkQWxsU3RyZWFtczogKHN0cmVhbXM6IChTdHJlYW0gfCBQYXJ0aWNpcGFudClbXSkgPT4gdm9pZDtcbn1cblxuLy8gRXhwb3J0IHRoZSB0eXBlIGRlZmluaXRpb24gZm9yIHRoZSBmdW5jdGlvblxuZXhwb3J0IHR5cGUgR2V0VmlkZW9zVHlwZSA9IChvcHRpb25zOiBHZXRWaWRlb3NPcHRpb25zKSA9PiBQcm9taXNlPHZvaWQ+O1xuXG4vKipcbiAqIEFzeW5jaHJvbm91c2x5IHByb2Nlc3NlcyBhbmQgdXBkYXRlcyB2aWRlbyBzdHJlYW1zIGJ5IGZpbHRlcmluZyBvdXQgdGhlIGFkbWluJ3MgdmlkZW8gc3RyZWFtLlxuICpcbiAqIEBwYXJhbSB7R2V0VmlkZW9zT3B0aW9uc30gb3B0aW9ucyAtIFRoZSBvcHRpb25zIGZvciBnZXR0aW5nIHZpZGVvcy5cbiAqIEBwYXJhbSB7UGFydGljaXBhbnRbXX0gb3B0aW9ucy5wYXJ0aWNpcGFudHMgLSBUaGUgbGlzdCBvZiBwYXJ0aWNpcGFudHMuXG4gKiBAcGFyYW0ge1N0cmVhbVtdfSBvcHRpb25zLmFsbFZpZGVvU3RyZWFtcyAtIFRoZSBsaXN0IG9mIGFsbCB2aWRlbyBzdHJlYW1zLlxuICogQHBhcmFtIHsoU3RyZWFtIHwgUGFydGljaXBhbnQpW119IG9wdGlvbnMub2xkQWxsU3RyZWFtcyAtIFRoZSBsaXN0IG9mIG9sZCB2aWRlbyBzdHJlYW1zLlxuICogQHBhcmFtIHtzdHJpbmd9IFtvcHRpb25zLmFkbWluVmlkSURdIC0gVGhlIElEIG9mIHRoZSBhZG1pbidzIHZpZGVvIHN0cmVhbS5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IG9wdGlvbnMudXBkYXRlQWxsVmlkZW9TdHJlYW1zIC0gRnVuY3Rpb24gdG8gdXBkYXRlIHRoZSBzdGF0ZSB2YXJpYWJsZSBmb3IgYWxsIHZpZGVvIHN0cmVhbXMuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBvcHRpb25zLnVwZGF0ZU9sZEFsbFN0cmVhbXMgLSBGdW5jdGlvbiB0byB1cGRhdGUgdGhlIHN0YXRlIHZhcmlhYmxlIGZvciBvbGQgdmlkZW8gc3RyZWFtcy5cbiAqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fSBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB3aGVuIHRoZSB2aWRlbyBzdHJlYW1zIGhhdmUgYmVlbiBwcm9jZXNzZWQgYW5kIHVwZGF0ZWQuXG4gKlxuICogQHRocm93cyB7RXJyb3J9IElmIGFuIGVycm9yIG9jY3VycyBkdXJpbmcgdGhlIHByb2Nlc3Mgb2YgdXBkYXRpbmcgdmlkZW8gc3RyZWFtcy5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3Qgb3B0aW9ucyA9IHtcbiAqICAgcGFydGljaXBhbnRzOiBwYXJ0aWNpcGFudExpc3QsXG4gKiAgIGFsbFZpZGVvU3RyZWFtczogY3VycmVudFZpZGVvU3RyZWFtcyxcbiAqICAgb2xkQWxsU3RyZWFtczogcHJldmlvdXNWaWRlb1N0cmVhbXMsXG4gKiAgIHVwZGF0ZUFsbFZpZGVvU3RyZWFtczogKHN0cmVhbXMpID0+IHtcbiAqICAgICBjb25zb2xlLmxvZygnVXBkYXRlZCBhbGwgdmlkZW8gc3RyZWFtczonLCBzdHJlYW1zKTtcbiAqICAgfSxcbiAqICAgdXBkYXRlT2xkQWxsU3RyZWFtczogKHN0cmVhbXMpID0+IHtcbiAqICAgICBjb25zb2xlLmxvZygnVXBkYXRlZCBvbGQgdmlkZW8gc3RyZWFtczonLCBzdHJlYW1zKTtcbiAqICAgfSxcbiAqIH07XG4gKlxuICogY29uc3QgZ2V0VmlkZW9zU2VydmljZSA9IG5ldyBHZXRWaWRlb3MoKTtcbiAqIGF3YWl0IGdldFZpZGVvc1NlcnZpY2UuZ2V0VmlkZW9zKG9wdGlvbnMpO1xuICogY29uc29sZS5sb2coJ1ZpZGVvIHN0cmVhbXMgcHJvY2Vzc2VkIHN1Y2Nlc3NmdWxseS4nKTtcbiAqIGBgYFxuICovXG5cblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIEdldFZpZGVvcyB7XG4gIC8qKlxuICAgKiBBc3luY2hyb25vdXNseSBwcm9jZXNzZXMgYW5kIHVwZGF0ZXMgdmlkZW8gc3RyZWFtcyBieSBmaWx0ZXJpbmcgb3V0IHRoZSBhZG1pbidzIHZpZGVvIHN0cmVhbS5cbiAgICpcbiAgICogQHBhcmFtIHtHZXRWaWRlb3NPcHRpb25zfSBvcHRpb25zIC0gVGhlIG9wdGlvbnMgZm9yIGdldHRpbmcgdmlkZW9zLlxuICAgKiBAcGFyYW0ge1BhcnRpY2lwYW50W119IG9wdGlvbnMucGFydGljaXBhbnRzIC0gVGhlIGxpc3Qgb2YgcGFydGljaXBhbnRzLlxuICAgKiBAcGFyYW0ge1N0cmVhbVtdfSBvcHRpb25zLmFsbFZpZGVvU3RyZWFtcyAtIFRoZSBsaXN0IG9mIGFsbCB2aWRlbyBzdHJlYW1zLlxuICAgKiBAcGFyYW0geyhTdHJlYW0gfCBQYXJ0aWNpcGFudClbXX0gb3B0aW9ucy5vbGRBbGxTdHJlYW1zIC0gVGhlIGxpc3Qgb2Ygb2xkIHZpZGVvIHN0cmVhbXMuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBvcHRpb25zLmFkbWluVmlkSUQgLSBUaGUgSUQgb2YgdGhlIGFkbWluJ3MgdmlkZW8gc3RyZWFtLlxuICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBvcHRpb25zLnVwZGF0ZUFsbFZpZGVvU3RyZWFtcyAtIEZ1bmN0aW9uIHRvIHVwZGF0ZSB0aGUgc3RhdGUgdmFyaWFibGUgZm9yIGFsbCB2aWRlbyBzdHJlYW1zLlxuICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBvcHRpb25zLnVwZGF0ZU9sZEFsbFN0cmVhbXMgLSBGdW5jdGlvbiB0byB1cGRhdGUgdGhlIHN0YXRlIHZhcmlhYmxlIGZvciBvbGQgdmlkZW8gc3RyZWFtcy5cbiAgICogQHJldHVybnMge1Byb21pc2U8dm9pZD59IEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIHZpZGVvIHN0cmVhbXMgaGF2ZSBiZWVuIHByb2Nlc3NlZCBhbmQgdXBkYXRlZC5cbiAgICovXG5cbiAgYXN5bmMgZ2V0VmlkZW9zKHtcbiAgICBwYXJ0aWNpcGFudHMsXG4gICAgYWxsVmlkZW9TdHJlYW1zLFxuICAgIG9sZEFsbFN0cmVhbXMsXG4gICAgYWRtaW5WaWRJRCxcbiAgICB1cGRhdGVBbGxWaWRlb1N0cmVhbXMsXG4gICAgdXBkYXRlT2xkQWxsU3RyZWFtcyxcbiAgfTogR2V0VmlkZW9zT3B0aW9ucyk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRyeSB7XG4gICAgICAvLyBGaWx0ZXIgb3V0IHRoZSBhZG1pbidzIHZpZGVvIHN0cmVhbSBhbmQgdXBkYXRlIHN0YXRlIHZhcmlhYmxlc1xuICAgICAgbGV0IGFkbWluID0gcGFydGljaXBhbnRzLmZpbHRlcigocGFydGljaXBhbnQ6IGFueSkgPT4gcGFydGljaXBhbnQuaXNsZXZlbCA9PT0gJzInKTtcblxuICAgICAgaWYgKGFkbWluLmxlbmd0aCA+IDApIHtcbiAgICAgICAgYWRtaW5WaWRJRCA9IGFkbWluWzBdLnZpZGVvSUQ7XG5cbiAgICAgICAgaWYgKGFkbWluVmlkSUQgIT0gbnVsbCAmJiBhZG1pblZpZElEICE9PSAnJykge1xuICAgICAgICAgIGxldCBvbGRBbGxTdHJlYW1zXzogYW55W10gPSBbXTtcblxuICAgICAgICAgIC8vIENoZWNrIGlmIHRoZSBsZW5ndGggb2Ygb2xkQWxsU3RyZWFtcyBpcyBncmVhdGVyIHRoYW4gMFxuICAgICAgICAgIGlmIChvbGRBbGxTdHJlYW1zLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIG9sZEFsbFN0cmVhbXNfID0gb2xkQWxsU3RyZWFtcztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAvLyBGaWx0ZXIgb3V0IGFkbWluJ3MgdmlkZW8gc3RyZWFtIGZyb20gb2xkQWxsU3RyZWFtc1xuICAgICAgICAgIG9sZEFsbFN0cmVhbXMgPSBhbGxWaWRlb1N0cmVhbXMuZmlsdGVyKFxuICAgICAgICAgICAgKHN0cmVhbWU6IGFueSkgPT4gc3RyZWFtZS5wcm9kdWNlcklkID09PSBhZG1pblZpZElELFxuICAgICAgICAgICk7XG5cbiAgICAgICAgICAvLyBJZiBubyBhZG1pbidzIHZpZGVvIHN0cmVhbSBmb3VuZCwgcmV2ZXJ0IHRvIHRoZSBwcmV2aW91cyBzdGF0ZVxuICAgICAgICAgIGlmIChvbGRBbGxTdHJlYW1zLmxlbmd0aCA8IDEpIHtcbiAgICAgICAgICAgIG9sZEFsbFN0cmVhbXMgPSBvbGRBbGxTdHJlYW1zXztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAvLyBVcGRhdGUgdGhlIHN0YXRlIHZhcmlhYmxlIGZvciBvbGQgdmlkZW8gc3RyZWFtc1xuICAgICAgICAgIHVwZGF0ZU9sZEFsbFN0cmVhbXMob2xkQWxsU3RyZWFtcyk7XG5cbiAgICAgICAgICAvLyBGaWx0ZXIgb3V0IGFkbWluJ3MgdmlkZW8gc3RyZWFtIGZyb20gYWxsVmlkZW9TdHJlYW1zXG4gICAgICAgICAgYWxsVmlkZW9TdHJlYW1zID0gYWxsVmlkZW9TdHJlYW1zLmZpbHRlcihcbiAgICAgICAgICAgIChzdHJlYW1lOiBhbnkpID0+IHN0cmVhbWUucHJvZHVjZXJJZCAhPT0gYWRtaW5WaWRJRCxcbiAgICAgICAgICApO1xuXG4gICAgICAgICAgLy8gVXBkYXRlIHRoZSBzdGF0ZSB2YXJpYWJsZSBmb3IgYWxsIHZpZGVvIHN0cmVhbXNcbiAgICAgICAgICB1cGRhdGVBbGxWaWRlb1N0cmVhbXMoYWxsVmlkZW9TdHJlYW1zKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gY2F0Y2ggKGVycm9yOiBhbnkpIHtcbiAgICAgIC8vIEhhbmRsZSBlcnJvcnMgZHVyaW5nIHRoZSBwcm9jZXNzIG9mIHVwZGF0aW5nIHZpZGVvIHN0cmVhbXNcbiAgICAgIGNvbnNvbGUubG9nKCdFcnJvciB1cGRhdGluZyB2aWRlbyBzdHJlYW1zOicsIGVycm9yLm1lc3NhZ2UpO1xuICAgICAgLy8gdGhyb3cgZXJyb3I7XG4gICAgfVxuICB9XG59XG4iXX0=
|