@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.umd.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":["Injectable","Component","Input","interval","ViewChild","CommonModule","MatIconModule","MatButtonModule","MatSelectModule","BrowserAnimationsModule","MatFormFieldModule","NgModule"],"mappings":"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"}
1
+ {"version":3,"file":"rtsee-ngx.umd.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":["Injectable","Component","Input","interval","ViewChild","FormGroup","FormControl","Validators","dayjs","relativeTime","CommonModule","MatIconModule","MatButtonModule","MatSelectModule","BrowserAnimationsModule","MatFormFieldModule","ReactiveFormsModule","NgModule"],"mappings":"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"}
@@ -11,7 +11,7 @@ export class RTSeeControlsComponent {
11
11
  }
12
12
  }
13
13
  RTSeeControlsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.1.2", ngImport: i0, type: RTSeeControlsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
14
- RTSeeControlsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.1.2", type: RTSeeControlsComponent, selector: "ngx-rtsee-controls", inputs: { rtsee: "rtsee", fullScreenMode: "fullScreenMode" }, ngImport: i0, template: "<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", styles: [".rtsee-controls{display:flex;flex-direction:column;justify-content:space-between;height:100%}.rtsee-controls .rtsee-buttons-container{height:35px;width:35px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 6px;cursor:pointer}.rtsee-controls .rtsee-buttons-container .mat-icon-button{background-color:rgba(0,0,0,.7);color:#fff}.rtsee-controls .rtsee-buttons-container.call-end .mat-icon-button{background-color:red}.rtsee-controls .rtsee-buttons-container.rtsee-present-button-container .mat-icon-button{background-color:#090}.rtsee-controls .full-screen{align-self:flex-end;padding:12px;cursor:pointer}.rtsee-controls .rtsee-bottom-panel{padding:12px;display:flex;justify-content:center;align-items:center;height:70px}.rtsee-controls.rtsee-full-screen-controls .rtsee-buttons-container{height:60px;width:60px}"], components: [{ type: i1.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }], directives: [{ type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.MatSuffix, selector: "[matSuffix]" }] });
14
+ RTSeeControlsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.1.2", type: RTSeeControlsComponent, selector: "ngx-rtsee-controls", inputs: { rtsee: "rtsee", fullScreenMode: "fullScreenMode" }, ngImport: i0, template: "<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", styles: [".rtsee-controls{display:inline-block;height:100%}.rtsee-controls .rtsee-buttons-container{height:35px;width:35px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 6px;cursor:pointer}.rtsee-controls .rtsee-buttons-container:last-child{margin-right:0}.rtsee-controls .rtsee-buttons-container:first-child{margin-left:0}.rtsee-controls .rtsee-buttons-container .mat-icon-button{background-color:#333;color:#fff}.rtsee-controls .rtsee-buttons-container.call-end .mat-icon-button{background-color:red}.rtsee-controls .rtsee-buttons-container.rtsee-present-button-container .mat-icon-button{background-color:#090}.rtsee-controls .full-screen{align-self:flex-end;padding:12px;cursor:pointer}.rtsee-controls .rtsee-bottom-panel{padding:12px;display:flex;justify-content:center;align-items:center;border-radius:45px;background-color:rgba(0,0,0,.7)}.rtsee-controls.rtsee-full-screen-controls .rtsee-buttons-container{height:60px;width:60px}"], components: [{ type: i1.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }], directives: [{ type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.MatSuffix, selector: "[matSuffix]" }] });
15
15
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.2", ngImport: i0, type: RTSeeControlsComponent, decorators: [{
16
16
  type: Component,
17
17
  args: [{
@@ -19,7 +19,7 @@ export class RTSeeComponent {
19
19
  }
20
20
  }
21
21
  RTSeeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.1.2", ngImport: i0, type: RTSeeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
22
- RTSeeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.1.2", type: RTSeeComponent, selector: "ngx-rtsee", inputs: { rtSee: "rtSee" }, ngImport: i0, template: "<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", styles: [".rtsee-shell{position:fixed;z-index:10;right:16px;bottom:16px;background-color:#333;width:100%;max-width:320px;height:240px;overflow:hidden;border-radius:8px}.rtsee-shell:hover .rtsee-controls-wrapper{bottom:0}.rtsee-shell:hover .rtsee-window-controls{top:8px}.rtsee-shell .rtsee-local-peer{position:absolute;top:8px;left:8px;width:80px;height:60px;border-radius:8px}.rtsee-shell .rtsee-local-peer .rtsee-local-video{width:100%}.rtsee-shell .rtsee-screen-share{height:100%}.rtsee-shell .rtsee-screen-share .rtsee-screen-share-video{width:100%;height:calc(100% - 50px)}.rtsee-shell .rtsee-peers{height:100%}.rtsee-shell .rtsee-peers .rtsee-peer-wrapper{position:absolute;left:320px;top:0;height:calc(100% - 16px);padding:8px}.rtsee-shell .rtsee-peers .rtsee-peer-wrapper.rtsee-peer-active-speaker{position:static}.rtsee-shell .rtsee-controls-wrapper{height:60px;width:100%;position:absolute;left:0;bottom:-60px;transition:bottom .05s}.rtsee-shell .rtsee-window-controls{position:absolute;top:-60px;right:8px;transition:top .2s;z-index:4}.rtsee-shell .rtsee-window-controls .rtsee-window-controls-button{margin-left:8px;background-color:rgba(0,0,0,.7);color:#fff}.rtsee-shell .rtsee-settings-container{position:absolute;top:0;right:0;bottom:0;left:0;overflow:auto;z-index:4}.rtsee-shell.rtsee-shell-no-companions .rtsee-local-peer{width:100%;height:100%;top:0;bottom:0}.rtsee-shell .rtsee-close-settings-button{position:absolute;right:25px;top:5px;width:30px;height:30px;line-height:30px}.rtsee-shell.rtsee-shell-expanded{position:absolute;border-radius:0;max-width:unset;height:unset;width:unset;bottom:0;right:0;left:0;top:0}.rtsee-shell.rtsee-shell-expanded .rtsee-peers{display:flex;flex-direction:row;flex-wrap:wrap;position:absolute;width:100%}.rtsee-shell.rtsee-shell-expanded .rtsee-peers .rtsee-peer-wrapper{position:relative;background:#333;width:calc(50% - 12px);padding:4px 4px 4px 8px;left:unset;top:unset;height:225px}.rtsee-shell.rtsee-shell-expanded .rtsee-peers .rtsee-peer-wrapper:nth-of-type(odd){padding:4px 8px 4px 4px}.rtsee-shell.rtsee-shell-expanded .rtsee-peers .rtsee-peer-wrapper:nth-of-type(odd) .rtsee-peer-soundbar{right:12px}.rtsee-shell.rtsee-shell-expanded .rtsee-peers .rtsee-peer-wrapper:nth-of-type(odd) ::ng-deep .rtsee-peer-soundbar{right:18px}.rtsee-shell.rtsee-shell-expanded .rtsee-peers .rtsee-peer-wrapper.rtsee-peer-active-speaker{padding:8px 8px 4px;width:100%;height:70%}.rtsee-shell.rtsee-shell-expanded .rtsee-local-peer{width:125px;height:100px;top:unset;left:unset;bottom:100px;right:16px;z-index:1}.rtsee-shell.rtsee-shell-expanded .rtsee-window-controls{top:8px}.rtsee-shell.rtsee-shell-expanded .rtsee-controls-wrapper{bottom:0;height:100px}::ng-deep .rtsee-ripple-button{background-position:50%;transition:background .2s;outline:none}::ng-deep .rtsee-ripple-button:hover{background:hsla(0,0%,96%,.1) radial-gradient(circle,transparent 1%,hsla(0,0%,96%,.1) 0) 50%/15000%}::ng-deep .rtsee-ripple-button:active{background-size:100%;transition:background 0s}::ng-deep .rtsee-select{padding:8px;border-radius:4px;width:100%;outline:none}::ng-deep .material-icons-outlined{font-size:18px}::ng-deep .rtsee-shell.rtsee-shell-expanded .material-icons-outlined{font-size:24px}::ng-deep .rtsee-shell.rtsee-shell-expanded .rtsee-ripple-button{height:60px;width:60px;line-height:60px}"], components: [{ type: i1.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i2.RtseeSettingsComponent, selector: "ngx-rtsee-settings", inputs: ["rtSee", "fullScreenMode"] }, { type: i3.RtseePeerComponent, selector: "ngx-rtsee-peer", inputs: ["peer", "fullScreenMode"] }, { type: i4.RTSeeControlsComponent, selector: "ngx-rtsee-controls", inputs: ["rtsee", "fullScreenMode"] }], directives: [{ type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i6.MatSuffix, selector: "[matSuffix]" }, { type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
22
+ RTSeeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.1.2", type: RTSeeComponent, selector: "ngx-rtsee", inputs: { rtSee: "rtSee" }, ngImport: i0, template: "<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", styles: [".rtsee-shell{position:fixed;z-index:10;right:16px;bottom:16px;background-color:#333;width:100%;max-width:320px;height:240px;overflow:hidden;border-radius:8px}.rtsee-shell:hover .rtsee-controls-wrapper{bottom:8px}.rtsee-shell:hover .rtsee-window-controls{top:8px}.rtsee-shell .rtsee-local-peer{position:absolute;top:8px;left:8px;width:80px;height:60px;text-align:center}.rtsee-shell .rtsee-local-peer .rtsee-local-video{height:100%;max-width:100%;border-radius:8px}.rtsee-shell .rtsee-screen-share{height:100%}.rtsee-shell .rtsee-screen-share .rtsee-screen-share-video{width:100%;height:calc(100% - 50px)}.rtsee-shell .rtsee-peers{height:100%}.rtsee-shell .rtsee-peers .rtsee-peer-wrapper{padding:8px;box-sizing:border-box;height:100%}.rtsee-shell .rtsee-peers .rtsee-peer-wrapper .rtsee-peer{position:relative}.rtsee-shell .rtsee-peers .rtsee-peer-wrapper .rtsee-peer ::ng-deep .rtsee-peer-video{border-radius:8px}.rtsee-shell .rtsee-controls-wrapper{height:60px;width:100%;position:absolute;left:0;bottom:-60px;transition:bottom .1s;text-align:center}.rtsee-shell .rtsee-window-controls{position:absolute;top:-60px;right:8px;transition:top .1s;z-index:4}.rtsee-shell .rtsee-window-controls .rtsee-window-controls-button{margin-left:8px;background-color:rgba(0,0,0,.7);color:#fff}.rtsee-shell .rtsee-settings-container{position:absolute;top:0;right:0;bottom:0;left:0;overflow:auto;z-index:4}.rtsee-shell.rtsee-shell-no-companions .rtsee-local-peer{box-sizing:border-box;padding:8px;height:100%;width:100%;top:0;bottom:0;left:0}.rtsee-shell .rtsee-close-settings-button{position:absolute;right:25px;top:5px;width:30px;height:30px;line-height:30px}.rtsee-shell.rtsee-shell-expanded{position:absolute;border-radius:0;max-width:unset;height:unset;width:unset;bottom:0;right:0;left:0;top:0}.rtsee-shell.rtsee-shell-expanded:hover .rtsee-controls-wrapper{bottom:16px}.rtsee-shell.rtsee-shell-expanded:hover .rtsee-window-controls{top:16px;right:16px}.rtsee-shell.rtsee-shell-expanded .rtsee-local-peer{top:unset;left:unset;width:211.2px;height:158.4px;bottom:16px;right:16px;padding:0;z-index:5}.rtsee-shell.rtsee-shell-expanded .rtsee-peers{width:100%;height:100%;display:table;table-layout:fixed}.rtsee-shell.rtsee-shell-expanded .rtsee-peers .rtsee-peer-wrapper{display:table-cell;vertical-align:middle}.rtsee-shell.rtsee-shell-expanded .rtsee-peers .rtsee-peer-wrapper ::ng-deep .rtsee-peer-video{border-radius:0}.rtsee-shell.rtsee-shell-expanded .rtsee-peers.rtsee-peers-one .rtsee-peer-wrapper{width:100%;height:100%}.rtsee-shell.rtsee-shell-expanded .rtsee-peers.rtsee-peers-one .rtsee-peer-wrapper ::ng-deep .rtsee-peer{height:70%;position:relative}.rtsee-shell.rtsee-shell-expanded .rtsee-peers.rtsee-peers-three-grid .rtsee-peer-wrapper{width:50%;height:100%}.rtsee-shell.rtsee-shell-expanded .rtsee-peers.rtsee-peers-three-grid .rtsee-peer-wrapper ::ng-deep .rtsee-peer{height:70%;position:relative}.rtsee-shell.rtsee-shell-expanded .rtsee-peers.rtsee-peers-six-grid .rtsee-peer-wrapper{width:33.3%;height:50%;float:left}.rtsee-shell.rtsee-shell-expanded .rtsee-peers.rtsee-shell-no-companions .rtsee-local-peer{height:100%;max-width:100%}.rtsee-shell.rtsee-shell-expanded .rtsee-controls-wrapper{height:84px;bottom:-84px}::ng-deep .rtsee-ripple-button{background-position:50%;transition:background .2s;outline:none}::ng-deep .rtsee-ripple-button:hover{background:hsla(0,0%,96%,.1) radial-gradient(circle,transparent 1%,hsla(0,0%,96%,.1) 0) 50%/15000%}::ng-deep .rtsee-ripple-button:active{background-size:100%;transition:background 0s}::ng-deep .rtsee-select{padding:8px;border-radius:4px;width:100%;outline:none}::ng-deep .material-icons-outlined{font-size:18px}::ng-deep .rtsee-shell.rtsee-shell-expanded .material-icons-outlined{font-size:24px}::ng-deep .rtsee-shell.rtsee-shell-expanded .rtsee-ripple-button{height:60px;width:60px;line-height:60px}"], components: [{ type: i1.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i2.RtseeSettingsComponent, selector: "ngx-rtsee-settings", inputs: ["rtSee", "fullScreenMode"] }, { type: i3.RtseePeerComponent, selector: "ngx-rtsee-peer", inputs: ["peer"] }, { type: i4.RTSeeControlsComponent, selector: "ngx-rtsee-controls", inputs: ["rtsee", "fullScreenMode"] }], directives: [{ type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i6.MatSuffix, selector: "[matSuffix]" }, { type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
23
23
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.2", ngImport: i0, type: RTSeeComponent, decorators: [{
24
24
  type: Component,
25
25
  args: [{
@@ -30,4 +30,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.2", ngImpor
30
30
  }], ctorParameters: function () { return []; }, propDecorators: { rtSee: [{
31
31
  type: Input
32
32
  }] } });
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnRzZWUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4L3NyYy9saWIvY29tcG9uZW50cy9ydHNlZS9ydHNlZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gvc3JjL2xpYi9jb21wb25lbnRzL3J0c2VlL3J0c2VlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7Ozs7OztBQVFqRCxNQUFNLE9BQU8sY0FBYztJQUt6QjtRQUNFLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxLQUFLLENBQUM7UUFDakMsSUFBSSxDQUFDLHFCQUFxQixHQUFHLEtBQUssQ0FBQztJQUNyQyxDQUFDO0lBRUQsY0FBYztRQUNaLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQztJQUN2RCxDQUFDO0lBRUQsb0JBQW9CO1FBQ2xCLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQztJQUMzRCxDQUFDOzsyR0FoQlUsY0FBYzsrRkFBZCxjQUFjLDZFQ1IzQiw2MUVBNERBOzJGRHBEYSxjQUFjO2tCQUwxQixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxXQUFXO29CQUNyQixXQUFXLEVBQUUsd0JBQXdCO29CQUNyQyxTQUFTLEVBQUUsQ0FBQyx3QkFBd0IsQ0FBQztpQkFDdEM7MEVBS1UsS0FBSztzQkFBYixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUlRTZWUgfSBmcm9tICdAcnRzZWUvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ25neC1ydHNlZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9ydHNlZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3J0c2VlLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFJUU2VlQ29tcG9uZW50IHtcbiAgc2V0dGluZ3NWaWV3RW5hYmxlZDogYm9vbGVhbjtcbiAgZnVsbFNjcmVlbk1vZGVFbmFibGVkOiBib29sZWFuO1xuXG4gIEBJbnB1dCgpIHJ0U2VlITogUlRTZWU7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuc2V0dGluZ3NWaWV3RW5hYmxlZCA9IGZhbHNlO1xuICAgIHRoaXMuZnVsbFNjcmVlbk1vZGVFbmFibGVkID0gZmFsc2U7XG4gIH1cblxuICB0b2dnbGVTZXR0aW5ncygpIHtcbiAgICB0aGlzLnNldHRpbmdzVmlld0VuYWJsZWQgPSAhdGhpcy5zZXR0aW5nc1ZpZXdFbmFibGVkO1xuICB9XG5cbiAgdG9nZ2xlRnVsbFNjcmVlbk1vZGUoKSB7XG4gICAgdGhpcy5mdWxsU2NyZWVuTW9kZUVuYWJsZWQgPSAhdGhpcy5mdWxsU2NyZWVuTW9kZUVuYWJsZWQ7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJydHNlZS1zaGVsbFwiIFtuZ0NsYXNzXT1cIntcbidydHNlZS1zaGVsbC1leHBhbmRlZCc6IHJ0U2VlLnVpQ29udHJvbHMuaXNFeHBhbmRlZCB8fCBmdWxsU2NyZWVuTW9kZUVuYWJsZWQsXG4ncnRzZWUtc2hlbGwtbm8tY29tcGFuaW9ucyc6ICFydFNlZS5ydGNQZWVyQ29ubmVjdGlvbnMuY29ubmVjdGlvbnM/Lmxlbmd0aFxufVwiPlxuICA8ZGl2IGNsYXNzPVwicnRzZWUtbG9jYWwtcGVlclwiICpuZ0lmPVwicnRTZWUubG9jYWxTdHJlYW0gJiYgcnRTZWUuY2FtZXJhXCI+XG4gICAgPHZpZGVvIGNsYXNzPVwicnRzZWUtbG9jYWwtdmlkZW9cIlxuICAgICAgICAgICBbYXV0b3BsYXldPVwidHJ1ZVwiXG4gICAgICAgICAgIFttdXRlZF09XCJ0cnVlXCJcbiAgICAgICAgICAgW3NyY09iamVjdF09XCJydFNlZS5sb2NhbFN0cmVhbVwiXG4gICAgICAgICAgIHBsYXlzaW5saW5lPVwidHJ1ZVwiXG4gICAgPjwvdmlkZW8+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwicnRzZWUtd2luZG93LWNvbnRyb2xzXCI+XG4gICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gbWF0U3VmZml4XG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIChjbGljayk9XCJ0aGlzLnRvZ2dsZVNldHRpbmdzKClcIlxuICAgICAgICAgICAgY2xhc3M9XCJydHNlZS13aW5kb3ctY29udHJvbHMtYnV0dG9uIHJ0c2VlLXJpcHBsZS1idXR0b25cIlxuICAgID5cbiAgICAgIDxzcGFuIGNsYXNzPVwibWF0ZXJpYWwtaWNvbnMtb3V0bGluZWRcIj5zZXR0aW5nczwvc3Bhbj5cbiAgICA8L2J1dHRvbj5cbiAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiBtYXRTdWZmaXhcbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgKGNsaWNrKT1cInRoaXMudG9nZ2xlRnVsbFNjcmVlbk1vZGUoKVwiXG4gICAgICAgICAgICBjbGFzcz1cInJ0c2VlLXdpbmRvdy1jb250cm9scy1idXR0b24gcnRzZWUtcmlwcGxlLWJ1dHRvblwiXG4gICAgPlxuICAgICAgPHNwYW4gY2xhc3M9XCJtYXRlcmlhbC1pY29ucy1vdXRsaW5lZFwiPm9wZW5faW5fZnVsbDwvc3Bhbj5cbiAgICA8L2J1dHRvbj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJydHNlZS1zZXR0aW5ncy1jb250YWluZXJcIiAqbmdJZj1cInNldHRpbmdzVmlld0VuYWJsZWRcIj5cbiAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiBtYXRTdWZmaXhcbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgKGNsaWNrKT1cInRoaXMudG9nZ2xlU2V0dGluZ3MoKVwiXG4gICAgICAgICAgICBjbGFzcz1cInJ0c2VlLWNsb3NlLXNldHRpbmdzLWJ1dHRvblwiXG4gICAgPlxuICAgICAgPHNwYW4gY2xhc3M9XCJtYXRlcmlhbC1pY29ucy1vdXRsaW5lZFwiPmNsb3NlPC9zcGFuPlxuICAgIDwvYnV0dG9uPlxuICAgIDxuZ3gtcnRzZWUtc2V0dGluZ3MgW3J0U2VlXT1cInJ0U2VlXCIgW2Z1bGxTY3JlZW5Nb2RlXT1cImZ1bGxTY3JlZW5Nb2RlRW5hYmxlZFwiPjwvbmd4LXJ0c2VlLXNldHRpbmdzPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cInJ0c2VlLXNjcmVlbi1zaGFyZVwiICpuZ0lmPVwicnRTZWUuc2NyZWVuU2hhcmVQZWVyXCIgPlxuICAgIDx2aWRlbyBbYXV0b3BsYXldPVwidHJ1ZVwiXG4gICAgICAgICAgIFttdXRlZF09XCJ0cnVlXCJcbiAgICAgICAgICAgW3NyY09iamVjdF09XCJydFNlZS5zY3JlZW5TaGFyZVBlZXIucmVtb3RlVmlkZW9TdHJlYW1cIlxuICAgICAgICAgICBwbGF5c2lubGluZT1cInRydWVcIlxuICAgICAgICAgICBjbGFzcz1cInJ0c2VlLXNjcmVlbi1zaGFyZS12aWRlb1wiXG4gICAgPjwvdmlkZW8+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwicnRzZWUtcGVlcnNcIj5cbiAgICA8ZGl2IGNsYXNzPVwicnRzZWUtcGVlci13cmFwcGVyXCJcbiAgICAgICAgICpuZ0Zvcj1cImxldCBwZWVyIG9mIHJ0U2VlLnJ0Y1BlZXJDb25uZWN0aW9ucy5jb25uZWN0aW9uc1wiXG4gICAgICAgICBbbmdDbGFzc109XCJ7J3J0c2VlLXBlZXItYWN0aXZlLXNwZWFrZXInOiBwZWVyLmlzQWN0aXZlU3BlYWtlcn1cIlxuICAgID5cbiAgICAgIDxuZ3gtcnRzZWUtcGVlciBbcGVlcl09XCJwZWVyXCIgW2Z1bGxTY3JlZW5Nb2RlXT1cImZ1bGxTY3JlZW5Nb2RlRW5hYmxlZFwiPjwvbmd4LXJ0c2VlLXBlZXI+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwicnRzZWUtcGVlcnMtbGlzdFwiPjwvZGl2PlxuICA8ZGl2IGNsYXNzPVwicnRzZWUtY29udHJvbHMtd3JhcHBlclwiPlxuICAgIDxuZ3gtcnRzZWUtY29udHJvbHMgW3J0c2VlXT1cInJ0U2VlXCIgW2Z1bGxTY3JlZW5Nb2RlXT1cImZ1bGxTY3JlZW5Nb2RlRW5hYmxlZFwiPjwvbmd4LXJ0c2VlLWNvbnRyb2xzPlxuICA8L2Rpdj5cbjwvZGl2PlxuXG4iXX0=
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnRzZWUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4L3NyYy9saWIvY29tcG9uZW50cy9ydHNlZS9ydHNlZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gvc3JjL2xpYi9jb21wb25lbnRzL3J0c2VlL3J0c2VlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7Ozs7OztBQVFqRCxNQUFNLE9BQU8sY0FBYztJQUt6QjtRQUNFLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxLQUFLLENBQUM7UUFDakMsSUFBSSxDQUFDLHFCQUFxQixHQUFHLEtBQUssQ0FBQztJQUNyQyxDQUFDO0lBRUQsY0FBYztRQUNaLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQztJQUN2RCxDQUFDO0lBRUQsb0JBQW9CO1FBQ2xCLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQztJQUMzRCxDQUFDOzsyR0FoQlUsY0FBYzsrRkFBZCxjQUFjLDZFQ1IzQixzNUZBc0VBOzJGRDlEYSxjQUFjO2tCQUwxQixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxXQUFXO29CQUNyQixXQUFXLEVBQUUsd0JBQXdCO29CQUNyQyxTQUFTLEVBQUUsQ0FBQyx3QkFBd0IsQ0FBQztpQkFDdEM7MEVBS1UsS0FBSztzQkFBYixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUlRTZWUgfSBmcm9tICdAcnRzZWUvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ25neC1ydHNlZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9ydHNlZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3J0c2VlLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFJUU2VlQ29tcG9uZW50IHtcbiAgc2V0dGluZ3NWaWV3RW5hYmxlZDogYm9vbGVhbjtcbiAgZnVsbFNjcmVlbk1vZGVFbmFibGVkOiBib29sZWFuO1xuXG4gIEBJbnB1dCgpIHJ0U2VlITogUlRTZWU7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuc2V0dGluZ3NWaWV3RW5hYmxlZCA9IGZhbHNlO1xuICAgIHRoaXMuZnVsbFNjcmVlbk1vZGVFbmFibGVkID0gZmFsc2U7XG4gIH1cblxuICB0b2dnbGVTZXR0aW5ncygpIHtcbiAgICB0aGlzLnNldHRpbmdzVmlld0VuYWJsZWQgPSAhdGhpcy5zZXR0aW5nc1ZpZXdFbmFibGVkO1xuICB9XG5cbiAgdG9nZ2xlRnVsbFNjcmVlbk1vZGUoKSB7XG4gICAgdGhpcy5mdWxsU2NyZWVuTW9kZUVuYWJsZWQgPSAhdGhpcy5mdWxsU2NyZWVuTW9kZUVuYWJsZWQ7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJydHNlZS1zaGVsbFwiIFtuZ0NsYXNzXT1cIntcbidydHNlZS1zaGVsbC1leHBhbmRlZCc6IHJ0U2VlLnVpQ29udHJvbHMuaXNFeHBhbmRlZCB8fCBmdWxsU2NyZWVuTW9kZUVuYWJsZWQsXG4ncnRzZWUtc2hlbGwtbm8tY29tcGFuaW9ucyc6ICFydFNlZS5ydGNQZWVyQ29ubmVjdGlvbnMuY29ubmVjdGlvbnM/Lmxlbmd0aFxufVwiPlxuICA8ZGl2IGNsYXNzPVwicnRzZWUtbG9jYWwtcGVlclwiICpuZ0lmPVwicnRTZWUubG9jYWxTdHJlYW0gJiYgcnRTZWUuY2FtZXJhXCI+XG4gICAgPHZpZGVvIGNsYXNzPVwicnRzZWUtbG9jYWwtdmlkZW9cIlxuICAgICAgICAgICBbYXV0b3BsYXldPVwidHJ1ZVwiXG4gICAgICAgICAgIFttdXRlZF09XCJ0cnVlXCJcbiAgICAgICAgICAgW3NyY09iamVjdF09XCJydFNlZS5sb2NhbFN0cmVhbVwiXG4gICAgICAgICAgIHBsYXlzaW5saW5lPVwidHJ1ZVwiXG4gICAgPjwvdmlkZW8+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwicnRzZWUtd2luZG93LWNvbnRyb2xzXCI+XG4gICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gbWF0U3VmZml4XG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIChjbGljayk9XCJ0aGlzLnRvZ2dsZVNldHRpbmdzKClcIlxuICAgICAgICAgICAgY2xhc3M9XCJydHNlZS13aW5kb3ctY29udHJvbHMtYnV0dG9uIHJ0c2VlLXJpcHBsZS1idXR0b25cIlxuICAgID5cbiAgICAgIDxzcGFuIGNsYXNzPVwibWF0ZXJpYWwtaWNvbnMtb3V0bGluZWRcIj5zZXR0aW5nczwvc3Bhbj5cbiAgICA8L2J1dHRvbj5cbiAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiBtYXRTdWZmaXhcbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgKGNsaWNrKT1cInRoaXMudG9nZ2xlRnVsbFNjcmVlbk1vZGUoKVwiXG4gICAgICAgICAgICBjbGFzcz1cInJ0c2VlLXdpbmRvdy1jb250cm9scy1idXR0b24gcnRzZWUtcmlwcGxlLWJ1dHRvblwiXG4gICAgPlxuICAgICAgPHNwYW4gY2xhc3M9XCJtYXRlcmlhbC1pY29ucy1vdXRsaW5lZFwiPm9wZW5faW5fZnVsbDwvc3Bhbj5cbiAgICA8L2J1dHRvbj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJydHNlZS1zZXR0aW5ncy1jb250YWluZXJcIiAqbmdJZj1cInNldHRpbmdzVmlld0VuYWJsZWRcIj5cbiAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiBtYXRTdWZmaXhcbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgKGNsaWNrKT1cInRoaXMudG9nZ2xlU2V0dGluZ3MoKVwiXG4gICAgICAgICAgICBjbGFzcz1cInJ0c2VlLWNsb3NlLXNldHRpbmdzLWJ1dHRvblwiXG4gICAgPlxuICAgICAgPHNwYW4gY2xhc3M9XCJtYXRlcmlhbC1pY29ucy1vdXRsaW5lZFwiPmNsb3NlPC9zcGFuPlxuICAgIDwvYnV0dG9uPlxuICAgIDxuZ3gtcnRzZWUtc2V0dGluZ3MgW3J0U2VlXT1cInJ0U2VlXCIgW2Z1bGxTY3JlZW5Nb2RlXT1cImZ1bGxTY3JlZW5Nb2RlRW5hYmxlZFwiPjwvbmd4LXJ0c2VlLXNldHRpbmdzPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cInJ0c2VlLXNjcmVlbi1zaGFyZVwiICpuZ0lmPVwicnRTZWUuc2NyZWVuU2hhcmVQZWVyXCIgPlxuICAgIDx2aWRlbyBbYXV0b3BsYXldPVwidHJ1ZVwiXG4gICAgICAgICAgIFttdXRlZF09XCJ0cnVlXCJcbiAgICAgICAgICAgW3NyY09iamVjdF09XCJydFNlZS5zY3JlZW5TaGFyZVBlZXIucmVtb3RlVmlkZW9TdHJlYW1cIlxuICAgICAgICAgICBwbGF5c2lubGluZT1cInRydWVcIlxuICAgICAgICAgICBjbGFzcz1cInJ0c2VlLXNjcmVlbi1zaGFyZS12aWRlb1wiXG4gICAgPjwvdmlkZW8+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwicnRzZWUtcGVlcnNcIiBbbmdDbGFzc109XCJ7XG4gICAgJ3J0c2VlLXBlZXJzLWFsb25lJzogIXJ0U2VlLnJ0Y1BlZXJDb25uZWN0aW9ucy5jb25uZWN0aW9ucz8ubGVuZ3RoLFxuICAgICdydHNlZS1wZWVycy1vbmUnOiBydFNlZS5ydGNQZWVyQ29ubmVjdGlvbnMuY29ubmVjdGlvbnM/Lmxlbmd0aCA9PT0gMSxcbiAgICAncnRzZWUtcGVlcnMtdGhyZWUtZ3JpZCc6IHJ0U2VlLnJ0Y1BlZXJDb25uZWN0aW9ucy5jb25uZWN0aW9ucz8ubGVuZ3RoXG4gICAgICAmJiBydFNlZS5ydGNQZWVyQ29ubmVjdGlvbnMuY29ubmVjdGlvbnMubGVuZ3RoID4gMVxuICAgICAgJiYgcnRTZWUucnRjUGVlckNvbm5lY3Rpb25zLmNvbm5lY3Rpb25zLmxlbmd0aCA8IDQsXG4gICAgJ3J0c2VlLXBlZXJzLXNpeC1ncmlkJzogcnRTZWUucnRjUGVlckNvbm5lY3Rpb25zLmNvbm5lY3Rpb25zPy5sZW5ndGhcbiAgICAgICYmIHJ0U2VlLnJ0Y1BlZXJDb25uZWN0aW9ucy5jb25uZWN0aW9ucy5sZW5ndGggPiAzXG4gICAgICAmJiBydFNlZS5ydGNQZWVyQ29ubmVjdGlvbnMuY29ubmVjdGlvbnMubGVuZ3RoIDwgNyxcbiAgICAncnRzZWUtcGVlcnMtbmluZS1ncmlkJzogcnRTZWUucnRjUGVlckNvbm5lY3Rpb25zLmNvbm5lY3Rpb25zPy5sZW5ndGhcbiAgICAgICYmIHJ0U2VlLnJ0Y1BlZXJDb25uZWN0aW9ucy5jb25uZWN0aW9ucy5sZW5ndGggPj0gN1xuICB9XCI+XG4gICAgPGRpdiBjbGFzcz1cInJ0c2VlLXBlZXItd3JhcHBlclwiXG4gICAgICAgICAqbmdGb3I9XCJsZXQgcGVlciBvZiBydFNlZS5ydGNQZWVyQ29ubmVjdGlvbnMuY29ubmVjdGlvbnNcIlxuICAgID5cbiAgICAgIDxuZ3gtcnRzZWUtcGVlciBbcGVlcl09XCJwZWVyXCI+PC9uZ3gtcnRzZWUtcGVlcj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJydHNlZS1wZWVycy1saXN0XCI+PC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJydHNlZS1jb250cm9scy13cmFwcGVyXCI+XG4gICAgPG5neC1ydHNlZS1jb250cm9scyBbcnRzZWVdPVwicnRTZWVcIiBbZnVsbFNjcmVlbk1vZGVdPVwiZnVsbFNjcmVlbk1vZGVFbmFibGVkXCI+PC9uZ3gtcnRzZWUtY29udHJvbHM+XG4gIDwvZGl2PlxuPC9kaXY+XG5cbiJdfQ==
@@ -0,0 +1,15 @@
1
+ import { Component } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class RtseeEventsDashboardClientComponent {
4
+ }
5
+ RtseeEventsDashboardClientComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.1.2", ngImport: i0, type: RtseeEventsDashboardClientComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
6
+ RtseeEventsDashboardClientComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.1.2", type: RtseeEventsDashboardClientComponent, selector: "ngx-rtsee-events-dashboard-client", ngImport: i0, template: "<p>rtsee-events-dashboard-client works!</p>\n", styles: [""] });
7
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.2", ngImport: i0, type: RtseeEventsDashboardClientComponent, decorators: [{
8
+ type: Component,
9
+ args: [{
10
+ selector: 'ngx-rtsee-events-dashboard-client',
11
+ templateUrl: './rtsee-events-dashboard-client.component.html',
12
+ styleUrls: ['./rtsee-events-dashboard-client.component.css'],
13
+ }]
14
+ }] });
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnRzZWUtZXZlbnRzLWRhc2hib2FyZC1jbGllbnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4L3NyYy9saWIvY29tcG9uZW50cy9ydHNlZS1ldmVudHMtZGFzaGJvYXJkL2NvbXBvbmVudHMvcnRzZWUtZXZlbnRzLWRhc2hib2FyZC1jbGllbnQvcnRzZWUtZXZlbnRzLWRhc2hib2FyZC1jbGllbnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4L3NyYy9saWIvY29tcG9uZW50cy9ydHNlZS1ldmVudHMtZGFzaGJvYXJkL2NvbXBvbmVudHMvcnRzZWUtZXZlbnRzLWRhc2hib2FyZC1jbGllbnQvcnRzZWUtZXZlbnRzLWRhc2hib2FyZC1jbGllbnQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFPMUMsTUFBTSxPQUFPLG1DQUFtQzs7Z0lBQW5DLG1DQUFtQztvSEFBbkMsbUNBQW1DLHlFQ1BoRCwrQ0FDQTsyRkRNYSxtQ0FBbUM7a0JBTC9DLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLG1DQUFtQztvQkFDN0MsV0FBVyxFQUFFLGdEQUFnRDtvQkFDN0QsU0FBUyxFQUFFLENBQUMsK0NBQStDLENBQUM7aUJBQzdEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ25neC1ydHNlZS1ldmVudHMtZGFzaGJvYXJkLWNsaWVudCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9ydHNlZS1ldmVudHMtZGFzaGJvYXJkLWNsaWVudC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3J0c2VlLWV2ZW50cy1kYXNoYm9hcmQtY2xpZW50LmNvbXBvbmVudC5jc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgUnRzZWVFdmVudHNEYXNoYm9hcmRDbGllbnRDb21wb25lbnQge31cbiIsIjxwPnJ0c2VlLWV2ZW50cy1kYXNoYm9hcmQtY2xpZW50IHdvcmtzITwvcD5cbiJdfQ==
@@ -0,0 +1,30 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "../../../../services/time-format-helper.service";
4
+ import * as i2 from "@angular/common";
5
+ export class RtseeEventsDashboardClientThumbnailComponent {
6
+ constructor(timeFormatService) {
7
+ this.timeFormatService = timeFormatService;
8
+ }
9
+ ngOnInit() {
10
+ console.log(this.client);
11
+ }
12
+ openChat() {
13
+ this.dashboard.openChat(this.client);
14
+ }
15
+ }
16
+ RtseeEventsDashboardClientThumbnailComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.1.2", ngImport: i0, type: RtseeEventsDashboardClientThumbnailComponent, deps: [{ token: i1.TimeFormatHelperService }], target: i0.ɵɵFactoryTarget.Component });
17
+ RtseeEventsDashboardClientThumbnailComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.1.2", type: RtseeEventsDashboardClientThumbnailComponent, selector: "ngx-rtsee-events-dashboard-client-thumbnail", inputs: { dashboard: "dashboard", client: "client" }, ngImport: i0, template: "<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", styles: [""], directives: [{ type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
18
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.2", ngImport: i0, type: RtseeEventsDashboardClientThumbnailComponent, decorators: [{
19
+ type: Component,
20
+ args: [{
21
+ selector: 'ngx-rtsee-events-dashboard-client-thumbnail',
22
+ templateUrl: './rtsee-events-dashboard-client-thumbnail.component.html',
23
+ styleUrls: ['./rtsee-events-dashboard-client-thumbnail.component.scss'],
24
+ }]
25
+ }], ctorParameters: function () { return [{ type: i1.TimeFormatHelperService }]; }, propDecorators: { dashboard: [{
26
+ type: Input
27
+ }], client: [{
28
+ type: Input
29
+ }] } });
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnRzZWUtZXZlbnRzLWRhc2hib2FyZC1jbGllbnQtdGh1bWJuYWlsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC9zcmMvbGliL2NvbXBvbmVudHMvcnRzZWUtZXZlbnRzLWRhc2hib2FyZC9jb21wb25lbnRzL3J0c2VlLWV2ZW50cy1kYXNoYm9hcmQtY2xpZW50LXRodW1ibmFpbC9ydHNlZS1ldmVudHMtZGFzaGJvYXJkLWNsaWVudC10aHVtYm5haWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4L3NyYy9saWIvY29tcG9uZW50cy9ydHNlZS1ldmVudHMtZGFzaGJvYXJkL2NvbXBvbmVudHMvcnRzZWUtZXZlbnRzLWRhc2hib2FyZC1jbGllbnQtdGh1bWJuYWlsL3J0c2VlLWV2ZW50cy1kYXNoYm9hcmQtY2xpZW50LXRodW1ibmFpbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQzs7OztBQVl6RCxNQUFNLE9BQU8sNENBQTRDO0lBSXZELFlBQW1CLGlCQUEwQztRQUExQyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQXlCO0lBQUcsQ0FBQztJQUVqRSxRQUFRO1FBQ04sT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDdkMsQ0FBQzs7eUlBWlUsNENBQTRDOzZIQUE1Qyw0Q0FBNEMseUlDWnpELHdsQkFpQkE7MkZETGEsNENBQTRDO2tCQUx4RCxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSw2Q0FBNkM7b0JBQ3ZELFdBQVcsRUFBRSwwREFBMEQ7b0JBQ3ZFLFNBQVMsRUFBRSxDQUFDLDBEQUEwRCxDQUFDO2lCQUN4RTs4R0FFVSxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgUlRTZWVEYXNoYm9hcmRDbGllbnQsXG4gIFJUU2VlRXZlbnRzRGFzaGJvYXJkLFxufSBmcm9tICdAcnRzZWUvZXZlbnRzLW1hbmFnZXInO1xuaW1wb3J0IHsgVGltZUZvcm1hdEhlbHBlclNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2aWNlcy90aW1lLWZvcm1hdC1oZWxwZXIuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ25neC1ydHNlZS1ldmVudHMtZGFzaGJvYXJkLWNsaWVudC10aHVtYm5haWwnLFxuICB0ZW1wbGF0ZVVybDogJy4vcnRzZWUtZXZlbnRzLWRhc2hib2FyZC1jbGllbnQtdGh1bWJuYWlsLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcnRzZWUtZXZlbnRzLWRhc2hib2FyZC1jbGllbnQtdGh1bWJuYWlsLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFJ0c2VlRXZlbnRzRGFzaGJvYXJkQ2xpZW50VGh1bWJuYWlsQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgZGFzaGJvYXJkITogUlRTZWVFdmVudHNEYXNoYm9hcmQ7XG4gIEBJbnB1dCgpIGNsaWVudCE6IFJUU2VlRGFzaGJvYXJkQ2xpZW50O1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyB0aW1lRm9ybWF0U2VydmljZTogVGltZUZvcm1hdEhlbHBlclNlcnZpY2UpIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgY29uc29sZS5sb2codGhpcy5jbGllbnQpO1xuICB9XG5cbiAgb3BlbkNoYXQoKSB7XG4gICAgdGhpcy5kYXNoYm9hcmQub3BlbkNoYXQodGhpcy5jbGllbnQpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwicnRzZWUtZGFzaGJvYXJkLWNsaWVudC10aHVtYm5haWxcIj5cbiAgPHA+e3sgY2xpZW50LmlkIH19PC9wPlxuICA8cD57eyBjbGllbnQubmFtZSB8fCBjbGllbnQuaWQgfX08L3A+XG4gIDxkaXYgY2xhc3M9XCJydHNlZS1kYXNoYm9hcmQtY2xpZW50LXRodW1ibmFpbC1ldmVudHNcIj5cbiAgICA8ZGl2IGNsYXNzPVwicnRzZWUtZGFzaGJvYXJkLWNsaWVudC10aHVtYm5haWwtZXZlbnRcIlxuICAgICAgICAgKm5nRm9yPVwibGV0IGV2ZW50IG9mIGNsaWVudC5ldmVudHNcIj5cbiAgICAgIDxwPlxuICAgICAgICA8c3Bhbj57e2V2ZW50Lm5hbWV9fTwvc3Bhbj5cbiAgICAgICAgPHNwYW4+Jm5ic3A7PC9zcGFuPlxuICAgICAgICA8c3Bhbj57eyB0aW1lRm9ybWF0U2VydmljZS50b0FnbyhldmVudC5jcmVhdGVkQXQpIH19PC9zcGFuPlxuICAgICAgPC9wPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJydHNlZS1kYXNoYm9hcmQtY2xpZW50LXRodW1ibmFpbC1hY3Rpb25zXCI+XG4gICAgICA8YnV0dG9uIChjbGljayk9XCJvcGVuQ2hhdCgpXCI+Q2hhdDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
@@ -0,0 +1,19 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "./components/rtsee-events-dashboard-client-thumbnail/rtsee-events-dashboard-client-thumbnail.component";
4
+ import * as i2 from "@angular/common";
5
+ export class RtseeEventsDashboardComponent {
6
+ }
7
+ RtseeEventsDashboardComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.1.2", ngImport: i0, type: RtseeEventsDashboardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
8
+ RtseeEventsDashboardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.1.2", type: RtseeEventsDashboardComponent, selector: "ngx-rtsee-events-dashboard", inputs: { eventsDashboard: "eventsDashboard" }, ngImport: i0, template: "<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", styles: [".rtsee-events-dashboard{background-color:#333;padding:16px}.rtsee-events-dashboard .rtsee-events-dashboard-client-thumbnails .rtsee-events-dashboard-client-thumbnail-wrapper{background-color:#fff;margin-bottom:16px}"], components: [{ type: i1.RtseeEventsDashboardClientThumbnailComponent, selector: "ngx-rtsee-events-dashboard-client-thumbnail", inputs: ["dashboard", "client"] }], directives: [{ type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
9
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.2", ngImport: i0, type: RtseeEventsDashboardComponent, decorators: [{
10
+ type: Component,
11
+ args: [{
12
+ selector: 'ngx-rtsee-events-dashboard',
13
+ templateUrl: './rtsee-events-dashboard.component.html',
14
+ styleUrls: ['./rtsee-events-dashboard.component.scss'],
15
+ }]
16
+ }], propDecorators: { eventsDashboard: [{
17
+ type: Input
18
+ }] } });
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnRzZWUtZXZlbnRzLWRhc2hib2FyZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gvc3JjL2xpYi9jb21wb25lbnRzL3J0c2VlLWV2ZW50cy1kYXNoYm9hcmQvcnRzZWUtZXZlbnRzLWRhc2hib2FyZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gvc3JjL2xpYi9jb21wb25lbnRzL3J0c2VlLWV2ZW50cy1kYXNoYm9hcmQvcnRzZWUtZXZlbnRzLWRhc2hib2FyZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7OztBQVFqRCxNQUFNLE9BQU8sNkJBQTZCOzswSEFBN0IsNkJBQTZCOzhHQUE3Qiw2QkFBNkIsa0hDUjFDLHFiQVdBOzJGREhhLDZCQUE2QjtrQkFMekMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsNEJBQTRCO29CQUN0QyxXQUFXLEVBQUUseUNBQXlDO29CQUN0RCxTQUFTLEVBQUUsQ0FBQyx5Q0FBeUMsQ0FBQztpQkFDdkQ7OEJBRVUsZUFBZTtzQkFBdkIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJUU2VlRXZlbnRzRGFzaGJvYXJkIH0gZnJvbSAnQHJ0c2VlL2V2ZW50cy1tYW5hZ2VyJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbmd4LXJ0c2VlLWV2ZW50cy1kYXNoYm9hcmQnLFxuICB0ZW1wbGF0ZVVybDogJy4vcnRzZWUtZXZlbnRzLWRhc2hib2FyZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3J0c2VlLWV2ZW50cy1kYXNoYm9hcmQuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgUnRzZWVFdmVudHNEYXNoYm9hcmRDb21wb25lbnQge1xuICBASW5wdXQoKSBldmVudHNEYXNoYm9hcmQhOiBSVFNlZUV2ZW50c0Rhc2hib2FyZDtcbn1cbiIsIjxkaXYgY2xhc3M9XCJydHNlZS1ldmVudHMtZGFzaGJvYXJkXCI+XG4gIDxkaXYgY2xhc3M9XCJydHNlZS1ldmVudHMtZGFzaGJvYXJkLWNsaWVudC10aHVtYm5haWxzXCI+XG4gICAgPGRpdiBjbGFzcz1cInJ0c2VlLWV2ZW50cy1kYXNoYm9hcmQtY2xpZW50LXRodW1ibmFpbC13cmFwcGVyXCJcbiAgICAgICAgICpuZ0Zvcj1cImxldCBjbGllbnQgb2YgZXZlbnRzRGFzaGJvYXJkLmNsaWVudHNcIj5cbiAgICAgIDxuZ3gtcnRzZWUtZXZlbnRzLWRhc2hib2FyZC1jbGllbnQtdGh1bWJuYWlsXG4gICAgICAgIFtjbGllbnRdPVwiY2xpZW50XCJcbiAgICAgICAgW2Rhc2hib2FyZF09XCJldmVudHNEYXNoYm9hcmRcIlxuICAgICAgPjwvbmd4LXJ0c2VlLWV2ZW50cy1kYXNoYm9hcmQtY2xpZW50LXRodW1ibmFpbD5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
@@ -0,0 +1,21 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "../messages-list/messages-list.component";
4
+ import * as i2 from "../chat-input/chat-input.component";
5
+ export class ChatComponent {
6
+ }
7
+ ChatComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.1.2", ngImport: i0, type: ChatComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
8
+ ChatComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.1.2", type: ChatComponent, selector: "ngx-chat", inputs: { chat: "chat", messenger: "messenger" }, ngImport: i0, template: "<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", styles: [""], components: [{ type: i1.MessagesListComponent, selector: "ngx-messages-list", inputs: ["chat", "messenger"] }, { type: i2.ChatInputComponent, selector: "ngx-chat-input", inputs: ["messenger", "chat"] }] });
9
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.2", ngImport: i0, type: ChatComponent, decorators: [{
10
+ type: Component,
11
+ args: [{
12
+ selector: 'ngx-chat',
13
+ templateUrl: './chat.component.html',
14
+ styleUrls: ['./chat.component.css'],
15
+ }]
16
+ }], propDecorators: { chat: [{
17
+ type: Input
18
+ }], messenger: [{
19
+ type: Input
20
+ }] } });
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gvc3JjL2xpYi9jb21wb25lbnRzL3J0c2VlLW1lc3Nlbmdlci9jaGF0L2NoYXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4L3NyYy9saWIvY29tcG9uZW50cy9ydHNlZS1tZXNzZW5nZXIvY2hhdC9jaGF0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7O0FBUWpELE1BQU0sT0FBTyxhQUFhOzswR0FBYixhQUFhOzhGQUFiLGFBQWEsa0dDUjFCLGtUQVFBOzJGREFhLGFBQWE7a0JBTHpCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLFVBQVU7b0JBQ3BCLFdBQVcsRUFBRSx1QkFBdUI7b0JBQ3BDLFNBQVMsRUFBRSxDQUFDLHNCQUFzQixDQUFDO2lCQUNwQzs4QkFFVSxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJUU2VlQ2hhdCwgUlRTZWVNZXNzZW5nZXIgfSBmcm9tICdAcnRzZWUvbWVzc2VuZ2VyJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbmd4LWNoYXQnLFxuICB0ZW1wbGF0ZVVybDogJy4vY2hhdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NoYXQuY29tcG9uZW50LmNzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBDaGF0Q29tcG9uZW50IHtcbiAgQElucHV0KCkgY2hhdCE6IFJUU2VlQ2hhdDtcbiAgQElucHV0KCkgbWVzc2VuZ2VyITogUlRTZWVNZXNzZW5nZXI7XG59XG4iLCI8ZGl2IGNsYXNzPVwicnRzZWUtY2hhdFwiPlxuICA8ZGl2IGNsYXNzPVwicnRzZWUtY2hhdC1ib2R5LWNvbnRhaW5lclwiPlxuICAgIDxuZ3gtbWVzc2FnZXMtbGlzdCBbbWVzc2VuZ2VyXT1cIm1lc3NlbmdlclwiIFtjaGF0XT1cImNoYXRcIj48L25neC1tZXNzYWdlcy1saXN0PlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImlucHV0LWNvbnRhaW5lclwiPlxuICAgIDxuZ3gtY2hhdC1pbnB1dCBbbWVzc2VuZ2VyXT1cIm1lc3NlbmdlclwiIFtjaGF0XT1cImNoYXRcIj48L25neC1jaGF0LWlucHV0PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
@@ -0,0 +1,38 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import { FormControl, FormGroup, Validators } from '@angular/forms';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/material/button";
5
+ import * as i2 from "@angular/forms";
6
+ export class ChatInputComponent {
7
+ constructor() {
8
+ this.sendMessageForm = new FormGroup({
9
+ /* eslint-disable */
10
+ message: new FormControl('', Validators.required),
11
+ /* eslint-enable */
12
+ });
13
+ }
14
+ sendMessage() {
15
+ var _a, _b;
16
+ const text = (_a = this.sendMessageForm.get('message')) === null || _a === void 0 ? void 0 : _a.value;
17
+ if (!text) {
18
+ return;
19
+ }
20
+ this.chat.sendMessage(text);
21
+ (_b = this.sendMessageForm.get('message')) === null || _b === void 0 ? void 0 : _b.setValue('');
22
+ }
23
+ }
24
+ ChatInputComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.1.2", ngImport: i0, type: ChatInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
25
+ ChatInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.1.2", type: ChatInputComponent, selector: "ngx-chat-input", inputs: { messenger: "messenger", chat: "chat" }, ngImport: i0, template: "<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", styles: [""], components: [{ type: i1.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }], directives: [{ type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2.FormControlName, selector: "[formControlName]", inputs: ["disabled", "formControlName", "ngModel"], outputs: ["ngModelChange"] }, { type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }] });
26
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.2", ngImport: i0, type: ChatInputComponent, decorators: [{
27
+ type: Component,
28
+ args: [{
29
+ selector: 'ngx-chat-input',
30
+ templateUrl: './chat-input.component.html',
31
+ styleUrls: ['./chat-input.component.css'],
32
+ }]
33
+ }], propDecorators: { messenger: [{
34
+ type: Input
35
+ }], chat: [{
36
+ type: Input
37
+ }] } });
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhdC1pbnB1dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gvc3JjL2xpYi9jb21wb25lbnRzL3J0c2VlLW1lc3Nlbmdlci9jaGF0LWlucHV0L2NoYXQtaW5wdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4L3NyYy9saWIvY29tcG9uZW50cy9ydHNlZS1tZXNzZW5nZXIvY2hhdC1pbnB1dC9jaGF0LWlucHV0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7O0FBUXBFLE1BQU0sT0FBTyxrQkFBa0I7SUFML0I7UUFNRSxvQkFBZSxHQUFjLElBQUksU0FBUyxDQUFDO1lBQ3pDLG9CQUFvQjtZQUNwQixPQUFPLEVBQUUsSUFBSSxXQUFXLENBQUMsRUFBRSxFQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUM7WUFDakQsbUJBQW1CO1NBQ3BCLENBQUMsQ0FBQztLQWFKO0lBUkMsV0FBVzs7UUFDVCxNQUFNLElBQUksR0FBRyxNQUFBLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQywwQ0FBRSxLQUFlLENBQUM7UUFDbEUsSUFBSSxDQUFDLElBQUksRUFBRTtZQUNULE9BQU87U0FDUjtRQUNELElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzVCLE1BQUEsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLDBDQUFFLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNwRCxDQUFDOzsrR0FqQlUsa0JBQWtCO21HQUFsQixrQkFBa0Isd0dDVC9CLGdjQWFBOzJGREphLGtCQUFrQjtrQkFMOUIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsZ0JBQWdCO29CQUMxQixXQUFXLEVBQUUsNkJBQTZCO29CQUMxQyxTQUFTLEVBQUUsQ0FBQyw0QkFBNEIsQ0FBQztpQkFDMUM7OEJBUVUsU0FBUztzQkFBakIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgUlRTZWVDaGF0LCBSVFNlZU1lc3NlbmdlciB9IGZyb20gJ0BydHNlZS9tZXNzZW5nZXInO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICduZ3gtY2hhdC1pbnB1dCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9jaGF0LWlucHV0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY2hhdC1pbnB1dC5jb21wb25lbnQuY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIENoYXRJbnB1dENvbXBvbmVudCB7XG4gIHNlbmRNZXNzYWdlRm9ybTogRm9ybUdyb3VwID0gbmV3IEZvcm1Hcm91cCh7XG4gICAgLyogZXNsaW50LWRpc2FibGUgKi9cbiAgICBtZXNzYWdlOiBuZXcgRm9ybUNvbnRyb2woJycsIFZhbGlkYXRvcnMucmVxdWlyZWQpLFxuICAgIC8qIGVzbGludC1lbmFibGUgKi9cbiAgfSk7XG5cbiAgQElucHV0KCkgbWVzc2VuZ2VyITogUlRTZWVNZXNzZW5nZXI7XG4gIEBJbnB1dCgpIGNoYXQhOiBSVFNlZUNoYXQ7XG5cbiAgc2VuZE1lc3NhZ2UoKSB7XG4gICAgY29uc3QgdGV4dCA9IHRoaXMuc2VuZE1lc3NhZ2VGb3JtLmdldCgnbWVzc2FnZScpPy52YWx1ZSBhcyBzdHJpbmc7XG4gICAgaWYgKCF0ZXh0KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuY2hhdC5zZW5kTWVzc2FnZSh0ZXh0KTtcbiAgICB0aGlzLnNlbmRNZXNzYWdlRm9ybS5nZXQoJ21lc3NhZ2UnKT8uc2V0VmFsdWUoJycpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwicnRzZWUtY2hhdC1pbnB1dFwiPlxuICA8ZGl2IGNsYXNzPVwicnRzZWUtc2VuZC1tZXNzYWdlXCI+XG4gICAgPGZvcm0gW2Zvcm1Hcm91cF09XCJzZW5kTWVzc2FnZUZvcm1cIj5cbiAgICAgIDxpbnB1dCBwbGFjZWhvbGRlcj1cIlR5cGUgbWVzc2FnZS4uLlwiIHR5cGU9XCJ0ZXh0XCIgZm9ybUNvbnRyb2xOYW1lPVwibWVzc2FnZVwiIHJlcXVpcmVkPlxuICAgICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvblxuICAgICAgICAgICAgICAoY2xpY2spPVwic2VuZE1lc3NhZ2UoKVwiXG4gICAgICAgICAgICAgIGNsYXNzPVwicnRzZWUtc2VuZC1tZXNzYWdlLWJ1dHRvblwiXG4gICAgICAgICAgICAgIHR5cGU9XCJzdWJtaXRcIj5cbiAgICAgICAgPHNwYW4+U2VuZDwvc3Bhbj5cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvZm9ybT5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
@@ -0,0 +1,19 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class ChatThumbnailComponent {
4
+ }
5
+ ChatThumbnailComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.1.2", ngImport: i0, type: ChatThumbnailComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
6
+ ChatThumbnailComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.1.2", type: ChatThumbnailComponent, selector: "ngx-chat-thumbnail", inputs: { chat: "chat", messenger: "messenger" }, ngImport: i0, template: "<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", styles: [""] });
7
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.2", ngImport: i0, type: ChatThumbnailComponent, decorators: [{
8
+ type: Component,
9
+ args: [{
10
+ selector: 'ngx-chat-thumbnail',
11
+ templateUrl: './chat-thumbnail.component.html',
12
+ styleUrls: ['./chat-thumbnail.component.css'],
13
+ }]
14
+ }], propDecorators: { chat: [{
15
+ type: Input
16
+ }], messenger: [{
17
+ type: Input
18
+ }] } });
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhdC10aHVtYm5haWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4L3NyYy9saWIvY29tcG9uZW50cy9ydHNlZS1tZXNzZW5nZXIvY2hhdC10aHVtYm5haWwvY2hhdC10aHVtYm5haWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4L3NyYy9saWIvY29tcG9uZW50cy9ydHNlZS1tZXNzZW5nZXIvY2hhdC10aHVtYm5haWwvY2hhdC10aHVtYm5haWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBUWpELE1BQU0sT0FBTyxzQkFBc0I7O21IQUF0QixzQkFBc0I7dUdBQXRCLHNCQUFzQiw0R0NSbkMsaWFBUUE7MkZEQWEsc0JBQXNCO2tCQUxsQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxvQkFBb0I7b0JBQzlCLFdBQVcsRUFBRSxpQ0FBaUM7b0JBQzlDLFNBQVMsRUFBRSxDQUFDLGdDQUFnQyxDQUFDO2lCQUM5Qzs4QkFFVSxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJUU2VlQ2hhdCwgUlRTZWVNZXNzZW5nZXIgfSBmcm9tICdAcnRzZWUvbWVzc2VuZ2VyJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbmd4LWNoYXQtdGh1bWJuYWlsJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NoYXQtdGh1bWJuYWlsLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY2hhdC10aHVtYm5haWwuY29tcG9uZW50LmNzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBDaGF0VGh1bWJuYWlsQ29tcG9uZW50IHtcbiAgQElucHV0KCkgY2hhdCE6IFJUU2VlQ2hhdDtcbiAgQElucHV0KCkgbWVzc2VuZ2VyITogUlRTZWVNZXNzZW5nZXI7XG59XG4iLCI8ZGl2IGNsYXNzPVwicnRzZWUtY2hhdC10aHVtYm5haWxcIiAoY2xpY2spPVwibWVzc2VuZ2VyLm9wZW5DaGF0KGNoYXQpXCI+XG4gIDxkaXYgY2xhc3M9XCJydHNlZS1jaGF0LXRodW1ibmFpbC1pbWFnZVwiPlxuICAgIDxpbWcgW3NyY109XCJjaGF0LmltYWdlVXJsXCI+XG4gIDwvZGl2PlxuICA8cCBjbGFzcz1cInJ0c2VlLWNoYXQtdGh1bWJuYWlsLW5hbWVcIj57eyBjaGF0Lm5hbWUgfX08L3A+XG4gIDxwIGNsYXNzPVwicnRzZWUtY2hhdC10aHVtYm5haWwtbGFzdC1tZXNzYWdlXCI+IHt7IGNoYXQuZ2V0TGFzdFNlbmRlck5hbWUoKSB9fSA8L3A+XG4gIDxwIGNsYXNzPVwicnRzZWUtY2hhdC10aHVtYm5haWwtbGFzdC1tZXNzYWdlXCI+IHt7IGNoYXQuZ2V0TGFzdFNlbnRNZXNzYWdlVGV4dCgpIH19IDwvcD5cbjwvZGl2PlxuIl19
@@ -0,0 +1,24 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "../chat-thumbnail/chat-thumbnail.component";
4
+ import * as i2 from "@angular/common";
5
+ export class ChatsListComponent {
6
+ ngOnInit() {
7
+ console.log(this.chats);
8
+ }
9
+ }
10
+ ChatsListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.1.2", ngImport: i0, type: ChatsListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
11
+ ChatsListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.1.2", type: ChatsListComponent, selector: "ngx-chats-list", inputs: { messenger: "messenger", chats: "chats" }, ngImport: i0, template: "<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", styles: [".rtsee-chat-separator{width:100%;color:#fff;height:1px;opacity:.7}"], components: [{ type: i1.ChatThumbnailComponent, selector: "ngx-chat-thumbnail", inputs: ["chat", "messenger"] }], directives: [{ type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
12
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.2", ngImport: i0, type: ChatsListComponent, decorators: [{
13
+ type: Component,
14
+ args: [{
15
+ selector: 'ngx-chats-list',
16
+ templateUrl: './chats-list.component.html',
17
+ styleUrls: ['./chats-list.component.css'],
18
+ }]
19
+ }], propDecorators: { messenger: [{
20
+ type: Input
21
+ }], chats: [{
22
+ type: Input
23
+ }] } });
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhdHMtbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gvc3JjL2xpYi9jb21wb25lbnRzL3J0c2VlLW1lc3Nlbmdlci9jaGF0cy1saXN0L2NoYXRzLWxpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4L3NyYy9saWIvY29tcG9uZW50cy9ydHNlZS1tZXNzZW5nZXIvY2hhdHMtbGlzdC9jaGF0cy1saXN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDOzs7O0FBUXpELE1BQU0sT0FBTyxrQkFBa0I7SUFJN0IsUUFBUTtRQUNOLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzFCLENBQUM7OytHQU5VLGtCQUFrQjttR0FBbEIsa0JBQWtCLDBHQ1IvQixnU0FNQTsyRkRFYSxrQkFBa0I7a0JBTDlCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGdCQUFnQjtvQkFDMUIsV0FBVyxFQUFFLDZCQUE2QjtvQkFDMUMsU0FBUyxFQUFFLENBQUMsNEJBQTRCLENBQUM7aUJBQzFDOzhCQUVVLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSVFNlZUNoYXQsIFJUU2VlTWVzc2VuZ2VyIH0gZnJvbSAnQHJ0c2VlL21lc3Nlbmdlcic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ25neC1jaGF0cy1saXN0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NoYXRzLWxpc3QuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jaGF0cy1saXN0LmNvbXBvbmVudC5jc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgQ2hhdHNMaXN0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgbWVzc2VuZ2VyITogUlRTZWVNZXNzZW5nZXI7XG4gIEBJbnB1dCgpIGNoYXRzITogUlRTZWVDaGF0W107XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgY29uc29sZS5sb2codGhpcy5jaGF0cyk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJydHNlZS1jaGF0cy1saXN0XCI+XG4gIDxkaXYgY2xhc3M9XCJydHNlZS1jaGF0LXRodW1ibmFpbC1jb250YWluZXJcIiAqbmdGb3I9XCJsZXQgY2hhdCBvZiBjaGF0czsgbGV0IGxhc3QgPSBsYXN0O1wiPlxuICAgIDxuZ3gtY2hhdC10aHVtYm5haWwgW2NoYXRdPVwiY2hhdFwiIFttZXNzZW5nZXJdPVwibWVzc2VuZ2VyXCI+PC9uZ3gtY2hhdC10aHVtYm5haWw+XG4gICAgPGRpdiBjbGFzcz1cInJ0c2VlLWNoYXQtc2VwYXJhdG9yXCI+PC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
@@ -0,0 +1,19 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class MessageComponent {
4
+ }
5
+ MessageComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.1.2", ngImport: i0, type: MessageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
6
+ MessageComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.1.2", type: MessageComponent, selector: "ngx-message", inputs: { message: "message", member: "member" }, ngImport: i0, template: "<div class=\"rtsee-messenger-message\">\n <p>{{ message.text }}</p>\n</div>\n", styles: [""] });
7
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.2", ngImport: i0, type: MessageComponent, decorators: [{
8
+ type: Component,
9
+ args: [{
10
+ selector: 'ngx-message',
11
+ templateUrl: './message.component.html',
12
+ styleUrls: ['./message.component.css'],
13
+ }]
14
+ }], propDecorators: { message: [{
15
+ type: Input
16
+ }], member: [{
17
+ type: Input
18
+ }] } });
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gvc3JjL2xpYi9jb21wb25lbnRzL3J0c2VlLW1lc3Nlbmdlci9tZXNzYWdlL21lc3NhZ2UuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4L3NyYy9saWIvY29tcG9uZW50cy9ydHNlZS1tZXNzZW5nZXIvbWVzc2FnZS9tZXNzYWdlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQVFqRCxNQUFNLE9BQU8sZ0JBQWdCOzs2R0FBaEIsZ0JBQWdCO2lHQUFoQixnQkFBZ0IscUdDUjdCLGdGQUdBOzJGREthLGdCQUFnQjtrQkFMNUIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsYUFBYTtvQkFDdkIsV0FBVyxFQUFFLDBCQUEwQjtvQkFDdkMsU0FBUyxFQUFFLENBQUMseUJBQXlCLENBQUM7aUJBQ3ZDOzhCQUVVLE9BQU87c0JBQWYsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSVFNlZUNoYXRNZW1iZXIsIFJUU2VlTWVzc2FnZSB9IGZyb20gJ0BydHNlZS9tZXNzZW5nZXInO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICduZ3gtbWVzc2FnZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9tZXNzYWdlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbWVzc2FnZS5jb21wb25lbnQuY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIE1lc3NhZ2VDb21wb25lbnQge1xuICBASW5wdXQoKSBtZXNzYWdlITogUlRTZWVNZXNzYWdlO1xuICBASW5wdXQoKSBtZW1iZXIhOiBSVFNlZUNoYXRNZW1iZXI8YW55Pjtcbn1cbiIsIjxkaXYgY2xhc3M9XCJydHNlZS1tZXNzZW5nZXItbWVzc2FnZVwiPlxuICA8cD57eyBtZXNzYWdlLnRleHQgfX08L3A+XG48L2Rpdj5cbiJdfQ==
@@ -0,0 +1,21 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "../message/message.component";
4
+ import * as i2 from "@angular/common";
5
+ export class MessagesListComponent {
6
+ }
7
+ MessagesListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.1.2", ngImport: i0, type: MessagesListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
8
+ MessagesListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.1.2", type: MessagesListComponent, selector: "ngx-messages-list", inputs: { chat: "chat", messenger: "messenger" }, ngImport: i0, template: "<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", styles: [""], components: [{ type: i1.MessageComponent, selector: "ngx-message", inputs: ["message", "member"] }], directives: [{ type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
9
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.2", ngImport: i0, type: MessagesListComponent, decorators: [{
10
+ type: Component,
11
+ args: [{
12
+ selector: 'ngx-messages-list',
13
+ templateUrl: './messages-list.component.html',
14
+ styleUrls: ['./messages-list.component.css'],
15
+ }]
16
+ }], propDecorators: { chat: [{
17
+ type: Input
18
+ }], messenger: [{
19
+ type: Input
20
+ }] } });
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZXMtbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gvc3JjL2xpYi9jb21wb25lbnRzL3J0c2VlLW1lc3Nlbmdlci9tZXNzYWdlcy1saXN0L21lc3NhZ2VzLWxpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4L3NyYy9saWIvY29tcG9uZW50cy9ydHNlZS1tZXNzZW5nZXIvbWVzc2FnZXMtbGlzdC9tZXNzYWdlcy1saXN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7O0FBUWpELE1BQU0sT0FBTyxxQkFBcUI7O2tIQUFyQixxQkFBcUI7c0dBQXJCLHFCQUFxQiwyR0NSbEMsNk1BS0E7MkZER2EscUJBQXFCO2tCQUxqQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxtQkFBbUI7b0JBQzdCLFdBQVcsRUFBRSxnQ0FBZ0M7b0JBQzdDLFNBQVMsRUFBRSxDQUFDLCtCQUErQixDQUFDO2lCQUM3Qzs4QkFFVSxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJUU2VlQ2hhdCwgUlRTZWVNZXNzZW5nZXIgfSBmcm9tICdAcnRzZWUvbWVzc2VuZ2VyJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbmd4LW1lc3NhZ2VzLWxpc3QnLFxuICB0ZW1wbGF0ZVVybDogJy4vbWVzc2FnZXMtbGlzdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL21lc3NhZ2VzLWxpc3QuY29tcG9uZW50LmNzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBNZXNzYWdlc0xpc3RDb21wb25lbnQge1xuICBASW5wdXQoKSBjaGF0ITogUlRTZWVDaGF0O1xuICBASW5wdXQoKSBtZXNzZW5nZXIhOiBSVFNlZU1lc3Nlbmdlcjtcbn1cbiIsIjxkaXYgY2xhc3M9XCJydHNlZS1tZXNzZW5nZXItbWVzc2FnZXMtbGlzdFwiPlxuICA8ZGl2IGNsYXNzPVwicnRzZWUtbWVzc2VuZ2VyLW1lc3NhZ2VcIiAqbmdGb3I9XCJsZXQgbWVzc2FnZSBvZiBjaGF0Lm1lc3NhZ2VzXCI+XG4gICAgPG5neC1tZXNzYWdlIFttZXNzYWdlXT1cIm1lc3NhZ2VcIj48L25neC1tZXNzYWdlPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
@@ -0,0 +1,21 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "../messenger-header/messenger-header.component";
4
+ import * as i2 from "../chats-list/chats-list.component";
5
+ import * as i3 from "../chat/chat.component";
6
+ import * as i4 from "@angular/common";
7
+ export class MessengerComponent {
8
+ }
9
+ MessengerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.1.2", ngImport: i0, type: MessengerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
10
+ MessengerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.1.2", type: MessengerComponent, selector: "ngx-messenger", inputs: { messenger: "messenger" }, ngImport: i0, template: "<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", styles: ["*{box-sizing:border-box}.rtsee-messenger{max-width:450px;background-color:#333;min-width:320px;min-height:520px;padding:58px 8px 8px;color:#fff;position:relative;border-radius:8px;overflow:hidden}.rtsee-messenger .rtsee-messenger-header-container{position:absolute;top:0;left:0;width:100%;height:50px}"], components: [{ type: i1.MessengerHeaderComponent, selector: "ngx-messenger-header", inputs: ["messenger"] }, { type: i2.ChatsListComponent, selector: "ngx-chats-list", inputs: ["messenger", "chats"] }, { type: i3.ChatComponent, selector: "ngx-chat", inputs: ["chat", "messenger"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.2", ngImport: i0, type: MessengerComponent, decorators: [{
12
+ type: Component,
13
+ args: [{
14
+ selector: 'ngx-messenger',
15
+ templateUrl: './messenger.component.html',
16
+ styleUrls: ['./messenger.component.scss'],
17
+ }]
18
+ }], propDecorators: { messenger: [{
19
+ type: Input
20
+ }] } });
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2VuZ2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC9zcmMvbGliL2NvbXBvbmVudHMvcnRzZWUtbWVzc2VuZ2VyL21lc3Nlbmdlci9tZXNzZW5nZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4L3NyYy9saWIvY29tcG9uZW50cy9ydHNlZS1tZXNzZW5nZXIvbWVzc2VuZ2VyL21lc3Nlbmdlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7O0FBUWpELE1BQU0sT0FBTyxrQkFBa0I7OytHQUFsQixrQkFBa0I7bUdBQWxCLGtCQUFrQix5RkNSL0Isd2VBV0E7MkZESGEsa0JBQWtCO2tCQUw5QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxlQUFlO29CQUN6QixXQUFXLEVBQUUsNEJBQTRCO29CQUN6QyxTQUFTLEVBQUUsQ0FBQyw0QkFBNEIsQ0FBQztpQkFDMUM7OEJBRVUsU0FBUztzQkFBakIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJUU2VlTWVzc2VuZ2VyIH0gZnJvbSAnQHJ0c2VlL21lc3Nlbmdlcic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ25neC1tZXNzZW5nZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vbWVzc2VuZ2VyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbWVzc2VuZ2VyLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIE1lc3NlbmdlckNvbXBvbmVudCB7XG4gIEBJbnB1dCgpIG1lc3NlbmdlciE6IFJUU2VlTWVzc2VuZ2VyO1xufVxuIiwiPGRpdiBjbGFzcz1cInJ0c2VlLW1lc3NlbmdlclwiPlxuICA8ZGl2IGNsYXNzPVwicnRzZWUtbWVzc2VuZ2VyLWhlYWRlci1jb250YWluZXJcIj5cbiAgICA8bmd4LW1lc3Nlbmdlci1oZWFkZXIgW21lc3Nlbmdlcl09XCJtZXNzZW5nZXJcIj48L25neC1tZXNzZW5nZXItaGVhZGVyPlxuICA8L2Rpdj5cbiAgPGRpdiAgY2xhc3M9XCJydHNlZS1tZXNzZW5nZXItYm9keS1jb250YWluZXJcIj5cbiAgICA8bmd4LWNoYXRzLWxpc3QgKm5nSWY9XCIhbWVzc2VuZ2VyLm9wZW5lZENoYXRcIiBbY2hhdHNdPVwibWVzc2VuZ2VyLmNoYXRzXCIgW21lc3Nlbmdlcl09XCJtZXNzZW5nZXJcIj48L25neC1jaGF0cy1saXN0PlxuICAgIDxuZ3gtY2hhdCAqbmdJZj1cIm1lc3Nlbmdlci5vcGVuZWRDaGF0XCIgW21lc3Nlbmdlcl09XCJtZXNzZW5nZXJcIiBbY2hhdF09XCJtZXNzZW5nZXIub3BlbmVkQ2hhdFwiPjwvbmd4LWNoYXQ+XG4gIDwvZGl2PlxuPC9kaXY+XG5cblxuIl19