@rtsee/ngx 0.0.8 → 0.0.14

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 (38) hide show
  1. package/dist/ngx/bundles/rtsee-ngx.umd.js +295 -13
  2. package/dist/ngx/bundles/rtsee-ngx.umd.js.map +1 -1
  3. package/dist/ngx/esm2015/lib/components/rtsee/rtsee-controls/rtsee-controls.component.js +1 -1
  4. package/dist/ngx/esm2015/lib/components/rtsee/rtsee.component.js +2 -2
  5. package/dist/ngx/esm2015/lib/components/rtsee-events-dashboard/components/rtsee-events-dashboard-client/rtsee-events-dashboard-client.component.js +15 -0
  6. package/dist/ngx/esm2015/lib/components/rtsee-events-dashboard/components/rtsee-events-dashboard-client-thumbnail/rtsee-events-dashboard-client-thumbnail.component.js +30 -0
  7. package/dist/ngx/esm2015/lib/components/rtsee-events-dashboard/rtsee-events-dashboard.component.js +19 -0
  8. package/dist/ngx/esm2015/lib/components/rtsee-messenger/chat/chat.component.js +21 -0
  9. package/dist/ngx/esm2015/lib/components/rtsee-messenger/chat-input/chat-input.component.js +38 -0
  10. package/dist/ngx/esm2015/lib/components/rtsee-messenger/chat-thumbnail/chat-thumbnail.component.js +19 -0
  11. package/dist/ngx/esm2015/lib/components/rtsee-messenger/chats-list/chats-list.component.js +24 -0
  12. package/dist/ngx/esm2015/lib/components/rtsee-messenger/message/message.component.js +19 -0
  13. package/dist/ngx/esm2015/lib/components/rtsee-messenger/messages-list/messages-list.component.js +21 -0
  14. package/dist/ngx/esm2015/lib/components/rtsee-messenger/messenger/messenger.component.js +21 -0
  15. package/dist/ngx/esm2015/lib/components/rtsee-messenger/messenger-header/messenger-header.component.js +18 -0
  16. package/dist/ngx/esm2015/lib/components/rtsee-peer/rtsee-peer.component.js +2 -4
  17. package/dist/ngx/esm2015/lib/components/rtsee-settings/rtsee-settings.component.js +3 -2
  18. package/dist/ngx/esm2015/lib/ngx.module.js +41 -4
  19. package/dist/ngx/esm2015/lib/services/time-format-helper.service.js +21 -0
  20. package/dist/ngx/esm2015/public-api.js +3 -1
  21. package/dist/ngx/fesm2015/rtsee-ngx.js +259 -10
  22. package/dist/ngx/fesm2015/rtsee-ngx.js.map +1 -1
  23. package/dist/ngx/lib/components/rtsee-events-dashboard/components/rtsee-events-dashboard-client/rtsee-events-dashboard-client.component.d.ts +5 -0
  24. package/dist/ngx/lib/components/rtsee-events-dashboard/components/rtsee-events-dashboard-client-thumbnail/rtsee-events-dashboard-client-thumbnail.component.d.ts +14 -0
  25. package/dist/ngx/lib/components/rtsee-events-dashboard/rtsee-events-dashboard.component.d.ts +7 -0
  26. package/dist/ngx/lib/components/rtsee-messenger/chat/chat.component.d.ts +8 -0
  27. package/dist/ngx/lib/components/rtsee-messenger/chat-input/chat-input.component.d.ts +11 -0
  28. package/dist/ngx/lib/components/rtsee-messenger/chat-thumbnail/chat-thumbnail.component.d.ts +8 -0
  29. package/dist/ngx/lib/components/rtsee-messenger/chats-list/chats-list.component.d.ts +10 -0
  30. package/dist/ngx/lib/components/rtsee-messenger/message/message.component.d.ts +8 -0
  31. package/dist/ngx/lib/components/rtsee-messenger/messages-list/messages-list.component.d.ts +8 -0
  32. package/dist/ngx/lib/components/rtsee-messenger/messenger/messenger.component.d.ts +7 -0
  33. package/dist/ngx/lib/components/rtsee-messenger/messenger-header/messenger-header.component.d.ts +7 -0
  34. package/dist/ngx/lib/components/rtsee-peer/rtsee-peer.component.d.ts +1 -2
  35. package/dist/ngx/lib/ngx.module.d.ts +19 -7
  36. package/dist/ngx/lib/services/time-format-helper.service.d.ts +6 -0
  37. package/dist/ngx/public-api.d.ts +2 -0
  38. package/package.json +6 -5
@@ -1 +1 @@
1
- {"version":3,"file":"rtsee-ngx.js","sources":["../../../projects/ngx/src/lib/ngx.service.ts","../../../projects/ngx/src/lib/components/rtsee/rtsee-controls/rtsee-controls.component.ts","../../../projects/ngx/src/lib/components/rtsee/rtsee-controls/rtsee-controls.component.html","../../../projects/ngx/src/lib/components/rtsee-settings/rtsee-settings.component.ts","../../../projects/ngx/src/lib/components/rtsee-settings/rtsee-settings.component.html","../../../projects/ngx/src/lib/components/rtsee-soundbar/rtsee-soundbar.component.ts","../../../projects/ngx/src/lib/components/rtsee-soundbar/rtsee-soundbar.component.html","../../../projects/ngx/src/lib/components/rtsee-peer/rtsee-peer.component.ts","../../../projects/ngx/src/lib/components/rtsee-peer/rtsee-peer.component.html","../../../projects/ngx/src/lib/components/rtsee/rtsee.component.ts","../../../projects/ngx/src/lib/components/rtsee/rtsee.component.html","../../../projects/ngx/src/lib/components/rtsee-peers-list/rtsee-peers-list.component.ts","../../../projects/ngx/src/lib/components/rtsee-peers-list/rtsee-peers-list.component.html","../../../projects/ngx/src/lib/ngx.module.ts","../../../projects/ngx/src/public-api.ts","../../../projects/ngx/src/rtsee-ngx.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class NgxService {\n lol: string;\n constructor() {\n this.lol = 'lol';\n }\n}\n","import { Component, Input } from '@angular/core';\nimport { RTSee } from '@rtsee/core';\n\n@Component({\n selector: 'ngx-rtsee-controls',\n templateUrl: './rtsee-controls.component.html',\n styleUrls: ['./rtsee-controls.component.scss'],\n})\nexport class RTSeeControlsComponent {\n @Input() rtsee!: RTSee;\n @Input() fullScreenMode?: boolean;\n\n onPresentClicked() {\n return this.rtsee.isPresenter\n ? this.rtsee.stopScreenShare()\n : this.rtsee.startScreenShare();\n }\n}\n","<div class=\"rtsee-controls\" [ngClass]=\"{'rtsee-full-screen-controls' : fullScreenMode }\">\n <div class=\"rtsee-bottom-panel\">\n <div class=\"mic rtsee-buttons-container\">\n <button mat-icon-button matSuffix\n class=\"rtsee-ripple-button\"\n *ngIf=\"rtsee.microphone\"\n type=\"button\"\n (click)=\"this.rtsee.disableMicrophone()\"\n >\n <span class=\"material-icons-outlined\">mic_none</span>\n </button>\n <button mat-icon-button matSuffix\n class=\"rtsee-ripple-button\"\n *ngIf=\"!rtsee.microphone\"\n type=\"button\" (click)=\"this.rtsee.enableMicrophone()\"\n >\n <span class=\"material-icons-outlined\">mic_off</span>\n </button>\n </div>\n\n <div class=\"video-camera rtsee-buttons-container\">\n <button mat-icon-button matSuffix\n class=\"rtsee-ripple-button\"\n *ngIf=\"rtsee.camera\"\n type=\"button\"\n (click)=\"rtsee.disableCamera()\"\n >\n <span class=\"material-icons-outlined\">videocam</span>\n </button>\n <button mat-icon-button matSuffix\n class=\"rtsee-ripple-button\"\n *ngIf=\"!rtsee.camera\"\n type=\"button\"\n (click)=\"rtsee.enableCamera()\"\n >\n <span class=\"material-icons-outlined\">videocam_off</span>\n </button>\n </div>\n <div class=\"present rtsee-buttons-container\" [ngClass]=\"{'rtsee-present-button-container': rtsee.isPresenter}\">\n <button mat-icon-button matSuffix\n class=\"rtsee-ripple-button\"\n type=\"button\"\n (click)=\"onPresentClicked()\"\n >\n <span class=\"material-icons-outlined\">present_to_all</span>\n </button>\n </div>\n <div class=\"call-end rtsee-buttons-container\">\n <button mat-icon-button matSuffix\n class=\"rtsee-ripple-button\"\n type=\"button\"\n (click)=\"rtsee.end()\"\n >\n <span class=\"material-icons-outlined\">call_end</span>\n </button>\n </div>\n </div>\n</div>\n","import { Component, Input, OnInit } from '@angular/core';\nimport { RTSee } from '@rtsee/core';\n\n@Component({\n selector: 'ngx-rtsee-settings',\n templateUrl: './rtsee-settings.component.html',\n styleUrls: ['./rtsee-settings.component.scss'],\n})\nexport class RtseeSettingsComponent implements OnInit {\n availableAudioInputDevices: MediaDeviceInfo[];\n availableVideoInputDevices: MediaDeviceInfo[];\n availableAudioOutputDevices: MediaDeviceInfo[];\n\n @Input() rtSee!: RTSee;\n @Input() fullScreenMode!: boolean;\n constructor() {\n this.availableAudioInputDevices = [];\n this.availableVideoInputDevices = [];\n this.availableAudioOutputDevices = [];\n }\n\n ngOnInit(): void {\n this.refreshSelectOptions();\n }\n\n refreshSelectOptions() {\n void this.rtSee.refreshMediaDevicesList();\n }\n\n setAudioInput(deviceId: string) {\n this.rtSee.setAudioInputDevice(deviceId);\n console.log(deviceId);\n }\n\n setAudioOutput(deviceId: string) {\n this.rtSee.setAudioOutputDevice(deviceId);\n }\n\n setVideoInput(deviceId: string) {\n this.rtSee.setVideoInputDevice(deviceId);\n }\n}\n","<div class=\"rtsee-settings\" [ngClass]=\"{'rtsee-full-screen-settings' : fullScreenMode}\">\n <div class=\"rtsee-devices\">\n <div class=\"rtsee-device-select-wrapper\">\n <label class=\"rtsee-select-label\" for=\"audio-input\">Audio Input:</label>\n <select class=\"rtsee-select\" id=\"audio-input\" (click)=\"refreshSelectOptions()\">\n <option *ngFor=\"let device of rtSee.audioInputDevices\" [value]=\"device.deviceId\" (click)=\"setAudioInput(device.deviceId)\">\n {{device.label}}\n </option>\n </select>\n </div>\n <div class=\"rtsee-device-select-wrapper\">\n <label class=\"rtsee-select-label\" for=\"audio-output\">Audio Output:</label>\n <select class=\"rtsee-select\" id=\"audio-output\" (click)=\"refreshSelectOptions()\">\n <option *ngFor=\"let device of rtSee.audioOutputDevices\" [value]=\"device.deviceId\" (click)=\"setAudioOutput(device.deviceId)\">\n {{device.label}}\n </option>\n </select>\n </div>\n <div class=\"rtsee-device-select-wrapper\">\n <label class=\"rtsee-select-label\" for=\"video-input\">Video Input:</label>\n <select class=\"rtsee-select\" id=\"video-input\" (click)=\"refreshSelectOptions()\">\n <option *ngFor=\"let device of rtSee.videoInputDevices\" [value]=\"device.deviceId\" (click)=\"setVideoInput(device.deviceId)\">\n {{device.label}}\n </option>\n </select>\n </div>\n </div>\n</div>\n","import { Component, Input, OnInit } from '@angular/core';\nimport { RTSeePeerConnection } from '@rtsee/core';\nimport { interval } from 'rxjs';\n\n@Component({\n selector: 'ngx-rtsee-soundbar',\n templateUrl: './rtsee-soundbar.component.html',\n styleUrls: ['./rtsee-soundbar.component.scss'],\n})\nexport class RtseeSoundbarComponent implements OnInit {\n intervalLength: number;\n noiceLevel: number;\n scaleOneLevel: number;\n scaleTwoLevel: number;\n scaleThreeLevel: number;\n\n @Input() peer!: RTSeePeerConnection;\n constructor() {\n this.intervalLength = 1000;\n this.noiceLevel = 0;\n this.scaleOneLevel = 0;\n this.scaleTwoLevel = 0;\n this.scaleThreeLevel = 0;\n }\n\n ngOnInit(): void {\n this.startSoundMeterListening();\n }\n\n startSoundMeterListening() {\n const step = interval(1000 / 10);\n step.subscribe(() => {\n if (!this.peer.soundMeter || !this.peer.soundMeter.level) {\n this.noiceLevel = 0;\n } else {\n this.noiceLevel = this.peer.soundMeter?.level * 100 || 0;\n }\n\n this.setSoundMeterHeights();\n });\n }\n\n setSoundMeterHeights() {\n const ZERO_LEVEL = 25;\n const SCALE_STEP = 25;\n const SCALE_ONE_TOP = ZERO_LEVEL + SCALE_STEP;\n const SCALE_TWO_TOP = SCALE_ONE_TOP + SCALE_STEP;\n\n if (!this.peer || !this.peer.soundMeter || this.noiceLevel < ZERO_LEVEL) {\n this.scaleOneLevel = 0;\n this.scaleTwoLevel = 0;\n this.scaleThreeLevel = 0;\n }\n\n const scaleOneValue = ((this.noiceLevel - ZERO_LEVEL) / SCALE_STEP) * 100;\n const scaleTwoValue =\n ((this.noiceLevel - SCALE_ONE_TOP) / SCALE_STEP) * 100;\n const scaleThreeValue =\n ((this.noiceLevel - SCALE_TWO_TOP) / SCALE_STEP) * 100;\n\n this.scaleOneLevel = scaleOneValue > 0 ? scaleOneValue : 0;\n this.scaleTwoLevel = scaleTwoValue > 0 ? scaleTwoValue : 0;\n this.scaleThreeLevel = scaleThreeValue > 0 ? scaleTwoValue : 0;\n }\n}\n","<div class=\"rtsee-soundbar\">\n <div class=\"rtsee-soundbar-scale\">\n <div class=\"rtsee-soundbar-scale-item\">\n <div class=\"rtsee-soundbar-scale-item-level rtsee-soundbar-scale-item-level-one\"\n [style.height.%]=\"scaleOneLevel\"\n ></div>\n </div>\n <div class=\"rtsee-soundbar-scale-item\">\n <div class=\"rtsee-soundbar-scale-item-level rtsee-soundbar-scale-item-level-two\"\n [style.height.%]=\"scaleTwoLevel\"\n ></div>\n </div>\n <div class=\"rtsee-soundbar-scale-item\">\n <div class=\"rtsee-soundbar-scale-item-level rtsee-soundbar-scale-item-level-three\"\n [style.height.%]=\"scaleThreeLevel\"\n ></div>\n </div>\n </div>\n</div>\n","import {\n AfterViewInit,\n Component,\n ElementRef,\n Input,\n ViewChild,\n} from '@angular/core';\nimport { RTSeePeerConnection } from '@rtsee/core';\n\n@Component({\n selector: 'ngx-rtsee-peer',\n templateUrl: './rtsee-peer.component.html',\n styleUrls: ['./rtsee-peer.component.scss'],\n})\nexport class RtseePeerComponent implements AfterViewInit {\n intervalLength: number;\n noiceLevel: number;\n\n @ViewChild('audioOutput') audioOutput?: ElementRef;\n @ViewChild('videoOutput') videoOutput?: ElementRef;\n @Input() peer!: RTSeePeerConnection;\n @Input() fullScreenMode?: boolean;\n constructor() {\n this.intervalLength = 1000;\n this.noiceLevel = 0;\n }\n\n ngAfterViewInit(): void {\n if (!this.audioOutput) {\n return;\n }\n this.peer.setAudioOutputElement(\n this.audioOutput.nativeElement as HTMLAudioElement\n );\n }\n}\n","<div class=\"rtsee-peer\" [ngClass]=\"{\n'rtsee-peer-video-disabled': !peer.remoteVideoStream || !peer.camera,\n'rtsee-full-screen-mode-peer': fullScreenMode\n}\">\n <div class=\"rtsee-peer-content\">\n <div class=\"rtsee-peer-photo\" *ngIf=\"!peer.camera\">\n <div class=\"rtsee-peer-photo-wrapper\">\n <div *ngIf=\"peer.imageUrl\"\n [style.background-image]=\"'url(' + peer.imageUrl + ')'\"\n class=\"rtsee-peer-photo-image\"\n ></div>\n <img *ngIf=\"!peer.imageUrl\" [src]=\"\" alt=\"peer_photo\" class=\"rtsee-peer-photo-image\">\n </div>\n <div class=\"rtsee-peer-info\">\n <p class=\"rtsee-peer-name\" *ngIf=\"peer.name\">{{peer.name}}</p>\n </div>\n </div>\n <video #videoOutput\n class=\"rtsee-peer-video\"\n [autoplay]=\"true\"\n [muted]=\"true\"\n [srcObject]=\"peer.remoteVideoStream\"\n playsinline=\"true\"\n >\n <audio #audioOutput [srcObject]=\"peer.remoteAudioStream\" autoplay=\"true\"></audio>\n </video>\n <div class=\"rtsee-peer-soundbar\">\n <ngx-rtsee-soundbar [peer]=\"peer\"></ngx-rtsee-soundbar>\n </div>\n </div>\n</div>\n","import { Component, Input } from '@angular/core';\nimport { RTSee } from '@rtsee/core';\n\n@Component({\n selector: 'ngx-rtsee',\n templateUrl: './rtsee.component.html',\n styleUrls: ['./rtsee.component.scss'],\n})\nexport class RTSeeComponent {\n settingsViewEnabled: boolean;\n fullScreenModeEnabled: boolean;\n\n @Input() rtSee!: RTSee;\n constructor() {\n this.settingsViewEnabled = false;\n this.fullScreenModeEnabled = false;\n }\n\n toggleSettings() {\n this.settingsViewEnabled = !this.settingsViewEnabled;\n }\n\n toggleFullScreenMode() {\n this.fullScreenModeEnabled = !this.fullScreenModeEnabled;\n }\n}\n","<div class=\"rtsee-shell\" [ngClass]=\"{\n'rtsee-shell-expanded': rtSee.uiControls.isExpanded || fullScreenModeEnabled,\n'rtsee-shell-no-companions': !rtSee.rtcPeerConnections.connections?.length\n}\">\n <div class=\"rtsee-local-peer\" *ngIf=\"rtSee.localStream && rtSee.camera\">\n <video class=\"rtsee-local-video\"\n [autoplay]=\"true\"\n [muted]=\"true\"\n [srcObject]=\"rtSee.localStream\"\n playsinline=\"true\"\n ></video>\n </div>\n <div class=\"rtsee-window-controls\">\n <button mat-icon-button matSuffix\n type=\"button\"\n (click)=\"this.toggleSettings()\"\n class=\"rtsee-window-controls-button rtsee-ripple-button\"\n >\n <span class=\"material-icons-outlined\">settings</span>\n </button>\n <button mat-icon-button matSuffix\n type=\"button\"\n (click)=\"this.toggleFullScreenMode()\"\n class=\"rtsee-window-controls-button rtsee-ripple-button\"\n >\n <span class=\"material-icons-outlined\">open_in_full</span>\n </button>\n </div>\n <div class=\"rtsee-settings-container\" *ngIf=\"settingsViewEnabled\">\n <button mat-icon-button matSuffix\n type=\"button\"\n (click)=\"this.toggleSettings()\"\n class=\"rtsee-close-settings-button\"\n >\n <span class=\"material-icons-outlined\">close</span>\n </button>\n <ngx-rtsee-settings [rtSee]=\"rtSee\" [fullScreenMode]=\"fullScreenModeEnabled\"></ngx-rtsee-settings>\n </div>\n <div class=\"rtsee-screen-share\" *ngIf=\"rtSee.screenSharePeer\" >\n <video [autoplay]=\"true\"\n [muted]=\"true\"\n [srcObject]=\"rtSee.screenSharePeer.remoteVideoStream\"\n playsinline=\"true\"\n class=\"rtsee-screen-share-video\"\n ></video>\n </div>\n <div class=\"rtsee-peers\">\n <div class=\"rtsee-peer-wrapper\"\n *ngFor=\"let peer of rtSee.rtcPeerConnections.connections\"\n [ngClass]=\"{'rtsee-peer-active-speaker': peer.isActiveSpeaker}\"\n >\n <ngx-rtsee-peer [peer]=\"peer\" [fullScreenMode]=\"fullScreenModeEnabled\"></ngx-rtsee-peer>\n </div>\n </div>\n <div class=\"rtsee-peers-list\"></div>\n <div class=\"rtsee-controls-wrapper\">\n <ngx-rtsee-controls [rtsee]=\"rtSee\" [fullScreenMode]=\"fullScreenModeEnabled\"></ngx-rtsee-controls>\n </div>\n</div>\n\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'ngx-rtsee-peers-list',\n templateUrl: './rtsee-peers-list.component.html',\n styleUrls: ['./rtsee-peers-list.component.scss'],\n})\nexport class RtseePeersListComponent {}\n","<p>rtsee-peers-list works!</p>\n","import { NgModule } from '@angular/core';\nimport { RTSeeComponent } from './components/rtsee/rtsee.component';\nimport { RTSeeControlsComponent } from './components/rtsee/rtsee-controls/rtsee-controls.component';\nimport { CommonModule } from '@angular/common';\nimport { RtseePeerComponent } from './components/rtsee-peer/rtsee-peer.component';\nimport { RtseeSoundbarComponent } from './components/rtsee-soundbar/rtsee-soundbar.component';\nimport { RtseePeersListComponent } from './components/rtsee-peers-list/rtsee-peers-list.component';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatButtonModule } from '@angular/material/button';\nimport { RtseeSettingsComponent } from './components/rtsee-settings/rtsee-settings.component';\nimport { MatSelectModule } from '@angular/material/select';\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\nimport { MatFormFieldModule } from '@angular/material/form-field';\n\n@NgModule({\n declarations: [\n RTSeeComponent,\n RTSeeControlsComponent,\n RtseePeerComponent,\n RtseeSoundbarComponent,\n RtseePeersListComponent,\n RtseeSettingsComponent,\n ],\n imports: [\n CommonModule,\n MatIconModule,\n MatButtonModule,\n MatSelectModule,\n BrowserAnimationsModule,\n MatFormFieldModule,\n ],\n exports: [RTSeeComponent],\n})\nexport class RTSeeModule {}\n","/*\n * Public API Surface of ngx\n */\n\nexport * from './lib/ngx.service';\nexport * from './lib/components/rtsee/rtsee-controls/rtsee-controls.component';\nexport * from './lib/components/rtsee/rtsee.component';\nexport * from './lib/ngx.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rtsee-ngx.js","sources":["../../../projects/ngx/src/lib/ngx.service.ts","../../../projects/ngx/src/lib/components/rtsee/rtsee-controls/rtsee-controls.component.ts","../../../projects/ngx/src/lib/components/rtsee/rtsee-controls/rtsee-controls.component.html","../../../projects/ngx/src/lib/components/rtsee-settings/rtsee-settings.component.ts","../../../projects/ngx/src/lib/components/rtsee-settings/rtsee-settings.component.html","../../../projects/ngx/src/lib/components/rtsee-soundbar/rtsee-soundbar.component.ts","../../../projects/ngx/src/lib/components/rtsee-soundbar/rtsee-soundbar.component.html","../../../projects/ngx/src/lib/components/rtsee-peer/rtsee-peer.component.ts","../../../projects/ngx/src/lib/components/rtsee-peer/rtsee-peer.component.html","../../../projects/ngx/src/lib/components/rtsee/rtsee.component.ts","../../../projects/ngx/src/lib/components/rtsee/rtsee.component.html","../../../projects/ngx/src/lib/components/rtsee-messenger/messenger-header/messenger-header.component.ts","../../../projects/ngx/src/lib/components/rtsee-messenger/messenger-header/messenger-header.component.html","../../../projects/ngx/src/lib/components/rtsee-messenger/chat-thumbnail/chat-thumbnail.component.ts","../../../projects/ngx/src/lib/components/rtsee-messenger/chat-thumbnail/chat-thumbnail.component.html","../../../projects/ngx/src/lib/components/rtsee-messenger/chats-list/chats-list.component.ts","../../../projects/ngx/src/lib/components/rtsee-messenger/chats-list/chats-list.component.html","../../../projects/ngx/src/lib/components/rtsee-messenger/message/message.component.ts","../../../projects/ngx/src/lib/components/rtsee-messenger/message/message.component.html","../../../projects/ngx/src/lib/components/rtsee-messenger/messages-list/messages-list.component.ts","../../../projects/ngx/src/lib/components/rtsee-messenger/messages-list/messages-list.component.html","../../../projects/ngx/src/lib/components/rtsee-messenger/chat-input/chat-input.component.ts","../../../projects/ngx/src/lib/components/rtsee-messenger/chat-input/chat-input.component.html","../../../projects/ngx/src/lib/components/rtsee-messenger/chat/chat.component.ts","../../../projects/ngx/src/lib/components/rtsee-messenger/chat/chat.component.html","../../../projects/ngx/src/lib/components/rtsee-messenger/messenger/messenger.component.ts","../../../projects/ngx/src/lib/components/rtsee-messenger/messenger/messenger.component.html","../../../projects/ngx/src/lib/services/time-format-helper.service.ts","../../../projects/ngx/src/lib/components/rtsee-events-dashboard/components/rtsee-events-dashboard-client-thumbnail/rtsee-events-dashboard-client-thumbnail.component.ts","../../../projects/ngx/src/lib/components/rtsee-events-dashboard/components/rtsee-events-dashboard-client-thumbnail/rtsee-events-dashboard-client-thumbnail.component.html","../../../projects/ngx/src/lib/components/rtsee-events-dashboard/rtsee-events-dashboard.component.ts","../../../projects/ngx/src/lib/components/rtsee-events-dashboard/rtsee-events-dashboard.component.html","../../../projects/ngx/src/lib/components/rtsee-peers-list/rtsee-peers-list.component.ts","../../../projects/ngx/src/lib/components/rtsee-peers-list/rtsee-peers-list.component.html","../../../projects/ngx/src/lib/components/rtsee-events-dashboard/components/rtsee-events-dashboard-client/rtsee-events-dashboard-client.component.ts","../../../projects/ngx/src/lib/components/rtsee-events-dashboard/components/rtsee-events-dashboard-client/rtsee-events-dashboard-client.component.html","../../../projects/ngx/src/lib/ngx.module.ts","../../../projects/ngx/src/public-api.ts","../../../projects/ngx/src/rtsee-ngx.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class NgxService {\n lol: string;\n constructor() {\n this.lol = 'lol';\n }\n}\n","import { Component, Input } from '@angular/core';\nimport { RTSee } from '@rtsee/core';\n\n@Component({\n selector: 'ngx-rtsee-controls',\n templateUrl: './rtsee-controls.component.html',\n styleUrls: ['./rtsee-controls.component.scss'],\n})\nexport class RTSeeControlsComponent {\n @Input() rtsee!: RTSee;\n @Input() fullScreenMode?: boolean;\n\n onPresentClicked() {\n return this.rtsee.isPresenter\n ? this.rtsee.stopScreenShare()\n : this.rtsee.startScreenShare();\n }\n}\n","<div class=\"rtsee-controls\" [ngClass]=\"{'rtsee-full-screen-controls' : fullScreenMode }\">\n <div class=\"rtsee-bottom-panel\">\n <div class=\"mic rtsee-buttons-container\">\n <button mat-icon-button matSuffix\n class=\"rtsee-ripple-button\"\n *ngIf=\"rtsee.microphone\"\n type=\"button\"\n (click)=\"this.rtsee.disableMicrophone()\"\n >\n <span class=\"material-icons-outlined\">mic_none</span>\n </button>\n <button mat-icon-button matSuffix\n class=\"rtsee-ripple-button\"\n *ngIf=\"!rtsee.microphone\"\n type=\"button\" (click)=\"this.rtsee.enableMicrophone()\"\n >\n <span class=\"material-icons-outlined\">mic_off</span>\n </button>\n </div>\n\n <div class=\"video-camera rtsee-buttons-container\">\n <button mat-icon-button matSuffix\n class=\"rtsee-ripple-button\"\n *ngIf=\"rtsee.camera\"\n type=\"button\"\n (click)=\"rtsee.disableCamera()\"\n >\n <span class=\"material-icons-outlined\">videocam</span>\n </button>\n <button mat-icon-button matSuffix\n class=\"rtsee-ripple-button\"\n *ngIf=\"!rtsee.camera\"\n type=\"button\"\n (click)=\"rtsee.enableCamera()\"\n >\n <span class=\"material-icons-outlined\">videocam_off</span>\n </button>\n </div>\n <div class=\"present rtsee-buttons-container\" [ngClass]=\"{'rtsee-present-button-container': rtsee.isPresenter}\">\n <button mat-icon-button matSuffix\n class=\"rtsee-ripple-button\"\n type=\"button\"\n (click)=\"onPresentClicked()\"\n >\n <span class=\"material-icons-outlined\">present_to_all</span>\n </button>\n </div>\n <div class=\"call-end rtsee-buttons-container\">\n <button mat-icon-button matSuffix\n class=\"rtsee-ripple-button\"\n type=\"button\"\n (click)=\"rtsee.end()\"\n >\n <span class=\"material-icons-outlined\">call_end</span>\n </button>\n </div>\n </div>\n</div>\n","import { Component, Input, OnInit } from '@angular/core';\nimport { RTSee } from '@rtsee/core';\n\n@Component({\n selector: 'ngx-rtsee-settings',\n templateUrl: './rtsee-settings.component.html',\n styleUrls: ['./rtsee-settings.component.scss'],\n})\nexport class RtseeSettingsComponent implements OnInit {\n availableAudioInputDevices: MediaDeviceInfo[];\n availableVideoInputDevices: MediaDeviceInfo[];\n availableAudioOutputDevices: MediaDeviceInfo[];\n\n @Input() rtSee!: RTSee;\n @Input() fullScreenMode!: boolean;\n constructor() {\n this.availableAudioInputDevices = [];\n this.availableVideoInputDevices = [];\n this.availableAudioOutputDevices = [];\n }\n\n ngOnInit(): void {\n this.refreshSelectOptions();\n }\n\n refreshSelectOptions() {\n void this.rtSee.refreshMediaDevicesList();\n }\n\n setAudioInput(deviceId: string) {\n this.rtSee.setAudioInputDevice(deviceId);\n console.log(deviceId);\n }\n\n setAudioOutput(deviceId: string) {\n this.rtSee.setAudioOutputDevice(deviceId);\n }\n\n setVideoInput(deviceId: string) {\n this.rtSee.setVideoInputDevice(deviceId);\n }\n}\n","<div class=\"rtsee-settings\" [ngClass]=\"{'rtsee-full-screen-settings' : fullScreenMode}\">\n <div class=\"rtsee-devices\">\n <div class=\"rtsee-device-select-wrapper\">\n <label class=\"rtsee-select-label\" for=\"audio-input\">Audio Input:</label>\n <select class=\"rtsee-select\" id=\"audio-input\" (click)=\"refreshSelectOptions()\">\n <option *ngFor=\"let device of rtSee.audioInputDevices\" [value]=\"device.deviceId\" (click)=\"setAudioInput(device.deviceId)\">\n {{device.label}}\n </option>\n </select>\n </div>\n <div class=\"rtsee-device-select-wrapper\">\n <label class=\"rtsee-select-label\" for=\"audio-output\">Audio Output:</label>\n <select class=\"rtsee-select\" id=\"audio-output\" (click)=\"refreshSelectOptions()\">\n <option *ngFor=\"let device of rtSee.audioOutputDevices\" [value]=\"device.deviceId\" (click)=\"setAudioOutput(device.deviceId)\">\n {{device.label}}\n </option>\n </select>\n </div>\n <div class=\"rtsee-device-select-wrapper\">\n <label class=\"rtsee-select-label\" for=\"video-input\">Video Input:</label>\n <select class=\"rtsee-select\" id=\"video-input\" (click)=\"refreshSelectOptions()\">\n <option *ngFor=\"let device of rtSee.videoInputDevices\" [value]=\"device.deviceId\" (click)=\"setVideoInput(device.deviceId)\">\n {{device.label}}\n </option>\n </select>\n </div>\n </div>\n</div>\n","import { Component, Input, OnInit } from '@angular/core';\nimport { RTSeePeerConnection } from '@rtsee/core';\nimport { interval } from 'rxjs';\n\n@Component({\n selector: 'ngx-rtsee-soundbar',\n templateUrl: './rtsee-soundbar.component.html',\n styleUrls: ['./rtsee-soundbar.component.scss'],\n})\nexport class RtseeSoundbarComponent implements OnInit {\n intervalLength: number;\n noiceLevel: number;\n scaleOneLevel: number;\n scaleTwoLevel: number;\n scaleThreeLevel: number;\n\n @Input() peer!: RTSeePeerConnection;\n constructor() {\n this.intervalLength = 1000;\n this.noiceLevel = 0;\n this.scaleOneLevel = 0;\n this.scaleTwoLevel = 0;\n this.scaleThreeLevel = 0;\n }\n\n ngOnInit(): void {\n this.startSoundMeterListening();\n }\n\n startSoundMeterListening() {\n const step = interval(1000 / 10);\n step.subscribe(() => {\n if (!this.peer.soundMeter || !this.peer.soundMeter.level) {\n this.noiceLevel = 0;\n } else {\n this.noiceLevel = this.peer.soundMeter?.level * 100 || 0;\n }\n\n this.setSoundMeterHeights();\n });\n }\n\n setSoundMeterHeights() {\n const ZERO_LEVEL = 25;\n const SCALE_STEP = 25;\n const SCALE_ONE_TOP = ZERO_LEVEL + SCALE_STEP;\n const SCALE_TWO_TOP = SCALE_ONE_TOP + SCALE_STEP;\n\n if (!this.peer || !this.peer.soundMeter || this.noiceLevel < ZERO_LEVEL) {\n this.scaleOneLevel = 0;\n this.scaleTwoLevel = 0;\n this.scaleThreeLevel = 0;\n }\n\n const scaleOneValue = ((this.noiceLevel - ZERO_LEVEL) / SCALE_STEP) * 100;\n const scaleTwoValue =\n ((this.noiceLevel - SCALE_ONE_TOP) / SCALE_STEP) * 100;\n const scaleThreeValue =\n ((this.noiceLevel - SCALE_TWO_TOP) / SCALE_STEP) * 100;\n\n this.scaleOneLevel = scaleOneValue > 0 ? scaleOneValue : 0;\n this.scaleTwoLevel = scaleTwoValue > 0 ? scaleTwoValue : 0;\n this.scaleThreeLevel = scaleThreeValue > 0 ? scaleTwoValue : 0;\n }\n}\n","<div class=\"rtsee-soundbar\">\n <div class=\"rtsee-soundbar-scale\">\n <div class=\"rtsee-soundbar-scale-item\">\n <div class=\"rtsee-soundbar-scale-item-level rtsee-soundbar-scale-item-level-one\"\n [style.height.%]=\"scaleOneLevel\"\n ></div>\n </div>\n <div class=\"rtsee-soundbar-scale-item\">\n <div class=\"rtsee-soundbar-scale-item-level rtsee-soundbar-scale-item-level-two\"\n [style.height.%]=\"scaleTwoLevel\"\n ></div>\n </div>\n <div class=\"rtsee-soundbar-scale-item\">\n <div class=\"rtsee-soundbar-scale-item-level rtsee-soundbar-scale-item-level-three\"\n [style.height.%]=\"scaleThreeLevel\"\n ></div>\n </div>\n </div>\n</div>\n","import {\n AfterViewInit,\n Component,\n ElementRef,\n Input,\n ViewChild,\n} from '@angular/core';\nimport { RTSeePeerConnection } from '@rtsee/core';\n\n@Component({\n selector: 'ngx-rtsee-peer',\n templateUrl: './rtsee-peer.component.html',\n styleUrls: ['./rtsee-peer.component.scss'],\n})\nexport class RtseePeerComponent implements AfterViewInit {\n intervalLength: number;\n noiceLevel: number;\n\n @ViewChild('audioOutput') audioOutput?: ElementRef;\n @ViewChild('videoOutput') videoOutput?: ElementRef;\n @Input() peer!: RTSeePeerConnection;\n\n constructor() {\n this.intervalLength = 1000;\n this.noiceLevel = 0;\n }\n\n ngAfterViewInit(): void {\n if (!this.audioOutput) {\n return;\n }\n this.peer.setAudioOutputElement(\n this.audioOutput.nativeElement as HTMLAudioElement\n );\n }\n}\n","<div class=\"rtsee-peer\" [ngClass]=\"{\n'rtsee-peer-video-disabled': !peer.remoteVideoStream || !peer.camera\n}\">\n <div class=\"rtsee-peer-content\">\n <div class=\"rtsee-peer-photo\" *ngIf=\"!peer.camera\">\n <div class=\"rtsee-peer-photo-wrapper\">\n <div *ngIf=\"peer.imageUrl\"\n [style.background-image]=\"'url(' + peer.imageUrl + ')'\"\n class=\"rtsee-peer-photo-image\"\n ></div>\n <img *ngIf=\"!peer.imageUrl\" [src]=\"\" alt=\"peer_photo\" class=\"rtsee-peer-photo-image\">\n </div>\n <div class=\"rtsee-peer-info\">\n <p class=\"rtsee-peer-name\" *ngIf=\"peer.name\">{{peer.name}}</p>\n </div>\n </div>\n <video #videoOutput\n class=\"rtsee-peer-video\"\n [autoplay]=\"true\"\n [srcObject]=\"peer.remoteVideoStream\"\n playsinline=\"true\"\n >\n </video>\n <div class=\"rtsee-peer-soundbar\">\n <ngx-rtsee-soundbar [peer]=\"peer\"></ngx-rtsee-soundbar>\n </div>\n </div>\n</div>\n","import { Component, Input } from '@angular/core';\nimport { RTSee } from '@rtsee/core';\n\n@Component({\n selector: 'ngx-rtsee',\n templateUrl: './rtsee.component.html',\n styleUrls: ['./rtsee.component.scss'],\n})\nexport class RTSeeComponent {\n settingsViewEnabled: boolean;\n fullScreenModeEnabled: boolean;\n\n @Input() rtSee!: RTSee;\n constructor() {\n this.settingsViewEnabled = false;\n this.fullScreenModeEnabled = false;\n }\n\n toggleSettings() {\n this.settingsViewEnabled = !this.settingsViewEnabled;\n }\n\n toggleFullScreenMode() {\n this.fullScreenModeEnabled = !this.fullScreenModeEnabled;\n }\n}\n","<div class=\"rtsee-shell\" [ngClass]=\"{\n'rtsee-shell-expanded': rtSee.uiControls.isExpanded || fullScreenModeEnabled,\n'rtsee-shell-no-companions': !rtSee.rtcPeerConnections.connections?.length\n}\">\n <div class=\"rtsee-local-peer\" *ngIf=\"rtSee.localStream && rtSee.camera\">\n <video class=\"rtsee-local-video\"\n [autoplay]=\"true\"\n [muted]=\"true\"\n [srcObject]=\"rtSee.localStream\"\n playsinline=\"true\"\n ></video>\n </div>\n <div class=\"rtsee-window-controls\">\n <button mat-icon-button matSuffix\n type=\"button\"\n (click)=\"this.toggleSettings()\"\n class=\"rtsee-window-controls-button rtsee-ripple-button\"\n >\n <span class=\"material-icons-outlined\">settings</span>\n </button>\n <button mat-icon-button matSuffix\n type=\"button\"\n (click)=\"this.toggleFullScreenMode()\"\n class=\"rtsee-window-controls-button rtsee-ripple-button\"\n >\n <span class=\"material-icons-outlined\">open_in_full</span>\n </button>\n </div>\n <div class=\"rtsee-settings-container\" *ngIf=\"settingsViewEnabled\">\n <button mat-icon-button matSuffix\n type=\"button\"\n (click)=\"this.toggleSettings()\"\n class=\"rtsee-close-settings-button\"\n >\n <span class=\"material-icons-outlined\">close</span>\n </button>\n <ngx-rtsee-settings [rtSee]=\"rtSee\" [fullScreenMode]=\"fullScreenModeEnabled\"></ngx-rtsee-settings>\n </div>\n <div class=\"rtsee-screen-share\" *ngIf=\"rtSee.screenSharePeer\" >\n <video [autoplay]=\"true\"\n [muted]=\"true\"\n [srcObject]=\"rtSee.screenSharePeer.remoteVideoStream\"\n playsinline=\"true\"\n class=\"rtsee-screen-share-video\"\n ></video>\n </div>\n <div class=\"rtsee-peers\" [ngClass]=\"{\n 'rtsee-peers-alone': !rtSee.rtcPeerConnections.connections?.length,\n 'rtsee-peers-one': rtSee.rtcPeerConnections.connections?.length === 1,\n 'rtsee-peers-three-grid': rtSee.rtcPeerConnections.connections?.length\n && rtSee.rtcPeerConnections.connections.length > 1\n && rtSee.rtcPeerConnections.connections.length < 4,\n 'rtsee-peers-six-grid': rtSee.rtcPeerConnections.connections?.length\n && rtSee.rtcPeerConnections.connections.length > 3\n && rtSee.rtcPeerConnections.connections.length < 7,\n 'rtsee-peers-nine-grid': rtSee.rtcPeerConnections.connections?.length\n && rtSee.rtcPeerConnections.connections.length >= 7\n }\">\n <div class=\"rtsee-peer-wrapper\"\n *ngFor=\"let peer of rtSee.rtcPeerConnections.connections\"\n >\n <ngx-rtsee-peer [peer]=\"peer\"></ngx-rtsee-peer>\n </div>\n </div>\n <div class=\"rtsee-peers-list\"></div>\n <div class=\"rtsee-controls-wrapper\">\n <ngx-rtsee-controls [rtsee]=\"rtSee\" [fullScreenMode]=\"fullScreenModeEnabled\"></ngx-rtsee-controls>\n </div>\n</div>\n\n","import { Component, Input } from '@angular/core';\nimport { RTSeeMessenger } from '@rtsee/messenger';\n\n@Component({\n selector: 'ngx-messenger-header',\n templateUrl: './messenger-header.component.html',\n styleUrls: ['./messenger-header.component.css'],\n})\nexport class MessengerHeaderComponent {\n @Input() messenger!: RTSeeMessenger;\n}\n","<div class=\"rtsee-messenger-header\">\n <button *ngIf=\"messenger.openedChat\" (click)=\"messenger.closeChat()\">Back</button>\n <p class=\"title\" *ngIf=\"!messenger.openedChat\">Wessenger</p>\n <p class=\"title\" *ngIf=\"messenger.openedChat\">{{ messenger.openedChat.name }}</p>\n</div>\n","import { Component, Input } from '@angular/core';\nimport { RTSeeChat, RTSeeMessenger } from '@rtsee/messenger';\n\n@Component({\n selector: 'ngx-chat-thumbnail',\n templateUrl: './chat-thumbnail.component.html',\n styleUrls: ['./chat-thumbnail.component.css'],\n})\nexport class ChatThumbnailComponent {\n @Input() chat!: RTSeeChat;\n @Input() messenger!: RTSeeMessenger;\n}\n","<div class=\"rtsee-chat-thumbnail\" (click)=\"messenger.openChat(chat)\">\n <div class=\"rtsee-chat-thumbnail-image\">\n <img [src]=\"chat.imageUrl\">\n </div>\n <p class=\"rtsee-chat-thumbnail-name\">{{ chat.name }}</p>\n <p class=\"rtsee-chat-thumbnail-last-message\"> {{ chat.getLastSenderName() }} </p>\n <p class=\"rtsee-chat-thumbnail-last-message\"> {{ chat.getLastSentMessageText() }} </p>\n</div>\n","import { Component, Input, OnInit } from '@angular/core';\nimport { RTSeeChat, RTSeeMessenger } from '@rtsee/messenger';\n\n@Component({\n selector: 'ngx-chats-list',\n templateUrl: './chats-list.component.html',\n styleUrls: ['./chats-list.component.css'],\n})\nexport class ChatsListComponent implements OnInit {\n @Input() messenger!: RTSeeMessenger;\n @Input() chats!: RTSeeChat[];\n\n ngOnInit(): void {\n console.log(this.chats);\n }\n}\n","<div class=\"rtsee-chats-list\">\n <div class=\"rtsee-chat-thumbnail-container\" *ngFor=\"let chat of chats; let last = last;\">\n <ngx-chat-thumbnail [chat]=\"chat\" [messenger]=\"messenger\"></ngx-chat-thumbnail>\n <div class=\"rtsee-chat-separator\"></div>\n </div>\n</div>\n","import { Component, Input } from '@angular/core';\nimport { RTSeeChatMember, RTSeeMessage } from '@rtsee/messenger';\n\n@Component({\n selector: 'ngx-message',\n templateUrl: './message.component.html',\n styleUrls: ['./message.component.css'],\n})\nexport class MessageComponent {\n @Input() message!: RTSeeMessage;\n @Input() member!: RTSeeChatMember<any>;\n}\n","<div class=\"rtsee-messenger-message\">\n <p>{{ message.text }}</p>\n</div>\n","import { Component, Input } from '@angular/core';\nimport { RTSeeChat, RTSeeMessenger } from '@rtsee/messenger';\n\n@Component({\n selector: 'ngx-messages-list',\n templateUrl: './messages-list.component.html',\n styleUrls: ['./messages-list.component.css'],\n})\nexport class MessagesListComponent {\n @Input() chat!: RTSeeChat;\n @Input() messenger!: RTSeeMessenger;\n}\n","<div class=\"rtsee-messenger-messages-list\">\n <div class=\"rtsee-messenger-message\" *ngFor=\"let message of chat.messages\">\n <ngx-message [message]=\"message\"></ngx-message>\n </div>\n</div>\n","import { Component, Input } from '@angular/core';\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\nimport { RTSeeChat, RTSeeMessenger } from '@rtsee/messenger';\n\n@Component({\n selector: 'ngx-chat-input',\n templateUrl: './chat-input.component.html',\n styleUrls: ['./chat-input.component.css'],\n})\nexport class ChatInputComponent {\n sendMessageForm: FormGroup = new FormGroup({\n /* eslint-disable */\n message: new FormControl('', Validators.required),\n /* eslint-enable */\n });\n\n @Input() messenger!: RTSeeMessenger;\n @Input() chat!: RTSeeChat;\n\n sendMessage() {\n const text = this.sendMessageForm.get('message')?.value as string;\n if (!text) {\n return;\n }\n this.chat.sendMessage(text);\n this.sendMessageForm.get('message')?.setValue('');\n }\n}\n","<div class=\"rtsee-chat-input\">\n <div class=\"rtsee-send-message\">\n <form [formGroup]=\"sendMessageForm\">\n <input placeholder=\"Type message...\" type=\"text\" formControlName=\"message\" required>\n <button mat-raised-button\n (click)=\"sendMessage()\"\n class=\"rtsee-send-message-button\"\n type=\"submit\">\n <span>Send</span>\n </button>\n </form>\n </div>\n</div>\n","import { Component, Input } from '@angular/core';\nimport { RTSeeChat, RTSeeMessenger } from '@rtsee/messenger';\n\n@Component({\n selector: 'ngx-chat',\n templateUrl: './chat.component.html',\n styleUrls: ['./chat.component.css'],\n})\nexport class ChatComponent {\n @Input() chat!: RTSeeChat;\n @Input() messenger!: RTSeeMessenger;\n}\n","<div class=\"rtsee-chat\">\n <div class=\"rtsee-chat-body-container\">\n <ngx-messages-list [messenger]=\"messenger\" [chat]=\"chat\"></ngx-messages-list>\n </div>\n <div class=\"input-container\">\n <ngx-chat-input [messenger]=\"messenger\" [chat]=\"chat\"></ngx-chat-input>\n </div>\n</div>\n","import { Component, Input } from '@angular/core';\nimport { RTSeeMessenger } from '@rtsee/messenger';\n\n@Component({\n selector: 'ngx-messenger',\n templateUrl: './messenger.component.html',\n styleUrls: ['./messenger.component.scss'],\n})\nexport class MessengerComponent {\n @Input() messenger!: RTSeeMessenger;\n}\n","<div class=\"rtsee-messenger\">\n <div class=\"rtsee-messenger-header-container\">\n <ngx-messenger-header [messenger]=\"messenger\"></ngx-messenger-header>\n </div>\n <div class=\"rtsee-messenger-body-container\">\n <ngx-chats-list *ngIf=\"!messenger.openedChat\" [chats]=\"messenger.chats\" [messenger]=\"messenger\"></ngx-chats-list>\n <ngx-chat *ngIf=\"messenger.openedChat\" [messenger]=\"messenger\" [chat]=\"messenger.openedChat\"></ngx-chat>\n </div>\n</div>\n\n\n","import { Injectable } from '@angular/core';\n\nimport * as dayjs from 'dayjs';\nimport * as relativeTime from 'dayjs/plugin/relativeTime';\ndayjs.extend(relativeTime);\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TimeFormatHelperService {\n toAgo(time: Date): string {\n /* eslint-disable */\n return dayjs(time).fromNow() as string;\n /* eslint-enable */\n }\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport {\n RTSeeDashboardClient,\n RTSeeEventsDashboard,\n} from '@rtsee/events-manager';\nimport { TimeFormatHelperService } from '../../../../services/time-format-helper.service';\n\n@Component({\n selector: 'ngx-rtsee-events-dashboard-client-thumbnail',\n templateUrl: './rtsee-events-dashboard-client-thumbnail.component.html',\n styleUrls: ['./rtsee-events-dashboard-client-thumbnail.component.scss'],\n})\nexport class RtseeEventsDashboardClientThumbnailComponent implements OnInit {\n @Input() dashboard!: RTSeeEventsDashboard;\n @Input() client!: RTSeeDashboardClient;\n\n constructor(public timeFormatService: TimeFormatHelperService) {}\n\n ngOnInit(): void {\n console.log(this.client);\n }\n\n openChat() {\n this.dashboard.openChat(this.client);\n }\n}\n","<div class=\"rtsee-dashboard-client-thumbnail\">\n <p>{{ client.id }}</p>\n <p>{{ client.name || client.id }}</p>\n <div class=\"rtsee-dashboard-client-thumbnail-events\">\n <div class=\"rtsee-dashboard-client-thumbnail-event\"\n *ngFor=\"let event of client.events\">\n <p>\n <span>{{event.name}}</span>\n <span>&nbsp;</span>\n <span>{{ timeFormatService.toAgo(event.createdAt) }}</span>\n </p>\n </div>\n <div class=\"rtsee-dashboard-client-thumbnail-actions\">\n <button (click)=\"openChat()\">Chat</button>\n </div>\n </div>\n</div>\n","import { Component, Input } from '@angular/core';\nimport { RTSeeEventsDashboard } from '@rtsee/events-manager';\n\n@Component({\n selector: 'ngx-rtsee-events-dashboard',\n templateUrl: './rtsee-events-dashboard.component.html',\n styleUrls: ['./rtsee-events-dashboard.component.scss'],\n})\nexport class RtseeEventsDashboardComponent {\n @Input() eventsDashboard!: RTSeeEventsDashboard;\n}\n","<div class=\"rtsee-events-dashboard\">\n <div class=\"rtsee-events-dashboard-client-thumbnails\">\n <div class=\"rtsee-events-dashboard-client-thumbnail-wrapper\"\n *ngFor=\"let client of eventsDashboard.clients\">\n <ngx-rtsee-events-dashboard-client-thumbnail\n [client]=\"client\"\n [dashboard]=\"eventsDashboard\"\n ></ngx-rtsee-events-dashboard-client-thumbnail>\n </div>\n </div>\n</div>\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'ngx-rtsee-peers-list',\n templateUrl: './rtsee-peers-list.component.html',\n styleUrls: ['./rtsee-peers-list.component.scss'],\n})\nexport class RtseePeersListComponent {}\n","<p>rtsee-peers-list works!</p>\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'ngx-rtsee-events-dashboard-client',\n templateUrl: './rtsee-events-dashboard-client.component.html',\n styleUrls: ['./rtsee-events-dashboard-client.component.css'],\n})\nexport class RtseeEventsDashboardClientComponent {}\n","<p>rtsee-events-dashboard-client works!</p>\n","import { NgModule } from '@angular/core';\nimport { RTSeeComponent } from './components/rtsee/rtsee.component';\nimport { RTSeeControlsComponent } from './components/rtsee/rtsee-controls/rtsee-controls.component';\nimport { CommonModule } from '@angular/common';\nimport { RtseePeerComponent } from './components/rtsee-peer/rtsee-peer.component';\nimport { RtseeSoundbarComponent } from './components/rtsee-soundbar/rtsee-soundbar.component';\nimport { RtseePeersListComponent } from './components/rtsee-peers-list/rtsee-peers-list.component';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatButtonModule } from '@angular/material/button';\nimport { RtseeSettingsComponent } from './components/rtsee-settings/rtsee-settings.component';\nimport { MatSelectModule } from '@angular/material/select';\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MessengerComponent } from './components/rtsee-messenger/messenger/messenger.component';\nimport { ChatComponent } from './components/rtsee-messenger/chat/chat.component';\nimport { MessageComponent } from './components/rtsee-messenger/message/message.component';\nimport { ChatsListComponent } from './components/rtsee-messenger/chats-list/chats-list.component';\nimport { MessagesListComponent } from './components/rtsee-messenger/messages-list/messages-list.component';\nimport { ChatThumbnailComponent } from './components/rtsee-messenger/chat-thumbnail/chat-thumbnail.component';\nimport { ChatInputComponent } from './components/rtsee-messenger/chat-input/chat-input.component';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { MessengerHeaderComponent } from './components/rtsee-messenger/messenger-header/messenger-header.component';\nimport { RtseeEventsDashboardComponent } from './components/rtsee-events-dashboard/rtsee-events-dashboard.component';\nimport { RtseeEventsDashboardClientComponent } from './components/rtsee-events-dashboard/components/rtsee-events-dashboard-client/rtsee-events-dashboard-client.component';\nimport { RtseeEventsDashboardClientThumbnailComponent } from './components/rtsee-events-dashboard/components/rtsee-events-dashboard-client-thumbnail/rtsee-events-dashboard-client-thumbnail.component';\n\n@NgModule({\n declarations: [\n RTSeeComponent,\n RTSeeControlsComponent,\n RtseePeerComponent,\n RtseeSoundbarComponent,\n RtseePeersListComponent,\n RtseeSettingsComponent,\n MessengerComponent,\n ChatComponent,\n MessageComponent,\n ChatsListComponent,\n MessagesListComponent,\n ChatThumbnailComponent,\n ChatInputComponent,\n MessengerHeaderComponent,\n RtseeEventsDashboardComponent,\n RtseeEventsDashboardClientComponent,\n RtseeEventsDashboardClientThumbnailComponent,\n ],\n imports: [\n CommonModule,\n MatIconModule,\n MatButtonModule,\n MatSelectModule,\n BrowserAnimationsModule,\n MatFormFieldModule,\n ReactiveFormsModule,\n ],\n exports: [RTSeeComponent, MessengerComponent, RtseeEventsDashboardComponent],\n})\nexport class RTSeeModule {}\n","/*\n * Public API Surface of ngx\n */\n\nexport * from './lib/ngx.service';\nexport * from './lib/components/rtsee/rtsee-controls/rtsee-controls.component';\nexport * from './lib/components/rtsee/rtsee.component';\nexport * from './lib/components/rtsee-messenger/messenger/messenger.component';\nexport * from './lib/components/rtsee-events-dashboard/rtsee-events-dashboard.component';\nexport * from './lib/ngx.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import * as i0 from "@angular/core";
2
+ export declare class RtseeEventsDashboardClientComponent {
3
+ static ɵfac: i0.ɵɵFactoryDeclaration<RtseeEventsDashboardClientComponent, never>;
4
+ static ɵcmp: i0.ɵɵComponentDeclaration<RtseeEventsDashboardClientComponent, "ngx-rtsee-events-dashboard-client", never, {}, {}, never, never>;
5
+ }
@@ -0,0 +1,14 @@
1
+ import { OnInit } from '@angular/core';
2
+ import { RTSeeDashboardClient, RTSeeEventsDashboard } from '@rtsee/events-manager';
3
+ import { TimeFormatHelperService } from '../../../../services/time-format-helper.service';
4
+ import * as i0 from "@angular/core";
5
+ export declare class RtseeEventsDashboardClientThumbnailComponent implements OnInit {
6
+ timeFormatService: TimeFormatHelperService;
7
+ dashboard: RTSeeEventsDashboard;
8
+ client: RTSeeDashboardClient;
9
+ constructor(timeFormatService: TimeFormatHelperService);
10
+ ngOnInit(): void;
11
+ openChat(): void;
12
+ static ɵfac: i0.ɵɵFactoryDeclaration<RtseeEventsDashboardClientThumbnailComponent, never>;
13
+ static ɵcmp: i0.ɵɵComponentDeclaration<RtseeEventsDashboardClientThumbnailComponent, "ngx-rtsee-events-dashboard-client-thumbnail", never, { "dashboard": "dashboard"; "client": "client"; }, {}, never, never>;
14
+ }
@@ -0,0 +1,7 @@
1
+ import { RTSeeEventsDashboard } from '@rtsee/events-manager';
2
+ import * as i0 from "@angular/core";
3
+ export declare class RtseeEventsDashboardComponent {
4
+ eventsDashboard: RTSeeEventsDashboard;
5
+ static ɵfac: i0.ɵɵFactoryDeclaration<RtseeEventsDashboardComponent, never>;
6
+ static ɵcmp: i0.ɵɵComponentDeclaration<RtseeEventsDashboardComponent, "ngx-rtsee-events-dashboard", never, { "eventsDashboard": "eventsDashboard"; }, {}, never, never>;
7
+ }
@@ -0,0 +1,8 @@
1
+ import { RTSeeChat, RTSeeMessenger } from '@rtsee/messenger';
2
+ import * as i0 from "@angular/core";
3
+ export declare class ChatComponent {
4
+ chat: RTSeeChat;
5
+ messenger: RTSeeMessenger;
6
+ static ɵfac: i0.ɵɵFactoryDeclaration<ChatComponent, never>;
7
+ static ɵcmp: i0.ɵɵComponentDeclaration<ChatComponent, "ngx-chat", never, { "chat": "chat"; "messenger": "messenger"; }, {}, never, never>;
8
+ }
@@ -0,0 +1,11 @@
1
+ import { FormGroup } from '@angular/forms';
2
+ import { RTSeeChat, RTSeeMessenger } from '@rtsee/messenger';
3
+ import * as i0 from "@angular/core";
4
+ export declare class ChatInputComponent {
5
+ sendMessageForm: FormGroup;
6
+ messenger: RTSeeMessenger;
7
+ chat: RTSeeChat;
8
+ sendMessage(): void;
9
+ static ɵfac: i0.ɵɵFactoryDeclaration<ChatInputComponent, never>;
10
+ static ɵcmp: i0.ɵɵComponentDeclaration<ChatInputComponent, "ngx-chat-input", never, { "messenger": "messenger"; "chat": "chat"; }, {}, never, never>;
11
+ }
@@ -0,0 +1,8 @@
1
+ import { RTSeeChat, RTSeeMessenger } from '@rtsee/messenger';
2
+ import * as i0 from "@angular/core";
3
+ export declare class ChatThumbnailComponent {
4
+ chat: RTSeeChat;
5
+ messenger: RTSeeMessenger;
6
+ static ɵfac: i0.ɵɵFactoryDeclaration<ChatThumbnailComponent, never>;
7
+ static ɵcmp: i0.ɵɵComponentDeclaration<ChatThumbnailComponent, "ngx-chat-thumbnail", never, { "chat": "chat"; "messenger": "messenger"; }, {}, never, never>;
8
+ }
@@ -0,0 +1,10 @@
1
+ import { OnInit } from '@angular/core';
2
+ import { RTSeeChat, RTSeeMessenger } from '@rtsee/messenger';
3
+ import * as i0 from "@angular/core";
4
+ export declare class ChatsListComponent implements OnInit {
5
+ messenger: RTSeeMessenger;
6
+ chats: RTSeeChat[];
7
+ ngOnInit(): void;
8
+ static ɵfac: i0.ɵɵFactoryDeclaration<ChatsListComponent, never>;
9
+ static ɵcmp: i0.ɵɵComponentDeclaration<ChatsListComponent, "ngx-chats-list", never, { "messenger": "messenger"; "chats": "chats"; }, {}, never, never>;
10
+ }
@@ -0,0 +1,8 @@
1
+ import { RTSeeChatMember, RTSeeMessage } from '@rtsee/messenger';
2
+ import * as i0 from "@angular/core";
3
+ export declare class MessageComponent {
4
+ message: RTSeeMessage;
5
+ member: RTSeeChatMember<any>;
6
+ static ɵfac: i0.ɵɵFactoryDeclaration<MessageComponent, never>;
7
+ static ɵcmp: i0.ɵɵComponentDeclaration<MessageComponent, "ngx-message", never, { "message": "message"; "member": "member"; }, {}, never, never>;
8
+ }
@@ -0,0 +1,8 @@
1
+ import { RTSeeChat, RTSeeMessenger } from '@rtsee/messenger';
2
+ import * as i0 from "@angular/core";
3
+ export declare class MessagesListComponent {
4
+ chat: RTSeeChat;
5
+ messenger: RTSeeMessenger;
6
+ static ɵfac: i0.ɵɵFactoryDeclaration<MessagesListComponent, never>;
7
+ static ɵcmp: i0.ɵɵComponentDeclaration<MessagesListComponent, "ngx-messages-list", never, { "chat": "chat"; "messenger": "messenger"; }, {}, never, never>;
8
+ }
@@ -0,0 +1,7 @@
1
+ import { RTSeeMessenger } from '@rtsee/messenger';
2
+ import * as i0 from "@angular/core";
3
+ export declare class MessengerComponent {
4
+ messenger: RTSeeMessenger;
5
+ static ɵfac: i0.ɵɵFactoryDeclaration<MessengerComponent, never>;
6
+ static ɵcmp: i0.ɵɵComponentDeclaration<MessengerComponent, "ngx-messenger", never, { "messenger": "messenger"; }, {}, never, never>;
7
+ }
@@ -0,0 +1,7 @@
1
+ import { RTSeeMessenger } from '@rtsee/messenger';
2
+ import * as i0 from "@angular/core";
3
+ export declare class MessengerHeaderComponent {
4
+ messenger: RTSeeMessenger;
5
+ static ɵfac: i0.ɵɵFactoryDeclaration<MessengerHeaderComponent, never>;
6
+ static ɵcmp: i0.ɵɵComponentDeclaration<MessengerHeaderComponent, "ngx-messenger-header", never, { "messenger": "messenger"; }, {}, never, never>;
7
+ }
@@ -7,9 +7,8 @@ export declare class RtseePeerComponent implements AfterViewInit {
7
7
  audioOutput?: ElementRef;
8
8
  videoOutput?: ElementRef;
9
9
  peer: RTSeePeerConnection;
10
- fullScreenMode?: boolean;
11
10
  constructor();
12
11
  ngAfterViewInit(): void;
13
12
  static ɵfac: i0.ɵɵFactoryDeclaration<RtseePeerComponent, never>;
14
- static ɵcmp: i0.ɵɵComponentDeclaration<RtseePeerComponent, "ngx-rtsee-peer", never, { "peer": "peer"; "fullScreenMode": "fullScreenMode"; }, {}, never, never>;
13
+ static ɵcmp: i0.ɵɵComponentDeclaration<RtseePeerComponent, "ngx-rtsee-peer", never, { "peer": "peer"; }, {}, never, never>;
15
14
  }
@@ -5,14 +5,26 @@ import * as i3 from "./components/rtsee-peer/rtsee-peer.component";
5
5
  import * as i4 from "./components/rtsee-soundbar/rtsee-soundbar.component";
6
6
  import * as i5 from "./components/rtsee-peers-list/rtsee-peers-list.component";
7
7
  import * as i6 from "./components/rtsee-settings/rtsee-settings.component";
8
- import * as i7 from "@angular/common";
9
- import * as i8 from "@angular/material/icon";
10
- import * as i9 from "@angular/material/button";
11
- import * as i10 from "@angular/material/select";
12
- import * as i11 from "@angular/platform-browser/animations";
13
- import * as i12 from "@angular/material/form-field";
8
+ import * as i7 from "./components/rtsee-messenger/messenger/messenger.component";
9
+ import * as i8 from "./components/rtsee-messenger/chat/chat.component";
10
+ import * as i9 from "./components/rtsee-messenger/message/message.component";
11
+ import * as i10 from "./components/rtsee-messenger/chats-list/chats-list.component";
12
+ import * as i11 from "./components/rtsee-messenger/messages-list/messages-list.component";
13
+ import * as i12 from "./components/rtsee-messenger/chat-thumbnail/chat-thumbnail.component";
14
+ import * as i13 from "./components/rtsee-messenger/chat-input/chat-input.component";
15
+ import * as i14 from "./components/rtsee-messenger/messenger-header/messenger-header.component";
16
+ import * as i15 from "./components/rtsee-events-dashboard/rtsee-events-dashboard.component";
17
+ import * as i16 from "./components/rtsee-events-dashboard/components/rtsee-events-dashboard-client/rtsee-events-dashboard-client.component";
18
+ import * as i17 from "./components/rtsee-events-dashboard/components/rtsee-events-dashboard-client-thumbnail/rtsee-events-dashboard-client-thumbnail.component";
19
+ import * as i18 from "@angular/common";
20
+ import * as i19 from "@angular/material/icon";
21
+ import * as i20 from "@angular/material/button";
22
+ import * as i21 from "@angular/material/select";
23
+ import * as i22 from "@angular/platform-browser/animations";
24
+ import * as i23 from "@angular/material/form-field";
25
+ import * as i24 from "@angular/forms";
14
26
  export declare class RTSeeModule {
15
27
  static ɵfac: i0.ɵɵFactoryDeclaration<RTSeeModule, never>;
16
- static ɵmod: i0.ɵɵNgModuleDeclaration<RTSeeModule, [typeof i1.RTSeeComponent, typeof i2.RTSeeControlsComponent, typeof i3.RtseePeerComponent, typeof i4.RtseeSoundbarComponent, typeof i5.RtseePeersListComponent, typeof i6.RtseeSettingsComponent], [typeof i7.CommonModule, typeof i8.MatIconModule, typeof i9.MatButtonModule, typeof i10.MatSelectModule, typeof i11.BrowserAnimationsModule, typeof i12.MatFormFieldModule], [typeof i1.RTSeeComponent]>;
28
+ static ɵmod: i0.ɵɵNgModuleDeclaration<RTSeeModule, [typeof i1.RTSeeComponent, typeof i2.RTSeeControlsComponent, typeof i3.RtseePeerComponent, typeof i4.RtseeSoundbarComponent, typeof i5.RtseePeersListComponent, typeof i6.RtseeSettingsComponent, typeof i7.MessengerComponent, typeof i8.ChatComponent, typeof i9.MessageComponent, typeof i10.ChatsListComponent, typeof i11.MessagesListComponent, typeof i12.ChatThumbnailComponent, typeof i13.ChatInputComponent, typeof i14.MessengerHeaderComponent, typeof i15.RtseeEventsDashboardComponent, typeof i16.RtseeEventsDashboardClientComponent, typeof i17.RtseeEventsDashboardClientThumbnailComponent], [typeof i18.CommonModule, typeof i19.MatIconModule, typeof i20.MatButtonModule, typeof i21.MatSelectModule, typeof i22.BrowserAnimationsModule, typeof i23.MatFormFieldModule, typeof i24.ReactiveFormsModule], [typeof i1.RTSeeComponent, typeof i7.MessengerComponent, typeof i15.RtseeEventsDashboardComponent]>;
17
29
  static ɵinj: i0.ɵɵInjectorDeclaration<RTSeeModule>;
18
30
  }
@@ -0,0 +1,6 @@
1
+ import * as i0 from "@angular/core";
2
+ export declare class TimeFormatHelperService {
3
+ toAgo(time: Date): string;
4
+ static ɵfac: i0.ɵɵFactoryDeclaration<TimeFormatHelperService, never>;
5
+ static ɵprov: i0.ɵɵInjectableDeclaration<TimeFormatHelperService>;
6
+ }
@@ -1,4 +1,6 @@
1
1
  export * from './lib/ngx.service';
2
2
  export * from './lib/components/rtsee/rtsee-controls/rtsee-controls.component';
3
3
  export * from './lib/components/rtsee/rtsee.component';
4
+ export * from './lib/components/rtsee-messenger/messenger/messenger.component';
5
+ export * from './lib/components/rtsee-events-dashboard/rtsee-events-dashboard.component';
4
6
  export * from './lib/ngx.module';
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "0.0.8",
2
+ "version": "0.0.14",
3
3
  "name": "@rtsee/ngx",
4
4
  "module": "./dist/ngx/esm2015/public-api.js",
5
5
  "types": "./dist/ngx/rtsee-ngx.d.ts",
@@ -33,6 +33,7 @@
33
33
  "@angular/platform-browser": "~12.1.2",
34
34
  "@angular/platform-browser-dynamic": "~12.1.2",
35
35
  "@angular/router": "~12.1.2",
36
+ "dayjs": "^1.10.7",
36
37
  "rxjs": "~6.6.0",
37
38
  "tslib": "^2.2.0",
38
39
  "zone.js": "~0.11.4"
@@ -43,9 +44,9 @@
43
44
  "@angular/compiler-cli": "~12.1.2",
44
45
  "@types/jest": "^26.0.24",
45
46
  "@types/node": "^12.11.1",
46
- "@typescript-eslint/eslint-plugin": "^2.8.0",
47
- "@typescript-eslint/parser": "^2.8.0",
48
- "eslint": "^6.7.2",
47
+ "@typescript-eslint/eslint-plugin": "^4.33.0",
48
+ "@typescript-eslint/parser": "^4.33.0",
49
+ "eslint": "^7.32.0",
49
50
  "eslint-config-prettier": "^8.3.0",
50
51
  "eslint-plugin-jest": "^23.1.1",
51
52
  "jest": "^27.0.6",
@@ -58,5 +59,5 @@
58
59
  "publishConfig": {
59
60
  "access": "public"
60
61
  },
61
- "gitHead": "384a9c14bf0708f2a705b8af7f335788796bdd95"
62
+ "gitHead": "51404cfbe997e8c30fd2f2aa86d787f6d4439787"
62
63
  }