@rtsee/ngx 0.0.39 → 0.0.40

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 (114) hide show
  1. package/dist/ngx/esm2022/lib/common/components/preloader/preloader.component.mjs +33 -0
  2. package/dist/ngx/esm2022/lib/components/rtsee/rtsee-controls/rtsee-controls.component.mjs +25 -0
  3. package/dist/ngx/esm2022/lib/components/rtsee/rtsee.component.mjs +32 -0
  4. package/dist/ngx/esm2022/lib/components/rtsee-container/rtsee-container.component.mjs +11 -0
  5. package/dist/ngx/esm2022/lib/components/rtsee-events-dashboard/components/event-thumbnail/event-thumbnail.component.mjs +76 -0
  6. package/dist/ngx/esm2022/lib/components/rtsee-events-dashboard/components/rtsee-events-dashboard-client/rtsee-events-dashboard-client.component.mjs +11 -0
  7. package/dist/ngx/esm2022/lib/components/rtsee-events-dashboard/components/rtsee-events-dashboard-client-thumbnail/rtsee-events-dashboard-client-thumbnail.component.mjs +33 -0
  8. package/dist/ngx/esm2022/lib/components/rtsee-events-dashboard/components/rtsee-events-dashboard-session/rtsee-events-dashboard-session.component.mjs +21 -0
  9. package/dist/ngx/esm2022/lib/components/rtsee-events-dashboard/rtsee-events-dashboard.component.mjs +16 -0
  10. package/dist/ngx/esm2022/lib/components/rtsee-messenger/chat/chat.component.mjs +19 -0
  11. package/dist/ngx/esm2022/lib/components/rtsee-messenger/chat-input/chat-input.component.mjs +33 -0
  12. package/dist/ngx/esm2022/lib/components/rtsee-messenger/chat-thumbnail/chat-thumbnail.component.mjs +27 -0
  13. package/dist/ngx/esm2022/lib/components/rtsee-messenger/chats-list/chats-list.component.mjs +22 -0
  14. package/dist/ngx/esm2022/lib/components/rtsee-messenger/main-menu/components/contacts-multiselect/contacts-multiselect.component.mjs +18 -0
  15. package/dist/ngx/esm2022/lib/components/rtsee-messenger/main-menu/components/manage-chat/manage-chat.component.mjs +21 -0
  16. package/dist/ngx/esm2022/lib/components/rtsee-messenger/main-menu/components/search/search.component.mjs +31 -0
  17. package/dist/ngx/esm2022/lib/components/rtsee-messenger/main-menu/main-menu.component.mjs +32 -0
  18. package/dist/ngx/esm2022/lib/components/rtsee-messenger/message/components/message-time-and-status/message-time-and-status.component.mjs +24 -0
  19. package/dist/ngx/esm2022/lib/components/rtsee-messenger/message/message.component.mjs +58 -0
  20. package/dist/ngx/esm2022/lib/components/rtsee-messenger/message-widgets/call-widget/call-widget.component.mjs +34 -0
  21. package/dist/ngx/esm2022/lib/components/rtsee-messenger/messages-list/messages-list.component.mjs +70 -0
  22. package/dist/ngx/esm2022/lib/components/rtsee-messenger/messenger/messenger.component.mjs +31 -0
  23. package/dist/ngx/esm2022/lib/components/rtsee-messenger/messenger-header/messenger-header.component.mjs +33 -0
  24. package/dist/ngx/esm2022/lib/components/rtsee-messenger/profile/profile.component.mjs +26 -0
  25. package/dist/ngx/esm2022/lib/components/rtsee-peer/rtsee-peer.component.mjs +36 -0
  26. package/dist/ngx/esm2022/lib/components/rtsee-peers-list/rtsee-peers-list.component.mjs +11 -0
  27. package/dist/ngx/esm2022/lib/components/rtsee-settings/rtsee-settings.component.mjs +43 -0
  28. package/dist/ngx/esm2022/lib/components/rtsee-soundbar/rtsee-soundbar.component.mjs +59 -0
  29. package/dist/ngx/esm2022/lib/directives/shave.directive.mjs +22 -0
  30. package/dist/ngx/esm2022/lib/directives/widget.directive.mjs +17 -0
  31. package/dist/ngx/esm2022/lib/ngx.module.mjs +141 -0
  32. package/dist/ngx/esm2022/lib/ngx.service.mjs +17 -0
  33. package/dist/ngx/esm2022/lib/services/default-images.service.mjs +14 -0
  34. package/dist/ngx/esm2022/lib/services/events-widgets.service.mjs +23 -0
  35. package/dist/ngx/esm2022/lib/services/message-widgets.service.mjs +26 -0
  36. package/dist/ngx/esm2022/lib/services/time-format-helper.service.mjs +92 -0
  37. package/dist/ngx/fesm2022/rtsee-ngx.mjs +1089 -0
  38. package/dist/ngx/fesm2022/rtsee-ngx.mjs.map +1 -0
  39. package/dist/ngx/lib/common/components/preloader/preloader.component.d.ts +1 -1
  40. package/dist/ngx/lib/components/rtsee/rtsee-controls/rtsee-controls.component.d.ts +1 -1
  41. package/dist/ngx/lib/components/rtsee/rtsee.component.d.ts +1 -1
  42. package/dist/ngx/lib/components/rtsee-container/rtsee-container.component.d.ts +1 -1
  43. package/dist/ngx/lib/components/rtsee-events-dashboard/components/event-thumbnail/event-thumbnail.component.d.ts +1 -1
  44. package/dist/ngx/lib/components/rtsee-events-dashboard/components/rtsee-events-dashboard-client/rtsee-events-dashboard-client.component.d.ts +1 -1
  45. package/dist/ngx/lib/components/rtsee-events-dashboard/components/rtsee-events-dashboard-client-thumbnail/rtsee-events-dashboard-client-thumbnail.component.d.ts +1 -1
  46. package/dist/ngx/lib/components/rtsee-events-dashboard/components/rtsee-events-dashboard-session/rtsee-events-dashboard-session.component.d.ts +1 -1
  47. package/dist/ngx/lib/components/rtsee-events-dashboard/rtsee-events-dashboard.component.d.ts +1 -1
  48. package/dist/ngx/lib/components/rtsee-messenger/chat/chat.component.d.ts +1 -1
  49. package/dist/ngx/lib/components/rtsee-messenger/chat-input/chat-input.component.d.ts +1 -1
  50. package/dist/ngx/lib/components/rtsee-messenger/chat-thumbnail/chat-thumbnail.component.d.ts +1 -1
  51. package/dist/ngx/lib/components/rtsee-messenger/chats-list/chats-list.component.d.ts +1 -1
  52. package/dist/ngx/lib/components/rtsee-messenger/main-menu/components/contacts-multiselect/contacts-multiselect.component.d.ts +1 -1
  53. package/dist/ngx/lib/components/rtsee-messenger/main-menu/components/manage-chat/manage-chat.component.d.ts +1 -1
  54. package/dist/ngx/lib/components/rtsee-messenger/main-menu/components/search/search.component.d.ts +2 -2
  55. package/dist/ngx/lib/components/rtsee-messenger/main-menu/main-menu.component.d.ts +1 -1
  56. package/dist/ngx/lib/components/rtsee-messenger/message/components/message-time-and-status/message-time-and-status.component.d.ts +1 -1
  57. package/dist/ngx/lib/components/rtsee-messenger/message/message.component.d.ts +1 -1
  58. package/dist/ngx/lib/components/rtsee-messenger/message-widgets/call-widget/call-widget.component.d.ts +1 -1
  59. package/dist/ngx/lib/components/rtsee-messenger/messages-list/messages-list.component.d.ts +1 -1
  60. package/dist/ngx/lib/components/rtsee-messenger/messenger/messenger.component.d.ts +1 -1
  61. package/dist/ngx/lib/components/rtsee-messenger/messenger-header/messenger-header.component.d.ts +1 -1
  62. package/dist/ngx/lib/components/rtsee-messenger/profile/profile.component.d.ts +1 -1
  63. package/dist/ngx/lib/components/rtsee-peer/rtsee-peer.component.d.ts +1 -1
  64. package/dist/ngx/lib/components/rtsee-peers-list/rtsee-peers-list.component.d.ts +1 -1
  65. package/dist/ngx/lib/components/rtsee-settings/rtsee-settings.component.d.ts +1 -1
  66. package/dist/ngx/lib/components/rtsee-soundbar/rtsee-soundbar.component.d.ts +1 -1
  67. package/dist/ngx/lib/directives/shave.directive.d.ts +1 -1
  68. package/dist/ngx/lib/directives/widget.directive.d.ts +1 -1
  69. package/dist/ngx/package.json +13 -6
  70. package/package.json +30 -38
  71. package/dist/ngx/bundles/rtsee-ngx.umd.js +0 -1208
  72. package/dist/ngx/bundles/rtsee-ngx.umd.js.map +0 -1
  73. package/dist/ngx/esm2015/lib/common/components/preloader/preloader.component.js +0 -34
  74. package/dist/ngx/esm2015/lib/components/rtsee/rtsee-controls/rtsee-controls.component.js +0 -27
  75. package/dist/ngx/esm2015/lib/components/rtsee/rtsee.component.js +0 -33
  76. package/dist/ngx/esm2015/lib/components/rtsee-container/rtsee-container.component.js +0 -14
  77. package/dist/ngx/esm2015/lib/components/rtsee-events-dashboard/components/event-thumbnail/event-thumbnail.component.js +0 -73
  78. package/dist/ngx/esm2015/lib/components/rtsee-events-dashboard/components/rtsee-events-dashboard-client/rtsee-events-dashboard-client.component.js +0 -14
  79. package/dist/ngx/esm2015/lib/components/rtsee-events-dashboard/components/rtsee-events-dashboard-client-thumbnail/rtsee-events-dashboard-client-thumbnail.component.js +0 -32
  80. package/dist/ngx/esm2015/lib/components/rtsee-events-dashboard/components/rtsee-events-dashboard-session/rtsee-events-dashboard-session.component.js +0 -22
  81. package/dist/ngx/esm2015/lib/components/rtsee-events-dashboard/rtsee-events-dashboard.component.js +0 -18
  82. package/dist/ngx/esm2015/lib/components/rtsee-messenger/chat/chat.component.js +0 -20
  83. package/dist/ngx/esm2015/lib/components/rtsee-messenger/chat-input/chat-input.component.js +0 -37
  84. package/dist/ngx/esm2015/lib/components/rtsee-messenger/chat-thumbnail/chat-thumbnail.component.js +0 -27
  85. package/dist/ngx/esm2015/lib/components/rtsee-messenger/chats-list/chats-list.component.js +0 -23
  86. package/dist/ngx/esm2015/lib/components/rtsee-messenger/main-menu/components/contacts-multiselect/contacts-multiselect.component.js +0 -20
  87. package/dist/ngx/esm2015/lib/components/rtsee-messenger/main-menu/components/manage-chat/manage-chat.component.js +0 -23
  88. package/dist/ngx/esm2015/lib/components/rtsee-messenger/main-menu/components/search/search.component.js +0 -34
  89. package/dist/ngx/esm2015/lib/components/rtsee-messenger/main-menu/main-menu.component.js +0 -35
  90. package/dist/ngx/esm2015/lib/components/rtsee-messenger/message/components/message-time-and-status/message-time-and-status.component.js +0 -24
  91. package/dist/ngx/esm2015/lib/components/rtsee-messenger/message/message.component.js +0 -53
  92. package/dist/ngx/esm2015/lib/components/rtsee-messenger/message-widgets/call-widget/call-widget.component.js +0 -37
  93. package/dist/ngx/esm2015/lib/components/rtsee-messenger/messages-list/messages-list.component.js +0 -69
  94. package/dist/ngx/esm2015/lib/components/rtsee-messenger/messenger/messenger.component.js +0 -32
  95. package/dist/ngx/esm2015/lib/components/rtsee-messenger/messenger-header/messenger-header.component.js +0 -33
  96. package/dist/ngx/esm2015/lib/components/rtsee-messenger/profile/profile.component.js +0 -28
  97. package/dist/ngx/esm2015/lib/components/rtsee-peer/rtsee-peer.component.js +0 -35
  98. package/dist/ngx/esm2015/lib/components/rtsee-peers-list/rtsee-peers-list.component.js +0 -15
  99. package/dist/ngx/esm2015/lib/components/rtsee-settings/rtsee-settings.component.js +0 -42
  100. package/dist/ngx/esm2015/lib/components/rtsee-soundbar/rtsee-soundbar.component.js +0 -58
  101. package/dist/ngx/esm2015/lib/directives/shave.directive.js +0 -22
  102. package/dist/ngx/esm2015/lib/directives/widget.directive.js +0 -16
  103. package/dist/ngx/esm2015/lib/ngx.module.js +0 -143
  104. package/dist/ngx/esm2015/lib/ngx.service.js +0 -16
  105. package/dist/ngx/esm2015/lib/services/default-images.service.js +0 -16
  106. package/dist/ngx/esm2015/lib/services/events-widgets.service.js +0 -25
  107. package/dist/ngx/esm2015/lib/services/message-widgets.service.js +0 -28
  108. package/dist/ngx/esm2015/lib/services/time-format-helper.service.js +0 -92
  109. package/dist/ngx/fesm2015/rtsee-ngx.js +0 -1121
  110. package/dist/ngx/fesm2015/rtsee-ngx.js.map +0 -1
  111. /package/dist/ngx/{esm2015/lib/components/rtsee-messenger/main-menu/components/models/MainMenuState.js → esm2022/lib/components/rtsee-messenger/main-menu/components/models/MainMenuState.mjs} +0 -0
  112. /package/dist/ngx/{esm2015/public-api.js → esm2022/public-api.mjs} +0 -0
  113. /package/dist/ngx/{esm2015/rtsee-ngx.js → esm2022/rtsee-ngx.mjs} +0 -0
  114. /package/dist/ngx/{rtsee-ngx.d.ts → index.d.ts} +0 -0
@@ -1,1121 +0,0 @@
1
- import * as i0 from '@angular/core';
2
- import { Injectable, Component, Input, ViewChild, EventEmitter, Output, Directive, NgModule } from '@angular/core';
3
- import * as i1 from '@angular/material/button';
4
- import { MatButtonModule } from '@angular/material/button';
5
- import * as i3 from '@angular/common';
6
- import { CommonModule } from '@angular/common';
7
- import * as i3$1 from '@angular/material/form-field';
8
- import { MatFormFieldModule } from '@angular/material/form-field';
9
- import * as i1$1 from '@angular/forms';
10
- import { FormGroup, FormControl, Validators, ReactiveFormsModule } from '@angular/forms';
11
- import { interval } from 'rxjs';
12
- import { RTSeeChatTypes } from '@rtsee/common';
13
- import * as dayjs from 'dayjs';
14
- import * as relativeTime from 'dayjs/plugin/relativeTime';
15
- import shave from 'shave';
16
- import { RTSeeChatEvents } from '@rtsee/messenger';
17
- import * as i3$2 from 'ngx-infinite-scroll';
18
- import { InfiniteScrollModule } from 'ngx-infinite-scroll';
19
- import * as i2 from 'ngx-autosize';
20
- import { AutosizeModule } from 'ngx-autosize';
21
- import { debounceTime } from 'rxjs/operators';
22
- import { MatIconModule } from '@angular/material/icon';
23
- import { MatSelectModule } from '@angular/material/select';
24
- import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
25
-
26
- class NgxService {
27
- constructor() {
28
- this.lol = 'lol';
29
- }
30
- }
31
- NgxService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.1.2", ngImport: i0, type: NgxService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
32
- NgxService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.1.2", ngImport: i0, type: NgxService, providedIn: 'root' });
33
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.2", ngImport: i0, type: NgxService, decorators: [{
34
- type: Injectable,
35
- args: [{
36
- providedIn: 'root',
37
- }]
38
- }], ctorParameters: function () { return []; } });
39
-
40
- class RTSeeControlsComponent {
41
- onPresentClicked() {
42
- return this.rtsee.isPresenter
43
- ? this.rtsee.stopScreenShare()
44
- : this.rtsee.startScreenShare();
45
- }
46
- }
47
- RTSeeControlsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.1.2", ngImport: i0, type: RTSeeControlsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
48
- 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: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3$1.MatSuffix, selector: "[matSuffix]" }] });
49
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.2", ngImport: i0, type: RTSeeControlsComponent, decorators: [{
50
- type: Component,
51
- args: [{
52
- selector: 'ngx-rtsee-controls',
53
- templateUrl: './rtsee-controls.component.html',
54
- styleUrls: ['./rtsee-controls.component.scss'],
55
- }]
56
- }], propDecorators: { rtsee: [{
57
- type: Input
58
- }], fullScreenMode: [{
59
- type: Input
60
- }] } });
61
-
62
- class RtseeSettingsComponent {
63
- constructor() {
64
- this.availableAudioInputDevices = [];
65
- this.availableVideoInputDevices = [];
66
- this.availableAudioOutputDevices = [];
67
- }
68
- ngOnInit() {
69
- this.refreshSelectOptions();
70
- }
71
- refreshSelectOptions() {
72
- void this.rtSee.refreshMediaDevicesList();
73
- }
74
- setAudioInput(deviceId) {
75
- this.rtSee.setAudioInputDevice(deviceId);
76
- console.log(deviceId);
77
- }
78
- setAudioOutput(deviceId) {
79
- this.rtSee.setAudioOutputDevice(deviceId);
80
- }
81
- setVideoInput(deviceId) {
82
- this.rtSee.setVideoInputDevice(deviceId);
83
- }
84
- }
85
- RtseeSettingsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.1.2", ngImport: i0, type: RtseeSettingsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
86
- RtseeSettingsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.1.2", type: RtseeSettingsComponent, selector: "ngx-rtsee-settings", inputs: { rtSee: "rtSee", fullScreenMode: "fullScreenMode" }, ngImport: i0, template: "<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", styles: [".rtsee-settings{box-sizing:border-box;background-color:#404040;border-bottom:1px solid;max-height:180px;padding:16px 0;overflow:auto;color:#fff}.rtsee-settings .rtsee-device-select-wrapper{padding:0 10px}.rtsee-settings .rtsee-device-select-wrapper .rtsee-select-label{font-family:monospace;display:inline-block;margin:8px}.rtsee-settings.rtsee-full-screen-settings{max-height:unset;overflow:unset}"], directives: [{ type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i1$1.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { type: i1$1.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }] });
87
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.2", ngImport: i0, type: RtseeSettingsComponent, decorators: [{
88
- type: Component,
89
- args: [{
90
- selector: 'ngx-rtsee-settings',
91
- templateUrl: './rtsee-settings.component.html',
92
- styleUrls: ['./rtsee-settings.component.scss'],
93
- }]
94
- }], ctorParameters: function () { return []; }, propDecorators: { rtSee: [{
95
- type: Input
96
- }], fullScreenMode: [{
97
- type: Input
98
- }] } });
99
-
100
- class RtseeSoundbarComponent {
101
- constructor() {
102
- this.intervalLength = 1000;
103
- this.noiceLevel = 0;
104
- this.scaleOneLevel = 0;
105
- this.scaleTwoLevel = 0;
106
- this.scaleThreeLevel = 0;
107
- }
108
- ngOnInit() {
109
- this.startSoundMeterListening();
110
- }
111
- startSoundMeterListening() {
112
- const step = interval(1000 / 10);
113
- step.subscribe(() => {
114
- var _a;
115
- if (!this.peer.soundMeter || !this.peer.soundMeter.level) {
116
- this.noiceLevel = 0;
117
- }
118
- else {
119
- this.noiceLevel = ((_a = this.peer.soundMeter) === null || _a === void 0 ? void 0 : _a.level) * 100 || 0;
120
- }
121
- this.setSoundMeterHeights();
122
- });
123
- }
124
- setSoundMeterHeights() {
125
- const ZERO_LEVEL = 25;
126
- const SCALE_STEP = 25;
127
- const SCALE_ONE_TOP = ZERO_LEVEL + SCALE_STEP;
128
- const SCALE_TWO_TOP = SCALE_ONE_TOP + SCALE_STEP;
129
- if (!this.peer || !this.peer.soundMeter || this.noiceLevel < ZERO_LEVEL) {
130
- this.scaleOneLevel = 0;
131
- this.scaleTwoLevel = 0;
132
- this.scaleThreeLevel = 0;
133
- }
134
- const scaleOneValue = ((this.noiceLevel - ZERO_LEVEL) / SCALE_STEP) * 100;
135
- const scaleTwoValue = ((this.noiceLevel - SCALE_ONE_TOP) / SCALE_STEP) * 100;
136
- const scaleThreeValue = ((this.noiceLevel - SCALE_TWO_TOP) / SCALE_STEP) * 100;
137
- this.scaleOneLevel = scaleOneValue > 0 ? scaleOneValue : 0;
138
- this.scaleTwoLevel = scaleTwoValue > 0 ? scaleTwoValue : 0;
139
- this.scaleThreeLevel = scaleThreeValue > 0 ? scaleTwoValue : 0;
140
- }
141
- }
142
- RtseeSoundbarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.1.2", ngImport: i0, type: RtseeSoundbarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
143
- RtseeSoundbarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.1.2", type: RtseeSoundbarComponent, selector: "ngx-rtsee-soundbar", inputs: { peer: "peer" }, ngImport: i0, template: "<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", styles: [".rtsee-soundbar{height:19px;width:23px;padding:2px 0 0}.rtsee-soundbar .rtsee-soundbar-scale{height:100%}.rtsee-soundbar .rtsee-soundbar-scale .rtsee-soundbar-scale-item{float:left;height:15px;width:5px;margin-left:2px;position:relative;border-radius:4px}.rtsee-soundbar .rtsee-soundbar-scale .rtsee-soundbar-scale-item:last-child:after{content:\"\";display:block;clear:both}.rtsee-soundbar .rtsee-soundbar-scale .rtsee-soundbar-scale-item .rtsee-soundbar-scale-item-level{position:absolute;bottom:0;left:0;height:10%;width:100%;transition:height .05s;background-color:#00ce00;min-height:25%;border-radius:1px}.rtsee-soundbar .rtsee-soundbar-scale .rtsee-soundbar-scale-item .rtsee-soundbar-scale-item-level.rtsee-soundbar-scale-item-level-one{max-height:33.3%}.rtsee-soundbar .rtsee-soundbar-scale .rtsee-soundbar-scale-item .rtsee-soundbar-scale-item-level.rtsee-soundbar-scale-item-level-two{max-height:66.6%}.rtsee-soundbar .rtsee-soundbar-scale .rtsee-soundbar-scale-item .rtsee-soundbar-scale-item-level.rtsee-soundbar-scale-item-level-three{max-height:100%}"] });
144
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.2", ngImport: i0, type: RtseeSoundbarComponent, decorators: [{
145
- type: Component,
146
- args: [{
147
- selector: 'ngx-rtsee-soundbar',
148
- templateUrl: './rtsee-soundbar.component.html',
149
- styleUrls: ['./rtsee-soundbar.component.scss'],
150
- }]
151
- }], ctorParameters: function () { return []; }, propDecorators: { peer: [{
152
- type: Input
153
- }] } });
154
-
155
- class RtseePeerComponent {
156
- constructor() {
157
- this.intervalLength = 1000;
158
- this.noiceLevel = 0;
159
- }
160
- ngAfterViewInit() {
161
- if (!this.audioOutput) {
162
- return;
163
- }
164
- this.peer.setAudioOutputElement(this.audioOutput.nativeElement);
165
- }
166
- }
167
- RtseePeerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.1.2", ngImport: i0, type: RtseePeerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
168
- RtseePeerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.1.2", type: RtseePeerComponent, selector: "ngx-rtsee-peer", inputs: { peer: "peer" }, viewQueries: [{ propertyName: "audioOutput", first: true, predicate: ["audioOutput"], descendants: true }, { propertyName: "videoOutput", first: true, predicate: ["videoOutput"], descendants: true }], ngImport: i0, template: "<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", styles: [".rtsee-peer{height:100%;width:100%;overflow:hidden}.rtsee-peer .rtsee-peer-content{height:100%;text-align:center;background-color:#404040;border-radius:4px}.rtsee-peer .rtsee-peer-content .rtsee-peer-photo .rtsee-peer-photo-wrapper{display:inline-block;height:120px;width:120px;border-radius:50%;position:relative;border:0 solid #fff}.rtsee-peer .rtsee-peer-content .rtsee-peer-photo .rtsee-peer-photo-wrapper .rtsee-peer-photo-image{border:0 solid #fff;height:100%;left:0;background-size:cover;border-radius:50%}.rtsee-peer .rtsee-peer-content .rtsee-peer-info{color:#fff}.rtsee-peer .rtsee-peer-content .rtsee-peer-info .rtsee-peer-name{font-family:monospace;padding:8px 0 0;margin-top:-8px}.rtsee-peer .rtsee-peer-content .rtsee-peer-soundbar{position:absolute;right:16px;bottom:16px;background:#404040;padding:7px 6px 8px;border-radius:50%;border:1px solid}.rtsee-peer .rtsee-peer-video{height:100%;max-width:100%}.rtsee-peer.rtsee-peer-video-disabled .rtsee-peer-video{position:absolute;left:-3000px}"], components: [{ type: RtseeSoundbarComponent, selector: "ngx-rtsee-soundbar", inputs: ["peer"] }], directives: [{ type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
169
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.2", ngImport: i0, type: RtseePeerComponent, decorators: [{
170
- type: Component,
171
- args: [{
172
- selector: 'ngx-rtsee-peer',
173
- templateUrl: './rtsee-peer.component.html',
174
- styleUrls: ['./rtsee-peer.component.scss'],
175
- }]
176
- }], ctorParameters: function () { return []; }, propDecorators: { audioOutput: [{
177
- type: ViewChild,
178
- args: ['audioOutput']
179
- }], videoOutput: [{
180
- type: ViewChild,
181
- args: ['videoOutput']
182
- }], peer: [{
183
- type: Input
184
- }] } });
185
-
186
- class RTSeeComponent {
187
- constructor() {
188
- this.settingsViewEnabled = false;
189
- this.fullScreenModeEnabled = false;
190
- }
191
- toggleSettings() {
192
- this.settingsViewEnabled = !this.settingsViewEnabled;
193
- }
194
- toggleFullScreenMode() {
195
- this.fullScreenModeEnabled = !this.fullScreenModeEnabled;
196
- }
197
- }
198
- RTSeeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.1.2", ngImport: i0, type: RTSeeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
199
- 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: RtseeSettingsComponent, selector: "ngx-rtsee-settings", inputs: ["rtSee", "fullScreenMode"] }, { type: RtseePeerComponent, selector: "ngx-rtsee-peer", inputs: ["peer"] }, { type: RTSeeControlsComponent, selector: "ngx-rtsee-controls", inputs: ["rtsee", "fullScreenMode"] }], directives: [{ type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3$1.MatSuffix, selector: "[matSuffix]" }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
200
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.2", ngImport: i0, type: RTSeeComponent, decorators: [{
201
- type: Component,
202
- args: [{
203
- selector: 'ngx-rtsee',
204
- templateUrl: './rtsee.component.html',
205
- styleUrls: ['./rtsee.component.scss'],
206
- }]
207
- }], ctorParameters: function () { return []; }, propDecorators: { rtSee: [{
208
- type: Input
209
- }] } });
210
-
211
- class DefaultImagesService {
212
- constructor() {
213
- this.PROFILE = 'https://werf-assets.s3.amazonaws.com/default-profile-logo.png';
214
- }
215
- }
216
- DefaultImagesService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.1.2", ngImport: i0, type: DefaultImagesService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
217
- DefaultImagesService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.1.2", ngImport: i0, type: DefaultImagesService, providedIn: 'root' });
218
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.2", ngImport: i0, type: DefaultImagesService, decorators: [{
219
- type: Injectable,
220
- args: [{
221
- providedIn: 'root',
222
- }]
223
- }] });
224
-
225
- class ProfileComponent {
226
- call() {
227
- if (!this.messenger.openedChat) {
228
- return;
229
- }
230
- void this.messenger.initializeVideoCall(this.messenger.openedChat);
231
- }
232
- videoCall() {
233
- if (!this.messenger.openedChat) {
234
- return;
235
- }
236
- void this.messenger.initializeVideoCall(this.messenger.openedChat);
237
- }
238
- }
239
- ProfileComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.1.2", ngImport: i0, type: ProfileComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
240
- ProfileComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.1.2", type: ProfileComponent, selector: "rtsee-profile", inputs: { messenger: "messenger" }, ngImport: i0, template: "<div class=\"rtsee-messenger-profile\">\n <ul class=\"rtsee-messenger-profile-controls\">\n <li class=\"rtsee-messenger-profile-control\">\n <div class=\"rtsee-messenger-control-item\" (click)=\"call()\">\n <div class=\"rtsee-messenger-control-icon\">\n <span class=\"material-icons-outlined\">call</span>\n </div>\n <span>Call</span>\n </div>\n </li>\n <li class=\"rtsee-messenger-profile-control\">\n <div class=\"rtsee-messenger-control-item\" (click)=\"videoCall()\">\n <div class=\"rtsee-messenger-control-icon\">\n <span class=\"material-icons-outlined\">videocam</span>\n </div>\n <span>Video</span>\n </div>\n </li>\n </ul>\n</div>\n" });
241
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.2", ngImport: i0, type: ProfileComponent, decorators: [{
242
- type: Component,
243
- args: [{
244
- selector: 'rtsee-profile',
245
- templateUrl: './profile.component.html',
246
- }]
247
- }], propDecorators: { messenger: [{
248
- type: Input
249
- }] } });
250
-
251
- class MessengerHeaderComponent {
252
- constructor(defaultImagesService) {
253
- this.defaultImagesService = defaultImagesService;
254
- this.expandToggled = new EventEmitter();
255
- this.isExpanded = false;
256
- this.expandToggled.emit(this.isExpanded);
257
- }
258
- toggleExpand() {
259
- this.isExpanded = !this.isExpanded;
260
- this.expandToggled.emit(this.isExpanded);
261
- }
262
- }
263
- MessengerHeaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.1.2", ngImport: i0, type: MessengerHeaderComponent, deps: [{ token: DefaultImagesService }], target: i0.ɵɵFactoryTarget.Component });
264
- MessengerHeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.1.2", type: MessengerHeaderComponent, selector: "rtsee-messenger-header", inputs: { isExpanded: "isExpanded", messenger: "messenger" }, outputs: { expandToggled: "expandToggled" }, ngImport: i0, template: "<div class=\"rtsee-messenger-header\"\n [ngClass]=\"{\n 'rtsee-messenger-header-chat-opened': messenger.openedChat,\n 'rtsee-messenger-header-expanded': isExpanded\n }\"\n>\n <div class=\"rtsee-messenger-profile-image-container \">\n <div *ngIf=\"!messenger.openedChat\"\n [style.background-image]=\"'url(' + messenger.myPeer?.imageUrl || defaultImagesService.PROFILE + ')'\"\n class=\"rtsee-messenger-profile-image\">\n </div>\n </div>\n\n <button class=\"rtsee-messenger-close-chat\"\n *ngIf=\"messenger.openedChat\"\n (click)=\"messenger.closeChat()\"\n >\n <span class=\"material-icons-outlined\">arrow_back</span>\n <span class=\"unread-count\" *ngIf=\"messenger.unreadMessagesCount\">{{messenger.unreadMessagesCount}}</span>\n </button>\n\n <button class=\"rtsee-messenger-menu-toggle\"\n *ngIf=\"!messenger.openedChat\"\n (click)=\"messenger.openMainMenu(true)\"\n >\n <span class=\"material-icons-outlined rtsee-messenger-menu-toggle-icon\">menu</span>\n </button>\n <div *ngIf=\"messenger.openedChat\"\n [ngClass]=\"{'rtsee-messenger-header-opened-chat-info-expanded': isExpanded}\"\n class=\"rtsee-messenger-header-opened-chat-info\">\n <div class=\"rtsee-messenger-profile-header-placeholder\">\n <p *ngIf=\"messenger.openedChat\"\n class=\"rtsee-messenger-header-chat-title\"\n >{{ messenger.openedChat.name }}</p>\n <div class=\"rtsee-messenger-profile-image-container\" (click)=\"toggleExpand()\">\n <div class=\"rtsee-messenger-profile-image\"\n [style.background-image]=\"'url(' + messenger.openedChat.imageUrl || defaultImagesService.PROFILE + ')'\"\n ></div>\n </div>\n </div>\n <div class=\"rtsee-messenger-profile-data-container\">\n <rtsee-profile *ngIf=\"isExpanded\" [messenger]=\"messenger\"></rtsee-profile>\n </div>\n </div>\n\n <p *ngIf=\"!messenger.openedChat\"\n class=\"rtsee-messenger-header-title\"\n >Messaging</p>\n</div>\n", components: [{ type: ProfileComponent, selector: "rtsee-profile", inputs: ["messenger"] }], directives: [{ type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
265
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.2", ngImport: i0, type: MessengerHeaderComponent, decorators: [{
266
- type: Component,
267
- args: [{
268
- selector: 'rtsee-messenger-header',
269
- templateUrl: './messenger-header.component.html',
270
- }]
271
- }], ctorParameters: function () { return [{ type: DefaultImagesService }]; }, propDecorators: { expandToggled: [{
272
- type: Output
273
- }], isExpanded: [{
274
- type: Input
275
- }], messenger: [{
276
- type: Input
277
- }] } });
278
-
279
- dayjs.extend(relativeTime);
280
- class TimeFormatHelperService {
281
- toAgo(time) {
282
- /* eslint-disable */
283
- return dayjs(time).fromNow();
284
- /* eslint-enable */
285
- }
286
- toDayOfWeek(time) {
287
- /* eslint-disable */
288
- return dayjs(time).format('ddd');
289
- /* eslint-enable */
290
- }
291
- toTime(time) {
292
- /* eslint-disable */
293
- return dayjs(time).format('HH:mm');
294
- /* eslint-enable */
295
- }
296
- toDate(time) {
297
- /* eslint-disable */
298
- return dayjs(time).format('D MMMM');
299
- /* eslint-enable */
300
- }
301
- toDateNumeral(time) {
302
- /* eslint-disable */
303
- return dayjs(time).format('DD.MM');
304
- /* eslint-enable */
305
- }
306
- toDateNumeralWithYear(time) {
307
- /* eslint-disable */
308
- return dayjs(time).format('DD.MM.YY');
309
- /* eslint-enable */
310
- }
311
- toDateWithYear(time) {
312
- /* eslint-disable */
313
- return dayjs(time).format('MMMM D, YYYY ');
314
- /* eslint-enable */
315
- }
316
- formatDate(time) {
317
- const today = new Date();
318
- const dayMs = 1000 * 60 * 60 * 24;
319
- const twoDays = dayMs * 2;
320
- if (!time) {
321
- return '';
322
- }
323
- if (today.getTime() - time.getTime() < dayMs &&
324
- today.getDay() === time.getDay()) {
325
- return 'Today';
326
- }
327
- if (today.getTime() - time.getTime() < twoDays &&
328
- today.getTime() - time.getTime() > dayMs &&
329
- today.getDay() !== time.getDay()) {
330
- return 'Yesterday';
331
- }
332
- if (today.getFullYear() === time.getFullYear()) {
333
- return this.toDate(time);
334
- }
335
- return this.toDateWithYear(time);
336
- }
337
- formatTimeOrDate(time) {
338
- if (!time) {
339
- return '';
340
- }
341
- const today = new Date();
342
- const dayMs = 1000 * 60 * 60 * 24;
343
- if (today.getTime() - time.getTime() < dayMs &&
344
- today.getDay() === time.getDay()) {
345
- return this.toTime(time);
346
- }
347
- if (today.getTime() - time.getTime() > dayMs &&
348
- today.getTime() - time.getTime() < dayMs * 7) {
349
- return this.toDayOfWeek(time);
350
- }
351
- if (today.getTime() - time.getTime() > dayMs * 7 &&
352
- today.getFullYear() === time.getFullYear()) {
353
- return this.toDateNumeral(time);
354
- }
355
- return this.toDateNumeralWithYear(time);
356
- }
357
- }
358
- TimeFormatHelperService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.1.2", ngImport: i0, type: TimeFormatHelperService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
359
- TimeFormatHelperService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.1.2", ngImport: i0, type: TimeFormatHelperService, providedIn: 'root' });
360
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.2", ngImport: i0, type: TimeFormatHelperService, decorators: [{
361
- type: Injectable,
362
- args: [{
363
- providedIn: 'root',
364
- }]
365
- }] });
366
-
367
- class PreloaderComponent {
368
- constructor() {
369
- this.viewBox = '0 0 100 100';
370
- this.d = 'M 50 96 a 46 46 0 0 1 0 -92 46 46 0 0 1 0 92';
371
- this.color = '#000000';
372
- if (this.diameter) {
373
- this.viewBox = `0 0 ${this.diameter} ${this.diameter}`;
374
- this.d = `M ${this.diameter / 2} ${this.diameter * 0.96} a ${this.diameter * 0.46} ${this.diameter * 0.46} 0 0 1 0 -${this.diameter * 0.92} ${this.diameter * 0.46} ${this.diameter * 0.46} 0 0 1 0 ${this.diameter * 0.92}`;
375
- }
376
- }
377
- ngOnInit() {
378
- //viewBox="0 0 100 100"
379
- //d="M 50 96 a 46 46 0 0 1 0 -92 46 46 0 0 1 0 92"
380
- }
381
- }
382
- PreloaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.1.2", ngImport: i0, type: PreloaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
383
- PreloaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.1.2", type: PreloaderComponent, selector: "rtsee-preloader", inputs: { diameter: "diameter", color: "color" }, viewQueries: [{ propertyName: "canvas", first: true, predicate: ["canvas"], descendants: true }], ngImport: i0, template: "<div class=\"rtsee-preloader\">\n <svg [style.max-width.px]=\"diameter\" #canvas [attr.viewBox]=\"viewBox\">\n <path [attr.d]=\"d\" [attr.stroke]=\"color\"/>\n </svg>\n</div>\n" });
384
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.2", ngImport: i0, type: PreloaderComponent, decorators: [{
385
- type: Component,
386
- args: [{
387
- selector: 'rtsee-preloader',
388
- templateUrl: './preloader.component.html',
389
- }]
390
- }], ctorParameters: function () { return []; }, propDecorators: { canvas: [{
391
- type: ViewChild,
392
- args: ['canvas']
393
- }], diameter: [{
394
- type: Input
395
- }], color: [{
396
- type: Input
397
- }] } });
398
-
399
- class MessageTimeAndStatusComponent {
400
- constructor(timeFormatService) {
401
- this.timeFormatService = timeFormatService;
402
- }
403
- }
404
- MessageTimeAndStatusComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.1.2", ngImport: i0, type: MessageTimeAndStatusComponent, deps: [{ token: TimeFormatHelperService }], target: i0.ɵɵFactoryTarget.Component });
405
- MessageTimeAndStatusComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.1.2", type: MessageTimeAndStatusComponent, selector: "rtsee-message-time-and-status", inputs: { message: "message", hideStatus: "hideStatus" }, ngImport: i0, template: "<div class=\"rtsee-messenger-message-time-and-status\">\n <span class=\"rtsee-messenger-message-status\" *ngIf=\"!hideStatus\">\n <span *ngIf=\"message.status === 'pending'\"><rtsee-preloader [diameter]=\"5\"></rtsee-preloader></span>\n <span *ngIf=\"message.status === 'sent'\" class=\"material-icons-outlined rtsee-message-sent-status\">check</span>\n <span *ngIf=\"message.status === 'delivered'\" class=\"material-icons-outlined rtsee-message-delivered-status\">check</span>\n <span *ngIf=\"message.status === 'seen'\" class=\"material-icons-outlined rtsee-message-seen-status\">done_all</span>\n </span>\n <span class=\"rtsee-messenger-message-time\">{{timeFormatService.formatTimeOrDate(message.createdAt)}}</span>\n</div>\n", components: [{ type: PreloaderComponent, selector: "rtsee-preloader", inputs: ["diameter", "color"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
406
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.2", ngImport: i0, type: MessageTimeAndStatusComponent, decorators: [{
407
- type: Component,
408
- args: [{
409
- selector: 'rtsee-message-time-and-status',
410
- templateUrl: './message-time-and-status.component.html',
411
- }]
412
- }], ctorParameters: function () { return [{ type: TimeFormatHelperService }]; }, propDecorators: { message: [{
413
- type: Input
414
- }], hideStatus: [{
415
- type: Input
416
- }] } });
417
-
418
- class ShaveDirective {
419
- constructor(elem) {
420
- this.elem = elem;
421
- }
422
- ngAfterViewInit() {
423
- var _a;
424
- const height = (_a = this.elem.nativeElement) === null || _a === void 0 ? void 0 : _a.offsetHeight;
425
- shave(this.elem.nativeElement, height);
426
- }
427
- }
428
- ShaveDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.1.2", ngImport: i0, type: ShaveDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
429
- ShaveDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.1.2", type: ShaveDirective, selector: "[rtseeShave]", ngImport: i0 });
430
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.2", ngImport: i0, type: ShaveDirective, decorators: [{
431
- type: Directive,
432
- args: [{
433
- selector: '[rtseeShave]',
434
- }]
435
- }], ctorParameters: function () { return [{ type: i0.ElementRef }]; } });
436
-
437
- class ChatThumbnailComponent {
438
- constructor(timeFormatService) {
439
- this.timeFormatService = timeFormatService;
440
- this.RTSeeChatTypes = RTSeeChatTypes;
441
- }
442
- }
443
- ChatThumbnailComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.1.2", ngImport: i0, type: ChatThumbnailComponent, deps: [{ token: TimeFormatHelperService }], target: i0.ɵɵFactoryTarget.Component });
444
- ChatThumbnailComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.1.2", type: ChatThumbnailComponent, selector: "rtsee-chat-thumbnail", inputs: { chat: "chat", messenger: "messenger" }, ngImport: i0, template: "<div class=\"rtsee-chat-thumbnail\" (click)=\"messenger.openChatById(chat.chatId)\">\n <div class=\"rtsee-chat-thumbnail-image\">\n <img [src]=\"chat.chatImageUrl\" alt=\"chat-img\">\n </div>\n <div class=\"rtsee-chat-thumbnail-left\">\n <div class=\"rtsee-chat-thumbnail-name\">\n <span>{{ chat.chatName }}</span>\n <div class=\"rtsee-chat-thumbnail-status\">\n <rtsee-message-time-and-status [message]=\"chat\"></rtsee-message-time-and-status>\n </div>\n </div>\n <div class=\"rtsee-chat-thumbnail-last-message\"\n [ngClass]=\"{'rtsee-has-unread': chat.unreadMessagesCount}\"\n rtseeShave>\n <span class=\"rtsee-chat-thumbnail-last-message-sender\"\n *ngIf=\"chat.chatType !== RTSeeChatTypes.INDIVIDUAL && chat.senderName\"\n >{{chat.senderName}}</span>\n <span class=\"rtsee-chat-thumbnail-last-message-text\"\n *ngIf=\"chat.text\"\n >{{chat.text}}</span>\n <div class=\"rtsee-messenger-thumbnail-unread\" *ngIf=\"chat.unreadMessagesCount\">\n <span class=\"rtsee-messenger-thumbnail-unread-count\">{{chat.unreadMessagesCount}}</span>\n </div>\n </div>\n </div>\n</div>\n", components: [{ type: MessageTimeAndStatusComponent, selector: "rtsee-message-time-and-status", inputs: ["message", "hideStatus"] }], directives: [{ type: ShaveDirective, selector: "[rtseeShave]" }, { type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
445
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.2", ngImport: i0, type: ChatThumbnailComponent, decorators: [{
446
- type: Component,
447
- args: [{
448
- selector: 'rtsee-chat-thumbnail',
449
- templateUrl: './chat-thumbnail.component.html',
450
- }]
451
- }], ctorParameters: function () { return [{ type: TimeFormatHelperService }]; }, propDecorators: { chat: [{
452
- type: Input
453
- }], messenger: [{
454
- type: Input
455
- }] } });
456
-
457
- class ChatsListComponent {
458
- ngOnInit() {
459
- // console.log(this.chats);
460
- }
461
- }
462
- ChatsListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.1.2", ngImport: i0, type: ChatsListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
463
- ChatsListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.1.2", type: ChatsListComponent, selector: "rtsee-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 <rtsee-chat-thumbnail [chat]=\"chat.thumbnail\" [messenger]=\"messenger\"></rtsee-chat-thumbnail>\n<!-- <div class=\"rtsee-chat-thumbnail-separator\" *ngIf=\"!last\"></div>-->\n </div>\n</div>\n", components: [{ type: ChatThumbnailComponent, selector: "rtsee-chat-thumbnail", inputs: ["chat", "messenger"] }], directives: [{ type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
464
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.2", ngImport: i0, type: ChatsListComponent, decorators: [{
465
- type: Component,
466
- args: [{
467
- selector: 'rtsee-chats-list',
468
- templateUrl: './chats-list.component.html',
469
- }]
470
- }], propDecorators: { messenger: [{
471
- type: Input
472
- }], chats: [{
473
- type: Input
474
- }] } });
475
-
476
- class WidgetDirective {
477
- constructor(viewContainerRef) {
478
- this.viewContainerRef = viewContainerRef;
479
- }
480
- }
481
- WidgetDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.1.2", ngImport: i0, type: WidgetDirective, deps: [{ token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
482
- WidgetDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.1.2", type: WidgetDirective, selector: "[widgetHost]", ngImport: i0 });
483
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.2", ngImport: i0, type: WidgetDirective, decorators: [{
484
- type: Directive,
485
- args: [{
486
- selector: '[widgetHost]',
487
- }]
488
- }], ctorParameters: function () { return [{ type: i0.ViewContainerRef }]; } });
489
-
490
- class CallWidgetComponent {
491
- ngOnInit() {
492
- var _a, _b, _c;
493
- if (this.messenger.clientId === ((_a = this.message.data) === null || _a === void 0 ? void 0 : _a.callerId)) {
494
- this.callerName = 'You';
495
- }
496
- else {
497
- this.callerName = (_c = (_b = this.message.data) === null || _b === void 0 ? void 0 : _b.caller) === null || _c === void 0 ? void 0 : _c.name;
498
- }
499
- }
500
- joinCall() {
501
- var _a;
502
- if (!this.messenger || !((_a = this.message.data) === null || _a === void 0 ? void 0 : _a.roomId)) {
503
- console.log('No Room Id specified or no messenger!');
504
- return;
505
- }
506
- void this.messenger.joinCall(this.message.data.roomId);
507
- }
508
- }
509
- CallWidgetComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.1.2", ngImport: i0, type: CallWidgetComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
510
- CallWidgetComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.1.2", type: CallWidgetComponent, selector: "ngx-call-widget", inputs: { message: "message", messenger: "messenger" }, ngImport: i0, template: "<div class=\"rtsee-call-widget\">\n <p *ngIf=\"callerName\"> {{ callerName }} has started a call</p>\n <p *ngIf=\"callerName === 'You'\"> You have started a call</p>\n <p *ngIf=\"!callerName\"> The call has started</p>\n <button (click)=\"joinCall()\">Join Call</button>\n</div>\n", styles: [""], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
511
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.2", ngImport: i0, type: CallWidgetComponent, decorators: [{
512
- type: Component,
513
- args: [{
514
- selector: 'ngx-call-widget',
515
- templateUrl: './call-widget.component.html',
516
- styleUrls: ['./call-widget.component.css'],
517
- }]
518
- }], propDecorators: { message: [{
519
- type: Input
520
- }], messenger: [{
521
- type: Input
522
- }] } });
523
-
524
- class MessageWidgetsService {
525
- constructor() {
526
- this.widgetsMap = [
527
- { name: 'rtsee-call', component: CallWidgetComponent },
528
- ];
529
- }
530
- getWidgetComponentByName(name) {
531
- /* eslint-disable */
532
- const mapping = this.widgetsMap.find((e) => e.name === name);
533
- if (!mapping) {
534
- return null;
535
- }
536
- return mapping.component;
537
- /* eslint-enable */
538
- }
539
- }
540
- MessageWidgetsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.1.2", ngImport: i0, type: MessageWidgetsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
541
- MessageWidgetsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.1.2", ngImport: i0, type: MessageWidgetsService, providedIn: 'root' });
542
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.2", ngImport: i0, type: MessageWidgetsService, decorators: [{
543
- type: Injectable,
544
- args: [{
545
- providedIn: 'root',
546
- }]
547
- }] });
548
-
549
- class MessageComponent {
550
- constructor(widgetsService, componentFactoryResolver, timeFormatService) {
551
- this.widgetsService = widgetsService;
552
- this.componentFactoryResolver = componentFactoryResolver;
553
- this.timeFormatService = timeFormatService;
554
- }
555
- ngAfterViewInit() {
556
- /* eslint-disable */
557
- if (this.message.widget) {
558
- const widget = this.widgetsService.getWidgetComponentByName(this.message.widget);
559
- if (!widget) {
560
- return;
561
- }
562
- const viewContainerRef = this.widgetHost.viewContainerRef;
563
- viewContainerRef.clear();
564
- const componentToShow = this.componentFactoryResolver.resolveComponentFactory(widget);
565
- const componentRef = viewContainerRef.createComponent(componentToShow);
566
- componentRef.instance.message = this.message;
567
- componentRef.instance.messenger = this.messenger;
568
- componentRef.changeDetectorRef.detectChanges();
569
- }
570
- /* eslint-enable */
571
- }
572
- }
573
- MessageComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.1.2", ngImport: i0, type: MessageComponent, deps: [{ token: MessageWidgetsService }, { token: i0.ComponentFactoryResolver }, { token: TimeFormatHelperService }], target: i0.ɵɵFactoryTarget.Component });
574
- MessageComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.1.2", type: MessageComponent, selector: "rtsee-message", inputs: { chat: "chat", message: "message", member: "member", messenger: "messenger" }, viewQueries: [{ propertyName: "widgetHost", first: true, predicate: WidgetDirective, descendants: true }], ngImport: i0, template: "<div class=\"rtsee-messenger-message-container\" #rtsMessageContainer\n [ngClass]=\"{'rtsee-message-from-me': message.from === messenger.clientId}\"\n>\n <div class=\"rtsee-messenger-message\">\n <ng-template *ngIf=\"message.widget\" widgetHost></ng-template>\n <p *ngIf=\"!message.widget\"\n class=\"rtsee-messenger-message-text\"\n >{{ message.text }}</p>\n <div class=\"rtsee-messenger-message-info\" #rtsMessageInfo>\n <rtsee-message-time-and-status [message]=\"message\"\n [hideStatus]=\"message.from !== messenger.clientId\"\n ></rtsee-message-time-and-status>\n </div>\n </div>\n <div class=\"message-tail\"></div>\n</div>\n", components: [{ type: MessageTimeAndStatusComponent, selector: "rtsee-message-time-and-status", inputs: ["message", "hideStatus"] }], directives: [{ type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: WidgetDirective, selector: "[widgetHost]" }] });
575
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.2", ngImport: i0, type: MessageComponent, decorators: [{
576
- type: Component,
577
- args: [{
578
- selector: 'rtsee-message',
579
- templateUrl: './message.component.html',
580
- }]
581
- }], ctorParameters: function () { return [{ type: MessageWidgetsService }, { type: i0.ComponentFactoryResolver }, { type: TimeFormatHelperService }]; }, propDecorators: { chat: [{
582
- type: Input
583
- }], message: [{
584
- type: Input
585
- }], member: [{
586
- type: Input
587
- }], messenger: [{
588
- type: Input
589
- }], widgetHost: [{
590
- type: ViewChild,
591
- args: [WidgetDirective, { static: false }]
592
- }] } });
593
-
594
- class MessagesListComponent {
595
- constructor(timeFormatService) {
596
- this.timeFormatService = timeFormatService;
597
- this.bindScrollFunction = this.scrollToBottom.bind(this);
598
- }
599
- ngOnInit() {
600
- this.chat.on(RTSeeChatEvents.MESSAGE_ADDED, this.bindScrollFunction);
601
- }
602
- ngAfterViewInit() {
603
- this.scrollToBottom();
604
- }
605
- onMessageSent() {
606
- this.scrollToBottom();
607
- }
608
- ngOnDestroy() {
609
- this.chat.off(RTSeeChatEvents.MESSAGE_ADDED, this.bindScrollFunction);
610
- }
611
- onScrolledToTop() {
612
- if (this.chat.messagesLoadInProgress) {
613
- return;
614
- }
615
- this.chat.loadRemoteMessages();
616
- }
617
- onScroll() {
618
- if (this.scrollContainer.nativeElement.scrollTop < 1) {
619
- this.scrollContainer.nativeElement.scrollTop = 1;
620
- }
621
- }
622
- scrollToBottom() {
623
- var _a, _b;
624
- if (!((_b = (_a = this.scrollContainer) === null || _a === void 0 ? void 0 : _a.nativeElement) === null || _b === void 0 ? void 0 : _b.scrollHeight)) {
625
- return;
626
- }
627
- try {
628
- this.scrollContainer.nativeElement.scrollTop =
629
- this.scrollContainer.nativeElement.scrollHeight;
630
- }
631
- catch (err) {
632
- console.log('Failed to Scroll');
633
- }
634
- }
635
- formatDate(message) {
636
- return this.timeFormatService.formatDate(message.createdAt);
637
- }
638
- }
639
- MessagesListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.1.2", ngImport: i0, type: MessagesListComponent, deps: [{ token: TimeFormatHelperService }], target: i0.ɵɵFactoryTarget.Component });
640
- MessagesListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.1.2", type: MessagesListComponent, selector: "rtsee-messages-list", inputs: { chat: "chat", messenger: "messenger" }, viewQueries: [{ propertyName: "scrollContainer", first: true, predicate: ["scrollBlock"], descendants: true }], ngImport: i0, template: "<div class=\"rtsee-messenger-messages-list\"\n #scrollBlock\n infiniteScroll\n [infiniteScrollUpDistance]=\"2\"\n [infiniteScrollThrottle]=\"50\"\n [scrollWindow]=\"false\"\n (scrolledUp)=\"onScrolledToTop()\"\n (scroll)=\"onScroll()\"\n>\n <div *ngFor=\"let message of chat.messages; let i = index;\"\n [ngClass]=\"{'rtsee-messenger-message-wrapper-consecutive': message.from === chat.messages[i+1]?.from}\"\n class=\"rtsee-messenger-message-wrapper\"\n >\n <div *ngIf=\"message.hasDateChanged\" class=\"rtsee-messenger-message-date\">\n <span>{{formatDate(message)}}</span>\n </div>\n <rtsee-message [message]=\"message\" [messenger]=\"messenger\" [chat]=\"chat\"></rtsee-message>\n </div>\n</div>\n", components: [{ type: MessageComponent, selector: "rtsee-message", inputs: ["chat", "message", "member", "messenger"] }], directives: [{ type: i3$2.InfiniteScrollDirective, selector: "[infiniteScroll], [infinite-scroll], [data-infinite-scroll]", inputs: ["infiniteScrollDistance", "infiniteScrollUpDistance", "infiniteScrollThrottle", "infiniteScrollDisabled", "infiniteScrollContainer", "scrollWindow", "immediateCheck", "horizontal", "alwaysCallback", "fromRoot"], outputs: ["scrolled", "scrolledUp"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
641
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.2", ngImport: i0, type: MessagesListComponent, decorators: [{
642
- type: Component,
643
- args: [{
644
- selector: 'rtsee-messages-list',
645
- templateUrl: './messages-list.component.html',
646
- }]
647
- }], ctorParameters: function () { return [{ type: TimeFormatHelperService }]; }, propDecorators: { chat: [{
648
- type: Input
649
- }], messenger: [{
650
- type: Input
651
- }], scrollContainer: [{
652
- type: ViewChild,
653
- args: ['scrollBlock']
654
- }] } });
655
-
656
- class ChatInputComponent {
657
- constructor() {
658
- this.sendMessageForm = new FormGroup({
659
- /* eslint-disable */
660
- message: new FormControl('', Validators.required),
661
- /* eslint-enable */
662
- });
663
- }
664
- sendMessage() {
665
- var _a, _b;
666
- const text = (_a = this.sendMessageForm.get('message')) === null || _a === void 0 ? void 0 : _a.value;
667
- if (!text) {
668
- return;
669
- }
670
- this.chat.sendMessage(text);
671
- (_b = this.sendMessageForm.get('message')) === null || _b === void 0 ? void 0 : _b.setValue('');
672
- }
673
- }
674
- ChatInputComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.1.2", ngImport: i0, type: ChatInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
675
- ChatInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.1.2", type: ChatInputComponent, selector: "rtsee-chat-input", inputs: { messenger: "messenger", chat: "chat" }, ngImport: i0, template: "<div class=\"rtsee-chat-input\" xmlns=\"http://www.w3.org/1999/html\">\n <div class=\"rtsee-send-message\">\n <form [formGroup]=\"sendMessageForm\">\n <textarea\n placeholder=\"Type message...\"\n type=\"text\"\n formControlName=\"message\"\n class=\"rtsee-chat-input-field\"\n autosize\n required\n ></textarea>\n </form>\n </div>\n <button (click)=\"sendMessage()\"\n class=\"rtsee-send-message-button\"\n type=\"submit\">\n <span class=\"material-icons-outlined\">send</span>\n </button>\n</div>\n", directives: [{ type: i1$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i1$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i1$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i1$1.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: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i1$1.FormControlName, selector: "[formControlName]", inputs: ["disabled", "formControlName", "ngModel"], outputs: ["ngModelChange"] }, { type: i2.AutosizeDirective, selector: "[autosize]", inputs: ["onlyGrow", "useImportant", "minRows", "autosize", "maxRows"], outputs: ["resized"] }, { type: i1$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }] });
676
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.2", ngImport: i0, type: ChatInputComponent, decorators: [{
677
- type: Component,
678
- args: [{
679
- selector: 'rtsee-chat-input',
680
- templateUrl: './chat-input.component.html',
681
- }]
682
- }], propDecorators: { messenger: [{
683
- type: Input
684
- }], chat: [{
685
- type: Input
686
- }] } });
687
-
688
- class ChatComponent {
689
- }
690
- ChatComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.1.2", ngImport: i0, type: ChatComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
691
- ChatComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.1.2", type: ChatComponent, selector: "rtsee-chat", inputs: { chat: "chat", messenger: "messenger" }, ngImport: i0, template: "<div class=\"rtsee-chat\">\n <div class=\"rtsee-chat-body-container\">\n <rtsee-messages-list [messenger]=\"messenger\" [chat]=\"chat\"></rtsee-messages-list>\n </div>\n <div class=\"rtsee-chat-footer-container\">\n <rtsee-chat-input [messenger]=\"messenger\" [chat]=\"chat\"></rtsee-chat-input>\n </div>\n</div>\n", components: [{ type: MessagesListComponent, selector: "rtsee-messages-list", inputs: ["chat", "messenger"] }, { type: ChatInputComponent, selector: "rtsee-chat-input", inputs: ["messenger", "chat"] }] });
692
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.2", ngImport: i0, type: ChatComponent, decorators: [{
693
- type: Component,
694
- args: [{
695
- selector: 'rtsee-chat',
696
- templateUrl: './chat.component.html',
697
- }]
698
- }], propDecorators: { chat: [{
699
- type: Input
700
- }], messenger: [{
701
- type: Input
702
- }] } });
703
-
704
- var MainMenuPanels;
705
- (function (MainMenuPanels) {
706
- MainMenuPanels["HOME"] = "home";
707
- MainMenuPanels["CONTACTS_SELECT"] = "contacts-select";
708
- MainMenuPanels["MANAGE_CHAT"] = "manage-chat";
709
- })(MainMenuPanels || (MainMenuPanels = {}));
710
- const DEFAULT_MAIN_MENU_STATE = MainMenuPanels.HOME;
711
-
712
- class SearchComponent {
713
- constructor() {
714
- this.queryControl = new FormControl();
715
- }
716
- ngOnInit() {
717
- this.queryCtrlSub = this.queryControl.valueChanges
718
- .pipe(debounceTime(200))
719
- .subscribe((value) => this.search.onQueryChange(value));
720
- }
721
- ngOnDestroy() {
722
- if (this.queryCtrlSub) {
723
- this.queryCtrlSub.unsubscribe();
724
- }
725
- }
726
- }
727
- SearchComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.1.2", ngImport: i0, type: SearchComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
728
- SearchComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.1.2", type: SearchComponent, selector: "rtsee-search", inputs: { search: "search" }, ngImport: i0, template: "<div class=\"rtsee-messenger-search\">\n <input type=\"text\"\n [formControl]=\"queryControl\"\n class=\"rtsee-messenger-search-input\"\n placeholder=\"Search\"/>\n</div>\n\n<div class=\"rtsee-messenger-search-results\">\n <rtsee-preloader [diameter]=\"50\" *ngIf=\"search.searchInProgress\"></rtsee-preloader>\n <p>Chats</p>\n <div class=\"rtsee-messenger-search-results-chats\">\n <div *ngFor=\"let chat of search.results.chats\" class=\"rtsee-messenger-search-results-chat-wrapper\">\n <p>{{chat.name}}</p>\n </div>\n </div>\n <p>Messages</p>\n <div class=\"rtsee-messenger-search-results-messages\">\n <div *ngFor=\"let message of search.results.messages\" class=\"rtsee-messenger-search-results-message-wrapper\">\n <p>{{message.chatName || message.senderName }}</p>\n </div>\n </div>\n</div>\n", components: [{ type: PreloaderComponent, selector: "rtsee-preloader", inputs: ["diameter", "color"] }], directives: [{ type: i1$1.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: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i1$1.FormControlDirective, selector: "[formControl]", inputs: ["disabled", "formControl", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
729
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.2", ngImport: i0, type: SearchComponent, decorators: [{
730
- type: Component,
731
- args: [{
732
- selector: 'rtsee-search',
733
- templateUrl: './search.component.html',
734
- }]
735
- }], propDecorators: { search: [{
736
- type: Input
737
- }] } });
738
-
739
- class ManageChatComponent {
740
- onInviteContactsClicked() {
741
- this.menuState.activePanel = MainMenuPanels.CONTACTS_SELECT;
742
- }
743
- }
744
- ManageChatComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.1.2", ngImport: i0, type: ManageChatComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
745
- ManageChatComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.1.2", type: ManageChatComponent, selector: "rtsee-manage-chat", inputs: { messenger: "messenger", menuState: "menuState" }, ngImport: i0, template: "<div class=\"rtsee-messenger-manage-chat\">\n <p>We are going to manage chat here</p>\n <button (click)=\"onInviteContactsClicked()\">Invite Contacts</button>\n</div>\n", styles: [""] });
746
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.2", ngImport: i0, type: ManageChatComponent, decorators: [{
747
- type: Component,
748
- args: [{
749
- selector: 'rtsee-manage-chat',
750
- templateUrl: './manage-chat.component.html',
751
- styleUrls: ['./manage-chat.component.scss'],
752
- }]
753
- }], propDecorators: { messenger: [{
754
- type: Input
755
- }], menuState: [{
756
- type: Input
757
- }] } });
758
-
759
- class ContactsMultiselectComponent {
760
- }
761
- ContactsMultiselectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.1.2", ngImport: i0, type: ContactsMultiselectComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
762
- ContactsMultiselectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.1.2", type: ContactsMultiselectComponent, selector: "rtsee-contacts-multiselect", inputs: { menuState: "menuState", search: "search" }, ngImport: i0, template: "<div class=\"rtsee-messenger-contacts-multiselect\">\n <rtsee-search [search]=\"search\"></rtsee-search>\n</div>\n", styles: [""], components: [{ type: SearchComponent, selector: "rtsee-search", inputs: ["search"] }] });
763
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.2", ngImport: i0, type: ContactsMultiselectComponent, decorators: [{
764
- type: Component,
765
- args: [{
766
- selector: 'rtsee-contacts-multiselect',
767
- templateUrl: './contacts-multiselect.component.html',
768
- styleUrls: ['./contacts-multiselect.component.scss'],
769
- }]
770
- }], propDecorators: { menuState: [{
771
- type: Input
772
- }], search: [{
773
- type: Input
774
- }] } });
775
-
776
- class MainMenuComponent {
777
- constructor() {
778
- this.MainMenuPanels = MainMenuPanels;
779
- this.state = {
780
- activePanel: DEFAULT_MAIN_MENU_STATE,
781
- };
782
- }
783
- onNewGroupClicked() {
784
- this.state.activePanel = MainMenuPanels.CONTACTS_SELECT;
785
- }
786
- onNewChannelClicked() {
787
- this.state.activePanel = MainMenuPanels.MANAGE_CHAT;
788
- }
789
- }
790
- MainMenuComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.1.2", ngImport: i0, type: MainMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
791
- MainMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.1.2", type: MainMenuComponent, selector: "rtsee-main-menu", inputs: { search: "search", messenger: "messenger" }, ngImport: i0, template: "<div class=\"rtsee-messenger-main-menu\">\n <div class=\"rtsee-messenger-main-menu-home\" *ngIf=\"state.activePanel === MainMenuPanels.HOME\">\n <ul class=\"rtsee-messenger-controls\">\n <li>\n <div class=\"rtsee-messenger-control-item\" (click)=\"onNewGroupClicked()\">\n <div class=\"rtsee-messenger-control-icon\">\n <span class=\"material-icons-outlined\">people</span>\n </div>\n <span>New Group</span>\n </div>\n </li>\n <li>\n <div class=\"rtsee-messenger-control-item\" (click)=\"onNewChannelClicked()\">\n <div class=\"rtsee-messenger-control-icon\">\n <span class=\"material-icons-outlined\">campaign</span>\n </div>\n <span>New Channel</span>\n </div>\n </li>\n </ul>\n <rtsee-search [search]=\"search\" ></rtsee-search>\n </div>\n\n <rtsee-manage-chat *ngIf=\"state.activePanel === MainMenuPanels.MANAGE_CHAT\"\n [messenger]=\"messenger\"\n [menuState]=\"state\"\n ></rtsee-manage-chat>\n <rtsee-contacts-multiselect [search]=\"search\"\n [menuState]=\"state\"\n *ngIf=\"state.activePanel === MainMenuPanels.CONTACTS_SELECT\"\n ></rtsee-contacts-multiselect>\n</div>\n", components: [{ type: SearchComponent, selector: "rtsee-search", inputs: ["search"] }, { type: ManageChatComponent, selector: "rtsee-manage-chat", inputs: ["messenger", "menuState"] }, { type: ContactsMultiselectComponent, selector: "rtsee-contacts-multiselect", inputs: ["menuState", "search"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
792
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.2", ngImport: i0, type: MainMenuComponent, decorators: [{
793
- type: Component,
794
- args: [{
795
- selector: 'rtsee-main-menu',
796
- templateUrl: './main-menu.component.html',
797
- }]
798
- }], propDecorators: { search: [{
799
- type: Input
800
- }], messenger: [{
801
- type: Input
802
- }] } });
803
-
804
- class MessengerComponent {
805
- constructor() {
806
- this.isHeaderExpanded = false;
807
- }
808
- onScroll() {
809
- this.messenger.loadChats();
810
- }
811
- onHeaderExpandToggled(value) {
812
- this.isHeaderExpanded = value;
813
- }
814
- }
815
- MessengerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.1.2", ngImport: i0, type: MessengerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
816
- MessengerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.1.2", type: MessengerComponent, selector: "rtsee-messenger", inputs: { messenger: "messenger" }, ngImport: i0, template: "<div class=\"rtsee-messenger\" [ngClass]=\"{\n 'rtsee-messenger-main-menu-opened': messenger.mainMenuOpened,\n 'rtsee-messenger-header-expanded': isHeaderExpanded\n}\">\n <div class=\"rtsee-messenger-header-container\">\n <rtsee-messenger-header [messenger]=\"messenger\" (expandToggled)=\"onHeaderExpandToggled($event)\"></rtsee-messenger-header>\n </div>\n <div class=\"rtsee-messenger-body-container\"\n infiniteScroll\n [infiniteScrollDistance]=\"2\"\n [infiniteScrollThrottle]=\"50\"\n [scrollWindow]=\"false\"\n (scrolled)=\"onScroll()\"\n >\n <rtsee-chats-list *ngIf=\"!messenger.openedChat\" [chats]=\"messenger.chats\" [messenger]=\"messenger\"></rtsee-chats-list>\n <rtsee-chat *ngIf=\"messenger.openedChat\" [messenger]=\"messenger\" [chat]=\"messenger.openedChat\"></rtsee-chat>\n <rtsee-preloader [diameter]=\"50\" *ngIf=\"messenger.loadingChatsInProgress\" ></rtsee-preloader>\n </div>\n <div class=\"rtsee-messenger-main-menu-container\">\n <rtsee-main-menu\n *ngIf=\"messenger.mainMenuOpened\"\n [search]=\"messenger.search\"\n [messenger]=\"messenger\"></rtsee-main-menu>\n </div>\n <div class=\"rtsee-messenger-overlay\" (click)=\"messenger.openMainMenu(false)\"></div>\n</div>\n\n\n", components: [{ type: MessengerHeaderComponent, selector: "rtsee-messenger-header", inputs: ["isExpanded", "messenger"], outputs: ["expandToggled"] }, { type: ChatsListComponent, selector: "rtsee-chats-list", inputs: ["messenger", "chats"] }, { type: ChatComponent, selector: "rtsee-chat", inputs: ["chat", "messenger"] }, { type: PreloaderComponent, selector: "rtsee-preloader", inputs: ["diameter", "color"] }, { type: MainMenuComponent, selector: "rtsee-main-menu", inputs: ["search", "messenger"] }], directives: [{ type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i3$2.InfiniteScrollDirective, selector: "[infiniteScroll], [infinite-scroll], [data-infinite-scroll]", inputs: ["infiniteScrollDistance", "infiniteScrollUpDistance", "infiniteScrollThrottle", "infiniteScrollDisabled", "infiniteScrollContainer", "scrollWindow", "immediateCheck", "horizontal", "alwaysCallback", "fromRoot"], outputs: ["scrolled", "scrolledUp"] }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
817
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.2", ngImport: i0, type: MessengerComponent, decorators: [{
818
- type: Component,
819
- args: [{
820
- selector: 'rtsee-messenger',
821
- templateUrl: './messenger.component.html',
822
- }]
823
- }], ctorParameters: function () { return []; }, propDecorators: { messenger: [{
824
- type: Input
825
- }] } });
826
-
827
- class EventsWidgetsService {
828
- constructor() {
829
- this.widgetsMap = [];
830
- }
831
- getWidgetComponentByName(name) {
832
- /* eslint-disable */
833
- const mapping = this.widgetsMap.find((e) => e.name === name);
834
- if (!mapping) {
835
- return null;
836
- }
837
- return mapping.component;
838
- /* eslint-enable */
839
- }
840
- }
841
- EventsWidgetsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.1.2", ngImport: i0, type: EventsWidgetsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
842
- EventsWidgetsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.1.2", ngImport: i0, type: EventsWidgetsService, providedIn: 'root' });
843
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.2", ngImport: i0, type: EventsWidgetsService, decorators: [{
844
- type: Injectable,
845
- args: [{
846
- providedIn: 'root',
847
- }]
848
- }] });
849
-
850
- class EventThumbnailComponent {
851
- constructor(widgetsService, componentFactoryResolver, timeFormatService) {
852
- this.widgetsService = widgetsService;
853
- this.componentFactoryResolver = componentFactoryResolver;
854
- this.timeFormatService = timeFormatService;
855
- }
856
- ngOnInit() {
857
- if (this.event.data) {
858
- this.generateTooltip();
859
- }
860
- }
861
- generateTooltip() {
862
- /* eslint-disable */
863
- let tooltip = '';
864
- if (typeof this.event.data !== 'object') {
865
- return;
866
- }
867
- try {
868
- for (const key in this.event.data) {
869
- if (this.event.data.hasOwnProperty(key)) {
870
- if (tooltip) {
871
- tooltip += '&#013;';
872
- }
873
- tooltip += key + ' -> ' + this.event.data[key];
874
- }
875
- }
876
- this.tooltip = tooltip;
877
- }
878
- catch (e) {
879
- console.log('Failed to generate a tooltip');
880
- }
881
- /* eslint-enable */
882
- }
883
- ngAfterViewInit() {
884
- /* eslint-disable */
885
- if (this.event.widget) {
886
- const widget = this.widgetsService.getWidgetComponentByName(this.event.widget);
887
- if (!widget) {
888
- return;
889
- }
890
- const viewContainerRef = this.widgetHost.viewContainerRef;
891
- viewContainerRef.clear();
892
- const componentToShow = this.componentFactoryResolver.resolveComponentFactory(widget);
893
- const componentRef = viewContainerRef.createComponent(componentToShow);
894
- componentRef.instance.event = this.event;
895
- componentRef.instance.event = this.event;
896
- componentRef.changeDetectorRef.detectChanges();
897
- }
898
- /* eslint-enable */
899
- }
900
- }
901
- EventThumbnailComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.1.2", ngImport: i0, type: EventThumbnailComponent, deps: [{ token: EventsWidgetsService }, { token: i0.ComponentFactoryResolver }, { token: TimeFormatHelperService }], target: i0.ɵɵFactoryTarget.Component });
902
- EventThumbnailComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.1.2", type: EventThumbnailComponent, selector: "rtsee-event-thumbnail", inputs: { event: "event" }, viewQueries: [{ propertyName: "widgetHost", first: true, predicate: WidgetDirective, descendants: true }], ngImport: i0, template: "<div class=\"rtsee-events-dashboard-event-thumbnail\">\n <ng-template *ngIf=\"event.widget\" widgetHost></ng-template>\n <div *ngIf=\"!event.widget\" class=\"rtsee-events-dashboard-default-event-thumbnail\"\n [ngClass]=\"{'rtsee-events-dashboard-default-event-thumbnail-with-data': event.data}\"\n >\n <div class=\"rtsee-events-dashboard-default-event-thumbnail-name\">{{event.name}}</div>\n <div class=\"rtsee-events-dashboard-default-event-thumbnail-info\">\n <div *ngIf=\"event.data\" class=\"rtsee-events-dashboard-default-event-thumbnail-details\"\n [title]=\"tooltip\"\n >\n <span class=\"rtsee-events-dashboard-default-event-thumbnail-details-icon material-icons-outlined\"\n >info</span>\n </div>\n <div class=\"rtsee-events-dashboard-default-event-thumbnail-time\">\n <span>{{ timeFormatService.toAgo(event.createdAt) }}</span>\n </div>\n </div>\n\n </div>\n</div>\n", directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: WidgetDirective, selector: "[widgetHost]" }, { type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
903
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.2", ngImport: i0, type: EventThumbnailComponent, decorators: [{
904
- type: Component,
905
- args: [{
906
- selector: 'rtsee-event-thumbnail',
907
- templateUrl: './event-thumbnail.component.html',
908
- }]
909
- }], ctorParameters: function () { return [{ type: EventsWidgetsService }, { type: i0.ComponentFactoryResolver }, { type: TimeFormatHelperService }]; }, propDecorators: { event: [{
910
- type: Input
911
- }], widgetHost: [{
912
- type: ViewChild,
913
- args: [WidgetDirective, { static: false }]
914
- }] } });
915
-
916
- class RtseeEventsDashboardSessionComponent {
917
- constructor(timeFormatService) {
918
- this.timeFormatService = timeFormatService;
919
- }
920
- }
921
- RtseeEventsDashboardSessionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.1.2", ngImport: i0, type: RtseeEventsDashboardSessionComponent, deps: [{ token: TimeFormatHelperService }], target: i0.ɵɵFactoryTarget.Component });
922
- RtseeEventsDashboardSessionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.1.2", type: RtseeEventsDashboardSessionComponent, selector: "rtsee-rtsee-events-dashboard-session", inputs: { session: "session" }, ngImport: i0, template: "<div class=\"rtsee-events-dashboard-session\">\n <div class=\"rtsee-events-dashboard-session-header\" *ngIf=\"session.info\">\n <p class=\"rtsee-events-dashboard-session-client-info\">{{session.info.clientThumbnail}}</p>\n <p class=\"rtsee-events-dashboard-session-os-info\">{{session.info.osThumbnail}}</p>\n <div class=\"rtsee-events-dashboard-session-device-info\" [title]=\"session.info.deviceThumbnail\">\n <span *ngIf=\"session.info.deviceType === 'smartphone' && !session.info.botName\"\n class=\"material-icons-outlined rtsee-events-dashboard-session-device-info-icon\"\n >phone_iphone</span>\n <span class=\"material-icons-outlined rtsee-events-dashboard-session-device-info-icon\"\n *ngIf=\"session.info.deviceType === 'tablet' && !session.info.botName\"\n >tablet_mac</span>\n <span class=\"material-icons-outlined rtsee-events-dashboard-session-device-info-icon\"\n *ngIf=\"session.info.deviceType === 'desktop' && !session.info.botName\"\n >computer</span>\n <span class=\"material-icons-outlined rtsee-events-dashboard-session-device-info-icon\"\n *ngIf=\"session.info.botName\"\n >smart_toy</span>\n </div>\n </div>\n <ul *ngIf=\"session.events && session.events.length\"\n class=\"rtsee-events-dashboard-session-events-list\"\n >\n <li *ngFor=\"let event of session.events | slice:0:5;\" class=\"rtsee-events-dashboard-session-event\">\n <rtsee-event-thumbnail [event]=\"event\"></rtsee-event-thumbnail>\n </li>\n </ul>\n <div class=\"rtsee-events-dashboard-session-footer\">\n <button *ngIf=\"session.events.length > 5\">{{session.events.length - 5}} more</button>\n </div>\n</div>\n", components: [{ type: EventThumbnailComponent, selector: "rtsee-event-thumbnail", inputs: ["event"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "slice": i3.SlicePipe } });
923
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.2", ngImport: i0, type: RtseeEventsDashboardSessionComponent, decorators: [{
924
- type: Component,
925
- args: [{
926
- selector: 'rtsee-rtsee-events-dashboard-session',
927
- templateUrl: './rtsee-events-dashboard-session.component.html',
928
- }]
929
- }], ctorParameters: function () { return [{ type: TimeFormatHelperService }]; }, propDecorators: { session: [{
930
- type: Input
931
- }] } });
932
-
933
- class RtseeEventsDashboardClientThumbnailComponent {
934
- constructor(timeFormatService, defaultImagesService) {
935
- this.timeFormatService = timeFormatService;
936
- this.defaultImagesService = defaultImagesService;
937
- }
938
- ngOnInit() {
939
- console.log('client id', this.client.id);
940
- }
941
- openChat() {
942
- this.dashboard.openChat(this.client);
943
- }
944
- }
945
- RtseeEventsDashboardClientThumbnailComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.1.2", ngImport: i0, type: RtseeEventsDashboardClientThumbnailComponent, deps: [{ token: TimeFormatHelperService }, { token: DefaultImagesService }], target: i0.ɵɵFactoryTarget.Component });
946
- 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 <div class=\"rtsee-dashboard-client-header\">\n <div class=\"rtsee-dashboard-client-header-photo\">\n <div class=\"rtsee-dashboard-client-header-image\"\n [style.background-image]=\"'url(' + client.imageUrl || defaultImagesService.PROFILE + ')'\"\n ></div>\n <div class=\"rtsee-dashboard-client-live-indicator\" *ngIf=\"client.isConnected\"></div>\n </div>\n <p class=\"rtsee-dashboard-client-name\">\n <span class=\"rtsee-dashboard-client-name-text\">{{ client.name || client.id }}</span>\n <button (click)=\"openChat()\" class=\"rtsee-dashboard-client-engage\">\n <span class=\"rtsee-dashboard-client-engage-icon material-icons-outlined\">chat_bubble</span>\n </button>\n </p>\n </div>\n <div class=\"rtsee-dashboard-sessions\">\n <div *ngFor=\"let session of client.sessions\"\n class=\"rtsee-dashboard-sessions-container\">\n <rtsee-rtsee-events-dashboard-session [session]=\"session\"></rtsee-rtsee-events-dashboard-session>\n </div>\n </div>\n</div>\n", components: [{ type: RtseeEventsDashboardSessionComponent, selector: "rtsee-rtsee-events-dashboard-session", inputs: ["session"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
947
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.2", ngImport: i0, type: RtseeEventsDashboardClientThumbnailComponent, decorators: [{
948
- type: Component,
949
- args: [{
950
- selector: 'ngx-rtsee-events-dashboard-client-thumbnail',
951
- templateUrl: './rtsee-events-dashboard-client-thumbnail.component.html',
952
- }]
953
- }], ctorParameters: function () { return [{ type: TimeFormatHelperService }, { type: DefaultImagesService }]; }, propDecorators: { dashboard: [{
954
- type: Input
955
- }], client: [{
956
- type: Input
957
- }] } });
958
-
959
- class RtseeEventsDashboardComponent {
960
- }
961
- RtseeEventsDashboardComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.1.2", ngImport: i0, type: RtseeEventsDashboardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
962
- 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", components: [{ type: RtseeEventsDashboardClientThumbnailComponent, selector: "ngx-rtsee-events-dashboard-client-thumbnail", inputs: ["dashboard", "client"] }], directives: [{ type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
963
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.2", ngImport: i0, type: RtseeEventsDashboardComponent, decorators: [{
964
- type: Component,
965
- args: [{
966
- selector: 'ngx-rtsee-events-dashboard',
967
- templateUrl: './rtsee-events-dashboard.component.html',
968
- }]
969
- }], propDecorators: { eventsDashboard: [{
970
- type: Input
971
- }] } });
972
-
973
- class RtseePeersListComponent {
974
- }
975
- RtseePeersListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.1.2", ngImport: i0, type: RtseePeersListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
976
- RtseePeersListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.1.2", type: RtseePeersListComponent, selector: "ngx-rtsee-peers-list", ngImport: i0, template: "<p>rtsee-peers-list works!</p>\n", styles: [""] });
977
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.2", ngImport: i0, type: RtseePeersListComponent, decorators: [{
978
- type: Component,
979
- args: [{
980
- selector: 'ngx-rtsee-peers-list',
981
- templateUrl: './rtsee-peers-list.component.html',
982
- styleUrls: ['./rtsee-peers-list.component.scss'],
983
- }]
984
- }] });
985
-
986
- class RtseeEventsDashboardClientComponent {
987
- }
988
- RtseeEventsDashboardClientComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.1.2", ngImport: i0, type: RtseeEventsDashboardClientComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
989
- 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" });
990
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.2", ngImport: i0, type: RtseeEventsDashboardClientComponent, decorators: [{
991
- type: Component,
992
- args: [{
993
- selector: 'ngx-rtsee-events-dashboard-client',
994
- templateUrl: './rtsee-events-dashboard-client.component.html',
995
- }]
996
- }] });
997
-
998
- class RtseeContainerComponent {
999
- }
1000
- RtseeContainerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.1.2", ngImport: i0, type: RtseeContainerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1001
- RtseeContainerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.1.2", type: RtseeContainerComponent, selector: "rtsee-rtsee-container", ngImport: i0, template: "<p>rtsee-container works!</p>\n" });
1002
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.2", ngImport: i0, type: RtseeContainerComponent, decorators: [{
1003
- type: Component,
1004
- args: [{
1005
- selector: 'rtsee-rtsee-container',
1006
- templateUrl: './rtsee-container.component.html',
1007
- }]
1008
- }] });
1009
-
1010
- class RTSeeModule {
1011
- }
1012
- RTSeeModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.1.2", ngImport: i0, type: RTSeeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1013
- RTSeeModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.1.2", ngImport: i0, type: RTSeeModule, declarations: [RTSeeComponent,
1014
- RTSeeControlsComponent,
1015
- RtseePeerComponent,
1016
- RtseeSoundbarComponent,
1017
- RtseePeersListComponent,
1018
- RtseeSettingsComponent,
1019
- MessengerComponent,
1020
- ChatComponent,
1021
- MessageComponent,
1022
- ChatsListComponent,
1023
- MessagesListComponent,
1024
- ChatThumbnailComponent,
1025
- ChatInputComponent,
1026
- MessengerHeaderComponent,
1027
- RtseeEventsDashboardComponent,
1028
- RtseeEventsDashboardClientComponent,
1029
- RtseeEventsDashboardClientThumbnailComponent,
1030
- WidgetDirective,
1031
- CallWidgetComponent,
1032
- MainMenuComponent,
1033
- MessageTimeAndStatusComponent,
1034
- PreloaderComponent,
1035
- SearchComponent,
1036
- ManageChatComponent,
1037
- ContactsMultiselectComponent,
1038
- ShaveDirective,
1039
- ProfileComponent,
1040
- EventThumbnailComponent,
1041
- RtseeEventsDashboardSessionComponent,
1042
- RtseeContainerComponent], imports: [CommonModule,
1043
- MatIconModule,
1044
- MatButtonModule,
1045
- MatSelectModule,
1046
- BrowserAnimationsModule,
1047
- MatFormFieldModule,
1048
- ReactiveFormsModule,
1049
- AutosizeModule,
1050
- InfiniteScrollModule], exports: [RTSeeComponent, MessengerComponent, RtseeEventsDashboardComponent] });
1051
- RTSeeModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.1.2", ngImport: i0, type: RTSeeModule, imports: [[
1052
- CommonModule,
1053
- MatIconModule,
1054
- MatButtonModule,
1055
- MatSelectModule,
1056
- BrowserAnimationsModule,
1057
- MatFormFieldModule,
1058
- ReactiveFormsModule,
1059
- AutosizeModule,
1060
- InfiniteScrollModule,
1061
- ]] });
1062
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.2", ngImport: i0, type: RTSeeModule, decorators: [{
1063
- type: NgModule,
1064
- args: [{
1065
- declarations: [
1066
- RTSeeComponent,
1067
- RTSeeControlsComponent,
1068
- RtseePeerComponent,
1069
- RtseeSoundbarComponent,
1070
- RtseePeersListComponent,
1071
- RtseeSettingsComponent,
1072
- MessengerComponent,
1073
- ChatComponent,
1074
- MessageComponent,
1075
- ChatsListComponent,
1076
- MessagesListComponent,
1077
- ChatThumbnailComponent,
1078
- ChatInputComponent,
1079
- MessengerHeaderComponent,
1080
- RtseeEventsDashboardComponent,
1081
- RtseeEventsDashboardClientComponent,
1082
- RtseeEventsDashboardClientThumbnailComponent,
1083
- WidgetDirective,
1084
- CallWidgetComponent,
1085
- MainMenuComponent,
1086
- MessageTimeAndStatusComponent,
1087
- PreloaderComponent,
1088
- SearchComponent,
1089
- ManageChatComponent,
1090
- ContactsMultiselectComponent,
1091
- ShaveDirective,
1092
- ProfileComponent,
1093
- EventThumbnailComponent,
1094
- RtseeEventsDashboardSessionComponent,
1095
- RtseeContainerComponent,
1096
- ],
1097
- imports: [
1098
- CommonModule,
1099
- MatIconModule,
1100
- MatButtonModule,
1101
- MatSelectModule,
1102
- BrowserAnimationsModule,
1103
- MatFormFieldModule,
1104
- ReactiveFormsModule,
1105
- AutosizeModule,
1106
- InfiniteScrollModule,
1107
- ],
1108
- exports: [RTSeeComponent, MessengerComponent, RtseeEventsDashboardComponent],
1109
- }]
1110
- }] });
1111
-
1112
- /*
1113
- * Public API Surface of ngx
1114
- */
1115
-
1116
- /**
1117
- * Generated bundle index. Do not edit.
1118
- */
1119
-
1120
- export { MessengerComponent, NgxService, RTSeeComponent, RTSeeControlsComponent, RTSeeModule, RtseeEventsDashboardComponent };
1121
- //# sourceMappingURL=rtsee-ngx.js.map