mediasfu-angular 1.0.1 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (474) hide show
  1. package/README.md +871 -769
  2. package/dist/README.md +870 -769
  3. package/dist/fesm2022/mediasfu-angular.mjs +13241 -3372
  4. package/dist/fesm2022/mediasfu-angular.mjs.map +1 -1
  5. package/dist/lib/@types/types.d.ts +22 -1
  6. package/dist/lib/components/background-components/background-modal/background-modal.component.d.ts +36 -0
  7. package/dist/lib/components/breakout-components/breakout-rooms-modal.component.d.ts +51 -0
  8. package/dist/lib/components/breakout-components/edit-room-modal/edit-room-modal.component.d.ts +48 -0
  9. package/dist/lib/components/co-host-components/co-host-modal/co-host-modal.component.d.ts +62 -0
  10. package/dist/lib/components/display-components/alert-component/alert.component.component.d.ts +24 -18
  11. package/dist/lib/components/display-components/audio-card/audio-card.component.d.ts +59 -0
  12. package/dist/lib/components/display-components/audio-grid/audio-grid.component.d.ts +20 -0
  13. package/dist/lib/components/display-components/card-video-display/card-video-display.component.d.ts +35 -0
  14. package/dist/lib/components/display-components/control-buttons-alt-component/control-buttons-alt-component.component.d.ts +38 -0
  15. package/dist/lib/components/display-components/control-buttons-component-touch/control-buttons-component-touch.component.d.ts +24 -40
  16. package/dist/lib/components/display-components/control-widgets/menu-participants-widget.component.d.ts +21 -0
  17. package/dist/lib/components/display-components/control-widgets/menu-record-widget.component.d.ts +22 -0
  18. package/dist/lib/components/display-components/control-widgets/menu-widget.component.d.ts +23 -0
  19. package/dist/lib/components/display-components/control-widgets/message-widget.component.d.ts +23 -0
  20. package/dist/lib/components/display-components/control-widgets/record-timer-widget.component.d.ts +15 -0
  21. package/dist/lib/components/display-components/control-widgets/screenshare-widget.component.d.ts +27 -0
  22. package/dist/lib/components/display-components/flexible-grid/flexible-grid.component.d.ts +27 -18
  23. package/dist/lib/components/display-components/flexible-video/flexible-video.component.d.ts +30 -45
  24. package/dist/lib/components/display-components/loading-modal/loading-modal.component.d.ts +19 -17
  25. package/dist/lib/components/display-components/main-aspect-component/main-aspect-component.component.d.ts +32 -24
  26. package/dist/lib/components/display-components/main-container-component/main-container-component.component.d.ts +28 -16
  27. package/dist/lib/components/display-components/main-grid-component/main-grid-component.component.d.ts +28 -14
  28. package/dist/lib/components/display-components/main-screen-component/main-screen-component.component.d.ts +43 -22
  29. package/dist/lib/components/display-components/meeting-progress-timer/meeting-progress-timer.component.d.ts +25 -30
  30. package/dist/lib/components/display-components/mini-audio/mini-audio.component.d.ts +55 -62
  31. package/dist/lib/components/display-components/mini-card/mini-card.component.d.ts +19 -23
  32. package/dist/lib/components/display-components/mini-card-audio/mini-card-audio.component.d.ts +39 -39
  33. package/dist/lib/components/display-components/other-grid-component/other-grid-component.component.d.ts +28 -13
  34. package/dist/lib/components/display-components/pagination/pagination.component.d.ts +29 -23
  35. package/dist/lib/components/display-components/sub-aspect-component/sub-aspect-component.component.d.ts +18 -24
  36. package/dist/lib/components/display-components/video-card/video-card.component.d.ts +62 -0
  37. package/dist/lib/components/display-settings-components/display-settings-modal.component.d.ts +28 -17
  38. package/dist/lib/components/event-settings-components/event-settings-modal/event-settings-modal.component.d.ts +47 -38
  39. package/dist/lib/components/exit-components/confirm-exit-modal/confirm-exit-modal.component.d.ts +35 -22
  40. package/dist/lib/components/media-settings-components/media-settings-modal/media-settings-modal.component.d.ts +35 -24
  41. package/dist/lib/components/mediasfu-components/mediasfu-broadcast.component.d.ts +258 -117
  42. package/dist/lib/components/mediasfu-components/mediasfu-chat.component.d.ts +254 -117
  43. package/dist/lib/components/mediasfu-components/mediasfu-conference.component.d.ts +312 -162
  44. package/dist/lib/components/mediasfu-components/mediasfu-generic.component.d.ts +312 -162
  45. package/dist/lib/components/mediasfu-components/mediasfu-webinar.component.d.ts +310 -162
  46. package/dist/lib/components/menu-components/custom-buttons/custom-buttons.component.d.ts +49 -51
  47. package/dist/lib/components/menu-components/meeting-id-component/meeting-id-component.component.d.ts +6 -1
  48. package/dist/lib/components/menu-components/meeting-passcode-component/meeting-passcode-component.component.d.ts +5 -0
  49. package/dist/lib/components/menu-components/menu-modal/menu-modal.component.d.ts +27 -29
  50. package/dist/lib/components/menu-components/share-buttons-component/share-buttons-component.component.d.ts +20 -15
  51. package/dist/lib/components/message-components/message-panel/message-panel.component.d.ts +24 -0
  52. package/dist/lib/components/message-components/messages-modal/messages-modal.component.d.ts +34 -0
  53. package/dist/lib/components/misc-components/confirm-here-modal/confirm-here-modal.component.d.ts +20 -35
  54. package/dist/lib/components/misc-components/pre-join-page/pre-join-page.component.d.ts +79 -66
  55. package/dist/lib/components/misc-components/share-event-modal/share-event-modal.component.d.ts +19 -1
  56. package/dist/lib/components/misc-components/welcome-page/welcome-page.component.d.ts +15 -0
  57. package/dist/lib/components/participants-components/participant-list/participant-list.component.d.ts +19 -0
  58. package/dist/lib/components/participants-components/participant-list-item/participant-list-item.component.d.ts +19 -0
  59. package/dist/lib/components/participants-components/participant-list-others/participant-list-others.component.d.ts +17 -0
  60. package/dist/lib/components/participants-components/participant-list-others-item/participant-list-others-item.component.d.ts +17 -0
  61. package/dist/lib/components/participants-components/participants-modal/participants-modal.component.d.ts +24 -0
  62. package/dist/lib/components/polls-components/poll-modal/poll-modal.component.d.ts +27 -0
  63. package/dist/lib/components/recording-components/advanced-panel-component/advanced-panel-components.component.d.ts +15 -0
  64. package/dist/lib/components/recording-components/recording-modal/recording-modal.component.d.ts +12 -0
  65. package/dist/lib/components/recording-components/standard-panel-component/standard-panel-component.component.d.ts +5 -0
  66. package/dist/lib/components/requests-components/render-request-component/render-request-component.component.d.ts +22 -0
  67. package/dist/lib/components/requests-components/requests-modal/requests-modal.component.d.ts +17 -0
  68. package/dist/lib/components/screenboard-components/screenboard/screenboard.component.d.ts +10 -0
  69. package/dist/lib/components/screenboard-components/screenboard-modal/screenboard-modal.component.d.ts +11 -0
  70. package/dist/lib/components/waiting-components/waiting-room-modal.component.d.ts +59 -0
  71. package/dist/lib/components/whiteboard-components/configure-whiteboard-modal/configure-whiteboard-modal.component.d.ts +21 -0
  72. package/dist/lib/components/whiteboard-components/whiteboard/whiteboard.component.d.ts +49 -0
  73. package/dist/lib/consumers/add-videos-grid.service.d.ts +49 -0
  74. package/dist/lib/consumers/auto-adjust.service.d.ts +26 -0
  75. package/dist/lib/consumers/calculate-rows-and-columns.service.d.ts +18 -0
  76. package/dist/lib/consumers/change-vids.service.d.ts +131 -66
  77. package/dist/lib/consumers/check-grid.service.d.ts +32 -18
  78. package/dist/lib/consumers/check-permission.service.d.ts +25 -0
  79. package/dist/lib/consumers/check-screen-share.service.d.ts +35 -0
  80. package/dist/lib/consumers/close-and-resize.service.d.ts +102 -0
  81. package/dist/lib/consumers/compare-active-names.service.d.ts +31 -0
  82. package/dist/lib/consumers/compare-screen-states.service.d.ts +35 -0
  83. package/dist/lib/consumers/connect-ips.service.d.ts +42 -0
  84. package/dist/lib/consumers/connect-local-ips.service.d.ts +81 -0
  85. package/dist/lib/consumers/connect-recv-transport.service.d.ts +33 -0
  86. package/dist/lib/consumers/connect-send-transport-audio.service.d.ts +81 -11
  87. package/dist/lib/consumers/connect-send-transport-screen.service.d.ts +96 -15
  88. package/dist/lib/consumers/connect-send-transport-video.service.d.ts +101 -11
  89. package/dist/lib/consumers/connect-send-transport.service.d.ts +59 -1
  90. package/dist/lib/consumers/consumer-resume.service.d.ts +36 -0
  91. package/dist/lib/consumers/control-media.service.d.ts +45 -0
  92. package/dist/lib/consumers/create-send-transport.service.d.ts +149 -13
  93. package/dist/lib/consumers/disconnect-send-transport-audio.service.d.ts +100 -13
  94. package/dist/lib/consumers/disconnect-send-transport-screen.service.d.ts +75 -2
  95. package/dist/lib/consumers/disconnect-send-transport-video.service.d.ts +99 -17
  96. package/dist/lib/consumers/disp-streams.service.d.ts +92 -0
  97. package/dist/lib/consumers/generate-page-content.service.d.ts +47 -0
  98. package/dist/lib/consumers/get-estimate.service.d.ts +50 -0
  99. package/dist/lib/consumers/get-piped-producers-alt.service.d.ts +38 -1
  100. package/dist/lib/consumers/get-producers-piped.service.d.ts +33 -0
  101. package/dist/lib/consumers/get-videos.service.d.ts +33 -0
  102. package/dist/lib/consumers/mix-streams.service.d.ts +22 -0
  103. package/dist/lib/consumers/on-screen-changes.service.d.ts +40 -0
  104. package/dist/lib/consumers/prepopulate-user-media.service.d.ts +99 -0
  105. package/dist/lib/consumers/process-consumer-transports-audio.service.d.ts +29 -0
  106. package/dist/lib/consumers/process-consumer-transports.service.d.ts +37 -0
  107. package/dist/lib/consumers/re-port.service.d.ts +48 -0
  108. package/dist/lib/consumers/re-update-inter.service.d.ts +82 -0
  109. package/dist/lib/consumers/readjust.service.d.ts +50 -0
  110. package/dist/lib/consumers/receive-all-piped-transports.service.d.ts +36 -1
  111. package/dist/lib/consumers/receive-room-messages.service.d.ts +27 -0
  112. package/dist/lib/consumers/reorder-streams.service.d.ts +58 -0
  113. package/dist/lib/consumers/request-screen-share.service.d.ts +34 -0
  114. package/dist/lib/consumers/resume-pause-audio-streams.service.d.ts +51 -0
  115. package/dist/lib/consumers/resume-pause-streams.service.d.ts +33 -0
  116. package/dist/lib/consumers/resume-send-transport-audio.service.d.ts +76 -7
  117. package/dist/lib/consumers/signal-new-consumer-transport.service.d.ts +37 -37
  118. package/dist/lib/consumers/socket-receive-methods/join-consume-room.service.d.ts +33 -0
  119. package/dist/lib/consumers/socket-receive-methods/new-pipe-producer.service.d.ts +39 -0
  120. package/dist/lib/consumers/socket-receive-methods/producer-closed.service.d.ts +27 -0
  121. package/dist/lib/consumers/start-share-screen.service.d.ts +40 -0
  122. package/dist/lib/consumers/stop-share-screen.service.d.ts +55 -0
  123. package/dist/lib/consumers/stream-success-audio-switch.service.d.ts +148 -11
  124. package/dist/lib/consumers/stream-success-audio.service.d.ts +61 -0
  125. package/dist/lib/consumers/stream-success-screen.service.d.ts +50 -0
  126. package/dist/lib/consumers/stream-success-video.service.d.ts +58 -0
  127. package/dist/lib/consumers/switch-user-audio.service.d.ts +33 -0
  128. package/dist/lib/consumers/switch-user-video-alt.service.d.ts +32 -0
  129. package/dist/lib/consumers/switch-user-video.service.d.ts +47 -0
  130. package/dist/lib/consumers/trigger.service.d.ts +41 -0
  131. package/dist/lib/consumers/update-mini-cards-grid.service.d.ts +54 -0
  132. package/dist/lib/consumers/update-participant-audio-decibels.service.d.ts +45 -0
  133. package/dist/lib/methods/background-methods/launch-background.service.d.ts +25 -0
  134. package/dist/lib/methods/breakout-room-methods/breakout-room-updated.service.d.ts +71 -0
  135. package/dist/lib/methods/breakout-room-methods/launch-breakout-rooms.service.d.ts +24 -0
  136. package/dist/lib/methods/co-host-methods/launch-co-host.service.d.ts +24 -0
  137. package/dist/lib/methods/co-host-methods/modify-co-host-settings.service.d.ts +44 -0
  138. package/dist/lib/methods/display-settings-methods/launch-display-settings.service.d.ts +22 -0
  139. package/dist/lib/methods/display-settings-methods/modify-display-settings.service.d.ts +75 -0
  140. package/dist/lib/methods/exit-methods/confirm-exit.service.d.ts +29 -1
  141. package/dist/lib/methods/exit-methods/launch-confirm-exit.service.d.ts +20 -0
  142. package/dist/lib/methods/media-settings-methods/launch-media-settings.service.d.ts +35 -0
  143. package/dist/lib/methods/menu-methods/launch-menu-modal.service.d.ts +22 -0
  144. package/dist/lib/methods/message-methods/launch-messages.service.d.ts +22 -0
  145. package/dist/lib/methods/message-methods/send-message.service.d.ts +49 -0
  146. package/dist/lib/methods/participants-methods/launch-participants.service.d.ts +24 -0
  147. package/dist/lib/methods/participants-methods/message-participants.service.d.ts +46 -0
  148. package/dist/lib/methods/participants-methods/mute-participants.service.d.ts +39 -0
  149. package/dist/lib/methods/participants-methods/remove-participants.service.d.ts +45 -0
  150. package/dist/lib/methods/polls-methods/handle-create-poll.service.d.ts +38 -0
  151. package/dist/lib/methods/polls-methods/handle-end-poll.service.d.ts +32 -0
  152. package/dist/lib/methods/polls-methods/handle-vote-poll.service.d.ts +34 -0
  153. package/dist/lib/methods/polls-methods/launch-poll.service.d.ts +20 -0
  154. package/dist/lib/methods/polls-methods/poll-updated.service.d.ts +31 -0
  155. package/dist/lib/methods/recording-methods/check-pause-state.service.d.ts +24 -0
  156. package/dist/lib/methods/recording-methods/check-resume-state.service.d.ts +22 -0
  157. package/dist/lib/methods/recording-methods/confirm-recording.service.d.ts +63 -0
  158. package/dist/lib/methods/recording-methods/launch-recording.service.d.ts +43 -0
  159. package/dist/lib/methods/recording-methods/record-pause-timer.service.d.ts +27 -0
  160. package/dist/lib/methods/recording-methods/record-resume-timer.service.d.ts +44 -0
  161. package/dist/lib/methods/recording-methods/record-start-timer.service.d.ts +45 -0
  162. package/dist/lib/methods/recording-methods/record-update-timer.service.d.ts +32 -0
  163. package/dist/lib/methods/recording-methods/start-recording.service.d.ts +53 -0
  164. package/dist/lib/methods/recording-methods/stop-recording.service.d.ts +42 -1
  165. package/dist/lib/methods/recording-methods/update-recording.service.d.ts +51 -0
  166. package/dist/lib/methods/requests-methods/launch-requests.service.d.ts +25 -0
  167. package/dist/lib/methods/requests-methods/respond-to-requests.service.d.ts +39 -0
  168. package/dist/lib/methods/settings-methods/launch-settings.service.d.ts +25 -0
  169. package/dist/lib/methods/settings-methods/modify-settings.service.d.ts +42 -0
  170. package/dist/lib/methods/stream-methods/click-audio.service.d.ts +100 -0
  171. package/dist/lib/methods/stream-methods/click-chat.service.d.ts +31 -0
  172. package/dist/lib/methods/stream-methods/click-screen-share.service.d.ts +68 -0
  173. package/dist/lib/methods/stream-methods/click-video.service.d.ts +88 -0
  174. package/dist/lib/methods/stream-methods/switch-audio.service.d.ts +47 -0
  175. package/dist/lib/methods/stream-methods/switch-video-alt.service.d.ts +50 -0
  176. package/dist/lib/methods/stream-methods/switch-video.service.d.ts +56 -0
  177. package/dist/lib/methods/utils/check-limits-and-make-request.service.d.ts +23 -0
  178. package/dist/lib/methods/utils/create-response-join-room.util.d.ts +33 -0
  179. package/dist/lib/methods/utils/create-room-on-media-sfu.service.d.ts +25 -0
  180. package/dist/lib/methods/utils/format-number.service.d.ts +26 -14
  181. package/dist/lib/methods/utils/generate-random-messages.service.d.ts +33 -0
  182. package/dist/lib/methods/utils/generate-random-participants.service.d.ts +27 -0
  183. package/dist/lib/methods/utils/generate-random-polls.service.d.ts +26 -0
  184. package/dist/lib/methods/utils/generate-random-request-list.service.d.ts +36 -0
  185. package/dist/lib/methods/utils/generate-random-waiting-room-list.service.d.ts +21 -0
  186. package/dist/lib/methods/utils/get-modal-position.util.d.ts +13 -3
  187. package/dist/lib/methods/utils/get-overlay-position.util.d.ts +13 -3
  188. package/dist/lib/methods/utils/initial-values.util.d.ts +6 -0
  189. package/dist/lib/methods/utils/join-room-on-media-sfu.service.d.ts +52 -0
  190. package/dist/lib/methods/utils/meeting-timer/start-meeting-progress-timer.service.d.ts +37 -0
  191. package/dist/lib/methods/utils/mini-audio-player/mini-audio-player.component.d.ts +55 -0
  192. package/dist/lib/methods/utils/producer/a-params.service.d.ts +37 -0
  193. package/dist/lib/methods/utils/producer/h-params.service.d.ts +50 -0
  194. package/dist/lib/methods/utils/producer/screen-params.service.d.ts +37 -0
  195. package/dist/lib/methods/utils/producer/v-params.service.d.ts +50 -0
  196. package/dist/lib/methods/utils/producer/video-capture-constraints.service.d.ts +46 -0
  197. package/dist/lib/methods/utils/sleep.util.d.ts +9 -3
  198. package/dist/lib/methods/utils/sound-player.service.d.ts +21 -0
  199. package/dist/lib/methods/utils/validate-alphanumeric.service.d.ts +16 -0
  200. package/dist/lib/methods/waiting-methods/launch-waiting.service.d.ts +18 -0
  201. package/dist/lib/methods/waiting-methods/respond-to-waiting.service.d.ts +29 -0
  202. package/dist/lib/methods/whiteboard-methods/capture-canvas-stream.service.d.ts +46 -0
  203. package/dist/lib/methods/whiteboard-methods/launch-configure-whiteboard.service.d.ts +20 -0
  204. package/dist/lib/producer-client/producer-client-emits/create-device-client.service.d.ts +23 -0
  205. package/dist/lib/producer-client/producer-client-emits/join-room-client.service.d.ts +31 -0
  206. package/dist/lib/producer-client/producer-client-emits/update-room-parameters-client.service.d.ts +44 -0
  207. package/dist/lib/producers/producer-emits/join-con-room.service.d.ts +38 -0
  208. package/dist/lib/producers/producer-emits/join-local-room.service.d.ts +125 -0
  209. package/dist/lib/producers/producer-emits/join-room.service.d.ts +38 -0
  210. package/dist/lib/producers/socket-receive-methods/all-members-rest.service.d.ts +80 -2
  211. package/dist/lib/producers/socket-receive-methods/all-members.service.d.ts +78 -2
  212. package/dist/lib/producers/socket-receive-methods/all-waiting-room-members.service.d.ts +27 -0
  213. package/dist/lib/producers/socket-receive-methods/ban-participant.service.d.ts +36 -0
  214. package/dist/lib/producers/socket-receive-methods/control-media-host.service.d.ts +37 -0
  215. package/dist/lib/producers/socket-receive-methods/disconnect-user-self.service.d.ts +29 -1
  216. package/dist/lib/producers/socket-receive-methods/disconnect.service.d.ts +26 -0
  217. package/dist/lib/producers/socket-receive-methods/get-domains.service.d.ts +24 -9
  218. package/dist/lib/producers/socket-receive-methods/host-request-response.service.d.ts +31 -48
  219. package/dist/lib/producers/socket-receive-methods/meeting-ended.service.d.ts +29 -0
  220. package/dist/lib/producers/socket-receive-methods/meeting-still-there.service.d.ts +23 -0
  221. package/dist/lib/producers/socket-receive-methods/meeting-time-remaining.service.d.ts +27 -0
  222. package/dist/lib/producers/socket-receive-methods/participant-requested.service.d.ts +31 -0
  223. package/dist/lib/producers/socket-receive-methods/person-joined.service.d.ts +25 -0
  224. package/dist/lib/producers/socket-receive-methods/producer-media-closed.service.d.ts +61 -0
  225. package/dist/lib/producers/socket-receive-methods/producer-media-paused.service.d.ts +62 -0
  226. package/dist/lib/producers/socket-receive-methods/producer-media-resumed.service.d.ts +45 -0
  227. package/dist/lib/producers/socket-receive-methods/re-initiate-recording.service.d.ts +29 -0
  228. package/dist/lib/producers/socket-receive-methods/receive-message.service.d.ts +38 -0
  229. package/dist/lib/producers/socket-receive-methods/recording-notice.service.d.ts +38 -0
  230. package/dist/lib/producers/socket-receive-methods/room-record-params.service.d.ts +62 -0
  231. package/dist/lib/producers/socket-receive-methods/screen-producer-id.service.d.ts +41 -0
  232. package/dist/lib/producers/socket-receive-methods/start-records.service.d.ts +25 -0
  233. package/dist/lib/producers/socket-receive-methods/stopped-recording.service.d.ts +25 -0
  234. package/dist/lib/producers/socket-receive-methods/time-left-recording.service.d.ts +21 -0
  235. package/dist/lib/producers/socket-receive-methods/update-consuming-domains.service.d.ts +42 -0
  236. package/dist/lib/producers/socket-receive-methods/update-media-settings.service.d.ts +30 -0
  237. package/dist/lib/producers/socket-receive-methods/updated-co-host.service.d.ts +40 -0
  238. package/dist/lib/producers/socket-receive-methods/user-waiting.service.d.ts +14 -40
  239. package/dist/lib/sockets/socket-manager.service.d.ts +130 -0
  240. package/dist/public-api.d.ts +11 -1
  241. package/package.json +17 -20
  242. package/dist/esm2022/lib/@types/types.mjs +0 -2
  243. package/dist/esm2022/lib/components/background-components/background-modal/background-modal.component.mjs +0 -763
  244. package/dist/esm2022/lib/components/breakout-components/breakout-rooms-modal.component.mjs +0 -316
  245. package/dist/esm2022/lib/components/breakout-components/edit-room-modal/edit-room-modal.component.mjs +0 -95
  246. package/dist/esm2022/lib/components/breakout-components/room-list/room-list.component.mjs +0 -40
  247. package/dist/esm2022/lib/components/co-host-components/co-host-modal/co-host-modal.component.mjs +0 -246
  248. package/dist/esm2022/lib/components/display-components/alert-component/alert.component.component.mjs +0 -73
  249. package/dist/esm2022/lib/components/display-components/audio-card/audio-card.component.mjs +0 -297
  250. package/dist/esm2022/lib/components/display-components/audio-grid/audio-grid.component.mjs +0 -60
  251. package/dist/esm2022/lib/components/display-components/card-video-display/card-video-display.component.mjs +0 -94
  252. package/dist/esm2022/lib/components/display-components/control-buttons-alt-component/control-buttons-alt-component.component.mjs +0 -100
  253. package/dist/esm2022/lib/components/display-components/control-buttons-component/control-buttons-component.component.mjs +0 -231
  254. package/dist/esm2022/lib/components/display-components/control-buttons-component-touch/control-buttons-component-touch.component.mjs +0 -298
  255. package/dist/esm2022/lib/components/display-components/control-widgets/menu-participants-widget.component.mjs +0 -61
  256. package/dist/esm2022/lib/components/display-components/control-widgets/menu-record-widget.component.mjs +0 -43
  257. package/dist/esm2022/lib/components/display-components/control-widgets/menu-widget.component.mjs +0 -114
  258. package/dist/esm2022/lib/components/display-components/control-widgets/message-widget.component.mjs +0 -114
  259. package/dist/esm2022/lib/components/display-components/control-widgets/record-timer-widget.component.mjs +0 -36
  260. package/dist/esm2022/lib/components/display-components/control-widgets/screenshare-widget.component.mjs +0 -74
  261. package/dist/esm2022/lib/components/display-components/flexible-grid/flexible-grid.component.mjs +0 -142
  262. package/dist/esm2022/lib/components/display-components/flexible-video/flexible-video.component.mjs +0 -265
  263. package/dist/esm2022/lib/components/display-components/loading-modal/loading-modal.component.mjs +0 -100
  264. package/dist/esm2022/lib/components/display-components/main-aspect-component/main-aspect-component.component.mjs +0 -132
  265. package/dist/esm2022/lib/components/display-components/main-container-component/main-container-component.component.mjs +0 -119
  266. package/dist/esm2022/lib/components/display-components/main-grid-component/main-grid-component.component.mjs +0 -106
  267. package/dist/esm2022/lib/components/display-components/main-screen-component/main-screen-component.component.mjs +0 -180
  268. package/dist/esm2022/lib/components/display-components/meeting-progress-timer/meeting-progress-timer.component.mjs +0 -120
  269. package/dist/esm2022/lib/components/display-components/mini-audio/mini-audio.component.mjs +0 -326
  270. package/dist/esm2022/lib/components/display-components/mini-card/mini-card.component.mjs +0 -165
  271. package/dist/esm2022/lib/components/display-components/mini-card-audio/mini-card-audio.component.mjs +0 -230
  272. package/dist/esm2022/lib/components/display-components/other-grid-component/other-grid-component.component.mjs +0 -111
  273. package/dist/esm2022/lib/components/display-components/pagination/pagination.component.mjs +0 -328
  274. package/dist/esm2022/lib/components/display-components/sub-aspect-component/sub-aspect-component.component.mjs +0 -118
  275. package/dist/esm2022/lib/components/display-components/video-card/video-card.component.mjs +0 -330
  276. package/dist/esm2022/lib/components/display-settings-components/display-settings-modal.component.mjs +0 -95
  277. package/dist/esm2022/lib/components/event-settings-components/event-settings-modal/event-settings-modal.component.mjs +0 -190
  278. package/dist/esm2022/lib/components/exit-components/confirm-exit-modal/confirm-exit-modal.component.mjs +0 -119
  279. package/dist/esm2022/lib/components/media-settings-components/media-settings-modal/media-settings-modal.component.mjs +0 -209
  280. package/dist/esm2022/lib/components/mediasfu-components/mediasfu-broadcast.component.mjs +0 -4189
  281. package/dist/esm2022/lib/components/mediasfu-components/mediasfu-chat.component.mjs +0 -3705
  282. package/dist/esm2022/lib/components/mediasfu-components/mediasfu-conference.component.mjs +0 -5024
  283. package/dist/esm2022/lib/components/mediasfu-components/mediasfu-generic.component.mjs +0 -5333
  284. package/dist/esm2022/lib/components/mediasfu-components/mediasfu-webinar.component.mjs +0 -5023
  285. package/dist/esm2022/lib/components/menu-components/custom-buttons/custom-buttons.component.mjs +0 -85
  286. package/dist/esm2022/lib/components/menu-components/meeting-id-component/meeting-id-component.component.mjs +0 -22
  287. package/dist/esm2022/lib/components/menu-components/meeting-passcode-component/meeting-passcode-component.component.mjs +0 -22
  288. package/dist/esm2022/lib/components/menu-components/menu-modal/menu-modal.component.mjs +0 -132
  289. package/dist/esm2022/lib/components/menu-components/share-buttons-component/share-buttons-component.component.mjs +0 -104
  290. package/dist/esm2022/lib/components/message-components/message-panel/message-panel.component.mjs +0 -204
  291. package/dist/esm2022/lib/components/message-components/messages-modal/messages-modal.component.mjs +0 -243
  292. package/dist/esm2022/lib/components/misc-components/confirm-here-modal/confirm-here-modal.component.mjs +0 -147
  293. package/dist/esm2022/lib/components/misc-components/pre-join-page/pre-join-page.component.mjs +0 -335
  294. package/dist/esm2022/lib/components/misc-components/share-event-modal/share-event-modal.component.mjs +0 -113
  295. package/dist/esm2022/lib/components/misc-components/welcome-page/welcome-page.component.mjs +0 -226
  296. package/dist/esm2022/lib/components/participants-components/participant-list/participant-list.component.mjs +0 -63
  297. package/dist/esm2022/lib/components/participants-components/participant-list-item/participant-list-item.component.mjs +0 -120
  298. package/dist/esm2022/lib/components/participants-components/participant-list-others/participant-list-others.component.mjs +0 -23
  299. package/dist/esm2022/lib/components/participants-components/participant-list-others-item/participant-list-others-item.component.mjs +0 -43
  300. package/dist/esm2022/lib/components/participants-components/participants-modal/participants-modal.component.mjs +0 -100
  301. package/dist/esm2022/lib/components/polls-components/poll-modal/poll-modal.component.mjs +0 -174
  302. package/dist/esm2022/lib/components/recording-components/advanced-panel-component/advanced-panel-components.component.mjs +0 -77
  303. package/dist/esm2022/lib/components/recording-components/recording-modal/recording-modal.component.mjs +0 -121
  304. package/dist/esm2022/lib/components/recording-components/standard-panel-component/standard-panel-component.component.mjs +0 -85
  305. package/dist/esm2022/lib/components/requests-components/render-request-component/render-request-component.component.mjs +0 -59
  306. package/dist/esm2022/lib/components/requests-components/requests-modal/requests-modal.component.mjs +0 -130
  307. package/dist/esm2022/lib/components/screenboard-components/screenboard/screenboard.component.mjs +0 -617
  308. package/dist/esm2022/lib/components/screenboard-components/screenboard-modal/screenboard-modal.component.mjs +0 -380
  309. package/dist/esm2022/lib/components/waiting-components/waiting-room-modal.component.mjs +0 -142
  310. package/dist/esm2022/lib/components/whiteboard-components/configure-whiteboard-modal/configure-whiteboard-modal.component.mjs +0 -265
  311. package/dist/esm2022/lib/components/whiteboard-components/whiteboard/whiteboard.component.mjs +0 -1784
  312. package/dist/esm2022/lib/consumers/add-videos-grid.service.mjs +0 -296
  313. package/dist/esm2022/lib/consumers/auto-adjust.service.mjs +0 -83
  314. package/dist/esm2022/lib/consumers/calculate-rows-and-columns.service.mjs +0 -42
  315. package/dist/esm2022/lib/consumers/change-vids.service.mjs +0 -486
  316. package/dist/esm2022/lib/consumers/check-grid.service.mjs +0 -79
  317. package/dist/esm2022/lib/consumers/check-permission.service.mjs +0 -80
  318. package/dist/esm2022/lib/consumers/check-screen-share.service.mjs +0 -71
  319. package/dist/esm2022/lib/consumers/close-and-resize.service.mjs +0 -229
  320. package/dist/esm2022/lib/consumers/compare-active-names.service.mjs +0 -75
  321. package/dist/esm2022/lib/consumers/compare-screen-states.service.mjs +0 -63
  322. package/dist/esm2022/lib/consumers/connect-ips.service.mjs +0 -112
  323. package/dist/esm2022/lib/consumers/connect-recv-transport.service.mjs +0 -113
  324. package/dist/esm2022/lib/consumers/connect-send-transport-audio.service.mjs +0 -46
  325. package/dist/esm2022/lib/consumers/connect-send-transport-screen.service.mjs +0 -62
  326. package/dist/esm2022/lib/consumers/connect-send-transport-video.service.mjs +0 -55
  327. package/dist/esm2022/lib/consumers/connect-send-transport.service.mjs +0 -86
  328. package/dist/esm2022/lib/consumers/consumer-resume.service.mjs +0 -332
  329. package/dist/esm2022/lib/consumers/control-media.service.mjs +0 -68
  330. package/dist/esm2022/lib/consumers/create-send-transport.service.mjs +0 -126
  331. package/dist/esm2022/lib/consumers/disconnect-send-transport-audio.service.mjs +0 -58
  332. package/dist/esm2022/lib/consumers/disconnect-send-transport-screen.service.mjs +0 -45
  333. package/dist/esm2022/lib/consumers/disconnect-send-transport-video.service.mjs +0 -56
  334. package/dist/esm2022/lib/consumers/disp-streams.service.mjs +0 -421
  335. package/dist/esm2022/lib/consumers/generate-page-content.service.mjs +0 -59
  336. package/dist/esm2022/lib/consumers/get-estimate.service.mjs +0 -70
  337. package/dist/esm2022/lib/consumers/get-piped-producers-alt.service.mjs +0 -49
  338. package/dist/esm2022/lib/consumers/get-producers-piped.service.mjs +0 -46
  339. package/dist/esm2022/lib/consumers/get-videos.service.mjs +0 -58
  340. package/dist/esm2022/lib/consumers/mix-streams.service.mjs +0 -73
  341. package/dist/esm2022/lib/consumers/on-screen-changes.service.mjs +0 -63
  342. package/dist/esm2022/lib/consumers/prepopulate-user-media.service.mjs +0 -442
  343. package/dist/esm2022/lib/consumers/process-consumer-transports-audio.service.mjs +0 -72
  344. package/dist/esm2022/lib/consumers/process-consumer-transports.service.mjs +0 -91
  345. package/dist/esm2022/lib/consumers/re-port.service.mjs +0 -66
  346. package/dist/esm2022/lib/consumers/re-update-inter.service.mjs +0 -157
  347. package/dist/esm2022/lib/consumers/readjust.service.mjs +0 -123
  348. package/dist/esm2022/lib/consumers/receive-all-piped-transports.service.mjs +0 -56
  349. package/dist/esm2022/lib/consumers/receive-room-messages.service.mjs +0 -42
  350. package/dist/esm2022/lib/consumers/reorder-streams.service.mjs +0 -181
  351. package/dist/esm2022/lib/consumers/request-screen-share.service.mjs +0 -67
  352. package/dist/esm2022/lib/consumers/resume-pause-audio-streams.service.mjs +0 -99
  353. package/dist/esm2022/lib/consumers/resume-pause-streams.service.mjs +0 -70
  354. package/dist/esm2022/lib/consumers/resume-send-transport-audio.service.mjs +0 -55
  355. package/dist/esm2022/lib/consumers/signal-new-consumer-transport.service.mjs +0 -136
  356. package/dist/esm2022/lib/consumers/socket-receive-methods/join-consume-room.service.mjs +0 -63
  357. package/dist/esm2022/lib/consumers/socket-receive-methods/new-pipe-producer.service.mjs +0 -61
  358. package/dist/esm2022/lib/consumers/socket-receive-methods/producer-closed.service.mjs +0 -51
  359. package/dist/esm2022/lib/consumers/start-share-screen.service.mjs +0 -80
  360. package/dist/esm2022/lib/consumers/stop-share-screen.service.mjs +0 -120
  361. package/dist/esm2022/lib/consumers/stream-success-audio-switch.service.mjs +0 -132
  362. package/dist/esm2022/lib/consumers/stream-success-audio.service.mjs +0 -149
  363. package/dist/esm2022/lib/consumers/stream-success-screen.service.mjs +0 -143
  364. package/dist/esm2022/lib/consumers/stream-success-video.service.mjs +0 -202
  365. package/dist/esm2022/lib/consumers/switch-user-audio.service.mjs +0 -87
  366. package/dist/esm2022/lib/consumers/switch-user-video-alt.service.mjs +0 -228
  367. package/dist/esm2022/lib/consumers/switch-user-video.service.mjs +0 -125
  368. package/dist/esm2022/lib/consumers/trigger.service.mjs +0 -172
  369. package/dist/esm2022/lib/consumers/update-mini-cards-grid.service.mjs +0 -81
  370. package/dist/esm2022/lib/consumers/update-participant-audio-decibels.service.mjs +0 -39
  371. package/dist/esm2022/lib/methods/background-methods/launch-background.service.mjs +0 -23
  372. package/dist/esm2022/lib/methods/breakout-room-methods/breakout-room-updated.service.mjs +0 -112
  373. package/dist/esm2022/lib/methods/breakout-room-methods/launch-breakout-rooms.service.mjs +0 -22
  374. package/dist/esm2022/lib/methods/co-host-methods/launch-co-host.service.mjs +0 -22
  375. package/dist/esm2022/lib/methods/co-host-methods/modify-co-host-settings.service.mjs +0 -60
  376. package/dist/esm2022/lib/methods/display-settings-methods/launch-display-settings.service.mjs +0 -24
  377. package/dist/esm2022/lib/methods/display-settings-methods/modify-display-settings.service.mjs +0 -119
  378. package/dist/esm2022/lib/methods/exit-methods/confirm-exit.service.mjs +0 -28
  379. package/dist/esm2022/lib/methods/exit-methods/launch-confirm-exit.service.mjs +0 -22
  380. package/dist/esm2022/lib/methods/media-settings-methods/launch-media-settings.service.mjs +0 -50
  381. package/dist/esm2022/lib/methods/menu-methods/launch-menu-modal.service.mjs +0 -22
  382. package/dist/esm2022/lib/methods/message-methods/launch-messages.service.mjs +0 -23
  383. package/dist/esm2022/lib/methods/message-methods/send-message.service.mjs +0 -94
  384. package/dist/esm2022/lib/methods/participants-methods/launch-participants.service.mjs +0 -23
  385. package/dist/esm2022/lib/methods/participants-methods/message-participants.service.mjs +0 -52
  386. package/dist/esm2022/lib/methods/participants-methods/mute-participants.service.mjs +0 -57
  387. package/dist/esm2022/lib/methods/participants-methods/remove-participants.service.mjs +0 -62
  388. package/dist/esm2022/lib/methods/polls-methods/handle-create-poll.service.mjs +0 -37
  389. package/dist/esm2022/lib/methods/polls-methods/handle-end-poll.service.mjs +0 -40
  390. package/dist/esm2022/lib/methods/polls-methods/handle-vote-poll.service.mjs +0 -49
  391. package/dist/esm2022/lib/methods/polls-methods/launch-poll.service.mjs +0 -23
  392. package/dist/esm2022/lib/methods/polls-methods/poll-updated.service.mjs +0 -64
  393. package/dist/esm2022/lib/methods/recording-methods/check-pause-state.service.mjs +0 -45
  394. package/dist/esm2022/lib/methods/recording-methods/check-resume-state.service.mjs +0 -34
  395. package/dist/esm2022/lib/methods/recording-methods/confirm-recording.service.mjs +0 -215
  396. package/dist/esm2022/lib/methods/recording-methods/launch-recording.service.mjs +0 -82
  397. package/dist/esm2022/lib/methods/recording-methods/record-pause-timer.service.mjs +0 -40
  398. package/dist/esm2022/lib/methods/recording-methods/record-resume-timer.service.mjs +0 -86
  399. package/dist/esm2022/lib/methods/recording-methods/record-start-timer.service.mjs +0 -89
  400. package/dist/esm2022/lib/methods/recording-methods/record-update-timer.service.mjs +0 -48
  401. package/dist/esm2022/lib/methods/recording-methods/start-recording.service.mjs +0 -147
  402. package/dist/esm2022/lib/methods/recording-methods/stop-recording.service.mjs +0 -74
  403. package/dist/esm2022/lib/methods/recording-methods/update-recording.service.mjs +0 -224
  404. package/dist/esm2022/lib/methods/requests-methods/launch-requests.service.mjs +0 -26
  405. package/dist/esm2022/lib/methods/requests-methods/respond-to-requests.service.mjs +0 -45
  406. package/dist/esm2022/lib/methods/settings-methods/launch-settings.service.mjs +0 -26
  407. package/dist/esm2022/lib/methods/settings-methods/modify-settings.service.mjs +0 -67
  408. package/dist/esm2022/lib/methods/stream-methods/click-audio.service.mjs +0 -178
  409. package/dist/esm2022/lib/methods/stream-methods/click-chat.service.mjs +0 -44
  410. package/dist/esm2022/lib/methods/stream-methods/click-screen-share.service.mjs +0 -110
  411. package/dist/esm2022/lib/methods/stream-methods/click-video.service.mjs +0 -183
  412. package/dist/esm2022/lib/methods/stream-methods/switch-audio.service.mjs +0 -33
  413. package/dist/esm2022/lib/methods/stream-methods/switch-video-alt.service.mjs +0 -66
  414. package/dist/esm2022/lib/methods/stream-methods/switch-video.service.mjs +0 -76
  415. package/dist/esm2022/lib/methods/utils/format-number.service.mjs +0 -45
  416. package/dist/esm2022/lib/methods/utils/generate-random-messages.service.mjs +0 -87
  417. package/dist/esm2022/lib/methods/utils/generate-random-participants.service.mjs +0 -99
  418. package/dist/esm2022/lib/methods/utils/generate-random-polls.service.mjs +0 -52
  419. package/dist/esm2022/lib/methods/utils/generate-random-request-list.service.mjs +0 -54
  420. package/dist/esm2022/lib/methods/utils/generate-random-waiting-room-list.service.mjs +0 -38
  421. package/dist/esm2022/lib/methods/utils/get-modal-position.util.mjs +0 -22
  422. package/dist/esm2022/lib/methods/utils/get-overlay-position.util.mjs +0 -21
  423. package/dist/esm2022/lib/methods/utils/initial-values.util.mjs +0 -379
  424. package/dist/esm2022/lib/methods/utils/meeting-timer/start-meeting-progress-timer.service.mjs +0 -59
  425. package/dist/esm2022/lib/methods/utils/mini-audio-player/mini-audio-player.component.mjs +0 -260
  426. package/dist/esm2022/lib/methods/utils/producer/a-params.service.mjs +0 -21
  427. package/dist/esm2022/lib/methods/utils/producer/h-params.service.mjs +0 -37
  428. package/dist/esm2022/lib/methods/utils/producer/screen-params.service.mjs +0 -24
  429. package/dist/esm2022/lib/methods/utils/producer/v-params.service.mjs +0 -37
  430. package/dist/esm2022/lib/methods/utils/producer/video-capture-constraints.service.mjs +0 -38
  431. package/dist/esm2022/lib/methods/utils/sleep.util.mjs +0 -11
  432. package/dist/esm2022/lib/methods/utils/sound-player.service.mjs +0 -42
  433. package/dist/esm2022/lib/methods/utils/validate-alphanumeric.service.mjs +0 -33
  434. package/dist/esm2022/lib/methods/waiting-methods/launch-waiting.service.mjs +0 -23
  435. package/dist/esm2022/lib/methods/waiting-methods/respond-to-waiting.service.mjs +0 -40
  436. package/dist/esm2022/lib/methods/whiteboard-methods/capture-canvas-stream.service.mjs +0 -69
  437. package/dist/esm2022/lib/methods/whiteboard-methods/launch-configure-whiteboard.service.mjs +0 -24
  438. package/dist/esm2022/lib/producer-client/producer-client-emits/create-device-client.service.mjs +0 -51
  439. package/dist/esm2022/lib/producer-client/producer-client-emits/join-room-client.service.mjs +0 -65
  440. package/dist/esm2022/lib/producer-client/producer-client-emits/update-room-parameters-client.service.mjs +0 -232
  441. package/dist/esm2022/lib/producers/producer-emits/join-con-room.service.mjs +0 -114
  442. package/dist/esm2022/lib/producers/producer-emits/join-room.service.mjs +0 -114
  443. package/dist/esm2022/lib/producers/socket-receive-methods/all-members-rest.service.mjs +0 -155
  444. package/dist/esm2022/lib/producers/socket-receive-methods/all-members.service.mjs +0 -147
  445. package/dist/esm2022/lib/producers/socket-receive-methods/all-waiting-room-members.service.mjs +0 -30
  446. package/dist/esm2022/lib/producers/socket-receive-methods/ban-participant.service.mjs +0 -40
  447. package/dist/esm2022/lib/producers/socket-receive-methods/control-media-host.service.mjs +0 -146
  448. package/dist/esm2022/lib/producers/socket-receive-methods/disconnect-user-self.service.mjs +0 -26
  449. package/dist/esm2022/lib/producers/socket-receive-methods/disconnect.service.mjs +0 -38
  450. package/dist/esm2022/lib/producers/socket-receive-methods/get-domains.service.mjs +0 -63
  451. package/dist/esm2022/lib/producers/socket-receive-methods/host-request-response.service.mjs +0 -167
  452. package/dist/esm2022/lib/producers/socket-receive-methods/meeting-ended.service.mjs +0 -44
  453. package/dist/esm2022/lib/producers/socket-receive-methods/meeting-still-there.service.mjs +0 -24
  454. package/dist/esm2022/lib/producers/socket-receive-methods/meeting-time-remaining.service.mjs +0 -36
  455. package/dist/esm2022/lib/producers/socket-receive-methods/participant-requested.service.mjs +0 -32
  456. package/dist/esm2022/lib/producers/socket-receive-methods/person-joined.service.mjs +0 -29
  457. package/dist/esm2022/lib/producers/socket-receive-methods/producer-media-closed.service.mjs +0 -68
  458. package/dist/esm2022/lib/producers/socket-receive-methods/producer-media-paused.service.mjs +0 -90
  459. package/dist/esm2022/lib/producers/socket-receive-methods/producer-media-resumed.service.mjs +0 -54
  460. package/dist/esm2022/lib/producers/socket-receive-methods/re-initiate-recording.service.mjs +0 -38
  461. package/dist/esm2022/lib/producers/socket-receive-methods/receive-message.service.mjs +0 -96
  462. package/dist/esm2022/lib/producers/socket-receive-methods/recording-notice.service.mjs +0 -195
  463. package/dist/esm2022/lib/producers/socket-receive-methods/room-record-params.service.mjs +0 -59
  464. package/dist/esm2022/lib/producers/socket-receive-methods/screen-producer-id.service.mjs +0 -45
  465. package/dist/esm2022/lib/producers/socket-receive-methods/start-records.service.mjs +0 -35
  466. package/dist/esm2022/lib/producers/socket-receive-methods/stopped-recording.service.mjs +0 -37
  467. package/dist/esm2022/lib/producers/socket-receive-methods/time-left-recording.service.mjs +0 -36
  468. package/dist/esm2022/lib/producers/socket-receive-methods/update-consuming-domains.service.mjs +0 -63
  469. package/dist/esm2022/lib/producers/socket-receive-methods/update-media-settings.service.mjs +0 -36
  470. package/dist/esm2022/lib/producers/socket-receive-methods/updated-co-host.service.mjs +0 -56
  471. package/dist/esm2022/lib/producers/socket-receive-methods/user-waiting.service.mjs +0 -78
  472. package/dist/esm2022/lib/sockets/socket-manager.service.mjs +0 -73
  473. package/dist/esm2022/mediasfu-angular.mjs +0 -5
  474. package/dist/esm2022/public-api.mjs +0 -187
@@ -1,215 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export class ConfirmRecording {
4
- /**
5
- * Confirms the recording settings based on the provided parameters and updates the recording state.
6
- *
7
- * @param {ConfirmRecordingOptions} options - The options for confirming the recording.
8
- * @param {Parameters} options.parameters - The parameters for the recording.
9
- *
10
- * @returns {Promise<void>} A promise that resolves when the recording settings have been confirmed.
11
- *
12
- * @remarks
13
- * This function performs several checks to ensure that the recording settings are valid based on the provided parameters.
14
- * If any of the checks fail, an alert is shown and the function returns early without updating the recording state.
15
- *
16
- * The function checks for the following conditions:
17
- * - Whether recording videos of all participants is allowed.
18
- * - Whether recording all participants is allowed.
19
- * - Whether recording other video participants is allowed.
20
- * - Whether recording all orientations is allowed.
21
- * - Whether recording the preferred orientation is allowed.
22
- * - Whether recording all formats is allowed.
23
- * - Whether the recording display type is valid based on the meeting display type.
24
- * - Whether recording all participants with media is allowed.
25
- *
26
- * If all checks pass, the function constructs the `mainSpecs`, `dispSpecs`, and `textSpecs` objects based on the state variables,
27
- * updates the user recording parameters, and confirms the recording.
28
- *
29
- * @example
30
- * ```typescript
31
- * const options: ConfirmRecordingOptions = { parameters: someParameters };
32
- * await confirmRecording(options);
33
- * ```
34
- */
35
- confirmRecording = async ({ parameters }) => {
36
- let { getUpdatedAllParams } = parameters;
37
- parameters = getUpdatedAllParams();
38
- let { showAlert, recordingMediaOptions, recordingAudioOptions, recordingVideoOptions, recordingVideoType, recordingDisplayType, recordingNameTags, recordingBackgroundColor, recordingNameTagsColor, recordingOrientationVideo, recordingAddHLS, recordingAddText, recordingCustomText, recordingCustomTextPosition, recordingCustomTextColor, meetingDisplayType, recordingVideoParticipantsFullRoomSupport, recordingAllParticipantsSupport, recordingVideoParticipantsSupport, recordingSupportForOtherOrientation, recordingPreferredOrientation, recordingMultiFormatsSupport, recordingVideoOptimized, recordingAllParticipantsFullRoomSupport, meetingVideoOptimized, eventType, breakOutRoomStarted, breakOutRoomEnded, updateRecordingDisplayType, updateRecordingVideoOptimized, updateRecordingVideoParticipantsFullRoomSupport, updateRecordingAllParticipantsSupport, updateRecordingVideoParticipantsSupport, updateRecordingSupportForOtherOrientation, updateRecordingPreferredOrientation, updateRecordingMultiFormatsSupport, updateUserRecordingParams, updateConfirmedToRecord, } = parameters;
39
- // Retrieve the values from the state
40
- const mediaOptions = recordingMediaOptions;
41
- // Other variables not provided in the guide
42
- const selectedRecordOption = recordingDisplayType;
43
- // Additional logic similar to the provided guide
44
- // recordingVideoParticipantsFullRoomSupport = minigrid and main video
45
- if (eventType !== 'broadcast') {
46
- if (!recordingVideoParticipantsFullRoomSupport &&
47
- recordingVideoOptions === 'all' &&
48
- mediaOptions === 'video') {
49
- if (meetingDisplayType == 'all') {
50
- if (breakOutRoomStarted && !breakOutRoomEnded) {
51
- // breakout rooms are started
52
- }
53
- else {
54
- showAlert?.({
55
- message: 'You are not allowed to record videos of all participants; change the meeting display type to video or video optimized.',
56
- type: 'danger',
57
- duration: 3000,
58
- });
59
- return;
60
- }
61
- }
62
- }
63
- // recordingAllParticipantsSupport = others other than host screen (video + audio)
64
- if (!recordingAllParticipantsSupport && recordingVideoOptions === 'all') {
65
- showAlert?.({
66
- message: 'You are only allowed to record yourself.',
67
- type: 'danger',
68
- duration: 3000,
69
- });
70
- return;
71
- }
72
- // recordingVideoParticipantsSupport (maingrid + non-host screenshare person)
73
- if (!recordingVideoParticipantsSupport && recordingDisplayType === 'video') {
74
- showAlert?.({
75
- message: 'You are not allowed to record other video participants.',
76
- type: 'danger',
77
- duration: 3000,
78
- });
79
- return;
80
- }
81
- }
82
- if (!recordingSupportForOtherOrientation && recordingOrientationVideo === 'all') {
83
- showAlert?.({
84
- message: 'You are not allowed to record all orientations.',
85
- type: 'danger',
86
- duration: 3000,
87
- });
88
- return;
89
- }
90
- if (recordingPreferredOrientation === 'landscape' &&
91
- recordingOrientationVideo === 'portrait' &&
92
- !recordingSupportForOtherOrientation) {
93
- showAlert?.({
94
- message: 'You are not allowed to record portrait orientation.',
95
- type: 'danger',
96
- duration: 3000,
97
- });
98
- return;
99
- }
100
- else if (recordingPreferredOrientation === 'portrait' &&
101
- recordingOrientationVideo === 'landscape' &&
102
- !recordingSupportForOtherOrientation) {
103
- showAlert?.({
104
- message: 'You are not allowed to record landscape orientation.',
105
- type: 'danger',
106
- duration: 3000,
107
- });
108
- return;
109
- }
110
- if (!recordingMultiFormatsSupport && recordingVideoType === 'all') {
111
- showAlert?.({
112
- message: 'You are not allowed to record all formats.',
113
- type: 'danger',
114
- duration: 3000,
115
- });
116
- return;
117
- }
118
- if (eventType !== 'broadcast') {
119
- if (recordingMediaOptions === 'video') {
120
- if (meetingDisplayType === 'media') {
121
- if (recordingDisplayType === 'all') {
122
- showAlert?.({
123
- message: 'Recording display type can be either video, video optimized, or media when meeting display type is media.',
124
- type: 'danger',
125
- duration: 3000,
126
- });
127
- recordingDisplayType = meetingDisplayType;
128
- return;
129
- }
130
- }
131
- else if (meetingDisplayType === 'video') {
132
- if (recordingDisplayType === 'all' || recordingDisplayType === 'media') {
133
- showAlert?.({
134
- message: 'Recording display type can be either video or video optimized when meeting display type is video.',
135
- type: 'danger',
136
- duration: 3000,
137
- });
138
- recordingDisplayType = meetingDisplayType;
139
- return;
140
- }
141
- if (meetingVideoOptimized && !recordingVideoOptimized) {
142
- showAlert?.({
143
- message: 'Recording display type can be only video optimized when meeting display type is video optimized.',
144
- type: 'danger',
145
- duration: 3000,
146
- });
147
- recordingVideoOptimized = meetingVideoOptimized;
148
- return;
149
- }
150
- }
151
- }
152
- else {
153
- if (recordingDisplayType === 'all' || recordingDisplayType === 'media') {
154
- // do nothing
155
- }
156
- else {
157
- recordingDisplayType = 'media';
158
- }
159
- recordingVideoOptimized = false;
160
- }
161
- }
162
- if (recordingDisplayType === 'all' && !recordingAllParticipantsFullRoomSupport) {
163
- showAlert?.({
164
- message: 'You can only record all participants with media.',
165
- type: 'danger',
166
- duration: 3000,
167
- });
168
- return;
169
- }
170
- // Construct mainSpecs and dispSpecs objects based on the state variables
171
- const mainSpecs = {
172
- mediaOptions: recordingMediaOptions,
173
- audioOptions: recordingAudioOptions,
174
- videoOptions: recordingVideoOptions,
175
- videoType: recordingVideoType,
176
- videoOptimized: recordingVideoOptimized,
177
- recordingDisplayType: recordingDisplayType,
178
- addHLS: recordingAddHLS,
179
- };
180
- const dispSpecs = {
181
- nameTags: recordingNameTags,
182
- backgroundColor: recordingBackgroundColor,
183
- nameTagsColor: recordingNameTagsColor,
184
- orientationVideo: recordingOrientationVideo,
185
- };
186
- const textSpecs = {
187
- addText: recordingAddText,
188
- customText: recordingCustomText,
189
- customTextPosition: recordingCustomTextPosition,
190
- customTextColor: recordingCustomTextColor,
191
- };
192
- // Construct userRecordingParams object
193
- const userRecordingParams = { mainSpecs, dispSpecs, textSpecs };
194
- // Update state variables based on the logic
195
- updateUserRecordingParams(userRecordingParams);
196
- updateConfirmedToRecord(true);
197
- updateRecordingDisplayType(selectedRecordOption);
198
- updateRecordingVideoOptimized(recordingVideoOptimized);
199
- updateRecordingVideoParticipantsFullRoomSupport(recordingVideoParticipantsFullRoomSupport);
200
- updateRecordingAllParticipantsSupport(recordingAllParticipantsSupport);
201
- updateRecordingVideoParticipantsSupport(recordingVideoParticipantsSupport);
202
- updateRecordingSupportForOtherOrientation(recordingSupportForOtherOrientation);
203
- updateRecordingPreferredOrientation(recordingPreferredOrientation);
204
- updateRecordingMultiFormatsSupport(recordingMultiFormatsSupport);
205
- };
206
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ConfirmRecording, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
207
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ConfirmRecording, providedIn: 'root' });
208
- }
209
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ConfirmRecording, decorators: [{
210
- type: Injectable,
211
- args: [{
212
- providedIn: 'root',
213
- }]
214
- }] });
215
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlybS1yZWNvcmRpbmcuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21lZGlhc2Z1LWFuZ3VsYXIvc3JjL2xpYi9tZXRob2RzL3JlY29yZGluZy1tZXRob2RzL2NvbmZpcm0tcmVjb3JkaW5nLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUEyRDNDLE1BQU0sT0FBTyxnQkFBZ0I7SUFDM0I7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztPQThCRztJQUVILGdCQUFnQixHQUFHLEtBQUssRUFBRSxFQUFFLFVBQVUsRUFBMkIsRUFBaUIsRUFBRTtRQUNsRixJQUFJLEVBQUUsbUJBQW1CLEVBQUUsR0FBRyxVQUFVLENBQUM7UUFDekMsVUFBVSxHQUFHLG1CQUFtQixFQUFFLENBQUM7UUFFbkMsSUFBSSxFQUNGLFNBQVMsRUFDVCxxQkFBcUIsRUFDckIscUJBQXFCLEVBQ3JCLHFCQUFxQixFQUNyQixrQkFBa0IsRUFDbEIsb0JBQW9CLEVBQ3BCLGlCQUFpQixFQUNqQix3QkFBd0IsRUFDeEIsc0JBQXNCLEVBQ3RCLHlCQUF5QixFQUN6QixlQUFlLEVBQ2YsZ0JBQWdCLEVBQ2hCLG1CQUFtQixFQUNuQiwyQkFBMkIsRUFDM0Isd0JBQXdCLEVBQ3hCLGtCQUFrQixFQUNsQix5Q0FBeUMsRUFDekMsK0JBQStCLEVBQy9CLGlDQUFpQyxFQUNqQyxtQ0FBbUMsRUFDbkMsNkJBQTZCLEVBQzdCLDRCQUE0QixFQUM1Qix1QkFBdUIsRUFDdkIsdUNBQXVDLEVBQ3ZDLHFCQUFxQixFQUNyQixTQUFTLEVBQ1QsbUJBQW1CLEVBQ25CLGlCQUFpQixFQUVqQiwwQkFBMEIsRUFDMUIsNkJBQTZCLEVBQzdCLCtDQUErQyxFQUMvQyxxQ0FBcUMsRUFDckMsdUNBQXVDLEVBQ3ZDLHlDQUF5QyxFQUN6QyxtQ0FBbUMsRUFDbkMsa0NBQWtDLEVBQ2xDLHlCQUF5QixFQUN6Qix1QkFBdUIsR0FDeEIsR0FBRyxVQUFVLENBQUM7UUFFZixxQ0FBcUM7UUFFckMsTUFBTSxZQUFZLEdBQUcscUJBQXFCLENBQUM7UUFFM0MsNENBQTRDO1FBQzVDLE1BQU0sb0JBQW9CLEdBQUcsb0JBQW9CLENBQUM7UUFFbEQsaURBQWlEO1FBQ2pELHNFQUFzRTtRQUN0RSxJQUFJLFNBQVMsS0FBSyxXQUFXLEVBQUUsQ0FBQztZQUM5QixJQUNFLENBQUMseUNBQXlDO2dCQUMxQyxxQkFBcUIsS0FBSyxLQUFLO2dCQUMvQixZQUFZLEtBQUssT0FBTyxFQUN4QixDQUFDO2dCQUNELElBQUksa0JBQWtCLElBQUksS0FBSyxFQUFFLENBQUM7b0JBQ2hDLElBQUksbUJBQW1CLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO3dCQUM5Qyw2QkFBNkI7b0JBQy9CLENBQUM7eUJBQU0sQ0FBQzt3QkFDTixTQUFTLEVBQUUsQ0FBQzs0QkFDVixPQUFPLEVBQ0wsd0hBQXdIOzRCQUMxSCxJQUFJLEVBQUUsUUFBUTs0QkFDZCxRQUFRLEVBQUUsSUFBSTt5QkFDZixDQUFDLENBQUM7d0JBRUgsT0FBTztvQkFDVCxDQUFDO2dCQUNILENBQUM7WUFDSCxDQUFDO1lBRUQsbUZBQW1GO1lBQ25GLElBQUksQ0FBQywrQkFBK0IsSUFBSSxxQkFBcUIsS0FBSyxLQUFLLEVBQUUsQ0FBQztnQkFDeEUsU0FBUyxFQUFFLENBQUM7b0JBQ1YsT0FBTyxFQUFFLDBDQUEwQztvQkFDbkQsSUFBSSxFQUFFLFFBQVE7b0JBQ2QsUUFBUSxFQUFFLElBQUk7aUJBQ2YsQ0FBQyxDQUFDO2dCQUVILE9BQU87WUFDVCxDQUFDO1lBRUQsNkVBQTZFO1lBQzdFLElBQUksQ0FBQyxpQ0FBaUMsSUFBSSxvQkFBb0IsS0FBSyxPQUFPLEVBQUUsQ0FBQztnQkFDM0UsU0FBUyxFQUFFLENBQUM7b0JBQ1YsT0FBTyxFQUFFLHlEQUF5RDtvQkFDbEUsSUFBSSxFQUFFLFFBQVE7b0JBQ2QsUUFBUSxFQUFFLElBQUk7aUJBQ2YsQ0FBQyxDQUFDO2dCQUVILE9BQU87WUFDVCxDQUFDO1FBQ0gsQ0FBQztRQUVELElBQUksQ0FBQyxtQ0FBbUMsSUFBSSx5QkFBeUIsS0FBSyxLQUFLLEVBQUUsQ0FBQztZQUNoRixTQUFTLEVBQUUsQ0FBQztnQkFDVixPQUFPLEVBQUUsaURBQWlEO2dCQUMxRCxJQUFJLEVBQUUsUUFBUTtnQkFDZCxRQUFRLEVBQUUsSUFBSTthQUNmLENBQUMsQ0FBQztZQUVILE9BQU87UUFDVCxDQUFDO1FBRUQsSUFDRSw2QkFBNkIsS0FBSyxXQUFXO1lBQzdDLHlCQUF5QixLQUFLLFVBQVU7WUFDeEMsQ0FBQyxtQ0FBbUMsRUFDcEMsQ0FBQztZQUNELFNBQVMsRUFBRSxDQUFDO2dCQUNWLE9BQU8sRUFBRSxxREFBcUQ7Z0JBQzlELElBQUksRUFBRSxRQUFRO2dCQUNkLFFBQVEsRUFBRSxJQUFJO2FBQ2YsQ0FBQyxDQUFDO1lBRUgsT0FBTztRQUNULENBQUM7YUFBTSxJQUNMLDZCQUE2QixLQUFLLFVBQVU7WUFDNUMseUJBQXlCLEtBQUssV0FBVztZQUN6QyxDQUFDLG1DQUFtQyxFQUNwQyxDQUFDO1lBQ0QsU0FBUyxFQUFFLENBQUM7Z0JBQ1YsT0FBTyxFQUFFLHNEQUFzRDtnQkFDL0QsSUFBSSxFQUFFLFFBQVE7Z0JBQ2QsUUFBUSxFQUFFLElBQUk7YUFDZixDQUFDLENBQUM7WUFFSCxPQUFPO1FBQ1QsQ0FBQztRQUVELElBQUksQ0FBQyw0QkFBNEIsSUFBSSxrQkFBa0IsS0FBSyxLQUFLLEVBQUUsQ0FBQztZQUNsRSxTQUFTLEVBQUUsQ0FBQztnQkFDVixPQUFPLEVBQUUsNENBQTRDO2dCQUNyRCxJQUFJLEVBQUUsUUFBUTtnQkFDZCxRQUFRLEVBQUUsSUFBSTthQUNmLENBQUMsQ0FBQztZQUVILE9BQU87UUFDVCxDQUFDO1FBRUQsSUFBSSxTQUFTLEtBQUssV0FBVyxFQUFFLENBQUM7WUFDOUIsSUFBSSxxQkFBcUIsS0FBSyxPQUFPLEVBQUUsQ0FBQztnQkFDdEMsSUFBSSxrQkFBa0IsS0FBSyxPQUFPLEVBQUUsQ0FBQztvQkFDbkMsSUFBSSxvQkFBb0IsS0FBSyxLQUFLLEVBQUUsQ0FBQzt3QkFDbkMsU0FBUyxFQUFFLENBQUM7NEJBQ1YsT0FBTyxFQUNMLDJHQUEyRzs0QkFDN0csSUFBSSxFQUFFLFFBQVE7NEJBQ2QsUUFBUSxFQUFFLElBQUk7eUJBQ2YsQ0FBQyxDQUFDO3dCQUVILG9CQUFvQixHQUFHLGtCQUFrQixDQUFDO3dCQUMxQyxPQUFPO29CQUNULENBQUM7Z0JBQ0gsQ0FBQztxQkFBTSxJQUFJLGtCQUFrQixLQUFLLE9BQU8sRUFBRSxDQUFDO29CQUMxQyxJQUFJLG9CQUFvQixLQUFLLEtBQUssSUFBSSxvQkFBb0IsS0FBSyxPQUFPLEVBQUUsQ0FBQzt3QkFDdkUsU0FBUyxFQUFFLENBQUM7NEJBQ1YsT0FBTyxFQUNMLG1HQUFtRzs0QkFDckcsSUFBSSxFQUFFLFFBQVE7NEJBQ2QsUUFBUSxFQUFFLElBQUk7eUJBQ2YsQ0FBQyxDQUFDO3dCQUVILG9CQUFvQixHQUFHLGtCQUFrQixDQUFDO3dCQUMxQyxPQUFPO29CQUNULENBQUM7b0JBRUQsSUFBSSxxQkFBcUIsSUFBSSxDQUFDLHVCQUF1QixFQUFFLENBQUM7d0JBQ3RELFNBQVMsRUFBRSxDQUFDOzRCQUNWLE9BQU8sRUFDTCxrR0FBa0c7NEJBQ3BHLElBQUksRUFBRSxRQUFROzRCQUNkLFFBQVEsRUFBRSxJQUFJO3lCQUNmLENBQUMsQ0FBQzt3QkFFSCx1QkFBdUIsR0FBRyxxQkFBcUIsQ0FBQzt3QkFDaEQsT0FBTztvQkFDVCxDQUFDO2dCQUNILENBQUM7WUFDSCxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sSUFBSSxvQkFBb0IsS0FBSyxLQUFLLElBQUksb0JBQW9CLEtBQUssT0FBTyxFQUFFLENBQUM7b0JBQ3ZFLGFBQWE7Z0JBQ2YsQ0FBQztxQkFBTSxDQUFDO29CQUNOLG9CQUFvQixHQUFHLE9BQU8sQ0FBQztnQkFDakMsQ0FBQztnQkFDRCx1QkFBdUIsR0FBRyxLQUFLLENBQUM7WUFDbEMsQ0FBQztRQUNILENBQUM7UUFFRCxJQUFJLG9CQUFvQixLQUFLLEtBQUssSUFBSSxDQUFDLHVDQUF1QyxFQUFFLENBQUM7WUFDL0UsU0FBUyxFQUFFLENBQUM7Z0JBQ1YsT0FBTyxFQUFFLGtEQUFrRDtnQkFDM0QsSUFBSSxFQUFFLFFBQVE7Z0JBQ2QsUUFBUSxFQUFFLElBQUk7YUFDZixDQUFDLENBQUM7WUFFSCxPQUFPO1FBQ1QsQ0FBQztRQUNELHlFQUF5RTtRQUN6RSxNQUFNLFNBQVMsR0FBYztZQUMzQixZQUFZLEVBQUUscUJBQXFCO1lBQ25DLFlBQVksRUFBRSxxQkFBcUI7WUFDbkMsWUFBWSxFQUFFLHFCQUFxQjtZQUNuQyxTQUFTLEVBQUUsa0JBQWtCO1lBQzdCLGNBQWMsRUFBRSx1QkFBdUI7WUFDdkMsb0JBQW9CLEVBQUUsb0JBQW9CO1lBQzFDLE1BQU0sRUFBRSxlQUFlO1NBQ3hCLENBQUM7UUFFRixNQUFNLFNBQVMsR0FBYztZQUMzQixRQUFRLEVBQUUsaUJBQWlCO1lBQzNCLGVBQWUsRUFBRSx3QkFBd0I7WUFDekMsYUFBYSxFQUFFLHNCQUFzQjtZQUNyQyxnQkFBZ0IsRUFBRSx5QkFBeUI7U0FDNUMsQ0FBQztRQUVGLE1BQU0sU0FBUyxHQUFjO1lBQzNCLE9BQU8sRUFBRSxnQkFBZ0I7WUFDekIsVUFBVSxFQUFFLG1CQUFtQjtZQUMvQixrQkFBa0IsRUFBRSwyQkFBMkI7WUFDL0MsZUFBZSxFQUFFLHdCQUF3QjtTQUMxQyxDQUFDO1FBRUYsdUNBQXVDO1FBQ3ZDLE1BQU0sbUJBQW1CLEdBQUcsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxDQUFDO1FBQ2hFLDRDQUE0QztRQUM1Qyx5QkFBeUIsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQy9DLHVCQUF1QixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzlCLDBCQUEwQixDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFDakQsNkJBQTZCLENBQUMsdUJBQXVCLENBQUMsQ0FBQztRQUN2RCwrQ0FBK0MsQ0FBQyx5Q0FBeUMsQ0FBQyxDQUFDO1FBQzNGLHFDQUFxQyxDQUFDLCtCQUErQixDQUFDLENBQUM7UUFDdkUsdUNBQXVDLENBQUMsaUNBQWlDLENBQUMsQ0FBQztRQUMzRSx5Q0FBeUMsQ0FBQyxtQ0FBbUMsQ0FBQyxDQUFDO1FBQy9FLG1DQUFtQyxDQUFDLDZCQUE2QixDQUFDLENBQUM7UUFDbkUsa0NBQWtDLENBQUMsNEJBQTRCLENBQUMsQ0FBQztJQUNuRSxDQUFDLENBQUM7dUdBblJTLGdCQUFnQjsyR0FBaEIsZ0JBQWdCLGNBRmYsTUFBTTs7MkZBRVAsZ0JBQWdCO2tCQUg1QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIFNob3dBbGVydCxcbiAgTWFpblNwZWNzLFxuICBEaXNwU3BlY3MsXG4gIFRleHRTcGVjcyxcbiAgRXZlbnRUeXBlLFxuICBVc2VyUmVjb3JkaW5nUGFyYW1zLFxufSBmcm9tICcuLi8uLi9AdHlwZXMvdHlwZXMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIENvbmZpcm1SZWNvcmRpbmdQYXJhbWV0ZXJzIHtcbiAgc2hvd0FsZXJ0PzogU2hvd0FsZXJ0O1xuICByZWNvcmRpbmdNZWRpYU9wdGlvbnM6IHN0cmluZztcbiAgcmVjb3JkaW5nQXVkaW9PcHRpb25zOiBzdHJpbmc7XG4gIHJlY29yZGluZ1ZpZGVvT3B0aW9uczogc3RyaW5nO1xuICByZWNvcmRpbmdWaWRlb1R5cGU6IHN0cmluZztcbiAgcmVjb3JkaW5nRGlzcGxheVR5cGU6ICd2aWRlbycgfCAnbWVkaWEnIHwgJ2FsbCc7XG4gIHJlY29yZGluZ05hbWVUYWdzOiBib29sZWFuO1xuICByZWNvcmRpbmdCYWNrZ3JvdW5kQ29sb3I6IHN0cmluZztcbiAgcmVjb3JkaW5nTmFtZVRhZ3NDb2xvcjogc3RyaW5nO1xuICByZWNvcmRpbmdPcmllbnRhdGlvblZpZGVvOiBzdHJpbmc7XG4gIHJlY29yZGluZ0FkZEhMUzogYm9vbGVhbjtcbiAgcmVjb3JkaW5nQWRkVGV4dDogYm9vbGVhbjtcbiAgcmVjb3JkaW5nQ3VzdG9tVGV4dDogc3RyaW5nO1xuICByZWNvcmRpbmdDdXN0b21UZXh0UG9zaXRpb246IHN0cmluZztcbiAgcmVjb3JkaW5nQ3VzdG9tVGV4dENvbG9yOiBzdHJpbmc7XG4gIG1lZXRpbmdEaXNwbGF5VHlwZTogc3RyaW5nO1xuICByZWNvcmRpbmdWaWRlb1BhcnRpY2lwYW50c0Z1bGxSb29tU3VwcG9ydDogYm9vbGVhbjtcbiAgcmVjb3JkaW5nQWxsUGFydGljaXBhbnRzU3VwcG9ydDogYm9vbGVhbjtcbiAgcmVjb3JkaW5nVmlkZW9QYXJ0aWNpcGFudHNTdXBwb3J0OiBib29sZWFuO1xuICByZWNvcmRpbmdTdXBwb3J0Rm9yT3RoZXJPcmllbnRhdGlvbjogYm9vbGVhbjtcbiAgcmVjb3JkaW5nUHJlZmVycmVkT3JpZW50YXRpb246IHN0cmluZztcbiAgcmVjb3JkaW5nTXVsdGlGb3JtYXRzU3VwcG9ydDogYm9vbGVhbjtcbiAgcmVjb3JkaW5nVmlkZW9PcHRpbWl6ZWQ6IGJvb2xlYW47XG4gIHJlY29yZGluZ0FsbFBhcnRpY2lwYW50c0Z1bGxSb29tU3VwcG9ydDogYm9vbGVhbjtcbiAgbWVldGluZ1ZpZGVvT3B0aW1pemVkOiBib29sZWFuO1xuICBldmVudFR5cGU6IEV2ZW50VHlwZTtcbiAgYnJlYWtPdXRSb29tU3RhcnRlZDogYm9vbGVhbjtcbiAgYnJlYWtPdXRSb29tRW5kZWQ6IGJvb2xlYW47XG4gIHVwZGF0ZVJlY29yZGluZ0Rpc3BsYXlUeXBlOiAodmFsdWU6ICd2aWRlbycgfCAnbWVkaWEnIHwgJ2FsbCcpID0+IHZvaWQ7XG4gIHVwZGF0ZVJlY29yZGluZ1ZpZGVvT3B0aW1pemVkOiAodmFsdWU6IGJvb2xlYW4pID0+IHZvaWQ7XG4gIHVwZGF0ZVVzZXJSZWNvcmRpbmdQYXJhbXM6IChwYXJhbXM6IFVzZXJSZWNvcmRpbmdQYXJhbXMpID0+IHZvaWQ7XG4gIHVwZGF0ZUNvbmZpcm1lZFRvUmVjb3JkOiAodmFsdWU6IGJvb2xlYW4pID0+IHZvaWQ7XG5cbiAgLy8gTWVkaWFzZnUgZnVuY3Rpb25zXG4gIGdldFVwZGF0ZWRBbGxQYXJhbXM6ICgpID0+IENvbmZpcm1SZWNvcmRpbmdQYXJhbWV0ZXJzO1xuICBba2V5OiBzdHJpbmddOiBhbnk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29uZmlybVJlY29yZGluZ09wdGlvbnMge1xuICBwYXJhbWV0ZXJzOiBDb25maXJtUmVjb3JkaW5nUGFyYW1ldGVycztcbn1cblxuLy8gRXhwb3J0IHRoZSB0eXBlIGRlZmluaXRpb24gZm9yIHRoZSBmdW5jdGlvblxuZXhwb3J0IHR5cGUgQ29uZmlybVJlY29yZGluZ1R5cGUgPSAob3B0aW9uczogQ29uZmlybVJlY29yZGluZ09wdGlvbnMpID0+IFByb21pc2U8dm9pZD47XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBDb25maXJtUmVjb3JkaW5nIHtcbiAgLyoqXG4gICAqIENvbmZpcm1zIHRoZSByZWNvcmRpbmcgc2V0dGluZ3MgYmFzZWQgb24gdGhlIHByb3ZpZGVkIHBhcmFtZXRlcnMgYW5kIHVwZGF0ZXMgdGhlIHJlY29yZGluZyBzdGF0ZS5cbiAgICpcbiAgICogQHBhcmFtIHtDb25maXJtUmVjb3JkaW5nT3B0aW9uc30gb3B0aW9ucyAtIFRoZSBvcHRpb25zIGZvciBjb25maXJtaW5nIHRoZSByZWNvcmRpbmcuXG4gICAqIEBwYXJhbSB7UGFyYW1ldGVyc30gb3B0aW9ucy5wYXJhbWV0ZXJzIC0gVGhlIHBhcmFtZXRlcnMgZm9yIHRoZSByZWNvcmRpbmcuXG4gICAqXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fSBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB3aGVuIHRoZSByZWNvcmRpbmcgc2V0dGluZ3MgaGF2ZSBiZWVuIGNvbmZpcm1lZC5cbiAgICpcbiAgICogQHJlbWFya3NcbiAgICogVGhpcyBmdW5jdGlvbiBwZXJmb3JtcyBzZXZlcmFsIGNoZWNrcyB0byBlbnN1cmUgdGhhdCB0aGUgcmVjb3JkaW5nIHNldHRpbmdzIGFyZSB2YWxpZCBiYXNlZCBvbiB0aGUgcHJvdmlkZWQgcGFyYW1ldGVycy5cbiAgICogSWYgYW55IG9mIHRoZSBjaGVja3MgZmFpbCwgYW4gYWxlcnQgaXMgc2hvd24gYW5kIHRoZSBmdW5jdGlvbiByZXR1cm5zIGVhcmx5IHdpdGhvdXQgdXBkYXRpbmcgdGhlIHJlY29yZGluZyBzdGF0ZS5cbiAgICpcbiAgICogVGhlIGZ1bmN0aW9uIGNoZWNrcyBmb3IgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuICAgKiAtIFdoZXRoZXIgcmVjb3JkaW5nIHZpZGVvcyBvZiBhbGwgcGFydGljaXBhbnRzIGlzIGFsbG93ZWQuXG4gICAqIC0gV2hldGhlciByZWNvcmRpbmcgYWxsIHBhcnRpY2lwYW50cyBpcyBhbGxvd2VkLlxuICAgKiAtIFdoZXRoZXIgcmVjb3JkaW5nIG90aGVyIHZpZGVvIHBhcnRpY2lwYW50cyBpcyBhbGxvd2VkLlxuICAgKiAtIFdoZXRoZXIgcmVjb3JkaW5nIGFsbCBvcmllbnRhdGlvbnMgaXMgYWxsb3dlZC5cbiAgICogLSBXaGV0aGVyIHJlY29yZGluZyB0aGUgcHJlZmVycmVkIG9yaWVudGF0aW9uIGlzIGFsbG93ZWQuXG4gICAqIC0gV2hldGhlciByZWNvcmRpbmcgYWxsIGZvcm1hdHMgaXMgYWxsb3dlZC5cbiAgICogLSBXaGV0aGVyIHRoZSByZWNvcmRpbmcgZGlzcGxheSB0eXBlIGlzIHZhbGlkIGJhc2VkIG9uIHRoZSBtZWV0aW5nIGRpc3BsYXkgdHlwZS5cbiAgICogLSBXaGV0aGVyIHJlY29yZGluZyBhbGwgcGFydGljaXBhbnRzIHdpdGggbWVkaWEgaXMgYWxsb3dlZC5cbiAgICpcbiAgICogSWYgYWxsIGNoZWNrcyBwYXNzLCB0aGUgZnVuY3Rpb24gY29uc3RydWN0cyB0aGUgYG1haW5TcGVjc2AsIGBkaXNwU3BlY3NgLCBhbmQgYHRleHRTcGVjc2Agb2JqZWN0cyBiYXNlZCBvbiB0aGUgc3RhdGUgdmFyaWFibGVzLFxuICAgKiB1cGRhdGVzIHRoZSB1c2VyIHJlY29yZGluZyBwYXJhbWV0ZXJzLCBhbmQgY29uZmlybXMgdGhlIHJlY29yZGluZy5cbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogYGBgdHlwZXNjcmlwdFxuICAgKiBjb25zdCBvcHRpb25zOiBDb25maXJtUmVjb3JkaW5nT3B0aW9ucyA9IHsgcGFyYW1ldGVyczogc29tZVBhcmFtZXRlcnMgfTtcbiAgICogYXdhaXQgY29uZmlybVJlY29yZGluZyhvcHRpb25zKTtcbiAgICogYGBgXG4gICAqL1xuXG4gIGNvbmZpcm1SZWNvcmRpbmcgPSBhc3luYyAoeyBwYXJhbWV0ZXJzIH06IENvbmZpcm1SZWNvcmRpbmdPcHRpb25zKTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gICAgbGV0IHsgZ2V0VXBkYXRlZEFsbFBhcmFtcyB9ID0gcGFyYW1ldGVycztcbiAgICBwYXJhbWV0ZXJzID0gZ2V0VXBkYXRlZEFsbFBhcmFtcygpO1xuXG4gICAgbGV0IHtcbiAgICAgIHNob3dBbGVydCxcbiAgICAgIHJlY29yZGluZ01lZGlhT3B0aW9ucyxcbiAgICAgIHJlY29yZGluZ0F1ZGlvT3B0aW9ucyxcbiAgICAgIHJlY29yZGluZ1ZpZGVvT3B0aW9ucyxcbiAgICAgIHJlY29yZGluZ1ZpZGVvVHlwZSxcbiAgICAgIHJlY29yZGluZ0Rpc3BsYXlUeXBlLFxuICAgICAgcmVjb3JkaW5nTmFtZVRhZ3MsXG4gICAgICByZWNvcmRpbmdCYWNrZ3JvdW5kQ29sb3IsXG4gICAgICByZWNvcmRpbmdOYW1lVGFnc0NvbG9yLFxuICAgICAgcmVjb3JkaW5nT3JpZW50YXRpb25WaWRlbyxcbiAgICAgIHJlY29yZGluZ0FkZEhMUyxcbiAgICAgIHJlY29yZGluZ0FkZFRleHQsXG4gICAgICByZWNvcmRpbmdDdXN0b21UZXh0LFxuICAgICAgcmVjb3JkaW5nQ3VzdG9tVGV4dFBvc2l0aW9uLFxuICAgICAgcmVjb3JkaW5nQ3VzdG9tVGV4dENvbG9yLFxuICAgICAgbWVldGluZ0Rpc3BsYXlUeXBlLFxuICAgICAgcmVjb3JkaW5nVmlkZW9QYXJ0aWNpcGFudHNGdWxsUm9vbVN1cHBvcnQsXG4gICAgICByZWNvcmRpbmdBbGxQYXJ0aWNpcGFudHNTdXBwb3J0LFxuICAgICAgcmVjb3JkaW5nVmlkZW9QYXJ0aWNpcGFudHNTdXBwb3J0LFxuICAgICAgcmVjb3JkaW5nU3VwcG9ydEZvck90aGVyT3JpZW50YXRpb24sXG4gICAgICByZWNvcmRpbmdQcmVmZXJyZWRPcmllbnRhdGlvbixcbiAgICAgIHJlY29yZGluZ011bHRpRm9ybWF0c1N1cHBvcnQsXG4gICAgICByZWNvcmRpbmdWaWRlb09wdGltaXplZCxcbiAgICAgIHJlY29yZGluZ0FsbFBhcnRpY2lwYW50c0Z1bGxSb29tU3VwcG9ydCxcbiAgICAgIG1lZXRpbmdWaWRlb09wdGltaXplZCxcbiAgICAgIGV2ZW50VHlwZSxcbiAgICAgIGJyZWFrT3V0Um9vbVN0YXJ0ZWQsXG4gICAgICBicmVha091dFJvb21FbmRlZCxcblxuICAgICAgdXBkYXRlUmVjb3JkaW5nRGlzcGxheVR5cGUsXG4gICAgICB1cGRhdGVSZWNvcmRpbmdWaWRlb09wdGltaXplZCxcbiAgICAgIHVwZGF0ZVJlY29yZGluZ1ZpZGVvUGFydGljaXBhbnRzRnVsbFJvb21TdXBwb3J0LFxuICAgICAgdXBkYXRlUmVjb3JkaW5nQWxsUGFydGljaXBhbnRzU3VwcG9ydCxcbiAgICAgIHVwZGF0ZVJlY29yZGluZ1ZpZGVvUGFydGljaXBhbnRzU3VwcG9ydCxcbiAgICAgIHVwZGF0ZVJlY29yZGluZ1N1cHBvcnRGb3JPdGhlck9yaWVudGF0aW9uLFxuICAgICAgdXBkYXRlUmVjb3JkaW5nUHJlZmVycmVkT3JpZW50YXRpb24sXG4gICAgICB1cGRhdGVSZWNvcmRpbmdNdWx0aUZvcm1hdHNTdXBwb3J0LFxuICAgICAgdXBkYXRlVXNlclJlY29yZGluZ1BhcmFtcyxcbiAgICAgIHVwZGF0ZUNvbmZpcm1lZFRvUmVjb3JkLFxuICAgIH0gPSBwYXJhbWV0ZXJzO1xuXG4gICAgLy8gUmV0cmlldmUgdGhlIHZhbHVlcyBmcm9tIHRoZSBzdGF0ZVxuXG4gICAgY29uc3QgbWVkaWFPcHRpb25zID0gcmVjb3JkaW5nTWVkaWFPcHRpb25zO1xuXG4gICAgLy8gT3RoZXIgdmFyaWFibGVzIG5vdCBwcm92aWRlZCBpbiB0aGUgZ3VpZGVcbiAgICBjb25zdCBzZWxlY3RlZFJlY29yZE9wdGlvbiA9IHJlY29yZGluZ0Rpc3BsYXlUeXBlO1xuXG4gICAgLy8gQWRkaXRpb25hbCBsb2dpYyBzaW1pbGFyIHRvIHRoZSBwcm92aWRlZCBndWlkZVxuICAgIC8vIHJlY29yZGluZ1ZpZGVvUGFydGljaXBhbnRzRnVsbFJvb21TdXBwb3J0ID0gbWluaWdyaWQgYW5kIG1haW4gdmlkZW9cbiAgICBpZiAoZXZlbnRUeXBlICE9PSAnYnJvYWRjYXN0Jykge1xuICAgICAgaWYgKFxuICAgICAgICAhcmVjb3JkaW5nVmlkZW9QYXJ0aWNpcGFudHNGdWxsUm9vbVN1cHBvcnQgJiZcbiAgICAgICAgcmVjb3JkaW5nVmlkZW9PcHRpb25zID09PSAnYWxsJyAmJlxuICAgICAgICBtZWRpYU9wdGlvbnMgPT09ICd2aWRlbydcbiAgICAgICkge1xuICAgICAgICBpZiAobWVldGluZ0Rpc3BsYXlUeXBlID09ICdhbGwnKSB7XG4gICAgICAgICAgaWYgKGJyZWFrT3V0Um9vbVN0YXJ0ZWQgJiYgIWJyZWFrT3V0Um9vbUVuZGVkKSB7XG4gICAgICAgICAgICAvLyBicmVha291dCByb29tcyBhcmUgc3RhcnRlZFxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBzaG93QWxlcnQ/Lih7XG4gICAgICAgICAgICAgIG1lc3NhZ2U6XG4gICAgICAgICAgICAgICAgJ1lvdSBhcmUgbm90IGFsbG93ZWQgdG8gcmVjb3JkIHZpZGVvcyBvZiBhbGwgcGFydGljaXBhbnRzOyBjaGFuZ2UgdGhlIG1lZXRpbmcgZGlzcGxheSB0eXBlIHRvIHZpZGVvIG9yIHZpZGVvIG9wdGltaXplZC4nLFxuICAgICAgICAgICAgICB0eXBlOiAnZGFuZ2VyJyxcbiAgICAgICAgICAgICAgZHVyYXRpb246IDMwMDAsXG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyByZWNvcmRpbmdBbGxQYXJ0aWNpcGFudHNTdXBwb3J0ICA9IG90aGVycyBvdGhlciB0aGFuIGhvc3Qgc2NyZWVuICh2aWRlbyArIGF1ZGlvKVxuICAgICAgaWYgKCFyZWNvcmRpbmdBbGxQYXJ0aWNpcGFudHNTdXBwb3J0ICYmIHJlY29yZGluZ1ZpZGVvT3B0aW9ucyA9PT0gJ2FsbCcpIHtcbiAgICAgICAgc2hvd0FsZXJ0Py4oe1xuICAgICAgICAgIG1lc3NhZ2U6ICdZb3UgYXJlIG9ubHkgYWxsb3dlZCB0byByZWNvcmQgeW91cnNlbGYuJyxcbiAgICAgICAgICB0eXBlOiAnZGFuZ2VyJyxcbiAgICAgICAgICBkdXJhdGlvbjogMzAwMCxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICAvLyByZWNvcmRpbmdWaWRlb1BhcnRpY2lwYW50c1N1cHBvcnQgKG1haW5ncmlkICsgbm9uLWhvc3Qgc2NyZWVuc2hhcmUgcGVyc29uKVxuICAgICAgaWYgKCFyZWNvcmRpbmdWaWRlb1BhcnRpY2lwYW50c1N1cHBvcnQgJiYgcmVjb3JkaW5nRGlzcGxheVR5cGUgPT09ICd2aWRlbycpIHtcbiAgICAgICAgc2hvd0FsZXJ0Py4oe1xuICAgICAgICAgIG1lc3NhZ2U6ICdZb3UgYXJlIG5vdCBhbGxvd2VkIHRvIHJlY29yZCBvdGhlciB2aWRlbyBwYXJ0aWNpcGFudHMuJyxcbiAgICAgICAgICB0eXBlOiAnZGFuZ2VyJyxcbiAgICAgICAgICBkdXJhdGlvbjogMzAwMCxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICghcmVjb3JkaW5nU3VwcG9ydEZvck90aGVyT3JpZW50YXRpb24gJiYgcmVjb3JkaW5nT3JpZW50YXRpb25WaWRlbyA9PT0gJ2FsbCcpIHtcbiAgICAgIHNob3dBbGVydD8uKHtcbiAgICAgICAgbWVzc2FnZTogJ1lvdSBhcmUgbm90IGFsbG93ZWQgdG8gcmVjb3JkIGFsbCBvcmllbnRhdGlvbnMuJyxcbiAgICAgICAgdHlwZTogJ2RhbmdlcicsXG4gICAgICAgIGR1cmF0aW9uOiAzMDAwLFxuICAgICAgfSk7XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoXG4gICAgICByZWNvcmRpbmdQcmVmZXJyZWRPcmllbnRhdGlvbiA9PT0gJ2xhbmRzY2FwZScgJiZcbiAgICAgIHJlY29yZGluZ09yaWVudGF0aW9uVmlkZW8gPT09ICdwb3J0cmFpdCcgJiZcbiAgICAgICFyZWNvcmRpbmdTdXBwb3J0Rm9yT3RoZXJPcmllbnRhdGlvblxuICAgICkge1xuICAgICAgc2hvd0FsZXJ0Py4oe1xuICAgICAgICBtZXNzYWdlOiAnWW91IGFyZSBub3QgYWxsb3dlZCB0byByZWNvcmQgcG9ydHJhaXQgb3JpZW50YXRpb24uJyxcbiAgICAgICAgdHlwZTogJ2RhbmdlcicsXG4gICAgICAgIGR1cmF0aW9uOiAzMDAwLFxuICAgICAgfSk7XG5cbiAgICAgIHJldHVybjtcbiAgICB9IGVsc2UgaWYgKFxuICAgICAgcmVjb3JkaW5nUHJlZmVycmVkT3JpZW50YXRpb24gPT09ICdwb3J0cmFpdCcgJiZcbiAgICAgIHJlY29yZGluZ09yaWVudGF0aW9uVmlkZW8gPT09ICdsYW5kc2NhcGUnICYmXG4gICAgICAhcmVjb3JkaW5nU3VwcG9ydEZvck90aGVyT3JpZW50YXRpb25cbiAgICApIHtcbiAgICAgIHNob3dBbGVydD8uKHtcbiAgICAgICAgbWVzc2FnZTogJ1lvdSBhcmUgbm90IGFsbG93ZWQgdG8gcmVjb3JkIGxhbmRzY2FwZSBvcmllbnRhdGlvbi4nLFxuICAgICAgICB0eXBlOiAnZGFuZ2VyJyxcbiAgICAgICAgZHVyYXRpb246IDMwMDAsXG4gICAgICB9KTtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICghcmVjb3JkaW5nTXVsdGlGb3JtYXRzU3VwcG9ydCAmJiByZWNvcmRpbmdWaWRlb1R5cGUgPT09ICdhbGwnKSB7XG4gICAgICBzaG93QWxlcnQ/Lih7XG4gICAgICAgIG1lc3NhZ2U6ICdZb3UgYXJlIG5vdCBhbGxvd2VkIHRvIHJlY29yZCBhbGwgZm9ybWF0cy4nLFxuICAgICAgICB0eXBlOiAnZGFuZ2VyJyxcbiAgICAgICAgZHVyYXRpb246IDMwMDAsXG4gICAgICB9KTtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChldmVudFR5cGUgIT09ICdicm9hZGNhc3QnKSB7XG4gICAgICBpZiAocmVjb3JkaW5nTWVkaWFPcHRpb25zID09PSAndmlkZW8nKSB7XG4gICAgICAgIGlmIChtZWV0aW5nRGlzcGxheVR5cGUgPT09ICdtZWRpYScpIHtcbiAgICAgICAgICBpZiAocmVjb3JkaW5nRGlzcGxheVR5cGUgPT09ICdhbGwnKSB7XG4gICAgICAgICAgICBzaG93QWxlcnQ/Lih7XG4gICAgICAgICAgICAgIG1lc3NhZ2U6XG4gICAgICAgICAgICAgICAgJ1JlY29yZGluZyBkaXNwbGF5IHR5cGUgY2FuIGJlIGVpdGhlciB2aWRlbywgdmlkZW8gb3B0aW1pemVkLCBvciBtZWRpYSB3aGVuIG1lZXRpbmcgZGlzcGxheSB0eXBlIGlzIG1lZGlhLicsXG4gICAgICAgICAgICAgIHR5cGU6ICdkYW5nZXInLFxuICAgICAgICAgICAgICBkdXJhdGlvbjogMzAwMCxcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICByZWNvcmRpbmdEaXNwbGF5VHlwZSA9IG1lZXRpbmdEaXNwbGF5VHlwZTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAobWVldGluZ0Rpc3BsYXlUeXBlID09PSAndmlkZW8nKSB7XG4gICAgICAgICAgaWYgKHJlY29yZGluZ0Rpc3BsYXlUeXBlID09PSAnYWxsJyB8fCByZWNvcmRpbmdEaXNwbGF5VHlwZSA9PT0gJ21lZGlhJykge1xuICAgICAgICAgICAgc2hvd0FsZXJ0Py4oe1xuICAgICAgICAgICAgICBtZXNzYWdlOlxuICAgICAgICAgICAgICAgICdSZWNvcmRpbmcgZGlzcGxheSB0eXBlIGNhbiBiZSBlaXRoZXIgdmlkZW8gb3IgdmlkZW8gb3B0aW1pemVkIHdoZW4gbWVldGluZyBkaXNwbGF5IHR5cGUgaXMgdmlkZW8uJyxcbiAgICAgICAgICAgICAgdHlwZTogJ2RhbmdlcicsXG4gICAgICAgICAgICAgIGR1cmF0aW9uOiAzMDAwLFxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIHJlY29yZGluZ0Rpc3BsYXlUeXBlID0gbWVldGluZ0Rpc3BsYXlUeXBlO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChtZWV0aW5nVmlkZW9PcHRpbWl6ZWQgJiYgIXJlY29yZGluZ1ZpZGVvT3B0aW1pemVkKSB7XG4gICAgICAgICAgICBzaG93QWxlcnQ/Lih7XG4gICAgICAgICAgICAgIG1lc3NhZ2U6XG4gICAgICAgICAgICAgICAgJ1JlY29yZGluZyBkaXNwbGF5IHR5cGUgY2FuIGJlIG9ubHkgdmlkZW8gb3B0aW1pemVkIHdoZW4gbWVldGluZyBkaXNwbGF5IHR5cGUgaXMgdmlkZW8gb3B0aW1pemVkLicsXG4gICAgICAgICAgICAgIHR5cGU6ICdkYW5nZXInLFxuICAgICAgICAgICAgICBkdXJhdGlvbjogMzAwMCxcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICByZWNvcmRpbmdWaWRlb09wdGltaXplZCA9IG1lZXRpbmdWaWRlb09wdGltaXplZDtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmIChyZWNvcmRpbmdEaXNwbGF5VHlwZSA9PT0gJ2FsbCcgfHwgcmVjb3JkaW5nRGlzcGxheVR5cGUgPT09ICdtZWRpYScpIHtcbiAgICAgICAgICAvLyBkbyBub3RoaW5nXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmVjb3JkaW5nRGlzcGxheVR5cGUgPSAnbWVkaWEnO1xuICAgICAgICB9XG4gICAgICAgIHJlY29yZGluZ1ZpZGVvT3B0aW1pemVkID0gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHJlY29yZGluZ0Rpc3BsYXlUeXBlID09PSAnYWxsJyAmJiAhcmVjb3JkaW5nQWxsUGFydGljaXBhbnRzRnVsbFJvb21TdXBwb3J0KSB7XG4gICAgICBzaG93QWxlcnQ/Lih7XG4gICAgICAgIG1lc3NhZ2U6ICdZb3UgY2FuIG9ubHkgcmVjb3JkIGFsbCBwYXJ0aWNpcGFudHMgd2l0aCBtZWRpYS4nLFxuICAgICAgICB0eXBlOiAnZGFuZ2VyJyxcbiAgICAgICAgZHVyYXRpb246IDMwMDAsXG4gICAgICB9KTtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICAvLyBDb25zdHJ1Y3QgbWFpblNwZWNzIGFuZCBkaXNwU3BlY3Mgb2JqZWN0cyBiYXNlZCBvbiB0aGUgc3RhdGUgdmFyaWFibGVzXG4gICAgY29uc3QgbWFpblNwZWNzOiBNYWluU3BlY3MgPSB7XG4gICAgICBtZWRpYU9wdGlvbnM6IHJlY29yZGluZ01lZGlhT3B0aW9ucyxcbiAgICAgIGF1ZGlvT3B0aW9uczogcmVjb3JkaW5nQXVkaW9PcHRpb25zLFxuICAgICAgdmlkZW9PcHRpb25zOiByZWNvcmRpbmdWaWRlb09wdGlvbnMsXG4gICAgICB2aWRlb1R5cGU6IHJlY29yZGluZ1ZpZGVvVHlwZSxcbiAgICAgIHZpZGVvT3B0aW1pemVkOiByZWNvcmRpbmdWaWRlb09wdGltaXplZCxcbiAgICAgIHJlY29yZGluZ0Rpc3BsYXlUeXBlOiByZWNvcmRpbmdEaXNwbGF5VHlwZSxcbiAgICAgIGFkZEhMUzogcmVjb3JkaW5nQWRkSExTLFxuICAgIH07XG5cbiAgICBjb25zdCBkaXNwU3BlY3M6IERpc3BTcGVjcyA9IHtcbiAgICAgIG5hbWVUYWdzOiByZWNvcmRpbmdOYW1lVGFncyxcbiAgICAgIGJhY2tncm91bmRDb2xvcjogcmVjb3JkaW5nQmFja2dyb3VuZENvbG9yLFxuICAgICAgbmFtZVRhZ3NDb2xvcjogcmVjb3JkaW5nTmFtZVRhZ3NDb2xvcixcbiAgICAgIG9yaWVudGF0aW9uVmlkZW86IHJlY29yZGluZ09yaWVudGF0aW9uVmlkZW8sXG4gICAgfTtcblxuICAgIGNvbnN0IHRleHRTcGVjczogVGV4dFNwZWNzID0ge1xuICAgICAgYWRkVGV4dDogcmVjb3JkaW5nQWRkVGV4dCxcbiAgICAgIGN1c3RvbVRleHQ6IHJlY29yZGluZ0N1c3RvbVRleHQsXG4gICAgICBjdXN0b21UZXh0UG9zaXRpb246IHJlY29yZGluZ0N1c3RvbVRleHRQb3NpdGlvbixcbiAgICAgIGN1c3RvbVRleHRDb2xvcjogcmVjb3JkaW5nQ3VzdG9tVGV4dENvbG9yLFxuICAgIH07XG5cbiAgICAvLyBDb25zdHJ1Y3QgdXNlclJlY29yZGluZ1BhcmFtcyBvYmplY3RcbiAgICBjb25zdCB1c2VyUmVjb3JkaW5nUGFyYW1zID0geyBtYWluU3BlY3MsIGRpc3BTcGVjcywgdGV4dFNwZWNzIH07XG4gICAgLy8gVXBkYXRlIHN0YXRlIHZhcmlhYmxlcyBiYXNlZCBvbiB0aGUgbG9naWNcbiAgICB1cGRhdGVVc2VyUmVjb3JkaW5nUGFyYW1zKHVzZXJSZWNvcmRpbmdQYXJhbXMpO1xuICAgIHVwZGF0ZUNvbmZpcm1lZFRvUmVjb3JkKHRydWUpO1xuICAgIHVwZGF0ZVJlY29yZGluZ0Rpc3BsYXlUeXBlKHNlbGVjdGVkUmVjb3JkT3B0aW9uKTtcbiAgICB1cGRhdGVSZWNvcmRpbmdWaWRlb09wdGltaXplZChyZWNvcmRpbmdWaWRlb09wdGltaXplZCk7XG4gICAgdXBkYXRlUmVjb3JkaW5nVmlkZW9QYXJ0aWNpcGFudHNGdWxsUm9vbVN1cHBvcnQocmVjb3JkaW5nVmlkZW9QYXJ0aWNpcGFudHNGdWxsUm9vbVN1cHBvcnQpO1xuICAgIHVwZGF0ZVJlY29yZGluZ0FsbFBhcnRpY2lwYW50c1N1cHBvcnQocmVjb3JkaW5nQWxsUGFydGljaXBhbnRzU3VwcG9ydCk7XG4gICAgdXBkYXRlUmVjb3JkaW5nVmlkZW9QYXJ0aWNpcGFudHNTdXBwb3J0KHJlY29yZGluZ1ZpZGVvUGFydGljaXBhbnRzU3VwcG9ydCk7XG4gICAgdXBkYXRlUmVjb3JkaW5nU3VwcG9ydEZvck90aGVyT3JpZW50YXRpb24ocmVjb3JkaW5nU3VwcG9ydEZvck90aGVyT3JpZW50YXRpb24pO1xuICAgIHVwZGF0ZVJlY29yZGluZ1ByZWZlcnJlZE9yaWVudGF0aW9uKHJlY29yZGluZ1ByZWZlcnJlZE9yaWVudGF0aW9uKTtcbiAgICB1cGRhdGVSZWNvcmRpbmdNdWx0aUZvcm1hdHNTdXBwb3J0KHJlY29yZGluZ011bHRpRm9ybWF0c1N1cHBvcnQpO1xuICB9O1xufVxuIl19
@@ -1,82 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export class LaunchRecording {
4
- /**
5
- * Launches the recording process based on various conditions and updates the UI accordingly.
6
- *
7
- * @param {Object} options - The options for launching the recording.
8
- * @param {Function} options.updateIsRecordingModalVisible - Function to update the visibility of the recording modal.
9
- * @param {boolean} options.isRecordingModalVisible - Indicates if the recording modal is currently visible.
10
- * @param {Function} options.showAlert - Function to show an alert message.
11
- * @param {boolean} options.stopLaunchRecord - Indicates if the recording launch should be stopped.
12
- * @param {boolean} options.canLaunchRecord - Indicates if the recording can be launched.
13
- * @param {boolean} options.recordingAudioSupport - Indicates if audio recording is supported.
14
- * @param {boolean} options.recordingVideoSupport - Indicates if video recording is supported.
15
- * @param {Function} options.updateCanRecord - Function to update the recording capability.
16
- * @param {Function} options.updateClearedToRecord - Function to update the cleared-to-record status.
17
- * @param {boolean} options.recordStarted - Indicates if the recording has started.
18
- * @param {boolean} options.recordPaused - Indicates if the recording is paused.
19
- * @param {boolean} options.localUIMode - Indicates if the local UI mode is active.
20
- *
21
- * @returns {void}
22
- */
23
- launchRecording({ updateIsRecordingModalVisible, isRecordingModalVisible, showAlert, stopLaunchRecord, canLaunchRecord, recordingAudioSupport, recordingVideoSupport, updateCanRecord, updateClearedToRecord, recordStarted, recordPaused, localUIMode, }) {
24
- // Check if recording is already launched
25
- if (!isRecordingModalVisible && stopLaunchRecord && !localUIMode) {
26
- showAlert?.({
27
- message: 'Recording has already ended or you are not allowed to record',
28
- type: 'danger',
29
- duration: 3000,
30
- });
31
- return;
32
- }
33
- // Check if recording initiation is allowed
34
- if (!isRecordingModalVisible && canLaunchRecord && !localUIMode) {
35
- // Check if both audio and video recording are not allowed
36
- if (!recordingAudioSupport && !recordingVideoSupport) {
37
- showAlert?.({
38
- message: 'You are not allowed to record',
39
- type: 'danger',
40
- duration: 3000,
41
- });
42
- return;
43
- }
44
- // update clearedToRecord to false
45
- updateClearedToRecord(false);
46
- // update canRecord to false
47
- updateCanRecord(false);
48
- }
49
- if (!isRecordingModalVisible && recordStarted) {
50
- if (!recordPaused) {
51
- showAlert?.({
52
- message: 'You can only re-configure recording after pausing it',
53
- type: 'danger',
54
- duration: 3000,
55
- });
56
- return;
57
- }
58
- }
59
- if (!isRecordingModalVisible &&
60
- !recordingAudioSupport &&
61
- !recordingVideoSupport &&
62
- !localUIMode) {
63
- showAlert?.({
64
- message: 'You are not allowed to record',
65
- type: 'danger',
66
- duration: 3000,
67
- });
68
- return;
69
- }
70
- // Update the visibility of the recording modal
71
- updateIsRecordingModalVisible(!isRecordingModalVisible);
72
- }
73
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: LaunchRecording, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
74
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: LaunchRecording, providedIn: 'root' });
75
- }
76
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: LaunchRecording, decorators: [{
77
- type: Injectable,
78
- args: [{
79
- providedIn: 'root',
80
- }]
81
- }] });
82
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF1bmNoLXJlY29yZGluZy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWVkaWFzZnUtYW5ndWxhci9zcmMvbGliL21ldGhvZHMvcmVjb3JkaW5nLW1ldGhvZHMvbGF1bmNoLXJlY29yZGluZy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBMEIzQyxNQUFNLE9BQU8sZUFBZTtJQUMxQjs7Ozs7Ozs7Ozs7Ozs7Ozs7O09Ba0JHO0lBRUgsZUFBZSxDQUFDLEVBQ2QsNkJBQTZCLEVBQzdCLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsZ0JBQWdCLEVBQ2hCLGVBQWUsRUFDZixxQkFBcUIsRUFDckIscUJBQXFCLEVBQ3JCLGVBQWUsRUFDZixxQkFBcUIsRUFDckIsYUFBYSxFQUNiLFlBQVksRUFDWixXQUFXLEdBQ1k7UUFDdkIseUNBQXlDO1FBQ3pDLElBQUksQ0FBQyx1QkFBdUIsSUFBSSxnQkFBZ0IsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ2pFLFNBQVMsRUFBRSxDQUFDO2dCQUNWLE9BQU8sRUFBRSw4REFBOEQ7Z0JBQ3ZFLElBQUksRUFBRSxRQUFRO2dCQUNkLFFBQVEsRUFBRSxJQUFJO2FBQ2YsQ0FBQyxDQUFDO1lBRUgsT0FBTztRQUNULENBQUM7UUFFRCwyQ0FBMkM7UUFDM0MsSUFBSSxDQUFDLHVCQUF1QixJQUFJLGVBQWUsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ2hFLDBEQUEwRDtZQUMxRCxJQUFJLENBQUMscUJBQXFCLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO2dCQUNyRCxTQUFTLEVBQUUsQ0FBQztvQkFDVixPQUFPLEVBQUUsK0JBQStCO29CQUN4QyxJQUFJLEVBQUUsUUFBUTtvQkFDZCxRQUFRLEVBQUUsSUFBSTtpQkFDZixDQUFDLENBQUM7Z0JBRUgsT0FBTztZQUNULENBQUM7WUFFRCxrQ0FBa0M7WUFDbEMscUJBQXFCLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDN0IsNEJBQTRCO1lBQzVCLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN6QixDQUFDO1FBRUQsSUFBSSxDQUFDLHVCQUF1QixJQUFJLGFBQWEsRUFBRSxDQUFDO1lBQzlDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztnQkFDbEIsU0FBUyxFQUFFLENBQUM7b0JBQ1YsT0FBTyxFQUFFLHNEQUFzRDtvQkFDL0QsSUFBSSxFQUFFLFFBQVE7b0JBQ2QsUUFBUSxFQUFFLElBQUk7aUJBQ2YsQ0FBQyxDQUFDO2dCQUVILE9BQU87WUFDVCxDQUFDO1FBQ0gsQ0FBQztRQUVELElBQ0UsQ0FBQyx1QkFBdUI7WUFDeEIsQ0FBQyxxQkFBcUI7WUFDdEIsQ0FBQyxxQkFBcUI7WUFDdEIsQ0FBQyxXQUFXLEVBQ1osQ0FBQztZQUNELFNBQVMsRUFBRSxDQUFDO2dCQUNWLE9BQU8sRUFBRSwrQkFBK0I7Z0JBQ3hDLElBQUksRUFBRSxRQUFRO2dCQUNkLFFBQVEsRUFBRSxJQUFJO2FBQ2YsQ0FBQyxDQUFDO1lBRUgsT0FBTztRQUNULENBQUM7UUFFRCwrQ0FBK0M7UUFDL0MsNkJBQTZCLENBQUMsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO0lBQzFELENBQUM7dUdBOUZVLGVBQWU7MkdBQWYsZUFBZSxjQUZkLE1BQU07OzJGQUVQLGVBQWU7a0JBSDNCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2hvd0FsZXJ0IH0gZnJvbSAnLi4vLi4vQHR5cGVzL3R5cGVzJztcblxuZXhwb3J0IGludGVyZmFjZSBMYXVuY2hSZWNvcmRpbmdPcHRpb25zIHtcbiAgdXBkYXRlSXNSZWNvcmRpbmdNb2RhbFZpc2libGU6ICh2aXNpYmxlOiBib29sZWFuKSA9PiB2b2lkO1xuICBpc1JlY29yZGluZ01vZGFsVmlzaWJsZTogYm9vbGVhbjtcbiAgc2hvd0FsZXJ0PzogU2hvd0FsZXJ0O1xuICBzdG9wTGF1bmNoUmVjb3JkOiBib29sZWFuO1xuICBjYW5MYXVuY2hSZWNvcmQ6IGJvb2xlYW47XG4gIHJlY29yZGluZ0F1ZGlvU3VwcG9ydDogYm9vbGVhbjtcbiAgcmVjb3JkaW5nVmlkZW9TdXBwb3J0OiBib29sZWFuO1xuICB1cGRhdGVDYW5SZWNvcmQ6IChjYW5SZWNvcmQ6IGJvb2xlYW4pID0+IHZvaWQ7XG4gIHVwZGF0ZUNsZWFyZWRUb1JlY29yZDogKGNsZWFyZWQ6IGJvb2xlYW4pID0+IHZvaWQ7XG4gIHJlY29yZFN0YXJ0ZWQ6IGJvb2xlYW47XG4gIHJlY29yZFBhdXNlZDogYm9vbGVhbjtcbiAgbG9jYWxVSU1vZGU6IGJvb2xlYW47XG5cbiAgW2tleTogc3RyaW5nXTogYW55O1xufVxuXG4vLyBFeHBvcnQgdGhlIHR5cGUgZGVmaW5pdGlvbiBmb3IgdGhlIGZ1bmN0aW9uXG5leHBvcnQgdHlwZSBMYXVuY2hSZWNvcmRpbmdUeXBlID0gKG9wdGlvbnM6IExhdW5jaFJlY29yZGluZ09wdGlvbnMpID0+IHZvaWQ7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBMYXVuY2hSZWNvcmRpbmcge1xuICAvKipcbiAgICogTGF1bmNoZXMgdGhlIHJlY29yZGluZyBwcm9jZXNzIGJhc2VkIG9uIHZhcmlvdXMgY29uZGl0aW9ucyBhbmQgdXBkYXRlcyB0aGUgVUkgYWNjb3JkaW5nbHkuXG4gICAqXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRpb25zIC0gVGhlIG9wdGlvbnMgZm9yIGxhdW5jaGluZyB0aGUgcmVjb3JkaW5nLlxuICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBvcHRpb25zLnVwZGF0ZUlzUmVjb3JkaW5nTW9kYWxWaXNpYmxlIC0gRnVuY3Rpb24gdG8gdXBkYXRlIHRoZSB2aXNpYmlsaXR5IG9mIHRoZSByZWNvcmRpbmcgbW9kYWwuXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gb3B0aW9ucy5pc1JlY29yZGluZ01vZGFsVmlzaWJsZSAtIEluZGljYXRlcyBpZiB0aGUgcmVjb3JkaW5nIG1vZGFsIGlzIGN1cnJlbnRseSB2aXNpYmxlLlxuICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBvcHRpb25zLnNob3dBbGVydCAtIEZ1bmN0aW9uIHRvIHNob3cgYW4gYWxlcnQgbWVzc2FnZS5cbiAgICogQHBhcmFtIHtib29sZWFufSBvcHRpb25zLnN0b3BMYXVuY2hSZWNvcmQgLSBJbmRpY2F0ZXMgaWYgdGhlIHJlY29yZGluZyBsYXVuY2ggc2hvdWxkIGJlIHN0b3BwZWQuXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gb3B0aW9ucy5jYW5MYXVuY2hSZWNvcmQgLSBJbmRpY2F0ZXMgaWYgdGhlIHJlY29yZGluZyBjYW4gYmUgbGF1bmNoZWQuXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gb3B0aW9ucy5yZWNvcmRpbmdBdWRpb1N1cHBvcnQgLSBJbmRpY2F0ZXMgaWYgYXVkaW8gcmVjb3JkaW5nIGlzIHN1cHBvcnRlZC5cbiAgICogQHBhcmFtIHtib29sZWFufSBvcHRpb25zLnJlY29yZGluZ1ZpZGVvU3VwcG9ydCAtIEluZGljYXRlcyBpZiB2aWRlbyByZWNvcmRpbmcgaXMgc3VwcG9ydGVkLlxuICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBvcHRpb25zLnVwZGF0ZUNhblJlY29yZCAtIEZ1bmN0aW9uIHRvIHVwZGF0ZSB0aGUgcmVjb3JkaW5nIGNhcGFiaWxpdHkuXG4gICAqIEBwYXJhbSB7RnVuY3Rpb259IG9wdGlvbnMudXBkYXRlQ2xlYXJlZFRvUmVjb3JkIC0gRnVuY3Rpb24gdG8gdXBkYXRlIHRoZSBjbGVhcmVkLXRvLXJlY29yZCBzdGF0dXMuXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gb3B0aW9ucy5yZWNvcmRTdGFydGVkIC0gSW5kaWNhdGVzIGlmIHRoZSByZWNvcmRpbmcgaGFzIHN0YXJ0ZWQuXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gb3B0aW9ucy5yZWNvcmRQYXVzZWQgLSBJbmRpY2F0ZXMgaWYgdGhlIHJlY29yZGluZyBpcyBwYXVzZWQuXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gb3B0aW9ucy5sb2NhbFVJTW9kZSAtIEluZGljYXRlcyBpZiB0aGUgbG9jYWwgVUkgbW9kZSBpcyBhY3RpdmUuXG4gICAqXG4gICAqIEByZXR1cm5zIHt2b2lkfVxuICAgKi9cblxuICBsYXVuY2hSZWNvcmRpbmcoe1xuICAgIHVwZGF0ZUlzUmVjb3JkaW5nTW9kYWxWaXNpYmxlLFxuICAgIGlzUmVjb3JkaW5nTW9kYWxWaXNpYmxlLFxuICAgIHNob3dBbGVydCxcbiAgICBzdG9wTGF1bmNoUmVjb3JkLFxuICAgIGNhbkxhdW5jaFJlY29yZCxcbiAgICByZWNvcmRpbmdBdWRpb1N1cHBvcnQsXG4gICAgcmVjb3JkaW5nVmlkZW9TdXBwb3J0LFxuICAgIHVwZGF0ZUNhblJlY29yZCxcbiAgICB1cGRhdGVDbGVhcmVkVG9SZWNvcmQsXG4gICAgcmVjb3JkU3RhcnRlZCxcbiAgICByZWNvcmRQYXVzZWQsXG4gICAgbG9jYWxVSU1vZGUsXG4gIH06IExhdW5jaFJlY29yZGluZ09wdGlvbnMpOiB2b2lkIHtcbiAgICAvLyBDaGVjayBpZiByZWNvcmRpbmcgaXMgYWxyZWFkeSBsYXVuY2hlZFxuICAgIGlmICghaXNSZWNvcmRpbmdNb2RhbFZpc2libGUgJiYgc3RvcExhdW5jaFJlY29yZCAmJiAhbG9jYWxVSU1vZGUpIHtcbiAgICAgIHNob3dBbGVydD8uKHtcbiAgICAgICAgbWVzc2FnZTogJ1JlY29yZGluZyBoYXMgYWxyZWFkeSBlbmRlZCBvciB5b3UgYXJlIG5vdCBhbGxvd2VkIHRvIHJlY29yZCcsXG4gICAgICAgIHR5cGU6ICdkYW5nZXInLFxuICAgICAgICBkdXJhdGlvbjogMzAwMCxcbiAgICAgIH0pO1xuXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gQ2hlY2sgaWYgcmVjb3JkaW5nIGluaXRpYXRpb24gaXMgYWxsb3dlZFxuICAgIGlmICghaXNSZWNvcmRpbmdNb2RhbFZpc2libGUgJiYgY2FuTGF1bmNoUmVjb3JkICYmICFsb2NhbFVJTW9kZSkge1xuICAgICAgLy8gQ2hlY2sgaWYgYm90aCBhdWRpbyBhbmQgdmlkZW8gcmVjb3JkaW5nIGFyZSBub3QgYWxsb3dlZFxuICAgICAgaWYgKCFyZWNvcmRpbmdBdWRpb1N1cHBvcnQgJiYgIXJlY29yZGluZ1ZpZGVvU3VwcG9ydCkge1xuICAgICAgICBzaG93QWxlcnQ/Lih7XG4gICAgICAgICAgbWVzc2FnZTogJ1lvdSBhcmUgbm90IGFsbG93ZWQgdG8gcmVjb3JkJyxcbiAgICAgICAgICB0eXBlOiAnZGFuZ2VyJyxcbiAgICAgICAgICBkdXJhdGlvbjogMzAwMCxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICAvLyB1cGRhdGUgY2xlYXJlZFRvUmVjb3JkIHRvIGZhbHNlXG4gICAgICB1cGRhdGVDbGVhcmVkVG9SZWNvcmQoZmFsc2UpO1xuICAgICAgLy8gdXBkYXRlIGNhblJlY29yZCB0byBmYWxzZVxuICAgICAgdXBkYXRlQ2FuUmVjb3JkKGZhbHNlKTtcbiAgICB9XG5cbiAgICBpZiAoIWlzUmVjb3JkaW5nTW9kYWxWaXNpYmxlICYmIHJlY29yZFN0YXJ0ZWQpIHtcbiAgICAgIGlmICghcmVjb3JkUGF1c2VkKSB7XG4gICAgICAgIHNob3dBbGVydD8uKHtcbiAgICAgICAgICBtZXNzYWdlOiAnWW91IGNhbiBvbmx5IHJlLWNvbmZpZ3VyZSByZWNvcmRpbmcgYWZ0ZXIgcGF1c2luZyBpdCcsXG4gICAgICAgICAgdHlwZTogJ2RhbmdlcicsXG4gICAgICAgICAgZHVyYXRpb246IDMwMDAsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoXG4gICAgICAhaXNSZWNvcmRpbmdNb2RhbFZpc2libGUgJiZcbiAgICAgICFyZWNvcmRpbmdBdWRpb1N1cHBvcnQgJiZcbiAgICAgICFyZWNvcmRpbmdWaWRlb1N1cHBvcnQgJiZcbiAgICAgICFsb2NhbFVJTW9kZVxuICAgICkge1xuICAgICAgc2hvd0FsZXJ0Py4oe1xuICAgICAgICBtZXNzYWdlOiAnWW91IGFyZSBub3QgYWxsb3dlZCB0byByZWNvcmQnLFxuICAgICAgICB0eXBlOiAnZGFuZ2VyJyxcbiAgICAgICAgZHVyYXRpb246IDMwMDAsXG4gICAgICB9KTtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIFVwZGF0ZSB0aGUgdmlzaWJpbGl0eSBvZiB0aGUgcmVjb3JkaW5nIG1vZGFsXG4gICAgdXBkYXRlSXNSZWNvcmRpbmdNb2RhbFZpc2libGUoIWlzUmVjb3JkaW5nTW9kYWxWaXNpYmxlKTtcbiAgfVxufVxuIl19
@@ -1,40 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export class RecordPauseTimer {
4
- /**
5
- * Controls the pause and resume functionality of a recording timer.
6
- *
7
- * @param {Object} options - The options for controlling the timer.
8
- * @param {boolean} [options.stop=false] - Indicates whether to stop the timer.
9
- * @param {Object} options.parameters - The parameters for the timer control.
10
- * @param {boolean} options.parameters.isTimerRunning - Indicates if the timer is currently running.
11
- * @param {boolean} options.parameters.canPauseResume - Indicates if the timer can be paused or resumed.
12
- * @param {Function} [options.parameters.showAlert] - Optional function to show an alert message.
13
- * @returns {boolean} - Returns true if the timer can be paused or resumed, otherwise false.
14
- */
15
- recordPauseTimer = ({ stop = false, isTimerRunning, canPauseResume, showAlert, }) => {
16
- // Ensure the timer is running and pause/resume actions are allowed
17
- if (isTimerRunning && canPauseResume) {
18
- return true;
19
- }
20
- else {
21
- const message = stop
22
- ? 'Can only stop after 15 seconds of starting or pausing or resuming recording'
23
- : 'Can only pause or resume after 15 seconds of starting or pausing or resuming recording';
24
- showAlert?.({
25
- message,
26
- type: 'danger',
27
- });
28
- return false;
29
- }
30
- };
31
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: RecordPauseTimer, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
32
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: RecordPauseTimer, providedIn: 'root' });
33
- }
34
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: RecordPauseTimer, decorators: [{
35
- type: Injectable,
36
- args: [{
37
- providedIn: 'root',
38
- }]
39
- }] });
40
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjb3JkLXBhdXNlLXRpbWVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tZWRpYXNmdS1hbmd1bGFyL3NyYy9saWIvbWV0aG9kcy9yZWNvcmRpbmctbWV0aG9kcy9yZWNvcmQtcGF1c2UtdGltZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQWUzQyxNQUFNLE9BQU8sZ0JBQWdCO0lBQzNCOzs7Ozs7Ozs7O09BVUc7SUFFSCxnQkFBZ0IsR0FBRyxDQUFDLEVBQ2xCLElBQUksR0FBRyxLQUFLLEVBQ1osY0FBYyxFQUNkLGNBQWMsRUFDZCxTQUFTLEdBQ2UsRUFBVyxFQUFFO1FBQ3JDLG1FQUFtRTtRQUNuRSxJQUFJLGNBQWMsSUFBSSxjQUFjLEVBQUUsQ0FBQztZQUNyQyxPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7YUFBTSxDQUFDO1lBQ04sTUFBTSxPQUFPLEdBQUcsSUFBSTtnQkFDbEIsQ0FBQyxDQUFDLDZFQUE2RTtnQkFDL0UsQ0FBQyxDQUFDLHdGQUF3RixDQUFDO1lBQzdGLFNBQVMsRUFBRSxDQUFDO2dCQUNWLE9BQU87Z0JBQ1AsSUFBSSxFQUFFLFFBQVE7YUFDZixDQUFDLENBQUM7WUFDSCxPQUFPLEtBQUssQ0FBQztRQUNmLENBQUM7SUFDSCxDQUFDLENBQUM7dUdBaENTLGdCQUFnQjsyR0FBaEIsZ0JBQWdCLGNBRmYsTUFBTTs7MkZBRVAsZ0JBQWdCO2tCQUg1QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNob3dBbGVydCB9IGZyb20gJy4uLy4uL0B0eXBlcy90eXBlcyc7XG5leHBvcnQgaW50ZXJmYWNlIFJlY29yZFBhdXNlVGltZXJPcHRpb25zIHtcbiAgc3RvcD86IGJvb2xlYW47XG4gIGlzVGltZXJSdW5uaW5nOiBib29sZWFuO1xuICBjYW5QYXVzZVJlc3VtZTogYm9vbGVhbjtcbiAgc2hvd0FsZXJ0PzogU2hvd0FsZXJ0O1xufVxuXG4vLyBleHBvcnQgdGhlIHR5cGUgZGVmaW5pdGlvbiBmb3IgdGhlIGZ1bmN0aW9uXG5leHBvcnQgdHlwZSBSZWNvcmRQYXVzZVRpbWVyVHlwZSA9IChvcHRpb25zOiBSZWNvcmRQYXVzZVRpbWVyT3B0aW9ucykgPT4gYm9vbGVhbjtcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFJlY29yZFBhdXNlVGltZXIge1xuICAvKipcbiAgICogQ29udHJvbHMgdGhlIHBhdXNlIGFuZCByZXN1bWUgZnVuY3Rpb25hbGl0eSBvZiBhIHJlY29yZGluZyB0aW1lci5cbiAgICpcbiAgICogQHBhcmFtIHtPYmplY3R9IG9wdGlvbnMgLSBUaGUgb3B0aW9ucyBmb3IgY29udHJvbGxpbmcgdGhlIHRpbWVyLlxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRpb25zLnN0b3A9ZmFsc2VdIC0gSW5kaWNhdGVzIHdoZXRoZXIgdG8gc3RvcCB0aGUgdGltZXIuXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRpb25zLnBhcmFtZXRlcnMgLSBUaGUgcGFyYW1ldGVycyBmb3IgdGhlIHRpbWVyIGNvbnRyb2wuXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gb3B0aW9ucy5wYXJhbWV0ZXJzLmlzVGltZXJSdW5uaW5nIC0gSW5kaWNhdGVzIGlmIHRoZSB0aW1lciBpcyBjdXJyZW50bHkgcnVubmluZy5cbiAgICogQHBhcmFtIHtib29sZWFufSBvcHRpb25zLnBhcmFtZXRlcnMuY2FuUGF1c2VSZXN1bWUgLSBJbmRpY2F0ZXMgaWYgdGhlIHRpbWVyIGNhbiBiZSBwYXVzZWQgb3IgcmVzdW1lZC5cbiAgICogQHBhcmFtIHtGdW5jdGlvbn0gW29wdGlvbnMucGFyYW1ldGVycy5zaG93QWxlcnRdIC0gT3B0aW9uYWwgZnVuY3Rpb24gdG8gc2hvdyBhbiBhbGVydCBtZXNzYWdlLlxuICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gLSBSZXR1cm5zIHRydWUgaWYgdGhlIHRpbWVyIGNhbiBiZSBwYXVzZWQgb3IgcmVzdW1lZCwgb3RoZXJ3aXNlIGZhbHNlLlxuICAgKi9cblxuICByZWNvcmRQYXVzZVRpbWVyID0gKHtcbiAgICBzdG9wID0gZmFsc2UsXG4gICAgaXNUaW1lclJ1bm5pbmcsXG4gICAgY2FuUGF1c2VSZXN1bWUsXG4gICAgc2hvd0FsZXJ0LFxuICB9OiBSZWNvcmRQYXVzZVRpbWVyT3B0aW9ucyk6IGJvb2xlYW4gPT4ge1xuICAgIC8vIEVuc3VyZSB0aGUgdGltZXIgaXMgcnVubmluZyBhbmQgcGF1c2UvcmVzdW1lIGFjdGlvbnMgYXJlIGFsbG93ZWRcbiAgICBpZiAoaXNUaW1lclJ1bm5pbmcgJiYgY2FuUGF1c2VSZXN1bWUpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBtZXNzYWdlID0gc3RvcFxuICAgICAgICA/ICdDYW4gb25seSBzdG9wIGFmdGVyIDE1IHNlY29uZHMgb2Ygc3RhcnRpbmcgb3IgcGF1c2luZyBvciByZXN1bWluZyByZWNvcmRpbmcnXG4gICAgICAgIDogJ0NhbiBvbmx5IHBhdXNlIG9yIHJlc3VtZSBhZnRlciAxNSBzZWNvbmRzIG9mIHN0YXJ0aW5nIG9yIHBhdXNpbmcgb3IgcmVzdW1pbmcgcmVjb3JkaW5nJztcbiAgICAgIHNob3dBbGVydD8uKHtcbiAgICAgICAgbWVzc2FnZSxcbiAgICAgICAgdHlwZTogJ2RhbmdlcicsXG4gICAgICB9KTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH07XG59XG4iXX0=
@@ -1,86 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- import * as i1 from "./record-update-timer.service";
4
- export class RecordResumeTimer {
5
- RecordUpdateTimerService;
6
- constructor(RecordUpdateTimerService) {
7
- this.RecordUpdateTimerService = RecordUpdateTimerService;
8
- }
9
- /**
10
- * Resumes the recording timer if it is not already running and can be paused/resumed.
11
- *
12
- * @param {RecordResumeTimerOptions} options - The options for resuming the recording timer.
13
- * @param {Object} options.parameters - The parameters for the recording timer.
14
- * @param {Function} options.parameters.getUpdatedAllParams - Function to get updated parameters.
15
- * @param {boolean} options.parameters.isTimerRunning - Indicates if the timer is currently running.
16
- * @param {boolean} options.parameters.canPauseResume - Indicates if the timer can be paused/resumed.
17
- * @param {number} options.parameters.recordElapsedTime - The elapsed recording time in seconds.
18
- * @param {number} options.parameters.recordStartTime - The start time of the recording.
19
- * @param {number | null} options.parameters.recordTimerInterval - The interval ID for the recording timer.
20
- * @param {Function} options.parameters.showAlert - Function to show an alert message.
21
- * @param {Function} options.parameters.updateRecordStartTime - Function to update the recording start time.
22
- * @param {Function} options.parameters.updateRecordTimerInterval - Function to update the recording timer interval.
23
- * @param {Function} options.parameters.updateIsTimerRunning - Function to update the timer running status.
24
- * @param {Function} options.parameters.updateCanPauseResume - Function to update the pause/resume status.
25
- *
26
- * @returns {Promise<boolean>} - Returns a promise that resolves to true if the timer was successfully resumed, otherwise false.
27
- */
28
- recordResumeTimer = async ({ parameters }) => {
29
- let { getUpdatedAllParams } = parameters;
30
- parameters = getUpdatedAllParams();
31
- let { isTimerRunning, canPauseResume, recordElapsedTime, recordStartTime, recordTimerInterval, showAlert, updateRecordStartTime, updateRecordTimerInterval, updateIsTimerRunning, updateCanPauseResume,
32
- //mediasfu Functions
33
- // recordUpdateTimer,
34
- } = parameters;
35
- if (!isTimerRunning && canPauseResume) {
36
- recordStartTime = new Date().getTime() - recordElapsedTime * 1000; // Calculate the starting time based on elapsed time
37
- updateRecordStartTime(recordStartTime);
38
- recordTimerInterval = setInterval(() => {
39
- // Update the timer every second (1000 milliseconds)
40
- this.RecordUpdateTimerService.recordUpdateTimer({
41
- recordElapsedTime: recordElapsedTime,
42
- recordStartTime: recordStartTime,
43
- updateRecordElapsedTime: parameters['updateRecordElapsedTime'],
44
- updateRecordingProgressTime: parameters['updateRecordingProgressTime'],
45
- });
46
- parameters = getUpdatedAllParams();
47
- // Check if recording is paused or stopped, and close the interval if needed
48
- if (parameters['recordPaused'] ||
49
- parameters['recordStopped'] ||
50
- parameters['roomName'] == '' ||
51
- parameters['roomName'] == null) {
52
- if (recordTimerInterval != null) {
53
- clearInterval(recordTimerInterval);
54
- }
55
- updateRecordTimerInterval(null);
56
- isTimerRunning = false;
57
- updateIsTimerRunning(isTimerRunning);
58
- canPauseResume = false;
59
- updateCanPauseResume(canPauseResume);
60
- }
61
- }, 1000);
62
- updateRecordTimerInterval(recordTimerInterval);
63
- isTimerRunning = true;
64
- updateIsTimerRunning(isTimerRunning);
65
- canPauseResume = false; // Disable pause/resume actions until paused again
66
- updateCanPauseResume(canPauseResume);
67
- return true;
68
- }
69
- else {
70
- showAlert?.({
71
- type: 'danger',
72
- message: 'Can only pause or resume after 15 seconds of starting or pausing or resuming recording',
73
- });
74
- return false;
75
- }
76
- };
77
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: RecordResumeTimer, deps: [{ token: i1.RecordUpdateTimer }], target: i0.ɵɵFactoryTarget.Injectable });
78
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: RecordResumeTimer, providedIn: 'root' });
79
- }
80
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: RecordResumeTimer, decorators: [{
81
- type: Injectable,
82
- args: [{
83
- providedIn: 'root',
84
- }]
85
- }], ctorParameters: () => [{ type: i1.RecordUpdateTimer }] });
86
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjb3JkLXJlc3VtZS10aW1lci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWVkaWFzZnUtYW5ndWxhci9zcmMvbGliL21ldGhvZHMvcmVjb3JkaW5nLW1ldGhvZHMvcmVjb3JkLXJlc3VtZS10aW1lci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQTZCM0MsTUFBTSxPQUFPLGlCQUFpQjtJQUNSO0lBQXBCLFlBQW9CLHdCQUEyQztRQUEzQyw2QkFBd0IsR0FBeEIsd0JBQXdCLENBQW1CO0lBQUcsQ0FBQztJQUVuRTs7Ozs7Ozs7Ozs7Ozs7Ozs7O09Ba0JHO0lBRUgsaUJBQWlCLEdBQUcsS0FBSyxFQUFFLEVBQUUsVUFBVSxFQUE0QixFQUFvQixFQUFFO1FBQ3ZGLElBQUksRUFBRSxtQkFBbUIsRUFBRSxHQUFHLFVBQVUsQ0FBQztRQUN6QyxVQUFVLEdBQUcsbUJBQW1CLEVBQUUsQ0FBQztRQUVuQyxJQUFJLEVBQ0YsY0FBYyxFQUNkLGNBQWMsRUFDZCxpQkFBaUIsRUFDakIsZUFBZSxFQUNmLG1CQUFtQixFQUNuQixTQUFTLEVBQ1QscUJBQXFCLEVBQ3JCLHlCQUF5QixFQUN6QixvQkFBb0IsRUFDcEIsb0JBQW9CO1FBRXBCLG9CQUFvQjtRQUNwQixxQkFBcUI7VUFDdEIsR0FBRyxVQUFVLENBQUM7UUFFZixJQUFJLENBQUMsY0FBYyxJQUFJLGNBQWMsRUFBRSxDQUFDO1lBQ3RDLGVBQWUsR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDLE9BQU8sRUFBRSxHQUFHLGlCQUFpQixHQUFHLElBQUksQ0FBQyxDQUFDLG9EQUFvRDtZQUN2SCxxQkFBcUIsQ0FBQyxlQUFlLENBQUMsQ0FBQztZQUN2QyxtQkFBbUIsR0FBRyxXQUFXLENBQUMsR0FBRyxFQUFFO2dCQUNyQyxvREFBb0Q7Z0JBQ3BELElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxpQkFBaUIsQ0FBQztvQkFDOUMsaUJBQWlCLEVBQUUsaUJBQWlCO29CQUNwQyxlQUFlLEVBQUUsZUFBZTtvQkFDaEMsdUJBQXVCLEVBQUUsVUFBVSxDQUFDLHlCQUF5QixDQUFDO29CQUM5RCwyQkFBMkIsRUFBRSxVQUFVLENBQUMsNkJBQTZCLENBQUM7aUJBQ3ZFLENBQUMsQ0FBQztnQkFFSCxVQUFVLEdBQUcsbUJBQW1CLEVBQUUsQ0FBQztnQkFFbkMsNEVBQTRFO2dCQUM1RSxJQUNFLFVBQVUsQ0FBQyxjQUFjLENBQUM7b0JBQzFCLFVBQVUsQ0FBQyxlQUFlLENBQUM7b0JBQzNCLFVBQVUsQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFO29CQUM1QixVQUFVLENBQUMsVUFBVSxDQUFDLElBQUksSUFBSSxFQUM5QixDQUFDO29CQUNELElBQUksbUJBQW1CLElBQUksSUFBSSxFQUFFLENBQUM7d0JBQ2hDLGFBQWEsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO29CQUNyQyxDQUFDO29CQUNELHlCQUF5QixDQUFDLElBQUksQ0FBQyxDQUFDO29CQUNoQyxjQUFjLEdBQUcsS0FBSyxDQUFDO29CQUN2QixvQkFBb0IsQ0FBQyxjQUFjLENBQUMsQ0FBQztvQkFDckMsY0FBYyxHQUFHLEtBQUssQ0FBQztvQkFDdkIsb0JBQW9CLENBQUMsY0FBYyxDQUFDLENBQUM7Z0JBQ3ZDLENBQUM7WUFDSCxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDVCx5QkFBeUIsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1lBQy9DLGNBQWMsR0FBRyxJQUFJLENBQUM7WUFDdEIsb0JBQW9CLENBQUMsY0FBYyxDQUFDLENBQUM7WUFDckMsY0FBYyxHQUFHLEtBQUssQ0FBQyxDQUFDLGtEQUFrRDtZQUMxRSxvQkFBb0IsQ0FBQyxjQUFjLENBQUMsQ0FBQztZQUNyQyxPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7YUFBTSxDQUFDO1lBQ04sU0FBUyxFQUFFLENBQUM7Z0JBQ1YsSUFBSSxFQUFFLFFBQVE7Z0JBQ2QsT0FBTyxFQUNMLHdGQUF3RjthQUMzRixDQUFDLENBQUM7WUFDSCxPQUFPLEtBQUssQ0FBQztRQUNmLENBQUM7SUFDSCxDQUFDLENBQUM7dUdBeEZTLGlCQUFpQjsyR0FBakIsaUJBQWlCLGNBRmhCLE1BQU07OzJGQUVQLGlCQUFpQjtrQkFIN0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTaG93QWxlcnQgfSBmcm9tICcuLi8uLi9AdHlwZXMvdHlwZXMnO1xuaW1wb3J0IHsgUmVjb3JkVXBkYXRlVGltZXIgfSBmcm9tICcuL3JlY29yZC11cGRhdGUtdGltZXIuc2VydmljZSc7XG5leHBvcnQgaW50ZXJmYWNlIFJlY29yZFJlc3VtZVRpbWVyUGFyYW1ldGVycyB7XG4gIGlzVGltZXJSdW5uaW5nOiBib29sZWFuO1xuICBjYW5QYXVzZVJlc3VtZTogYm9vbGVhbjtcbiAgcmVjb3JkRWxhcHNlZFRpbWU6IG51bWJlcjtcbiAgcmVjb3JkU3RhcnRUaW1lOiBudW1iZXI7XG4gIHJlY29yZFRpbWVySW50ZXJ2YWw/OiBOb2RlSlMuVGltZW91dCB8IG51bGw7XG4gIHNob3dBbGVydD86IFNob3dBbGVydDtcbiAgdXBkYXRlUmVjb3JkU3RhcnRUaW1lOiAodGltZTogbnVtYmVyKSA9PiB2b2lkO1xuICB1cGRhdGVSZWNvcmRUaW1lckludGVydmFsOiAoaW50ZXJ2YWw6IE5vZGVKUy5UaW1lb3V0IHwgbnVsbCkgPT4gdm9pZDtcbiAgdXBkYXRlSXNUaW1lclJ1bm5pbmc6IChpc1J1bm5pbmc6IGJvb2xlYW4pID0+IHZvaWQ7XG4gIHVwZGF0ZUNhblBhdXNlUmVzdW1lOiAoY2FuUGF1c2U6IGJvb2xlYW4pID0+IHZvaWQ7XG5cbiAgZ2V0VXBkYXRlZEFsbFBhcmFtczogKCkgPT4gUmVjb3JkUmVzdW1lVGltZXJQYXJhbWV0ZXJzO1xuICBba2V5OiBzdHJpbmddOiBhbnk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVjb3JkUmVzdW1lVGltZXJPcHRpb25zIHtcbiAgcGFyYW1ldGVyczogUmVjb3JkUmVzdW1lVGltZXJQYXJhbWV0ZXJzO1xufVxuXG4vLyBFeHBvcnQgdGhlIHR5cGUgZGVmaW5pdGlvbiBmb3IgdGhlIGZ1bmN0aW9uXG5leHBvcnQgdHlwZSBSZWNvcmRSZXN1bWVUaW1lclR5cGUgPSAob3B0aW9uczogUmVjb3JkUmVzdW1lVGltZXJPcHRpb25zKSA9PiBQcm9taXNlPGJvb2xlYW4+O1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgUmVjb3JkUmVzdW1lVGltZXIge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIFJlY29yZFVwZGF0ZVRpbWVyU2VydmljZTogUmVjb3JkVXBkYXRlVGltZXIpIHt9XG5cbiAgLyoqXG4gICAqIFJlc3VtZXMgdGhlIHJlY29yZGluZyB0aW1lciBpZiBpdCBpcyBub3QgYWxyZWFkeSBydW5uaW5nIGFuZCBjYW4gYmUgcGF1c2VkL3Jlc3VtZWQuXG4gICAqXG4gICAqIEBwYXJhbSB7UmVjb3JkUmVzdW1lVGltZXJPcHRpb25zfSBvcHRpb25zIC0gVGhlIG9wdGlvbnMgZm9yIHJlc3VtaW5nIHRoZSByZWNvcmRpbmcgdGltZXIuXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRpb25zLnBhcmFtZXRlcnMgLSBUaGUgcGFyYW1ldGVycyBmb3IgdGhlIHJlY29yZGluZyB0aW1lci5cbiAgICogQHBhcmFtIHtGdW5jdGlvbn0gb3B0aW9ucy5wYXJhbWV0ZXJzLmdldFVwZGF0ZWRBbGxQYXJhbXMgLSBGdW5jdGlvbiB0byBnZXQgdXBkYXRlZCBwYXJhbWV0ZXJzLlxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IG9wdGlvbnMucGFyYW1ldGVycy5pc1RpbWVyUnVubmluZyAtIEluZGljYXRlcyBpZiB0aGUgdGltZXIgaXMgY3VycmVudGx5IHJ1bm5pbmcuXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gb3B0aW9ucy5wYXJhbWV0ZXJzLmNhblBhdXNlUmVzdW1lIC0gSW5kaWNhdGVzIGlmIHRoZSB0aW1lciBjYW4gYmUgcGF1c2VkL3Jlc3VtZWQuXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBvcHRpb25zLnBhcmFtZXRlcnMucmVjb3JkRWxhcHNlZFRpbWUgLSBUaGUgZWxhcHNlZCByZWNvcmRpbmcgdGltZSBpbiBzZWNvbmRzLlxuICAgKiBAcGFyYW0ge251bWJlcn0gb3B0aW9ucy5wYXJhbWV0ZXJzLnJlY29yZFN0YXJ0VGltZSAtIFRoZSBzdGFydCB0aW1lIG9mIHRoZSByZWNvcmRpbmcuXG4gICAqIEBwYXJhbSB7bnVtYmVyIHwgbnVsbH0gb3B0aW9ucy5wYXJhbWV0ZXJzLnJlY29yZFRpbWVySW50ZXJ2YWwgLSBUaGUgaW50ZXJ2YWwgSUQgZm9yIHRoZSByZWNvcmRpbmcgdGltZXIuXG4gICAqIEBwYXJhbSB7RnVuY3Rpb259IG9wdGlvbnMucGFyYW1ldGVycy5zaG93QWxlcnQgLSBGdW5jdGlvbiB0byBzaG93IGFuIGFsZXJ0IG1lc3NhZ2UuXG4gICAqIEBwYXJhbSB7RnVuY3Rpb259IG9wdGlvbnMucGFyYW1ldGVycy51cGRhdGVSZWNvcmRTdGFydFRpbWUgLSBGdW5jdGlvbiB0byB1cGRhdGUgdGhlIHJlY29yZGluZyBzdGFydCB0aW1lLlxuICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBvcHRpb25zLnBhcmFtZXRlcnMudXBkYXRlUmVjb3JkVGltZXJJbnRlcnZhbCAtIEZ1bmN0aW9uIHRvIHVwZGF0ZSB0aGUgcmVjb3JkaW5nIHRpbWVyIGludGVydmFsLlxuICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBvcHRpb25zLnBhcmFtZXRlcnMudXBkYXRlSXNUaW1lclJ1bm5pbmcgLSBGdW5jdGlvbiB0byB1cGRhdGUgdGhlIHRpbWVyIHJ1bm5pbmcgc3RhdHVzLlxuICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBvcHRpb25zLnBhcmFtZXRlcnMudXBkYXRlQ2FuUGF1c2VSZXN1bWUgLSBGdW5jdGlvbiB0byB1cGRhdGUgdGhlIHBhdXNlL3Jlc3VtZSBzdGF0dXMuXG4gICAqXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPGJvb2xlYW4+fSAtIFJldHVybnMgYSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgdG8gdHJ1ZSBpZiB0aGUgdGltZXIgd2FzIHN1Y2Nlc3NmdWxseSByZXN1bWVkLCBvdGhlcndpc2UgZmFsc2UuXG4gICAqL1xuXG4gIHJlY29yZFJlc3VtZVRpbWVyID0gYXN5bmMgKHsgcGFyYW1ldGVycyB9OiBSZWNvcmRSZXN1bWVUaW1lck9wdGlvbnMpOiBQcm9taXNlPGJvb2xlYW4+ID0+IHtcbiAgICBsZXQgeyBnZXRVcGRhdGVkQWxsUGFyYW1zIH0gPSBwYXJhbWV0ZXJzO1xuICAgIHBhcmFtZXRlcnMgPSBnZXRVcGRhdGVkQWxsUGFyYW1zKCk7XG5cbiAgICBsZXQge1xuICAgICAgaXNUaW1lclJ1bm5pbmcsXG4gICAgICBjYW5QYXVzZVJlc3VtZSxcbiAgICAgIHJlY29yZEVsYXBzZWRUaW1lLFxuICAgICAgcmVjb3JkU3RhcnRUaW1lLFxuICAgICAgcmVjb3JkVGltZXJJbnRlcnZhbCxcbiAgICAgIHNob3dBbGVydCxcbiAgICAgIHVwZGF0ZVJlY29yZFN0YXJ0VGltZSxcbiAgICAgIHVwZGF0ZVJlY29yZFRpbWVySW50ZXJ2YWwsXG4gICAgICB1cGRhdGVJc1RpbWVyUnVubmluZyxcbiAgICAgIHVwZGF0ZUNhblBhdXNlUmVzdW1lLFxuXG4gICAgICAvL21lZGlhc2Z1IEZ1bmN0aW9uc1xuICAgICAgLy8gcmVjb3JkVXBkYXRlVGltZXIsXG4gICAgfSA9IHBhcmFtZXRlcnM7XG5cbiAgICBpZiAoIWlzVGltZXJSdW5uaW5nICYmIGNhblBhdXNlUmVzdW1lKSB7XG4gICAgICByZWNvcmRTdGFydFRpbWUgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAtIHJlY29yZEVsYXBzZWRUaW1lICogMTAwMDsgLy8gQ2FsY3VsYXRlIHRoZSBzdGFydGluZyB0aW1lIGJhc2VkIG9uIGVsYXBzZWQgdGltZVxuICAgICAgdXBkYXRlUmVjb3JkU3RhcnRUaW1lKHJlY29yZFN0YXJ0VGltZSk7XG4gICAgICByZWNvcmRUaW1lckludGVydmFsID0gc2V0SW50ZXJ2YWwoKCkgPT4ge1xuICAgICAgICAvLyBVcGRhdGUgdGhlIHRpbWVyIGV2ZXJ5IHNlY29uZCAoMTAwMCBtaWxsaXNlY29uZHMpXG4gICAgICAgIHRoaXMuUmVjb3JkVXBkYXRlVGltZXJTZXJ2aWNlLnJlY29yZFVwZGF0ZVRpbWVyKHtcbiAgICAgICAgICByZWNvcmRFbGFwc2VkVGltZTogcmVjb3JkRWxhcHNlZFRpbWUsXG4gICAgICAgICAgcmVjb3JkU3RhcnRUaW1lOiByZWNvcmRTdGFydFRpbWUsXG4gICAgICAgICAgdXBkYXRlUmVjb3JkRWxhcHNlZFRpbWU6IHBhcmFtZXRlcnNbJ3VwZGF0ZVJlY29yZEVsYXBzZWRUaW1lJ10sXG4gICAgICAgICAgdXBkYXRlUmVjb3JkaW5nUHJvZ3Jlc3NUaW1lOiBwYXJhbWV0ZXJzWyd1cGRhdGVSZWNvcmRpbmdQcm9ncmVzc1RpbWUnXSxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcGFyYW1ldGVycyA9IGdldFVwZGF0ZWRBbGxQYXJhbXMoKTtcblxuICAgICAgICAvLyBDaGVjayBpZiByZWNvcmRpbmcgaXMgcGF1c2VkIG9yIHN0b3BwZWQsIGFuZCBjbG9zZSB0aGUgaW50ZXJ2YWwgaWYgbmVlZGVkXG4gICAgICAgIGlmIChcbiAgICAgICAgICBwYXJhbWV0ZXJzWydyZWNvcmRQYXVzZWQnXSB8fFxuICAgICAgICAgIHBhcmFtZXRlcnNbJ3JlY29yZFN0b3BwZWQnXSB8fFxuICAgICAgICAgIHBhcmFtZXRlcnNbJ3Jvb21OYW1lJ10gPT0gJycgfHxcbiAgICAgICAgICBwYXJhbWV0ZXJzWydyb29tTmFtZSddID09IG51bGxcbiAgICAgICAgKSB7XG4gICAgICAgICAgaWYgKHJlY29yZFRpbWVySW50ZXJ2YWwgIT0gbnVsbCkge1xuICAgICAgICAgICAgY2xlYXJJbnRlcnZhbChyZWNvcmRUaW1lckludGVydmFsKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdXBkYXRlUmVjb3JkVGltZXJJbnRlcnZhbChudWxsKTtcbiAgICAgICAgICBpc1RpbWVyUnVubmluZyA9IGZhbHNlO1xuICAgICAgICAgIHVwZGF0ZUlzVGltZXJSdW5uaW5nKGlzVGltZXJSdW5uaW5nKTtcbiAgICAgICAgICBjYW5QYXVzZVJlc3VtZSA9IGZhbHNlO1xuICAgICAgICAgIHVwZGF0ZUNhblBhdXNlUmVzdW1lKGNhblBhdXNlUmVzdW1lKTtcbiAgICAgICAgfVxuICAgICAgfSwgMTAwMCk7XG4gICAgICB1cGRhdGVSZWNvcmRUaW1lckludGVydmFsKHJlY29yZFRpbWVySW50ZXJ2YWwpO1xuICAgICAgaXNUaW1lclJ1bm5pbmcgPSB0cnVlO1xuICAgICAgdXBkYXRlSXNUaW1lclJ1bm5pbmcoaXNUaW1lclJ1bm5pbmcpO1xuICAgICAgY2FuUGF1c2VSZXN1bWUgPSBmYWxzZTsgLy8gRGlzYWJsZSBwYXVzZS9yZXN1bWUgYWN0aW9ucyB1bnRpbCBwYXVzZWQgYWdhaW5cbiAgICAgIHVwZGF0ZUNhblBhdXNlUmVzdW1lKGNhblBhdXNlUmVzdW1lKTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICBzaG93QWxlcnQ/Lih7XG4gICAgICAgIHR5cGU6ICdkYW5nZXInLFxuICAgICAgICBtZXNzYWdlOlxuICAgICAgICAgICdDYW4gb25seSBwYXVzZSBvciByZXN1bWUgYWZ0ZXIgMTUgc2Vjb25kcyBvZiBzdGFydGluZyBvciBwYXVzaW5nIG9yIHJlc3VtaW5nIHJlY29yZGluZycsXG4gICAgICB9KTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH07XG59XG4iXX0=
@@ -1,89 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- import * as i1 from "./record-update-timer.service";
4
- export class RecordStartTimer {
5
- RecordUpdateTimerService;
6
- constructor(RecordUpdateTimerService) {
7
- this.RecordUpdateTimerService = RecordUpdateTimerService;
8
- }
9
- /**
10
- * Starts the recording timer.
11
- * @function
12
- * @param {RecordStartTimerOptions} options - The options object containing necessary variables and functions.
13
- */
14
- /**
15
- * Starts a recording timer and manages its state.
16
- *
17
- * @param {RecordStartTimerOptions} options - The options for starting the recording timer.
18
- * @param {Function} options.parameters.getUpdatedAllParams - Function to get updated parameters.
19
- * @param {number} options.parameters.recordStartTime - The start time of the recording.
20
- * @param {number | null} options.parameters.recordTimerInterval - The interval ID for the recording timer.
21
- * @param {boolean} options.parameters.isTimerRunning - Flag indicating if the timer is running.
22
- * @param {boolean} options.parameters.canPauseResume - Flag indicating if pause/resume actions are enabled.
23
- * @param {number} options.parameters.recordChangeSeconds - The time after which pause/resume actions are enabled.
24
- * @param {Function} options.parameters.updateRecordStartTime - Function to update the recording start time.
25
- * @param {Function} options.parameters.updateRecordTimerInterval - Function to update the recording timer interval.
26
- * @param {Function} options.parameters.updateIsTimerRunning - Function to update the timer running state.
27
- * @param {Function} options.parameters.updateCanPauseResume - Function to update the pause/resume state.
28
- *
29
- * @returns {Promise<void>} A promise that resolves when the timer is started.
30
- *
31
- * @remarks
32
- * This function initializes the recording start time and sets up an interval to update the timer every second.
33
- * It also manages the state of the timer, including enabling and disabling pause/resume actions.
34
- * The timer is stopped if the recording is paused, stopped, or if the room name is invalid.
35
- */
36
- recordStartTimer = async ({ parameters }) => {
37
- let { getUpdatedAllParams } = parameters;
38
- parameters = getUpdatedAllParams();
39
- let { recordStartTime, recordTimerInterval, isTimerRunning, canPauseResume, recordChangeSeconds, updateRecordStartTime, updateRecordTimerInterval, updateIsTimerRunning, updateCanPauseResume, } = parameters;
40
- /**
41
- * Utility function to enable pause/resume actions after a specified time.
42
- */
43
- function enablePauseResume() {
44
- canPauseResume = true;
45
- updateCanPauseResume(canPauseResume);
46
- }
47
- if (!isTimerRunning) {
48
- recordStartTime = new Date().getTime(); // Get the current timestamp
49
- updateRecordStartTime(recordStartTime);
50
- recordTimerInterval = setInterval(() => {
51
- // Update the timer every second (1000 milliseconds)
52
- this.RecordUpdateTimerService.recordUpdateTimer({
53
- recordElapsedTime: parameters.recordElapsedTime,
54
- recordStartTime: recordStartTime,
55
- updateRecordElapsedTime: parameters.updateRecordElapsedTime,
56
- updateRecordingProgressTime: parameters.updateRecordingProgressTime,
57
- });
58
- parameters = getUpdatedAllParams();
59
- // Check if recording is paused or stopped, and close the interval if needed
60
- if (parameters.recordPaused ||
61
- parameters.recordStopped ||
62
- parameters.roomName == '' ||
63
- parameters.roomName == null) {
64
- clearInterval(recordTimerInterval);
65
- updateRecordTimerInterval(null);
66
- isTimerRunning = false;
67
- updateIsTimerRunning(isTimerRunning);
68
- canPauseResume = false;
69
- updateCanPauseResume(canPauseResume);
70
- }
71
- }, 1000);
72
- updateRecordTimerInterval(recordTimerInterval);
73
- isTimerRunning = true;
74
- updateIsTimerRunning(isTimerRunning);
75
- canPauseResume = false; // Disable pause/resume actions initially
76
- updateCanPauseResume(canPauseResume);
77
- setTimeout(enablePauseResume, recordChangeSeconds); // Enable pause/resume actions after specified time
78
- }
79
- };
80
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: RecordStartTimer, deps: [{ token: i1.RecordUpdateTimer }], target: i0.ɵɵFactoryTarget.Injectable });
81
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: RecordStartTimer, providedIn: 'root' });
82
- }
83
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: RecordStartTimer, decorators: [{
84
- type: Injectable,
85
- args: [{
86
- providedIn: 'root',
87
- }]
88
- }], ctorParameters: () => [{ type: i1.RecordUpdateTimer }] });
89
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjb3JkLXN0YXJ0LXRpbWVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tZWRpYXNmdS1hbmd1bGFyL3NyYy9saWIvbWV0aG9kcy9yZWNvcmRpbmctbWV0aG9kcy9yZWNvcmQtc3RhcnQtdGltZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFnQzNDLE1BQU0sT0FBTyxnQkFBZ0I7SUFDUDtJQUFwQixZQUFvQix3QkFBMkM7UUFBM0MsNkJBQXdCLEdBQXhCLHdCQUF3QixDQUFtQjtJQUFHLENBQUM7SUFFbkU7Ozs7T0FJRztJQUNIOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7T0FxQkc7SUFFSCxnQkFBZ0IsR0FBRyxLQUFLLEVBQUUsRUFBRSxVQUFVLEVBQXVCLEVBQWlCLEVBQUU7UUFDOUUsSUFBSSxFQUFFLG1CQUFtQixFQUFFLEdBQUcsVUFBVSxDQUFDO1FBQ3pDLFVBQVUsR0FBRyxtQkFBbUIsRUFBRSxDQUFDO1FBRW5DLElBQUksRUFDRixlQUFlLEVBQ2YsbUJBQW1CLEVBQ25CLGNBQWMsRUFDZCxjQUFjLEVBQ2QsbUJBQW1CLEVBRW5CLHFCQUFxQixFQUNyQix5QkFBeUIsRUFDekIsb0JBQW9CLEVBQ3BCLG9CQUFvQixHQUNyQixHQUFHLFVBQVUsQ0FBQztRQUVmOztXQUVHO1FBQ0gsU0FBUyxpQkFBaUI7WUFDeEIsY0FBYyxHQUFHLElBQUksQ0FBQztZQUN0QixvQkFBb0IsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUN2QyxDQUFDO1FBRUQsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3BCLGVBQWUsR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsNEJBQTRCO1lBQ3BFLHFCQUFxQixDQUFDLGVBQWUsQ0FBQyxDQUFDO1lBQ3ZDLG1CQUFtQixHQUFHLFdBQVcsQ0FBQyxHQUFHLEVBQUU7Z0JBQ3JDLG9EQUFvRDtnQkFDcEQsSUFBSSxDQUFDLHdCQUF3QixDQUFDLGlCQUFpQixDQUFDO29CQUM5QyxpQkFBaUIsRUFBRSxVQUFVLENBQUMsaUJBQWlCO29CQUMvQyxlQUFlLEVBQUUsZUFBZTtvQkFDaEMsdUJBQXVCLEVBQUUsVUFBVSxDQUFDLHVCQUF1QjtvQkFDM0QsMkJBQTJCLEVBQUUsVUFBVSxDQUFDLDJCQUEyQjtpQkFDcEUsQ0FBQyxDQUFDO2dCQUVILFVBQVUsR0FBRyxtQkFBbUIsRUFBRSxDQUFDO2dCQUVuQyw0RUFBNEU7Z0JBQzVFLElBQ0UsVUFBVSxDQUFDLFlBQVk7b0JBQ3ZCLFVBQVUsQ0FBQyxhQUFhO29CQUN4QixVQUFVLENBQUMsUUFBUSxJQUFJLEVBQUU7b0JBQ3pCLFVBQVUsQ0FBQyxRQUFRLElBQUksSUFBSSxFQUMzQixDQUFDO29CQUNELGFBQWEsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO29CQUNuQyx5QkFBeUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFDaEMsY0FBYyxHQUFHLEtBQUssQ0FBQztvQkFDdkIsb0JBQW9CLENBQUMsY0FBYyxDQUFDLENBQUM7b0JBQ3JDLGNBQWMsR0FBRyxLQUFLLENBQUM7b0JBQ3ZCLG9CQUFvQixDQUFDLGNBQWMsQ0FBQyxDQUFDO2dCQUN2QyxDQUFDO1lBQ0gsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQ1QseUJBQXlCLENBQUMsbUJBQW1CLENBQUMsQ0FBQztZQUMvQyxjQUFjLEdBQUcsSUFBSSxDQUFDO1lBQ3RCLG9CQUFvQixDQUFDLGNBQWMsQ0FBQyxDQUFDO1lBQ3JDLGNBQWMsR0FBRyxLQUFLLENBQUMsQ0FBQyx5Q0FBeUM7WUFDakUsb0JBQW9CLENBQUMsY0FBYyxDQUFDLENBQUM7WUFDckMsVUFBVSxDQUFDLGlCQUFpQixFQUFFLG1CQUFtQixDQUFDLENBQUMsQ0FBQyxtREFBbUQ7UUFDekcsQ0FBQztJQUNILENBQUMsQ0FBQzt1R0E1RlMsZ0JBQWdCOzJHQUFoQixnQkFBZ0IsY0FGZixNQUFNOzsyRkFFUCxnQkFBZ0I7a0JBSDVCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUmVjb3JkVXBkYXRlVGltZXIgfSBmcm9tICcuL3JlY29yZC11cGRhdGUtdGltZXIuc2VydmljZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVjb3JkU3RhcnRUaW1lclBhcmFtZXRlcnMge1xuICByZWNvcmRTdGFydFRpbWU6IG51bWJlcjtcbiAgcmVjb3JkVGltZXJJbnRlcnZhbD86IE5vZGVKUy5UaW1lb3V0IHwgbnVsbDtcbiAgaXNUaW1lclJ1bm5pbmc6IGJvb2xlYW47XG4gIGNhblBhdXNlUmVzdW1lOiBib29sZWFuO1xuICByZWNvcmRDaGFuZ2VTZWNvbmRzOiBudW1iZXI7XG4gIHJlY29yZFBhdXNlZDogYm9vbGVhbjtcbiAgcmVjb3JkU3RvcHBlZDogYm9vbGVhbjtcbiAgcm9vbU5hbWU6IHN0cmluZyB8IG51bGw7XG4gIHVwZGF0ZVJlY29yZFN0YXJ0VGltZTogKHRpbWU6IG51bWJlcikgPT4gdm9pZDtcbiAgdXBkYXRlUmVjb3JkVGltZXJJbnRlcnZhbDogKGludGVydmFsOiBOb2RlSlMuVGltZW91dCB8IG51bGwpID0+IHZvaWQ7XG4gIHVwZGF0ZUlzVGltZXJSdW5uaW5nOiAoaXNSdW5uaW5nOiBib29sZWFuKSA9PiB2b2lkO1xuICB1cGRhdGVDYW5QYXVzZVJlc3VtZTogKGNhblBhdXNlOiBib29sZWFuKSA9PiB2b2lkO1xuXG4gIC8vIE1lZGlhc2Z1IGZ1bmN0aW9uc1xuICBnZXRVcGRhdGVkQWxsUGFyYW1zOiAoKSA9PiBSZWNvcmRTdGFydFRpbWVyUGFyYW1ldGVycztcbiAgW2tleTogc3RyaW5nXTogYW55O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJlY29yZFN0YXJ0VGltZXJPcHRpb25zIHtcbiAgcGFyYW1ldGVyczogUmVjb3JkU3RhcnRUaW1lclBhcmFtZXRlcnM7XG59XG5cbi8vIEV4cG9ydCB0aGUgdHlwZSBkZWZpbml0aW9uIGZvciB0aGUgZnVuY3Rpb25cbmV4cG9ydCB0eXBlIFJlY29yZFN0YXJ0VGltZXJUeXBlID0gKG9wdGlvbnM6IFJlY29yZFN0YXJ0VGltZXJPcHRpb25zKSA9PiBQcm9taXNlPHZvaWQ+O1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgUmVjb3JkU3RhcnRUaW1lciB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgUmVjb3JkVXBkYXRlVGltZXJTZXJ2aWNlOiBSZWNvcmRVcGRhdGVUaW1lcikge31cblxuICAvKipcbiAgICogU3RhcnRzIHRoZSByZWNvcmRpbmcgdGltZXIuXG4gICAqIEBmdW5jdGlvblxuICAgKiBAcGFyYW0ge1JlY29yZFN0YXJ0VGltZXJPcHRpb25zfSBvcHRpb25zIC0gVGhlIG9wdGlvbnMgb2JqZWN0IGNvbnRhaW5pbmcgbmVjZXNzYXJ5IHZhcmlhYmxlcyBhbmQgZnVuY3Rpb25zLlxuICAgKi9cbiAgLyoqXG4gICAqIFN0YXJ0cyBhIHJlY29yZGluZyB0aW1lciBhbmQgbWFuYWdlcyBpdHMgc3RhdGUuXG4gICAqXG4gICAqIEBwYXJhbSB7UmVjb3JkU3RhcnRUaW1lck9wdGlvbnN9IG9wdGlvbnMgLSBUaGUgb3B0aW9ucyBmb3Igc3RhcnRpbmcgdGhlIHJlY29yZGluZyB0aW1lci5cbiAgICogQHBhcmFtIHtGdW5jdGlvbn0gb3B0aW9ucy5wYXJhbWV0ZXJzLmdldFVwZGF0ZWRBbGxQYXJhbXMgLSBGdW5jdGlvbiB0byBnZXQgdXBkYXRlZCBwYXJhbWV0ZXJzLlxuICAgKiBAcGFyYW0ge251bWJlcn0gb3B0aW9ucy5wYXJhbWV0ZXJzLnJlY29yZFN0YXJ0VGltZSAtIFRoZSBzdGFydCB0aW1lIG9mIHRoZSByZWNvcmRpbmcuXG4gICAqIEBwYXJhbSB7bnVtYmVyIHwgbnVsbH0gb3B0aW9ucy5wYXJhbWV0ZXJzLnJlY29yZFRpbWVySW50ZXJ2YWwgLSBUaGUgaW50ZXJ2YWwgSUQgZm9yIHRoZSByZWNvcmRpbmcgdGltZXIuXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gb3B0aW9ucy5wYXJhbWV0ZXJzLmlzVGltZXJSdW5uaW5nIC0gRmxhZyBpbmRpY2F0aW5nIGlmIHRoZSB0aW1lciBpcyBydW5uaW5nLlxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IG9wdGlvbnMucGFyYW1ldGVycy5jYW5QYXVzZVJlc3VtZSAtIEZsYWcgaW5kaWNhdGluZyBpZiBwYXVzZS9yZXN1bWUgYWN0aW9ucyBhcmUgZW5hYmxlZC5cbiAgICogQHBhcmFtIHtudW1iZXJ9IG9wdGlvbnMucGFyYW1ldGVycy5yZWNvcmRDaGFuZ2VTZWNvbmRzIC0gVGhlIHRpbWUgYWZ0ZXIgd2hpY2ggcGF1c2UvcmVzdW1lIGFjdGlvbnMgYXJlIGVuYWJsZWQuXG4gICAqIEBwYXJhbSB7RnVuY3Rpb259IG9wdGlvbnMucGFyYW1ldGVycy51cGRhdGVSZWNvcmRTdGFydFRpbWUgLSBGdW5jdGlvbiB0byB1cGRhdGUgdGhlIHJlY29yZGluZyBzdGFydCB0aW1lLlxuICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBvcHRpb25zLnBhcmFtZXRlcnMudXBkYXRlUmVjb3JkVGltZXJJbnRlcnZhbCAtIEZ1bmN0aW9uIHRvIHVwZGF0ZSB0aGUgcmVjb3JkaW5nIHRpbWVyIGludGVydmFsLlxuICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBvcHRpb25zLnBhcmFtZXRlcnMudXBkYXRlSXNUaW1lclJ1bm5pbmcgLSBGdW5jdGlvbiB0byB1cGRhdGUgdGhlIHRpbWVyIHJ1bm5pbmcgc3RhdGUuXG4gICAqIEBwYXJhbSB7RnVuY3Rpb259IG9wdGlvbnMucGFyYW1ldGVycy51cGRhdGVDYW5QYXVzZVJlc3VtZSAtIEZ1bmN0aW9uIHRvIHVwZGF0ZSB0aGUgcGF1c2UvcmVzdW1lIHN0YXRlLlxuICAgKlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn0gQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgdGltZXIgaXMgc3RhcnRlZC5cbiAgICpcbiAgICogQHJlbWFya3NcbiAgICogVGhpcyBmdW5jdGlvbiBpbml0aWFsaXplcyB0aGUgcmVjb3JkaW5nIHN0YXJ0IHRpbWUgYW5kIHNldHMgdXAgYW4gaW50ZXJ2YWwgdG8gdXBkYXRlIHRoZSB0aW1lciBldmVyeSBzZWNvbmQuXG4gICAqIEl0IGFsc28gbWFuYWdlcyB0aGUgc3RhdGUgb2YgdGhlIHRpbWVyLCBpbmNsdWRpbmcgZW5hYmxpbmcgYW5kIGRpc2FibGluZyBwYXVzZS9yZXN1bWUgYWN0aW9ucy5cbiAgICogVGhlIHRpbWVyIGlzIHN0b3BwZWQgaWYgdGhlIHJlY29yZGluZyBpcyBwYXVzZWQsIHN0b3BwZWQsIG9yIGlmIHRoZSByb29tIG5hbWUgaXMgaW52YWxpZC5cbiAgICovXG5cbiAgcmVjb3JkU3RhcnRUaW1lciA9IGFzeW5jICh7IHBhcmFtZXRlcnMgfTogeyBwYXJhbWV0ZXJzOiBhbnkgfSk6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgIGxldCB7IGdldFVwZGF0ZWRBbGxQYXJhbXMgfSA9IHBhcmFtZXRlcnM7XG4gICAgcGFyYW1ldGVycyA9IGdldFVwZGF0ZWRBbGxQYXJhbXMoKTtcblxuICAgIGxldCB7XG4gICAgICByZWNvcmRTdGFydFRpbWUsXG4gICAgICByZWNvcmRUaW1lckludGVydmFsLFxuICAgICAgaXNUaW1lclJ1bm5pbmcsXG4gICAgICBjYW5QYXVzZVJlc3VtZSxcbiAgICAgIHJlY29yZENoYW5nZVNlY29uZHMsXG5cbiAgICAgIHVwZGF0ZVJlY29yZFN0YXJ0VGltZSxcbiAgICAgIHVwZGF0ZVJlY29yZFRpbWVySW50ZXJ2YWwsXG4gICAgICB1cGRhdGVJc1RpbWVyUnVubmluZyxcbiAgICAgIHVwZGF0ZUNhblBhdXNlUmVzdW1lLFxuICAgIH0gPSBwYXJhbWV0ZXJzO1xuXG4gICAgLyoqXG4gICAgICogVXRpbGl0eSBmdW5jdGlvbiB0byBlbmFibGUgcGF1c2UvcmVzdW1lIGFjdGlvbnMgYWZ0ZXIgYSBzcGVjaWZpZWQgdGltZS5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBlbmFibGVQYXVzZVJlc3VtZSgpIHtcbiAgICAgIGNhblBhdXNlUmVzdW1lID0gdHJ1ZTtcbiAgICAgIHVwZGF0ZUNhblBhdXNlUmVzdW1lKGNhblBhdXNlUmVzdW1lKTtcbiAgICB9XG5cbiAgICBpZiAoIWlzVGltZXJSdW5uaW5nKSB7XG4gICAgICByZWNvcmRTdGFydFRpbWUgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKTsgLy8gR2V0IHRoZSBjdXJyZW50IHRpbWVzdGFtcFxuICAgICAgdXBkYXRlUmVjb3JkU3RhcnRUaW1lKHJlY29yZFN0YXJ0VGltZSk7XG4gICAgICByZWNvcmRUaW1lckludGVydmFsID0gc2V0SW50ZXJ2YWwoKCkgPT4ge1xuICAgICAgICAvLyBVcGRhdGUgdGhlIHRpbWVyIGV2ZXJ5IHNlY29uZCAoMTAwMCBtaWxsaXNlY29uZHMpXG4gICAgICAgIHRoaXMuUmVjb3JkVXBkYXRlVGltZXJTZXJ2aWNlLnJlY29yZFVwZGF0ZVRpbWVyKHtcbiAgICAgICAgICByZWNvcmRFbGFwc2VkVGltZTogcGFyYW1ldGVycy5yZWNvcmRFbGFwc2VkVGltZSxcbiAgICAgICAgICByZWNvcmRTdGFydFRpbWU6IHJlY29yZFN0YXJ0VGltZSxcbiAgICAgICAgICB1cGRhdGVSZWNvcmRFbGFwc2VkVGltZTogcGFyYW1ldGVycy51cGRhdGVSZWNvcmRFbGFwc2VkVGltZSxcbiAgICAgICAgICB1cGRhdGVSZWNvcmRpbmdQcm9ncmVzc1RpbWU6IHBhcmFtZXRlcnMudXBkYXRlUmVjb3JkaW5nUHJvZ3Jlc3NUaW1lLFxuICAgICAgICB9KTtcblxuICAgICAgICBwYXJhbWV0ZXJzID0gZ2V0VXBkYXRlZEFsbFBhcmFtcygpO1xuXG4gICAgICAgIC8vIENoZWNrIGlmIHJlY29yZGluZyBpcyBwYXVzZWQgb3Igc3RvcHBlZCwgYW5kIGNsb3NlIHRoZSBpbnRlcnZhbCBpZiBuZWVkZWRcbiAgICAgICAgaWYgKFxuICAgICAgICAgIHBhcmFtZXRlcnMucmVjb3JkUGF1c2VkIHx8XG4gICAgICAgICAgcGFyYW1ldGVycy5yZWNvcmRTdG9wcGVkIHx8XG4gICAgICAgICAgcGFyYW1ldGVycy5yb29tTmFtZSA9PSAnJyB8fFxuICAgICAgICAgIHBhcmFtZXRlcnMucm9vbU5hbWUgPT0gbnVsbFxuICAgICAgICApIHtcbiAgICAgICAgICBjbGVhckludGVydmFsKHJlY29yZFRpbWVySW50ZXJ2YWwpO1xuICAgICAgICAgIHVwZGF0ZVJlY29yZFRpbWVySW50ZXJ2YWwobnVsbCk7XG4gICAgICAgICAgaXNUaW1lclJ1bm5pbmcgPSBmYWxzZTtcbiAgICAgICAgICB1cGRhdGVJc1RpbWVyUnVubmluZyhpc1RpbWVyUnVubmluZyk7XG4gICAgICAgICAgY2FuUGF1c2VSZXN1bWUgPSBmYWxzZTtcbiAgICAgICAgICB1cGRhdGVDYW5QYXVzZVJlc3VtZShjYW5QYXVzZVJlc3VtZSk7XG4gICAgICAgIH1cbiAgICAgIH0sIDEwMDApO1xuICAgICAgdXBkYXRlUmVjb3JkVGltZXJJbnRlcnZhbChyZWNvcmRUaW1lckludGVydmFsKTtcbiAgICAgIGlzVGltZXJSdW5uaW5nID0gdHJ1ZTtcbiAgICAgIHVwZGF0ZUlzVGltZXJSdW5uaW5nKGlzVGltZXJSdW5uaW5nKTtcbiAgICAgIGNhblBhdXNlUmVzdW1lID0gZmFsc2U7IC8vIERpc2FibGUgcGF1c2UvcmVzdW1lIGFjdGlvbnMgaW5pdGlhbGx5XG4gICAgICB1cGRhdGVDYW5QYXVzZVJlc3VtZShjYW5QYXVzZVJlc3VtZSk7XG4gICAgICBzZXRUaW1lb3V0KGVuYWJsZVBhdXNlUmVzdW1lLCByZWNvcmRDaGFuZ2VTZWNvbmRzKTsgLy8gRW5hYmxlIHBhdXNlL3Jlc3VtZSBhY3Rpb25zIGFmdGVyIHNwZWNpZmllZCB0aW1lXG4gICAgfVxuICB9O1xufVxuIl19