mediasfu-angular 1.0.2 → 2.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (281) hide show
  1. package/README.md +686 -578
  2. package/dist/README.md +677 -578
  3. package/dist/fesm2022/mediasfu-angular.mjs +5551 -2944
  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/breakout-components/breakout-rooms-modal.component.d.ts +1 -0
  7. package/dist/lib/components/mediasfu-components/mediasfu-broadcast.component.d.ts +153 -61
  8. package/dist/lib/components/mediasfu-components/mediasfu-chat.component.d.ts +154 -66
  9. package/dist/lib/components/mediasfu-components/mediasfu-conference.component.d.ts +190 -76
  10. package/dist/lib/components/mediasfu-components/mediasfu-generic.component.d.ts +184 -70
  11. package/dist/lib/components/mediasfu-components/mediasfu-webinar.component.d.ts +192 -78
  12. package/dist/lib/components/menu-components/menu-modal/menu-modal.component.d.ts +6 -1
  13. package/dist/lib/components/menu-components/share-buttons-component/share-buttons-component.component.d.ts +5 -2
  14. package/dist/lib/components/misc-components/confirm-here-modal/confirm-here-modal.component.d.ts +4 -2
  15. package/dist/lib/components/misc-components/pre-join-page/pre-join-page.component.d.ts +71 -66
  16. package/dist/lib/components/misc-components/share-event-modal/share-event-modal.component.d.ts +5 -1
  17. package/dist/lib/consumers/connect-local-ips.service.d.ts +81 -0
  18. package/dist/lib/consumers/connect-send-transport-audio.service.d.ts +43 -11
  19. package/dist/lib/consumers/connect-send-transport-screen.service.d.ts +87 -46
  20. package/dist/lib/consumers/connect-send-transport-video.service.d.ts +89 -43
  21. package/dist/lib/consumers/connect-send-transport.service.d.ts +5 -1
  22. package/dist/lib/consumers/create-send-transport.service.d.ts +130 -40
  23. package/dist/lib/consumers/disconnect-send-transport-audio.service.d.ts +77 -40
  24. package/dist/lib/consumers/disconnect-send-transport-screen.service.d.ts +48 -14
  25. package/dist/lib/consumers/disconnect-send-transport-video.service.d.ts +81 -44
  26. package/dist/lib/consumers/get-piped-producers-alt.service.d.ts +5 -1
  27. package/dist/lib/consumers/receive-all-piped-transports.service.d.ts +5 -1
  28. package/dist/lib/consumers/resume-send-transport-audio.service.d.ts +54 -21
  29. package/dist/lib/consumers/stream-success-audio-switch.service.d.ts +124 -40
  30. package/dist/lib/consumers/trigger.service.d.ts +3 -0
  31. package/dist/lib/methods/exit-methods/confirm-exit.service.d.ts +5 -1
  32. package/dist/lib/methods/recording-methods/start-recording.service.d.ts +3 -0
  33. package/dist/lib/methods/recording-methods/stop-recording.service.d.ts +4 -1
  34. package/dist/lib/methods/recording-methods/update-recording.service.d.ts +3 -0
  35. package/dist/lib/methods/stream-methods/click-audio.service.d.ts +3 -0
  36. package/dist/lib/methods/utils/check-limits-and-make-request.service.d.ts +23 -0
  37. package/dist/lib/methods/utils/create-response-join-room.util.d.ts +33 -0
  38. package/dist/lib/methods/utils/create-room-on-media-sfu.service.d.ts +25 -0
  39. package/dist/lib/methods/utils/initial-values.util.d.ts +6 -0
  40. package/dist/lib/methods/utils/join-room-on-media-sfu.service.d.ts +52 -0
  41. package/dist/lib/methods/whiteboard-methods/capture-canvas-stream.service.d.ts +37 -20
  42. package/dist/lib/producers/producer-emits/join-local-room.service.d.ts +125 -0
  43. package/dist/lib/producers/socket-receive-methods/all-members-rest.service.d.ts +7 -2
  44. package/dist/lib/producers/socket-receive-methods/all-members.service.d.ts +7 -2
  45. package/dist/lib/producers/socket-receive-methods/disconnect-user-self.service.d.ts +5 -1
  46. package/dist/lib/sockets/socket-manager.service.d.ts +90 -0
  47. package/dist/public-api.d.ts +11 -1
  48. package/package.json +17 -20
  49. package/dist/esm2022/lib/@types/types.mjs +0 -2
  50. package/dist/esm2022/lib/components/background-components/background-modal/background-modal.component.mjs +0 -799
  51. package/dist/esm2022/lib/components/breakout-components/breakout-rooms-modal.component.mjs +0 -366
  52. package/dist/esm2022/lib/components/breakout-components/edit-room-modal/edit-room-modal.component.mjs +0 -143
  53. package/dist/esm2022/lib/components/breakout-components/room-list/room-list.component.mjs +0 -40
  54. package/dist/esm2022/lib/components/co-host-components/co-host-modal/co-host-modal.component.mjs +0 -245
  55. package/dist/esm2022/lib/components/display-components/alert-component/alert.component.component.mjs +0 -79
  56. package/dist/esm2022/lib/components/display-components/audio-card/audio-card.component.mjs +0 -356
  57. package/dist/esm2022/lib/components/display-components/audio-grid/audio-grid.component.mjs +0 -80
  58. package/dist/esm2022/lib/components/display-components/card-video-display/card-video-display.component.mjs +0 -129
  59. package/dist/esm2022/lib/components/display-components/control-buttons-alt-component/control-buttons-alt-component.component.mjs +0 -138
  60. package/dist/esm2022/lib/components/display-components/control-buttons-component/control-buttons-component.component.mjs +0 -231
  61. package/dist/esm2022/lib/components/display-components/control-buttons-component-touch/control-buttons-component-touch.component.mjs +0 -282
  62. package/dist/esm2022/lib/components/display-components/control-widgets/menu-participants-widget.component.mjs +0 -82
  63. package/dist/esm2022/lib/components/display-components/control-widgets/menu-record-widget.component.mjs +0 -65
  64. package/dist/esm2022/lib/components/display-components/control-widgets/menu-widget.component.mjs +0 -137
  65. package/dist/esm2022/lib/components/display-components/control-widgets/message-widget.component.mjs +0 -137
  66. package/dist/esm2022/lib/components/display-components/control-widgets/record-timer-widget.component.mjs +0 -51
  67. package/dist/esm2022/lib/components/display-components/control-widgets/screenshare-widget.component.mjs +0 -101
  68. package/dist/esm2022/lib/components/display-components/flexible-grid/flexible-grid.component.mjs +0 -151
  69. package/dist/esm2022/lib/components/display-components/flexible-video/flexible-video.component.mjs +0 -250
  70. package/dist/esm2022/lib/components/display-components/loading-modal/loading-modal.component.mjs +0 -102
  71. package/dist/esm2022/lib/components/display-components/main-aspect-component/main-aspect-component.component.mjs +0 -140
  72. package/dist/esm2022/lib/components/display-components/main-container-component/main-container-component.component.mjs +0 -131
  73. package/dist/esm2022/lib/components/display-components/main-grid-component/main-grid-component.component.mjs +0 -120
  74. package/dist/esm2022/lib/components/display-components/main-screen-component/main-screen-component.component.mjs +0 -201
  75. package/dist/esm2022/lib/components/display-components/meeting-progress-timer/meeting-progress-timer.component.mjs +0 -115
  76. package/dist/esm2022/lib/components/display-components/mini-audio/mini-audio.component.mjs +0 -319
  77. package/dist/esm2022/lib/components/display-components/mini-card/mini-card.component.mjs +0 -161
  78. package/dist/esm2022/lib/components/display-components/mini-card-audio/mini-card-audio.component.mjs +0 -230
  79. package/dist/esm2022/lib/components/display-components/other-grid-component/other-grid-component.component.mjs +0 -126
  80. package/dist/esm2022/lib/components/display-components/pagination/pagination.component.mjs +0 -334
  81. package/dist/esm2022/lib/components/display-components/sub-aspect-component/sub-aspect-component.component.mjs +0 -112
  82. package/dist/esm2022/lib/components/display-components/video-card/video-card.component.mjs +0 -392
  83. package/dist/esm2022/lib/components/display-settings-components/display-settings-modal.component.mjs +0 -106
  84. package/dist/esm2022/lib/components/event-settings-components/event-settings-modal/event-settings-modal.component.mjs +0 -199
  85. package/dist/esm2022/lib/components/exit-components/confirm-exit-modal/confirm-exit-modal.component.mjs +0 -132
  86. package/dist/esm2022/lib/components/media-settings-components/media-settings-modal/media-settings-modal.component.mjs +0 -220
  87. package/dist/esm2022/lib/components/mediasfu-components/mediasfu-broadcast.component.mjs +0 -4238
  88. package/dist/esm2022/lib/components/mediasfu-components/mediasfu-chat.component.mjs +0 -3754
  89. package/dist/esm2022/lib/components/mediasfu-components/mediasfu-conference.component.mjs +0 -5071
  90. package/dist/esm2022/lib/components/mediasfu-components/mediasfu-generic.component.mjs +0 -5380
  91. package/dist/esm2022/lib/components/mediasfu-components/mediasfu-webinar.component.mjs +0 -5068
  92. package/dist/esm2022/lib/components/menu-components/custom-buttons/custom-buttons.component.mjs +0 -83
  93. package/dist/esm2022/lib/components/menu-components/meeting-id-component/meeting-id-component.component.mjs +0 -27
  94. package/dist/esm2022/lib/components/menu-components/meeting-passcode-component/meeting-passcode-component.component.mjs +0 -27
  95. package/dist/esm2022/lib/components/menu-components/menu-modal/menu-modal.component.mjs +0 -125
  96. package/dist/esm2022/lib/components/menu-components/share-buttons-component/share-buttons-component.component.mjs +0 -106
  97. package/dist/esm2022/lib/components/message-components/message-panel/message-panel.component.mjs +0 -228
  98. package/dist/esm2022/lib/components/message-components/messages-modal/messages-modal.component.mjs +0 -277
  99. package/dist/esm2022/lib/components/misc-components/confirm-here-modal/confirm-here-modal.component.mjs +0 -130
  100. package/dist/esm2022/lib/components/misc-components/pre-join-page/pre-join-page.component.mjs +0 -343
  101. package/dist/esm2022/lib/components/misc-components/share-event-modal/share-event-modal.component.mjs +0 -127
  102. package/dist/esm2022/lib/components/misc-components/welcome-page/welcome-page.component.mjs +0 -241
  103. package/dist/esm2022/lib/components/participants-components/participant-list/participant-list.component.mjs +0 -82
  104. package/dist/esm2022/lib/components/participants-components/participant-list-item/participant-list-item.component.mjs +0 -139
  105. package/dist/esm2022/lib/components/participants-components/participant-list-others/participant-list-others.component.mjs +0 -40
  106. package/dist/esm2022/lib/components/participants-components/participant-list-others-item/participant-list-others-item.component.mjs +0 -60
  107. package/dist/esm2022/lib/components/participants-components/participants-modal/participants-modal.component.mjs +0 -124
  108. package/dist/esm2022/lib/components/polls-components/poll-modal/poll-modal.component.mjs +0 -201
  109. package/dist/esm2022/lib/components/recording-components/advanced-panel-component/advanced-panel-components.component.mjs +0 -92
  110. package/dist/esm2022/lib/components/recording-components/recording-modal/recording-modal.component.mjs +0 -133
  111. package/dist/esm2022/lib/components/recording-components/standard-panel-component/standard-panel-component.component.mjs +0 -90
  112. package/dist/esm2022/lib/components/requests-components/render-request-component/render-request-component.component.mjs +0 -81
  113. package/dist/esm2022/lib/components/requests-components/requests-modal/requests-modal.component.mjs +0 -147
  114. package/dist/esm2022/lib/components/screenboard-components/screenboard/screenboard.component.mjs +0 -627
  115. package/dist/esm2022/lib/components/screenboard-components/screenboard-modal/screenboard-modal.component.mjs +0 -391
  116. package/dist/esm2022/lib/components/waiting-components/waiting-room-modal.component.mjs +0 -201
  117. package/dist/esm2022/lib/components/whiteboard-components/configure-whiteboard-modal/configure-whiteboard-modal.component.mjs +0 -286
  118. package/dist/esm2022/lib/components/whiteboard-components/whiteboard/whiteboard.component.mjs +0 -1833
  119. package/dist/esm2022/lib/consumers/add-videos-grid.service.mjs +0 -345
  120. package/dist/esm2022/lib/consumers/auto-adjust.service.mjs +0 -109
  121. package/dist/esm2022/lib/consumers/calculate-rows-and-columns.service.mjs +0 -60
  122. package/dist/esm2022/lib/consumers/change-vids.service.mjs +0 -551
  123. package/dist/esm2022/lib/consumers/check-grid.service.mjs +0 -93
  124. package/dist/esm2022/lib/consumers/check-permission.service.mjs +0 -105
  125. package/dist/esm2022/lib/consumers/check-screen-share.service.mjs +0 -106
  126. package/dist/esm2022/lib/consumers/close-and-resize.service.mjs +0 -331
  127. package/dist/esm2022/lib/consumers/compare-active-names.service.mjs +0 -106
  128. package/dist/esm2022/lib/consumers/compare-screen-states.service.mjs +0 -98
  129. package/dist/esm2022/lib/consumers/connect-ips.service.mjs +0 -154
  130. package/dist/esm2022/lib/consumers/connect-recv-transport.service.mjs +0 -146
  131. package/dist/esm2022/lib/consumers/connect-send-transport-audio.service.mjs +0 -84
  132. package/dist/esm2022/lib/consumers/connect-send-transport-screen.service.mjs +0 -102
  133. package/dist/esm2022/lib/consumers/connect-send-transport-video.service.mjs +0 -99
  134. package/dist/esm2022/lib/consumers/connect-send-transport.service.mjs +0 -140
  135. package/dist/esm2022/lib/consumers/consumer-resume.service.mjs +0 -368
  136. package/dist/esm2022/lib/consumers/control-media.service.mjs +0 -113
  137. package/dist/esm2022/lib/consumers/create-send-transport.service.mjs +0 -172
  138. package/dist/esm2022/lib/consumers/disconnect-send-transport-audio.service.mjs +0 -108
  139. package/dist/esm2022/lib/consumers/disconnect-send-transport-screen.service.mjs +0 -84
  140. package/dist/esm2022/lib/consumers/disconnect-send-transport-video.service.mjs +0 -101
  141. package/dist/esm2022/lib/consumers/disp-streams.service.mjs +0 -513
  142. package/dist/esm2022/lib/consumers/generate-page-content.service.mjs +0 -106
  143. package/dist/esm2022/lib/consumers/get-estimate.service.mjs +0 -120
  144. package/dist/esm2022/lib/consumers/get-piped-producers-alt.service.mjs +0 -82
  145. package/dist/esm2022/lib/consumers/get-producers-piped.service.mjs +0 -79
  146. package/dist/esm2022/lib/consumers/get-videos.service.mjs +0 -91
  147. package/dist/esm2022/lib/consumers/mix-streams.service.mjs +0 -95
  148. package/dist/esm2022/lib/consumers/on-screen-changes.service.mjs +0 -103
  149. package/dist/esm2022/lib/consumers/prepopulate-user-media.service.mjs +0 -541
  150. package/dist/esm2022/lib/consumers/process-consumer-transports-audio.service.mjs +0 -101
  151. package/dist/esm2022/lib/consumers/process-consumer-transports.service.mjs +0 -128
  152. package/dist/esm2022/lib/consumers/re-port.service.mjs +0 -114
  153. package/dist/esm2022/lib/consumers/re-update-inter.service.mjs +0 -239
  154. package/dist/esm2022/lib/consumers/readjust.service.mjs +0 -173
  155. package/dist/esm2022/lib/consumers/receive-all-piped-transports.service.mjs +0 -87
  156. package/dist/esm2022/lib/consumers/receive-room-messages.service.mjs +0 -69
  157. package/dist/esm2022/lib/consumers/reorder-streams.service.mjs +0 -239
  158. package/dist/esm2022/lib/consumers/request-screen-share.service.mjs +0 -101
  159. package/dist/esm2022/lib/consumers/resume-pause-audio-streams.service.mjs +0 -150
  160. package/dist/esm2022/lib/consumers/resume-pause-streams.service.mjs +0 -103
  161. package/dist/esm2022/lib/consumers/resume-send-transport-audio.service.mjs +0 -91
  162. package/dist/esm2022/lib/consumers/signal-new-consumer-transport.service.mjs +0 -136
  163. package/dist/esm2022/lib/consumers/socket-receive-methods/join-consume-room.service.mjs +0 -96
  164. package/dist/esm2022/lib/consumers/socket-receive-methods/new-pipe-producer.service.mjs +0 -100
  165. package/dist/esm2022/lib/consumers/socket-receive-methods/producer-closed.service.mjs +0 -78
  166. package/dist/esm2022/lib/consumers/start-share-screen.service.mjs +0 -120
  167. package/dist/esm2022/lib/consumers/stop-share-screen.service.mjs +0 -175
  168. package/dist/esm2022/lib/consumers/stream-success-audio-switch.service.mjs +0 -185
  169. package/dist/esm2022/lib/consumers/stream-success-audio.service.mjs +0 -210
  170. package/dist/esm2022/lib/consumers/stream-success-screen.service.mjs +0 -193
  171. package/dist/esm2022/lib/consumers/stream-success-video.service.mjs +0 -260
  172. package/dist/esm2022/lib/consumers/switch-user-audio.service.mjs +0 -120
  173. package/dist/esm2022/lib/consumers/switch-user-video-alt.service.mjs +0 -260
  174. package/dist/esm2022/lib/consumers/switch-user-video.service.mjs +0 -172
  175. package/dist/esm2022/lib/consumers/trigger.service.mjs +0 -210
  176. package/dist/esm2022/lib/consumers/update-mini-cards-grid.service.mjs +0 -135
  177. package/dist/esm2022/lib/consumers/update-participant-audio-decibels.service.mjs +0 -84
  178. package/dist/esm2022/lib/methods/background-methods/launch-background.service.mjs +0 -48
  179. package/dist/esm2022/lib/methods/breakout-room-methods/breakout-room-updated.service.mjs +0 -183
  180. package/dist/esm2022/lib/methods/breakout-room-methods/launch-breakout-rooms.service.mjs +0 -46
  181. package/dist/esm2022/lib/methods/co-host-methods/launch-co-host.service.mjs +0 -46
  182. package/dist/esm2022/lib/methods/co-host-methods/modify-co-host-settings.service.mjs +0 -104
  183. package/dist/esm2022/lib/methods/display-settings-methods/launch-display-settings.service.mjs +0 -46
  184. package/dist/esm2022/lib/methods/display-settings-methods/modify-display-settings.service.mjs +0 -194
  185. package/dist/esm2022/lib/methods/exit-methods/confirm-exit.service.mjs +0 -52
  186. package/dist/esm2022/lib/methods/exit-methods/launch-confirm-exit.service.mjs +0 -42
  187. package/dist/esm2022/lib/methods/media-settings-methods/launch-media-settings.service.mjs +0 -85
  188. package/dist/esm2022/lib/methods/menu-methods/launch-menu-modal.service.mjs +0 -44
  189. package/dist/esm2022/lib/methods/message-methods/launch-messages.service.mjs +0 -45
  190. package/dist/esm2022/lib/methods/message-methods/send-message.service.mjs +0 -143
  191. package/dist/esm2022/lib/methods/participants-methods/launch-participants.service.mjs +0 -47
  192. package/dist/esm2022/lib/methods/participants-methods/message-participants.service.mjs +0 -98
  193. package/dist/esm2022/lib/methods/participants-methods/mute-participants.service.mjs +0 -96
  194. package/dist/esm2022/lib/methods/participants-methods/remove-participants.service.mjs +0 -107
  195. package/dist/esm2022/lib/methods/polls-methods/handle-create-poll.service.mjs +0 -75
  196. package/dist/esm2022/lib/methods/polls-methods/handle-end-poll.service.mjs +0 -72
  197. package/dist/esm2022/lib/methods/polls-methods/handle-vote-poll.service.mjs +0 -83
  198. package/dist/esm2022/lib/methods/polls-methods/launch-poll.service.mjs +0 -43
  199. package/dist/esm2022/lib/methods/polls-methods/poll-updated.service.mjs +0 -95
  200. package/dist/esm2022/lib/methods/recording-methods/check-pause-state.service.mjs +0 -69
  201. package/dist/esm2022/lib/methods/recording-methods/check-resume-state.service.mjs +0 -56
  202. package/dist/esm2022/lib/methods/recording-methods/confirm-recording.service.mjs +0 -278
  203. package/dist/esm2022/lib/methods/recording-methods/launch-recording.service.mjs +0 -125
  204. package/dist/esm2022/lib/methods/recording-methods/record-pause-timer.service.mjs +0 -67
  205. package/dist/esm2022/lib/methods/recording-methods/record-resume-timer.service.mjs +0 -130
  206. package/dist/esm2022/lib/methods/recording-methods/record-start-timer.service.mjs +0 -134
  207. package/dist/esm2022/lib/methods/recording-methods/record-update-timer.service.mjs +0 -80
  208. package/dist/esm2022/lib/methods/recording-methods/start-recording.service.mjs +0 -197
  209. package/dist/esm2022/lib/methods/recording-methods/stop-recording.service.mjs +0 -112
  210. package/dist/esm2022/lib/methods/recording-methods/update-recording.service.mjs +0 -272
  211. package/dist/esm2022/lib/methods/requests-methods/launch-requests.service.mjs +0 -51
  212. package/dist/esm2022/lib/methods/requests-methods/respond-to-requests.service.mjs +0 -84
  213. package/dist/esm2022/lib/methods/settings-methods/launch-settings.service.mjs +0 -51
  214. package/dist/esm2022/lib/methods/settings-methods/modify-settings.service.mjs +0 -109
  215. package/dist/esm2022/lib/methods/stream-methods/click-audio.service.mjs +0 -275
  216. package/dist/esm2022/lib/methods/stream-methods/click-chat.service.mjs +0 -75
  217. package/dist/esm2022/lib/methods/stream-methods/click-screen-share.service.mjs +0 -178
  218. package/dist/esm2022/lib/methods/stream-methods/click-video.service.mjs +0 -271
  219. package/dist/esm2022/lib/methods/stream-methods/switch-audio.service.mjs +0 -80
  220. package/dist/esm2022/lib/methods/stream-methods/switch-video-alt.service.mjs +0 -116
  221. package/dist/esm2022/lib/methods/stream-methods/switch-video.service.mjs +0 -132
  222. package/dist/esm2022/lib/methods/utils/format-number.service.mjs +0 -57
  223. package/dist/esm2022/lib/methods/utils/generate-random-messages.service.mjs +0 -120
  224. package/dist/esm2022/lib/methods/utils/generate-random-participants.service.mjs +0 -126
  225. package/dist/esm2022/lib/methods/utils/generate-random-polls.service.mjs +0 -78
  226. package/dist/esm2022/lib/methods/utils/generate-random-request-list.service.mjs +0 -90
  227. package/dist/esm2022/lib/methods/utils/generate-random-waiting-room-list.service.mjs +0 -59
  228. package/dist/esm2022/lib/methods/utils/get-modal-position.util.mjs +0 -32
  229. package/dist/esm2022/lib/methods/utils/get-overlay-position.util.mjs +0 -31
  230. package/dist/esm2022/lib/methods/utils/initial-values.util.mjs +0 -379
  231. package/dist/esm2022/lib/methods/utils/meeting-timer/start-meeting-progress-timer.service.mjs +0 -96
  232. package/dist/esm2022/lib/methods/utils/mini-audio-player/mini-audio-player.component.mjs +0 -315
  233. package/dist/esm2022/lib/methods/utils/producer/a-params.service.mjs +0 -58
  234. package/dist/esm2022/lib/methods/utils/producer/h-params.service.mjs +0 -87
  235. package/dist/esm2022/lib/methods/utils/producer/screen-params.service.mjs +0 -61
  236. package/dist/esm2022/lib/methods/utils/producer/v-params.service.mjs +0 -87
  237. package/dist/esm2022/lib/methods/utils/producer/video-capture-constraints.service.mjs +0 -84
  238. package/dist/esm2022/lib/methods/utils/sleep.util.mjs +0 -17
  239. package/dist/esm2022/lib/methods/utils/sound-player.service.mjs +0 -63
  240. package/dist/esm2022/lib/methods/utils/validate-alphanumeric.service.mjs +0 -49
  241. package/dist/esm2022/lib/methods/waiting-methods/launch-waiting.service.mjs +0 -41
  242. package/dist/esm2022/lib/methods/waiting-methods/respond-to-waiting.service.mjs +0 -69
  243. package/dist/esm2022/lib/methods/whiteboard-methods/capture-canvas-stream.service.mjs +0 -98
  244. package/dist/esm2022/lib/methods/whiteboard-methods/launch-configure-whiteboard.service.mjs +0 -44
  245. package/dist/esm2022/lib/producer-client/producer-client-emits/create-device-client.service.mjs +0 -74
  246. package/dist/esm2022/lib/producer-client/producer-client-emits/join-room-client.service.mjs +0 -96
  247. package/dist/esm2022/lib/producer-client/producer-client-emits/update-room-parameters-client.service.mjs +0 -276
  248. package/dist/esm2022/lib/producers/producer-emits/join-con-room.service.mjs +0 -152
  249. package/dist/esm2022/lib/producers/producer-emits/join-room.service.mjs +0 -152
  250. package/dist/esm2022/lib/producers/socket-receive-methods/all-members-rest.service.mjs +0 -228
  251. package/dist/esm2022/lib/producers/socket-receive-methods/all-members.service.mjs +0 -218
  252. package/dist/esm2022/lib/producers/socket-receive-methods/all-waiting-room-members.service.mjs +0 -57
  253. package/dist/esm2022/lib/producers/socket-receive-methods/ban-participant.service.mjs +0 -76
  254. package/dist/esm2022/lib/producers/socket-receive-methods/control-media-host.service.mjs +0 -183
  255. package/dist/esm2022/lib/producers/socket-receive-methods/disconnect-user-self.service.mjs +0 -50
  256. package/dist/esm2022/lib/producers/socket-receive-methods/disconnect.service.mjs +0 -64
  257. package/dist/esm2022/lib/producers/socket-receive-methods/get-domains.service.mjs +0 -78
  258. package/dist/esm2022/lib/producers/socket-receive-methods/host-request-response.service.mjs +0 -150
  259. package/dist/esm2022/lib/producers/socket-receive-methods/meeting-ended.service.mjs +0 -73
  260. package/dist/esm2022/lib/producers/socket-receive-methods/meeting-still-there.service.mjs +0 -47
  261. package/dist/esm2022/lib/producers/socket-receive-methods/meeting-time-remaining.service.mjs +0 -63
  262. package/dist/esm2022/lib/producers/socket-receive-methods/participant-requested.service.mjs +0 -63
  263. package/dist/esm2022/lib/producers/socket-receive-methods/person-joined.service.mjs +0 -54
  264. package/dist/esm2022/lib/producers/socket-receive-methods/producer-media-closed.service.mjs +0 -129
  265. package/dist/esm2022/lib/producers/socket-receive-methods/producer-media-paused.service.mjs +0 -152
  266. package/dist/esm2022/lib/producers/socket-receive-methods/producer-media-resumed.service.mjs +0 -99
  267. package/dist/esm2022/lib/producers/socket-receive-methods/re-initiate-recording.service.mjs +0 -67
  268. package/dist/esm2022/lib/producers/socket-receive-methods/receive-message.service.mjs +0 -134
  269. package/dist/esm2022/lib/producers/socket-receive-methods/recording-notice.service.mjs +0 -233
  270. package/dist/esm2022/lib/producers/socket-receive-methods/room-record-params.service.mjs +0 -121
  271. package/dist/esm2022/lib/producers/socket-receive-methods/screen-producer-id.service.mjs +0 -86
  272. package/dist/esm2022/lib/producers/socket-receive-methods/start-records.service.mjs +0 -60
  273. package/dist/esm2022/lib/producers/socket-receive-methods/stopped-recording.service.mjs +0 -62
  274. package/dist/esm2022/lib/producers/socket-receive-methods/time-left-recording.service.mjs +0 -57
  275. package/dist/esm2022/lib/producers/socket-receive-methods/update-consuming-domains.service.mjs +0 -105
  276. package/dist/esm2022/lib/producers/socket-receive-methods/update-media-settings.service.mjs +0 -66
  277. package/dist/esm2022/lib/producers/socket-receive-methods/updated-co-host.service.mjs +0 -96
  278. package/dist/esm2022/lib/producers/socket-receive-methods/user-waiting.service.mjs +0 -52
  279. package/dist/esm2022/lib/sockets/socket-manager.service.mjs +0 -113
  280. package/dist/esm2022/mediasfu-angular.mjs +0 -5
  281. package/dist/esm2022/public-api.mjs +0 -187
@@ -1,250 +0,0 @@
1
- import { Component, Input, Injector } from '@angular/core';
2
- import { CommonModule } from '@angular/common';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "@angular/common";
5
- /**
6
- * FlexibleVideo component displays a customizable video grid, supporting dynamic layout and optional screenboard overlay.
7
- *
8
- * @selector app-flexible-video
9
- * @standalone true
10
- * @imports CommonModule
11
- *
12
- * @inputs
13
- * - `customWidth` (number): The custom width for each video grid item in pixels. Default is 0.
14
- * - `customHeight` (number): The custom height for each video grid item in pixels. Default is 0.
15
- * - `rows` (number): Number of rows in the video grid. Default is 0.
16
- * - `columns` (number): Number of columns in the video grid. Default is 0.
17
- * - `componentsToRender` (CustomMediaComponent[]): Array of components to render in the grid.
18
- * - `showAspect` (boolean): Flag to control aspect ratio display. Default is false.
19
- * - `backgroundColor` (string): Background color for the video grid. Default is 'transparent'.
20
- * - `Screenboard` (CustomMediaComponent): Optional screenboard component to overlay on the grid.
21
- * - `annotateScreenStream` (boolean): Flag to annotate the screen stream. Default is false.
22
- * - `localStreamScreen` (MediaStream): Local screen stream for video.
23
- *
24
- * @methods
25
- * - `ngOnInit()`: Initializes and generates the grid on component load if `showAspect` is true.
26
- * - `ngOnChanges(changes: SimpleChanges)`: Updates grid layout and dimensions if properties change.
27
- * - `generateGrid()`: Generates grid structure based on rows, columns, and `componentsToRender`.
28
- * - `createInjector(inputs: any)`: Creates and caches an injector for component inputs.
29
- *
30
- * @example
31
- * ```html
32
- * <app-flexible-video
33
- * [customWidth]="300"
34
- * [customHeight]="200"
35
- * [rows]="2"
36
- * [columns]="3"
37
- * [componentsToRender]="[{ component: VideoComponent, inputs: { stream: videoStream } }]"
38
- * showAspect="true"
39
- * [Screenboard]="{ component: ScreenOverlayComponent, inputs: { overlayData: data } }"
40
- * ></app-flexible-video>
41
- * ```
42
- **/
43
- export class FlexibleVideo {
44
- injector;
45
- customWidth = 0;
46
- customHeight = 0;
47
- rows = 0;
48
- columns = 0;
49
- componentsToRender = [];
50
- showAspect = false;
51
- backgroundColor = 'transparent';
52
- Screenboard;
53
- annotateScreenStream = false;
54
- localStreamScreen;
55
- key = 0;
56
- cardWidth = 0;
57
- cardHeight = 0;
58
- cardTop = 0;
59
- cardLeft = 0;
60
- canvasLeft = 0;
61
- grid = [];
62
- injectorCache = new WeakMap();
63
- constructor(injector) {
64
- this.injector = injector;
65
- }
66
- ngOnInit() {
67
- if (this.showAspect) {
68
- this.generateGrid();
69
- }
70
- }
71
- ngOnChanges(changes) {
72
- if (changes['columns'] ||
73
- changes['rows'] ||
74
- changes['componentsToRender'] ||
75
- changes['customWidth'] ||
76
- changes['customHeight']) {
77
- if (this.showAspect) {
78
- this.key++;
79
- this.generateGrid();
80
- }
81
- }
82
- if (this.annotateScreenStream && this.localStreamScreen) {
83
- const videoHeight = this.localStreamScreen.getVideoTracks()[0].getSettings().height || 0;
84
- const videoWidth = this.localStreamScreen.getVideoTracks()[0].getSettings().width || 0;
85
- this.cardWidth = videoWidth;
86
- this.cardHeight = videoHeight;
87
- this.cardTop = Math.floor((this.customHeight - videoHeight) / 2);
88
- this.cardLeft = Math.floor((this.customWidth - videoWidth) / 2);
89
- this.canvasLeft = this.cardLeft < 0 ? this.cardLeft : 0;
90
- }
91
- else {
92
- this.cardWidth = this.customWidth;
93
- this.cardHeight = this.customHeight;
94
- this.cardTop = 0;
95
- this.cardLeft = 0;
96
- this.canvasLeft = 0;
97
- }
98
- }
99
- generateGrid() {
100
- this.grid = [];
101
- for (let row = 0; row < this.rows; row++) {
102
- const rowComponents = [];
103
- for (let col = 0; col < this.columns; col++) {
104
- const index = row * this.columns + col;
105
- const component = this.componentsToRender[index];
106
- rowComponents.push(component);
107
- }
108
- this.grid.push(rowComponents);
109
- }
110
- }
111
- createInjector(inputs) {
112
- if (!this.injectorCache.has(inputs)) {
113
- const injector = Injector.create({
114
- providers: Object.keys(inputs).map((key) => ({ provide: key, useValue: inputs[key] })),
115
- parent: this.injector,
116
- });
117
- this.injectorCache.set(inputs, injector);
118
- }
119
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
120
- return this.injectorCache.get(inputs);
121
- }
122
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: FlexibleVideo, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
123
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: FlexibleVideo, isStandalone: true, selector: "app-flexible-video", inputs: { customWidth: "customWidth", customHeight: "customHeight", rows: "rows", columns: "columns", componentsToRender: "componentsToRender", showAspect: "showAspect", backgroundColor: "backgroundColor", Screenboard: "Screenboard", annotateScreenStream: "annotateScreenStream", localStreamScreen: "localStreamScreen" }, usesOnChanges: true, ngImport: i0, template: `
124
- <div
125
- style="padding: 0; flex: 1; margin: 0; position: relative; display: {{
126
- showAspect ? 'flex' : 'none'
127
- }};
128
- max-width: {{ customWidth }}px; overflow-x: hidden; overflow-y: auto; left: {{
129
- cardLeft > 0 ? cardLeft : 0
130
- }}px;"
131
- >
132
- <div
133
- *ngFor="let rowComponents of grid; let rowIndex = index"
134
- style="display: flex; flex-direction: row;"
135
- >
136
- <div
137
- *ngFor="let component of rowComponents; let colIndex = index"
138
- [ngStyle]="{
139
- flex: 1,
140
- width: cardWidth + 'px',
141
- height: cardHeight + 'px',
142
- backgroundColor: backgroundColor,
143
- margin: '1px',
144
- padding: 0,
145
- borderRadius: '0px',
146
- left: cardLeft + 'px'
147
- }"
148
- >
149
- <ng-container
150
- *ngComponentOutlet="component.component; injector: createInjector(component.inputs)"
151
- ></ng-container>
152
- </div>
153
- </div>
154
- <div
155
- *ngIf="Screenboard && Screenboard.component"
156
- [ngStyle]="{
157
- position: 'absolute',
158
- top: '0',
159
- left: canvasLeft + 'px',
160
- width: cardWidth + 'px',
161
- height: cardHeight + 'px',
162
- backgroundColor: 'rgba(0, 0, 0, 0.005)',
163
- zIndex: '2'
164
- }"
165
- >
166
- <ng-container
167
- *ngComponentOutlet="Screenboard.component; injector: createInjector(Screenboard.inputs)"
168
- ></ng-container>
169
- </div>
170
- </div>
171
- `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] });
172
- }
173
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: FlexibleVideo, decorators: [{
174
- type: Component,
175
- args: [{
176
- selector: 'app-flexible-video',
177
- standalone: true,
178
- imports: [CommonModule],
179
- template: `
180
- <div
181
- style="padding: 0; flex: 1; margin: 0; position: relative; display: {{
182
- showAspect ? 'flex' : 'none'
183
- }};
184
- max-width: {{ customWidth }}px; overflow-x: hidden; overflow-y: auto; left: {{
185
- cardLeft > 0 ? cardLeft : 0
186
- }}px;"
187
- >
188
- <div
189
- *ngFor="let rowComponents of grid; let rowIndex = index"
190
- style="display: flex; flex-direction: row;"
191
- >
192
- <div
193
- *ngFor="let component of rowComponents; let colIndex = index"
194
- [ngStyle]="{
195
- flex: 1,
196
- width: cardWidth + 'px',
197
- height: cardHeight + 'px',
198
- backgroundColor: backgroundColor,
199
- margin: '1px',
200
- padding: 0,
201
- borderRadius: '0px',
202
- left: cardLeft + 'px'
203
- }"
204
- >
205
- <ng-container
206
- *ngComponentOutlet="component.component; injector: createInjector(component.inputs)"
207
- ></ng-container>
208
- </div>
209
- </div>
210
- <div
211
- *ngIf="Screenboard && Screenboard.component"
212
- [ngStyle]="{
213
- position: 'absolute',
214
- top: '0',
215
- left: canvasLeft + 'px',
216
- width: cardWidth + 'px',
217
- height: cardHeight + 'px',
218
- backgroundColor: 'rgba(0, 0, 0, 0.005)',
219
- zIndex: '2'
220
- }"
221
- >
222
- <ng-container
223
- *ngComponentOutlet="Screenboard.component; injector: createInjector(Screenboard.inputs)"
224
- ></ng-container>
225
- </div>
226
- </div>
227
- `,
228
- }]
229
- }], ctorParameters: () => [{ type: i0.Injector }], propDecorators: { customWidth: [{
230
- type: Input
231
- }], customHeight: [{
232
- type: Input
233
- }], rows: [{
234
- type: Input
235
- }], columns: [{
236
- type: Input
237
- }], componentsToRender: [{
238
- type: Input
239
- }], showAspect: [{
240
- type: Input
241
- }], backgroundColor: [{
242
- type: Input
243
- }], Screenboard: [{
244
- type: Input
245
- }], annotateScreenStream: [{
246
- type: Input
247
- }], localStreamScreen: [{
248
- type: Input
249
- }] } });
250
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxleGlibGUtdmlkZW8uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWVkaWFzZnUtYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvZGlzcGxheS1jb21wb25lbnRzL2ZsZXhpYmxlLXZpZGVvL2ZsZXhpYmxlLXZpZGVvLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBb0MsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7O0FBaUIvQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztJQXFDSTtBQXlESixNQUFNLE9BQU8sYUFBYTtJQXNCSjtJQXJCWCxXQUFXLEdBQUcsQ0FBQyxDQUFDO0lBQ2hCLFlBQVksR0FBRyxDQUFDLENBQUM7SUFDakIsSUFBSSxHQUFHLENBQUMsQ0FBQztJQUNULE9BQU8sR0FBRyxDQUFDLENBQUM7SUFDWixrQkFBa0IsR0FBMkIsRUFBRSxDQUFDO0lBQ2hELFVBQVUsR0FBRyxLQUFLLENBQUM7SUFDbkIsZUFBZSxHQUFZLGFBQWEsQ0FBQztJQUN6QyxXQUFXLENBQXdCO0lBQ25DLG9CQUFvQixHQUFhLEtBQUssQ0FBQztJQUN2QyxpQkFBaUIsQ0FBZTtJQUV6QyxHQUFHLEdBQUcsQ0FBQyxDQUFDO0lBQ1IsU0FBUyxHQUFHLENBQUMsQ0FBQztJQUNkLFVBQVUsR0FBRyxDQUFDLENBQUM7SUFDZixPQUFPLEdBQUcsQ0FBQyxDQUFDO0lBQ1osUUFBUSxHQUFHLENBQUMsQ0FBQztJQUNiLFVBQVUsR0FBRyxDQUFDLENBQUM7SUFDZixJQUFJLEdBQVksRUFBRSxDQUFDO0lBRVgsYUFBYSxHQUFHLElBQUksT0FBTyxFQUFpQixDQUFDO0lBRXJELFlBQW9CLFFBQWtCO1FBQWxCLGFBQVEsR0FBUixRQUFRLENBQVU7SUFBRyxDQUFDO0lBRTFDLFFBQVE7UUFDTixJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNwQixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDdEIsQ0FBQztJQUNILENBQUM7SUFFRCxXQUFXLENBQUMsT0FBc0I7UUFDaEMsSUFDRSxPQUFPLENBQUMsU0FBUyxDQUFDO1lBQ2xCLE9BQU8sQ0FBQyxNQUFNLENBQUM7WUFDZixPQUFPLENBQUMsb0JBQW9CLENBQUM7WUFDN0IsT0FBTyxDQUFDLGFBQWEsQ0FBQztZQUN0QixPQUFPLENBQUMsY0FBYyxDQUFDLEVBQ3ZCLENBQUM7WUFDRCxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztnQkFDcEIsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO2dCQUNYLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUN0QixDQUFDO1FBQ0gsQ0FBQztRQUVELElBQUksSUFBSSxDQUFDLG9CQUFvQixJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBQ3hELE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxNQUFNLElBQUksQ0FBQyxDQUFDO1lBQ3pGLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxLQUFLLElBQUksQ0FBQyxDQUFDO1lBQ3ZGLElBQUksQ0FBQyxTQUFTLEdBQUcsVUFBVSxDQUFDO1lBQzVCLElBQUksQ0FBQyxVQUFVLEdBQUcsV0FBVyxDQUFDO1lBQzlCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLEdBQUcsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDakUsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsR0FBRyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUNoRSxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDMUQsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUM7WUFDbEMsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDO1lBQ3BDLElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDO1lBQ2pCLElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDO1lBQ2xCLElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQyxDQUFDO1FBQ3RCLENBQUM7SUFDSCxDQUFDO0lBRUQsWUFBWTtRQUNWLElBQUksQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ2YsS0FBSyxJQUFJLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBRyxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQztZQUN6QyxNQUFNLGFBQWEsR0FBRyxFQUFFLENBQUM7WUFDekIsS0FBSyxJQUFJLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBRyxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQztnQkFDNUMsTUFBTSxLQUFLLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxPQUFPLEdBQUcsR0FBRyxDQUFDO2dCQUN2QyxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ2pELGFBQWEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDaEMsQ0FBQztZQUNELElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ2hDLENBQUM7SUFDSCxDQUFDO0lBRUQsY0FBYyxDQUFDLE1BQVc7UUFDeEIsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7WUFDcEMsTUFBTSxRQUFRLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQztnQkFDL0IsU0FBUyxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFDdEYsTUFBTSxFQUFFLElBQUksQ0FBQyxRQUFRO2FBQ3RCLENBQUMsQ0FBQztZQUNILElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQztRQUMzQyxDQUFDO1FBQ0Qsb0VBQW9FO1FBQ3BFLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFFLENBQUM7SUFDekMsQ0FBQzt1R0FwRlUsYUFBYTsyRkFBYixhQUFhLHFhQWxEZDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBZ0RULDJEQWpEUyxZQUFZOzsyRkFtRFgsYUFBYTtrQkF0RHpCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLG9CQUFvQjtvQkFDOUIsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQztvQkFDdkIsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FnRFQ7aUJBQ0Y7NkVBRVUsV0FBVztzQkFBbkIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csa0JBQWtCO3NCQUExQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkNoYW5nZXMsIE9uSW5pdCwgU2ltcGxlQ2hhbmdlcywgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDdXN0b21NZWRpYUNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL0B0eXBlcy90eXBlcyc7XG5leHBvcnQgaW50ZXJmYWNlIEZsZXhpYmxlVmlkZW9PcHRpb25zIHtcbiAgY3VzdG9tV2lkdGg6IG51bWJlcjtcbiAgY3VzdG9tSGVpZ2h0OiBudW1iZXI7XG4gIHJvd3M6IG51bWJlcjtcbiAgY29sdW1uczogbnVtYmVyO1xuICBjb21wb25lbnRzVG9SZW5kZXI6IEN1c3RvbU1lZGlhQ29tcG9uZW50W107XG4gIHNob3dBc3BlY3Q/OiBib29sZWFuO1xuICBiYWNrZ3JvdW5kQ29sb3I/OiBzdHJpbmc7XG4gIFNjcmVlbmJvYXJkPzogQ3VzdG9tTWVkaWFDb21wb25lbnQ7XG4gIGFubm90YXRlU2NyZWVuU3RyZWFtPzogYm9vbGVhbjtcbiAgbG9jYWxTdHJlYW1TY3JlZW46IE1lZGlhU3RyZWFtIHwgbnVsbDtcbn1cblxuZXhwb3J0IHR5cGUgRmxleGlibGVWaWRlb1R5cGUgPSAob3B0aW9uczogRmxleGlibGVWaWRlb09wdGlvbnMpID0+IEhUTUxFbGVtZW50O1xuXG4vKipcbiAqIEZsZXhpYmxlVmlkZW8gY29tcG9uZW50IGRpc3BsYXlzIGEgY3VzdG9taXphYmxlIHZpZGVvIGdyaWQsIHN1cHBvcnRpbmcgZHluYW1pYyBsYXlvdXQgYW5kIG9wdGlvbmFsIHNjcmVlbmJvYXJkIG92ZXJsYXkuXG4gKlxuICogQHNlbGVjdG9yIGFwcC1mbGV4aWJsZS12aWRlb1xuICogQHN0YW5kYWxvbmUgdHJ1ZVxuICogQGltcG9ydHMgQ29tbW9uTW9kdWxlXG4gKlxuICogQGlucHV0c1xuICogLSBgY3VzdG9tV2lkdGhgIChudW1iZXIpOiBUaGUgY3VzdG9tIHdpZHRoIGZvciBlYWNoIHZpZGVvIGdyaWQgaXRlbSBpbiBwaXhlbHMuIERlZmF1bHQgaXMgMC5cbiAqIC0gYGN1c3RvbUhlaWdodGAgKG51bWJlcik6IFRoZSBjdXN0b20gaGVpZ2h0IGZvciBlYWNoIHZpZGVvIGdyaWQgaXRlbSBpbiBwaXhlbHMuIERlZmF1bHQgaXMgMC5cbiAqIC0gYHJvd3NgIChudW1iZXIpOiBOdW1iZXIgb2Ygcm93cyBpbiB0aGUgdmlkZW8gZ3JpZC4gRGVmYXVsdCBpcyAwLlxuICogLSBgY29sdW1uc2AgKG51bWJlcik6IE51bWJlciBvZiBjb2x1bW5zIGluIHRoZSB2aWRlbyBncmlkLiBEZWZhdWx0IGlzIDAuXG4gKiAtIGBjb21wb25lbnRzVG9SZW5kZXJgIChDdXN0b21NZWRpYUNvbXBvbmVudFtdKTogQXJyYXkgb2YgY29tcG9uZW50cyB0byByZW5kZXIgaW4gdGhlIGdyaWQuXG4gKiAtIGBzaG93QXNwZWN0YCAoYm9vbGVhbik6IEZsYWcgdG8gY29udHJvbCBhc3BlY3QgcmF0aW8gZGlzcGxheS4gRGVmYXVsdCBpcyBmYWxzZS5cbiAqIC0gYGJhY2tncm91bmRDb2xvcmAgKHN0cmluZyk6IEJhY2tncm91bmQgY29sb3IgZm9yIHRoZSB2aWRlbyBncmlkLiBEZWZhdWx0IGlzICd0cmFuc3BhcmVudCcuXG4gKiAtIGBTY3JlZW5ib2FyZGAgKEN1c3RvbU1lZGlhQ29tcG9uZW50KTogT3B0aW9uYWwgc2NyZWVuYm9hcmQgY29tcG9uZW50IHRvIG92ZXJsYXkgb24gdGhlIGdyaWQuXG4gKiAtIGBhbm5vdGF0ZVNjcmVlblN0cmVhbWAgKGJvb2xlYW4pOiBGbGFnIHRvIGFubm90YXRlIHRoZSBzY3JlZW4gc3RyZWFtLiBEZWZhdWx0IGlzIGZhbHNlLlxuICogLSBgbG9jYWxTdHJlYW1TY3JlZW5gIChNZWRpYVN0cmVhbSk6IExvY2FsIHNjcmVlbiBzdHJlYW0gZm9yIHZpZGVvLlxuICpcbiAqIEBtZXRob2RzXG4gKiAtIGBuZ09uSW5pdCgpYDogSW5pdGlhbGl6ZXMgYW5kIGdlbmVyYXRlcyB0aGUgZ3JpZCBvbiBjb21wb25lbnQgbG9hZCBpZiBgc2hvd0FzcGVjdGAgaXMgdHJ1ZS5cbiAqIC0gYG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpYDogVXBkYXRlcyBncmlkIGxheW91dCBhbmQgZGltZW5zaW9ucyBpZiBwcm9wZXJ0aWVzIGNoYW5nZS5cbiAqIC0gYGdlbmVyYXRlR3JpZCgpYDogR2VuZXJhdGVzIGdyaWQgc3RydWN0dXJlIGJhc2VkIG9uIHJvd3MsIGNvbHVtbnMsIGFuZCBgY29tcG9uZW50c1RvUmVuZGVyYC5cbiAqIC0gYGNyZWF0ZUluamVjdG9yKGlucHV0czogYW55KWA6IENyZWF0ZXMgYW5kIGNhY2hlcyBhbiBpbmplY3RvciBmb3IgY29tcG9uZW50IGlucHV0cy5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgaHRtbFxuICogPGFwcC1mbGV4aWJsZS12aWRlb1xuICogICBbY3VzdG9tV2lkdGhdPVwiMzAwXCJcbiAqICAgW2N1c3RvbUhlaWdodF09XCIyMDBcIlxuICogICBbcm93c109XCIyXCJcbiAqICAgW2NvbHVtbnNdPVwiM1wiXG4gKiAgIFtjb21wb25lbnRzVG9SZW5kZXJdPVwiW3sgY29tcG9uZW50OiBWaWRlb0NvbXBvbmVudCwgaW5wdXRzOiB7IHN0cmVhbTogdmlkZW9TdHJlYW0gfSB9XVwiXG4gKiAgIHNob3dBc3BlY3Q9XCJ0cnVlXCJcbiAqICAgW1NjcmVlbmJvYXJkXT1cInsgY29tcG9uZW50OiBTY3JlZW5PdmVybGF5Q29tcG9uZW50LCBpbnB1dHM6IHsgb3ZlcmxheURhdGE6IGRhdGEgfSB9XCJcbiAqID48L2FwcC1mbGV4aWJsZS12aWRlbz5cbiAqIGBgYFxuICoqL1xuXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1mbGV4aWJsZS12aWRlbycsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXZcbiAgICAgIHN0eWxlPVwicGFkZGluZzogMDsgZmxleDogMTsgbWFyZ2luOiAwOyBwb3NpdGlvbjogcmVsYXRpdmU7IGRpc3BsYXk6IHt7XG4gICAgICAgIHNob3dBc3BlY3QgPyAnZmxleCcgOiAnbm9uZSdcbiAgICAgIH19O1xuICAgICAgICAgICAgIG1heC13aWR0aDoge3sgY3VzdG9tV2lkdGggfX1weDsgb3ZlcmZsb3cteDogaGlkZGVuOyBvdmVyZmxvdy15OiBhdXRvOyBsZWZ0OiB7e1xuICAgICAgICBjYXJkTGVmdCA+IDAgPyBjYXJkTGVmdCA6IDBcbiAgICAgIH19cHg7XCJcbiAgICA+XG4gICAgICA8ZGl2XG4gICAgICAgICpuZ0Zvcj1cImxldCByb3dDb21wb25lbnRzIG9mIGdyaWQ7IGxldCByb3dJbmRleCA9IGluZGV4XCJcbiAgICAgICAgc3R5bGU9XCJkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogcm93O1wiXG4gICAgICA+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICAqbmdGb3I9XCJsZXQgY29tcG9uZW50IG9mIHJvd0NvbXBvbmVudHM7IGxldCBjb2xJbmRleCA9IGluZGV4XCJcbiAgICAgICAgICBbbmdTdHlsZV09XCJ7XG4gICAgICAgICAgICBmbGV4OiAxLFxuICAgICAgICAgICAgd2lkdGg6IGNhcmRXaWR0aCArICdweCcsXG4gICAgICAgICAgICBoZWlnaHQ6IGNhcmRIZWlnaHQgKyAncHgnLFxuICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yOiBiYWNrZ3JvdW5kQ29sb3IsXG4gICAgICAgICAgICBtYXJnaW46ICcxcHgnLFxuICAgICAgICAgICAgcGFkZGluZzogMCxcbiAgICAgICAgICAgIGJvcmRlclJhZGl1czogJzBweCcsXG4gICAgICAgICAgICBsZWZ0OiBjYXJkTGVmdCArICdweCdcbiAgICAgICAgICB9XCJcbiAgICAgICAgPlxuICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICpuZ0NvbXBvbmVudE91dGxldD1cImNvbXBvbmVudC5jb21wb25lbnQ7IGluamVjdG9yOiBjcmVhdGVJbmplY3Rvcihjb21wb25lbnQuaW5wdXRzKVwiXG4gICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdlxuICAgICAgICAqbmdJZj1cIlNjcmVlbmJvYXJkICYmIFNjcmVlbmJvYXJkLmNvbXBvbmVudFwiXG4gICAgICAgIFtuZ1N0eWxlXT1cIntcbiAgICAgICAgICBwb3NpdGlvbjogJ2Fic29sdXRlJyxcbiAgICAgICAgICB0b3A6ICcwJyxcbiAgICAgICAgICBsZWZ0OiBjYW52YXNMZWZ0ICsgJ3B4JyxcbiAgICAgICAgICB3aWR0aDogY2FyZFdpZHRoICsgJ3B4JyxcbiAgICAgICAgICBoZWlnaHQ6IGNhcmRIZWlnaHQgKyAncHgnLFxuICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogJ3JnYmEoMCwgMCwgMCwgMC4wMDUpJyxcbiAgICAgICAgICB6SW5kZXg6ICcyJ1xuICAgICAgICB9XCJcbiAgICAgID5cbiAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICpuZ0NvbXBvbmVudE91dGxldD1cIlNjcmVlbmJvYXJkLmNvbXBvbmVudDsgaW5qZWN0b3I6IGNyZWF0ZUluamVjdG9yKFNjcmVlbmJvYXJkLmlucHV0cylcIlxuICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgYCxcbn0pXG5leHBvcnQgY2xhc3MgRmxleGlibGVWaWRlbyBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcbiAgQElucHV0KCkgY3VzdG9tV2lkdGggPSAwO1xuICBASW5wdXQoKSBjdXN0b21IZWlnaHQgPSAwO1xuICBASW5wdXQoKSByb3dzID0gMDtcbiAgQElucHV0KCkgY29sdW1ucyA9IDA7XG4gIEBJbnB1dCgpIGNvbXBvbmVudHNUb1JlbmRlcjogQ3VzdG9tTWVkaWFDb21wb25lbnRbXSA9IFtdO1xuICBASW5wdXQoKSBzaG93QXNwZWN0ID0gZmFsc2U7XG4gIEBJbnB1dCgpIGJhY2tncm91bmRDb2xvcj86IHN0cmluZyA9ICd0cmFuc3BhcmVudCc7XG4gIEBJbnB1dCgpIFNjcmVlbmJvYXJkPzogQ3VzdG9tTWVkaWFDb21wb25lbnQ7XG4gIEBJbnB1dCgpIGFubm90YXRlU2NyZWVuU3RyZWFtPzogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBsb2NhbFN0cmVhbVNjcmVlbj86IE1lZGlhU3RyZWFtO1xuXG4gIGtleSA9IDA7XG4gIGNhcmRXaWR0aCA9IDA7XG4gIGNhcmRIZWlnaHQgPSAwO1xuICBjYXJkVG9wID0gMDtcbiAgY2FyZExlZnQgPSAwO1xuICBjYW52YXNMZWZ0ID0gMDtcbiAgZ3JpZDogYW55W11bXSA9IFtdO1xuXG4gIHByaXZhdGUgaW5qZWN0b3JDYWNoZSA9IG5ldyBXZWFrTWFwPGFueSwgSW5qZWN0b3I+KCk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IpIHt9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgaWYgKHRoaXMuc2hvd0FzcGVjdCkge1xuICAgICAgdGhpcy5nZW5lcmF0ZUdyaWQoKTtcbiAgICB9XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgaWYgKFxuICAgICAgY2hhbmdlc1snY29sdW1ucyddIHx8XG4gICAgICBjaGFuZ2VzWydyb3dzJ10gfHxcbiAgICAgIGNoYW5nZXNbJ2NvbXBvbmVudHNUb1JlbmRlciddIHx8XG4gICAgICBjaGFuZ2VzWydjdXN0b21XaWR0aCddIHx8XG4gICAgICBjaGFuZ2VzWydjdXN0b21IZWlnaHQnXVxuICAgICkge1xuICAgICAgaWYgKHRoaXMuc2hvd0FzcGVjdCkge1xuICAgICAgICB0aGlzLmtleSsrO1xuICAgICAgICB0aGlzLmdlbmVyYXRlR3JpZCgpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh0aGlzLmFubm90YXRlU2NyZWVuU3RyZWFtICYmIHRoaXMubG9jYWxTdHJlYW1TY3JlZW4pIHtcbiAgICAgIGNvbnN0IHZpZGVvSGVpZ2h0ID0gdGhpcy5sb2NhbFN0cmVhbVNjcmVlbi5nZXRWaWRlb1RyYWNrcygpWzBdLmdldFNldHRpbmdzKCkuaGVpZ2h0IHx8IDA7XG4gICAgICBjb25zdCB2aWRlb1dpZHRoID0gdGhpcy5sb2NhbFN0cmVhbVNjcmVlbi5nZXRWaWRlb1RyYWNrcygpWzBdLmdldFNldHRpbmdzKCkud2lkdGggfHwgMDtcbiAgICAgIHRoaXMuY2FyZFdpZHRoID0gdmlkZW9XaWR0aDtcbiAgICAgIHRoaXMuY2FyZEhlaWdodCA9IHZpZGVvSGVpZ2h0O1xuICAgICAgdGhpcy5jYXJkVG9wID0gTWF0aC5mbG9vcigodGhpcy5jdXN0b21IZWlnaHQgLSB2aWRlb0hlaWdodCkgLyAyKTtcbiAgICAgIHRoaXMuY2FyZExlZnQgPSBNYXRoLmZsb29yKCh0aGlzLmN1c3RvbVdpZHRoIC0gdmlkZW9XaWR0aCkgLyAyKTtcbiAgICAgIHRoaXMuY2FudmFzTGVmdCA9IHRoaXMuY2FyZExlZnQgPCAwID8gdGhpcy5jYXJkTGVmdCA6IDA7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY2FyZFdpZHRoID0gdGhpcy5jdXN0b21XaWR0aDtcbiAgICAgIHRoaXMuY2FyZEhlaWdodCA9IHRoaXMuY3VzdG9tSGVpZ2h0O1xuICAgICAgdGhpcy5jYXJkVG9wID0gMDtcbiAgICAgIHRoaXMuY2FyZExlZnQgPSAwO1xuICAgICAgdGhpcy5jYW52YXNMZWZ0ID0gMDtcbiAgICB9XG4gIH1cblxuICBnZW5lcmF0ZUdyaWQoKSB7XG4gICAgdGhpcy5ncmlkID0gW107XG4gICAgZm9yIChsZXQgcm93ID0gMDsgcm93IDwgdGhpcy5yb3dzOyByb3crKykge1xuICAgICAgY29uc3Qgcm93Q29tcG9uZW50cyA9IFtdO1xuICAgICAgZm9yIChsZXQgY29sID0gMDsgY29sIDwgdGhpcy5jb2x1bW5zOyBjb2wrKykge1xuICAgICAgICBjb25zdCBpbmRleCA9IHJvdyAqIHRoaXMuY29sdW1ucyArIGNvbDtcbiAgICAgICAgY29uc3QgY29tcG9uZW50ID0gdGhpcy5jb21wb25lbnRzVG9SZW5kZXJbaW5kZXhdO1xuICAgICAgICByb3dDb21wb25lbnRzLnB1c2goY29tcG9uZW50KTtcbiAgICAgIH1cbiAgICAgIHRoaXMuZ3JpZC5wdXNoKHJvd0NvbXBvbmVudHMpO1xuICAgIH1cbiAgfVxuXG4gIGNyZWF0ZUluamVjdG9yKGlucHV0czogYW55KSB7XG4gICAgaWYgKCF0aGlzLmluamVjdG9yQ2FjaGUuaGFzKGlucHV0cykpIHtcbiAgICAgIGNvbnN0IGluamVjdG9yID0gSW5qZWN0b3IuY3JlYXRlKHtcbiAgICAgICAgcHJvdmlkZXJzOiBPYmplY3Qua2V5cyhpbnB1dHMpLm1hcCgoa2V5KSA9PiAoeyBwcm92aWRlOiBrZXksIHVzZVZhbHVlOiBpbnB1dHNba2V5XSB9KSksXG4gICAgICAgIHBhcmVudDogdGhpcy5pbmplY3RvcixcbiAgICAgIH0pO1xuICAgICAgdGhpcy5pbmplY3RvckNhY2hlLnNldChpbnB1dHMsIGluamVjdG9yKTtcbiAgICB9XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1ub24tbnVsbC1hc3NlcnRpb25cbiAgICByZXR1cm4gdGhpcy5pbmplY3RvckNhY2hlLmdldChpbnB1dHMpITtcbiAgfVxufVxuIl19
@@ -1,102 +0,0 @@
1
- import { Component, Input } from '@angular/core';
2
- import { CommonModule } from '@angular/common';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "@angular/common";
5
- /**
6
- * LoadingModal displays a loading spinner and a customizable "Loading..." text as an overlay.
7
- *
8
- * @selector app-loading-modal
9
- * @standalone true
10
- * @imports CommonModule
11
- *
12
- * @inputs
13
- * - `isVisible` (boolean): Controls the visibility of the modal overlay. Default is `false`.
14
- * - `backgroundColor` (string): Background color of the modal overlay. Default is `'rgba(0, 0, 0, 0.5)'`.
15
- * - `displayColor` (string): Color of the loading text. Default is `'white'`.
16
- *
17
- * @properties
18
- * - `modalContainerStyle` (object): Computed styles for the modal container.
19
- * - `modalContentStyle` (object): Computed styles for the modal content.
20
- * - `spinnerContainerStyle` (object): Computed styles for the spinner container.
21
- * - `loadingTextStyle` (object): Computed styles for the loading text.
22
- *
23
- * @example
24
- * ```html
25
- * <app-loading-modal
26
- * [isVisible]="true"
27
- * [backgroundColor]="'rgba(0, 0, 0, 0.5)'"
28
- * [displayColor]="'white'">
29
- * </app-loading-modal>
30
- * ```
31
- *
32
- * @styles
33
- * - `.spinner`: Styles for the loading spinner.
34
- * - `@keyframes spin`: Keyframes for the spinner rotation animation.
35
- * - `.modal-content`: Styles for the modal content container.
36
- * - `.loading-text`: Styles for the loading text.
37
- **/
38
- export class LoadingModal {
39
- isVisible = false;
40
- backgroundColor = 'rgba(0, 0, 0, 0.5)';
41
- displayColor = 'white';
42
- get modalContainerStyle() {
43
- return {
44
- position: 'fixed',
45
- top: '0',
46
- left: '0',
47
- width: '100%',
48
- height: '100%',
49
- backgroundColor: this.backgroundColor,
50
- display: 'flex',
51
- alignItems: 'center',
52
- justifyContent: 'center',
53
- zIndex: '999',
54
- };
55
- }
56
- get modalContentStyle() {
57
- return {
58
- backgroundColor: this.backgroundColor,
59
- borderRadius: '10px',
60
- padding: '10px',
61
- maxWidth: '200px',
62
- textAlign: 'center',
63
- };
64
- }
65
- get spinnerContainerStyle() {
66
- return {
67
- marginBottom: '20px',
68
- };
69
- }
70
- get loadingTextStyle() {
71
- return {
72
- color: this.displayColor,
73
- };
74
- }
75
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: LoadingModal, deps: [], target: i0.ɵɵFactoryTarget.Component });
76
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: LoadingModal, isStandalone: true, selector: "app-loading-modal", inputs: { isVisible: "isVisible", backgroundColor: "backgroundColor", displayColor: "displayColor" }, ngImport: i0, template: `
77
- <div *ngIf="isVisible" [ngStyle]="modalContainerStyle">
78
- <div [ngStyle]="modalContentStyle" class="modal-content">
79
- <div class="spinner" [ngStyle]="spinnerContainerStyle"></div>
80
- <div [ngStyle]="loadingTextStyle" class="loading-text">Loading...</div>
81
- </div>
82
- </div>
83
- `, isInline: true, styles: [".spinner{border:12px solid #f3f3f3;border-top:12px solid black;border-radius:50%;width:50px;height:50px;animation:spin 2s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.modal-content{display:flex;flex-direction:column;align-items:center}.loading-text{margin-top:10px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] });
84
- }
85
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: LoadingModal, decorators: [{
86
- type: Component,
87
- args: [{ selector: 'app-loading-modal', standalone: true, imports: [CommonModule], template: `
88
- <div *ngIf="isVisible" [ngStyle]="modalContainerStyle">
89
- <div [ngStyle]="modalContentStyle" class="modal-content">
90
- <div class="spinner" [ngStyle]="spinnerContainerStyle"></div>
91
- <div [ngStyle]="loadingTextStyle" class="loading-text">Loading...</div>
92
- </div>
93
- </div>
94
- `, styles: [".spinner{border:12px solid #f3f3f3;border-top:12px solid black;border-radius:50%;width:50px;height:50px;animation:spin 2s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.modal-content{display:flex;flex-direction:column;align-items:center}.loading-text{margin-top:10px}\n"] }]
95
- }], propDecorators: { isVisible: [{
96
- type: Input
97
- }], backgroundColor: [{
98
- type: Input
99
- }], displayColor: [{
100
- type: Input
101
- }] } });
102
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGluZy1tb2RhbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tZWRpYXNmdS1hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9kaXNwbGF5LWNvbXBvbmVudHMvbG9hZGluZy1tb2RhbC9sb2FkaW5nLW1vZGFsLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7OztBQVMvQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7SUFnQ0k7QUEyQ0osTUFBTSxPQUFPLFlBQVk7SUFDZCxTQUFTLEdBQUcsS0FBSyxDQUFDO0lBQ2xCLGVBQWUsR0FBWSxvQkFBb0IsQ0FBQztJQUNoRCxZQUFZLEdBQVksT0FBTyxDQUFDO0lBRXpDLElBQUksbUJBQW1CO1FBQ3JCLE9BQU87WUFDTCxRQUFRLEVBQUUsT0FBTztZQUNqQixHQUFHLEVBQUUsR0FBRztZQUNSLElBQUksRUFBRSxHQUFHO1lBQ1QsS0FBSyxFQUFFLE1BQU07WUFDYixNQUFNLEVBQUUsTUFBTTtZQUNkLGVBQWUsRUFBRSxJQUFJLENBQUMsZUFBZTtZQUNyQyxPQUFPLEVBQUUsTUFBTTtZQUNmLFVBQVUsRUFBRSxRQUFRO1lBQ3BCLGNBQWMsRUFBRSxRQUFRO1lBQ3hCLE1BQU0sRUFBRSxLQUFLO1NBQ2QsQ0FBQztJQUNKLENBQUM7SUFFRCxJQUFJLGlCQUFpQjtRQUNuQixPQUFPO1lBQ0wsZUFBZSxFQUFFLElBQUksQ0FBQyxlQUFlO1lBQ3JDLFlBQVksRUFBRSxNQUFNO1lBQ3BCLE9BQU8sRUFBRSxNQUFNO1lBQ2YsUUFBUSxFQUFFLE9BQU87WUFDakIsU0FBUyxFQUFFLFFBQVE7U0FDcEIsQ0FBQztJQUNKLENBQUM7SUFFRCxJQUFJLHFCQUFxQjtRQUN2QixPQUFPO1lBQ0wsWUFBWSxFQUFFLE1BQU07U0FDckIsQ0FBQztJQUNKLENBQUM7SUFFRCxJQUFJLGdCQUFnQjtRQUNsQixPQUFPO1lBQ0wsS0FBSyxFQUFFLElBQUksQ0FBQyxZQUFZO1NBQ3pCLENBQUM7SUFDSixDQUFDO3VHQXhDVSxZQUFZOzJGQUFaLFlBQVksbUxBckNiOzs7Ozs7O0dBT1QsNFhBUlMsWUFBWTs7MkZBc0NYLFlBQVk7a0JBekN4QixTQUFTOytCQUNFLG1CQUFtQixjQUNqQixJQUFJLFdBQ1AsQ0FBQyxZQUFZLENBQUMsWUFDYjs7Ozs7OztHQU9UOzhCQStCUSxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5leHBvcnQgaW50ZXJmYWNlIExvYWRpbmdNb2RhbE9wdGlvbnMge1xuICBpc1Zpc2libGU6IGJvb2xlYW47XG4gIGJhY2tncm91bmRDb2xvcj86IHN0cmluZztcbiAgZGlzcGxheUNvbG9yPzogc3RyaW5nO1xufVxuXG5leHBvcnQgdHlwZSBMb2FkaW5nTW9kYWxUeXBlID0gKG9wdGlvbnM6IExvYWRpbmdNb2RhbE9wdGlvbnMpID0+IEhUTUxFbGVtZW50O1xuXG4vKipcbiAqIExvYWRpbmdNb2RhbCBkaXNwbGF5cyBhIGxvYWRpbmcgc3Bpbm5lciBhbmQgYSBjdXN0b21pemFibGUgXCJMb2FkaW5nLi4uXCIgdGV4dCBhcyBhbiBvdmVybGF5LlxuICpcbiAqIEBzZWxlY3RvciBhcHAtbG9hZGluZy1tb2RhbFxuICogQHN0YW5kYWxvbmUgdHJ1ZVxuICogQGltcG9ydHMgQ29tbW9uTW9kdWxlXG4gKlxuICogQGlucHV0c1xuICogLSBgaXNWaXNpYmxlYCAoYm9vbGVhbik6IENvbnRyb2xzIHRoZSB2aXNpYmlsaXR5IG9mIHRoZSBtb2RhbCBvdmVybGF5LiBEZWZhdWx0IGlzIGBmYWxzZWAuXG4gKiAtIGBiYWNrZ3JvdW5kQ29sb3JgIChzdHJpbmcpOiBCYWNrZ3JvdW5kIGNvbG9yIG9mIHRoZSBtb2RhbCBvdmVybGF5LiBEZWZhdWx0IGlzIGAncmdiYSgwLCAwLCAwLCAwLjUpJ2AuXG4gKiAtIGBkaXNwbGF5Q29sb3JgIChzdHJpbmcpOiBDb2xvciBvZiB0aGUgbG9hZGluZyB0ZXh0LiBEZWZhdWx0IGlzIGAnd2hpdGUnYC5cbiAqXG4gKiBAcHJvcGVydGllc1xuICogLSBgbW9kYWxDb250YWluZXJTdHlsZWAgKG9iamVjdCk6IENvbXB1dGVkIHN0eWxlcyBmb3IgdGhlIG1vZGFsIGNvbnRhaW5lci5cbiAqIC0gYG1vZGFsQ29udGVudFN0eWxlYCAob2JqZWN0KTogQ29tcHV0ZWQgc3R5bGVzIGZvciB0aGUgbW9kYWwgY29udGVudC5cbiAqIC0gYHNwaW5uZXJDb250YWluZXJTdHlsZWAgKG9iamVjdCk6IENvbXB1dGVkIHN0eWxlcyBmb3IgdGhlIHNwaW5uZXIgY29udGFpbmVyLlxuICogLSBgbG9hZGluZ1RleHRTdHlsZWAgKG9iamVjdCk6IENvbXB1dGVkIHN0eWxlcyBmb3IgdGhlIGxvYWRpbmcgdGV4dC5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgaHRtbFxuICogPGFwcC1sb2FkaW5nLW1vZGFsXG4gKiAgIFtpc1Zpc2libGVdPVwidHJ1ZVwiXG4gKiAgIFtiYWNrZ3JvdW5kQ29sb3JdPVwiJ3JnYmEoMCwgMCwgMCwgMC41KSdcIlxuICogICBbZGlzcGxheUNvbG9yXT1cIid3aGl0ZSdcIj5cbiAqIDwvYXBwLWxvYWRpbmctbW9kYWw+XG4gKiBgYGBcbiAqXG4gKiBAc3R5bGVzXG4gKiAtIGAuc3Bpbm5lcmA6IFN0eWxlcyBmb3IgdGhlIGxvYWRpbmcgc3Bpbm5lci5cbiAqIC0gYEBrZXlmcmFtZXMgc3BpbmA6IEtleWZyYW1lcyBmb3IgdGhlIHNwaW5uZXIgcm90YXRpb24gYW5pbWF0aW9uLlxuICogLSBgLm1vZGFsLWNvbnRlbnRgOiBTdHlsZXMgZm9yIHRoZSBtb2RhbCBjb250ZW50IGNvbnRhaW5lci5cbiAqIC0gYC5sb2FkaW5nLXRleHRgOiBTdHlsZXMgZm9yIHRoZSBsb2FkaW5nIHRleHQuXG4gKiovXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1sb2FkaW5nLW1vZGFsJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiAqbmdJZj1cImlzVmlzaWJsZVwiIFtuZ1N0eWxlXT1cIm1vZGFsQ29udGFpbmVyU3R5bGVcIj5cbiAgICAgIDxkaXYgW25nU3R5bGVdPVwibW9kYWxDb250ZW50U3R5bGVcIiBjbGFzcz1cIm1vZGFsLWNvbnRlbnRcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNwaW5uZXJcIiBbbmdTdHlsZV09XCJzcGlubmVyQ29udGFpbmVyU3R5bGVcIj48L2Rpdj5cbiAgICAgICAgPGRpdiBbbmdTdHlsZV09XCJsb2FkaW5nVGV4dFN0eWxlXCIgY2xhc3M9XCJsb2FkaW5nLXRleHRcIj5Mb2FkaW5nLi4uPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgYCxcbiAgc3R5bGVzOiBbXG4gICAgYFxuICAgICAgLnNwaW5uZXIge1xuICAgICAgICBib3JkZXI6IDEycHggc29saWQgI2YzZjNmMzsgLyogTGlnaHQgZ3JleSAqL1xuICAgICAgICBib3JkZXItdG9wOiAxMnB4IHNvbGlkIGJsYWNrOyAvKiBCbGFjayAqL1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgIHdpZHRoOiA1MHB4O1xuICAgICAgICBoZWlnaHQ6IDUwcHg7XG4gICAgICAgIGFuaW1hdGlvbjogc3BpbiAycyBsaW5lYXIgaW5maW5pdGU7XG4gICAgICB9XG4gICAgICBAa2V5ZnJhbWVzIHNwaW4ge1xuICAgICAgICAwJSB7XG4gICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XG4gICAgICAgIH1cbiAgICAgICAgMTAwJSB7XG4gICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgLm1vZGFsLWNvbnRlbnQge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgfVxuICAgICAgLmxvYWRpbmctdGV4dCB7XG4gICAgICAgIG1hcmdpbi10b3A6IDEwcHg7XG4gICAgICB9XG4gICAgYCxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgTG9hZGluZ01vZGFsIHtcbiAgQElucHV0KCkgaXNWaXNpYmxlID0gZmFsc2U7XG4gIEBJbnB1dCgpIGJhY2tncm91bmRDb2xvcj86IHN0cmluZyA9ICdyZ2JhKDAsIDAsIDAsIDAuNSknO1xuICBASW5wdXQoKSBkaXNwbGF5Q29sb3I/OiBzdHJpbmcgPSAnd2hpdGUnO1xuXG4gIGdldCBtb2RhbENvbnRhaW5lclN0eWxlKCkge1xuICAgIHJldHVybiB7XG4gICAgICBwb3NpdGlvbjogJ2ZpeGVkJyxcbiAgICAgIHRvcDogJzAnLFxuICAgICAgbGVmdDogJzAnLFxuICAgICAgd2lkdGg6ICcxMDAlJyxcbiAgICAgIGhlaWdodDogJzEwMCUnLFxuICAgICAgYmFja2dyb3VuZENvbG9yOiB0aGlzLmJhY2tncm91bmRDb2xvcixcbiAgICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICAgICAganVzdGlmeUNvbnRlbnQ6ICdjZW50ZXInLFxuICAgICAgekluZGV4OiAnOTk5JyxcbiAgICB9O1xuICB9XG5cbiAgZ2V0IG1vZGFsQ29udGVudFN0eWxlKCkge1xuICAgIHJldHVybiB7XG4gICAgICBiYWNrZ3JvdW5kQ29sb3I6IHRoaXMuYmFja2dyb3VuZENvbG9yLFxuICAgICAgYm9yZGVyUmFkaXVzOiAnMTBweCcsXG4gICAgICBwYWRkaW5nOiAnMTBweCcsXG4gICAgICBtYXhXaWR0aDogJzIwMHB4JyxcbiAgICAgIHRleHRBbGlnbjogJ2NlbnRlcicsXG4gICAgfTtcbiAgfVxuXG4gIGdldCBzcGlubmVyQ29udGFpbmVyU3R5bGUoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG1hcmdpbkJvdHRvbTogJzIwcHgnLFxuICAgIH07XG4gIH1cblxuICBnZXQgbG9hZGluZ1RleHRTdHlsZSgpIHtcbiAgICByZXR1cm4ge1xuICAgICAgY29sb3I6IHRoaXMuZGlzcGxheUNvbG9yLFxuICAgIH07XG4gIH1cbn1cbiJdfQ==
@@ -1,140 +0,0 @@
1
- import { Component, Input } from '@angular/core';
2
- import { CommonModule } from '@angular/common';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "@angular/common";
5
- /**
6
- * MainAspectComponent dynamically adjusts its aspect ratio based on window size, providing an adaptable container for content.
7
- * It listens for window resize and orientation changes to update its layout, making it suitable for responsive applications.
8
- *
9
- * @selector app-main-aspect-component
10
- * @standalone true
11
- * @imports CommonModule
12
- *
13
- * @template
14
- * ```html
15
- * <div [ngStyle]="aspectStyles" [style.backgroundColor]="backgroundColor" class="aspect-container">
16
- * <ng-content></ng-content>
17
- * </div>
18
- * ```
19
- *
20
- * @styles
21
- * - `.aspect-container`: Styles for overflow handling.
22
- *
23
- * @inputs
24
- * - `backgroundColor` (string): The background color of the aspect container.
25
- * - `showControls` (boolean): Toggles control display, adjusting the container height. Default is true.
26
- * - `containerWidthFraction` (number): Fraction of window width for container width. Default is 1.
27
- * - `containerHeightFraction` (number): Fraction of window height for container height. Default is 1.
28
- * - `defaultFraction` (number): Height adjustment factor when controls are shown. Default is 0.94.
29
- * - `updateIsWideScreen` (function): Callback to set wide screen status.
30
- * - `updateIsMediumScreen` (function): Callback to set medium screen status.
31
- * - `updateIsSmallScreen` (function): Callback to set small screen status.
32
- *
33
- * @methods
34
- * - `ngOnInit()`: Initializes component and sets up resize and orientation listeners.
35
- * - `ngOnChanges(changes: SimpleChanges)`: Updates layout when relevant inputs change.
36
- * - `ngOnDestroy()`: Removes event listeners to prevent memory leaks.
37
- * - `updateAspectStyles()`: Calculates and applies styles based on current window dimensions and component inputs.
38
- *
39
- * @example
40
- * ```html
41
- * <app-main-aspect-component
42
- * [backgroundColor]="'lightblue'"
43
- * [showControls]="true"
44
- * [containerWidthFraction]="0.9"
45
- * [containerHeightFraction]="0.8"
46
- * [defaultFraction]="0.95"
47
- * [updateIsWideScreen]="onWideScreenUpdate"
48
- * [updateIsMediumScreen]="onMediumScreenUpdate"
49
- * [updateIsSmallScreen]="onSmallScreenUpdate"
50
- * ></app-main-aspect-component>
51
- * ```
52
- **/
53
- export class MainAspectComponent {
54
- backgroundColor = '';
55
- showControls = true;
56
- containerWidthFraction = 1;
57
- containerHeightFraction = 1;
58
- defaultFraction = 0.94;
59
- updateIsWideScreen;
60
- updateIsMediumScreen;
61
- updateIsSmallScreen;
62
- aspectStyles = {};
63
- ngOnInit() {
64
- this.updateAspectStyles();
65
- window.addEventListener('resize', this.updateAspectStyles);
66
- window.addEventListener('orientationchange', this.updateAspectStyles);
67
- }
68
- ngOnChanges(changes) {
69
- if (changes['showControls'] ||
70
- changes['containerWidthFraction'] ||
71
- changes['containerHeightFraction'] ||
72
- changes['defaultFraction']) {
73
- this.updateAspectStyles();
74
- }
75
- }
76
- ngOnDestroy() {
77
- window.removeEventListener('resize', this.updateAspectStyles);
78
- window.removeEventListener('orientationchange', this.updateAspectStyles);
79
- }
80
- updateAspectStyles = () => {
81
- const windowHeight = window.innerHeight;
82
- const windowWidth = window.innerWidth;
83
- const parentWidth = Math.floor(this.containerWidthFraction * windowWidth);
84
- const parentHeight = this.showControls
85
- ? Math.floor(this.containerHeightFraction * windowHeight * this.defaultFraction)
86
- : Math.floor(this.containerHeightFraction * windowHeight);
87
- let isWideScreen = parentWidth >= 768;
88
- const isMediumScreen = parentWidth >= 576 && parentWidth < 768;
89
- const isSmallScreen = parentWidth < 576;
90
- if (!isWideScreen && parentWidth > 1.5 * parentHeight) {
91
- isWideScreen = true;
92
- }
93
- this.updateIsWideScreen(isWideScreen);
94
- this.updateIsMediumScreen(isMediumScreen);
95
- this.updateIsSmallScreen(isSmallScreen);
96
- this.aspectStyles = {
97
- height: parentHeight + 'px',
98
- width: parentWidth + 'px',
99
- };
100
- };
101
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: MainAspectComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
102
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: MainAspectComponent, isStandalone: true, selector: "app-main-aspect-component", inputs: { backgroundColor: "backgroundColor", showControls: "showControls", containerWidthFraction: "containerWidthFraction", containerHeightFraction: "containerHeightFraction", defaultFraction: "defaultFraction", updateIsWideScreen: "updateIsWideScreen", updateIsMediumScreen: "updateIsMediumScreen", updateIsSmallScreen: "updateIsSmallScreen" }, usesOnChanges: true, ngImport: i0, template: `
103
- <div
104
- [ngStyle]="aspectStyles"
105
- [style.backgroundColor]="backgroundColor"
106
- class="aspect-container"
107
- >
108
- <ng-content></ng-content>
109
- </div>
110
- `, isInline: true, styles: [".aspect-container{overflow:hidden}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] });
111
- }
112
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: MainAspectComponent, decorators: [{
113
- type: Component,
114
- args: [{ selector: 'app-main-aspect-component', standalone: true, imports: [CommonModule], template: `
115
- <div
116
- [ngStyle]="aspectStyles"
117
- [style.backgroundColor]="backgroundColor"
118
- class="aspect-container"
119
- >
120
- <ng-content></ng-content>
121
- </div>
122
- `, styles: [".aspect-container{overflow:hidden}\n"] }]
123
- }], propDecorators: { backgroundColor: [{
124
- type: Input
125
- }], showControls: [{
126
- type: Input
127
- }], containerWidthFraction: [{
128
- type: Input
129
- }], containerHeightFraction: [{
130
- type: Input
131
- }], defaultFraction: [{
132
- type: Input
133
- }], updateIsWideScreen: [{
134
- type: Input
135
- }], updateIsMediumScreen: [{
136
- type: Input
137
- }], updateIsSmallScreen: [{
138
- type: Input
139
- }] } });
140
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi1hc3BlY3QtY29tcG9uZW50LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21lZGlhc2Z1LWFuZ3VsYXIvc3JjL2xpYi9jb21wb25lbnRzL2Rpc3BsYXktY29tcG9uZW50cy9tYWluLWFzcGVjdC1jb21wb25lbnQvbWFpbi1hc3BlY3QtY29tcG9uZW50LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBK0MsTUFBTSxlQUFlLENBQUM7QUFDOUYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7QUFlL0M7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0lBK0NJO0FBdUJKLE1BQU0sT0FBTyxtQkFBbUI7SUFDckIsZUFBZSxHQUFHLEVBQUUsQ0FBQztJQUNyQixZQUFZLEdBQUcsSUFBSSxDQUFDO0lBQ3BCLHNCQUFzQixHQUFHLENBQUMsQ0FBQztJQUMzQix1QkFBdUIsR0FBRyxDQUFDLENBQUM7SUFDNUIsZUFBZSxHQUFHLElBQUksQ0FBQztJQUN2QixrQkFBa0IsQ0FBbUM7SUFDckQsb0JBQW9CLENBQXFDO0lBQ3pELG1CQUFtQixDQUFvQztJQUVoRSxZQUFZLEdBQTJCLEVBQUUsQ0FBQztJQUUxQyxRQUFRO1FBQ04sSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7UUFFMUIsTUFBTSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUMzRCxNQUFNLENBQUMsZ0JBQWdCLENBQUMsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFDeEUsQ0FBQztJQUVELFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxJQUNFLE9BQU8sQ0FBQyxjQUFjLENBQUM7WUFDdkIsT0FBTyxDQUFDLHdCQUF3QixDQUFDO1lBQ2pDLE9BQU8sQ0FBQyx5QkFBeUIsQ0FBQztZQUNsQyxPQUFPLENBQUMsaUJBQWlCLENBQUMsRUFDMUIsQ0FBQztZQUNELElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1FBQzVCLENBQUM7SUFDSCxDQUFDO0lBRUQsV0FBVztRQUNULE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDOUQsTUFBTSxDQUFDLG1CQUFtQixDQUFDLG1CQUFtQixFQUFFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBQzNFLENBQUM7SUFFTyxrQkFBa0IsR0FBRyxHQUFHLEVBQUU7UUFDaEMsTUFBTSxZQUFZLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQztRQUN4QyxNQUFNLFdBQVcsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDO1FBRXRDLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLHNCQUFzQixHQUFHLFdBQVcsQ0FBQyxDQUFDO1FBQzFFLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxZQUFZO1lBQ3BDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyx1QkFBdUIsR0FBRyxZQUFZLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQztZQUNoRixDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsdUJBQXVCLEdBQUcsWUFBWSxDQUFDLENBQUM7UUFFNUQsSUFBSSxZQUFZLEdBQUcsV0FBVyxJQUFJLEdBQUcsQ0FBQztRQUN0QyxNQUFNLGNBQWMsR0FBRyxXQUFXLElBQUksR0FBRyxJQUFJLFdBQVcsR0FBRyxHQUFHLENBQUM7UUFDL0QsTUFBTSxhQUFhLEdBQUcsV0FBVyxHQUFHLEdBQUcsQ0FBQztRQUV4QyxJQUFJLENBQUMsWUFBWSxJQUFJLFdBQVcsR0FBRyxHQUFHLEdBQUcsWUFBWSxFQUFFLENBQUM7WUFDdEQsWUFBWSxHQUFHLElBQUksQ0FBQztRQUN0QixDQUFDO1FBRUQsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3RDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUMxQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsYUFBYSxDQUFDLENBQUM7UUFFeEMsSUFBSSxDQUFDLFlBQVksR0FBRztZQUNsQixNQUFNLEVBQUUsWUFBWSxHQUFHLElBQUk7WUFDM0IsS0FBSyxFQUFFLFdBQVcsR0FBRyxJQUFJO1NBQzFCLENBQUM7SUFDSixDQUFDLENBQUM7dUdBNURTLG1CQUFtQjsyRkFBbkIsbUJBQW1CLHNjQWpCcEI7Ozs7Ozs7O0dBUVQsNkdBVFMsWUFBWTs7MkZBa0JYLG1CQUFtQjtrQkFyQi9CLFNBQVM7K0JBQ0UsMkJBQTJCLGNBQ3pCLElBQUksV0FDUCxDQUFDLFlBQVksQ0FBQyxZQUNiOzs7Ozs7OztHQVFUOzhCQVVRLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxzQkFBc0I7c0JBQTlCLEtBQUs7Z0JBQ0csdUJBQXVCO3NCQUEvQixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csa0JBQWtCO3NCQUExQixLQUFLO2dCQUNHLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFDRyxtQkFBbUI7c0JBQTNCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQsIE9uRGVzdHJveSwgT25DaGFuZ2VzLCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5leHBvcnQgaW50ZXJmYWNlIE1haW5Bc3BlY3RDb21wb25lbnRPcHRpb25zIHtcbiAgYmFja2dyb3VuZENvbG9yPzogc3RyaW5nO1xuICBzaG93Q29udHJvbHM/OiBib29sZWFuO1xuICBjb250YWluZXJXaWR0aEZyYWN0aW9uPzogbnVtYmVyO1xuICBjb250YWluZXJIZWlnaHRGcmFjdGlvbj86IG51bWJlcjtcbiAgZGVmYXVsdEZyYWN0aW9uPzogbnVtYmVyO1xuICB1cGRhdGVJc1dpZGVTY3JlZW46IChpc1dpZGVTY3JlZW46IGJvb2xlYW4pID0+IHZvaWQ7XG4gIHVwZGF0ZUlzTWVkaXVtU2NyZWVuOiAoaXNNZWRpdW1TY3JlZW46IGJvb2xlYW4pID0+IHZvaWQ7XG4gIHVwZGF0ZUlzU21hbGxTY3JlZW46IChpc1NtYWxsU2NyZWVuOiBib29sZWFuKSA9PiB2b2lkO1xufVxuXG5leHBvcnQgdHlwZSBNYWluQXNwZWN0Q29tcG9uZW50VHlwZSA9IChvcHRpb25zOiBNYWluQXNwZWN0Q29tcG9uZW50T3B0aW9ucykgPT4gSFRNTEVsZW1lbnQ7XG5cbi8qKlxuICogTWFpbkFzcGVjdENvbXBvbmVudCBkeW5hbWljYWxseSBhZGp1c3RzIGl0cyBhc3BlY3QgcmF0aW8gYmFzZWQgb24gd2luZG93IHNpemUsIHByb3ZpZGluZyBhbiBhZGFwdGFibGUgY29udGFpbmVyIGZvciBjb250ZW50LlxuICogSXQgbGlzdGVucyBmb3Igd2luZG93IHJlc2l6ZSBhbmQgb3JpZW50YXRpb24gY2hhbmdlcyB0byB1cGRhdGUgaXRzIGxheW91dCwgbWFraW5nIGl0IHN1aXRhYmxlIGZvciByZXNwb25zaXZlIGFwcGxpY2F0aW9ucy5cbiAqXG4gKiBAc2VsZWN0b3IgYXBwLW1haW4tYXNwZWN0LWNvbXBvbmVudFxuICogQHN0YW5kYWxvbmUgdHJ1ZVxuICogQGltcG9ydHMgQ29tbW9uTW9kdWxlXG4gKlxuICogQHRlbXBsYXRlXG4gKiBgYGBodG1sXG4gKiA8ZGl2IFtuZ1N0eWxlXT1cImFzcGVjdFN0eWxlc1wiIFtzdHlsZS5iYWNrZ3JvdW5kQ29sb3JdPVwiYmFja2dyb3VuZENvbG9yXCIgY2xhc3M9XCJhc3BlY3QtY29udGFpbmVyXCI+XG4gKiAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAqIDwvZGl2PlxuICogYGBgXG4gKlxuICogQHN0eWxlc1xuICogLSBgLmFzcGVjdC1jb250YWluZXJgOiBTdHlsZXMgZm9yIG92ZXJmbG93IGhhbmRsaW5nLlxuICpcbiAqIEBpbnB1dHNcbiAqIC0gYGJhY2tncm91bmRDb2xvcmAgKHN0cmluZyk6IFRoZSBiYWNrZ3JvdW5kIGNvbG9yIG9mIHRoZSBhc3BlY3QgY29udGFpbmVyLlxuICogLSBgc2hvd0NvbnRyb2xzYCAoYm9vbGVhbik6IFRvZ2dsZXMgY29udHJvbCBkaXNwbGF5LCBhZGp1c3RpbmcgdGhlIGNvbnRhaW5lciBoZWlnaHQuIERlZmF1bHQgaXMgdHJ1ZS5cbiAqIC0gYGNvbnRhaW5lcldpZHRoRnJhY3Rpb25gIChudW1iZXIpOiBGcmFjdGlvbiBvZiB3aW5kb3cgd2lkdGggZm9yIGNvbnRhaW5lciB3aWR0aC4gRGVmYXVsdCBpcyAxLlxuICogLSBgY29udGFpbmVySGVpZ2h0RnJhY3Rpb25gIChudW1iZXIpOiBGcmFjdGlvbiBvZiB3aW5kb3cgaGVpZ2h0IGZvciBjb250YWluZXIgaGVpZ2h0LiBEZWZhdWx0IGlzIDEuXG4gKiAtIGBkZWZhdWx0RnJhY3Rpb25gIChudW1iZXIpOiBIZWlnaHQgYWRqdXN0bWVudCBmYWN0b3Igd2hlbiBjb250cm9scyBhcmUgc2hvd24uIERlZmF1bHQgaXMgMC45NC5cbiAqIC0gYHVwZGF0ZUlzV2lkZVNjcmVlbmAgKGZ1bmN0aW9uKTogQ2FsbGJhY2sgdG8gc2V0IHdpZGUgc2NyZWVuIHN0YXR1cy5cbiAqIC0gYHVwZGF0ZUlzTWVkaXVtU2NyZWVuYCAoZnVuY3Rpb24pOiBDYWxsYmFjayB0byBzZXQgbWVkaXVtIHNjcmVlbiBzdGF0dXMuXG4gKiAtIGB1cGRhdGVJc1NtYWxsU2NyZWVuYCAoZnVuY3Rpb24pOiBDYWxsYmFjayB0byBzZXQgc21hbGwgc2NyZWVuIHN0YXR1cy5cbiAqXG4gKiBAbWV0aG9kc1xuICogLSBgbmdPbkluaXQoKWA6IEluaXRpYWxpemVzIGNvbXBvbmVudCBhbmQgc2V0cyB1cCByZXNpemUgYW5kIG9yaWVudGF0aW9uIGxpc3RlbmVycy5cbiAqIC0gYG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpYDogVXBkYXRlcyBsYXlvdXQgd2hlbiByZWxldmFudCBpbnB1dHMgY2hhbmdlLlxuICogLSBgbmdPbkRlc3Ryb3koKWA6IFJlbW92ZXMgZXZlbnQgbGlzdGVuZXJzIHRvIHByZXZlbnQgbWVtb3J5IGxlYWtzLlxuICogLSBgdXBkYXRlQXNwZWN0U3R5bGVzKClgOiBDYWxjdWxhdGVzIGFuZCBhcHBsaWVzIHN0eWxlcyBiYXNlZCBvbiBjdXJyZW50IHdpbmRvdyBkaW1lbnNpb25zIGFuZCBjb21wb25lbnQgaW5wdXRzLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGBodG1sXG4gKiA8YXBwLW1haW4tYXNwZWN0LWNvbXBvbmVudFxuICogICBbYmFja2dyb3VuZENvbG9yXT1cIidsaWdodGJsdWUnXCJcbiAqICAgW3Nob3dDb250cm9sc109XCJ0cnVlXCJcbiAqICAgW2NvbnRhaW5lcldpZHRoRnJhY3Rpb25dPVwiMC45XCJcbiAqICAgW2NvbnRhaW5lckhlaWdodEZyYWN0aW9uXT1cIjAuOFwiXG4gKiAgIFtkZWZhdWx0RnJhY3Rpb25dPVwiMC45NVwiXG4gKiAgIFt1cGRhdGVJc1dpZGVTY3JlZW5dPVwib25XaWRlU2NyZWVuVXBkYXRlXCJcbiAqICAgW3VwZGF0ZUlzTWVkaXVtU2NyZWVuXT1cIm9uTWVkaXVtU2NyZWVuVXBkYXRlXCJcbiAqICAgW3VwZGF0ZUlzU21hbGxTY3JlZW5dPVwib25TbWFsbFNjcmVlblVwZGF0ZVwiXG4gKiA+PC9hcHAtbWFpbi1hc3BlY3QtY29tcG9uZW50PlxuICogYGBgXG4gKiovXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1tYWluLWFzcGVjdC1jb21wb25lbnQnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2XG4gICAgICBbbmdTdHlsZV09XCJhc3BlY3RTdHlsZXNcIlxuICAgICAgW3N0eWxlLmJhY2tncm91bmRDb2xvcl09XCJiYWNrZ3JvdW5kQ29sb3JcIlxuICAgICAgY2xhc3M9XCJhc3BlY3QtY29udGFpbmVyXCJcbiAgICA+XG4gICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgPC9kaXY+XG4gIGAsXG4gIHN0eWxlczogW1xuICAgIGBcbiAgICAgIC5hc3BlY3QtY29udGFpbmVyIHtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgIH1cbiAgICBgLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBNYWluQXNwZWN0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgpIGJhY2tncm91bmRDb2xvciA9ICcnO1xuICBASW5wdXQoKSBzaG93Q29udHJvbHMgPSB0cnVlO1xuICBASW5wdXQoKSBjb250YWluZXJXaWR0aEZyYWN0aW9uID0gMTtcbiAgQElucHV0KCkgY29udGFpbmVySGVpZ2h0RnJhY3Rpb24gPSAxO1xuICBASW5wdXQoKSBkZWZhdWx0RnJhY3Rpb24gPSAwLjk0O1xuICBASW5wdXQoKSB1cGRhdGVJc1dpZGVTY3JlZW4hOiAoaXNXaWRlU2NyZWVuOiBib29sZWFuKSA9PiB2b2lkO1xuICBASW5wdXQoKSB1cGRhdGVJc01lZGl1bVNjcmVlbiE6IChpc01lZGl1bVNjcmVlbjogYm9vbGVhbikgPT4gdm9pZDtcbiAgQElucHV0KCkgdXBkYXRlSXNTbWFsbFNjcmVlbiE6IChpc1NtYWxsU2NyZWVuOiBib29sZWFuKSA9PiB2b2lkO1xuXG4gIGFzcGVjdFN0eWxlczogeyBba2V5OiBzdHJpbmddOiBhbnkgfSA9IHt9O1xuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMudXBkYXRlQXNwZWN0U3R5bGVzKCk7XG5cbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncmVzaXplJywgdGhpcy51cGRhdGVBc3BlY3RTdHlsZXMpO1xuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdvcmllbnRhdGlvbmNoYW5nZScsIHRoaXMudXBkYXRlQXNwZWN0U3R5bGVzKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICBpZiAoXG4gICAgICBjaGFuZ2VzWydzaG93Q29udHJvbHMnXSB8fFxuICAgICAgY2hhbmdlc1snY29udGFpbmVyV2lkdGhGcmFjdGlvbiddIHx8XG4gICAgICBjaGFuZ2VzWydjb250YWluZXJIZWlnaHRGcmFjdGlvbiddIHx8XG4gICAgICBjaGFuZ2VzWydkZWZhdWx0RnJhY3Rpb24nXVxuICAgICkge1xuICAgICAgdGhpcy51cGRhdGVBc3BlY3RTdHlsZXMoKTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigncmVzaXplJywgdGhpcy51cGRhdGVBc3BlY3RTdHlsZXMpO1xuICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdvcmllbnRhdGlvbmNoYW5nZScsIHRoaXMudXBkYXRlQXNwZWN0U3R5bGVzKTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlQXNwZWN0U3R5bGVzID0gKCkgPT4ge1xuICAgIGNvbnN0IHdpbmRvd0hlaWdodCA9IHdpbmRvdy5pbm5lckhlaWdodDtcbiAgICBjb25zdCB3aW5kb3dXaWR0aCA9IHdpbmRvdy5pbm5lcldpZHRoO1xuXG4gICAgY29uc3QgcGFyZW50V2lkdGggPSBNYXRoLmZsb29yKHRoaXMuY29udGFpbmVyV2lkdGhGcmFjdGlvbiAqIHdpbmRvd1dpZHRoKTtcbiAgICBjb25zdCBwYXJlbnRIZWlnaHQgPSB0aGlzLnNob3dDb250cm9sc1xuICAgICAgPyBNYXRoLmZsb29yKHRoaXMuY29udGFpbmVySGVpZ2h0RnJhY3Rpb24gKiB3aW5kb3dIZWlnaHQgKiB0aGlzLmRlZmF1bHRGcmFjdGlvbilcbiAgICAgIDogTWF0aC5mbG9vcih0aGlzLmNvbnRhaW5lckhlaWdodEZyYWN0aW9uICogd2luZG93SGVpZ2h0KTtcblxuICAgIGxldCBpc1dpZGVTY3JlZW4gPSBwYXJlbnRXaWR0aCA+PSA3Njg7XG4gICAgY29uc3QgaXNNZWRpdW1TY3JlZW4gPSBwYXJlbnRXaWR0aCA+PSA1NzYgJiYgcGFyZW50V2lkdGggPCA3Njg7XG4gICAgY29uc3QgaXNTbWFsbFNjcmVlbiA9IHBhcmVudFdpZHRoIDwgNTc2O1xuXG4gICAgaWYgKCFpc1dpZGVTY3JlZW4gJiYgcGFyZW50V2lkdGggPiAxLjUgKiBwYXJlbnRIZWlnaHQpIHtcbiAgICAgIGlzV2lkZVNjcmVlbiA9IHRydWU7XG4gICAgfVxuXG4gICAgdGhpcy51cGRhdGVJc1dpZGVTY3JlZW4oaXNXaWRlU2NyZWVuKTtcbiAgICB0aGlzLnVwZGF0ZUlzTWVkaXVtU2NyZWVuKGlzTWVkaXVtU2NyZWVuKTtcbiAgICB0aGlzLnVwZGF0ZUlzU21hbGxTY3JlZW4oaXNTbWFsbFNjcmVlbik7XG5cbiAgICB0aGlzLmFzcGVjdFN0eWxlcyA9IHtcbiAgICAgIGhlaWdodDogcGFyZW50SGVpZ2h0ICsgJ3B4JyxcbiAgICAgIHdpZHRoOiBwYXJlbnRXaWR0aCArICdweCcsXG4gICAgfTtcbiAgfTtcbn1cbiJdfQ==